/**
 * @PROJECT:   mygosuMenu 1.0.3
 * @COPYRIGHT: (c) 2003,2004 Cezary Tomczak
 * @LINK:      http://gosu.pl/software/mygosumenu.html
 * @LICENSE:   BSD
 */

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'
  }
}

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
          }
        }
      }
    } else {
      document.getElementById(s).onmouseover = function() {
        menuShow(section, elements)
        menuCountHide[section]++
      }
    }
    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
    }
    if (nodes[i].childNodes) {
      menuMakeId(nodes[i].childNodes)
    }
  }
}

function menuInit() {
  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])
  }
}