var w3c = document.getElementById;
var ie;


function getXmlHttpObject()
{
	var xmlHttp = null;
	try
	  {
	  	xmlHttp = new XMLHttpRequest();
	  }
	catch (e)
	  {
	  try
	    {
	    xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
	    }
	  catch (e)
	    {
	    xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
	    }
	  }
	return xmlHttp;
}
	
function getXmlHttpObject2()
{
	var request = null;
	if (window.XMLHttpRequest) 
	{
		request = new XMLHttpRequest();
	} 
	else if (window.ActiveXObject) 
	{
		request = new ActiveXObject("Microsoft.XMLHTTP");
	}
	return request;
}

function Ajax(url, layer, afterLoad, post)
{
	show_loading(layer);
	var request = getXmlHttpObject();
	
	request.onreadystatechange = function(){processStatusChange();}
	if (post == undefined)
	{
		request.open("GET", url, true);
		request.send(null);
	}
	else
	{
		request.open("POST", url, true);
		request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=ISO-8859-1');
		request.send(post);
	}
	
	function processStatusChange()
	{
		if (request.readyState == 4) 
		{
			contenido = request.responseText.split("@@@", 2);
			if(contenido[1])
			{
				eval(contenido[1])				
				document.getElementById(layer).innerHTML = contenido[0];
			}
			else
			{
				document.getElementById(layer).innerHTML = contenido;
			}
			//document.getElementById(layer).innerHTML = request.responseText;
			afterLoad_();
		}
	}


	function afterLoad_()
	{
		if(afterLoad)
		{
			eval(afterLoad);
		}
	}

	function show_loading(layer)
	{
		loading_layer_name = 'ajax_loading_layer';
	
		if(!document.getElementById(loading_layer_name))
		{
			ajax_layer = document.getElementById(layer);
			var loading_layer = document.createElement('div');
			var loading_image_layer = document.createElement('div');		

			loading_image_layer.innerHTML = '<img src="images/loadingAjax.gif" class="ajax_loading_image"/>';	
			loading_image_layer.className = "ajax_loading_image";
			
			//433+15 = 448 de alto;
			//373+340-110 = 630 de ancho.
			//alert(js_getimgleft(ajax_layer));//373
			//alert(ajax_layer.offsetWidth / 2);//340
			//loading_image_layer.style.top = js_getimgtop(ajax_layer) + (ajax_layer.offsetHeight / 2);
			//loading_image_layer.style.left = js_getimgleft(ajax_layer) + (ajax_layer.offsetWidth / 2) - 110;

			loading_layer.className = "ajax_loading";
			loading_layer.style.width = ajax_layer.offsetWidth;
			loading_layer.style.height = ajax_layer.offsetHeight;
			loading_layer.style.top = js_getimgtop(ajax_layer); //433
			loading_layer.style.left = js_getimgleft(ajax_layer); //373
			
			ajax_layer.innerHTML = loading_image_layer.innerHTML;
			//ajax_layer.appendChild(loading_image_layer);
			
		}
	}	
	
	function js_getimgtop(img) 
	{
		if(ie || w3c) 
		{
			var y, obj;
			y = 0;
			obj = img;
			while (obj.offsetParent != null) 
			{
				y += obj.offsetTop;
				obj = obj.offsetParent;
			}
			y += obj.offsetTop;
			return y;
		}
	
		if(w3c)
			return img.offsetTop;
	
		if(ns())
			return img.y;
	
		return -1; 
	}
	
	function js_getimgleft(img)
	{
		if(ie || w3c) 
		{
			var x, obj;
			x = 0;
			obj = img;
			while (obj.offsetParent != null) 
			{
				x += obj.offsetLeft;
				obj = obj.offsetParent;
			}
			x += obj.offsetLeft;
			return x;
		}
		if(w3c)
			return img.offsetLeft;
		if(ns())
			return img.x;
		return -1;
	}
}

/****************************************************************************************************/