function setFormFocus() { document.forms['loginform'].username.focus(); document.forms['loginform'].username.select(); }; // Validerar personnummer. 12 siffror. Inga bindestreck. Koll av sista siffran. function PersonnummerOK(pnr) { var ok = true; // var answer = ""; var length_pnr = pnr.length; trmp_nr = 0; del_nr = 0; sum_nr = 0; temp_str = ""; ej_nr = false; // Kontroll av att fältet ej är tomt if (pnr == "") { return false // answer += "tomt" } // Kontroll av att fältet innehåller exakt 12 tecken if (length_pnr != 12) { return false // answer += "\n fel längd: " + length_pnr } // Loopa igenom alla tecken och kontrollera att de är siffror for (i=1; i < 13; i++) { ej_nr = isNaN(parseInt(pnr.substring((i-1),i))); if (ej_nr == true) { return false; // alert("tecken nr:" + (i-1) +"är ej en siffra " + pnr.substring((i-1),i)) }; }; // Kontrollera att de två första siffrorna är 19. if (pnr.substring(0,2) != "19") { return false // answer += "\n Börjar ej med 19: " + pnr.substring(0,2) } // Beräkning av korrekt personnummer. // Loopa igenom tecken 3 till 11 (dvs personnumret utan 19 i början och exklusive sista tecknet) och summera for (i=3; i < 12; i++) { temp_nr = parseInt(pnr.substring((i-1),i)); // Om i är udda tal multipliceras med 2, annars med 1 if (i % 2 == 0) { sum_nr += temp_nr } else { // Om 2*talet blir tvåsiffrigt summeras de två siffrorna för sig if ((2*temp_nr) > 9) { del_nr = parseInt((temp_nr*2)/10); sum_nr += del_nr + ((2*temp_nr) - (del_nr*10)) } else { sum_nr += 2*temp_nr } } } // Kontroll av att sista siffra stämmer med den uträknade temp_nr = 0; temp_nr = parseInt((sum_nr + 10)/10)*10 - sum_nr; if (temp_nr == 10) temp_nr = 0; if (temp_nr != parseInt(pnr.substring(11,12))) { return false; }; // alert("Personnumret är OK") return ok; }; function pnrkoll() { var username = document.forms['loginform'].username.value; var newname = username; if(!isNaN(username)){ // detta innehåller endast siffror if (username.substring(0,2) != "19") { if(PersonnummerOK("19" + username)) { newname = "19" + username; } } } else if(username.indexOf("-")>0){ // detta innehåller - tecken username = username.replace("-",""); if(PersonnummerOK(username)) { // detta är ett ok personnummer newname = username; } else if(!isNaN(username)){ // detta innehåller endast siffror if (username.substring(0,2) != "19") { if(PersonnummerOK("19" + username)) { newname = "19" + username; // detta är ett ok personnummer } } } } else if(username.indexOf(" ")>0){ // detta innehåller space tecken username = username.replace(" ",""); if(PersonnummerOK(username)) { // detta är ett ok personnummer newname = username; } else if(!isNaN(username)){ // detta innehåller endast siffror if (username.substring(0,2) != "19") { if(PersonnummerOK("19" + username)) { newname = "19" + username; // detta är ett ok personnummer } } } } document.forms['loginform'].username.value = newname; return true; }