﻿jQuery(function($) {
    $('button.menu').one('click', openMenu);
    function openMenu(e) {
        var button = $(this).addClass('active');
        var menu = $('#' + button.attr('name'));
        var offset = button.offset();
        var h = (button.outerHeight) ? button.outerHeight() : button.height();
        menu.addClass('active').css({
            'top': offset.top + h, 'left': offset.left
        }).click(function(e) { e.stopPropagation(); }).show(200, function() {
            $(document).one('click', { button: button, menu: menu }, closeMenu);
        });
    }
    function closeMenu(e) {
        e.data.menu.removeClass('active').hide(100, function() {
            e.data.button.removeClass('active');
        });
        e.data.button.one('click', openMenu);
    }
});
