Fix #5681 - fix bootstrap4 detection
[roojs1] / docs / src / Roo_lib_Event.js.html
1 <html><head><title>Roo/lib/Event.js</title><link rel="stylesheet" type="text/css" href="../../css/highlight-js.css"/></head><body class="highlightpage"><code class="jsdoc-pretty"><span class="jsdoc-comment">/*
2  * Portions of this file are based on pieces of Yahoo User Interface Library
3  * Copyright (c) 2007, Yahoo! Inc. All rights reserved.
4  * YUI licensed under the BSD License:
5  * http://developer.yahoo.net/yui/license.txt
6  * &lt;script type=&quot;text/javascript&quot;&gt;
7  *
8  */
9
10 </span><span class="jsdoc-var">Roo.lib.Event </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() {
11     </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">loadComplete </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
12     </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">listeners </span><span class="jsdoc-syntax">= [];
13     </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">unloadListeners </span><span class="jsdoc-syntax">= [];
14     </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">retryCount </span><span class="jsdoc-syntax">= 0;
15     </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">onAvailStack </span><span class="jsdoc-syntax">= [];
16     </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">counter </span><span class="jsdoc-syntax">= 0;
17     </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">lastError </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">;
18
19     </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">{
20         </span><span class="jsdoc-var">POLL_RETRYS</span><span class="jsdoc-syntax">: 200,
21         </span><span class="jsdoc-var">POLL_INTERVAL</span><span class="jsdoc-syntax">: 20,
22         </span><span class="jsdoc-var">EL</span><span class="jsdoc-syntax">: 0,
23         </span><span class="jsdoc-var">TYPE</span><span class="jsdoc-syntax">: 1,
24         </span><span class="jsdoc-var">FN</span><span class="jsdoc-syntax">: 2,
25         </span><span class="jsdoc-var">WFN</span><span class="jsdoc-syntax">: 3,
26         </span><span class="jsdoc-var">OBJ</span><span class="jsdoc-syntax">: 3,
27         </span><span class="jsdoc-var">ADJ_SCOPE</span><span class="jsdoc-syntax">: 4,
28         </span><span class="jsdoc-var">_interval</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">,
29
30         </span><span class="jsdoc-var">startInterval</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() {
31             </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this._interval</span><span class="jsdoc-syntax">) {
32                 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">self </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">;
33                 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">callback </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() {
34                     </span><span class="jsdoc-var">self._tryPreloadAttach</span><span class="jsdoc-syntax">();
35                 };
36                 </span><span class="jsdoc-var">this._interval </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">setInterval</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">callback</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.POLL_INTERVAL</span><span class="jsdoc-syntax">);
37
38             }
39         },
40
41         </span><span class="jsdoc-var">onAvailable</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">p_id</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">p_fn</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">p_obj</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">p_override</span><span class="jsdoc-syntax">) {
42             </span><span class="jsdoc-var">onAvailStack.push</span><span class="jsdoc-syntax">({ </span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">:         </span><span class="jsdoc-var">p_id</span><span class="jsdoc-syntax">,
43                 </span><span class="jsdoc-var">fn</span><span class="jsdoc-syntax">:         </span><span class="jsdoc-var">p_fn</span><span class="jsdoc-syntax">,
44                 </span><span class="jsdoc-var">obj</span><span class="jsdoc-syntax">:        </span><span class="jsdoc-var">p_obj</span><span class="jsdoc-syntax">,
45                 </span><span class="jsdoc-var">override</span><span class="jsdoc-syntax">:   </span><span class="jsdoc-var">p_override</span><span class="jsdoc-syntax">,
46                 </span><span class="jsdoc-var">checkReady</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false    </span><span class="jsdoc-syntax">});
47
48             </span><span class="jsdoc-var">retryCount </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.POLL_RETRYS</span><span class="jsdoc-syntax">;
49             </span><span class="jsdoc-var">this.startInterval</span><span class="jsdoc-syntax">();
50         },
51
52
53         </span><span class="jsdoc-var">addListener</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">eventName</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">fn</span><span class="jsdoc-syntax">) {
54             </span><span class="jsdoc-var">el </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.getDom</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">);
55             </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">el </span><span class="jsdoc-syntax">|| !</span><span class="jsdoc-var">fn</span><span class="jsdoc-syntax">) {
56                 </span><span class="jsdoc-keyword">return false</span><span class="jsdoc-syntax">;
57             }
58
59             </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;unload&quot; </span><span class="jsdoc-syntax">== </span><span class="jsdoc-var">eventName</span><span class="jsdoc-syntax">) {
60                 </span><span class="jsdoc-var">unloadListeners</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">unloadListeners.length</span><span class="jsdoc-syntax">] =
61                 [</span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">eventName</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">fn</span><span class="jsdoc-syntax">];
62                 </span><span class="jsdoc-keyword">return true</span><span class="jsdoc-syntax">;
63             }
64
65             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">wrappedFn </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">) {
66                 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">fn</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.lib.Event.getEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">));
67             };
68
69             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">li </span><span class="jsdoc-syntax">= [</span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">eventName</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">fn</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">wrappedFn</span><span class="jsdoc-syntax">];
70
71             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">index </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">listeners.length</span><span class="jsdoc-syntax">;
72             </span><span class="jsdoc-var">listeners</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-var">li</span><span class="jsdoc-syntax">;
73
74             </span><span class="jsdoc-var">this.doAdd</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">eventName</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">wrappedFn</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">);
75             </span><span class="jsdoc-keyword">return true</span><span class="jsdoc-syntax">;
76
77         },
78
79
80         </span><span class="jsdoc-var">removeListener</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">eventName</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">fn</span><span class="jsdoc-syntax">) {
81             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">len</span><span class="jsdoc-syntax">;
82
83             </span><span class="jsdoc-var">el </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.getDom</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">);
84
85             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">fn</span><span class="jsdoc-syntax">) {
86                 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.purgeElement</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">eventName</span><span class="jsdoc-syntax">);
87             }
88
89
90             </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;unload&quot; </span><span class="jsdoc-syntax">== </span><span class="jsdoc-var">eventName</span><span class="jsdoc-syntax">) {
91
92                 </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= 0,</span><span class="jsdoc-var">len </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">unloadListeners.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">len</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++) {
93                     </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">li </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">unloadListeners</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">];
94                     </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">li </span><span class="jsdoc-syntax">&amp;&amp;
95                         </span><span class="jsdoc-var">li</span><span class="jsdoc-syntax">[0] == </span><span class="jsdoc-var">el </span><span class="jsdoc-syntax">&amp;&amp;
96                         </span><span class="jsdoc-var">li</span><span class="jsdoc-syntax">[1] == </span><span class="jsdoc-var">eventName </span><span class="jsdoc-syntax">&amp;&amp;
97                         </span><span class="jsdoc-var">li</span><span class="jsdoc-syntax">[2] == </span><span class="jsdoc-var">fn</span><span class="jsdoc-syntax">) {
98                         </span><span class="jsdoc-var">unloadListeners.splice</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">, 1);
99                         </span><span class="jsdoc-keyword">return true</span><span class="jsdoc-syntax">;
100                     }
101                 }
102
103                 </span><span class="jsdoc-keyword">return false</span><span class="jsdoc-syntax">;
104             }
105
106             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">cacheItem </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">;
107
108
109             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">index </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">arguments</span><span class="jsdoc-syntax">[3];
110
111             </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;undefined&quot; </span><span class="jsdoc-syntax">== </span><span class="jsdoc-keyword">typeof </span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">) {
112                 </span><span class="jsdoc-var">index </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this._getCacheIndex</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">eventName</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">fn</span><span class="jsdoc-syntax">);
113             }
114
115             </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">index </span><span class="jsdoc-syntax">&gt;= 0) {
116                 </span><span class="jsdoc-var">cacheItem </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">listeners</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">];
117             }
118
119             </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">el </span><span class="jsdoc-syntax">|| !</span><span class="jsdoc-var">cacheItem</span><span class="jsdoc-syntax">) {
120                 </span><span class="jsdoc-keyword">return false</span><span class="jsdoc-syntax">;
121             }
122
123             </span><span class="jsdoc-var">this.doRemove</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">eventName</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">cacheItem</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">this.WFN</span><span class="jsdoc-syntax">], </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">);
124
125             </span><span class="jsdoc-keyword">delete </span><span class="jsdoc-var">listeners</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">][</span><span class="jsdoc-var">this.WFN</span><span class="jsdoc-syntax">];
126             </span><span class="jsdoc-keyword">delete </span><span class="jsdoc-var">listeners</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">][</span><span class="jsdoc-var">this.FN</span><span class="jsdoc-syntax">];
127             </span><span class="jsdoc-var">listeners.splice</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">, 1);
128
129             </span><span class="jsdoc-keyword">return true</span><span class="jsdoc-syntax">;
130
131         },
132
133
134         </span><span class="jsdoc-var">getTarget</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ev</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">resolveTextNode</span><span class="jsdoc-syntax">) {
135             </span><span class="jsdoc-var">ev </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">ev.browserEvent </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">ev</span><span class="jsdoc-syntax">;
136             </span><span class="jsdoc-var">ev </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">ev.touches </span><span class="jsdoc-syntax">? (</span><span class="jsdoc-var">ev.touches</span><span class="jsdoc-syntax">[0] || </span><span class="jsdoc-var">ev.changedTouches</span><span class="jsdoc-syntax">[0] || </span><span class="jsdoc-var">ev </span><span class="jsdoc-syntax">)  : </span><span class="jsdoc-var">ev</span><span class="jsdoc-syntax">;
137             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">t </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">ev.target </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">ev.srcElement</span><span class="jsdoc-syntax">;
138             </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.resolveTextNode</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">t</span><span class="jsdoc-syntax">);
139         },
140
141
142         </span><span class="jsdoc-var">resolveTextNode</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">node</span><span class="jsdoc-syntax">) {
143             </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.isSafari </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">node </span><span class="jsdoc-syntax">&amp;&amp; 3 == </span><span class="jsdoc-var">node.nodeType</span><span class="jsdoc-syntax">) {
144                 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">node.parentNode</span><span class="jsdoc-syntax">;
145             } </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
146                 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">node</span><span class="jsdoc-syntax">;
147             }
148         },
149
150
151         </span><span class="jsdoc-var">getPageX</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ev</span><span class="jsdoc-syntax">) {
152             </span><span class="jsdoc-var">ev </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">ev.browserEvent </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">ev</span><span class="jsdoc-syntax">;
153             </span><span class="jsdoc-var">ev </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">ev.touches </span><span class="jsdoc-syntax">? (</span><span class="jsdoc-var">ev.touches</span><span class="jsdoc-syntax">[0] || </span><span class="jsdoc-var">ev.changedTouches</span><span class="jsdoc-syntax">[0] || </span><span class="jsdoc-var">ev </span><span class="jsdoc-syntax">)  : </span><span class="jsdoc-var">ev</span><span class="jsdoc-syntax">;
154             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">x </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">ev.pageX</span><span class="jsdoc-syntax">;
155             </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">x </span><span class="jsdoc-syntax">&amp;&amp; 0 !== </span><span class="jsdoc-var">x</span><span class="jsdoc-syntax">) {
156                 </span><span class="jsdoc-var">x </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">ev.clientX </span><span class="jsdoc-syntax">|| 0;
157
158                 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.isIE</span><span class="jsdoc-syntax">) {
159                     </span><span class="jsdoc-var">x </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-var">this.getScroll</span><span class="jsdoc-syntax">()[1];
160                 }
161             }
162
163             </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">x</span><span class="jsdoc-syntax">;
164         },
165
166
167         </span><span class="jsdoc-var">getPageY</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ev</span><span class="jsdoc-syntax">) {
168             </span><span class="jsdoc-var">ev </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">ev.browserEvent </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">ev</span><span class="jsdoc-syntax">;
169             </span><span class="jsdoc-var">ev </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">ev.touches </span><span class="jsdoc-syntax">? (</span><span class="jsdoc-var">ev.touches</span><span class="jsdoc-syntax">[0] || </span><span class="jsdoc-var">ev.changedTouches</span><span class="jsdoc-syntax">[0] || </span><span class="jsdoc-var">ev </span><span class="jsdoc-syntax">)  : </span><span class="jsdoc-var">ev</span><span class="jsdoc-syntax">;
170             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">y </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">ev.pageY</span><span class="jsdoc-syntax">;
171             </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">y </span><span class="jsdoc-syntax">&amp;&amp; 0 !== </span><span class="jsdoc-var">y</span><span class="jsdoc-syntax">) {
172                 </span><span class="jsdoc-var">y </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">ev.clientY </span><span class="jsdoc-syntax">|| 0;
173
174                 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.isIE</span><span class="jsdoc-syntax">) {
175                     </span><span class="jsdoc-var">y </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-var">this.getScroll</span><span class="jsdoc-syntax">()[0];
176                 }
177             }
178
179
180             </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">y</span><span class="jsdoc-syntax">;
181         },
182
183
184         </span><span class="jsdoc-var">getXY</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ev</span><span class="jsdoc-syntax">) {
185             </span><span class="jsdoc-var">ev </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">ev.browserEvent </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">ev</span><span class="jsdoc-syntax">;
186             </span><span class="jsdoc-var">ev </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">ev.touches </span><span class="jsdoc-syntax">? (</span><span class="jsdoc-var">ev.touches</span><span class="jsdoc-syntax">[0] || </span><span class="jsdoc-var">ev.changedTouches</span><span class="jsdoc-syntax">[0] || </span><span class="jsdoc-var">ev </span><span class="jsdoc-syntax">)  : </span><span class="jsdoc-var">ev</span><span class="jsdoc-syntax">;
187             </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">this.getPageX</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ev</span><span class="jsdoc-syntax">), </span><span class="jsdoc-var">this.getPageY</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ev</span><span class="jsdoc-syntax">)];
188         },
189
190
191         </span><span class="jsdoc-var">getRelatedTarget</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ev</span><span class="jsdoc-syntax">) {
192             </span><span class="jsdoc-var">ev </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">ev.browserEvent </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">ev</span><span class="jsdoc-syntax">;
193             </span><span class="jsdoc-var">ev </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">ev.touches </span><span class="jsdoc-syntax">? (</span><span class="jsdoc-var">ev.touches</span><span class="jsdoc-syntax">[0] || </span><span class="jsdoc-var">ev.changedTouches</span><span class="jsdoc-syntax">[0] || </span><span class="jsdoc-var">ev </span><span class="jsdoc-syntax">)  : </span><span class="jsdoc-var">ev</span><span class="jsdoc-syntax">;
194             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">t </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">ev.relatedTarget</span><span class="jsdoc-syntax">;
195             </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">t</span><span class="jsdoc-syntax">) {
196                 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ev.type </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">&quot;mouseout&quot;</span><span class="jsdoc-syntax">) {
197                     </span><span class="jsdoc-var">t </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">ev.toElement</span><span class="jsdoc-syntax">;
198                 } </span><span class="jsdoc-keyword">else if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ev.type </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">&quot;mouseover&quot;</span><span class="jsdoc-syntax">) {
199                     </span><span class="jsdoc-var">t </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">ev.fromElement</span><span class="jsdoc-syntax">;
200                 }
201             }
202
203             </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.resolveTextNode</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">t</span><span class="jsdoc-syntax">);
204         },
205
206
207         </span><span class="jsdoc-var">getTime</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ev</span><span class="jsdoc-syntax">) {
208             </span><span class="jsdoc-var">ev </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">ev.browserEvent </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">ev</span><span class="jsdoc-syntax">;
209             </span><span class="jsdoc-var">ev </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">ev.touches </span><span class="jsdoc-syntax">? (</span><span class="jsdoc-var">ev.touches</span><span class="jsdoc-syntax">[0] || </span><span class="jsdoc-var">ev.changedTouches</span><span class="jsdoc-syntax">[0] || </span><span class="jsdoc-var">ev </span><span class="jsdoc-syntax">)  : </span><span class="jsdoc-var">ev</span><span class="jsdoc-syntax">;
210             </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">ev.time</span><span class="jsdoc-syntax">) {
211                 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">t </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Date</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.getTime</span><span class="jsdoc-syntax">();
212                 </span><span class="jsdoc-keyword">try </span><span class="jsdoc-syntax">{
213                     </span><span class="jsdoc-var">ev.time </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">t</span><span class="jsdoc-syntax">;
214                 } </span><span class="jsdoc-keyword">catch</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ex</span><span class="jsdoc-syntax">) {
215                     </span><span class="jsdoc-var">this.lastError </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">ex</span><span class="jsdoc-syntax">;
216                     </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">t</span><span class="jsdoc-syntax">;
217                 }
218             }
219
220             </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">ev.time</span><span class="jsdoc-syntax">;
221         },
222
223
224         </span><span class="jsdoc-var">stopEvent</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ev</span><span class="jsdoc-syntax">) {
225             </span><span class="jsdoc-var">this.stopPropagation</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ev</span><span class="jsdoc-syntax">);
226             </span><span class="jsdoc-var">this.preventDefault</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ev</span><span class="jsdoc-syntax">);
227         },
228
229
230         </span><span class="jsdoc-var">stopPropagation</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ev</span><span class="jsdoc-syntax">) {
231             </span><span class="jsdoc-var">ev </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">ev.browserEvent </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">ev</span><span class="jsdoc-syntax">;
232             </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ev.stopPropagation</span><span class="jsdoc-syntax">) {
233                 </span><span class="jsdoc-var">ev.stopPropagation</span><span class="jsdoc-syntax">();
234             } </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
235                 </span><span class="jsdoc-var">ev.cancelBubble </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
236             }
237         },
238
239
240         </span><span class="jsdoc-var">preventDefault</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ev</span><span class="jsdoc-syntax">) {
241             </span><span class="jsdoc-var">ev </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">ev.browserEvent </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">ev</span><span class="jsdoc-syntax">;
242             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ev.preventDefault</span><span class="jsdoc-syntax">) {
243                 </span><span class="jsdoc-var">ev.preventDefault</span><span class="jsdoc-syntax">();
244             } </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
245                 </span><span class="jsdoc-var">ev.returnValue </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
246             }
247         },
248
249
250         </span><span class="jsdoc-var">getEvent</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">) {
251             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">ev </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">e </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">window.event</span><span class="jsdoc-syntax">;
252             </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">ev</span><span class="jsdoc-syntax">) {
253                 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">c </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.getEvent.caller</span><span class="jsdoc-syntax">;
254                 </span><span class="jsdoc-keyword">while </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">c</span><span class="jsdoc-syntax">) {
255                     </span><span class="jsdoc-var">ev </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">c.arguments</span><span class="jsdoc-syntax">[0];
256                     </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ev </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">Event </span><span class="jsdoc-syntax">== </span><span class="jsdoc-var">ev.constructor</span><span class="jsdoc-syntax">) {
257                         </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
258                     }
259                     </span><span class="jsdoc-var">c </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">c.caller</span><span class="jsdoc-syntax">;
260                 }
261             }
262             </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">ev</span><span class="jsdoc-syntax">;
263         },
264
265
266         </span><span class="jsdoc-var">getCharCode</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ev</span><span class="jsdoc-syntax">) {
267             </span><span class="jsdoc-var">ev </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">ev.browserEvent </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">ev</span><span class="jsdoc-syntax">;
268             </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">ev.charCode </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">ev.keyCode </span><span class="jsdoc-syntax">|| 0;
269         },
270
271
272         </span><span class="jsdoc-var">_getCacheIndex</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">eventName</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">fn</span><span class="jsdoc-syntax">) {
273             </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= 0,</span><span class="jsdoc-var">len </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">listeners.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">len</span><span class="jsdoc-syntax">; ++</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">) {
274                 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">li </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">listeners</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">];
275                 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">li </span><span class="jsdoc-syntax">&amp;&amp;
276                     </span><span class="jsdoc-var">li</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">this.FN</span><span class="jsdoc-syntax">] == </span><span class="jsdoc-var">fn </span><span class="jsdoc-syntax">&amp;&amp;
277                     </span><span class="jsdoc-var">li</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">this.EL</span><span class="jsdoc-syntax">] == </span><span class="jsdoc-var">el </span><span class="jsdoc-syntax">&amp;&amp;
278                     </span><span class="jsdoc-var">li</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">this.TYPE</span><span class="jsdoc-syntax">] == </span><span class="jsdoc-var">eventName</span><span class="jsdoc-syntax">) {
279                     </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">;
280                 }
281             }
282
283             </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">-1;
284         },
285
286
287         </span><span class="jsdoc-var">elCache</span><span class="jsdoc-syntax">: {},
288
289
290         </span><span class="jsdoc-var">getEl</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">) {
291             </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">document.getElementById</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">);
292         },
293
294
295         </span><span class="jsdoc-var">clearCache</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() {
296         },
297
298
299         </span><span class="jsdoc-var">_load</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">) {
300             </span><span class="jsdoc-var">loadComplete </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
301             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">EU </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.lib.Event</span><span class="jsdoc-syntax">;
302
303
304             </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.isIE</span><span class="jsdoc-syntax">) {
305                 </span><span class="jsdoc-var">EU.doRemove</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">window</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;load&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">EU._load</span><span class="jsdoc-syntax">);
306             }
307         },
308
309
310         </span><span class="jsdoc-var">_tryPreloadAttach</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() {
311
312             </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.locked</span><span class="jsdoc-syntax">) {
313                 </span><span class="jsdoc-keyword">return false</span><span class="jsdoc-syntax">;
314             }
315
316             </span><span class="jsdoc-var">this.locked </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
317
318
319             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">tryAgain </span><span class="jsdoc-syntax">= !</span><span class="jsdoc-var">loadComplete</span><span class="jsdoc-syntax">;
320             </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">tryAgain</span><span class="jsdoc-syntax">) {
321                 </span><span class="jsdoc-var">tryAgain </span><span class="jsdoc-syntax">= (</span><span class="jsdoc-var">retryCount </span><span class="jsdoc-syntax">&gt; 0);
322             }
323
324
325             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">notAvail </span><span class="jsdoc-syntax">= [];
326             </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= 0,</span><span class="jsdoc-var">len </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">onAvailStack.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">len</span><span class="jsdoc-syntax">; ++</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">) {
327                 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">item </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">onAvailStack</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">];
328                 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">item</span><span class="jsdoc-syntax">) {
329                     </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">el </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.getEl</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">item.id</span><span class="jsdoc-syntax">);
330
331                     </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">) {
332                         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">item.checkReady </span><span class="jsdoc-syntax">||
333                             </span><span class="jsdoc-var">loadComplete </span><span class="jsdoc-syntax">||
334                             </span><span class="jsdoc-var">el.nextSibling </span><span class="jsdoc-syntax">||
335                             (</span><span class="jsdoc-var">document </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">document.body</span><span class="jsdoc-syntax">)) {
336
337                             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">scope </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">;
338                             </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">item.override</span><span class="jsdoc-syntax">) {
339                                 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">item.override </span><span class="jsdoc-syntax">=== </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">) {
340                                     </span><span class="jsdoc-var">scope </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">item.obj</span><span class="jsdoc-syntax">;
341                                 } </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
342                                     </span><span class="jsdoc-var">scope </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">item.override</span><span class="jsdoc-syntax">;
343                                 }
344                             }
345                             </span><span class="jsdoc-var">item.fn.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">scope</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">item.obj</span><span class="jsdoc-syntax">);
346                             </span><span class="jsdoc-var">onAvailStack</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">;
347                         }
348                     } </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
349                         </span><span class="jsdoc-var">notAvail.push</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">item</span><span class="jsdoc-syntax">);
350                     }
351                 }
352             }
353
354             </span><span class="jsdoc-var">retryCount </span><span class="jsdoc-syntax">= (</span><span class="jsdoc-var">notAvail.length </span><span class="jsdoc-syntax">=== 0) ? 0 : </span><span class="jsdoc-var">retryCount </span><span class="jsdoc-syntax">- 1;
355
356             </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">tryAgain</span><span class="jsdoc-syntax">) {
357
358                 </span><span class="jsdoc-var">this.startInterval</span><span class="jsdoc-syntax">();
359             } </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
360                 </span><span class="jsdoc-var">clearInterval</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this._interval</span><span class="jsdoc-syntax">);
361                 </span><span class="jsdoc-var">this._interval </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">;
362             }
363
364             </span><span class="jsdoc-var">this.locked </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
365
366             </span><span class="jsdoc-keyword">return true</span><span class="jsdoc-syntax">;
367
368         },
369
370
371         </span><span class="jsdoc-var">purgeElement</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">recurse</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">eventName</span><span class="jsdoc-syntax">) {
372             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">elListeners </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.getListeners</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">eventName</span><span class="jsdoc-syntax">);
373             </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">elListeners</span><span class="jsdoc-syntax">) {
374                 </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= 0,</span><span class="jsdoc-var">len </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">elListeners.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">len</span><span class="jsdoc-syntax">; ++</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">) {
375                     </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">l </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">elListeners</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">];
376                     </span><span class="jsdoc-var">this.removeListener</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">l.type</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">l.fn</span><span class="jsdoc-syntax">);
377                 }
378             }
379
380             </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">recurse </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">el </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">el.childNodes</span><span class="jsdoc-syntax">) {
381                 </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= 0,</span><span class="jsdoc-var">len </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">el.childNodes.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">len</span><span class="jsdoc-syntax">; ++</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">) {
382                     </span><span class="jsdoc-var">this.purgeElement</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el.childNodes</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">], </span><span class="jsdoc-var">recurse</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">eventName</span><span class="jsdoc-syntax">);
383                 }
384             }
385         },
386
387
388         </span><span class="jsdoc-var">getListeners</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">eventName</span><span class="jsdoc-syntax">) {
389             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">results </span><span class="jsdoc-syntax">= [], </span><span class="jsdoc-var">searchLists</span><span class="jsdoc-syntax">;
390             </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">eventName</span><span class="jsdoc-syntax">) {
391                 </span><span class="jsdoc-var">searchLists </span><span class="jsdoc-syntax">= [</span><span class="jsdoc-var">listeners</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">unloadListeners</span><span class="jsdoc-syntax">];
392             } </span><span class="jsdoc-keyword">else if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">eventName </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">&quot;unload&quot;</span><span class="jsdoc-syntax">) {
393                 </span><span class="jsdoc-var">searchLists </span><span class="jsdoc-syntax">= [</span><span class="jsdoc-var">unloadListeners</span><span class="jsdoc-syntax">];
394             } </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
395                 </span><span class="jsdoc-var">searchLists </span><span class="jsdoc-syntax">= [</span><span class="jsdoc-var">listeners</span><span class="jsdoc-syntax">];
396             }
397
398             </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">j </span><span class="jsdoc-syntax">= 0; </span><span class="jsdoc-var">j </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">searchLists.length</span><span class="jsdoc-syntax">; ++</span><span class="jsdoc-var">j</span><span class="jsdoc-syntax">) {
399                 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">searchList </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">searchLists</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">j</span><span class="jsdoc-syntax">];
400                 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">searchList </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">searchList.length </span><span class="jsdoc-syntax">&gt; 0) {
401                     </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= 0,</span><span class="jsdoc-var">len </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">searchList.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">len</span><span class="jsdoc-syntax">; ++</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">) {
402                         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">l </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">searchList</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">];
403                         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">l </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">l</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">this.EL</span><span class="jsdoc-syntax">] === </span><span class="jsdoc-var">el </span><span class="jsdoc-syntax">&amp;&amp;
404                             (!</span><span class="jsdoc-var">eventName </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">eventName </span><span class="jsdoc-syntax">=== </span><span class="jsdoc-var">l</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">this.TYPE</span><span class="jsdoc-syntax">])) {
405                             </span><span class="jsdoc-var">results.push</span><span class="jsdoc-syntax">({
406                                 </span><span class="jsdoc-var">type</span><span class="jsdoc-syntax">:   </span><span class="jsdoc-var">l</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">this.TYPE</span><span class="jsdoc-syntax">],
407                                 </span><span class="jsdoc-var">fn</span><span class="jsdoc-syntax">:     </span><span class="jsdoc-var">l</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">this.FN</span><span class="jsdoc-syntax">],
408                                 </span><span class="jsdoc-var">obj</span><span class="jsdoc-syntax">:    </span><span class="jsdoc-var">l</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">this.OBJ</span><span class="jsdoc-syntax">],
409                                 </span><span class="jsdoc-var">adjust</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">l</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">this.ADJ_SCOPE</span><span class="jsdoc-syntax">],
410                                 </span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">:  </span><span class="jsdoc-var">i
411                             </span><span class="jsdoc-syntax">});
412                         }
413                     }
414                 }
415             }
416
417             </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">results.length</span><span class="jsdoc-syntax">) ? </span><span class="jsdoc-var">results </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">;
418         },
419
420
421         </span><span class="jsdoc-var">_unload</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">) {
422
423             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">EU </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.lib.Event</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">j</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">l</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">len</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">;
424
425             </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= 0,</span><span class="jsdoc-var">len </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">unloadListeners.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">len</span><span class="jsdoc-syntax">; ++</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">) {
426                 </span><span class="jsdoc-var">l </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">unloadListeners</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">];
427                 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">l</span><span class="jsdoc-syntax">) {
428                     </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">scope </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">window</span><span class="jsdoc-syntax">;
429                     </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">l</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">EU.ADJ_SCOPE</span><span class="jsdoc-syntax">]) {
430                         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">l</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">EU.ADJ_SCOPE</span><span class="jsdoc-syntax">] === </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">) {
431                             </span><span class="jsdoc-var">scope </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">l</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">EU.OBJ</span><span class="jsdoc-syntax">];
432                         } </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
433                             </span><span class="jsdoc-var">scope </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">l</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">EU.ADJ_SCOPE</span><span class="jsdoc-syntax">];
434                         }
435                     }
436                     </span><span class="jsdoc-var">l</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">EU.FN</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">scope</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">EU.getEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">), </span><span class="jsdoc-var">l</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">EU.OBJ</span><span class="jsdoc-syntax">]);
437                     </span><span class="jsdoc-var">unloadListeners</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">;
438                     </span><span class="jsdoc-var">l </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">;
439                     </span><span class="jsdoc-var">scope </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">;
440                 }
441             }
442
443             </span><span class="jsdoc-var">unloadListeners </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">;
444
445             </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">listeners </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">listeners.length </span><span class="jsdoc-syntax">&gt; 0) {
446                 </span><span class="jsdoc-var">j </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">listeners.length</span><span class="jsdoc-syntax">;
447                 </span><span class="jsdoc-keyword">while </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">j</span><span class="jsdoc-syntax">) {
448                     </span><span class="jsdoc-var">index </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">j </span><span class="jsdoc-syntax">- 1;
449                     </span><span class="jsdoc-var">l </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">listeners</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">];
450                     </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">l</span><span class="jsdoc-syntax">) {
451                         </span><span class="jsdoc-var">EU.removeListener</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">l</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">EU.EL</span><span class="jsdoc-syntax">], </span><span class="jsdoc-var">l</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">EU.TYPE</span><span class="jsdoc-syntax">],
452                                 </span><span class="jsdoc-var">l</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">EU.FN</span><span class="jsdoc-syntax">], </span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">);
453                     }
454                     </span><span class="jsdoc-var">j </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">j </span><span class="jsdoc-syntax">- 1;
455                 }
456                 </span><span class="jsdoc-var">l </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">;
457
458                 </span><span class="jsdoc-var">EU.clearCache</span><span class="jsdoc-syntax">();
459             }
460
461             </span><span class="jsdoc-var">EU.doRemove</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">window</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;unload&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">EU._unload</span><span class="jsdoc-syntax">);
462
463         },
464
465
466         </span><span class="jsdoc-var">getScroll</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() {
467             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">dd </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">document.documentElement</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">db </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">document.body</span><span class="jsdoc-syntax">;
468             </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">dd </span><span class="jsdoc-syntax">&amp;&amp; (</span><span class="jsdoc-var">dd.scrollTop </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">dd.scrollLeft</span><span class="jsdoc-syntax">)) {
469                 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">dd.scrollTop</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">dd.scrollLeft</span><span class="jsdoc-syntax">];
470             } </span><span class="jsdoc-keyword">else if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">db</span><span class="jsdoc-syntax">) {
471                 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">db.scrollTop</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">db.scrollLeft</span><span class="jsdoc-syntax">];
472             } </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
473                 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">[0, 0];
474             }
475         },
476
477
478         </span><span class="jsdoc-var">doAdd</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">() {
479             </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">window.addEventListener</span><span class="jsdoc-syntax">) {
480                 </span><span class="jsdoc-keyword">return function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">eventName</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">fn</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">capture</span><span class="jsdoc-syntax">) {
481                     </span><span class="jsdoc-var">el.addEventListener</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">eventName</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">fn</span><span class="jsdoc-syntax">, (</span><span class="jsdoc-var">capture</span><span class="jsdoc-syntax">));
482                 };
483             } </span><span class="jsdoc-keyword">else if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">window.attachEvent</span><span class="jsdoc-syntax">) {
484                 </span><span class="jsdoc-keyword">return function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">eventName</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">fn</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">capture</span><span class="jsdoc-syntax">) {
485                     </span><span class="jsdoc-var">el.attachEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;on&quot; </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">eventName</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">fn</span><span class="jsdoc-syntax">);
486                 };
487             } </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
488                 </span><span class="jsdoc-keyword">return function</span><span class="jsdoc-syntax">() {
489                 };
490             }
491         }(),
492
493
494         </span><span class="jsdoc-var">doRemove</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() {
495             </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">window.removeEventListener</span><span class="jsdoc-syntax">) {
496                 </span><span class="jsdoc-keyword">return function </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">eventName</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">fn</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">capture</span><span class="jsdoc-syntax">) {
497                     </span><span class="jsdoc-var">el.removeEventListener</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">eventName</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">fn</span><span class="jsdoc-syntax">, (</span><span class="jsdoc-var">capture</span><span class="jsdoc-syntax">));
498                 };
499             } </span><span class="jsdoc-keyword">else if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">window.detachEvent</span><span class="jsdoc-syntax">) {
500                 </span><span class="jsdoc-keyword">return function </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">eventName</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">fn</span><span class="jsdoc-syntax">) {
501                     </span><span class="jsdoc-var">el.detachEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;on&quot; </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">eventName</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">fn</span><span class="jsdoc-syntax">);
502                 };
503             } </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
504                 </span><span class="jsdoc-keyword">return function</span><span class="jsdoc-syntax">() {
505                 };
506             }
507         }()
508     };
509
510 }();
511 (</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() {
512
513     </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">E </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.lib.Event</span><span class="jsdoc-syntax">;
514     </span><span class="jsdoc-var">E.on </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">E.addListener</span><span class="jsdoc-syntax">;
515     </span><span class="jsdoc-var">E.un </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">E.removeListener</span><span class="jsdoc-syntax">;
516
517     </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">document </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">document.body</span><span class="jsdoc-syntax">) {
518         </span><span class="jsdoc-var">E._load</span><span class="jsdoc-syntax">();
519     } </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
520         </span><span class="jsdoc-var">E.doAdd</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">window</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;load&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">E._load</span><span class="jsdoc-syntax">);
521     }
522     </span><span class="jsdoc-var">E.doAdd</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">window</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;unload&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">E._unload</span><span class="jsdoc-syntax">);
523     </span><span class="jsdoc-var">E._tryPreloadAttach</span><span class="jsdoc-syntax">();
524 })();
525
526 </span></code></body></html>