//**************************************************************************************************************
// INICIO função em AJAX que carrega o resultado da execução de um arquivo.
//**************************************************************************************************************
// Em......: 27/05/2007
// Por.....: Gilvan Brandão Leandro
// E-mail..: gilvan.leandro@gmail.com
// Telefone: 55 + (61) 8422-0502
//**************************************************************************************************************

var loadedObjects="";
var pageLoad=0;

//**************************************************************************************************************
// Função que executa a página informada.
//**************************************************************************************************************
// nUrl = URL que quer executar.
// containerID = Nome do objeto onde o conetúdo do arquivo executado será inserido.
// Exemplo: onChange="ajaxPage('carrega.asp?CD_ESTADO=7', 'CD_MUNICIPIO');"
//**************************************************************************************************************
function ajaxPage(nUrl, containerID, txtFuncao, txtMsg) {
	
	pageLoad+=1;
	if (document.getElementById('msgAjax'))	document.getElementById('msgAjax').innerHTML=txtMsg;
	//alert(pageLoad);

	var vParametro = '<img src="/imagens/icones/16/circuloPeqCarregando.gif" align="texttop"> Aguarde...&nbsp;&nbsp;&nbsp;';
	
	returnObject = (typeof(containerID)=='object') ? containerID : document.getElementById(containerID);
	
	returnObject.innerHTML = vParametro;

	var XMLHttp = false;

	if (window.XMLHttpRequest) { // if Mozilla, Safari etc
		XMLHttp = new XMLHttpRequest();
	} else {
		if (window.ActiveXObject) { // if IE
			try {
				XMLHttp = new ActiveXObject("Msxml2.XMLHTTP");
			} 
			catch (e) {
				try {
					XMLHttp = new ActiveXObject("Microsoft.XMLHTTP");
				}
				catch (e){}
			}
		} else {
			alert("Seu navegador n&atilde;o suporta XMLHttpRequest."); 
			return false
		}
	}

	XMLHttp.onreadystatechange = function () {
		loadPage(XMLHttp, containerID, txtFuncao)
	}

	XMLHttp.open('GET', nUrl, true)

	
	// Define o caracterSET
		//XMLHttp.setRequestHeader("CharSet", "iso-8859-1"); 

	// Utilize estas linhas se quiser utilizar o método POST.
		//XMLHttp.setRequestHeader('Content-Type', "application/x-www-form-urlencoded; charset=iso-8859-1");

	// Comprimento do conteúdo=comprimento dos dados a enviar.
		//XMLHttp.setRequestHeader("Content-length", dados_a_enviar.length);

	// Caso o tipo de dados a ser retornado seja um XML adicionar a linha abaixo para compatibilidade com o browser.
		//XMLHttp.overrideMimeType('text/xml');

	// Funções que evitam que os valores retornados sejam o do cache.
		XMLHttp.setRequestHeader("Cache-Control", "no-store, no-cache, must-revalidate");
		XMLHttp.setRequestHeader("Cache-Control", "post-check=0, pre-check=0");
		XMLHttp.setRequestHeader("Pragma", "no-cache");

	XMLHttp.send(null)
}



//**************************************************************************************************************
// SUBFunção que carrega o conteúdo a página informada.
//**************************************************************************************************************
// XMLHttp = Nome do objeto XMLHttp criado de acordo com o browser.
// containerID = Nome do objeto onde o conetúdo do arquivo executado será inserido.
// Exemplo: loadPage(XMLHttp, containerID)
// OBS.: Subfunção utilizada pela função ajaxPage.
//**************************************************************************************************************
function loadPage(XMLHttp, containerID, txtFuncao){
	if (XMLHttp.readyState == 4 && (XMLHttp.status==200 || window.location.href.indexOf("http")==-1)) {
		returnObject = (typeof(containerID)=='object') ? containerID : document.getElementById(containerID);
		returnObject.innerHTML=XMLHttp.responseText;
		if (txtFuncao!=null && txtFuncao!='') {
			eval(txtFuncao);
		}
		pageLoad-=1;
		if (document.getElementById('msgAjax'))	document.getElementById('msgAjax').innerHTML='';
		
		var scripts = returnObject.getElementsByTagName("script");
		for(i = 0; i < scripts.length; i++)	{
			s = scripts[i].innerHTML;
			eval(s);
		}		
	}
}

//**************************************************************************************************************
// FIM da função em AJAX que carrega o resultado da execução de um arquivo.
//**************************************************************************************************************



//**************************************************************************************************************
// Função que carrega o arquivos ".CSS" ou ".JS".
//**************************************************************************************************************
// OBS.: Adicione quantos arquivos ".CSS" ou ".JS" forem necessários como argumentos adicionais.
// Exemplo: loadObjs('css/style.css', 'funcoesJS/funcoes.js');
//**************************************************************************************************************
function loadObjs () {
	if (!document.getElementById) {
		return
	}

	for (i=0; i<arguments.length; i++){
		var file=arguments[i]
		var fileref=""
		if (loadedObjects.indexOf(file)==-1) { //Check to see if this object has not already been added to page before proceeding
			if (file.indexOf(".js")!=-1) { //If object is a js file
				fileref=document.createElement('script')
				fileref.setAttribute("type","text/javascript");
				fileref.setAttribute("src", file);
			}
		} else {
			if (file.indexOf(".css")!=-1) { //If object is a css file
				fileref=document.createElement("link")
				fileref.setAttribute("rel", "stylesheet");
				fileref.setAttribute("type", "text/css");
				fileref.setAttribute("href", file);
			}
		}
		if (fileref!="") {
			document.getElementsByTagName("head").item(0).appendChild(fileref)
			loadedObjects+=file+" " //Remember this object as being already added to page
		}
		return true;
	}
}
//**************************************************************************************************************
// FIM da função em AJAX que carrega o resultado da execução de um arquivo.
//**************************************************************************************************************