// Este archivo está protegido por la ley. Está prohibida su copia, modificación o districución, parcial o total-
// (c) Xatcom.net

	var nav = (navigator.appName).search("Microsoft");

	var ImgLoading = new Image();
	ImgLoading.src = "../graficos/loading.gif";
	
	var pagina_requerida = new Array();
	function Ajax_Open (url, funcDestino, id)
	{
		if (window.XMLHttpRequest)
		{
			// Si es Mozilla, Safari etc
			pagina_requerida[id] = new XMLHttpRequest ();
		} else if (window.ActiveXObject) {
			// pero si es IE
			try {
				pagina_requerida[id] = new ActiveXObject ("Msxml2.XMLHTTP");
			} catch (e) {
				// en caso que sea una versión antigua
				try {
					pagina_requerida[id] = new ActiveXObject ("Microsoft.XMLHTTP");
				} catch (e) { }
			} //try_catch
		} else {
			alert("Su navegador no soporta AJAX. Por favor, actualícelo a la última versión.");
			return false;
		} //IF_ELSEIF_ELSE

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

	function Ajax_End() {
		var id=0;
		if (pagina_requerida[id].readyState == 4 && pagina_requerida[id].status == 200)
		{
			alert(pagina_requerida[id].responseText);
			QuadreMinimitza();
			Dialog_Close();
		} else if (pagina_requerida[id].status == 404) {
			alert("Destino de datos incorrecto");
			Dialog_Close();
		} else if (pagina_requerida[id].readyState == 4 && pagina_requerida[id].status!= 404 && pagina_requerida[id].status!= 200) {
			alert("Error " + pagina_requerida[id].status + "! Por favor, inténtelo de nuevo.");
			Dialog_Close();
		} //if_elseif
	} //end_function_Ajax_End()

	var AJAXFormRequest;
	function Ajax_SendForm (url, formname, method, funcDestino)
	{
		var i;
		var RequestVars="";
		var formMethod;
		eval ("var formObj = document." + formname);
		
		for (i=0; i<formObj.elements.length; i++) {
			if ( RequestVars.length>0 ) { RequestVars += "&"; }
			RequestVars += formObj.elements[i].name;
			RequestVars += "=" + encodeURIComponent(formObj.elements[i].value);
		} //FOR

		if (window.XMLHttpRequest)
		{
			// Si es Mozilla, Safari etc
			AJAXFormRequest = new XMLHttpRequest ();
		} else if (window.ActiveXObject) {
			// pero si es IE
			try {
				AJAXFormRequest = new ActiveXObject ("Msxml2.XMLHTTP");
			} catch (e) {
				// en caso que sea una versión antigua
				try {
					AJAXFormRequest = new ActiveXObject ("Microsoft.XMLHTTP");
				} catch (e) { }
			} //try_catch
		} else {
			alert("Su navegador no soporta AJAX. Por favor, actualícelo a la última versión.");
			return false;
		} //IF_ELSEIF_ELSE

		eval("AJAXFormRequest.onreadystatechange = function () { " + funcDestino + "; }");

		//Averigua el mètode
		if ( method.toUpperCase()=="POST" ) { formMethod="POST"; } else { formMethod="GET"; }
		
		AJAXFormRequest.open(formMethod, url, true); // asignamos los métodos open y send
		AJAXFormRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		AJAXFormRequest.setRequestHeader("Content-length", RequestVars.length);
		AJAXFormRequest.setRequestHeader("Connection", "close");
		AJAXFormRequest.send(RequestVars);
	} //end_function_Ajax_SendForm()

	function AJAX_Form_End() {
		try {
			if (AJAXFormRequest.readyState == 4 && AJAXFormRequest.status == 200)
			{
				CapaLoadingContent(AJAXFormRequest.responseText);
			} else if (AJAXFormRequest.status == 404) {
				CapaLoadingContent("Destino de datos incorrecto");
			} else if (AJAXFormRequest.readyState == 4 && AJAXFormRequest.status!= 404 && AJAXFormRequest.status!= 200) {
				CapaLoadingContent("Error " + AJAXFormRequest.status + "! Por favor, inténtelo de nuevo.");
			} //if_elseif
		} catch (e) {}
	} //end_function_Ajax_End()

	function CapaContent(capaname, content) {
		if (nav==-1) {
			CapaLoading = document.getElementById(capaname);
		} else {
			eval("CapaLoading = document.all." + capaname);
		} //IF_ELSE
		CapaLoading.innerHTML = content;
	} //end_function_CapaContent()
	
	function findPosX(obj) {
   	 	var curleft = 0;
    	if(obj.offsetParent)
        	while(1) 
        	{
          	curleft += obj.offsetLeft;
          	if(!obj.offsetParent)
            	break;
          	obj = obj.offsetParent;
        	}
    	else if(obj.x)
        	curleft += obj.x;
    	return curleft;
  	} //function

  	function findPosY(obj) {
    	var curtop = 0;
    	if(obj.offsetParent)
        	while(1)
        	{
          	curtop += obj.offsetTop;
          	if(!obj.offsetParent)
            	break;
          	obj = obj.offsetParent;
        	}
    	else if(obj.y)
        	curtop += obj.y;
    	return curtop;
  	} //function
	
	var AJAXloading_img = "../grafics/loading.gif";
	var AJAXLoadingStatus = new Array(4);
	AJAXLoadingStatus[0] = false; AJAXLoadingStatus[1] = false; AJAXLoadingStatus[2] = false; AJAXLoadingStatus[3] = false;
	function AJAXLoading(status, id) {
		var objBody = document.getElementsByTagName("body").item(0);
		if (status==false) {
			//Amaga capa loading
			var objDIV = document.getElementById("AjxDIVLoading" + id);
			objBody.removeChild(objDIV);
			AJAXLoadingStatus[id] = false;
		} else {
			if (AJAXLoadingStatus[id]==true) { return; }
			AJAXLoadingStatus[id]=true;
			//Mostra capa loading
			var objDIV = document.getElementById("AjxContent" + id);
			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><h3>CARGANDO...</h3>Espere un momento, por favor.<br><img src=\"" + AJAXloading_img + "\">";
			objBody.appendChild(objLdng); //Afegeix l'element
		}
	} //end_function_CapaContent()

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