

(function($)
{
    $.fn.popMenu = function(settings)
    {
        var config = { 'delay': 300 };

        if (settings) $.extend(config, settings);
        
        this.each(function()
        {
            $(this).find('a').wrapInner('<span></span>').end()
            .find('ul').prev().addClass('stub').parent().bind('mouseover', function() {
                var o = $(this);
                if (o.attr('action')) clearTimeout(o.attr('action'));
                o.attr('action', setTimeout(function() {  $(o).find('ul:first').css('visibility', 'visible'); }, config['delay']));
            }).bind('mouseout', function() {
                var o = $(this);
                if (o.attr('action')) clearTimeout(o.attr('action'));
                o.attr('action', setTimeout(function() { $(o).find('ul:first').css('visibility', 'hidden'); }, config['delay']));
            });
        });

        return this;
    };

})(jQuery);
