var oMenu;

function initUomenu(id){
	if(!GetElementById(id))return null;
	oMenu = new objMenu(id);
}
function objMenu(id){
	this.root  = GetElementById(id)
	this.uls  = GetDescendantsByTagName(this.root, "UL")
	this.root.onclick = this.mouseEvent

	var curUl;
	var className;
	var aCookieItems = getMenuCookie();//SÆT EVENTULET DISPLAY NONE PÅ MENUENS DIV WRAPPER IMENS AT MENUEN INITIALISERES
	for(var i = 0; i < this.uls.length; i++){// find classname og luk hvis sub
		curUl = this.uls[i];
		if(curUl.getAttribute('class'))className = curUl.getAttribute('class')// mozilla
		else className = curUl.getAttribute('className')// IE
		if(className == 'sub'){
			if(aCookieItems != null){
				var bFound = false;
				for(var j=0; j<aCookieItems.length; j++){
					if(i == aCookieItems[j])bFound = true;
				}
				bFound ? curUl.style.display = 'block' : curUl.style.display = 'none';//sæt explicit til block hvis ikke i cookie - så style.display != 'undefined'
			}else{
				curUl.style.display = 'none';
			}
		}
	}	
}

objMenu.prototype.mouseEvent = function(e){
	if (!e) e = window.event
	var targ, ul, indexToCookie;
	if(e.target) targ = e.target; // <--------- W3C/Netscape
	else if (e.srcElement) targ = e.srcElement; // <----------- Microsoft
	if(targ.tagName!="A" && targ.tagName!="SPAN") return null; //er ikke interreseret i klik på vores <div> (andet end linket)
	if(targ.tagName=="SPAN") targ = targ.parentNode;
	//alert(targ.getAttribute('href'));
	var ref = targ.getAttribute('href');//Hvis der er ikke er logget ind så alert user
	//IE & Moz 
	if(ref == 'javascript:void(0)' || ref == 'Javascript:void(0)'){
		alert('Du skal være logget ind for at kunne se denne side');
		return null;
	}
	targ = targ.parentNode;// hvis der bliver klikket på linket, så find elementet <li>
	var aMenuUls = GetDescendantsByTagName(this, "UL")// find alle uls for menu
	var aTargetUls = GetDescendantsByTagName(targ, "UL") //find alle <ul>´s for target
	if(aTargetUls.length > 0){
		for(var i=0; i<aMenuUls.length; i++){
			if(aMenuUls[i] == aTargetUls[0])
			indexToCookie = i;
		}	
		updateMenu(aTargetUls[0], indexToCookie);
	}
}

function updateMenu(obj, index){
	var display = obj.style.display;
	var a = [];
	var aCookieItems = getMenuCookie();
	obj.style.display = (display == "block") ? "none" : "block";
	if(obj.style.display == "block"){
		a[0] = index;
		if(aCookieItems != null){//add to cookiestring
			for(var i=0; i<aCookieItems.length; i++){
				a[i+1] = aCookieItems[i];
			}
		}
	}else{
		if(aCookieItems != null){//remove from cookie
			var getNextHighestIndex = 0;
			for(var i=0; i<aCookieItems.length; i++){
				if(aCookieItems[i] != index){
					a[getNextHighestIndex] = aCookieItems[i];
					getNextHighestIndex++;
				}
			}
		}
	}
	var s = a.join('|');
	document.cookie = 'menuItems='+s+'; path=/'	//undlad expires så cookie slættes når vi lukker browseren
}

// cross platform til document.getElementById
function GetElementById(s) {
	var o = (document.getElementById ? document.getElementById(s) : document.all[s])
	return o == null ? false : o
}
function GetDescendantsByTagName(a, s) {
	return (a.getElementsByTagName ? a.getElementsByTagName(s) : a.all.tags(s))
}

function getMenuCookie(){
	var cName = 'menuItems=';
	var ca = document.cookie.split(';');
	for(var i=0; i<ca.length; i++){
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(cName) == 0){
			var s = c.substring(cName.length,c.length);
			var a = s.split('|');
		}
	}
	if(a)return a;
	else return null;
}
function deleteCookie(){
	var date = new Date(); // udløb i går
	date.setTime(date.getTime()+(-24*60*60*1000));
	var expires = "; expires="+date.toGMTString();
	str='';
	document.cookie = 'menuItems='+str+'; expires='+expires+'; path=/'
	alert(expires);
}
function whatsInMyCookie(){
	var a = getMenuCookie();
	var s='';
	var stringHolder = document.getElementById('stringholder');
	if(a != null)
	for(var i=0; i<a.length; i++){
		s+=a[i]+' -';
	}
	stringHolder.innerHTML = s;
}
