/*
quanto ao parametro modo
true - assíncrono - execução paralela
false - sincrono = execução aguarda o carregamento antes de executar a próxima instrução
*/

function enviaPost(parametros, modo){
	xmlHttp=GetXmlHttpObject(stateChanged);
	xmlHttp.open("POST", url , modo);
	xmlHttp.setRequestHeader("Cache-Control","no-store, no-cache, must-revalidate");
	xmlHttp.setRequestHeader("Cache-Control","post-check=0, pre-check=0");
	xmlHttp.setRequestHeader("Pragma", "no-cache");
	xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;');
	xmlHttp.send(parametros);
}

function enviaGet(modo){
	xmlHttp=GetXmlHttpObject(stateChanged);
	xmlHttp.open("GET", url , modo);
	xmlHttp.setRequestHeader("Content-Type", "text/html; charset=UTF-8");
	xmlHttp.send(null);
}

//utilizado para informar o nome de um stateChange específico
function enviaGetStateChange(modo, stateChangeName){
	xmlHttp=GetXmlHttpObject(eval(stateChangeName));
	xmlHttp.open("GET", url , modo);
	xmlHttp.setRequestHeader("Content-Type", "text/html; charset=UTF-8");
	xmlHttp.send(null);
}


//passando a url como parametro
function enviaPostUrl(parametros, modo, src){
	xmlHttp=GetXmlHttpObject(stateChanged);
	xmlHttp.open("POST", src , modo);
	xmlHttp.setRequestHeader("Cache-Control","no-store, no-cache, must-revalidate");
	xmlHttp.setRequestHeader("Cache-Control","post-check=0, pre-check=0");
	xmlHttp.setRequestHeader("Pragma", "no-cache");
	xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;');
	xmlHttp.send(parametros);
}

//passando a url como parametro
function enviaPostUrlStateChange(parametros, modo, src, stateChangeName){
	//alert(parametros);
	xmlHttp=GetXmlHttpObject(eval(stateChangeName));
	xmlHttp.open("POST", src , modo);
	xmlHttp.setRequestHeader("Cache-Control","no-store, no-cache, must-revalidate");
	xmlHttp.setRequestHeader("Cache-Control","post-check=0, pre-check=0");
	xmlHttp.setRequestHeader("Pragma", "no-cache");
	xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;');
	xmlHttp.send(parametros);
}

function enviaGetUrl(modo,src){
	xmlHttp=GetXmlHttpObject(stateChanged);
	xmlHttp.open("GET", src , modo);
	xmlHttp.setRequestHeader("Content-Type", "text/html; charset=UTF-8");
	xmlHttp.send(null);
}

function GetXmlHttpObject(handler){ 
	var objXmlHttp=null
	
	if (navigator.userAgent.indexOf("Opera")>=0){
		alert("Esta aplicação não funciona em Opera. Contate o administrador do sistema.");
		return;
	}
	if (navigator.userAgent.indexOf("MSIE")>=0){ 
		var strName="Msxml2.XMLHTTP";
		if (navigator.appVersion.indexOf("MSIE 5.5")>=0){
			strName="Microsoft.XMLHTTP";
		} 
		try	{ 
			objXmlHttp=new ActiveXObject(strName)
			objXmlHttp.onreadystatechange=handler; 
			return objXmlHttp;
		} 
		catch(e){ 
			alert("Erro. O script activeX esta desabilitado. Contate o administrador do sistema."); 
			return 
		} 
	} 
	if (navigator.userAgent.indexOf("Mozilla")>=0){
		objXmlHttp=new XMLHttpRequest();
		objXmlHttp.onload=handler;
		objXmlHttp.onerror=handler; 
		return objXmlHttp;
	}
} 


//para utilização de um objeto xmlhppt

/*function GetXmlHttpObject(handler){ 
	var objXmlHttp = null;
	
	if (navigator.userAgent.indexOf("MSIE") >= 0){ 
		var MSXML = ['MSXML2.XMLHttp.6.0','MSXML2.XMLHTTP.5.0', 'MSXML2.XMLHTTP.4.0', 'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP', 'Microsoft.XMLHTTP'];
		for(var n = 0; n < MSXML.length; n ++){
			try{
				var objXmlHttp = new ActiveXObject(MSXML[n]);
				break;
			}catch(e){}
		}
		
		try	{ 
			//objXmlHttp = new ActiveXObject(strName)
			objXmlHttp.onreadystatechange = handler; 
			return objXmlHttp;
		}catch(e){ 
			alert("Erro. O script activeX esta desabilitado ou desatualizado, contate o administrador"); 
			return;
		} 
	}else if (navigator.userAgent.indexOf("Mozilla") >= 0){
		objXmlHttp = new XMLHttpRequest();
		objXmlHttp.onload = handler;
		objXmlHttp.onerror = handler; 
		return objXmlHttp;
	}else if (navigator.userAgent.indexOf("Opera") >= 0){
		alert("Essa aplicação não funciona no navegador Opera.");
		return;
	}
} */

/*
function GetXmlHttpObject(handler)
{
	var vAjax;
	
	var objIE = ["MSXML2.XMLHttp.6.0", 
					"MSXML2.XMLHttp.5.0", 
					"MSXML2.XMLHttp.4.0", 
					"MSXML2.XMLHttp.3.0", 
					"MSXML2.XMLHttp", 
					"Microsoft.XMLHttp"];
					
	if (window.XMLHttpRquest){// mozila, safari
		vAjax = new XMLHttpRequest();
		vAjax.onload = handler;
		vAjax.onerror = handler; 
	}else if (window.ActiveXObject){ // IE
		var n = objIE.length;
		
		for (var i = 0; i < n; i++){
			try{
				vAjax = new ActiveXObject(objIE[i]);
				vAjax.onreadystatechange = handler; 
				break;
			} catch (err){
				alert("Erro. O script activeX esta desabilitado ou desatualizado, contate o administrador"); 
				return 
				vAjax =  false;
			}// catch
		}// for
	}else{
		alert("Erro. O script activeX esta desabilitado ou desatualizado, contate o administrador"); 
		return 
		vAjax =  false; // quando browser não suporta HMLHTTP
	}
	return vAjax;
}
*/