    var childActive = null 
    var menuActive = null
    var lastHighlight = null
    var active = false
   
    function getReal(el) {
      // Find a table cell element in the parent chain */
      temp = el

      while ((temp!=null) && (temp.tagName!="TABLE") && (temp.className!="root") && (temp.id!="menuBar")) {
        if (temp.tagName=="TD")
          el = temp
        temp = temp.parentElement
			  
      }
      return el
    }

    function raiseMenu(el) {
      el.style.borderLeft = "1px #000000 solid"
      el.style.borderTop = "1px #DDDDDD solid"
      el.style.borderRight = "1px #DDDDDD solid"
      el.style.borderBottom = "1px #DDDDDD solid"
    }

    function clearHighlight(el) {
      if (el==null) return
      el.style.borderRight = "1px #DDDDDD solid"
      el.style.borderBottom = "1px #DDDDDD solid"
      el.style.borderTop = "1px #DDDDDD solid"
      el.style.borderLeft = "1px #000000 solid" 
    }

    function sinkMenu(el) {
      el.style.borderRight = "1px #DDDDDD solid"
      el.style.borderBottom = "1px #DDDDDD solid"
      el.style.borderTop = "1px #DDDDDD solid"
      el.style.borderLeft = "1px #000000 solid"
    }

    function menuHandler(menuItem) {
      // Write generic menu handlers here!
      // Returning true collapses the menu. Returning false does not collapse the menu
      return true
    }

    // Funktionen gör att när man klickar vid sidan av menyn så släpper den...
    function CheckIt() {
      var el = event.srcElement;
      if ((el.tagName != "TD") || (getRootTable(el).id!="menuBar")) {
         cleanupMenu(menuActive)
         clearHighlight(menuActive)
         active=false
         lastHighlight=null
	if (document.forms[0]){
		//select_show;
	 	//document.forms[0].select1.style.visibility="";
	}

      }
    }
    function getOffsetPos(which,el,tagName) {
      var pos = 0 // el["offset" + which]
      while (el.tagName!=tagName) {
        pos+=el["offset" + which]
        el = el.offsetParent
      }
      return pos	
    }

    function getRootTable(el) {
      el = el.offsetParent
      if (el.tagName=="TR") 
        el = el.offsetParent
      return el
    }

    function getElement(el,tagName) {
      while ((el!=null) && (el.tagName!=tagName) )
        el = el.parentElement
      return el
    }

    function processClick() 
	{
      var el = getReal(event.srcElement)

	  //Här Lägger man till länkar till Onclick i 1:a menyn om man har expanderbar meny
		if(el.id != "")
		{
			idString = new String(el.id)
			idSlice=idString.slice(0,4)	
			if(idSlice=="main")
			{
				if (idString.slice(4,9)==2)
				{
					document.location.href="/extern/enheter/finans/"
				}
				else if(idString.slice(4,9)==3)
				{
					document.location.href="/extern/enheter/driftsupport/"
				}
				else if (idString.slice(4,9)==4)
				{
					document.location.href="/extern/enheter/personal/"
				}
				else if (idString.slice(4,9)==5)
				{
					document.location.href="extern/enheter/pic/"
				}
				else if (idString.slice(4,9)==6)
				{
					document.location.href="/extern/enheter/teknikutveckling/"
				}
			}
		}
      if ((getRootTable(el).id=="menuBar") && (active)) {        
		cleanupMenu(menuActive)
        clearHighlight(menuActive)
        active=false
        lastHighlight=null
        doHighlight(el)
		if (document.forms[0]){
			//select_show;
	 		//document.forms[0].select1.style.visibility="";
		}
      }
      else 
	  {
        if ((el.className=="root") || (!menuHandler(el))){
			if (document.forms[0]){
				//select_hide;
          			//document.forms[0].select1.style.visibility="hidden";
			}
        doMenuDown(el)
		}
        else 
		{
          if (el._childItem==null) 
            el._childItem = getChildren(el)
			if (el._childItem!=null)  return;
			if ((el.id!="break") && (el.className!="disabled") && (el.className!="disabledhighlight") && (el.className!="clear"))  
			{
				if (menuHandler(el)) {
					cleanupMenu(menuActive)
					clearHighlight(menuActive)
					active=false
					lastHighlight=null
				}
			}
		}
      }
    }

    function getChildren(el) {
      var tList = el.children.tags("TABLE")
      var i = 0
      while ((i<tList.length) && (tList[i].tagName!="TABLE"))
        i++
      if (i==tList.length)
        return null
      else
        return tList[i]
    }

    function doMenuDown(el) {
      if (el._childItem==null) 
        el._childItem = getChildren(el)
      if ((el._childItem!=null) && (el.className!="disabled") && (el.className!="disabledhighlight")) {
        // Performance Optimization - Cache child element
        ch = el._childItem
        if (ch.style.display=="block") {
          removeHighlight(ch.active)
          return
        }
        ch.style.display = "block"
        if (el.className=="root") {
          ch.style.pixelTop = el.offsetHeight + el.offsetTop + 7
          ch.style.pixelLeft = el.offsetLeft// + 3
	  if (ch.style.pixelWidth==0)
            ch.style.pixelWidth = ch.rows[0].offsetWidth   /* Minsta bredd på meny nivå 1 */
          sinkMenu(el)
          active = true
          menuActive = el
        } else {
          childActive = el
          ch.style.pixelTop = getOffsetPos("Top",el,"TABLE") - 2 // el.offsetTop + el.offsetParent.offsetTop - 3

/*		  Kommentera bort detta och ta bort raden efter kommenteringen om man vill flytta menyn i IE4 2px till höger (mycket liten effekt och tar lite tid från processorn)

		my2String = new String(navigator.appVersion)
		slicer2=my2String.slice(my2String.indexOf("MSIE") +4,my2String.indexOf("MSIE") +8)	
		 if(parseInt(slicer2)==4) 
		 {	
			ch.style.pixelLeft = el.offsetLeft + el.offsetWidth 
			//alert("hej")
		 }
		 else
		 {
		 ch.style.pixelLeft = el.offsetLeft + el.offsetWidth - 2 //Flyttar under menyerna 2 pixlar till vänster för att över brygga glappet melle menyer
		 }*/
		 ch.style.pixelLeft = el.offsetLeft + el.offsetWidth - 2 //Flyttar under menyerna 2 pixlar till vänster för att över brygga glappet melle menyer
		 
	  if (ch.style.pixelWidth==0)
            ch.style.pixelWidth = ch.offsetWidth   /* Minsta bredd på meny nivå 2 Tog Bort "+70" och då blir bredden rätt*/
        }     
      }
    }
 
    function doHighlight(el) {
      el = getReal(el)
      if ("root"==el.className) {
        if ((menuActive!=null) && (menuActive!=el)) {
          clearHighlight(menuActive)
        }
        if (!active) {
          raiseMenu(el)
        }          
        else 
          sinkMenu(el)
        if ((active) && (menuActive!=el)) {
          cleanupMenu(menuActive)          
          doMenuDown(el)
        }
        menuActive = el  
        lastHighlight=null
      }
      else {
        if (childActive!=null) 
			if (!childActive.contains(el)) 
				closeMenu(childActive, el)    
			
        if (("TD"==el.tagName) && ("clear"!=el.className)) {
          var ch = getRootTable(el)         
          if (ch.active!=null) {
            if (ch.active!=el) {
              if (ch.active.className=="disabledhighlight")  
                ch.active.className="disabled"
              else
                ch.active.className=""
              }
            }
          ch.active = el
          lastHighlight = el
          if ((el.className=="disabled") || (el.className=="disabledhighlight") || (el.id=="break")) 
            el.className = "disabledhighlight"
          else {
            if (el.id!="break") {
              el.className = "highlight"
              if (el._childItem==null) 
                el._childItem = getChildren(el)
              if (el._childItem!=null) {
                doMenuDown(el)
              }
            }  
          }
        }
      }
    }

    function removeHighlight(el) {
      if (el!=null)
        if ((el.className=="disabled") || (el.className=="disabledhighlight"))  
          el.className="disabled"
        else
          el.className=""
    }

    function cleanupMenu(el) {
      if (el==null) return
      for (var i = 0; i < el.all.length; i++) {
        var item = el.all[i]
        if (item.tagName=="TABLE")
         item.style.display = ""
        removeHighlight(item.active)
        item.active=null
      }
    }


    function closeMenu(ch, el) {
      var start = ch
      while (ch.className!="root") {
          ch = ch.parentElement
          if (((!ch.contains(el)) && (ch.className!="root"))) {
            start=ch
          }
      }
      cleanupMenu(start)
    }
 
    function checkMenu() {      
      if (document.all.menuBar==null) return
      if ((!document.all.menuBar.contains(event.srcElement)) && (menuActive!=null)) {
        clearHighlight(menuActive)
        closeMenu(menuActive)
        active = false
        menuActive=null
        choiceActive = null
      }
    }

    function doCheckOut() {
      var el = event.toElement      
      if ((!active) && (menuActive!=null) && (!menuActive.contains(el))) {
        clearHighlight(menuActive)
        menuActive=null
      }
    }


    function processKey() {
      if (active) {
        switch (event.keyCode) {
         case 13: lastHighlight.click(); break;
         case 39:  // right
           if ((lastHighlight==null) || (lastHighlight._childItem==null)) {
             var idx = menuActive.cellIndex
//             if (idx==menuActive.offsetParent.cells.length-2)
             if (idx==getElement(menuActive,"TR").cells.length-2)
               idx = 0
             else
               idx++
             newItem = getElement(menuActive,"TR").cells[idx]
           } else
           {
             newItem = lastHighlight._childItem.rows[0].cells[0]
           }
           doHighlight(newItem)
           break; 
         case 37: //left
           if ((lastHighlight==null) || (getElement(getRootTable(lastHighlight),"TR").id=="menuBar")) {
             var idx = menuActive.cellIndex
             if (idx==0)
               idx = getElement(menuActive,"TR").cells.length-2
             else
               idx--
             newItem = getElement(menuActive,"TR").cells[idx]
           } else
           {
             newItem = getElement(lastHighlight,"TR")
             while (newItem.tagName!="TD")
               newItem = newItem.parentElement
           }
           doHighlight(newItem)
           break; 
         case 40: // down
            if (lastHighlight==null) {
              itemCell = menuActive._childItem
              curCell=0
              curRow = 0
            }
            else {
              itemCell = getRootTable(lastHighlight)
              if (lastHighlight.cellIndex==getElement(lastHighlight,"TR").cells.length-1) {
                curCell = 0
                curRow = getElement(lastHighlight,"TR").rowIndex+1
                if (getElement(lastHighlight,"TR").rowIndex==itemCell.rows.length-1)
                  curRow = 0
              } else {
                curCell = lastHighlight.cellIndex+1
                curRow = getElement(lastHighlight,"TR").rowIndex
              }
            }
            doHighlight(itemCell.rows[curRow].cells[curCell])
            break;
         case 38: // up
            if (lastHighlight==null) {
              itemCell = menuActive._childItem
              curRow = itemCell.rows.length-1
              curCell= itemCell.rows[curRow].cells.length-1

            }
            else {
              itemCell = getRootTable(lastHighlight)
              if (lastHighlight.cellIndex==0) {
                curRow = getElement(lastHighlight,"TR").rowIndex-1
                if (curRow==-1)
                  curRow = itemCell.rows.length-1
                curCell= itemCell.rows[curRow].cells.length-1

              } else {
                curCell = lastHighlight.cellIndex - 1
                curRow = getElement(lastHighlight,"TR").rowIndex
              }
            }
            doHighlight(itemCell.rows[curRow].cells[curCell])
            break;
           if (lastHighlight==null) {
              curCell = menuActive._childItem
              curRow = curCell.rows.length-1
            }
            else {
              curCell = getRootTable(lastHighlight)
              if (getElement(lastHighlight,"TR").rowIndex==0)
                curRow = curCell.rows.length-1
              else
                curRow = getElement(lastHighlight,"TR").rowIndex-1
            }
            doHighlight(curCell.rows[curRow].cells[0])
            break;
        }
      }
    }
