/*
 * DO NOT REMOVE THIS NOTICE
 *
 * PROJECT:   mygosuMenu
 * VERSION:   1.0.4
 * COPYRIGHT: (c) 2003,2004 Cezary Tomczak
 * LINK:      http://gosu.pl/software/mygosumenu.html
 * LICENSE:   BSD (revised)
 * aufgeraeumt und nach dokumentiert von S. Basener 2004 
*/

var menuTimeout = 400

var menuSections = new Array()
var menuCountHide = new Array()

var menuSectionCnt = 0
var menuBoxCnt = 0

function menuShow(section, elements)
{
  for (var i = 0; i < menuSections.length; i++)
  {
    if (menuSections[i] != section)
	{
      menuHide(menuSections[i], menuCountNodes(menuSections[i]))
    }
  }
  for (var i = 1; i <= elements; i++)
  {
    document.getElementById(section + '-' + i).style.visibility = 'visible'
  }
} /* end menuShow */

function menuHide(section, elements)
{
  for (var i = 1; i <= elements; i++)
  {
    document.getElementById(section + '-' + i).style.visibility = 'hidden'
  }
  document.getElementById(section).style.zIndex = -1
}

function menuTryHide(section, elements, countHide)
{
  if (countHide != menuCountHide[section])
  {
    return
  }
  menuHide(section, elements)
}

function menuCountNodes(element)
{
  ret = 0
  nodes = document.getElementById(element).childNodes.length
  for (var i = 0; i < nodes; i++)
  {
    if (document.getElementById(element).childNodes[i].nodeType == 1)
	{
      ret++
    }
  }
  return ret
}

function menuInitSection(section)
{
  var elements = menuCountNodes(section)
  for (var i = 0; i <= elements; i++)
  {
    var s = (i == 0 ? (section + '-top') : (section + '-' + i))
    if (i == 0)
	{
      document.getElementById(s).onmouseover = function()
	  {
        menuShow(section, elements)
        menuCountHide[section]++
        for (var ii = 0; ii < menuSections.length; ii++)
		{
          document.getElementById(section).style.zIndex = 1
          if (menuSections[ii] != section)
		  {
            document.getElementById(menuSections[ii]).style.zIndex = -1
          }
        }
      }
    } /* end if */ 
	else
	{
      document.getElementById(s).onmouseover = function()
	  {
        //menuShow(section, elements)
        menuCountHide[section]++
      }
    } /* end else */
    document.getElementById(s).onmouseout = function() {
      setTimeout("menuTryHide('" + section + "', " + elements + ", " + menuCountHide[section] + ")", menuTimeout)
    }
  }
}

function menuMakeId(nodes) {
  for (var i = 0; i < nodes.length; i++)
  {
    switch (nodes[i].className) 
	{
      case 'top':
        menuSectionCnt++
        menuBoxCnt = 0
        nodes[i].id = 'menu-' + menuSectionCnt + '-top'
        break
      case 'section':
        nodes[i].id = 'menu-' + menuSectionCnt
        menuSections[menuSections.length] = nodes[i].id
        break
      case 'box':
        menuBoxCnt++
        nodes[i].id = 'menu-' + menuSectionCnt + '-' + menuBoxCnt
        break
    } /* end switch */
    if (nodes[i].childNodes)
	{
      menuMakeId(nodes[i].childNodes)
    } /*end if */
  } /* end for */
} /* end function menuMakeId(nodes) */

function menuInit()
/* Funktion initialisiert das Menu, wird mit onload="menuInit()"im HMTL-Dokument aufgerufen.
*/
{
  menuMakeId(document.getElementById('menu').childNodes)
  for (var i = 0; i < menuSections.length; i++)
  {
    menuCountHide[menuSections[i]] = 0
  }
  for (var i = 0; i < menuSections.length; i++) {
    menuInitSection(menuSections[i])
  }
} /* end function menuInit() */