var livello;
var xmlreqs = new Array();

var queryString;
function setQueryString(p1){
    queryString = "";
    var frm = document.forms[p1];
    var numberElements =  frm.elements.length;
    for(var i = 0; i < numberElements; i++)  {
		if(frm.elements[i].name) {
			if(i < numberElements-1)  {
				queryString += frm.elements[i].name+"="+encodeURIComponent(frm.elements[i].value)+"&";
			} else{
				queryString += frm.elements[i].name+"="+encodeURIComponent(frm.elements[i].value);
			}
		}
    }
}

function fcanc(p1) {
	document.getElementById(p1).innerHTML = '';
	document.getElementById(p1).style.display = 'none';
}

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 fadeIn(divID, time) {
  var speed = Math.round(time / 100);
  var frame = 0;  
  for(fade = 0; fade < 100; fade++) { 
    setTimeout("setOpacity('"+divID+"', "+fade+")", (speed * frame));
    frame++;
  }
}
function setOpacity(id, opacity) {
  var element = document.getElementById(id);
  if(document.all)
    element.style.filter = "alpha(opacity=" + opacity + ")";
  else
    element.style.opacity = opacity / 100;
}

function frich(p2, p3, p4, p5, p6) {
	livello = p3;
	if(p4 != '') {
		if(!p6) {
			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;
			fadeIn(livello, 500);			
			if(p5) {	
				setQueryString(p5);
				xmlreqs[pos].xmlhttp.open("POST", p2, true);
				xmlreqs[pos].xmlhttp.onreadystatechange = function() {
				if (typeof(xmlhttpChange) != 'undefined') { xmlhttpChange(pos); }
				}
				xmlreqs[pos].xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");		
				xmlreqs[pos].xmlhttp.send(queryString);							
			}else {	
				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 = 'Error...'; 
		}
	}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 = 'In allestimento...';
		}				
		xmlreqs[pos].freed = 1;
	}else {
		document.getElementById(livello).innerHTML = 'Loading...';
	}
}

