/************************************************************************************************************ * SIMPLE MODAL v 2.0 * © 2009 FISHBOWL MEDIA LLC * http://fishbowlmedia.com ***********************************************************************************************************/ (function ($) { /********************************** * CUSTOMIZE THE DEFAULT SETTINGS * Ex: * var _settings = { * id: 'modal', * src: function(sender){ * return jQuery(sender).attr('href'); * }, * width: 800, * height: 600 * } **********************************/ var _settings = { width: 800, // Use this value if not set in CSS or HTML height: 600, // Use this value if not set in CSS or HTML overlayOpacity: .85, // Use this value if not set in CSS or HTML id: 'modal', src: function (sender) { return jQuery(sender).attr('href'); }, fadeInSpeed: 0, fadeOutSpeed: 0 } /********************************** * DO NOT CUSTOMIZE BELOW THIS LINE **********************************/ $.modal = function (options) { return _modal(this, options); } $.modal.open = function () { _modal.open(); } $.modal.close = function () { _modal.close(); } $.fn.modal = function (options) { return _modal(this, options); } _modal = function (sender, params) { this.options = { parent: null, overlayOpacity: null, id: null, content: null, width: null, height: null, modalClassName: null, imageClassName: null, closeClassName: null, overlayClassName: null, src: null } this.options = $.extend({}, options, _defaults); this.options = $.extend({}, options, _settings); this.options = $.extend({}, options, params); this.close = function () { jQuery('.' + options.modalClassName + ', .' + options.overlayClassName).fadeOut(_settings.fadeOutSpeed, function () { jQuery(this).unbind().remove(); }); } this.open = function () { if (typeof options.src == 'function') { options.src = options.src(sender) } else { options.src = options.src || _defaults.src(sender); } var fileExt = /^.+\.((jpg)|(gif)|(jpeg)|(png)|(jpg))$/i; var contentHTML = ''; if (fileExt.test(options.src)) { contentHTML = '
'; } else { contentHTML = '
' : '
'); $overlay.hide().appendTo(options.parent); $modal = jQuery('
' + options.content + '
'); $modal.hide().appendTo(options.parent); $close = jQuery(''); $close.appendTo($modal); var overlayOpacity = _getOpacity($overlay.not('iframe')) || options.overlayOpacity; $overlay.fadeTo(0, 0).show().not('iframe').fadeTo(_settings.fadeInSpeed, overlayOpacity); $modal.fadeIn(_settings.fadeInSpeed); $close.click(function () { jQuery.modal().close(); window.location = '/consumer/index.jsp'; }); $overlay.click(function () { jQuery.modal().close(); window.location = '/consumer/index.jsp'; }); } } return this; } _isIE6 = function () { if (document.all && document.getElementById) { if (document.compatMode && !window.XMLHttpRequest) { return true; } } return false; } _getOpacity = function (sender) { $sender = jQuery(sender); opacity = $sender.css('opacity'); filter = $sender.css('filter'); if (filter.indexOf("opacity=") >= 0) { return parseFloat(filter.match(/opacity=([^)]*)/)[1]) / 100; } else if (opacity != '') { return opacity; } return ''; } _defaults = { parent: 'body', overlayOpacity: 85, id: 'modal', content: null, width: 800, height: 600, modalClassName: 'modal-window', imageClassName: 'modal-image', closeClassName: 'close-window', overlayClassName: 'modal-overlay', src: function (sender) { return jQuery(sender).attr('href'); } } })(jQuery);