function fillDebugger(n)
{
	document.getElementById('var1').value = n //menuitems.lastActiveLevel1;
	//setTimeout("fillDebugger()",100);
}
//loadEvent.add(fillDebugger);



//********************************************
// LEVEL1 FUNCTIONS
//********************************************
	function createLevel1() 
	{
		menuitems.slideLevel2 = new Array();
		menuitems.slideLevel3 = new Array();
		menuitems.slideLevel4 = new Array();
		menuitems.slideLevel2.actStep = 1;
		menuitems.slideLevel3.actStep = 1;
		menuitems.slideLevel4.actStep = 1;

		for(i=0;i<menuitems.menu.length;i++) 
		{
			var item = document.createElement("a");
			item.setAttribute("href", menuitems.menu[i].item.href);
			item.setAttribute("id", "menu_"+i+"_"+menuitems.menu[i].item.id);
			if(menuitems.menu[i].item.menu) 
			{
				item.onmouseover = function () 
				{
					clearTimeout(menuitems.pageTimer);
					clearTimeout(menuitems.timer);
					setTimer(this.id);
					//menuitems.openTimer = setTimeout("mouseOverLevel1(document.getElementById('"+this.id+"'))",200); 
				};
				item.onmouseout = function () 
				{ 
					eval('clearTimeout('+this.id+'Timer);');
					menuitems.timer = setTimeout("clearLevel('"+this.id+"',2)",300); 
				};
			}
			else 
			{
				item.onmouseover = function () { clearAllLevels(1);	};
			}
			strClass = "level-1";
			item.setAttribute("class", strClass);
			item.setAttribute("className", strClass);
			item.innerHTML = menuitems.menu[i].item.text;
			document.getElementById("menu-level-1").appendChild(item);
		}
	}
	loadEvent.add(createLevel1);
	
	function setTimer(varId)
	{
		eval(varId + 'Timer = setTimeout("mouseOverLevel1(document.getElementById(\'"+varId+"\'))",300);'); 
	}
	
	function mouseOverLevel1(obj, init)
	{
		//clearTimeout(menuitems.pageTimer);
		menuitems.activeLevel2 = '';
		menuitems.activeLevel3 = '';
		if(obj.id != menuitems.activeLevel1) 
		{
			if(menuitems.lastActiveLevel1) changeClass(menuitems.lastActiveLevel1,1);
			obj.className = obj.className+" has-sub";
			collapseMenuInLevel2(obj.id, init);
			menuitems.activeLevel1 = obj.id;
		}
		else clearTimeout(menuitems.timer);
	}

//********************************************
// LEVEL2 FUNCTIONS
//********************************************
	function collapseMenuInLevel2(n, init)
	{
		clearTimeout(menuitems.timer);
		clearAllLevels(2, init);
		
		arrN = n.split("_");
		intMenuList = arrN[1];
	
		//Clear hoverstate last active item
		if(document.getElementById(menuitems.activeLevel1)) 
		{
			if(document.getElementById(menuitems.activeLevel1) != n)
			{
				document.getElementById(menuitems.activeLevel1).className = "level-1";
			}
		}
		
		//Create menu items
		for(i=0;i<menuitems.menu[intMenuList].item.menu.length;i++) 
		{
			var item = document.createElement("a");
			item.setAttribute("href", menuitems.menu[intMenuList].item.menu[i].item.href);
			item.setAttribute("id", "menu_"+intMenuList+"_"+i+"_"+menuitems.menu[intMenuList].item.menu[i].item.id);
			if(menuitems.menu[intMenuList].item.menu[i].item.menu) {
				strClass = "level-2"
				item.setAttribute("class", strClass);
				item.setAttribute("className", strClass);
				item.onmouseover = function () { mouseOverLevel2(this) };
				item.onmouseout = function () { menuitems.timer = setTimeout("clearLevel('"+this.id+"',2)",500); };
			}
			else {
				strClass = "level-4"
				item.setAttribute("class", strClass);
				item.setAttribute("className", strClass);
				item.onmouseover = function () { 
					menuitems.killSlide = 1;
					clearAllLevels(3);
					clearTimeout(menuitems.timer);
				};
				item.onmouseout = function () 
				{ 
					menuitems.killSlide = 0;
					menuitems.timer = setTimeout("clearLevel('"+this.id+"',2)",500); 
				};
			}
			item.innerHTML = menuitems.menu[intMenuList].item.menu[i].item.text;
			document.getElementById("menu-level-container-2").appendChild(item);
			if(init)
			{
				if(menuitems.pageLevel2)
				{
					if(menuitems.menu[intMenuList].item.menu[i].item.menu)
					{
						if(menuitems.menu[intMenuList].item.menu[i].item.id == menuitems.pageLevel2)
						{
							mouseOverLevel2(item, 1);
						}
					}
					else 
					{
						if(menuitems.menu[intMenuList].item.menu[i].item.id == menuitems.pageLevel2) {
							strClass = "level-active"
							item.setAttribute("class", strClass);
							item.setAttribute("className", strClass);
						}
					}
				}
			}
		}
		menuitems.lastActiveLevel1 = n;
		if(menuitems.activeLevel1 != n)
		{
			menuitems.slideLevel2.active = 1;
			slideOpen(2,1);
		}
		
		
	}

	function mouseOverLevel2(obj, init)
	{
		menuitems.activeLevel3 = '';
		if(obj.id != menuitems.activeLevel2) 
		{
			if(menuitems.slideLevel == 2)
			{
				clearTimeout(menuitems.timer);
				return false;
			}
			//if(menuitems.lastActiveLevel2) changeClass(menuitems.lastActiveLevel2,2);
			obj.className = obj.className+" over";
			if(init) setTimeout("collapseMenuInLevel3('"+obj.id+"', '"+init+"');",200);
			else collapseMenuInLevel3(obj.id);
			menuitems.activeLevel2 = obj.id;
		}
		else clearTimeout(menuitems.timer);
	}


//********************************************
// LEVEL3 FUNCTIONS
//********************************************
	function collapseMenuInLevel3(n, init)
	{
		clearTimeout(menuitems.timer);
		if(init) clearAllLevels(3, init);
		else clearAllLevels(3);
		
		//document.getElementById("menu-level-container-3").innerHTML = '';
	
		arrN = n.split("_");
		intMenuList = arrN[1];
		intSubMenuList = arrN[2];
		for(i=0;i<menuitems.menu[intMenuList].item.menu[intSubMenuList].item.menu.length;i++) 
		{
			var item = document.createElement("a");
			item.setAttribute("href", menuitems.menu[intMenuList].item.menu[intSubMenuList].item.menu[i].item.href);
			item.setAttribute("id", "menu_"+intMenuList+"_"+intSubMenuList+"_"+i+"_"+menuitems.menu[intMenuList].item.menu[intSubMenuList].item.menu[i].item.id);
			if(menuitems.menu[intMenuList].item.menu[intSubMenuList].item.menu[i].item.menu) {
				strClass = "level-3"
				item.setAttribute("class", strClass);
				item.setAttribute("className", strClass);
				item.onmouseover = function () { mouseOverLevel3(this) };
				item.onmouseout = function () { menuitems.timer = setTimeout("clearLevel('"+this.id+"',2)",500); };
			}
			else {
				strClass = "level-4"
				item.setAttribute("class", strClass);
				item.setAttribute("className", strClass);
				item.onmouseover = function () 
				{ 
					menuitems.killSlide = 1;
					clearAllLevels(4);
					clearTimeout(menuitems.timer);
				};
				item.onmouseout = function () 
				{ 
					menuitems.killSlide = 0;
					menuitems.timer = setTimeout("clearLevel('"+this.id+"',2)",500); 
				};
			}
			item.innerHTML = menuitems.menu[intMenuList].item.menu[intSubMenuList].item.menu[i].item.text;
			document.getElementById("menu-level-container-3").appendChild(item);
			if(init)
			{
				if(menuitems.pageLevel3)
				{
					if(menuitems.menu[intMenuList].item.menu[intSubMenuList].item.menu[i].item.menu)
					{
						if(menuitems.menu[intMenuList].item.menu[intSubMenuList].item.menu[i].item.id == menuitems.pageLevel3)
						{
							mouseOverLevel3(item, 1);
						}
					}
					else 
					{
						if(menuitems.menu[intMenuList].item.menu[intSubMenuList].item.menu[i].item.id == menuitems.pageLevel3) {
							strClass = "level-active"
							item.setAttribute("class", strClass);
							item.setAttribute("className", strClass);
						}
					}
				}
			}
		}
		menuitems.lastActiveLevel2 = n;
		if(menuitems.activeLevel2 != n)
		{
			menuitems.slideLevel3.active = 1;
			slideOpen(3,1);
		}
	}

	function mouseOverLevel3(obj, init)
	{
		if(obj.id != menuitems.activeLevel3) 
		{
			if(menuitems.slideLevel == 3)
			{
				clearTimeout(menuitems.timer);
				return false;
			}
			//if(menuitems.lastActiveLevel3) changeClass(menuitems.lastActiveLevel3,3);
			obj.className = obj.className+" over";
			if(init) setTimeout("collapseMenuInLevel4('"+obj.id+"','"+init+"');",200);
			else collapseMenuInLevel4(obj.id);
			menuitems.activeLevel3 = obj.id;
		}
		else clearTimeout(menuitems.timer);
	}


//********************************************
// LEVEL4 FUNCTIONS
//********************************************

	function collapseMenuInLevel4(n, init)
	{
		clearTimeout(menuitems.timer);
		if(init) clearAllLevels(4, init);
		else clearAllLevels(4);
	
		arrN = n.split("_");
		intMenuList = arrN[1];
		intSubMenuList = arrN[2];
		intSubSubMenuList = arrN[3];
		for(i=0;i<menuitems.menu[intMenuList].item.menu[intSubMenuList].item.menu[intSubSubMenuList].item.menu.length;i++) 
		{
			var item = document.createElement("a");
			item.setAttribute("href", menuitems.menu[intMenuList].item.menu[intSubMenuList].item.menu[intSubSubMenuList].item.menu[i].item.href);
			item.setAttribute("id", "menu_"+intMenuList+"_"+intSubMenuList+"_"+intSubSubMenuList+"_"+i+"_"+menuitems.menu[intMenuList].item.menu[intSubMenuList].item.menu[intSubSubMenuList].item.menu[i].item.id);
			//item.setAttribute("onmouseover", "collapseMenuLevel2(1);");
			item.onmouseover = function () { clearTimeout(menuitems.timer); };
			item.onmouseout = function () { menuitems.timer = setTimeout("clearLevel('"+this.id+"',2)",500); };
			strClass = "level-4"
			item.setAttribute("class", strClass);
			item.setAttribute("className", strClass);
			item.innerHTML = menuitems.menu[intMenuList].item.menu[intSubMenuList].item.menu[intSubSubMenuList].item.menu[i].item.text;
			document.getElementById("menu-level-container-4").appendChild(item);
			if(init)
			{
				if(menuitems.pageLevel4)
				{
					if(menuitems.menu[intMenuList].item.menu[intSubMenuList].item.menu[intSubSubMenuList].item.menu[i].item.id == menuitems.pageLevel4)
					{
						strClass = "level-active"
						item.setAttribute("class", strClass);
						item.setAttribute("className", strClass);
					}
				}
			}
		}
		menuitems.lastActiveLevel3 = n;
		
		if(menuitems.activeLevel3 != n)
		{
			menuitems.slideLevel4.active = 1;
			slideOpen(4,1);
		}
	}


//********************************************
//MAIN FUNCTIONS
//********************************************

	function clearLevel(n,level){
		if(level == 2) document.getElementById(n).className = "level-1";
		clearAllLevels(level);
		menuitems.pageTimer = setTimeout("openPageMenu();",1000);
	}
	function clearAllLevels(level, init) 
	{
		for(i=level;i<=4;i++) 
		{
			if(level==4)
			{
				if(!init) if(document.getElementById(menuitems.activeLevel3)) document.getElementById(menuitems.activeLevel3).className = "level-3";
				menuitems.activeLevel3 = null;
			}
			if(level==3)
			{
				if(!init) if(document.getElementById(menuitems.activeLevel2)) document.getElementById(menuitems.activeLevel2).className = "level-2";
				menuitems.activeLevel2 = null;		
			}
			if(level==2)
			{
				if(!init) if(document.getElementById(menuitems.activeLevel1)) document.getElementById(menuitems.activeLevel1).className = "level-1";
				menuitems.activeLevel1 = null;		
			}
			//eval("menuitems.activeLevel"+i+" = null;");
			document.getElementById("menu-level-container-"+i).style.left = "-180px";
			document.getElementById("menu-level-container-"+i).innerHTML = "";
		}
	
	}
	
	function changeClass(n,m) {
		//document.getElementById(n).className = "level-"+m;
		if(m==1)menuitems.lastActiveLevel1 = '';
		if(m==2)menuitems.lastActiveLevel2 = '';
		if(m==3)menuitems.lastActiveLevel3 = '';
	}
	

	function slideOpen(level, powr)
	{	
		intActive = eval('menuitems.slideLevel'+level+'.actStep');
		
		if(menuitems.killSlide == 1)
		{
			//alert(menuitems.killSlide);
			document.getElementById('menu-level-container-'+level).style.left = "-180px";
			menuitems.killSlide = 0;
			return;
		}
		menuitems.slideLevel2.active = 1
		menuitems.slideLevel2.startLeft = -180;
		menuitems.slideLevel2.endLeft = 0;
		steps = 5;
		
		
		
		if(eval("menuitems.slideLevel"+level+".actStep") <= steps) {
			var intLeft = Math.round(menuEaseInOut(-180,0,steps,eval('menuitems.slideLevel'+level+'.actStep'),powr));
			document.getElementById('menu-level-container-'+level).style.left = intLeft +"px";
			setTimeout("slideOpen('"+level+"',1)",20);
			eval('menuitems.slideLevel'+level+'.actStep++');
		}
		else {
			eval('menuitems.slideLevel'+level+'.actStep = 0');
			eval('menuitems.slideLevel'+level+'.active = 0');
		}
			
	}

/*
		moduleContent.t = 0;
		moduleContent.b = hasClassName(moduleWindowElm,"H") ? moduleContent.offsetLeft : moduleContent.offsetTop;
		moduleContent.c = hasClassName(moduleWindowElm,"H") ? -moduleBlockElm.offsetLeft : -moduleBlockElm.offsetTop;
		moduleContent.d = 30;
		easeInOut(mC.t,mC.b,(mC.c-mC.b),mC.d)
*/

function menuEaseInOut(minValue,maxValue,totalSteps,actualStep,powr)
	{
		//Generic Animation Step Value Generator By www.hesido.com 
		var delta = maxValue - minValue; 
		var stepp = minValue+(Math.pow(((1 / totalSteps) * actualStep), powr) * delta); 
		return Math.ceil(stepp) 
	}
	
	//open onload menu-items
	function openPageMenu() {
		for(var i=0;i<menuitems.menu.length;i++) 
		{
			if(menuitems.menu[i].item.id == menuitems.pageLevel1)
			{
				intI = i;
				mouseOverLevel1(document.getElementById("menu_"+i+"_"+menuitems.menu[i].item.id),1);
				break;
				//alert(document.getElementById("menu_"+i+"_item_"+menuitems.menu[i].item.id));
			}
				
		}
	}
