
var xmlhttp=new Array();

function loadXMLDoc(urlDest, IdDiv, Assinc) {
	var url='xmlserver.asp', retorno=true;
	try {
		if (document.getElementById('navImg').src!='imagens/navLoading.gif') 
			document.getElementById('navImg').src='imagens/navLoading.gif';
	} catch(e) {};
	if ((Assinc!=true) && (Assinc!=false)) Assinc=true;
	if (window.XMLHttpRequest) {
		// Mozila
		xmlhttp[IdDiv]=new XMLHttpRequest();
		xmlhttp[IdDiv].multipart=false;
		try {xmlhttp[IdDiv].open('POST',url,Assinc);}
		catch(e) {alert(e);}
		//xmlhttp[IdDiv].onload=
		xmlhttp[IdDiv].onreadystatechange=function () {
												if (xmlhttp[IdDiv].readyState==4) {
													RodarEvento(xmlhttp[IdDiv].responseText, 'body', 'onload');
													document.getElementById(IdDiv).innerHTML=xmlhttp[IdDiv].responseText;
													retorno=(xmlhttp[IdDiv].status==200 || xmlhttp[IdDiv].status==201); // 200 e 201 são códigos de sucesso. Os demais significam erro
													RodarEvento(xmlhttp[IdDiv].responseText, 'body', 'onfocus');
													try {document.getElementById('navImg').src='imagens/navReady.gif';}
													catch(e) {}
													xmlhttp[IdDiv].close;
													xmlhttp[IdDiv]=null;
												}
											}
		xmlhttp[IdDiv].setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		xmlhttp[IdDiv].setRequestHeader('Connection', 'close');
		xmlhttp[IdDiv].send('qs='+charToHex(urlDest));
	} else if (window.ActiveXObject) {
		// code for IE
		xmlhttp[IdDiv]=new ActiveXObject("Microsoft.XMLHTTP");
		if (xmlhttp[IdDiv]) {
			xmlhttp[IdDiv].onreadystatechange= function() {
													if (xmlhttp[IdDiv].readyState==4) {
														RodarEvento(xmlhttp[IdDiv].responseText, 'body', 'onload');
													  	document.getElementById(IdDiv).innerHTML=xmlhttp[IdDiv].responseText;
														retorno=(xmlhttp[IdDiv].status==200 || xmlhttp[IdDiv].status==201); // 200 e 201 são códigos de sucesso. Os demais significam erro
														RodarEvento(xmlhttp[IdDiv].responseText, 'body', 'onfocus');
														try {document.getElementById('navImg').src='imagens/navReady.gif';}
														catch(e) {}
														xmlhttp[IdDiv].close;
													}
												}
			try {xmlhttp[IdDiv].open('POST',url,Assinc);}
			catch(e) {alert(e);}
			xmlhttp[IdDiv].setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
			xmlhttp[IdDiv].send('qs='+charToHex(urlDest));
		}
	}
	return(retorno);
}

function XMLLoader(urlDest) {
	return ('xmlserver.asp?qs='+charToHex(urlDest));
}

function charToHex(texto) {
	var textohex="", c;
	for (i=0; i<texto.length; i++) {
		c="0"+Hex(texto.charCodeAt(i));
		textohex += ("%"+c.substr(c.length-2));
	}
	return(textohex);
}

function Hex(numDec) {
	var resto,numHex="";
	resto=(numDec%16);
	var divis=Math.floor(numDec/16);
	while (divis>=16) {
		numHex=adcDigHex(resto,numHex);
		resto=(divis%16);
		divis=Math.floor(divis/16);
	}
	numHex=adcDigHex(resto,numHex);
	numHex=adcDigHex(divis,numHex);
	return(numHex);
}

function adcDigHex(numDec,numHexAnt) {
	var deltacc=48;
	if (numDec>9) deltacc+=7;
	return(String.fromCharCode(deltacc+numDec)+numHexAnt);
}

function RodarEvento(HtmlResponse, NmTag, NmEvento) {
	var TagProc="/<"+NmTag+"/i";
	var EvProc="/"+NmEvento+"/i";
	var i1=HtmlResponse.search(eval(TagProc));
	if (i1>=0) {
		var i2=HtmlResponse.indexOf(">", i1+1);
		if (i2>i1) {
			var TagExpr=HtmlResponse.substr(i1, i2-i1+1);
			var i3=TagExpr.search(eval(EvProc));
			if (i3>=0) {
				var l = TagExpr.length;
				var i4=TagExpr.indexOf("=", i3+1);
				if (i4>=0) {
					i4++;
					while (TagExpr.charAt(i4)!='"' && TagExpr.charAt(i4)!="'" && i4<l) i4++;
					var c = TagExpr.charAt(i4);
					i4++;
					var i5=i4;
					while (TagExpr.charAt(i5)!=c && i5<l) i5++;
					var Funcao=TagExpr.substr(i4, i5-i4);
					eval(Funcao);
				}
			}
		}
	} 
}

function NavegarDivPara(Url, Objeto, lAssinc, lNaoEmpilhar) {
	var Erro=true;
	if ((lAssinc!=true) && (lAssinc!=false)) {
		lAssinc=true;
	}
	for (k = 0; k < 2 && Erro; k++) {
		if (loadXMLDoc(Url, Objeto, lAssinc)) {
			if (Objeto.toLowerCase()=="divcorpo") {
				if (lNaoEmpilhar!=true) EmpilharChamada(Url); 
				AtualizarBotoesNavegacao(Url);
			}
			Erro=false;
		}
	}
	return (!Erro);
}
