tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

MochiKit.js (4634B)


      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 }