// Controllo campi del layer Carta di Credito // -------------------------------------------- function doFiscalCodeWarning(myForm) { var strError = ""; // -------- Controllo campo Codice Fiscale document.forms[0].fiscalCode.value = document.forms[0].fiscalCode.value.toUpperCase(); var CodFisc = document.forms[0].fiscalCode.value; var length = CodFisc.length; var re4CodFiscale = /[a-zA-Z]{6}\d{2}[a-zA-Z]\d{2}[a-zA-Z]\d{3}[a-zA-Z]/; var length = CodFisc.length; if (length == 0) { return true; } else { if (length != 16) { return true; } else { if (CodFisc.search(re4CodFiscale) != 0) { strError += "Il codice fiscale potrebbe avere dei caratteri errati\n"; } else { if (getCtrlChar(CodFisc) != CodFisc.charAt(length-1) ) { strError += "Il codice fiscale potrebbe essere errato\n"; } } } } if(strError == "") return true; else { alert(strError); return true; } } function getCtrlChar(strCodFis) { var somma = 0; var chrcontrollo = ''; var i; 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;} } return chrcontrollo; }