namibia
df0489e1eeeeab5a9bd44e1d84fce49924fe1bac
namibia / public / js / vendor / MooTools.js
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 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 |
var APE = { Config: { identifier: 'ape', init: true, frequency: 0, scripts: [] } }; APE.Client = new Class({ eventProxy: [], fireEvent: function(type, args, delay){ return this.core.fireEvent(type, args, delay); }, addEvent: function(type, fn, internal){ var newFn = fn.bind(this), ret = this; if(!$defined(this.core)) this.eventProxy.push([type, fn, internal]); else { ret = this.core.addEvent(type, newFn, internal); this.core.$originalEvents[type] = this.core.$originalEvents[type] || []; this.core.$originalEvents[type][fn] = newFn; } return ret; }, onRaw: function(type, fn, internal) { return this.addEvent('raw_' + type.toLowerCase(), fn, internal); }, removeEvent: function(type, fn) { return this.core.removeEvent(type, fn); }, onCmd: function(type, fn, internal) { return this.addEvent('cmd_' + type.toLowerCase(), fn, internal); }, onError: function(type, fn, internal) { return this.addEvent('error_' + type, fn, internal); }, load: function(config){ config = $merge({}, APE.Config, config); // Init function called by core to init core variable config.init = function(core){ this.core = core; for(var i = 0; i < this.eventProxy.length; i++){ this.addEvent.apply(this, this.eventProxy[i]); } }.bind(this); //set document.domain if (config.transport != 2) { if (config.domain != 'auto') document.domain = config.domain; if (config.domain == 'auto') document.domain = document.domain; } var tmp = JSON.decode(Cookie.read('APE_Cookie'), {'domain': document.domain}); if(tmp) { config.frequency = tmp.frequency.toInt(); } else { tmp = {'frequency': 0}; } tmp.frequency = config.frequency + 1; Cookie.write('APE_Cookie', JSON.encode(tmp), {'domain': document.domain}); var iframe = new Element('iframe', { id: 'ape_' + config.identifier, styles: { display: 'none', position: 'absolute', left: -300, top: -300 } }).inject(document.body); iframe.addEvent('load', function() { if (!iframe.contentWindow.APE) setTimeout(iframe.onload, 100);//Sometimes IE fire the onload event, but the iframe is not loaded -_- else iframe.contentWindow.APE.init(config); }); if (config.transport == 2) {//Special case for JSONP var doc = iframe.contentDocument; if (!doc) doc = iframe.contentWindow.document; //If the content of the iframe is created in DOM, the status bar will always load... //using document.write() is the only way to avoid status bar loading with JSONP doc.open(); var theHtml = '<html><head>'; for (var i = 0; i < config.scripts.length; i++) { theHtml += '<script src="' + config.scripts[i] + '"></script>'; } theHtml += '</head><body></body></html>'; doc.write(theHtml); doc.close(); } else { //iframe.set('src', (config.secure ? 'https' : 'http') + '://' + config.frequency + '.' + config.server + '/?[{"cmd":"script","params":{"domain":"' + document.domain + '","scripts":["' + config.scripts.join('","') + '"]}}]'); iframe.set('src', (config.secure ? 'https' : 'http') + '://' + config.server + '/?[{"cmd":"script","params":{"domain":"' + document.domain + '","scripts":["' + config.scripts.join('","') + '"]}}]'); if (Browser.Engine.gecko) { // Firefox fix, see bug #356558 // https://bugzilla.mozilla.org/show_bug.cgi?id=356558 iframe.contentWindow.location.href = iframe.get('src'); } } } }); |
Commits for namibiapublic/js/vendor/MooTools.js
Revision | Author | Commited | Message |
---|---|---|---|
df0489 ... | Mark | Fri 14 Oct, 2016 10:01:00 +0000 | initial commit |