// (c) Xatcom.net 2006
// Prohibida la copia o reproducción parcial o total de este documento
// realizado por Carlos Martínez
var nav = (navigator.appName).search("Microsoft");

var ImgLoading = new Image(); ImgLoading.src = "/img/loading.gif";

var AJXresponse = new Array();
function Ajax_Open (url, funcDestino, id) {
	if (window.XMLHttpRequest) {
		AJXresponse[id] = new XMLHttpRequest ();
	} else if (window.ActiveXObject) {
		try {
			AJXresponse[id] = new ActiveXObject ("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				AJXresponse[id] = new ActiveXObject ("Microsoft.XMLHTTP");
			} catch (e) { }
		}
	} else {
		alert("Su navegador no soporta AJAX. Por favor, actualícelo a la última versión.");
		return false;
	} //IF_ELSEIF_ELSE

	eval("AJXresponse[" + id + "].onreadystatechange = function () { " + funcDestino + "; }");
	AJXresponse[id].open ('GET', url, true); // asignamos los métodos open y send
	AJXresponse[id].send (null);
} //function

function Ajax_SendForm (url, formname, method, funcDestino, id) {
	var i;
	var RequestVars="";
	var formMethod;
	eval ("var formObj = document." + formname);

	for (i=0; i<formObj.elements.length; i++) {
		if ( RequestVars.length>0 ) { RequestVars += "&"; }
		if (formObj.elements[i].type=="radio" || formObj.elements[i].type=="checkbox") {
			if ( formObj.elements[i].checked==true ) {
				RequestVars += formObj.elements[i].name;
				RequestVars += "=" + encodeURIComponent(formObj.elements[i].value);
			}
		} else {
			RequestVars += formObj.elements[i].name;
			RequestVars += "=" + encodeURIComponent(formObj.elements[i].value);
		}
	} //FOR

	if (window.XMLHttpRequest) {
		AJXresponse[id] = new XMLHttpRequest ();
	} else if (window.ActiveXObject) {
		try {
			AJXresponse[id] = new ActiveXObject ("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				AJXresponse[id] = new ActiveXObject ("Microsoft.XMLHTTP");
			} catch (e) { }
		}
	} else {
		alert("Su navegador no soporta AJAX. Por favor, actualícelo a la última versión.");
		return false;
	} //IF_ELSEIF_ELSE

	eval("AJXresponse[" + id + "].onreadystatechange = function () { " + funcDestino + "; }");

	//Averigua el mètode
	if ( method.toUpperCase()=="POST" ) { formMethod="POST"; } else { formMethod="GET"; }

	AJXresponse[id].open(formMethod, url, true); // asignamos los métodos open y send
	AJXresponse[id].setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	AJXresponse[id].setRequestHeader("Content-length", RequestVars.length);
	AJXresponse[id].setRequestHeader("Connection", "close");
	AJXresponse[id].send(RequestVars);
}  //function

function AJAX_result(id) {
	try {
		if (AJXresponse[id].readyState==4 && AJXresponse[id].status==200) {
			alert(AJXresponse[id].responseText);
		} else if (AJXresponse[id].status==404) {
			alert("No se ha encontrado la página de destino");
		} else if (AJXresponse[id].readyState==4 && AJXresponse[id].status!=404 && AJXresponse[id].status!=200) {
			alert("No se ha podido cargar la página. Por favor, inténtelo de nuevo más tarde.");
		} //if_elseif
	} catch (e) {}
} //function

function AjaxLink() {
	var url=arguments[0];
	var id=parseInt(arguments[1]);
	var prefix="AjxContent";
	if ( arguments.length>2 ) { prefix=arguments[2]; }
	AJAXLoading(true,id,prefix);
	Ajax_Open(url,"AJAXLoading_result(" + id + ",'" + prefix + "')",id);
}

function CapaContent(capaname, content) {
	if (nav==-1)
		CapaLoading = document.getElementById(capaname);
	else
		eval("CapaLoading = document.all." + capaname);
	CapaLoading.innerHTML = content;
}  //function

var AJAXloading_img = "/img/loading.gif";
var AJAXLoadingStatus = new Array(4);
AJAXLoadingStatus[0] = false; AJAXLoadingStatus[1] = false; AJAXLoadingStatus[2] = false; AJAXLoadingStatus[3] = false;
function AJAXLoading() {
	var status=!!arguments[0];
	var id=parseInt(arguments[1]);
	var prefix="AjxContent";
	if ( arguments.length>2 ) { prefix=arguments[2]; }
	var objBody = document.getElementsByTagName("body").item(0);
	if (status==false) {
		//Amaga capa loading
		var objDIV = document.getElementById("AjxDIVLoading" + id);
		if (objDIV==null) return;
		objBody.removeChild(objDIV);
		AJAXLoadingStatus[id] = false;
	} else {
		if (AJAXLoadingStatus[id]==true) { return; }
		AJAXLoadingStatus[id]=true;
		//Mostra capa loading
		var objDIV = document.getElementById(prefix + id);
		if (objDIV==null) return;
		var objLdng = document.createElement("div");
		objLdng.setAttribute('id','AjxDIVLoading' + id);
		objLdng.style.visibility = 'visible';
		objLdng.style.position = 'absolute';
		objLdng.style.textAlign = 'center';
		objLdng.style.backgroundColor = '#444444';
		objLdng.style.color = '#ffffff';
		objLdng.style.fontFamily = 'Arial';
		if (nav==-1) {
			objLdng.style.opacity = 0.8;
			objLdng.style.width = objDIV.offsetWidth + 'px';
			objLdng.style.height = objDIV.offsetHeight + 'px';
			objLdng.style.top = findPosY(objDIV) + 'px';
			objLdng.style.left = findPosX(objDIV) + 'px';
		} else {
			objLdng.style.filter = 'alpha(opacity=80)';
			objLdng.style.pixelWidth = objDIV.offsetWidth;
			objLdng.style.pixelHeight = objDIV.offsetHeight;
			objLdng.style.pixelTop = findPosY(objDIV);
			objLdng.style.pixelLeft = findPosX(objDIV);
		} //if_else
		objLdng.innerHTML = "<br><img src=\"" + AJAXloading_img + "\"><b>LOADING...</b>";
		objBody.appendChild(objLdng); //Afegeix l'element
	}
} //function

function AJAXLoading_result() {
	var id=parseInt(arguments[0]);
	var prefix="AjxContent";
	if ( arguments.length>1 ) { prefix=arguments[1]; }
	try {
		if (AJXresponse[id].readyState == 4 && AJXresponse[id].status == 200) {
			document.getElementById(prefix + id.toString()).innerHTML = AJXresponse[id].responseText;
			if (AJAXLoadingStatus[id]==true) { AJAXLoading(false,id,prefix); }
			if ( arguments.length>2 ) eval(arguments[2]);
		} else if (AJXresponse[id].status == 404) {
			alert("No se ha encontrado la página de destino");
			if (AJAXLoadingStatus[id]==true) { AJAXLoading(false,id,prefix); }
			if ( arguments.length>2 ) eval(arguments[2]);
		} else if (AJXresponse[id].readyState == 4 && AJXresponse[id].status!= 404 && AJXresponse[id].status!= 200) {
			alert("No se ha podido cargar la página. Por favor, inténtelo de nuevo más tarde.");
			if (AJAXLoadingStatus[id]==true) { AJAXLoading(false,id,prefix); }
			if ( arguments.length>2 ) eval(arguments[2]);
		} //if_elseif
	} catch (e) {}
} //function
