 /*
   Biblioteca padrão para recuperar conteúdo via ajax
   @autor: wagner.renzi
   
   ==============
   AJAX Principal
   ==============
   ajaxParams['URL']             - url na qual será feita a requisição ajax
   ajaxParams['metodoOpen']      - modo de requisição: GET / POST (default:GET)
   ajaxParams['mimeType']        - mime type de retorno (default:text/xml)
   ajaxParams['tipoRetorno']     - define tipo de retorno que chega do servidor (default:responseXML)
   ajaxParams['funcaoOnReadySC'] - define tipo de retorno que chega do servidor (default:responseXML)
   ajaxParams['isAssincrono']    - define se o request será assincrono ou não (default:true)
   

   *****************************************************************************************************
    Exemplo   
   *****************************************************************************************************
    var arrayExemploAjax = new Array();
    arrayExemploAjax['URL'] = "http://localhost:8080/publicador/sites/secao/listasubsecoes?codsec=50";
    arrayExemploAjax['funcaoOnReadySC'] = "mostraResultado"; -->> funcao que trata o retorno
									exemplo:
									function mostraResultado(retorno){
										alert(retorno);
									}
    recuperaViaAjax(arrayExemploAjax);


 */
  function gbi(id){
      return document.getElementById(id);
  }
  
  function recuperaViaAjax(ajaxParams){
  //alert("Entrou aqui 1");

  //instancia o objeto request
  var oAjaxReq = null;
  oAjaxReq = iniciaAjax();
  
  if (oAjaxReq){
  

    //verifica qual mime type deve retornar do servidor (default:text/xml)
    if (oAjaxReq.overrideMimeType) {
      if (ajaxParams['mimeType']){
        oAjaxReq.overrideMimeType(ajaxParams['mimeType']);
      }else{
        oAjaxReq.overrideMimeType('text/xml');
      }
    }

    //função que ser  executada no onReadyStateChange
    /*oAjaxReq.onreadystatechange = function(){
		
        if(oAjaxReq.readyState == 4){
		
          if (oAjaxReq.status == 200) {
		  
			var retornoServer = null;
            if (ajaxParams['tipoRetorno']){
               if (ajaxParams['tipoRetorno'] == "responseText") {
                   retornoServer = oAjaxReq.responseText;
				   
				   trataRetorno(retornoServer);
                   //eval(ajaxParams['funcaoOnReadySC']+"(retornoServer)");
				   //alert("Entrou aqui 2");
               }
            }else{
               retornoServer = oAjaxReq.responseXML;
			   
		
               eval(ajaxParams['funcaoOnReadySC']+"(retornoServer)");
			   //alert("Entrou aqui 3");
            }
            return retornoServer;
          }
        }
    }*/

	//verifica se a abertura ser  sincronizada ou não
	var isAssincrono = true; //default
	if(typeof(ajaxParams['isAssincrono']) == "boolean" && ajaxParams['isAssincrono']==false){isAssincrono = false;}
	
    //abre a URL
	//alert("URL:"+ajaxParams['URL']);
	
    //oAjaxReq.open((ajaxParams['metodoOpen']?ajaxParams['metodoOpen']:'GET'), ajaxParams['URL'], isAssincrono);
	oAjaxReq.open('GET', ajaxParams['URL'], false);
    oAjaxReq.send(null);
	trataRetorno(oAjaxReq.responseText);
	
	
  
  }else{
    alert('Não foi poss¡vel recuperar a instância ajax para este browser');
  }
}





/*
   AJAX Auxiliar
   ==============
   
   PS: Não utilize esta função, chame o recuperaViaAjax(ajaxParams)
   Recupera instância do objeto ajax.
   
*/
function iniciaAjax(initParams){
//alert("entrou aqui 4");
    var req = null;
    if (window.XMLHttpRequest) { // Mozilla, Safari,...
        req = new XMLHttpRequest();
    } else if (window.ActiveXObject) { // IE
        try {
            req = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (ex) {
            try {
                req = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (exc) {
                alert('Esse browser não tem recursos para o uso do Ajax');
                req = null;
            }
        }
    }
    
  return req;
}

