// AJAX - Criação e uso do XMLHttpRequest()
window.onerror = avisar;
function avisar(msg, url, line){
    window.alert("Ocorreu um erro de execução.");
    window.alert("Mensagem de erro: " + msg);
    window.alert("URL da página: " + url);
    window.alert("Linha de código: " + line);
}

function criaAjax(){
var xmlhttp=null;
if (window.XMLHttpRequest)
  {// code for Firefox, Opera, IE7, etc.
  xmlhttp=new XMLHttpRequest();
  }
else if (window.ActiveXObject)
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
if (xmlhttp==null)
  {
  str  = "Seu browser não suporta XMLHTTP(AJAX).\r\n";
  str += "Por gentileza, atualize-o e retorne.\r\n";
  str += "Agradecemos imensamente sua visita.\r\n";
  alert(str);
  }
return xmlhttp;
}

var oAjaxS = criaAjax();
var oAjaxA = criaAjax();

var log         = new Array();
var fila        = [];

function mostraFiltrando()
{
  if (gE("div_carregando").style.visibility != "visible"){
//  gE("div_carregando").style.visibility = "visible";
  gE("div_ger").className = "opaca1";
  if (!selects){selects = document.getElementsByTagName("select");}
  for(var i=0;i<selects.length;i++){selects[i].style.visibility = "hidden";}
}  
}

function escondeFiltrando()
{
   if (selects)
      for(var i=0;i<selects.length;i++){selects[i].style.visibility = "visible";}
   document.getElementById("div_ger").className = "opaca2";
//   document.getElementById("div_carregando").style.visibility = "hidden";
}

function preencheObj(objeto,url,filtro,texto){
   if (objeto == "cidades1")
      procSincrono(objeto,url,filtro,texto);
   else   
      {
      fila.push([objeto,url,filtro,texto]);
      if (fila.length==1) procAssincrono();
      }
}

function configHeader(assincrono){
   if (assincrono){
      oAjaxA.setRequestHeader("Content-Type" , "application/x-www-form-urlencoded; iso-8859-1");
      oAjaxA.setRequestHeader("Cache-Control", "no-store, no-cache, must-revalidate");
      oAjaxA.setRequestHeader("Cache-Control", "post-check=0, pre-check=0");
      oAjaxA.setRequestHeader("Pragma"       , "no-cache");
   } else {   
      oAjaxS.setRequestHeader("Content-Type" , "application/x-www-form-urlencoded; iso-8859-1");
      oAjaxS.setRequestHeader("Cache-Control", "no-store, no-cache, must-revalidate");
      oAjaxS.setRequestHeader("Cache-Control", "post-check=0, pre-check=0");
      oAjaxS.setRequestHeader("Pragma"       , "no-cache");
   }   

}  

function procSincrono(objeto,url,filtro,texto){
      setTimeout('mostraFiltrando()',10);
      var oObj = document.getElementById(objeto);
      oAjaxS.open("POST",url,false);
      configHeader();
      oAjaxS.send(filtro+'&login='+login+'&sessao='+sessao);
      if  (oObj.type == "select-one")
          oObj.parentNode.innerHTML = oAjaxS.responseText;
      else
          {
          str = unescape(oAjax.responseText.replace(/\+/g," "));
          if (texto) str = texto.replace("#",str); 
          oObj.innerHTML = str;
          }
      setTimeout('escondeFiltrando()',20);
}

function procAssincrono(){
var requisicao
      setTimeout('mostraFiltrando()',10);

      var oObj       = document.getElementById(fila[0][0]);
      var url          = fila[0][1];
      var filtro       = fila[0][2];
      var texto      = fila[0][3];
      oAjaxA.open("POST",url,true);
      configHeader(true);
      oAjaxA.send(filtro+'&login='+login+'&sessao='+sessao);
      oAjaxA.onreadystatechange = function(){
            if ((oAjaxA.readyState == 4) && (oAjaxA.status == 200)){
               if (oObj.type == "select-one")
                     oObj.parentNode.innerHTML = oAjaxA.responseText;
                  else
                     {
                     str = unescape(oAjaxA.responseText.replace(/\+/g," "));
                     if (texto) str = texto.replace("#",str); 
                     oObj.innerHTML = str;
                     if (oObj.id == "div_cen7") encomendarImovel1();
                     if (oObj.id == "div_cen8") cadastrarImovel1();
                     if (oObj.id == "div_cen9") faleConosco1();
                     }
                  requisicao = fila.shift(); // Retirando o primeiro elemento do array
                  if (fila.length>0) 
                     {setTimeout('procAssincrono()',100);}
                  else
                      setTimeout('escondeFiltrando()',20);
            }
      }       
}

function pegaVar(variaveis)
{
var retornoAjax = null;
if (oAjaxS){
   oAjaxS.open("POST","vl/php/pegavar.php",false);
   configHeader();
   oAjaxS.send("variaveis="+variaveis+'&login='+login+'&sessao='+sessao);
   retornoAjax = unescape(oAjaxS.responseText.replace(/\+/g," "));
}  
return retornoAjax;
}

function exec_php(comando){
var retornoAjax = null;
if (oAjaxS){
   oAjaxS.open("POST","vl/php/exec_php.php",false);
   configHeader();
   oAjaxS.send("comando="+comando+'&sessao='+sessao);
   retornoAjax = unescape(oAjaxS.responseText.replace(/\+/g," "));
   }
return retornoAjax;
}

function exec_sql(sql){
var retornoAjax = null;
if (oAjaxS){
   oAjaxS.open("POST","vl/php/exec_sql.php",false); 
   configHeader();
   oAjaxS.send("sql="+sql+'&sessao='+sessao);
   retornoAjax = unescape(oAjaxS.responseText.replace(/\+/g," "));
   }
return retornoAjax;
}

function achaSeqEmail(pag){
var retornoAjax = null;
if (oAjaxS){
   oAjaxS.open("POST","vl/php/acha_seq_email.php",false);
   configHeader();
   oAjaxS.send('pag='+pag+'&sessao='+sessao);
   retornoAjax = unescape(oAjaxS.responseText.replace(/\+/g," "));
   retornoAjax = parseInt(retornoAjax);
   }
return retornoAjax;
} 

function enviaEmail(men){
var retornoAjax = null;
if (oAjaxS){
   oAjaxS.open("POST","vl/php/envia_email.php",false);
   configHeader();
   oAjaxS.send(men+'&sessao='+sessao);
   retornoAjax = unescape(oAjaxS.responseText.replace(/\+/g," "));
   }
return retornoAjax;
}
