/**********************************************************
***	MENU 003 
    Date changed:      1.07.06	
	Who did it:	       JOU
	Messed with:       Expand/Collapse gif-images
**********************************************************/
		
	//Input is an array of menu item nodes (see file [iframe_data_menu.asp])
	//It loops through the array and builds up a new level inside the existing menu tree.
	//This is the function that [iframe_data_menu.asp] calls after having retrieved a level from DB.	  
	function fjsMenu_InsertNewLevel(arrMenuItemNodes)		
	{			
		if (arrMenuItemNodes.length > 0)
		{				
			var oMenuItem;
			var oMenuLevel;
			var oData;
			var strParentId;				
			var strExpand;
			var imgData;
			
			//create level container
			oMenuLevel = document.createElement("ul");
			oMenuLevel.className = "Level" + arrMenuItemNodes[0].iLevel;
			
			//create and append each menu item into level container
			for (var i = 0; i < arrMenuItemNodes.length; i++)
			{
				oMenuItem = document.createElement("li");
				oMenuItem.setAttribute("id","mid_" + arrMenuItemNodes[i].iId);
				//Toggle expand	
					strExpand = " ";			
					oData = document.createElement("a");
					fjsToolBox_setAttribute(oData,"class","btnToggleExpand");
					if (arrMenuItemNodes[i].iChildCount > 0)
					{
						oData.setAttribute("href", "javascript:fjsMenu_ItemEvent('mid_" + arrMenuItemNodes[i].iId + "');");
						imgData = document.createElement("img");
						imgData.setAttribute("src", strApplicationRoot + "images/mnu_expand.gif");
						imgData.setAttribute("title", "");
						oData.appendChild(imgData);
					}
					else
					{	
						oData.appendChild(document.createTextNode(strExpand));
					}
					oMenuItem.appendChild(oData);				
				//Link					
					oData = document.createElement("a");
					fjsToolBox_setAttribute(oData,"class","Link");
					oData.setAttribute("href", arrMenuItemNodes[i].strURL);
					//set target
					if (arrMenuItemNodes[i].iTarget != 0)
					{
						oData.setAttribute("target", "_blank");
					}
					oData.appendChild(document.createTextNode(arrMenuItemNodes[i].strName));
					fjsToolBox_setAttribute(oData,"title","Gå til " + arrMenuItemNodes[i].strName);
					oMenuItem.appendChild(oData);
				//data: iId
					oData = document.createElement("span");
					oData.className = "_iId";
					oData.appendChild(document.createTextNode(arrMenuItemNodes[i].iId));
					oMenuItem.appendChild(oData);
				//data: iParentId
					oData = document.createElement("span");
					oData.className = "_iParentId";
					oData.appendChild(document.createTextNode(arrMenuItemNodes[i].iParentId));
					oMenuItem.appendChild(oData);
				//data: iChildCount
					oData = document.createElement("span");
					oData.className = "_iChildCount";
					oData.appendChild(document.createTextNode(arrMenuItemNodes[i].iChildCount));
					oMenuItem.appendChild(oData);
				//data: iLevel
					oData = document.createElement("span");
					oData.className = "_iLevel";
					oData.appendChild(document.createTextNode(arrMenuItemNodes[i].iLevel));
					oMenuItem.appendChild(oData);
				//data: iTarget
					oData = document.createElement("span");
					oData.className = "_iTarget";
					oData.appendChild(document.createTextNode(arrMenuItemNodes[i].iTarget));
					oMenuItem.appendChild(oData);
				//data: ClearSpace
					oData = document.createElement("div");
					oData.className = "ClearSpace";
					oMenuItem.appendChild(oData);
				
				//append item to level container
				oMenuLevel.appendChild(oMenuItem);
			}
			
			//insert new level into menu
			document.getElementById("mid_" + arrMenuItemNodes[0].iParentId).appendChild(oMenuLevel);
		}
		
		//o'me scopes hurt, laddie...
		function fjsToolBox_setAttribute(oNode, strAttribute, strValue) 
		{
			if (oNode.getAttributeNode(strAttribute)) 
			{
				for (var i = 0; i < oNode.attributes.length; i++) {
					var attrName = oNode.attributes[i].name.toUpperCase();
					if (attrName == strAttribute.toUpperCase()) 
					{
						oNode.attributes[i].value = strValue;
					}
				}				
			}
			else {
				//create a new attribute 
				oNode.setAttribute(strAttribute, strValue);
			}
		}
	}
	
	//This is the function the "expand" button calls.
	function fjsMenu_ItemEvent(strMenuItemId)
	{
		//stop page loading
		window.stop;
				
		if (document.getElementById(strMenuItemId))
		{			
			
			//nodes
			var oParent = document.getElementById(strMenuItemId);			
			var oChild;
			var oSub = null;
			var oToggle;
			
			//data
			var iId=-1;
			var iParentId=-1;
			var iChildCount=-1;
			var iLevel=-1;
			var strURL = "";
			var iTarget = 0;
			
			//submenu check
			var strSubMenuLevel = "Level";
			var blnGetSub = true;
			
			//url to script file
			var strURL_data = strApplicationRoot + "include/iframe_data_menu_003.asp";
			
			//get all childnodes from menu item
			var childNodes = oParent.childNodes;
						
			//sort out data from menu item element by classname
			for (var i = 0; i < childNodes.length; i++) 			
			{
				oChild = childNodes[i];
				
				//sort out data							
				switch(oChild.className)
				{						
					case "_iId":
						iId = fjsToolBox_GetTextNodeContent(oChild);
						break;
					case "_iParentId":
						iParentId = fjsToolBox_GetTextNodeContent(oChild);
						break;
					case "_iChildCount":
						iChildCount = fjsToolBox_GetTextNodeContent(oChild);
						break;	
					case "_iLevel":
						iLevel = fjsToolBox_GetTextNodeContent(oChild);
						break;	
					case "_iTarget":
						iTarget = parseInt(fjsToolBox_GetTextNodeContent(oChild));
						break;	
				}
			}												
				
			//display next level
			if (iChildCount > 0)
			{					
				//check for any submenu, and get hold of toggle button node			
				strSubMenuLevel = "Level" + (parseInt(iLevel) + 1);
				for (var i = 0; i < childNodes.length; i++) 
				{
					oChild = childNodes[i];
					switch(oChild.className)
					{
						case strSubMenuLevel:
							blnGetSub = false;
							oSub = oChild;	
							break;
						case "btnToggleExpand":
							oToggle = oChild;
							break;
					}
					
				}		
							
				//generate next level?		
				if (blnGetSub)
				{
					//post data
					strURL_data = strURL_data + "?iId=" + iId + "&iParentId=" + iParentId + "&iLevel=" + iLevel;
					var frmData = document.getElementById("frmMenuData")
					frmData.src = strURL_data;
					fjsMenu_ToggleExpandGfx(oToggle, false);
				}
				else{
					//hide or display submenu?
					if (oSub.style.display != "none")
					{
						//hide sub
						oSub.style.display = "none";
						fjsMenu_ToggleExpandGfx(oToggle, true);
					}
					else{
						//display sub
						oSub.style.display = "block";
						fjsMenu_ToggleExpandGfx(oToggle, false);
					}					
				}
			}	
		}					
	}
	
	//Handles all "expand" button gfx
	//blnExpand = true - display "expand" gif
	//blnExpand = false - display "collapse" gif
	function fjsMenu_ToggleExpandGfx(oToggle, blnExpand)
		{			
			var oToggleGFX;
			if (blnExpand)
			{
				var oNodeExpand = document.createElement("img");
				oNodeExpand.setAttribute("src", strApplicationRoot + "images/mnu_expand.gif");
				oNodeExpand.setAttribute("title", "");
				
				oToggle.replaceChild(oNodeExpand, oToggle.firstChild);
				fjsToolBox_setAttribute(oToggle,"title","Vis undermeny");				
			}
			else{
				var oNodeContract = document.createElement("img");
				oNodeContract.setAttribute("src", strApplicationRoot + "images/mnu_collapse.gif");
				oNodeContract.setAttribute("title", "");
				
				oToggle.replaceChild(oNodeContract, oToggle.firstChild);
				fjsToolBox_setAttribute(oToggle,"title","Skjul undermeny");
			}
		}
		function fjsMouse(id)
		{
			if(id == 1){
				document.getElementById("SearchBtn").src = strApplicationRoot + "images/search_btn_down.jpg";
			}
			if(id == 2){
				document.getElementById("SearchBtn").src = strApplicationRoot + "images/search_btn.jpg";
			}
		}