var livello;
var xmlreqs = new Array();

function CXMLReq(freed) {
	this.freed = freed;
	this.xmlhttp = false;
	if(window.XMLHttpRequest) {
		this.xmlhttp = new XMLHttpRequest();
	} else if(window.ActiveXObject) {
		this.xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
	}
}

function frich(p2, p3, p4) {
	livello = p3;
	if(p4 != '') {
		document.getElementById(livello).style.display = 'block';
		document.getElementById(livello).innerHTML = '';
		var pos = -1;
		for(var i = 0; i<xmlreqs.length; i++) {
			if(xmlreqs[i].freed === 1) {pos = i; break;}
		}
		if(pos === -1) {pos = xmlreqs.length; xmlreqs[pos] = new CXMLReq(1);}
		if(xmlreqs[pos].xmlhttp) {
			xmlreqs[pos].freed = 0;
				xmlreqs[pos].xmlhttp.open("GET", p2, true);				
				xmlreqs[pos].xmlhttp.onreadystatechange = function() {
					if(typeof(xmlhttpChange) !== 'undefined') {xmlhttpChange(pos);}
				}
				if(window.XMLHttpRequest) {
					xmlreqs[pos].xmlhttp.send(null);
				} else if(window.ActiveXObject) {	
					xmlreqs[pos].xmlhttp.send();
				}
		}else {
			document.getElementById(livello).innerHTML = 'Problemi del browser: tecnologia non supportata'; 
		}
	}else {
		fcanc(livello);
	}
}

function xmlhttpChange(pos) {
	if (typeof(xmlreqs[pos]) !== 'undefined' && xmlreqs[pos].freed === 0 && xmlreqs[pos].xmlhttp.readyState === 4) {
		if (xmlreqs[pos].xmlhttp.status === 200 || xmlreqs[pos].xmlhttp.status == 304) {	
			document.getElementById(livello).innerHTML = xmlreqs[pos].xmlhttp.responseText;
		}else {
			document.getElementById(livello).innerHTML = 'Error...';
		}				
		xmlreqs[pos].freed = 1;
	}else {
		document.getElementById(livello).innerHTML = 'Attendere...';
	}
}

function fcanc(p1) {
	document.getElementById(p1).innerHTML = '';
	document.getElementById(p1).style.display = 'none';
}

