/************************  Ajax - JavaScript Document  ************************/
/* Bibblioteca de funções para simplificação de Ajax em códigos.              */
/* Desenvolvidas por: Richard Jesus Natal e Eduardo Lopes da Silva            */
/* Empresa: BCJ Soluções Inteligentes                                         */
/* Contato: suporte@bcj.com.br                                                */
/* Descrição: Retorna um novo objeto do tipo XMLHTTP ou false se não         */
/* conseguir por algum motivo.                                                */
/* @return XMLHTTP ou false caso altum problema ocorra                        */
/******************************************************************************/

function pegaXMLHTTP() {
  http_request = false;
  if (window.XMLHttpRequest) { // Mozilla, Safari,...
    http_request = new XMLHttpRequest();
    if (http_request.overrideMimeType) {
      http_request.overrideMimeType('text/xml;iso-8859-1');
    }
  } else if (window.ActiveXObject) { // IE
    try {
      http_request = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
      try {
        http_request = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (e) {}
    }
  }
  return http_request;
}

/**
 * Decifra o texto passado e retorna um array contendo os textos decifrado.
 * @param texto Texto cifrado.
 * @return Array()  
 */ 
function trataTexto(texto) {
  texto = texto.replace(/\+/g," ");
  texto = unescape(texto);
  
  var update = new Array();
  if(texto.indexOf('|' != -1)) 
  {
    update = texto.split('|');
  }
  
  return update;  
}

/*
 * Faz uma requisição sincrona (espera voltar o resultado) e chama a rotina 
 * trataTexto para retornar os valores decifrados obtidos.
 * @param url URL a ser chamada.
 * @rerturn Array() ou false caso algum problema ocorra.   
 */ 
function makeRequestSinc(url) {
  http_request = pegaXMLHTTP();
  if (!http_request) {
    alert('Nao foi possivel criar o objeto XMLHTTP');
    return false;
  }

  http_request.open('GET', url, false);
  http_request.send(null);
  
  if( http_request.readyState == 4 && http_request.status == 200) {
    return trataTexto(http_request.responseText);  
  }
  return false;
}
function makeRequestSinc2(url) {
  http_request = pegaXMLHTTP();
  if (!http_request) {
    alert('Nao foi possivel criar o objeto XMLHTTP');
    return false;
  }

  http_request.open('GET', url, false);
  http_request.send(null);
  
  if( http_request.readyState == 4 && http_request.status == 200) {
    return http_request.responseText;
  }
  return false;
}

/*
 * Faz uma requisição assincrona (nao espera voltar o resultado) e chama a 
 * rotina especificada para tratar o retorno.
 * @param url URL a ser chamada.
 * @param rotina Rotina a ser chamada para tratar os dados. OBS: a rotina deve
 *               estar abaixo da inclusao deste arquivo no documento HTML. 
 * @rerturn false caso algum problema ocorra.   
 */ 
function makeRequestAssinc(url, rotina) {
  http_request = pegaXMLHTTP();
  if (!http_request) {
    alert('Nao foi possivel criar o objeto XMLHTTP');
    return false;
  }

  http_request.onreadystatechange = rotina;
  http_request.open('GET', url, true);
  http_request.setRequestHeader("Cache-Control", "no-store, no-cache, must-revalidate, post-check=0, pre-check=0");
//  http_request.setRequestHeader("Cache-Control", "post-check=0, pre-check=0");
  http_request.setRequestHeader("Pragma", "no-cache");
  http_request.send(null);
}
