
function ufHideLayer( id ) {
	if (document.layers)
		// --Kommando som IE 4+ förstår
		document.layers[id].visibility = "hide";
	else if (document.all) 
		// --Kommando som NN 4+ men inte NN6 förstår
		document.all[id].style.visibility = "hidden";
	else
		// --Kommando som NN6 förstår
		document.getElementById(id).style.visibility = "hidden";
}


function ufShowLayer( id ) {
	if (document.layers)
		// --Kommando som IE 4+ förstår
		document.layers[id].visibility = "show";	
	else if (document.all)
		// --Kommando som NN 4+ men inte NN6 förstår
		document.all[id].style.visibility = "visible";
	else
		// --Kommando som NN6 förstår
		document.getElementById(id).style.visibility = "visible";
}


// show/hide div
function toggleDisplay(element) {
	var ele = document.getElementById(element);
	if(ele.style.display == "block") {
   	    ele.style.display = "none";
   	    
   	    if (document.getElementById("divBoktyplabel")) {
   	        document.getElementById("divBoktyplabel").style.display = "block"
   	    }
   	    if (document.getElementById("divBoktyp")) {
   	        document.getElementById("divBoktyp").style.display = "block"
   	    }
   	    
   	    if (document.getElementById("divBoktyplabelfler")) {
   	        document.getElementById("divBoktyplabelfler").style.display = "none"
   	    }
   	    if (document.getElementById("divBoktypfler")) {
   	        document.getElementById("divBoktypfler").style.display = "none"
   	    }
   	    
  	}
	else {
		ele.style.display = "block";
		
   	    if (document.getElementById("divBoktyplabel")) {
   	        document.getElementById("divBoktyplabel").style.display = "none"
   	    }
   	    if (document.getElementById("divBoktyp")) {
   	        document.getElementById("divBoktyp").style.display = "none"
   	    }
   	    
   	    if (document.getElementById("divBoktyplabelfler")) {
   	        document.getElementById("divBoktyplabelfler").style.display = "block"
   	    }
   	    if (document.getElementById("divBoktypfler")) {
   	        document.getElementById("divBoktypfler").style.display = "block"
   	    }
		
	}
} 


function printform() {
    window.print();
    return false;
}


function validhour(element)
{
	var gField = element;
	var at = gField.value;
	var timme = parseInt(at,10)
	if (isNaN(timme)) {
		timme = 0;
	}
	if (timme > 24) {
		timme = 24;
	}
	if (timme < 0) {
	    timme = 0;
	}
	gField.value = hourcheck(timme);
	return gField.value;	
}


function screensize(element)
{	
    var x,y;
    if (self.innerHeight) // all except Explorer
    {
    	x = self.innerWidth;
    	y = self.innerHeight;
    }
    else if (document.documentElement && document.documentElement.clientHeight) // Explorer 6 Strict Mode
    {
    	x = document.documentElement.clientWidth;
    	y = document.documentElement.clientHeight;
    }
    else if (document.body) // other Explorers
    {
    	x = document.body.clientWidth;
    	y = document.body.clientHeight;
    }
	element.value = x;
	return true;
}


function validdatum(form,adjField,days)
{
	var gField = form;
	var at = gField.value;
	var myDate = new Date();
	
	var dd;
	var mm;
	var yyyy;
	
	var ok = true;
	var fel = 0;
	var faltFel;
	var faltMedd;
	
	if (at.indexOf("-") != -1 && at.indexOf("-") == at.lastIndexOf("-")) {
		fel = 1;
	}
	else if (at.indexOf("-") == -1 && (at.length != 6 && at.length != 8)) {
		fel = 1;
	}
	else if (at.indexOf("-") == -1 && at.length == 6) {
		dd = parseInt(at.substring(4,6),10)
		mm = parseInt(at.substring(2,4),10)
		yyyy = parseInt(at.substring(0,2),10)
		if (isNaN(mm) || isNaN(dd) || isNaN(yyyy)) {
			fel = 1;
		}
		if (mm > 12) {
			fel = 2;
		}
		if (dd > 31) {
			fel = 3;
		}					
		if (yyyy >= 80) {
			yyyy += 1900
		}
		else {
			yyyy += 2000
		}
		if (!checkMonthLength(mm,dd)) {
			fel = 3;
		}
		if (mm == 2) {
			if (!checkLeapMonth(mm,dd,yyyy)) {
				//gField.focus()
				//gField.select()
				//return false;
				fel = 3;
			}
		}
	}
	else if (at.indexOf("-") == -1 && at.length == 8) {
		dd = parseInt(at.substring(6,8),10)
		yyyy = parseInt(at.substring(0,4),10)
		mm = parseInt(at.substring(4,6),10)
		if (isNaN(mm) || isNaN(dd) || isNaN(yyyy)) {
			fel = 1;
		}
		if (mm > 12) {
			fel = 2;
		}
		if (dd > 31) {
			fel = 3;
		}					
		if (!checkMonthLength(mm,dd)) {
			fel = 3;
		}
		if (mm == 2) {
			if (!checkLeapMonth(mm,dd,yyyy)) {
				fel = 3;
			}
		}			
	}		
	else if (at.indexOf("-") != -1 && at.indexOf("-") != at.lastIndexOf("-")) {
		if (at.length < 8 || at.length > 10) {
			fel = 1;
		}
		else {
			if (at.length == 8) {
				dd = parseInt(at.substring(6,8),10)
				yyyy = parseInt(at.substring(0,2),10)
				mm = parseInt(at.substring(3,5),10)
				if (isNaN(mm) || isNaN(dd) || isNaN(yyyy)) {
					fel = 1;
				}
				if (dd > 31) {
					fel = 3;
				}
				checkMonthLength(mm,dd)
				if (yyyy >= 80) {
					yyyy +=1900;
				}
				else {
					yyyy +=2000;
				}
				if (!checkMonthLength(mm,dd)) {
					fel = 3;
				}
				if (mm == 2) {
					if (!checkLeapMonth(mm,dd,yyyy))
					{
						fel = 3;
					}
				}
			}
			else {
				dd = parseInt(at.substring(8,10),10)
				yyyy = parseInt(at.substring(0,4),10)
				mm = parseInt(at.substring(5,7),10)
				if (isNaN(mm) || isNaN(dd) || isNaN(yyyy)) {
					fel = 1;
				}
				if (mm > 12) {
					fel = 2;
				}
				if (dd > 31) {
					fel = 3;
				}
				if (!checkMonthLength(mm,dd)) {
					fel = 3;
				}
				if (mm == 2) {
					if (!checkLeapMonth(mm,dd,yyyy)) {
						fel = 3;
					}
				}
			}
		}
	}
	
	// kolla antFel
    var antFel = 0;
    if (document.getElementById("antFel")) {
        antFel = document.getElementById("antFel").innerHTML;
        if (parseInt(antFel)) {
            antFel = parseInt(antFel);
        }
        else {
            antFel = 0;
        }
    }
	
    //visas fel för det aktuella fältet redan
    var vis = true;
	faltFel = "err" + gField.id
    if (document.getElementById(faltFel)) {
	    if (document.getElementById(faltFel).style.display == "none") {
	        vis = false;
	    }
	}
	// visa inga fel för det aktuella fältet
    for (i=1; i<4; i++) {
        faltMedd = "err" + gField.id + "Medd" + i;
	    if (document.getElementById(faltMedd)) {
	        document.getElementById(faltMedd).style.display = "none";
	    }
    }
	faltFel = "err" + gField.id
	faltMedd = "err" + gField.id + "Medd" + fel
	if (fel) {
	    if (document.getElementById(faltFel)) {
	        document.getElementById(faltFel).style.display = "inline";
	    }
	    if (document.getElementById(faltMedd)) {
	        document.getElementById(faltMedd).style.display = "list-item";
	    }
        if (document.getElementById("Resultat")) {
            document.getElementById("Resultat").style.display="block"
            document.getElementById("Resultat").style.borderColor="Red"
        }
        if (document.getElementById("Infomedd")) {
            document.getElementById("Infomedd").style.display="block"
        }
        if (document.getElementById("Atgard")) {
            document.getElementById("Atgard").style.display="block"
        }
	    if (!vis) {
            if (document.getElementById("antFel")) {
                antFel++;
                //antFel = 1;
                document.getElementById("antFel").innerHTML = antFel;
            }
        }
		gField.focus();
		gField.select();
		return false;
	}
	else {
	    if (document.getElementById(faltFel)) {
	        document.getElementById(faltFel).style.display = "none";
	    }
	    if (vis) {
            if (document.getElementById("antFel")) {
                antFel--;
                document.getElementById("antFel").innerHTML = antFel;
            }
        }
		gField.value = yyyy + "-" + monthDayFormat(mm) + "-" + monthDayFormat(dd);
		if ((adjField) && (days)) {
    	    myDate.setFullYear(yyyy, mm-1, dd);
            myDate.setDate(myDate.getDate()+days);
	        aField = adjField;
	        aField.value = myDate.getFullYear() + "-" + monthDayFormat(myDate.getMonth()+1) + "-" + monthDayFormat(myDate.getDate())
            //visas felet redan
            vis = true;
	        faltFel = "err" + adjField.id
            if (document.getElementById(faltFel)) {
	            if (document.getElementById(faltFel).style.display == "none") {
	                vis = false;
	            }
	        }
	        if (vis) {
                if (document.getElementById("antFel")) {
                    antFel--;
                    document.getElementById("antFel").innerHTML = antFel;
                }
            }
	        // visa inga fel för det aktuella fältet
	        if (document.getElementById(faltFel)) {
	            document.getElementById(faltFel).style.display = "none";
	        }
            for (i=1; i<4; i++) {
                faltMedd = "err" + adjField.id + "Medd" + i;
	            if (document.getElementById(faltMedd)) {
	                document.getElementById(faltMedd).style.display = "none";
	            }
            }
		}
        if (antFel < 0) {
            antFel = 0;
        }
        if (antFel == 0) {
            if (document.getElementById("Resultat")) {
                document.getElementById("Resultat").style.display="none"
            }
        }
		return gField.value;
	}
	
}


function monthDayFormat(val)
{
	if (isNaN(val) || val == 0) {
		return "01"
	}
	else if (val < 10) {
		return "0" + val
	}
	return "" + val
}


function hourcheck(val)
{
	if (isNaN(val) || val == 0) {
		return "00"
	}
	else if (val < 10) {
		return "0" + val
	}
	return "" + val
}


function checkMonthLength(mm,dd)
{
	if ((mm == 4 || mm == 6 || mm == 9 || mm == 11) && dd > 30) {
		return false
	}
	else if (dd > 31) {
		return false
	}
	return true
}


// check the entered February date for too high a value 
function checkLeapMonth(mm,dd,yyyy)
{
	if (yyyy % 4 > 0 && dd > 28) {
		return false
	}
	else if (dd > 29) {
		return false
	}
	return true
}


function popupstor(lank,bredd,hojd,rubrik)
{	
	//Detta är en generell funktion för att ladda ett popup-fönster, 
	//lank är en sträng innehållande länken som skall laddas
	//bredd och hojd är width och height som fönstret skall ha
	//rubrik är rubriken som fönstret skall ha
	self.open(lank,rubrik,"width="+bredd+",height="+hojd+",scrollbars=yes,resizable=yes,left=0,top=0")
	return false;
}


function utskrift(lank,bredd,hojd,rubrik)
{	
	//Detta är en generell funktion för att ladda ett popup-fönster, 
	//lank är en sträng innehållande länken som skall laddas
	//bredd och hojd är width och height som fönstret skall ha
	//rubrik är rubriken som fönstret skall ha
	self.open(lank,rubrik,"width="+bredd+",height="+hojd+",toolbar=yes,scrollbars=yes,resizable=no,left=0,top=0")
	return false;
}


function loadKundSoek()
{	
	window.resizeTo(650,710)
}


function setclient(kod)
{
	link = "default.asp?fri=30&try=2&kod="+kod
	location.href = link
	window.resizeTo(350,400)
	return false;
}


function objekturval()
{	
	link="default.asp?fri=7";
	window.open(link,"Bokning","width=530,height=500,scrollbars=yes,resizable=yes,left=0,top=0");window.opener=self;
}


function loadparent()
{
	opener.close(true);
	self.location.reload(true);	
}


// validering av inskriven tid
function validateTimeInput(element)
{
	var hh;
	var mm;
	var min;
	var mm1;
	var mm2;
	var summa;
	var ok = true;
	
	var falt = element.id;
	var faltFel = "err" + falt;
	var faltMedd = "err" + falt + "Medd";
	var at = element;
	var gField = trim(element.value);
    var antFel = 0;

    if (document.getElementById("antFel")) {
        antFel = document.getElementById("antFel").innerHTML;
        if (parseInt(antFel)) {
            antFel = parseInt(antFel);
        }
        else {
            antFel = 0;
        }
    }
	
	if (isEmpty(gField.replace(":", ""))) {
	    hh = "00";
	    mm1 = "0";
	    mm2 = "0";
	}
	else {
	    gField = gField.replace(".", ":")
	    gField = gField.replace(",", ":")
	    //om längd = 5 och : inte finns med -> fel
	    if (gField.indexOf(":") == -1 && gField.length == 5) {
	        ok = false;
	    }
	
	    if (ok) {
	        // kolla inmatade tecken, endast numeriska tecken samt :
	        var objRegExp  = new RegExp(/(^\d\d*$)/);
	        if (!objRegExp.test(gField.replace(":", ""))) {
	            ok = false;
	        }
	    }
	
	    if (ok) {
	        // finns : med
	        if (gField.indexOf(":") == -1) {
	            //längd
	            if (gField.length == 1 || gField.length == 2) {
	                hh = parseInt(gField.substr(0),10);
	                mm1 = 0;
	                mm2 = 0;
	            }
	            else if (gField.length == 3) {
	        	    hh = parseInt(gField.substr(0,1),10);
	        	    mm1 = parseInt(gField.substr(1,1),10);
	        	    mm2 = parseInt(gField.substr(2,1),10);
	            }
	            else {
	        	    hh = parseInt(gField.substr(0,2),10);
	        	    mm1 = parseInt(gField.substr(2,1),10);
	        	    mm2 = parseInt(gField.substr(3,1),10);
	            }
	        }
	        else {
                if (gField.indexOf(":") == 0) {
                    hh = 0;
                    min = gField.substr(1)
                }
                else if (gField.indexOf(":") == 1) {
                    hh = parseInt(gField.substr(0,1),10);
                    min = gField.substr(2);
                }
                else if (gField.indexOf(":") == 2) {
                    hh = parseInt(gField.substr(0,2),10);
                    min = gField.substr(3);
                    
                }
                else {
                    gField = gField.replace(":", "")
                    hh = parseInt(gField.substr(0,2),10);
                    min = gField.substr(2);
                }
                
                if (min.length == 0) {
                    mm1 = 0;
                    mm2 = 0;
                }
                else if (min.length == 1) {
	        	    mm1 = parseInt(min.substr(0,1),10);
	        	    mm2 = 0;
                }
                else {
	        	    mm1 = parseInt(min.substr(0,1),10);
	        	    mm2 = parseInt(min.substr(1,1),10);
                }
	        }
	        
	        if (isNaN(hh)) {
	            hh = 0;
	        }
	        if (isNaN(mm1)) {
	            mm1 = 0;
	        }
	        if (isNaN(mm2)) {
	            mm2 = 0;
	        }
	        
	        if (mm2 >= 1 && mm2 <= 4){
	            mm2 = 0;
	        }
	        else if (mm2 >= 6 && mm2 <= 9) {
	            mm2 = 5;
	        }
	        
	    }

        mm = mm1 * 10 + mm2;
	    if (ok) {
	        if (mm > 59 || hh > 24 || hh < 0 || mm < 0) {
	            ok = false;
	        }
	    }
	    
	    if (ok) {
	        summa = (hh * 12) + (mm / 5)
	        if (summa < 0 || summa > 288) {
	            ok = false;
	        }
	    }
	    
	    if (ok) {
	        if (hh < 10) {
	        	hh = "0" + hh
	        }
	    }
	
	}
    //visas felet redan
    var vis = true;
    if (document.getElementById(faltMedd)) {
        if (document.getElementById(faltMedd).style.display == "none") {
            vis = false;
        }
    }
	// tid ok ?
	if (ok) {
	    if (document.getElementById(faltFel)) {
	        document.getElementById(faltFel).style.display="none"
	    }
	    if (document.getElementById(faltMedd)) {
            document.getElementById(faltMedd).style.display="none"
        }
        if (vis) {
            if (document.getElementById("antFel")) {
                antFel--;
                document.getElementById("antFel").innerHTML = antFel;
            }
        
        }
        if (antFel < 0 ) {
            antFel = 0;
        }
        if (antFel == 0) {
            if (document.getElementById("Resultat")) {
                document.getElementById("Resultat").style.display="none"
            }
        }
	    at.value = hh + ":" + mm1 + mm2;
	    return at.value
	}
	else {
	    if (document.getElementById(faltFel)) {
	        document.getElementById(faltFel).style.display="inline"
	    }
	    if (document.getElementById(faltMedd)) {
            document.getElementById(faltMedd).style.display="list-item"
        }
        if (document.getElementById("Resultat")) {
            document.getElementById("Resultat").style.display="block"
            document.getElementById("Resultat").style.borderColor="Red"
        }
        if (document.getElementById("Infomedd")) {
            document.getElementById("Infomedd").style.display="block"
        }
        if (document.getElementById("Atgard")) {
            document.getElementById("Atgard").style.display="block"
        }
        if (!vis) {
            if (document.getElementById("antFel")) {
                antFel++;
                document.getElementById("antFel").innerHTML = antFel;
            }
        }
		at.select();
		at.focus();
		return false
	}
}


function isEmpty(inputStr) {
	if (inputStr == null || inputStr == "") {
	return true
	}
	return false
}


function popup(varde)
{
	link="default.asp?fri=40&str="+varde
	window.open(link,"Meddelande","width=350,height=300,scrollbars=no,resizable=no,left=0,top=0")
	return false;
}


function populateSelect(form,BoknIntervall,AntalBlock,sluttid)
{
	var valdtid = form.starttid.options[form.starttid.options.selectedIndex].value;
	var starttid;
	starttid = parseInt(valdtid / parseInt(BoknIntervall)) * parseInt(BoknIntervall);
	var temp = starttid;
	var tilltid = form.sluttid;
	var i = 0;
	var temptid;
	var resultat;
	var resultat1;
	var resultat2;
	var templength = parseInt(valdtid) + parseInt(BoknIntervall);
	
	while (templength <= parseInt(sluttid) && i < AntalBlock) {
		i++;
		templength = templength + parseInt(BoknIntervall);
	}	
	tilltid.length = i;
	templength = i;
	i = 0;
	var vald = 0;
	while (i < templength) {
		temptid = temp + parseInt(BoknIntervall);
		resultat = temptid / 12;
		resultat2 = (temptid % 12) * 5;
		if (("" + resultat2).length == 1) {
			resultat2 = "0" + resultat2;
		}
		var s = ("" + resultat);
		s = s.indexOf(".")
		if (s != -1) {
			if (s == 1) {
			    var t = ("" + resultat);
			    var j = t.substring(0,1);
			}
			if (s == 2) {
			    var t = ("" + resultat)
			    var j = t.substring(0,2);
			}
			resultat = parseInt(j);	
		}
		if (("" + resultat).length == 1) {
			resultat = "0" + resultat;
		}
		resultat3 = resultat + ":" + resultat2;
		if (temp + parseInt(BoknIntervall) <= parseInt(sluttid)) {
			tilltid.options[i].value = temp + parseInt(BoknIntervall);
			tilltid.options[i].text = resultat3;
			tilltid.selected = 0;
		}
		else {
			tilltid.options[i].value = "";
			tilltid.options[i].text = "";
			if (vald == 0) {
				tilltid.selected = 1;		
				vald = 1;
			}
		}
		temp = temp + parseInt(BoknIntervall);
		i++;
	}
}


function enabledisableCtrl(disVal,disSortDat)
{
    var dis;
    dis = document.getElementById("VisaLediga").checked;
    if (dis == false) {
        dis = true;
    }
    else {
        dis = false
    }
	if (disVal == 0) {
	    document.getElementById("PassStart").disabled = dis
	    document.getElementById("PassSlut").disabled = dis
	    document.getElementById("PassLangd").disabled = dis
	    document.getElementById("VisaLediga").disabled = false
	    document.getElementById("VisaBokade").disabled = false
	}
	else {
	    document.getElementById("PassStart").disabled = true
	    document.getElementById("PassSlut").disabled = true
	    document.getElementById("PassLangd").disabled = true
	    document.getElementById("VisaLediga").disabled = true
	    document.getElementById("VisaBokade").disabled = true
	}

	if (disSortDat == 0) {
	    document.getElementById("Fdat").disabled = false
	    document.getElementById("Tdat").disabled = false
	    document.getElementById("SorteraObjekt").disabled = false
	    document.getElementById("SorteraDatum").disabled = false
	}
	else {
	    document.getElementById("Fdat").disabled = true
	    document.getElementById("Tdat").disabled = true
	    document.getElementById("SorteraObjekt").disabled = true
	    document.getElementById("SorteraDatum").disabled = true
	}
	
}


function enabledisablePass()
{
    var dis;
    dis = document.getElementById("VisaLediga").checked;
    if (dis == false) {
        dis = true;
    }
    else {
        dis = false
    }
	document.getElementById("PassStart").disabled = dis
	document.getElementById("PassSlut").disabled = dis
	document.getElementById("PassLangd").disabled = dis
}


function enabledisableRepeat()
{
    var agt;
    agt=navigator.userAgent.toLowerCase();
    
    if ((agt.indexOf("firefox") != -1) || (agt.indexOf("safari") != -1) || (agt.indexOf("opera") != -1) || (agt.indexOf("chrome") != -1)) {
        document.getElementById("frekvens").disabled = !document.getElementById("chkUpprepa").checked;
        document.getElementById("radioUrvalDag").disabled = !document.getElementById("chkUpprepa").checked;
        document.getElementById("radioUrvalVecka").disabled = !document.getElementById("chkUpprepa").checked;
        document.getElementById("radioUrvalManad").disabled = !document.getElementById("chkUpprepa").checked;
        if (document.getElementById("chkUpprepa").checked == true) {
            document.getElementById("radioTomdatum").disabled = !document.getElementById("chkUpprepa").checked;
            document.getElementById("radioAntaltillf").disabled = !document.getElementById("chkUpprepa").checked;
            document.getElementById("txtTomdatum").disabled = !document.getElementById("radioTomdatum").checked;
            document.getElementById("txtAntaltillf").disabled = !document.getElementById("radioAntaltillf").checked;
        }
        else {
            document.getElementById("radioTomdatum").disabled = !document.getElementById("chkUpprepa").checked;
            document.getElementById("radioAntaltillf").disabled = !document.getElementById("chkUpprepa").checked;
            document.getElementById("txtTomdatum").disabled = !document.getElementById("chkUpprepa").checked;
            document.getElementById("txtAntaltillf").disabled = !document.getElementById("chkUpprepa").checked;
        }
    }
    else {
	    document.getElementById("divInst").disabled = !document.getElementById("chkUpprepa").checked;
        if (document.getElementById("chkUpprepa").checked == true) {
            document.getElementById("txtTomdatum").disabled = !document.getElementById("radioTomdatum").checked;
            document.getElementById("txtAntaltillf").disabled = !document.getElementById("radioAntaltillf").checked;
        }
        else {
            document.getElementById("txtTomdatum").disabled = !document.getElementById("chkUpprepa").checked;
            document.getElementById("txtAntaltillf").disabled = !document.getElementById("chkUpprepa").checked;
        }
    }
}


function enabledisableDuration()
{
    var agt;
    agt=navigator.userAgent.toLowerCase();
    
    if ((agt.indexOf("firefox") != -1) || (agt.indexOf("safari") != -1) || (agt.indexOf("opera") != -1)) {
        document.getElementById("txtTomdatum").disabled = !document.getElementById("radioTomdatum").checked;
        document.getElementById("txtAntaltillf").disabled = !document.getElementById("radioAntaltillf").checked;
    }
    else {
        document.getElementById("divTomdatum").disabled = !document.getElementById("radioTomdatum").checked;
        document.getElementById("divAntaltillf").disabled = !document.getElementById("radioAntaltillf").checked;
        document.getElementById("txtTomdatum").disabled = !document.getElementById("radioTomdatum").checked;
        document.getElementById("txtAntaltillf").disabled = !document.getElementById("radioAntaltillf").checked;
    }
}


function validInlog(form)
{
    if (document.getElementById("errnamn")) {
        document.getElementById("errnamn").style.display = "none";
    }
    if (document.getElementById("errlosen")) {
        document.getElementById("errlosen").style.display = "none";
    }
    if (document.getElementById("errinlog")) {
        document.getElementById("errinlog").style.display = "none";
    }
	if (form.username.value == "") {
	    if (document.getElementById("errnamn")) {
		    document.getElementById("errnamn").style.display = "inline";
		}
		document.retval = false;
		form.username.focus();
	}
	else if (form.password.value == "") {
	    if (document.getElementById("errlosen")) {
		    document.getElementById("errlosen").style.display = "inline";
		}
		document.retval = false;
		form.password.focus();
	}
	else {
        document.retval = true;
    }
}


function losen(sida)
{
	window.open(sida,"Lösen","width=425,height=325,scrollbars=no,resizable=no,left=100,top=100")
	return false;
}


function enabledisableDate(value)
{
    var dis;
    if (value == 1) {
        dis = true;
    }
    else {
        dis = false;
    }
	document.getElementById("Tdat").disabled = dis;
}


//kontrollerarar att man valt minst ett tillägg
function kollaTillagg(form, conftext)
{
    var theForm = form
    var ret;
    ret = true;
    var j = 0;
    //är något tillägg ikryssat
	for(i=0; i < theForm.elements.length; i++) {
        if(theForm.elements[i].type.toLowerCase() == "checkbox") {
            if(theForm.elements[i].checked) {
                j++
            }
        }    
    }
    
    //ta bort alla meddelanden som inte är felmeddelanden
    if (document.getElementById("ulista")) {
        var arr = document.getElementById("ulista").children;
        for (i=0; i<arr.length; i++) {
            if (arr.item(i).id.substr(0,11) == "tillaggMedd") {
                arr.item(i).style.display = "none";
            }
        }
    }
    
    if (document.getElementById("Resultat")) {
        document.getElementById("Resultat").style.display="none"
    }
    if (document.getElementById("Infomedd")) {
        document.getElementById("Infomedd").style.display="none"
    }
    if (document.getElementById("Atgard")) {
        document.getElementById("Atgard").style.display="none"
    }
    if (document.getElementById("felMedd")) {
        document.getElementById("felMedd").style.display="none"
    }
    if (document.getElementById("resMedd")) {
        document.getElementById("resMedd").style.display="none"
    }
    if (document.getElementById("errtillaggMedd")) {
        document.getElementById("errtillaggMedd").style.display="none"
    }
    //finns fel
    if(j == 0) {
        ret = false;
        if (document.getElementById("Resultat")) {
            document.getElementById("Resultat").style.display="block"
            document.getElementById("Resultat").style.borderColor="Red"
        }
        if (document.getElementById("Infomedd")) {
            document.getElementById("Infomedd").style.display="block"
        }
        if (document.getElementById("Atgard")) {
            document.getElementById("Atgard").style.display="block"
        }
        if (document.getElementById("errtillaggMedd")) {
            document.getElementById("errtillaggMedd").style.display="list-item"
        }
        if (document.getElementById("antFel")) {
            document.getElementById("antFel").innerHTML = "1"
        }
    }
    else {
        if(conftext == '') {
            return true;
        }
        else {
            var r=confirm(conftext);
            if (r!=true) {
                ret = false;
            }
        }
    }
    return ret;
}


function showSelected(objnr, objnamn, startdat, slutdat)
{
	var selObj = document.getElementById('Lista_Grundschema');
	var selIndex = selObj.selectedIndex;

	var arrObjnrLista = objnr.split(";");
	var arrObjnamnLista = objnamn.split(";");
	var arrStartdatLista = startdat.split(";");
	var arrSlutdatLista = slutdat.split(";");
	
	var strObjnrLista = arrObjnrLista[selIndex];
	var strObjnamnLista = arrObjnamnLista[selIndex];
	
	var arrObjnr = strObjnrLista.split("|");
	var arrObjnamn = strObjnamnLista.split("|");
	
    // clear listbox
    var elSel = document.getElementById('Lista_Objurval');
    while (elSel.length > 0) {
        elSel.remove(elSel.length - 1);
    }
    
    // add elements to listbox    
    for (var i = 0; i < arrObjnr.length-1; i++) {
        var elOptNew = document.createElement('option');
        elOptNew.text = arrObjnamn[i];
        elOptNew.value = arrObjnr[i];
        try {
            elSel.add(elOptNew, null); // standards compliant; doesn't work in IE
        }
        catch(ex) {
            elSel.add(elOptNew); // IE only
        }
    }
    elSel.selectedIndex = 0;
    
    // update hidden field 'grundschemanamn'
    document.getElementById('grundschemanamn').value = selObj.options[selIndex].text;
    
    // update date-fields
    document.getElementById('Fdat').value = arrStartdatLista[selIndex];
    document.getElementById('Tdat').value = arrSlutdatLista[selIndex];
}


// input
// formobj   : form
// fieldReq  : obligatoriska fält, åtskiljda med ;
// fieldFrom : fråntid
// fieldTo   : tilltid
// fieldEq1  : likafält1
// fieldEq2  : likafält2
// fieldEmail: fält för e-post
// fieldOrgnr: fält för organisations-/personnummer
function checkForm(formobj, fieldReq, fieldFrom, fieldTo, fieldEq1, fieldEq2, fieldEmail, fieldOrgnr)
{
    var ret = true;
    var antFel = 0;
    var vis;
    var fel;
    var faltFel;
    var faltMedd;
    
    if (document.getElementById("antFel")) {
        antFel = document.getElementById("antFel").innerHTML;
        if (parseInt(antFel)) {
            antFel = parseInt(antFel);
        }
        else {
            antFel = 0;
        }
    }

   	// name of mandatory fields
	var fieldRequired = fieldReq.split(";");
	
	// obligatoriska fält
	for (var i = 0; i < fieldRequired.length; i++){
		var obj = formobj.elements[fieldRequired[i]];
		if (obj){
			fel = false;
			switch(obj.type){
			case "select-one":
				if (obj.selectedIndex == -1 || obj.selectedIndex == 0 || obj.options[obj.selectedIndex].text == ""){
					fel = true;
				}
				break;
			case "select-multiple":
				if (obj.selectedIndex == -1){
					fel = true;
				}
				break;
		    case "password":
			case "text":
			case "textarea":
				if (obj.value == "" || obj.value == null){
					fel = true;
				}
				break;
            case "checkbox":
                if (obj.checked == false || obj.checked == null){
					fel = true;
                }
			default:
			}
			if (obj.type == undefined){
				var blnchecked = false;
				for (var j = 0; j < obj.length; j++){
					if (obj[j].checked){
						blnchecked = true;
					}
				}
				if (!blnchecked){
					fel = true;
				}
			}
			faltFel = "err" + fieldRequired[i]
			faltMedd = "err" + fieldRequired[i] + "Medd"

            //visas fältet
            vis = true;
            if (document.getElementById(faltMedd)) {
                if (document.getElementById(faltMedd).style.display == "none") {
                    vis = false;
                }
            }
			if (fel) {
			    if (document.getElementById(faltFel)) {
			        document.getElementById(faltFel).style.display="inline"
			    }
			    if (document.getElementById(faltMedd)) {
                    document.getElementById(faltMedd).style.display="list-item"
                }
			    if (!vis) {
			        antFel++;
			    }
			}
			else{
			    if (document.getElementById(faltFel)) {
			        document.getElementById(faltFel).style.display="none"
			    }
			    if (document.getElementById(faltMedd)) {
                    document.getElementById(faltMedd).style.display="none"
                }
			    if (vis) {
			        antFel--;
			    }
			}
		}
	}

    //kontroll av tidsfält
    if (fieldFrom != "" && fieldTo != "") {
        vis = true;
        if (document.getElementById("errTid")) {
		    if (document.getElementById("errTid").style.display == "none") {
		        vis = false;
		    }
		}
        //startinställning för element
		if (document.getElementById("errTidMedd1")) {
            document.getElementById("errTidMedd1").style.display="none";
        }
        if (document.getElementById("errTidMedd2")) {
            document.getElementById("errTidMedd2").style.display="none";
        }
        fel = false;
        var t1 = parseInt(formobj.elements[fieldFrom].value.replace(':', ''), 10);
        var t2 = parseInt(formobj.elements[fieldTo].value.replace(':', ''), 10);
        if (t1 > t2){
            if (document.getElementById("errTidMedd1")) {
                document.getElementById("errTidMedd1").style.display="list-item";
            }
            fel = true;
	    }
        else if (t1 == t2){
            if (document.getElementById("errTidMedd2")) {
                document.getElementById("errTidMedd2").style.display="list-item";
            }
            fel = true;
        }
        if (fel) {
            if (document.getElementById("errTid")) {
                document.getElementById("errTid").style.display="inline";
            }
            if (!vis) {
                antFel++;
            }
        }
        else {
            if (document.getElementById("errTid")) {
                document.getElementById("errTid").style.display="none";
            }
            if (vis) {
                antFel--;
            }
        }
    }
    
    //kontroll av likafält
    if (fieldEq1 != "" && fieldEq2 != "") {
        vis = true;
        if (document.getElementById("errEqMedd")) {
		    if (document.getElementById("errEqMedd").style.display == "none") {
		        vis = false;
		    }
		}
        fel = false;
        var eq1 = formobj.elements[fieldEq1].value
        var eq2 = formobj.elements[fieldEq2].value
        if (eq1 != eq2){
            fel = true;
	    }
	    if (fel) {
	        if (document.getElementById("errEq")) {
			    document.getElementById("errEq").style.display="inline"
			}
			if (document.getElementById("errEqMedd")) {
                document.getElementById("errEqMedd").style.display="list-item"
            }
            if (!vis) {
                antFel++;
            }
	    }
	    else {
	        if (document.getElementById("errEq")) {
			    document.getElementById("errEq").style.display="none"
			}
			if (document.getElementById("errEqMedd")) {
                document.getElementById("errEqMedd").style.display="none"
            }
            if (vis) {
                antFel--;
            }
	    }
    }
    
    //kontroll av e-post
    if (fieldEmail != "") {
		faltFel = "err" + fieldEmail
		faltMedd = "err" + fieldEmail + "Medd"
        vis = true;
        if (document.getElementById(faltMedd)) {
		    if (document.getElementById(faltMedd).style.display == "none") {
		        vis = false;
		    }
		}
        fel = false;
        var epost = formobj.elements[fieldEmail].value
        if (epost.indexOf("@") == -1 || epost.indexOf("@") == epost.length - 1
        	|| epost.indexOf(".") == -1 || epost.lastIndexOf(".") == epost.length - 1
        	|| epost.lastIndexOf(".") < epost.length -5 
        	|| epost.lastIndexOf(".") == epost.length -2)
        {
            fel = true;
        }
        if (fel) {
            if (document.getElementById(faltFel)) {
		        document.getElementById(faltFel).style.display="inline";
		    }
		    if (document.getElementById(faltMedd)) {
                document.getElementById(faltMedd).style.display="list-item";
            }
            if (!vis) {
                antFel++;
            }
        }
        else {
            if (document.getElementById(faltFel)) {
		        document.getElementById(faltFel).style.display="none";
		    }
		    if (document.getElementById(faltMedd)) {
                document.getElementById(faltMedd).style.display="none";
            }
            if (vis) {
                antFel--;
            }
        }
    }
    
    //kontroll av organisations-/personnummer
    if (fieldOrgnr != "") {
		faltFel = "err" + fieldOrgnr
		faltMedd = "err" + fieldOrgnr + "Medd"
        vis = true;
        if (document.getElementById(faltMedd)) {
		    if (document.getElementById(faltMedd).style.display == "none") {
		        vis = false;
		    }
		}
        fel = false;
        var orgnr = formobj.elements[fieldOrgnr].value
        var ok = true;
	    orgnr = orgnr.replace(/ /g, "")
	    orgnr = orgnr.replace(/-/g, "")
        if(orgnr.length < 9){ ok = false; }
        if(orgnr.length == 12){ orgnr = orgnr.substring(2,12); }
        if (ok) {
            if (orgnr.length == 10) {
                ok = validateOrgPnrSv(orgnr);
            }
            else if (orgnr.length == 9) {
                ok = validateOrgnrNo(orgnr);
            }
            else if (orgnr.length == 11) {
                ok = validatePernrNo(orgnr);
            }
            else {
                ok = false;
            }
        }
        fel = !ok
        if (fel) {
            if (document.getElementById(faltFel)) {
		        document.getElementById(faltFel).style.display="inline";
		    }
		    if (document.getElementById(faltMedd)) {
                document.getElementById(faltMedd).style.display="list-item";
            }
            if (!vis) {
                antFel++;
            }
        }
        else {
            if (document.getElementById(faltFel)) {
		        document.getElementById(faltFel).style.display="none";
		    }
		    if (document.getElementById(faltMedd)) {
                document.getElementById(faltMedd).style.display="none";
            }
            if (vis) {
                antFel--;
            }
        }
    }
    
    if (antFel < 0) {
        antFel = 0;
    }
    
    //finns fel
    if (antFel > 0){
        ret = false;
        document.getElementById("Resultat").style.display="block"
        document.getElementById("Resultat").style.borderColor="Red"
        document.getElementById("Infomedd").style.display="block"
        document.getElementById("Atgard").style.display="block"
        document.getElementById("antFel").innerHTML = antFel
    }
    else {
        document.getElementById("Resultat").style.display="none"
        document.getElementById("Infomedd").style.display="none"
        document.getElementById("Atgard").style.display="none"
        if (document.getElementById("felMedd")) {
            document.getElementById("felMedd").style.display="none"
        }
        if (document.getElementById("resMedd")) {
            document.getElementById("resMedd").style.display="none"
        }
    }
    return ret;
}



// input
// formobj     : form
// fieldPrefix : prefix på id som skall kontrolleras, åtskiljda med ;
// fieldReq    : id på tillägg, åtskiljda med ;
function checkTillagg(formobj, fieldPrefix, fieldReq)
{
    var ret = true;
    var antFel = 0;
    var vis;    
    var fel;
    var faltFel;
    var faltMedd;
    
    //startinställning för element
    //if (document.getElementById("ulista")) {
    //    var c = document.getElementById("ulista").children;
    //    for (i=0;i<c.length;i++) {
    //        c.item(i).style.display = "none";
    //    }
    //}
    
    //fältet antFel
    if (document.getElementById("antFel")) {
        antFel = document.getElementById("antFel").innerHTML;
        if (parseInt(antFel)) {
            antFel = parseInt(antFel);
        }
        else {
            antFel = 0;
        }
        
    }
    
    //visa inte tidigare felmeddelanden
    var ii = 0;
    var iinamn = "";
    while (true) {
        iinamn = "errtillaggMedd" + ii;
        var iiobj = document.getElementById(iinamn);
        if (iiobj){
            iiobj.style.display = "none";
            antFel--;
        }
        else {
            break;
        }
        ii++;
    }

   	// name of mandatory fields
	var fieldRequired = fieldReq.split(";");
	
	// obligatoriska fält
	var prefix = fieldPrefix.split(";");
	
    //antalsfält
	for (var i = 0; i < fieldRequired.length; i++){
	    for (var j = 0; j < prefix.length; j++){
	        if (prefix[j] != "" && fieldRequired[i] != "") {
		        var falt = prefix[j] + fieldRequired[i]
		        var obj = formobj.elements[falt];
		        if (obj){
		        	fel = false;
		        	switch(obj.type){
		        	case "select-one":
		        		if (obj.selectedIndex == -1 || obj.selectedIndex == 0 || obj.options[obj.selectedIndex].text == ""){
		        			fel = true;
		        		}
		        		break;
		        	case "select-multiple":
		        		if (obj.selectedIndex == -1){
		        			fel = true;
		        		}
		        		break;
		            case "password":
		        	case "text":
		        	case "textarea":
		        		if (obj.value == "" || obj.value == null){
		        			fel = true;
		        		}
		        		break;
                    case "checkbox":
                        if (obj.checked == false || obj.checked == null){
		        			fel = true;
                        }
		        	default:
		        	}
		        	if (obj.type == undefined){
		        		var blnchecked = false;
		        		for (var j = 0; j < obj.length; j++){
		        			if (obj[j].checked){
		        				blnchecked = true;
		        			}
		        		}
		        		if (!blnchecked){
		        			fel = true;
		        		}
		        	}
		        	faltFel = "err" + falt
		        	faltMedd = "err" + falt + "Medd"

                    //visas fältet
                    vis = true;
                    if (document.getElementById(faltMedd)) {
                        if (document.getElementById(faltMedd).style.display == "none") {
                            vis = false;
                        }
                    }
		        	if (fel) {
		        	    if (document.getElementById(faltFel)) {
		        	        document.getElementById(faltFel).style.display="inline"
		        	    }
		        	    if (document.getElementById(faltMedd)) {
                            document.getElementById(faltMedd).style.display="list-item"
                        }
			            if (!vis) {
			                antFel++;
			            }
		        	}
		        	else {
		        	    if (document.getElementById(faltFel)) {
		        	        document.getElementById(faltFel).style.display="none"
		        	    }
		        	    if (document.getElementById(faltMedd)) {
                            document.getElementById(faltMedd).style.display="none"
                        }
			            if (vis) {
			                antFel--;
			            }
		        	}
		        }
		    }
		}
		
        //kontroll av tidsfält
        var fieldFrom = "t1_" + fieldRequired[i];
        var fieldTo = "t2_" + fieldRequired[i];
        var errTid = "errtid_"  + fieldRequired[i];
        var errTidMedd1 = "errtid_"  + fieldRequired[i] + "Medd1";
        var errTidMedd2 = "errtid_" + fieldRequired[i] + "Medd2";
        if (fieldFrom != "" && fieldTo != "") {
            vis = true;   
            if (document.getElementById(errTid)) {
		        if (document.getElementById(errTid).style.display == "none") {
		            vis = false;
		        }
		    }
            //startinställning för element
	    	if (document.getElementById(errTidMedd1)) {
                document.getElementById(errTidMedd1).style.display="none";
	    	}
	    	if (document.getElementById(errTidMedd2)) {
                document.getElementById(errTidMedd2).style.display="none";
	    	}
	    	fel = false;
            //tomma eller ej
            if (trim(formobj.elements[fieldFrom].value) != "" && trim(formobj.elements[fieldTo].value) != "") {
                var t1 = parseInt(formobj.elements[fieldFrom].value.replace(':', ''), 10);
                var t2 = parseInt(formobj.elements[fieldTo].value.replace(':', ''), 10);
                if (t1 > t2) {
	    	    	if (document.getElementById(errTidMedd1)) {
                        document.getElementById(errTidMedd1).style.display="list-item";
                    }
                    fel = true;
	            }
                else if (t1 == t2) {
	    	    	if (document.getElementById(errTidMedd2)) {
                        document.getElementById(errTidMedd2).style.display="list-item";
                    }
                    fel = true;
                }
                if (fel) {
                    if (document.getElementById(errTid)) {
	    	    	    document.getElementById(errTid).style.display="inline";
	    	    	}
	    	    	if (!vis) {
	    	    	    antFel++;
	    	    	}
	    	    }
	    	    else {
                    if (document.getElementById(errTid)) {
	    	    	    document.getElementById(errTid).style.display="none";
	    	    	}
	    	    	if (vis) {
	    	    	    antFel--;
	    	    	}
                }
            }
        }
    
    }

    if (antFel < 0) {
        antFel = 0;
    }

    //finns fel
    if (antFel > 0) {
        ret = false;
        if (document.getElementById("Resultat")) {
            document.getElementById("Resultat").style.display="block"
            document.getElementById("Resultat").style.borderColor="Red"
        }
        if (document.getElementById("Infomedd")) {
            document.getElementById("Infomedd").style.display="block"
        }
        if (document.getElementById("Atgard")) {
            document.getElementById("Atgard").style.display="block"
        }
        if (document.getElementById("antFel")) {
            document.getElementById("antFel").innerHTML = antFel
        }
    }
    else {
        if (document.getElementById("Resultat")) {
            document.getElementById("Resultat").style.display="none"
        }
        if (document.getElementById("Infomedd")) {
            document.getElementById("Infomedd").style.display="none"
        }
        if (document.getElementById("Atgard")) {
            document.getElementById("Atgard").style.display="none"
        }
        if (document.getElementById("felMedd")) {
            document.getElementById("felMedd").style.display="none"
        }
        if (document.getElementById("resMedd")) {
            document.getElementById("resMedd").style.display="none"
        }
    }
    return ret;
}


function setfocus(objectid)
{
    if(document.getElementById(objectid)) {
        document.getElementById(objectid).focus();
    }
}


var hide=true;
function toggleRows(tableId, rows, tag, msg1, msg2)
{
    hide = !hide;
	tbl = document.getElementById(tableId);
	var len = tbl.rows.length;
	var vStyle = (hide)? "none":"";
	for(i=rows ; i< len; i++) {
		 tbl.rows[i].style.display = vStyle;
    }
    var h=(hide)?msg1:msg2;
    tag.innerHTML = h;
}


//tar bort eller lägger till undantagsdatum i gömt fält
//objInput skall vara radio eller checkbox
function toggleUdat(objHidden, objInput)
{
    if(document.getElementById(objHidden)) {
        objHid = document.getElementById(objHidden);
        valHid = objHid.value;
        valInp = objInput.value;
        
        if (objInput.checked) {
            if (valHid.indexOf(valInp) >= 0) {
                valHid = valHid.replace(valInp + ",", "");
                objHid.value = valHid;
            }
        }
        else {
            if (valHid.indexOf(valInp) < 0) {
                valHid = valHid + valInp + ",";
                objHid.value = valHid;
            }
        }
    }
}


//tar bort eller lägger till valda objekt i gömt fält
//objInput skall vara radio eller checkbox
function toggleObjekt(objHidden, objInput)
{
    if (document.getElementById(objHidden)) {
        objHid = document.getElementById(objHidden);
        valHid = objHid.value;
        valInp = objInput.value;
        
        if (objInput.checked) {
            valHid = valHid + valInp + ",";
        }
        else {
            if (valHid.length > 0) {
                var arr = new Array();
                arr = valHid.split(",");
                for(var i = 0; i < arr.length; i++) {
                    if (arr[i] == valInp) {
                        arr.splice(i, 1);
                    }
                }
                valHid = arr.join(",");
            }
        }
        objHid.value = valHid;
    }
}


//visa eller gömma mer info om tillägg
function toggleTillagg(objExp, objDiv, objInput)
{
    var arr = new Array;
    var ele = "";

    if (document.getElementById(objExp)) {
        if (document.getElementById(objExp).checked) {
            arr = document.getElementById("tillagg").getElementsByTagName("div");
            for(var i = 0; i < arr.length; i++) {
                if (arr[i].id.substr(0, 4) == "div_") {
                    arr[i].style.display = "block"
                }
            }
        }
        else if (objDiv == "") {
            arr = document.getElementById("tillagg").getElementsByTagName("input");
            for(var i = 0; i < arr.length; i++) {
                if (arr[i].id.substr(0, 6) == "antal_") {
                    var ele = "div_" + arr[i].id.substr(6);
                    if (document.getElementById(ele)) {
                        if (trim(arr[i].value).length > 0) {
                            document.getElementById(ele).style.display = "block"
                        }
                        else {
                            document.getElementById(ele).style.display = "none"
                        }
                    }
                }
            }
        }
        else {
            if (document.getElementById(objDiv)) {
                if (trim(document.getElementById(objInput.id).value).length > 0) {
                    document.getElementById(objDiv).style.display="block"
                }
                else {
                    document.getElementById(objDiv).style.display="none"
                }
            }
        }
    }
}



function trim(str) {
	return str.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
}


// svenskt personnummer
// används ej för tillfället
function personnummer(nr){
	this.valid=false;
	if(!nr.match(/^(\d{2})(\d{2})(\d{2})\-(\d{4})$/)){ return false; }
	this.now=new Date(); this.nowFullYear=this.now.getFullYear()+""; this.nowCentury=this.nowFullYear.substring(0,2); this.nowShortYear=this.nowFullYear.substring(2,4);
	this.year=RegExp.$1; this.month=RegExp.$2; this.day=RegExp.$3; this.controldigits=RegExp.$4;
	this.fullYear=(this.year*1<=this.nowShortYear*1)?(this.nowCentury+this.year)*1:((this.nowCentury*1-1)+this.year)*1;
	var months = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
	if(this.fullYear%400==0||this.fullYear%4==0&&this.fullYear%100!=0){ months[1]=29; }
	if(this.month*1<1||this.month*1>12||this.day*1<1||this.day*1>months[this.month*1-1]){ return false; }
	this.alldigits=this.year+this.month+this.day+this.controldigits;
	var nn="";
	for(var n=0;n<this.alldigits.length;n++){ nn+=((((n+1)%2)+1)*this.alldigits.substring(n,n+1)); }
	this.checksum=0;
	for(var n=0;n<nn.length;n++){ this.checksum+=nn.substring(n,n+1)*1; }
	this.valid=(this.checksum%10==0)?true:false;
	this.sex=parseInt(this.controldigits.substring(2,3))%2;
}

// svenskt organisationsnummer
// används ej för tillfället
function organisationsnummer(nr){
	this.valid=false;
	if(!nr.match(/^(\d{1})(\d{5})\-(\d{4})$/)){ return false; }
	this.group=RegExp.$1;
	this.controldigits=RegExp.$3;
	this.alldigits=this.group+RegExp.$2+this.controldigits;
	if(this.alldigits.substring(2,3)<2){ return false }
	var nn="";
	for(var n=0;n<this.alldigits.length;n++){ nn+=((((n+1)%2)+1)*this.alldigits.substring(n,n+1)); }
	this.checksum=0;
	for(var n=0;n<nn.length;n++){ this.checksum+=nn.substring(n,n+1)*1; }
	this.valid=(this.checksum%10==0)?true:false;
}

// svenskt organisations- eller personnummer
function validateOrgPnrSv(nr) {
    var ok = true;
	if(!nr.match(/^(\d{1})(\d{5})(\d{4})$/)){ ok = false; }
	this.group=RegExp.$1;
	this.controldigits=RegExp.$3;
	this.alldigits=this.group+RegExp.$2+this.controldigits;
	var nn="";
	for(var n=0;n<this.alldigits.length;n++){ nn+=((((n+1)%2)+1)*this.alldigits.substring(n,n+1)); }
	this.checksum=0;
	for(var n=0;n<nn.length;n++){ this.checksum+=nn.substring(n,n+1)*1; }
	ok = (this.checksum%10==0)?true:false;
	return ok;
}

// kontrollsiffror för norskt personnummer
function find_pno (fstring) {
	var k1=-1;
	var k2=-1;
	var vekt1="3761894520";
	var vekt2="5432765432";
	var prodsum=0;

	// Beregne første kontrollsiffer
	for (n = 0; n <= 9; n++) {prodsum=prodsum+eval(fstring.substring(n,n+1)*1) *  eval(vekt1.substring(n,n+1)*1)}
	k1=11-prodsum % 11;if (k1==11) k1=0; if (k1==10) k1=-1;

	// Beregne første kontrollsiffer
	prodsum=0;fstring=fstring+k1; 
	for (n = 0; n <= 10; n++) {prodsum=prodsum+eval(fstring.substring(n,n+1)*1) *  eval(vekt2.substring(n,n+1)*1)}
	k2=11-prodsum % 11;if (k2==11) k2=0; if (k2==10) k2=-1;

	if (k1==-1 || k2== -1) return ("-1");
	return(""+k1+k2);
}		

// norskt personnummer
function validatePernrNo(nr) {
	var feil=false; 
	var fstr2=nr;
	
    if(!nr.match(/^(\d{2})(\d{2})(\d{2})(\d{3})(\d{2})$/)){feil = true;}
   	this.now=new Date(); this.nowFullYear=this.now.getFullYear()+""; this.nowCentury=this.nowFullYear.substring(0,2); this.nowShortYear=this.nowFullYear.substring(2,4);
	this.day=RegExp.$1; this.month=RegExp.$2; this.year=RegExp.$3; this.individualno=RegExp.$4; this.controldigits=RegExp.$5;
	this.fullYear=(this.year*1<=this.nowShortYear*1)?(this.nowCentury+this.year)*1:((this.nowCentury*1-1)+this.year)*1;
	var months = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
	if(fullYear%400==0||fullYear%4==0&&fullYear%100!=0){ months[1]=29; }
	if(month*1<1||month*1>12||day*1<1||day*1>months[month*1-1]){ feil=true; }
    
	var kno=0;
	if (!feil) {
		kno=find_pno(fstr2); 
		if (kno==-1) {feil=true;}
	}
	if (!feil && fstr2.substring(9,20) !="") {
		if (fstr2.substring(9,20) != kno) {feil=true;}
	}		
    return !feil;
}

// norskt organisationsnummer
function validateOrgnrNo(nr) {
	var ok=false; 
	var fstr2=nr;
    var vekt = "32765432";
    var prodsum=0;
	
    if(!nr.match(/^(\d{9})$/)) {feil=true;}
    for (n = 0; n <= 8; n++) {prodsum=prodsum+eval(nr.substring(n,n+1)*1) *  eval(vekt.substring(n,n+1)*1)}
    k1=11-prodsum % 11; //if (k1==11) k1=0; if (k1==10) k1=-1;
    if (k1 == nr.substring(8,9)) {
        ok = true;
    }
    return ok;
}

