var menuTimerId = 0;
var menuCurrent = 0;

function menuHover(id)
{
  if (!document.getElementById)
    return;

  window.clearTimeout(menuTimerId);
  menuTimerId = 0;
  menuCurrent = id;

  _menuReset(false);

  var obj;
  if (obj = document.getElementById('mainmenu_' + id)) {
    if (obj.src) {
      obj.src = menuImgs[id][1].src;
    } else {
      obj.className = 'level_0_selected';
    }
  }

  initSubmenu(id);
} // end func menuHover


function menuReset(reset)
{
  if (menuTimerId != 0)
    return;

  menuCurrent = menuSelected;

  menuTimerId = window.setTimeout('_menuReset(' + reset + ')', 100);
} // end func menuReset


function _menuReset(restoreDefault)
{
  var i, obj;

  if (!document.getElementById)
    return;

  for (i = 0; i < menuLength; ++i) {
    if (obj = document.getElementById('submenu' + i)) {
      if (!restoreDefault || i != menuCurrent)
        obj.style.display = 'none';
    }

    if (i == menuSelected) {
      if (restoreDefault && (obj = document.getElementById('submenu' + i)))
        obj.style.display = 'block';
      continue;
    }

    if (obj = document.getElementById('mainmenu_' + i)) {
      if (obj.src) {
        obj.src = menuImgs[i][0].src;
      } else {
        obj.className = 'level_0';
      }
    }
  }

  menuTimerId = 0;
} // end func _menuReset


function initSubmenu(id)
{
  var submenu, submenuImg, offset, width, avWidth;

  if (!document.getElementById)
    return;

  if (!(submenu = document.getElementById('submenu' + id)))
    return;

  if (!(offset = document.getElementById('mainmenu_' + id).offsetLeft))
    return;

  if (!(submenuImg = document.getElementById('submenu_' + id)))
    return;

  if ((submenuImg = document.getElementById('submenu_' + id)) && (width = submenuImg.offsetWidth)) {
    avWidth = document.getElementsByTagName('body')[0].clientWidth;
  } else {
    submenu.style.display = 'block';

    width   = document.getElementById('submenu_' + id).offsetWidth;
    avWidth = document.getElementsByTagName('body')[0].clientWidth;
  }

  if (offset + width > avWidth)
    offset = avWidth - width; 
  if (offset < 0)
    offset = 0;

  submenu.style.marginLeft = offset + 'px';
} // end func initSubmenu


function navigationHover(level, id, mode)
{
  var obj;

  if (!document.getElementById)
    return;
  if (!(obj = document.getElementById('mainNavigation' + level + '_' + id)))
    return;

  obj.src = '../img/' + (mode ? 'dot.blue' : 'white') + '.gif';
} // end func navigationHover

var menuImgs;

function preloadMenu()
{
  var i;

  menuImgs = new Array(menuItems.length);

  for (i = 0; i < menuItems.length; ++i) {
    menuImgs[i] = new Array(new Image, new Image);
    menuImgs[i][0].src = menuImgPath + menuItems[i] + '.' + menuImgSuffix;
    menuImgs[i][1].src = menuImgPath + menuItems[i] + '_1.' + menuImgSuffix;
  }
}
