/**************************************************************************************/
chiamate_url = new Array()
chiamate_params = new Array()
chiamate_div = new Array()
n_chiamate = -1
var procedi = true

/**********************************************************************************************/

function inserisciRichiesta(url,params,idDiv){
	n_chiamate++;
	chiamate_url[n_chiamate] = url;
	chiamate_params[n_chiamate] = params;
	chiamate_div[n_chiamate] = idDiv;

	if (procedi){
		makeRequest2();
	} else {
		avanti = window.setInterval("vediProcedi();",100);
	}
}

function vediProcedi(){
if (procedi==true && n_chiamate>=0) {
	makeRequest2();
	window.clearInterval(avanti);
	}
}


function makeRequest2(){
	http_request = false;

	if (window.XMLHttpRequest) { // Mozilla, Safari,...
  		http_request = new XMLHttpRequest();
	} else if (window.ActiveXObject) { // IE
		try {
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}
	if (!http_request) {
		alert('Impossibile creare una istanza XMLHTTP');
		return false;
	}

	window.parent.status="Elaborazione...";
		if (chiamate_div[0] != ''){
				if (
						document.getElementById(chiamate_div[0]).type=='submit' ||
						document.getElementById(chiamate_div[0]).type=='button' ||
						document.getElementById(chiamate_div[0]).type=='checkbox' ||
						document.getElementById(chiamate_div[0]).type=='hidden' ||
						document.getElementById(chiamate_div[0]).type=='text'					
					){
						http_request.onreadystatechange = gestRespValue;
					} else {
						document.getElementById(chiamate_div[0]).innerHTML='loading...';
						http_request.onreadystatechange = gestRespDiv;
					}
			}else{
				http_request.onreadystatechange = gestResp;				
			}
			
			http_request.open('POST', chiamate_url[0], true);
			http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
			http_request.setRequestHeader("Content-length", chiamate_params[0].length);
			http_request.send(chiamate_params[0]);
}

function gestRespDiv(){
	procedi=false
	if (http_request.readyState == 4) {
		if (http_request.status == 200) {
			document.getElementById(chiamate_div[0]).innerHTML= http_request.responseText
			window.parent.status='Eseguito...';
			n_chiamate--;
			chiamate_url.shift();
			chiamate_params.shift();
			chiamate_div.shift();
			if (n_chiamate>0) {
				makeRequest2(chiamate_url[0],chiamate_params[0],chiamate_div[0]);
			} else{
				procedi=true;
			}
		} else {
			window.parent.status="Problemi con la richiesta al server"
		}
	}
}

function gestRespValue(){
	procedi=false
	if (http_request.readyState == 4) {
		if (http_request.status == 200) {
			document.getElementById(chiamate_div[0]).value= http_request.responseText
			window.parent.status='Eseguito...';
			n_chiamate--;
			chiamate_url.shift();
			chiamate_params.shift();
			chiamate_div.shift();
			if (n_chiamate>0) {
				makeRequest2(chiamate_url[0],chiamate_params[0],chiamate_div[0]);
			} else{
				procedi=true;
			}
		} else {
			window.parent.status="Problemi con la richiesta al server"
		}
	}
}

function gestResp() {
		procedi=false
        if (http_request.readyState == 4) {
            if (http_request.status == 200) {
			    window.parent.status=http_request.responseText;
				n_chiamate--;
				chiamate_url.shift();
				chiamate_params.shift();
				chiamate_div.shift();
				if (n_chiamate>0) {
					makeRequest2();
				} else{
					procedi=true;
				}
            } else {
				window.parent.status="Problemi con la richiesta al server"
            }
        }

    }



/*********************************************************************************/
