Initial check-in
[dygraphs.git] / mochikit_v14 / MochiKit / MochiKit.js
1 /***
2
3 MochiKit.MochiKit 1.4
4
5 See <http://mochikit.com/> for documentation, downloads, license, etc.
6
7 (c) 2005 Bob Ippolito. All rights Reserved.
8
9 ***/
10
11 if (typeof(MochiKit) == 'undefined') {
12 MochiKit = {};
13 }
14
15 if (typeof(MochiKit.MochiKit) == 'undefined') {
16 /** @id MochiKit.MochiKit */
17 MochiKit.MochiKit = {};
18 }
19
20 MochiKit.MochiKit.NAME = "MochiKit.MochiKit";
21 MochiKit.MochiKit.VERSION = "1.4";
22 MochiKit.MochiKit.__repr__ = function () {
23 return "[" + this.NAME + " " + this.VERSION + "]";
24 };
25
26 /** @id MochiKit.MochiKit.toString */
27 MochiKit.MochiKit.toString = function () {
28 return this.__repr__();
29 };
30
31 /** @id MochiKit.MochiKit.SUBMODULES */
32 MochiKit.MochiKit.SUBMODULES = [
33 "Base",
34 "Iter",
35 "Logging",
36 "DateTime",
37 "Format",
38 "Async",
39 "DOM",
40 "Selector",
41 "Style",
42 "LoggingPane",
43 "Color",
44 "Signal",
45 "Position",
46 "Visual"
47 ];
48
49 if (typeof(JSAN) != 'undefined' || typeof(dojo) != 'undefined') {
50 if (typeof(dojo) != 'undefined') {
51 dojo.provide('MochiKit.MochiKit');
52 dojo.require("MochiKit.*");
53 }
54 if (typeof(JSAN) != 'undefined') {
55 (function (lst) {
56 for (var i = 0; i < lst.length; i++) {
57 JSAN.use("MochiKit." + lst[i], []);
58 }
59 })(MochiKit.MochiKit.SUBMODULES);
60 }
61 (function () {
62 var extend = MochiKit.Base.extend;
63 var self = MochiKit.MochiKit;
64 var modules = self.SUBMODULES;
65 var EXPORT = [];
66 var EXPORT_OK = [];
67 var EXPORT_TAGS = {};
68 var i, k, m, all;
69 for (i = 0; i < modules.length; i++) {
70 m = MochiKit[modules[i]];
71 extend(EXPORT, m.EXPORT);
72 extend(EXPORT_OK, m.EXPORT_OK);
73 for (k in m.EXPORT_TAGS) {
74 EXPORT_TAGS[k] = extend(EXPORT_TAGS[k], m.EXPORT_TAGS[k]);
75 }
76 all = m.EXPORT_TAGS[":all"];
77 if (!all) {
78 all = extend(null, m.EXPORT, m.EXPORT_OK);
79 }
80 var j;
81 for (j = 0; j < all.length; j++) {
82 k = all[j];
83 self[k] = m[k];
84 }
85 }
86 self.EXPORT = EXPORT;
87 self.EXPORT_OK = EXPORT_OK;
88 self.EXPORT_TAGS = EXPORT_TAGS;
89 }());
90
91 } else {
92 if (typeof(MochiKit.__compat__) == 'undefined') {
93 MochiKit.__compat__ = true;
94 }
95 (function () {
96 if (typeof(document) == "undefined") {
97 return;
98 }
99 var scripts = document.getElementsByTagName("script");
100 var kXULNSURI = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
101 var base = null;
102 var baseElem = null;
103 var allScripts = {};
104 var i;
105 for (i = 0; i < scripts.length; i++) {
106 var src = scripts[i].getAttribute("src");
107 if (!src) {
108 continue;
109 }
110 allScripts[src] = true;
111 if (src.match(/MochiKit.js$/)) {
112 base = src.substring(0, src.lastIndexOf('MochiKit.js'));
113 baseElem = scripts[i];
114 }
115 }
116 if (base === null) {
117 return;
118 }
119 var modules = MochiKit.MochiKit.SUBMODULES;
120 for (var i = 0; i < modules.length; i++) {
121 if (MochiKit[modules[i]]) {
122 continue;
123 }
124 var uri = base + modules[i] + '.js';
125 if (uri in allScripts) {
126 continue;
127 }
128 if (document.documentElement &&
129 document.documentElement.namespaceURI == kXULNSURI) {
130 // XUL
131 var s = document.createElementNS(kXULNSURI, 'script');
132 s.setAttribute("id", "MochiKit_" + base + modules[i]);
133 s.setAttribute("src", uri);
134 s.setAttribute("type", "application/x-javascript");
135 baseElem.parentNode.appendChild(s);
136 } else {
137 // HTML
138 /*
139 DOM can not be used here because Safari does
140 deferred loading of scripts unless they are
141 in the document or inserted with document.write
142
143 This is not XHTML compliant. If you want XHTML
144 compliance then you must use the packed version of MochiKit
145 or include each script individually (basically unroll
146 these document.write calls into your XHTML source)
147
148 */
149 document.write('<script src="' + uri +
150 '" type="text/javascript"></script>');
151 }
152 };
153 })();
154 }