jQuery.fn.HEMenu = function(options){
	
	settings = jQuery.extend({
     delay: 1000,
		 speed: 'slow'
  }, options);

	var outerUl = jQuery(this);
	var outerAs = outerUl.find('li:has(ul)>a');
	var nestedUls = outerUl.find('ul');
	
	nestedUls.css('display', 'none');
	
	function expand(uls, delay){
		
		return function(event){
			var ul = jQuery(event.target).closest('li').find('ul');

			if (ul.css('display') == 'none'){
				window.HEMenu = setTimeout(function(){
					uls.slideUp(settings.speed);
					ul.slideDown(settings.speed);
				}, delay);
			}
		}
	}

	outerAs.bind('mouseenter', expand(nestedUls, settings.delay));
	outerAs.bind('mouseleave', function(){
		clearTimeout(window.HEMenu);
	});

	return this;
};