
function validRequired(formField,fieldLabel){
	var result = true;
	
	if(formField){
		if (formField.value == "")
		{
			alert( campo_obbligatorio_warning + " " + '"' + fieldLabel +'"');
			formField.focus();
			formField.style.backgroundColor=colore_evidenza;
			result = false;
		}
	}
	return result;
}




function validRequiredCombo(formField,fieldLabel){
	var result = true;
	


	if (formField.value == '0')
	{
		alert( selezionare_un_valore_warning + " " + '"' + fieldLabel +'"');
		formField.focus();
		formField.style.backgroundColor=colore_evidenza;
		result = false;
	}
	
	
	return result;
	
}





function isEmailAddr(email){
  var theStr = new String(email);
  var result = false;
  var err = 0;
  var i;
  var c;
  var NDot=0;
  var PosFirstDot=0;
  var PosLastDot=0;
  var NAt =0;
  var PosFirstAt=0;
  var PosLastAt=0;
  var Domain;
  var DomainSuffix;

  
  for(i = 0; i < email.length; i++) {
    c = email.charAt(i);
    if (c == '.'){
     NDot++  
    }
  };
  
  
  for(i = 0; i < email.length; i++) {
    c = email.charAt(i);
    if (c == '@'){
     NAt++  
    }
  };
  
  
  for(i = 0; i < email.length; i++) {
    c = email.charAt(i);
    if (c == '.'){
     PosLastDot=i  
    }
  };
  
  
  for(i = 0; i < email.length; i++) {
    c = email.charAt(i);
    if (c == '@'){
     PosLastAt=i  
    }
  };
  
  
  PosFirstAt  = email.indexOf("@");
  PosFirstDot = email.indexOf(".");
  Domain=(email.substring(PosLastAt+1,PosLastDot))
  DomainSuffix = (email.substring(PosLastDot+1,email.length))
  
  if (PosFirstAt=="0")  err=1; 
  if (PosFirstDot=="0") err=1; 
  if (PosLastAt==email.length-1) err=1;
  if (PosLastDot==email.length-1) err=1;
  if (PosLastDot<PosLastAt) err=1;
  if (NAt!==1) err=1;
  if (NDot==0) err=1;
  if (Domain.length==0)err=1;
  if (DomainSuffix.length < 1 || DomainSuffix.length > 3) err=1;
  
  if (err==1){
	 result = false;
  }
  else{
	 result = true;
  }

return result;
    
}





function isdate(date){
//	
	var err=0
	var psj=0;
	a = date;
        var result = false;
	
	if (a.length != 10) err=1  //if (a.length != 8) err=1
	
	b = a.substring(3, 5)// month    b = a.substring(0, 2)// month
	c = a.substring(2, 3)// '/'
	d = a.substring(0, 2)// day      d = a.substring(3, 5)// day
	e = a.substring(5, 6)// '/'
	f = a.substring(6, 10)// year    f = a.substring(6, 8)

	//basic error checking
	if (b<1 || b>12) err = 1
	if (c != '/') err = 1
	if (d<1 || d>31) err = 1
	if (e != '/') err = 1
	if (f<1900 || f>2099) err = 1   //if (f<0 || f>99) err = 1
	
	//advanced error checking

	// months with 30 days
	if (b==4 || b==6 || b==9 || b==11){
		if (d==31) err=1
	}

	// february, leap year
	if (b==2){
		// feb
		var g=parseInt(f/4)
		if (isNaN(g)) {
			err=1
		}

		if (d>29) err=1
		if (d==29 && ((f/4)!=parseInt(f/4))) err=1
	}

	if (err==1){
	   result = false;
	}
	else{
	   result = true;
	}
return result;
}







function isTime(time) {
 var err=0;
 var a = time;
	
 if (a.length != 5) err=1  
	
 h = a.substring(0, 2) // hour   
 s = a.substring(2, 3) // '/'
 m = a.substring(3, 5) // minuts
	  
 //basic error checking
 if (h<0 || h>23) err = 1
 if ((s != '.') && (s != ':')) err = 1
 if (m<0 || m>59) err = 1
	
	
if (err==1){
  result = false;
}
else{
  result = true;
}

return result;

}






function IsInteger(number)
{
var str;
var err = 0;

str = number;

  for (var i=0; i < str.length; i++)
  {
    var ch = str.substring(i, i+1)


    if ( ( (ch < "0") || (ch >"9")  || (str.length == null) ) &&  (ch !==" "))
    {
      err=1;
    }
  }

  if (err==1){
     result = false;
  }
   else{
     result = true;
  }

return result;

}







function isAlphanumeric(string)
{   
var i;
var err = 0;

for (i = 0; i < string.length; i++)
{   
    var c = string.charAt(i);
     
    if (!  (  ((c >= "a") && (c <= "z")) || ((c >= "A") && (c <= "Z"))  || ((c >= "0") && (c <= "9"))  || (c == " ")  ) )
    err = 1;
 }

if (err==1){
     result = false;
  }
   else{
     result = true;
  }

return result;
}




function validEmail(formField,fieldLabel,required)
{
	var result = true;
	
	
        if (required && !validRequired(formField,fieldLabel))
	{	
	 //result = false;	
        }

	if ( !isEmailAddr(formField.value) )
	{
		alert(email_non_corretta_warning);
		formField.focus();
		formField.style.backgroundColor=colore_evidenza;
		result = false;
	}

   
   return result;
  
}






function validNum(formField,fieldLabel,required)
{
	var result = true;

	if (required && !validRequired(formField,fieldLabel))
		result = false;
  
 	if (result)
 	{
 		var num = parseInt(formField.value);
 		if (isNaN(num))
 		{
 			alert('Inserire un numero nel campo:"' + fieldLabel +'"');
			formField.focus();		
			result = false;
		}
	} 
	
	return result;
}






function validInteger(formField,fieldLabel,required)
{
	var result = true;
	
	if (required && !validRequired(formField,fieldLabel))
		result = false;
         
	if (result && (!IsInteger(formField.value) ))
	{
		alert('Inserire un valore numerico nel campo:"' + fieldLabel +'"');
		formField.focus();
		result = false;
	}
   
  return result;

}






function validAlphanumeric(formField,fieldLabel,required)
{
	var result = true;
	
	if (required && !validRequired(formField,fieldLabel))
		result = false;
         
	if (result && (!isAlphanumeric(formField.value) ))
	{
		alert( campo_obbligatorio_warning + '"' + fieldLabel +'"');
		formField.focus();
		result = false;
	}
  
 
  return result;

}










function DateInInterval(field,value1, value2, value3, comptype){

  // le date nel formato   gg/mm/aaaa
  //  =      value1  =   value2
  //  <      value1  <   value2
  //  >      value1  >   value2
  //  <=     value1  <=  value2
  //  >=     value1  >=  value2
  //  <<     value2  <   value1  <  value3
  //  <=<=   value2  <=  value1  <= value3
  //
  

   var day1, day2 ,day3 ;
   var month1, month2 ,month3;
   var year1, year2 ,year3;
   var retvalue;
   var rettext;
 
    


   day1   = value1.substring (0, value1.indexOf ("/"));
   month1 = value1.substring (value1.indexOf ("/")+1, value1.lastIndexOf ("/"));
   year1  = value1.substring (value1.lastIndexOf ("/")+1, value1.length);

   day2   = value2.substring (0, value1.indexOf ("/"));
   month2 = value2.substring (value2.indexOf ("/")+1, value2.lastIndexOf ("/"));
   year2  = value2.substring (value2.lastIndexOf ("/")+1, value2.length);
   
   day3   = value3.substring (0, value1.indexOf ("/"));
   month3 = value3.substring (value3.indexOf ("/")+1, value3.lastIndexOf ("/"));
   year3  = value3.substring (value3.lastIndexOf ("/")+1, value3.length);


  
   date1Object = new Date(year1,month1-1,day1);
   date2Object = new Date(year2,month2-1,day2);
   date3Object = new Date(year3,month3-1,day3);
   

   rettext = "";
   

   
   if (comptype == "=") {
     //retvalue = (date1Object.getTime()  == date2Object.getTime())
     //if (!retvalue) rettext = "Il valore nel campo:" + field + " deve essere < di " +  value2;
   }


   if (comptype == "<") {
     retvalue = (date1Object.getTime() < date2Object.getTime())
     if (!retvalue) rettext = "Il valore nel campo:" + field + " deve essere < di " +  value2;
   }


   if (comptype == ">") {
     retvalue = (date1Object.getTime()  > date2Object.getTime())
     if (!retvalue) rettext = "Il valore nel campo:" + field + " deve essere > di " +  value2;
   }


   if (comptype == ">=")  {
     retvalue = ( date1Object.getTime()  > date2Object.getTime() ) || ( date1Object.getTime()  == date2Object.getTime() );
     if (!retvalue) rettext = "Il valore nel campo:" + field + " deve essere >= di " +  value2;
   
   }


   if (comptype == "<=")  {
     retvalue = ( date2Object.getTime()  < date1Object.getTime() ) || ( date1Object.getTime()  == date2Object.getTime() );
      if (!retvalue) rettext = "Il valore nel campo:" + field + " deve essere <= di " +  value2;
   }


   if (comptype == "<<")  {
     retvalue = ( date2Object.getTime() < date1Object.getTime() ) && ( date1Object.getTime()  < date3Object.getTime() );
     if (!retvalue) rettext = "Il valore nel campo:" + field + " deve rispettare la regola: " + value2 + "<" + field + "<" + value3;
   }


   if (comptype == "<=<=")  {
     retvalue = ((date2Object.getTime()  < date1Object.getTime() ) || (date1Object.getTime()  == date2Object.getTime()) )  &&  (( date1Object.getTime()  < date3Object.getTime()) || ( date1Object.getTime()  == date3Object.getTime() ));
     if (!retvalue) rettext = "Il valore nel campo:" + field + " deve rispettare la regola: ["  +  value2 + "<= " + field + " <=" + value3 + "]";
   }
   
   

   return  rettext;
} 











function validDate(formField,fieldLabel,required)
{
	var result = true;
 
	if (required || (formField.value !== ""));
 	{
  		if (! isdate(formField.value));
 		{
 			alert('Inserire una data nella forma: GG/MM/YYYY nel campo"' + fieldLabel +'"');
			formField.focus();
                        result = false;		
		}
	} 
	
	return result;
}











function validDateInInterval(formField,fieldLabel,required,datemin,datemax,comptype){


 var result = true;
 

 if (required || (formField.value !== ""))
 
 {
 
  		if (! isdate(formField.value)){
 		    alert('Inserire una data nella forma: GG/MM/YYYY nel campo"' + fieldLabel +'"');
		    formField.focus();
                    result = false;		
		}

                else{
                   result = DateInInterval(fieldLabel,formField.value,datemin,datemax,comptype);
                   if (result !==""){
                      alert (result)
                      formField.focus();
                      result = false;	
                   }
                   else{
                      result = true; 
                   };

               };
} 
	
    return result;


	
}


















function validTime(formField,fieldLabel,required)
{
	var result = true;
   
	if (required || (formField.value !== ""))
 	{
  		if (! isTime(formField.value))
 		{
 			alert('Inserire un orario nella forma HH/MM  nel campo "' + fieldLabel +'"');
			formField.focus();
		        result = false;
		}
	} 
	
	return result;
}








function validCF(formField,fieldLabel,required)
{
    var result = true;
    anynum = formField.value;


       if (required || (formField.value !== ""))
 	{
  		if (!isAlphanumeric(formField.value))
 		{
 			alert('Il Codice Fiscale deve contenere solo caratteri alfanumerici!');
			formField.focus();
		        result = false;
		}

                if (anynum.length < 16)
 		{
 			alert('Il Codice Fiscale deve contenere 16 caratteri!');
			formField.focus();
		        result = false;
		}
	} 

	
	return result;
}









function validPassword(formField,fieldLabel,required)
{
    var result = true;
    anynum = formField.value;


       if (required || (formField.value !== ""))
 	{
  		if (!isAlphanumeric(formField.value))
 		{
 			alert("'" + password_char_non_corretti_warning + "'");
			formField.focus();
		        result = false;
		}

                if (anynum.length < 8)
 		{
 			alert("'" + password_len_non_corretta_warning + "'");
			formField.focus();
		        result = false;
		}
	} 

	
	return result;
}












function validPIVA(formField,fieldLabel,required)
{
    var result = true;
    anynum = formField.value;


       if (required || (formField.value !== ""))
 	{
  		if (!IsInteger(formField.value))
 		{
 			alert('La Partita IVA deve essere Numerica!');
			formField.focus();
		        result = false;
		}

                if (anynum.length < 11)
 		{
 			alert('La Partita IVA deve essere di 11 cifre!');
			formField.focus();
		        result = false;
		}
	} 

	
	return result;
}




























function validCurrency(formField,fieldLabel,required,Currency) { 

var NComma=0;
var PosComma=0;
var Decimals="";
var Integer="";
var Right="";
var Left="";
var Formatted="";
var Temp="";

var result = true;

anynum = formField.value


// NB. se Currency = True  allora Valuta = Lire
// altrimenti                   Valuta = euro



// Elimina tutti gli spazi
      for(i = 0; i < anynum.length; i++) {
        c = anynum.charAt(i);
        if (c !== ' '){
          Temp= Temp + c
        }
      };

anynum = Temp


if (Currency) {

     // Elimina tutti i carateri Non numerici e diversi da "." 
      Temp = "";
      for(i = 0; i < anynum.length; i++) {
        c = anynum.charAt(i);
        if( (c >= '0') && (c <= '9') ){
          Temp= Temp + c
        }
      };
     
    anynum   = Temp
    Integer  = anynum
    Current  = Integer

    while (Current.length > 0)
    {
     Right     = Current.substring(Current.length-3,Current.length)
     Current   = Current.substring(0,Current.length-3)
     Formatted =  Right + "." + Formatted
    }
   
    Formatted = Formatted.substring(0,Formatted.length-1) 
              
};




if (!Currency) {
   
   // Elimina tutti i carateri Non numerici e diversi da "," 
      Temp = "";
      for(i = 0; i < anynum.length; i++) {
        c = anynum.charAt(i);
        if( ((c >= '0') && (c <= '9')) || (c==",")   ){
          Temp= Temp + c
        }
      };
    
    anynum = Temp
   
    //  individua la posizione dell'ultima virgola
    Temp="" 
    PosLastComma=0;
    for(i = 0; i < anynum.length; i++) {
       c = anynum.charAt(i);
       if ((c == ',')){
         PosLastComma = i
       }  
    };
    
    
    if (PosLastComma == 0){
       Decimals = "00"
     }
    else{
       Decimals = anynum.substring(PosLastComma+1,PosLastComma+3)+ "0"
    };
    
    
    //  Elimina tutte le virgole ad esclusione dell' ultima
    Temp="" 
    for(i = 0; i < PosLastComma; i++) {
       c = anynum.charAt(i);
       if ((c !== ',') ){
         Temp= Temp + c
       }
    };
    
    
    
    if (PosLastComma == 0){
     Integer = anynum
     }
    else{
     Integer = Temp;
    };
    
  
    
    Decimals= Decimals.substring (0,2)
   
    Current = Integer

    while (Current.length > 0)
    {
     Right     = Current.substring(Current.length-3,Current.length)
     Current   = Current.substring(0,Current.length-3)
     Formatted = Right + "." + Formatted
    }
     
     
     Integer = Formatted.substring(0,Formatted.length-1) 
     
     
     
     if ((Integer == "") || parseInt(Integer)==0){
      Integer = "0"
     }
     
     Formatted = Integer + "," + Decimals
     
     if ( parseInt(Integer)==0 && parseInt(Decimals)==0 ) {
      Formatted = ""
     }
};



   formField.value=Formatted
  

   if (required && (formField.value == "")){
  	 alert('Inserire Importo nel campo "' + fieldLabel + '"');
	 formField.focus();
     result = false;
   } 
  
   return result;
}










function validEuroImport(formField,fieldLabel,required,ShowDecimal) { 

var NComma=0;
var PosComma=0;
var Decimals="";
var Integer="";
var Right="";
var Left="";
var Formatted="";
var Temp="";

var result = true;

anynum = formField.value


// NB. se ShowDecimal = True mostra le cifre decimali
// altrimenti  nasconde le cifre decimali



// Elimina tutti gli spazi
      for(i = 0; i < anynum.length; i++) {
        c = anynum.charAt(i);
        if (c !== ' '){
          Temp= Temp + c
        }
      };

anynum = Temp



   // Elimina tutti i carateri Non numerici e diversi da "," 
      Temp = "";
      for(i = 0; i < anynum.length; i++) {
        c = anynum.charAt(i);
        if( ((c >= '0') && (c <= '9')) || (c==",")   ){
          Temp= Temp + c
        }
      };
    
    anynum = Temp
   
    //  individua la posizione dell'ultima virgola
    Temp="" 
    PosLastComma=0;
    for(i = 0; i < anynum.length; i++) {
       c = anynum.charAt(i);
       if ((c == ',')){
         PosLastComma = i
       }  
    };
    
    
    if (PosLastComma == 0){
       Decimals = "00"
     }
    else{
       Decimals = anynum.substring(PosLastComma+1,PosLastComma+3)+ "0"
    };
    
    
    //  Elimina tutte le virgole ad esclusione dell' ultima
    Temp="" 
    for(i = 0; i < PosLastComma; i++) {
       c = anynum.charAt(i);
       if ((c !== ',') ){
         Temp= Temp + c
       }
    };
    
    
    
    if (PosLastComma == 0){
     Integer = anynum
     }
    else{
     Integer = Temp;
    };
    
  
    
    Decimals= Decimals.substring (0,2)
   
    Current = Integer

    while (Current.length > 0)
    {
     Right     = Current.substring(Current.length-3,Current.length)
     Current   = Current.substring(0,Current.length-3)
     Formatted = Right + "." + Formatted
    }
     
     
     Integer = Formatted.substring(0,Formatted.length-1) 
     
     
     
     if ((Integer == "") || parseInt(Integer)==0){
      Integer = "0"
     }
     

     

     if (ShowDecimal){
        Formatted = Integer + "," + Decimals
     }
     else{
        Formatted = Integer 
     };




     if ( parseInt(Integer)==0 && parseInt(Decimals)==0 ) {
      Formatted = ""
     }




   formField.value=Formatted
  

   if (required && (formField.value == "")){
  	 alert('Inserire Importo nel campo "' + fieldLabel + '"');
	 formField.focus();
     result = false;
   } 
  
   return result;
}







function validProvincia(formField,fieldLabel)
{
	var result = true;
	
	if (formField.value == "")
	{
		alert('Selezionare una provincia "' + fieldLabel +'"');
		result = false;
	}
	
	return result;
}



//-->


function ShowAndHide(id1){
if(document.getElementById){
    el1=document.getElementById(id1);
    if(el1.style.display=="none"){
        el1.style.display="block";
        }
    else{
        el1.style.display="none";
        }
    }
}

