1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
//my_library.js
(function($, window, document, undefined) {

    var App = function(module_name, properties){
        return new App.core.init(module_name, properties);
    };

    var App = (function(){
        App.core = App.prototype = {
            init: function(n, p){
                var self = this;

                if (p){
		    $(function(){
		       self.modules[n] = p;
		       // In case it needs initialization
		       try{
		           self.modules[n].init();
		       }
		           catch(e){ }
		    });
		}
                else if(n && !p) {
                    return self.get(n);
                }
                return self; 
            },
            get: function(n){
                return this.modules[n];
            },
            modules: {}
        };

        App.core.init.prototype = App.prototype;   
        return window.X$ = App;
    })();

})(jQuery, this, this.document);