(function ($module) {
    "use strict";

    $module.extend({
        modal: function () {

            if (!(this instanceof jTime.ui.modal)) {
                return new jTime.ui.modal(arguments[0]);
            }

            var
                self = this,
                args = arguments[0],
                $ = jQuery,
                body = $("body"),
                time = 0,
                wrapperModal,
                modalMask,
                modal,
                header,
                btnClose,
                content,

                setButtonsAction = function () {
                    $(document).keydown(function (e) {
                        if (e.keyCode === 27) {
                            self.hide();
                        }
                    });

                    btnClose.click(function (e) {
                        self.close();
                    });

                },

                observeContent = function () {
                    // debugger
                    // talvez a solução é verificar se um observer para este objeto já não foi criado.
                    jTime(content[0]).observe({
                        config: {
                            childList: true
                        },
                        done: function () {
                            wrapperModal.css("zIndex", 0);
                            modalMask
                                .replaceToggleClass("basicss-transparent",
                                    "basicss-opacity-transition");
                            modal.show();

                        }
                    });
                },

                create = function () {
                    wrapperModal = $("<div></div>")
                        .addClass("jtime-ui-wrapper-modal");
                    modalMask = $("<div></div>")
                        .addClass("jtime-ui-modal-mask basicss-fixed basicss-transparent");
                    modal = $("<div></div>").addClass("jtime-ui-modal basicss-hidden");
                    header = $("<div></div>").addClass("jtime-ui-modal-header");
                    btnClose = $("<a href=\"#\"></a>")
                        .addClass("jtime-ui-modal-btn-close button");
                    content = $("<div></div>").addClass("jtime-ui-modal-content");

                    body.append(wrapperModal);

                    wrapperModal
                        .append(modalMask)
                        .append(modal);

                    modal
                        .append(header)
                        .css({
                            "max-height": $(document).height(),
                            "max-width": $(window).width()
                        });

                    header.append(btnClose);
                    modal.append(content);

                    setButtonsAction();

                    if (args.url) {
                        jTime.ajax.get({
                            url: args.url,
                            readyStateChange: function (xhr) {
                                if (args.load) {
                                    args.load(modal, xhr);
                                }
                            }
                        }).done(function (answer) {
                            content.append(answer);
                            modal.centralizeOn($(document));
                        })
                    }

                    // observeContent();

                };

            if ($(".jtime-ui-wrapper-modal").length === 0) {
                create();
            }

            observeContent();

            // definitions
            this.close = function () {
                modal.hide();

                modalMask.replaceToggleClass("basicss-transparent", "basicss-opacity-transition");

                time = parseFloat(
                    modalMask.css("transition-duration")
                ) * 1000;
                setTimeout(function () {
                    wrapperModal.remove();
                }, time);
            }

            this.hide = function () {
                modal.hide();

                modalMask.replaceToggleClass("basicss-transparent", "basicss-opacity-transition");

                wrapperModal.css("zIndex", -1);
            }

            return self;
        }
    });

})(jTime.ui);

@@ -34,16 +34,514 @@
 rict%22;%0A%0A
+    var%0A        // private static attrs%0A        // attrs = %7B%0A        //     body: $(%22body%22),%0A        //     instance: null,%0A        //     wrapperModal: null,%0A        //     modalMask: null,%0A        //     modal: null,%0A        //     header: null,%0A        //     btnClose: null,%0A        //     content: null%0A        // %7D;%0A%0A        instance = null,%0A        wrapperModal = null,%0A        modalMask = null,%0A        modal = null,%0A        header = null,%0A        btnClose = null,%0A        content = null;%0A%0A
     $mod
@@ -652,22 +652,70 @@
         
-return
+if (!instance) %7B%0A                    return instance =
  new jTi
@@ -741,16 +741,34 @@
 ts%5B0%5D);%0A
+                %7D%0A
         
@@ -947,163 +947,8 @@
 = 0,
-%0A                wrapperModal,%0A                modalMask,%0A                modal,%0A                header,%0A                btnClose,%0A                content,
 %0A%0A  
@@ -1373,40 +1373,8 @@
 ) %7B%0A
-                    // debugger%0A
     

resolve parte do problema