/* función para crear un objeto HTTP */
function createXMLHttp() {
	if( typeof XMLHttpRequest != "undefined" ) {
		return new XMLHttpRequest();
	}
	else if( window.ActiveXObject) {
		var aVersions = [ 
			"MSXML2.XMLHttp.5.0",
			"MSXML2.XMLHttp.4.0",
			"MSXML2.XMLHttp.3.0",
			"MSXML2.XMLHttp",
			"Microsoft.XMLHttp"
		];
		for( var i = 0; i < aVersions.length; i++ ) {
			try {
				var oXmlHttp = new ActiveXObject( aVersions[i] );
				return oXmlHttp;
			}
			catch ( oError ) {
				// Error
			}
		}
	}
	throw new Error("El objecto XMLHttp no pudo ser creado");
}

var xmlHttpResult = "";
var xmlHttpError = "";
/********************************************************************************************************************
 * Función que realiza conexión HTTP y regresa el código HTML, después ejecuta la función enviada como parámetro	*
 * 'execute' si no se envía el parámetro el resultado del httprequest se insertará en el div con el id del parámetro*
 * domObject. IS																									*
 ********************************************************************************************************************/
function getHttpRequest(action, execute, domObject, message) {
	var oXmlHttp = createXMLHttp();
	//oXmlHttp.setRequestHeader("Content-type", "text/html; charset=ISO-8859-1");
	oXmlHttp.open("get", action, true);	
	oXmlHttp.onreadystatechange = function () {
		if ( oXmlHttp.readyState == 4 ) {
			if( oXmlHttp.status == 200 )
				xmlHttpResult = oXmlHttp.responseText;
			else {	
				xmlHttpResult = "*** ERROR *** <br/><a href='javascript:alert(xmlHttpError);'>Ver detalle</a>";
				xmlHttpError = "Error ID : " + oXmlHttp.status + "\nDescripción : " + oXmlHttp.responseText;
			}
			//alert(escape(oXmlHttp.responseText));
			//alert(unescape(escape(oXmlHttp.responseText)));
			if( domObject != '' )
				GetObjectByID(domObject).innerHTML = xmlHttpResult;
			if( execute != '' )
				eval(execute);
			if( domObject == '' && execute == '' )	
				window.status("Datos guardados correctamente...");
		}
	};
	oXmlHttp.send(null);
}

function GetObjectByID(objectID) {
	// Si el browser es NS 4 o menor
	if(document.layers)
		return document.layers[objectID];
	// Si el browser es IE 4 o +	
	else if(document.all)
		return eval('document.all.' + objectID);
	else
		return document.getElementById(objectID);
}