function controllo_email(sEmail)
{if (sEmail==""){return true;}
var nondevetrovare="@.";if (sEmail.indexOf(nondevetrovare)>=0 ){return false;}
nondevetrovare=" ";if (sEmail.indexOf(nondevetrovare)>=0 ){return false;}
if (sEmail.lastIndexOf(".")==(sEmail.length)-1){return false;}
if ((((sEmail.indexOf(".")>0)&&(sEmail.indexOf("@")>0))&&(sEmail.indexOf(".",sEmail.indexOf("@"))>sEmail.indexOf("@"))) || (sEmail=="")){return true;}else{return false;}
}
function validate_text(evento,tipo)
{
keycode=evento.keyCode
var backspace=(keycode==0);
var lett_A=65;var lett_a=97; var lett_z=122;var lett_Z=90;
var num_0=48; var num_9=57; var chiocciola=64;
var punto=46; var virgola=44; var puntovirgola=59; var puntoescl=33; var puntodom=63; var duepunti=58
var apice=39; var meno=45;var spazio=32;var backslash=92;
var underscore=95; var meno=45;
var punteggiatura=(keycode==punto) || (keycode==virgola) || (keycode==puntovirgola) || (keycode==puntoescl) || (keycode==puntodom) || (keycode==duepunti)
var alfabetico=(((keycode >=lett_a ) && (keycode <=lett_z ))||((keycode >=lett_A ) && (keycode <=lett_Z )));
var testo=alfabetico || (keycode==spazio) || punteggiatura
var numero=(((keycode >=num_0 ) && (keycode <=num_9 )));
var email=(keycode!=backslash && keycode!=spazio && (numero || testo || (keycode>=meno && keycode<=punto) || keycode==chiocciola || keycode==underscore))
var alfanumerico=(((keycode >=lett_a ) && (keycode <=lett_z ))||((keycode >=lett_A ) && (keycode <=lett_Z ))||((keycode >=num_0 ) && (keycode <=num_9 )));
var dati_utente=(((keycode >=lett_a ) && (keycode <=lett_z)) || ((keycode >=lett_A ) && (keycode <=lett_Z)) || ((keycode >=num_0 ) && (keycode <=num_9)) || keycode==meno || keycode==underscore || keycode==punto)
var testo_generico=!((keycode==38) || (keycode==92) || (keycode==37))
var valido=false;
switch(tipo)
	{
	case 0:
		valido=email || (keycode>=apice) || (keycode==spazio);
		if (keycode==apice)
		{
			evento.keyCode=96
		}
		break;
	case 1:
		valido=testo || (keycode==apice);
		if (keycode==apice)
		{
			evento.keyCode=96
		}
		break;
	case 2:
		valido=numero;
		break;
	case 3:
		valido=email;
		break;
	case 4:
		valido=testo || (keycode==apice);
		break;
	case 5:
		valido=alfanumerico;
		break;
	case 6:
		valido=testo || alfanumerico || (keycode==apice);
		if (keycode==apice)
		{
			evento.keyCode=96
		}
		break;
	case 7:
		valido=testo_generico;
		if (keycode==apice)
		{
			evento.keyCode=96
		}
		break;		
	case 8:
		valido=dati_utente;
		break;
	case 9: 
		valido=(alfanumerico || keycode==45);
		break;		
	case 10:
		valido=(numero || keycode==punto);
		break;	
	case 11: 
		valido=alfabetico;
		break;		
	}
	if (!valido)
	{
		evento.keyCode=0
	};
	return valido
}
function genera_carattere_controllo_cf (codice_fiscale)
{
 somma=0;
 strCodFis = codice_fiscale.toUpperCase();
 var chrcontrollo="";
 if (strCodFis.length < 15)
 	{
	return "";
	}
strCodFis = codice_fiscale.substr(0,15);
strCodFis.toUpperCase();
    for (i=0; i<15; i++) 
       {
        if (((i+1) % 2) != 0) 
          {
           switch (strCodFis.charAt(i)) 
                 {
                  case '0':
                  case 'A':{ somma += 1; break;}
                  case '1':
                  case 'B':{ somma += 0; break;}
                  case '2':
                  case 'C':{ somma += 5; break;}
                  case '3':
                  case 'D':{ somma += 7; break;}
                  case '4':
                  case 'E':{ somma += 9; break;}
                  case '5':
                  case 'F':{ somma += 13; break;}
                  case '6':
                  case 'G':{ somma += 15; break;}
                  case '7':
                  case 'H':{ somma += 17; break;}
                  case '8':
                  case 'I':{ somma += 19; break;}
                  case '9':
                  case 'J':{ somma += 21; break;}
                  case 'K':{ somma += 2; break;}
                  case 'L':{ somma += 4; break;}
                  case 'M':{ somma += 18; break;}
                  case 'N':{ somma += 20; break;}
                  case 'O':{ somma += 11; break;}
                  case 'P':{ somma += 3; break;}
                  case 'Q':{ somma += 6; break;}
                  case 'R':{ somma += 8; break;}
                  case 'S':{ somma += 12; break;}
                  case 'T':{ somma += 14; break;}
                  case 'U':{ somma += 16; break;}
                  case 'V':{ somma += 10; break;}
                  case 'W':{ somma += 22; break;}
                  case 'X':{ somma += 25; break;}
                  case 'Y':{ somma += 24; break;}
                  case 'Z':{ somma += 23; break;}
                 }
          } 
        else 
            {
              switch (strCodFis.charAt(i)) 
                 {
                  case '0':
                  case 'A':{ somma += 0; break;}
                  case '1':
                  case 'B':{ somma += 1; break;}
                  case '2':
                  case 'C':{ somma += 2; break;}
                  case '3':
                  case 'D':{ somma += 3; break;}
                  case '4':
                  case 'E':{ somma += 4; break;}
                  case '5':
                  case 'F':{ somma += 5; break;}
                  case '6':
                  case 'G':{ somma += 6; break;}
                  case '7':
                  case 'H':{ somma += 7; break;}
                  case '8':
                  case 'I':{ somma += 8; break;}
                  case '9':
                  case 'J':{ somma += 9; break;}
                  case 'K':{ somma += 10; break;}
                  case 'L':{ somma += 11; break;}
                  case 'M':{ somma += 12; break;}
                  case 'N':{ somma += 13; break;}
                  case 'O':{ somma += 14; break;}
                  case 'P':{ somma += 15; break;}
                  case 'Q':{ somma += 16; break;}
                  case 'R':{ somma += 17; break;}
                  case 'S':{ somma += 18; break;}
                  case 'T':{ somma += 19; break;}
                  case 'U':{ somma += 20; break;}
                  case 'V':{ somma += 21; break;}
                  case 'W':{ somma += 22; break;}
                  case 'X':{ somma += 23; break;}
                  case 'Y':{ somma += 24; break;}
                  case 'Z':{ somma += 25; break;}
                 }
            }
    }
   somma %= 26;
   switch (somma) 
         {
          case 0: {chrcontrollo='A'; break;}
          case 1: {chrcontrollo='B'; break;}
          case 2: {chrcontrollo='C'; break;}
          case 3: {chrcontrollo='D'; break;}
          case 4: {chrcontrollo='E'; break;}
          case 5: {chrcontrollo='F'; break;}
          case 6: {chrcontrollo='G'; break;}
          case 7: {chrcontrollo='H'; break;}
          case 8: {chrcontrollo='I'; break;}
          case 9: {chrcontrollo='J'; break;}
          case 10: {chrcontrollo='K'; break;}
          case 11: {chrcontrollo='L'; break;}
          case 12: {chrcontrollo='M'; break;}
          case 13: {chrcontrollo='N'; break;}
          case 14: {chrcontrollo='O'; break;}
          case 15: {chrcontrollo='P'; break;}
          case 16: {chrcontrollo='Q'; break;}
          case 17: {chrcontrollo='R'; break;}
          case 18: {chrcontrollo='S'; break;}
          case 19: {chrcontrollo='T'; break;}
          case 20: {chrcontrollo='U'; break;}
          case 21: {chrcontrollo='V'; break;}
          case 22: {chrcontrollo='W'; break;}
          case 23: {chrcontrollo='X'; break;}
          case 24: {chrcontrollo='Y'; break;}
          case 25: {chrcontrollo='Z'; break;}
         }
return chrcontrollo
}

function controlla_codice_fiscale (codice_fiscale)
{
 somma=0;
 strCodFis = codice_fiscale.toUpperCase();
 if (strCodFis.length != 16)
 	{
	return false;
	}
 strCodFis = codice_fiscale.substr(0,15);
 strCodFis.toUpperCase();
var chrcontrollo=genera_carattere_controllo_cf(strCodFis);
strCodFis2=strCodFis + chrcontrollo;
strCodFisor=codice_fiscale.toUpperCase();
if (strCodFis2 == strCodFisor)
	{
	return true;
	}
	else
	{
	return false;
	}
}
function CalcolaCodiceFiscale(cognome,nome,gg,mm,aa,codice_comune,sesso)
{
 var cntrl_mese = new Array("A","B","C","D","E","H","L","M","P","R","S","T");
 var gs=0;
 var i=0;
 var somma=0;
 strCodFis="";
 strcognome="";
 strnome="";
 strgiornosex="";
 chrcontrollo='';
 Anno=aa; 
 Giorno=parseInt(gg,10); 
 AnnoCento=parseInt(aa,10);
 AnnoDieci=mm;
 AnnoZero=gg;
 Mese=cntrl_mese[mm-1];
 Comune=codice_comune;
if ((sesso == "F")||(sesso == 1)||(sesso=="f")) {Sesso=1;} else {Sesso=0;}
    for (i=0; i<cognome.length; i++) 
        {
         switch (cognome.charAt(i)) 
                {
                  case 'A':
                  case 'E':
                  case 'I':
                  case 'O':
                  case 'U': break;            
                  default : 
                  if((cognome.charAt(i)<='Z')&& (cognome.charAt(i)>'A'))
                   strcognome = strcognome + cognome.charAt(i);
                }
        }
    if (strcognome.length < 3) 
      {
       for (i=0; i<cognome.length; i++) 
          {
           switch (cognome.charAt(i)) 
                 {
                  case 'A':
                  case 'E':
                  case 'I':
                  case 'O':
                  case 'U': strcognome = strcognome + cognome.charAt(i);
                 }
          }
       if (strcognome.length < 3) 
         {
          for (i=strcognome.length; i<=3; i++) 
             { strcognome = strcognome + 'X'; }
         }
      }
   strcognome = strcognome.substring(0,3);
    for (i=0; i<nome.length; i++) 
       {
        switch (nome.charAt(i)) 
              {
               case 'A':
               case 'E':
               case 'I':
               case 'O':
               case 'U': break;
               default:
 if((nome.charAt(i)<='Z')&& (nome.charAt(i)>'A'))
                  strnome = strnome + nome.charAt(i);
              }
       }
    if (strnome.length > 3) 
      {
        strnome = strnome.substring(0,1) + strnome.substring(2,4);
      } 
    else {
          if (strnome.length < 3) 
            {
             for (i=0; i<nome.length; i++) 
                {
                  switch (nome.charAt(i)) 
                        {
                         case 'A':
                         case 'E':
                         case 'I':
                         case 'O':
                         case 'U': strnome = strnome + nome.charAt(i);
                        }
                }
             if (strnome.length < 3) 
               {
                for (i=strnome.length; i<=3; i++) 
                   {strnome = strnome + 'X';}
               }
            }
          strnome = strnome.substring(0,3);
         }
  gs = Giorno + (40 * Sesso);
  if(gs<10) strgiornosex = "0" + gs;
  else strgiornosex =  gs;
  strCodFis = strcognome + strnome + Anno + Mese + strgiornosex + Comune;
  var chrcontrollo=genera_carattere_controllo_cf(strCodFis);		 
  return (strCodFis + chrcontrollo);
}
function controlla_piva(valore_piva)
{if (isNaN(valore_piva)){return false;}
var str_valore_piva=new String (valore_piva);
if (str_valore_piva.length != 11){return false;}
var somma=0;
for (i=0; i<10; i++) 
       {numero=Number(str_valore_piva.charAt(i));
        if (((i+1) % 2) == 0){numero=numero*2;if (numero>9)	{numero=(numero % 10)+1;}}
		somma=somma+numero;
		}
numero_di_controllo=((10-((somma % 10))) %10);
numero=Number(str_valore_piva.charAt(10));
if (numero_di_controllo != numero){return false;}else{return true;}
}