webgui/www/extras/yui-ext/docs/output/tabview.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

1951 lines
No EOL
266 KiB
HTML

<html><head><title>tabview.js</title><link rel="stylesheet" type="text/css" href="../style.css" media="screen"/></head><body><div class="hl-main"><pre><span class="hl-comment">/*
Copyright (c) 2006, Yahoo! Inc. All rights reserved.
Code licensed under the BSD License:
</span><span class="hl-url">http://developer.yahoo.net/yui/license.txt</span><span class="hl-comment">
version: 0.12.0
*/
</span><span class="hl-brackets">(</span><span class="hl-reserved">function</span><span class="hl-brackets">() {
</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">Lang</span><span class="hl-code"> = </span><span class="hl-brackets">{
</span><span class="hl-identifier">isArray</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">val</span><span class="hl-brackets">) { </span><span class="hl-comment">// frames lose type, so test constructor string
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-identifier">val</span><span class="hl-code">.</span><span class="hl-identifier">constructor</span><span class="hl-code"> &amp;&amp; </span><span class="hl-identifier">val</span><span class="hl-code">.</span><span class="hl-identifier">constructor</span><span class="hl-code">.</span><span class="hl-identifier">toString</span><span class="hl-brackets">()</span><span class="hl-code">.</span><span class="hl-identifier">indexOf</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">Array</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code"> &gt; -</span><span class="hl-number">1</span><span class="hl-brackets">) {
</span><span class="hl-reserved">return true</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 </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">Lang</span><span class="hl-code">.</span><span class="hl-identifier">isObject</span><span class="hl-brackets">(</span><span class="hl-identifier">val</span><span class="hl-brackets">)</span><span class="hl-code"> &amp;&amp; </span><span class="hl-identifier">val</span><span class="hl-code">.</span><span class="hl-identifier">constructor</span><span class="hl-code"> == </span><span class="hl-builtin">Array</span><span class="hl-code">;
</span><span class="hl-brackets">}
}</span><span class="hl-code">,
</span><span class="hl-identifier">isBoolean</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">val</span><span class="hl-brackets">) {
</span><span class="hl-reserved">return typeof </span><span class="hl-identifier">val</span><span class="hl-code"> == </span><span class="hl-quotes">'</span><span class="hl-string">boolean</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">isFunction</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">val</span><span class="hl-brackets">) {
</span><span class="hl-reserved">return typeof </span><span class="hl-identifier">val</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-code">;
</span><span class="hl-brackets">}</span><span class="hl-code">,
</span><span class="hl-identifier">isNull</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">val</span><span class="hl-brackets">) {
</span><span class="hl-reserved">return </span><span class="hl-identifier">val</span><span class="hl-code"> === </span><span class="hl-reserved">null</span><span class="hl-code">;
</span><span class="hl-brackets">}</span><span class="hl-code">,
</span><span class="hl-identifier">isNumber</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">val</span><span class="hl-brackets">) {
</span><span class="hl-reserved">return</span><span class="hl-code"> !</span><span class="hl-identifier">isNaN</span><span class="hl-brackets">(</span><span class="hl-identifier">val</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">isObject</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">val</span><span class="hl-brackets">) {
</span><span class="hl-reserved">return typeof </span><span class="hl-identifier">val</span><span class="hl-code"> == </span><span class="hl-quotes">'</span><span class="hl-string">object</span><span class="hl-quotes">'</span><span class="hl-code"> || </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">Lang</span><span class="hl-code">.</span><span class="hl-identifier">isFunction</span><span class="hl-brackets">(</span><span class="hl-identifier">val</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">isString</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">val</span><span class="hl-brackets">) {
</span><span class="hl-reserved">return typeof </span><span class="hl-identifier">val</span><span class="hl-code"> == </span><span class="hl-quotes">'</span><span class="hl-string">string</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">isUndefined</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">val</span><span class="hl-brackets">) {
</span><span class="hl-reserved">return typeof </span><span class="hl-identifier">val</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-brackets">})()</span><span class="hl-default">;</span><span class="hl-comment">/**
* Provides Attribute configurations.
* @namespace YAHOO.util
* @class Attribute
* @constructor
* @param hash {Object} The intial Attribute.
* @param {YAHOO.util.AttributeProvider} The owner of the Attribute instance.
*/
</span><span class="hl-identifier">YAHOO</span><span class="hl-default">.</span><span class="hl-identifier">util</span><span class="hl-default">.</span><span class="hl-identifier">Attribute</span><span class="hl-default"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">hash</span><span class="hl-code">, </span><span class="hl-identifier">owner</span><span class="hl-brackets">) {
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-identifier">owner</span><span class="hl-brackets">) {
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">owner</span><span class="hl-code"> = </span><span class="hl-identifier">owner</span><span class="hl-code">;
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">configure</span><span class="hl-brackets">(</span><span class="hl-identifier">hash</span><span class="hl-code">, </span><span class="hl-reserved">true</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">util</span><span class="hl-default">.</span><span class="hl-identifier">Attribute</span><span class="hl-default">.</span><span class="hl-identifier">prototype</span><span class="hl-default"> = </span><span class="hl-brackets">{
</span><span class="hl-comment">/**
* The name of the attribute.
* @property name
* @type String
*/
</span><span class="hl-identifier">name</span><span class="hl-code">: </span><span class="hl-identifier">undefined</span><span class="hl-code">,
</span><span class="hl-comment">/**
* The value of the attribute.
* @property value
* @type String
*/
</span><span class="hl-identifier">value</span><span class="hl-code">: </span><span class="hl-reserved">null</span><span class="hl-code">,
</span><span class="hl-comment">/**
* The owner of the attribute.
* @property owner
* @type YAHOO.util.AttributeProvider
*/
</span><span class="hl-identifier">owner</span><span class="hl-code">: </span><span class="hl-reserved">null</span><span class="hl-code">,
</span><span class="hl-comment">/**
* Whether or not the attribute is read only.
* @property readOnly
* @type Boolean
*/
</span><span class="hl-identifier">readOnly</span><span class="hl-code">: </span><span class="hl-reserved">false</span><span class="hl-code">,
</span><span class="hl-comment">/**
* Whether or not the attribute can only be written once.
* @property writeOnce
* @type Boolean
*/
</span><span class="hl-identifier">writeOnce</span><span class="hl-code">: </span><span class="hl-reserved">false</span><span class="hl-code">,
</span><span class="hl-comment">/**
* The attribute's initial configuration.
* @private
* @property _initialConfig
* @type Object
*/
</span><span class="hl-identifier">_initialConfig</span><span class="hl-code">: </span><span class="hl-reserved">null</span><span class="hl-code">,
</span><span class="hl-comment">/**
* Whether or not the attribute's value has been set.
* @private
* @property _written
* @type Boolean
*/
</span><span class="hl-identifier">_written</span><span class="hl-code">: </span><span class="hl-reserved">false</span><span class="hl-code">,
</span><span class="hl-comment">/**
* The method to use when setting the attribute's value.
* The method recieves the new value as the only argument.
* @property method
* @type Function
*/
</span><span class="hl-identifier">method</span><span class="hl-code">: </span><span class="hl-reserved">null</span><span class="hl-code">,
</span><span class="hl-comment">/**
* The validator to use when setting the attribute's value.
* @property validator
* @type Function
* @return Boolean
*/
</span><span class="hl-identifier">validator</span><span class="hl-code">: </span><span class="hl-reserved">null</span><span class="hl-code">,
</span><span class="hl-comment">/**
* Retrieves the current value of the attribute.
* @method getValue
* @return {any} The current value of the attribute.
*/
</span><span class="hl-identifier">getValue</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">value</span><span class="hl-code">;
</span><span class="hl-brackets">}</span><span class="hl-code">,
</span><span class="hl-comment">/**
* Sets the value of the attribute and fires beforeChange and change events.
* @method setValue
* @param {Any} value The value to apply to the attribute.
* @param {Boolean} silent If true the change events will not be fired.
* @return {Boolean} Whether or not the value was set.
*/
</span><span class="hl-identifier">setValue</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">value</span><span class="hl-code">, </span><span class="hl-identifier">silent</span><span class="hl-brackets">) {
</span><span class="hl-reserved">var </span><span class="hl-identifier">beforeRetVal</span><span class="hl-code">;
</span><span class="hl-reserved">var </span><span class="hl-identifier">owner</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">owner</span><span class="hl-code">;
</span><span class="hl-reserved">var </span><span class="hl-identifier">name</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">name</span><span class="hl-code">;
</span><span class="hl-reserved">var </span><span class="hl-identifier">event</span><span class="hl-code"> = </span><span class="hl-brackets">{
</span><span class="hl-identifier">type</span><span class="hl-code">: </span><span class="hl-identifier">name</span><span class="hl-code">,
</span><span class="hl-identifier">prevValue</span><span class="hl-code">: </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">getValue</span><span class="hl-brackets">()</span><span class="hl-code">,
</span><span class="hl-identifier">newValue</span><span class="hl-code">: </span><span class="hl-identifier">value
</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">this</span><span class="hl-code">.</span><span class="hl-identifier">readOnly</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">writeOnce</span><span class="hl-code"> &amp;&amp; </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_written</span><span class="hl-brackets">) ) {
</span><span class="hl-reserved">return false</span><span class="hl-code">; </span><span class="hl-comment">// write not allowed
</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">validator</span><span class="hl-code"> &amp;&amp; !</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">validator</span><span class="hl-code">.</span><span class="hl-identifier">call</span><span class="hl-brackets">(</span><span class="hl-identifier">owner</span><span class="hl-code">, </span><span class="hl-identifier">value</span><span class="hl-brackets">) ) {
</span><span class="hl-reserved">return false</span><span class="hl-code">; </span><span class="hl-comment">// invalid value
</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-identifier">silent</span><span class="hl-brackets">) {
</span><span class="hl-identifier">beforeRetVal</span><span class="hl-code"> = </span><span class="hl-identifier">owner</span><span class="hl-code">.</span><span class="hl-identifier">fireBeforeChangeEvent</span><span class="hl-brackets">(</span><span class="hl-identifier">event</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-identifier">beforeRetVal</span><span class="hl-code"> === </span><span class="hl-reserved">false</span><span class="hl-brackets">) {
</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">log</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">setValue </span><span class="hl-quotes">'</span><span class="hl-code"> + </span><span class="hl-identifier">name</span><span class="hl-code"> +
</span><span class="hl-quotes">'</span><span class="hl-string">cancelled by beforeChange event</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">info</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">Attribute</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-reserved">return false</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">method</span><span class="hl-brackets">) {
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">method</span><span class="hl-code">.</span><span class="hl-identifier">call</span><span class="hl-brackets">(</span><span class="hl-identifier">owner</span><span class="hl-code">, </span><span class="hl-identifier">value</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">value</span><span class="hl-code"> = </span><span class="hl-identifier">value</span><span class="hl-code">;
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_written</span><span class="hl-code"> = </span><span class="hl-reserved">true</span><span class="hl-code">;
</span><span class="hl-identifier">event</span><span class="hl-code">.</span><span class="hl-identifier">type</span><span class="hl-code"> = </span><span class="hl-identifier">name</span><span class="hl-code">;
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-code">!</span><span class="hl-identifier">silent</span><span class="hl-brackets">) {
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">owner</span><span class="hl-code">.</span><span class="hl-identifier">fireChangeEvent</span><span class="hl-brackets">(</span><span class="hl-identifier">event</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-brackets">}
</span><span class="hl-reserved">return true</span><span class="hl-code">;
</span><span class="hl-brackets">}</span><span class="hl-code">,
</span><span class="hl-comment">/**
* Allows for configuring the Attribute's properties.
* @method configure
* @param {Object} map A key-value map of Attribute properties.
* @param {Boolean} init Whether or not this should become the initial config.
*/
</span><span class="hl-identifier">configure</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">map</span><span class="hl-code">, </span><span class="hl-identifier">init</span><span class="hl-brackets">) {
</span><span class="hl-identifier">map</span><span class="hl-code"> = </span><span class="hl-identifier">map</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">_written</span><span class="hl-code"> = </span><span class="hl-reserved">false</span><span class="hl-code">; </span><span class="hl-comment">// reset writeOnce
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_initialConfig</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_initialConfig</span><span class="hl-code"> || </span><span class="hl-brackets">{}</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">key </span><span class="hl-reserved">in </span><span class="hl-identifier">map</span><span class="hl-brackets">) {
</span><span class="hl-reserved">if </span><span class="hl-brackets">( </span><span class="hl-identifier">key</span><span class="hl-code"> &amp;&amp; </span><span class="hl-identifier">map</span><span class="hl-code">.</span><span class="hl-identifier">hasOwnProperty</span><span class="hl-brackets">(</span><span class="hl-identifier">key</span><span class="hl-brackets">) ) {
</span><span class="hl-reserved">this</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">map</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-identifier">init</span><span class="hl-brackets">) {
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_initialConfig</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">map</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-comment">/**
* Resets the value to the initial config value.
* @method resetValue
* @return {Boolean} Whether or not the value was set.
*/
</span><span class="hl-identifier">resetValue</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">setValue</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_initialConfig</span><span class="hl-code">.</span><span class="hl-identifier">value</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-brackets">}</span><span class="hl-code">,
</span><span class="hl-comment">/**
* Resets the attribute config to the initial config state.
* @method resetConfig
*/
</span><span class="hl-identifier">resetConfig</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">() {
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">configure</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_initialConfig</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-brackets">}</span><span class="hl-code">,
</span><span class="hl-comment">/**
* Resets the value to the current value.
* Useful when values may have gotten out of sync with actual properties.
* @method refresh
* @return {Boolean} Whether or not the value was set.
*/
</span><span class="hl-identifier">refresh</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">silent</span><span class="hl-brackets">) {
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">setValue</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">value</span><span class="hl-code">, </span><span class="hl-identifier">silent</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-brackets">}
}</span><span class="hl-default">;</span><span class="hl-brackets">(</span><span class="hl-reserved">function</span><span class="hl-brackets">() {
</span><span class="hl-reserved">var </span><span class="hl-identifier">Lang</span><span class="hl-code"> = </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">Lang</span><span class="hl-code">;
</span><span class="hl-comment">/*
Copyright (c) 2006, Yahoo! Inc. All rights reserved.
Code licensed under the BSD License:
</span><span class="hl-url">http://developer.yahoo.net/yui/license.txt
</span><span class="hl-comment">*/
// holder
/**
* Provides and manages YAHOO.util.Attribute instances
* @namespace YAHOO.util
* @class AttributeProvider
* @uses YAHOO.util.EventProvider
*/
</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">AttributeProvider</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">() {}</span><span class="hl-code">;
</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">AttributeProvider</span><span class="hl-code">.</span><span class="hl-identifier">prototype</span><span class="hl-code"> = </span><span class="hl-brackets">{
</span><span class="hl-comment">/**
* A key-value map of Attribute configurations
* @property _configs
* @protected (may be used by subclasses and augmentors)
* @private
* @type {Object}
*/
</span><span class="hl-identifier">_configs</span><span class="hl-code">: </span><span class="hl-reserved">null</span><span class="hl-code">,
</span><span class="hl-comment">/**
* Returns the current value of the attribute.
* @method get
* @param {String} key The attribute whose value will be returned.
*/
</span><span class="hl-identifier">get</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">configs</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_configs</span><span class="hl-code"> || </span><span class="hl-brackets">{}</span><span class="hl-code">;
</span><span class="hl-reserved">var </span><span class="hl-identifier">config</span><span class="hl-code"> = </span><span class="hl-identifier">configs</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-code">!</span><span class="hl-identifier">config</span><span class="hl-brackets">) {
</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">log</span><span class="hl-brackets">(</span><span class="hl-identifier">key</span><span class="hl-code"> + </span><span class="hl-quotes">'</span><span class="hl-string"> not found</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">error</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">AttributeProvider</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-reserved">return </span><span class="hl-identifier">undefined</span><span class="hl-code">;
</span><span class="hl-brackets">}
</span><span class="hl-reserved">return </span><span class="hl-identifier">config</span><span class="hl-code">.</span><span class="hl-identifier">value</span><span class="hl-code">;
</span><span class="hl-brackets">}</span><span class="hl-code">,
</span><span class="hl-comment">/**
* Sets the value of a config.
* @method set
* @param {String} key The name of the attribute
* @param {Any} value The value to apply to the attribute
* @param {Boolean} silent Whether or not to suppress change events
* @return {Boolean} Whether or not the value was set.
*/
</span><span class="hl-identifier">set</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">value</span><span class="hl-code">, </span><span class="hl-identifier">silent</span><span class="hl-brackets">){
</span><span class="hl-reserved">var </span><span class="hl-identifier">configs</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_configs</span><span class="hl-code"> || </span><span class="hl-brackets">{}</span><span class="hl-code">;
</span><span class="hl-reserved">var </span><span class="hl-identifier">config</span><span class="hl-code"> = </span><span class="hl-identifier">configs</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-code">!</span><span class="hl-identifier">config</span><span class="hl-brackets">) {
</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">log</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">set failed: </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-quotes">'</span><span class="hl-string"> not found</span><span class="hl-quotes">'</span><span class="hl-code">,
</span><span class="hl-quotes">'</span><span class="hl-string">error</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">AttributeProvider</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-reserved">return false</span><span class="hl-code">;
</span><span class="hl-brackets">}
</span><span class="hl-reserved">return </span><span class="hl-identifier">config</span><span class="hl-code">.</span><span class="hl-identifier">setValue</span><span class="hl-brackets">(</span><span class="hl-identifier">value</span><span class="hl-code">, </span><span class="hl-identifier">silent</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-brackets">}</span><span class="hl-code">,
</span><span class="hl-comment">/**
* Returns an array of attribute names.
* @method getAttributeKeys
* @return {Array} An array of attribute names.
*/
</span><span class="hl-identifier">getAttributeKeys</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(){
</span><span class="hl-reserved">var </span><span class="hl-identifier">configs</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_configs</span><span class="hl-code">;
</span><span class="hl-reserved">var </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">var </span><span class="hl-identifier">config</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">key </span><span class="hl-reserved">in </span><span class="hl-identifier">configs</span><span class="hl-brackets">) {
</span><span class="hl-identifier">config</span><span class="hl-code"> = </span><span class="hl-identifier">configs</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-identifier">configs</span><span class="hl-code">.</span><span class="hl-identifier">hasOwnProperty</span><span class="hl-brackets">(</span><span class="hl-identifier">key</span><span class="hl-brackets">)</span><span class="hl-code"> &amp;&amp;
!</span><span class="hl-identifier">Lang</span><span class="hl-code">.</span><span class="hl-identifier">isUndefined</span><span class="hl-brackets">(</span><span class="hl-identifier">config</span><span class="hl-brackets">) ) {
</span><span class="hl-identifier">keys</span><span class="hl-brackets">[</span><span class="hl-identifier">keys</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-identifier">key</span><span class="hl-code">;
</span><span class="hl-brackets">}
}
</span><span class="hl-reserved">return </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-comment">/**
* Sets multiple attribute values.
* @method setAttributes
* @param {Object} map A key-value map of attributes
* @param {Boolean} silent Whether or not to suppress change events
*/
</span><span class="hl-identifier">setAttributes</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">map</span><span class="hl-code">, </span><span class="hl-identifier">silent</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">map</span><span class="hl-brackets">) {
</span><span class="hl-reserved">if </span><span class="hl-brackets">( </span><span class="hl-identifier">map</span><span class="hl-code">.</span><span class="hl-identifier">hasOwnProperty</span><span class="hl-brackets">(</span><span class="hl-identifier">key</span><span class="hl-brackets">) ) {
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">set</span><span class="hl-brackets">(</span><span class="hl-identifier">key</span><span class="hl-code">, </span><span class="hl-identifier">map</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">silent</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-brackets">}
}
}</span><span class="hl-code">,
</span><span class="hl-comment">/**
* Resets the specified attribute's value to its initial value.
* @method resetValue
* @param {String} key The name of the attribute
* @param {Boolean} silent Whether or not to suppress change events
* @return {Boolean} Whether or not the value was set
*/
</span><span class="hl-identifier">resetValue</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">silent</span><span class="hl-brackets">){
</span><span class="hl-reserved">var </span><span class="hl-identifier">configs</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_configs</span><span class="hl-code"> || </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-identifier">configs</span><span class="hl-brackets">[</span><span class="hl-identifier">key</span><span class="hl-brackets">]) {
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">set</span><span class="hl-brackets">(</span><span class="hl-identifier">key</span><span class="hl-code">, </span><span class="hl-identifier">configs</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">_initialConfig</span><span class="hl-code">.</span><span class="hl-identifier">value</span><span class="hl-code">, </span><span class="hl-identifier">silent</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-reserved">return true</span><span class="hl-code">;
</span><span class="hl-brackets">}
</span><span class="hl-reserved">return false</span><span class="hl-code">;
</span><span class="hl-brackets">}</span><span class="hl-code">,
</span><span class="hl-comment">/**
* Sets the attribute's value to its current value.
* @method refresh
* @param {String | Array} key The attribute(s) to refresh
* @param {Boolean} silent Whether or not to suppress change events
*/
</span><span class="hl-identifier">refresh</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">silent</span><span class="hl-brackets">){
</span><span class="hl-reserved">var </span><span class="hl-identifier">configs</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_configs</span><span class="hl-code">;
</span><span class="hl-identifier">key</span><span class="hl-code"> = </span><span class="hl-brackets">( ( </span><span class="hl-identifier">Lang</span><span class="hl-code">.</span><span class="hl-identifier">isString</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-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-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">getAttributeKeys</span><span class="hl-brackets">()</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">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-brackets">) {
</span><span class="hl-reserved">if </span><span class="hl-brackets">( </span><span class="hl-comment">// only set if there is a value and not null
</span><span class="hl-identifier">configs</span><span class="hl-brackets">[</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"> &amp;&amp;
! </span><span class="hl-identifier">Lang</span><span class="hl-code">.</span><span class="hl-identifier">isUndefined</span><span class="hl-brackets">(</span><span class="hl-identifier">configs</span><span class="hl-brackets">[</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">value</span><span class="hl-brackets">)</span><span class="hl-code"> &amp;&amp;
! </span><span class="hl-identifier">Lang</span><span class="hl-code">.</span><span class="hl-identifier">isNull</span><span class="hl-brackets">(</span><span class="hl-identifier">configs</span><span class="hl-brackets">[</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">value</span><span class="hl-brackets">) ) {
</span><span class="hl-identifier">configs</span><span class="hl-brackets">[</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">refresh</span><span class="hl-brackets">(</span><span class="hl-identifier">silent</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-brackets">}
}
}</span><span class="hl-code">,
</span><span class="hl-comment">/**
* Adds an Attribute to the AttributeProvider instance.
* @method register
* @param {String} key The attribute's name
* @param {Object} map A key-value map containing the
* attribute's properties.
*/
</span><span class="hl-identifier">register</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">map</span><span class="hl-brackets">) {
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_configs</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_configs</span><span class="hl-code"> || </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">this</span><span class="hl-code">.</span><span class="hl-identifier">_configs</span><span class="hl-brackets">[</span><span class="hl-identifier">key</span><span class="hl-brackets">]) { </span><span class="hl-comment">// dont override
</span><span class="hl-reserved">return false</span><span class="hl-code">;
</span><span class="hl-brackets">}
</span><span class="hl-identifier">map</span><span class="hl-code">.</span><span class="hl-identifier">name</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">_configs</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">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">Attribute</span><span class="hl-brackets">(</span><span class="hl-identifier">map</span><span class="hl-code">, </span><span class="hl-reserved">this</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-reserved">return true</span><span class="hl-code">;
</span><span class="hl-brackets">}</span><span class="hl-code">,
</span><span class="hl-comment">/**
* Returns the attribute's properties.
* @method getAttributeConfig
* @param {String} key The attribute's name
* @private
* @return {object} A key-value map containing all of the
* attribute's properties.
*/
</span><span class="hl-identifier">getAttributeConfig</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">configs</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_configs</span><span class="hl-code"> || </span><span class="hl-brackets">{}</span><span class="hl-code">;
</span><span class="hl-reserved">var </span><span class="hl-identifier">config</span><span class="hl-code"> = </span><span class="hl-identifier">configs</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-reserved">var </span><span class="hl-identifier">map</span><span class="hl-code"> = </span><span class="hl-brackets">{}</span><span class="hl-code">; </span><span class="hl-comment">// returning a copy to prevent overrides
</span><span class="hl-reserved">for </span><span class="hl-brackets">(</span><span class="hl-identifier">key </span><span class="hl-reserved">in </span><span class="hl-identifier">config</span><span class="hl-brackets">) {
</span><span class="hl-reserved">if </span><span class="hl-brackets">( </span><span class="hl-identifier">config</span><span class="hl-code">.</span><span class="hl-identifier">hasOwnProperty</span><span class="hl-brackets">(</span><span class="hl-identifier">key</span><span class="hl-brackets">) ) {
</span><span class="hl-identifier">map</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">config</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">return </span><span class="hl-identifier">map</span><span class="hl-code">;
</span><span class="hl-brackets">}</span><span class="hl-code">,
</span><span class="hl-comment">/**
* Sets or updates an Attribute instance's properties.
* @method configureAttribute
* @param {String} key The attribute's name.
* @param {Object} map A key-value map of attribute properties
* @param {Boolean} init Whether or not this should become the intial config.
*/
</span><span class="hl-identifier">configureAttribute</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">map</span><span class="hl-code">, </span><span class="hl-identifier">init</span><span class="hl-brackets">) {
</span><span class="hl-reserved">var </span><span class="hl-identifier">configs</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_configs</span><span class="hl-code"> || </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-code">!</span><span class="hl-identifier">configs</span><span class="hl-brackets">[</span><span class="hl-identifier">key</span><span class="hl-brackets">]) {
</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">log</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">unable to configure, </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-quotes">'</span><span class="hl-string"> not found</span><span class="hl-quotes">'</span><span class="hl-code">,
</span><span class="hl-quotes">'</span><span class="hl-string">error</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">AttributeProvider</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-reserved">return false</span><span class="hl-code">;
</span><span class="hl-brackets">}
</span><span class="hl-identifier">configs</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">configure</span><span class="hl-brackets">(</span><span class="hl-identifier">map</span><span class="hl-code">, </span><span class="hl-identifier">init</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-brackets">}</span><span class="hl-code">,
</span><span class="hl-comment">/**
* Resets an attribute to its intial configuration.
* @method resetAttributeConfig
* @param {String} key The attribute's name.
* @private
*/
</span><span class="hl-identifier">resetAttributeConfig</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">configs</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_configs</span><span class="hl-code"> || </span><span class="hl-brackets">{}</span><span class="hl-code">;
</span><span class="hl-identifier">configs</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">resetConfig</span><span class="hl-brackets">()</span><span class="hl-code">;
</span><span class="hl-brackets">}</span><span class="hl-code">,
</span><span class="hl-comment">/**
* Fires the attribute's beforeChange event.
* @method fireBeforeChangeEvent
* @param {String} key The attribute's name.
* @param {Obj} e The event object to pass to handlers.
*/
</span><span class="hl-identifier">fireBeforeChangeEvent</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">e</span><span class="hl-brackets">) {
</span><span class="hl-reserved">var </span><span class="hl-identifier">type</span><span class="hl-code"> = </span><span class="hl-quotes">'</span><span class="hl-string">before</span><span class="hl-quotes">'</span><span class="hl-code">;
</span><span class="hl-identifier">type</span><span class="hl-code"> += </span><span class="hl-identifier">e</span><span class="hl-code">.</span><span class="hl-identifier">type</span><span class="hl-code">.</span><span class="hl-identifier">charAt</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">toUpperCase</span><span class="hl-brackets">()</span><span class="hl-code"> + </span><span class="hl-identifier">e</span><span class="hl-code">.</span><span class="hl-identifier">type</span><span class="hl-code">.</span><span class="hl-identifier">substr</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-quotes">'</span><span class="hl-string">Change</span><span class="hl-quotes">'</span><span class="hl-code">;
</span><span class="hl-identifier">e</span><span class="hl-code">.</span><span class="hl-identifier">type</span><span class="hl-code"> = </span><span class="hl-identifier">type</span><span class="hl-code">;
</span><span class="hl-reserved">return this</span><span class="hl-code">.</span><span class="hl-identifier">fireEvent</span><span class="hl-brackets">(</span><span class="hl-identifier">e</span><span class="hl-code">.</span><span class="hl-identifier">type</span><span class="hl-code">, </span><span class="hl-identifier">e</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-brackets">}</span><span class="hl-code">,
</span><span class="hl-comment">/**
* Fires the attribute's change event.
* @method fireChangeEvent
* @param {String} key The attribute's name.
* @param {Obj} e The event object to pass to the handlers.
*/
</span><span class="hl-identifier">fireChangeEvent</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">e</span><span class="hl-brackets">) {
</span><span class="hl-identifier">e</span><span class="hl-code">.</span><span class="hl-identifier">type</span><span class="hl-code"> += </span><span class="hl-quotes">'</span><span class="hl-string">Change</span><span class="hl-quotes">'</span><span class="hl-code">;
</span><span class="hl-reserved">return this</span><span class="hl-code">.</span><span class="hl-identifier">fireEvent</span><span class="hl-brackets">(</span><span class="hl-identifier">e</span><span class="hl-code">.</span><span class="hl-identifier">type</span><span class="hl-code">, </span><span class="hl-identifier">e</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">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">augment</span><span class="hl-brackets">(</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">AttributeProvider</span><span class="hl-code">, </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">EventProvider</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-brackets">})()</span><span class="hl-default">;</span><span class="hl-brackets">(</span><span class="hl-reserved">function</span><span class="hl-brackets">() {
</span><span class="hl-comment">// internal shorthand
</span><span class="hl-reserved">var </span><span class="hl-identifier">Dom</span><span class="hl-code"> = </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">Dom</span><span class="hl-code">,
</span><span class="hl-identifier">Lang</span><span class="hl-code"> = </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">Lang</span><span class="hl-code">,
</span><span class="hl-identifier">EventPublisher</span><span class="hl-code"> = </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">EventPublisher</span><span class="hl-code">,
</span><span class="hl-identifier">AttributeProvider</span><span class="hl-code"> = </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">AttributeProvider</span><span class="hl-code">;
</span><span class="hl-comment">/**
* Element provides an interface to an HTMLElement's attributes and common
* methods. Other commonly used attributes are added as well.
* @namespace YAHOO.util
* @class Element
* @uses YAHOO.util.AttributeProvider
* @constructor
* @param el {HTMLElement | String} The html element that
* represents the Element.
* @param {Object} map A key-value map of initial config names and values
*/
</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">Element</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">el</span><span class="hl-code">, </span><span class="hl-identifier">map</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-brackets">) {
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">init</span><span class="hl-brackets">(</span><span class="hl-identifier">el</span><span class="hl-code">, </span><span class="hl-identifier">map</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">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">util</span><span class="hl-code">.</span><span class="hl-identifier">Element</span><span class="hl-code">.</span><span class="hl-identifier">prototype</span><span class="hl-code"> = </span><span class="hl-brackets">{
</span><span class="hl-comment">/**
* Dom events supported by the Element instance.
* @property DOM_EVENTS
* @type Object
*/
</span><span class="hl-identifier">DOM_EVENTS</span><span class="hl-code">: </span><span class="hl-reserved">null</span><span class="hl-code">,
</span><span class="hl-comment">/**
* Wrapper for HTMLElement method.
* @method appendChild
* @param {Boolean} deep Whether or not to do a deep clone
*/
</span><span class="hl-identifier">appendChild</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">child</span><span class="hl-brackets">) {
</span><span class="hl-identifier">child</span><span class="hl-code"> = </span><span class="hl-identifier">child</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-code"> ? </span><span class="hl-identifier">child</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">element</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code"> : </span><span class="hl-identifier">child</span><span class="hl-code">;
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">element</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-identifier">appendChild</span><span class="hl-brackets">(</span><span class="hl-identifier">child</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-brackets">}</span><span class="hl-code">,
</span><span class="hl-comment">/**
* Wrapper for HTMLElement method.
* @method getElementsByTagName
* @param {String} tag The tagName to collect
*/
</span><span class="hl-identifier">getElementsByTagName</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">tag</span><span class="hl-brackets">) {
</span><span class="hl-reserved">return this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">element</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-identifier">getElementsByTagName</span><span class="hl-brackets">(</span><span class="hl-identifier">tag</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-brackets">}</span><span class="hl-code">,
</span><span class="hl-comment">/**
* Wrapper for HTMLElement method.
* @method hasChildNodes
* @return {Boolean} Whether or not the element has childNodes
*/
</span><span class="hl-identifier">hasChildNodes</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">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">element</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-identifier">hasChildNodes</span><span class="hl-brackets">()</span><span class="hl-code">;
</span><span class="hl-brackets">}</span><span class="hl-code">,
</span><span class="hl-comment">/**
* Wrapper for HTMLElement method.
* @method insertBefore
* @param {HTMLElement} element The HTMLElement to insert
* @param {HTMLElement} before The HTMLElement to insert
* the element before.
*/
</span><span class="hl-identifier">insertBefore</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">element</span><span class="hl-code">, </span><span class="hl-identifier">before</span><span class="hl-brackets">) {
</span><span class="hl-identifier">element</span><span class="hl-code"> = </span><span class="hl-identifier">element</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-code"> ? </span><span class="hl-identifier">element</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">element</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code"> : </span><span class="hl-identifier">element</span><span class="hl-code">;
</span><span class="hl-identifier">before</span><span class="hl-code"> = </span><span class="hl-brackets">(</span><span class="hl-identifier">before</span><span class="hl-code"> &amp;&amp; </span><span class="hl-identifier">before</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">)</span><span class="hl-code"> ? </span><span class="hl-identifier">before</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">element</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code"> : </span><span class="hl-identifier">before</span><span class="hl-code">;
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">element</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-identifier">insertBefore</span><span class="hl-brackets">(</span><span class="hl-identifier">element</span><span class="hl-code">, </span><span class="hl-identifier">before</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-brackets">}</span><span class="hl-code">,
</span><span class="hl-comment">/**
* Wrapper for HTMLElement method.
* @method removeChild
* @param {HTMLElement} child The HTMLElement to remove
*/
</span><span class="hl-identifier">removeChild</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">child</span><span class="hl-brackets">) {
</span><span class="hl-identifier">child</span><span class="hl-code"> = </span><span class="hl-identifier">child</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-code"> ? </span><span class="hl-identifier">child</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">element</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code"> : </span><span class="hl-identifier">child</span><span class="hl-code">;
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">element</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-identifier">removeChild</span><span class="hl-brackets">(</span><span class="hl-identifier">child</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-reserved">return true</span><span class="hl-code">;
</span><span class="hl-brackets">}</span><span class="hl-code">,
</span><span class="hl-comment">/**
* Wrapper for HTMLElement method.
* @method replaceChild
* @param {HTMLElement} newNode The HTMLElement to insert
* @param {HTMLElement} oldNode The HTMLElement to replace
*/
</span><span class="hl-identifier">replaceChild</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">newNode</span><span class="hl-code">, </span><span class="hl-identifier">oldNode</span><span class="hl-brackets">) {
</span><span class="hl-identifier">newNode</span><span class="hl-code"> = </span><span class="hl-identifier">newNode</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-code"> ? </span><span class="hl-identifier">newNode</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">element</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code"> : </span><span class="hl-identifier">newNode</span><span class="hl-code">;
</span><span class="hl-identifier">oldNode</span><span class="hl-code"> = </span><span class="hl-identifier">oldNode</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-code"> ? </span><span class="hl-identifier">oldNode</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">element</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code"> : </span><span class="hl-identifier">oldNode</span><span class="hl-code">;
</span><span class="hl-reserved">return this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">element</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-identifier">replaceChild</span><span class="hl-brackets">(</span><span class="hl-identifier">newNode</span><span class="hl-code">, </span><span class="hl-identifier">oldNode</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-brackets">}</span><span class="hl-code">,
</span><span class="hl-comment">/**
* Registers Element specific attributes.
* @method initAttributes
* @param {Object} map A key-value map of initial attribute configs
*/
</span><span class="hl-identifier">initAttributes</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">map</span><span class="hl-brackets">) {
</span><span class="hl-identifier">map</span><span class="hl-code"> = </span><span class="hl-identifier">map</span><span class="hl-code"> || </span><span class="hl-brackets">{}</span><span class="hl-code">;
</span><span class="hl-reserved">var </span><span class="hl-identifier">element</span><span class="hl-code"> = </span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-identifier">map</span><span class="hl-code">.</span><span class="hl-identifier">element</span><span class="hl-brackets">)</span><span class="hl-code"> || </span><span class="hl-reserved">null</span><span class="hl-code">;
</span><span class="hl-comment">/**
* The HTMLElement the Element instance refers to.
* @config element
* @type HTMLElement
*/
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">register</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">element</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-brackets">{
</span><span class="hl-identifier">value</span><span class="hl-code">: </span><span class="hl-identifier">element</span><span class="hl-code">,
</span><span class="hl-identifier">readOnly</span><span class="hl-code">: </span><span class="hl-reserved">true
</span><span class="hl-brackets">})</span><span class="hl-code">;
</span><span class="hl-brackets">}</span><span class="hl-code">,
</span><span class="hl-comment">/**
* Adds a listener for the given event. These may be DOM or
* customEvent listeners. Any event that is fired via fireEvent
* can be listened for. All handlers receive an event object.
* @method addListener
* @param {String} type The name of the event to listen for
* @param {Function} fn The handler to call when the event fires
* @param {Any} obj A variable to pass to the handler
* @param {Object} scope The object to use for the scope of the handler
*/
</span><span class="hl-identifier">addListener</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">type</span><span class="hl-code">, </span><span class="hl-identifier">fn</span><span class="hl-code">, </span><span class="hl-identifier">obj</span><span class="hl-code">, </span><span class="hl-identifier">scope</span><span class="hl-brackets">) {
</span><span class="hl-reserved">var </span><span class="hl-identifier">el</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">element</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-reserved">var </span><span class="hl-identifier">scope</span><span class="hl-code"> = </span><span class="hl-identifier">scope</span><span class="hl-code"> || </span><span class="hl-reserved">this</span><span class="hl-code">;
</span><span class="hl-identifier">el</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">id</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code"> || </span><span class="hl-identifier">el</span><span class="hl-code">;
</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">_events</span><span class="hl-brackets">[</span><span class="hl-identifier">type</span><span class="hl-brackets">]) { </span><span class="hl-comment">// create on the fly
</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">DOM_EVENTS</span><span class="hl-brackets">[</span><span class="hl-identifier">type</span><span class="hl-brackets">] ) {
</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">Event</span><span class="hl-code">.</span><span class="hl-identifier">addListener</span><span class="hl-brackets">(</span><span class="hl-identifier">el</span><span class="hl-code">, </span><span class="hl-identifier">type</span><span class="hl-code">, </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">e</span><span class="hl-brackets">) {
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-identifier">e</span><span class="hl-code">.</span><span class="hl-identifier">srcElement</span><span class="hl-code"> &amp;&amp; !</span><span class="hl-identifier">e</span><span class="hl-code">.</span><span class="hl-identifier">target</span><span class="hl-brackets">) { </span><span class="hl-comment">// supplement IE with target
</span><span class="hl-identifier">e</span><span class="hl-code">.</span><span class="hl-identifier">target</span><span class="hl-code"> = </span><span class="hl-identifier">e</span><span class="hl-code">.</span><span class="hl-identifier">srcElement</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-identifier">type</span><span class="hl-code">, </span><span class="hl-identifier">e</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">obj</span><span class="hl-code">, </span><span class="hl-identifier">scope</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">createEvent</span><span class="hl-brackets">(</span><span class="hl-identifier">type</span><span class="hl-code">, </span><span class="hl-reserved">this</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-brackets">[</span><span class="hl-identifier">type</span><span class="hl-brackets">]</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-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">subscribe</span><span class="hl-code">.</span><span class="hl-identifier">apply</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">, </span><span class="hl-identifier">arguments</span><span class="hl-brackets">)</span><span class="hl-code">; </span><span class="hl-comment">// notify via customEvent
</span><span class="hl-brackets">}</span><span class="hl-code">,
</span><span class="hl-comment">/**
* Alias for addListener
* @method on
* @param {String} type The name of the event to listen for
* @param {Function} fn The function call when the event fires
* @param {Any} obj A variable to pass to the handler
* @param {Object} scope The object to use for the scope of the handler
*/
</span><span class="hl-identifier">on</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">() { </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">addListener</span><span class="hl-code">.</span><span class="hl-identifier">apply</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">, </span><span class="hl-identifier">arguments</span><span class="hl-brackets">)</span><span class="hl-code">; </span><span class="hl-brackets">}</span><span class="hl-code">,
</span><span class="hl-comment">/**
* Remove an event listener
* @method removeListener
* @param {String} type The name of the event to listen for
* @param {Function} fn The function call when the event fires
*/
</span><span class="hl-identifier">removeListener</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">type</span><span class="hl-code">, </span><span class="hl-identifier">fn</span><span class="hl-brackets">) {
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">unsubscribe</span><span class="hl-code">.</span><span class="hl-identifier">apply</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">, </span><span class="hl-identifier">arguments</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-brackets">}</span><span class="hl-code">,
</span><span class="hl-comment">/**
* Wrapper for Dom method.
* @method addClass
* @param {String} className The className to add
*/
</span><span class="hl-identifier">addClass</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">className</span><span class="hl-brackets">) {
</span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">addClass</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">element</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">, </span><span class="hl-identifier">className</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-brackets">}</span><span class="hl-code">,
</span><span class="hl-comment">/**
* Wrapper for Dom method.
* @method getElementsByClassName
* @param {String} className The className to collect
* @param {String} tag (optional) The tag to use in
* conjunction with class name
* @return {Array} Array of HTMLElements
*/
</span><span class="hl-identifier">getElementsByClassName</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">className</span><span class="hl-code">, </span><span class="hl-identifier">tag</span><span class="hl-brackets">) {
</span><span class="hl-reserved">return </span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">getElementsByClassName</span><span class="hl-brackets">(</span><span class="hl-identifier">className</span><span class="hl-code">, </span><span class="hl-identifier">tag</span><span class="hl-code">,
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">element</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-comment">/**
* Wrapper for Dom method.
* @method hasClass
* @param {String} className The className to add
* @return {Boolean} Whether or not the element has the class name
*/
</span><span class="hl-identifier">hasClass</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">className</span><span class="hl-brackets">) {
</span><span class="hl-reserved">return </span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">hasClass</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">element</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">, </span><span class="hl-identifier">className</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-brackets">}</span><span class="hl-code">,
</span><span class="hl-comment">/**
* Wrapper for Dom method.
* @method removeClass
* @param {String} className The className to remove
*/
</span><span class="hl-identifier">removeClass</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">className</span><span class="hl-brackets">) {
</span><span class="hl-reserved">return </span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">removeClass</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">element</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">, </span><span class="hl-identifier">className</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-brackets">}</span><span class="hl-code">,
</span><span class="hl-comment">/**
* Wrapper for Dom method.
* @method replaceClass
* @param {String} oldClassName The className to replace
* @param {String} newClassName The className to add
*/
</span><span class="hl-identifier">replaceClass</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">oldClassName</span><span class="hl-code">, </span><span class="hl-identifier">newClassName</span><span class="hl-brackets">) {
</span><span class="hl-reserved">return </span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">replaceClass</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">element</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">,
</span><span class="hl-identifier">oldClassName</span><span class="hl-code">, </span><span class="hl-identifier">newClassName</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-brackets">}</span><span class="hl-code">,
</span><span class="hl-comment">/**
* Wrapper for Dom method.
* @method setStyle
* @param {String} property The style property to set
* @param {String} value The value to apply to the style property
*/
</span><span class="hl-identifier">setStyle</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">property</span><span class="hl-code">, </span><span class="hl-identifier">value</span><span class="hl-brackets">) {
</span><span class="hl-reserved">return </span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">setStyle</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">element</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">, </span><span class="hl-identifier">property</span><span class="hl-code">, </span><span class="hl-identifier">value</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-brackets">}</span><span class="hl-code">,
</span><span class="hl-comment">/**
* Wrapper for Dom method.
* @method getStyle
* @param {String} property The style property to retrieve
* @return {String} The current value of the property
*/
</span><span class="hl-identifier">getStyle</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">property</span><span class="hl-brackets">) {
</span><span class="hl-reserved">return </span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">getStyle</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">element</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">, </span><span class="hl-identifier">property</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-brackets">}</span><span class="hl-code">,
</span><span class="hl-comment">/**
* Apply any queued set calls.
* @method fireQueue
*/
</span><span class="hl-identifier">fireQueue</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">() {
</span><span class="hl-reserved">var </span><span class="hl-identifier">queue</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_queue</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">queue</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-brackets">) {
</span><span class="hl-reserved">this</span><span class="hl-brackets">[</span><span class="hl-identifier">queue</span><span class="hl-brackets">[</span><span class="hl-identifier">i</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">apply</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">, </span><span class="hl-identifier">queue</span><span class="hl-brackets">[</span><span class="hl-identifier">i</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-brackets">}
}</span><span class="hl-code">,
</span><span class="hl-comment">/**
* Appends the HTMLElement into either the supplied parentNode.
* @method appendTo
* @param {HTMLElement | Element} parentNode The node to append to
* @param {HTMLElement | Element} before An optional node to insert before
*/
</span><span class="hl-identifier">appendTo</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">parent</span><span class="hl-code">, </span><span class="hl-identifier">before</span><span class="hl-brackets">) {
</span><span class="hl-identifier">parent</span><span class="hl-code"> = </span><span class="hl-brackets">(</span><span class="hl-identifier">parent</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">)</span><span class="hl-code"> ? </span><span class="hl-identifier">parent</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">element</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code"> : </span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-identifier">parent</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-identifier">before</span><span class="hl-code"> = </span><span class="hl-brackets">(</span><span class="hl-identifier">before</span><span class="hl-code"> &amp;&amp; </span><span class="hl-identifier">before</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">)</span><span class="hl-code"> ?
</span><span class="hl-identifier">before</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">element</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code"> : </span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-identifier">before</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-reserved">var </span><span class="hl-identifier">element</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">element</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-reserved">var </span><span class="hl-identifier">newAddition</span><span class="hl-code"> = !</span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">inDocument</span><span class="hl-brackets">(</span><span class="hl-identifier">element</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-code">!</span><span class="hl-identifier">element</span><span class="hl-brackets">) {
</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">log</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">appendTo failed: element not available</span><span class="hl-quotes">'</span><span class="hl-code">,
</span><span class="hl-quotes">'</span><span class="hl-string">error</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">Element</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-reserved">return false</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-code">!</span><span class="hl-identifier">parent</span><span class="hl-brackets">) {
</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">log</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">appendTo failed: parent not available</span><span class="hl-quotes">'</span><span class="hl-code">,
</span><span class="hl-quotes">'</span><span class="hl-string">error</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">Element</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-reserved">return false</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">element</span><span class="hl-code">.</span><span class="hl-identifier">parent</span><span class="hl-code"> != </span><span class="hl-identifier">parent</span><span class="hl-brackets">) {
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-identifier">before</span><span class="hl-brackets">) {
</span><span class="hl-identifier">parent</span><span class="hl-code">.</span><span class="hl-identifier">insertBefore</span><span class="hl-brackets">(</span><span class="hl-identifier">element</span><span class="hl-code">, </span><span class="hl-identifier">before</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-identifier">parent</span><span class="hl-code">.</span><span class="hl-identifier">appendChild</span><span class="hl-brackets">(</span><span class="hl-identifier">element</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-brackets">}
}
</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">log</span><span class="hl-brackets">(</span><span class="hl-identifier">element</span><span class="hl-code"> + </span><span class="hl-quotes">'</span><span class="hl-string">appended to </span><span class="hl-quotes">'</span><span class="hl-code"> + </span><span class="hl-identifier">parent</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-code">!</span><span class="hl-identifier">newAddition</span><span class="hl-brackets">) {
</span><span class="hl-reserved">return false</span><span class="hl-code">; </span><span class="hl-comment">// note return; no refresh if in document
</span><span class="hl-brackets">}
</span><span class="hl-comment">// if a new addition, refresh HTMLElement any applied attributes
</span><span class="hl-reserved">var </span><span class="hl-identifier">keys</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">getAttributeKeys</span><span class="hl-brackets">()</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">key </span><span class="hl-reserved">in </span><span class="hl-identifier">keys</span><span class="hl-brackets">) { </span><span class="hl-comment">// only refresh HTMLElement attributes
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-code"> !</span><span class="hl-identifier">Lang</span><span class="hl-code">.</span><span class="hl-identifier">isUndefined</span><span class="hl-brackets">(</span><span class="hl-identifier">element</span><span class="hl-brackets">[</span><span class="hl-identifier">key</span><span class="hl-brackets">]) ) {
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">refresh</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">get</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">configs</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_configs</span><span class="hl-code"> || </span><span class="hl-brackets">{}</span><span class="hl-code">;
</span><span class="hl-reserved">var </span><span class="hl-identifier">el</span><span class="hl-code"> = </span><span class="hl-identifier">configs</span><span class="hl-code">.</span><span class="hl-identifier">element</span><span class="hl-code">; </span><span class="hl-comment">// avoid loop due to 'element'
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-identifier">el</span><span class="hl-code"> &amp;&amp; !</span><span class="hl-identifier">configs</span><span class="hl-brackets">[</span><span class="hl-identifier">key</span><span class="hl-brackets">]</span><span class="hl-code"> &amp;&amp; !</span><span class="hl-identifier">Lang</span><span class="hl-code">.</span><span class="hl-identifier">isUndefined</span><span class="hl-brackets">(</span><span class="hl-identifier">el</span><span class="hl-code">.</span><span class="hl-identifier">value</span><span class="hl-brackets">[</span><span class="hl-identifier">key</span><span class="hl-brackets">]) ) {
</span><span class="hl-reserved">return </span><span class="hl-identifier">el</span><span class="hl-code">.</span><span class="hl-identifier">value</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">return </span><span class="hl-identifier">AttributeProvider</span><span class="hl-code">.</span><span class="hl-identifier">prototype</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-code">.</span><span class="hl-identifier">call</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-code">;
</span><span class="hl-brackets">}</span><span class="hl-code">,
</span><span class="hl-identifier">set</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">value</span><span class="hl-code">, </span><span class="hl-identifier">silent</span><span class="hl-brackets">) {
</span><span class="hl-reserved">var </span><span class="hl-identifier">el</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">element</span><span class="hl-quotes">'</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-code">!</span><span class="hl-identifier">el</span><span class="hl-brackets">) {
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_queue</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-quotes">'</span><span class="hl-string">set</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-identifier">arguments</span><span class="hl-brackets">]</span><span class="hl-code">;
</span><span class="hl-reserved">return false</span><span class="hl-code">;
</span><span class="hl-brackets">}
</span><span class="hl-comment">// set it on the element if not a property
</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">_configs</span><span class="hl-brackets">[</span><span class="hl-identifier">key</span><span class="hl-brackets">]</span><span class="hl-code"> &amp;&amp; !</span><span class="hl-identifier">Lang</span><span class="hl-code">.</span><span class="hl-identifier">isUndefined</span><span class="hl-brackets">(</span><span class="hl-identifier">el</span><span class="hl-brackets">[</span><span class="hl-identifier">key</span><span class="hl-brackets">]) ) {
</span><span class="hl-identifier">_registerHTMLAttr</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-code">;
</span><span class="hl-brackets">}
</span><span class="hl-reserved">return </span><span class="hl-identifier">AttributeProvider</span><span class="hl-code">.</span><span class="hl-identifier">prototype</span><span class="hl-code">.</span><span class="hl-identifier">set</span><span class="hl-code">.</span><span class="hl-identifier">apply</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">, </span><span class="hl-identifier">arguments</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">register</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-comment">// protect html attributes
</span><span class="hl-reserved">var </span><span class="hl-identifier">configs</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_configs</span><span class="hl-code"> || </span><span class="hl-brackets">{}</span><span class="hl-code">;
</span><span class="hl-reserved">var </span><span class="hl-identifier">element</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">element</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code"> || </span><span class="hl-reserved">null</span><span class="hl-code">;
</span><span class="hl-reserved">if </span><span class="hl-brackets">( </span><span class="hl-identifier">element</span><span class="hl-code"> &amp;&amp; !</span><span class="hl-identifier">Lang</span><span class="hl-code">.</span><span class="hl-identifier">isUndefined</span><span class="hl-brackets">(</span><span class="hl-identifier">element</span><span class="hl-brackets">[</span><span class="hl-identifier">key</span><span class="hl-brackets">]) ) {
</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">log</span><span class="hl-brackets">(</span><span class="hl-identifier">key</span><span class="hl-code"> + </span><span class="hl-quotes">'</span><span class="hl-string"> is reserved for </span><span class="hl-quotes">'</span><span class="hl-code"> + </span><span class="hl-identifier">element</span><span class="hl-code">,
</span><span class="hl-quotes">'</span><span class="hl-string">error</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">Element</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-reserved">return false</span><span class="hl-code">;
</span><span class="hl-brackets">}
</span><span class="hl-reserved">return </span><span class="hl-identifier">AttributeProvider</span><span class="hl-code">.</span><span class="hl-identifier">prototype</span><span class="hl-code">.</span><span class="hl-identifier">register</span><span class="hl-code">.</span><span class="hl-identifier">apply</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">, </span><span class="hl-identifier">arguments</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">configureAttribute</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">property</span><span class="hl-code">, </span><span class="hl-identifier">map</span><span class="hl-code">, </span><span class="hl-identifier">init</span><span class="hl-brackets">) { </span><span class="hl-comment">// protect html attributes
</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">_configs</span><span class="hl-brackets">[</span><span class="hl-identifier">property</span><span class="hl-brackets">]</span><span class="hl-code"> &amp;&amp; </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_configs</span><span class="hl-code">.</span><span class="hl-identifier">element</span><span class="hl-code"> &amp;&amp;
!</span><span class="hl-identifier">Lang</span><span class="hl-code">.</span><span class="hl-identifier">isUndefined</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_configs</span><span class="hl-code">.</span><span class="hl-identifier">element</span><span class="hl-brackets">[</span><span class="hl-identifier">property</span><span class="hl-brackets">]) ) {
</span><span class="hl-identifier">_registerHTMLAttr</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">, </span><span class="hl-identifier">property</span><span class="hl-code">, </span><span class="hl-identifier">map</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-reserved">return false</span><span class="hl-code">;
</span><span class="hl-brackets">}
</span><span class="hl-reserved">return </span><span class="hl-identifier">AttributeProvider</span><span class="hl-code">.</span><span class="hl-identifier">prototype</span><span class="hl-code">.</span><span class="hl-identifier">configure</span><span class="hl-code">.</span><span class="hl-identifier">apply</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">, </span><span class="hl-identifier">arguments</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">getAttributeKeys</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">() {
</span><span class="hl-reserved">var </span><span class="hl-identifier">el</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">element</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-reserved">var </span><span class="hl-identifier">keys</span><span class="hl-code"> = </span><span class="hl-identifier">AttributeProvider</span><span class="hl-code">.</span><span class="hl-identifier">prototype</span><span class="hl-code">.</span><span class="hl-identifier">getAttributeKeys</span><span class="hl-code">.</span><span class="hl-identifier">call</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-comment">//add any unconfigured element keys
</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">el</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">_configs</span><span class="hl-brackets">[</span><span class="hl-identifier">key</span><span class="hl-brackets">]) {
</span><span class="hl-identifier">keys</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">keys</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">el</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">return </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-identifier">init</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">el</span><span class="hl-code">, </span><span class="hl-identifier">attr</span><span class="hl-brackets">) {
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_queue</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_queue</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-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-code">;
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_configs</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_configs</span><span class="hl-code"> || </span><span class="hl-brackets">{}</span><span class="hl-code">;
</span><span class="hl-identifier">attr</span><span class="hl-code"> = </span><span class="hl-identifier">attr</span><span class="hl-code"> || </span><span class="hl-brackets">{}</span><span class="hl-code">;
</span><span class="hl-identifier">attr</span><span class="hl-code">.</span><span class="hl-identifier">element</span><span class="hl-code"> = </span><span class="hl-identifier">attr</span><span class="hl-code">.</span><span class="hl-identifier">element</span><span class="hl-code"> || </span><span class="hl-identifier">el</span><span class="hl-code"> || </span><span class="hl-reserved">null</span><span class="hl-code">;
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">DOM_EVENTS</span><span class="hl-code"> = </span><span class="hl-brackets">{
</span><span class="hl-quotes">'</span><span class="hl-string">click</span><span class="hl-quotes">'</span><span class="hl-code">: </span><span class="hl-reserved">true</span><span class="hl-code">,
</span><span class="hl-quotes">'</span><span class="hl-string">keydown</span><span class="hl-quotes">'</span><span class="hl-code">: </span><span class="hl-reserved">true</span><span class="hl-code">,
</span><span class="hl-quotes">'</span><span class="hl-string">keypress</span><span class="hl-quotes">'</span><span class="hl-code">: </span><span class="hl-reserved">true</span><span class="hl-code">,
</span><span class="hl-quotes">'</span><span class="hl-string">keyup</span><span class="hl-quotes">'</span><span class="hl-code">: </span><span class="hl-reserved">true</span><span class="hl-code">,
</span><span class="hl-quotes">'</span><span class="hl-string">mousedown</span><span class="hl-quotes">'</span><span class="hl-code">: </span><span class="hl-reserved">true</span><span class="hl-code">,
</span><span class="hl-quotes">'</span><span class="hl-string">mousemove</span><span class="hl-quotes">'</span><span class="hl-code">: </span><span class="hl-reserved">true</span><span class="hl-code">,
</span><span class="hl-quotes">'</span><span class="hl-string">mouseout</span><span class="hl-quotes">'</span><span class="hl-code">: </span><span class="hl-reserved">true</span><span class="hl-code">,
</span><span class="hl-quotes">'</span><span class="hl-string">mouseover</span><span class="hl-quotes">'</span><span class="hl-code">: </span><span class="hl-reserved">true</span><span class="hl-code">,
</span><span class="hl-quotes">'</span><span class="hl-string">mouseup</span><span class="hl-quotes">'</span><span class="hl-code">: </span><span class="hl-reserved">true
</span><span class="hl-brackets">}</span><span class="hl-code">;
</span><span class="hl-reserved">var </span><span class="hl-identifier">readyHandler</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">() {
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">initAttributes</span><span class="hl-brackets">(</span><span class="hl-identifier">attr</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">setAttributes</span><span class="hl-brackets">(</span><span class="hl-identifier">attr</span><span class="hl-code">, </span><span class="hl-reserved">true</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">fireQueue</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">contentReady</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-brackets">{
</span><span class="hl-identifier">type</span><span class="hl-code">: </span><span class="hl-quotes">'</span><span class="hl-string">contentReady</span><span class="hl-quotes">'</span><span class="hl-code">,
</span><span class="hl-identifier">target</span><span class="hl-code">: </span><span class="hl-identifier">attr</span><span class="hl-code">.</span><span class="hl-identifier">element
</span><span class="hl-brackets">})</span><span class="hl-code">;
</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-identifier">Lang</span><span class="hl-code">.</span><span class="hl-identifier">isString</span><span class="hl-brackets">(</span><span class="hl-identifier">el</span><span class="hl-brackets">) ) {
</span><span class="hl-identifier">_registerHTMLAttr</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">id</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-brackets">{ </span><span class="hl-identifier">value</span><span class="hl-code">: </span><span class="hl-identifier">el </span><span class="hl-brackets">})</span><span class="hl-code">;
</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">Event</span><span class="hl-code">.</span><span class="hl-identifier">onAvailable</span><span class="hl-brackets">(</span><span class="hl-identifier">el</span><span class="hl-code">, </span><span class="hl-reserved">function</span><span class="hl-brackets">() {
</span><span class="hl-identifier">attr</span><span class="hl-code">.</span><span class="hl-identifier">element</span><span class="hl-code"> = </span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-identifier">el</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">available</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-brackets">{
</span><span class="hl-identifier">type</span><span class="hl-code">: </span><span class="hl-quotes">'</span><span class="hl-string">available</span><span class="hl-quotes">'</span><span class="hl-code">,
</span><span class="hl-identifier">target</span><span class="hl-code">: </span><span class="hl-identifier">attr</span><span class="hl-code">.</span><span class="hl-identifier">element
</span><span class="hl-brackets">})</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-reserved">true</span><span class="hl-brackets">)</span><span class="hl-code">;
</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">Event</span><span class="hl-code">.</span><span class="hl-identifier">onContentReady</span><span class="hl-brackets">(</span><span class="hl-identifier">el</span><span class="hl-code">, </span><span class="hl-reserved">function</span><span class="hl-brackets">() {
</span><span class="hl-identifier">readyHandler</span><span class="hl-code">.</span><span class="hl-identifier">call</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-brackets">)</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-reserved">true</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-identifier">readyHandler</span><span class="hl-code">.</span><span class="hl-identifier">call</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-brackets">}
}
}</span><span class="hl-code">;
</span><span class="hl-comment">/**
* Sets the value of the property and fires beforeChange and change events.
* @private
* @method _registerHTMLAttr
* @param {YAHOO.util.Element} element The Element instance to
* register the config to.
* @param {String} key The name of the config to register
* @param {Object} map A key-value map of the config's params
*/
</span><span class="hl-reserved">var </span><span class="hl-identifier">_registerHTMLAttr</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">self</span><span class="hl-code">, </span><span class="hl-identifier">key</span><span class="hl-code">, </span><span class="hl-identifier">map</span><span class="hl-brackets">) {
</span><span class="hl-reserved">var </span><span class="hl-identifier">el</span><span class="hl-code"> = </span><span class="hl-identifier">self</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">element</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-identifier">map</span><span class="hl-code"> = </span><span class="hl-identifier">map</span><span class="hl-code"> || </span><span class="hl-brackets">{}</span><span class="hl-code">;
</span><span class="hl-identifier">map</span><span class="hl-code">.</span><span class="hl-identifier">name</span><span class="hl-code"> = </span><span class="hl-identifier">key</span><span class="hl-code">;
</span><span class="hl-identifier">map</span><span class="hl-code">.</span><span class="hl-identifier">method</span><span class="hl-code"> = </span><span class="hl-identifier">map</span><span class="hl-code">.</span><span class="hl-identifier">method</span><span class="hl-code"> || </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">value</span><span class="hl-brackets">) {
</span><span class="hl-identifier">el</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">value</span><span class="hl-code">;
</span><span class="hl-brackets">}</span><span class="hl-code">;
</span><span class="hl-identifier">map</span><span class="hl-code">.</span><span class="hl-identifier">value</span><span class="hl-code"> = </span><span class="hl-identifier">map</span><span class="hl-code">.</span><span class="hl-identifier">value</span><span class="hl-code"> || </span><span class="hl-identifier">el</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">self</span><span class="hl-code">.</span><span class="hl-identifier">_configs</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">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">Attribute</span><span class="hl-brackets">(</span><span class="hl-identifier">map</span><span class="hl-code">, </span><span class="hl-identifier">self</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-brackets">}</span><span class="hl-code">;
</span><span class="hl-comment">/**
* Fires when the Element's HTMLElement can be retrieved by Id.
* &lt;p&gt;See: &lt;a href=&quot;#addListener&quot;&gt;Element.addListener&lt;/a&gt;&lt;/p&gt;
* &lt;p&gt;&lt;strong&gt;Event fields:&lt;/strong&gt;&lt;br&gt;
* &lt;code&gt;&amp;lt;String&amp;gt; type&lt;/code&gt; available&lt;br&gt;
* &lt;code&gt;&amp;lt;HTMLElement&amp;gt;
* target&lt;/code&gt; the HTMLElement bound to this Element instance&lt;br&gt;
* &lt;p&gt;&lt;strong&gt;Usage:&lt;/strong&gt;&lt;br&gt;
* &lt;code&gt;var handler = function(e) {var target = e.target};&lt;br&gt;
* myTabs.addListener('available', handler);&lt;/code&gt;&lt;/p&gt;
* @event available
*/
// holder
/**
* Fires when the Element's HTMLElement subtree is rendered.
* &lt;p&gt;See: &lt;a href=&quot;#addListener&quot;&gt;Element.addListener&lt;/a&gt;&lt;/p&gt;
* &lt;p&gt;&lt;strong&gt;Event fields:&lt;/strong&gt;&lt;br&gt;
* &lt;code&gt;&amp;lt;String&amp;gt; type&lt;/code&gt; contentReady&lt;br&gt;
* &lt;code&gt;&amp;lt;HTMLElement&amp;gt;
* target&lt;/code&gt; the HTMLElement bound to this Element instance&lt;br&gt;
* &lt;p&gt;&lt;strong&gt;Usage:&lt;/strong&gt;&lt;br&gt;
* &lt;code&gt;var handler = function(e) {var target = e.target};&lt;br&gt;
* myTabs.addListener('contentReady', handler);&lt;/code&gt;&lt;/p&gt;
* @event contentReady
*/
</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">augment</span><span class="hl-brackets">(</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">Element</span><span class="hl-code">, </span><span class="hl-identifier">AttributeProvider</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-brackets">})()</span><span class="hl-default">;</span><span class="hl-brackets">(</span><span class="hl-reserved">function</span><span class="hl-brackets">() {
</span><span class="hl-reserved">var </span><span class="hl-identifier">Dom</span><span class="hl-code"> = </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">Dom</span><span class="hl-code">,
</span><span class="hl-identifier">Event</span><span class="hl-code"> = </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">Event</span><span class="hl-code">,
</span><span class="hl-identifier">Lang</span><span class="hl-code"> = </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">Lang</span><span class="hl-code">;
</span><span class="hl-comment">/**
* A representation of a Tab's label and content.
* @namespace YAHOO.widget
* @class Tab
* @extends YAHOO.util.Element
* @constructor
* @param element {HTMLElement | String} (optional) The html element that
* represents the TabView. An element will be created if none provided.
* @param {Object} properties A key map of initial properties
*/
</span><span class="hl-identifier">Tab</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">el</span><span class="hl-code">, </span><span class="hl-identifier">attr</span><span class="hl-brackets">) {
</span><span class="hl-identifier">attr</span><span class="hl-code"> = </span><span class="hl-identifier">attr</span><span class="hl-code"> || </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-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-code"> &amp;&amp; !</span><span class="hl-identifier">Lang</span><span class="hl-code">.</span><span class="hl-identifier">isString</span><span class="hl-brackets">(</span><span class="hl-identifier">el</span><span class="hl-brackets">)</span><span class="hl-code"> &amp;&amp; !</span><span class="hl-identifier">el</span><span class="hl-code">.</span><span class="hl-identifier">nodeName</span><span class="hl-brackets">) {
</span><span class="hl-identifier">attr</span><span class="hl-code"> = </span><span class="hl-identifier">el</span><span class="hl-code">;
</span><span class="hl-identifier">el</span><span class="hl-code"> = </span><span class="hl-identifier">attr</span><span class="hl-code">.</span><span class="hl-identifier">element</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-code">!</span><span class="hl-identifier">el</span><span class="hl-code"> &amp;&amp; !</span><span class="hl-identifier">attr</span><span class="hl-code">.</span><span class="hl-identifier">element</span><span class="hl-brackets">) {
</span><span class="hl-identifier">el</span><span class="hl-code"> = </span><span class="hl-identifier">_createTabElement</span><span class="hl-code">.</span><span class="hl-identifier">call</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">, </span><span class="hl-identifier">attr</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">loadHandler</span><span class="hl-code"> = </span><span class="hl-brackets">{
</span><span class="hl-identifier">success</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">set</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">content</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">responseText</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">failure</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-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">log</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">loading failed: </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">statusText</span><span class="hl-code">,
</span><span class="hl-quotes">'</span><span class="hl-string">error</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">Tab</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">Tab</span><span class="hl-code">.</span><span class="hl-identifier">superclass</span><span class="hl-code">.</span><span class="hl-identifier">constructor</span><span class="hl-code">.</span><span class="hl-identifier">call</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">, </span><span class="hl-identifier">el</span><span class="hl-code">, </span><span class="hl-identifier">attr</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">DOM_EVENTS</span><span class="hl-code"> = </span><span class="hl-brackets">{}</span><span class="hl-code">; </span><span class="hl-comment">// delegating to tabView
</span><span class="hl-brackets">}</span><span class="hl-code">;
</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">extend</span><span class="hl-brackets">(</span><span class="hl-identifier">Tab</span><span class="hl-code">, </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">Element</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-reserved">var </span><span class="hl-identifier">proto</span><span class="hl-code"> = </span><span class="hl-identifier">Tab</span><span class="hl-code">.</span><span class="hl-identifier">prototype</span><span class="hl-code">;
</span><span class="hl-comment">/**
* The default tag name for a Tab's inner element.
* @property LABEL_INNER_TAGNAME
* @type String
* @default &quot;em&quot;
*/
</span><span class="hl-identifier">proto</span><span class="hl-code">.</span><span class="hl-identifier">LABEL_TAGNAME</span><span class="hl-code"> = </span><span class="hl-quotes">'</span><span class="hl-string">em</span><span class="hl-quotes">'</span><span class="hl-code">;
</span><span class="hl-comment">/**
* The class name applied to active tabs.
* @property ACTIVE_CLASSNAME
* @type String
* @default &quot;on&quot;
*/
</span><span class="hl-identifier">proto</span><span class="hl-code">.</span><span class="hl-identifier">ACTIVE_CLASSNAME</span><span class="hl-code"> = </span><span class="hl-quotes">'</span><span class="hl-string">selected</span><span class="hl-quotes">'</span><span class="hl-code">;
</span><span class="hl-comment">/**
* The class name applied to disabled tabs.
* @property DISABLED_CLASSNAME
* @type String
* @default &quot;disabled&quot;
*/
</span><span class="hl-identifier">proto</span><span class="hl-code">.</span><span class="hl-identifier">DISABLED_CLASSNAME</span><span class="hl-code"> = </span><span class="hl-quotes">'</span><span class="hl-string">disabled</span><span class="hl-quotes">'</span><span class="hl-code">;
</span><span class="hl-comment">/**
* The class name applied to dynamic tabs while loading.
* @property LOADING_CLASSNAME
* @type String
* @default &quot;disabled&quot;
*/
</span><span class="hl-identifier">proto</span><span class="hl-code">.</span><span class="hl-identifier">LOADING_CLASSNAME</span><span class="hl-code"> = </span><span class="hl-quotes">'</span><span class="hl-string">loading</span><span class="hl-quotes">'</span><span class="hl-code">;
</span><span class="hl-comment">/**
* Provides a reference to the connection request object when data is
* loaded dynamically.
* @property dataConnection
* @type Object
*/
</span><span class="hl-identifier">proto</span><span class="hl-code">.</span><span class="hl-identifier">dataConnection</span><span class="hl-code"> = </span><span class="hl-reserved">null</span><span class="hl-code">;
</span><span class="hl-comment">/**
* Object containing success and failure callbacks for loading data.
* @property loadHandler
* @type object
*/
</span><span class="hl-identifier">proto</span><span class="hl-code">.</span><span class="hl-identifier">loadHandler</span><span class="hl-code"> = </span><span class="hl-reserved">null</span><span class="hl-code">;
</span><span class="hl-comment">/**
* Provides a readable name for the tab.
* @method toString
* @return String
*/
</span><span class="hl-identifier">proto</span><span class="hl-code">.</span><span class="hl-identifier">toString</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">() {
</span><span class="hl-reserved">var </span><span class="hl-identifier">el</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">element</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-reserved">var </span><span class="hl-identifier">id</span><span class="hl-code"> = </span><span class="hl-identifier">el</span><span class="hl-code">.</span><span class="hl-identifier">id</span><span class="hl-code"> || </span><span class="hl-identifier">el</span><span class="hl-code">.</span><span class="hl-identifier">tagName</span><span class="hl-code">;
</span><span class="hl-reserved">return </span><span class="hl-quotes">&quot;</span><span class="hl-string">Tab </span><span class="hl-quotes">&quot;</span><span class="hl-code"> + </span><span class="hl-identifier">id</span><span class="hl-code">;
</span><span class="hl-brackets">}</span><span class="hl-code">;
</span><span class="hl-comment">/**
* Registers TabView specific properties.
* @method initAttributes
* @param {Object} attr Hash of initial attributes
*/
</span><span class="hl-identifier">proto</span><span class="hl-code">.</span><span class="hl-identifier">initAttributes</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">attr</span><span class="hl-brackets">) {
</span><span class="hl-identifier">attr</span><span class="hl-code"> = </span><span class="hl-identifier">attr</span><span class="hl-code"> || </span><span class="hl-brackets">{}</span><span class="hl-code">;
</span><span class="hl-identifier">Tab</span><span class="hl-code">.</span><span class="hl-identifier">superclass</span><span class="hl-code">.</span><span class="hl-identifier">initAttributes</span><span class="hl-code">.</span><span class="hl-identifier">call</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">, </span><span class="hl-identifier">attr</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-reserved">var </span><span class="hl-identifier">el</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">element</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-comment">/**
* The event that triggers the tab's activation.
* @config activationEvent
* @type String
*/
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">register</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">activationEvent</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-brackets">{
</span><span class="hl-identifier">value</span><span class="hl-code">: </span><span class="hl-identifier">attr</span><span class="hl-code">.</span><span class="hl-identifier">activationEvent</span><span class="hl-code"> || </span><span class="hl-quotes">'</span><span class="hl-string">click</span><span class="hl-quotes">'
</span><span class="hl-brackets">})</span><span class="hl-code">;
</span><span class="hl-comment">/**
* The element that contains the tab's label.
* @config labelEl
* @type HTMLElement
*/
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">register</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">labelEl</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-brackets">{
</span><span class="hl-identifier">value</span><span class="hl-code">: </span><span class="hl-identifier">attr</span><span class="hl-code">.</span><span class="hl-identifier">labelEl</span><span class="hl-code"> || </span><span class="hl-identifier">_getlabelEl</span><span class="hl-code">.</span><span class="hl-identifier">call</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-brackets">)</span><span class="hl-code">,
</span><span class="hl-identifier">method</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">value</span><span class="hl-brackets">) {
</span><span class="hl-reserved">var </span><span class="hl-identifier">current</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">labelEl</span><span class="hl-quotes">'</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-identifier">current</span><span class="hl-brackets">) {
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-identifier">current</span><span class="hl-code"> == </span><span class="hl-identifier">value</span><span class="hl-brackets">) {
</span><span class="hl-reserved">return false</span><span class="hl-code">; </span><span class="hl-comment">// already set
</span><span class="hl-brackets">}
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">replaceChild</span><span class="hl-brackets">(</span><span class="hl-identifier">value</span><span class="hl-code">, </span><span class="hl-identifier">current</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-brackets">} </span><span class="hl-reserved">else if </span><span class="hl-brackets">(</span><span class="hl-identifier">el</span><span class="hl-code">.</span><span class="hl-identifier">firstChild</span><span class="hl-brackets">) { </span><span class="hl-comment">// ensure label is firstChild by default
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">insertBefore</span><span class="hl-brackets">(</span><span class="hl-identifier">value</span><span class="hl-code">, </span><span class="hl-identifier">el</span><span class="hl-code">.</span><span class="hl-identifier">firstChild</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">this</span><span class="hl-code">.</span><span class="hl-identifier">appendChild</span><span class="hl-brackets">(</span><span class="hl-identifier">value</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-brackets">}
}
})</span><span class="hl-code">;
</span><span class="hl-comment">/**
* The tab's label text (or innerHTML).
* @config label
* @type String
*/
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">register</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">label</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-brackets">{
</span><span class="hl-identifier">value</span><span class="hl-code">: </span><span class="hl-identifier">attr</span><span class="hl-code">.</span><span class="hl-reserved">label</span><span class="hl-code"> || </span><span class="hl-identifier">_getLabel</span><span class="hl-code">.</span><span class="hl-identifier">call</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-brackets">)</span><span class="hl-code">,
</span><span class="hl-identifier">method</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">value</span><span class="hl-brackets">) {
</span><span class="hl-reserved">var </span><span class="hl-identifier">labelEl</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">labelEl</span><span class="hl-quotes">'</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-code">!</span><span class="hl-identifier">labelEl</span><span class="hl-brackets">) { </span><span class="hl-comment">// create if needed
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">set</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">labelEl</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-identifier">_createlabelEl</span><span class="hl-code">.</span><span class="hl-identifier">call</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-brackets">))</span><span class="hl-code">;
</span><span class="hl-brackets">}
</span><span class="hl-identifier">_setLabel</span><span class="hl-code">.</span><span class="hl-identifier">call</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">, </span><span class="hl-identifier">value</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-brackets">}
})</span><span class="hl-code">;
</span><span class="hl-comment">/**
* The HTMLElement that contains the tab's content.
* @config contentEl
* @type HTMLElement
*/
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">register</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">contentEl</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-brackets">{ </span><span class="hl-comment">// TODO: apply className?
</span><span class="hl-identifier">value</span><span class="hl-code">: </span><span class="hl-identifier">attr</span><span class="hl-code">.</span><span class="hl-identifier">contentEl</span><span class="hl-code"> || </span><span class="hl-builtin">document</span><span class="hl-code">.</span><span class="hl-identifier">createElement</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">div</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">,
</span><span class="hl-identifier">method</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">value</span><span class="hl-brackets">) {
</span><span class="hl-reserved">var </span><span class="hl-identifier">current</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">contentEl</span><span class="hl-quotes">'</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-identifier">current</span><span class="hl-brackets">) {
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-identifier">current</span><span class="hl-code"> == </span><span class="hl-identifier">value</span><span class="hl-brackets">) {
</span><span class="hl-reserved">return false</span><span class="hl-code">; </span><span class="hl-comment">// already set
</span><span class="hl-brackets">}
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">replaceChild</span><span class="hl-brackets">(</span><span class="hl-identifier">value</span><span class="hl-code">, </span><span class="hl-identifier">current</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-brackets">}
}
})</span><span class="hl-code">;
</span><span class="hl-comment">/**
* The tab's content.
* @config content
* @type String
*/
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">register</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">content</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-brackets">{
</span><span class="hl-identifier">value</span><span class="hl-code">: </span><span class="hl-identifier">attr</span><span class="hl-code">.</span><span class="hl-identifier">content</span><span class="hl-code">, </span><span class="hl-comment">// TODO: what about existing?
</span><span class="hl-identifier">method</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">value</span><span class="hl-brackets">) {
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">contentEl</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-identifier">innerHTML</span><span class="hl-code"> = </span><span class="hl-identifier">value</span><span class="hl-code">;
</span><span class="hl-brackets">}
})</span><span class="hl-code">;
</span><span class="hl-reserved">var </span><span class="hl-identifier">_dataLoaded</span><span class="hl-code"> = </span><span class="hl-reserved">false</span><span class="hl-code">;
</span><span class="hl-comment">/**
* The tab's data source, used for loading content dynamically.
* @config dataSrc
* @type String
*/
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">register</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">dataSrc</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-brackets">{
</span><span class="hl-identifier">value</span><span class="hl-code">: </span><span class="hl-identifier">attr</span><span class="hl-code">.</span><span class="hl-identifier">dataSrc
</span><span class="hl-brackets">})</span><span class="hl-code">;
</span><span class="hl-comment">/**
* Whether or not content should be reloaded for every view.
* @config cacheData
* @type Boolean
* @default false
*/
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">register</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">cacheData</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-brackets">{
</span><span class="hl-identifier">value</span><span class="hl-code">: </span><span class="hl-identifier">attr</span><span class="hl-code">.</span><span class="hl-identifier">cacheData</span><span class="hl-code"> || </span><span class="hl-reserved">false</span><span class="hl-code">,
</span><span class="hl-identifier">validator</span><span class="hl-code">: </span><span class="hl-identifier">Lang</span><span class="hl-code">.</span><span class="hl-identifier">isBoolean
</span><span class="hl-brackets">})</span><span class="hl-code">;
</span><span class="hl-comment">/**
* The method to use for the data request.
* @config loadMethod
* @type String
* @default &quot;GET&quot;
*/
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">register</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">loadMethod</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-brackets">{
</span><span class="hl-identifier">value</span><span class="hl-code">: </span><span class="hl-identifier">attr</span><span class="hl-code">.</span><span class="hl-identifier">loadMethod</span><span class="hl-code"> || </span><span class="hl-quotes">'</span><span class="hl-string">GET</span><span class="hl-quotes">'</span><span class="hl-code">,
</span><span class="hl-identifier">validator</span><span class="hl-code">: </span><span class="hl-identifier">Lang</span><span class="hl-code">.</span><span class="hl-identifier">isString
</span><span class="hl-brackets">})</span><span class="hl-code">;
</span><span class="hl-comment">/**
* Whether or not any data has been loaded from the server.
* @config dataLoaded
* @type Boolean
*/
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">register</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">dataLoaded</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-brackets">{
</span><span class="hl-identifier">value</span><span class="hl-code">: </span><span class="hl-reserved">false</span><span class="hl-code">,
</span><span class="hl-identifier">validator</span><span class="hl-code">: </span><span class="hl-identifier">Lang</span><span class="hl-code">.</span><span class="hl-identifier">isBoolean</span><span class="hl-code">,
</span><span class="hl-identifier">writeOnce</span><span class="hl-code">: </span><span class="hl-reserved">true
</span><span class="hl-brackets">})</span><span class="hl-code">;
</span><span class="hl-comment">/**
* Number if milliseconds before aborting and calling failure handler.
* @config dataTimeout
* @type Number
* @default null
*/
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">register</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">dataTimeout</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-brackets">{
</span><span class="hl-identifier">value</span><span class="hl-code">: </span><span class="hl-identifier">attr</span><span class="hl-code">.</span><span class="hl-identifier">dataTimeout</span><span class="hl-code"> || </span><span class="hl-reserved">null</span><span class="hl-code">,
</span><span class="hl-identifier">validator</span><span class="hl-code">: </span><span class="hl-identifier">Lang</span><span class="hl-code">.</span><span class="hl-identifier">isNumber
</span><span class="hl-brackets">})</span><span class="hl-code">;
</span><span class="hl-comment">/**
* Whether or not the tab is currently active.
* If a dataSrc is set for the tab, the content will be loaded from
* the given source.
* @config active
* @type Boolean
*/
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">register</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">active</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-brackets">{
</span><span class="hl-identifier">value</span><span class="hl-code">: </span><span class="hl-identifier">attr</span><span class="hl-code">.</span><span class="hl-identifier">active</span><span class="hl-code"> || </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">hasClass</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">ACTIVE_CLASSNAME</span><span class="hl-brackets">)</span><span class="hl-code">,
</span><span class="hl-identifier">method</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">value</span><span class="hl-brackets">) {
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-identifier">value</span><span class="hl-code"> === </span><span class="hl-reserved">true</span><span class="hl-brackets">) {
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">addClass</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">ACTIVE_CLASSNAME</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">set</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">title</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">active</span><span class="hl-quotes">'</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">this</span><span class="hl-code">.</span><span class="hl-identifier">removeClass</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">ACTIVE_CLASSNAME</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">set</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">title</span><span class="hl-quotes">'</span><span class="hl-code">, </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">validator</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">value</span><span class="hl-brackets">) {
</span><span class="hl-reserved">return </span><span class="hl-identifier">Lang</span><span class="hl-code">.</span><span class="hl-identifier">isBoolean</span><span class="hl-brackets">(</span><span class="hl-identifier">value</span><span class="hl-brackets">)</span><span class="hl-code"> &amp;&amp; !</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">disabled</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-comment">/**
* Whether or not the tab is disabled.
* @config disabled
* @type Boolean
*/
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">register</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">disabled</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-brackets">{
</span><span class="hl-identifier">value</span><span class="hl-code">: </span><span class="hl-identifier">attr</span><span class="hl-code">.</span><span class="hl-identifier">disabled</span><span class="hl-code"> || </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">hasClass</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">DISABLED_CLASSNAME</span><span class="hl-brackets">)</span><span class="hl-code">,
</span><span class="hl-identifier">method</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">value</span><span class="hl-brackets">) {
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-identifier">value</span><span class="hl-code"> === </span><span class="hl-reserved">true</span><span class="hl-brackets">) {
</span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">addClass</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">element</span><span class="hl-quotes">'</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">DISABLED_CLASSNAME</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-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">removeClass</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">element</span><span class="hl-quotes">'</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">DISABLED_CLASSNAME</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">validator</span><span class="hl-code">: </span><span class="hl-identifier">Lang</span><span class="hl-code">.</span><span class="hl-identifier">isBoolean
</span><span class="hl-brackets">})</span><span class="hl-code">;
</span><span class="hl-comment">/**
* The href of the tab's anchor element.
* @config href
* @type String
* @default '#'
*/
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">register</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">href</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-brackets">{
</span><span class="hl-identifier">value</span><span class="hl-code">: </span><span class="hl-identifier">attr</span><span class="hl-code">.</span><span class="hl-identifier">href</span><span class="hl-code"> || </span><span class="hl-quotes">'</span><span class="hl-string">#</span><span class="hl-quotes">'</span><span class="hl-code">,
</span><span class="hl-identifier">method</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">value</span><span class="hl-brackets">) {
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">getElementsByTagName</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">a</span><span class="hl-quotes">'</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">href</span><span class="hl-code"> = </span><span class="hl-identifier">value</span><span class="hl-code">;
</span><span class="hl-brackets">}</span><span class="hl-code">,
</span><span class="hl-identifier">validator</span><span class="hl-code">: </span><span class="hl-identifier">Lang</span><span class="hl-code">.</span><span class="hl-identifier">isString
</span><span class="hl-brackets">})</span><span class="hl-code">;
</span><span class="hl-comment">/**
* The Whether or not the tab's content is visible.
* @config contentVisible
* @type Boolean
* @default false
*/
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">register</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">contentVisible</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-brackets">{
</span><span class="hl-identifier">value</span><span class="hl-code">: </span><span class="hl-identifier">attr</span><span class="hl-code">.</span><span class="hl-identifier">contentVisible</span><span class="hl-code">,
</span><span class="hl-identifier">method</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">value</span><span class="hl-brackets">) {
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-identifier">value</span><span class="hl-code"> == </span><span class="hl-reserved">true</span><span class="hl-brackets">) {
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">contentEl</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-identifier">style</span><span class="hl-code">.</span><span class="hl-identifier">display</span><span class="hl-code"> = </span><span class="hl-quotes">'</span><span class="hl-string">block</span><span class="hl-quotes">'</span><span class="hl-code">;
</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">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">dataSrc</span><span class="hl-quotes">'</span><span class="hl-brackets">) ) {
</span><span class="hl-comment">// load dynamic content unless already loaded and caching
</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">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">dataLoaded</span><span class="hl-quotes">'</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">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">cacheData</span><span class="hl-quotes">'</span><span class="hl-brackets">) ) {
</span><span class="hl-identifier">_dataConnect</span><span class="hl-code">.</span><span class="hl-identifier">call</span><span class="hl-brackets">(</span><span class="hl-reserved">this</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">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">contentEl</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-identifier">style</span><span class="hl-code">.</span><span class="hl-identifier">display</span><span class="hl-code"> = </span><span class="hl-quotes">'</span><span class="hl-string">none</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">validator</span><span class="hl-code">: </span><span class="hl-identifier">Lang</span><span class="hl-code">.</span><span class="hl-identifier">isBoolean
</span><span class="hl-brackets">})</span><span class="hl-code">;
</span><span class="hl-brackets">}</span><span class="hl-code">;
</span><span class="hl-reserved">var </span><span class="hl-identifier">_createTabElement</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">attr</span><span class="hl-brackets">) {
</span><span class="hl-reserved">var </span><span class="hl-identifier">el</span><span class="hl-code"> = </span><span class="hl-builtin">document</span><span class="hl-code">.</span><span class="hl-identifier">createElement</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">li</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-reserved">var </span><span class="hl-identifier">a</span><span class="hl-code"> = </span><span class="hl-builtin">document</span><span class="hl-code">.</span><span class="hl-identifier">createElement</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">a</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-identifier">a</span><span class="hl-code">.</span><span class="hl-identifier">href</span><span class="hl-code"> = </span><span class="hl-identifier">attr</span><span class="hl-code">.</span><span class="hl-identifier">href</span><span class="hl-code"> || </span><span class="hl-quotes">'</span><span class="hl-string">#</span><span class="hl-quotes">'</span><span class="hl-code">;
</span><span class="hl-identifier">el</span><span class="hl-code">.</span><span class="hl-identifier">appendChild</span><span class="hl-brackets">(</span><span class="hl-identifier">a</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-reserved">var label</span><span class="hl-code"> = </span><span class="hl-identifier">attr</span><span class="hl-code">.</span><span class="hl-reserved">label</span><span class="hl-code"> || </span><span class="hl-reserved">null</span><span class="hl-code">;
</span><span class="hl-reserved">var </span><span class="hl-identifier">labelEl</span><span class="hl-code"> = </span><span class="hl-identifier">attr</span><span class="hl-code">.</span><span class="hl-identifier">labelEl</span><span class="hl-code"> || </span><span class="hl-reserved">null</span><span class="hl-code">;
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-identifier">labelEl</span><span class="hl-brackets">) { </span><span class="hl-comment">// user supplied labelEl
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-code">!</span><span class="hl-reserved">label</span><span class="hl-brackets">) { </span><span class="hl-comment">// user supplied label
</span><span class="hl-reserved">label</span><span class="hl-code"> = </span><span class="hl-identifier">_getLabel</span><span class="hl-code">.</span><span class="hl-identifier">call</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">, </span><span class="hl-identifier">labelEl</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-identifier">labelEl</span><span class="hl-code"> = </span><span class="hl-identifier">_createlabelEl</span><span class="hl-code">.</span><span class="hl-identifier">call</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-brackets">}
</span><span class="hl-identifier">a</span><span class="hl-code">.</span><span class="hl-identifier">appendChild</span><span class="hl-brackets">(</span><span class="hl-identifier">labelEl</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-reserved">return </span><span class="hl-identifier">el</span><span class="hl-code">;
</span><span class="hl-brackets">}</span><span class="hl-code">;
</span><span class="hl-reserved">var </span><span class="hl-identifier">_getlabelEl</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">getElementsByTagName</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">LABEL_TAGNAME</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-reserved">var </span><span class="hl-identifier">_createlabelEl</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">() {
</span><span class="hl-reserved">var </span><span class="hl-identifier">el</span><span class="hl-code"> = </span><span class="hl-builtin">document</span><span class="hl-code">.</span><span class="hl-identifier">createElement</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">LABEL_TAGNAME</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-reserved">return </span><span class="hl-identifier">el</span><span class="hl-code">;
</span><span class="hl-brackets">}</span><span class="hl-code">;
</span><span class="hl-reserved">var </span><span class="hl-identifier">_setLabel</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-reserved">label</span><span class="hl-brackets">) {
</span><span class="hl-reserved">var </span><span class="hl-identifier">el</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">labelEl</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-identifier">el</span><span class="hl-code">.</span><span class="hl-identifier">innerHTML</span><span class="hl-code"> = </span><span class="hl-reserved">label</span><span class="hl-code">;
</span><span class="hl-brackets">}</span><span class="hl-code">;
</span><span class="hl-reserved">var </span><span class="hl-identifier">_getLabel</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">() {
</span><span class="hl-reserved">var label</span><span class="hl-code">,
</span><span class="hl-identifier">el</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">labelEl</span><span class="hl-quotes">'</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-code">!</span><span class="hl-identifier">el</span><span class="hl-brackets">) {
</span><span class="hl-reserved">return </span><span class="hl-identifier">undefined</span><span class="hl-code">;
</span><span class="hl-brackets">}
</span><span class="hl-reserved">return </span><span class="hl-identifier">el</span><span class="hl-code">.</span><span class="hl-identifier">innerHTML</span><span class="hl-code">;
</span><span class="hl-brackets">}</span><span class="hl-code">;
</span><span class="hl-reserved">var </span><span class="hl-identifier">_dataConnect</span><span class="hl-code"> = </span><span class="hl-reserved">function</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-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">util</span><span class="hl-code">.</span><span class="hl-identifier">Connect</span><span class="hl-brackets">) {
</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">log</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">YAHOO.util.Connect dependency not met</span><span class="hl-quotes">'</span><span class="hl-code">,
</span><span class="hl-quotes">'</span><span class="hl-string">error</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">Tab</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-reserved">return false</span><span class="hl-code">;
</span><span class="hl-brackets">}
</span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">addClass</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">contentEl</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-identifier">parentNode</span><span class="hl-code">, </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">LOADING_CLASSNAME</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">dataConnection</span><span class="hl-code"> = </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">Connect</span><span class="hl-code">.</span><span class="hl-identifier">asyncRequest</span><span class="hl-brackets">(
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">loadMethod</span><span class="hl-quotes">'</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">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">dataSrc</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">,
</span><span class="hl-brackets">{
</span><span class="hl-identifier">success</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">loadHandler</span><span class="hl-code">.</span><span class="hl-identifier">success</span><span class="hl-code">.</span><span class="hl-identifier">call</span><span class="hl-brackets">(</span><span class="hl-reserved">this</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">this</span><span class="hl-code">.</span><span class="hl-identifier">set</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">dataLoaded</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-reserved">true</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">dataConnection</span><span class="hl-code"> = </span><span class="hl-reserved">null</span><span class="hl-code">;
</span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">removeClass</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">contentEl</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-identifier">parentNode</span><span class="hl-code">,
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">LOADING_CLASSNAME</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">failure</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">loadHandler</span><span class="hl-code">.</span><span class="hl-identifier">failure</span><span class="hl-code">.</span><span class="hl-identifier">call</span><span class="hl-brackets">(</span><span class="hl-reserved">this</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">this</span><span class="hl-code">.</span><span class="hl-identifier">dataConnection</span><span class="hl-code"> = </span><span class="hl-reserved">null</span><span class="hl-code">;
</span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">removeClass</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">contentEl</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-identifier">parentNode</span><span class="hl-code">,
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">LOADING_CLASSNAME</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">scope</span><span class="hl-code">: </span><span class="hl-reserved">this</span><span class="hl-code">,
</span><span class="hl-identifier">timeout</span><span class="hl-code">: </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">dataTimeout</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">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">widget</span><span class="hl-code">.</span><span class="hl-identifier">Tab</span><span class="hl-code"> = </span><span class="hl-identifier">Tab</span><span class="hl-code">;
</span><span class="hl-comment">/**
* Fires before the active state is changed.
* &lt;p&gt;See: &lt;a href=&quot;YAHOO.util.Element.html#addListener&quot;&gt;Element.addListener&lt;/a&gt;&lt;/p&gt;
* &lt;p&gt;If handler returns false, the change will be cancelled, and the value will not
* be set.&lt;/p&gt;
* &lt;p&gt;&lt;strong&gt;Event fields:&lt;/strong&gt;&lt;br&gt;
* &lt;code&gt;&amp;lt;String&amp;gt; type&lt;/code&gt; beforeActiveChange&lt;br&gt;
* &lt;code&gt;&amp;lt;Boolean&amp;gt;
* prevValue&lt;/code&gt; the current value&lt;br&gt;
* &lt;code&gt;&amp;lt;Boolean&amp;gt;
* newValue&lt;/code&gt; the new value&lt;/p&gt;
* &lt;p&gt;&lt;strong&gt;Usage:&lt;/strong&gt;&lt;br&gt;
* &lt;code&gt;var handler = function(e) {var previous = e.prevValue};&lt;br&gt;
* myTabs.addListener('beforeActiveChange', handler);&lt;/code&gt;&lt;/p&gt;
* @event beforeActiveChange
*/
// holder
/**
* Fires after the active state is changed.
* &lt;p&gt;See: &lt;a href=&quot;YAHOO.util.Element.html#addListener&quot;&gt;Element.addListener&lt;/a&gt;&lt;/p&gt;
* &lt;p&gt;&lt;strong&gt;Event fields:&lt;/strong&gt;&lt;br&gt;
* &lt;code&gt;&amp;lt;String&amp;gt; type&lt;/code&gt; activeChange&lt;br&gt;
* &lt;code&gt;&amp;lt;Boolean&amp;gt;
* prevValue&lt;/code&gt; the previous value&lt;br&gt;
* &lt;code&gt;&amp;lt;Boolean&amp;gt;
* newValue&lt;/code&gt; the updated value&lt;/p&gt;
* &lt;p&gt;&lt;strong&gt;Usage:&lt;/strong&gt;&lt;br&gt;
* &lt;code&gt;var handler = function(e) {var previous = e.prevValue};&lt;br&gt;
* myTabs.addListener('activeChange', handler);&lt;/code&gt;&lt;/p&gt;
* @event activeChange
*/
// holder
/**
* Fires before the tab label is changed.
* &lt;p&gt;See: &lt;a href=&quot;YAHOO.util.Element.html#addListener&quot;&gt;Element.addListener&lt;/a&gt;&lt;/p&gt;
* &lt;p&gt;If handler returns false, the change will be cancelled, and the value will not
* be set.&lt;/p&gt;
* &lt;p&gt;&lt;strong&gt;Event fields:&lt;/strong&gt;&lt;br&gt;
* &lt;code&gt;&amp;lt;String&amp;gt; type&lt;/code&gt; beforeLabelChange&lt;br&gt;
* &lt;code&gt;&amp;lt;String&amp;gt;
* prevValue&lt;/code&gt; the current value&lt;br&gt;
* &lt;code&gt;&amp;lt;String&amp;gt;
* newValue&lt;/code&gt; the new value&lt;/p&gt;
* &lt;p&gt;&lt;strong&gt;Usage:&lt;/strong&gt;&lt;br&gt;
* &lt;code&gt;var handler = function(e) {var previous = e.prevValue};&lt;br&gt;
* myTabs.addListener('beforeLabelChange', handler);&lt;/code&gt;&lt;/p&gt;
* @event beforeLabelChange
*/
// holder
/**
* Fires after the tab label is changed.
* &lt;p&gt;See: &lt;a href=&quot;YAHOO.util.Element.html#addListener&quot;&gt;Element.addListener&lt;/a&gt;&lt;/p&gt;
* &lt;p&gt;&lt;strong&gt;Event fields:&lt;/strong&gt;&lt;br&gt;
* &lt;code&gt;&amp;lt;String&amp;gt; type&lt;/code&gt; labelChange&lt;br&gt;
* &lt;code&gt;&amp;lt;String&amp;gt;
* prevValue&lt;/code&gt; the previous value&lt;br&gt;
* &lt;code&gt;&amp;lt;String&amp;gt;
* newValue&lt;/code&gt; the updated value&lt;/p&gt;
* &lt;p&gt;&lt;strong&gt;Usage:&lt;/strong&gt;&lt;br&gt;
* &lt;code&gt;var handler = function(e) {var previous = e.prevValue};&lt;br&gt;
* myTabs.addListener('labelChange', handler);&lt;/code&gt;&lt;/p&gt;
* @event labelChange
*/
// holder
/**
* Fires before the tab content is changed.
* &lt;p&gt;See: &lt;a href=&quot;YAHOO.util.Element.html#addListener&quot;&gt;Element.addListener&lt;/a&gt;&lt;/p&gt;
* &lt;p&gt;If handler returns false, the change will be cancelled, and the value will not
* be set.&lt;/p&gt;
* &lt;p&gt;&lt;strong&gt;Event fields:&lt;/strong&gt;&lt;br&gt;
* &lt;code&gt;&amp;lt;String&amp;gt; type&lt;/code&gt; beforeContentChange&lt;br&gt;
* &lt;code&gt;&amp;lt;String&amp;gt;
* prevValue&lt;/code&gt; the current value&lt;br&gt;
* &lt;code&gt;&amp;lt;String&amp;gt;
* newValue&lt;/code&gt; the new value&lt;/p&gt;
* &lt;p&gt;&lt;strong&gt;Usage:&lt;/strong&gt;&lt;br&gt;
* &lt;code&gt;var handler = function(e) {var previous = e.prevValue};&lt;br&gt;
* myTabs.addListener('beforeContentChange', handler);&lt;/code&gt;&lt;/p&gt;
* @event beforeContentChange
*/
// holder
/**
* Fires after the tab content is changed.
* &lt;p&gt;See: &lt;a href=&quot;YAHOO.util.Element.html#addListener&quot;&gt;Element.addListener&lt;/a&gt;&lt;/p&gt;
* &lt;p&gt;&lt;strong&gt;Event fields:&lt;/strong&gt;&lt;br&gt;
* &lt;code&gt;&amp;lt;String&amp;gt; type&lt;/code&gt; contentChange&lt;br&gt;
* &lt;code&gt;&amp;lt;String&amp;gt;
* prevValue&lt;/code&gt; the previous value&lt;br&gt;
* &lt;code&gt;&amp;lt;Boolean&amp;gt;
* newValue&lt;/code&gt; the updated value&lt;/p&gt;
* &lt;p&gt;&lt;strong&gt;Usage:&lt;/strong&gt;&lt;br&gt;
* &lt;code&gt;var handler = function(e) {var previous = e.prevValue};&lt;br&gt;
* myTabs.addListener('contentChange', handler);&lt;/code&gt;&lt;/p&gt;
* @event contentChange
*/
</span><span class="hl-brackets">})()</span><span class="hl-default">;</span><span class="hl-brackets">(</span><span class="hl-reserved">function</span><span class="hl-brackets">() {
</span><span class="hl-comment">/**
* The tabview module provides a widget for managing content bound to tabs.
* @module tabview
*
*/
// holder
/**
* A widget to control tabbed views.
* @namespace YAHOO.widget
* @class TabView
* @extends YAHOO.util.Element
* @constructor
* @param {HTMLElement | String | Object} el(optional) The html
* element that represents the TabView, or the attribute object to use.
* An element will be created if none provided.
* @param {Object} attr (optional) A key map of the tabView's
* initial attributes. Ignored if first arg is attributes object.
*/
</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">widget</span><span class="hl-code">.</span><span class="hl-identifier">TabView</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">el</span><span class="hl-code">, </span><span class="hl-identifier">attr</span><span class="hl-brackets">) {
</span><span class="hl-identifier">attr</span><span class="hl-code"> = </span><span class="hl-identifier">attr</span><span class="hl-code"> || </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-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-code"> &amp;&amp; !</span><span class="hl-identifier">Lang</span><span class="hl-code">.</span><span class="hl-identifier">isString</span><span class="hl-brackets">(</span><span class="hl-identifier">el</span><span class="hl-brackets">)</span><span class="hl-code"> &amp;&amp; !</span><span class="hl-identifier">el</span><span class="hl-code">.</span><span class="hl-identifier">nodeName</span><span class="hl-brackets">) {
</span><span class="hl-identifier">attr</span><span class="hl-code"> = </span><span class="hl-identifier">el</span><span class="hl-code">; </span><span class="hl-comment">// treat first arg as attr object
</span><span class="hl-identifier">el</span><span class="hl-code"> = </span><span class="hl-identifier">attr</span><span class="hl-code">.</span><span class="hl-identifier">element</span><span class="hl-code"> || </span><span class="hl-reserved">null</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-code">!</span><span class="hl-identifier">el</span><span class="hl-code"> &amp;&amp; !</span><span class="hl-identifier">attr</span><span class="hl-code">.</span><span class="hl-identifier">element</span><span class="hl-brackets">) { </span><span class="hl-comment">// create if we dont have one
</span><span class="hl-identifier">el</span><span class="hl-code"> = </span><span class="hl-identifier">_createTabViewElement</span><span class="hl-code">.</span><span class="hl-identifier">call</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">, </span><span class="hl-identifier">attr</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-brackets">}
</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">widget</span><span class="hl-code">.</span><span class="hl-identifier">TabView</span><span class="hl-code">.</span><span class="hl-identifier">superclass</span><span class="hl-code">.</span><span class="hl-identifier">constructor</span><span class="hl-code">.</span><span class="hl-identifier">call</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">, </span><span class="hl-identifier">el</span><span class="hl-code">, </span><span class="hl-identifier">attr</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">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">extend</span><span class="hl-brackets">(</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">widget</span><span class="hl-code">.</span><span class="hl-identifier">TabView</span><span class="hl-code">, </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">Element</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-reserved">var </span><span class="hl-identifier">proto</span><span class="hl-code"> = </span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">widget</span><span class="hl-code">.</span><span class="hl-identifier">TabView</span><span class="hl-code">.</span><span class="hl-identifier">prototype</span><span class="hl-code">;
</span><span class="hl-reserved">var </span><span class="hl-identifier">Dom</span><span class="hl-code"> = </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">Dom</span><span class="hl-code">;
</span><span class="hl-reserved">var </span><span class="hl-identifier">Lang</span><span class="hl-code"> = </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">Lang</span><span class="hl-code">;
</span><span class="hl-reserved">var </span><span class="hl-identifier">Event</span><span class="hl-code"> = </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">Event</span><span class="hl-code">;
</span><span class="hl-reserved">var </span><span class="hl-identifier">Tab</span><span class="hl-code"> = </span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">widget</span><span class="hl-code">.</span><span class="hl-identifier">Tab</span><span class="hl-code">;
</span><span class="hl-comment">/**
* The className to add when building from scratch.
* @property CLASSNAME
* @default &quot;navset&quot;
*/
</span><span class="hl-identifier">proto</span><span class="hl-code">.</span><span class="hl-identifier">CLASSNAME</span><span class="hl-code"> = </span><span class="hl-quotes">'</span><span class="hl-string">yui-navset</span><span class="hl-quotes">'</span><span class="hl-code">;
</span><span class="hl-comment">/**
* The className of the HTMLElement containing the TabView's tab elements
* to look for when building from existing markup, or to add when building
* from scratch.
* All childNodes of the tab container are treated as Tabs when building
* from existing markup.
* @property TAB_PARENT_CLASSNAME
* @default &quot;nav&quot;
*/
</span><span class="hl-identifier">proto</span><span class="hl-code">.</span><span class="hl-identifier">TAB_PARENT_CLASSNAME</span><span class="hl-code"> = </span><span class="hl-quotes">'</span><span class="hl-string">yui-nav</span><span class="hl-quotes">'</span><span class="hl-code">;
</span><span class="hl-comment">/**
* The className of the HTMLElement containing the TabView's label elements
* to look for when building from existing markup, or to add when building
* from scratch.
* All childNodes of the content container are treated as content elements when
* building from existing markup.
* @property CONTENT_PARENT_CLASSNAME
* @default &quot;nav-content&quot;
*/
</span><span class="hl-identifier">proto</span><span class="hl-code">.</span><span class="hl-identifier">CONTENT_PARENT_CLASSNAME</span><span class="hl-code"> = </span><span class="hl-quotes">'</span><span class="hl-string">yui-content</span><span class="hl-quotes">'</span><span class="hl-code">;
</span><span class="hl-identifier">proto</span><span class="hl-code">.</span><span class="hl-identifier">_tabParent</span><span class="hl-code"> = </span><span class="hl-reserved">null</span><span class="hl-code">;
</span><span class="hl-identifier">proto</span><span class="hl-code">.</span><span class="hl-identifier">_contentParent</span><span class="hl-code"> = </span><span class="hl-reserved">null</span><span class="hl-code">;
</span><span class="hl-comment">/**
* Adds a Tab to the TabView instance.
* If no index is specified, the tab is added to the end of the tab list.
* @method addTab
* @param {YAHOO.widget.Tab} tab A Tab instance to add.
* @param {Integer} index The position to add the tab.
* @return void
*/
</span><span class="hl-identifier">proto</span><span class="hl-code">.</span><span class="hl-identifier">addTab</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">tab</span><span class="hl-code">, </span><span class="hl-identifier">index</span><span class="hl-brackets">) {
</span><span class="hl-reserved">var </span><span class="hl-identifier">tabs</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">tabs</span><span class="hl-quotes">'</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-code">!</span><span class="hl-identifier">tabs</span><span class="hl-brackets">) { </span><span class="hl-comment">// not ready yet
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_queue</span><span class="hl-brackets">[</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_queue</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-quotes">'</span><span class="hl-string">addTab</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-identifier">arguments</span><span class="hl-brackets">]</span><span class="hl-code">;
</span><span class="hl-reserved">return false</span><span class="hl-code">;
</span><span class="hl-brackets">}
</span><span class="hl-identifier">index</span><span class="hl-code"> = </span><span class="hl-brackets">(</span><span class="hl-identifier">index</span><span class="hl-code"> === </span><span class="hl-identifier">undefined</span><span class="hl-brackets">)</span><span class="hl-code"> ? </span><span class="hl-identifier">tabs</span><span class="hl-code">.</span><span class="hl-identifier">length</span><span class="hl-code"> : </span><span class="hl-identifier">index</span><span class="hl-code">;
</span><span class="hl-reserved">var </span><span class="hl-identifier">before</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">getTab</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">var </span><span class="hl-identifier">self</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">;
</span><span class="hl-reserved">var </span><span class="hl-identifier">el</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">element</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-reserved">var </span><span class="hl-identifier">tabParent</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_tabParent</span><span class="hl-code">;
</span><span class="hl-reserved">var </span><span class="hl-identifier">contentParent</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_contentParent</span><span class="hl-code">;
</span><span class="hl-reserved">var </span><span class="hl-identifier">tabElement</span><span class="hl-code"> = </span><span class="hl-identifier">tab</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">element</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-reserved">var </span><span class="hl-identifier">contentEl</span><span class="hl-code"> = </span><span class="hl-identifier">tab</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">contentEl</span><span class="hl-quotes">'</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-identifier">before </span><span class="hl-brackets">) {
</span><span class="hl-identifier">tabParent</span><span class="hl-code">.</span><span class="hl-identifier">insertBefore</span><span class="hl-brackets">(</span><span class="hl-identifier">tabElement</span><span class="hl-code">, </span><span class="hl-identifier">before</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">element</span><span class="hl-quotes">'</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-identifier">tabParent</span><span class="hl-code">.</span><span class="hl-identifier">appendChild</span><span class="hl-brackets">(</span><span class="hl-identifier">tabElement</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">contentEl</span><span class="hl-code"> &amp;&amp; !</span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">isAncestor</span><span class="hl-brackets">(</span><span class="hl-identifier">contentParent</span><span class="hl-code">, </span><span class="hl-identifier">contentEl</span><span class="hl-brackets">) ) {
</span><span class="hl-identifier">contentParent</span><span class="hl-code">.</span><span class="hl-identifier">appendChild</span><span class="hl-brackets">(</span><span class="hl-identifier">contentEl</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-code"> !</span><span class="hl-identifier">tab</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">active</span><span class="hl-quotes">'</span><span class="hl-brackets">) ) {
</span><span class="hl-identifier">tab</span><span class="hl-code">.</span><span class="hl-identifier">set</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">contentVisible</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-reserved">false</span><span class="hl-code">, </span><span class="hl-reserved">true</span><span class="hl-brackets">)</span><span class="hl-code">; </span><span class="hl-comment">/* hide if not active */
</span><span class="hl-brackets">} </span><span class="hl-reserved">else </span><span class="hl-brackets">{
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">set</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">activeTab</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-identifier">tab</span><span class="hl-code">, </span><span class="hl-reserved">true</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">activate</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">e</span><span class="hl-brackets">) {
</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">Event</span><span class="hl-code">.</span><span class="hl-identifier">preventDefault</span><span class="hl-brackets">(</span><span class="hl-identifier">e</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-identifier">self</span><span class="hl-code">.</span><span class="hl-identifier">set</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">activeTab</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-reserved">this</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">tab</span><span class="hl-code">.</span><span class="hl-identifier">addListener</span><span class="hl-brackets">( </span><span class="hl-identifier">tab</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">activationEvent</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">, </span><span class="hl-identifier">activate</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-identifier">tab</span><span class="hl-code">.</span><span class="hl-identifier">addListener</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">activationEventChange</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">e</span><span class="hl-brackets">) {
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-identifier">e</span><span class="hl-code">.</span><span class="hl-identifier">prevValue</span><span class="hl-code"> != </span><span class="hl-identifier">e</span><span class="hl-code">.</span><span class="hl-identifier">newValue</span><span class="hl-brackets">) {
</span><span class="hl-identifier">tab</span><span class="hl-code">.</span><span class="hl-identifier">removeListener</span><span class="hl-brackets">(</span><span class="hl-identifier">e</span><span class="hl-code">.</span><span class="hl-identifier">prevValue</span><span class="hl-code">, </span><span class="hl-identifier">activate</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-identifier">tab</span><span class="hl-code">.</span><span class="hl-identifier">addListener</span><span class="hl-brackets">(</span><span class="hl-identifier">e</span><span class="hl-code">.</span><span class="hl-identifier">newValue</span><span class="hl-code">, </span><span class="hl-identifier">activate</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">tabs</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">tab</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-brackets">}</span><span class="hl-code">;
</span><span class="hl-comment">/**
* Routes childNode events.
* @method DOMEventHandler
* @param {event} e The Dom event that is being handled.
* @return void
*/
</span><span class="hl-identifier">proto</span><span class="hl-code">.</span><span class="hl-identifier">DOMEventHandler</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">e</span><span class="hl-brackets">) {
</span><span class="hl-reserved">var </span><span class="hl-identifier">el</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">element</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-reserved">var </span><span class="hl-identifier">target</span><span class="hl-code"> = </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">Event</span><span class="hl-code">.</span><span class="hl-identifier">getTarget</span><span class="hl-brackets">(</span><span class="hl-identifier">e</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-reserved">var </span><span class="hl-identifier">tabParent</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_tabParent</span><span class="hl-code">;
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">isAncestor</span><span class="hl-brackets">(</span><span class="hl-identifier">tabParent</span><span class="hl-code">, </span><span class="hl-identifier">target</span><span class="hl-brackets">) ) {
</span><span class="hl-reserved">var </span><span class="hl-identifier">tabEl</span><span class="hl-code">;
</span><span class="hl-reserved">var </span><span class="hl-identifier">tab</span><span class="hl-code"> = </span><span class="hl-reserved">null</span><span class="hl-code">;
</span><span class="hl-reserved">var </span><span class="hl-identifier">contentEl</span><span class="hl-code">;
</span><span class="hl-reserved">var </span><span class="hl-identifier">tabs</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">tabs</span><span class="hl-quotes">'</span><span class="hl-brackets">)</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">tabs</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">tabEl</span><span class="hl-code"> = </span><span class="hl-identifier">tabs</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">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">element</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-identifier">contentEl</span><span class="hl-code"> = </span><span class="hl-identifier">tabs</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">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">contentEl</span><span class="hl-quotes">'</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-identifier">target</span><span class="hl-code"> == </span><span class="hl-identifier">tabEl</span><span class="hl-code"> || </span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">isAncestor</span><span class="hl-brackets">(</span><span class="hl-identifier">tabEl</span><span class="hl-code">, </span><span class="hl-identifier">target</span><span class="hl-brackets">) ) {
</span><span class="hl-identifier">tab</span><span class="hl-code"> = </span><span class="hl-identifier">tabs</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">break</span><span class="hl-code">; </span><span class="hl-comment">// note break
</span><span class="hl-brackets">}
}
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-identifier">tab</span><span class="hl-brackets">) {
</span><span class="hl-identifier">tab</span><span class="hl-code">.</span><span class="hl-identifier">fireEvent</span><span class="hl-brackets">(</span><span class="hl-identifier">e</span><span class="hl-code">.</span><span class="hl-identifier">type</span><span class="hl-code">, </span><span class="hl-identifier">e</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-brackets">}
}
}</span><span class="hl-code">;
</span><span class="hl-comment">/**
* Returns the Tab instance at the specified index.
* @method getTab
* @param {Integer} index The position of the Tab.
* @return YAHOO.widget.Tab
*/
</span><span class="hl-identifier">proto</span><span class="hl-code">.</span><span class="hl-identifier">getTab</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">return this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">tabs</span><span class="hl-quotes">'</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-brackets">}</span><span class="hl-code">;
</span><span class="hl-comment">/**
* Returns the index of given tab.
* @method getTabIndex
* @param {YAHOO.widget.Tab} tab The tab whose index will be returned.
* @return int
*/
</span><span class="hl-identifier">proto</span><span class="hl-code">.</span><span class="hl-identifier">getTabIndex</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">tab</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">null</span><span class="hl-code">;
</span><span class="hl-reserved">var </span><span class="hl-identifier">tabs</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">tabs</span><span class="hl-quotes">'</span><span class="hl-brackets">)</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">tabs</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-brackets">) {
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-identifier">tab</span><span class="hl-code"> == </span><span class="hl-identifier">tabs</span><span class="hl-brackets">[</span><span class="hl-identifier">i</span><span class="hl-brackets">]) {
</span><span class="hl-identifier">index</span><span class="hl-code"> = </span><span class="hl-identifier">i</span><span class="hl-code">;
</span><span class="hl-reserved">break</span><span class="hl-code">;
</span><span class="hl-brackets">}
}
</span><span class="hl-reserved">return </span><span class="hl-identifier">index</span><span class="hl-code">;
</span><span class="hl-brackets">}</span><span class="hl-code">;
</span><span class="hl-comment">/**
* Removes the specified Tab from the TabView.
* @method removeTab
* @param {YAHOO.widget.Tab} item The Tab instance to be removed.
* @return void
*/
</span><span class="hl-identifier">proto</span><span class="hl-code">.</span><span class="hl-identifier">removeTab</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">tab</span><span class="hl-brackets">) {
</span><span class="hl-reserved">var </span><span class="hl-identifier">tabCount</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">tabs</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-identifier">length</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">getTabIndex</span><span class="hl-brackets">(</span><span class="hl-identifier">tab</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-reserved">var </span><span class="hl-identifier">nextIndex</span><span class="hl-code"> = </span><span class="hl-identifier">index</span><span class="hl-code"> + </span><span class="hl-number">1</span><span class="hl-code">;
</span><span class="hl-reserved">if </span><span class="hl-brackets">( </span><span class="hl-identifier">tab</span><span class="hl-code"> == </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">activeTab</span><span class="hl-quotes">'</span><span class="hl-brackets">) ) { </span><span class="hl-comment">// select next tab
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-identifier">tabCount</span><span class="hl-code"> &gt; </span><span class="hl-number">1</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"> + </span><span class="hl-number">1</span><span class="hl-code"> == </span><span class="hl-identifier">tabCount</span><span class="hl-brackets">) {
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">set</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">activeIndex</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-number">1</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">this</span><span class="hl-code">.</span><span class="hl-identifier">set</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">activeIndex</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-number">1</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">_tabParent</span><span class="hl-code">.</span><span class="hl-identifier">removeChild</span><span class="hl-brackets">( </span><span class="hl-identifier">tab</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">element</span><span class="hl-quotes">'</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">_contentParent</span><span class="hl-code">.</span><span class="hl-identifier">removeChild</span><span class="hl-brackets">( </span><span class="hl-identifier">tab</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">contentEl</span><span class="hl-quotes">'</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">_configs</span><span class="hl-code">.</span><span class="hl-identifier">tabs</span><span class="hl-code">.</span><span class="hl-identifier">value</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-brackets">}</span><span class="hl-code">;
</span><span class="hl-comment">/**
* Provides a readable name for the TabView instance.
* @method toString
* @return String
*/
</span><span class="hl-identifier">proto</span><span class="hl-code">.</span><span class="hl-identifier">toString</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">() {
</span><span class="hl-reserved">var </span><span class="hl-identifier">name</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">id</span><span class="hl-quotes">'</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">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">tagName</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-reserved">return </span><span class="hl-quotes">&quot;</span><span class="hl-string">TabView </span><span class="hl-quotes">&quot;</span><span class="hl-code"> + </span><span class="hl-identifier">name</span><span class="hl-code">;
</span><span class="hl-brackets">}</span><span class="hl-code">;
</span><span class="hl-comment">/**
* The transiton to use when switching between tabs.
* @method contentTransition
*/
</span><span class="hl-identifier">proto</span><span class="hl-code">.</span><span class="hl-identifier">contentTransition</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">newTab</span><span class="hl-code">, </span><span class="hl-identifier">oldTab</span><span class="hl-brackets">) {
</span><span class="hl-identifier">newTab</span><span class="hl-code">.</span><span class="hl-identifier">set</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">contentVisible</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-reserved">true</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-identifier">oldTab</span><span class="hl-code">.</span><span class="hl-identifier">set</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">contentVisible</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-reserved">false</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-brackets">}</span><span class="hl-code">;
</span><span class="hl-comment">/**
* Registers TabView specific properties.
* @method initAttributes
* @param {Object} attr Hash of initial attributes
*/
</span><span class="hl-identifier">proto</span><span class="hl-code">.</span><span class="hl-identifier">initAttributes</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">attr</span><span class="hl-brackets">) {
</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">widget</span><span class="hl-code">.</span><span class="hl-identifier">TabView</span><span class="hl-code">.</span><span class="hl-identifier">superclass</span><span class="hl-code">.</span><span class="hl-identifier">initAttributes</span><span class="hl-code">.</span><span class="hl-identifier">call</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">, </span><span class="hl-identifier">attr</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-code">!</span><span class="hl-identifier">attr</span><span class="hl-code">.</span><span class="hl-identifier">orientation</span><span class="hl-brackets">) {
</span><span class="hl-identifier">attr</span><span class="hl-code">.</span><span class="hl-identifier">orientation</span><span class="hl-code"> = </span><span class="hl-quotes">'</span><span class="hl-string">top</span><span class="hl-quotes">'</span><span class="hl-code">;
</span><span class="hl-brackets">}
</span><span class="hl-reserved">var </span><span class="hl-identifier">el</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">element</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-comment">/**
* The Tabs belonging to the TabView instance.
* @config tabs
* @type Array
*/
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">register</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">tabs</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-brackets">{
</span><span class="hl-identifier">value</span><span class="hl-code">: </span><span class="hl-brackets">[]</span><span class="hl-code">,
</span><span class="hl-identifier">readOnly</span><span class="hl-code">: </span><span class="hl-reserved">true
</span><span class="hl-brackets">})</span><span class="hl-code">;
</span><span class="hl-comment">/**
* The container of the tabView's label elements.
* @property _tabParent
* @private
* @type HTMLElement
*/
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_tabParent</span><span class="hl-code"> =
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">getElementsByClassName</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">TAB_PARENT_CLASSNAME</span><span class="hl-code">,
</span><span class="hl-quotes">'</span><span class="hl-string">ul</span><span class="hl-quotes">' </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">_createTabParent</span><span class="hl-code">.</span><span class="hl-identifier">call</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-comment">/**
* The container of the tabView's content elements.
* @property _contentParent
* @type HTMLElement
* @private
*/
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_contentParent</span><span class="hl-code"> =
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">getElementsByClassName</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">CONTENT_PARENT_CLASSNAME</span><span class="hl-code">,
</span><span class="hl-quotes">'</span><span class="hl-string">div</span><span class="hl-quotes">'</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">_createContentParent</span><span class="hl-code">.</span><span class="hl-identifier">call</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-comment">/**
* How the Tabs should be oriented relative to the TabView.
* @config orientation
* @type String
* @default &quot;top&quot;
*/
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">register</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">orientation</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-brackets">{
</span><span class="hl-identifier">value</span><span class="hl-code">: </span><span class="hl-identifier">attr</span><span class="hl-code">.</span><span class="hl-identifier">orientation</span><span class="hl-code">,
</span><span class="hl-identifier">method</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">value</span><span class="hl-brackets">) {
</span><span class="hl-reserved">var </span><span class="hl-identifier">current</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">orientation</span><span class="hl-quotes">'</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">addClass</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">yui-navset-</span><span class="hl-quotes">'</span><span class="hl-code"> + </span><span class="hl-identifier">value</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-identifier">current</span><span class="hl-code"> != </span><span class="hl-identifier">value</span><span class="hl-brackets">) {
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">removeClass</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">yui-navset-</span><span class="hl-quotes">'</span><span class="hl-code"> + </span><span class="hl-identifier">current</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-brackets">}
</span><span class="hl-reserved">switch</span><span class="hl-brackets">(</span><span class="hl-identifier">value</span><span class="hl-brackets">) {
</span><span class="hl-reserved">case </span><span class="hl-quotes">'</span><span class="hl-string">bottom</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">appendChild</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_tabParent</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-reserved">break</span><span class="hl-code">;
</span><span class="hl-brackets">}
}
})</span><span class="hl-code">;
</span><span class="hl-comment">/**
* The index of the tab currently active.
* @config activeIndex
* @type Int
*/
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">register</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">activeIndex</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-brackets">{
</span><span class="hl-identifier">value</span><span class="hl-code">: </span><span class="hl-identifier">attr</span><span class="hl-code">.</span><span class="hl-identifier">activeIndex</span><span class="hl-code">,
</span><span class="hl-identifier">method</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">value</span><span class="hl-brackets">) {
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">set</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">activeTab</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">getTab</span><span class="hl-brackets">(</span><span class="hl-identifier">value</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">validator</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">value</span><span class="hl-brackets">) {
</span><span class="hl-reserved">return</span><span class="hl-code"> !</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">getTab</span><span class="hl-brackets">(</span><span class="hl-identifier">value</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">disabled</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">; </span><span class="hl-comment">// cannot activate if disabled
</span><span class="hl-brackets">}
})</span><span class="hl-code">;
</span><span class="hl-comment">/**
* The tab currently active.
* @config activeTab
* @type YAHOO.widget.Tab
*/
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">register</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">activeTab</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-brackets">{
</span><span class="hl-identifier">value</span><span class="hl-code">: </span><span class="hl-identifier">attr</span><span class="hl-code">.</span><span class="hl-identifier">activeTab</span><span class="hl-code">,
</span><span class="hl-identifier">method</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">tab</span><span class="hl-brackets">) {
</span><span class="hl-reserved">var </span><span class="hl-identifier">activeTab</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">activeTab</span><span class="hl-quotes">'</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-identifier">tab</span><span class="hl-brackets">) {
</span><span class="hl-identifier">tab</span><span class="hl-code">.</span><span class="hl-identifier">set</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">active</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-reserved">true</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">activeTab</span><span class="hl-code"> &amp;&amp; </span><span class="hl-identifier">activeTab</span><span class="hl-code"> != </span><span class="hl-identifier">tab</span><span class="hl-brackets">) {
</span><span class="hl-identifier">activeTab</span><span class="hl-code">.</span><span class="hl-identifier">set</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">active</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-reserved">false</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">activeTab</span><span class="hl-code"> &amp;&amp; </span><span class="hl-identifier">tab</span><span class="hl-code"> != </span><span class="hl-identifier">activeTab</span><span class="hl-brackets">) { </span><span class="hl-comment">// no transition if only 1
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">contentTransition</span><span class="hl-brackets">(</span><span class="hl-identifier">tab</span><span class="hl-code">, </span><span class="hl-identifier">activeTab</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-brackets">} </span><span class="hl-reserved">else if </span><span class="hl-brackets">(</span><span class="hl-identifier">tab</span><span class="hl-brackets">) {
</span><span class="hl-identifier">tab</span><span class="hl-code">.</span><span class="hl-identifier">set</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">contentVisible</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-reserved">true</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">validator</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">value</span><span class="hl-brackets">) {
</span><span class="hl-reserved">return</span><span class="hl-code"> !</span><span class="hl-identifier">value</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">disabled</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">; </span><span class="hl-comment">// cannot activate if disabled
</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">this</span><span class="hl-code">.</span><span class="hl-identifier">_tabParent </span><span class="hl-brackets">) {
</span><span class="hl-identifier">_initTabs</span><span class="hl-code">.</span><span class="hl-identifier">call</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-brackets">)</span><span class="hl-code">;
</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">type </span><span class="hl-reserved">in this</span><span class="hl-code">.</span><span class="hl-identifier">DOM_EVENTS</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">DOM_EVENTS</span><span class="hl-code">.</span><span class="hl-identifier">hasOwnProperty</span><span class="hl-brackets">(</span><span class="hl-identifier">type</span><span class="hl-brackets">) ) {
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">addListener</span><span class="hl-code">.</span><span class="hl-identifier">call</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">, </span><span class="hl-identifier">type</span><span class="hl-code">, </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">DOMEventHandler</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-brackets">}
}
}</span><span class="hl-code">;
</span><span class="hl-comment">/**
* Creates Tab instances from a collection of HTMLElements.
* @method createTabs
* @private
* @param {Array|HTMLCollection} elements The elements to use for Tabs.
* @return void
*/
</span><span class="hl-reserved">var </span><span class="hl-identifier">_initTabs</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">() {
</span><span class="hl-reserved">var </span><span class="hl-identifier">tab</span><span class="hl-code">,
</span><span class="hl-identifier">attr</span><span class="hl-code">,
</span><span class="hl-identifier">contentEl</span><span class="hl-code">;
</span><span class="hl-reserved">var </span><span class="hl-identifier">el</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">element</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-reserved">var </span><span class="hl-identifier">tabs</span><span class="hl-code"> = </span><span class="hl-identifier">_getChildNodes</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_tabParent</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-reserved">var </span><span class="hl-identifier">contentElements</span><span class="hl-code"> = </span><span class="hl-identifier">_getChildNodes</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_contentParent</span><span class="hl-brackets">)</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">tabs</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-brackets">) {
</span><span class="hl-identifier">attr</span><span class="hl-code"> = </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-identifier">contentElements</span><span class="hl-brackets">[</span><span class="hl-identifier">i</span><span class="hl-brackets">]) {
</span><span class="hl-identifier">attr</span><span class="hl-code">.</span><span class="hl-identifier">contentEl</span><span class="hl-code"> = </span><span class="hl-identifier">contentElements</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-identifier">tab</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">widget</span><span class="hl-code">.</span><span class="hl-identifier">Tab</span><span class="hl-brackets">(</span><span class="hl-identifier">tabs</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">attr</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">addTab</span><span class="hl-brackets">(</span><span class="hl-identifier">tab</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-identifier">tab</span><span class="hl-code">.</span><span class="hl-identifier">hasClass</span><span class="hl-brackets">(</span><span class="hl-identifier">tab</span><span class="hl-code">.</span><span class="hl-identifier">ACTIVE_CLASSNAME</span><span class="hl-brackets">) ) {
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_configs</span><span class="hl-code">.</span><span class="hl-identifier">activeTab</span><span class="hl-code">.</span><span class="hl-identifier">value</span><span class="hl-code"> = </span><span class="hl-identifier">tab</span><span class="hl-code">; </span><span class="hl-comment">// dont invoke method
</span><span class="hl-brackets">}
}
}</span><span class="hl-code">;
</span><span class="hl-reserved">var </span><span class="hl-identifier">_createTabViewElement</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">attr</span><span class="hl-brackets">) {
</span><span class="hl-reserved">var </span><span class="hl-identifier">el</span><span class="hl-code"> = </span><span class="hl-builtin">document</span><span class="hl-code">.</span><span class="hl-identifier">createElement</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">div</span><span class="hl-quotes">'</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">this</span><span class="hl-code">.</span><span class="hl-identifier">CLASSNAME </span><span class="hl-brackets">) {
</span><span class="hl-identifier">el</span><span class="hl-code">.</span><span class="hl-identifier">className</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">CLASSNAME</span><span class="hl-code">;
</span><span class="hl-brackets">}
</span><span class="hl-reserved">return </span><span class="hl-identifier">el</span><span class="hl-code">;
</span><span class="hl-brackets">}</span><span class="hl-code">;
</span><span class="hl-reserved">var </span><span class="hl-identifier">_createTabParent</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">attr</span><span class="hl-brackets">) {
</span><span class="hl-reserved">var </span><span class="hl-identifier">el</span><span class="hl-code"> = </span><span class="hl-builtin">document</span><span class="hl-code">.</span><span class="hl-identifier">createElement</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">ul</span><span class="hl-quotes">'</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">this</span><span class="hl-code">.</span><span class="hl-identifier">TAB_PARENT_CLASSNAME </span><span class="hl-brackets">) {
</span><span class="hl-identifier">el</span><span class="hl-code">.</span><span class="hl-identifier">className</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">TAB_PARENT_CLASSNAME</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">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">element</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-identifier">appendChild</span><span class="hl-brackets">(</span><span class="hl-identifier">el</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-reserved">return </span><span class="hl-identifier">el</span><span class="hl-code">;
</span><span class="hl-brackets">}</span><span class="hl-code">;
</span><span class="hl-reserved">var </span><span class="hl-identifier">_createContentParent</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">attr</span><span class="hl-brackets">) {
</span><span class="hl-reserved">var </span><span class="hl-identifier">el</span><span class="hl-code"> = </span><span class="hl-builtin">document</span><span class="hl-code">.</span><span class="hl-identifier">createElement</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">div</span><span class="hl-quotes">'</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">this</span><span class="hl-code">.</span><span class="hl-identifier">CONTENT_PARENT_CLASSNAME </span><span class="hl-brackets">) {
</span><span class="hl-identifier">el</span><span class="hl-code">.</span><span class="hl-identifier">className</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">CONTENT_PARENT_CLASSNAME</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">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">element</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-identifier">appendChild</span><span class="hl-brackets">(</span><span class="hl-identifier">el</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-reserved">return </span><span class="hl-identifier">el</span><span class="hl-code">;
</span><span class="hl-brackets">}</span><span class="hl-code">;
</span><span class="hl-reserved">var </span><span class="hl-identifier">_getChildNodes</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">el</span><span class="hl-brackets">) {
</span><span class="hl-reserved">var </span><span class="hl-identifier">nodes</span><span class="hl-code"> = </span><span class="hl-brackets">[]</span><span class="hl-code">;
</span><span class="hl-reserved">var </span><span class="hl-identifier">childNodes</span><span class="hl-code"> = </span><span class="hl-identifier">el</span><span class="hl-code">.</span><span class="hl-identifier">childNodes</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">childNodes</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-brackets">) {
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-identifier">childNodes</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">nodeType</span><span class="hl-code"> == </span><span class="hl-number">1</span><span class="hl-brackets">) {
</span><span class="hl-identifier">nodes</span><span class="hl-brackets">[</span><span class="hl-identifier">nodes</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-identifier">childNodes</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 </span><span class="hl-identifier">nodes</span><span class="hl-code">;
</span><span class="hl-brackets">}</span><span class="hl-code">;
</span><span class="hl-comment">/**
* Fires before the activeTab is changed.
* &lt;p&gt;See: &lt;a href=&quot;YAHOO.util.Element.html#addListener&quot;&gt;Element.addListener&lt;/a&gt;&lt;/p&gt;
* &lt;p&gt;If handler returns false, the change will be cancelled, and the value will not
* be set.&lt;/p&gt;
* &lt;p&gt;&lt;strong&gt;Event fields:&lt;/strong&gt;&lt;br&gt;
* &lt;code&gt;&amp;lt;String&amp;gt; type&lt;/code&gt; beforeActiveTabChange&lt;br&gt;
* &lt;code&gt;&amp;lt;&lt;a href=&quot;YAHOO.widget.Tab.html&quot;&gt;YAHOO.widget.Tab&lt;/a&gt;&amp;gt;
* prevValue&lt;/code&gt; the currently active tab&lt;br&gt;
* &lt;code&gt;&amp;lt;&lt;a href=&quot;YAHOO.widget.Tab.html&quot;&gt;YAHOO.widget.Tab&lt;/a&gt;&amp;gt;
* newValue&lt;/code&gt; the tab to be made active&lt;/p&gt;
* &lt;p&gt;&lt;strong&gt;Usage:&lt;/strong&gt;&lt;br&gt;
* &lt;code&gt;var handler = function(e) {var previous = e.prevValue};&lt;br&gt;
* myTabs.addListener('beforeActiveTabChange', handler);&lt;/code&gt;&lt;/p&gt;
* @event beforeActiveTabChange
*/
// holder
/**
* Fires after the activeTab is changed.
* &lt;p&gt;See: &lt;a href=&quot;YAHOO.util.Element.html#addListener&quot;&gt;Element.addListener&lt;/a&gt;&lt;/p&gt;
* &lt;p&gt;&lt;strong&gt;Event fields:&lt;/strong&gt;&lt;br&gt;
* &lt;code&gt;&amp;lt;String&amp;gt; type&lt;/code&gt; activeTabChange&lt;br&gt;
* &lt;code&gt;&amp;lt;&lt;a href=&quot;YAHOO.widget.Tab.html&quot;&gt;YAHOO.widget.Tab&lt;/a&gt;&amp;gt;
* prevValue&lt;/code&gt; the formerly active tab&lt;br&gt;
* &lt;code&gt;&amp;lt;&lt;a href=&quot;YAHOO.widget.Tab.html&quot;&gt;YAHOO.widget.Tab&lt;/a&gt;&amp;gt;
* newValue&lt;/code&gt; the new active tab&lt;/p&gt;
* &lt;p&gt;&lt;strong&gt;Usage:&lt;/strong&gt;&lt;br&gt;
* &lt;code&gt;var handler = function(e) {var previous = e.prevValue};&lt;br&gt;
* myTabs.addListener('activeTabChange', handler);&lt;/code&gt;&lt;/p&gt;
* @event activeTabChange
*/
// holder
/**
* Fires before the orientation is changed.
* &lt;p&gt;See: &lt;a href=&quot;YAHOO.util.Element.html#addListener&quot;&gt;Element.addListener&lt;/a&gt;&lt;/p&gt;
* &lt;p&gt;If handler returns false, the change will be cancelled, and the value will not
* be set.&lt;/p&gt;
* &lt;p&gt;&lt;strong&gt;Event fields:&lt;/strong&gt;&lt;br&gt;
* &lt;code&gt;&amp;lt;String&amp;gt; type&lt;/code&gt; beforeOrientationChange&lt;br&gt;
* &lt;code&gt;&amp;lt;String&amp;gt;
* prevValue&lt;/code&gt; the current orientation&lt;br&gt;
* &lt;code&gt;&amp;lt;String&amp;gt;
* newValue&lt;/code&gt; the new orientation to be applied&lt;/p&gt;
* &lt;p&gt;&lt;strong&gt;Usage:&lt;/strong&gt;&lt;br&gt;
* &lt;code&gt;var handler = function(e) {var previous = e.prevValue};&lt;br&gt;
* myTabs.addListener('beforeOrientationChange', handler);&lt;/code&gt;&lt;/p&gt;
* @event beforeOrientationChange
*/
// holder
/**
* Fires after the orientation is changed.
* &lt;p&gt;See: &lt;a href=&quot;YAHOO.util.Element.html#addListener&quot;&gt;Element.addListener&lt;/a&gt;&lt;/p&gt;
* &lt;p&gt;&lt;strong&gt;Event fields:&lt;/strong&gt;&lt;br&gt;
* &lt;code&gt;&amp;lt;String&amp;gt; type&lt;/code&gt; orientationChange&lt;br&gt;
* &lt;code&gt;&amp;lt;String&amp;gt;
* prevValue&lt;/code&gt; the former orientation&lt;br&gt;
* &lt;code&gt;&amp;lt;String&amp;gt;
* newValue&lt;/code&gt; the new orientation&lt;/p&gt;
* &lt;p&gt;&lt;strong&gt;Usage:&lt;/strong&gt;&lt;br&gt;
* &lt;code&gt;var handler = function(e) {var previous = e.prevValue};&lt;br&gt;
* myTabs.addListener('orientationChange', handler);&lt;/code&gt;&lt;/p&gt;
* @event orientationChange
*/
</span><span class="hl-brackets">})()</span><span class="hl-default">;</span></pre></div><hr>Copyright &copy; 2006 Jack Slocum. All rights reserved.</body></html>