/**
 * Делаем выпадающее меню
 */
jQuery.popupMenu = {
    buildMenu : function(options)
    {
        if (this.length !== 1)
            throw new Error("Object must content only one element.");

        var elements = this.find(options.link);

        $.each(elements, function(index, item)
        {
            var data = {};
            
            data.parent = $(item).parent();
            data.submenu = data.parent.find('div.submenu');

            if (data.submenu.length != 1) return;
            data.popup = data.submenu.children("div.popup-menu");
            
            data.submenu.width(data.popup.outerWidth(true) + 5/* ширина выступа бордюра */);

            $(item).bind('mouseover', data, jQuery.popupMenu.mouseOverHandler);
            data.popup.bind('mouseleave', data, jQuery.popupMenu.mouseLeaveHandler);
        });
    },

    mouseOverHandler : function (event)
    {
        var left = (event.data.parent.innerWidth() - event.data.submenu.innerWidth())/2;
        
        event.data.submenu.css('left', Math.round(left) + "px");
        event.data.popup.css('display', 'block');
    },
    mouseLeaveHandler : function (event)
    {
        event.data.popup.css('display', 'none');
    }

};

jQuery.fn.extend(
    {
        popupMenu: jQuery.popupMenu.buildMenu
    }
);
