/** * jQuery dialog plugin * *
*
*
*
*
*/ (function( $ ){ var methods = { init: function(){ this.data('dialog', {opened: []}); this.find('#dialog-overlay').bind('click.dialog', function(){ $(this).parent().dialog('hide'); }); }, show: function(name){ var maskHeight = $(document).height(); var maskWidth = $(window).width(); var overlay = this.find('#dialog-overlay'); overlay.css({'width':maskWidth,'height':maskHeight}); var winH = $(window).height(); var winW = $(window).width(); var dialog = this.find('#'+name); dialog.css('top', winH/2-dialog.height()/2); dialog.css('left', winW/2-dialog.width()/2); this.data('dialog').opened.push(name); overlay.show(); dialog.show(); }, hide: function(){ var name = this.data('dialog').opened.pop(); var dialog = this.find('#'+name); var overlay = this.find('#dialog-overlay'); dialog.hide(); if (this.data('dialog').opened.length === 0){ overlay.hide(); } } }; /* * Register the 'dialog' method to the jQuery objects * the first argument of this method is the submethod * you want to call */ $.fn.dialog = function(method) { if ( methods[method] ) { return methods[method].apply(this, Array.prototype.slice .call(arguments, 1)); } else if ( typeof method === 'object' || !method ) { return methods.init.apply(this, arguments); } else { $.error('Method ' + method + ' does not exist on jQuery.dialog'); } }; })(jQuery);