/* -- AJAX - CLASSE QUE LE O XML DAS NOTICIAS --
 * string @nome : Nome do Objeto criado.
 * string @div : ID do conteiner dos Itens.
 * string @linkHref : Link de cada Item.
 * number @limiteI : Limite inicial.
 * number @qtdMostra : Quantidade de Itens por Pagina.
 * array @paginadores : ID's do conteiners 
 */
function NoticiasXML (nome) {
	this.nome = nome;
	this.div = "";
	this.linkHref = "";
	this.limiteI = 1;
	this.qtdMostra = 1;
	this.paginadores = false;
	
	this.bindXML = function (limiteI) {
		// Dados
		var div = this.div;
		var linkHref = this.linkHref;
		var limiteI = this.limiteI = !limiteI ? this.limiteI : limiteI;
		var qtdMostra = this.qtdMostra;
		
		// XML
		var xml = ajax.responseXML;
		var saida = "";
		
		// Noticias
		var noticias = xml.getElementsByTagName('noticia');
		
		// Quantidade de Noticias
		var qtdNoticias = this.qtdNoticias = noticias.length;
		
		// Limite inicial
		limiteI = (limiteI-1)*qtdMostra;
		
		// Limite final
		var limiteF = limiteI + qtdMostra;
		if(qtdNoticias < qtdMostra+1 || limiteF > qtdNoticias) {
			limiteF = qtdNoticias;
		}
		
		// Se for IE o nodo do CDATA  o primeiro
		var nodoCdata = is_ie ? 0 : 1;

		// Pegamos todos os dados
		for (var i=limiteI; i<limiteF; i++) {
			var noticia = noticias.item(i);
			var oLink = linkHref.replace("[id]", noticia.attributes[0].nodeValue);
			var oData = noticia.attributes[1].nodeValue;
			
			var intDia = oData.substr(0, oData.indexOf('/')); //pega o dia da data
			var intMes = oData.substr(oData.indexOf('/')+1, 2); //pega o mes da data
			var intAno = oData.substr(oData.lastIndexOf('/')+1, 4); //pega o ano da data
			var intHora = oData.substr(oData.indexOf(':')-2, 5); //pega a hora da data
			
			// Saida
			saida += '<li>';
			saida += '<h3>'+ intDia + '/' + intMes + '/' + intAno + ' - ' + intHora +'</h3>';
			saida += '<h4><a href="'+ oLink +'">'+ noticia.attributes[2].nodeValue +'</a></h4>';
			saida += '<p>'+ noticia.childNodes[0].nodeValue +'</p>';
			saida += '</li><li class="divisor"></li>';
		}

		// Mostra as noticias
		document.getElementById(div).innerHTML = saida;
		
		// Cria Paginador/es
		this.criaPaginador();
	}
	
	// Metodo que cria os Paginadores
	this.criaPaginador = function () {
		// Dados
		var paginadores = this.paginadores;
		// PAGINADORES
		if(paginadores) {
			var qtdPags = Math.ceil(this.qtdNoticias/this.qtdMostra);
			var qtdPaginadores = paginadores.length;
			for(var i=0;i<qtdPaginadores;i++) {
				// Cria o Paginador
				mudaPaginador(paginadores[i], this.limiteI, qtdPags, this.nome+'.bindXML');
			}
		}
	}
}

/*
 * -- FUNO QUE GERA O PAGINADOR --
 * string @div : ID da DIV do Paginador.
 * number @numDaPag : O nmero da pagina que foi clicada.
 * number @qtdPags : Quantidade de Paginas.
 * string @callBack : A funo que vai ser executada por cada Boto.
 */
function mudaPaginador(div,numDaPag,qtdPags,callBack) {
	// XML
	var xml = ajax.responseXML;
	
	// Texto dos Botoes
	var nextBtn = xml.getElementsByTagName('noticias')[0].attributes[0].nodeValue;
	var prevBtn = xml.getElementsByTagName('noticias')[0].attributes[1].nodeValue;
	
	// Habilita/Deshabilita os links do paginador
	var saida = "";
	
	//- Boto Prev
	if(numDaPag > 1) {
		saida += '<a href="#todo" id="anterior" onclick="'+ callBack +'('+ (parseInt(numDaPag)-1) +')"><< '+prevBtn+'</a>';
	}

	// Monta o paginador
	for (var i=0;i<qtdPags;i++) {
		var pagina = i+1;
		if(pagina != numDaPag) {
			saida += '<a href="#todo" onclick="'+ callBack +'(this.innerHTML)">'+pagina+'</a>';
		}
		else {
			saida += '<b>'+ pagina +'</b>';
		}
		
		if(pagina!=qtdPags) { saida += " "; }
	}
	
	//- Boto Next
	if(numDaPag < qtdPags) {
		saida += '<a href="#todo" id="proxima" onclick="'+ callBack +'('+ (parseInt(numDaPag)+1) +')">'+nextBtn+' >></a>';
	}
	
	// Saida
	document.getElementById(div).innerHTML = saida;
}
