

var ajax_req;  // OBJETO XML (ajax)
var ajax_result='';
var ajax_external='';
function loadXMLDoc(url) {
    // branch for native XMLHttpRequest object
    if (window.XMLHttpRequest) {
        ajax_req = new XMLHttpRequest();
        ajax_req.onreadystatechange = processReqChange;
        ajax_req.open("GET", url, true);
		ajax_req.setRequestHeader("Referer", window.location);
        ajax_req.send(null);
    // branch for IE/Windows ActiveX version
    } else if (window.ActiveXObject) {
        ajax_req = new ActiveXObject("Microsoft.XMLHTTP");
        if (ajax_req) {
            ajax_req.onreadystatechange = processReqChange;
            ajax_req.open("GET", url, true);
            ajax_req.send();
        }
    }
}

// FUNCION Q SE LLAMA EN CADA PETICION AL AJAX
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_reading) {
					//cargo el resultado de la url
					ajax_result=ajax_req.responseText;
				} else {
					ajax_result='ERROR:busy';
				}
			} 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;
	
}

var ajax_reading = false; // SEMAFORO!
function LoadURL(url, external) {
	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);
		return ajax_result;
	}
	else
		return '';
}