var xmlhttp
var destin	//Variavel global p guardar o nome do DIV destino. Ps. Pode ser qq outro objeto como span, table, td, etc.
var Destin05='';
var Destin04='';
var Destin03='';
var Destin02='';
var Destin01='';
var Destin00='';
var url05='';
var url04='';
var url03='';
var url02='';
var url01='';
var url00='';
var totalForms=-1;
var xxpath;
var xxExec;
var isParent=false;

function putHttpOnDiv(url,divname,xpath,xExec)	// url=a ser carregada / divname=nome do destino q sera carregada na var destin
{
	destin=divname;	
	if(xpath==undefined){xpath=''}
	if(isParent==true){
		parent.document.all(destin).innerHTML="<img src='"+xpath+"images/indicator.gif'> "; //Exibe uma imagem de temporizador
	}else{
		document.all(destin).innerHTML="<img src='"+xpath+"images/indicator.gif'> "; //Exibe uma imagem de temporizador
	}
	xxpath=xpath;
	xxExec=xExec;
	xmlhttp=GetXmlHttpObject();	// Cria objeto xmlhttp
	if (xmlhttp==null) {alert ("Seu browser não suporta AJAX!");return;}	//Testa o objeto xmlhttp e termina execução se for null
	
	if(url.indexOf("?")>=0){url=url+"&sid="+Math.random()}else{url=url+"?sid="+Math.random()};	//Acrescenta um numero randomico na url apenas p forçar o browser a nao recarregar a mesma url do cache 
	xmlhttp.onreadystatechange=stateChanged;	//Executa a funcao stateChanged sempre que o estado de xmlhttp muda
	xmlhttp.open("GET",url,true);	//Abre o objeto xmlhttp com a url
	xmlhttp.send(null);	//Envia o request ao servidor
}

function stateChanged()
/*
Apenas para ter 1 idéia dos states:
0 Requisição não inicializada
1 Requisição configurada
2 Requisição enviada
3 Requisição em processamento
4 Requisição completada

*/
{
	if (xmlhttp.readyState==4)
	  {
		if(isParent==true){
			parent.document.all(destin).innerHTML=xmlhttp.responseText;
			parent.document.all(destin).style.display="block";
		}else{
			document.all(destin).innerHTML=xmlhttp.responseText;
			document.all(destin).style.display="block";
		}
		totalForms=totalForms-1;
		if(totalForms>=0){
			LoadSF(xxpath, xxExec);
		}
	  }
}

function GetXmlHttpObject()	//Cria XmlHttpObject de acordo com o browser
{
	if (window.XMLHttpRequest)	// IE7+, Firefox, Chrome, Opera, Safari
	  {
		  return new XMLHttpRequest();
	  }

	if (window.ActiveXObject) // IE6, IE5
	  {
		  return new ActiveXObject("Microsoft.XMLHTTP");
	  }
	return null;
}


function LoadSF(xpath,xExec){
	if (totalForms<0){return}
//	if (xpath=='undefined'){xpath=''}
	if (totalForms==5 && url05!='') {putHttpOnDiv(url05,Destin05,xpath);}
	if (totalForms==4 && url04!='') {putHttpOnDiv(url04,Destin04,xpath);}
	if (totalForms==3 && url03!='') {putHttpOnDiv(url03,Destin03,xpath);}
	if (totalForms==2 && url02!='') {putHttpOnDiv(url02,Destin02,xpath);}
	if (totalForms==1 && url01!='') {putHttpOnDiv(url01,Destin01,xpath);}
	if (totalForms==0 && url00!='') {putHttpOnDiv(url00,Destin00,xpath);}
	if (totalForms==0 && xExec!=undefined){
		window.execScript(xExec);
	}
	if (totalForms==0){isParent=false};

}

