// Kollar om webblasare ar netscape function isNetscape() { var isNav4, isIE4; if (parseInt(navigator.appVersion.charAt(0)) >= 4) { var isNav4 = (navigator.appName == "Netscape"); var isIE4 = (navigator.appName.indexOf("Microsoft" != -1)); }; if (isNav4) { return true; } else { return false; }; }; // Validerar personnummer. 12 siffror. Inga bindestreck. Koll av sista siffran. function PersonnummerOK(pnr) { var ok = true; 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 } // Kontroll av att fältet innehaller exakt 12 tecken if (length_pnr != 12) { return false } // Loopa igenom alla tecken och kontrollera att de ar siffror for (i=1; i < 13; i++) { ej_nr = isNaN(parseInt(pnr.substring((i-1),i))); if (ej_nr == true) { return false; }; }; // Kontrollera att de två första siffrorna är 19. if (pnr.substring(0,2) != "19") { return false } // Berakning av korrekt personnummer. // Loopa igenom tecken 3 till 11 (dvs personnumret utan 19 i böorjan och exklusive sista tecknet) och summera for (i=3; i < 12; i++) { temp_nr = parseInt(pnr.substring((i-1),i)); // Om i ar 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; }; return ok; }; // Kontroll av att fält innehåller endast siffror function siffra(selectItem) { var ej_nr = false; var isSiffra = true; // Loopa igenom alla tecken och kontrollera att de är siffror for (i=1; i < 1 + selectItem.length; i++) { ej_nr = isNaN(parseInt(selectItem.substring((i-1),i))); if (ej_nr && isSiffra) { isSiffra = false; }; }; if (isSiffra) { return true; } else { return false; }; }; // Kontroll av att riktnummer (till telefonnummer) är korrekt. function Rnr(selectItem) { // Första tecknet ska vara en nolla if (((selectItem.substring(0,1) == "0") && (selectItem.length > 1)) || (selectItem == "")) { return true; } else { // Ej korrekt riktnr return false; }; }; // Kontrollerar om ett falt ar tomt function checkEmpty (myobj) { if (myobj.value == "") { return true; } else { return false; }; }; // Kontrollerar att en flervalslista inte har tomma strangen vald function checkEmptySelect (myobj) { var tmp = myobj.options[myobj.options.selectedIndex].value; if (tmp == "") { alert("Du måste markera ett val i listan"); return false; } else { return true; }; }; // Kontroll av att ett falt ar ett datum på formen 021224 function CorrectDate(this_date) { var strDag = ""; var strMan = ""; var strAr = ""; // Kontroll av år strAr = this_date.substring(0,2); if (siffra(strAr) == false) return false; // Månad ska vara 01 till 12 strMan = this_date.substring(2,4); if (siffra(strMan)) { if (strMan < 01 || strMan > 12) { return false; }; } else { return false; }; // Kontrollera om dag är korrekt strDag = this_date.substring(4, 6); if (strDag > 0 && strDag < 32) { //Kontrollera dag i förhållande till månad if (strMan == "02") { if ((strAr == "04") || (strAr == "08") || (strAr == "12") || (strAr == "16") || (strAr == "20")) { if (strDag > 29) { return false; } } else { if (strDag > 28) { return false; } }; } else if (strMan == "04" || strMan == "06" || strMan == "09" || strMan == "11") { if (strDag > 30) { return false; } } } else { return false; } if (this_date.length != 6) { return false; } return true; }; // Kontroll av att ett falt ar ett datum på formen 2002-12-24 function CorrectDate10(this_date) { var strDag = ""; var strMan = ""; var strAr = ""; // Kontroll av år strAr = this_date.substring(0,2); if (strAr != "19" && strAr != "20") { return false; } strAr = this_date.substring(0,4); if (siffra(strAr) == false) return false; if (this_date.substring(4,5) != "-") return false; // Månad ska vara 01- till 12- strMan = this_date.substring(5,7); if (siffra(strMan)) { if (strMan < 01 || strMan > 12) { return false; } } else { return false; } if (this_date.substring(7,8) != "-") return false; // Kontrollera om dag är korrekt strMan = this_date.substring(5, 8); strDag = this_date.substring(8, 10); if (strDag > 0 && strDag < 32) { //Kontrollera dag i förhållande till månad if (strMan == "02-") { if (((strAr % 4) == 0) && ((strAr % 100) != 0) || ((strAr % 400) == 0)) { if (strDag > 29) { return false; } } else { if (strDag > 28) { return false; } }; } else if (strMan == "04-" || strMan == "06-" || strMan == "09-" || strMan == "11-") { if (strDag > 30) { return false; } } } else { return false; } if (this_date.length != 10) { return false; } return true; }; // Konverterar ett datum till formen 2002-12-24 function ValidateBlurDate(myObj, mand, fname) { var answer = ""; var ok = true; var new_val = myObj.value.replace(' ',''); new_val = new_val.replace(' ',''); new_val = new_val.replace('/','-'); new_val = new_val.replace('/','-'); myObj.value = new_val; if (new_val == "") { if (mand == "1") { answer += "Datum saknas \n"; ok = false; }; } else { var tmp_y = ""; var tmp_m = ""; var tmp_d = ""; if (new_val.indexOf('-') < 0) { // Saknar bindestreck if (new_val.length == 6) { new_val = "20" + new_val; }; if (new_val.length == 8) { tmp_y = String(new_val).substring(0,4); tmp_m = String(new_val).substring(4,6); tmp_d = String(new_val).substring(6,8); new_val = tmp_y + '-' + tmp_m + '-' + tmp_d; }; } else { // Har bindestreck if (new_val.length == 8) { new_val = "20" + new_val; }; }; myObj.value = new_val; if (!CorrectDate10(myObj.value)) { //Ej giltigt answer += "Felaktigt datum \n"; ok = false; }; }; if (ok) { // document.getElementById('vResult_' + fname).style.display = 'none'; return true; } else { alert(answer); // document.getElementById('vResult_' + fname).innerHTML = '
' + answer; // document.getElementById('vResult_' + fname).style.display = ''; if (isNetscape()) { myObj.focus(); } else { myObj.select(); }; return false; }; }; // Kontroll av e-postadress function CorrectEpost(obj) { Ctrl = obj; var intSnabelA = 0 var strSnabelARight = "" var ok = true; intSnabelA = Ctrl.value.indexOf ('@', 0); if (intSnabelA >=0) { strSnabelARight = Ctrl.value.substring(++intSnabelA) } // intSnabelARight är allt som står till höger om snabel-a intSnabelARight = strSnabelARight.indexOf ('@', 0); // intPunktRight är det som står till höger om punkten intPunktRight = strSnabelARight.indexOf ('.', 0); if (Ctrl.value == "") { // Fältet är helt tomt ok=false } else if (intSnabelA == -1) { // Snabel-a saknas ok=false } else if (intSnabelARight >=0) { // Det finns fler än ett snabel-a ok=false } else if (Ctrl.value.indexOf ('å', 0) >= 0 || Ctrl.value.indexOf ('ä', 0) >= 0 || Ctrl.value.indexOf ('ö', 0) >= 0) { // Fältet innehåller å, ä eller ö ok=false } else if (Ctrl.value.indexOf ('Å', 0) >= 0 || Ctrl.value.indexOf ('Ä', 0) >= 0 || Ctrl.value.indexOf ('Ö', 0) >= 0) { // Fältet innehåller Å, Ä eller Ö ok=false } else if (Ctrl.value.indexOf ('.', 0) == -1) { // Det finns ingen punkt alls i fältet ok=false } else if (intPunktRight == -1) { // Det finns ingen punkt till höger om snabel-a ok=false } else if (Ctrl.value.length < 6) { // E-postadressen är för kort ok=false } else if (Ctrl.value.indexOf (',', 0) >= 0 || Ctrl.value.indexOf (' ', 0) >= 0 || Ctrl.value.indexOf ('+', 0) >= 0) { // Fältet innehåller , (komma), (blanksteg) eller + (plus) ok=false } else if (Ctrl.value.indexOf (';', 0) >= 0 || Ctrl.value.indexOf (':', 0) >= 0 || Ctrl.value.indexOf ('!', 0) >= 0) { // Fältet innehåller ; (semikolon), : (kolon) eller ! (utropstecken) ok=false } else if (Ctrl.value.indexOf ('.@', 0) >= 0 || Ctrl.value.indexOf ('@.', 0) >= 0 || Ctrl.value.indexOf ('.@.', 0) >= 0) { // Fältet innehåller en eller flera punkter i anslutning till snabel-a ok=false } return ok; } // Tar bort blanka i början och slutet av strängen samt // multipla blanka mitt i strängen (som ersätts med ett enda blanksteg) // Om inputString är något annat än en sträng, så returneras inputString function trimString(inputString, param) { if (typeof inputString != "string") { return inputString; } var retValue = inputString; var ch = retValue.substring(0, 1); // Hitta blanka i början av strängen while (ch == " ") { retValue = retValue.substring(1, retValue.length); ch = retValue.substring(0, 1); } ch = retValue.substring(retValue.length-1, retValue.length); // Hitta blanka i slutet av strängen while (ch == " ") { retValue = retValue.substring(0, retValue.length-1); ch = retValue.substring(retValue.length-1, retValue.length); } // Sök efter multipla blanka inom strängen while (retValue.indexOf(" ") != -1) { retValue = retValue.substring(0, retValue.indexOf(" ")) + retValue.substring(retValue.indexOf(" ")+1, retValue.length); } param.value = retValue; // return retValue; }; function maxLength(field,maxChars) { if(field.value.length >= maxChars) { event.returnValue=false; return false; }; }; function maxLengthPaste(field,maxChars) { event.returnValue=false; if ((field.value.length + window.clipboardData.getData("Text").length) > maxChars) { return false; }; event.returnValue=true; }; // Tar bort alla blanka i strängen // Om inputString är något annat än en sträng, så returneras inputString function removeAllBlanks(inputString, param) { if (typeof inputString != "string") { return inputString; } var retValue = inputString; var ch = retValue.substring(0, 1); // Hitta blanka i början av strängen while (ch == " ") { retValue = retValue.substring(1, retValue.length); ch = retValue.substring(0, 1); } ch = retValue.substring(retValue.length-1, retValue.length); // Hitta blanka i slutet av strängen while (ch == " ") { retValue = retValue.substring(0, retValue.length-1); ch = retValue.substring(retValue.length-1, retValue.length); } // Sök efter blanka inom strängen while (retValue.indexOf(" ") != -1) { retValue = retValue.substring(0, retValue.indexOf(" ")) + retValue.substring(retValue.indexOf(" ")+1, retValue.length); } param.value = retValue; }; // Kollar om personnumret är OK och konverterar olika varianter av personnummer. function convertPnr(vardet) { if (vardet != "") { var username = vardet; 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 }; }; }; }; return newname; }; }; function blurPersonnummer(obj) { if (!PersonnummerOK(obj.value)) { alert("Felaktigt personnummer"); if (isNetscape()) { obj.focus(); } else { obj.select(); }; }; }; 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; } function validateSearch(theform) { var ok = true; var answer = ""; if (theform.qsearch.value == "") { answer += "Du måste ange ett sökord. \n" ok = false; } if (ok) { return true; } else { alert(answer); return false; }; };