function returnFormData(formName) {
	eval('var form = document.'+formName);
	Nelementi = form.elements.length;
	tmpString = "";
	for (i=0; i<Nelementi; i++) {
		elemento = form.elements[i];
		if ((elemento.length > 0) && (elemento.type != "select-one")) {
			for (a=0; a<elemento.length; a++) {
				if (elemento[a].name) {
					switch(elemento[a].type) {
						case('checkbox'):
						case('radio'):
							if (elemento.checked) {
								valore = elemento[a].value;
							} else {
								valore = false;
							}
						break;
						default:
							valore = elemento[a].value;
						break;
					}
					if (valore) {
						valore = valore.replace("'","\'");
						valore = valore.replace('+','%2B');
						valore = valore.replace('\\','%5C');
						valore = valore.replace('&','%26');
						tmpString+= elemento[a].name+"="+valore+"&";
					}
				}
			}
		} else {
			switch(elemento.type) {
				case('checkbox'):
				case('radio'):
					if (elemento.checked) {
						//alert(elemento.value+" > "+elemento.checked);
						valore = elemento.value;
					} else {
						valore = false;
					}
				break;
				default:
					valore = elemento.value;
				break;
			}
			if (valore) {
				valore = valore.replace("'","\'");
				valore = valore.replace('+','%2B');
				valore = valore.replace('\\','%5C');
				valore = valore.replace('&','%26');
				tmpString+= elemento.name+"="+valore+"&";
			}
		}
	}
	sendDati = tmpString.substring(0,(tmpString.length-1));
	return sendDati;
}

function scrivi(id,value) {
	document.getElementById(id).innerHTML=value;
}

function Abilita(id) {
	id_div = document.getElementById(id);
	id_div.style.display='block';
}

function Disabilita(id) {
	id_div = document.getElementById(id);
	id_div.style.display='none';
}

function AbilitaDisabilita(id) {
	id_div = document.getElementById(id);
	id_img = document.getElementById(id.substring(0,(id.length-3))+"img");

	if (id.substring(4,(id.length))=='_box') {
		if (id_div.className=='Nascosto') {
			id_div.className = 'Esploso';
			id_img.src = "../common/img/ico_meno.gif";
		} else {
			id_div.className = 'Nascosto';
			id_img.src = "../common/img/ico_piu.gif";
		}
	} else {
		if (id_div.style.display=='block') {
			id_div.style.display='none';
		} else {
			id_div.style.display='block';
		}
	}
}

function AbilitaDisabilitaAlert(id) {
	id_div = document.getElementById(id);
	if (id_div.style.display=='block') {
		if (navigator.appName == "Microsoft Internet Explorer") {
			document.documentElement.scrollTop=0;
			document.documentElement.scrollLeft=0;
			document.documentElement.style.overflow='auto';
		} else {
			document.getElementById('idBody').style.overflow='auto';
		}
		id_div.style.display='none';
	} else {
		if (navigator.appName == "Microsoft Internet Explorer") {
			document.documentElement.scrollTop=0;
			document.documentElement.scrollLeft=0;
			document.documentElement.style.overflow='hidden';
		} else {
			document.getElementById('idBody').style.overflow='hidden';
		}
		id_div.style.display='block';
	}
}

function SelezionaDeseleziona(FormId,SelezionaDeseleziona) {
	arrayElementi = document.getElementById(FormId).getElementsByTagName("input");
	a = 0;
	switch(SelezionaDeseleziona) {
		case('seleziona'):
			stato = true;
		break;
		case('deseleziona'):
			stato = false;
		break;
	}
	while(a<arrayElementi.length) {
		arrayElementi[a].checked = stato;
		a++;
	}
}


/**********************************************************************************************************************************************************************************/
function dis_att(id) {
	var arrayId=id.split("&");
	i=0;
	while(i<arrayId.length) {
		arrayElementi = document.getElementById("tr"+arrayId[i]).getElementsByTagName("input","textarea");
		a=0;
		while(a<arrayElementi.length){
			if (arrayElementi[a].name.substring(0,7)=="dis_att") {
				a++;
			}
			if (arrayElementi[a].disabled==true) {
				arrayElementi[a].disabled=false;
			} else {
				arrayElementi[a].disabled=true;
			}
			a++;
		}
		i++;
	}
}


/**********************************************************************************************************************************************************************************/
function inputReadOnly(id) {
	var arrayId=id.split("&");
	i=0;
	while(i<arrayId.length) {
		arrayElementi = document.getElementById(arrayId[i]).getElementsByTagName("input","textarea");
		a=0;
		while(a<arrayElementi.length){
			arrayElementi[a].readOnly = true;
			a++;
		}
		i++;
	}
}


/**********************************************************************************************************************************************************************************/
function CheckSTR(ogg,Expression,filtro_insert) {
	var Expr="";
	Expr = Expression.toLowerCase();

	if (filtro_insert=="int") {
		RefString = "0123456789";
	}

	if (filtro_insert=="web_mail") {
		RefString = "1234567890qwertyuiopasdfghjkl+asdfghjklzxcvbnm.-_/\@QWERTYUIOPASDFGHJKLZXCVBNM";
	}
	
	var str_corretta="";

	for (var i = 0; i < Expr.length; i++) {
		var ch="";
		ch = Expr.substr(i, i+1);
		ch = ch.substr(0, 1);

		var a = RefString.indexOf(ch);
		if (a != -1) {
			str_corretta=str_corretta+ch;
		}
	}
	ogg.value=str_corretta;
}


/**********************************************************************************************************************************************************************************/
function compilaValue(id,newValue) {
	id = document.getElementById(id);
	id.value = newValue;
}


/**********************************************************************************************************************************************************************************/
function formattaIndirizzo(idVia,idCivico) {
	idVia = document.getElementById(idVia);
	idCivico = document.getElementById(idCivico);
	indirizzo = idVia.value;
	if(idCivico.value != "") {
		indirizzo = indirizzo + ", " + idCivico.value;
	}
	return indirizzo;
}


/**********************************************************************************************************************************************************************************/
function MultiSubmit(name) {
	var arrayName=name.split("&");
	i=0;
	while(i<arrayName.length) {
		document.eval(arrayName[i]).submit();
		i++;
	}
}


/**********************************************************************************************************************************************************************************/
function Totali(form,tipo) {
	eval("var FormDati = document."+form);
	arrayTotali = new Array();
	switch(tipo) {
		case('ALB'):
		case('RTA'):
			// Camere
			arrayTotali['Camere'] = new Array();
			arrayTotali['Camere']['Totale'] = 'totale_camere';
			arrayTotali['Camere']['Addendi'] = new Array('singsenzabagno','singconbagno','doppiesenzabagno','doppieconbagno','consoggiorno','suite');
			// Letti
			arrayTotali['Letti'] = new Array();
			arrayTotali['Letti']['Totale'] = 'totale_letti';
			arrayTotali['Letti']['Addendi'] = new Array('incamere','aggincamere','inunitabit','agginunitabit');
			// Bagni
			arrayTotali['Bagni'] = new Array();
			arrayTotali['Bagni']['Totale'] = 'totale_bagni';
			arrayTotali['Bagni']['Addendi'] = new Array('bagni_incamere','bagni_inunitabit','igcomuni');
		break;
		case('AFR'):
		case('ALL'):
			// Camere
			arrayTotali['Camere'] = new Array();
			arrayTotali['Camere']['Totale'] = 'totale_camere';
			arrayTotali['Camere']['Addendi'] = new Array('numsingole','numdoppie');
			// Letti
			arrayTotali['Letti'] = new Array();
			arrayTotali['Letti']['Totale'] = 'totale_letti';
			arrayTotali['Letti']['Addendi'] = new Array('incamere','aggincamere');
			// Bagni
			arrayTotali['Bagni'] = new Array();
			arrayTotali['Bagni']['Totale'] = 'totale_bagni';
			arrayTotali['Bagni']['Addendi'] = new Array('incamere_bagni','igcomuni');
		break;
		case('OST'):
		case('CAF'):
			// Camere
			arrayTotali['Camere'] = new Array();
			arrayTotali['Camere']['Totale'] = 'totale_camere';
			arrayTotali['Camere']['Addendi'] = new Array('numsingole','numdoppie','conpiudidueletti');
			// Bagni
			arrayTotali['Bagni'] = new Array();
			arrayTotali['Bagni']['Totale'] = 'totale_bagni';
			arrayTotali['Bagni']['Addendi'] = new Array('incamere','igcomuni');
		break;
		case('CAV'):
			// Letti
			arrayTotali['Letti'] = new Array();
			arrayTotali['Letti']['Totale'] = 'totale_letti';
			arrayTotali['Letti']['Addendi'] = new Array('inunitabit','agginunitabit');
		break;
		case('RES'):
			// Letti
			arrayTotali['Letti'] = new Array();
			arrayTotali['Letti']['Totale'] = 'totale_letti';
			arrayTotali['Letti']['Addendi'] = new Array('inunitabit','agginunitabit');
		break;
		case('REP'):
			// Camere
			arrayTotali['Camere'] = new Array();
			arrayTotali['Camere']['Totale'] = 'totale_camere';
			arrayTotali['Camere']['Addendi'] = new Array('numsingole','numdoppie');
			// Letti
			arrayTotali['Letti'] = new Array();
			arrayTotali['Letti']['Totale'] = 'totale_letti';
			arrayTotali['Letti']['Addendi'] = new Array('incamere','aggincamere','inunitabit','agginunitabit');
			// Bagni
			arrayTotali['Bagni'] = new Array();
			arrayTotali['Bagni']['Totale'] = 'totale_bagni';
			arrayTotali['Bagni']['Addendi'] = new Array('bagni_incamere','bagni_inunitabit','igcomuni');
		break;
		case('RAL'):
			// Camere
			arrayTotali['Camere'] = new Array();
			arrayTotali['Camere']['Totale'] = 'totale_camere';
			arrayTotali['Camere']['Addendi'] = new Array('numsingole','dadueaquattro','conpiudidueletti');
			// Bagni
			arrayTotali['Bagni'] = new Array();
			arrayTotali['Bagni']['Totale'] = 'totale_bagni';
			arrayTotali['Bagni']['Addendi'] = new Array('bagni_incamere','igcomuni');
		break;
	}
	// inizializzo gli input interessati
	for (n in arrayTotali) {
		Totale = arrayTotali[n]['Totale'];
		Addendi = arrayTotali[n]['Addendi'];
		FormDati.elements['~'+tipo+'_servizi~'+Totale].readOnly = true;
		FormDati.elements['~'+tipo+'_servizi~'+Totale].style.backgroundColor = '#f1f1f1';
		for (s=0; s<Addendi.length; s++) {
			FormDati.elements['~'+tipo+'_servizi~'+Addendi[s]].style.backgroundColor = '#FFF5DF';
			FormDati.elements['~'+tipo+'_servizi~'+Addendi[s]].onfocus = function() {
				ScriviTotale(form,this);
			}
			FormDati.elements['~'+tipo+'_servizi~'+Addendi[s]].onkeyup = function() {
				ScriviTotale(form,this);
			}
		}
	}
}
function ScriviTotale(form,o) {
	oggetto = o.name;
	a = oggetto.split("~");
	tabella = a[1];
	campo = a[2];
	FormDati = "";
	if (arrayTotali) {
		for (n in arrayTotali) {
			Totale = arrayTotali[n]['Totale'];
			Addendi = arrayTotali[n]['Addendi'];
			for (k=0; k<Addendi.length; k++) {
				if (Addendi[k] == campo) {
					var a = 0;
					var somma = 0;
					for (s=0; s<Addendi.length; s++) {
						eval("var FormDati = document."+form);
						a = FormDati['~'+tabella+'~'+Addendi[s]].value;
						if (a = parseInt(a)) {
							somma = somma + a;
						}
					}
					FormDati['~'+tabella+'~'+Totale].value = somma;
				}
			}
		}
	}
}


/** AJAX **************************************************************************************************************************************************************************/
function istanzaXHR() {
	var obj;
	if (window.XMLHttpRequest) {	// Non Internet Explorer
		obj = new XMLHttpRequest();
	} else if (window.ActiveXObject) { // Internet Explorer
		obj = new ActiveXObject("Microsoft.XMLHTTP");
	}
	return obj;
}

obj=istanzaXHR();

function invia(formName,dati,printId,urlAppoggio) {
	inviaXHR(obj,formName,dati,printId,urlAppoggio);
}

function inviaXHR(obj,formName,dati,printId,urlAppoggio) {
	try {
		obj.open("POST", urlAppoggio, true);
		obj.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		document.getElementById(printId).innerHTML="<p class='loading'><img src='../common/img/loading.gif' alt='caricamento' /> caricamento..</p>";
		obj.onreadystatechange = function() {
			if (obj.readyState == 4) { // Caricamento Avvenuto
				if (obj.status == 200) { // con successo
					document.getElementById(printId).innerHTML=obj.responseText; // eseguo l'echo dentro l'elemento printId dal file urlAppoggio
				} else {
					document.getElementById(printId).innerHTML="?";
					alert("Errore: "+obj.statusText);
				}
			}
		}
		var arrayDati=dati.split("|");
		i=0;
		tmpString = "";
		while(i<arrayDati.length) {
			eval('var tmpOggetto = document.'+formName+'.'+arrayDati[i]);
			if(tmpOggetto.type===undefined) {
				for(n=0; n<tmpOggetto.length; n++) {
					if(tmpOggetto[n].checked) {
						tmpValue = tmpOggetto[n].value.replace("&","|and|"); // radio
						break;
					} else {
						tmpValue = "";
					}
				}
			} else {
				eval('var tmpValue = document.'+formName+'.'+arrayDati[i]+'.value'); // input
				tmpValue = tmpValue.replace("&","|and|");
			}
			tmpString += arrayDati[i]+"="+tmpValue+"&";
			tmpOggetto.blur;
			i++;
		}
		sendDati = tmpString.substring(0,(tmpString.length-1));		
		obj.send(sendDati); // invio i dati in POST
	} catch (e) {
		document.getElementById(printId).innerHTML="?";
		alert("Errore: "+e);
	}
}

function spunta(id) {
	// questa funzione è STATICA (funziona solo per la sezione Analisi)
	// nel senso che serve per correggere il bug della funzione AJAX sulle checkbox
	// una volta passati alla nuova versione (test) potrà essere rimossa
	input = document.getElementById(id);
	img = document.getElementById('img_'+id);
	boxAjax = document.getElementById('QRisultato4');
	boxAjax.innerHTML = '';
	if (input.value == 'on') {
		input.value = 'off';
		img.className = 'unchecked';
	} else {
		input.value = 'on';
		img.className = 'checked';
	}
}
