var ajax_req;             // OBJETO XML de solicitacion de informacion (ajax)
var ajax_req_put;         // OBJETO XML de envio de informacion (ajax)
var ajax_result='';       // Resultado del ajax
var ajax_external='';     // CallBack Function
var ajax_reading = false; // SEMAFORO!

function loadXMLDoc(url) 
{
    if (window.XMLHttpRequest) 
    {
    	  // branch for native XMLHttpRequest object
        ajax_req = new XMLHttpRequest();
        ajax_req.onreadystatechange = processReqChange;
        ajax_req.open("GET", url, true);
       	ajax_req.setRequestHeader("Referer", window.location);
        ajax_req.send(null);
    } 
    else if (window.ActiveXObject) 
    {
    	  // branch for IE/Windows ActiveX version
        ajax_req = new ActiveXObject("Microsoft.XMLHTTP");
        if (ajax_req) 
        {
            ajax_req.onreadystatechange = processReqChange;
            ajax_req.open("GET", url, true);
            ajax_req.send();
        }
    }
}


function processReqChange() 
{
	// only if ajax_req shows "complete"
	if (ajax_req.readyState == 4)
	{
		// si "OK"
		try
		{
			if (ajax_req.status == 200) 
			{
				// si anda todo bien, proceso...
				if (ajax_req.responseText == 'no-session')
					document.location = '/stats/index.php';
				else	
					ajax_result=ajax_req.responseText;
			} 
			else
				ajax_result='ERROR:'+ajax_req.statusText;
			ajax_reading = false;
		}
		catch (E)
		{
			ajax_reading = false;
		  return false;
		}
		if (ajax_external!='')
			eval(ajax_external);
	}
	return false;
	
}

function LoadURL(url, external) {
	if (external == '')
	{
		// No se espera vuelta de informacion
		if (window.XMLHttpRequest) 
		{
        ajax_req_put = new XMLHttpRequest();
        ajax_req_put.onreadystatechange = function(){};
        ajax_req_put.open("GET", url, true);
       	ajax_req_put.setRequestHeader("Referer", window.location);
        ajax_req_put.send(null);
    } 
    else if (window.ActiveXObject) 
    {
        ajax_req_put = new ActiveXObject("Microsoft.XMLHTTP");
        if (ajax_req_put) 
        {
            ajax_req_put.onreadystatechange = function(){};;
            ajax_req_put.open("GET", url, true);
            ajax_req_put.send();
        }
    }
 	}
	else
	{	
		// Solicitacion de informacion
		if (!ajax_reading)
		{
			ajax_reading = true;
			ajax_result='';
			
			var d = new Date()
			var uID = '' + d.getDate()+d.getMonth() +1+d.getFullYear()+d.getHours()+d.getMinutes()+d.getSeconds()+Math.random();
			if (url.indexOf('?')>0)
				url  = url+'&ajaxID='+uID;
			else
				url  = url+'?ajaxID='+uID;
		
			ajax_external=external;
			loadXMLDoc(url);
		}
		else
			return false;
	}	
	return true;
}