5 See <http://mochikit.com/> for documentation, downloads, license, etc.
7 (c) 2005 Bob Ippolito. All rights Reserved.
11 if (typeof(MochiKit
) == 'undefined') {
15 if (typeof(MochiKit
.MochiKit
) == 'undefined') {
16 /** @id MochiKit.MochiKit */
17 MochiKit
.MochiKit
= {};
20 MochiKit
.MochiKit
.NAME
= "MochiKit.MochiKit";
21 MochiKit
.MochiKit
.VERSION
= "1.4";
22 MochiKit
.MochiKit
.__repr__
= function () {
23 return "[" + this.NAME
+ " " + this.VERSION
+ "]";
26 /** @id MochiKit.MochiKit.toString */
27 MochiKit
.MochiKit
.toString
= function () {
28 return this.__repr__();
31 /** @id MochiKit.MochiKit.SUBMODULES */
32 MochiKit
.MochiKit
.SUBMODULES
= [
49 if (typeof(JSAN
) != 'undefined' || typeof(dojo
) != 'undefined') {
50 if (typeof(dojo
) != 'undefined') {
51 dojo
.provide('MochiKit.MochiKit');
52 dojo
.require("MochiKit.*");
54 if (typeof(JSAN
) != 'undefined') {
56 for (var i
= 0; i
< lst
.length
; i
++) {
57 JSAN
.use("MochiKit." + lst
[i
], []);
59 })(MochiKit
.MochiKit
.SUBMODULES
);
62 var extend
= MochiKit
.Base
.extend
;
63 var self
= MochiKit
.MochiKit
;
64 var modules
= self
.SUBMODULES
;
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
]);
76 all
= m
.EXPORT_TAGS
[":all"];
78 all
= extend(null, m
.EXPORT
, m
.EXPORT_OK
);
81 for (j
= 0; j
< all
.length
; j
++) {
87 self
.EXPORT_OK
= EXPORT_OK
;
88 self
.EXPORT_TAGS
= EXPORT_TAGS
;
92 if (typeof(MochiKit
.__compat__
) == 'undefined') {
93 MochiKit
.__compat__
= true;
96 if (typeof(document
) == "undefined") {
99 var scripts
= document
.getElementsByTagName("script");
100 var kXULNSURI
= "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
105 for (i
= 0; i
< scripts
.length
; i
++) {
106 var src
= scripts
[i
].getAttribute("src");
110 allScripts
[src
] = true;
111 if (src
.match(/MochiKit.js$/)) {
112 base
= src
.substring(0, src
.lastIndexOf('MochiKit.js'));
113 baseElem
= scripts
[i
];
119 var modules
= MochiKit
.MochiKit
.SUBMODULES
;
120 for (var i
= 0; i
< modules
.length
; i
++) {
121 if (MochiKit
[modules
[i
]]) {
124 var uri
= base
+ modules
[i
] + '.js';
125 if (uri
in allScripts
) {
128 if (document
.documentElement
&&
129 document
.documentElement
.namespaceURI
== kXULNSURI
) {
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
);
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
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)
149 document
.write('<script src="' + uri
+
150 '" type="text/javascript"></script>');