$.fn.dhtmlMenu = function() {
  return this.each(function() {
  
    var timeout    = 1000;
    var closetimer = 0;
    var menuitem = 0;
    
    var submenu = $(this).find('li ul');
    submenu.mouseenter(menuCanceltimer);
    submenu.mouseleave(menuTimer);

    var trigger = $(this).find('li a.trigger');
    trigger.click(function(event) {
      event.preventDefault();
      (menuitem) ? menuClose() : menuOpen();
    });

    return this;


    
    function menuOpen() {
      menuCanceltimer();
      trigger.addClass('selectportactive');
      menuitem = submenu.slideDown('slow');
    }
    
    function menuClose() {
      if (menuitem) { 
        menuitem.slideUp('normal', function() {
          trigger.removeClass('selectportactive');
        });
        menuitem = null;
      }
    }
    
    function menuTimer() {
      closetimer = window.setTimeout(menuClose, timeout);
    }
    
    function menuCanceltimer() {
      if(closetimer) {
        window.clearTimeout(closetimer);
        closetimer = null;
      }
    }
  });
};


$(document).ready(function () {
  $('.selectport').dhtmlMenu();
});



