function abre(url,elemento_retorno,exibe_carregando){
	
/**********************************************************************************/
/* ajaxGet - Coloca o retorno de uma url em um elemento qualquer                  */
/* Parametros:                                                                    */
/* url: string; elemento_retorno: object||string; exibe_carregando:boolean        */
/*  - Se elemento_retorno for um elemento html (inclusive inputs e selects),      */
/*    exibe o retorno no innerHTML / value / options do elemento                  */
/*  - Se elemento_retorno for o nome de uma variavel                              */
/*    (o nome da variável deve ser declarado por string, pois será feito um eval) */
/*    a função irá atribuir o retorno à variável ao receber a url.                */
/**********************************************************************************/
    var ajax1 = pegaAjax();
    if(ajax1){
        ajax1.onreadystatechange = ajaxOnReady
        ajax1.open("GET", url ,true);
        if(exibe_carregando){ 
		  put("<table width='115' border='0' align='center' cellpadding='0' cellspacing='0'><tr><td width='33'><img src='img/agarde.gif' width='33' height='33' /></td><td width='66' align='center' class='ft_aguarde'>Aguarde...</td></tr></table>")    
		}
        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," ");
                //texto=unescape(texto); //descomente esta linha se tiver usado o urlencode no php ou asp
                put(texto);
            }else{
                if(exibe_carregando){put("Falha no carregamento");}
            }
            ajax1 = null
        }else if(exibe_carregando){//para mudar o status de cada carregando
                put("<table width='115' border='0' align='center' cellpadding='0' cellspacing='0'><tr><td width='33'><img src='img/agarde.gif' width='33' height='33' /></td><td width='66' align='center' class='ft_aguarde'>Aguarde...</td></tr></table>")
        }
    }
    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"){ 
                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;
            //alert(elemento_retorno.innerHTML)
        }    
    }
    function pegaAjax(){ //instancia um novo xmlhttprequest
        //baseado na getXMLHttpObj que possui muitas cópias na net e eu nao sei quem é o autor original
        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 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
}
