// Ajax functions

var ajax_xmlHttp = null;
var ajax_UserCallback = null;
var ajax_AlertGiven = false;

function ajax_GetXmlHttpObject()
{
	var xmlHttp = null;
	try { xmlHttp = new XMLHttpRequest(); /* Firefox, Opera 8.0+, Safari */ }
	catch (e)
	{
		try	{ xmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); /* Internet Explorer */ }
		catch (e) { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); }
	}

	return xmlHttp;
}

function ajax_Post (url, params, callback)
{
	if (!ajax_xmlHttp)
	{
		ajax_xmlHttp = ajax_GetXmlHttpObject();

		if (!ajax_xmlHttp && !ajax_AlertGiven)
		{
			alert ("Error: el navegador no tiene soporte para AJAX.");
			ajax_AlertGiven = true;
			return false;
		}
	}
	
	if (typeof (params) == "string")
		paramString = params;
	else
	{
		paramString = "";
		for (key in params)
		{
			if (paramString != "")
				paramString += "&";
			paramString += key + "=" + encodeURIComponent(params[key]);
		}
	}
	
	ajax_UserCallback = callback;
	
	ajax_xmlHttp.open ("POST",url,true);
	ajax_xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	ajax_xmlHttp.setRequestHeader("Content-length", paramString.length);
	ajax_xmlHttp.setRequestHeader("Connection", "close");
	ajax_xmlHttp.onreadystatechange = ajax_Callback;
	ajax_xmlHttp.send (paramString);
	
	return true;
}

function ajax_Callback()
{
	if (ajax_xmlHttp.readyState == 4 && ajax_UserCallback)
		ajax_UserCallback (ajax_xmlHttp.responseText);
}

