//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()
{
	
  req.open('GET', fila[ifila][1], true);

  req.onreadystatechange=function()
  {
     if (RespServOK()){
        //Mostra o HTML recebido
                
         //var tbl = document.getElementById(fila[ifila][0]);
         //var row = tbl.insertRow(fila[ifila][2]);

         // select cell
         //var cellRightSel = row.insertCell(0);
         //cellRightSel.colSpan = 8;
         //cellRightSel.innerHTML = req.responseText;
         document.getElementById(fila[ifila][0]).innerHTML=req.responseText;
         //Roda o próximo
         ifila++
         if(ifila < fila.length)
         	setTimeout("carregaDados()",100);
     }
  }
  //Executa
  req.send(null);

}

//***********************************************************

function ajaxHTML(url,id){
var obj = document.getElementById(id);

if (req){
	  
      //Adiciona à fila
      fila[fila.length]=[id,url];
      //Se não há conexões 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');
}

} 

function ajax(url,id) {
    document.getElementById(id).innerHTML = '<div height="150px" valign="middle" class="carregando" ><img valign="middle" src="/imagens/loading.gif">&nbsp;Carregando...</div>';
    ajaxHTML(url,id);
}