function ajaxGet(url,elemento_retorno,exibe_carregando){
var ajax1 = pegaAjax();
if(ajax1){
url = antiCacheRand(url)
ajax1.onreadystatechange = ajaxOnReady
ajax1.open("GET", url ,true);
ajax1.setRequestHeader("Cache-Control", "no-cache");
ajax1.setRequestHeader("Pragma", "no-cache");
if(exibe_carregando){ put("<center>Carregando ...</center>")    }
ajax1.send(null)
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{
if(exibe_carregando){put("Falha no carregamento. " + httpStatus(ajax1.status));}
}
ajax1 = null
}else if(exibe_carregando){
put("Carregando ..." )
}
}
function put(valor){
if((typeof(elemento_retorno)).toLowerCase()=="string"){ 
if(valor!="Falha no carregamento"){
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){
elemento_retorno.innerHTML = valor;
}}
function pegaAjax(){
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){ 
switch(stat){
case 0: return "Erro desconhecido de javascript";
case 400: return "400: SolicitaÃ§Ã£o incompreensÃ­vel"; break;
case 403: case 404: return "404: NÃ£o foi encontrada a URL solicitada"; break;
case 405: return "405: O servidor nÃ£o suporta o mÃ©todo solicitado"; break;
case 500: return "500: Erro desconhecido de natureza do servidor"; break;
case 503: return "503: Capacidade mÃ¡xima do servidor alcanÃ§ada"; break;
default: return "Erro " + stat + ". Erro ao tentar descobrir qual foi o erro dessa vez.\nFalta memória pra lembrar de todos os erros"; break;
}}
function antiCacheRand(aurl){
var dt = new Date();
if(aurl.indexOf("?")>=0){
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){
var ini = 0;
while (ini!=-1){
ini = texto.indexOf('<script', ini);
if (ini >=0){
ini = texto.indexOf('>', ini) + 1;
var fim = texto.indexOf('</script>', ini);
codigo = texto.substring(ini,fim);
novo = document.createElement("script")
novo.text = codigo;
document.body.appendChild(novo);
}}}
