

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){
		  //return false;
		//}
		if (ajax_external!='')
			eval(ajax_external);
	}
	return false;
	
}

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