﻿(function(b) {
    var a =
		{ width: 800, height: 600, overlayOpacity: 0.85, id: "modal", src: function(c) {
		    return jQuery(c).attr("href")
		}, fadeInSpeed: 0, fadeOutSpeed: 0
		};
    b.modal = function(c) {
        return _modal(this, c)
    };
    b.modal.open = function() {
        _modal.open()
    };
    b.modal.close = function() {
        _modal.close()
    };
    b.fn.modal = function(c) {
        return _modal(this, c)
    };
    _modal = function(c, d) {
        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 = b.extend({}, options, _defaults);
        this.options = b.extend({}, options, a);
        this.options = b.extend({}, options, d);
        this.close = function() {
            jQuery("." + options.modalClassName + ", ." + options.overlayClassName).fadeOut(a.fadeOutSpeed, function() {
                jQuery(this).unbind().remove()
            })
        };
        this.open = function() {

            if (typeof options.src == "function") {
                options.src = options.src(c)
            }
            else {
                options.src = options.src || _defaults.src(c)
            }
            var e = /^.+\.((jpg)|(gif)|(jpeg)|(png)|(jpg))$/i;
            var f = "";
            if (e.test(options.src)) {
                f = '<div class="' + options.imageClassName + '"><img src="' + options.src + '"/></div>'
            }
            else {
                f = '<iframe width="' + options.width + '" height="' + options.height + '" frameborder="0" scrolling="no" allowtransparency="true" src="' + options.src + '">&lt/iframe>'
            }
            options.content = options.content || f;

            if (jQuery("." + options.modalClassName).length && jQuery("." + options.overlayClassName).length) {
                jQuery("." + options.modalClassName).html(options.content)
            }
            else {
                $overlay = jQuery((_isIE6()) ? '<iframe src="BLOCKED SCRIPT\'&lt;html&gt;&lt;/html&gt;\';" scrolling="no" frameborder="0" class="' + options.overlayClassName + '"></iframe><div class="' + options.overlayClassName + '"></div>' : '<div class="' + options.overlayClassName + '"></div>');
                $overlay.hide().appendTo(options.parent);
                $modal = jQuery('<div id="' + options.id + '" class="' + options.modalClassName + '" style="width:' + options.width + "px; height:" + options.height + "px; margin-top:-" + (options.height / 2) + "px; margin-left:-" + (options.width / 2) + 'px;">' + options.content + "</div>");
                $modal.hide().appendTo(options.parent);
                $close = jQuery('<a class="' + options.closeClassName + '"></a>');
                $close.appendTo($modal);
                var g = _getOpacity($overlay.not("iframe")) || options.overlayOpacity; $overlay.fadeTo(0, 0).show().not("iframe").fadeTo(a.fadeInSpeed, g);
                $modal.fadeIn(a.fadeInSpeed);
                $close.click(function() {
                    jQuery.modal({modalClassName:options.modalClassName}).close()
                });
                $overlay.click(function() {
                    jQuery.modal({modalClassName:options.modalClassName}).close()
                })
            }
        };
        return this
    };
    _isIE6 = function() {
        if (document.all && document.getElementById)
        { if (document.compatMode && !window.XMLHttpRequest) { return true } }
        return false
    };
    _getOpacity = function(c) {
        $sender = jQuery(c);
        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(c) {
		        return jQuery(c).attr("href")
		    }
		}
})
(jQuery);
