src/cm/media/js/lib/yui/yui_3.0.0b1/api/slider.js.html
changeset 0 40c8f766c9b8
equal deleted inserted replaced
-1:000000000000 0:40c8f766c9b8
       
     1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
       
     2 <html xmlns:yui="http://yuilibrary.com/rdf/1.0/yui.rdf#">
       
     3 <head>
       
     4     <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
       
     5 	<title>API: slider   slider.js  (YUI Library)</title>
       
     6 
       
     7 	<link rel="stylesheet" type="text/css" href="assets/reset-fonts-grids-min.css" />
       
     8 	<link rel="stylesheet" type="text/css" href="assets/api.css" />
       
     9 
       
    10     <script type="text/javascript" src="assets/api-js"></script>
       
    11     <script type="text/javascript" src="assets/ac-js"></script>
       
    12 </head>
       
    13 
       
    14 <body id="yahoo-com">
       
    15 
       
    16 <div id="doc3" class="yui-t2">
       
    17 	<div id="hd">
       
    18         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
       
    19         <h3>slider&nbsp; <span class="subtitle">3.0.0b1</span></h3>
       
    20         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
       
    21             &gt; <a href="./module_slider.html" title="slider">slider</a>
       
    22                 
       
    23                  &gt; slider.js (source view) 
       
    24         <form onsubmit="return false">
       
    25             <div id="propertysearch">
       
    26                 Search: <input autocomplete="off" id="searchinput" />
       
    27                 <div id="searchresults">
       
    28                     &nbsp;
       
    29                 </div>
       
    30             </div>
       
    31         </form>
       
    32 	</div>
       
    33 
       
    34 	<div id="bd">
       
    35 		<div id="yui-main">
       
    36 			<div class="yui-b">
       
    37             <form action="#" name="yui-classopts-form" method="get" id="yui-classopts-form">
       
    38                 <fieldset>
       
    39                     <legend>Filters</legend>
       
    40                 <span class="classopts"><input type="checkbox" name="show_private" id="show_private" /> <label for="show_private">Show Private</label></span>
       
    41                 <span class="classopts"><input type="checkbox" name="show_protected" id="show_protected" /> <label for="show_protected">Show Protected</label></span>
       
    42                 <span class="classopts"><input type="checkbox" name="show_deprecated" id="show_deprecated" /> <label for="show_deprecated">Show Deprecated</label></span>
       
    43                 </fieldset>
       
    44             </form>
       
    45 
       
    46                     <div id="srcout">
       
    47                         <style>
       
    48                             #doc3 .classopts { display:none; }
       
    49                         </style>
       
    50 <div class="highlight" ><pre><span class="c">/**</span>
       
    51 <span class="c"> * Create a sliding value range input visualized as a draggable thumb on a</span>
       
    52 <span class="c"> * background element.</span>
       
    53 <span class="c"> * </span>
       
    54 <span class="c"> * @module slider</span>
       
    55 <span class="c"> */</span>
       
    56 
       
    57 <span class="k">var</span> <span class="nx">SLIDER</span> <span class="o">=</span> <span class="s1">&#39;slider&#39;</span><span class="o">,</span>
       
    58     <span class="nx">RAIL</span>   <span class="o">=</span> <span class="s1">&#39;rail&#39;</span><span class="o">,</span>
       
    59     <span class="nx">THUMB</span>  <span class="o">=</span> <span class="s1">&#39;thumb&#39;</span><span class="o">,</span>
       
    60     <span class="nx">VALUE</span>  <span class="o">=</span> <span class="s1">&#39;value&#39;</span><span class="o">,</span>
       
    61     <span class="nx">MIN</span>    <span class="o">=</span> <span class="s1">&#39;min&#39;</span><span class="o">,</span>
       
    62     <span class="nx">MAX</span>    <span class="o">=</span> <span class="s1">&#39;max&#39;</span><span class="o">,</span>
       
    63     <span class="nx">MIN_GUTTER</span> <span class="o">=</span> <span class="s1">&#39;minGutter&#39;</span><span class="o">,</span>
       
    64     <span class="nx">MAX_GUTTER</span> <span class="o">=</span> <span class="s1">&#39;maxGutter&#39;</span><span class="o">,</span>
       
    65     <span class="nx">THUMB_IMAGE</span> <span class="o">=</span> <span class="s1">&#39;thumbImage&#39;</span><span class="o">,</span>
       
    66     <span class="nx">RAIL_SIZE</span>   <span class="o">=</span> <span class="s1">&#39;railSize&#39;</span><span class="o">,</span>
       
    67     <span class="nx">CONTENT_BOX</span> <span class="o">=</span> <span class="s1">&#39;contentBox&#39;</span><span class="o">,</span>
       
    68 
       
    69     <span class="nx">SLIDE_START</span> <span class="o">=</span> <span class="s1">&#39;slideStart&#39;</span><span class="o">,</span>
       
    70     <span class="nx">SLIDE_END</span>   <span class="o">=</span> <span class="s1">&#39;slideEnd&#39;</span><span class="o">,</span>
       
    71 
       
    72     <span class="nx">THUMB_DRAG</span>  <span class="o">=</span> <span class="s1">&#39;thumbDrag&#39;</span><span class="o">,</span>
       
    73     <span class="nx">SYNC</span>        <span class="o">=</span> <span class="s1">&#39;sync&#39;</span><span class="o">,</span>
       
    74     <span class="nx">POSITION_THUMB</span> <span class="o">=</span> <span class="s1">&#39;positionThumb&#39;</span><span class="o">,</span>
       
    75     <span class="nx">RENDERED</span>    <span class="o">=</span> <span class="s1">&#39;rendered&#39;</span><span class="o">,</span>
       
    76     <span class="nx">DISABLED</span>    <span class="o">=</span> <span class="s1">&#39;disabled&#39;</span><span class="o">,</span>
       
    77     <span class="nx">DISABLED_CHANGE</span> <span class="o">=</span> <span class="s1">&#39;disabledChange&#39;</span><span class="o">,</span>
       
    78 
       
    79     <span class="nx">DOT</span>      <span class="o">=</span> <span class="s1">&#39;.&#39;</span><span class="o">,</span>
       
    80     <span class="nx">PX</span>       <span class="o">=</span> <span class="s1">&#39;px&#39;</span><span class="o">,</span>
       
    81     <span class="nx">WIDTH</span>    <span class="o">=</span> <span class="s1">&#39;width&#39;</span><span class="o">,</span>
       
    82     <span class="nx">HEIGHT</span>   <span class="o">=</span> <span class="s1">&#39;height&#39;</span><span class="o">,</span>
       
    83     <span class="nx">COMPLETE</span> <span class="o">=</span> <span class="s1">&#39;complete&#39;</span><span class="o">,</span>
       
    84 
       
    85     <span class="nx">L</span> <span class="o">=</span> <span class="nx">Y</span><span class="o">.</span><span class="nx">Lang</span><span class="o">,</span>
       
    86     <span class="nx">isBoolean</span><span class="o">=</span> <span class="nx">L</span><span class="o">.</span><span class="nx">isBoolean</span><span class="o">,</span>
       
    87     <span class="nx">isString</span> <span class="o">=</span> <span class="nx">L</span><span class="o">.</span><span class="nx">isString</span><span class="o">,</span>
       
    88     <span class="nx">isNumber</span> <span class="o">=</span> <span class="nx">L</span><span class="o">.</span><span class="nx">isNumber</span><span class="o">,</span>
       
    89     
       
    90     <span class="nx">getCN</span>    <span class="o">=</span> <span class="nx">Y</span><span class="o">.</span><span class="nx">ClassNameManager</span><span class="o">.</span><span class="nx">getClassName</span><span class="o">,</span>
       
    91 
       
    92     <span class="nx">IMAGE</span>         <span class="o">=</span> <span class="s1">&#39;image&#39;</span><span class="o">,</span>
       
    93     <span class="nx">C_RAIL</span>        <span class="o">=</span> <span class="nx">getCN</span><span class="o">(</span><span class="nx">SLIDER</span><span class="o">,</span><span class="nx">RAIL</span><span class="o">),</span>
       
    94     <span class="nx">C_THUMB</span>       <span class="o">=</span> <span class="nx">getCN</span><span class="o">(</span><span class="nx">SLIDER</span><span class="o">,</span><span class="nx">THUMB</span><span class="o">),</span>
       
    95     <span class="nx">C_THUMB_IMAGE</span> <span class="o">=</span> <span class="nx">getCN</span><span class="o">(</span><span class="nx">SLIDER</span><span class="o">,</span><span class="nx">THUMB</span><span class="o">,</span><span class="nx">IMAGE</span><span class="o">),</span>
       
    96     <span class="nx">C_IMAGE_ERROR</span> <span class="o">=</span> <span class="nx">getCN</span><span class="o">(</span><span class="nx">SLIDER</span><span class="o">,</span><span class="nx">IMAGE</span><span class="o">,</span><span class="s1">&#39;error&#39;</span><span class="o">),</span>
       
    97 
       
    98     <span class="nx">M</span>        <span class="o">=</span> <span class="nb">Math</span><span class="o">,</span>
       
    99     <span class="nx">max</span>      <span class="o">=</span> <span class="nx">M</span><span class="o">.</span><span class="nx">max</span><span class="o">,</span>
       
   100     <span class="nx">round</span>    <span class="o">=</span> <span class="nx">M</span><span class="o">.</span><span class="nx">round</span><span class="o">,</span>
       
   101     <span class="nx">floor</span>    <span class="o">=</span> <span class="nx">M</span><span class="o">.</span><span class="nx">floor</span><span class="o">;</span>
       
   102 
       
   103 <span class="c">/**</span>
       
   104 <span class="c"> * Create a slider to represent an integer value between a given minimum and</span>
       
   105 <span class="c"> * maximum.  Sliders may be aligned vertically or horizontally, based on the</span>
       
   106 <span class="c"> * &lt;code&gt;axis&lt;/code&gt; configuration.</span>
       
   107 <span class="c"> *</span>
       
   108 <span class="c"> * @class Slider</span>
       
   109 <span class="c"> * @extends Widget</span>
       
   110 <span class="c"> * @param config {Object} Configuration object</span>
       
   111 <span class="c"> * @constructor</span>
       
   112 <span class="c"> */</span>
       
   113 <span class="k">function</span> <span class="nx">Slider</span><span class="o">()</span> <span class="o">{</span>
       
   114     <span class="nx">Slider</span><span class="o">.</span><span class="nx">superclass</span><span class="o">.</span><span class="nx">constructor</span><span class="o">.</span><span class="nx">apply</span><span class="o">(</span><span class="k">this</span><span class="o">,</span><span class="nx">arguments</span><span class="o">);</span>
       
   115 <span class="o">}</span>
       
   116 
       
   117 <span class="nx">Y</span><span class="o">.</span><span class="nx">mix</span><span class="o">(</span><span class="nx">Slider</span><span class="o">,</span> <span class="o">{</span>
       
   118 
       
   119     <span class="c">/**</span>
       
   120 <span class="c">     * The identity of the widget.</span>
       
   121 <span class="c">     *</span>
       
   122 <span class="c">     * @property Slider.NAME</span>
       
   123 <span class="c">     * @type String</span>
       
   124 <span class="c">     * @static</span>
       
   125 <span class="c">     */</span>
       
   126     <span class="nx">NAME</span> <span class="o">:</span> <span class="nx">SLIDER</span><span class="o">,</span>
       
   127 
       
   128     <span class="c">/**</span>
       
   129 <span class="c">     * Object property names used for respective X and Y axis Sliders (e.g.</span>
       
   130 <span class="c">     * &amp;quot;left&amp;quot; vs. &amp;quot;top&amp;quot; for placing the thumb according to</span>
       
   131 <span class="c">     * its representative value).</span>
       
   132 <span class="c">     *</span>
       
   133 <span class="c">     * @property Slider.AXIS_KEYS</span>
       
   134 <span class="c">     * @type Object</span>
       
   135 <span class="c">     * @protected</span>
       
   136 <span class="c">     * @static</span>
       
   137 <span class="c">     */</span>
       
   138     <span class="nx">AXIS_KEYS</span> <span class="o">:</span> <span class="o">{</span>
       
   139         <span class="nx">x</span> <span class="o">:</span> <span class="o">{</span>
       
   140             <span class="nx">dim</span>           <span class="o">:</span> <span class="nx">WIDTH</span><span class="o">,</span>
       
   141             <span class="nx">offAxisDim</span>    <span class="o">:</span> <span class="nx">HEIGHT</span><span class="o">,</span>
       
   142             <span class="nx">eventPageAxis</span> <span class="o">:</span> <span class="s1">&#39;pageX&#39;</span><span class="o">,</span>
       
   143             <span class="nx">ddStick</span>       <span class="o">:</span> <span class="s1">&#39;stickX&#39;</span><span class="o">,</span>
       
   144             <span class="nx">xyIndex</span>       <span class="o">:</span> <span class="m">0</span>
       
   145         <span class="o">},</span>
       
   146         <span class="nx">y</span> <span class="o">:</span> <span class="o">{</span>
       
   147             <span class="nx">dim</span>           <span class="o">:</span> <span class="nx">HEIGHT</span><span class="o">,</span>
       
   148             <span class="nx">offAxisDim</span>    <span class="o">:</span> <span class="nx">WIDTH</span><span class="o">,</span>
       
   149             <span class="nx">eventPageAxis</span> <span class="o">:</span> <span class="s1">&#39;pageY&#39;</span><span class="o">,</span>
       
   150             <span class="nx">ddStick</span>       <span class="o">:</span> <span class="s1">&#39;stickY&#39;</span><span class="o">,</span>
       
   151             <span class="nx">xyIndex</span>       <span class="o">:</span> <span class="m">1</span>
       
   152         <span class="o">}</span>
       
   153     <span class="o">},</span>
       
   154 
       
   155     <span class="c">/**</span>
       
   156 <span class="c">     * Static Object hash used to capture existing markup for progressive</span>
       
   157 <span class="c">     * enhancement.  Keys correspond to config attribute names and values</span>
       
   158 <span class="c">     * are selectors used to inspect the contentBox for an existing node</span>
       
   159 <span class="c">     * structure.</span>
       
   160 <span class="c">     *</span>
       
   161 <span class="c">     * @property Slider.HTML_PARSER</span>
       
   162 <span class="c">     * @type Object</span>
       
   163 <span class="c">     * @protected</span>
       
   164 <span class="c">     * @static</span>
       
   165 <span class="c">     */</span>
       
   166     <span class="nx">HTML_PARSER</span> <span class="o">:</span> <span class="o">{</span>
       
   167         <span class="nx">rail</span>       <span class="o">:</span> <span class="nx">DOT</span> <span class="o">+</span> <span class="nx">C_RAIL</span><span class="o">,</span>
       
   168         <span class="nx">thumb</span>      <span class="o">:</span> <span class="nx">DOT</span> <span class="o">+</span> <span class="nx">C_THUMB</span><span class="o">,</span>
       
   169         <span class="nx">thumbImage</span> <span class="o">:</span> <span class="nx">DOT</span> <span class="o">+</span> <span class="nx">C_THUMB_IMAGE</span>
       
   170     <span class="o">},</span>
       
   171 
       
   172     <span class="c">/**</span>
       
   173 <span class="c">     * Static property used to define the default attribute configuration of</span>
       
   174 <span class="c">     * the Widget.</span>
       
   175 <span class="c">     *</span>
       
   176 <span class="c">     * @property Slider.ATTRS</span>
       
   177 <span class="c">     * @type Object</span>
       
   178 <span class="c">     * @protected</span>
       
   179 <span class="c">     * @static</span>
       
   180 <span class="c">     */</span>
       
   181     <span class="nx">ATTRS</span> <span class="o">:</span> <span class="o">{</span>
       
   182 
       
   183         <span class="c">/**</span>
       
   184 <span class="c">         * Axis upon which the Slider&#39;s thumb moves.  &amp;quot;x&amp;quot; for</span>
       
   185 <span class="c">         * horizontal, &amp;quot;y&amp;quot; for vertical.</span>
       
   186 <span class="c">         *</span>
       
   187 <span class="c">         * @attribute axis</span>
       
   188 <span class="c">         * @type String</span>
       
   189 <span class="c">         * @default &amp;quot;x&amp;quot;</span>
       
   190 <span class="c">         * @writeOnce</span>
       
   191 <span class="c">         */</span>
       
   192         <span class="nx">axis</span> <span class="o">:</span> <span class="o">{</span>
       
   193             <span class="nx">value</span> <span class="o">:</span> <span class="s1">&#39;x&#39;</span><span class="o">,</span>
       
   194             <span class="nx">writeOnce</span> <span class="o">:</span> <span class="kc">true</span><span class="o">,</span>
       
   195             <span class="nx">validator</span> <span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">v</span><span class="o">)</span> <span class="o">{</span>
       
   196                 <span class="k">return</span> <span class="k">this</span><span class="o">.</span><span class="nx">_validateNewAxis</span><span class="o">(</span><span class="nx">v</span><span class="o">);</span>
       
   197             <span class="o">},</span>
       
   198             <span class="nx">setter</span> <span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">v</span><span class="o">)</span> <span class="o">{</span>
       
   199                 <span class="k">return</span> <span class="k">this</span><span class="o">.</span><span class="nx">_setAxisFn</span><span class="o">(</span><span class="nx">v</span><span class="o">);</span>
       
   200             <span class="o">}</span>
       
   201         <span class="o">},</span>
       
   202 
       
   203         <span class="c">/**</span>
       
   204 <span class="c">         * Value associated with the left or top most position of the thumb on</span>
       
   205 <span class="c">         * the rail.</span>
       
   206 <span class="c">         *</span>
       
   207 <span class="c">         * @attribute min</span>
       
   208 <span class="c">         * @type Number</span>
       
   209 <span class="c">         * @default 0</span>
       
   210 <span class="c">         */</span>
       
   211         <span class="nx">min</span> <span class="o">:</span> <span class="o">{</span>
       
   212             <span class="nx">value</span> <span class="o">:</span> <span class="m">0</span><span class="o">,</span>
       
   213             <span class="nx">validator</span> <span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">v</span><span class="o">)</span> <span class="o">{</span>
       
   214                 <span class="k">return</span> <span class="k">this</span><span class="o">.</span><span class="nx">_validateNewMin</span><span class="o">(</span><span class="nx">v</span><span class="o">);</span>
       
   215             <span class="o">}</span>
       
   216         <span class="o">},</span>
       
   217 
       
   218         <span class="c">/**</span>
       
   219 <span class="c">         * Value associated with the right or bottom most position of the thumb</span>
       
   220 <span class="c">         * on the rail.</span>
       
   221 <span class="c">         *</span>
       
   222 <span class="c">         * @attribute max</span>
       
   223 <span class="c">         * @type Number</span>
       
   224 <span class="c">         * @default 100</span>
       
   225 <span class="c">         */</span>
       
   226         <span class="nx">max</span> <span class="o">:</span> <span class="o">{</span>
       
   227             <span class="nx">value</span> <span class="o">:</span> <span class="m">100</span><span class="o">,</span>
       
   228             <span class="nx">validator</span> <span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">v</span><span class="o">)</span> <span class="o">{</span>
       
   229                 <span class="k">return</span> <span class="k">this</span><span class="o">.</span><span class="nx">_validateNewMax</span><span class="o">(</span><span class="nx">v</span><span class="o">);</span>
       
   230             <span class="o">}</span>
       
   231         <span class="o">},</span>
       
   232 
       
   233         <span class="c">/**</span>
       
   234 <span class="c">         * The current value of the Slider.  This value is interpretted into a</span>
       
   235 <span class="c">         * position for the thumb along the Slider&#39;s rail.</span>
       
   236 <span class="c">         *</span>
       
   237 <span class="c">         * @attribute value</span>
       
   238 <span class="c">         * @type Number</span>
       
   239 <span class="c">         * @default 0</span>
       
   240 <span class="c">         */</span>
       
   241         <span class="nx">value</span> <span class="o">:</span> <span class="o">{</span>
       
   242             <span class="nx">value</span> <span class="o">:</span> <span class="m">0</span><span class="o">,</span>
       
   243             <span class="nx">validator</span> <span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">v</span><span class="o">)</span> <span class="o">{</span>
       
   244                 <span class="k">return</span> <span class="k">this</span><span class="o">.</span><span class="nx">_validateNewValue</span><span class="o">(</span><span class="nx">v</span><span class="o">);</span>
       
   245             <span class="o">},</span>
       
   246             <span class="nx">setter</span> <span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">v</span><span class="o">)</span> <span class="o">{</span>
       
   247                 <span class="k">return</span> <span class="k">this</span><span class="o">.</span><span class="nx">_setValueFn</span><span class="o">(</span><span class="nx">v</span><span class="o">);</span>
       
   248             <span class="o">}</span>
       
   249         <span class="o">},</span>
       
   250 
       
   251         <span class="c">/**</span>
       
   252 <span class="c">         * The Node representing the Slider&#39;s rail, usually visualized as a</span>
       
   253 <span class="c">         * bar of some sort using a background image, along which the thumb</span>
       
   254 <span class="c">         * moves.  This Node contains the thumb Node.</span>
       
   255 <span class="c">         *</span>
       
   256 <span class="c">         * @attribute rail</span>
       
   257 <span class="c">         * @type Node</span>
       
   258 <span class="c">         * @default null</span>
       
   259 <span class="c">         */</span>
       
   260         <span class="nx">rail</span> <span class="o">:</span> <span class="o">{</span>
       
   261             <span class="nx">value</span> <span class="o">:</span> <span class="kc">null</span><span class="o">,</span>
       
   262             <span class="nx">validator</span> <span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">v</span><span class="o">)</span> <span class="o">{</span>
       
   263                 <span class="k">return</span> <span class="k">this</span><span class="o">.</span><span class="nx">_validateNewRail</span><span class="o">(</span><span class="nx">v</span><span class="o">);</span>
       
   264             <span class="o">},</span>
       
   265             <span class="nx">setter</span> <span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">v</span><span class="o">)</span> <span class="o">{</span>
       
   266                 <span class="k">return</span> <span class="k">this</span><span class="o">.</span><span class="nx">_setRailFn</span><span class="o">(</span><span class="nx">v</span><span class="o">);</span>
       
   267             <span class="o">}</span>
       
   268         <span class="o">},</span>
       
   269 
       
   270         <span class="c">/**</span>
       
   271 <span class="c">         * &lt;p&gt;The Node representing the Slider&#39;s thumb, usually visualized as a</span>
       
   272 <span class="c">         * pointer using a contained image Node (see thumbImage).  The current</span>
       
   273 <span class="c">         * value of the Slider is calculated from the centerpoint of this</span>
       
   274 <span class="c">         * Node in relation to the rail Node.  If provided, the thumbImage</span>
       
   275 <span class="c">         * Node is contained within this Node.&lt;/p&gt;</span>
       
   276 <span class="c">         *</span>
       
   277 <span class="c">         * &lt;p&gt;If no thumbImage is provided and the Node passed as the thumb is</span>
       
   278 <span class="c">         * an &lt;code&gt;img&lt;/code&gt; element, the assigned Node will be allocated to</span>
       
   279 <span class="c">         * the thumbImage and the thumb container defaulted.&lt;/p&gt;</span>
       
   280 <span class="c">         *</span>
       
   281 <span class="c">         * @attribute thumb</span>
       
   282 <span class="c">         * @type Node</span>
       
   283 <span class="c">         * @default null</span>
       
   284 <span class="c">         */</span>
       
   285         <span class="nx">thumb</span> <span class="o">:</span> <span class="o">{</span>
       
   286             <span class="nx">value</span> <span class="o">:</span> <span class="kc">null</span><span class="o">,</span>
       
   287             <span class="nx">validator</span> <span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">v</span><span class="o">)</span> <span class="o">{</span>
       
   288                 <span class="k">return</span> <span class="k">this</span><span class="o">.</span><span class="nx">_validateNewThumb</span><span class="o">(</span><span class="nx">v</span><span class="o">);</span>
       
   289             <span class="o">},</span>
       
   290             <span class="nx">setter</span> <span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">v</span><span class="o">)</span> <span class="o">{</span>
       
   291                 <span class="k">return</span> <span class="k">this</span><span class="o">.</span><span class="nx">_setThumbFn</span><span class="o">(</span><span class="nx">v</span><span class="o">);</span>
       
   292             <span class="o">}</span>
       
   293         <span class="o">},</span>
       
   294 
       
   295         <span class="c">/**</span>
       
   296 <span class="c">         * &lt;p&gt;The Node representing the image element to use for the Slider&#39;s</span>
       
   297 <span class="c">         * thumb.&lt;/p&gt;</span>
       
   298 <span class="c">         *</span>
       
   299 <span class="c">         * &lt;p&gt;Alternately, an image URL can be passed and an &lt;code&gt;img&lt;/code&gt;</span>
       
   300 <span class="c">         * Node will be generated accordingly.&lt;/p&gt;</span>
       
   301 <span class="c">         *</span>
       
   302 <span class="c">         * &lt;p&gt;If no thumbImage is provided and the Node passed as the thumb is</span>
       
   303 <span class="c">         * an &lt;code&gt;img&lt;/code&gt; element, the assigned Node will be allocated to</span>
       
   304 <span class="c">         * the thumbImage and the thumb container defaulted.&lt;/p&gt;</span>
       
   305 <span class="c">         *</span>
       
   306 <span class="c">         * &lt;p&gt;If thumbImage is provided but its URL resolves to a 404, a default</span>
       
   307 <span class="c">         * style will be applied to maintain basic functionality.&lt;/p&gt;</span>
       
   308 <span class="c">         *</span>
       
   309 <span class="c">         * @attribute thumbImage</span>
       
   310 <span class="c">         * @type Node|String</span>
       
   311 <span class="c">         * @default null</span>
       
   312 <span class="c">         */</span>
       
   313         <span class="nx">thumbImage</span> <span class="o">:</span> <span class="o">{</span>
       
   314             <span class="nx">value</span> <span class="o">:</span> <span class="kc">null</span><span class="o">,</span>
       
   315             <span class="nx">validator</span> <span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">v</span><span class="o">)</span> <span class="o">{</span>
       
   316                 <span class="k">return</span> <span class="k">this</span><span class="o">.</span><span class="nx">_validateNewThumbImage</span><span class="o">(</span><span class="nx">v</span><span class="o">);</span>
       
   317             <span class="o">},</span>
       
   318             <span class="nx">setter</span> <span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">v</span><span class="o">)</span> <span class="o">{</span>
       
   319                 <span class="k">return</span> <span class="k">this</span><span class="o">.</span><span class="nx">_setThumbImageFn</span><span class="o">(</span><span class="nx">v</span><span class="o">);</span>
       
   320             <span class="o">}</span>
       
   321         <span class="o">},</span>
       
   322 
       
   323         <span class="c">/**</span>
       
   324 <span class="c">         * &lt;p&gt;The width or height of the rail element representing the physical</span>
       
   325 <span class="c">         * space along which the thumb can move.  CSS size values (e.g. &#39;30em&#39;)</span>
       
   326 <span class="c">         * accepted but converted to pixels during render.&lt;/p&gt;</span>
       
   327 <span class="c">         *</span>
       
   328 <span class="c">         * &lt;p&gt;Alternately, but not recommended, this attribute can be left</span>
       
   329 <span class="c">         * unassigned in favor of specifying height or width.&lt;/p&gt;</span>
       
   330 <span class="c">         *</span>
       
   331 <span class="c">         * @attribute railSize</span>
       
   332 <span class="c">         * @type String</span>
       
   333 <span class="c">         * @default &#39;0&#39;</span>
       
   334 <span class="c">         */</span>
       
   335         <span class="nx">railSize</span> <span class="o">:</span> <span class="o">{</span>
       
   336             <span class="nx">value</span> <span class="o">:</span> <span class="s1">&#39;0&#39;</span><span class="o">,</span>
       
   337             <span class="nx">validator</span> <span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">v</span><span class="o">)</span> <span class="o">{</span>
       
   338                 <span class="k">return</span> <span class="k">this</span><span class="o">.</span><span class="nx">_validateNewRailSize</span><span class="o">(</span><span class="nx">v</span><span class="o">);</span>
       
   339             <span class="o">}</span>
       
   340         <span class="o">},</span>
       
   341 
       
   342         <span class="c">/**</span>
       
   343 <span class="c">         * Boolean indicating whether clicking and dragging on the rail will</span>
       
   344 <span class="c">         * trigger thumb movement.</span>
       
   345 <span class="c">         *</span>
       
   346 <span class="c">         * @attribute railEnabled</span>
       
   347 <span class="c">         * @type Boolean</span>
       
   348 <span class="c">         * @default true</span>
       
   349 <span class="c">         */</span>
       
   350         <span class="nx">railEnabled</span> <span class="o">:</span> <span class="o">{</span>
       
   351             <span class="nx">value</span> <span class="o">:</span> <span class="kc">true</span><span class="o">,</span>
       
   352             <span class="nx">validator</span> <span class="o">:</span> <span class="nx">isBoolean</span>
       
   353         <span class="o">},</span>
       
   354 
       
   355         <span class="c">/**</span>
       
   356 <span class="c">         * Like CSS padding, the distance in pixels from the inner top or left</span>
       
   357 <span class="c">         * edge of the rail node within which the thumb can travel.  Negative</span>
       
   358 <span class="c">         * values allow the edge of the thumb to escape the rail node</span>
       
   359 <span class="c">         * boundaries.</span>
       
   360 <span class="c">         *</span>
       
   361 <span class="c">         * @attribute minGutter</span>
       
   362 <span class="c">         * @type Number</span>
       
   363 <span class="c">         * @default 0</span>
       
   364 <span class="c">         */</span>
       
   365         <span class="nx">minGutter</span> <span class="o">:</span> <span class="o">{</span>
       
   366             <span class="nx">value</span> <span class="o">:</span> <span class="m">0</span><span class="o">,</span>
       
   367             <span class="nx">validator</span> <span class="o">:</span> <span class="nx">isNumber</span>
       
   368         <span class="o">},</span>
       
   369 
       
   370         <span class="c">/**</span>
       
   371 <span class="c">         * Like CSS padding, the distance in pixels from the inner bottom or</span>
       
   372 <span class="c">         * right edge of the rail node within which the thumb can travel.</span>
       
   373 <span class="c">         * Negative values allow the edge of the thumb to escape the rail node</span>
       
   374 <span class="c">         * boundaries.</span>
       
   375 <span class="c">         *</span>
       
   376 <span class="c">         * @attribute maxGutter</span>
       
   377 <span class="c">         * @type Number</span>
       
   378 <span class="c">         * @default 0</span>
       
   379 <span class="c">         */</span>
       
   380         <span class="nx">maxGutter</span> <span class="o">:</span> <span class="o">{</span>
       
   381             <span class="nx">value</span> <span class="o">:</span> <span class="m">0</span><span class="o">,</span>
       
   382             <span class="nx">validator</span> <span class="o">:</span> <span class="nx">isNumber</span>
       
   383         <span class="o">}</span>
       
   384     <span class="o">}</span>
       
   385 <span class="o">});</span>
       
   386 
       
   387 <span class="nx">Y</span><span class="o">.</span><span class="nx">extend</span><span class="o">(</span><span class="nx">Slider</span><span class="o">,</span> <span class="nx">Y</span><span class="o">.</span><span class="nx">Widget</span><span class="o">,</span> <span class="o">{</span>
       
   388 
       
   389     <span class="c">/**</span>
       
   390 <span class="c">     * Collection of object property names from the appropriate hash set in</span>
       
   391 <span class="c">     * Slider.AXIS_KEYS.</span>
       
   392 <span class="c">     *</span>
       
   393 <span class="c">     * @property _key</span>
       
   394 <span class="c">     * @type Object</span>
       
   395 <span class="c">     * @protected</span>
       
   396 <span class="c">     */</span>
       
   397     <span class="nx">_key</span> <span class="o">:</span> <span class="kc">null</span><span class="o">,</span>
       
   398 
       
   399     <span class="c">/**</span>
       
   400 <span class="c">     * Factor used to translate positional coordinates (e.g. left or top) to</span>
       
   401 <span class="c">     * the Slider&#39;s value.</span>
       
   402 <span class="c">     *</span>
       
   403 <span class="c">     * @property _factor</span>
       
   404 <span class="c">     * @type Number</span>
       
   405 <span class="c">     * @protected</span>
       
   406 <span class="c">     */</span>
       
   407     <span class="nx">_factor</span> <span class="o">:</span> <span class="m">1</span><span class="o">,</span>
       
   408 
       
   409     <span class="c">/**</span>
       
   410 <span class="c">     * Pixel dimension of the rail Node&#39;s width for X axis Sliders or height</span>
       
   411 <span class="c">     * for Y axis Sliders.  Used with _factor to calculate positional</span>
       
   412 <span class="c">     * coordinates for the thumb.</span>
       
   413 <span class="c">     *</span>
       
   414 <span class="c">     * @property _railSize</span>
       
   415 <span class="c">     * @type Number</span>
       
   416 <span class="c">     * @protected</span>
       
   417 <span class="c">     */</span>
       
   418     <span class="nx">_railSize</span> <span class="o">:</span> <span class="kc">null</span><span class="o">,</span>
       
   419 
       
   420     <span class="c">/**</span>
       
   421 <span class="c">     * Pixel dimension of the thumb Node&#39;s width for X axis Sliders or height</span>
       
   422 <span class="c">     * for Y axis Sliders.  Used with _factor to calculate positional</span>
       
   423 <span class="c">     * coordinates for the thumb.</span>
       
   424 <span class="c">     *</span>
       
   425 <span class="c">     * @property _thumbSize</span>
       
   426 <span class="c">     * @type Number</span>
       
   427 <span class="c">     * @protected</span>
       
   428 <span class="c">     */</span>
       
   429     <span class="nx">_thumbSize</span> <span class="o">:</span> <span class="kc">null</span><span class="o">,</span>
       
   430 
       
   431     <span class="c">/**</span>
       
   432 <span class="c">     * Pixel offset of the point in the thumb element from its top/left edge</span>
       
   433 <span class="c">     * to where the value calculation should take place.  By default, this is</span>
       
   434 <span class="c">     * calculated to half the width of the thumb, causing the value to be</span>
       
   435 <span class="c">     * marked from the center of the thumb.</span>
       
   436 <span class="c">     *</span>
       
   437 <span class="c">     * @property _thumbOffset</span>
       
   438 <span class="c">     * @type Number</span>
       
   439 <span class="c">     * @protected</span>
       
   440 <span class="c">     */</span>
       
   441     <span class="nx">_thumbOffset</span> <span class="o">:</span> <span class="m">0</span><span class="o">,</span>
       
   442 
       
   443     <span class="c">/**</span>
       
   444 <span class="c">     * Object returned from temporary subscription to disabledChange event to</span>
       
   445 <span class="c">     * defer setting the disabled state while Slider is loading the thumb</span>
       
   446 <span class="c">     * image.</span>
       
   447 <span class="c">     *</span>
       
   448 <span class="c">     * @property _stall</span>
       
   449 <span class="c">     * @type Object</span>
       
   450 <span class="c">     * @protected</span>
       
   451 <span class="c">     */</span>
       
   452     <span class="nx">_stall</span> <span class="o">:</span> <span class="kc">false</span><span class="o">,</span>
       
   453 
       
   454     <span class="c">/**</span>
       
   455 <span class="c">     * Deferred value for the disabled attribute when stalled (see _stall</span>
       
   456 <span class="c">     * property).</span>
       
   457 <span class="c">     *</span>
       
   458 <span class="c">     * @property _disabled</span>
       
   459 <span class="c">     * @type Boolean</span>
       
   460 <span class="c">     * @protected</span>
       
   461 <span class="c">     */</span>
       
   462     <span class="nx">_disabled</span> <span class="o">:</span> <span class="kc">false</span><span class="o">,</span>
       
   463 
       
   464     <span class="c">/**</span>
       
   465 <span class="c">     * Construction logic executed durint Slider instantiation. Subscribes to</span>
       
   466 <span class="c">     * after events for min, max, and railSize.  Publishes custom events</span>
       
   467 <span class="c">     * including slideStart and slideEnd.</span>
       
   468 <span class="c">     *</span>
       
   469 <span class="c">     * @method initializer</span>
       
   470 <span class="c">     * @protected</span>
       
   471 <span class="c">     */</span>
       
   472     <span class="nx">initializer</span> <span class="o">:</span> <span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
       
   473         <span class="k">this</span><span class="o">.</span><span class="nx">_key</span> <span class="o">=</span> <span class="nx">Slider</span><span class="o">.</span><span class="nx">AXIS_KEYS</span><span class="o">[</span><span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s1">&#39;axis&#39;</span><span class="o">)];</span>
       
   474 
       
   475         <span class="k">this</span><span class="o">.</span><span class="nx">after</span><span class="o">(</span><span class="s1">&#39;minChange&#39;</span><span class="o">,</span>      <span class="k">this</span><span class="o">.</span><span class="nx">_afterMinChange</span><span class="o">);</span>
       
   476         <span class="k">this</span><span class="o">.</span><span class="nx">after</span><span class="o">(</span><span class="s1">&#39;maxChange&#39;</span><span class="o">,</span>      <span class="k">this</span><span class="o">.</span><span class="nx">_afterMaxChange</span><span class="o">);</span>
       
   477 
       
   478         <span class="k">this</span><span class="o">.</span><span class="nx">after</span><span class="o">(</span><span class="s1">&#39;railSizeChange&#39;</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">_afterRailSizeChange</span><span class="o">);</span>
       
   479 
       
   480         <span class="c">/**</span>
       
   481 <span class="c">         * Signals the beginning of a thumb drag operation.  Payload includes</span>
       
   482 <span class="c">         * the DD.Drag instance&#39;s drag:start event under key ddEvent.</span>
       
   483 <span class="c">         *</span>
       
   484 <span class="c">         * @event slideStart</span>
       
   485 <span class="c">         * @param event {Event.Facade} An Event Facade object with the following attribute specific properties added:</span>
       
   486 <span class="c">         *  &lt;dl&gt;</span>
       
   487 <span class="c">         *      &lt;dt&gt;ddEvent&lt;/dt&gt;</span>
       
   488 <span class="c">         *          &lt;dd&gt;&lt;code&gt;drag:start&lt;/code&gt; event from the managed DD.Drag instance&lt;/dd&gt;</span>
       
   489 <span class="c">         *  &lt;/dl&gt;</span>
       
   490 <span class="c">         */</span>
       
   491         <span class="k">this</span><span class="o">.</span><span class="nx">publish</span><span class="o">(</span><span class="nx">SLIDE_START</span><span class="o">);</span>
       
   492 
       
   493         <span class="c">/**</span>
       
   494 <span class="c">         * Signals the end of a thumb drag operation.  Payload includes</span>
       
   495 <span class="c">         * the DD.Drag instance&#39;s drag:end event under key ddEvent.</span>
       
   496 <span class="c">         *</span>
       
   497 <span class="c">         * @event slideEnd</span>
       
   498 <span class="c">         * @param event {Event.Facade} An Event Facade object with the following attribute specific properties added:</span>
       
   499 <span class="c">         *  &lt;dl&gt;</span>
       
   500 <span class="c">         *      &lt;dt&gt;ddEvent&lt;/dt&gt;</span>
       
   501 <span class="c">         *          &lt;dd&gt;&lt;code&gt;drag:end&lt;/code&gt; event from the managed DD.Drag instance&lt;/dd&gt;</span>
       
   502 <span class="c">         *  &lt;/dl&gt;</span>
       
   503 <span class="c">         */</span>
       
   504         <span class="k">this</span><span class="o">.</span><span class="nx">publish</span><span class="o">(</span><span class="nx">SLIDE_END</span><span class="o">);</span>
       
   505 
       
   506         <span class="c">/**</span>
       
   507 <span class="c">         * Communicates a request to synchronize the Slider UI with the</span>
       
   508 <span class="c">         * attribute state.  Links the sync request with the default sync</span>
       
   509 <span class="c">         * logic in _defSyncFn.</span>
       
   510 <span class="c">         *</span>
       
   511 <span class="c">         * @event sync</span>
       
   512 <span class="c">         * @param event {Event.Facade} Event Facade object</span>
       
   513 <span class="c">         * @preventable _defSyncFn</span>
       
   514 <span class="c">         */</span>
       
   515         <span class="k">this</span><span class="o">.</span><span class="nx">publish</span><span class="o">(</span><span class="nx">SYNC</span><span class="o">,</span> <span class="o">{</span> <span class="nx">defaultFn</span><span class="o">:</span> <span class="k">this</span><span class="o">.</span><span class="nx">_defSyncFn</span> <span class="o">});</span>
       
   516 
       
   517         <span class="c">/**</span>
       
   518 <span class="c">         * Signals a request to reposition the thumb in response to API methods.</span>
       
   519 <span class="c">         * Triggers the thumb placement logic in _defPositionThumbFn.</span>
       
   520 <span class="c">         *</span>
       
   521 <span class="c">         * @event positionThumb</span>
       
   522 <span class="c">         * @param event {Event.Facade} An Event Facade object with the following attribute specific properties added:</span>
       
   523 <span class="c">         *  &lt;dl&gt;</span>
       
   524 <span class="c">         *      &lt;dt&gt;changeEv&lt;/dt&gt;</span>
       
   525 <span class="c">         *          &lt;dd&gt;&lt;code&gt;valueChange&lt;/code&gt; event fired in response to the change in the value attribute&lt;/dd&gt;</span>
       
   526 <span class="c">         *  &lt;/dl&gt;</span>
       
   527 <span class="c">         * @preventable _defPositionThumbFn</span>
       
   528 <span class="c">         */</span>
       
   529         <span class="k">this</span><span class="o">.</span><span class="nx">publish</span><span class="o">(</span><span class="nx">POSITION_THUMB</span><span class="o">,</span> <span class="o">{</span> <span class="nx">defaultFn</span><span class="o">:</span> <span class="k">this</span><span class="o">.</span><span class="nx">_defPositionThumbFn</span> <span class="o">});</span>
       
   530     <span class="o">},</span>
       
   531 
       
   532     <span class="c">/**</span>
       
   533 <span class="c">     * Create the DOM structure for the Slider.</span>
       
   534 <span class="c">     *</span>
       
   535 <span class="c">     * @method renderUI</span>
       
   536 <span class="c">     * @protected</span>
       
   537 <span class="c">     */</span>
       
   538     <span class="nx">renderUI</span> <span class="o">:</span> <span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
       
   539         <span class="k">this</span><span class="o">.</span><span class="nx">_initRail</span><span class="o">();</span>
       
   540         <span class="k">this</span><span class="o">.</span><span class="nx">_initThumb</span><span class="o">();</span>
       
   541     <span class="o">},</span>
       
   542 
       
   543     <span class="c">/**</span>
       
   544 <span class="c">     * Creates the rail element if not provided and not discovered via</span>
       
   545 <span class="c">     * HTML_PARSER.</span>
       
   546 <span class="c">     *</span>
       
   547 <span class="c">     * @method _initRail</span>
       
   548 <span class="c">     * @protected</span>
       
   549 <span class="c">     */</span>
       
   550     <span class="nx">_initRail</span> <span class="o">:</span> <span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
       
   551         <span class="k">var</span> <span class="nx">cb</span>   <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">CONTENT_BOX</span><span class="o">),</span>
       
   552             <span class="nx">rail</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">RAIL</span><span class="o">);</span>
       
   553 
       
   554         <span class="c">// Create rail if necessary. Make sure it&#39;s in the contentBox</span>
       
   555 <span class="c"></span>        <span class="k">if</span> <span class="o">(!</span><span class="nx">rail</span><span class="o">)</span> <span class="o">{</span>
       
   556             <span class="nx">rail</span> <span class="o">=</span> <span class="nx">cb</span><span class="o">.</span><span class="nx">appendChild</span><span class="o">(</span>
       
   557                 <span class="nx">Y</span><span class="o">.</span><span class="nx">Node</span><span class="o">.</span><span class="nx">create</span><span class="o">(</span><span class="s1">&#39;&lt;div class=&quot;&#39;</span><span class="o">+</span><span class="nx">C_RAIL</span><span class="o">+</span><span class="s1">&#39;&quot;&gt;&lt;/div&gt;&#39;</span><span class="o">));</span>
       
   558 
       
   559             <span class="k">this</span><span class="o">.</span><span class="nx">set</span><span class="o">(</span><span class="nx">RAIL</span><span class="o">,</span><span class="nx">rail</span><span class="o">);</span>
       
   560         <span class="o">}</span> <span class="k">else</span> <span class="k">if</span> <span class="o">(!</span><span class="nx">cb</span><span class="o">.</span><span class="nx">contains</span><span class="o">(</span><span class="nx">rail</span><span class="o">))</span> <span class="o">{</span>
       
   561             <span class="nx">cb</span><span class="o">.</span><span class="nx">appendChild</span><span class="o">(</span><span class="nx">rail</span><span class="o">);</span>
       
   562         <span class="o">}</span>
       
   563 
       
   564         <span class="nx">rail</span><span class="o">.</span><span class="nx">addClass</span><span class="o">(</span><span class="nx">C_RAIL</span><span class="o">);</span>
       
   565         <span class="nx">rail</span><span class="o">.</span><span class="nx">addClass</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">getClassName</span><span class="o">(</span><span class="nx">RAIL</span><span class="o">,</span><span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s1">&#39;axis&#39;</span><span class="o">)));</span>
       
   566     <span class="o">},</span>
       
   567 
       
   568     <span class="c">/**</span>
       
   569 <span class="c">     * &lt;p&gt;Creates the thumb element (not image) if not provided and not</span>
       
   570 <span class="c">     * discovered via HTML_PARSER.  If the thumb is an &lt;code&gt;img&lt;/code&gt; element</span>
       
   571 <span class="c">     * but no thumbImage configured or discovered, reassigns the thumb element</span>
       
   572 <span class="c">     * to the thumbImage and defaults the thumb element as a div.&lt;/p&gt;</span>
       
   573 <span class="c">     *</span>
       
   574 <span class="c">     * &lt;p&gt;Makes sure the thumb is a child of the rail element and calls</span>
       
   575 <span class="c">     * _initThumbImage if thumbImage is provided.&lt;/p&gt;</span>
       
   576 <span class="c">     *</span>
       
   577 <span class="c">     * @method _initThumb</span>
       
   578 <span class="c">     * @protected</span>
       
   579 <span class="c">     */</span>
       
   580     <span class="nx">_initThumb</span> <span class="o">:</span> <span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
       
   581         <span class="k">var</span> <span class="nx">rail</span>    <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">RAIL</span><span class="o">),</span>
       
   582             <span class="nx">thumb</span>   <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">THUMB</span><span class="o">);</span>
       
   583 
       
   584         <span class="c">// Passed an img element as the thumb</span>
       
   585 <span class="c"></span>        <span class="k">if</span> <span class="o">(</span><span class="nx">thumb</span> <span class="o">&amp;&amp;</span> <span class="o">!</span><span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">THUMB_IMAGE</span><span class="o">)</span> <span class="o">&amp;&amp;</span>
       
   586             <span class="nx">thumb</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s1">&#39;nodeName&#39;</span><span class="o">).</span><span class="nx">toLowerCase</span><span class="o">()</span> <span class="o">===</span> <span class="s1">&#39;img&#39;</span><span class="o">)</span> <span class="o">{</span>
       
   587             <span class="k">this</span><span class="o">.</span><span class="nx">set</span><span class="o">(</span><span class="nx">THUMB_IMAGE</span><span class="o">,</span> <span class="nx">thumb</span><span class="o">);</span>
       
   588             <span class="k">this</span><span class="o">.</span><span class="nx">set</span><span class="o">(</span><span class="nx">THUMB</span><span class="o">,</span><span class="kc">null</span><span class="o">);</span>
       
   589             <span class="nx">thumb</span> <span class="o">=</span> <span class="kc">null</span><span class="o">;</span>
       
   590         <span class="o">}</span>
       
   591 
       
   592         <span class="k">if</span> <span class="o">(!</span><span class="nx">thumb</span><span class="o">)</span> <span class="o">{</span>
       
   593             <span class="nx">thumb</span> <span class="o">=</span> <span class="nx">Y</span><span class="o">.</span><span class="nx">Node</span><span class="o">.</span><span class="nx">create</span><span class="o">(</span>
       
   594                 <span class="s1">&#39;&lt;div class=&quot;&#39;</span><span class="o">+</span><span class="nx">C_THUMB</span><span class="o">+</span><span class="s1">&#39;&quot;&gt;&lt;/div&gt;&#39;</span><span class="o">);</span>
       
   595 
       
   596             <span class="k">this</span><span class="o">.</span><span class="nx">set</span><span class="o">(</span><span class="nx">THUMB</span><span class="o">,</span><span class="nx">thumb</span><span class="o">);</span>
       
   597         <span class="o">}</span>
       
   598 
       
   599         <span class="nx">thumb</span><span class="o">.</span><span class="nx">addClass</span><span class="o">(</span><span class="nx">C_THUMB</span><span class="o">);</span>
       
   600 
       
   601         <span class="k">if</span> <span class="o">(!</span><span class="nx">rail</span><span class="o">.</span><span class="nx">contains</span><span class="o">(</span><span class="nx">thumb</span><span class="o">))</span> <span class="o">{</span>
       
   602             <span class="nx">rail</span><span class="o">.</span><span class="nx">appendChild</span><span class="o">(</span><span class="nx">thumb</span><span class="o">);</span>
       
   603         <span class="o">}</span>
       
   604 
       
   605         <span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">THUMB_IMAGE</span><span class="o">))</span> <span class="o">{</span>
       
   606             <span class="k">this</span><span class="o">.</span><span class="nx">_initThumbImage</span><span class="o">();</span>
       
   607         <span class="o">}</span>
       
   608     <span class="o">},</span>
       
   609 
       
   610     <span class="c">/**</span>
       
   611 <span class="c">     * Ensures the thumbImage is a child of the thumb element.</span>
       
   612 <span class="c">     *</span>
       
   613 <span class="c">     * @method _initThumbImage</span>
       
   614 <span class="c">     * @protected</span>
       
   615 <span class="c">     */</span>
       
   616     <span class="nx">_initThumbImage</span> <span class="o">:</span> <span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
       
   617         <span class="k">var</span> <span class="nx">thumb</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">THUMB</span><span class="o">),</span>
       
   618             <span class="nx">img</span>   <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">THUMB_IMAGE</span><span class="o">);</span>
       
   619 
       
   620         <span class="k">if</span> <span class="o">(</span><span class="nx">img</span><span class="o">)</span> <span class="o">{</span>
       
   621             <span class="nx">img</span><span class="o">.</span><span class="nx">replaceClass</span><span class="o">(</span><span class="nx">C_THUMB</span><span class="o">,</span><span class="nx">C_THUMB_IMAGE</span><span class="o">);</span>
       
   622 
       
   623             <span class="k">if</span> <span class="o">(!</span><span class="nx">thumb</span><span class="o">.</span><span class="nx">contains</span><span class="o">(</span><span class="nx">img</span><span class="o">))</span> <span class="o">{</span>
       
   624                 <span class="nx">thumb</span><span class="o">.</span><span class="nx">appendChild</span><span class="o">(</span><span class="nx">img</span><span class="o">);</span>
       
   625             <span class="o">}</span>
       
   626         <span class="o">}</span>
       
   627     <span class="o">},</span>
       
   628 
       
   629     <span class="c">/**</span>
       
   630 <span class="c">     * Creates the Y.DD instance used to handle the thumb movement and binds</span>
       
   631 <span class="c">     * Slider interaction to the configured value model.</span>
       
   632 <span class="c">     *</span>
       
   633 <span class="c">     * @method bindUI</span>
       
   634 <span class="c">     * @protected</span>
       
   635 <span class="c">     */</span>
       
   636     <span class="nx">bindUI</span> <span class="o">:</span> <span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
       
   637         <span class="c">/**</span>
       
   638 <span class="c">         * Bridges user interaction with the thumb to the value attribute.</span>
       
   639 <span class="c">         *</span>
       
   640 <span class="c">         * @event thumbDrag</span>
       
   641 <span class="c">         * @param event {Event.Facade} An Event Facade object with the following attribute specific properties added:</span>
       
   642 <span class="c">         *  &lt;dl&gt;</span>
       
   643 <span class="c">         *      &lt;dt&gt;ddEvent&lt;/dt&gt;</span>
       
   644 <span class="c">         *          &lt;dd&gt;&lt;code&gt;drag:drag&lt;/code&gt; event from the managed DD.Drag instance&lt;/dd&gt;</span>
       
   645 <span class="c">         *  &lt;/dl&gt;</span>
       
   646 <span class="c">         * @preventable _defUpdateValueFromDD</span>
       
   647 <span class="c">         */</span>
       
   648         <span class="k">this</span><span class="o">.</span><span class="nx">publish</span><span class="o">(</span><span class="nx">THUMB_DRAG</span><span class="o">,</span> <span class="o">{</span><span class="nx">defaultFn</span><span class="o">:</span> <span class="k">this</span><span class="o">.</span><span class="nx">_defUpdateValueFromDD</span><span class="o">});</span>
       
   649 
       
   650         <span class="k">this</span><span class="o">.</span><span class="nx">_bindThumbDD</span><span class="o">();</span>
       
   651 
       
   652         <span class="k">this</span><span class="o">.</span><span class="nx">after</span><span class="o">(</span><span class="s1">&#39;valueChange&#39;</span><span class="o">,</span>      <span class="k">this</span><span class="o">.</span><span class="nx">_afterValueChange</span><span class="o">);</span>
       
   653         <span class="k">this</span><span class="o">.</span><span class="nx">after</span><span class="o">(</span><span class="s1">&#39;thumbImageChange&#39;</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">_afterThumbImageChange</span><span class="o">);</span>
       
   654         <span class="k">this</span><span class="o">.</span><span class="nx">after</span><span class="o">(</span><span class="nx">DISABLED_CHANGE</span><span class="o">,</span>    <span class="k">this</span><span class="o">.</span><span class="nx">_afterDisabledChange</span><span class="o">);</span>
       
   655     <span class="o">},</span>
       
   656 
       
   657     <span class="c">/**</span>
       
   658 <span class="c">     * Creates the Y.DD instance used to handle the thumb interaction.</span>
       
   659 <span class="c">     * </span>
       
   660 <span class="c">     * @method _bindThumbDD</span>
       
   661 <span class="c">     * @protected</span>
       
   662 <span class="c">     */</span>
       
   663     <span class="nx">_bindThumbDD</span> <span class="o">:</span> <span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
       
   664         <span class="k">var</span> <span class="nx">ddConf</span> <span class="o">=</span> <span class="o">{</span>
       
   665                 <span class="nx">node</span> <span class="o">:</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">THUMB</span><span class="o">),</span>
       
   666                 <span class="nx">bubble</span> <span class="o">:</span> <span class="kc">false</span>
       
   667             <span class="o">},</span>
       
   668             <span class="nx">conConf</span> <span class="o">=</span> <span class="o">{</span>
       
   669                 <span class="nx">constrain2node</span> <span class="o">:</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">RAIL</span><span class="o">)</span>
       
   670             <span class="o">};</span>
       
   671 
       
   672         <span class="nx">conConf</span><span class="o">[</span><span class="k">this</span><span class="o">.</span><span class="nx">_key</span><span class="o">.</span><span class="nx">ddStick</span><span class="o">]</span> <span class="o">=</span> <span class="kc">true</span><span class="o">;</span>
       
   673 
       
   674         <span class="k">this</span><span class="o">.</span><span class="nx">_dd</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">Y</span><span class="o">.</span><span class="nx">DD</span><span class="o">.</span><span class="nx">Drag</span><span class="o">(</span><span class="nx">ddConf</span><span class="o">).</span><span class="nx">plug</span><span class="o">(</span><span class="nx">Y</span><span class="o">.</span><span class="nx">Plugin</span><span class="o">.</span><span class="nx">DDConstrained</span><span class="o">,</span> <span class="nx">conConf</span><span class="o">);</span>
       
   675         <span class="k">this</span><span class="o">.</span><span class="nx">_dd</span><span class="o">.</span><span class="nx">on</span><span class="o">(</span><span class="s1">&#39;drag:start&#39;</span><span class="o">,</span> <span class="nx">Y</span><span class="o">.</span><span class="nx">bind</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">_onDDStartDrag</span><span class="o">,</span> <span class="k">this</span><span class="o">));</span>
       
   676         <span class="k">this</span><span class="o">.</span><span class="nx">_dd</span><span class="o">.</span><span class="nx">on</span><span class="o">(</span><span class="s1">&#39;drag:drag&#39;</span><span class="o">,</span>  <span class="nx">Y</span><span class="o">.</span><span class="nx">bind</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">_onDDDrag</span><span class="o">,</span>      <span class="k">this</span><span class="o">));</span>
       
   677         <span class="k">this</span><span class="o">.</span><span class="nx">_dd</span><span class="o">.</span><span class="nx">on</span><span class="o">(</span><span class="s1">&#39;drag:end&#39;</span><span class="o">,</span>   <span class="nx">Y</span><span class="o">.</span><span class="nx">bind</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">_onDDEndDrag</span><span class="o">,</span>   <span class="k">this</span><span class="o">));</span>
       
   678 
       
   679         <span class="k">this</span><span class="o">.</span><span class="nx">_initRailDD</span><span class="o">();</span>
       
   680     <span class="o">},</span>
       
   681 
       
   682     <span class="c">/**</span>
       
   683 <span class="c">     * Subscribes to the rail Node&#39;s mousedown event to actuate the thumb when</span>
       
   684 <span class="c">     * backgroundEnabled is true.</span>
       
   685 <span class="c">     *</span>
       
   686 <span class="c">     * @method _initRailDD</span>
       
   687 <span class="c">     * @protected</span>
       
   688 <span class="c">     */</span>
       
   689     <span class="nx">_initRailDD</span> <span class="o">:</span> <span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
       
   690         <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">RAIL</span><span class="o">).</span><span class="nx">on</span><span class="o">(</span><span class="s1">&#39;mousedown&#39;</span><span class="o">,</span><span class="nx">Y</span><span class="o">.</span><span class="nx">bind</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">_handleRailMouseDown</span><span class="o">,</span><span class="k">this</span><span class="o">));</span>
       
   691     <span class="o">},</span>
       
   692 
       
   693     <span class="c">/**</span>
       
   694 <span class="c">     * If the Slider is not disabled and railEnabled is true, moves the thumb</span>
       
   695 <span class="c">     * to the mousedown position and hands control over to DD.</span>
       
   696 <span class="c">     *</span>
       
   697 <span class="c">     * @method _handleRailMouseDown</span>
       
   698 <span class="c">     * @param e {Event} Mousedown event facade</span>
       
   699 <span class="c">     * @protected</span>
       
   700 <span class="c">     */</span>
       
   701     <span class="nx">_handleRailMouseDown</span> <span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">e</span><span class="o">)</span> <span class="o">{</span>
       
   702         <span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s1">&#39;railEnabled&#39;</span><span class="o">)</span> <span class="o">&amp;&amp;</span> <span class="o">!</span><span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">DISABLED</span><span class="o">))</span> <span class="o">{</span>
       
   703             <span class="k">var</span> <span class="nx">dd</span>      <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">_dd</span><span class="o">,</span>
       
   704                 <span class="nx">xyIndex</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">_key</span><span class="o">.</span><span class="nx">xyIndex</span><span class="o">,</span>
       
   705                 <span class="nx">xy</span><span class="o">;</span>
       
   706 
       
   707             <span class="k">if</span> <span class="o">(</span><span class="nx">dd</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s1">&#39;primaryButtonOnly&#39;</span><span class="o">)</span> <span class="o">&amp;&amp;</span> <span class="nx">e</span><span class="o">.</span><span class="nx">button</span> <span class="o">&gt;</span> <span class="m">1</span><span class="o">)</span> <span class="o">{</span>
       
   708                 <span class="nx">Y</span><span class="o">.</span><span class="nx">log</span><span class="o">(</span><span class="s1">&#39;Mousedown was not produced by the primary button&#39;</span><span class="o">,</span>
       
   709                       <span class="s1">&#39;warn&#39;</span><span class="o">,</span> <span class="s1">&#39;dd-drag&#39;</span><span class="o">);</span>
       
   710                 <span class="k">return</span> <span class="kc">false</span><span class="o">;</span>
       
   711             <span class="o">}</span>
       
   712 
       
   713             <span class="nx">dd</span><span class="o">.</span><span class="nx">_dragThreshMet</span> <span class="o">=</span> <span class="kc">true</span><span class="o">;</span>
       
   714 
       
   715             <span class="nx">dd</span><span class="o">.</span><span class="nx">_fixIEMouseDown</span><span class="o">();</span>
       
   716             <span class="nx">e</span><span class="o">.</span><span class="nx">halt</span><span class="o">();</span>
       
   717 
       
   718             <span class="nx">Y</span><span class="o">.</span><span class="nx">DD</span><span class="o">.</span><span class="nx">DDM</span><span class="o">.</span><span class="nx">activeDrag</span> <span class="o">=</span> <span class="nx">dd</span><span class="o">;</span>
       
   719 
       
   720             <span class="c">// Adjust registered starting position by half the thumb&#39;s x/y</span>
       
   721 <span class="c"></span>            <span class="nx">xy</span> <span class="o">=</span> <span class="nx">dd</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s1">&#39;dragNode&#39;</span><span class="o">).</span><span class="nx">getXY</span><span class="o">();</span>
       
   722             <span class="nx">xy</span><span class="o">[</span><span class="nx">xyIndex</span><span class="o">]</span> <span class="o">+=</span> <span class="k">this</span><span class="o">.</span><span class="nx">_thumbOffset</span><span class="o">;</span>
       
   723 
       
   724             <span class="nx">dd</span><span class="o">.</span><span class="nx">_setStartPosition</span><span class="o">(</span><span class="nx">xy</span><span class="o">);</span>
       
   725             <span class="nx">dd</span><span class="o">.</span><span class="nx">set</span><span class="o">(</span><span class="s1">&#39;activeHandle&#39;</span><span class="o">,</span><span class="nx">dd</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s1">&#39;dragNode&#39;</span><span class="o">));</span>
       
   726 
       
   727             <span class="nx">dd</span><span class="o">.</span><span class="nx">start</span><span class="o">();</span>
       
   728             <span class="nx">dd</span><span class="o">.</span><span class="nx">_alignNode</span><span class="o">([</span><span class="nx">e</span><span class="o">.</span><span class="nx">pageX</span><span class="o">,</span><span class="nx">e</span><span class="o">.</span><span class="nx">pageY</span><span class="o">]);</span>
       
   729         <span class="o">}</span>
       
   730     <span class="o">},</span>
       
   731 
       
   732     <span class="c">/**</span>
       
   733 <span class="c">     * Synchronizes the DOM state with the attribute settings (most notably</span>
       
   734 <span class="c">     * railSize and value).  If thumbImage is provided and is still loading,</span>
       
   735 <span class="c">     * sync is delayed until it is complete, since the image&#39;s dimensions are</span>
       
   736 <span class="c">     * taken into consideration for calculations.</span>
       
   737 <span class="c">     *</span>
       
   738 <span class="c">     * @method syncUI</span>
       
   739 <span class="c">     */</span>
       
   740     <span class="nx">syncUI</span> <span class="o">:</span> <span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
       
   741         <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">CONTENT_BOX</span><span class="o">).</span><span class="nx">removeClass</span><span class="o">(</span><span class="nx">C_IMAGE_ERROR</span><span class="o">);</span>
       
   742 
       
   743         <span class="k">var</span> <span class="nx">img</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">THUMB_IMAGE</span><span class="o">);</span>
       
   744 
       
   745         <span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">_isImageLoading</span><span class="o">(</span><span class="nx">img</span><span class="o">))</span> <span class="o">{</span>
       
   746             <span class="nx">Y</span><span class="o">.</span><span class="nx">log</span><span class="o">(</span><span class="s1">&#39;Thumb image loading. Scheduling sync.&#39;</span><span class="o">,</span><span class="s1">&#39;info&#39;</span><span class="o">,</span><span class="s1">&#39;slider&#39;</span><span class="o">);</span>
       
   747             <span class="c">// Schedule the sync for when the image loads/errors</span>
       
   748 <span class="c"></span>            <span class="k">this</span><span class="o">.</span><span class="nx">_scheduleSync</span><span class="o">();</span>
       
   749         <span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
       
   750             <span class="nx">Y</span><span class="o">.</span><span class="nx">log</span><span class="o">(</span><span class="s1">&#39;No thumb image, or image already loaded. Syncing immediately.&#39;</span><span class="o">,</span><span class="s1">&#39;info&#39;</span><span class="o">,</span><span class="s1">&#39;slider&#39;</span><span class="o">);</span>
       
   751             <span class="k">this</span><span class="o">.</span><span class="nx">_ready</span><span class="o">(</span><span class="nx">img</span><span class="o">,!</span><span class="k">this</span><span class="o">.</span><span class="nx">_isImageLoaded</span><span class="o">(</span><span class="nx">img</span><span class="o">));</span>
       
   752         <span class="o">}</span>
       
   753     <span class="o">},</span>
       
   754 
       
   755     <span class="c">/**</span>
       
   756 <span class="c">     * Binds to the load and error event on the thumbImage to sync the DOM</span>
       
   757 <span class="c">     * state with the attribute settings when the image resource is resolved.</span>
       
   758 <span class="c">     * The Slider is disabled while it waits.</span>
       
   759 <span class="c">     *</span>
       
   760 <span class="c">     * @method _scheduleSync</span>
       
   761 <span class="c">     * @protected</span>
       
   762 <span class="c">     */</span>
       
   763     <span class="nx">_scheduleSync</span> <span class="o">:</span> <span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
       
   764         <span class="k">var</span> <span class="nx">img</span><span class="o">,</span> <span class="nx">handler</span><span class="o">;</span>
       
   765 
       
   766         <span class="k">if</span> <span class="o">(!</span><span class="k">this</span><span class="o">.</span><span class="nx">_stall</span><span class="o">)</span> <span class="o">{</span>
       
   767             <span class="c">// disable the control until the image is loaded</span>
       
   768 <span class="c"></span>            <span class="k">this</span><span class="o">.</span><span class="nx">_disabled</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">DISABLED</span><span class="o">);</span>
       
   769             <span class="k">this</span><span class="o">.</span><span class="nx">set</span><span class="o">(</span><span class="nx">DISABLED</span><span class="o">,</span><span class="kc">true</span><span class="o">);</span>
       
   770             <span class="k">this</span><span class="o">.</span><span class="nx">_stall</span>    <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">on</span><span class="o">(</span><span class="nx">DISABLED_CHANGE</span><span class="o">,</span><span class="k">this</span><span class="o">.</span><span class="nx">_stallDisabledChange</span><span class="o">);</span>
       
   771 
       
   772             <span class="nx">img</span>     <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">THUMB_IMAGE</span><span class="o">);</span>
       
   773             <span class="nx">handler</span> <span class="o">=</span> <span class="nx">Y</span><span class="o">.</span><span class="nx">bind</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">_imageLoaded</span><span class="o">,</span><span class="k">this</span><span class="o">,</span><span class="nx">img</span><span class="o">);</span>
       
   774             <span class="nx">img</span><span class="o">.</span><span class="nx">on</span><span class="o">(</span><span class="s1">&#39;load&#39;</span><span class="o">,</span> <span class="nx">handler</span><span class="o">);</span>
       
   775             <span class="nx">img</span><span class="o">.</span><span class="nx">on</span><span class="o">(</span><span class="s1">&#39;error&#39;</span><span class="o">,</span><span class="nx">handler</span><span class="o">);</span>
       
   776         <span class="o">}</span>
       
   777     <span class="o">},</span>
       
   778 
       
   779     <span class="c">/**</span>
       
   780 <span class="c">     * Method subscribed to the disabledChange event when thumbImage is being</span>
       
   781 <span class="c">     * loaded.  Prevents manually enabling the Slider until the thumbImage</span>
       
   782 <span class="c">     * resource is resolved.  Intended value is stored during load and set upon</span>
       
   783 <span class="c">     * completion.</span>
       
   784 <span class="c">     *</span>
       
   785 <span class="c">     * @method _stallDisabledChange</span>
       
   786 <span class="c">     * @param e {Event} Change event for the disabled attribute</span>
       
   787 <span class="c">     * @protected</span>
       
   788 <span class="c">     */</span>
       
   789     <span class="nx">_stallDisabledChange</span> <span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">e</span><span class="o">)</span> <span class="o">{</span>
       
   790         <span class="k">this</span><span class="o">.</span><span class="nx">_disabled</span> <span class="o">=</span> <span class="nx">e</span><span class="o">.</span><span class="nx">newVal</span><span class="o">;</span>
       
   791         <span class="nx">e</span><span class="o">.</span><span class="nx">preventDefault</span><span class="o">();</span>
       
   792     <span class="o">},</span>
       
   793 
       
   794     <span class="c">/**</span>
       
   795 <span class="c">     * Event handler assigned to the thumbImage&#39;s load and error event if it</span>
       
   796 <span class="c">     * was not loaded prior to instantiation.  Restores the disabled value.</span>
       
   797 <span class="c">     *</span>
       
   798 <span class="c">     * @method _imageLoaded</span>
       
   799 <span class="c">     * @param img {Node} The thumbImage Node</span>
       
   800 <span class="c">     * @param e {Event} load or error event fired by the thumbImage</span>
       
   801 <span class="c">     * @protected</span>
       
   802 <span class="c">     */</span>
       
   803     <span class="nx">_imageLoaded</span> <span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">img</span><span class="o">,</span><span class="nx">e</span><span class="o">)</span> <span class="o">{</span>
       
   804         <span class="k">var</span> <span class="nx">error</span> <span class="o">=</span> <span class="o">(</span><span class="nx">e</span><span class="o">.</span><span class="nx">type</span><span class="o">.</span><span class="nx">toLowerCase</span><span class="o">().</span><span class="nx">indexOf</span><span class="o">(</span><span class="s1">&#39;error&#39;</span><span class="o">)</span> <span class="o">&gt;</span> <span class="o">-</span><span class="m">1</span><span class="o">);</span>
       
   805 
       
   806         <span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">_stall</span><span class="o">)</span> <span class="o">{</span>
       
   807             <span class="k">this</span><span class="o">.</span><span class="nx">_stall</span><span class="o">.</span><span class="nx">detach</span><span class="o">();</span>
       
   808         <span class="o">}</span>
       
   809 
       
   810         <span class="nx">Y</span><span class="o">.</span><span class="nx">log</span><span class="o">(</span><span class="s1">&#39;Thumb image &#39;</span><span class="o">+</span><span class="nx">e</span><span class="o">.</span><span class="nx">type</span><span class="o">+</span><span class="s1">&#39;ed.  Syncing&#39;</span><span class="o">,</span><span class="s1">&#39;info&#39;</span><span class="o">,</span><span class="s1">&#39;slider&#39;</span><span class="o">);</span>
       
   811 
       
   812         <span class="k">this</span><span class="o">.</span><span class="nx">_stall</span> <span class="o">=</span> <span class="kc">false</span><span class="o">;</span>
       
   813 
       
   814         <span class="k">this</span><span class="o">.</span><span class="nx">_ready</span><span class="o">(</span><span class="nx">img</span><span class="o">,</span><span class="nx">error</span><span class="o">);</span>
       
   815 
       
   816         <span class="k">this</span><span class="o">.</span><span class="nx">set</span><span class="o">(</span><span class="nx">DISABLED</span><span class="o">,</span><span class="k">this</span><span class="o">.</span><span class="nx">_disabled</span><span class="o">);</span>
       
   817     <span class="o">},</span>
       
   818 
       
   819     <span class="c">/**</span>
       
   820 <span class="c">     * Applies a class to the content box if the thumbImage failed to resolve,</span>
       
   821 <span class="c">     * the fires the internal sync event triggering a sync between UI and</span>
       
   822 <span class="c">     * state.</span>
       
   823 <span class="c">     *</span>
       
   824 <span class="c">     * @method _ready</span>
       
   825 <span class="c">     * @param img {Node} the thumbImage Node</span>
       
   826 <span class="c">     * @param error {Boolean} Indicates an error while loading the thumbImage</span>
       
   827 <span class="c">     * @protected</span>
       
   828 <span class="c">     */</span>
       
   829     <span class="nx">_ready</span> <span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">img</span><span class="o">,</span><span class="nx">error</span><span class="o">)</span> <span class="o">{</span>
       
   830         <span class="k">var</span> <span class="nx">method</span> <span class="o">=</span> <span class="nx">error</span> <span class="o">?</span> <span class="s1">&#39;addClass&#39;</span> <span class="o">:</span> <span class="s1">&#39;removeClass&#39;</span><span class="o">;</span>
       
   831 
       
   832         <span class="c">// If the thumb image url results in 404, assign a class to provide</span>
       
   833 <span class="c"></span>        <span class="c">// default thumb dimensions/UI</span>
       
   834 <span class="c"></span>        <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">CONTENT_BOX</span><span class="o">)[</span><span class="nx">method</span><span class="o">](</span><span class="nx">C_IMAGE_ERROR</span><span class="o">);</span>
       
   835 
       
   836         <span class="k">this</span><span class="o">.</span><span class="nx">fire</span><span class="o">(</span><span class="nx">SYNC</span><span class="o">);</span>
       
   837     <span class="o">},</span>
       
   838 
       
   839     <span class="c">/**</span>
       
   840 <span class="c">     * The default synchronization behavior, updating the Slider&#39;s DOM state to</span>
       
   841 <span class="c">     * match the current attribute values.</span>
       
   842 <span class="c">     *</span>
       
   843 <span class="c">     * @method _defSyncFn</span>
       
   844 <span class="c">     * @param e {Event} Internal sync event</span>
       
   845 <span class="c">     * @protected</span>
       
   846 <span class="c">     */</span>
       
   847     <span class="nx">_defSyncFn</span> <span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">e</span><span class="o">)</span> <span class="o">{</span>
       
   848         <span class="k">this</span><span class="o">.</span><span class="nx">_uiSetThumbSize</span><span class="o">();</span>
       
   849 
       
   850         <span class="k">this</span><span class="o">.</span><span class="nx">_setThumbOffset</span><span class="o">();</span>
       
   851 
       
   852         <span class="k">this</span><span class="o">.</span><span class="nx">_uiSetRailSize</span><span class="o">();</span>
       
   853 
       
   854         <span class="k">this</span><span class="o">.</span><span class="nx">_setRailOffsetXY</span><span class="o">();</span>
       
   855 
       
   856         <span class="k">this</span><span class="o">.</span><span class="nx">_setDDGutter</span><span class="o">();</span>
       
   857 
       
   858         <span class="k">this</span><span class="o">.</span><span class="nx">_resetDDCacheRegion</span><span class="o">();</span>
       
   859 
       
   860         <span class="k">this</span><span class="o">.</span><span class="nx">_setFactor</span><span class="o">();</span>
       
   861 
       
   862         <span class="k">var</span> <span class="nx">val</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">VALUE</span><span class="o">);</span>
       
   863 
       
   864         <span class="k">this</span><span class="o">.</span><span class="nx">fire</span><span class="o">(</span><span class="nx">POSITION_THUMB</span><span class="o">,</span> <span class="o">{</span>
       
   865             <span class="nx">value</span>  <span class="o">:</span> <span class="nx">val</span><span class="o">,</span>
       
   866             <span class="nx">offset</span> <span class="o">:</span> <span class="k">this</span><span class="o">.</span><span class="nx">_convertValueToOffset</span><span class="o">(</span><span class="nx">val</span><span class="o">)</span>
       
   867         <span class="o">});</span>
       
   868 
       
   869         <span class="c">// Forces a reflow of the bounding box to address IE8 inline-block</span>
       
   870 <span class="c"></span>        <span class="c">// container not expanding correctly. bug 2527905</span>
       
   871 <span class="c"></span>        <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s1">&#39;boundingBox&#39;</span><span class="o">).</span><span class="nx">toggleClass</span><span class="o">(</span><span class="s1">&#39;&#39;</span><span class="o">);</span>
       
   872     <span class="o">},</span>
       
   873 
       
   874     <span class="c">/**</span>
       
   875 <span class="c">     * Captures the thumb&#39;s pixel height or width (depending on the Slider&#39;s</span>
       
   876 <span class="c">     * axis) for use in positioning calculations.</span>
       
   877 <span class="c">     *</span>
       
   878 <span class="c">     * @method _uiSetThumbSize</span>
       
   879 <span class="c">     * @protected</span>
       
   880 <span class="c">     */</span>
       
   881     <span class="nx">_uiSetThumbSize</span> <span class="o">:</span> <span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
       
   882         <span class="k">var</span> <span class="nx">thumb</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">THUMB</span><span class="o">),</span>
       
   883             <span class="nx">dim</span>   <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">_key</span><span class="o">.</span><span class="nx">dim</span><span class="o">,</span>
       
   884             <span class="nx">img</span>   <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">THUMB_IMAGE</span><span class="o">),</span>
       
   885             <span class="nx">size</span><span class="o">;</span>
       
   886 
       
   887         <span class="c">// offsetWidth fails in hidden containers</span>
       
   888 <span class="c"></span>        <span class="nx">size</span> <span class="o">=</span> <span class="nb">parseInt</span><span class="o">(</span><span class="nx">thumb</span><span class="o">.</span><span class="nx">getComputedStyle</span><span class="o">(</span><span class="nx">dim</span><span class="o">),</span><span class="m">10</span><span class="o">);</span>
       
   889 
       
   890         <span class="nx">Y</span><span class="o">.</span><span class="nx">log</span><span class="o">(</span><span class="s1">&#39;thumb &#39;</span><span class="o">+</span><span class="nx">dim</span><span class="o">+</span><span class="s1">&#39;: &#39;</span><span class="o">+</span><span class="nx">size</span><span class="o">+</span><span class="s1">&#39;px&#39;</span><span class="o">,</span><span class="s1">&#39;info&#39;</span><span class="o">,</span><span class="s1">&#39;slider&#39;</span><span class="o">);</span>
       
   891 
       
   892         <span class="k">if</span> <span class="o">(</span><span class="nx">img</span> <span class="o">&amp;&amp;</span> <span class="k">this</span><span class="o">.</span><span class="nx">_isImageLoaded</span><span class="o">(</span><span class="nx">img</span><span class="o">))</span> <span class="o">{</span>
       
   893             <span class="nx">Y</span><span class="o">.</span><span class="nx">log</span><span class="o">(</span><span class="s1">&#39;using thumbImage &#39;</span><span class="o">+</span><span class="nx">dim</span><span class="o">+</span><span class="s1">&#39; (&#39;</span><span class="o">+</span><span class="nx">img</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">dim</span><span class="o">)+</span><span class="s1">&#39;) for _thumbSize&#39;</span><span class="o">,</span><span class="s1">&#39;info&#39;</span><span class="o">,</span><span class="s1">&#39;slider&#39;</span><span class="o">);</span>
       
   894 
       
   895             <span class="nx">size</span> <span class="o">=</span> <span class="nx">img</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">dim</span><span class="o">);</span>
       
   896         <span class="o">}</span>
       
   897 
       
   898         <span class="k">this</span><span class="o">.</span><span class="nx">_thumbSize</span> <span class="o">=</span> <span class="nx">size</span><span class="o">;</span>
       
   899     <span class="o">},</span>
       
   900 
       
   901     <span class="c">/**</span>
       
   902 <span class="c">     * Establishes the point in the thumb that should align to the rail</span>
       
   903 <span class="c">     * position representing the calculated value.</span>
       
   904 <span class="c">     *</span>
       
   905 <span class="c">     * @method _setThumbOffset</span>
       
   906 <span class="c">     * @protected</span>
       
   907 <span class="c">     */</span>
       
   908     <span class="nx">_setThumbOffset</span> <span class="o">:</span> <span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
       
   909         <span class="k">this</span><span class="o">.</span><span class="nx">_thumbOffset</span> <span class="o">=</span> <span class="nx">floor</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">_thumbSize</span> <span class="o">/</span> <span class="m">2</span><span class="o">);</span>
       
   910         <span class="nx">Y</span><span class="o">.</span><span class="nx">log</span><span class="o">(</span><span class="s1">&#39;_thumbOffset calculated to &#39;</span><span class="o">+</span><span class="k">this</span><span class="o">.</span><span class="nx">_thumbOffset</span><span class="o">+</span><span class="s1">&#39;px&#39;</span><span class="o">,</span><span class="s1">&#39;info&#39;</span><span class="o">,</span><span class="s1">&#39;slider&#39;</span><span class="o">);</span>
       
   911     <span class="o">},</span>
       
   912 
       
   913     <span class="c">/**</span>
       
   914 <span class="c">     * Stores the rail Node&#39;s pixel height or width, depending on the Slider&#39;s</span>
       
   915 <span class="c">     * axis, for use in calculating thumb position from the value.</span>
       
   916 <span class="c">     *</span>
       
   917 <span class="c">     * @method _uiSetRailSize</span>
       
   918 <span class="c">     * @protected</span>
       
   919 <span class="c">     */</span>
       
   920     <span class="nx">_uiSetRailSize</span> <span class="o">:</span> <span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
       
   921         <span class="k">var</span> <span class="nx">rail</span>  <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">RAIL</span><span class="o">),</span>
       
   922             <span class="nx">thumb</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">THUMB</span><span class="o">),</span>
       
   923             <span class="nx">img</span>   <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">THUMB_IMAGE</span><span class="o">),</span>
       
   924             <span class="nx">dim</span>   <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">_key</span><span class="o">.</span><span class="nx">dim</span><span class="o">,</span>
       
   925             <span class="nx">size</span>  <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">RAIL_SIZE</span><span class="o">),</span>
       
   926             <span class="nx">setxy</span> <span class="o">=</span> <span class="kc">false</span><span class="o">;</span>
       
   927 
       
   928         <span class="k">if</span> <span class="o">(</span><span class="nb">parseInt</span><span class="o">(</span><span class="nx">size</span><span class="o">,</span><span class="m">10</span><span class="o">))</span> <span class="o">{</span>
       
   929             <span class="nx">Y</span><span class="o">.</span><span class="nx">log</span><span class="o">(</span><span class="s1">&#39;railSize provided: &#39;</span><span class="o">+</span><span class="nx">size</span><span class="o">,</span><span class="s1">&#39;info&#39;</span><span class="o">,</span><span class="s1">&#39;slider&#39;</span><span class="o">);</span>
       
   930 
       
   931             <span class="c">// Convert to pixels</span>
       
   932 <span class="c"></span>            <span class="nx">rail</span><span class="o">.</span><span class="nx">setStyle</span><span class="o">(</span><span class="nx">dim</span><span class="o">,</span><span class="nx">size</span><span class="o">);</span>
       
   933             <span class="nx">size</span> <span class="o">=</span> <span class="nb">parseInt</span><span class="o">(</span><span class="nx">rail</span><span class="o">.</span><span class="nx">getComputedStyle</span><span class="o">(</span><span class="nx">dim</span><span class="o">),</span><span class="m">10</span><span class="o">);</span>
       
   934 
       
   935             <span class="nx">Y</span><span class="o">.</span><span class="nx">log</span><span class="o">(</span><span class="s1">&#39;pixel &#39;</span><span class="o">+</span><span class="nx">dim</span><span class="o">+</span><span class="s1">&#39; of railSize: &#39;</span><span class="o">+</span><span class="nx">size</span><span class="o">+</span><span class="s1">&#39;px&#39;</span><span class="o">,</span> <span class="s1">&#39;info&#39;</span><span class="o">,</span> <span class="s1">&#39;slider&#39;</span><span class="o">);</span>
       
   936         <span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
       
   937             <span class="nx">Y</span><span class="o">.</span><span class="nx">log</span><span class="o">(</span><span class="s1">&#39;defaulting railSize from max of computed style and configured &#39;</span><span class="o">+</span><span class="nx">dim</span><span class="o">+</span><span class="s1">&#39; attribute value&#39;</span><span class="o">,</span> <span class="s1">&#39;info&#39;</span><span class="o">,</span> <span class="s1">&#39;slider&#39;</span><span class="o">);</span>
       
   938             <span class="c">// Default from height or width (axis respective), or dims assigned</span>
       
   939 <span class="c"></span>            <span class="c">// via css to the rail or thumb, whichever is largest.</span>
       
   940 <span class="c"></span>            <span class="c">// Dear implementers, please use railSize, not height/width to</span>
       
   941 <span class="c"></span>            <span class="c">// set the rail dims</span>
       
   942 <span class="c"></span>            <span class="nx">size</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">dim</span><span class="o">);</span>
       
   943             <span class="k">if</span> <span class="o">(</span><span class="nb">parseInt</span><span class="o">(</span><span class="nx">size</span><span class="o">,</span><span class="m">10</span><span class="o">))</span> <span class="o">{</span>
       
   944                 <span class="nx">setxy</span> <span class="o">=</span> <span class="kc">true</span><span class="o">;</span>
       
   945                 <span class="nx">rail</span><span class="o">.</span><span class="nx">setStyle</span><span class="o">(</span><span class="nx">dim</span><span class="o">,</span><span class="nx">size</span><span class="o">);</span>
       
   946                 <span class="nx">size</span> <span class="o">=</span> <span class="nb">parseInt</span><span class="o">(</span><span class="nx">rail</span><span class="o">.</span><span class="nx">getComputedStyle</span><span class="o">(</span><span class="nx">dim</span><span class="o">),</span><span class="m">10</span><span class="o">);</span>
       
   947             <span class="o">}</span>
       
   948             <span class="nx">size</span> <span class="o">=</span> <span class="nx">max</span><span class="o">(</span>
       
   949                     <span class="nx">size</span><span class="o">|</span><span class="m">0</span><span class="o">,</span>
       
   950                     <span class="nb">parseInt</span><span class="o">(</span><span class="nx">thumb</span><span class="o">.</span><span class="nx">getComputedStyle</span><span class="o">(</span><span class="nx">dim</span><span class="o">),</span><span class="m">10</span><span class="o">),</span>
       
   951                     <span class="nb">parseInt</span><span class="o">(</span><span class="nx">rail</span><span class="o">.</span><span class="nx">getComputedStyle</span><span class="o">(</span><span class="nx">dim</span><span class="o">),</span><span class="m">10</span><span class="o">));</span>
       
   952 
       
   953             <span class="nx">Y</span><span class="o">.</span><span class="nx">log</span><span class="o">(</span><span class="s1">&#39;pixel &#39;</span><span class="o">+</span><span class="nx">dim</span><span class="o">+</span><span class="s1">&#39; of rail: &#39;</span><span class="o">+</span><span class="nx">size</span><span class="o">+</span><span class="s1">&#39;px&#39;</span><span class="o">,</span> <span class="s1">&#39;info&#39;</span><span class="o">,</span> <span class="s1">&#39;slider&#39;</span><span class="o">);</span>
       
   954 
       
   955             <span class="k">if</span> <span class="o">(</span><span class="nx">img</span> <span class="o">&amp;&amp;</span> <span class="k">this</span><span class="o">.</span><span class="nx">_isImageLoaded</span><span class="o">(</span><span class="nx">img</span><span class="o">))</span> <span class="o">{</span>
       
   956                 <span class="nx">Y</span><span class="o">.</span><span class="nx">log</span><span class="o">(</span><span class="s1">&#39;using max of thumbImage &#39;</span><span class="o">+</span><span class="nx">dim</span><span class="o">+</span><span class="s1">&#39; (&#39;</span><span class="o">+</span><span class="nx">img</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">dim</span><span class="o">)+</span><span class="s1">&#39; and &#39;</span><span class="o">+</span><span class="nx">size</span><span class="o">+</span><span class="s1">&#39; for railSize&#39;</span><span class="o">,</span> <span class="s1">&#39;info&#39;</span><span class="o">,</span> <span class="s1">&#39;slider&#39;</span><span class="o">);</span>
       
   957 
       
   958                 <span class="nx">size</span> <span class="o">=</span> <span class="nx">max</span><span class="o">(</span><span class="nx">img</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">dim</span><span class="o">),</span><span class="nx">size</span><span class="o">);</span>
       
   959             <span class="o">}</span>
       
   960         <span class="o">}</span>
       
   961 
       
   962         <span class="nx">rail</span><span class="o">.</span><span class="nx">setStyle</span><span class="o">(</span><span class="nx">dim</span><span class="o">,</span> <span class="nx">size</span> <span class="o">+</span> <span class="nx">PX</span><span class="o">);</span>
       
   963 
       
   964         <span class="k">this</span><span class="o">.</span><span class="nx">_railSize</span> <span class="o">=</span> <span class="nx">size</span><span class="o">;</span>
       
   965 
       
   966         <span class="c">// handle the (not recommended) fallback case of setting rail size via</span>
       
   967 <span class="c"></span>        <span class="c">// widget height/width params.  This is the only case that sets the</span>
       
   968 <span class="c"></span>        <span class="c">// off-axis rail dim in the code.</span>
       
   969 <span class="c"></span>        <span class="k">if</span> <span class="o">(</span><span class="nx">setxy</span><span class="o">)</span> <span class="o">{</span>
       
   970             <span class="nx">dim</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">_key</span><span class="o">.</span><span class="nx">offAxisDim</span><span class="o">;</span>
       
   971             <span class="nx">size</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">dim</span><span class="o">);</span>
       
   972             <span class="k">if</span> <span class="o">(</span><span class="nx">size</span><span class="o">)</span> <span class="o">{</span>
       
   973                 <span class="nx">rail</span><span class="o">.</span><span class="nx">set</span><span class="o">(</span><span class="nx">dim</span><span class="o">,</span><span class="nx">size</span><span class="o">);</span>
       
   974             <span class="o">}</span>
       
   975         <span class="o">}</span>
       
   976     <span class="o">},</span>
       
   977 
       
   978     <span class="c">/**</span>
       
   979 <span class="c">     * Store the current XY position of the rail Node on the page.  For use in</span>
       
   980 <span class="c">     * calculating thumb position from value.</span>
       
   981 <span class="c">     *</span>
       
   982 <span class="c">     * @method _setRailOffsetXY</span>
       
   983 <span class="c">     * @protected</span>
       
   984 <span class="c">     */</span>
       
   985     <span class="nx">_setRailOffsetXY</span> <span class="o">:</span> <span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
       
   986         <span class="k">this</span><span class="o">.</span><span class="nx">_offsetXY</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">RAIL</span><span class="o">).</span><span class="nx">getXY</span><span class="o">()[</span><span class="k">this</span><span class="o">.</span><span class="nx">_key</span><span class="o">.</span><span class="nx">xyIndex</span><span class="o">]</span> <span class="o">+</span>
       
   987                          <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">MIN_GUTTER</span><span class="o">);</span>
       
   988     <span class="o">},</span>
       
   989 
       
   990    <span class="c">/**</span>
       
   991 <span class="c">    * Passes the gutter attribute value to the DDConstrain gutter attribute.</span>
       
   992 <span class="c">    *</span>
       
   993 <span class="c">    * @method _setDDGutter</span>
       
   994 <span class="c">    * @protected</span>
       
   995 <span class="c">    */</span>
       
   996     <span class="nx">_setDDGutter</span> <span class="o">:</span> <span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
       
   997         <span class="k">var</span> <span class="nx">gutter</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">_key</span><span class="o">.</span><span class="nx">xyIndex</span> <span class="o">?</span>
       
   998             <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">MIN_GUTTER</span><span class="o">)</span> <span class="o">+</span> <span class="s2">&quot; 0 &quot;</span> <span class="o">+</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">MAX_GUTTER</span><span class="o">)</span> <span class="o">:</span>
       
   999             <span class="s2">&quot;0 &quot;</span> <span class="o">+</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">MAX_GUTTER</span><span class="o">)</span> <span class="o">+</span> <span class="s2">&quot; 0 &quot;</span> <span class="o">+</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">MIN_GUTTER</span><span class="o">);</span>
       
  1000 
       
  1001         <span class="nx">Y</span><span class="o">.</span><span class="nx">log</span><span class="o">(</span><span class="s1">&#39;setting DDConstrain gutter &quot;&#39;</span><span class="o">+</span><span class="nx">gutter</span><span class="o">+</span><span class="s1">&#39;&quot;&#39;</span><span class="o">,</span><span class="s1">&#39;info&#39;</span><span class="o">,</span><span class="s1">&#39;slider&#39;</span><span class="o">);</span>
       
  1002 
       
  1003         <span class="k">this</span><span class="o">.</span><span class="nx">_dd</span><span class="o">.</span><span class="nx">con</span><span class="o">.</span><span class="nx">set</span><span class="o">(</span><span class="s1">&#39;gutter&#39;</span><span class="o">,</span> <span class="nx">gutter</span><span class="o">);</span>
       
  1004     <span class="o">},</span>
       
  1005 
       
  1006     <span class="c">/**</span>
       
  1007 <span class="c">     * Resets the cached region inside the DD constrain instance to support</span>
       
  1008 <span class="c">     * repositioning the Slider after instantiation.</span>
       
  1009 <span class="c">     *</span>
       
  1010 <span class="c">     * @method _resetDDCacheRegion</span>
       
  1011 <span class="c">     * @protected</span>
       
  1012 <span class="c">     */</span>
       
  1013     <span class="nx">_resetDDCacheRegion</span> <span class="o">:</span> <span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
       
  1014         <span class="c">// Workaround for ticket #2527964</span>
       
  1015 <span class="c"></span>        <span class="k">this</span><span class="o">.</span><span class="nx">_dd</span><span class="o">.</span><span class="nx">con</span><span class="o">.</span><span class="nx">_cacheRegion</span><span class="o">();</span>
       
  1016     <span class="o">},</span>
       
  1017 
       
  1018     <span class="c">/**</span>
       
  1019 <span class="c">     * Calculates the multiplier used to translate the value into a thumb</span>
       
  1020 <span class="c">     * position.</span>
       
  1021 <span class="c">     *</span>
       
  1022 <span class="c">     * @method _setFactor</span>
       
  1023 <span class="c">     * @protected</span>
       
  1024 <span class="c">     */</span>
       
  1025     <span class="nx">_setFactor</span> <span class="o">:</span> <span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
       
  1026         <span class="k">var</span> <span class="nx">range</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">_railSize</span> <span class="o">-</span> <span class="k">this</span><span class="o">.</span><span class="nx">_thumbSize</span> <span class="o">-</span>
       
  1027                     <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">MIN_GUTTER</span><span class="o">)</span> <span class="o">-</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">MAX_GUTTER</span><span class="o">);</span>
       
  1028 
       
  1029         <span class="k">this</span><span class="o">.</span><span class="nx">_factor</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">_railSize</span> <span class="o">?</span>
       
  1030             <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">MAX</span><span class="o">)</span> <span class="o">-</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">MIN</span><span class="o">))</span> <span class="o">/</span> <span class="nx">range</span> <span class="o">:</span>
       
  1031             <span class="m">1</span><span class="o">;</span>
       
  1032 
       
  1033         <span class="nx">Y</span><span class="o">.</span><span class="nx">log</span><span class="o">(</span><span class="s1">&#39;_factor set to &#39;</span><span class="o">+</span><span class="k">this</span><span class="o">.</span><span class="nx">_factor</span><span class="o">,</span><span class="s1">&#39;info&#39;</span><span class="o">,</span><span class="s1">&#39;slider&#39;</span><span class="o">);</span>
       
  1034     <span class="o">},</span>
       
  1035 
       
  1036     <span class="c">/**</span>
       
  1037 <span class="c">     * Convenience method for accessing the current value of the Slider.</span>
       
  1038 <span class="c">     * Equivalent to &lt;code&gt;slider.get(&amp;quot;value&amp;quot;)&lt;/code&gt;.</span>
       
  1039 <span class="c">     *</span>
       
  1040 <span class="c">     * @method getValue</span>
       
  1041 <span class="c">     * @return {Number} the value</span>
       
  1042 <span class="c">     */</span>
       
  1043     <span class="nx">getValue</span> <span class="o">:</span> <span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
       
  1044         <span class="k">return</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">VALUE</span><span class="o">);</span>
       
  1045     <span class="o">},</span>
       
  1046 
       
  1047     <span class="c">/**</span>
       
  1048 <span class="c">     * Convenience method for updating the current value of the Slider.</span>
       
  1049 <span class="c">     * Equivalent to &lt;code&gt;slider.set(&amp;quot;value&amp;quot;,val)&lt;/code&gt;.</span>
       
  1050 <span class="c">     *</span>
       
  1051 <span class="c">     * @method setValue</span>
       
  1052 <span class="c">     * @param val {Number} the new value</span>
       
  1053 <span class="c">     */</span>
       
  1054     <span class="nx">setValue</span> <span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">val</span><span class="o">)</span> <span class="o">{</span>
       
  1055         <span class="k">this</span><span class="o">.</span><span class="nx">set</span><span class="o">(</span><span class="nx">VALUE</span><span class="o">,</span><span class="nx">val</span><span class="o">);</span>
       
  1056     <span class="o">},</span>
       
  1057 
       
  1058     <span class="c">/**</span>
       
  1059 <span class="c">     * Validator applied to new values for the axis attribute. Only</span>
       
  1060 <span class="c">     * &amp;quot;x&amp;quot; and &amp;quot;y&amp;quot; are permitted.</span>
       
  1061 <span class="c">     *</span>
       
  1062 <span class="c">     * @method _validateNewAxis</span>
       
  1063 <span class="c">     * @param v {String} proposed value for the axis attribute</span>
       
  1064 <span class="c">     * @return Boolean</span>
       
  1065 <span class="c">     * @protected</span>
       
  1066 <span class="c">     */</span>
       
  1067     <span class="nx">_validateNewAxis</span> <span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">v</span><span class="o">)</span> <span class="o">{</span>
       
  1068         <span class="k">return</span> <span class="nx">isString</span><span class="o">(</span><span class="nx">v</span><span class="o">)</span> <span class="o">&amp;&amp;</span> <span class="s1">&#39;xXyY&#39;</span><span class="o">.</span><span class="nx">indexOf</span><span class="o">(</span><span class="nx">v</span><span class="o">.</span><span class="nx">charAt</span><span class="o">(</span><span class="m">0</span><span class="o">))</span> <span class="o">&gt;</span> <span class="o">-</span><span class="m">1</span><span class="o">;</span>
       
  1069     <span class="o">},</span>
       
  1070 
       
  1071     <span class="c">/**</span>
       
  1072 <span class="c">     * Validator applied to the min attribute.</span>
       
  1073 <span class="c">     *</span>
       
  1074 <span class="c">     * @method _validateNewMin</span>
       
  1075 <span class="c">     * @param v {MIXED} proposed value for the min attribute</span>
       
  1076 <span class="c">     * @return Boolean</span>
       
  1077 <span class="c">     * @protected</span>
       
  1078 <span class="c">     */</span>
       
  1079     <span class="nx">_validateNewMin</span> <span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">v</span><span class="o">)</span> <span class="o">{</span>
       
  1080         <span class="k">return</span> <span class="nx">isNumber</span><span class="o">(</span><span class="nx">v</span><span class="o">);</span>
       
  1081     <span class="o">},</span>
       
  1082 
       
  1083     <span class="c">/**</span>
       
  1084 <span class="c">     * Validator applied to the max attribute.</span>
       
  1085 <span class="c">     *</span>
       
  1086 <span class="c">     * @method _validateNewMax</span>
       
  1087 <span class="c">     * @param v {MIXED} proposed value for the max attribute</span>
       
  1088 <span class="c">     * @return Boolean</span>
       
  1089 <span class="c">     * @protected</span>
       
  1090 <span class="c">     */</span>
       
  1091     <span class="nx">_validateNewMax</span> <span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">v</span><span class="o">)</span> <span class="o">{</span>
       
  1092         <span class="k">return</span> <span class="nx">isNumber</span><span class="o">(</span><span class="nx">v</span><span class="o">);</span>
       
  1093     <span class="o">},</span>
       
  1094 
       
  1095     <span class="c">/**</span>
       
  1096 <span class="c">     * Validator applied to the value attribute.</span>
       
  1097 <span class="c">     *</span>
       
  1098 <span class="c">     * @method _validateNewValue</span>
       
  1099 <span class="c">     * @param v {MIXED} proposed value for the value attribute</span>
       
  1100 <span class="c">     * @return Boolean</span>
       
  1101 <span class="c">     * @protected</span>
       
  1102 <span class="c">     */</span>
       
  1103     <span class="nx">_validateNewValue</span> <span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">v</span><span class="o">)</span> <span class="o">{</span>
       
  1104         <span class="k">var</span> <span class="nx">min</span>    <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">MIN</span><span class="o">),</span>
       
  1105             <span class="nx">max</span>    <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">MAX</span><span class="o">);</span>
       
  1106 
       
  1107         <span class="k">return</span> <span class="nx">isNumber</span><span class="o">(</span><span class="nx">v</span><span class="o">)</span> <span class="o">&amp;&amp;</span>
       
  1108                 <span class="o">(</span><span class="nx">min</span> <span class="o">&lt;</span> <span class="nx">max</span> <span class="o">?</span> <span class="o">(</span><span class="nx">v</span> <span class="o">&gt;=</span> <span class="nx">min</span> <span class="o">&amp;&amp;</span> <span class="nx">v</span> <span class="o">&lt;=</span> <span class="nx">max</span><span class="o">)</span> <span class="o">:</span> <span class="o">(</span><span class="nx">v</span> <span class="o">&gt;=</span> <span class="nx">max</span> <span class="o">&amp;&amp;</span> <span class="nx">v</span> <span class="o">&lt;=</span> <span class="nx">min</span><span class="o">));</span>
       
  1109     <span class="o">},</span>
       
  1110 
       
  1111     <span class="c">/**</span>
       
  1112 <span class="c">     * Validator applied to the rail attribute. Rejects all values after the</span>
       
  1113 <span class="c">     * Slider has been rendered.</span>
       
  1114 <span class="c">     *</span>
       
  1115 <span class="c">     * @method _validateNewRail</span>
       
  1116 <span class="c">     * @param v {MIXED} proposed value for the rail attribute</span>
       
  1117 <span class="c">     * @return Boolean</span>
       
  1118 <span class="c">     * @protected</span>
       
  1119 <span class="c">     */</span>
       
  1120     <span class="nx">_validateNewRail</span> <span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">v</span><span class="o">)</span> <span class="o">{</span>
       
  1121         <span class="k">return</span> <span class="o">!</span><span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">RENDERED</span><span class="o">)</span> <span class="o">||</span> <span class="nx">v</span><span class="o">;</span>
       
  1122     <span class="o">},</span>
       
  1123 
       
  1124     <span class="c">/**</span>
       
  1125 <span class="c">     * Validator applied to the thumb attribute.  Rejects all values after the</span>
       
  1126 <span class="c">     * Slider has been rendered.</span>
       
  1127 <span class="c">     *</span>
       
  1128 <span class="c">     * @method _validateNewThumb</span>
       
  1129 <span class="c">     * @param v {MIXED} proposed value for the thumb attribute</span>
       
  1130 <span class="c">     * @return Boolean</span>
       
  1131 <span class="c">     * @protected</span>
       
  1132 <span class="c">     */</span>
       
  1133     <span class="nx">_validateNewThumb</span> <span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">v</span><span class="o">)</span> <span class="o">{</span>
       
  1134         <span class="k">return</span> <span class="o">!</span><span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">RENDERED</span><span class="o">)</span> <span class="o">||</span> <span class="nx">v</span><span class="o">;</span>
       
  1135     <span class="o">},</span>
       
  1136 
       
  1137     <span class="c">/**</span>
       
  1138 <span class="c">     * Validator applied to the thumbImage attribute.  Rejects all values after</span>
       
  1139 <span class="c">     * the Slider has been rendered.</span>
       
  1140 <span class="c">     *</span>
       
  1141 <span class="c">     * @method _validateNewThumbImage</span>
       
  1142 <span class="c">     * @param v {MIXED} proposed value for the thumbImage attribute</span>
       
  1143 <span class="c">     * @return Boolean</span>
       
  1144 <span class="c">     * @protected</span>
       
  1145 <span class="c">     */</span>
       
  1146     <span class="nx">_validateNewThumbImage</span> <span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">v</span><span class="o">)</span> <span class="o">{</span>
       
  1147         <span class="k">return</span> <span class="o">!</span><span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">RENDERED</span><span class="o">)</span> <span class="o">||</span> <span class="nx">v</span><span class="o">;</span>
       
  1148     <span class="o">},</span>
       
  1149 
       
  1150     <span class="c">/**</span>
       
  1151 <span class="c">     * Validator applied to the railSize attribute. Only strings of css size</span>
       
  1152 <span class="c">     * values (e.g. &#39;200px&#39;) are allowed.</span>
       
  1153 <span class="c">     *</span>
       
  1154 <span class="c">     * @method _validateNewRailSize</span>
       
  1155 <span class="c">     * @param v {String} proposed value for the railSize attribute</span>
       
  1156 <span class="c">     * @return Boolean</span>
       
  1157 <span class="c">     * @protected</span>
       
  1158 <span class="c">     */</span>
       
  1159     <span class="nx">_validateNewRailSize</span> <span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">v</span><span class="o">)</span> <span class="o">{</span>
       
  1160         <span class="k">return</span> <span class="nx">isString</span><span class="o">(</span><span class="nx">v</span><span class="o">)</span> <span class="o">&amp;&amp;</span>
       
  1161             <span class="o">(</span><span class="nx">v</span> <span class="o">===</span> <span class="s1">&#39;0&#39;</span> <span class="o">||</span> <span class="sr">/^\d+(?:p[xtc]|%|e[mx]|in|[mc]m)$/</span><span class="o">.</span><span class="nx">test</span><span class="o">(</span><span class="nx">v</span><span class="o">));</span>
       
  1162     <span class="o">},</span>
       
  1163 
       
  1164     <span class="c">/**</span>
       
  1165 <span class="c">     * Setter applied to the input when updating the axis attribute.</span>
       
  1166 <span class="c">     *</span>
       
  1167 <span class="c">     * @method _setAxisFn</span>
       
  1168 <span class="c">     * @param v {String} proposed value for the axis attribute</span>
       
  1169 <span class="c">     * @return {String} lowercased first character of the input string</span>
       
  1170 <span class="c">     * @protected</span>
       
  1171 <span class="c">     */</span>
       
  1172     <span class="nx">_setAxisFn</span> <span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">v</span><span class="o">)</span> <span class="o">{</span>
       
  1173         <span class="k">return</span> <span class="nx">v</span><span class="o">.</span><span class="nx">charAt</span><span class="o">(</span><span class="m">0</span><span class="o">).</span><span class="nx">toLowerCase</span><span class="o">();</span>
       
  1174     <span class="o">},</span>
       
  1175 
       
  1176     <span class="c">/**</span>
       
  1177 <span class="c">     * Setter applied to the input when updating the value attribute. This is</span>
       
  1178 <span class="c">     * just a placeholder for extension.</span>
       
  1179 <span class="c">     *</span>
       
  1180 <span class="c">     * @method _setValueFn</span>
       
  1181 <span class="c">     * @param v {Number} proposed new value for the Slider</span>
       
  1182 <span class="c">     * @return {Number} rounded value or configured min if non-number input</span>
       
  1183 <span class="c">     * @protected</span>
       
  1184 <span class="c">     */</span>
       
  1185     <span class="nx">_setValueFn</span> <span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">v</span><span class="o">)</span> <span class="o">{</span> <span class="k">return</span> <span class="nx">v</span><span class="o">;</span> <span class="o">},</span>
       
  1186 
       
  1187     <span class="c">/**</span>
       
  1188 <span class="c">     * Setter applied to the input when updating the rail attribute.  Input can</span>
       
  1189 <span class="c">     * be a Node, raw HTMLElement, or a selector string to locate it.</span>
       
  1190 <span class="c">     *</span>
       
  1191 <span class="c">     * @method _setRailFn</span>
       
  1192 <span class="c">     * @param v {Node|String|HTMLElement} The rail element Node or selector</span>
       
  1193 <span class="c">     * @return {Node} The Node if found.  Otherwise null.</span>
       
  1194 <span class="c">     * @protected</span>
       
  1195 <span class="c">     */</span>
       
  1196     <span class="nx">_setRailFn</span> <span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">v</span><span class="o">)</span> <span class="o">{</span>
       
  1197         <span class="k">return</span> <span class="nx">Y</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">v</span><span class="o">)</span> <span class="o">||</span> <span class="kc">null</span><span class="o">;</span>
       
  1198     <span class="o">},</span>
       
  1199 
       
  1200     <span class="c">/**</span>
       
  1201 <span class="c">     * Setter applied to the input when updating the thumb attribute.  Input can</span>
       
  1202 <span class="c">     * be a Node, raw HTMLElement, or a selector string to locate it.</span>
       
  1203 <span class="c">     *</span>
       
  1204 <span class="c">     * @method _setThumbFn</span>
       
  1205 <span class="c">     * @param v {Node|String|HTMLElement} The thumb element Node or selector</span>
       
  1206 <span class="c">     * @return {Node} The Node if found.  Otherwise null.</span>
       
  1207 <span class="c">     * @protected</span>
       
  1208 <span class="c">     */</span>
       
  1209     <span class="nx">_setThumbFn</span> <span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">v</span><span class="o">)</span> <span class="o">{</span>
       
  1210         <span class="k">return</span> <span class="nx">Y</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">v</span><span class="o">)</span> <span class="o">||</span> <span class="kc">null</span><span class="o">;</span>
       
  1211     <span class="o">},</span>
       
  1212 
       
  1213     <span class="c">/**</span>
       
  1214 <span class="c">     * Setter applied to the input when updating the thumbImage attribute.</span>
       
  1215 <span class="c">     * Input can be a Node, raw HTMLElement, selector string to locate it, or</span>
       
  1216 <span class="c">     * the URL for an image resource.</span>
       
  1217 <span class="c">     *</span>
       
  1218 <span class="c">     * String input will be treated as a selector.  If no element is found using</span>
       
  1219 <span class="c">     * the selector, an &lt;code&gt;img&lt;/code&gt; Node will be created with the string</span>
       
  1220 <span class="c">     * used as the &lt;code&gt;src&lt;/code&gt; attribute.</span>
       
  1221 <span class="c">     *</span>
       
  1222 <span class="c">     * @method _setThumbImageFn</span>
       
  1223 <span class="c">     * @param v {Node|String|HTMLElement} The thumbImage element Node, selector,</span>
       
  1224 <span class="c">     *          or image URL</span>
       
  1225 <span class="c">     * @return {Node} The Node if found or created.  Otherwise null.</span>
       
  1226 <span class="c">     * @protected</span>
       
  1227 <span class="c">     */</span>
       
  1228     <span class="nx">_setThumbImageFn</span> <span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">v</span><span class="o">)</span> <span class="o">{</span>
       
  1229         <span class="k">return</span> <span class="nx">v</span> <span class="o">?</span> <span class="nx">Y</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">v</span><span class="o">)</span> <span class="o">||</span>
       
  1230                 <span class="nx">Y</span><span class="o">.</span><span class="nx">Node</span><span class="o">.</span><span class="nx">create</span><span class="o">(</span><span class="s1">&#39;&lt;img src=&quot;&#39;</span><span class="o">+</span><span class="nx">v</span><span class="o">+</span><span class="s1">&#39;&quot; alt=&quot;Slider thumb&quot;&gt;&#39;</span><span class="o">)</span> <span class="o">:</span>
       
  1231                 <span class="kc">null</span><span class="o">;</span>
       
  1232     <span class="o">},</span>
       
  1233 
       
  1234 
       
  1235     <span class="c">/**</span>
       
  1236 <span class="c">     * Caches the current page position of the rail element and fires the</span>
       
  1237 <span class="c">     * slideStart event in response to the DD&#39;s drag:start.</span>
       
  1238 <span class="c">     *</span>
       
  1239 <span class="c">     * @method _onDDStartDrag</span>
       
  1240 <span class="c">     * @param e {Event} the DD instance&#39;s drag:start custom event</span>
       
  1241 <span class="c">     * @protected</span>
       
  1242 <span class="c">     */</span>
       
  1243     <span class="nx">_onDDStartDrag</span> <span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">e</span><span class="o">)</span> <span class="o">{</span>
       
  1244         <span class="nx">Y</span><span class="o">.</span><span class="nx">log</span><span class="o">(</span><span class="s1">&#39;slide start&#39;</span><span class="o">,</span><span class="s1">&#39;info&#39;</span><span class="o">,</span><span class="s1">&#39;slider&#39;</span><span class="o">);</span>
       
  1245         <span class="k">this</span><span class="o">.</span><span class="nx">_setRailOffsetXY</span><span class="o">();</span>
       
  1246         <span class="k">this</span><span class="o">.</span><span class="nx">fire</span><span class="o">(</span><span class="nx">SLIDE_START</span><span class="o">,{</span> <span class="nx">ddEvent</span><span class="o">:</span> <span class="nx">e</span> <span class="o">});</span>
       
  1247     <span class="o">},</span>
       
  1248 
       
  1249     <span class="c">/**</span>
       
  1250 <span class="c">     * Fires the thumbDrag event to queue Slider value update.</span>
       
  1251 <span class="c">     *</span>
       
  1252 <span class="c">     * @method _onDDDrag</span>
       
  1253 <span class="c">     * @param e {Event} the DD instance&#39;s drag:drag custom event</span>
       
  1254 <span class="c">     * @protected</span>
       
  1255 <span class="c">     */</span>
       
  1256     <span class="nx">_onDDDrag</span> <span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">e</span><span class="o">)</span> <span class="o">{</span>
       
  1257         <span class="nx">Y</span><span class="o">.</span><span class="nx">log</span><span class="o">(</span><span class="s1">&#39;thumb drag&#39;</span><span class="o">,</span><span class="s1">&#39;info&#39;</span><span class="o">,</span><span class="s1">&#39;slider&#39;</span><span class="o">);</span>
       
  1258         <span class="k">this</span><span class="o">.</span><span class="nx">fire</span><span class="o">(</span><span class="nx">THUMB_DRAG</span><span class="o">,</span> <span class="o">{</span> <span class="nx">ddEvent</span><span class="o">:</span> <span class="nx">e</span> <span class="o">});</span>
       
  1259     <span class="o">},</span>
       
  1260 
       
  1261     <span class="c">/**</span>
       
  1262 <span class="c">     * The default value update behavior in response to Slider thumb</span>
       
  1263 <span class="c">     * interaction.  Calculates the value using stored offsets, the _factor</span>
       
  1264 <span class="c">     * multiplier and the min value.</span>
       
  1265 <span class="c">     *</span>
       
  1266 <span class="c">     * @method _defUpdateValueFromDD</span>
       
  1267 <span class="c">     * @param e {Event} the internal thumbDrag event</span>
       
  1268 <span class="c">     * @protected</span>
       
  1269 <span class="c">     */</span>
       
  1270     <span class="nx">_defUpdateValueFromDD</span> <span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">e</span><span class="o">)</span> <span class="o">{</span>
       
  1271         <span class="k">var</span> <span class="nx">before</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">VALUE</span><span class="o">),</span>
       
  1272             <span class="nx">val</span>    <span class="o">=</span> <span class="nx">e</span><span class="o">.</span><span class="nx">ddEvent</span><span class="o">[</span><span class="k">this</span><span class="o">.</span><span class="nx">_key</span><span class="o">.</span><span class="nx">eventPageAxis</span><span class="o">]</span> <span class="o">-</span> <span class="k">this</span><span class="o">.</span><span class="nx">_offsetXY</span><span class="o">;</span>
       
  1273 
       
  1274         <span class="nx">Y</span><span class="o">.</span><span class="nx">log</span><span class="o">(</span><span class="s1">&#39;setting value from thumb drag: before(&#39;</span><span class="o">+</span><span class="nx">before</span><span class="o">+</span><span class="s1">&#39;) raw(&#39;</span><span class="o">+</span><span class="nx">val</span><span class="o">+</span><span class="s1">&#39;) factored(&#39;</span><span class="o">+</span><span class="nx">round</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">MIN</span><span class="o">)</span> <span class="o">+</span> <span class="o">(</span><span class="nx">val</span> <span class="o">*</span> <span class="k">this</span><span class="o">.</span><span class="nx">_factor</span><span class="o">))+</span><span class="s1">&#39;)&#39;</span><span class="o">,</span> <span class="s1">&#39;info&#39;</span><span class="o">,</span><span class="s1">&#39;slider&#39;</span><span class="o">);</span>
       
  1275 
       
  1276         <span class="nx">val</span> <span class="o">=</span> <span class="nx">round</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">MIN</span><span class="o">)</span> <span class="o">+</span> <span class="o">(</span><span class="nx">val</span> <span class="o">*</span> <span class="k">this</span><span class="o">.</span><span class="nx">_factor</span><span class="o">));</span>
       
  1277 
       
  1278         <span class="k">if</span> <span class="o">(</span><span class="nx">before</span> <span class="o">!==</span> <span class="nx">val</span><span class="o">)</span> <span class="o">{</span>
       
  1279             <span class="k">this</span><span class="o">.</span><span class="nx">set</span><span class="o">(</span><span class="nx">VALUE</span><span class="o">,</span> <span class="nx">val</span><span class="o">,</span> <span class="o">{</span> <span class="nx">ddEvent</span><span class="o">:</span> <span class="nx">e</span><span class="o">.</span><span class="nx">ddEvent</span> <span class="o">});</span>
       
  1280         <span class="o">}</span>
       
  1281     <span class="o">},</span>
       
  1282 
       
  1283     <span class="c">/**</span>
       
  1284 <span class="c">     * Fires the slideEnd event.</span>
       
  1285 <span class="c">     *</span>
       
  1286 <span class="c">     * @method _onDDEndDrag</span>
       
  1287 <span class="c">     * @param e {Event} the DD instance&#39;s drag:end custom event</span>
       
  1288 <span class="c">     * @protected</span>
       
  1289 <span class="c">     */</span>
       
  1290     <span class="nx">_onDDEndDrag</span> <span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">e</span><span class="o">)</span> <span class="o">{</span>
       
  1291         <span class="nx">Y</span><span class="o">.</span><span class="nx">log</span><span class="o">(</span><span class="s1">&#39;slide end&#39;</span><span class="o">,</span><span class="s1">&#39;info&#39;</span><span class="o">,</span><span class="s1">&#39;slider&#39;</span><span class="o">);</span>
       
  1292         <span class="k">this</span><span class="o">.</span><span class="nx">fire</span><span class="o">(</span><span class="nx">SLIDE_END</span><span class="o">,{</span> <span class="nx">ddEvent</span><span class="o">:</span> <span class="nx">e</span> <span class="o">});</span>
       
  1293     <span class="o">},</span>
       
  1294 
       
  1295 
       
  1296 
       
  1297 
       
  1298     <span class="c">/**</span>
       
  1299 <span class="c">     * Calls _uiPositionThumb with the value of the custom event&#39;s</span>
       
  1300 <span class="c">     * &amp;quot;offset&amp;quot; property.</span>
       
  1301 <span class="c">     *</span>
       
  1302 <span class="c">     * @method _defPositionThumbFn</span>
       
  1303 <span class="c">     * @param e {Event} the positionThumb custom event</span>
       
  1304 <span class="c">     * @protected</span>
       
  1305 <span class="c">     */</span>
       
  1306     <span class="nx">_defPositionThumbFn</span> <span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">e</span><span class="o">)</span> <span class="o">{</span>
       
  1307         <span class="nx">Y</span><span class="o">.</span><span class="nx">log</span><span class="o">(</span><span class="s1">&#39;setting thumb offset (&#39;</span><span class="o">+</span><span class="nx">e</span><span class="o">.</span><span class="nx">offset</span><span class="o">+</span><span class="s1">&#39;) from value attribute update (&#39;</span><span class="o">+</span><span class="nx">e</span><span class="o">.</span><span class="nx">value</span><span class="o">+</span><span class="s1">&#39;)&#39;</span><span class="o">,</span> <span class="s1">&#39;info&#39;</span><span class="o">,</span> <span class="s1">&#39;slider&#39;</span><span class="o">);</span>
       
  1308 
       
  1309         <span class="k">this</span><span class="o">.</span><span class="nx">_uiPositionThumb</span><span class="o">(</span><span class="nx">e</span><span class="o">.</span><span class="nx">offset</span><span class="o">);</span>
       
  1310     <span class="o">},</span>
       
  1311 
       
  1312     <span class="c">/**</span>
       
  1313 <span class="c">     * Places the thumb at a particular X or Y location based on the configured</span>
       
  1314 <span class="c">     * axis.</span>
       
  1315 <span class="c">     *</span>
       
  1316 <span class="c">     * @method _uiPositionThumb</span>
       
  1317 <span class="c">     * @param xy {Number} the desired left or top pixel position of the thumb</span>
       
  1318 <span class="c">     *           in relation to the rail Node.</span>
       
  1319 <span class="c">     * @protected</span>
       
  1320 <span class="c">     */</span>
       
  1321     <span class="nx">_uiPositionThumb</span> <span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">xy</span><span class="o">)</span> <span class="o">{</span>
       
  1322         <span class="k">var</span> <span class="nx">dd</span>     <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">_dd</span><span class="o">,</span>
       
  1323             <span class="nx">thumb</span>  <span class="o">=</span> <span class="nx">dd</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s1">&#39;dragNode&#39;</span><span class="o">),</span>
       
  1324             <span class="nx">hidden</span> <span class="o">=</span> <span class="nx">thumb</span><span class="o">.</span><span class="nx">ancestor</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">_isDisplayNone</span><span class="o">);</span>
       
  1325 
       
  1326         <span class="k">if</span> <span class="o">(!</span><span class="nx">hidden</span><span class="o">)</span> <span class="o">{</span>
       
  1327             <span class="nx">dd</span><span class="o">.</span><span class="nx">_setStartPosition</span><span class="o">(</span><span class="nx">dd</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s1">&#39;dragNode&#39;</span><span class="o">).</span><span class="nx">getXY</span><span class="o">());</span>
       
  1328 
       
  1329             <span class="c">// stickX/stickY config on DD instance will negate off-axis move</span>
       
  1330 <span class="c"></span>            <span class="nx">dd</span><span class="o">.</span><span class="nx">_alignNode</span><span class="o">([</span><span class="nx">xy</span><span class="o">,</span><span class="nx">xy</span><span class="o">],</span><span class="kc">true</span><span class="o">);</span>
       
  1331         <span class="o">}</span>
       
  1332     <span class="o">},</span>
       
  1333 
       
  1334     <span class="c">/**</span>
       
  1335 <span class="c">     * Helper function to search up the ancestor axis looking for a node with</span>
       
  1336 <span class="c">     * style display: none.  This is passed as a function to node.ancestor(..)</span>
       
  1337 <span class="c">     * to test if a given node is in the displayed DOM and can get accurate</span>
       
  1338 <span class="c">     * positioning information.</span>
       
  1339 <span class="c">     *</span>
       
  1340 <span class="c">     * @method _isDisplayNone</span>
       
  1341 <span class="c">     * @param el {Node} ancestor node as the function walks up the parent axis</span>
       
  1342 <span class="c">     * @return {Boolean} true if the node is styled with display: none</span>
       
  1343 <span class="c">     * @protected</span>
       
  1344 <span class="c">     */</span>
       
  1345     <span class="nx">_isDisplayNone</span> <span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">node</span><span class="o">)</span> <span class="o">{</span>
       
  1346         <span class="k">return</span> <span class="nx">node</span><span class="o">.</span><span class="nx">getComputedStyle</span><span class="o">(</span><span class="s1">&#39;display&#39;</span><span class="o">)</span> <span class="o">===</span> <span class="s1">&#39;none&#39;</span><span class="o">;</span>
       
  1347     <span class="o">},</span>
       
  1348 
       
  1349     <span class="c">/**</span>
       
  1350 <span class="c">     * Fires the internal positionThumb event in response to a change in the</span>
       
  1351 <span class="c">     * value attribute.</span>
       
  1352 <span class="c">     *</span>
       
  1353 <span class="c">     * @method _afterValueChange</span>
       
  1354 <span class="c">     * @param e {Event} valueChange custom event</span>
       
  1355 <span class="c">     * @protected</span>
       
  1356 <span class="c">     */</span>
       
  1357     <span class="nx">_afterValueChange</span> <span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">e</span><span class="o">)</span> <span class="o">{</span>
       
  1358         <span class="k">if</span> <span class="o">(!</span><span class="nx">e</span><span class="o">.</span><span class="nx">ddEvent</span><span class="o">)</span> <span class="o">{</span>
       
  1359             <span class="k">var</span> <span class="nx">xy</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">_convertValueToOffset</span><span class="o">(</span><span class="nx">e</span><span class="o">.</span><span class="nx">newVal</span><span class="o">);</span>
       
  1360 
       
  1361             <span class="nx">Y</span><span class="o">.</span><span class="nx">log</span><span class="o">(</span><span class="s1">&#39;firing positionThumb to position thumb&#39;</span><span class="o">,</span> <span class="s1">&#39;info&#39;</span><span class="o">,</span> <span class="s1">&#39;slider&#39;</span><span class="o">);</span>
       
  1362 
       
  1363             <span class="k">this</span><span class="o">.</span><span class="nx">fire</span><span class="o">(</span><span class="nx">POSITION_THUMB</span><span class="o">,{</span> <span class="nx">value</span><span class="o">:</span> <span class="nx">e</span><span class="o">.</span><span class="nx">newVal</span><span class="o">,</span> <span class="nx">offset</span><span class="o">:</span> <span class="nx">xy</span> <span class="o">});</span>
       
  1364         <span class="o">}</span>
       
  1365     <span class="o">},</span>
       
  1366 
       
  1367     <span class="c">/**</span>
       
  1368 <span class="c">     * Converts a value to an integer offset for the thumb position on the rail.</span>
       
  1369 <span class="c">     *</span>
       
  1370 <span class="c">     * @method _convertValueToOffset</span>
       
  1371 <span class="c">     * @param v {Number} value between the Slider&#39;s min and max</span>
       
  1372 <span class="c">     * @protected</span>
       
  1373 <span class="c">     */</span>
       
  1374     <span class="nx">_convertValueToOffset</span> <span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">v</span><span class="o">)</span> <span class="o">{</span>
       
  1375         <span class="k">return</span> <span class="nx">round</span><span class="o">((</span><span class="nx">v</span> <span class="o">-</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">MIN</span><span class="o">))</span> <span class="o">/</span> <span class="k">this</span><span class="o">.</span><span class="nx">_factor</span><span class="o">)</span> <span class="o">+</span> <span class="k">this</span><span class="o">.</span><span class="nx">_offsetXY</span><span class="o">;</span>
       
  1376     <span class="o">},</span>
       
  1377 
       
  1378     <span class="c">/**</span>
       
  1379 <span class="c">     * Replaces the thumb Node in response to a change in the thumb attribute.</span>
       
  1380 <span class="c">     * This only has effect after the Slider is rendered.</span>
       
  1381 <span class="c">     *</span>
       
  1382 <span class="c">     * @method _afterThumbChange</span>
       
  1383 <span class="c">     * @param e {Event} thumbChange custom event</span>
       
  1384 <span class="c">     * @protected</span>
       
  1385 <span class="c">     */</span>
       
  1386     <span class="nx">_afterThumbChange</span> <span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">e</span><span class="o">)</span> <span class="o">{</span>
       
  1387         <span class="k">var</span> <span class="nx">thumb</span><span class="o">;</span>
       
  1388 
       
  1389         <span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">RENDERED</span><span class="o">))</span> <span class="o">{</span>
       
  1390             <span class="k">if</span> <span class="o">(</span><span class="nx">e</span><span class="o">.</span><span class="nx">prevValue</span><span class="o">)</span> <span class="o">{</span>
       
  1391                 <span class="nx">e</span><span class="o">.</span><span class="nx">prevValue</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s1">&#39;parentNode&#39;</span><span class="o">).</span><span class="nx">removeChild</span><span class="o">(</span><span class="nx">e</span><span class="o">.</span><span class="nx">prevValue</span><span class="o">);</span>
       
  1392             <span class="o">}</span>
       
  1393 
       
  1394             <span class="k">this</span><span class="o">.</span><span class="nx">_initThumb</span><span class="o">();</span>
       
  1395             
       
  1396             <span class="nx">thumb</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">THUMB</span><span class="o">);</span>
       
  1397             <span class="k">this</span><span class="o">.</span><span class="nx">_dd</span><span class="o">.</span><span class="nx">set</span><span class="o">(</span><span class="s1">&#39;node&#39;</span><span class="o">,</span><span class="nx">thumb</span><span class="o">);</span>
       
  1398             <span class="k">this</span><span class="o">.</span><span class="nx">_dd</span><span class="o">.</span><span class="nx">set</span><span class="o">(</span><span class="s1">&#39;dragNode&#39;</span><span class="o">,</span><span class="nx">thumb</span><span class="o">);</span>
       
  1399 
       
  1400             <span class="k">this</span><span class="o">.</span><span class="nx">syncUI</span><span class="o">();</span>
       
  1401         <span class="o">}</span>
       
  1402     <span class="o">},</span>
       
  1403 
       
  1404     <span class="c">/**</span>
       
  1405 <span class="c">     * Sets or replaces the thumb&#39;s contained &lt;code&gt;img&lt;/code&gt; Node with the</span>
       
  1406 <span class="c">     * new Node in response to a change in the thumbImage attribute.  This only</span>
       
  1407 <span class="c">     * has effect after the Slider is rendered.</span>
       
  1408 <span class="c">     *</span>
       
  1409 <span class="c">     * @method _afterThumbImageChange</span>
       
  1410 <span class="c">     * @param e {Event} thumbImageChange custom event</span>
       
  1411 <span class="c">     * @protected</span>
       
  1412 <span class="c">     */</span>
       
  1413     <span class="nx">_afterThumbImageChange</span> <span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">e</span><span class="o">)</span> <span class="o">{</span>
       
  1414         <span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">RENDERED</span><span class="o">))</span> <span class="o">{</span>
       
  1415             <span class="k">if</span> <span class="o">(</span><span class="nx">e</span><span class="o">.</span><span class="nx">prevValue</span><span class="o">)</span> <span class="o">{</span>
       
  1416                 <span class="nx">e</span><span class="o">.</span><span class="nx">prevValue</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s1">&#39;parentNode&#39;</span><span class="o">).</span><span class="nx">removeChild</span><span class="o">(</span><span class="nx">e</span><span class="o">.</span><span class="nx">prevValue</span><span class="o">);</span>
       
  1417             <span class="o">}</span>
       
  1418 
       
  1419             <span class="k">this</span><span class="o">.</span><span class="nx">_initThumbImage</span><span class="o">();</span>
       
  1420             
       
  1421             <span class="k">this</span><span class="o">.</span><span class="nx">syncUI</span><span class="o">();</span>
       
  1422         <span class="o">}</span>
       
  1423     <span class="o">},</span>
       
  1424 
       
  1425     <span class="c">/**</span>
       
  1426 <span class="c">     * Updates the Slider UI in response to change in the min attribute.</span>
       
  1427 <span class="c">     *</span>
       
  1428 <span class="c">     * @method _afterMinChange</span>
       
  1429 <span class="c">     * @param e {Event} minChange custom event</span>
       
  1430 <span class="c">     * @protected</span>
       
  1431 <span class="c">     */</span>
       
  1432     <span class="nx">_afterMinChange</span> <span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">e</span><span class="o">)</span> <span class="o">{</span>
       
  1433         <span class="k">this</span><span class="o">.</span><span class="nx">_refresh</span><span class="o">(</span><span class="nx">e</span><span class="o">);</span>
       
  1434     <span class="o">},</span>
       
  1435 
       
  1436     <span class="c">/**</span>
       
  1437 <span class="c">     * Updates the Slider UI in response to change in the max attribute.</span>
       
  1438 <span class="c">     *</span>
       
  1439 <span class="c">     * @method _afterMaxChange</span>
       
  1440 <span class="c">     * @param e {Event} maxChange custom event</span>
       
  1441 <span class="c">     * @protected</span>
       
  1442 <span class="c">     */</span>
       
  1443     <span class="nx">_afterMaxChange</span> <span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">e</span><span class="o">)</span> <span class="o">{</span>
       
  1444         <span class="k">this</span><span class="o">.</span><span class="nx">_refresh</span><span class="o">(</span><span class="nx">e</span><span class="o">);</span>
       
  1445     <span class="o">},</span>
       
  1446 
       
  1447     <span class="c">/**</span>
       
  1448 <span class="c">     * Updates the Slider UI in response to change in the railSize attribute.</span>
       
  1449 <span class="c">     *</span>
       
  1450 <span class="c">     * @method _afterRailSizeChange</span>
       
  1451 <span class="c">     * @param e {Event} railSizeChange custom event</span>
       
  1452 <span class="c">     * @protected</span>
       
  1453 <span class="c">     */</span>
       
  1454     <span class="nx">_afterRailSizeChange</span> <span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">e</span><span class="o">)</span> <span class="o">{</span>
       
  1455         <span class="k">this</span><span class="o">.</span><span class="nx">_refresh</span><span class="o">(</span><span class="nx">e</span><span class="o">);</span>
       
  1456     <span class="o">},</span>
       
  1457 
       
  1458     <span class="c">/**</span>
       
  1459 <span class="c">     * Locks or unlocks the DD instance in response to a change in the disabled</span>
       
  1460 <span class="c">     * attribute.</span>
       
  1461 <span class="c">     *</span>
       
  1462 <span class="c">     * @method _afterDisabledChange</span>
       
  1463 <span class="c">     * @param e {Event} disabledChange custom event</span>
       
  1464 <span class="c">     * @protected</span>
       
  1465 <span class="c">     */</span>
       
  1466     <span class="nx">_afterDisabledChange</span> <span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">e</span><span class="o">)</span> <span class="o">{</span>
       
  1467         <span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">_dd</span><span class="o">)</span> <span class="o">{</span>
       
  1468             <span class="k">this</span><span class="o">.</span><span class="nx">_dd</span><span class="o">.</span><span class="nx">set</span><span class="o">(</span><span class="s1">&#39;lock&#39;</span><span class="o">,</span><span class="nx">e</span><span class="o">.</span><span class="nx">newVal</span><span class="o">);</span>
       
  1469         <span class="o">}</span>
       
  1470     <span class="o">},</span>
       
  1471 
       
  1472     <span class="c">/**</span>
       
  1473 <span class="c">     * Common handler to call syncUI in response to change events that occurred</span>
       
  1474 <span class="c">     * after the Slider is rendered.</span>
       
  1475 <span class="c">     *</span>
       
  1476 <span class="c">     * @method _refresh</span>
       
  1477 <span class="c">     * @param e {Event} An attribute change event</span>
       
  1478 <span class="c">     * @protected</span>
       
  1479 <span class="c">     */</span>
       
  1480     <span class="nx">_refresh</span> <span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">e</span><span class="o">)</span> <span class="o">{</span>
       
  1481         <span class="k">if</span> <span class="o">(</span><span class="nx">e</span><span class="o">.</span><span class="nx">newVal</span> <span class="o">!==</span> <span class="nx">e</span><span class="o">.</span><span class="nx">prevVal</span> <span class="o">&amp;&amp;</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">RENDERED</span><span class="o">))</span> <span class="o">{</span>
       
  1482             <span class="k">this</span><span class="o">.</span><span class="nx">syncUI</span><span class="o">();</span>
       
  1483         <span class="o">}</span>
       
  1484     <span class="o">},</span>
       
  1485 
       
  1486     <span class="c">/**</span>
       
  1487 <span class="c">     * Used to determine if there is a current or pending request for the</span>
       
  1488 <span class="c">     * thumbImage resource.</span>
       
  1489 <span class="c">     *</span>
       
  1490 <span class="c">     * @method _isImageLoading</span>
       
  1491 <span class="c">     * @param img {Node} &lt;code&gt;img&lt;/code&gt; Node</span>
       
  1492 <span class="c">     * @return Boolean</span>
       
  1493 <span class="c">     * @protected</span>
       
  1494 <span class="c">     */</span>
       
  1495     <span class="nx">_isImageLoading</span> <span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">img</span><span class="o">)</span> <span class="o">{</span>
       
  1496         <span class="k">return</span> <span class="nx">img</span> <span class="o">&amp;&amp;</span> <span class="o">!</span><span class="nx">img</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">COMPLETE</span><span class="o">);</span>
       
  1497     <span class="o">},</span>
       
  1498 
       
  1499     <span class="c">/**</span>
       
  1500 <span class="c">     * Used to determine if the image resource loaded successfully or there was</span>
       
  1501 <span class="c">     * an error.</span>
       
  1502 <span class="c">     *</span>
       
  1503 <span class="c">     * NOTES:</span>
       
  1504 <span class="c">     * &lt;ul&gt;</span>
       
  1505 <span class="c">     *    &lt;li&gt;img load error fired xbrowser for image resources not yet resolved&lt;/li&gt;</span>
       
  1506 <span class="c">     *    &lt;li&gt;img.complete reports false in IE for images not yet loaded as well as images that failed to load&lt;/li&gt;</span>
       
  1507 <span class="c">     *    &lt;li&gt;img.complete true &amp;&amp; img.naturalWidth == 0 in FF and Safari indicate image failed to load&lt;/li&gt;</span>
       
  1508 <span class="c">     *    &lt;li&gt;img.complete &amp;&amp; img.width == 0 in Opera indicates image failed to load&lt;/li&gt;</span>
       
  1509 <span class="c">     * &lt;/ul&gt;</span>
       
  1510 <span class="c">     *</span>
       
  1511 <span class="c">     * @method _isImageLoaded</span>
       
  1512 <span class="c">     * @param img {Node} &lt;code&gt;img&lt;/code&gt; Node</span>
       
  1513 <span class="c">     * @return Boolean</span>
       
  1514 <span class="c">     * @protected</span>
       
  1515 <span class="c">     */</span>
       
  1516     <span class="nx">_isImageLoaded</span> <span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">img</span><span class="o">)</span> <span class="o">{</span>
       
  1517         <span class="k">if</span> <span class="o">(</span><span class="nx">img</span><span class="o">)</span> <span class="o">{</span>
       
  1518             <span class="k">var</span> <span class="nx">w</span> <span class="o">=</span> <span class="nx">img</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s1">&#39;naturalWidth&#39;</span><span class="o">);</span>
       
  1519             <span class="k">return</span> <span class="nx">img</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">COMPLETE</span><span class="o">)</span> <span class="o">&amp;&amp;</span> <span class="o">(!</span><span class="nx">isNumber</span><span class="o">(</span><span class="nx">w</span><span class="o">)</span> <span class="o">?</span> <span class="nx">img</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">WIDTH</span><span class="o">)</span> <span class="o">:</span> <span class="nx">w</span><span class="o">);</span>
       
  1520         <span class="o">}</span>
       
  1521 
       
  1522         <span class="k">return</span> <span class="kc">true</span><span class="o">;</span>
       
  1523     <span class="o">}</span>
       
  1524 
       
  1525 <span class="o">});</span>
       
  1526 
       
  1527 <span class="nx">Y</span><span class="o">.</span><span class="nx">Slider</span> <span class="o">=</span> <span class="nx">Slider</span><span class="o">;</span>
       
  1528 </pre></div>
       
  1529                     </div>
       
  1530 			</div>
       
  1531 		</div>
       
  1532 		<div class="yui-b">
       
  1533             <div class="nav">
       
  1534 
       
  1535                     <div id="moduleList" class="module">
       
  1536                         <h4>Modules</h4>
       
  1537                         <ul class="content">
       
  1538                                 <li class=""><a href="module_anim.html" title="anim">anim</a></li>
       
  1539                                 <li class=""><a href="module_attribute.html" title="attribute">attribute</a></li>
       
  1540                                 <li class=""><a href="module_base.html" title="base">base</a></li>
       
  1541                                 <li class=""><a href="module_cache.html" title="cache">cache</a></li>
       
  1542                                 <li class=""><a href="module_classnamemanager.html" title="classnamemanager">classnamemanager</a></li>
       
  1543                                 <li class=""><a href="module_collection.html" title="collection">collection</a></li>
       
  1544                                 <li class=""><a href="module_console.html" title="console">console</a></li>
       
  1545                                 <li class=""><a href="module_console-filters.html" title="console-filters">console-filters</a></li>
       
  1546                                 <li class=""><a href="module_cookie.html" title="cookie">cookie</a></li>
       
  1547                                 <li class=""><a href="module_dataschema.html" title="dataschema">dataschema</a></li>
       
  1548                                 <li class=""><a href="module_datasource.html" title="datasource">datasource</a></li>
       
  1549                                 <li class=""><a href="module_datatype.html" title="datatype">datatype</a></li>
       
  1550                                 <li class=""><a href="module_dd.html" title="dd">dd</a></li>
       
  1551                                 <li class=""><a href="module_dom.html" title="dom">dom</a></li>
       
  1552                                 <li class=""><a href="module_dump.html" title="dump">dump</a></li>
       
  1553                                 <li class=""><a href="module_event.html" title="event">event</a></li>
       
  1554                                 <li class=""><a href="module_event-custom.html" title="event-custom">event-custom</a></li>
       
  1555                                 <li class=""><a href="module_event-simulate.html" title="event-simulate">event-simulate</a></li>
       
  1556                                 <li class=""><a href="module_history.html" title="history">history</a></li>
       
  1557                                 <li class=""><a href="module_imageloader.html" title="imageloader">imageloader</a></li>
       
  1558                                 <li class=""><a href="module_io.html" title="io">io</a></li>
       
  1559                                 <li class=""><a href="module_json.html" title="json">json</a></li>
       
  1560                                 <li class=""><a href="module_node.html" title="node">node</a></li>
       
  1561                                 <li class=""><a href="module_node-focusmanager.html" title="node-focusmanager">node-focusmanager</a></li>
       
  1562                                 <li class=""><a href="module_node-menunav.html" title="node-menunav">node-menunav</a></li>
       
  1563                                 <li class=""><a href="module_oop.html" title="oop">oop</a></li>
       
  1564                                 <li class=""><a href="module_overlay.html" title="overlay">overlay</a></li>
       
  1565                                 <li class=""><a href="module_plugin.html" title="plugin">plugin</a></li>
       
  1566                                 <li class=""><a href="module_profiler.html" title="profiler">profiler</a></li>
       
  1567                                 <li class=""><a href="module_queue.html" title="queue">queue</a></li>
       
  1568                                 <li class="selected"><a href="module_slider.html" title="slider">slider</a></li>
       
  1569                                 <li class=""><a href="module_stylesheet.html" title="stylesheet">stylesheet</a></li>
       
  1570                                 <li class=""><a href="module_substitute.html" title="substitute">substitute</a></li>
       
  1571                                 <li class=""><a href="module_test.html" title="test">test</a></li>
       
  1572                                 <li class=""><a href="module_widget.html" title="widget">widget</a></li>
       
  1573                                 <li class=""><a href="module_widget-position.html" title="widget-position">widget-position</a></li>
       
  1574                                 <li class=""><a href="module_widget-position-ext.html" title="widget-position-ext">widget-position-ext</a></li>
       
  1575                                 <li class=""><a href="module_widget-stack.html" title="widget-stack">widget-stack</a></li>
       
  1576                                 <li class=""><a href="module_widget-stdmod.html" title="widget-stdmod">widget-stdmod</a></li>
       
  1577                                 <li class=""><a href="module_yui.html" title="yui">yui</a></li>
       
  1578                         </ul>
       
  1579                     </div>
       
  1580 
       
  1581                     <div id="classList" class="module">
       
  1582                         <h4>Classes</h4>
       
  1583                         <ul class="content">
       
  1584                                 <li class=""><a href="Slider.html" title="Slider">Slider</a></li>
       
  1585                         </ul>
       
  1586                     </div>
       
  1587 
       
  1588                     <div id="fileList" class="module">
       
  1589                         <h4>Files</h4>
       
  1590                         <ul class="content">        
       
  1591                                 <li class="selected"><a href="slider.js.html" title="slider.js">slider.js</a></li>
       
  1592                         </ul>
       
  1593                     </div>
       
  1594 
       
  1595 
       
  1596 
       
  1597 
       
  1598 
       
  1599             </div>
       
  1600 		</div>
       
  1601 	</div>
       
  1602 	<div id="ft">
       
  1603         <hr />
       
  1604         Copyright &copy; 2009 Yahoo! Inc. All rights reserved.
       
  1605 	</div>
       
  1606 </div>
       
  1607 <script type="text/javascript">
       
  1608     ALL_YUI_PROPS = [{"access": "protected", "host": "Slider", "name": "_afterDisabledChange", "url": "Slider.html#method__afterDisabledChange", "type": "method"}, {"access": "protected", "host": "Slider", "name": "_afterMaxChange", "url": "Slider.html#method__afterMaxChange", "type": "method"}, {"access": "protected", "host": "Slider", "name": "_afterMinChange", "url": "Slider.html#method__afterMinChange", "type": "method"}, {"access": "protected", "host": "Slider", "name": "_afterRailSizeChange", "url": "Slider.html#method__afterRailSizeChange", "type": "method"}, {"access": "protected", "host": "Slider", "name": "_afterThumbChange", "url": "Slider.html#method__afterThumbChange", "type": "method"}, {"access": "protected", "host": "Slider", "name": "_afterThumbImageChange", "url": "Slider.html#method__afterThumbImageChange", "type": "method"}, {"access": "protected", "host": "Slider", "name": "_afterValueChange", "url": "Slider.html#method__afterValueChange", "type": "method"}, {"access": "", "host": "Slider", "name": "axis", "url": "Slider.html#config_axis", "type": "config"}, {"access": "", "host": "Slider", "name": "axisChange", "url": "Slider.html#event_axisChange", "type": "event"}, {"access": "protected", "host": "Slider", "name": "_bindThumbDD", "url": "Slider.html#method__bindThumbDD", "type": "method"}, {"access": "protected", "host": "Slider", "name": "bindUI", "url": "Slider.html#method_bindUI", "type": "method"}, {"access": "protected", "host": "Slider", "name": "_convertValueToOffset", "url": "Slider.html#method__convertValueToOffset", "type": "method"}, {"access": "protected", "host": "Slider", "name": "_defPositionThumbFn", "url": "Slider.html#method__defPositionThumbFn", "type": "method"}, {"access": "protected", "host": "Slider", "name": "_defSyncFn", "url": "Slider.html#method__defSyncFn", "type": "method"}, {"access": "protected", "host": "Slider", "name": "_defUpdateValueFromDD", "url": "Slider.html#method__defUpdateValueFromDD", "type": "method"}, {"access": "protected", "host": "Slider", "name": "_disabled", "url": "Slider.html#property__disabled", "type": "property"}, {"access": "protected", "host": "Slider", "name": "_factor", "url": "Slider.html#property__factor", "type": "property"}, {"access": "", "host": "Slider", "name": "getValue", "url": "Slider.html#method_getValue", "type": "method"}, {"access": "protected", "host": "Slider", "name": "_handleRailMouseDown", "url": "Slider.html#method__handleRailMouseDown", "type": "method"}, {"access": "protected", "host": "Slider", "name": "_imageLoaded", "url": "Slider.html#method__imageLoaded", "type": "method"}, {"access": "protected", "host": "Slider", "name": "initializer", "url": "Slider.html#method_initializer", "type": "method"}, {"access": "protected", "host": "Slider", "name": "_initRail", "url": "Slider.html#method__initRail", "type": "method"}, {"access": "protected", "host": "Slider", "name": "_initRailDD", "url": "Slider.html#method__initRailDD", "type": "method"}, {"access": "protected", "host": "Slider", "name": "_initThumb", "url": "Slider.html#method__initThumb", "type": "method"}, {"access": "protected", "host": "Slider", "name": "_initThumbImage", "url": "Slider.html#method__initThumbImage", "type": "method"}, {"access": "protected", "host": "Slider", "name": "_isDisplayNone", "url": "Slider.html#method__isDisplayNone", "type": "method"}, {"access": "protected", "host": "Slider", "name": "_isImageLoaded", "url": "Slider.html#method__isImageLoaded", "type": "method"}, {"access": "protected", "host": "Slider", "name": "_isImageLoading", "url": "Slider.html#method__isImageLoading", "type": "method"}, {"access": "protected", "host": "Slider", "name": "_key", "url": "Slider.html#property__key", "type": "property"}, {"access": "", "host": "Slider", "name": "max", "url": "Slider.html#config_max", "type": "config"}, {"access": "", "host": "Slider", "name": "maxChange", "url": "Slider.html#event_maxChange", "type": "event"}, {"access": "", "host": "Slider", "name": "maxGutter", "url": "Slider.html#config_maxGutter", "type": "config"}, {"access": "", "host": "Slider", "name": "maxGutterChange", "url": "Slider.html#event_maxGutterChange", "type": "event"}, {"access": "", "host": "Slider", "name": "min", "url": "Slider.html#config_min", "type": "config"}, {"access": "", "host": "Slider", "name": "minChange", "url": "Slider.html#event_minChange", "type": "event"}, {"access": "", "host": "Slider", "name": "minGutter", "url": "Slider.html#config_minGutter", "type": "config"}, {"access": "", "host": "Slider", "name": "minGutterChange", "url": "Slider.html#event_minGutterChange", "type": "event"}, {"access": "protected", "host": "Slider", "name": "_onDDDrag", "url": "Slider.html#method__onDDDrag", "type": "method"}, {"access": "protected", "host": "Slider", "name": "_onDDEndDrag", "url": "Slider.html#method__onDDEndDrag", "type": "method"}, {"access": "protected", "host": "Slider", "name": "_onDDStartDrag", "url": "Slider.html#method__onDDStartDrag", "type": "method"}, {"access": "", "host": "Slider", "name": "positionThumb", "url": "Slider.html#event_positionThumb", "type": "event"}, {"access": "", "host": "Slider", "name": "rail", "url": "Slider.html#config_rail", "type": "config"}, {"access": "", "host": "Slider", "name": "railChange", "url": "Slider.html#event_railChange", "type": "event"}, {"access": "", "host": "Slider", "name": "railEnabled", "url": "Slider.html#config_railEnabled", "type": "config"}, {"access": "", "host": "Slider", "name": "railEnabledChange", "url": "Slider.html#event_railEnabledChange", "type": "event"}, {"access": "protected", "host": "Slider", "name": "_railSize", "url": "Slider.html#property__railSize", "type": "property"}, {"access": "", "host": "Slider", "name": "railSize", "url": "Slider.html#config_railSize", "type": "config"}, {"access": "", "host": "Slider", "name": "railSizeChange", "url": "Slider.html#event_railSizeChange", "type": "event"}, {"access": "protected", "host": "Slider", "name": "_ready", "url": "Slider.html#method__ready", "type": "method"}, {"access": "protected", "host": "Slider", "name": "_refresh", "url": "Slider.html#method__refresh", "type": "method"}, {"access": "protected", "host": "Slider", "name": "renderUI", "url": "Slider.html#method_renderUI", "type": "method"}, {"access": "protected", "host": "Slider", "name": "_resetDDCacheRegion", "url": "Slider.html#method__resetDDCacheRegion", "type": "method"}, {"access": "protected", "host": "Slider", "name": "_scheduleSync", "url": "Slider.html#method__scheduleSync", "type": "method"}, {"access": "protected", "host": "Slider", "name": "_setAxisFn", "url": "Slider.html#method__setAxisFn", "type": "method"}, {"access": "protected", "host": "Slider", "name": "_setDDGutter", "url": "Slider.html#method__setDDGutter", "type": "method"}, {"access": "protected", "host": "Slider", "name": "_setFactor", "url": "Slider.html#method__setFactor", "type": "method"}, {"access": "protected", "host": "Slider", "name": "_setRailFn", "url": "Slider.html#method__setRailFn", "type": "method"}, {"access": "protected", "host": "Slider", "name": "_setRailOffsetXY", "url": "Slider.html#method__setRailOffsetXY", "type": "method"}, {"access": "protected", "host": "Slider", "name": "_setThumbFn", "url": "Slider.html#method__setThumbFn", "type": "method"}, {"access": "protected", "host": "Slider", "name": "_setThumbImageFn", "url": "Slider.html#method__setThumbImageFn", "type": "method"}, {"access": "protected", "host": "Slider", "name": "_setThumbOffset", "url": "Slider.html#method__setThumbOffset", "type": "method"}, {"access": "", "host": "Slider", "name": "setValue", "url": "Slider.html#method_setValue", "type": "method"}, {"access": "protected", "host": "Slider", "name": "_setValueFn", "url": "Slider.html#method__setValueFn", "type": "method"}, {"access": "", "host": "Slider", "name": "slideEnd", "url": "Slider.html#event_slideEnd", "type": "event"}, {"access": "protected", "host": "Slider", "name": "Slider.ATTRS", "url": "Slider.html#property_Slider.ATTRS", "type": "property"}, {"access": "protected", "host": "Slider", "name": "Slider.AXIS_KEYS", "url": "Slider.html#property_Slider.AXIS_KEYS", "type": "property"}, {"access": "protected", "host": "Slider", "name": "Slider.HTML_PARSER", "url": "Slider.html#property_Slider.HTML_PARSER", "type": "property"}, {"access": "", "host": "Slider", "name": "Slider.NAME", "url": "Slider.html#property_Slider.NAME", "type": "property"}, {"access": "", "host": "Slider", "name": "slideStart", "url": "Slider.html#event_slideStart", "type": "event"}, {"access": "protected", "host": "Slider", "name": "_stall", "url": "Slider.html#property__stall", "type": "property"}, {"access": "protected", "host": "Slider", "name": "_stallDisabledChange", "url": "Slider.html#method__stallDisabledChange", "type": "method"}, {"access": "", "host": "Slider", "name": "sync", "url": "Slider.html#event_sync", "type": "event"}, {"access": "", "host": "Slider", "name": "syncUI", "url": "Slider.html#method_syncUI", "type": "method"}, {"access": "", "host": "Slider", "name": "thumb", "url": "Slider.html#config_thumb", "type": "config"}, {"access": "", "host": "Slider", "name": "thumbChange", "url": "Slider.html#event_thumbChange", "type": "event"}, {"access": "", "host": "Slider", "name": "thumbDrag", "url": "Slider.html#event_thumbDrag", "type": "event"}, {"access": "", "host": "Slider", "name": "thumbImage", "url": "Slider.html#config_thumbImage", "type": "config"}, {"access": "", "host": "Slider", "name": "thumbImageChange", "url": "Slider.html#event_thumbImageChange", "type": "event"}, {"access": "protected", "host": "Slider", "name": "_thumbOffset", "url": "Slider.html#property__thumbOffset", "type": "property"}, {"access": "protected", "host": "Slider", "name": "_thumbSize", "url": "Slider.html#property__thumbSize", "type": "property"}, {"access": "protected", "host": "Slider", "name": "_uiPositionThumb", "url": "Slider.html#method__uiPositionThumb", "type": "method"}, {"access": "protected", "host": "Slider", "name": "_uiSetRailSize", "url": "Slider.html#method__uiSetRailSize", "type": "method"}, {"access": "protected", "host": "Slider", "name": "_uiSetThumbSize", "url": "Slider.html#method__uiSetThumbSize", "type": "method"}, {"access": "protected", "host": "Slider", "name": "_validateNewAxis", "url": "Slider.html#method__validateNewAxis", "type": "method"}, {"access": "protected", "host": "Slider", "name": "_validateNewMax", "url": "Slider.html#method__validateNewMax", "type": "method"}, {"access": "protected", "host": "Slider", "name": "_validateNewMin", "url": "Slider.html#method__validateNewMin", "type": "method"}, {"access": "protected", "host": "Slider", "name": "_validateNewRail", "url": "Slider.html#method__validateNewRail", "type": "method"}, {"access": "protected", "host": "Slider", "name": "_validateNewRailSize", "url": "Slider.html#method__validateNewRailSize", "type": "method"}, {"access": "protected", "host": "Slider", "name": "_validateNewThumb", "url": "Slider.html#method__validateNewThumb", "type": "method"}, {"access": "protected", "host": "Slider", "name": "_validateNewThumbImage", "url": "Slider.html#method__validateNewThumbImage", "type": "method"}, {"access": "protected", "host": "Slider", "name": "_validateNewValue", "url": "Slider.html#method__validateNewValue", "type": "method"}, {"access": "", "host": "Slider", "name": "value", "url": "Slider.html#config_value", "type": "config"}, {"access": "", "host": "Slider", "name": "valueChange", "url": "Slider.html#event_valueChange", "type": "event"}];
       
  1609 </script>
       
  1610 </body>
       
  1611 </html>