var navTimer = null;
var activeElement = null;

$(document).ready(function() {
  $("#menu > ul > li > ul > li").hover(function() {
    activeElement = $(this).find("ul:first");
    
    if (!activeElement.is(":visible")) {
      clearTimeout(navTimer);
      navTimer = null;
      $("#menu > ul > li > ul > li > ul").slideUp(300);
    }
    if (navTimer) {
      clearTimeout(navTimer);
      navTimer = null;
    } else {
      $(activeElement).slideDown(300);
    }
  }, function() {
    navTimer = setTimeout(function() {
      $(activeElement).slideUp(300);
      navTimer = null;
    }, 700);
  });
});
