﻿(function (b) {
    var a = {
        width: 800,
        height: 600,
        overlayOpacity: 0.50,
        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;"><div class="innerModal">&nbsp;</div>' + 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().close()
                });
                $overlay.click(function () {
                    //jQuery.modal().close()// skpaik If need to click on mask for hide modal window, then enable this line
                })
            }
        };
        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);
