var preloadFlag = false;
var warning = "";
var obbligatorio = "";
var lingua = "";
var etichette="";

ggmese = new Array();
ggmese[1] = 31;
ggmese[3] = 31;
ggmese[4] = 30;
ggmese[5] = 31;
ggmese[6] = 30;
ggmese[7] = 31;
ggmese[8] = 31;
ggmese[9] = 30;
ggmese[10] = 31;
ggmese[11] = 30;
ggmese[12] = 31;


// Funzione che si occupa di controllare la validita' dei form
// Per attivare un controllo, copiare gli array sottostanti che devono essere utilizzati
// all'interno della pagina (o in un .js esterno) sostituendo a "campi da controllare" i nomi
// (o il numero) dei campi su cui deve essere eseguito il controllo all' onSubmit del form.
// Esempi:
// campo_nonVuoto = new Array("nonVuoto" , campi da controllare);
// campo_telefono = new Array("telefono" , campi da controllare);
// campo_email = new Array("email", campi da controllare);
// campo_piva = new Array("piva", campi da controllare);
// campo_cf = new Array ("cf", campi da controllare);
// campo_numeri = new Array("numeri", campi da controllare);
// campo_numeriNegativi = new Array("numeriNegativi", campi da controllare);
// campo_numeriDecimali = new Array("numeriDecimali", campi da controllare);
// campo_primoSelezionato = new Array("primoSelezionato", campi da controllare);
// campo_data = new Array("data", campi da controllare);
// campo_cap = new Array("cap", campi da controllare);
// campo_anno = new Array("anno", campi da controllare);
// campo_ora = new Array("ora", campi da controllare);
// campo_aggMessaggio = new Array("aggMessaggio", messaggi da aggiungere);
//
// E' possibile anche richiamare la funzione inserendo new Array direttamente nella chiamata:
// Es. onSubmit='return (controlla(new Array("nonVuoto" , campi da controllare),
// new Array("telefono" , campi da controllare)))'
//
// E' possibile eseguire un controllo facoltativo di un campo (l'utente viene SOLO avvertito
// della non conformita' di alcuni dati) semplicemente aggiungendo "_fac" dopo il nome del controllo.
// Esempi:
// campo_nonVuoto = new Array("nonVuoto_fac" , campi da controllare);
// campo_telefono = new Array("telefono_fac" , campi da controllare);
// 
// E' possibile eseguire il controllo su un form deiverso dal primo, semplicemente inserendo come
// ultimo valore della chiamata alla funzione controlla() il nome del form.
// Esempio:
// <form name="formProva" action="ctrl.php" onSubmit="return (controlla(campo_anno, campo_numeri, formProva))">


function controlla() {
	campiTotali = arguments.length - 1;
	if (typeof(arguments[campiTotali]) == "object") {
		formTarget = 0;
	} else {
		formTarget = arguments[campiTotali];
		campiTotali--;
	}
    lingua    = arguments[0];
    etichette = arguments[1];

	for(var i=2; i<=campiTotali; i++) {
		controllore = arguments[i];
		target = controllore.slice(1);
		funzione = controllore[0];
		facoltativo = (funzione.substring(funzione.length-4) == "_fac") ? true : false;
		if (facoltativo) {
			funzione = funzione.substr(0, (funzione.length-4));
		}
		if (funzione == "nonVuoto") {
			nonVuoto(target);
		}
		if (funzione == "cf") {
			codiceFiscale(target);
		}
		if (funzione == "piva") {
			conta(11, target);
			caratteri("0123456789", target);
		}
		if (funzione == "cap") {
			conta(5, target);
			caratteri("0123456789", target);
		}
		if (funzione == "anno") {
			conta(4, target);
			caratteri("0123456789", target);
		}
		if (funzione == "telefono") {
			caratteri("0123456789 -/", target);
		}
		if (funzione == "numeri") {
			caratteri("0123456789", target);
		}
		if (funzione == "numeriNegativi") {
			caratteri("-0123456789", target);
		}
		if (funzione == "numeriDecimali") {
			caratteri("-0123456789,.", target);
		}
		if (funzione == "email") {
			email(target);
		}
		if (funzione == "primoSelezionato") {
			primoSelezionato(target);
		}
		if (funzione == "data") {
			data(target);
		}
		if (funzione == "ora") {
			ora(target);
		}
		if (funzione == "oraCorsi") {
			oraCorsi(target);
		}
		if (funzione == "aggMessaggio") {
			aggMessaggio(target);
		}
		if (funzione =="codiceFiscalePiva") {
			codiceFiscalePiva(target);
		}
	}
	if (obbligatorio != "") {
	    if (lingua == 'ITA') {
		   testo = "I SEGUENTI CAMPI NON SONO STATI\nCOMPILATI CORRETTAMENTE:\n" + obbligatorio;
	    }
	    else {
		   testo = "Die folgenden Felder wurden nicht korrekt ausgefüllt:\n" + obbligatorio;
	    }
		obbligatorio ="";
		if (warning !="") {
			testo += warning;
			warning = "";
		}
		alert (testo);
		return false;
	} else if (warning != "") {
	    if (lingua == 'ITA') {
		   testo = testo = "I SEGUENTI CAMPI NON SONO STATI\nCOMPILATI CORRETTAMENTE:\n" + warning + "\n\nDesideri continuare lo stesso?";
	    }
	    else {
		   testo = "Die folgenden Felder wurden nicht korrekt ausgefüllt:\n" + warning + "\n\Wollen Sie trotzdem fortfahren?";
	    }
		warning = "";
		return confirm (testo);
	} else {
		return true;
	}
}


// Funzione di appoggio per la compilazione dei messaggi di errore
function gestMessaggio(messaggio) {
	facoltativo ? (warning += "- " + messaggio) : (obbligatorio += "- " + messaggio); 
}


// Funzione per aggiungere dei messaggi di errore
function aggMessaggio(target) {
	for (i=0; i<target.length; i++) {
		gestMessaggio(target[i] + "\n");
	}
}


// Funzione che controlla che il campo target non sia vuoto (funziona sia con textbox che con radio button)
function nonVuoto(target) {
	if (typeof(formTarget) == "undefined") formTarget = 0;
	for (i=0; i<target.length; i++) {
		selTarget = target[i];
		if (typeof(document.forms[formTarget].elements[selTarget].length) != "undefined") {
			checkRadio = false;
			for (n=0; n<document.forms[formTarget].elements[selTarget].length; n++) {
				if (document.forms[formTarget].elements[selTarget][n].checked) {
					checkRadio = true;
				}
			}
			if (checkRadio == false) {
	           if (lingua == 'ITA') {
				   gestMessaggio("Non e' stato selezionato nessuno dei\nvalori del campo " + etichette[selTarget]['ITA'] + ".\n");
			   }
			   else {
				   gestMessaggio("Für das Feld " + etichette[selTarget]['DEU'] + "  wurde kein Wert ausgewählt.\n");
			   }
			}
		} else if (document.forms[formTarget].elements[selTarget].value.length == 0) {
	        if (lingua == 'ITA') {
			   gestMessaggio("Il campo " + etichette[selTarget]['ITA'] + " non e' stato compilato.\n");
			}
			else {
			   gestMessaggio("Das Feld " + etichette[selTarget]['DEU'] + " wurde nicht ausgefüllt.\n");
			}
		}
	}
}


// Funzione che conta la lunghezza dei caratteri di un campo
function conta(n, target) {
	if (typeof(formTarget) == "undefined") formTarget = 0;
	for (i=0; i<target.length; i++) {
		selTarget = target[i];
		lunghezza = document.forms[formTarget].elements[selTarget].value.length;
		if (lunghezza != 0) {
			if (lunghezza != n ) {
      	        if (lingua == 'ITA') {
      			   gestMessaggio("Il campo " + etichette[selTarget]['ITA']  + " deve essere di " + n + " caratteri.\n");
      			}
      			else {
      			   gestMessaggio("Das Feld " + etichette[selTarget]['DEU']  + " muss aus " + n + " Zeichen bestehen.\n");
      			}
			}
		}
	}
}


// Funzione che confronta la conformita' dei caratteri contenuti in un campo rispetto a una stringa
function caratteri(confronta, target) {
    var errore = false;
	if (typeof(formTarget) == "undefined") formTarget = 0;
	for (i=0; i<target.length; i++) {
		selTarget = target[i];
		errore= false;
		analisi = document.forms[formTarget].elements[selTarget].value;
		for (f=0; f<analisi.length; f++) {
			carattere = analisi.substring (f, f+1);
			if (confronta.indexOf(carattere) == -1) {
				errore = true;
			}
		}
		if (errore) {
	        if (lingua == 'ITA') {
			   gestMessaggio("Il campo " + etichette[selTarget]['ITA'] + " contiene caratteri non validi.\n");
			}
			else {
			   gestMessaggio("Das Feld " + etichette[selTarget]['DEU'] + " beinhaltet ungültige Zeichen.\n");
			}
		}	
	}
}




// Funzione che controlla che il campo abbia le caratteristiche di un'e-mail
function email(target) {
	if (typeof(formTarget) == "undefined") formTarget = 0;
	for (i=0; i<target.length; i++) {
		selTarget = target[i];
		em = /^((?:\w+)*\w[\w-\.]{0,66})@((?:\w+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
		reTrim=/\s+$|^\s+/g;
		analisi = document.forms[formTarget].elements[selTarget].value.toUpperCase();
		if (analisi.length != 0) {
			emailCtrl = analisi.replace(reTrim,"");
    		if (em.test(emailCtrl) != true) {
	           if (lingua == 'ITA') {
				   gestMessaggio("L'e-mail inserita nel campo " + etichette[selTarget]['ITA']  + " non e' valida.\n");
			   }
			   else {
				   gestMessaggio("Die eingegebene E-Mail Adresse im Feld " + etichette[selTarget]['DEU']  + " ist nicht gültig.\n");
			   }
			}
		}
	}
}


// Funzione che controlla la validita' del codice fiscale
function codiceFiscale(target) {
	if (typeof(formTarget) == "undefined") formTarget = 0;
	for (i=0; i<target.length; i++) {
		selTarget = target[i];
		cf = /^[A-Z]{6}\d{2}[A-Z]\d{2}[A-Z]\d{3}[A-Z]$/;
		reTrim=/\s+$|^\s+/g;
		analisi = document.forms[formTarget].elements[selTarget].value.toUpperCase();
		if (analisi.length != 0) {
			codiceF = analisi.replace(reTrim,"");
    		if (cf.test(codiceF) != true) {
	           if (lingua == 'ITA') {
				   gestMessaggio("Il codice fiscale inserito nel campo " + etichette[selTarget]['ITA']  + " non e' valido.\n");
			   }
			   else {
				   gestMessaggio("Die Steuerkodexnummer im Feld " + etichette[selTarget]['DEU']  + " ist ungültig.\n");
			   }
			}
		}
	}
}

// Funzione che controlla la validita' del codice fiscale/partita iva
function codiceFiscalePiva(target) {
	if (typeof(formTarget) == "undefined") formTarget = 0;
	for (i=0; i<target.length; i++) {
		selTarget = target[i];
		confronta = "0123456789";
		errore= false;
		cf = /^[A-Z]{6}\d{2}[A-Z]\d{2}[A-Z]\d{3}[A-Z]$/;
		reTrim=/\s+$|^\s+/g;
		lunghezza = document.forms[formTarget].elements[selTarget].value.length;
		analisi = document.forms[formTarget].elements[selTarget].value.toUpperCase();
		if (lunghezza ==11) {
			for (f=0; f<11; f++) {
				carattere = analisi.substring (f, f+1);
				if (confronta.indexOf(carattere) == -1) {
					errore = true;
				}
			}
		} else {
			if (analisi.length != 0) {
				codiceF = analisi.replace(reTrim,"");
				if (cf.test(codiceF) != true) {
					errore = true;
				}
			}
		}
		if (errore) {
           if (lingua == 'ITA') {
			   gestMessaggio("Il codice fiscale/partita IVA del campo " + etichette[selTarget]['ITA']  + " non e' stato scritto correttamente.\n");
		   }
		   else {
			   gestMessaggio("Die Steuerkodexnummer/Mehrwertsteuernummer im Feld " + etichette[selTarget]['DEU']  + " wurde nicht korrekt eingegeben.\n");
		   }
		}
	}
}



// Funzione che controlla che il primo valore di un menu' a tendina non sia selezionato
function primoSelezionato(target) {
	if (typeof(formTarget) == "undefined") formTarget = 0;
	for (i=0; i<target.length; i++) {
		selTarget = target[i];
		if (document.forms[formTarget].elements[selTarget].options.selectedIndex == 0) {
           if (lingua == 'ITA') {
			   gestMessaggio("Il campo " + etichette[selTarget]['ITA']  + " non e' stato compilato.\n");
		   }
		   else {
			   gestMessaggio("Das Feld " + etichette[selTarget]['DEU']  + " wurde nicht ausgefüllt.\n");
		   }
		}
	}
}



// Funzione che controlla la validita' della data
function data(target) {
	if (typeof(formTarget) == "undefined") formTarget = 0;
	for (i=0; i<target.length; i++) {
		selTarget = target[i];
		campoData = document.forms[formTarget].elements[selTarget].value;
		separatore = new Array();
		numeri = "0123456789";
		if (campoData.length >0) {
			errore = true;
// individuazione dei separatori
			for (f=0; f<campoData.length; f++) {
				carattere = campoData.charAt (f);
				if (numeri.indexOf(carattere) == -1) {
					separatore [separatore.length] = f;
				}
			}
			giorno = parseInt(campoData.substring(0,separatore[0]),10);
			mese = parseInt(campoData.substring(separatore[0]+1,separatore[1]),10);
			anno = parseInt(campoData.substring(separatore[1]+1,campoData.length),10);
// controllo della validita' dei dati inseriti (anno bisestile)
			if (mese <= 12 && mese >= 1 && anno <= 2200 && anno >= 1899 && giorno >=1) {
				if (mese == 2) {
					if ((anno%400 == 0 && giorno <= 29) || (anno%4 == 0 && anno%100 != 0 && giorno <= 29)) {
						errore = false;
					} else if (giorno <= 28) {
						errore = false;					
					}
				} else if (ggmese[mese] >= giorno) {
					errore = false;
				}	
			}
			if (errore) {
	           if (lingua == 'ITA') {
			      gestMessaggio("La data del campo " + etichette[selTarget]['ITA']  + " non e' stata scritta correttamente.\n");
			   }
			   else {
			      gestMessaggio("Das Datum im Feld " + etichette[selTarget]['DEU']  + "wurde nicht korrekt eingegeben.\n");
			   }
			} else {
				giorno = (giorno < 10) ? ("0" + giorno) : giorno;
				mese = (mese < 10) ? ("0" + mese) : mese;
				document.forms[formTarget].elements[selTarget].value = giorno + "/" + mese + "/" + anno;
			}
		}
	} 
}


// Funzione che controlla la validita' dell'ora
function ora(target) {
	if (typeof(formTarget) == "undefined") formTarget = 0;
	for (i=0; i<target.length; i++) {
		selTarget = target[i];
		campoOra = document.forms[formTarget].elements[selTarget].value;
		separatore = new Array();
		numeri = "0123456789";
		if (campoOra.length >0) {
			errore = true;
// individuazione dei separatori
			for (f=0; f<campoOra.length; f++) {
				carattere = campoOra.charAt(f);
				if (numeri.indexOf(carattere) == -1) {
					separatore [separatore.length] = f;
				}
			}
			if (separatore.length == 1) {
				orario = parseInt(campoOra.substring(0,separatore[0]),10);
				minuti = parseInt(campoOra.substring(separatore[0]+1,campoOra.length),10);
				secondi = false;
			} else if (separatore.length == 2) {
				orario = parseInt(campoOra.substring(0,separatore[0]),10);
				minuti = parseInt(campoOra.substring(separatore[0]+1,separatore[1]),10);
				secondi = parseInt(campoOra.substring(separatore[1]+1,campoOra.length),10);
			} else {
				orario = parseInt(campoOra);
				minuti = 0;
				secondi = false;
			}
// controllo della validita' dei dati inseriti
			if ((orario >= 0 && orario <= 23 && minuti >= 0 && minuti <= 59) || (orario == 24 && minuti == 0)) {
				if (secondi !== false) {
					errore = (secondi >= 0 && secondi <= 59) ? false : true;
				} else {
					errore = false;
				}
			}
			if (errore) {
	           if (lingua == 'ITA') {
				   gestMessaggio("L'ora del campo " + etichette[selTarget]['ITA']  + " non e' stata scritta correttamente.\n");
			   }
			   else {
				   gestMessaggio("Die Uhrzeit im Feld " + etichette[selTarget]['DEU']  + " wurde nicht korrekt eingegeben.\n");
			   }
			} else {
				orario = (orario < 10) ? ("0" + orario) : orario;
				minuti = (minuti < 10) ? ("0" + minuti) : minuti;
				if (secondi !== false) {
					secondi = (secondi < 10) ? ("0" + secondi) : secondi;
					document.forms[formTarget].elements[selTarget].value = orario + ":" + minuti + "." + secondi;
				} else {
					document.forms[formTarget].elements[selTarget].value = orario + ":" + minuti;
				}
			}
		}
	}
}




// Funzione che controlla la validita' dell'ora dei corsi (con ore > di 24)
function oraCorsi(target) {
	if (typeof(formTarget) == "undefined") formTarget = 0;
	for (i=0; i<target.length; i++) {
		selTarget = target[i];
		campoOra = document.forms[formTarget].elements[selTarget].value;
		separatore = new Array();
		numeri = "0123456789";
		if (campoOra.length >0) {
			errore = true;
// individuazione dei separatori
			for (f=0; f<campoOra.length; f++) {
				carattere = campoOra.charAt(f);
				if (numeri.indexOf(carattere) == -1) {
					separatore [separatore.length] = f;
				}
			}
			if (separatore.length == 1) {
				orario = parseInt(campoOra.substring(0,separatore[0]),10);
				minuti = parseInt(campoOra.substring(separatore[0]+1,campoOra.length),10);
				secondi = false;
			} else if (separatore.length == 2) {
				orario = parseInt(campoOra.substring(0,separatore[0]),10);
				minuti = parseInt(campoOra.substring(separatore[0]+1,separatore[1]),10);
				secondi = parseInt(campoOra.substring(separatore[1]+1,campoOra.length),10);
			} else {
				orario = parseInt(campoOra);
				minuti = 0;
				secondi = false;
			}
// controllo della validita' dei dati inseriti
			if ((orario >= 0 && orario <= 10000 && minuti >= 0 && minuti <= 59) || (orario == 24 && minuti == 0)) {
				if (secondi !== false) {
					errore = (secondi >= 0 && secondi <= 59) ? false : true;
				} else {
					errore = false;
				}
			}
			if (errore) {
				gestMessaggio ("L'ora del campo " + selTarget + " non e' stata scritta correttamente.\n");
			} else {
				orario = (orario < 10) ? ("0" + orario) : orario;
				minuti = (minuti < 10) ? ("0" + minuti) : minuti;
				if (secondi !== false) {
					secondi = (secondi < 10) ? ("0" + secondi) : secondi;
					document.forms[formTarget].elements[selTarget].value = orario + ":" + minuti + "." + secondi;
				} else {
					document.forms[formTarget].elements[selTarget].value = orario + ":" + minuti;
				}
			}
		}
	}
}


//funzione che controlla, aggiunge e arrotonda i decimali se necessario, richiamata dall'onBlur nei textfield 
function decimali(textObj) {
	var newValue = textObj.value;
	var decAmount = "";
	var dolAmount = "";
	var decFlag = false;
	var aChar = "";
// controlla il decimale e toglie la virgola o il punto (aChar)
	for(i=0; i < newValue.length; i++) {
		aChar = newValue.substring(i,i+1);
		if(aChar >= "0" && aChar <= "9") {
			if(decFlag) {
				decAmount = "" + decAmount + aChar;
			} else {
				dolAmount = "" + dolAmount + aChar;
			}
		}
		if(aChar == "." || aChar == ",") {
			if(decFlag) {
				dolAmount = "";
				break;
			}
			decFlag=true;
		}
	}
// assicura che appaia uno zero se non ci sono interi.
	if(dolAmount == "") {
    	dolAmount = "0";
	}
// toglie momentaneamente gli zero 
	if(dolAmount.length > 1) {
		while(dolAmount.length > 1 && dolAmount.substring(0,1) == "0") {
			dolAmount = dolAmount.substring(1,dolAmount.length);
	    }
	}
// arrotonda il decimale
	if(decAmount.length > 2) {
		if(decAmount.substring(2,3) > "4") {
			decAmount = parseInt(decAmount.substring(0,2)) + 1;
			if(decAmount < 10) {
				decAmount = "0" + decAmount;
			} else {
				decAmount = "" + decAmount;
			}
		} else {
			decAmount = decAmount.substring(0,2);
	    }
    	if (decAmount == 100) {
			decAmount = "00";
			dolAmount = parseInt(dolAmount) + 1;
		}
	}
// calcola quanti decimali devono essere inseriti
	if(decAmount.length == 1) {
		decAmount = decAmount + "0";
	}

	if(decAmount.length == 0) {
		decAmount = decAmount + "00";
	}
// controlla il valore negativo e azzera il textObj
	if(newValue.substring(0,1) != '-' ||(dolAmount == "0" && decAmount == "00")) {
		textObj.value = dolAmount + "." + decAmount;
	} else {
		textObj.value = '-' + dolAmount + "." + decAmount;
	}
}


// Funzione che setta il valore di un cookie
function setCookie(name, value, expires, path, domain, secure) {
	var expString = ((expires == null)? "" : ("; expires=" + expires.toGMTString()));
	var pathString = ((path == null) ? "" : ("; path=" + path));
	var domainString = ((domain == null)? "" : ("; domain=" + domain));
	var secureString = ((secure == true) ? "; secure" : "");
	document.cookie = name + "=" + escape(value) + expString + pathString + domainString + secureString;
}


// Funzione che restituisce il valore di un cookie
function getCookie(name) {
	var result = null;
	var myCookie = " " + document.cookie + ";";
	var searchName = " " + name + "=";
	var startOfCookie = myCookie.indexOf(searchName);
	var endOfCookie;
	if (startOfCookie != -1) {
		startOfCookie += searchName.length; 
		endOfCookie = myCookie.indexOf(";", startOfCookie);
		result = unescape(myCookie.substring(startOfCookie,endOfCookie));
	}
	return result;
}


// Funzione che cancella un cookie
function clearCookie (name) {
	var ThreeDays = 3 * 24 * 60 * 60 * 1000;
	var expDate = new Date();
	expDate.setTime (expDate.getTime() - ThreeDays);
	document.cookie = name + "=ImOutOfHere; expires=" + expDate.toGMTString();
}


// Funzione per la gestione dei menu' a tendina gestiti da un iFrame
// ** utilizzata dalla funzione PHP creaTendina **
function gestioneTendina(selezione) {
	target = document.forms[0].elements;
	for (i=0; i<target.length; i++) {
		if (target[i] == target[selezione.name]) {
			if (target[i+1].name != "nomeIframe") {
				alert ("ATTENZIONE! La funzione PHP creaTendina () deve\nessere posizionata DOPO la tendina richiamante.");
			} else {
				nome = target[i+1].value;
				break;
			}
		}
	}
	nomeFile = nome + "_iframe.php?query=";
	frames[nome].location.href = nomeFile + escape(selezione.value);
}

// Funzione che gestisce l'aggiornamento dei contenuti di un menu' a tendina
// ** utilizzata dalla funzione PHP creaTendina **
function aggiornaTendina(target, nome) {
	cancellaTendina(target);
	scriviTendina(target, nome);
}

// Funzione che cancella un menu' a tendina
// ** utilizzata dalla funzione PHP creaTendina **
function cancellaTendina(target) {
	for (; document.forms[0].elements[target].length > 0; ) {
		document.forms[0].elements[target][0] = null;
	}
}

// Funzione che riscrive il contenuto di un menu' a tendina
// ** utilizzata dalla funzione PHP creaTendina **
function scriviTendina(target, nome) {
    selezione = document.forms[0].elements['selezionato_'+target].value;
	for (i=0 ; i<frames[nome].popola.length; i++) {
		if (selezione == frames[nome].popola[i] || selezione == frames[nome].valore[i]) {
			document.forms[0].elements[target][i] = new Option (frames[nome].popola[i], frames[nome].valore[i], true, true);
		} else {
			document.forms[0].elements[target][i] = new Option (frames[nome].popola[i], frames[nome].valore[i]);
		}
	}
}
//Cambia gradatamente le dimensioni di un iframe contenuto in una riga di tabella
//se la dimenensione arriva a 0 nasconde la riga
function smoothHeight(id, curH, targetH, stepH, mode, fromIframe) {
  if (fromIframe) documento = parent.document;
   			else  documento = document;
  diff = targetH - curH;
  if (diff != 0) {
    if (diff>0) newH = (curH + stepH > targetH) ? targetH : curH + stepH;
	else newH = (curH - stepH < targetH) ? targetH : curH - stepH;
    ((documento.getElementById) ? documento.getElementById(id) : eval("document.all['" + id + "']")).style.height = newH + "px";
    //if (smooth_timer) window.clearTimeout(smooth_timer);
    if ((newH<targetH && diff>0) || (newH>=targetH && diff<0))
		smooth_timer = window.setTimeout( "smoothHeight('" + id + "'," + newH + "," + targetH + "," + stepH + ",'" + mode + "',"+fromIframe+")", 20 );
  }
  else if (mode != "o") ((documento.getElementById) ? documento.getElementById(mode) : eval("document.all['" + mode + "']")).style.display="none";
}

//Utilizza la funzione smoothHeight per cambiare le dimensioni dell'iframe
function resizeIframe(webid, targetH,fromIframe) {
	if (fromIframe) documento = parent.document;
   			  else  documento = document;
	altezza=((documento.getElementById) ? documento.getElementById('iframe'+webid) : eval("documento.all['" + 'iframe'+webid + "']")).style.height;
	p=altezza.indexOf('px');
	altezza=altezza.substr(0,p);
	tr=(documento.getElementById) ? documento.getElementById('riga'+webid) : eval("documento.all['riga'+webid]");
	tr.style.display="";
	if (targetH != 0) mode='o';
				else  mode='riga'+webid;
	smoothHeight('iframe'+webid,altezza,targetH,40,mode,fromIframe);
}

function checkIt(string)
{
	    detect = navigator.userAgent.toLowerCase();
        place = detect.indexOf(string) + 1;
        thestring = string;
        return place;
}

function getRadioValue(radioObject) {
	trovato=false;
	valore=null;
	i=0;
 	while (i< radioObject.length && !trovato) {
		if (radioObject[i].checked) {
			trovato=true;
			valore=radioObject[i].value;
		}
		i++;
	}
	return valore;
 }