var functionlater = null;

function XHConn(){
	
	var xmlhttp, bComplete = false;
	try{
		xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	}catch (e) { 
		try {
			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
		}catch (e) { 
			try {
				xmlhttp = new XMLHttpRequest(); 
			}catch (e) {
				xmlhttp = false; 
			}
		}
	}
	
	if (!xmlhttp) return null;

	this.connect = function(sURL, sMethod, sVars, fnDone){
		if (!xmlhttp) return false;
		bComplete = false;
		sMethod = sMethod.toUpperCase();
	
		try {
			if (sMethod == "GET"){
				xmlhttp.open(sMethod, sURL+"?"+sVars, true);
				sVars = "";
			}else{
				xmlhttp.open(sMethod, sURL, true);
				xmlhttp.setRequestHeader("Method", "POST "+sURL+" HTTP/1.1");
				xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
			}
			
			xmlhttp.onreadystatechange = function(){
				if (xmlhttp.readyState == 4 && !bComplete){
					bComplete = true;
					fnDone(xmlhttp);
				}
			};
			xmlhttp.send(sVars);
		}catch(z) { 
			return false; 
		}
		return true;
	};
	return this;
}

function page(targetId,url,params,mensaje) {
target= document.getElementById(targetId);
if (mensaje.length > 0){
	if (mensaje == " ") {
		target.innerHTML = "Espere...";	
	}else{
		target.innerHTML = mensaje;
	}
}
var myConn = new XHConn();
    if (!myConn)alert("XMLHTTP not available. Try a newer/better browser.");
    var query = function (oXML) {
									target.innerHTML = oXML.responseText;
									if (typeof(functionlater) == "string"){
										//alert(functionlater);
										eval(functionlater);
										functionlater = null;
									}else{
										//alert(typeof(functionlater));
									}
								};
    myConn.connect(url, "POST", params, query);
}

function data(url,params){
	
	var myConn = new XHConn();
	if (!myConn)alert("XMLHTTP not available. Try a newer/better browser.");
    var query = function (oXML) {  return oXML.responseText; };
    myConn.connect(url, "POST", params, query);
}