jQuery(document).ready(function() {
  function initActiveItem($el)
  {
    var $parentMenu = $el.parent('ul');
    var $parentItem;
    while ($parentMenu.attr('id') == 'submenu')
    {
      $parentItem = $parentMenu.parent('li');
      $parentItem.addClass('sub_hover');
      $parentMenu = $parentItem.parent('ul');
    }
  }

  function addSubHover($submenu)
  {
    var $parentEl = $submenu.parent('li');
    $parentEl.addClass('sub_hover');
    var $parentSubmenu = $parentEl.parent('ul');
  }

  function removeSubHover($submenu)
  {
    var $parentEl = $submenu.parent('li');
    $parentEl.removeClass('sub_hover');
    var $parentSubmenu = $parentEl.parent('ul');
  }

  function initSubmenu($el) {
    var submenu = $el.children('ul')[0];
    if (typeof(submenu) != 'undefined')
    {
      var $submenu = jQuery(submenu);
      var $link = jQuery($submenu.siblings('a')[0]);
      $el.addClass('sub');
      $submenu.addClass('sub');
      $el.mouseenter(function() {
        $submenu.show();
        addSubHover($submenu);
      }).mouseleave(function() {
        $submenu.hide();
        removeSubHover($submenu);
      });
      jQuery(submenu).children('li').each(function(index, el) {
        initSubmenu(jQuery(el));
      });
    }
  };

  var $menu = jQuery('#menu');
  var $items = jQuery($menu.children('li'));
  for (var counter = 0; counter < $items.length; counter++)
  {
    var $item = jQuery($items[counter]);
    initSubmenu($item);
  }

  var $activeItem = $menu.find('li.menu_current');
  
  initActiveItem($activeItem);

});