michael@0: /*** michael@0: michael@0: MochiKit.MochiKit 1.4 michael@0: michael@0: See for documentation, downloads, license, etc. michael@0: michael@0: (c) 2005 Bob Ippolito. All rights Reserved. michael@0: michael@0: ***/ michael@0: michael@0: if (typeof(MochiKit) == 'undefined') { michael@0: MochiKit = {}; michael@0: } michael@0: michael@0: if (typeof(MochiKit.MochiKit) == 'undefined') { michael@0: /** @id MochiKit.MochiKit */ michael@0: MochiKit.MochiKit = {}; michael@0: } michael@0: michael@0: MochiKit.MochiKit.NAME = "MochiKit.MochiKit"; michael@0: MochiKit.MochiKit.VERSION = "1.4"; michael@0: MochiKit.MochiKit.__repr__ = function () { michael@0: return "[" + this.NAME + " " + this.VERSION + "]"; michael@0: }; michael@0: michael@0: /** @id MochiKit.MochiKit.toString */ michael@0: MochiKit.MochiKit.toString = function () { michael@0: return this.__repr__(); michael@0: }; michael@0: michael@0: /** @id MochiKit.MochiKit.SUBMODULES */ michael@0: MochiKit.MochiKit.SUBMODULES = [ michael@0: "Base", michael@0: "Iter", michael@0: "Logging", michael@0: "DateTime", michael@0: "Format", michael@0: "Async", michael@0: "DOM", michael@0: "Style", michael@0: "LoggingPane", michael@0: "Color", michael@0: "Signal", michael@0: "Visual" michael@0: ]; michael@0: michael@0: if (typeof(JSAN) != 'undefined' || typeof(dojo) != 'undefined') { michael@0: if (typeof(dojo) != 'undefined') { michael@0: dojo.provide('MochiKit.MochiKit'); michael@0: dojo.require("MochiKit.*"); michael@0: } michael@0: if (typeof(JSAN) != 'undefined') { michael@0: (function (lst) { michael@0: for (var i = 0; i < lst.length; i++) { michael@0: JSAN.use("MochiKit." + lst[i], []); michael@0: } michael@0: })(MochiKit.MochiKit.SUBMODULES); michael@0: } michael@0: (function () { michael@0: var extend = MochiKit.Base.extend; michael@0: var self = MochiKit.MochiKit; michael@0: var modules = self.SUBMODULES; michael@0: var EXPORT = []; michael@0: var EXPORT_OK = []; michael@0: var EXPORT_TAGS = {}; michael@0: var i, k, m, all; michael@0: for (i = 0; i < modules.length; i++) { michael@0: m = MochiKit[modules[i]]; michael@0: extend(EXPORT, m.EXPORT); michael@0: extend(EXPORT_OK, m.EXPORT_OK); michael@0: for (k in m.EXPORT_TAGS) { michael@0: EXPORT_TAGS[k] = extend(EXPORT_TAGS[k], m.EXPORT_TAGS[k]); michael@0: } michael@0: all = m.EXPORT_TAGS[":all"]; michael@0: if (!all) { michael@0: all = extend(null, m.EXPORT, m.EXPORT_OK); michael@0: } michael@0: var j; michael@0: for (j = 0; j < all.length; j++) { michael@0: k = all[j]; michael@0: self[k] = m[k]; michael@0: } michael@0: } michael@0: self.EXPORT = EXPORT; michael@0: self.EXPORT_OK = EXPORT_OK; michael@0: self.EXPORT_TAGS = EXPORT_TAGS; michael@0: }()); michael@0: michael@0: } else { michael@0: if (typeof(MochiKit.__compat__) == 'undefined') { michael@0: MochiKit.__compat__ = true; michael@0: } michael@0: (function () { michael@0: if (typeof(document) == "undefined") { michael@0: return; michael@0: } michael@0: var scripts = document.getElementsByTagName("script"); michael@0: var kXULNSURI = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"; michael@0: var base = null; michael@0: var baseElem = null; michael@0: var allScripts = {}; michael@0: var i; michael@0: for (i = 0; i < scripts.length; i++) { michael@0: var src = scripts[i].getAttribute("src"); michael@0: if (!src) { michael@0: continue; michael@0: } michael@0: allScripts[src] = true; michael@0: if (src.match(/MochiKit.js$/)) { michael@0: base = src.substring(0, src.lastIndexOf('MochiKit.js')); michael@0: baseElem = scripts[i]; michael@0: } michael@0: } michael@0: if (base === null) { michael@0: return; michael@0: } michael@0: var modules = MochiKit.MochiKit.SUBMODULES; michael@0: for (var i = 0; i < modules.length; i++) { michael@0: if (MochiKit[modules[i]]) { michael@0: continue; michael@0: } michael@0: var uri = base + modules[i] + '.js'; michael@0: if (uri in allScripts) { michael@0: continue; michael@0: } michael@0: if (document.documentElement && michael@0: document.documentElement.namespaceURI == kXULNSURI) { michael@0: // XUL michael@0: var s = document.createElementNS(kXULNSURI, 'script'); michael@0: s.setAttribute("id", "MochiKit_" + base + modules[i]); michael@0: s.setAttribute("src", uri); michael@0: s.setAttribute("type", "application/x-javascript"); michael@0: baseElem.parentNode.appendChild(s); michael@0: } else { michael@0: // HTML michael@0: /* michael@0: DOM can not be used here because Safari does michael@0: deferred loading of scripts unless they are michael@0: in the document or inserted with document.write michael@0: michael@0: This is not XHTML compliant. If you want XHTML michael@0: compliance then you must use the packed version of MochiKit michael@0: or include each script individually (basically unroll michael@0: these document.write calls into your XHTML source) michael@0: michael@0: */ michael@0: document.write(''); michael@0: } michael@0: }; michael@0: })(); michael@0: }