function ajaxGet(url,elemento_retorno,exibe_carregando){
	var google_analy = url;
	var ajax1 = pegaAjax();
	if(ajax1){
		url = antiCacheRand(url)
		ajax1.onreadystatechange = ajaxOnReady
		ajax1.open("POST", url ,true);
		//ajax1.setRequestHeader("Content-Type", "text/html; charset=iso-8859-1");
		ajax1.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
		ajax1.setRequestHeader("Cache-Control", "no-store, no-cache, must-revalidate");
		ajax1.setRequestHeader("Cache-Control", "post-check=0, pre-check=0");
		ajax1.setRequestHeader("Pragma", "no-cache");
		
		if(exibe_carregando){
			put("Carregando ...")
		}
		ajax1.send(null)
			return true;
		}else{
			return false;
		}

	function ajaxOnReady(){
		if (ajax1.readyState==1){
			document.getElementById("carregando").innerHTML="<img src='/2011/img/carregando.gif' />";
			//document.form_ajax.button_ajax.disabled=!document.form_ajax.button_ajax.disabled;
			document.getElementById('button_ajax').disabled = true;
		}
		
		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);
				extraiScript(texto);
				document.getElementById("carregando").innerHTML="";
				document.getElementById('button_ajax').disabled = false;
				
				if(texto == 1 ) {
					finalizaAjax();
				}
			
			/*
			var pageTracker;
			
			if(pageTracker!=null){
			pageTracker._trackPageview(google_analy);
			
			}else{
			//alert(google_analy)
			}
			*/
			
			}else{
				if(exibe_carregando){
					put("Falha no carregamento. " + httpStatus(ajax1.status));
				}
			}
			ajax1 = null
			
			}else if(exibe_carregando){
				//para mudar o status de cada carregando
				//put("<img src='http://acpzsolucoes.com.br/reymaster/img/loading.gif' />" )
		}//if 1
	}

  
	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 httpStatus(stat){ //retorna o texto do erro http
	
		switch(stat){
			case 0: return "Erro desconhecido de javascript alert('Erro desconhecido de javascript')";
			
			case 400: return "400: Solicitação incompreensível alert('400 - Solicitação incompreensível')"; break;
			
			case 403: case 404: 
				return "404: Não foi encontrada a URL solicitada alert('404 - Não foi encontrada a URL solicitada')"; 
				break;
			
			case 405: 
				return "405: O servidor não suporta o método solicitado alert('405 - O servidor não suporta o método solicitado')"; 
				break;
			
			case 500: 
				return "500: Erro desconhecido de natureza do servidor alert('500 - Erro desconhecido de natureza do servidor')"; 
				break;
			
			case 503: 
				return "503: Capacidade máxima do servidor alcançada alert('503 - Capacidade máxima do servidor alcanç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){// 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){
		// inicializa o inicio ><
		var ini = 0;
		// loop enquanto achar um script
		while (ini!=-1){
			// procura uma tag de script
			ini = texto.indexOf('<script', ini);
			// se encontrar
			if (ini >=0){
				// define o inicio para depois do fechamento dessa tag
				ini = texto.indexOf('>', ini) + 1;
				// procura o final do script
				var fim = texto.indexOf('</script>', ini);
				// extrai apenas o script
					codigo = texto.substring(ini,fim);
				// executa o script
	
				novo = document.createElement("script")
				novo.text = codigo;
				document.body.appendChild(novo);
				}
		}
	}
