// Função para iniciarmos o Ajax no browser do cliente.
function openAjax() {
	var ajax;
	
	try{
		ajax = new XMLHttpRequest(); // XMLHttpRequest para browsers como: Firefox, Safari, dentre outros.
	}catch(ee){
		try{
			ajax = new ActiveXObject("Msxml2.XMLHTTP"); // Para o IE da MS
		}catch(e){
			try{
				ajax = new ActiveXObject("Microsoft.XMLHTTP"); // Para o IE da MS
			}catch(E){
				ajax = false;
			}
		}
	}
	return ajax;
}


//Atualização dos Campos via AJAX
function fnAjax(metodo, idExibe, url, parametros, execBefore, execAfter) {
	if(document.getElementById) { // Para os browsers complacentes com o DOM W3C.
		var exibeResultado = document.getElementById(idExibe);
		var ajax = openAjax(); // Inicia o Ajax.

		if(metodo == "GET") {
			ajax.open("GET", url + "?" + parametros, true);
		} else {        
			ajax.open("POST", url, true);
		}  
		
		  

		ajax.onreadystatechange = function() {
			if(ajax.readyState == 1) { // Quando estiver carregando, exibe: carregando...
				exibeResultado.innerHTML = "<div class='carregando'>Carregando... Aguarde</div>";
			}
			
			if(ajax.readyState == 4) { // Quando estiver tudo pronto.
				if(ajax.status == 200) {
					//Executa algum script antes da atualização do ajax
					
					if (execBefore != "")
					{
						eval(execBefore);
					}
					
					var resultado = ajax.responseText; // Coloca o resultado (da busca) retornado pelo Ajax nessa variável (var resultado).
					resultado = resultado.replace(/\+/g," "); // Resolve o problema dos acentos (saiba mais aqui: http://www.plugsites.net/leandro/?p=4)
					resultado = unescape(resultado); // Resolve o problema dos acentos
					exibeResultado.innerHTML = resultado;
					
					//Executa algum script após a atualização do ajax
					if (execAfter != "")
						eval(execAfter);
				} else {
					exibeResultado.innerHTML = "Ocorreu um erro: " + ajax.responseText;
				}
			}
		}
		
		if(metodo == "GET") {
			ajax.send(null);
		} else {
			ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
			ajax.setRequestHeader("Cache-Control", "no-store, no-cache, must-revalidate");
			ajax.setRequestHeader("Cache-Control", "post-check=0, pre-check=0");
			ajax.setRequestHeader("Pragma", "no-cache");
			ajax.send(parametros);
		}
		
	}
}
