//Cria a fila de requisiï¿½ï¿½es
//Variï¿½veis Globais
var fila=[];
var ifila=0;
var req=CriaReq();

/*
Objetivo: Verificar se o navegador suporta XML e criar instï¿½cia do XML.
Retorno : tXHR - objeto XML
*/
function CriaReq()
{ var tXHR=0;
  if (window.XMLHttpRequest)
  {
    tXHR=new XMLHttpRequest(); //objeto nativo (FF / Safari / Konqueror / Opera / etc)
  }
  else{
     if (window.ActiveXObject)
     {
      // tXHR=new ActiveXObject("Msxml2.XMLHTTP");  //activeX (IE5.5+/MSXML2+)

       tXHR=new ActiveXObject("Microsoft.XMLHTTP");  //activeX (IE5+/MSXML1)

     }
     else //O navegador nï¿½o tem suporte
     {
       tXHR=false;
     }
  }
  return tXHR; //retornar resultado (objeto, ou "false", no caso de erro)
}

/**********************************************/
function limpaID(id){

  while (document.getElementById(id).hasChildNodes())
      document.getElementById(id).removeChild(document.getElementById(id).lastChild);

} 

/**********************************************/
function msg(id,msg)
{
    document.getElementById(id).appendChild(document.createTextNode(msg));
}

/**********************************************/
function RespServOK()
{
  if (req.readyState == 4){
    if (req.status == 200) {
       return true;
    }
    else { //Se o servidor retornou outro cï¿½digo que nï¿½o "200", mostrar o erro.
       //alert('Erro no acesso aos dados '+  req.readyState +' - '+req.status) ;
       return false;
    }
  }
}

/**********************************************/
function carregaDados()
{
	if (fila[ifila][3] == "POST")
	{
		req.open('POST', fila[ifila][1], true);
		req.setRequestHeader('Content-Type',"application/x-www-form-urlencoded; charset=iso-8859-1");
		req.setRequestHeader("Cache-Control","no-store, no-cache, must-revalidate"); 
		req.setRequestHeader("Cache-Control","post-check=0, pre-check=0");
		req.setRequestHeader("Pragma","no-cache");
	}
	else
	{
		req.open('GET', fila[ifila][1], true);
	}
	
  	req.onreadystatechange=function()
	{
    	if (RespServOK())
		{
			//Mostra o HTML recebido
			document.getElementById(fila[ifila][0]).innerHTML=req.responseText;
			//Roda o prï¿½ximo
			ifila++
			if(ifila < fila.length)
				setTimeout("carregaDados()",100);
    	}
	}
  
  	if (fila[ifila][3] == "POST")
	{
		req.send(fila[ifila][2]);
	}
	else
	{
  		req.send(null);
	}
}

/**********************************************/
function ajaxHTML(id,url,Method)
{
	var obj= document.getElementById(id);
	var send;
	
	if (req)
	{
		var Metodo = (Method != "")?Method:"POST";

		limpaID(id);
		send = (Metodo == "POST")?url.substring(url.indexOf("?")+1):"";
		
		if (Metodo == "POST")
		{
			url = url.substring(0,url.indexOf("?"));
		}

		document.getElementById(id).innerHTML = 'Carregando...';
		//Adiciona a fila
		fila[fila.length]=[id,url,send,Metodo];
		//Se nao ha conexoes pendentes, executa
		if((ifila+1)==fila.length)
		  carregaDados();
	}
	else{
	   alert('O navegador não suporta esta tecnologia, use Internet Explorer 6 ou Mozilla FireFox para este sistema');
	}
}