//////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////// AJAX CARREGAR PAGINA   //////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////
function ajaxGet(url,elemento_retorno,exibe_carregando,DC_vars,DC_titulo){
     if(navigator.appName == 'Microsoft Internet Explorer')
     {
            url = url+'&NAVEGADOR=IE';
     }
     else
     {
            url = url+'&NAVEGADOR=OO';
     }
     ////////////////
     var ajax1 = pegaAjax();
     if(ajax1){
         url = antiCacheRand(url)
         ajax1.onreadystatechange = ajaxOnReady
         ajax1.open("GET", url,true);
         //ajax1.setRequestHeader("Content-Type: text/html; charset=ISO-8859-1",true);
         //ajax1.setRequestHeader("Content-Type", "text/html; charset=iso-8859-1");//"application/x-www-form-urlencoded");
         ajax1.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
         //ajax1.setRequestHeader("Cache-Control", "no-cache");
         //ajax1.setRequestHeader("Pragma", "no-cache");
         if(exibe_carregando)
         { put(DC_titulo) }
         ajax1.send(DC_vars)
         //ajax1.send()
         return true;
     }else{
         return false;
     }
     function ajaxOnReady(){
         if (ajax1.readyState==4){
             if(ajax1.status == 200){
                 var texto=ajax1.responseText;
                 if(texto.indexOf(" ")<0) texto=texto.replace(/\+/g," ");
                 put(texto);
                 extraiScript(texto);
             }else{ ///FALHA NO CARREGAMENTO
                 if(exibe_carregando){put("Falha no carregamento. " + httpStatus(ajax1.status));}
             }
             ajax1 = null
         }else if(exibe_carregando){//para mudar o status de cada carregando
                 ////DC_titulo = "<table border=0 bgcolor=#FFFFFF><tr><td><font face=verdana style=font-size=11px color=#000000><b>"+DC_titulo+"</b></font></td></tr></table>";
                 put(DC_titulo)
         }
     }

     function put(valor){ //coloca o valor na variavel/elemento de retorno
         if((typeof(elemento_retorno)).toLowerCase()=="string"){ //se for o nome da string
             if(valor!="Falha no carregamento"){
                 valor = "<table border=0 bgcolor=#FFFFFF><tr><td><font face=verdana style=font-size=11px color=#000000><b>"+valor+"</b></font></td></tr></table>";
                 eval(elemento_retorno + '= unescape("' + escape(valor) + '")')
             }
         }else if(elemento_retorno.tagName.toLowerCase()=="input"){
             valor = escape(valor).replace(/\%0D\%0A/g,"")
             elemento_retorno.value = unescape(valor);
         }else if(elemento_retorno.tagName.toLowerCase()=="select"){
             select_innerHTML(elemento_retorno,valor)
         }else if(elemento_retorno.tagName){
////             valor = "<table border=0 bgcolor=#FFFFFF><tr><td><font face=verdana style=font-size=11px color=#000000><b>"+valor+"</b></font></td></tr></table>";
             elemento_retorno.innerHTML = valor;////valor+'('+url+')';
         }
     }

     function pegaAjax(){ //instancia um novo xmlhttprequest
         if(typeof(XMLHttpRequest)!='undefined'){return new XMLHttpRequest();}
         var axO=['Microsoft.XMLHTTP','Msxml2.XMLHTTP','Msxml2.XMLHTTP.6.0','Msxml2.XMLHTTP.4.0','Msxml2.XMLHTTP.3.0'];
         for(var i=0;i<axO.length;i++){ try{ return new ActiveXObject(axO[i]);}catch(e){} }
         return null;
     }

     function httpStatus(stat){ //retorna o texto do erro http
         switch(stat){
             case 0: return "Erro desconhecido de javascript";
             case 400: return "400: Solicita&ccedil;&atilde;o incompreensível"; break;
             case 403: case 404: return "404: N&atilde;o foi encontrada a URL solicitada"; break;
             case 405: return "405: O servidor n&atilde;o suporta o m&eacute;todo solicitado"; break;
             case 500: return "500: Erro desconhecido de natureza do servidor"; break;
             case 503: return "503: Capacidade m&aacute;xima do servidor alcançada"; break;
             default: return "Erro " + stat + ". Mais informa&ccedil;&otilde;es em http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html"; break;
         }
     }

     function antiCacheRand(aurl){
         var dt = new Date();
         if(aurl.indexOf("?")>=0){// já tem parametros
             return aurl + "&" + encodeURI(Math.random() + "_" + dt.getTime());
         }else{ return aurl + "?" + encodeURI(Math.random() + "_" + dt.getTime());}
     }
}

function select_innerHTML(objeto,innerHTML){
     objeto.innerHTML = ""
     var selTemp = document.createElement("micoxselect")
     var opt;
     selTemp.id="micoxselect1"
     document.body.appendChild(selTemp)
     selTemp = document.getElementById("micoxselect1")
     selTemp.style.display="none"
     if(innerHTML.toLowerCase().indexOf("<option")<0){//se não é option eu converto
         innerHTML = "<option>" + innerHTML + "</option>"
     }
     innerHTML = innerHTML.replace(/<option/g,"<span").replace(/<\/option/g,"</span")
     selTemp.innerHTML = innerHTML
     for(var i=0;i<selTemp.childNodes.length;i++){
         if(selTemp.childNodes[i].tagName){
             opt = document.createElement("OPTION")
             for(var j=0;j<selTemp.childNodes[i].attributes.length;j++){
                 opt.setAttributeNode(selTemp.childNodes[i].attributes[j].cloneNode(true))
             }
             opt.value = selTemp.childNodes[i].getAttribute("value")
             opt.text = selTemp.childNodes[i].innerHTML
             if(document.all){ //IEca
                 objeto.add(opt)
             }else{
                 objeto.appendChild(opt)
             }
         }
     }
     document.body.removeChild(selTemp)
     selTemp = null
}




function extraiScript(texto) {
     //Função para que funcione as tags <script> utilizando o metodo ajax
     //Powered by LionSoft do Brasil
     var ini, pos_src, fim, codigo;
     var objScript = null;
     ini = texto.indexOf('<script', 0);
     while (ini!=-1){
         objScript = document.createElement("script");
         pos_src = texto.indexOf(' src', ini)
         ini = texto.indexOf('>', ini) + 1;
         if (pos_src < ini && pos_src >=0) {
             ini = pos_src + 4;
             fim = texto.indexOf('.', ini)+4;
             codigo = texto.substring(ini,fim);
             codigo = codigo.replace("=","").replace(" ","").replace("\"","").replace("\"","").replace("\'","").replace("\'","").replace(">","");
             objScript.src = codigo;
         } else {
             fim = texto.indexOf('</script>', ini)
             codigo = texto.substring(ini,fim);
             objScript.text = codigo;
         }
         document.body.appendChild(objScript);
         ini = texto.indexOf('<script', fim);
         objScript = null;
     }
 }

//////////////////////////////////////////////////////////////////////////////////////////////////
/////////////--------FIM AJAX
//////////////////////////////////////////////////////////////////////////////////////////////////

function Lista_Cidades(valor,campo)
{
 ajaxGet("../adm/f_cidades.php?uf="+valor,document.getElementById(campo),true,null,"Carregando Cidades...");
}

