/**********************************************************************************************************************
File: lib_ajax.js
Info: Motor de AJAX 
Author: SiPoX
Version: 2.0 - 13/02/2008 - SiPoX
**********************************************************************************************************************/

//var layerName = 'layer';  


/* Genera el objeto HttpRequest(), objeto para el uso de AJAX */
function genAJAX()  
{
	xmlhttp = null; 
	
	// Nueva forma de llamar
	try
 	{
 		// Firefox, Opera 8.0+, Safari
 		xmlhttp = new XMLHttpRequest();
 		//if (xmlhttp.overrideMimeType) xmlhttp.overrideMimeType('text/xml'); 

 	}
	catch (e)
 	{
 		// Internet Explorer
 		try
  		{
  			xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  		}
 		catch (e)
  		{
  			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
  		}
 	}

	
	// Devolvemos el objeto.. 
	return xmlhttp;
}


/* Envía el objeto AJAX, enviando con el la petición asincrona http */
function sendAJAX(xmlhttp, method, urlToLoad, async, callback) 
{
	xmlhttp.open(method, urlToLoad, async);
	
 	xmlhttp.onreadystatechange=function() 
	{
    		if (xmlhttp.readyState==4) 
    		{ //readyState retorna 4 al terminar la operacion
   			callback(xmlhttp); //Retorna resultado
		}
 	}
 	
 	xmlhttp.send(null);
}


/* Obtiene el contenido de lo devuelto por la peticion http y lo carga en la capa apropiada.. *
function getAJAX(httpRequest, layer_name) 
{ 
	var val="";
	var layer_name=layerName;
	
	alert(layerName);  
	 
		
	for(i in httpRequest) 
	{
		try {
		val+="httpRequest."+i+"="+httpRequest[i]+"\n";
		} 
		catch(e) {}
	}
	
	// Si estado == alguna fase de carga...
	if (httpRequest.readyState==1) document.getElementById(layerName).innerHTML="cargando.";
	else if (httpRequest.readyState==2) document.getElementById(layerName).innerHTML="cargando..";
	else if (httpRequest.readyState==3) document.getElementById(layerName).innerHTML="cargando...";
	else if (httpRequest.readyState==4) // Objecto cargado....
	{
		if (httpRequest.status == 200) document.getElementById(layerName).innerHTML=httpRequest.responseText;  // Todo OK		
		else if(httpRequest.status==404) alert("Esta pagina no existe");                                                                             // Error 404, p�gina no encontrada... 
		else document.getElementById(layerName).innerHTML="error al procesar!";		                                                   // Otro Error 
	}	
	
    //	document.getElementById(layerName).innerHTML=httpRequest.responseText; 
}
*/

//eval(topOpenItem + ".style.display = 'none'");


/* Funcion a la que llamar para generar una zona basada en AJAX */
function genContent(element, urlToLoad) 
{
	 var httpRequest=genAJAX();  //Iniciamos proceso
	
	//var value_layer=document.getElementById(element).value //Declaramos variables de uso
	var layerName=element;
	
	document.getElementById(element).style.display = "block";		
	 
	if (httpRequest)
	{
		httpRequest.open("GET", urlToLoad, true); 	
		
		//if (typeof document.readyState!='undefined')
		 
		httpRequest.onreadystatechange = function() 
		{		
			// Si estado == alguna fase de carga...
			if (httpRequest.readyState==1) document.getElementById(element).innerHTML="cargando.";
			else if (httpRequest.readyState==2) document.getElementById(element).innerHTML="cargando..";
			else if (httpRequest.readyState==3) document.getElementById(element).innerHTML="cargando...";
			else if (httpRequest.readyState==4) // Objecto cargado....
			{
				if (httpRequest.status == 200) document.getElementById(element).innerHTML=httpRequest.responseText;  // Todo OK		
				else if(httpRequest.status==404) alert("Esta pagina no existe");                                                                             // Error 404, p�gina no encontrada... 
				else document.getElementById(element).innerHTML="<!-- error loading ajax module! " + httpRequest.status + "!-->";		                                                   // Otro Error 
			}		
			
			//return 	
		};	
	
		httpRequest.send(null);
	
	}
	
	//recalExplorerAJAX();
	if (document.getElementById("footer")!=null)
	{
		document.getElementById("footer").style.bottom = (((-1)) + "px");
		document.getElementById("footer").style.bottom = (((0)) + "px");
	}
}


function loadAJAX(layer, url)
{
	new Ajax.Updater(layer, url);
}




