(function($) { var handleContainer = function(action) { return function(event, data) { data = data || {}; $.fusebox.container() [$.fusebox.container.fx[action].fn]( // call the show/hide method $.fusebox.container.fx[action].speed, // set speed data.callback || function() {}) // optional callback .css({ left: $(window).width()/2 - ($.fusebox.container().width()/2) // center }); }; }; $.extend($.fusebox, { bindings: { close: function() { $(document).unbind("keydown.fusebox"); $.fusebox.container.hide(); }, keydown: function(event) { if(event.keyCode == 27) { $.fusebox.close(); } return true; }, click: function() { $(document) .bind("keydown.fusebox", $.fusebox.bindings.keydown) .trigger("loading.fusebox"); var fuseboxTargetSelector = $(this).data("fuseboxTargetSelector"); if(typeof(fuseboxTargetSelector) == "undefined") return true; $.fusebox.container.show(fuseboxTargetSelector); return false; } } }); $(document) .bind("close.fusebox", $.fusebox.bindings.close) .bind("showContainer.fusebox", handleContainer("show")) .bind("hideContainer.fusebox", handleContainer("hide")); })(jQuery);