
$(function () {
  function repositionLastItem(parent)
  {
    var lastPopup = $('.last-popup-menu', parent);
    if (lastPopup.length != 0 && parent.outerWidth() < parseInt(lastPopup.css('width')))
    {
      lastPopup.css('left', (parent.outerWidth() - parseInt(lastPopup.css('width'))) + 'px');
    }
  }
  var iparent = $('#head-c .top-menu td.last');
  repositionLastItem(iparent);
  var showTimer = null;
  var hideTimer = null;
  var showDelay = 150;
  var hideDelay = 400;
  var visibleItem = null;
  function clearAllTimers()
  {
    if (showTimer) clearTimeout(showTimer);
    if (hideTimer) clearTimeout(hideTimer);
    if (visibleItem)
    {
      visibleItem.stop(true, true);
    }
  }
  function startHideTimer()
  {
    if (visibleItem)
      hideTimer = setTimeout(function() {
        visibleItem.stop(true, true);
        visibleItem.slideUp();
        visibleItem = null;
      }, hideDelay);
  }
  function startShowTimer(item)
  {
    repositionLastItem(item);
    if ($('.popup-menu', item).length==0)
    {
      if (visibleItem)
      {
        visibleItem.stop(true, true);
        visibleItem.slideUp('fast');
        visibleItem = null;
      }
    }
    else
    {
      showTimer = setTimeout(function() {
        if (visibleItem && visibleItem.attr('id') != $('.popup-menu', item).attr('id'))
        {
          visibleItem.stop(true, true);
          visibleItem.slideUp('fast', function() {
            visibleItem = $('.popup-menu', item).slideDown();
          });
        }
        else if (!visibleItem)
          visibleItem = $('.popup-menu', item).slideDown();
      }, showDelay);
    }
  }
  $('#head-c .top-menu td .popup-menu').mouseenter(function () {
    clearAllTimers();
  }).mouseleave(function () {
    startHideTimer();
  });
  $('#head-c .top-menu td .top-menu-item-wrapper > a').mouseenter(function () {
    clearAllTimers();
    startShowTimer($(this.parentNode));
  }).mouseleave(function () {
    startHideTimer();
  });
  $('#head-c .top-menu td').mouseenter(function () {
    $(this).addClass('hover');
  }).mouseleave(function () {
    $(this).removeClass('hover');
  });
});