function y2k(number){
    return (number < 1000) ? number + 1900 : number;
}
function AX_verifyForm()
{
    pass = true;
    var i = 0;
    var strRegExp = /,/g;
   
    while (i<arrField.length)
    {
        var num = i, valuefield;
		var control = arrField[i][0];
        var fieldName = nf[arrField[i][1]]
            if (arrField[i][3] == 't')
            {//CAMPO TESTO GENERICO
                valuefield = fieldName.value;
                if (arrField[i][4] != null)
                {//CARATTERI MINIMI
                    if (fieldName.value.length < arrField[i][4]){
                        pass = false;
                        break;
                    }
                    if (arrField[i][5] != null){//CARATTERI MASSIMI
                        if (fieldName.value.length > arrField[i][3]){
                            pass = false;
                            break;
                        }
                    }
                }
				else if (valuefield == '')
				{
					if(control == 1)
					{
                    	pass = false;
                    	break;
					}
                }
            } else if (arrField[i][3] == 'ext'){
                var extension = fieldName.value;
                valuefield = extension;
                extension = extension.substring(extension.lastIndexOf('.')+1);
                extension = extension.toLowerCase();
                var extcontrol = arrField[i][4];
                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][3] == 'tt'){//CAMPO TESTO UGUALE AD UN'ALTRO
                fieldLike = eval('nameform.'+arrField[i][4]);
                valuefield = fieldName.value;
                if (valuefield != fieldLike.value)
				{
                    pass = false;
                    break;
                }
            }
			
			else if (arrField[i][3] == 'n')
			{//CAMPO TESTO NUMERICO	
				valuefield = fieldName.value;
				if(!(control == 0 && valuefield == ''))
				{
					if(isNaN(parseFloat(valuefield)))
					{
						pass = false;
	                    break;						
					}
				}
            }
            else if (arrField[i][3] == 'd'){//CAMPO TESTO DATA
                var valuefield = fieldName.value;
				if(!(control == 0 && valuefield == ''))
				{
					if((valuefield != '') || (arrField[i][4] == null) || (arrField[i][4] == '1'))
					{                    
						if(valuefield.length != 10)
						{
							pass = false;
							break;
						}
					   
						var arrData = new Array();
						arrData = valuefield.split("/");
						var gg = arrData[0];
						var mm = arrData[1];
						var yyyy = (arrData[2] == 2) ? 2000 + arrData[2] : 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))
						{
							pass = false;
							break;
						}
					}
					else
					{
						pass = false;
						break;
					}
				}
            }
            else if (arrField[i][3] == 'e'){//CAMPO TESTO EMAIL
                valuefield = fieldName.value;
                sPattern= /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-]{2,})+\.)+([a-zA-Z0-9]{2,})+$/;
				if(!(control == 0 && valuefield == ''))
				{
					if (!sPattern.test(valuefield))
					{
						pass = false;
						break;
					}
				}
            }
            else if (arrField[i][3] == 'sms'){//CAMPO CELLULARE
                valuefield = fieldName.value;
				if(!(control == 0 && valuefield == ''))
				{
                	if(valuefield.indexOf('+') != 0 || valuefield.indexOf('.') != 3 || !(valuefield.indexOf('.') != valuefield.lastIndexOf('.')))
					{
                    	pass = false;
	                    break;
    	            }
				}
            }           
            else if (arrField[i][3] == '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;}
                }
                valuefield = tempValue;
                if (tempValue == ''){
                    pass = false;
                    var num = i;
                    break;
                }
            } else if (arrField[i][3] == 's'){//CAMPO SELECT
                var tempValue = fieldName.options[fieldName.selectedIndex].value;
                if (tempValue == '')
				{
                    pass = false;
                    break;
                }       
            } else if (arrField[i][3] == 'm'){//CAMPO SELECT           
                selectValue = '';
                for(j=0; j<fieldName.options.length; j++)
                {
                    if(fieldName.options[j].selected == true)
                        selectValue = 1           
                }
                tempValue = selectValue;
                if (selectValue == '')
				{
                    pass = false;
                    break;
                }
            }       
        i++;
    }

	//ritorno esito controllo validità
   	if(pass)
		return true;
	else
    {
		mess += '\n- '+ arrField[i][2];
    	alert (mess);
		if (arrField[i][3] != 'rc')
			fieldName.focus();
		else
			fieldName.select();
		
 		return false;
	}

}

function AXCheckChar(e, chartype)
{
 var unicode = e.charCode ? e.charCode : e.keyCode;
 if(chartype == 'phone')
 {
	if((unicode >= 48 && unicode <= 57) || unicode == 8 || unicode == 13)
		return true;
	else
		return false;
 }
 else if(chartype == 'targa')
 {
	if((unicode >= 48 && unicode <= 57) || (unicode >= 65 && unicode <= 90) || unicode == 8 || unicode == 13)
		return true;
 	else
		return false;
 } 
}
