      var overTrigger=false;
      var linkQueue=new Array();
      var menuQueue=new Array();
      var menuDepth=-1;

      function pPos(obj)
      {
        if(obj==null)return [0, 0];
        var curleft =0;
        var curTop=0;
        if (obj.offsetParent)
        {
          curleft = obj.offsetLeft;
          curtop = obj.offsetTop;
          while (obj = obj.offsetParent)
          {
            curtop += obj.offsetTop;
            curleft += obj.offsetLeft;
          }
        }
        return [curtop, curleft];
      }

      function inArray(val, arr)
      {
        var found=-1;
        var limiter=(arguments.length>2)?arguments[2]:arr.length;
        for(var i=0; i<limiter; i++)
          if (arr[i]==val)
          {
            found=i;
            break;
          }
        return found;
      }

      function showSub(obj, id, depth)
      {
        if (isLin==0)
        {
          overTrig(true);
          var mc=document.getElementById('main_menu_'+id);
          var ml=document.getElementById('menu_link_'+id);
          if (mc)
          {
            var addonX=0;
            var addonY=0;
            var res=pPos(obj);
            var isHor=inArray(id, horizontals);
            if (isHor!=-1)
            {
              if (document.getBoxObjectFor!=null||window.opera) addonX=addonY=-1;
              else if (document.all) addonY=-1;
              mc.style.top=res[0]+26+addonY;
              mc.style.left=res[1]+addonX-17;
            }
            else
            {
              if (window.opera) { addonX=1; addonY=-1; }
              else if (!document.all) addonX=2;
              mc.style.top=res[0]+addonY;
              mc.style.left=res[1]+191+addonX;
            }
          }
          if (menuDepth>=depth)
          {
            for (i=menuQueue.length-1; i>=depth; i--)
            {
              if (menuQueue[i]&&menuQueue[i]!=id)
              {
                document.getElementById('main_menu_'+menuQueue[i]).style.display='none';
                menuQueue[i]=null;
                if (document.getElementById('menu_link_'+linkQueue[i])) document.getElementById('menu_link_'+linkQueue[i]).className=(i>0)?'subm smmore':'mm';
                menuDepth--;
              }
            }
          }
          var found=inArray(id, menuQueue);
          if (mc&&found)
          {
            menuDepth=depth;
            menuQueue[menuDepth]=id;
            mc.style.display='block';
            linkQueue[menuDepth]=id;
            ml.className=(depth>0)?'subms smmore':'mms';
          }
        }
      }

      function realHideSub()
      {
        if (!overTrigger)
        {
          for(var i=0; i<allMenuDivs.length; i++)
          {
            var found=inArray(allMenuDivs[i], horizontals);
            var div=document.getElementById('main_menu_'+allMenuDivs[i]);
            if (div&&div.style.display=='block')
            {
              div.style.display='none';
              document.getElementById('menu_link_'+allMenuDivs[i]).className=(found==-1)?'subm smmore':'mm';
            }
          }
          menuQueue=new Array();
          linkQueue=new Array();
          menuDepth=-1;
        }
      }

      function hideSub()
      {
        if (isLin==0)
        {
          overTrig(false);
          setTimeout('realHideSub()', 100);
        }
      }

      function overTrig(state)
      {
        overTrigger=state;
      }
