function y2k(number){
	return (number < 1000) ? number + 1900 : number;
}
function AX_verifyForm(){
	pass = true;
	var i = 0;
	while (i < arrField.length){
		var idField = document.getElementById(arrField[i][0]);
		idField.className = arrField[i][1];
		var num = i;
		var fieldName = eval('nf.'+arrField[i][0]);
		if (arrField[i][2] == 't'){//CAMPO TESTO GENERICO
			if (arrField[i][3] != null){//CARATTERI MINIMI
				if (fieldName.value.length < arrField[i][3]){
					pass = false;
					break;
				}
				if (arrField[i][4] != null){//CARATTERI MASSIMI
					if (fieldName.value.length > arrField[i][4]){
						pass = false;
						break;
					}
				}
			} else if (fieldName.value == ''){
				pass = false;
				break;
			}
		} else if (arrField[i][2] == 'fof'){//CAMPO MULTIPLO DI TESTO
			var val1 = fieldName.value;
			var val2 = eval('nf.'+arrField[i][3]).value;
			if(val1==''&&val2==''){
				pass = false;
				break;
			}
		} else if (arrField[i][2] == 'ext'){// CAMPO ESTENSIONE FILE
			var extension = fieldName.value;
			extension = extension.substring(extension.lastIndexOf('.')+1);
			extension = extension.toLowerCase();
			var extcontrol = arrField[i][3];
			var arrcontrol = extcontrol.split(',');
			if (arrcontrol.length > 0){
				var verify = false;
				for(k=0;k<arrcontrol.length;k++){
					if(arrcontrol[k] == extension){
						verify = true;
					}
				}
				if(!verify){
					pass = false;
					break;
				}
			} else {
				if(extcontrol != extension){
					pass = false;
					break;
				}
			}
		} else if (arrField[i][2]=='tt'){//CAMPO TESTO UGUALE AD UN ALTRO
			fieldLike = eval('nameform.'+arrField[i][3]);
			if (fieldName.value!=fieldLike.value){
				pass = false;
				break;
			}
		} else if (arrField[i][2]=='n'){//CAMPO TESTO NUMERICO
			var num = fieldName.value;
			if ((num!=''&&isNaN(num)&&arrField[i][3])||!arrField[i][3]&&(num==''||isNaN(num))||!isNaN(num)&&parseFloat(num)>1000000){
				pass = false;
				break;
			}else{
				if (arrField[i][4] != null){
					if (num<arrField[i][4]){
						pass = false;
						break;
					}
				}
				if (arrField[i][5] != null){
					if (num>arrField[i][5]){
						pass = false;
						break;
					}
				}
			}
		} else if (arrField[i][2] == 'non'){//CAMPO MULTIPLO NUMERICO
			var val1 = fieldName.value;
			var val2 = eval('nf.'+arrField[i][3]).value;
			if((val1==''||isNaN(val1))&&(val2==''||isNaN(val2))){
				pass = false;
				break;
			}
		} else if (arrField[i][2]=='d'){//CAMPO TESTO DATA
			var data = fieldName.value;
			if(data!=''||!arrField[i][3]){
				if (data==''){
					pass = false;
					break;
				}
				var arrData = new Array();
				arrData = data.split("/");
				var gg = arrData[0];
				var mm = arrData[1];
				var yyyy = arrData[2];
				var today = new Date();
				mm = ((!mm) ? today.getMonth():mm-1);
				yyyy = ((!yyyy) ? y2k(today.getYear()):yyyy);
				if (!gg) return false;
				var test = new Date(yyyy,mm,gg);
				if ((y2k(test.getYear())!=yyyy)||(test.getMonth()!=mm)||(test.getDate()!=gg)||(yyyy<1901)||(yyyy>2078)){
					pass = false;
					break;
				}
			}
		} else if (arrField[i][2]=='dm'){//CAMPO TESTO DATA CON INPUT MULTIPLO
			var fieldName1 = eval('nf.'+arrField[i][0]+'_1');
			var fieldName2 = eval('nf.'+arrField[i][0]+'_2');
			var fieldName3 = eval('nf.'+arrField[i][0]+'_3');
			var data = fieldName1.value+'/'+fieldName2.value+'/'+fieldName3.value;
			if(data!='//'||!arrField[i][3]){
				if (data=='//'){
					fieldName = fieldName1;
					pass = false;
					break;
				}
				var arrData = new Array();
				arrData = data.split("/");
				var gg = arrData[0];
				var mm = arrData[1];
				var yyyy = arrData[2];
				var today = new Date();
				mm = ((!mm) ? today.getMonth():mm-1);
				yyyy = ((!yyyy) ? y2k(today.getYear()):yyyy);
				if (!gg) return false;
				var test = new Date(yyyy,mm,gg);
				if ((y2k(test.getYear())!=yyyy)||(test.getMonth()!=mm)||(test.getDate()!=gg)||(yyyy<1901)||(yyyy>2078)){
					fieldName = fieldName1;
					pass = false;
					break;
				}
			}
		} else if (arrField[i][2]=='e'){//CAMPO TESTO EMAIL
			email = fieldName.value;
			if(email!=''||!arrField[i][3]){
				sPattern= /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-]{2,})+\.)+([a-zA-Z0-9]{2,})+$/;
				if (!sPattern.test(email)){
					pass = false;
					break;
				}
			}
		} else if (arrField[i][2]=='rc'){//CAMPO CHECKBOX O RADIO BUTTON
			var tempValue = '';
			if (fieldName.length>1){
				for (x=0; x<fieldName.length; x++){
					if (fieldName[x].checked){tempValue = fieldName[x].value;}
				}
			} else {
				if (fieldName.checked){tempValue = fieldName.value;}
			}
			if (tempValue==''){
				pass = false;
				var num = i;
				break;
			}
		} else if (arrField[i][2]=='sm'){//CAMPO SELECT A SELEZIONE MULTIPLA
			var tempValue = '';
				for (x=0; x<fieldName.length; x++){
					if (fieldName[x].selected){tempValue = fieldName[x].value;}
				}
			if (tempValue==''){
				pass = false;
				var num = i;
				break;
			}
		} else if (arrField[i][2]=='s'){//CAMPO SELECT
			var selectValue = fieldName.options[fieldName.selectedIndex].value;
			if (selectValue==''){
				pass = false;
				break;
			}
		}
		i++;
	}
	if (pass){
		return true;
	} else {
		idField.className = arrField[i][1]+'Error';
		if (arrField[i][2]!='rc') fieldName.focus();
		return false;
	}	
}