function toggleClass(eId) 
{
	curClass = document.getElementById(eId).className;
	baseName = ""; //className uden Show eller Hide
	if (curClass.lastIndexOf("Hide") > -1) 
	{
		arrClassName = curClass.split("Hide");
		postfix = "Show";
	}
	else if (curClass.lastIndexOf("Show") > -1) 
	{
		arrClassName = curClass.split("Show");
		postfix = "Hide";
	}

	baseName = arrClassName[0];
	className =  baseName + postfix
	document.getElementById(eId).className = className;
	return className;
}

function toggleObjClass(argObj) 
{
	curClass = argObj.className;
	if (curClass.lastIndexOf("Hide") > -1) {
	    newClassName = curClass.replace("Hide", "Show");
    }
	else if (curClass.lastIndexOf("Show") > -1) {
	    newClassName = curClass.replace("Show", "Hide");
	}

	argObj.className = newClassName;
	
}

function closeAllButThis(menuItem) {

    while (menuItem.parentNode != null && menuItem.parentNode.tagName != "UL") {
        menuItem = menuItem.parentNode;
    }
    var items = menuItem.parentNode.getElementsByTagName("li");
    for (var index = 0; index < items.length; index++) {
        if (items[index].className == "menuShow" && items[index] != menuItem) {
            items[index].className = "menuHide";
        }
    }
}


function menuSelect(argObj)
{
	objParentLi = argObj.parentNode.parentNode
	if(objParentLi.className == "menuShow") {
	    
		var arrLis = objParentLi.getElementsByTagName('li');
		for(i=0;i<arrLis.length;i++)
		{
		    arrLis[i].className = "menuHide"
		    CookieHelper.DeleteCookie(arrLis[i].getAttribute("value"));
		}
	}
	closeAllButThis(objParentLi);

	toggleObjClass(objParentLi)
}
function showProductSpecs(argObj)
{
	var arrLis = argObj.parentNode.parentNode.getElementsByTagName('li')
	for(i=0;i<arrLis.length;i++)
	{
		if(arrLis[i] == argObj.parentNode)
		{
			var intNewActive = i
		}
		if(-1 != arrLis[i].className.search('Show'))
		{
			toggleObjClass(arrLis[i])
			toggleClass('cntSpecs' + i)
		}
	}
	toggleObjClass(argObj.parentNode)
	toggleClass('cntSpecs' + intNewActive)
}
function changeViewType(argObj,argStrType)
{
	//var arrLis = argObj.parentNode.parentNode.getElementsByTagName('li')
	var strClassNameLast4 = argObj.parentNode.className.substring(argObj.parentNode.className.length-4,argObj.parentNode.className.length)
	if(strClassNameLast4 == "Hide")
	{
		var arrLis = argObj.parentNode.parentNode.getElementsByTagName('li')
		for(i=0;i<arrLis.length;i++)
		{
			toggleObjClass(arrLis[i])
		}
		toggleClass('productsSortByMaker');
		toggleClass('productsSortByProduct');
    }
//	if(argStrType == "Maker")
//	{
//		var arrLis2 = document.getElementById('productsSortByProduct').getElementsByTagName('li')
//	}
//	else
//	{
//		var arrLis2 = document.getElementById('productsSortByMaker').getElementsByTagName('li')
//	}
//	for(i=0;i<arrLis2.length;i++)
//	{
//		arrLis2[i].className = "menuHide";
//	}	
}

function isMouseLeaveOrEnter(e, handler) 
{ 
	if (e.type != 'mouseout' && e.type != 'mouseover') 
		return false; 
		
	var reltg = e.relatedTarget ? e.relatedTarget : e.type == 'mouseout' ? e.toElement : e.fromElement; 
	while (reltg && reltg != handler) 
	{
		reltg2 = reltg
		reltg = reltg.parentNode; 
	}
	return (reltg != handler); 
}

function hideBasketIfMouseLeave(argEvent,argObj)
{
 if (isMouseLeaveOrEnter(argEvent, argObj))document.getElementById('tblBasket').className='tblBasket elementHide';
}

function mouseoverMenuBasket(argInt)
{
	var arrAs = document.getElementById('menuBasket').getElementsByTagName('a');
	for(i=0;i<arrAs.length;i++)
	{
		arrAs[i].className = arrAs[i].className.replace("active","");
	}
	arrAs[argInt].className = arrAs[argInt].className + " active";
}

var activeBtnBasketLarge = 2;
function mouseoverMenuBasketLarge(argInt)
{
	if(argInt==0) argInt = activeBtnBasketLarge;
	
	for(i=1;i<=4;i++)
	{
		document.getElementById('btn' + i).className = document.getElementById('btn' + i).className.replace("active","");
		if(document.getElementById('btn' + i + "a"))
			document.getElementById('btn' + i + "a").className = document.getElementById('btn' + i + "a").className.replace("active","");
	}
	document.getElementById('btn' + argInt).className = document.getElementById('btn' + argInt).className + " active";
	if(document.getElementById('btn' + argInt + "a"))
		document.getElementById('btn' + argInt + "a").className = document.getElementById('btn' + argInt + "a").className + " active";
}

function showHideOldBaskets(argEvent, argObj, argStrEventType)
{
	if(isMouseLeaveOrEnter(argEvent, argObj))
	{
		if(argStrEventType == "over")
		{
			mouseoverMenuBasketLarge(4)
		}
		else
		{
			mouseoverMenuBasketLarge(0)
		}
	}
}

function showHideOldBasketsLarge(argEvent, argObj, argStrEventType)
{
	if(isMouseLeaveOrEnter(argEvent, argObj))
	{
		if(argStrEventType == "over")
		{
			mouseoverMenuBasket(1)
		}
		else
		{
			mouseoverMenuBasket(2)
		}
	}
}


var submitBtnPressed = 0;
function setSubmitStatus()
{
	submitBtnPressed = 1;
}

pageNotSaved = false;
window.onbeforeunload= function (navigerVaek) 
{
	document.getElementById('all').focus();//Så markør bliver fjernet fra evt. ændret felt, så det registreres som værende ændret
	var temp = pageIsNotSaved();
	if(temp && submitBtnPressed == 0){	return "Du er ved at navigere væk fra siden, men har ikke opdateret efter du har ændret i kurvens indhold. Klik på OK for at fortsætte uden at gemme, eller klik på Annuller for at blive på siden og opdatere kurvens indhold. (Du opdaterer kurven ved at klikke på knappen Opdater)";}
}

function setInputOnChange()
{
	var arrInput = document.getElementsByTagName('input');
	for(i=0; i<arrInput.length; i++)
	{
		arrInput[i].onchange = setPageStatusChanged;
	}
}
function pageIsNotSaved()
{
	if(pageNotSaved)
	{
		return true;
	}
	else
	{
		return false;
	}
}

function setPageStatusChanged()
{
	activeBtnBasketLarge = 1;
	mouseoverMenuBasketLarge(1)
	pageNotSaved = true;
}

function parseQueryString(queryString) {

    var result = {};

    if (queryString == undefined) {
        queryString = location.search ? location.search : '';
    }
    
    if (queryString.charAt(0) == '?') queryString = queryString.substring(1);

    queryString = queryString.replace(/\+/g, ' ');

    var queryComponents = queryString.split(/[&;]/g);

    for (var i = 0; i < queryComponents.length; i++) {
        var keyValuePair = queryComponents[i].split('=');
        var key = decodeURIComponent(keyValuePair[0]);
        var value = decodeURIComponent(keyValuePair[1]);

        if (!result[key]) result[key] = [];
        result[key].push((keyValuePair.length == 1) ? '' : value);

    }

    return result;

}


var CookieHelper = {
    SetCookie: function(name, value, expires) {
        document.cookie = name + "=" + escape(value) +
            ((expires) ? "; expires=" + expires : "");
    },

    GetCookie: function(key) {
        var cookie = " " + document.cookie;
        var search = " " + key + "=";
        var setStr = null;
        var offset = 0;
        var end = 0;
        if (cookie.length > 0) {
            offset = cookie.indexOf(search);
            if (offset != -1) {
                offset += search.length;
                end = cookie.indexOf(";", offset)
                if (end == -1) {
                    end = cookie.length;
                }
                setStr = unescape(cookie.substring(offset, end));
            }
        }
        return (setStr);
    },

    DeleteCookie: function(key) {
        this.SetCookie(key, "", -1);
    }
}
