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 * <script type="text/javascript">
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">;
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">,
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">();
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">);
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">});
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">();
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">;
59 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">"unload" </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">;
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">));
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">];
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">;
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">;
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">;
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">);
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">);
90 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">"unload" </span><span class="jsdoc-syntax">== </span><span class="jsdoc-var">eventName</span><span class="jsdoc-syntax">) {
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">< </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">&&
95 </span><span class="jsdoc-var">li</span><span class="jsdoc-syntax">[0] == </span><span class="jsdoc-var">el </span><span class="jsdoc-syntax">&&
96 </span><span class="jsdoc-var">li</span><span class="jsdoc-syntax">[1] == </span><span class="jsdoc-var">eventName </span><span class="jsdoc-syntax">&&
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">;
103 </span><span class="jsdoc-keyword">return false</span><span class="jsdoc-syntax">;
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">;
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];
111 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">"undefined" </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">);
115 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">index </span><span class="jsdoc-syntax">>= 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">];
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">;
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">);
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);
129 </span><span class="jsdoc-keyword">return true</span><span class="jsdoc-syntax">;
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">);
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">&& </span><span class="jsdoc-var">node </span><span class="jsdoc-syntax">&& 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">;
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">&& 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;
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];
163 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">x</span><span class="jsdoc-syntax">;
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">&& 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;
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];
180 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">y</span><span class="jsdoc-syntax">;
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">)];
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">"mouseout"</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">"mouseover"</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">;
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">);
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">;
220 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">ev.time</span><span class="jsdoc-syntax">;
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">);
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">;
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">;
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">&& </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">;
259 </span><span class="jsdoc-var">c </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">c.caller</span><span class="jsdoc-syntax">;
262 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">ev</span><span class="jsdoc-syntax">;
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;
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">< </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">&&
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">&&
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">&&
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">;
283 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">-1;
287 </span><span class="jsdoc-var">elCache</span><span class="jsdoc-syntax">: {},
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">);
295 </span><span class="jsdoc-var">clearCache</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() {
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">;
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">"load"</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">EU._load</span><span class="jsdoc-syntax">);
310 </span><span class="jsdoc-var">_tryPreloadAttach</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() {
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">;
316 </span><span class="jsdoc-var">this.locked </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
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">> 0);
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">< </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">);
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">&& </span><span class="jsdoc-var">document.body</span><span class="jsdoc-syntax">)) {
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">;
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">;
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">);
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;
356 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">tryAgain</span><span class="jsdoc-syntax">) {
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">;
364 </span><span class="jsdoc-var">this.locked </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
366 </span><span class="jsdoc-keyword">return true</span><span class="jsdoc-syntax">;
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">< </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">);
380 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">recurse </span><span class="jsdoc-syntax">&& </span><span class="jsdoc-var">el </span><span class="jsdoc-syntax">&& </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">< </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">);
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">"unload"</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">];
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">< </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">&& </span><span class="jsdoc-var">searchList.length </span><span class="jsdoc-syntax">> 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">< </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">&& </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">&&
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">});
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">;
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">) {
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">;
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">< </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">];
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">;
443 </span><span class="jsdoc-var">unloadListeners </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">;
445 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">listeners </span><span class="jsdoc-syntax">&& </span><span class="jsdoc-var">listeners.length </span><span class="jsdoc-syntax">> 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">);
454 </span><span class="jsdoc-var">j </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">j </span><span class="jsdoc-syntax">- 1;
456 </span><span class="jsdoc-var">l </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">;
458 </span><span class="jsdoc-var">EU.clearCache</span><span class="jsdoc-syntax">();
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">"unload"</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">EU._unload</span><span class="jsdoc-syntax">);
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">&& (</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];
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">));
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">"on" </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">);
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">() {
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">));
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">"on" </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">);
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">() {
511 (</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() {
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">;
517 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">document </span><span class="jsdoc-syntax">&& </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">"load"</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">E._load</span><span class="jsdoc-syntax">);
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">"unload"</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">();
526 </span></code></body></html>