/**********************************************************************
Autor: 		Ivon Neves Corrêa
Data: 		06/03/2005
Objetivo:	Funções para automatizar e facilitar o uso do AJAX.
 
	Historico Alteracao:
	 - Autor: 
	 - Data: 
	 - Descrição: 
***********************************************************************/
function criarRequest() {
	// Verifica o Browser do Cliente 
	if (document.all){ // Internet Explorer
		var arrSignatures = ["MSXML2.XMLHTTP.5.0", "MSXML2.XMLHTTP.4.0", "MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP", "Microsoft.XMLHTTP"];
		for (var i=0; i < arrSignatures.length; i++) {
			try {
				var oRequest = new ActiveXObject(arrSignatures[i]);
				return oRequest;
			} 
			catch (oError) { }
		}
		throw new Error("MSXML is not installed on your system.");	
	}
	else { // Nestcape ou Firefox
		var oRequest = null;
		if(window.XMLHttpRequest) {	oRequest = new XMLHttpRequest(); }
		else { oRequest = new ActiveXObject("MSXML2.HttpRequest"); }
		return oRequest;
	}
}

function postAjax(metodo, pagina) {
	var Request = criarRequest();  // criacao do objeto XMLHTTP
	/*
	Abrindo a solicitacao HTTP. 
	Parâmetros do AJAX:
		1° parametro - informa o metodo (post/get)
		2° parametro - informa o arquivo solicitado que pode ser asp, php, txt, xml, etc
		3° parametro - informa que a solicitacao é nao assincrona, para solicitacao sincrona o parametro deve ser false  
	*/
	Request.open(metodo, pagina, true);
	/* Para solicitacões utilizando o metodo post deve ser acrescentado este cabecalho HTTP */
	if (metodo == "post") {
		Request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	}
	return Request;
}

function postAjaxSincrono(metodo, pagina) {
	var Request = criarRequest();  // criacao do objeto XMLHTTP
	/*
	Abrindo a solicitacao HTTP. 
	Parâmetros do AJAX:
		1° parametro - informa o metodo (post/get)
		2° parametro - informa o arquivo solicitado que pode ser asp, php, txt, xml, etc
		3° parametro - informa que a solicitacao é nao assincrona, para solicitacao sincrona o parametro deve ser false  
	*/
	Request.open(metodo, pagina, false);
	/* Para solicitacões utilizando o metodo post deve ser acrescentado este cabecalho HTTP */
	if (metodo == "post") {
		Request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	}
	return Request;
}