(function($) {
  $(function() {
    var nav_pos = $('#global-nav').css('position');
    $('#nav li').hover(
      navOver,
      navOut
    );

    function navOver(e) {
      var sub = $(this).find('> ul');
      if(sub.length) {
        if(sub.data('timer')) {
          clearTimeout(sub.data('timer'));
          sub.data('timer', false);
        }
        var offset = $(this).offset();
        if(nav_pos == 'fixed') {
          sub.css({top: this.offsetHeight - 3 +'px', left: offset.left  +'px'});
        } else {
          sub.css({top: offset.top + this.offsetHeight - 3 +'px', left: offset.left  +'px'});
        }
        sub.fadeIn();
      }
    }
    function navOut(e) {
      var sub = $(this).find('> ul');
      if(sub.length) {
        var timer = setTimeout(function() {
          if(!sub.data('outing')) {
            sub.data('outing', 1);
            sub.fadeOut(function() {
              sub.data('outing', 0);
            });
          }
        }, 300);
      }
      sub.data('timer', timer);
    }
  });
})(jQuery);