<!--

/*
---------------------------------------------------------------------
----- VALIDATORE GENERICO DI FORM (v. 1.0.0) 26 settembre 2003 ------
----- www.androgino.it ----------------------------------------------
---------------------------------------------------------------------
-------------------------------------------- Christian Iallonardi ---
-------------------------------------------- c.iallo@androgino.it ---
---------------------------------------------------------------------
 
SPECIFICHE di verifica_form:
Suddivisione dell'id dell'elemento del form:
l'id deve essere suddiviso in valori dal segno |

0) @ indica che l'elemento deve essere controllato
1) [testo] indica il nome visualizzato nell'alert
2) [numero] indica il numero minimo di caratteri che il campo può contenere (0 esclude il controllo)
3) [numero] indica il numero massimo di caratteri che il campo può contenere (si usa per textarea perché i campi text hanno già il controllo inserito)
4) [testo] indica il nome di una funzione da richiamare per un controllo particolare (es. validazione email). Se si inserisce di nuovo il carattere @ viene automaticamente validato come email. Se si inserisce "num" viene automaticamente validato come numero.


*/
function ControllaMail(frmMail,NCampo){
	EmailAddr = frmMail.value;
	if (EmailAddr.value!=""){		
		Filtro = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-]{2,})+\.)+([a-zA-Z0-9]{2,})+$/;
		if (Filtro.test(EmailAddr)) return true;
		else{
			alert("Attenzione: il formato dell'email per ilcampo '"+NCampo+"' non è esatto...");
			frmMail.focus();
			return false;
		}
	}
}
function ControllaNumero(frmNum,NCampo){
	NumVal = frmNum.value;
	if (NumVal.value!=""){		
		Filtro = /[0-9\.\-]/;
		if (Filtro.test(NumVal)) return true;
		else{
			alert("Attenzione: nel campo '"+NCampo+"' puoi inserire solo valori numerici");
			frmNum.focus();
			return false;
		}
	}
}
function verifica_form(frm){
	for (k=0; k<frm.elements.length; k++){
		ver_id=frm.elements[k].id;
		ver_type=frm.elements[k].type;
		ver_name=frm.elements[k].name;
		ver_value=frm.elements[k].value;
		ver_parti=ver_id.split("|");
		ver_contr=false;
		ver_etichetta='';
		ver_lMin=0;
		ver_lMax=100000;
		ver_funzione='';
		if (ver_parti.length>0) ver_contr=(ver_parti[0]=="@"); // controllo che sia da verificare
		if (ver_parti.length>1) ver_etichetta=ver_parti[1];
		if (ver_parti.length>2) ver_lMin=ver_parti[2];
		if (ver_parti.length>3) ver_lMax=ver_parti[3];
		if (ver_parti.length>4) ver_funzione=ver_parti[4];
		if (ver_contr){
			if (ver_type=="text" || ver_type=="textarea" || ver_type=="hidden"){ // se è un testo
				if(ver_value.length<ver_lMin){
					if(ver_lMin>1)alert("Il campo'"+ver_etichetta+"' deve contenere minimo "+ver_lMin+" caratteri, attualmente ne contiene "+ver_value.length);
					else alert("Devi inserire un valore per il campo '"+ver_etichetta+"'");
					if (ver_type!="hidden")frm.elements[k].focus();
					return false;
				}
				if(ver_value.length>ver_lMax && ver_lMax>0){
					alert("Il campo '"+ver_etichetta+"' deve contenere massimo "+ver_lMax+" caratteri, attualmente ne contiene "+ver_value.length);
					frm.elements[k].focus();
					return false;
				}
			}
			if (ver_type=="select-one"){ // se è un testo
				if(frm.elements[k].selectedIndex==0){
					alert("Devi selezionare un valore per il campo '"+ver_etichetta);
					frm.elements[k].focus();
					return false;
				}
			}
			if (ver_type=="checkbox"){ // se è un testo
				if(!frm.elements[k].checked){
					alert("Devi selezionare la casella '"+ver_etichetta);
					frm.elements[k].focus();
					return false;
				}
			}
			ret=false;
			if (ver_funzione!=''){
				if(ver_funzione=="@") ret=ControllaMail(frm.elements[k],ver_etichetta);
				if(ver_funzione=="num") ret=ControllaNumero(frm.elements[k],ver_etichetta);
				if(ver_funzione!="@" && ver_funzione!="num")ret=eval(ver_funzione);
				if(!ret) return false;
			}
		}
	}
	return true;
}
//-->
