function chkCF(cod){
//ESEGUE IL CONTROLLO SUL CODICE FISCALE.
//Contiene l'array di decodifica per il carattere di controllo del codice
fiscale.
codici = new Array(36);
for (i=0; i < 36; i++)

   codici[i] = new Array(2) }
codici[00][0]=0;  codici[00][1]=1;
codici[01][0]=1;  codici[01][1]=0;
codici[02][0]=2;  codici[02][1]=5;
codici[03][0]=3;  codici[03][1]=7;
codici[04][0]=4;  codici[04][1]=9;
codici[05][0]=5;  codici[05][1]=13;
codici[06][0]=6;  codici[06][1]=15;
codici[07][0]=7;  codici[07][1]=17;
codici[08][0]=8;  codici[08][1]=19;
codici[09][0]=9;  codici[09][1]=21;
codici[10][0]=10; codici[10][1]=2;
codici[11][0]=11; codici[11][1]=4;
codici[12][0]=12; codici[12][1]=18;
codici[13][0]=13; codici[13][1]=20;
codici[14][0]=14; codici[14][1]=11;
codici[15][0]=15; codici[15][1]=3;
codici[16][0]=16; codici[16][1]=6;
codici[17][0]=17; codici[17][1]=8;
codici[18][0]=18; codici[18][1]=12;
codici[19][0]=19; codici[19][1]=14;
codici[20][0]=20; codici[20][1]=16;
codici[21][0]=21; codici[21][1]=10;
codici[22][0]=22; codici[22][1]=22;
codici[23][0]=23; codici[23][1]=25;
codici[24][0]=24; codici[24][1]=24;
codici[25][0]=25; codici[25][1]=23;
codici[26][0]=0;  codici[26][1]=1;
codici[27][0]=1;  codici[27][1]=0;
codici[28][0]=2;  codici[28][1]=5;
codici[29][0]=3;  codici[29][1]=7;
codici[30][0]=4;  codici[30][1]=9;
codici[31][0]=5;  codici[31][1]=13;
codici[32][0]=6;  codici[32][1]=15;
codici[33][0]=7;  codici[33][1]=17;
codici[34][0]=8;  codici[34][1]=19;
codici[35][0]=9;  codici[35][1]=21;
   var tNum = 0;
   var t1 = 0;
   var resto = 0;
   cod=cod.toUpperCase();
   for(var i=1;i<16;i++) {
      t1=cod.charCodeAt(i-1);
      if
<65){
         t1=t1-22;
      }else{
         t1=t1-65;
      }
        tNum = tNum + codici[t1][i%2];      
   }
   resto = tNum%26 + 65;
   if(String.fromCharCode(resto) == cod.ch
arAt(15)){
      return true;

se{
      alert("Codice fiscale formalmente errato");
      return false;
   }

} 
