var GS1 = {
	init : function () {
		if(document.getElementById){
			this.Sitemap();
			this.BranschSelectList(false);
			if (self.document.location.hash.length>0) {
			    GS1.ToggleObj("div-"+self.document.location.hash.substring(1));
			}
		}
	},
	
	Sitemap : function (){
		var oSitemap = document.getElementById("sitemap-block");
		if(oSitemap) {			
			var oContainer = oSitemap.getElementsByTagName("div");
			var intElms = oContainer.length;		
			var i = intElms - 1;
			
			do
			{
				if(!/float-clear/i.test(oContainer[i].className)){
					var oLinks = oContainer[i].getElementsByTagName("a");
					var intElms2 = oLinks.length;		
					var j = intElms2 - 1;
					
					do
					{
						if(/toggle-list/i.test(oLinks[j].className)){
							if(/toggle-list/i.test(oLinks[j].className)){
								oLinks[j].onclick = this.SitemapToggle;
							}else if(/close-list/i.test(oLinks[j].className)){
								oLinks[j].onclick = this.SitemapToggle;
							}
						}
					}
					while (j--);
				}
			}
			while (i--);
		}
	},
		
	SitemapToggle : function (){
		var parentNode = this.parentNode;
		var showNode = parentNode.getElementsByTagName("a");
		var intElms = showNode.length;		
		var i = intElms - 1;
		
		do
		{
			if(/display-none/i.test(showNode[i].className)){
				if(/display-none toggle-list/i.test(showNode[i].className)){
					showNode[i].className = "display-block toggle-list";
				}else{
					showNode[i].className = "display-block";
				}
			}else if(/display-block/i.test(showNode[i].className)){
				if(/display-block toggle-list/i.test(showNode[i].className)){
					showNode[i].className = "display-none toggle-list"
				}else{
					showNode[i].className = "display-none"
				}
			}
		}
		while (i--);
		this.className = "display-none toggle-list";
		return false;
		this.blur();		
	},
	
	ToggleSubMenuOn : function (menuitem){
		var toToggle = document.getElementById(menuitem);
		var parentUl = (toToggle.parentNode.parentNode.parentNode);
		
		toToggle.className = "display-block subMenu";
		parentUl.className = "true";
		return false;
		this.blur();		
	},
	
	ToggleSubMenuOff : function (menuitem){
		var toToggle = document.getElementById(menuitem);
		var parentUl = (toToggle.parentNode.parentNode.parentNode);
		toToggle.className = "display-none subMenu";
		parentUl.className = "false";
		return false;
		this.blur();		
	},		
	
// Toggle toplinks	
	ToggleExpanding : function (strID){
		var oElm = document.getElementById(strID);
		
		var oElmA = document.getElementById("header-expanding-bransch");
		var oElmB = document.getElementById("header-expanding-mygs1");
		
		if(oElm == oElmA) {
			if(oElmB.className == "display-block") {
				oElmB.className = "display-none";
			}
			oElm.className = (oElm.className == "display-none")? "display-block" : "display-none";
		}
		if(oElm == oElmB) {
			if(oElmA.className == "display-block") {
				oElmA.className = "display-none";
			}
			oElm.className = (oElm.className == "display-none")? "display-block" : "display-none";
		}
	},
	
// Regular popup	
	Popup : function (strURL,strName,intWidth,intHeight){
		gs1Popup = window.open(strURL,strName,"toolbar=no,directories=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes,copyhistory=no,width="+ intWidth + ",height=" + intHeight);
		gs1Popup.focus();
	},
	
// Regular popup from selectlist for Bransch
	BranschSelectList : function (strAction){
		if(strAction == false){
			return false;
			this.blur;
		}else if(strAction == true){
			var oBodyContainer = document.getElementById("body");
			if(oBodyContainer) {			
				var oContainer = oBodyContainer.getElementsByTagName("select");
				var intElms = oContainer.length;		
				var i = intElms - 1;
				
				do
				{
					if(/choose-bransch/i.test(oContainer[i].className)){
						if (oContainer[i].options[oContainer[i].selectedIndex].value != "") {
							this.Popup(oContainer[i].options[oContainer[i].selectedIndex].value,'bransch',810,800);
						}
					}
				}
				while (i--);
			}
		}
	},
	
	LayerModule : function (strID,strLinkID){
		var oLink = document.getElementById(strLinkID);
		var oLink2 = document.getElementById(strLinkID + "b");
		var oParent = oLink.parentNode;
		var oParent2 = oLink2.parentNode;
		
		var oContainer = document.getElementById("layer-module-content");
		var oContainer2 = document.getElementById("layer-module");
		
		var oElm = document.getElementById(strID);
		
		if(oElm){
			var oBlock = oContainer.getElementsByTagName("div");
			var intElms = oBlock.length;		
			var i = intElms - 1;
			
			do
			{
				if(/module-block/i.test(oBlock[i].className)){
					oBlock[i].className = "module-block display-none";
				}
			}
			while (i--);
			oElm.className = "module-block display-block";
			
			var oBlock2 = oContainer2.getElementsByTagName("td");
			var intElms2 = oBlock2.length;		
			var i = intElms2 - 1;
			
			do
			{
				oBlock2[i].className = "";
			}
			while (i--);			
			
			oParent.className = "true";
			oParent2.className = "true";
		}
	},
	
// Toggle
	ToggleObj : function (strID){
		var oElm = document.getElementById(strID);
		oElm.style.display = (oElm.style.display == "block")? "none" : "block";
	},		
	
// Print function	
	Print : function () {
		window.print();
	},

// Remove all events when closing browser	
	end : function (oEvent){
		GS1 = null;
		delete GS1;
	}		
	
}

function addEvent(oObj, evType, fn, useCapture){
	if (oObj.addEventListener){
		oObj.addEventListener(evType, fn, useCapture);
		return true;
	} else if (oObj.attachEvent){
		var r = oObj.attachEvent("on"+evType, fn);
		return r;
	} else {
		alert("Handler could not be attached");
	}
}

addEvent(window, "load",function(){GS1.init();})
addEvent(window, "unload", function(){GS1.end();}, false);


function noPostBack(sNewFormAction) {
    document.forms[0].action = sNewFormAction;
    document.forms[0].__VIEWSTATE.value = 'NOVIEWSTATE';
    document.forms[0].__VIEWSTATE.name  = 'NOVIEWSTATE';
    document.forms[0].submit();
}

// Berakna kontrollsiffra
function ccc(len,form,disp,formFrom,formControll,formTo) {
	var field = document.getElementById(formFrom);
	var controllNo = document.getElementById(formControll);
	var toField = document.getElementById(formTo);

	if  (field.value.length!=len-1)  {
		alert ((len-1) + " siffror ska anges!");
		controllNo.value = "";
		if  (disp) toField.value = "";
		return;
	}
	var faktor = 3;
	var index;
	var sum = 0;
	var fill = ""
	
	for (index = len-1; index> 0; --index) {
		sum += field.value.substring(index-1, index) * faktor;
                                           sum = sum % 10
		faktor = 4 - faktor;
		}
	var k = (10 - sum) % 10;
	if (disp) {
		if (len<14) fill = "000000".substring(0,14-len);
		toField.value =  fill + field.value + k;
		}
	controllNo.value = k;
}

// Berakna kontrollsiffra 2
function fixlengths() {
	var txtLen = document.getElementById("txtLen");
	var txtSingle = document.getElementById("txtSingle");
	var txtLog = document.getElementById("txtLog");
	var txtLev = document.getElementById("txtLev");
	var txtNum = document.getElementById("txtNum");
	var EAN8 = document.getElementById("EAN8");
	var EAN13 = document.getElementById("EAN13");
	var EAN14 = document.getElementById("EAN14");
	var GIAI = document.getElementById("GIAI");
	var SSCC = document.getElementById("SSCC");
	var GSRN = document.getElementById("GSRN");
    if (EAN8.checked) { 
            txtLen.value = "7"
            txtSingle.maxLength = 7
            txtLog.disabled = true
            txtLog.value = ""
            txtLev.maxLength = 6
            txtNum.maxLength = 1
    }
    if (EAN13.checked) { 
            txtLen.value = "12"
            txtSingle.maxLength = 12
            txtLog.disabled = true
            txtLog.value = ""
            txtLev.maxLength = 9
            txtNum.maxLength = 7
    }
    if (EAN14.checked) { 
            txtLen.value = "13"
            txtSingle.maxLength = 13
            txtLog.disabled = false
            txtLev.maxLength = 9
            txtNum.maxLength = 7
    }
    if (GIAI.checked) { 
            txtLen.value = "15"
            txtSingle.maxLength = 15
            txtLog.disabled = true
            txtLog.value = ""
            txtLev.maxLength = 9
            txtNum.maxLength = 10
    } 
    if (SSCC.checked) { 
            txtLen.value = "17"
            txtSingle.maxLength = 17
            txtLog.disabled = false
            txtLev.maxLength = 9
            txtNum.maxLength = 11
    } 
    if (GSRN.checked) { 
            txtLen.value = "17"
            txtSingle.maxLength = 17
            txtLog.disabled = true
            txtLog.value = ""
            txtLev.maxLength = 9
            txtNum.maxLength = 10
    }
}      

function CalcSingle() {
		var txtSingle = document.getElementById("txtSingle");
		var txtLen = document.getElementById("txtLen");
		var txtCheck1 = document.getElementById("txtCheck1");
		
        var digits, sum, weight, inp, i, check
        digits = "0123456789"
        inp = txtSingle.value
        if (inp.length != txtLen.value) {
            alert("Fel antal tecken");
            return;
        }
        for (i=0;i<inp.length;i++) {
            if (!digits.indexOf(inp.substr,i,1)) {
                alert("Icke-numerisk tecken")
                return;
            }    
        }
        sum = 0; weight = 3
        for (i=inp.length-1;i>=0;i--) {
            sum = sum + inp.substr(i,1) * weight
            weight = 4 - weight
        }
        check = (10 - sum%10) %10
        txtCheck1.value = check
}

function ResetSingle() {
		var txtSingle = document.getElementById("txtSingle");
		var txtCheck1 = document.getElementById("txtCheck1");
		
        txtSingle.value = ""
        txtCheck1.value = ""
}

function CalcAdv() {
		var txtResult = document.getElementById("txtResult");
		var txtLog = document.getElementById("txtLog");
		var txtLev = document.getElementById("txtLev");
		var txtNum = document.getElementById("txtNum");
		var txtLen = document.getElementById("txtLen");
		var txtAnt = document.getElementById("txtAnt");
		
        var digits, sequence, seqLen, levChars, i, counter
        seqLen = 0
        digits = "0123456789"
        txtResult.value = ""
        levChars = txtLog.value + txtLev.value
         for (i=0;i<levChars.length;i++) {
            if (!digits.indexOf(levChars.substr,i,1)) {
                alert("Icke-numerisk tecken")
                return;
            }
        }    
        
        sequence = txtNum.value
        for (i=0;i<sequence.length;i++) {
            if (!digits.indexOf(sequence.substr,i,1)) {
                alert("Icke-numerisk tecken")
                return;
            }
        }    
        seqLen = txtLen.value - txtLog.value.length - txtLev.value.length // length of sequence number
        for (counter=1;counter<=txtAnt.value;counter++) {
            var sum, weight, inp, check, seqChars
            if (seqLen<sequence.toString().length) {
                alert ("max " + txtLen.value + " tecken sammanlagt")
                return;
            }
            seqChars = "00000000000000000000000000" + sequence
            inp =  levChars + seqChars.substr(seqChars.length-seqLen)
            sum = 0; weight = 3
            for (i=inp.length-1;i>=0;i--) {
                sum = sum + inp.substr(i,1) * weight
                weight = 4 - weight
            }
            check = (10 - sum%10) %10
            txtResult.value = txtResult.value + inp + check + "\n"
            sequence++
        }
}

function ResetAdv() {
		var txtLog = document.getElementById("txtLog");
		var txtLev = document.getElementById("txtLev");
		var txtNum = document.getElementById("txtNum");
		var txtAnt = document.getElementById("txtAnt");
		var txtResult = document.getElementById("txtResult");
		
		
        txtLog.value = ""
        txtLev.value = ""
        txtNum.value = "0"
        txtAnt.value = "10"
        txtResult.value = ""
}

function handleEnter(field, event) {
	var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
	if (keyCode == 13) {
		return false;
	} 
	else
	return true;
}      
