webgui/www/extras/yui-ext/docs/output/MixedCollection.js.html
JT Smith cfd09a5cb6 upgraded to yui 0.12.0
upgraded to yui-ext 0.33 rc2
2006-11-28 02:23:34 +00:00

188 lines
No EOL
45 KiB
HTML

<html><head><title>MixedCollection.js</title><link rel="stylesheet" type="text/css" href="../style.css" media="screen"/></head><body><div class="hl-main"><pre><span class="hl-comment">/**
* Collection class that maintains both numeric indexes and keys and exposes events
*/
</span><span class="hl-identifier">YAHOO</span><span class="hl-default">.</span><span class="hl-identifier">ext</span><span class="hl-default">.</span><span class="hl-identifier">util</span><span class="hl-default">.</span><span class="hl-identifier">MixedCollection</span><span class="hl-default"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">allowFunctions</span><span class="hl-brackets">){
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">items</span><span class="hl-code"> = </span><span class="hl-brackets">[]</span><span class="hl-code">;
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">keys</span><span class="hl-code"> = </span><span class="hl-brackets">[]</span><span class="hl-code">;
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">events</span><span class="hl-code"> = </span><span class="hl-brackets">{
</span><span class="hl-quotes">'</span><span class="hl-string">clear</span><span class="hl-quotes">'</span><span class="hl-code"> : </span><span class="hl-reserved">new </span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">util</span><span class="hl-code">.</span><span class="hl-identifier">CustomEvent</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">clear</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">,
</span><span class="hl-quotes">'</span><span class="hl-string">add</span><span class="hl-quotes">'</span><span class="hl-code"> : </span><span class="hl-reserved">new </span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">util</span><span class="hl-code">.</span><span class="hl-identifier">CustomEvent</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">add</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">,
</span><span class="hl-quotes">'</span><span class="hl-string">replace</span><span class="hl-quotes">'</span><span class="hl-code"> : </span><span class="hl-reserved">new </span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">util</span><span class="hl-code">.</span><span class="hl-identifier">CustomEvent</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">replace</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">,
</span><span class="hl-quotes">'</span><span class="hl-string">remove</span><span class="hl-quotes">'</span><span class="hl-code"> : </span><span class="hl-reserved">new </span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">util</span><span class="hl-code">.</span><span class="hl-identifier">CustomEvent</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">remove</span><span class="hl-quotes">'</span><span class="hl-brackets">)
}
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">allowFunctions</span><span class="hl-code"> = </span><span class="hl-identifier">allowFunctions</span><span class="hl-code"> === </span><span class="hl-reserved">true</span><span class="hl-code">;
</span><span class="hl-brackets">}</span><span class="hl-default">;
</span><span class="hl-identifier">YAHOO</span><span class="hl-default">.</span><span class="hl-identifier">extendX</span><span class="hl-brackets">(</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">ext</span><span class="hl-code">.</span><span class="hl-identifier">util</span><span class="hl-code">.</span><span class="hl-identifier">MixedCollection</span><span class="hl-code">, </span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">ext</span><span class="hl-code">.</span><span class="hl-identifier">util</span><span class="hl-code">.</span><span class="hl-identifier">Observable</span><span class="hl-code">, </span><span class="hl-brackets">{
</span><span class="hl-identifier">allowFunctions</span><span class="hl-code"> : </span><span class="hl-reserved">false</span><span class="hl-code">,
</span><span class="hl-identifier">add</span><span class="hl-code"> : </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">key</span><span class="hl-code">, </span><span class="hl-identifier">o</span><span class="hl-brackets">){
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">arguments</span><span class="hl-code">.</span><span class="hl-identifier">length</span><span class="hl-code"> == </span><span class="hl-number">1</span><span class="hl-brackets">){
</span><span class="hl-identifier">o</span><span class="hl-code"> = </span><span class="hl-identifier">arguments</span><span class="hl-brackets">[</span><span class="hl-number">0</span><span class="hl-brackets">]</span><span class="hl-code">;
</span><span class="hl-identifier">key</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">getKey</span><span class="hl-brackets">(</span><span class="hl-identifier">o</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-brackets">}
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">items</span><span class="hl-code">.</span><span class="hl-identifier">push</span><span class="hl-brackets">(</span><span class="hl-identifier">o</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-reserved">typeof </span><span class="hl-identifier">key</span><span class="hl-code"> != </span><span class="hl-quotes">'</span><span class="hl-string">undefined</span><span class="hl-quotes">'</span><span class="hl-code"> &amp;&amp; </span><span class="hl-identifier">key</span><span class="hl-code"> != </span><span class="hl-reserved">null</span><span class="hl-brackets">){
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">items</span><span class="hl-brackets">[</span><span class="hl-identifier">key</span><span class="hl-brackets">]</span><span class="hl-code"> = </span><span class="hl-identifier">o</span><span class="hl-code">;
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">keys</span><span class="hl-code">.</span><span class="hl-identifier">push</span><span class="hl-brackets">(</span><span class="hl-identifier">key</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-brackets">}
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">fireEvent</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">add</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">items</span><span class="hl-code">.</span><span class="hl-identifier">length</span><span class="hl-code">-</span><span class="hl-number">1</span><span class="hl-code">, </span><span class="hl-identifier">o</span><span class="hl-code">, </span><span class="hl-identifier">key</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-reserved">return </span><span class="hl-identifier">o</span><span class="hl-code">;
</span><span class="hl-brackets">}</span><span class="hl-code">,
</span><span class="hl-identifier">getKey</span><span class="hl-code"> : </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">o</span><span class="hl-brackets">){
</span><span class="hl-reserved">return null</span><span class="hl-code">;
</span><span class="hl-brackets">}</span><span class="hl-code">,
</span><span class="hl-identifier">replace</span><span class="hl-code"> : </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">key</span><span class="hl-code">, </span><span class="hl-identifier">o</span><span class="hl-brackets">){
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-reserved">typeof this</span><span class="hl-code">.</span><span class="hl-identifier">items</span><span class="hl-brackets">[</span><span class="hl-identifier">key</span><span class="hl-brackets">]</span><span class="hl-code"> == </span><span class="hl-quotes">'</span><span class="hl-string">undefined</span><span class="hl-quotes">'</span><span class="hl-brackets">){
</span><span class="hl-reserved">return this</span><span class="hl-code">.</span><span class="hl-identifier">add</span><span class="hl-brackets">(</span><span class="hl-identifier">key</span><span class="hl-code">, </span><span class="hl-identifier">o</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-brackets">}
</span><span class="hl-reserved">var </span><span class="hl-identifier">old</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">items</span><span class="hl-brackets">[</span><span class="hl-identifier">key</span><span class="hl-brackets">]</span><span class="hl-code">;
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-reserved">typeof </span><span class="hl-identifier">key</span><span class="hl-code"> == </span><span class="hl-quotes">'</span><span class="hl-string">number</span><span class="hl-quotes">'</span><span class="hl-brackets">){ </span><span class="hl-comment">// array index key
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">items</span><span class="hl-brackets">[</span><span class="hl-identifier">key</span><span class="hl-brackets">]</span><span class="hl-code"> = </span><span class="hl-identifier">o</span><span class="hl-code">;
</span><span class="hl-brackets">}</span><span class="hl-reserved">else</span><span class="hl-brackets">{
</span><span class="hl-reserved">var </span><span class="hl-identifier">index</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">indexOfKey</span><span class="hl-brackets">(</span><span class="hl-identifier">key</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">items</span><span class="hl-brackets">[</span><span class="hl-identifier">index</span><span class="hl-brackets">]</span><span class="hl-code"> = </span><span class="hl-identifier">o</span><span class="hl-code">;
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">items</span><span class="hl-brackets">[</span><span class="hl-identifier">key</span><span class="hl-brackets">]</span><span class="hl-code"> = </span><span class="hl-identifier">o</span><span class="hl-code">;
</span><span class="hl-brackets">}
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">fireEvent</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">replace</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-identifier">key</span><span class="hl-code">, </span><span class="hl-identifier">old</span><span class="hl-code">, </span><span class="hl-identifier">o</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-reserved">return </span><span class="hl-identifier">o</span><span class="hl-code">;
</span><span class="hl-brackets">}</span><span class="hl-code">,
</span><span class="hl-identifier">addAll</span><span class="hl-code"> : </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">objs</span><span class="hl-brackets">){
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">arguments</span><span class="hl-code">.</span><span class="hl-identifier">length</span><span class="hl-code"> &gt; </span><span class="hl-number">1</span><span class="hl-code"> || </span><span class="hl-identifier">objs </span><span class="hl-reserved">instanceof </span><span class="hl-builtin">Array</span><span class="hl-brackets">){
</span><span class="hl-reserved">var </span><span class="hl-identifier">args</span><span class="hl-code"> = </span><span class="hl-identifier">arguments</span><span class="hl-code">.</span><span class="hl-identifier">length</span><span class="hl-code"> &gt; </span><span class="hl-number">1</span><span class="hl-code"> ? </span><span class="hl-identifier">arguments</span><span class="hl-code"> : </span><span class="hl-identifier">objs</span><span class="hl-code">;
</span><span class="hl-reserved">for</span><span class="hl-brackets">(</span><span class="hl-reserved">var </span><span class="hl-identifier">i</span><span class="hl-code"> = </span><span class="hl-number">0</span><span class="hl-code">, </span><span class="hl-identifier">len</span><span class="hl-code"> = </span><span class="hl-identifier">args</span><span class="hl-code">.</span><span class="hl-identifier">length</span><span class="hl-code">; </span><span class="hl-identifier">i</span><span class="hl-code"> &lt; </span><span class="hl-identifier">len</span><span class="hl-code">; </span><span class="hl-identifier">i</span><span class="hl-code">++</span><span class="hl-brackets">){
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">add</span><span class="hl-brackets">(</span><span class="hl-identifier">args</span><span class="hl-brackets">[</span><span class="hl-identifier">i</span><span class="hl-brackets">])</span><span class="hl-code">;
</span><span class="hl-brackets">}
}</span><span class="hl-reserved">else</span><span class="hl-brackets">{
</span><span class="hl-reserved">for</span><span class="hl-brackets">(</span><span class="hl-reserved">var </span><span class="hl-identifier">key </span><span class="hl-reserved">in </span><span class="hl-identifier">objs</span><span class="hl-brackets">){
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">allowFunctions</span><span class="hl-code"> || </span><span class="hl-reserved">typeof </span><span class="hl-identifier">objs</span><span class="hl-brackets">[</span><span class="hl-identifier">key</span><span class="hl-brackets">]</span><span class="hl-code"> != </span><span class="hl-quotes">'</span><span class="hl-string">function</span><span class="hl-quotes">'</span><span class="hl-brackets">){
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">add</span><span class="hl-brackets">(</span><span class="hl-identifier">objs</span><span class="hl-brackets">[</span><span class="hl-identifier">key</span><span class="hl-brackets">]</span><span class="hl-code">, </span><span class="hl-identifier">key</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-brackets">}
}
}
}</span><span class="hl-code">,
</span><span class="hl-identifier">each</span><span class="hl-code"> : </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">fn</span><span class="hl-code">, </span><span class="hl-identifier">scope</span><span class="hl-brackets">){
</span><span class="hl-reserved">for</span><span class="hl-brackets">(</span><span class="hl-reserved">var </span><span class="hl-identifier">i</span><span class="hl-code"> = </span><span class="hl-number">0</span><span class="hl-code">, </span><span class="hl-identifier">len</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">items</span><span class="hl-code">.</span><span class="hl-identifier">length</span><span class="hl-code">; </span><span class="hl-identifier">i</span><span class="hl-code"> &lt; </span><span class="hl-identifier">len</span><span class="hl-code">; </span><span class="hl-identifier">i</span><span class="hl-code">++</span><span class="hl-brackets">){
</span><span class="hl-identifier">fn</span><span class="hl-code">.</span><span class="hl-identifier">call</span><span class="hl-brackets">(</span><span class="hl-identifier">scope</span><span class="hl-code"> || </span><span class="hl-builtin">window</span><span class="hl-code">, </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">items</span><span class="hl-brackets">[</span><span class="hl-identifier">i</span><span class="hl-brackets">])</span><span class="hl-code">;
</span><span class="hl-brackets">}
}</span><span class="hl-code">,
</span><span class="hl-identifier">eachKey</span><span class="hl-code"> : </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">fn</span><span class="hl-code">, </span><span class="hl-identifier">scope</span><span class="hl-brackets">){
</span><span class="hl-reserved">for</span><span class="hl-brackets">(</span><span class="hl-reserved">var </span><span class="hl-identifier">i</span><span class="hl-code"> = </span><span class="hl-number">0</span><span class="hl-code">, </span><span class="hl-identifier">len</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">keys</span><span class="hl-code">.</span><span class="hl-identifier">length</span><span class="hl-code">; </span><span class="hl-identifier">i</span><span class="hl-code"> &lt; </span><span class="hl-identifier">len</span><span class="hl-code">; </span><span class="hl-identifier">i</span><span class="hl-code">++</span><span class="hl-brackets">){
</span><span class="hl-identifier">fn</span><span class="hl-code">.</span><span class="hl-identifier">call</span><span class="hl-brackets">(</span><span class="hl-identifier">scope</span><span class="hl-code"> || </span><span class="hl-builtin">window</span><span class="hl-code">, </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">keys</span><span class="hl-brackets">[</span><span class="hl-identifier">i</span><span class="hl-brackets">]</span><span class="hl-code">, </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">items</span><span class="hl-brackets">[</span><span class="hl-identifier">i</span><span class="hl-brackets">])</span><span class="hl-code">;
</span><span class="hl-brackets">}
}</span><span class="hl-code">,
</span><span class="hl-identifier">find</span><span class="hl-code"> : </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">fn</span><span class="hl-code">, </span><span class="hl-identifier">scope</span><span class="hl-brackets">){
</span><span class="hl-reserved">for</span><span class="hl-brackets">(</span><span class="hl-reserved">var </span><span class="hl-identifier">i</span><span class="hl-code"> = </span><span class="hl-number">0</span><span class="hl-code">, </span><span class="hl-identifier">len</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">items</span><span class="hl-code">.</span><span class="hl-identifier">length</span><span class="hl-code">; </span><span class="hl-identifier">i</span><span class="hl-code"> &lt; </span><span class="hl-identifier">len</span><span class="hl-code">; </span><span class="hl-identifier">i</span><span class="hl-code">++</span><span class="hl-brackets">){
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">fn</span><span class="hl-code">.</span><span class="hl-identifier">call</span><span class="hl-brackets">(</span><span class="hl-identifier">scope</span><span class="hl-code"> || </span><span class="hl-builtin">window</span><span class="hl-code">, </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">items</span><span class="hl-brackets">[</span><span class="hl-identifier">i</span><span class="hl-brackets">])){
</span><span class="hl-reserved">return this</span><span class="hl-code">.</span><span class="hl-identifier">items</span><span class="hl-brackets">[</span><span class="hl-identifier">i</span><span class="hl-brackets">]</span><span class="hl-code">;
</span><span class="hl-brackets">}
}
</span><span class="hl-reserved">return null</span><span class="hl-code">;
</span><span class="hl-brackets">}</span><span class="hl-code">,
</span><span class="hl-identifier">insert</span><span class="hl-code"> : </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">index</span><span class="hl-code">, </span><span class="hl-identifier">key</span><span class="hl-code">, </span><span class="hl-identifier">o</span><span class="hl-brackets">){
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">arguments</span><span class="hl-code">.</span><span class="hl-identifier">length</span><span class="hl-code"> == </span><span class="hl-number">2</span><span class="hl-brackets">){
</span><span class="hl-identifier">o</span><span class="hl-code"> = </span><span class="hl-identifier">arguments</span><span class="hl-brackets">[</span><span class="hl-number">1</span><span class="hl-brackets">]</span><span class="hl-code">;
</span><span class="hl-identifier">key</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">getKey</span><span class="hl-brackets">(</span><span class="hl-identifier">o</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-brackets">}
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">index</span><span class="hl-code"> &gt;= </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">items</span><span class="hl-code">.</span><span class="hl-identifier">length</span><span class="hl-brackets">){
</span><span class="hl-reserved">return this</span><span class="hl-code">.</span><span class="hl-identifier">add</span><span class="hl-brackets">(</span><span class="hl-identifier">o</span><span class="hl-code">, </span><span class="hl-identifier">key</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-brackets">}
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">items</span><span class="hl-code">.</span><span class="hl-identifier">splice</span><span class="hl-brackets">(</span><span class="hl-identifier">index</span><span class="hl-code">, </span><span class="hl-number">0</span><span class="hl-code">, </span><span class="hl-identifier">o</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-reserved">typeof </span><span class="hl-identifier">key</span><span class="hl-code"> != </span><span class="hl-quotes">'</span><span class="hl-string">undefined</span><span class="hl-quotes">'</span><span class="hl-code"> &amp;&amp; </span><span class="hl-identifier">key</span><span class="hl-code"> != </span><span class="hl-reserved">null</span><span class="hl-brackets">){
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">items</span><span class="hl-brackets">[</span><span class="hl-identifier">key</span><span class="hl-brackets">]</span><span class="hl-code"> = </span><span class="hl-identifier">o</span><span class="hl-code">;
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">keys</span><span class="hl-code">.</span><span class="hl-identifier">splice</span><span class="hl-brackets">(</span><span class="hl-identifier">index</span><span class="hl-code">, </span><span class="hl-number">0</span><span class="hl-code">, </span><span class="hl-identifier">key</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-brackets">}
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">fireEvent</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">add</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-identifier">index</span><span class="hl-code">, </span><span class="hl-identifier">o</span><span class="hl-code">, </span><span class="hl-identifier">key</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-reserved">return </span><span class="hl-identifier">o</span><span class="hl-code">;
</span><span class="hl-brackets">}</span><span class="hl-code">,
</span><span class="hl-identifier">remove</span><span class="hl-code"> : </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">o</span><span class="hl-brackets">){
</span><span class="hl-reserved">var </span><span class="hl-identifier">index</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">indexOf</span><span class="hl-brackets">(</span><span class="hl-identifier">o</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">items</span><span class="hl-code">.</span><span class="hl-identifier">splice</span><span class="hl-brackets">(</span><span class="hl-identifier">index</span><span class="hl-code">, </span><span class="hl-number">1</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-reserved">typeof this</span><span class="hl-code">.</span><span class="hl-identifier">keys</span><span class="hl-brackets">[</span><span class="hl-identifier">index</span><span class="hl-brackets">]</span><span class="hl-code"> != </span><span class="hl-quotes">'</span><span class="hl-string">undefined</span><span class="hl-quotes">'</span><span class="hl-brackets">){
</span><span class="hl-reserved">var </span><span class="hl-identifier">key</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">keys</span><span class="hl-brackets">[</span><span class="hl-identifier">index</span><span class="hl-brackets">]</span><span class="hl-code">;
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">keys</span><span class="hl-code">.</span><span class="hl-identifier">splice</span><span class="hl-brackets">(</span><span class="hl-identifier">index</span><span class="hl-code">, </span><span class="hl-number">1</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-reserved">delete this</span><span class="hl-code">.</span><span class="hl-identifier">items</span><span class="hl-brackets">[</span><span class="hl-identifier">key</span><span class="hl-brackets">]</span><span class="hl-code">;
</span><span class="hl-brackets">}
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">fireEvent</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">remove</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-identifier">o</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-reserved">return </span><span class="hl-identifier">o</span><span class="hl-code">;
</span><span class="hl-brackets">}</span><span class="hl-code">,
</span><span class="hl-identifier">removeAt</span><span class="hl-code"> : </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">index</span><span class="hl-brackets">){
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">items</span><span class="hl-code">.</span><span class="hl-identifier">splice</span><span class="hl-brackets">(</span><span class="hl-identifier">index</span><span class="hl-code">, </span><span class="hl-number">1</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-reserved">var </span><span class="hl-identifier">key</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">keys</span><span class="hl-brackets">[</span><span class="hl-identifier">index</span><span class="hl-brackets">]</span><span class="hl-code">;
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-reserved">typeof </span><span class="hl-identifier">key</span><span class="hl-code"> != </span><span class="hl-quotes">'</span><span class="hl-string">undefined</span><span class="hl-quotes">'</span><span class="hl-brackets">){
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">keys</span><span class="hl-code">.</span><span class="hl-identifier">splice</span><span class="hl-brackets">(</span><span class="hl-identifier">index</span><span class="hl-code">, </span><span class="hl-number">1</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-reserved">delete this</span><span class="hl-code">.</span><span class="hl-identifier">items</span><span class="hl-brackets">[</span><span class="hl-identifier">key</span><span class="hl-brackets">]</span><span class="hl-code">;
</span><span class="hl-brackets">}
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">fireEvent</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">remove</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-identifier">o</span><span class="hl-code">, </span><span class="hl-identifier">key</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-brackets">}</span><span class="hl-code">,
</span><span class="hl-identifier">removeKey</span><span class="hl-code"> : </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">key</span><span class="hl-brackets">){
</span><span class="hl-reserved">var </span><span class="hl-identifier">o</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">items</span><span class="hl-brackets">[</span><span class="hl-identifier">key</span><span class="hl-brackets">]</span><span class="hl-code">;
</span><span class="hl-reserved">var </span><span class="hl-identifier">index</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">indexOf</span><span class="hl-brackets">(</span><span class="hl-identifier">o</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">items</span><span class="hl-code">.</span><span class="hl-identifier">splice</span><span class="hl-brackets">(</span><span class="hl-identifier">index</span><span class="hl-code">, </span><span class="hl-number">1</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">keys</span><span class="hl-code">.</span><span class="hl-identifier">splice</span><span class="hl-brackets">(</span><span class="hl-identifier">index</span><span class="hl-code">, </span><span class="hl-number">1</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-reserved">delete this</span><span class="hl-code">.</span><span class="hl-identifier">items</span><span class="hl-brackets">[</span><span class="hl-identifier">key</span><span class="hl-brackets">]</span><span class="hl-code">;
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">fireEvent</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">remove</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-identifier">o</span><span class="hl-code">, </span><span class="hl-identifier">key</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-brackets">}</span><span class="hl-code">,
</span><span class="hl-identifier">getCount</span><span class="hl-code"> : </span><span class="hl-reserved">function</span><span class="hl-brackets">(){
</span><span class="hl-reserved">return this</span><span class="hl-code">.</span><span class="hl-identifier">items</span><span class="hl-code">.</span><span class="hl-identifier">length</span><span class="hl-code">;
</span><span class="hl-brackets">}</span><span class="hl-code">,
</span><span class="hl-identifier">indexOf</span><span class="hl-code"> : </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">o</span><span class="hl-brackets">){
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-code">!</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">items</span><span class="hl-code">.</span><span class="hl-identifier">indexOf</span><span class="hl-brackets">){
</span><span class="hl-reserved">for</span><span class="hl-brackets">(</span><span class="hl-reserved">var </span><span class="hl-identifier">i</span><span class="hl-code"> = </span><span class="hl-number">0</span><span class="hl-code">, </span><span class="hl-identifier">len</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">items</span><span class="hl-code">.</span><span class="hl-identifier">length</span><span class="hl-code">; </span><span class="hl-identifier">i</span><span class="hl-code"> &lt; </span><span class="hl-identifier">len</span><span class="hl-code">; </span><span class="hl-identifier">i</span><span class="hl-code">++</span><span class="hl-brackets">){
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">items</span><span class="hl-brackets">[</span><span class="hl-identifier">i</span><span class="hl-brackets">]</span><span class="hl-code"> == </span><span class="hl-identifier">o</span><span class="hl-brackets">) </span><span class="hl-reserved">return </span><span class="hl-identifier">i</span><span class="hl-code">;
</span><span class="hl-brackets">}
</span><span class="hl-reserved">return</span><span class="hl-code"> -</span><span class="hl-number">1</span><span class="hl-code">;
</span><span class="hl-brackets">}</span><span class="hl-reserved">else</span><span class="hl-brackets">{
</span><span class="hl-reserved">return this</span><span class="hl-code">.</span><span class="hl-identifier">items</span><span class="hl-code">.</span><span class="hl-identifier">indexOf</span><span class="hl-brackets">(</span><span class="hl-identifier">o</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-brackets">}
}</span><span class="hl-code">,
</span><span class="hl-identifier">indexOfKey</span><span class="hl-code"> : </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">key</span><span class="hl-brackets">){
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-code">!</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">keys</span><span class="hl-code">.</span><span class="hl-identifier">indexOf</span><span class="hl-brackets">){
</span><span class="hl-reserved">for</span><span class="hl-brackets">(</span><span class="hl-reserved">var </span><span class="hl-identifier">i</span><span class="hl-code"> = </span><span class="hl-number">0</span><span class="hl-code">, </span><span class="hl-identifier">len</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">key</span><span class="hl-code">.</span><span class="hl-identifier">length</span><span class="hl-code">; </span><span class="hl-identifier">i</span><span class="hl-code"> &lt; </span><span class="hl-identifier">len</span><span class="hl-code">; </span><span class="hl-identifier">i</span><span class="hl-code">++</span><span class="hl-brackets">){
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">key</span><span class="hl-brackets">[</span><span class="hl-identifier">i</span><span class="hl-brackets">]</span><span class="hl-code"> == </span><span class="hl-identifier">o</span><span class="hl-brackets">) </span><span class="hl-reserved">return </span><span class="hl-identifier">i</span><span class="hl-code">;
</span><span class="hl-brackets">}
</span><span class="hl-reserved">return</span><span class="hl-code"> -</span><span class="hl-number">1</span><span class="hl-code">;
</span><span class="hl-brackets">}</span><span class="hl-reserved">else</span><span class="hl-brackets">{
</span><span class="hl-reserved">return this</span><span class="hl-code">.</span><span class="hl-identifier">keys</span><span class="hl-code">.</span><span class="hl-identifier">indexOf</span><span class="hl-brackets">(</span><span class="hl-identifier">o</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-brackets">}
}</span><span class="hl-code">,
</span><span class="hl-identifier">item</span><span class="hl-code"> : </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">key</span><span class="hl-brackets">){
</span><span class="hl-reserved">return this</span><span class="hl-code">.</span><span class="hl-identifier">items</span><span class="hl-brackets">[</span><span class="hl-identifier">key</span><span class="hl-brackets">]</span><span class="hl-code">;
</span><span class="hl-brackets">}</span><span class="hl-code">,
</span><span class="hl-identifier">contains</span><span class="hl-code"> : </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">o</span><span class="hl-brackets">){
</span><span class="hl-reserved">return this</span><span class="hl-code">.</span><span class="hl-identifier">indexOf</span><span class="hl-brackets">(</span><span class="hl-identifier">o</span><span class="hl-brackets">)</span><span class="hl-code"> != -</span><span class="hl-number">1</span><span class="hl-code">;
</span><span class="hl-brackets">}</span><span class="hl-code">,
</span><span class="hl-identifier">containsKey</span><span class="hl-code"> : </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">key</span><span class="hl-brackets">){
</span><span class="hl-reserved">return typeof this</span><span class="hl-code">.</span><span class="hl-identifier">items</span><span class="hl-brackets">[</span><span class="hl-identifier">key</span><span class="hl-brackets">]</span><span class="hl-code"> != </span><span class="hl-quotes">'</span><span class="hl-string">undefined</span><span class="hl-quotes">'</span><span class="hl-code">;
</span><span class="hl-brackets">}</span><span class="hl-code">,
</span><span class="hl-identifier">clear</span><span class="hl-code"> : </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">o</span><span class="hl-brackets">){
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">items</span><span class="hl-code"> = </span><span class="hl-brackets">[]</span><span class="hl-code">;
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">keys</span><span class="hl-code"> = </span><span class="hl-brackets">[]</span><span class="hl-code">;
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">fireEvent</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">clear</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-brackets">}</span><span class="hl-code">,
</span><span class="hl-identifier">first</span><span class="hl-code"> : </span><span class="hl-reserved">function</span><span class="hl-brackets">(){
</span><span class="hl-reserved">return this</span><span class="hl-code">.</span><span class="hl-identifier">items</span><span class="hl-brackets">[</span><span class="hl-number">0</span><span class="hl-brackets">]</span><span class="hl-code">;
</span><span class="hl-brackets">}</span><span class="hl-code">,
</span><span class="hl-identifier">last</span><span class="hl-code"> : </span><span class="hl-reserved">function</span><span class="hl-brackets">(){
</span><span class="hl-reserved">return this</span><span class="hl-code">.</span><span class="hl-identifier">items</span><span class="hl-brackets">[</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">items</span><span class="hl-code">.</span><span class="hl-identifier">length</span><span class="hl-brackets">]</span><span class="hl-code">;
</span><span class="hl-brackets">}
})</span><span class="hl-default">;
</span><span class="hl-identifier">YAHOO</span><span class="hl-default">.</span><span class="hl-identifier">ext</span><span class="hl-default">.</span><span class="hl-identifier">util</span><span class="hl-default">.</span><span class="hl-identifier">MixedCollection</span><span class="hl-default">.</span><span class="hl-identifier">prototype</span><span class="hl-default">.</span><span class="hl-identifier">get</span><span class="hl-default"> = </span><span class="hl-identifier">YAHOO</span><span class="hl-default">.</span><span class="hl-identifier">ext</span><span class="hl-default">.</span><span class="hl-identifier">util</span><span class="hl-default">.</span><span class="hl-identifier">MixedCollection</span><span class="hl-default">.</span><span class="hl-identifier">prototype</span><span class="hl-default">.</span><span class="hl-identifier">item</span><span class="hl-default">;</span></pre></div><hr>Copyright &copy; 2006 Jack Slocum. All rights reserved.</body></html>