                                var collapseRecord = new Array();
      var bulletRight = new Image();
      bulletRight.src = '/Bilder/Layout/menu/bullet_right.gif';
      var bulletDown = new Image();
      bulletDown.src = '/Bilder/Layout/menu/bullet_down.gif';
      var slowTransition = false;
      var oneSibling = true;
      var selectedNode = null;

      function getNavRoot()
      {
        divs = document.getElementsByTagName('div');
        for (var i = 0; i < divs.length; i++)
          if (divs[i].className == 'navigat') return divs[i];
        return;

      }

      function expandChildren(root)
      {
        for (var i = 0; i < root.childNodes.length; i++)
        {
          node = root.childNodes[i];
          if (node.tagName == 'DIV')
            node.style.display = 'block';
        }
        root.setAttribute('expanded', true);
      }

      function collapseChildren(root)
      {
        for (var i = 0; i < root.childNodes.length; i++)
        {
          node = root.childNodes[i];
          if (node.tagName == 'DIV')
            node.style.display = 'none';
        }
        root.setAttribute('expanded', false);
      }

      function navOnClick(event)
      {
        s = srcElement(event);

        if (this.childNodes.length > 1 && (s.parentNode == this || s.parentNode.parentNode == this))
          toggleChildren(this); 

        // Moz and IE return null for href, NS returns '' with the attribute is not supplied

        if (this.getAttribute('title') == null || this.getAttribute('title') == '')
          // the clicked node does not have an HREF assigned
          return cancelAll(event);
        else
        {
          try {
            return cancelAll(event);
          }catch(e){            
          }
          // cancelAll actually does too much work.  For IE we need to "undo"
          // the setting of the returnValue attribute so that the link can be 
          // followed

          if (window.event)
            window.event.returnValue = true;

          return true;
        }
      }

      function navOnMouseOver(event)
      {
        this.style.classname = 'MenuHover';
        try {
            return cancelAll(event);
        }catch(e){            
        }
      }

      function navOnMouseOut(event)
      {
        if (this.className != 'selected')
          this.style.classname = 'TableHead';
        else
          this.style.classname = '';
       try {
            return cancelAll(event);
        }catch(e){            
        }
      }

      function setupChildren(root)
      {
        var depth = root.getAttribute('depth');
        for (var i = 0; i < root.childNodes.length; i++)
        {
          node = root.childNodes[i];
          if (node.tagName == 'DIV')
          {
            href = node.getAttribute('title');
            
            // set up the bullets.
            var a = document.createElement('A');
            a.href = href;

            if (node.childNodes.length > 1)
              img_name = '/Bilder/Layout/menu/bullet_right.gif';
            else
              img_name = '/Bilder/Layout/menu/bullet.gif';

            a.innerHTML = '<img src="' + img_name + '" border="0" hspace="2" valign="middle" alt="" />&nbsp;' + node.firstChild.nodeValue;
            a.style.width = '100%';
            
            if (href)
              a.onclick = new Function('if (this && this != null && this != \'null\') top.location.href = this; return false;');

            node.replaceChild(a, node.firstChild);
            
            // set up the events

            node.setAttribute('depth', depth + 1);
            node.onclick = navOnClick;
            node.onmouseover = navOnMouseOver;
            node.onmouseout = navOnMouseOut;
            node.style.cursor = 'pointer';
            //node.style.cursor = 'hand';
            if (node.className != 'selected')
              node.style.classname = 'TableHead';
            node.setAttribute('id', root.getAttribute('id') + '_' + i);
            if (depth > 0) node.style.display = 'none';
            
            if (node.className == 'selected') selectedNode = node;
            setupChildren(node);
          }
        }
      }

      function cancelAll(event)
      {
        if (window.event) event = window.event;
        if (event)
        {
          event.returnValue = false; 
          event.cancelBubble = true; 
        }
        return false;
      }

      function isExpanded(node)
      {
        var expanded = node.getAttribute('expanded');
        if (expanded && expanded != 'false') return true;
        if (!expanded || expanded == 'false') return false;
        return true;
      }


      function toggleChildren(root)
      {
        var expanded = isExpanded(root);
        if (expanded) 
        {
          root.firstChild.firstChild.src = bulletRight.src;
          if (slowTransition)
            slowlyCollapseChildren(root.getAttribute('id'), 20);
          else
            collapseChildren(root);
          
        }
        if (!expanded)
        {
          if (oneSibling)
          {
            // first collapse all expanded siblings if the option is selected
            parentNode = root.parentNode;
            for (var i = 0; i < parentNode.childNodes.length; i++)
            {
              node = parentNode.childNodes[i];
              if (node.tagName == 'DIV')
                if ((node != root) && (node.childNodes.length > 1) && isExpanded(node))
                  toggleChildren(node);
              
            }
          }

          root.firstChild.firstChild.src = bulletDown.src;
          if (slowTransition)
            slowlyExpandChildren(root.getAttribute('id'), 20);
          else
            expandChildren(root);
        }
      }

      function attachEvents()
      {
        nav = getNavRoot();
        if (!nav) return;
        
        nav.setAttribute('depth', 0);
        nav.setAttribute('id', 'navigat');
        setupChildren(nav);
        if (selectedNode)
          exposeNode(selectedNode);
      }

      function srcElement(event)
      {
        if (window.event) return window.event.srcElement;
        return event.target;
      }

      function slowlyExpandChildren(id, delay)
      {
        if (collapseRecord[id])
          if (collapseRecord[id].locked) { return false; }
        if (!collapseRecord[id])
          collapseRecord[id] = new Object();
        collapseRecord[id].locked = true;


        if (!collapseRecord[id].nodes)
        {
          collapseRecord[id].nodes = new Array();
          root = document.getElementById(id);
          for (var i = 0; i < root.childNodes.length; i++)
          {
            var node = root.childNodes[i];
            if (node.tagName == 'DIV')
              collapseRecord[id].nodes[collapseRecord[id].nodes.length] = node;
          }

        }

        collapseRecord[id].index = 0;
        collapseRecord[id].interval = setInterval('slowlyExpandOneChild(\'' + id + '\')', delay);
      }

      function slowlyExpandOneChild(id)
      {
        var i = collapseRecord[id].index;
        collapseRecord[id].index++;

        node = collapseRecord[id].nodes[i];
        if (!node) return false;
        if (node.style)
          node.style.display = 'block';

        if (collapseRecord[id].index >= collapseRecord[id].nodes.length)
        {
          root = document.getElementById(id);
          root.setAttribute('expanded', true);
          clearInterval(collapseRecord[id].interval);
          collapseRecord[id].locked = false;
          return false;
        }
      }

      function slowlyCollapseChildren(id, delay)
      {
        if (collapseRecord[id])
          if (collapseRecord[id].locked) return false;
        if (!collapseRecord[id])
          collapseRecord[id] = new Object();
        collapseRecord[id].locked = true;
        
        if (!collapseRecord[id].nodes)
        {
          collapseRecord[id].nodes = new Array();
          var root = document.getElementById(id);
          for (var i = 0; i < root.childNodes.length; i++)
          {
            var node = root.childNodes[i];
            if (node.tagName == 'DIV')
              collapseRecord[id].nodes[collapseRecord[id].nodes.length] = node;
          }
        }

        collapseRecord[id].index = collapseRecord[id].nodes.length - 1;
        collapseRecord[id].interval = setInterval('slowlyCollapseOneChild(\'' + id + '\')', delay);
      }

      function slowlyCollapseOneChild(id)
      {
        node = collapseRecord[id].nodes[collapseRecord[id].index];
        collapseRecord[id].index--;

        if (node.style)
          node.style.display = 'none';

        if (collapseRecord[id].index == -1)
        {
          root = document.getElementById(id);
          root.setAttribute('expanded', false);
          clearInterval(collapseRecord[id].interval);
          collapseRecord[id].locked = false;
          return false;
        }
      }

      function exposeNode(node)
      {
        node = node.parentNode;
        while (node.className != 'navigat')
        {
          expandChildren(node);
          node.firstChild.firstChild.src = bulletDown.src;
          node = node.parentNode;
        }
      }
