// ATTENZIONE!!! Una volta on-line, la variabile path deve essere resa assoluta!!!
var path = "http://10.10.10.6/tema/";
var preloadFlag = false;
var warning = "";
var obbligatorio = "";
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="controlla(campo_anno, campo_numeri, formProva)">


function controlla() {
	campiTotali = arguments.length - 1;
	if (typeof(arguments[campiTotali]) == "object") {
		formTarget = 0;
	} else {
		formTarget = arguments[campiTotali];
		campiTotali--;
	}
	for(var i=0; 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 != "") {
		testo = "I SEGUENTI CAMPI NON SONO STATI\nCOMPILATI CORRETTAMENTE\n" + obbligatorio;
		obbligatorio ="";
		if (warning !="") {
			testo += warning;
			warning = "";
		}
		alert (testo);
		return false;
	} else if (warning != "") {
		testo = "I SEGUENTI CAMPI NON SONO STATI\nCOMPILATI CORRETTAMENTE\n" + warning + "\n\nDesideri continuare lo stesso?";
		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) {
				gestMessaggio("Non e' stato selezionato nessuno dei\nvalori del campo " + selTarget + ".\n");
			}
		} else if (document.forms[formTarget].elements[selTarget].value.length == 0) {
			gestMessaggio ("Il campo " + selTarget + " non e' stato compilato.\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 ) {
				gestMessaggio ("Il campo " + selTarget + " deve essere di " + n + " caratteri.\n");
			}
		}
	}
}


// Funzione che confronta la conformita' dei caratteri contenuti in un campo rispetto a una stringa
function caratteri(confronta, target) {
	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) {
			gestMessaggio ("Il campo " + selTarget + " contiene caratteri non validi.\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+\.)*\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) {
				gestMessaggio ("L'e-mail inserita nel campo " + selTarget + " non e' valida.\n");
			}
		}
	}
}
/*
// vecchia 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 = /^[_\.0-9A-Z-]+@([0-9A-Z][0-9A-Z-]+\.)+[A-Z]{2,6}$/;
		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) {
				gestMessaggio ("L'e-mail inserita nel campo " + selTarget + " non e' valida.\n");
			}
		}
	}
}
*/
function checkEmail(mail){
	
	mail = mail.toLowerCase();
	var espressione = /^[_a-z0-9+-]+(\.[_a-z0-9+-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)+$/;
	if (!espressione.test(mail))
		return false;
	return true;
	
}

// 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) {
				gestMessaggio ("Il codice fiscale inserito nel campo " + selTarget + " non e' valido.\n");
			}
		}
	}
}


function Trim(stringa){ //Levo eventuali spazi indesiderati
   reTrim=/\s+$|^\s+/g;
   return stringa.replace(reTrim,"");
}


function controllacf(cf){  // Controllo correttezza codice fiscale
    //var p=document.form1.text1;
    var re = /^[A-Z]{6}\d{2}[A-Z]\d{2}[A-Z]\d{3}[A-Z]$/;
    Codice=Trim(cf.toUpperCase());
    return (re.test(Codice));
}


function checkCF(cf)
{
    var validi, i, s, set1, set2, setpari, setdisp;
    if( cf == '' )  return '';
    cf = cf.toUpperCase();
    
    if( cf.length == 11){
    	
    	// controlla PIVA
    	if(checkPIVA(cf))
    		return 1;
    	return 0;
    }
    if( cf.length != 16 )
        return 0;
        		
        		
    validi = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
    for( i = 0; i < 16; i++ ){
        if( validi.indexOf( cf.charAt(i) ) == -1 )
            return 0
                
    }
    set1 = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    set2 = "ABCDEFGHIJABCDEFGHIJKLMNOPQRSTUVWXYZ";
    setpari = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    setdisp = "BAKPLCQDREVOSFTGUHMINJWZYX";
    s = 0;
    for( i = 1; i <= 13; i += 2 )
        s += setpari.indexOf( set2.charAt( set1.indexOf( cf.charAt(i) )));
    for( i = 0; i <= 14; i += 2 )
        s += setdisp.indexOf( set2.charAt( set1.indexOf( cf.charAt(i) )));
    if( s%26 != cf.charCodeAt(15)-'A'.charCodeAt(0) )
        return 0
        
    return 1
}

// numerico di 11
function checkPIVA (cf){
	
if (cf && IsNumeric(cf) && cf.length == 11) return 1;
	return 0;	
}

// 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) {
			gestMessaggio ("Il codice fiscale/partita IVA del campo " + selTarget + " non e' stato scritto correttamente.\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) {
			gestMessaggio ("La prima voce del menu' " + selTarget + " non puo' essere selezionata.\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) {
				gestMessaggio ("La data del campo " + selTarget + " non e' stata scritta correttamente.\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) {
				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 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 ausiliaria per il precaricamento delle immagini
function newImage(arg) {
	if (document.images) {
		rslt = new Image();
		rslt.src = arg;
		return rslt;
	}
}


// Funzione che gestisce i roll-over
function changeImages() {
	if (document.images && (preloadFlag == true)) {
		for (var i=0; i<changeImages.arguments.length; i+=2) {
			document[changeImages.arguments[i]].src = changeImages.arguments[i+1];
		}
	}
}


// Funzione che precarica le immagini dei roll-over
function preloadImages() {
	if (document.images) {
		homepage_sopra = newImage( path + "images/homepage-sopra.gif");
		areaop_sopra = newImage( path + "images/areaop-sopra.gif");
		areaut_sopra = newImage( path + "images/areaut-sopra.gif");
		contatti_sopra = newImage( path + "images/contatti-sopra.gif");
		preloadFlag = true;
	}
}
*/

// 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'].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]);
		}
	}
}

// controlla se e' numerico
function IsNumeric(sText)

{
   var ValidChars = "0123456789.";
   var IsNumber=true;
   var Char;

 
   for (i = 0; i < sText.length && IsNumber == true; i++) 
      { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         {
         IsNumber = false;
         }
      }
   return IsNumber;
   
   }

// se passato onbody Load
// calcola ad ogni keypress quanti caratteri mancano ad una textarea
// occorre impostare nella textarea attributo maxlenght='xxx'
function setMaxLength() {
		var x = document.getElementsByTagName('textarea');
		var counter = document.createElement('div');
		counter.className = 'counter';
		for (var i=0;i<x.length;i++) {
			if (x[i].getAttribute('maxlength')) {
				
				var counterClone = counter.cloneNode(true);
				counterClone.relatedElement = x[i];
				counterClone.innerHTML = '<div class=""><span> 0</span>/ '+x[i].getAttribute('maxlength')+' max caratteri </div>';
				x[i].parentNode.insertBefore(counterClone,x[i].nextSibling);
				x[i].relatedElement = counterClone.getElementsByTagName('span')[0];
			
				x[i].onkeyup = x[i].onchange = checkMaxLength;
				x[i].onkeyup();
			}
		}
}



	
	
function checkMaxLength() {
		var maxLength = this.getAttribute('maxlength');
		var currentLength = this.value.length;
		
		if (currentLength > maxLength)
			this.relatedElement.className = 'red';
		else
			this.relatedElement.className = 'green';
			
		this.relatedElement.firstChild.nodeValue = currentLength;
					
}
