/**************************************************************************************/
chiamate_url = new Array()
chiamate_params = new Array()
chiamate_div = new Array()
chiamate_div_pos = 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;
	chiamate_div_pos[n_chiamate] = '';
	if (idDiv.indexOf('opener.') == 0){
		chiamate_div_pos[n_chiamate] = 'opener';
		chiamate_div[n_chiamate] = chiamate_div[n_chiamate].replace('opener.','')
	}
	if (idDiv.indexOf('parent.') == 0){
		chiamate_div_pos[n_chiamate] = 'parent';
		chiamate_div[n_chiamate] = chiamate_div[n_chiamate].replace('parent.','')
	}

	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] != ''){
			
			var tipo = '';
			if (chiamate_div_pos[0]=='opener'){
				tipo = window.opener.document.getElementById(chiamate_div[0]).type;
			} else if (chiamate_div_pos[0]=='parent'){
				tipo = window.parent.document.getElementById(chiamate_div[0]).type;
			} else {
				tipo = document.getElementById(chiamate_div[0]).type;
			}
			
				if (tipo=='submit' || tipo=='button' || tipo=='checkbox' || tipo=='hidden' || tipo=='text'){
						http_request.onreadystatechange = gestRespValue;
				} else {
					
					
					if (chiamate_div_pos[0]=='opener'){
						window.opener.document.getElementById(chiamate_div[0]).innerHTML='<img src="/cm/img/loading.gif" border="0" width="19px" height="19px">';
					} else if (chiamate_div_pos[0]=='parent'){
						window.parent.document.getElementById(chiamate_div[0]).innerHTML='<img src="/cm/img/loading.gif" border="0" width="19px" height="19px">';
					} else {
						document.getElementById(chiamate_div[0]).innerHTML='<img src="/cm/img/loading.gif" border="0" width="19px" height="19px">';
					}
					//document.getElementById(chiamate_div[0]).innerHTML='<img src="/admin/img/loading.gif" border="0" width="19px" height="19px">';
					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) {
		
			if (chiamate_div_pos[0]=='opener'){
				window.opener.document.getElementById(chiamate_div[0]).innerHTML= http_request.responseText
			} else if (chiamate_div_pos[0]=='parent'){
				window.parent.document.getElementById(chiamate_div[0]).innerHTML= http_request.responseText
			} else {
				document.getElementById(chiamate_div[0]).innerHTML= http_request.responseText
			}
			
			//document.getElementById(chiamate_div[0]).innerHTML= http_request.responseText
			window.status='Eseguito...';
			n_chiamate--;
			chiamate_url.shift();
			chiamate_params.shift();
			chiamate_div.shift();
			chiamate_div_pos.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) {
			
			
			if (chiamate_div_pos[0]=='opener'){
				window.opener.document.getElementById(chiamate_div[0]).value= http_request.responseText
			} else if (chiamate_div_pos[0]=='parent'){
				window.parent.document.getElementById(chiamate_div[0]).value= http_request.responseText
			} else {
				document.getElementById(chiamate_div[0]).value= http_request.responseText
			}
			
			//document.getElementById(chiamate_div[0]).value= http_request.responseText
			window.status='Eseguito...';
			n_chiamate--;
			chiamate_url.shift();
			chiamate_params.shift();
			chiamate_div.shift();
			chiamate_div_pos.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.status=http_request.responseText;
				n_chiamate--;
				chiamate_url.shift();
				chiamate_params.shift();
				chiamate_div.shift();
				chiamate_div_pos.shift();
				if (n_chiamate>0) {
					makeRequest2();
				} else{
					procedi=true;
				}
            } else {
				window.parent.status="Problemi con la richiesta al server"
            }
        }

    }


