1// MooTools: the javascript framework. 2// Load this file's selection again by visiting: http://mootools.net/more/00aebfac925b03c956ebbcad8266ef49 3// Or build this file again with packager using: packager build More/Fx.Elements More/Assets 4/* 5--- 6copyrights: 7 - [MooTools](http://mootools.net) 8 9licenses: 10 - [MIT License](http://mootools.net/license.txt) 11... 12*/ 13MooTools.More = { version: '1.3.2.1', build: 'e586bcd2496e9b22acfde32e12f84d49ce09e59d' }; 14Fx.Elements = new Class({ 15 Extends: Fx.CSS, 16 initialize: function (b, a) { 17 this.elements = this.subject = $$(b); 18 this.parent(a); 19 }, 20 compute: function (g, h, j) { 21 var c = {}; 22 for (var d in g) { 23 var a = g[d], 24 e = h[d], 25 f = (c[d] = {}); 26 for (var b in a) { 27 f[b] = this.parent(a[b], e[b], j); 28 } 29 } 30 return c; 31 }, 32 set: function (b) { 33 for (var c in b) { 34 if (!this.elements[c]) { 35 continue; 36 } 37 var a = b[c]; 38 for (var d in a) { 39 this.render(this.elements[c], d, a[d], this.options.unit); 40 } 41 } 42 return this; 43 }, 44 start: function (c) { 45 if (!this.check(c)) { 46 return this; 47 } 48 var h = {}, 49 j = {}; 50 for (var d in c) { 51 if (!this.elements[d]) { 52 continue; 53 } 54 var f = c[d], 55 a = (h[d] = {}), 56 g = (j[d] = {}); 57 for (var b in f) { 58 var e = this.prepare(this.elements[d], b, f[b]); 59 a[b] = e.from; 60 g[b] = e.to; 61 } 62 } 63 return this.parent(h, j); 64 }, 65}); 66var Asset = { 67 javascript: function (f, c) { 68 if (!c) { 69 c = {}; 70 } 71 var a = new Element('script', { src: f, type: 'text/javascript' }), 72 g = c.document || document, 73 b = 0, 74 d = c.onload || c.onLoad; 75 var e = d 76 ? function () { 77 if (++b == 1) { 78 d.call(this); 79 } 80 } 81 : function () {}; 82 delete c.onload; 83 delete c.onLoad; 84 delete c.document; 85 return a 86 .addEvents({ 87 load: e, 88 readystatechange: function () { 89 if (['loaded', 'complete'].contains(this.readyState)) { 90 e.call(this); 91 } 92 }, 93 }) 94 .set(c) 95 .inject(g.head); 96 }, 97 css: function (d, a) { 98 if (!a) { 99 a = {}; 100 } 101 var b = new Element('link', { rel: 'stylesheet', media: 'screen', type: 'text/css', href: d }); 102 var c = a.onload || a.onLoad, 103 e = a.document || document; 104 delete a.onload; 105 delete a.onLoad; 106 delete a.document; 107 if (c) { 108 b.addEvent('load', c); 109 } 110 return b.set(a).inject(e.head); 111 }, 112 image: function (c, b) { 113 if (!b) { 114 b = {}; 115 } 116 var d = new Image(), 117 a = document.id(d) || new Element('img'); 118 ['load', 'abort', 'error'].each(function (e) { 119 var g = 'on' + e, 120 f = 'on' + e.capitalize(), 121 h = b[g] || b[f] || function () {}; 122 delete b[f]; 123 delete b[g]; 124 d[g] = function () { 125 if (!d) { 126 return; 127 } 128 if (!a.parentNode) { 129 a.width = d.width; 130 a.height = d.height; 131 } 132 d = d.onload = d.onabort = d.onerror = null; 133 h.delay(1, a, a); 134 a.fireEvent(e, a, 1); 135 }; 136 }); 137 d.src = a.src = c; 138 if (d && d.complete) { 139 d.onload.delay(1); 140 } 141 return a.set(b); 142 }, 143 images: function (c, b) { 144 c = Array.from(c); 145 var d = function () {}, 146 a = 0; 147 b = Object.merge({ onComplete: d, onProgress: d, onError: d, properties: {} }, b); 148 return new Elements( 149 c.map(function (f, e) { 150 return Asset.image( 151 f, 152 Object.append(b.properties, { 153 onload: function () { 154 a++; 155 b.onProgress.call(this, a, e, f); 156 if (a == c.length) { 157 b.onComplete(); 158 } 159 }, 160 onerror: function () { 161 a++; 162 b.onError.call(this, a, e, f); 163 if (a == c.length) { 164 b.onComplete(); 165 } 166 }, 167 }), 168 ); 169 }), 170 ); 171 }, 172};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.