/*
	Verifica Form - Version 1.2.c - Dated 02.07.2001
	By Revello Gianluigi - revellog@hotmail.com

*/
function Controlla(formname){
		var Qualita;		
		var Campi = formname.elements.length;
		//alert("Ci sono " + Campi + " campi nel Form");
		for (I=0; I < Campi; I++){
			var Nome = formname.elements[I].name;
			var Tipo = formname.elements[I].type;
			if ((Tipo == 'text') || (Tipo == 'textarea') || (Tipo == 'password')){
				var NomeP = Nome + "_p";
				var Parametri = formname.elements[NomeP].value;
				var Parametri = Parametri + '_0'; //se non c'è il parametro QtyMax lo inserisco io
				Qualita = Parametri.split('_');
				var NomeCampo = Qualita[0];
				var Contenuto = Qualita[1];
				var Obbligatorio = Qualita[2];
				var Lunghezza = parseInt(Qualita[3]);
				var Controllare = Qualita[4];
				var QtyMax = Qualita[5];
				if (Controllare != 'N'){
					/*
						INIZIO VERIFICA ESATTEZZA PARAMETRI
						DOPO IL CONTROLLO INIZIALE DEL FORM
						QUESTA SEZIONE PUO' ESSERE CANCELLATA
					*/		
					if ((Contenuto != 'H') && (Contenuto != 'F') && (Contenuto != 'T') && (Contenuto != 'N') && (Contenuto != 'D') && (Contenuto != 'E') && (Contenuto != 'P')){
						alert("Attenzione!!!\nIl parametro Tipo Contenuto nel campo: " + NomeCampo + " è errato.");
						formname.elements[I].focus();	
						return(false);
					}
					if ((Obbligatorio != 'S') && (Obbligatorio != 'N')){
						alert("Attenzione!!!\nIl parametro obbligatorio nel campo: " + NomeCampo + " è errato.");
						formname.elements[I].focus();	
						return(false);
					}
					if (isNaN(Lunghezza)){
						alert("Attenzione!!!\nManca il parametro lunghezza nel campo: " + NomeCampo);
						formname.elements[I].focus();	
						return(false);
					}
					/*
						FINE VERIFICA ESATTEZZA PARAMETRI
					*/
			
					//	inizio obbligatorio				
						if (Obbligatorio == 'S'){
							//alert ("Controllo obbligatorio")
							if (formname.elements[I].value.length == 0){
								alert("Attenzione!!!\nIl campo " + NomeCampo + " è obbligatorio.");
								formname.elements[I].focus();	
								return(false);
							}
						}
					//	fine obbligatorio
					//	inizio contenuto
						//Numerico
						if ((Contenuto == 'N') && (formname.elements[I].value.length > 0)){
							if (isNaN(formname.elements[I].value)){
								alert("Attenzione!!!\nIl campo " + NomeCampo + " deve essere numerico.");
								formname.elements[I].focus();	
								return(false);
							}else{
								if (QtyMax > 0){
									if (formname.elements[I].value > QtyMax){
										alert("Attenzione!!!\nLa quantità: " + NomeCampo + " può essere al massimo:" + QtyMax);
										formname.elements[I].focus();	
										return(false);
									}
								}							
							}
						//E-mail
						}else if ((Contenuto == 'E') && (formname.elements[I].value.length > 0)){	
							if (formname.elements[I].value.search(/@/i) < 1){
								alert("Attenzione!!!\nIl campo " + NomeCampo + " non è una E-Mail valida.");
								formname.elements[I].focus();	
								return(false);
							}
						//Codice Fiscale
						}else if ((Contenuto == 'F') && (formname.elements[I].value.length > 0)){	
							var lung=16
							if (formname.elements[I].value.length != lung){
								alert("Attenzione!!!\nIl campo " + NomeCampo + " deve essere di 16 caratteri.");
								formname.elements[I].focus();	
								return(false);
							}
						//Partita IVA
						}else if ((Contenuto == 'P') && (formname.elements[I].value.length > 0)){	
							var lung=11
							if ((formname.elements[I].value.length != lung) || (isNaN(formname.elements[I].value))){
								alert("Attenzione!!!\nIl campo " + NomeCampo + " deve essere di 11 caratteri numerici.");
								formname.elements[I].focus();	
								return(false);
							}
						//Data	
						}else if ((Contenuto == 'D') && (formname.elements[I].value.length > 0)){
							var Date;
							Date = formname.elements[I].value.split('/');
							var giorno = parseInt(Date[0]);
							var mese = parseInt(Date[1]);
							if (Date[1]=="08"){mese = 8};
							if (Date[1]=="09"){mese = 9};
							var anno = parseInt(Date[2]);
							if (isNaN(giorno) || isNaN(mese) || isNaN(anno)){
							alert("Attenzione!!!\nIl campo " + NomeCampo + " non è valido.")
							formname.elements[I].focus();
							return(false);
							}
							var giorni = new Array(0,31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31, 29);
							if ((giorno > 31) || (giorno < 1)){
								alert("Attenzione!!!\nIl campo " + NomeCampo + " non è valido.\nIl giorno è errato.");
								formname.elements[I].focus();
								return(false);
							} 
							if ((mese > 12) || (mese < 1)){
								alert("Attenzione!!!\nIl campo " + NomeCampo + " non è valido.\nIl mese è errato.");
								formname.elements[I].focus();
								return(false);
							}			
							if ((anno > 9999) || (anno < 1111)){
								alert("Attenzione!!!\nIl campo " + NomeCampo + " non è valido.\nL'anno è errato.");
								formname.elements[I].focus();
								return(false);
							}
							var bs = (anno % 4)
							//var valore = parseInt(mese);
							if ((bs == 0) && (mese == 2)) {
								if (giorno > giorni[mese]){
									alert("Attenzione!!!\nIl campo " + NomeCampo + " non è valido.\nIn febbraio ci sono 29 giorni nell'anno: " + anno);
									formname.elements[I].focus();
									return(false);
								}
							} else {
								if (giorno > giorni[mese]){
									alert("Attenzione!!!\nIl campo " + NomeCampo + " non è valido.\nCi sono solo "+ giorni[mese] + " giorni in questo mese.");
									formname.elements[I].focus();
									return(false);
								}
							}
						//Ora	
						}else if ((Contenuto == 'H') && (formname.elements[I].value != 'HH:MM')){
							var Ora;
							Ora = formname.elements[I].value.split(':');
							var HH = parseInt(Ora[0]);
							var MM = parseInt(Ora[1]);
							if ((HH < 0) && (HH > 23)){
								alert("Attenzione!!!\nIl campo " + NomeCampo + " non è valido.\nIl campo ora non è valido.");
								formname.elements[I].focus();
							}
							if ((MM < 0) && (MM > 59)){
								alert("Attenzione!!!\nIl campo " + NomeCampo + " non è valido.\nIl campo minuti non è valido.");
								formname.elements[I].focus();
							}	
						}
					//	fine contenuto
					//	inizio lunghezza
						if ((Contenuto == 'T') || (Contenuto == 'E') && (Lunghezza > 0) &&  (formname.elements[I].value.length > 0)){
							if (formname.elements[I].value.length > Lunghezza){
								alert("Attenzione!!!\nIl campo " + NomeCampo + " può contenere un massimo di " + Lunghezza + " caratteri\nLa lunghezza attuale è di " + formname.elements[I].value.length + " caratteri.");
								formname.elements[I].focus();	
								return(false);
							}
						}
					// fine lunghezza
					}
				}
			// controllo campi Radio Button
			if (Tipo == '_radio'){
				var NomeP = Nome + "_p";
				var Parametri = formname.elements[NomeP].value;
				Qualita = Parametri.split('_');
				var NomeCampo = Qualita[0];
				var Obbligatorio = Qualita[1];
				var radio = false
				if (Obbligatorio == "S"){
					var NumRadio = 2
					for (k=0;k<NumRadio;k++){
						if (formname.elements[Nome][k].checked == true){
							radio = true
						}
					}
					if (radio == false){
						alert("Attenzione!!!\nIl campo " + NomeCampo + " è obligatorio");
						formname.elements[I].focus();	
						return(false);
					}
				}
			}
		}
	if (pagina == 'cassa'){
		formname.elements['invia'].disabled = true
		formname.elements['reset'].disabled = true
		formname.elements['stampa'].disabled = true
		formname.elements['indietro'].disabled = true
	}
	if (pagina == 'pos'){
		formname.elements['invia'].disabled = true
		formname.elements['reset'].disabled = true
		formname.elements['stampa'].disabled = true
	}
	return true
}
