almeno1=0
sel="vuoto"
var reservedField = new Array(
                new Array("required_","Campo obbligatorio"),
                new Array("check_","Campo checkato"),
                new Array("valid_","Campo da validare"),
                new Array("numeric_","Campo numerico"),
                new Array("address_","Campo email"),
                new Array("select_","Campo select impostato"),
                new Array("oneselect_","almeno un campo select impostato")
);

function findName(key){
     var stringaTemp = "";
     for(i=0;i<key.length;i++){    //*** elimina gli eventuali suffissi - vedi array reservedField

          stringaTemp = stringaTemp + key.charAt(i);
          for(x=0;x<reservedField.length;x++){
               if(stringaTemp == reservedField[x][0]){
                    stringaTemp = "";
               }
          }
     }

     for(i=0;i<FieldName.length;i++){
          if(FieldName[i][0]==stringaTemp){
               return FieldName[i][1];
               break;
          }
     }
     return false;
}

//***************************************************************//
//***** ciclo principale per controllare i campi della form *****//
//***** se rientrano nei casi:                              *****//
//***** - "required_"         -> il campo è obbligatorio    *****//
//***** - "select_"           -> controllo della selezione  *****//
//***** - "valid_"            -> controllo del contenuto    *****//
//***************************************************************//

function checkForm(objForm){

     for (i=0; i<objForm.elements.length; i++){
		  var tempobj=objForm.elements[i];
          //alert(i + " " + tempobj.name + " " + objForm.elements[i].type);
          if ((tempobj.type.indexOf("hidden") != -1)||
               (tempobj.type.indexOf("button") != -1)||
               (tempobj.type.indexOf("submit") != -1)||
               (tempobj.type.indexOf("reset") != -1)||
               (tempobj.type.indexOf("image") != -1))
               continue;

          if(tempobj.value.length>0){
		  //stringaValore= "ppods sdsd"
		  
		  //tempobj.value=removeBlanc(stringaValore)
		  tempobj.value=removeBlanc(tempobj.value)

		  }
		
  			if (tempobj.name.indexOf(reservedField[0][0]) != -1){ // required
      		 if((tempobj.name.indexOf(reservedField[1][0]) != -1) && (!checkChecked(tempobj))){
                    return false;
                    break;}
             if((tempobj.name.indexOf(reservedField[5][0]) != -1) && (!checkSelected(tempobj))){
                    return false;
                    break;}
             if(!checkNotEmpty(tempobj)){
                      return false;
                      break;}
			 if (tempobj.name.indexOf(reservedField[3][0]) != -1){
                     if(!checkNumeric(tempobj)){
                      return false;
                     break;}}
			 if (tempobj.name.indexOf(reservedField[4][0]) != -1){
                     if(!checkEMail(tempobj)){
                      return false;
                      break;}}}
         	 if((tempobj.name.indexOf(reservedField[6][0])!= -1)){
                  checkSelect(i,objForm);
                    continue;
               }
             if ((tempobj.name.indexOf(reservedField[2][0]) != -1) && (!checkValid(tempobj))){
               return false;
               break;}
			   
			else{
			 if (tempobj.name.indexOf(reservedField[3][0]) != -1){
                     if(!checkNumeric(tempobj)){
                      return false;
                      break;
               		}
		   	  }
			 
			 }
          	 continue;}
     		 if(almeno1==0 && sel=="ko"){
             alert("selezionare almeno un campo opzione");
             return false;}
	         goPage=true	
             return true;
 }
			


function removeBlanc(component){
		z=component.length
		for(g=0; g<z; g++){
				if(component.charAt(0)==" "){
				component=component.substr(1,component.length);
			}
			else {
				g=z
			}
		}
		
		z=component.length
	
		for(g=0; g<z; g++){
			
				if(component.charAt(component.length-1)==" "){
				component=component.substr(0,component.length-1);
			}
			else {
				g=z
			}
		}

			
		
			return component
			//return component
			//alert("ecco:"+component+":fine")
}



//***************************************************************//
//***** funzione di lancio per il controllo dei campi       *****//
//***************************************************************//

function checkValid(component){
     if(component.name.indexOf(reservedField[3][0]) != -1)
          return checkNumeric(component);
     if(component.name.indexOf(reservedField[4][0]) != -1)
          return checkEMail(component);
     return true;
}

//****************************************//
//***** controllo campo non vuoto    *****//
//****************************************//

function checkNotEmpty(component){
		 helpText="" 		
     if(component.value.length == 0){
	  		if(llang=="ENG") helpText+='<span class="errorlabeltext">The field ' + findName(component.name)+ ' is required.</span>'
			else helpText+='<span class="errorlabeltext">Il campo ' + findName(component.name)+ ' è obbligatorio.</span>'
		  document.getElementById('formAlert').innerHTML = helpText;
		  //alert("Il campo " + findName(component.name)+ " è obbligatorio.");
          component.focus();
          component.select();
          return false;
     }
     return true;
}

//****************************************//
//***** controllo campo numerico     *****//
//****************************************//

function checkNumeric(component){
	helpText="" 	
     var string = component.value;
     if(string == "")
                return true;

     if(!checkNumericValue(string)){
	  		if(llang=="ENG") helpText+='<span class="errorlabeltext">The field ' + findName(component.name)+ ' must be numeric.</span>'
			else helpText+='<span class="errorlabeltext">Il campo ' + findName(component.name)+ ' deve essere numerico.</span>'
          
		  document.getElementById('formAlert').innerHTML = helpText;
		  //alert("Il campo " + findName(component.name) + " deve essere numerico.");
          component.focus();
          component.select();
          return false;
		  
     }
     return true;
}

function checkNumericValue(string){
     var decimale = false;
     for(j=0; j<string.length;j++){
          s = string.charAt(j);
          if(isNaN(parseInt(s))){
               if ((s == ".")&&(decimale == false)){
                    decimale = true;
               }
               else if ((s == ",")&&(decimale == false)){
                    decimale = true;
               }
               else{
                    return false;
                    break;
               }
          }
     }
     return true;
}

//****************************************//
//***** controllo data               *****//
//****************************************//

function checkDate(objectDay,objectMonth,objectYear){
     var day = objectDay.value;
     var month = objectMonth.value;
     var year = objectYear.value;

       if(day == "gg"){
                objectDay.value = "";
                day = "";
       }
       if(month == "mm"){
                objectMonth.value = "";
                month = "";
       }
       if(year == "aaaa"){
                objectYear.value = "";
                year = "";
       }
       if((day=="") && (month=="") && (year=="")){
                return true;
       }

       if(!checkNumericValue(day)){
          alert("Campo Giorno errato");
          objectDay.focus();
          objectDay.select();
          return false;
     }

     if(!checkNumericValue(month)){
          alert("Campo Mese errato");
          objectMonth.focus();
          objectMonth.select();
          return false;
     }

     if(!checkNumericValue(year)){
          alert("Campo Anno errato");
          objectYear.focus();
          objectYear.select();
          return false;
     }

   if ((month < 1) || (month > 12)) { // check month range
      alert("Il Mese deve essere compreso tra 1 e 12.");
      objectMonth.focus();
      objectMonth.select();

      return false;
   }
   if ((day < 1) || (day > 31)) {
      alert("Il Giorno deve essere compreso tra 1 e 31.");
      objectDay.focus();
      objectDay.select();
      return false;
   }
   if (((month==4) || (month==6) || (month==9) || (month==11)) && (day==31)) {
      alert("Il Mese "+month+" non può avere 31 giorni!")
      objectDay.focus();
      objectDay.select();
      return false
   }
   if (month == 2) { // check for february 29th
      var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
      if (day>29 || (day==29 && !isleap)) {
         alert("Febbraio " + year + " non ha " + day + " giorni!");
           objectMonth.focus();
           objectMonth.select();
         return false;
      }
   }
   if (year < 1000) {
     alert("Campo Anno errato.");
      objectYear.focus();
      objectYear.select();
     return false;
   }
   return true;  // date is valid
}

//****************************************//
//***** controllo campo ora          *****//
//****************************************//

function checkHour(objectHours,objectMinutes){
     var hours = objectHours.value;
     var minutes = objectMinutes.value;
     if((!checkNumericValue(hours))||((hours < 0 || hours > 23))){
          alert("Campo Ore errato");
          objectHours.focus();
          objectHours.select();
      return false;
     }
     if((!checkNumericValue(minutes))||((minutes < 0 || minutes > 59))){
          alert("Campo Minuti errato");
          objectMinutes.focus();
          objectMinutes.select();
      return false;
     }
     return true;
}

//****************************************//
//***** controllo campo Checked      *****//
//****************************************//

function checkChecked(component){
     if(!component.checked){
          helpText+='<span class="errorlabeltext">accetta privacy.</span>'
		  document.getElementById('formAlert').innerHTML = helpText;
		  //alert("Please enter your information in the required field " + findName(component.name));
          component.focus();
          component.select();
          return false;
     }
     return true;
}

//****************************************//
//***** controllo campo Selected     *****//
//****************************************//

function checkSelected(component){
     //alert(component.value);
	 helpText=""
     if(component.value == ""){
	 	if(llang=="ENG") helpText+='<span class="errorlabeltext">select the field ' + findName(component.name)+'.</span>'
		else helpText+='<span class="errorlabeltext">seleziona il campo ' + findName(component.name)+'.</span>'
		
		  document.getElementById('formAlert').innerHTML = helpText;
          //alert("Seleziona il campo " + findName(component.name)+".");
          component.focus();
          //component.select();
          return false;
     }
     return true;
}

//****************************************//
//***** controllo campo email        *****//
//****************************************//

function checkEMail(component){
	helpText=""
     if(component.value.lenth == 0){
          alert("Please enter your information in the required field e-mail address.");
          component.focus();
          component.select();
          return false;
     }
     if(component.value.indexOf('@') == -1 ||
          component.value.indexOf('@') == 0 ||
          component.value.indexOf('.') == (component.value.length -1)){
			if(llang=="ENG") helpText+='<span class="errorlabeltext">The field ' + findName(component.name)+ ' is not correct.</span>'
			else helpText+='<span class="errorlabeltext">Il campo ' + findName(component.name)+ ' non è corretto.</span>'
		  
		  document.getElementById('formAlert').innerHTML = helpText;
          //alert("il campo e-mail non è corretto.");
          component.focus();
          component.select();
          return false;
     }
     return true;
}


//*******************************************************//
//***** controllo di riempimento di un campo almeno *****//
//*******************************************************//

function checkAtLeastOne(objForm){
     for (i=0; i<objForm.elements.length; i++){
          var tempobj=objForm.elements[i];

         if ((tempobj.type.indexOf("hidden") != -1)||
               (tempobj.type.indexOf("button") != -1)||
               (tempobj.type.indexOf("submit") != -1)||
               (tempobj.type.indexOf("reset") != -1)||
               (tempobj.type.indexOf("image") != -1))
               continue;

         if (objForm.elements[i].value == "")
                    continue;
               else{
                    return true;
                    break;
               }
          }
          alert("Compilare almeno uno dei campi");
          return false;
}

function textCounter(field, countfield, maxlimit) {
          if (field.value.length > maxlimit) // if too long...trim it!
               field.value = field.value.substring(0, maxlimit);
          else
               countfield.value = maxlimit - field.value.length;
}
//*******************************************************//
//***** controllo delle oneselect                   *****//
//*******************************************************//
function checkSelect(i,objForm)
{
      if ((TheForm.elements[i].selectedIndex == 0))
      {
       sel="ko"
       return true;
      }
      else
      {
      almeno1=almeno1+1
       return true;
      }
}
function formHelp(component){
	if ((component.indexOf("_"))!=-1)component = component.split("_")[component.split("_").length-1]
	helpText = '<span class="helptext">'
	for(i=0; i<FieldName.length; i++){
		if(FieldName[i][0]==component){
		if(FieldName[i][2]){
		helpText+="<b>"+FieldName[i][1]+"</b>:&nbsp;"
		helpText+=FieldName[i][2]}
		
		break
		
		}
	}
	helpText+='</span>'
	document.getElementById('formAlert').innerHTML = helpText;
}

function upper(a,valore){
	mValore=valore.value

	if(mValore.length==1 && mValore!=" ") valore.value=mValore.toUpperCase()
	if(mValore.length!=1 && mValore.charAt(mValore.length-2)==" ") valore.value=mValore.substring(0,mValore.length-1)+mValore.charAt(mValore.length-1).toUpperCase()

	//if(mValore.length!=1 && mValore.charAt(mValore.length-2)!=" " && mValore.charAt(mValore.length-1)!=" " && mValore.charCodeAt(mValore.length-1)<=90){
	
	//valore.value=mValore.substring(0,mValore.length-1)+mValore.charAt(mValore.length-1).toLowerCase()
	//}
//valore.value=mValore.substring(0.mValore.length-2)+mValore.charAt(mValore.length-1).toLowerCase()
	//if(mValore.charAt(mValore.length-2)==",") valore.value+=" "
}










