function ajaX(url,Result,Load,elemento_load,image,url2,duplo,newTitle){
	// Baseado no micoxAjax
	// Informações ao fim do script
	function gE(ID) { return document.getElementById(ID); }	
    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(Load){ 
			gE(elemento_load).innerHTML = "<img src='" + image + "'align='Absmiddle'>";    
		}
        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(Load){put("Falha no carregamento. " + httpStatus(ajax1.status));}
            }
            ajax1 = null
        }else if(Load){
                gE(elemento_load).innerHTML = "<img src='" + image + "'align='Absmiddle'>";
        }
	}
    function put(valor){ 
	
        if((typeof(gE(Result))).toLowerCase()=="string"){ 
            if(valor!="Falha no carregamento"){
                eval(gE(Result) + '= unescape("' + escape(valor) + '")')
				
            }
			
        }else if(gE(Result).tagName.toLowerCase()=="input"){
			
            valor = escape(valor).replace(/\%0D\%0A/g,"")
            gE(Result).value = unescape(valor);
        }else if(gE(Result).tagName.toLowerCase()=="select"){        
            select_innerHTML(document.getElementById(Result),valor)
        }else if(gE(Result).tagName){

            gE(Result).innerHTML = valor;

				
        }    
		 if (duplo) { ajaX(url2,duplo,true,elemento_load,image); }
		 if (newTitle) { document.title = newTitle; }
						gE(elemento_load).innerHTML = "";
    }
    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&aacute;­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&ccedil;ada"; break;
            default: return "Erro " + stat + ". Mais informações em http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html"; 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 extraiScript(texto){
//Maravilhosa funÃ§Ã£o feita pelo SkyWalker.TO do imasters/forum
//http://forum.imasters.com.br/index.php?showtopic=165277&
    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);
            /**********************
            * Alterado por Micox - micoxjcg@yahoo.com.br
            * Alterei pois com o eval nÃ£o executava funÃ§Ãµes.
            ***********************/
            novo = document.createElement("script")
            novo.text = codigo;
            document.body.appendChild(novo);
        }
    }
}
/******
* ajaxGet - Coloca o retorno de uma url em um elemento qualquer
* Use a vontade mas coloque meu nome nos créditos. Dúvidas, me mande um email.
* Versão: 1.2 - 20/04/2006
* Autor: Micox - Náiron José C. Guimarães - micoxjcg@yahoo.com.br
* Parametros:
* url: string; Result: object||string; Load:boolean
*  - Se Result for um elemento html (inclusive inputs e selects),
*    exibe o retorno no innerHTML / value / options do elemento
*  - Se Result 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.
*******/
