﻿// Lucidia Modal Multiple jQuery Plugin
// Written  by Scott Elgie & Jason McBride Oct 2010

(function ($) {

    $.fn.extend({

        lucidiaModalMultiple: function (options) {

            // Default options / values
            var defaults = {
                disableEsc: false,
                animatePopup: false
            }

            var options = $.extend(defaults, options);

            return this.each(function () {

                var Modal = {
                    $modalContainer: null,
                    $modalContent: null,
                    $mask: null,
                    init: function () {

                        this.$modalContainer = $("#modalMultiple");
                        this.$modalContent = $("#modalMultiple-content");
                        this.$mask = $("#modalMultiplemask");

                        // listeners
                        $("a.trigger-modal").click(this.onModalTriggerClick);


                        $("#modalMultiple-close").click(this.onClose);

                        $("*").keyup(this.onPageKeyup);

                    },
                    onModalTriggerClick: function (e) {

                        e.preventDefault();

                        // fill screen with mask
                       
                        Modal.$mask.show();
                        Modal.$mask.css({ width: $(window).width(), height: $(document).height() }).fadeTo(0, 0.7);

                        // show
                        var containerHeight = Modal.$modalContainer.height(),
                         containerWidth = Modal.$modalContainer.width();

                        if (options.animatePopup == true)
                            //Modal.$modalContainer.slideDown().css({ top: $(window).height() / 4 + $(window).scrollTop() - containerHeight / 4, left: $(window).width() / 2 - containerWidth / 2 });
                            Modal.$modalContainer.slideDown().css({ top: 40, left: $(window).width() / 2 - containerWidth / 2 });
                        else
                           // Modal.$modalContainer.show().css({ top: $(window).height() / 4 + $(window).scrollTop() - containerHeight / 4, left: $(window).width() / 2 - containerWidth / 2 });
                            Modal.$modalContainer.show().css({ top: 40, left: $(window).width() / 2 - containerWidth / 2 });
                    },
                    onPageKeyup: function (e) {
                        if (e.keyCode === 27 && options.disableEsc == false) {
                            Modal.onClose();
                        }
                    },
                    onClose: function () {
                        if (options.animatePopup == true)
                            Modal.$modalContainer.slideUp();
                        else
                            Modal.$modalContainer.hide();

                        Modal.$mask.hide();
                        return false;
                    }
                };

                Modal.init();
            });
        }
    });

})(jQuery);  


