 /**********************************************************************************
ARRUMA O TEXTO DE RETORNO
Para que está função funcione é necessário retornar o conteúdo
com a função URLENCODE do PHP
**********************************************************************************/

function formataTexto(str) {
	
	//Desfaz o urlencode
	str=str.replace(/\+/g," ");
	str=unescape(str);
	
	return str;
	
}

/**********************************************************************************
FUNÇÕES DO AJAX
**********************************************************************************/

function initAjax() {
	
	try{
		
		xmlhttp = new XMLHttpRequest();
		
	} catch(ee) {
	
		try{
			
			xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
			
		} catch(e) {
			
			try{
				xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
			} catch(E) {
				xmlhttp = false;
			}
			
		}
		
	}
	
	return xmlhttp;
	
}

/**********************************************************************************
EXECUTA O AJAX
**********************************************************************************/

function executaAjax(url,destino,execFuncaoID) {
	
	// inicializa as variáveis
	var ajax			= false;
	var conteudo	= '';
	
	// inicializa o AJAX
	ajax = initAjax();
	
	if (ajax) {
		
		// envia os dados via AJAX
		ajax.open("GET", url, true);
		
		//Executada quando o navegador obtiver o código
		ajax.onreadystatechange = function() { 
	
			if (ajax.readyState == 4) {
					
				if (ajax.status == 200) {
				
					texto = ajax.responseText; //Lê o texto
					texto = formataTexto(texto); //Desfaz o urlencode
					
					// VERIFICA O QUE VAI SER FEITO
					
					switch (execFuncaoID) {
						
						case 'cidades':
							carregaCidadesLoad(texto,destino);	
						break;
						
						case 'conteudo':
							escreveConteudo(texto,destino);
						break;
						
						case 'conteudo_popup':
							escreveConteudoPopup(texto,destino);
						break;
						
						case 'relogio':
							document.getElementById(destino).innerHTML = texto;
						break;
						
						case 'executa':
							executaCodigo(texto);
						break;
						
						default:							
							alert('Não fez nada');
						break;
						
					}
					
					// 
					
				} else {
					
					//alert("Houve um problema ao obter os dados...\nTente novamente"); 
					
				}
			
			}
			
		}
		
		// limpa
		ajax.send(null);
		
	} else {
		
		alert("Falha na comunicação com o servidor");
		
	}
	
	// retorno FALSE
	return false;
	
}