//-----------------------------------------------------------------
// DECLARAÇÃO VARIAVEIS
//-----------------------------------------------------------------
	var xhr = new Array(); // ARRAY OF XML-HTTP REQUESTS
	var xi = new Array(0); // ARRAY OF XML-HTTP REQUEST INDEXES
	xi[0] = 1; // FIRST INDEX SET TO 1 MAKING IT AVAILABLE
	
//-----------------------------------------------------------------
// FUNÇÃO AJAX REQUEST
//-----------------------------------------------------------------

function xhrRequest(type) {
	if (!type) {
		type = 'html';
	}

	// xhrsend IS THE xi POSITION THAT GETS PASSED BACK
	// INITIALIZED TO THE LENGTH OF THE ARRAY(LAST POSITION + 1)
	// IN CASE A FREE RESOURCE ISN'T FOUND IN THE LOOP
	var xhrsend = xi.length;
	
	// GO THROUGH AVAILABLE xi VALUES
	for (var i=0; i<xi.length; i++) {

		// IF IT'S 1 (AVAILABLE), ALLOCATE IT FOR USE AND BREAK
		if (xi[i] == 1) {
			xi[i] = 0;
			xhrsend = i;			
			break;
		}
	}

	// SET TO 0 SINCE IT'S NOW ALLOCATED FOR USE
	xi[xhrsend] = 0;

	// SET UP THE REQUEST
	if (window.ActiveXObject) {
		try {
			xhr[xhrsend] = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				xhr[xhrsend] = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	} else if (window.XMLHttpRequest) {
		xhr[xhrsend] = new XMLHttpRequest();
		if (xhr[xhrsend].overrideMimeType) {
			xhr[xhrsend].overrideMimeType('text/' + type);
		}
	}
	return (xhrsend);
}


//-----------------------------------------------------------------
// OBTER ROLAGEM ATUAL DO NAVEGADOR
//-----------------------------------------------------------------

function getScrollY() {
	var scrOfY = 0;
	if( typeof( window.pageYOffset ) == 'number' ) {
		//Netscape compliant
		scrOfY = window.pageYOffset;
	} else if( document.body && document.body.scrollTop ) {
		//DOM compliant
		scrOfY = document.body.scrollTop;
	} else if( document.documentElement && document.documentElement.scrollTop ) {
		//IE6 standards compliant mode
		scrOfY = document.documentElement.scrollTop;
	}
	return [ scrOfY ];
}

//------------------------------------------------------------------------
// FUNÇÃO PRÉ CARREGAMENTO ACOMPANHANDO O MOUSE
//------------------------------------------------------------------------
function mouseMoveHandler (evt) {
	var x = 0;
	var y = 0;
	var x = document.all ? event.clientX : document.layers ? evt.x : evt.clientX;
	var y = document.all ? event.clientY : document.layers ? evt.y : evt.clientY;
	
	var elemento = document.getElementById("carrega");
		
	if (elemento != null){
		elemento.style.left = (x-120)+'px';
		elemento.style.top = (y+30)+'px';
	}
	

}

function pre_carrega(){
	
	if (document.layers){
		document.captureEvents(Event.MOUSEMOVE);
	}
	if (document.layers || document.all){
		document.onmousemove = mouseMoveHandler;
	}
	if (document.addEventListener){
		document.addEventListener('mousemove', mouseMoveHandler, true);
	}

}

//----------------------------------------------------------------
// FUNÇÃO NAVEGAÇÃO GERAL COM HISTÓRICO - SEM ELEMENTOS ID´S
//----------------------------------------------------------------

function requisicao(strNomePagina)
{
	var xhri = xhrRequest('html');
	var lilist = document.getElementById("menu");
	var alist = lilist.getElementsByTagName("a");
	var c_links = strNomePagina;
	for (i=0; i<alist.length; i++ ) {
		links  = alist[i].getAttribute('rel');
		if(c_links == links) {
			alist[i].className="selected";
		}
		if(c_links != links) {
			alist[i].removeAttribute('className');
			alist[i].removeAttribute('class');
		}
	}
	
	xhr[xhri].onreadystatechange = function()
	{

		if (xhr[xhri].readyState == 1) {
			document.getElementById("carrega-conteudo").innerHTML =  "<div id=\"carrega\" class=\"carregando\"><img src=\"./img/carregando.gif\" /><br />Aguarde, carregando dados...</div>";
			pre_carrega();
		}
		if (xhr[xhri].readyState == 4 && xhr[xhri].status == 200) {
			var texto = xhr[xhri].responseText;
			texto = texto.replace(/([^\x01-\x7E])/g,function(word){return'&#'+word.charCodeAt(0)+ ';';});
			document.getElementById("carrega-conteudo").innerHTML = texto;
			xi[xhri] = 1;
			xhr[xhri] = null;
			pageTracker._trackPageview(strNomePagina); // Analytics Monitoramento para AJAX
		}
	};
	xhr[xhri].open("GET", "./ajax/conteudo_nav.php?act="+strNomePagina, true);
	xhr[xhri].setRequestHeader("encoding", "ISO-8859-1");
	xhr[xhri].setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
    xhr[xhri].setRequestHeader("Cache-Control", "no-store, no-cache, must-revalidate");
    xhr[xhri].setRequestHeader("Cache-Control", "post-check=0, pre-check=0");
    xhr[xhri].setRequestHeader("Pragma", "no-cache");
	xhr[xhri].send(null);
}

//-----------------------------------------------------------------------------------------
// FUNÇÃO ENVIAR FORMULARIOS - PASSANDO ID, ARQUIVO E TEMPO
//-----------------------------------------------------------------------------------------

function requisicao_post(arquivo,_strNomePagina,elementoID,formID)
{
	var xhri = xhrRequest('html');
	var elementosFormulario = document.getElementById(formID).elements;
    var qtdElementos = elementosFormulario.length;
    var queryString = "";
    var elemento;
	
	//Cria uma funcao interna para concatenar os elementos do form
    this.ConcatenaElemento = function(nome,valor) {
		if (queryString.length>0) {
			queryString += "&";
		}
		queryString += encodeURIComponent(nome) + "=" + encodeURIComponent(valor);
	};
	
	//Loop para percorrer todos os elementos
	for (var i=0; i<qtdElementos; i++) {
		//Pega o elemento
        elemento = elementosFormulario[i];
		if (!elemento.disabled) {
			//Trabalha com o elemento caso ele nao esteja desabilitado
            switch(elemento.type) {
				//Realiza a acao dependendo do tipo de elemento
                case 'text': case 'password': case 'hidden': case 'textarea':
                    this.ConcatenaElemento(elemento.name,elemento.value);
                    break;
                case 'select-one':
                    if (elemento.selectedIndex>=0) {
                        this.ConcatenaElemento(elemento.name,elemento.options[elemento.selectedIndex].value);
                    }
                    break;
                case 'select-multiple':
                    for (var j=0; j<elemento.options.length; j++) {
                        if (elemento.options[j].selected) {
                            this.ConcatenaElemento(elemento.name,elemento.options[j].value);
                        }
                    }
                    break;
                case 'checkbox': case 'radio':
                    if (elemento.checked) {
                        this.ConcatenaElemento(elemento.name,elemento.value);
                    }
                    break;
            }
        }
    }
    
    xhr[xhri].onreadystatechange = function()
	{
		if (xhr[xhri].readyState==1) {
			document.getElementById(elementoID).innerHTML =  "<div id=\"carrega\" class=\"carregando\"><img src=\"./img/carregando.gif\" /><br />Aguarde, enviando dados...</div>";
			pre_carrega();
		}
		if (xhr[xhri].readyState == 4) {
			if (xhr[xhri].status == 200){
				document.getElementById(elementoID).innerHTML = xhr[xhri].responseText;
				xi[xhri] = 1;
				xhr[xhri] = null;
			} else {
				setTimeout("requisicao_post('" + crt + "','" + elementoID + "','" + formID + "')", 1000);
			}
		}
	};
	xhr[xhri].open("POST", arquivo+_strNomePagina, true);
	xhr[xhri].setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	xhr[xhri].send(queryString);

}

//-----------------------------------------------------------------------------------------
// FUNÇÃO ATUALIZAR DADOS A CADA X TEMPO - PASSANDO ID DOS ELEMENTOS
//-----------------------------------------------------------------------------------------

function atualiza_dados(arquivo, elementoID, tempoR) {
	
	var xhri = xhrRequest('html');
	
	xhr[xhri].onreadystatechange = function()
	{
		if (xhr[xhri].readyState == 1) {
			document.getElementById(elementoID).innerHTML = "<img src=\"./img/atualizando.gif\" />";
		}
		if (xhr[xhri].readyState == 4 && xhr[xhri].status == 200) {
			document.getElementById(elementoID).innerHTML = xhr[xhri].responseText;
			xi[xhri] = 1;
			xhr[xhri] = null;
		}
	};
	xhr[xhri].open('GET', arquivo, true);
	xhr[xhri].setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
	xhr[xhri].setRequestHeader("Cache-Control", "no-store, no-cache, must-revalidate");
	xhr[xhri].setRequestHeader("Cache-Control", "post-check=0, pre-check=0");
	xhr[xhri].setRequestHeader("Pragma", "no-cache");
	xhr[xhri].send(null);
	
	setTimeout("atualiza_dados('" + arquivo + "','" + elementoID + "','" + tempoR + "')", tempoR);
}

//-----------------------------------------------------------------------------------------
// FUNÇÃO NAVEGAR GERAL - PASSANDO ID DOS ELEMENTOS
//-----------------------------------------------------------------------------------------

function req_id(arquivo,elementoID)
{
	var xhri = xhrRequest('html');
	
	xhr[xhri].onreadystatechange = function()
	{
		if (xhr[xhri].readyState == 1) {
			document.getElementById(elementoID).innerHTML = "<div id=\"carrega\" class=\"carregando\"><img src=\"./img/carregando.gif\" /><br />Aguarde, carregando dados...</div>";
			pre_carrega();
		}
		if (xhr[xhri].readyState == 4 && xhr[xhri].status == 200) {
			document.getElementById(elementoID).innerHTML = xhr[xhri].responseText;
			xi[xhri] = 1;
			xhr[xhri] = null;
		}
	};
	xhr[xhri].open('GET', arquivo, true);
	xhr[xhri].setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
	xhr[xhri].setRequestHeader("Cache-Control", "no-store, no-cache, must-revalidate");
	xhr[xhri].setRequestHeader("Cache-Control", "post-check=0, pre-check=0");
	xhr[xhri].setRequestHeader("Pragma", "no-cache");
	xhr[xhri].send(null);

}

//-----------------------------------------------------------------------------------------
// FUNÇÃO PARA CARREGAR FRAMES GERAL - PASSANDO ID E ARQUIVO NA FUNÇÃO
//-----------------------------------------------------------------------------------------

function carregaFrame(arquivo,elementoID)
{
    var xhri = xhrRequest('html');
    xhr[xhri].onreadystatechange = function() {
		if (xhr[xhri].readyState == 1) {
			document.getElementById(elementoID).innerHTML = "<img src=\"./img/atualizando.gif\" />";
		}
		if(xhr[xhri].readyState == 4) {
        	if(xhr[xhri].status == 200){
				document.getElementById(elementoID).innerHTML = xhr[xhri].responseText;
        	} else {
				document.getElementById(elementoID).innerHTML = "Erro!";
        	}
		}
	}	
	xhr[xhri].open('GET', arquivo, true);
    xhr[xhri].send(null);
}

//-----------------------------------------------------------------------------------------
// FUNÇÃO PARA LER COOKIES
//-----------------------------------------------------------------------------------------
function LerCookie(strCookie)
{
    var strNomeIgual = strCookie + "=";
    var arrCookies = document.cookie.split(';');

    for(var i = 0; i < arrCookies.length; i++)
    {
        var strValorCookie = arrCookies[i];
        while(strValorCookie.charAt(0) == ' ')
        {
            strValorCookie = strValorCookie.substring(1, strValorCookie.length);
        }
        if(strValorCookie.indexOf(strNomeIgual) == 0)
        {
            return strValorCookie.substring(strNomeIgual.length, strValorCookie.length);
        }
    }
    return null;
}


//-----------------------------------------------------------------------------------------
// FUNÇÃO PARA CHAMAR OUTRAS FUNÇÕES AO CARREGAR O SITE
//-----------------------------------------------------------------------------------------

function addEvent( obj, type, fn ) {
	if (obj.addEventListener) {
		obj.addEventListener( type, fn, false );
	}
	else if (obj.attachEvent) {
		obj["e"+type+fn] = fn;
		obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
		obj.attachEvent( "on"+type, obj[type+fn] );
	}
	else {
		obj["on"+type] = obj["e"+type+fn];
	}
}

//-----------------------------------------------------------------------------------------
// CHAMANDO OS EVENTOS NA INICIALIZAÇÃO
//-----------------------------------------------------------------------------------------

addEvent(window, 'load', function(){
	atualiza_dados('./ajax/atualiza_dados.php?crt=atualiza_hora','hora-atual', 30000);
	atualiza_dados('./ajax/atualiza_dados.php?crt=atualiza-visistas','visitas', 120000);
	atualiza_dados('./ajax/atualiza_dados.php?crt=atualiza-loc-ptu','loc-ptu', 30000);
	if (LerCookie("enq_votado")){
		atualiza_dados('./ajax/atualiza_dados.php?crt=exibe-enq','exibe-enq', 300000);
	}
	carregaFrame('./ajax/frame.php?crt=previsao-tempo','previsao-tempo');
});
