function OnFailed(error){alert('Errore durante la chiamata al Web Service: '+error.message+'.\n Per ritentare effettuare il refresh della pagina.');}
function clearCombo(combo){var x=combo.options.length-1;for(var i=x;i>=0;i--){combo.options[i]=null;}}
function isArray(obj){return(obj instanceof Array);}
function getMultiValue(ob){var arSelected="";for(var i=0;i<ob.options.length;i++){if(ob.options[i].selected)arSelected+=";"+ob.options[i].value;}if(arSelected.length>1){arSelected=arSelected.substring(1);}return arSelected;}
function setIndexByMultiValue(e,value){if(e!=undefined && e!=null && e.options && value!=""){var arrValues=value.split(";");for(var j=0;j<arrValues.length;j++){for(var i=0;i<e.options.length;i++){if(e.options[i].value==arrValues[j]){e.options[i].selected=true;break;}}}}}
function getIndexByValue(e,value){if(e!=undefined && e!=null){if(e.options){for(i=0;i<e.options.length;i++){if(e.options[i].value==value){return i;}}}}}
function getValueByIndex(e,index){if(e!=undefined && e!=null && index>-1){if(e.options && e.options[index]){return e.options[index].value;}} else {   return "";}}
function AddOption(objCombo,description,value){var option;option=new Option(description,value);objCombo[objCombo.options.length]=option;}
function trim(stringa){while(stringa.substring(0,1)==' '){stringa=stringa.substring(1,stringa.length);}while(stringa.substring(stringa.length-1,stringa.length)==' '){stringa=stringa.substring(0,stringa.length-1);}return stringa;}
function NewWindow(mypage,myname,w,h,scroll,pos) {if(pos=="random"){LeftPosition=(screen.width)?Math.floor(Math.random()*(screen.width-w)):100;TopPosition=(screen.height)?Math.floor(Math.random()*((screen.height-h)-75)):100;}if(pos=="center"){	LeftPosition=(screen.width)?(screen.width-w)/2:100;TopPosition=(screen.height)?(screen.height-h)/2:100;} else if ( (pos!="center" && pos!="random") || pos==null ){LeftPosition=0;TopPosition=20}settings='width='+w+',height='+h+',top='+TopPosition+',left='+LeftPosition+',scrollbars='+scroll+',location=no,directories=no,status=no,menubar=yes,toolbar=yes,resizable=yes';win=window.open(mypage,myname,settings);if(win.focus){win.focus();}}
function CalcolaCodiceFiscale(data_nascita, Comune, Sesso, Cognome, Nome ) {
   var gs = 0;
   var i = 0;
   var somma = 0;
   strCodFis = "";
   strcognome = "";
   strnome = "";
   strgiornosex = "";
   chrcontrollo = '';
   //----var data_nascita = document.forms[0].data_nascita.value;
   Giorno = parseInt(data_nascita.substring(0, 2), 10);
   AnnoCento = parseInt(data_nascita.substring(6, 8), 10);
   AnnoDieci = parseInt(data_nascita.substring(8, 9), 10);
   AnnoZero = parseInt(data_nascita.substring(9, 10), 10);
   var numMese = parseInt(data_nascita.substring(3, 5), 10);
   switch (numMese) {
      case 1 : Mese = 'A';
      break;
      case 2 : Mese = 'B';
      break;
      case 3 : Mese = 'C';
      break;
      case 4 : Mese = 'D';
      break;
      case 5 : Mese = 'E';
      break;
      case 6 : Mese = 'H';
      break;
      case 7 : Mese = 'L';
      break;
      case 8 : Mese = 'M';
      break;
      case 9 : Mese = 'P';
      break;
      case 10 : Mese = 'R';
      break;
      case 11 : Mese = 'S';
      break;
      case 12 : Mese = 'T';
      break;
   }
   //----Comune = document.forms[0].cod_luogo_nascita.value;
   //codice del comune
   //Sesso = parseInt(document.forms[0].sesso.options[document.forms[0].sesso.selectedIndex].value, 10);
      // Processa il cognome
      //----------------------------------------------------------------
      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);
      //------------------------------------------------------------
      // processa il nome
      //----------------------------------------------------------------
      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);
      }
      //--------------------------------------- Fine processa nome
      // processa giorno e sesso
      //--------------------------------------------
      gs = Giorno + (40 * Sesso);
      if(gs < 10) strgiornosex = "0" + gs;
      else strgiornosex = gs;
      //--------------------------------------------
      strCodFis = strcognome + strnome + AnnoDieci + AnnoZero + Mese + strgiornosex + Comune;
      // calcola la cifra di controllo
      //--------------------------------------------
      for (i = 0; i < 15; i++) {
         if (((i + 1) % 2) != 0) //caratteri dispari
         {
            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 //caratteri pari
         {
            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;
         }
      }
      //--------------------------------------------
      //alert(strCodFis + chrcontrollo);
      //document.forms[0].CodiceFiscale.value = strCodFis + chrcontrollo;
      return strCodFis + chrcontrollo;
}
