src/cm/media/js/lib/yui/yui3.0.0/api/Widget-StdMod.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: widget-stdmod   Widget-StdMod.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>widget-stdmod&nbsp; <span class="subtitle">3.0.0</span></h3>
       
    20         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
       
    21             &gt; <a href="./module_widget-stdmod.html" title="widget-stdmod">widget-stdmod</a>
       
    22                 
       
    23                  &gt; Widget-StdMod.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"> * Provides standard module support for Widgets through an extension.</span>
       
    52 <span class="c"> * </span>
       
    53 <span class="c"> * @module widget-stdmod</span>
       
    54 <span class="c"> */</span>
       
    55     <span class="k">var</span> <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>
       
    56         <span class="nx">Node</span> <span class="o">=</span> <span class="nx">Y</span><span class="o">.</span><span class="nx">Node</span><span class="o">,</span>
       
    57         <span class="nx">NodeList</span> <span class="o">=</span> <span class="nx">Y</span><span class="o">.</span><span class="nx">NodeList</span><span class="o">,</span>
       
    58         <span class="nx">UA</span> <span class="o">=</span> <span class="nx">Y</span><span class="o">.</span><span class="nx">UA</span><span class="o">,</span>
       
    59         <span class="nx">Widget</span> <span class="o">=</span> <span class="nx">Y</span><span class="o">.</span><span class="nx">Widget</span><span class="o">,</span>
       
    60 
       
    61         <span class="nx">EMPTY</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span><span class="o">,</span>
       
    62         <span class="nx">HD</span> <span class="o">=</span> <span class="s2">&quot;hd&quot;</span><span class="o">,</span>
       
    63         <span class="nx">BD</span> <span class="o">=</span> <span class="s2">&quot;bd&quot;</span><span class="o">,</span>
       
    64         <span class="nx">FT</span> <span class="o">=</span> <span class="s2">&quot;ft&quot;</span><span class="o">,</span>
       
    65         <span class="nx">HEADER</span> <span class="o">=</span> <span class="s2">&quot;header&quot;</span><span class="o">,</span>
       
    66         <span class="nx">BODY</span> <span class="o">=</span> <span class="s2">&quot;body&quot;</span><span class="o">,</span>
       
    67         <span class="nx">FOOTER</span> <span class="o">=</span> <span class="s2">&quot;footer&quot;</span><span class="o">,</span>
       
    68         <span class="nx">FILL_HEIGHT</span> <span class="o">=</span> <span class="s2">&quot;fillHeight&quot;</span><span class="o">,</span>
       
    69         <span class="nx">STDMOD</span> <span class="o">=</span> <span class="s2">&quot;stdmod&quot;</span><span class="o">,</span>
       
    70 
       
    71         <span class="nx">PX</span> <span class="o">=</span> <span class="s2">&quot;px&quot;</span><span class="o">,</span>
       
    72         <span class="nx">NODE_SUFFIX</span> <span class="o">=</span> <span class="s2">&quot;Node&quot;</span><span class="o">,</span>
       
    73         <span class="nx">CONTENT_SUFFIX</span> <span class="o">=</span> <span class="s2">&quot;Content&quot;</span><span class="o">,</span>
       
    74         <span class="nx">INNER_HTML</span> <span class="o">=</span> <span class="s2">&quot;innerHTML&quot;</span><span class="o">,</span>
       
    75         <span class="nx">FIRST_CHILD</span> <span class="o">=</span> <span class="s2">&quot;firstChild&quot;</span><span class="o">,</span>
       
    76         <span class="nx">CHILD_NODES</span> <span class="o">=</span> <span class="s2">&quot;childNodes&quot;</span><span class="o">,</span>
       
    77         <span class="nx">CREATE_DOCUMENT_FRAGMENT</span> <span class="o">=</span> <span class="s2">&quot;createDocumentFragment&quot;</span><span class="o">,</span>
       
    78         <span class="nx">OWNER_DOCUMENT</span> <span class="o">=</span> <span class="s2">&quot;ownerDocument&quot;</span><span class="o">,</span>
       
    79 
       
    80         <span class="nx">CONTENT_BOX</span> <span class="o">=</span> <span class="s2">&quot;contentBox&quot;</span><span class="o">,</span>
       
    81         <span class="nx">BOUNDING_BOX</span> <span class="o">=</span> <span class="s2">&quot;boundingBox&quot;</span><span class="o">,</span>
       
    82 
       
    83         <span class="nx">HEIGHT</span> <span class="o">=</span> <span class="s2">&quot;height&quot;</span><span class="o">,</span>
       
    84         <span class="nx">OFFSET_HEIGHT</span> <span class="o">=</span> <span class="s2">&quot;offsetHeight&quot;</span><span class="o">,</span>
       
    85         <span class="nx">AUTO</span> <span class="o">=</span> <span class="s2">&quot;auto&quot;</span><span class="o">,</span>
       
    86 
       
    87         <span class="nx">HeaderChange</span> <span class="o">=</span> <span class="s2">&quot;headerContentChange&quot;</span><span class="o">,</span>
       
    88         <span class="nx">BodyChange</span> <span class="o">=</span> <span class="s2">&quot;bodyContentChange&quot;</span><span class="o">,</span>
       
    89         <span class="nx">FooterChange</span> <span class="o">=</span> <span class="s2">&quot;footerContentChange&quot;</span><span class="o">,</span>
       
    90         <span class="nx">FillHeightChange</span> <span class="o">=</span> <span class="s2">&quot;fillHeightChange&quot;</span><span class="o">,</span>
       
    91         <span class="nx">HeightChange</span> <span class="o">=</span> <span class="s2">&quot;HeightChange&quot;</span><span class="o">,</span>        
       
    92         <span class="nx">ContentUpdate</span> <span class="o">=</span> <span class="s2">&quot;contentUpdate&quot;</span><span class="o">,</span>
       
    93 
       
    94         <span class="nx">RENDERUI</span> <span class="o">=</span> <span class="s2">&quot;renderUI&quot;</span><span class="o">,</span>
       
    95         <span class="nx">BINDUI</span> <span class="o">=</span> <span class="s2">&quot;bindUI&quot;</span><span class="o">,</span>
       
    96         <span class="nx">SYNCUI</span> <span class="o">=</span> <span class="s2">&quot;syncUI&quot;</span><span class="o">,</span>
       
    97 
       
    98         <span class="nx">UI</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="nx">UI_SRC</span><span class="o">;</span>
       
    99 
       
   100     <span class="c">/**</span>
       
   101 <span class="c">     * Widget extension, which can be used to add Standard Module support to the </span>
       
   102 <span class="c">     * base Widget class, through the &lt;a href=&quot;Base.html#method_build&quot;&gt;Base.build&lt;/a&gt; </span>
       
   103 <span class="c">     * method.</span>
       
   104 <span class="c">     * &lt;p&gt;</span>
       
   105 <span class="c">     * The extension adds header, body and footer sections to the Widget&#39;s content box and </span>
       
   106 <span class="c">     * provides the corresponding methods and attributes to modify the contents of these sections.</span>
       
   107 <span class="c">     * &lt;/p&gt;</span>
       
   108 <span class="c">     * @class WidgetStdMod</span>
       
   109 <span class="c">     * @param {Object} The user configuration object</span>
       
   110 <span class="c">     */</span>
       
   111     <span class="k">function</span> <span class="nx">StdMod</span><span class="o">(</span><span class="nx">config</span><span class="o">)</span> <span class="o">{</span>
       
   112 
       
   113         <span class="k">this</span><span class="o">.</span><span class="nx">_stdModNode</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>
       
   114 
       
   115         <span class="nx">Y</span><span class="o">.</span><span class="nx">after</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">_renderUIStdMod</span><span class="o">,</span> <span class="k">this</span><span class="o">,</span> <span class="nx">RENDERUI</span><span class="o">);</span>
       
   116         <span class="nx">Y</span><span class="o">.</span><span class="nx">after</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">_bindUIStdMod</span><span class="o">,</span> <span class="k">this</span><span class="o">,</span> <span class="nx">BINDUI</span><span class="o">);</span>
       
   117         <span class="nx">Y</span><span class="o">.</span><span class="nx">after</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">_syncUIStdMod</span><span class="o">,</span> <span class="k">this</span><span class="o">,</span> <span class="nx">SYNCUI</span><span class="o">);</span>
       
   118     <span class="o">}</span>
       
   119 
       
   120     <span class="c">/**</span>
       
   121 <span class="c">     * Constant used to refer the the standard module header, in methods which expect a section specifier</span>
       
   122 <span class="c">     * </span>
       
   123 <span class="c">     * @property WidgetStdMod.HEADER</span>
       
   124 <span class="c">     * @static</span>
       
   125 <span class="c">     * @type String</span>
       
   126 <span class="c">     */</span>
       
   127     <span class="nx">StdMod</span><span class="o">.</span><span class="nx">HEADER</span> <span class="o">=</span> <span class="nx">HEADER</span><span class="o">;</span>
       
   128     <span class="c">/**</span>
       
   129 <span class="c">     * Constant used to refer the the standard module body, in methods which expect a section specifier</span>
       
   130 <span class="c">     * </span>
       
   131 <span class="c">     * @property WidgetStdMod.BODY</span>
       
   132 <span class="c">     * @static</span>
       
   133 <span class="c">     * @type String</span>
       
   134 <span class="c">     */</span>
       
   135     <span class="nx">StdMod</span><span class="o">.</span><span class="nx">BODY</span> <span class="o">=</span> <span class="nx">BODY</span><span class="o">;</span>
       
   136     <span class="c">/**</span>
       
   137 <span class="c">     * Constant used to refer the the standard module footer, in methods which expect a section specifier</span>
       
   138 <span class="c">     * </span>
       
   139 <span class="c">     * @property WidgetStdMod.FOOTER</span>
       
   140 <span class="c">     * @static</span>
       
   141 <span class="c">     * @type String</span>
       
   142 <span class="c">     */</span>
       
   143     <span class="nx">StdMod</span><span class="o">.</span><span class="nx">FOOTER</span> <span class="o">=</span> <span class="nx">FOOTER</span><span class="o">;</span>
       
   144 
       
   145     <span class="c">/**</span>
       
   146 <span class="c">     * Constant used to specify insertion position, when adding content to sections of the standard module in </span>
       
   147 <span class="c">     * methods which expect a &quot;where&quot; argument.</span>
       
   148 <span class="c">     * &lt;p&gt;</span>
       
   149 <span class="c">     * Inserts new content &lt;em&gt;before&lt;/em&gt; the sections existing content.</span>
       
   150 <span class="c">     * &lt;/p&gt;</span>
       
   151 <span class="c">     * @property WidgetStdMod.AFTER</span>
       
   152 <span class="c">     * @static</span>
       
   153 <span class="c">     * @type String</span>
       
   154 <span class="c">     */</span>
       
   155     <span class="nx">StdMod</span><span class="o">.</span><span class="nx">AFTER</span> <span class="o">=</span> <span class="s2">&quot;after&quot;</span><span class="o">;</span>
       
   156 
       
   157     <span class="c">/**</span>
       
   158 <span class="c">     * Constant used to specify insertion position, when adding content to sections of the standard module in</span>
       
   159 <span class="c">     * methods which expect a &quot;where&quot; argument.</span>
       
   160 <span class="c">     * &lt;p&gt;</span>
       
   161 <span class="c">     * Inserts new content &lt;em&gt;before&lt;/em&gt; the sections existing content.</span>
       
   162 <span class="c">     * &lt;/p&gt;</span>
       
   163 <span class="c">     * @property WidgetStdMod.BEFORE</span>
       
   164 <span class="c">     * @static</span>
       
   165 <span class="c">     * @type String</span>
       
   166 <span class="c">     */</span>
       
   167     <span class="nx">StdMod</span><span class="o">.</span><span class="nx">BEFORE</span> <span class="o">=</span> <span class="s2">&quot;before&quot;</span><span class="o">;</span>
       
   168     <span class="c">/**</span>
       
   169 <span class="c">     * Constant used to specify insertion position, when adding content to sections of the standard module in</span>
       
   170 <span class="c">     * methods which expect a &quot;where&quot; argument.</span>
       
   171 <span class="c">     * &lt;p&gt;</span>
       
   172 <span class="c">     * &lt;em&gt;Replaces&lt;/em&gt; the sections existing content, with new content.</span>
       
   173 <span class="c">     * &lt;/p&gt;</span>
       
   174 <span class="c">     * @property WidgetStdMod.REPLACE</span>
       
   175 <span class="c">     * @static</span>
       
   176 <span class="c">     * @type String</span>
       
   177 <span class="c">     */</span>
       
   178     <span class="nx">StdMod</span><span class="o">.</span><span class="nx">REPLACE</span> <span class="o">=</span> <span class="s2">&quot;replace&quot;</span><span class="o">;</span>
       
   179 
       
   180     <span class="k">var</span> <span class="nx">STD_HEADER</span> <span class="o">=</span> <span class="nx">StdMod</span><span class="o">.</span><span class="nx">HEADER</span><span class="o">,</span>
       
   181         <span class="nx">STD_BODY</span> <span class="o">=</span> <span class="nx">StdMod</span><span class="o">.</span><span class="nx">BODY</span><span class="o">,</span>
       
   182         <span class="nx">STD_FOOTER</span> <span class="o">=</span> <span class="nx">StdMod</span><span class="o">.</span><span class="nx">FOOTER</span><span class="o">,</span>
       
   183         <span class="nx">AFTER</span> <span class="o">=</span> <span class="nx">StdMod</span><span class="o">.</span><span class="nx">AFTER</span><span class="o">,</span>
       
   184         <span class="nx">BEFORE</span> <span class="o">=</span> <span class="nx">StdMod</span><span class="o">.</span><span class="nx">BEFORE</span><span class="o">;</span>
       
   185 
       
   186     <span class="c">/**</span>
       
   187 <span class="c">     * Static property used to define the default attribute </span>
       
   188 <span class="c">     * configuration introduced by WidgetStdMod.</span>
       
   189 <span class="c">     * </span>
       
   190 <span class="c">     * @property WidgetStdMod.ATTRS</span>
       
   191 <span class="c">     * @type Object</span>
       
   192 <span class="c">     * @static</span>
       
   193 <span class="c">     */</span>
       
   194     <span class="nx">StdMod</span><span class="o">.</span><span class="nx">ATTRS</span> <span class="o">=</span> <span class="o">{</span>
       
   195 
       
   196         <span class="c">/**</span>
       
   197 <span class="c">         * @attribute headerContent</span>
       
   198 <span class="c">         * @type {String | Node}</span>
       
   199 <span class="c">         * @default undefined</span>
       
   200 <span class="c">         * @description The content to be added to the header section. This will replace any existing content</span>
       
   201 <span class="c">         * in the header. If you want to append, or insert new content, use the &lt;a href=&quot;#method_setStdModContent&quot;&gt;setStdModContent&lt;/a&gt; method.</span>
       
   202 <span class="c">         */</span>
       
   203         <span class="nx">headerContent</span><span class="o">:</span> <span class="o">{</span>
       
   204             <span class="nx">value</span><span class="o">:</span><span class="kc">null</span>
       
   205         <span class="o">},</span>
       
   206 
       
   207         <span class="c">/**</span>
       
   208 <span class="c">         * @attribute footerContent</span>
       
   209 <span class="c">         * @type {String | Node}</span>
       
   210 <span class="c">         * @default undefined</span>
       
   211 <span class="c">         * @description The content to be added to the footer section. This will replace any existing content</span>
       
   212 <span class="c">         * in the footer. If you want to append, or insert new content, use the &lt;a href=&quot;#method_setStdModContent&quot;&gt;setStdModContent&lt;/a&gt; method.</span>
       
   213 <span class="c">         */</span>
       
   214         <span class="nx">footerContent</span><span class="o">:</span> <span class="o">{</span>
       
   215             <span class="nx">value</span><span class="o">:</span><span class="kc">null</span>
       
   216         <span class="o">},</span>
       
   217         
       
   218         <span class="c">/**</span>
       
   219 <span class="c">         * @attribute bodyContent</span>
       
   220 <span class="c">         * @type {String | Node}</span>
       
   221 <span class="c">         * @default undefined</span>
       
   222 <span class="c">         * @description The content to be added to the body section. This will replace any existing content</span>
       
   223 <span class="c">         * in the body. If you want to append, or insert new content, use the &lt;a href=&quot;#method_setStdModContent&quot;&gt;setStdModContent&lt;/a&gt; method.</span>
       
   224 <span class="c">         */</span>
       
   225         <span class="nx">bodyContent</span><span class="o">:</span> <span class="o">{</span>
       
   226             <span class="nx">value</span><span class="o">:</span><span class="kc">null</span>
       
   227         <span class="o">},</span>
       
   228         
       
   229         <span class="c">/**</span>
       
   230 <span class="c">         * @attribute fillHeight</span>
       
   231 <span class="c">         * @type {String}</span>
       
   232 <span class="c">         * @default WidgetStdMod.BODY</span>
       
   233 <span class="c">         * @description The section (WidgetStdMod.HEADER, WidgetStdMod.BODY or WidgetStdMod.FOOTER) which should be resized to fill the height of the standard module, when a </span>
       
   234 <span class="c">         * height is set on the Widget. If a height is not set on the widget, then all sections are sized based on </span>
       
   235 <span class="c">         * their content.</span>
       
   236 <span class="c">         */</span>
       
   237         <span class="nx">fillHeight</span><span class="o">:</span> <span class="o">{</span>
       
   238             <span class="nx">value</span><span class="o">:</span> <span class="nx">StdMod</span><span class="o">.</span><span class="nx">BODY</span><span class="o">,</span>
       
   239             <span class="nx">validator</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>
       
   240                  <span class="k">return</span> <span class="k">this</span><span class="o">.</span><span class="nx">_validateFillHeight</span><span class="o">(</span><span class="nx">val</span><span class="o">);</span>
       
   241             <span class="o">}</span>
       
   242         <span class="o">}</span>
       
   243     <span class="o">};</span>
       
   244 
       
   245     <span class="c">/**</span>
       
   246 <span class="c">     * The HTML parsing rules for the WidgetStdMod class.</span>
       
   247 <span class="c">     * </span>
       
   248 <span class="c">     * @property WidgetStdMod.HTML_PARSER</span>
       
   249 <span class="c">     * @static</span>
       
   250 <span class="c">     * @type Object</span>
       
   251 <span class="c">     */</span>
       
   252     <span class="nx">StdMod</span><span class="o">.</span><span class="nx">HTML_PARSER</span> <span class="o">=</span> <span class="o">{</span>
       
   253         <span class="nx">headerContent</span><span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">contentBox</span><span class="o">)</span> <span class="o">{</span>
       
   254             <span class="k">return</span> <span class="k">this</span><span class="o">.</span><span class="nx">_parseStdModHTML</span><span class="o">(</span><span class="nx">STD_HEADER</span><span class="o">);</span>
       
   255         <span class="o">},</span>
       
   256 
       
   257         <span class="nx">bodyContent</span><span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">contentBox</span><span class="o">)</span> <span class="o">{</span>
       
   258             <span class="k">return</span> <span class="k">this</span><span class="o">.</span><span class="nx">_parseStdModHTML</span><span class="o">(</span><span class="nx">STD_BODY</span><span class="o">);</span>
       
   259         <span class="o">},</span>
       
   260 
       
   261         <span class="nx">footerContent</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">contentBox</span><span class="o">)</span> <span class="o">{</span>
       
   262             <span class="k">return</span> <span class="k">this</span><span class="o">.</span><span class="nx">_parseStdModHTML</span><span class="o">(</span><span class="nx">STD_FOOTER</span><span class="o">);</span>
       
   263         <span class="o">}</span>
       
   264     <span class="o">};</span>
       
   265 
       
   266     <span class="c">/**</span>
       
   267 <span class="c">     * Static hash of default class names used for the header,</span>
       
   268 <span class="c">     * body and footer sections of the standard module, keyed by</span>
       
   269 <span class="c">     * the section identifier (WidgetStdMod.STD_HEADER, WidgetStdMod.STD_BODY, WidgetStdMod.STD_FOOTER)</span>
       
   270 <span class="c">     *</span>
       
   271 <span class="c">     * @property WidgetStdMod.SECTION_CLASS_NAMES</span>
       
   272 <span class="c">     * @static</span>
       
   273 <span class="c">     * @type Object</span>
       
   274 <span class="c">     */</span>
       
   275     <span class="nx">StdMod</span><span class="o">.</span><span class="nx">SECTION_CLASS_NAMES</span> <span class="o">=</span> <span class="o">{</span>
       
   276         <span class="nx">header</span><span class="o">:</span> <span class="nx">Widget</span><span class="o">.</span><span class="nx">getClassName</span><span class="o">(</span><span class="nx">HD</span><span class="o">),</span>
       
   277         <span class="nx">body</span><span class="o">:</span> <span class="nx">Widget</span><span class="o">.</span><span class="nx">getClassName</span><span class="o">(</span><span class="nx">BD</span><span class="o">),</span>
       
   278         <span class="nx">footer</span><span class="o">:</span> <span class="nx">Widget</span><span class="o">.</span><span class="nx">getClassName</span><span class="o">(</span><span class="nx">FT</span><span class="o">)</span>
       
   279     <span class="o">};</span>
       
   280 
       
   281     <span class="c">/**</span>
       
   282 <span class="c">     * The template HTML strings for each of the standard module sections. Section entries are keyed by the section constants,</span>
       
   283 <span class="c">     * WidgetStdMod.HEADER, WidgetStdMod.BODY, WidgetStdMod.FOOTER, and contain the HTML to be added for each section.</span>
       
   284 <span class="c">     * e.g.</span>
       
   285 <span class="c">     * &lt;pre&gt;</span>
       
   286 <span class="c">     *    {</span>
       
   287 <span class="c">     *       header : &#39;&amp;lt;div class=&quot;yui-widget-hd&quot;&amp;gt;&amp;lt;/div&amp;gt;&#39;,</span>
       
   288 <span class="c">     *       body : &#39;&amp;lt;div class=&quot;yui-widget-bd&quot;&amp;gt;&amp;lt;/div&amp;gt;&#39;,</span>
       
   289 <span class="c">     *       footer : &#39;&amp;lt;div class=&quot;yui-widget-ft&quot;&amp;gt;&amp;lt;/div&amp;gt;&#39;</span>
       
   290 <span class="c">     *    }</span>
       
   291 <span class="c">     * &lt;/pre&gt;</span>
       
   292 <span class="c">     * @property WidgetStdMod.TEMPLATES</span>
       
   293 <span class="c">     * @type Object</span>
       
   294 <span class="c">     * @static</span>
       
   295 <span class="c">     */</span>
       
   296     <span class="nx">StdMod</span><span class="o">.</span><span class="nx">TEMPLATES</span> <span class="o">=</span> <span class="o">{</span>
       
   297         <span class="nx">header</span> <span class="o">:</span> <span class="s1">&#39;&lt;div class=&quot;&#39;</span> <span class="o">+</span> <span class="nx">StdMod</span><span class="o">.</span><span class="nx">SECTION_CLASS_NAMES</span><span class="o">[</span><span class="nx">STD_HEADER</span><span class="o">]</span> <span class="o">+</span> <span class="s1">&#39;&quot;&gt;&lt;/div&gt;&#39;</span><span class="o">,</span>
       
   298         <span class="nx">body</span> <span class="o">:</span> <span class="s1">&#39;&lt;div class=&quot;&#39;</span> <span class="o">+</span> <span class="nx">StdMod</span><span class="o">.</span><span class="nx">SECTION_CLASS_NAMES</span><span class="o">[</span><span class="nx">STD_BODY</span><span class="o">]</span> <span class="o">+</span> <span class="s1">&#39;&quot;&gt;&lt;/div&gt;&#39;</span><span class="o">,</span>
       
   299         <span class="nx">footer</span> <span class="o">:</span> <span class="s1">&#39;&lt;div class=&quot;&#39;</span> <span class="o">+</span> <span class="nx">StdMod</span><span class="o">.</span><span class="nx">SECTION_CLASS_NAMES</span><span class="o">[</span><span class="nx">STD_FOOTER</span><span class="o">]</span> <span class="o">+</span> <span class="s1">&#39;&quot;&gt;&lt;/div&gt;&#39;</span>
       
   300     <span class="o">};</span>
       
   301 
       
   302     <span class="nx">StdMod</span><span class="o">.</span><span class="nx">prototype</span> <span class="o">=</span> <span class="o">{</span>
       
   303 
       
   304         <span class="c">/**</span>
       
   305 <span class="c">         * Synchronizes the UI to match the Widgets standard module state.</span>
       
   306 <span class="c">         * &lt;p&gt;</span>
       
   307 <span class="c">         * This method is invoked after syncUI is invoked for the Widget class</span>
       
   308 <span class="c">         * using YUI&#39;s aop infrastructure.</span>
       
   309 <span class="c">         * &lt;/p&gt;</span>
       
   310 <span class="c">         * @method _syncUIStdMod</span>
       
   311 <span class="c">         * @protected</span>
       
   312 <span class="c">         */</span>
       
   313         <span class="nx">_syncUIStdMod</span> <span class="o">:</span> <span class="k">function</span><span class="o">()</span> <span class="o">{</span>
       
   314             <span class="k">this</span><span class="o">.</span><span class="nx">_uiSetStdMod</span><span class="o">(</span><span class="nx">STD_HEADER</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">STD_HEADER</span> <span class="o">+</span> <span class="nx">CONTENT_SUFFIX</span><span class="o">));</span>
       
   315             <span class="k">this</span><span class="o">.</span><span class="nx">_uiSetStdMod</span><span class="o">(</span><span class="nx">STD_BODY</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">STD_BODY</span> <span class="o">+</span> <span class="nx">CONTENT_SUFFIX</span><span class="o">));</span>
       
   316             <span class="k">this</span><span class="o">.</span><span class="nx">_uiSetStdMod</span><span class="o">(</span><span class="nx">STD_FOOTER</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">STD_FOOTER</span> <span class="o">+</span> <span class="nx">CONTENT_SUFFIX</span><span class="o">));</span>
       
   317             <span class="k">this</span><span class="o">.</span><span class="nx">_uiSetFillHeight</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">FILL_HEIGHT</span><span class="o">));</span>
       
   318         <span class="o">},</span>
       
   319 
       
   320         <span class="c">/**</span>
       
   321 <span class="c">         * Creates/Initializes the DOM for standard module support.</span>
       
   322 <span class="c">         * &lt;p&gt;</span>
       
   323 <span class="c">         * This method is invoked after renderUI is invoked for the Widget class</span>
       
   324 <span class="c">         * using YUI&#39;s aop infrastructure.</span>
       
   325 <span class="c">         * &lt;/p&gt;</span>
       
   326 <span class="c">         * @method _renderUIStdMod</span>
       
   327 <span class="c">         * @protected</span>
       
   328 <span class="c">         */</span>
       
   329         <span class="nx">_renderUIStdMod</span> <span class="o">:</span> <span class="k">function</span><span class="o">()</span> <span class="o">{</span>
       
   330             <span class="k">this</span><span class="o">.</span><span class="nx">_stdModNode</span><span class="o">.</span><span class="nx">addClass</span><span class="o">(</span><span class="nx">Widget</span><span class="o">.</span><span class="nx">getClassName</span><span class="o">(</span><span class="nx">STDMOD</span><span class="o">));</span>
       
   331         <span class="o">},</span>
       
   332 
       
   333         <span class="c">/**</span>
       
   334 <span class="c">         * Binds event listeners responsible for updating the UI state in response to </span>
       
   335 <span class="c">         * Widget standard module related state changes.</span>
       
   336 <span class="c">         * &lt;p&gt;</span>
       
   337 <span class="c">         * This method is invoked after bindUI is invoked for the Widget class</span>
       
   338 <span class="c">         * using YUI&#39;s aop infrastructure.</span>
       
   339 <span class="c">         * &lt;/p&gt;</span>
       
   340 <span class="c">         * @method _bindUIStdMod</span>
       
   341 <span class="c">         * @protected</span>
       
   342 <span class="c">         */</span>
       
   343         <span class="nx">_bindUIStdMod</span> <span class="o">:</span> <span class="k">function</span><span class="o">()</span> <span class="o">{</span>
       
   344             <span class="k">this</span><span class="o">.</span><span class="nx">after</span><span class="o">(</span><span class="nx">HeaderChange</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">_afterHeaderChange</span><span class="o">);</span>
       
   345             <span class="k">this</span><span class="o">.</span><span class="nx">after</span><span class="o">(</span><span class="nx">BodyChange</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">_afterBodyChange</span><span class="o">);</span>
       
   346             <span class="k">this</span><span class="o">.</span><span class="nx">after</span><span class="o">(</span><span class="nx">FooterChange</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">_afterFooterChange</span><span class="o">);</span>
       
   347 
       
   348             <span class="k">this</span><span class="o">.</span><span class="nx">after</span><span class="o">(</span><span class="nx">FillHeightChange</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">_afterFillHeightChange</span><span class="o">);</span>
       
   349             <span class="k">this</span><span class="o">.</span><span class="nx">after</span><span class="o">(</span><span class="nx">HeightChange</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">_fillHeight</span><span class="o">);</span>            
       
   350             <span class="k">this</span><span class="o">.</span><span class="nx">after</span><span class="o">(</span><span class="nx">ContentUpdate</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">_fillHeight</span><span class="o">);</span>
       
   351         <span class="o">},</span>
       
   352 
       
   353         <span class="c">/**</span>
       
   354 <span class="c">         * Default attribute change listener for the headerContent attribute, responsible</span>
       
   355 <span class="c">         * for updating the UI, in response to attribute changes.</span>
       
   356 <span class="c">         *</span>
       
   357 <span class="c">         * @method _afterHeaderChange</span>
       
   358 <span class="c">         * @protected</span>
       
   359 <span class="c">         * @param {EventFacade} e The event facade for the attribute change</span>
       
   360 <span class="c">         */</span>
       
   361         <span class="nx">_afterHeaderChange</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>
       
   362             <span class="k">if</span> <span class="o">(</span><span class="nx">e</span><span class="o">.</span><span class="nx">src</span> <span class="o">!==</span> <span class="nx">UI</span><span class="o">)</span> <span class="o">{</span>
       
   363                 <span class="k">this</span><span class="o">.</span><span class="nx">_uiSetStdMod</span><span class="o">(</span><span class="nx">STD_HEADER</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">stdModPosition</span><span class="o">);</span>
       
   364             <span class="o">}</span>
       
   365         <span class="o">},</span>
       
   366 
       
   367         <span class="c">/**</span>
       
   368 <span class="c">         * Default attribute change listener for the bodyContent attribute, responsible</span>
       
   369 <span class="c">         * for updating the UI, in response to attribute changes.</span>
       
   370 <span class="c">         *</span>
       
   371 <span class="c">         * @method _afterBodyChange</span>
       
   372 <span class="c">         * @protected</span>
       
   373 <span class="c">         * @param {EventFacade} e The event facade for the attribute change</span>
       
   374 <span class="c">         */</span>
       
   375         <span class="nx">_afterBodyChange</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>
       
   376             <span class="k">if</span> <span class="o">(</span><span class="nx">e</span><span class="o">.</span><span class="nx">src</span> <span class="o">!==</span> <span class="nx">UI</span><span class="o">)</span> <span class="o">{</span>
       
   377                 <span class="k">this</span><span class="o">.</span><span class="nx">_uiSetStdMod</span><span class="o">(</span><span class="nx">STD_BODY</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">stdModPosition</span><span class="o">);</span>
       
   378             <span class="o">}</span>
       
   379         <span class="o">},</span>
       
   380 
       
   381         <span class="c">/**</span>
       
   382 <span class="c">         * Default attribute change listener for the footerContent attribute, responsible</span>
       
   383 <span class="c">         * for updating the UI, in response to attribute changes.</span>
       
   384 <span class="c">         *</span>
       
   385 <span class="c">         * @method _afterFooterChange</span>
       
   386 <span class="c">         * @protected</span>
       
   387 <span class="c">         * @param {EventFacade} e The event facade for the attribute change</span>
       
   388 <span class="c">         */</span>
       
   389         <span class="nx">_afterFooterChange</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>
       
   390             <span class="k">if</span> <span class="o">(</span><span class="nx">e</span><span class="o">.</span><span class="nx">src</span> <span class="o">!==</span> <span class="nx">UI</span><span class="o">)</span> <span class="o">{</span>
       
   391                 <span class="k">this</span><span class="o">.</span><span class="nx">_uiSetStdMod</span><span class="o">(</span><span class="nx">STD_FOOTER</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">stdModPosition</span><span class="o">);</span>
       
   392             <span class="o">}</span>
       
   393         <span class="o">},</span>
       
   394 
       
   395         <span class="c">/**</span>
       
   396 <span class="c">         * Default attribute change listener for the fillHeight attribute, responsible</span>
       
   397 <span class="c">         * for updating the UI, in response to attribute changes.</span>
       
   398 <span class="c">         * </span>
       
   399 <span class="c">         * @method _afterFillHeightChange</span>
       
   400 <span class="c">         * @protected</span>
       
   401 <span class="c">         * @param {EventFacade} e The event facade for the attribute change</span>
       
   402 <span class="c">         */</span>
       
   403         <span class="nx">_afterFillHeightChange</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>
       
   404             <span class="k">this</span><span class="o">.</span><span class="nx">_uiSetFillHeight</span><span class="o">(</span><span class="nx">e</span><span class="o">.</span><span class="nx">newVal</span><span class="o">);</span>
       
   405         <span class="o">},</span>
       
   406 
       
   407         <span class="c">/**</span>
       
   408 <span class="c">         * Default validator for the fillHeight attribute. Verifies that the </span>
       
   409 <span class="c">         * value set is a valid section specifier - one of WidgetStdMod.HEADER, WidgetStdMod.BODY or WidgetStdMod.FOOTER,</span>
       
   410 <span class="c">         * or a falsey value if fillHeight is to be disabled.</span>
       
   411 <span class="c">         *</span>
       
   412 <span class="c">         * @method _validateFillHeight</span>
       
   413 <span class="c">         * @protected</span>
       
   414 <span class="c">         * @param {String} val The section which should be setup to fill height, or false/null to disable fillHeight</span>
       
   415 <span class="c">         * @return true if valid, false if not</span>
       
   416 <span class="c">         */</span>
       
   417         <span class="nx">_validateFillHeight</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>
       
   418             <span class="k">return</span> <span class="o">!</span><span class="nx">val</span> <span class="o">||</span> <span class="nx">val</span> <span class="o">==</span> <span class="nx">StdMod</span><span class="o">.</span><span class="nx">BODY</span> <span class="o">||</span> <span class="nx">val</span> <span class="o">==</span> <span class="nx">StdMod</span><span class="o">.</span><span class="nx">HEADER</span> <span class="o">||</span> <span class="nx">val</span> <span class="o">==</span> <span class="nx">StdMod</span><span class="o">.</span><span class="nx">FOOTER</span><span class="o">;</span>    
       
   419         <span class="o">},</span>
       
   420 
       
   421         <span class="c">/**</span>
       
   422 <span class="c">         * Updates the rendered UI, to resize the provided section so that the standard module fills out </span>
       
   423 <span class="c">         * the specified widget height. Note: This method does not check whether or not a height is set </span>
       
   424 <span class="c">         * on the Widget.</span>
       
   425 <span class="c">         * </span>
       
   426 <span class="c">         * @method _uiSetFillHeight</span>
       
   427 <span class="c">         * @protected</span>
       
   428 <span class="c">         * @param {String} fillSection A valid section specifier - one of WidgetStdMod.HEADER, WidgetStdMod.BODY or WidgetStdMod.FOOTER</span>
       
   429 <span class="c">         */</span>
       
   430         <span class="nx">_uiSetFillHeight</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">fillSection</span><span class="o">)</span> <span class="o">{</span>
       
   431             <span class="k">var</span> <span class="nx">fillNode</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">getStdModNode</span><span class="o">(</span><span class="nx">fillSection</span><span class="o">);</span>
       
   432             <span class="k">var</span> <span class="nx">currNode</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">_currFillNode</span><span class="o">;</span>
       
   433 
       
   434             <span class="k">if</span> <span class="o">(</span><span class="nx">currNode</span> <span class="o">&amp;&amp;</span> <span class="nx">fillNode</span> <span class="o">!==</span> <span class="nx">currNode</span><span class="o">){</span>
       
   435                 <span class="nx">currNode</span><span class="o">.</span><span class="nx">setStyle</span><span class="o">(</span><span class="nx">HEIGHT</span><span class="o">,</span> <span class="nx">EMPTY</span><span class="o">);</span>
       
   436             <span class="o">}</span>
       
   437 
       
   438             <span class="k">if</span> <span class="o">(</span><span class="nx">fillNode</span><span class="o">)</span> <span class="o">{</span>
       
   439                 <span class="k">this</span><span class="o">.</span><span class="nx">_currFillNode</span> <span class="o">=</span> <span class="nx">fillNode</span><span class="o">;</span>
       
   440             <span class="o">}</span>
       
   441 
       
   442             <span class="k">this</span><span class="o">.</span><span class="nx">_fillHeight</span><span class="o">();</span>
       
   443         <span class="o">},</span>
       
   444 
       
   445         <span class="c">/**</span>
       
   446 <span class="c">         * Updates the rendered UI, to resize the current section specified by the fillHeight attribute, so</span>
       
   447 <span class="c">         * that the standard module fills out the Widget height. If a height has not been set on Widget,</span>
       
   448 <span class="c">         * the section is not resized (height is set to &quot;auto&quot;).</span>
       
   449 <span class="c">         * </span>
       
   450 <span class="c">         * @method _fillHeight</span>
       
   451 <span class="c">         * @private</span>
       
   452 <span class="c">         */</span>
       
   453         <span class="nx">_fillHeight</span> <span class="o">:</span> <span class="k">function</span><span class="o">()</span> <span class="o">{</span>
       
   454             <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">FILL_HEIGHT</span><span class="o">))</span> <span class="o">{</span>
       
   455                 <span class="k">var</span> <span class="nx">height</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">HEIGHT</span><span class="o">);</span>
       
   456                 <span class="k">if</span> <span class="o">(</span><span class="nx">height</span> <span class="o">!=</span> <span class="nx">EMPTY</span> <span class="o">&amp;&amp;</span> <span class="nx">height</span> <span class="o">!=</span> <span class="nx">AUTO</span><span class="o">)</span> <span class="o">{</span>
       
   457                     <span class="k">this</span><span class="o">.</span><span class="nx">fillHeight</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">_currFillNode</span><span class="o">);</span>    
       
   458                 <span class="o">}</span>
       
   459             <span class="o">}</span>
       
   460         <span class="o">},</span>
       
   461 
       
   462         <span class="c">/**</span>
       
   463 <span class="c">         * Updates the rendered UI, adding the provided content (either an HTML string, or node reference),</span>
       
   464 <span class="c">         * to the specified section. The content is either added before, after or replaces existing content</span>
       
   465 <span class="c">         * in the section, based on the value of the &lt;code&gt;where&lt;/code&gt; argument.</span>
       
   466 <span class="c">         * </span>
       
   467 <span class="c">         * @method _uiSetStdMod</span>
       
   468 <span class="c">         * @protected</span>
       
   469 <span class="c">         * </span>
       
   470 <span class="c">         * @param {String} section The section to be updated. Either WidgetStdMod.HEADER, WidgetStdMod.BODY or WidgetStdMod.FOOTER. </span>
       
   471 <span class="c">         * @param {String | Node} content The new content (either as an HTML string, or Node reference) to add to the section</span>
       
   472 <span class="c">         * @param {String} where Optional. Either WidgetStdMod.AFTER, WidgetStdMod.BEFORE or WidgetStdMod.REPLACE.</span>
       
   473 <span class="c">         * If not provided, the content will replace existing content in the section.</span>
       
   474 <span class="c">         */</span>
       
   475         <span class="nx">_uiSetStdMod</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">section</span><span class="o">,</span> <span class="nx">content</span><span class="o">,</span> <span class="nx">where</span><span class="o">)</span> <span class="o">{</span>
       
   476             <span class="k">if</span> <span class="o">(</span><span class="nx">content</span><span class="o">)</span> <span class="o">{</span>
       
   477                 <span class="k">var</span> <span class="nx">node</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">getStdModNode</span><span class="o">(</span><span class="nx">section</span><span class="o">)</span> <span class="o">||</span> <span class="k">this</span><span class="o">.</span><span class="nx">_renderStdMod</span><span class="o">(</span><span class="nx">section</span><span class="o">);</span>
       
   478                 <span class="k">if</span> <span class="o">(</span><span class="nx">content</span> <span class="k">instanceof</span> <span class="nx">Node</span> <span class="o">||</span> <span class="nx">content</span> <span class="k">instanceof</span> <span class="nx">NodeList</span><span class="o">)</span> <span class="o">{</span>
       
   479                     <span class="k">this</span><span class="o">.</span><span class="nx">_addNodeRef</span><span class="o">(</span><span class="nx">node</span><span class="o">,</span> <span class="nx">content</span><span class="o">,</span> <span class="nx">where</span><span class="o">);</span>
       
   480                 <span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
       
   481                     <span class="k">this</span><span class="o">.</span><span class="nx">_addNodeHTML</span><span class="o">(</span><span class="nx">node</span><span class="o">,</span> <span class="nx">content</span><span class="o">,</span> <span class="nx">where</span><span class="o">);</span>
       
   482                 <span class="o">}</span>
       
   483                 <span class="k">this</span><span class="o">.</span><span class="nx">set</span><span class="o">(</span><span class="nx">section</span> <span class="o">+</span> <span class="nx">CONTENT_SUFFIX</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">_getStdModContent</span><span class="o">(</span><span class="nx">section</span><span class="o">),</span> <span class="o">{</span><span class="nx">src</span><span class="o">:</span><span class="nx">UI</span><span class="o">});</span>
       
   484                 <span class="k">this</span><span class="o">.</span><span class="nx">fire</span><span class="o">(</span><span class="nx">ContentUpdate</span><span class="o">);</span>
       
   485             <span class="o">}</span>
       
   486         <span class="o">},</span>
       
   487 
       
   488         <span class="c">/**</span>
       
   489 <span class="c">         * Creates the DOM node for the given section, and inserts it into the correct location in the contentBox.</span>
       
   490 <span class="c">         *</span>
       
   491 <span class="c">         * @method _renderStdMod</span>
       
   492 <span class="c">         * @protected</span>
       
   493 <span class="c">         * @param {String} section The section to create/render. Either WidgetStdMod.HEADER, WidgetStdMod.BODY or WidgetStdMod.FOOTER.</span>
       
   494 <span class="c">         * @return {Node} A reference to the added section node</span>
       
   495 <span class="c">         */</span>
       
   496         <span class="nx">_renderStdMod</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">section</span><span class="o">)</span> <span class="o">{</span>
       
   497 
       
   498             <span class="k">var</span> <span class="nx">contentBox</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>
       
   499                 <span class="nx">sectionNode</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">_findStdModSection</span><span class="o">(</span><span class="nx">section</span><span class="o">);</span>
       
   500 
       
   501             <span class="k">if</span> <span class="o">(!</span><span class="nx">sectionNode</span><span class="o">)</span> <span class="o">{</span>
       
   502                 <span class="nx">sectionNode</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">_getStdModTemplate</span><span class="o">(</span><span class="nx">section</span><span class="o">);</span>
       
   503             <span class="o">}</span>
       
   504 
       
   505             <span class="k">this</span><span class="o">.</span><span class="nx">_insertStdModSection</span><span class="o">(</span><span class="nx">contentBox</span><span class="o">,</span> <span class="nx">section</span><span class="o">,</span> <span class="nx">sectionNode</span><span class="o">);</span>
       
   506 
       
   507             <span class="k">this</span><span class="o">[</span><span class="nx">section</span> <span class="o">+</span> <span class="nx">NODE_SUFFIX</span><span class="o">]</span> <span class="o">=</span> <span class="nx">sectionNode</span><span class="o">;</span>
       
   508             <span class="k">return</span> <span class="k">this</span><span class="o">[</span><span class="nx">section</span> <span class="o">+</span> <span class="nx">NODE_SUFFIX</span><span class="o">];</span>
       
   509         <span class="o">},</span>
       
   510 
       
   511         <span class="c">/**</span>
       
   512 <span class="c">         * Helper method to insert the Node for the given section into the correct location in the contentBox.</span>
       
   513 <span class="c">         *</span>
       
   514 <span class="c">         * @method _insertStdModSection</span>
       
   515 <span class="c">         * @private</span>
       
   516 <span class="c">         * @param {Node} contentBox A reference to the Widgets content box.</span>
       
   517 <span class="c">         * @param {String} section The section to create/render. Either WidgetStdMod.HEADER, WidgetStdMod.BODY or WidgetStdMod.FOOTER.</span>
       
   518 <span class="c">         * @param {Node} sectionNode The Node for the section.</span>
       
   519 <span class="c">         */</span>
       
   520         <span class="nx">_insertStdModSection</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">contentBox</span><span class="o">,</span> <span class="nx">section</span><span class="o">,</span> <span class="nx">sectionNode</span><span class="o">)</span> <span class="o">{</span>
       
   521             <span class="k">var</span> <span class="nx">fc</span> <span class="o">=</span> <span class="nx">contentBox</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">FIRST_CHILD</span><span class="o">);</span>
       
   522 
       
   523             <span class="k">if</span> <span class="o">(</span><span class="nx">section</span> <span class="o">===</span> <span class="nx">STD_FOOTER</span> <span class="o">||</span> <span class="o">!</span><span class="nx">fc</span><span class="o">)</span> <span class="o">{</span>
       
   524                 <span class="nx">contentBox</span><span class="o">.</span><span class="nx">appendChild</span><span class="o">(</span><span class="nx">sectionNode</span><span class="o">);</span>
       
   525             <span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
       
   526                 <span class="k">if</span> <span class="o">(</span><span class="nx">section</span> <span class="o">===</span> <span class="nx">STD_HEADER</span><span class="o">)</span> <span class="o">{</span>
       
   527                     <span class="nx">contentBox</span><span class="o">.</span><span class="nx">insertBefore</span><span class="o">(</span><span class="nx">sectionNode</span><span class="o">,</span> <span class="nx">fc</span><span class="o">);</span>
       
   528                 <span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
       
   529                     <span class="c">// BODY</span>
       
   530 <span class="c"></span>                    <span class="k">var</span> <span class="nx">footer</span> <span class="o">=</span> <span class="k">this</span><span class="o">[</span><span class="nx">STD_FOOTER</span> <span class="o">+</span> <span class="nx">NODE_SUFFIX</span><span class="o">];</span>
       
   531                     <span class="k">if</span> <span class="o">(</span><span class="nx">footer</span><span class="o">)</span> <span class="o">{</span>
       
   532                         <span class="nx">contentBox</span><span class="o">.</span><span class="nx">insertBefore</span><span class="o">(</span><span class="nx">sectionNode</span><span class="o">,</span> <span class="nx">footer</span><span class="o">);</span>
       
   533                     <span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
       
   534                         <span class="nx">contentBox</span><span class="o">.</span><span class="nx">appendChild</span><span class="o">(</span><span class="nx">sectionNode</span><span class="o">);</span>
       
   535                     <span class="o">}</span>
       
   536                 <span class="o">}</span>
       
   537             <span class="o">}</span>
       
   538         <span class="o">},</span>
       
   539 
       
   540         <span class="c">/**</span>
       
   541 <span class="c">         * Gets a new Node reference for the given standard module section, by cloning</span>
       
   542 <span class="c">         * the stored template node.</span>
       
   543 <span class="c">         *</span>
       
   544 <span class="c">         * @method _getStdModTemplate</span>
       
   545 <span class="c">         * @protected</span>
       
   546 <span class="c">         * @param {String} section The section to create a new node for. Either WidgetStdMod.HEADER, WidgetStdMod.BODY or WidgetStdMod.FOOTER.</span>
       
   547 <span class="c">         * @return {Node} The new Node instance for the section</span>
       
   548 <span class="c">         */</span>
       
   549         <span class="nx">_getStdModTemplate</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">section</span><span class="o">)</span> <span class="o">{</span>
       
   550             <span class="k">return</span> <span class="nx">Node</span><span class="o">.</span><span class="nx">create</span><span class="o">(</span><span class="nx">StdMod</span><span class="o">.</span><span class="nx">TEMPLATES</span><span class="o">[</span><span class="nx">section</span><span class="o">],</span> <span class="k">this</span><span class="o">.</span><span class="nx">_stdModNode</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">OWNER_DOCUMENT</span><span class="o">));</span>
       
   551         <span class="o">},</span>
       
   552 
       
   553         <span class="c">/**</span>
       
   554 <span class="c">         * Helper method to add the given HTML string to the node reference provided.</span>
       
   555 <span class="c">         * The HTML is added either before, after or replaces the existing node content </span>
       
   556 <span class="c">         * based on the value of the &lt;code&gt;where&lt;/code&gt; argument.</span>
       
   557 <span class="c">         *</span>
       
   558 <span class="c">         * @method _addNodeHTML</span>
       
   559 <span class="c">         * @private</span>
       
   560 <span class="c">         * </span>
       
   561 <span class="c">         * @param {Node} node The section Node to be updated.</span>
       
   562 <span class="c">         * @param {String} html The new content HTML string to be added to the section Node.</span>
       
   563 <span class="c">         * @param {String} where Optional. Either WidgetStdMod.AFTER, WidgetStdMod.BEFORE or WidgetStdMod.REPLACE.</span>
       
   564 <span class="c">         * If not provided, the content will replace Nodes existing content.</span>
       
   565 <span class="c">         */</span>
       
   566         <span class="nx">_addNodeHTML</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="nx">html</span><span class="o">,</span> <span class="nx">where</span><span class="o">)</span> <span class="o">{</span>
       
   567             <span class="k">if</span> <span class="o">(</span><span class="nx">where</span> <span class="o">==</span> <span class="nx">AFTER</span><span class="o">)</span> <span class="o">{</span>
       
   568                 <span class="nx">node</span><span class="o">.</span><span class="nx">set</span><span class="o">(</span><span class="nx">INNER_HTML</span><span class="o">,</span> <span class="nx">node</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">INNER_HTML</span><span class="o">)</span> <span class="o">+</span> <span class="nx">html</span><span class="o">);</span>
       
   569             <span class="o">}</span> <span class="k">else</span> <span class="k">if</span> <span class="o">(</span><span class="nx">where</span> <span class="o">==</span> <span class="nx">BEFORE</span><span class="o">)</span> <span class="o">{</span>
       
   570                 <span class="nx">node</span><span class="o">.</span><span class="nx">set</span><span class="o">(</span><span class="nx">INNER_HTML</span><span class="o">,</span> <span class="nx">html</span> <span class="o">+</span> <span class="nx">node</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">INNER_HTML</span><span class="o">));</span>
       
   571             <span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
       
   572                 <span class="nx">node</span><span class="o">.</span><span class="nx">set</span><span class="o">(</span><span class="nx">INNER_HTML</span><span class="o">,</span> <span class="nx">html</span><span class="o">);</span>
       
   573             <span class="o">}</span>
       
   574         <span class="o">},</span>
       
   575 
       
   576         <span class="c">/**</span>
       
   577 <span class="c">         * Helper method to add nodes, to another node.</span>
       
   578 <span class="c">         * The child node(s) are added either before, after or replaces the existing node content </span>
       
   579 <span class="c">         * based on the value of the &lt;code&gt;where&lt;/code&gt; argument.</span>
       
   580 <span class="c">         * </span>
       
   581 <span class="c">         * @method _addNodeRef</span>
       
   582 <span class="c">         * @private</span>
       
   583 <span class="c">         * </span>
       
   584 <span class="c">         * @param {Node} node The section Node to be updated.</span>
       
   585 <span class="c">         * @param {Node|NodeList} children The new content Node, or NodeList to be added to section Node provided.</span>
       
   586 <span class="c">         * @param {String} where Optional. Either WidgetStdMod.AFTER, WidgetStdMod.BEFORE or WidgetStdMod.REPLACE.</span>
       
   587 <span class="c">         * If not provided, the content will replace existing content in the Node.</span>
       
   588 <span class="c">         */</span>
       
   589         <span class="nx">_addNodeRef</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="nx">children</span><span class="o">,</span> <span class="nx">where</span><span class="o">)</span> <span class="o">{</span>
       
   590             <span class="k">var</span> <span class="nx">append</span> <span class="o">=</span> <span class="kc">true</span><span class="o">,</span> 
       
   591                 <span class="nx">i</span><span class="o">,</span> <span class="nx">s</span><span class="o">;</span>
       
   592             
       
   593             <span class="k">if</span> <span class="o">(</span><span class="nx">where</span> <span class="o">==</span> <span class="nx">BEFORE</span><span class="o">)</span> <span class="o">{</span>
       
   594                 <span class="k">var</span> <span class="nx">n</span> <span class="o">=</span> <span class="nx">node</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">FIRST_CHILD</span><span class="o">);</span>
       
   595                 <span class="k">if</span> <span class="o">(</span><span class="nx">n</span><span class="o">)</span> <span class="o">{</span>
       
   596                     <span class="k">if</span> <span class="o">(</span><span class="nx">children</span> <span class="k">instanceof</span> <span class="nx">NodeList</span><span class="o">)</span> <span class="o">{</span>
       
   597                         <span class="k">for</span> <span class="o">(</span><span class="nx">i</span> <span class="o">=</span> <span class="nx">children</span><span class="o">.</span><span class="nx">size</span><span class="o">()</span> <span class="o">-</span> <span class="m">1</span><span class="o">;</span> <span class="nx">i</span> <span class="o">&gt;=</span><span class="m">0</span><span class="o">;</span> <span class="o">--</span><span class="nx">i</span><span class="o">)</span> <span class="o">{</span>
       
   598                             <span class="nx">node</span><span class="o">.</span><span class="nx">insertBefore</span><span class="o">(</span><span class="nx">children</span><span class="o">.</span><span class="nx">item</span><span class="o">(</span><span class="nx">i</span><span class="o">),</span> <span class="nx">n</span><span class="o">);</span>
       
   599                         <span class="o">}</span>
       
   600                     <span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
       
   601                         <span class="nx">node</span><span class="o">.</span><span class="nx">insertBefore</span><span class="o">(</span><span class="nx">children</span><span class="o">,</span> <span class="nx">n</span><span class="o">);</span>
       
   602                     <span class="o">}</span>
       
   603                     <span class="nx">append</span> <span class="o">=</span> <span class="kc">false</span><span class="o">;</span>
       
   604                 <span class="o">}</span>
       
   605             <span class="o">}</span> <span class="k">else</span> <span class="k">if</span> <span class="o">(</span><span class="nx">where</span> <span class="o">!=</span> <span class="nx">AFTER</span><span class="o">)</span> <span class="o">{</span> <span class="c">// replace</span>
       
   606 <span class="c"></span>                <span class="nx">node</span><span class="o">.</span><span class="nx">set</span><span class="o">(</span><span class="nx">INNER_HTML</span><span class="o">,</span> <span class="nx">EMPTY</span><span class="o">);</span>
       
   607             <span class="o">}</span>
       
   608 
       
   609             <span class="k">if</span> <span class="o">(</span><span class="nx">append</span><span class="o">)</span> <span class="o">{</span>
       
   610                 <span class="k">if</span> <span class="o">(</span><span class="nx">children</span> <span class="k">instanceof</span> <span class="nx">NodeList</span><span class="o">)</span> <span class="o">{</span>
       
   611                     <span class="k">for</span> <span class="o">(</span><span class="nx">i</span> <span class="o">=</span> <span class="m">0</span><span class="o">,</span> <span class="nx">s</span> <span class="o">=</span> <span class="nx">children</span><span class="o">.</span><span class="nx">size</span><span class="o">();</span> <span class="nx">i</span> <span class="o">&lt;</span> <span class="nx">s</span><span class="o">;</span> <span class="o">++</span><span class="nx">i</span><span class="o">)</span> <span class="o">{</span>
       
   612                         <span class="nx">node</span><span class="o">.</span><span class="nx">appendChild</span><span class="o">(</span><span class="nx">children</span><span class="o">.</span><span class="nx">item</span><span class="o">(</span><span class="nx">i</span><span class="o">));</span>
       
   613                     <span class="o">}</span>
       
   614                 <span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
       
   615                     <span class="nx">node</span><span class="o">.</span><span class="nx">appendChild</span><span class="o">(</span><span class="nx">children</span><span class="o">);</span>
       
   616                 <span class="o">}</span>
       
   617             <span class="o">}</span>
       
   618         <span class="o">},</span>
       
   619 
       
   620         <span class="c">/**</span>
       
   621 <span class="c">         * Helper method to obtain the precise height of the node provided, including padding and border.</span>
       
   622 <span class="c">         * The height could be a sub-pixel value for certain browsers, such as Firefox 3.</span>
       
   623 <span class="c">         *</span>
       
   624 <span class="c">         * @method _getPreciseHeight</span>
       
   625 <span class="c">         * @private</span>
       
   626 <span class="c">         * @param {Node} node The node for which the precise height is required.</span>
       
   627 <span class="c">         * @return {Number} The height of the Node including borders and padding, possibly a float.</span>
       
   628 <span class="c">         */</span>
       
   629         <span class="nx">_getPreciseHeight</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>
       
   630             <span class="k">var</span> <span class="nx">height</span> <span class="o">=</span> <span class="o">(</span><span class="nx">node</span><span class="o">)</span> <span class="o">?</span> <span class="nx">node</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">OFFSET_HEIGHT</span><span class="o">)</span> <span class="o">:</span> <span class="m">0</span><span class="o">,</span>
       
   631                 <span class="nx">getBCR</span> <span class="o">=</span> <span class="s2">&quot;getBoundingClientRect&quot;</span><span class="o">;</span>
       
   632 
       
   633             <span class="k">if</span> <span class="o">(</span><span class="nx">node</span> <span class="o">&amp;&amp;</span> <span class="nx">node</span><span class="o">.</span><span class="nx">hasMethod</span><span class="o">(</span><span class="nx">getBCR</span><span class="o">))</span> <span class="o">{</span>
       
   634                 <span class="k">var</span> <span class="nx">preciseRegion</span> <span class="o">=</span> <span class="nx">node</span><span class="o">.</span><span class="nx">invoke</span><span class="o">(</span><span class="nx">getBCR</span><span class="o">);</span>
       
   635                 <span class="k">if</span> <span class="o">(</span><span class="nx">preciseRegion</span><span class="o">)</span> <span class="o">{</span>
       
   636                     <span class="nx">height</span> <span class="o">=</span> <span class="nx">preciseRegion</span><span class="o">.</span><span class="nx">bottom</span> <span class="o">-</span> <span class="nx">preciseRegion</span><span class="o">.</span><span class="nx">top</span><span class="o">;</span>
       
   637                 <span class="o">}</span>
       
   638             <span class="o">}</span>
       
   639 
       
   640             <span class="k">return</span> <span class="nx">height</span><span class="o">;</span>
       
   641         <span class="o">},</span>
       
   642 
       
   643         <span class="c">/**</span>
       
   644 <span class="c">         * Helper method to query the rendered contents of the contentBox to find the</span>
       
   645 <span class="c">         * node for the given section if it exists.</span>
       
   646 <span class="c">         * </span>
       
   647 <span class="c">         * @method _findStdModSection</span>
       
   648 <span class="c">         * @private</span>
       
   649 <span class="c">         * @param {String} section The section for which the render Node is to be found. Either WidgetStdMod.HEADER, WidgetStdMod.BODY or WidgetStdMod.FOOTER.</span>
       
   650 <span class="c">         * @return {Node} The rendered node for the given section, or null if not found.</span>
       
   651 <span class="c">         */</span>
       
   652         <span class="nx">_findStdModSection</span><span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">section</span><span class="o">)</span> <span class="o">{</span>
       
   653             <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">CONTENT_BOX</span><span class="o">).</span><span class="nx">query</span><span class="o">(</span><span class="s2">&quot;&gt; .&quot;</span> <span class="o">+</span> <span class="nx">StdMod</span><span class="o">.</span><span class="nx">SECTION_CLASS_NAMES</span><span class="o">[</span><span class="nx">section</span><span class="o">]);</span>
       
   654         <span class="o">},</span>
       
   655 
       
   656         <span class="c">/**</span>
       
   657 <span class="c">         * Utility method, used by WidgetStdMods HTML_PARSER implementation</span>
       
   658 <span class="c">         * to extract data for each section from markup.</span>
       
   659 <span class="c">         *</span>
       
   660 <span class="c">         * @method _parseStdModHTML</span>
       
   661 <span class="c">         * @private</span>
       
   662 <span class="c">         * @param {String} section</span>
       
   663 <span class="c">         * @return {String} Inner HTML string with the contents of the section</span>
       
   664 <span class="c">         */</span>
       
   665         <span class="nx">_parseStdModHTML</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">section</span><span class="o">)</span> <span class="o">{</span>
       
   666             <span class="k">var</span> <span class="nx">node</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">_findStdModSection</span><span class="o">(</span><span class="nx">section</span><span class="o">),</span>
       
   667                 <span class="nx">docFrag</span><span class="o">,</span> <span class="nx">children</span><span class="o">;</span>
       
   668 
       
   669             <span class="k">if</span> <span class="o">(</span><span class="nx">node</span><span class="o">)</span> <span class="o">{</span>
       
   670                 <span class="nx">docFrag</span> <span class="o">=</span> <span class="nx">node</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">OWNER_DOCUMENT</span><span class="o">).</span><span class="nx">invoke</span><span class="o">(</span><span class="nx">CREATE_DOCUMENT_FRAGMENT</span><span class="o">);</span>
       
   671                 <span class="nx">children</span> <span class="o">=</span> <span class="nx">node</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">CHILD_NODES</span><span class="o">);</span>
       
   672 
       
   673                 <span class="k">for</span> <span class="o">(</span><span class="k">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="nx">children</span><span class="o">.</span><span class="nx">size</span><span class="o">()</span> <span class="o">-</span> <span class="m">1</span><span class="o">;</span> <span class="nx">i</span> <span class="o">&gt;=</span> <span class="m">0</span><span class="o">;</span> <span class="nx">i</span><span class="o">--)</span> <span class="o">{</span>
       
   674                     <span class="k">var</span> <span class="nx">fc</span> <span class="o">=</span> <span class="nx">docFrag</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">FIRST_CHILD</span><span class="o">);</span>
       
   675                     <span class="k">if</span> <span class="o">(</span><span class="nx">fc</span><span class="o">)</span> <span class="o">{</span>
       
   676                         <span class="nx">docFrag</span><span class="o">.</span><span class="nx">insertBefore</span><span class="o">(</span><span class="nx">children</span><span class="o">.</span><span class="nx">item</span><span class="o">(</span><span class="nx">i</span><span class="o">),</span> <span class="nx">fc</span><span class="o">);</span>
       
   677                     <span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
       
   678                         <span class="nx">docFrag</span><span class="o">.</span><span class="nx">appendChild</span><span class="o">(</span><span class="nx">children</span><span class="o">.</span><span class="nx">item</span><span class="o">(</span><span class="nx">i</span><span class="o">));</span>
       
   679                     <span class="o">}</span>
       
   680                 <span class="o">}</span>
       
   681 
       
   682                 <span class="k">return</span> <span class="nx">docFrag</span><span class="o">;</span>
       
   683             <span class="o">}</span>
       
   684 
       
   685             <span class="k">return</span> <span class="kc">null</span><span class="o">;</span>
       
   686         <span class="o">},</span>
       
   687 
       
   688         <span class="c">/**</span>
       
   689 <span class="c">         * Retrieves the child nodes (content) of a standard module section</span>
       
   690 <span class="c">         * </span>
       
   691 <span class="c">         * @method _getStdModContent</span>
       
   692 <span class="c">         * @private</span>
       
   693 <span class="c">         * @param {String} section The standard module section whose child nodes are to be retrieved. Either WidgetStdMod.HEADER, WidgetStdMod.BODY or WidgetStdMod.FOOTER.</span>
       
   694 <span class="c">         * @return {Node} The child node collection of the standard module section.</span>
       
   695 <span class="c">         */</span>
       
   696         <span class="nx">_getStdModContent</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">section</span><span class="o">)</span> <span class="o">{</span>
       
   697             <span class="k">return</span> <span class="o">(</span><span class="k">this</span><span class="o">[</span><span class="nx">section</span> <span class="o">+</span> <span class="nx">NODE_SUFFIX</span><span class="o">])</span> <span class="o">?</span> <span class="k">this</span><span class="o">[</span><span class="nx">section</span> <span class="o">+</span> <span class="nx">NODE_SUFFIX</span><span class="o">].</span><span class="nx">get</span><span class="o">(</span><span class="nx">CHILD_NODES</span><span class="o">)</span> <span class="o">:</span> <span class="kc">null</span><span class="o">;</span>
       
   698         <span class="o">},</span>
       
   699 
       
   700         <span class="c">/**</span>
       
   701 <span class="c">         * Updates the body section of the standard module with the content provided (either an HTML string, or node reference).</span>
       
   702 <span class="c">         * &lt;p&gt;</span>
       
   703 <span class="c">         * This method can be used instead of the corresponding section content attribute if you&#39;d like to retain the current content of the section,</span>
       
   704 <span class="c">         * and insert content before or after it, by specifying the &lt;code&gt;where&lt;/code&gt; argument.</span>
       
   705 <span class="c">         * &lt;/p&gt;</span>
       
   706 <span class="c">         * @method setStdModContent</span>
       
   707 <span class="c">         * @param {String} section The standard module section whose content is to be updated. Either WidgetStdMod.HEADER, WidgetStdMod.BODY or WidgetStdMod.FOOTER.</span>
       
   708 <span class="c">         * @param {String | Node} content The content to be added, either an HTML string or a Node reference.</span>
       
   709 <span class="c">         * @param {String} where Optional. Either WidgetStdMod.AFTER, WidgetStdMod.BEFORE or WidgetStdMod.REPLACE.</span>
       
   710 <span class="c">         * If not provided, the content will replace existing content in the section.</span>
       
   711 <span class="c">         */</span>
       
   712         <span class="nx">setStdModContent</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">section</span><span class="o">,</span> <span class="nx">content</span><span class="o">,</span> <span class="nx">where</span><span class="o">)</span> <span class="o">{</span>
       
   713             <span class="k">this</span><span class="o">.</span><span class="nx">set</span><span class="o">(</span><span class="nx">section</span> <span class="o">+</span> <span class="nx">CONTENT_SUFFIX</span><span class="o">,</span> <span class="nx">content</span><span class="o">,</span> <span class="o">{</span><span class="nx">stdModPosition</span><span class="o">:</span><span class="nx">where</span><span class="o">});</span>
       
   714         <span class="o">},</span>
       
   715 
       
   716         <span class="c">/**</span>
       
   717 <span class="c">         * Returns the node reference for the given section. Note: The DOM is not queried for the node reference. The reference</span>
       
   718 <span class="c">         * stored by the widget instance is returned if set.</span>
       
   719 <span class="c">         * </span>
       
   720 <span class="c">         * @method getStdModNode</span>
       
   721 <span class="c">         * @param {String} section The section whose node reference is required. Either WidgetStdMod.HEADER, WidgetStdMod.BODY or WidgetStdMod.FOOTER.</span>
       
   722 <span class="c">         * @return {Node} The node reference for the section, or null if not set.</span>
       
   723 <span class="c">         */</span>
       
   724         <span class="nx">getStdModNode</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">section</span><span class="o">)</span> <span class="o">{</span>
       
   725             <span class="k">return</span> <span class="k">this</span><span class="o">[</span><span class="nx">section</span> <span class="o">+</span> <span class="nx">NODE_SUFFIX</span><span class="o">]</span> <span class="o">||</span> <span class="kc">null</span><span class="o">;</span>
       
   726         <span class="o">},</span>
       
   727 
       
   728         <span class="c">/**</span>
       
   729 <span class="c">         * Sets the height on the provided header, body or footer element to </span>
       
   730 <span class="c">         * fill out the height of the Widget. It determines the height of the </span>
       
   731 <span class="c">         * widgets bounding box, based on it&#39;s configured height value, and </span>
       
   732 <span class="c">         * sets the height of the provided section to fill out any </span>
       
   733 <span class="c">         * space remaining after the other standard module section heights </span>
       
   734 <span class="c">         * have been accounted for.</span>
       
   735 <span class="c">         * </span>
       
   736 <span class="c">         * &lt;p&gt;&lt;strong&gt;NOTE:&lt;/strong&gt; This method is not designed to work if an explicit </span>
       
   737 <span class="c">         * height has not been set on the Widget, since for an &quot;auto&quot; height Widget, </span>
       
   738 <span class="c">         * the heights of the header/body/footer will drive the height of the Widget.&lt;/p&gt;</span>
       
   739 <span class="c">         *</span>
       
   740 <span class="c">         * @method fillHeight</span>
       
   741 <span class="c">         * @param {Node} node The node which should be resized to fill out the height</span>
       
   742 <span class="c">         * of the Widget bounding box. Should be a standard module section node which belongs</span>
       
   743 <span class="c">         * to the widget.</span>
       
   744 <span class="c">         */</span>
       
   745         <span class="nx">fillHeight</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>
       
   746             <span class="k">if</span> <span class="o">(</span><span class="nx">node</span><span class="o">)</span> <span class="o">{</span>
       
   747                 <span class="k">var</span> <span class="nx">boundingBox</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">BOUNDING_BOX</span><span class="o">),</span>
       
   748                     <span class="nx">stdModNodes</span> <span class="o">=</span> <span class="o">[</span><span class="k">this</span><span class="o">.</span><span class="nx">headerNode</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">bodyNode</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">footerNode</span><span class="o">],</span>
       
   749                     <span class="nx">stdModNode</span><span class="o">,</span>
       
   750                     <span class="nx">total</span> <span class="o">=</span> <span class="m">0</span><span class="o">,</span>
       
   751                     <span class="nx">filled</span> <span class="o">=</span> <span class="m">0</span><span class="o">,</span>
       
   752                     <span class="nx">remaining</span> <span class="o">=</span> <span class="m">0</span><span class="o">,</span>
       
   753                     <span class="nx">validNode</span> <span class="o">=</span> <span class="kc">false</span><span class="o">;</span>
       
   754 
       
   755                 <span class="k">for</span> <span class="o">(</span><span class="k">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="m">0</span><span class="o">,</span> <span class="nx">l</span> <span class="o">=</span> <span class="nx">stdModNodes</span><span class="o">.</span><span class="nx">length</span><span class="o">;</span> <span class="nx">i</span> <span class="o">&lt;</span> <span class="nx">l</span><span class="o">;</span> <span class="nx">i</span><span class="o">++)</span> <span class="o">{</span>
       
   756                     <span class="nx">stdModNode</span> <span class="o">=</span> <span class="nx">stdModNodes</span><span class="o">[</span><span class="nx">i</span><span class="o">];</span>
       
   757                     <span class="k">if</span> <span class="o">(</span><span class="nx">stdModNode</span><span class="o">)</span> <span class="o">{</span>
       
   758                         <span class="k">if</span> <span class="o">(</span><span class="nx">stdModNode</span> <span class="o">!==</span> <span class="nx">node</span><span class="o">)</span> <span class="o">{</span>
       
   759                             <span class="nx">filled</span> <span class="o">+=</span> <span class="k">this</span><span class="o">.</span><span class="nx">_getPreciseHeight</span><span class="o">(</span><span class="nx">stdModNode</span><span class="o">);</span>
       
   760                         <span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
       
   761                             <span class="nx">validNode</span> <span class="o">=</span> <span class="kc">true</span><span class="o">;</span>
       
   762                         <span class="o">}</span>
       
   763                     <span class="o">}</span>
       
   764                 <span class="o">}</span>
       
   765 
       
   766                 <span class="k">if</span> <span class="o">(</span><span class="nx">validNode</span><span class="o">)</span> <span class="o">{</span>
       
   767                     <span class="k">if</span> <span class="o">(</span><span class="nx">UA</span><span class="o">.</span><span class="nx">ie</span> <span class="o">||</span> <span class="nx">UA</span><span class="o">.</span><span class="nx">opera</span><span class="o">)</span> <span class="o">{</span>
       
   768                         <span class="c">// Need to set height to 0, to allow height to be reduced</span>
       
   769 <span class="c"></span>                        <span class="nx">node</span><span class="o">.</span><span class="nx">setStyle</span><span class="o">(</span><span class="nx">HEIGHT</span><span class="o">,</span> <span class="m">0</span> <span class="o">+</span> <span class="nx">PX</span><span class="o">);</span>
       
   770                     <span class="o">}</span>
       
   771 
       
   772                     <span class="nx">total</span> <span class="o">=</span> <span class="nb">parseInt</span><span class="o">(</span><span class="nx">boundingBox</span><span class="o">.</span><span class="nx">getComputedStyle</span><span class="o">(</span><span class="nx">HEIGHT</span><span class="o">),</span> <span class="m">10</span><span class="o">);</span>
       
   773                     <span class="k">if</span> <span class="o">(</span><span class="nx">L</span><span class="o">.</span><span class="nx">isNumber</span><span class="o">(</span><span class="nx">total</span><span class="o">))</span> <span class="o">{</span>
       
   774                         <span class="nx">remaining</span> <span class="o">=</span> <span class="nx">total</span> <span class="o">-</span> <span class="nx">filled</span><span class="o">;</span>
       
   775 
       
   776                         <span class="k">if</span> <span class="o">(</span><span class="nx">remaining</span> <span class="o">&gt;=</span> <span class="m">0</span><span class="o">)</span> <span class="o">{</span>
       
   777                             <span class="nx">node</span><span class="o">.</span><span class="nx">setStyle</span><span class="o">(</span><span class="nx">HEIGHT</span><span class="o">,</span> <span class="nx">remaining</span> <span class="o">+</span> <span class="nx">PX</span><span class="o">);</span>
       
   778                         <span class="o">}</span>
       
   779 
       
   780                         <span class="c">// Re-adjust height if required, to account for el padding and border</span>
       
   781 <span class="c"></span>                        <span class="k">var</span> <span class="nx">offsetHeight</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><span class="nx">get</span><span class="o">(</span><span class="nx">OFFSET_HEIGHT</span><span class="o">);</span> 
       
   782                         <span class="k">if</span> <span class="o">(</span><span class="nx">offsetHeight</span> <span class="o">!=</span> <span class="nx">total</span><span class="o">)</span> <span class="o">{</span>
       
   783                             <span class="nx">remaining</span> <span class="o">=</span> <span class="nx">remaining</span> <span class="o">-</span> <span class="o">(</span><span class="nx">offsetHeight</span> <span class="o">-</span> <span class="nx">total</span><span class="o">);</span>
       
   784                             <span class="nx">node</span><span class="o">.</span><span class="nx">setStyle</span><span class="o">(</span><span class="nx">HEIGHT</span><span class="o">,</span> <span class="nx">remaining</span> <span class="o">+</span> <span class="nx">PX</span><span class="o">);</span>
       
   785                         <span class="o">}</span>
       
   786                     <span class="o">}</span>
       
   787                 <span class="o">}</span>
       
   788             <span class="o">}</span>
       
   789         <span class="o">}</span>
       
   790     <span class="o">};</span>
       
   791 
       
   792     <span class="nx">Y</span><span class="o">.</span><span class="nx">WidgetStdMod</span> <span class="o">=</span> <span class="nx">StdMod</span><span class="o">;</span>
       
   793 </pre></div>
       
   794 
       
   795                     </div>
       
   796 			</div>
       
   797 		</div>
       
   798 		<div class="yui-b">
       
   799             <div class="nav">
       
   800 
       
   801                     <div id="moduleList" class="module">
       
   802                         <h4>Modules</h4>
       
   803                         <ul class="content">
       
   804                                 <li class=""><a href="module_anim.html" title="anim">anim</a></li>
       
   805                                 <li class=""><a href="module_async-queue.html" title="async-queue">async-queue</a></li>
       
   806                                 <li class=""><a href="module_attribute.html" title="attribute">attribute</a></li>
       
   807                                 <li class=""><a href="module_base.html" title="base">base</a></li>
       
   808                                 <li class=""><a href="module_cache.html" title="cache">cache</a></li>
       
   809                                 <li class=""><a href="module_classnamemanager.html" title="classnamemanager">classnamemanager</a></li>
       
   810                                 <li class=""><a href="module_collection.html" title="collection">collection</a></li>
       
   811                                 <li class=""><a href="module_console.html" title="console">console</a></li>
       
   812                                 <li class=""><a href="module_console-filters.html" title="console-filters">console-filters</a></li>
       
   813                                 <li class=""><a href="module_cookie.html" title="cookie">cookie</a></li>
       
   814                                 <li class=""><a href="module_dataschema.html" title="dataschema">dataschema</a></li>
       
   815                                 <li class=""><a href="module_datasource.html" title="datasource">datasource</a></li>
       
   816                                 <li class=""><a href="module_datatype.html" title="datatype">datatype</a></li>
       
   817                                 <li class=""><a href="module_dd.html" title="dd">dd</a></li>
       
   818                                 <li class=""><a href="module_dom.html" title="dom">dom</a></li>
       
   819                                 <li class=""><a href="module_dump.html" title="dump">dump</a></li>
       
   820                                 <li class=""><a href="module_event.html" title="event">event</a></li>
       
   821                                 <li class=""><a href="module_event-custom.html" title="event-custom">event-custom</a></li>
       
   822                                 <li class=""><a href="module_event-simulate.html" title="event-simulate">event-simulate</a></li>
       
   823                                 <li class=""><a href="module_history.html" title="history">history</a></li>
       
   824                                 <li class=""><a href="module_imageloader.html" title="imageloader">imageloader</a></li>
       
   825                                 <li class=""><a href="module_io.html" title="io">io</a></li>
       
   826                                 <li class=""><a href="module_json.html" title="json">json</a></li>
       
   827                                 <li class=""><a href="module_node.html" title="node">node</a></li>
       
   828                                 <li class=""><a href="module_node-focusmanager.html" title="node-focusmanager">node-focusmanager</a></li>
       
   829                                 <li class=""><a href="module_node-menunav.html" title="node-menunav">node-menunav</a></li>
       
   830                                 <li class=""><a href="module_oop.html" title="oop">oop</a></li>
       
   831                                 <li class=""><a href="module_overlay.html" title="overlay">overlay</a></li>
       
   832                                 <li class=""><a href="module_plugin.html" title="plugin">plugin</a></li>
       
   833                                 <li class=""><a href="module_profiler.html" title="profiler">profiler</a></li>
       
   834                                 <li class=""><a href="module_queue-promote.html" title="queue-promote">queue-promote</a></li>
       
   835                                 <li class=""><a href="module_slider.html" title="slider">slider</a></li>
       
   836                                 <li class=""><a href="module_stylesheet.html" title="stylesheet">stylesheet</a></li>
       
   837                                 <li class=""><a href="module_substitute.html" title="substitute">substitute</a></li>
       
   838                                 <li class=""><a href="module_test.html" title="test">test</a></li>
       
   839                                 <li class=""><a href="module_widget.html" title="widget">widget</a></li>
       
   840                                 <li class=""><a href="module_widget-position.html" title="widget-position">widget-position</a></li>
       
   841                                 <li class=""><a href="module_widget-position-ext.html" title="widget-position-ext">widget-position-ext</a></li>
       
   842                                 <li class=""><a href="module_widget-stack.html" title="widget-stack">widget-stack</a></li>
       
   843                                 <li class="selected"><a href="module_widget-stdmod.html" title="widget-stdmod">widget-stdmod</a></li>
       
   844                                 <li class=""><a href="module_yui.html" title="yui">yui</a></li>
       
   845                         </ul>
       
   846                     </div>
       
   847 
       
   848                     <div id="classList" class="module">
       
   849                         <h4>Classes</h4>
       
   850                         <ul class="content">
       
   851                                 <li class=""><a href="WidgetStdMod.html" title="WidgetStdMod">WidgetStdMod</a></li>
       
   852                         </ul>
       
   853                     </div>
       
   854 
       
   855                     <div id="fileList" class="module">
       
   856                         <h4>Files</h4>
       
   857                         <ul class="content">        
       
   858                                 <li class="selected"><a href="Widget-StdMod.js.html" title="Widget-StdMod.js">Widget-StdMod.js</a></li>
       
   859                         </ul>
       
   860                     </div>
       
   861 
       
   862 
       
   863 
       
   864 
       
   865 
       
   866             </div>
       
   867 		</div>
       
   868 	</div>
       
   869 	<div id="ft">
       
   870         <hr />
       
   871         Copyright &copy; 2009 Yahoo! Inc. All rights reserved.
       
   872 	</div>
       
   873 </div>
       
   874 <script type="text/javascript">
       
   875     ALL_YUI_PROPS = [{"access": "private", "host": "WidgetStdMod", "name": "_addNodeHTML", "url": "WidgetStdMod.html#method__addNodeHTML", "type": "method"}, {"access": "private", "host": "WidgetStdMod", "name": "_addNodeRef", "url": "WidgetStdMod.html#method__addNodeRef", "type": "method"}, {"access": "protected", "host": "WidgetStdMod", "name": "_afterBodyChange", "url": "WidgetStdMod.html#method__afterBodyChange", "type": "method"}, {"access": "protected", "host": "WidgetStdMod", "name": "_afterFillHeightChange", "url": "WidgetStdMod.html#method__afterFillHeightChange", "type": "method"}, {"access": "protected", "host": "WidgetStdMod", "name": "_afterFooterChange", "url": "WidgetStdMod.html#method__afterFooterChange", "type": "method"}, {"access": "protected", "host": "WidgetStdMod", "name": "_afterHeaderChange", "url": "WidgetStdMod.html#method__afterHeaderChange", "type": "method"}, {"access": "protected", "host": "WidgetStdMod", "name": "_bindUIStdMod", "url": "WidgetStdMod.html#method__bindUIStdMod", "type": "method"}, {"access": "", "host": "WidgetStdMod", "name": "bodyContent", "url": "WidgetStdMod.html#config_bodyContent", "type": "config"}, {"access": "", "host": "WidgetStdMod", "name": "bodyContentChange", "url": "WidgetStdMod.html#event_bodyContentChange", "type": "event"}, {"access": "private", "host": "WidgetStdMod", "name": "_fillHeight", "url": "WidgetStdMod.html#method__fillHeight", "type": "method"}, {"access": "", "host": "WidgetStdMod", "name": "fillHeight", "url": "WidgetStdMod.html#method_fillHeight", "type": "method"}, {"access": "", "host": "WidgetStdMod", "name": "fillHeight", "url": "WidgetStdMod.html#config_fillHeight", "type": "config"}, {"access": "", "host": "WidgetStdMod", "name": "fillHeightChange", "url": "WidgetStdMod.html#event_fillHeightChange", "type": "event"}, {"access": "private", "host": "WidgetStdMod", "name": "_findStdModSection", "url": "WidgetStdMod.html#method__findStdModSection", "type": "method"}, {"access": "", "host": "WidgetStdMod", "name": "footerContent", "url": "WidgetStdMod.html#config_footerContent", "type": "config"}, {"access": "", "host": "WidgetStdMod", "name": "footerContentChange", "url": "WidgetStdMod.html#event_footerContentChange", "type": "event"}, {"access": "private", "host": "WidgetStdMod", "name": "_getPreciseHeight", "url": "WidgetStdMod.html#method__getPreciseHeight", "type": "method"}, {"access": "private", "host": "WidgetStdMod", "name": "_getStdModContent", "url": "WidgetStdMod.html#method__getStdModContent", "type": "method"}, {"access": "", "host": "WidgetStdMod", "name": "getStdModNode", "url": "WidgetStdMod.html#method_getStdModNode", "type": "method"}, {"access": "protected", "host": "WidgetStdMod", "name": "_getStdModTemplate", "url": "WidgetStdMod.html#method__getStdModTemplate", "type": "method"}, {"access": "", "host": "WidgetStdMod", "name": "headerContent", "url": "WidgetStdMod.html#config_headerContent", "type": "config"}, {"access": "", "host": "WidgetStdMod", "name": "headerContentChange", "url": "WidgetStdMod.html#event_headerContentChange", "type": "event"}, {"access": "private", "host": "WidgetStdMod", "name": "_insertStdModSection", "url": "WidgetStdMod.html#method__insertStdModSection", "type": "method"}, {"access": "private", "host": "WidgetStdMod", "name": "_parseStdModHTML", "url": "WidgetStdMod.html#method__parseStdModHTML", "type": "method"}, {"access": "protected", "host": "WidgetStdMod", "name": "_renderStdMod", "url": "WidgetStdMod.html#method__renderStdMod", "type": "method"}, {"access": "protected", "host": "WidgetStdMod", "name": "_renderUIStdMod", "url": "WidgetStdMod.html#method__renderUIStdMod", "type": "method"}, {"access": "", "host": "WidgetStdMod", "name": "setStdModContent", "url": "WidgetStdMod.html#method_setStdModContent", "type": "method"}, {"access": "protected", "host": "WidgetStdMod", "name": "_syncUIStdMod", "url": "WidgetStdMod.html#method__syncUIStdMod", "type": "method"}, {"access": "protected", "host": "WidgetStdMod", "name": "_uiSetFillHeight", "url": "WidgetStdMod.html#method__uiSetFillHeight", "type": "method"}, {"access": "protected", "host": "WidgetStdMod", "name": "_uiSetStdMod", "url": "WidgetStdMod.html#method__uiSetStdMod", "type": "method"}, {"access": "protected", "host": "WidgetStdMod", "name": "_validateFillHeight", "url": "WidgetStdMod.html#method__validateFillHeight", "type": "method"}, {"access": "", "host": "WidgetStdMod", "name": "WidgetStdMod.AFTER", "url": "WidgetStdMod.html#property_WidgetStdMod.AFTER", "type": "property"}, {"access": "", "host": "WidgetStdMod", "name": "WidgetStdMod.ATTRS", "url": "WidgetStdMod.html#property_WidgetStdMod.ATTRS", "type": "property"}, {"access": "", "host": "WidgetStdMod", "name": "WidgetStdMod.BEFORE", "url": "WidgetStdMod.html#property_WidgetStdMod.BEFORE", "type": "property"}, {"access": "", "host": "WidgetStdMod", "name": "WidgetStdMod.BODY", "url": "WidgetStdMod.html#property_WidgetStdMod.BODY", "type": "property"}, {"access": "", "host": "WidgetStdMod", "name": "WidgetStdMod.FOOTER", "url": "WidgetStdMod.html#property_WidgetStdMod.FOOTER", "type": "property"}, {"access": "", "host": "WidgetStdMod", "name": "WidgetStdMod.HEADER", "url": "WidgetStdMod.html#property_WidgetStdMod.HEADER", "type": "property"}, {"access": "", "host": "WidgetStdMod", "name": "WidgetStdMod.HTML_PARSER", "url": "WidgetStdMod.html#property_WidgetStdMod.HTML_PARSER", "type": "property"}, {"access": "", "host": "WidgetStdMod", "name": "WidgetStdMod.REPLACE", "url": "WidgetStdMod.html#property_WidgetStdMod.REPLACE", "type": "property"}, {"access": "", "host": "WidgetStdMod", "name": "WidgetStdMod.SECTION_CLASS_NAMES", "url": "WidgetStdMod.html#property_WidgetStdMod.SECTION_CLASS_NAMES", "type": "property"}, {"access": "", "host": "WidgetStdMod", "name": "WidgetStdMod.TEMPLATES", "url": "WidgetStdMod.html#property_WidgetStdMod.TEMPLATES", "type": "property"}];
       
   876 </script>
       
   877 </body>
       
   878 </html>