webgui/www/extras/yui/docs/Calendar.js.html
2012-10-24 10:40:52 -07:00

3720 lines
549 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html xmlns:yui="http://yuilibrary.com/rdf/1.0/yui.rdf#">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<title>API: calendar Calendar.js (YUI Library)</title>
<link rel="stylesheet" type="text/css" href="assets/reset-fonts-grids-min.css" />
<link rel="stylesheet" type="text/css" href="assets/api.css" />
<script type="text/javascript" src="assets/api-js"></script>
<script type="text/javascript" src="assets/ac-js"></script>
</head>
<body id="yahoo-com">
<div id="doc3" class="yui-t2">
<div id="hd">
<h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
<h3>Calendar&nbsp; <span class="subtitle">2.9.0</span></h3>
<a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a>
&gt; <a href="./module_calendar.html" title="calendar">calendar</a>
&gt; Calendar.js (source view)
<form onsubmit="return false">
<div id="propertysearch">
Search: <input autocomplete="off" id="searchinput" />
<div id="searchresults">
&nbsp;
</div>
</div>
</form>
</div>
<div id="bd">
<div id="yui-main">
<div class="yui-b">
<form action="#" name="yui-classopts-form" method="get" id="yui-classopts-form">
<fieldset>
<legend>Filters</legend>
<span class="classopts"><input type="checkbox" name="show_private" id="show_private" /> <label for="show_private">Show Private</label></span>
<span class="classopts"><input type="checkbox" name="show_protected" id="show_protected" /> <label for="show_protected">Show Protected</label></span>
<span class="classopts"><input type="checkbox" name="show_deprecated" id="show_deprecated" /> <label for="show_deprecated">Show Deprecated</label></span>
</fieldset>
</form>
<div id="srcout">
<style>
#doc3 .classopts { display:none; }
</style>
<div class="highlight"><pre><span class="cm">/**</span>
<span class="cm">* The Calendar component is a UI control that enables users to choose one or more dates from a graphical calendar presented in a one-month or</span>
<span class="cm">* multi-month interface. Calendars are generated entirely via script and can be navigated without any page refreshes.</span>
<span class="cm">* @module calendar</span>
<span class="cm">* @title Calendar</span>
<span class="cm">* @namespace YAHOO.widget</span>
<span class="cm">* @requires yahoo,dom,event</span>
<span class="cm">*/</span>
<span class="p">(</span><span class="kd">function</span><span class="p">(){</span>
<span class="kd">var</span> <span class="nx">Dom</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">util</span><span class="p">.</span><span class="nx">Dom</span><span class="p">,</span>
<span class="nx">Event</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">util</span><span class="p">.</span><span class="nx">Event</span><span class="p">,</span>
<span class="nx">Lang</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">lang</span><span class="p">,</span>
<span class="nx">DateMath</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">widget</span><span class="p">.</span><span class="nx">DateMath</span><span class="p">;</span>
<span class="cm">/**</span>
<span class="cm">* Calendar is the base class for the Calendar widget. In its most basic</span>
<span class="cm">* implementation, it has the ability to render a calendar widget on the page</span>
<span class="cm">* that can be manipulated to select a single date, move back and forth between</span>
<span class="cm">* months and years.</span>
<span class="cm">* &lt;p&gt;To construct the placeholder for the calendar widget, the code is as</span>
<span class="cm">* follows:</span>
<span class="cm">* &lt;xmp&gt;</span>
<span class="cm">* &lt;div id=&quot;calContainer&quot;&gt;&lt;/div&gt;</span>
<span class="cm">* &lt;/xmp&gt;</span>
<span class="cm">* &lt;/p&gt;</span>
<span class="cm">* &lt;p&gt;</span>
<span class="cm">* &lt;strong&gt;NOTE: As of 2.4.0, the constructor&#39;s ID argument is optional.&lt;/strong&gt;</span>
<span class="cm">* The Calendar can be constructed by simply providing a container ID string, </span>
<span class="cm">* or a reference to a container DIV HTMLElement (the element needs to exist </span>
<span class="cm">* in the document).</span>
<span class="cm">* </span>
<span class="cm">* E.g.:</span>
<span class="cm">* &lt;xmp&gt;</span>
<span class="cm">* var c = new YAHOO.widget.Calendar(&quot;calContainer&quot;, configOptions);</span>
<span class="cm">* &lt;/xmp&gt;</span>
<span class="cm">* or:</span>
<span class="cm">* &lt;xmp&gt;</span>
<span class="cm">* var containerDiv = YAHOO.util.Dom.get(&quot;calContainer&quot;);</span>
<span class="cm">* var c = new YAHOO.widget.Calendar(containerDiv, configOptions);</span>
<span class="cm">* &lt;/xmp&gt;</span>
<span class="cm">* &lt;/p&gt;</span>
<span class="cm">* &lt;p&gt;</span>
<span class="cm">* If not provided, the ID will be generated from the container DIV ID by adding an &quot;_t&quot; suffix.</span>
<span class="cm">* For example if an ID is not provided, and the container&#39;s ID is &quot;calContainer&quot;, the Calendar&#39;s ID will be set to &quot;calContainer_t&quot;.</span>
<span class="cm">* &lt;/p&gt;</span>
<span class="cm">* </span>
<span class="cm">* @namespace YAHOO.widget</span>
<span class="cm">* @class Calendar</span>
<span class="cm">* @constructor</span>
<span class="cm">* @param {String} id optional The id of the table element that will represent the Calendar widget. As of 2.4.0, this argument is optional.</span>
<span class="cm">* @param {String | HTMLElement} container The id of the container div element that will wrap the Calendar table, or a reference to a DIV element which exists in the document.</span>
<span class="cm">* @param {Object} config optional The configuration object containing the initial configuration values for the Calendar.</span>
<span class="cm">*/</span>
<span class="kd">function</span> <span class="nx">Calendar</span><span class="p">(</span><span class="nx">id</span><span class="p">,</span> <span class="nx">containerId</span><span class="p">,</span> <span class="nx">config</span><span class="p">)</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">init</span><span class="p">.</span><span class="nx">apply</span><span class="p">(</span><span class="k">this</span><span class="p">,</span> <span class="nx">arguments</span><span class="p">);</span>
<span class="p">}</span>
<span class="cm">/**</span>
<span class="cm">* The path to be used for images loaded for the Calendar</span>
<span class="cm">* @property YAHOO.widget.Calendar.IMG_ROOT</span>
<span class="cm">* @static</span>
<span class="cm">* @deprecated You can now customize images by overriding the calclose, calnavleft and calnavright default CSS classes for the close icon, left arrow and right arrow respectively</span>
<span class="cm">* @type String</span>
<span class="cm">*/</span>
<span class="nx">Calendar</span><span class="p">.</span><span class="nx">IMG_ROOT</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span>
<span class="cm">/**</span>
<span class="cm">* Type constant used for renderers to represent an individual date (M/D/Y)</span>
<span class="cm">* @property YAHOO.widget.Calendar.DATE</span>
<span class="cm">* @static</span>
<span class="cm">* @final</span>
<span class="cm">* @type String</span>
<span class="cm">*/</span>
<span class="nx">Calendar</span><span class="p">.</span><span class="nx">DATE</span> <span class="o">=</span> <span class="s2">&quot;D&quot;</span><span class="p">;</span>
<span class="cm">/**</span>
<span class="cm">* Type constant used for renderers to represent an individual date across any year (M/D)</span>
<span class="cm">* @property YAHOO.widget.Calendar.MONTH_DAY</span>
<span class="cm">* @static</span>
<span class="cm">* @final</span>
<span class="cm">* @type String</span>
<span class="cm">*/</span>
<span class="nx">Calendar</span><span class="p">.</span><span class="nx">MONTH_DAY</span> <span class="o">=</span> <span class="s2">&quot;MD&quot;</span><span class="p">;</span>
<span class="cm">/**</span>
<span class="cm">* Type constant used for renderers to represent a weekday</span>
<span class="cm">* @property YAHOO.widget.Calendar.WEEKDAY</span>
<span class="cm">* @static</span>
<span class="cm">* @final</span>
<span class="cm">* @type String</span>
<span class="cm">*/</span>
<span class="nx">Calendar</span><span class="p">.</span><span class="nx">WEEKDAY</span> <span class="o">=</span> <span class="s2">&quot;WD&quot;</span><span class="p">;</span>
<span class="cm">/**</span>
<span class="cm">* Type constant used for renderers to represent a range of individual dates (M/D/Y-M/D/Y)</span>
<span class="cm">* @property YAHOO.widget.Calendar.RANGE</span>
<span class="cm">* @static</span>
<span class="cm">* @final</span>
<span class="cm">* @type String</span>
<span class="cm">*/</span>
<span class="nx">Calendar</span><span class="p">.</span><span class="nx">RANGE</span> <span class="o">=</span> <span class="s2">&quot;R&quot;</span><span class="p">;</span>
<span class="cm">/**</span>
<span class="cm">* Type constant used for renderers to represent a month across any year</span>
<span class="cm">* @property YAHOO.widget.Calendar.MONTH</span>
<span class="cm">* @static</span>
<span class="cm">* @final</span>
<span class="cm">* @type String</span>
<span class="cm">*/</span>
<span class="nx">Calendar</span><span class="p">.</span><span class="nx">MONTH</span> <span class="o">=</span> <span class="s2">&quot;M&quot;</span><span class="p">;</span>
<span class="cm">/**</span>
<span class="cm">* Constant that represents the total number of date cells that are displayed in a given month</span>
<span class="cm">* @property YAHOO.widget.Calendar.DISPLAY_DAYS</span>
<span class="cm">* @static</span>
<span class="cm">* @final</span>
<span class="cm">* @type Number</span>
<span class="cm">*/</span>
<span class="nx">Calendar</span><span class="p">.</span><span class="nx">DISPLAY_DAYS</span> <span class="o">=</span> <span class="mi">42</span><span class="p">;</span>
<span class="cm">/**</span>
<span class="cm">* Constant used for halting the execution of the remainder of the render stack</span>
<span class="cm">* @property YAHOO.widget.Calendar.STOP_RENDER</span>
<span class="cm">* @static</span>
<span class="cm">* @final</span>
<span class="cm">* @type String</span>
<span class="cm">*/</span>
<span class="nx">Calendar</span><span class="p">.</span><span class="nx">STOP_RENDER</span> <span class="o">=</span> <span class="s2">&quot;S&quot;</span><span class="p">;</span>
<span class="cm">/**</span>
<span class="cm">* Constant used to represent short date field string formats (e.g. Tu or Feb)</span>
<span class="cm">* @property YAHOO.widget.Calendar.SHORT</span>
<span class="cm">* @static</span>
<span class="cm">* @final</span>
<span class="cm">* @type String</span>
<span class="cm">*/</span>
<span class="nx">Calendar</span><span class="p">.</span><span class="nx">SHORT</span> <span class="o">=</span> <span class="s2">&quot;short&quot;</span><span class="p">;</span>
<span class="cm">/**</span>
<span class="cm">* Constant used to represent long date field string formats (e.g. Monday or February)</span>
<span class="cm">* @property YAHOO.widget.Calendar.LONG</span>
<span class="cm">* @static</span>
<span class="cm">* @final</span>
<span class="cm">* @type String</span>
<span class="cm">*/</span>
<span class="nx">Calendar</span><span class="p">.</span><span class="nx">LONG</span> <span class="o">=</span> <span class="s2">&quot;long&quot;</span><span class="p">;</span>
<span class="cm">/**</span>
<span class="cm">* Constant used to represent medium date field string formats (e.g. Mon)</span>
<span class="cm">* @property YAHOO.widget.Calendar.MEDIUM</span>
<span class="cm">* @static</span>
<span class="cm">* @final</span>
<span class="cm">* @type String</span>
<span class="cm">*/</span>
<span class="nx">Calendar</span><span class="p">.</span><span class="nx">MEDIUM</span> <span class="o">=</span> <span class="s2">&quot;medium&quot;</span><span class="p">;</span>
<span class="cm">/**</span>
<span class="cm">* Constant used to represent single character date field string formats (e.g. M, T, W)</span>
<span class="cm">* @property YAHOO.widget.Calendar.ONE_CHAR</span>
<span class="cm">* @static</span>
<span class="cm">* @final</span>
<span class="cm">* @type String</span>
<span class="cm">*/</span>
<span class="nx">Calendar</span><span class="p">.</span><span class="nx">ONE_CHAR</span> <span class="o">=</span> <span class="s2">&quot;1char&quot;</span><span class="p">;</span>
<span class="cm">/**</span>
<span class="cm">* The set of default Config property keys and values for the Calendar.</span>
<span class="cm">*</span>
<span class="cm">* &lt;p&gt;</span>
<span class="cm">* NOTE: This property is made public in order to allow users to change </span>
<span class="cm">* the default values of configuration properties. Users should not </span>
<span class="cm">* modify the key string, unless they are overriding the Calendar implementation</span>
<span class="cm">* &lt;/p&gt;</span>
<span class="cm">*</span>
<span class="cm">* &lt;p&gt;</span>
<span class="cm">* The property is an object with key/value pairs, the key being the </span>
<span class="cm">* uppercase configuration property name and the value being an object </span>
<span class="cm">* literal with a key string property, and a value property, specifying the </span>
<span class="cm">* default value of the property. To override a default value, you can set</span>
<span class="cm">* the value property, for example, &lt;code&gt;YAHOO.widget.Calendar.DEFAULT_CONFIG.MULTI_SELECT.value = true;&lt;/code&gt;</span>
<span class="cm">* </span>
<span class="cm">* @property YAHOO.widget.Calendar.DEFAULT_CONFIG</span>
<span class="cm">* @static</span>
<span class="cm">* @type Object</span>
<span class="cm">*/</span>
<span class="nx">Calendar</span><span class="p">.</span><span class="nx">DEFAULT_CONFIG</span> <span class="o">=</span> <span class="p">{</span>
<span class="nx">YEAR_OFFSET</span> <span class="o">:</span> <span class="p">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;year_offset&quot;</span><span class="p">,</span> <span class="nx">value</span><span class="o">:</span><span class="mi">0</span><span class="p">,</span> <span class="nx">supercedes</span><span class="o">:</span><span class="p">[</span><span class="s2">&quot;pagedate&quot;</span><span class="p">,</span> <span class="s2">&quot;selected&quot;</span><span class="p">,</span> <span class="s2">&quot;mindate&quot;</span><span class="p">,</span><span class="s2">&quot;maxdate&quot;</span><span class="p">]},</span>
<span class="nx">TODAY</span> <span class="o">:</span> <span class="p">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;today&quot;</span><span class="p">,</span> <span class="nx">value</span><span class="o">:</span><span class="k">new</span> <span class="nb">Date</span><span class="p">(),</span> <span class="nx">supercedes</span><span class="o">:</span><span class="p">[</span><span class="s2">&quot;pagedate&quot;</span><span class="p">]},</span>
<span class="nx">PAGEDATE</span> <span class="o">:</span> <span class="p">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;pagedate&quot;</span><span class="p">,</span> <span class="nx">value</span><span class="o">:</span><span class="kc">null</span><span class="p">},</span>
<span class="nx">SELECTED</span> <span class="o">:</span> <span class="p">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;selected&quot;</span><span class="p">,</span> <span class="nx">value</span><span class="o">:</span><span class="p">[]},</span>
<span class="nx">TITLE</span> <span class="o">:</span> <span class="p">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;title&quot;</span><span class="p">,</span> <span class="nx">value</span><span class="o">:</span><span class="s2">&quot;&quot;</span><span class="p">},</span>
<span class="nx">CLOSE</span> <span class="o">:</span> <span class="p">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;close&quot;</span><span class="p">,</span> <span class="nx">value</span><span class="o">:</span><span class="kc">false</span><span class="p">},</span>
<span class="nx">IFRAME</span> <span class="o">:</span> <span class="p">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;iframe&quot;</span><span class="p">,</span> <span class="nx">value</span><span class="o">:</span><span class="p">(</span><span class="nx">YAHOO</span><span class="p">.</span><span class="nx">env</span><span class="p">.</span><span class="nx">ua</span><span class="p">.</span><span class="nx">ie</span> <span class="o">&amp;&amp;</span> <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">env</span><span class="p">.</span><span class="nx">ua</span><span class="p">.</span><span class="nx">ie</span> <span class="o">&lt;=</span> <span class="mi">6</span><span class="p">)</span> <span class="o">?</span> <span class="kc">true</span> <span class="o">:</span> <span class="kc">false</span><span class="p">},</span>
<span class="nx">MINDATE</span> <span class="o">:</span> <span class="p">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;mindate&quot;</span><span class="p">,</span> <span class="nx">value</span><span class="o">:</span><span class="kc">null</span><span class="p">},</span>
<span class="nx">MAXDATE</span> <span class="o">:</span> <span class="p">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;maxdate&quot;</span><span class="p">,</span> <span class="nx">value</span><span class="o">:</span><span class="kc">null</span><span class="p">},</span>
<span class="nx">MULTI_SELECT</span> <span class="o">:</span> <span class="p">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;multi_select&quot;</span><span class="p">,</span> <span class="nx">value</span><span class="o">:</span><span class="kc">false</span><span class="p">},</span>
<span class="nx">OOM_SELECT</span> <span class="o">:</span> <span class="p">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;oom_select&quot;</span><span class="p">,</span> <span class="nx">value</span><span class="o">:</span><span class="kc">false</span><span class="p">},</span>
<span class="nx">START_WEEKDAY</span> <span class="o">:</span> <span class="p">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;start_weekday&quot;</span><span class="p">,</span> <span class="nx">value</span><span class="o">:</span><span class="mi">0</span><span class="p">},</span>
<span class="nx">SHOW_WEEKDAYS</span> <span class="o">:</span> <span class="p">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;show_weekdays&quot;</span><span class="p">,</span> <span class="nx">value</span><span class="o">:</span><span class="kc">true</span><span class="p">},</span>
<span class="nx">SHOW_WEEK_HEADER</span> <span class="o">:</span> <span class="p">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;show_week_header&quot;</span><span class="p">,</span> <span class="nx">value</span><span class="o">:</span><span class="kc">false</span><span class="p">},</span>
<span class="nx">SHOW_WEEK_FOOTER</span> <span class="o">:</span> <span class="p">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;show_week_footer&quot;</span><span class="p">,</span> <span class="nx">value</span><span class="o">:</span><span class="kc">false</span><span class="p">},</span>
<span class="nx">HIDE_BLANK_WEEKS</span> <span class="o">:</span> <span class="p">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;hide_blank_weeks&quot;</span><span class="p">,</span> <span class="nx">value</span><span class="o">:</span><span class="kc">false</span><span class="p">},</span>
<span class="nx">NAV_ARROW_LEFT</span><span class="o">:</span> <span class="p">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;nav_arrow_left&quot;</span><span class="p">,</span> <span class="nx">value</span><span class="o">:</span><span class="kc">null</span><span class="p">}</span> <span class="p">,</span>
<span class="nx">NAV_ARROW_RIGHT</span> <span class="o">:</span> <span class="p">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;nav_arrow_right&quot;</span><span class="p">,</span> <span class="nx">value</span><span class="o">:</span><span class="kc">null</span><span class="p">}</span> <span class="p">,</span>
<span class="nx">MONTHS_SHORT</span> <span class="o">:</span> <span class="p">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;months_short&quot;</span><span class="p">,</span> <span class="nx">value</span><span class="o">:</span><span class="p">[</span><span class="s2">&quot;Jan&quot;</span><span class="p">,</span> <span class="s2">&quot;Feb&quot;</span><span class="p">,</span> <span class="s2">&quot;Mar&quot;</span><span class="p">,</span> <span class="s2">&quot;Apr&quot;</span><span class="p">,</span> <span class="s2">&quot;May&quot;</span><span class="p">,</span> <span class="s2">&quot;Jun&quot;</span><span class="p">,</span> <span class="s2">&quot;Jul&quot;</span><span class="p">,</span> <span class="s2">&quot;Aug&quot;</span><span class="p">,</span> <span class="s2">&quot;Sep&quot;</span><span class="p">,</span> <span class="s2">&quot;Oct&quot;</span><span class="p">,</span> <span class="s2">&quot;Nov&quot;</span><span class="p">,</span> <span class="s2">&quot;Dec&quot;</span><span class="p">]},</span>
<span class="nx">MONTHS_LONG</span><span class="o">:</span> <span class="p">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;months_long&quot;</span><span class="p">,</span> <span class="nx">value</span><span class="o">:</span><span class="p">[</span><span class="s2">&quot;January&quot;</span><span class="p">,</span> <span class="s2">&quot;February&quot;</span><span class="p">,</span> <span class="s2">&quot;March&quot;</span><span class="p">,</span> <span class="s2">&quot;April&quot;</span><span class="p">,</span> <span class="s2">&quot;May&quot;</span><span class="p">,</span> <span class="s2">&quot;June&quot;</span><span class="p">,</span> <span class="s2">&quot;July&quot;</span><span class="p">,</span> <span class="s2">&quot;August&quot;</span><span class="p">,</span> <span class="s2">&quot;September&quot;</span><span class="p">,</span> <span class="s2">&quot;October&quot;</span><span class="p">,</span> <span class="s2">&quot;November&quot;</span><span class="p">,</span> <span class="s2">&quot;December&quot;</span><span class="p">]},</span>
<span class="nx">WEEKDAYS_1CHAR</span><span class="o">:</span> <span class="p">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;weekdays_1char&quot;</span><span class="p">,</span> <span class="nx">value</span><span class="o">:</span><span class="p">[</span><span class="s2">&quot;S&quot;</span><span class="p">,</span> <span class="s2">&quot;M&quot;</span><span class="p">,</span> <span class="s2">&quot;T&quot;</span><span class="p">,</span> <span class="s2">&quot;W&quot;</span><span class="p">,</span> <span class="s2">&quot;T&quot;</span><span class="p">,</span> <span class="s2">&quot;F&quot;</span><span class="p">,</span> <span class="s2">&quot;S&quot;</span><span class="p">]},</span>
<span class="nx">WEEKDAYS_SHORT</span><span class="o">:</span> <span class="p">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;weekdays_short&quot;</span><span class="p">,</span> <span class="nx">value</span><span class="o">:</span><span class="p">[</span><span class="s2">&quot;Su&quot;</span><span class="p">,</span> <span class="s2">&quot;Mo&quot;</span><span class="p">,</span> <span class="s2">&quot;Tu&quot;</span><span class="p">,</span> <span class="s2">&quot;We&quot;</span><span class="p">,</span> <span class="s2">&quot;Th&quot;</span><span class="p">,</span> <span class="s2">&quot;Fr&quot;</span><span class="p">,</span> <span class="s2">&quot;Sa&quot;</span><span class="p">]},</span>
<span class="nx">WEEKDAYS_MEDIUM</span><span class="o">:</span> <span class="p">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;weekdays_medium&quot;</span><span class="p">,</span> <span class="nx">value</span><span class="o">:</span><span class="p">[</span><span class="s2">&quot;Sun&quot;</span><span class="p">,</span> <span class="s2">&quot;Mon&quot;</span><span class="p">,</span> <span class="s2">&quot;Tue&quot;</span><span class="p">,</span> <span class="s2">&quot;Wed&quot;</span><span class="p">,</span> <span class="s2">&quot;Thu&quot;</span><span class="p">,</span> <span class="s2">&quot;Fri&quot;</span><span class="p">,</span> <span class="s2">&quot;Sat&quot;</span><span class="p">]},</span>
<span class="nx">WEEKDAYS_LONG</span><span class="o">:</span> <span class="p">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;weekdays_long&quot;</span><span class="p">,</span> <span class="nx">value</span><span class="o">:</span><span class="p">[</span><span class="s2">&quot;Sunday&quot;</span><span class="p">,</span> <span class="s2">&quot;Monday&quot;</span><span class="p">,</span> <span class="s2">&quot;Tuesday&quot;</span><span class="p">,</span> <span class="s2">&quot;Wednesday&quot;</span><span class="p">,</span> <span class="s2">&quot;Thursday&quot;</span><span class="p">,</span> <span class="s2">&quot;Friday&quot;</span><span class="p">,</span> <span class="s2">&quot;Saturday&quot;</span><span class="p">]},</span>
<span class="nx">LOCALE_MONTHS</span><span class="o">:</span><span class="p">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;locale_months&quot;</span><span class="p">,</span> <span class="nx">value</span><span class="o">:</span><span class="s2">&quot;long&quot;</span><span class="p">},</span>
<span class="nx">LOCALE_WEEKDAYS</span><span class="o">:</span><span class="p">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;locale_weekdays&quot;</span><span class="p">,</span> <span class="nx">value</span><span class="o">:</span><span class="s2">&quot;short&quot;</span><span class="p">},</span>
<span class="nx">DATE_DELIMITER</span><span class="o">:</span><span class="p">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;date_delimiter&quot;</span><span class="p">,</span> <span class="nx">value</span><span class="o">:</span><span class="s2">&quot;,&quot;</span><span class="p">},</span>
<span class="nx">DATE_FIELD_DELIMITER</span><span class="o">:</span><span class="p">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;date_field_delimiter&quot;</span><span class="p">,</span> <span class="nx">value</span><span class="o">:</span><span class="s2">&quot;/&quot;</span><span class="p">},</span>
<span class="nx">DATE_RANGE_DELIMITER</span><span class="o">:</span><span class="p">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;date_range_delimiter&quot;</span><span class="p">,</span> <span class="nx">value</span><span class="o">:</span><span class="s2">&quot;-&quot;</span><span class="p">},</span>
<span class="nx">MY_MONTH_POSITION</span><span class="o">:</span><span class="p">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;my_month_position&quot;</span><span class="p">,</span> <span class="nx">value</span><span class="o">:</span><span class="mi">1</span><span class="p">},</span>
<span class="nx">MY_YEAR_POSITION</span><span class="o">:</span><span class="p">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;my_year_position&quot;</span><span class="p">,</span> <span class="nx">value</span><span class="o">:</span><span class="mi">2</span><span class="p">},</span>
<span class="nx">MD_MONTH_POSITION</span><span class="o">:</span><span class="p">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;md_month_position&quot;</span><span class="p">,</span> <span class="nx">value</span><span class="o">:</span><span class="mi">1</span><span class="p">},</span>
<span class="nx">MD_DAY_POSITION</span><span class="o">:</span><span class="p">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;md_day_position&quot;</span><span class="p">,</span> <span class="nx">value</span><span class="o">:</span><span class="mi">2</span><span class="p">},</span>
<span class="nx">MDY_MONTH_POSITION</span><span class="o">:</span><span class="p">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;mdy_month_position&quot;</span><span class="p">,</span> <span class="nx">value</span><span class="o">:</span><span class="mi">1</span><span class="p">},</span>
<span class="nx">MDY_DAY_POSITION</span><span class="o">:</span><span class="p">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;mdy_day_position&quot;</span><span class="p">,</span> <span class="nx">value</span><span class="o">:</span><span class="mi">2</span><span class="p">},</span>
<span class="nx">MDY_YEAR_POSITION</span><span class="o">:</span><span class="p">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;mdy_year_position&quot;</span><span class="p">,</span> <span class="nx">value</span><span class="o">:</span><span class="mi">3</span><span class="p">},</span>
<span class="nx">MY_LABEL_MONTH_POSITION</span><span class="o">:</span><span class="p">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;my_label_month_position&quot;</span><span class="p">,</span> <span class="nx">value</span><span class="o">:</span><span class="mi">1</span><span class="p">},</span>
<span class="nx">MY_LABEL_YEAR_POSITION</span><span class="o">:</span><span class="p">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;my_label_year_position&quot;</span><span class="p">,</span> <span class="nx">value</span><span class="o">:</span><span class="mi">2</span><span class="p">},</span>
<span class="nx">MY_LABEL_MONTH_SUFFIX</span><span class="o">:</span><span class="p">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;my_label_month_suffix&quot;</span><span class="p">,</span> <span class="nx">value</span><span class="o">:</span><span class="s2">&quot; &quot;</span><span class="p">},</span>
<span class="nx">MY_LABEL_YEAR_SUFFIX</span><span class="o">:</span><span class="p">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;my_label_year_suffix&quot;</span><span class="p">,</span> <span class="nx">value</span><span class="o">:</span><span class="s2">&quot;&quot;</span><span class="p">},</span>
<span class="nx">NAV</span><span class="o">:</span> <span class="p">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;navigator&quot;</span><span class="p">,</span> <span class="nx">value</span><span class="o">:</span> <span class="kc">null</span><span class="p">},</span>
<span class="nx">STRINGS</span> <span class="o">:</span> <span class="p">{</span>
<span class="nx">key</span><span class="o">:</span><span class="s2">&quot;strings&quot;</span><span class="p">,</span>
<span class="nx">value</span><span class="o">:</span> <span class="p">{</span>
<span class="nx">previousMonth</span> <span class="o">:</span> <span class="s2">&quot;Previous Month&quot;</span><span class="p">,</span>
<span class="nx">nextMonth</span> <span class="o">:</span> <span class="s2">&quot;Next Month&quot;</span><span class="p">,</span>
<span class="nx">close</span><span class="o">:</span> <span class="s2">&quot;Close&quot;</span>
<span class="p">},</span>
<span class="nx">supercedes</span> <span class="o">:</span> <span class="p">[</span><span class="s2">&quot;close&quot;</span><span class="p">,</span> <span class="s2">&quot;title&quot;</span><span class="p">]</span>
<span class="p">}</span>
<span class="p">};</span>
<span class="cm">/**</span>
<span class="cm">* The set of default Config property keys and values for the Calendar</span>
<span class="cm">* @property YAHOO.widget.Calendar._DEFAULT_CONFIG</span>
<span class="cm">* @deprecated Made public. See the public DEFAULT_CONFIG property for details</span>
<span class="cm">* @final</span>
<span class="cm">* @static</span>
<span class="cm">* @private</span>
<span class="cm">* @type Object</span>
<span class="cm">*/</span>
<span class="nx">Calendar</span><span class="p">.</span><span class="nx">_DEFAULT_CONFIG</span> <span class="o">=</span> <span class="nx">Calendar</span><span class="p">.</span><span class="nx">DEFAULT_CONFIG</span><span class="p">;</span>
<span class="kd">var</span> <span class="nx">DEF_CFG</span> <span class="o">=</span> <span class="nx">Calendar</span><span class="p">.</span><span class="nx">DEFAULT_CONFIG</span><span class="p">;</span>
<span class="cm">/**</span>
<span class="cm">* The set of Custom Event types supported by the Calendar</span>
<span class="cm">* @property YAHOO.widget.Calendar._EVENT_TYPES</span>
<span class="cm">* @final</span>
<span class="cm">* @static</span>
<span class="cm">* @private</span>
<span class="cm">* @type Object</span>
<span class="cm">*/</span>
<span class="nx">Calendar</span><span class="p">.</span><span class="nx">_EVENT_TYPES</span> <span class="o">=</span> <span class="p">{</span>
<span class="nx">BEFORE_SELECT</span> <span class="o">:</span> <span class="s2">&quot;beforeSelect&quot;</span><span class="p">,</span>
<span class="nx">SELECT</span> <span class="o">:</span> <span class="s2">&quot;select&quot;</span><span class="p">,</span>
<span class="nx">BEFORE_DESELECT</span> <span class="o">:</span> <span class="s2">&quot;beforeDeselect&quot;</span><span class="p">,</span>
<span class="nx">DESELECT</span> <span class="o">:</span> <span class="s2">&quot;deselect&quot;</span><span class="p">,</span>
<span class="nx">CHANGE_PAGE</span> <span class="o">:</span> <span class="s2">&quot;changePage&quot;</span><span class="p">,</span>
<span class="nx">BEFORE_RENDER</span> <span class="o">:</span> <span class="s2">&quot;beforeRender&quot;</span><span class="p">,</span>
<span class="nx">RENDER</span> <span class="o">:</span> <span class="s2">&quot;render&quot;</span><span class="p">,</span>
<span class="nx">BEFORE_DESTROY</span> <span class="o">:</span> <span class="s2">&quot;beforeDestroy&quot;</span><span class="p">,</span>
<span class="nx">DESTROY</span> <span class="o">:</span> <span class="s2">&quot;destroy&quot;</span><span class="p">,</span>
<span class="nx">RESET</span> <span class="o">:</span> <span class="s2">&quot;reset&quot;</span><span class="p">,</span>
<span class="nx">CLEAR</span> <span class="o">:</span> <span class="s2">&quot;clear&quot;</span><span class="p">,</span>
<span class="nx">BEFORE_HIDE</span> <span class="o">:</span> <span class="s2">&quot;beforeHide&quot;</span><span class="p">,</span>
<span class="nx">HIDE</span> <span class="o">:</span> <span class="s2">&quot;hide&quot;</span><span class="p">,</span>
<span class="nx">BEFORE_SHOW</span> <span class="o">:</span> <span class="s2">&quot;beforeShow&quot;</span><span class="p">,</span>
<span class="nx">SHOW</span> <span class="o">:</span> <span class="s2">&quot;show&quot;</span><span class="p">,</span>
<span class="nx">BEFORE_HIDE_NAV</span> <span class="o">:</span> <span class="s2">&quot;beforeHideNav&quot;</span><span class="p">,</span>
<span class="nx">HIDE_NAV</span> <span class="o">:</span> <span class="s2">&quot;hideNav&quot;</span><span class="p">,</span>
<span class="nx">BEFORE_SHOW_NAV</span> <span class="o">:</span> <span class="s2">&quot;beforeShowNav&quot;</span><span class="p">,</span>
<span class="nx">SHOW_NAV</span> <span class="o">:</span> <span class="s2">&quot;showNav&quot;</span><span class="p">,</span>
<span class="nx">BEFORE_RENDER_NAV</span> <span class="o">:</span> <span class="s2">&quot;beforeRenderNav&quot;</span><span class="p">,</span>
<span class="nx">RENDER_NAV</span> <span class="o">:</span> <span class="s2">&quot;renderNav&quot;</span>
<span class="p">};</span>
<span class="cm">/**</span>
<span class="cm">* The set of default style constants for the Calendar</span>
<span class="cm">* @property YAHOO.widget.Calendar.STYLES</span>
<span class="cm">* @static</span>
<span class="cm">* @type Object An object with name/value pairs for the class name identifier/value.</span>
<span class="cm">*/</span>
<span class="nx">Calendar</span><span class="p">.</span><span class="nx">STYLES</span> <span class="o">=</span> <span class="p">{</span>
<span class="nx">CSS_ROW_HEADER</span><span class="o">:</span> <span class="s2">&quot;calrowhead&quot;</span><span class="p">,</span>
<span class="nx">CSS_ROW_FOOTER</span><span class="o">:</span> <span class="s2">&quot;calrowfoot&quot;</span><span class="p">,</span>
<span class="nx">CSS_CELL</span> <span class="o">:</span> <span class="s2">&quot;calcell&quot;</span><span class="p">,</span>
<span class="nx">CSS_CELL_SELECTOR</span> <span class="o">:</span> <span class="s2">&quot;selector&quot;</span><span class="p">,</span>
<span class="nx">CSS_CELL_SELECTED</span> <span class="o">:</span> <span class="s2">&quot;selected&quot;</span><span class="p">,</span>
<span class="nx">CSS_CELL_SELECTABLE</span> <span class="o">:</span> <span class="s2">&quot;selectable&quot;</span><span class="p">,</span>
<span class="nx">CSS_CELL_RESTRICTED</span> <span class="o">:</span> <span class="s2">&quot;restricted&quot;</span><span class="p">,</span>
<span class="nx">CSS_CELL_TODAY</span> <span class="o">:</span> <span class="s2">&quot;today&quot;</span><span class="p">,</span>
<span class="nx">CSS_CELL_OOM</span> <span class="o">:</span> <span class="s2">&quot;oom&quot;</span><span class="p">,</span>
<span class="nx">CSS_CELL_OOB</span> <span class="o">:</span> <span class="s2">&quot;previous&quot;</span><span class="p">,</span>
<span class="nx">CSS_HEADER</span> <span class="o">:</span> <span class="s2">&quot;calheader&quot;</span><span class="p">,</span>
<span class="nx">CSS_HEADER_TEXT</span> <span class="o">:</span> <span class="s2">&quot;calhead&quot;</span><span class="p">,</span>
<span class="nx">CSS_BODY</span> <span class="o">:</span> <span class="s2">&quot;calbody&quot;</span><span class="p">,</span>
<span class="nx">CSS_WEEKDAY_CELL</span> <span class="o">:</span> <span class="s2">&quot;calweekdaycell&quot;</span><span class="p">,</span>
<span class="nx">CSS_WEEKDAY_ROW</span> <span class="o">:</span> <span class="s2">&quot;calweekdayrow&quot;</span><span class="p">,</span>
<span class="nx">CSS_FOOTER</span> <span class="o">:</span> <span class="s2">&quot;calfoot&quot;</span><span class="p">,</span>
<span class="nx">CSS_CALENDAR</span> <span class="o">:</span> <span class="s2">&quot;yui-calendar&quot;</span><span class="p">,</span>
<span class="nx">CSS_SINGLE</span> <span class="o">:</span> <span class="s2">&quot;single&quot;</span><span class="p">,</span>
<span class="nx">CSS_CONTAINER</span> <span class="o">:</span> <span class="s2">&quot;yui-calcontainer&quot;</span><span class="p">,</span>
<span class="nx">CSS_NAV_LEFT</span> <span class="o">:</span> <span class="s2">&quot;calnavleft&quot;</span><span class="p">,</span>
<span class="nx">CSS_NAV_RIGHT</span> <span class="o">:</span> <span class="s2">&quot;calnavright&quot;</span><span class="p">,</span>
<span class="nx">CSS_NAV</span> <span class="o">:</span> <span class="s2">&quot;calnav&quot;</span><span class="p">,</span>
<span class="nx">CSS_CLOSE</span> <span class="o">:</span> <span class="s2">&quot;calclose&quot;</span><span class="p">,</span>
<span class="nx">CSS_CELL_TOP</span> <span class="o">:</span> <span class="s2">&quot;calcelltop&quot;</span><span class="p">,</span>
<span class="nx">CSS_CELL_LEFT</span> <span class="o">:</span> <span class="s2">&quot;calcellleft&quot;</span><span class="p">,</span>
<span class="nx">CSS_CELL_RIGHT</span> <span class="o">:</span> <span class="s2">&quot;calcellright&quot;</span><span class="p">,</span>
<span class="nx">CSS_CELL_BOTTOM</span> <span class="o">:</span> <span class="s2">&quot;calcellbottom&quot;</span><span class="p">,</span>
<span class="nx">CSS_CELL_HOVER</span> <span class="o">:</span> <span class="s2">&quot;calcellhover&quot;</span><span class="p">,</span>
<span class="nx">CSS_CELL_HIGHLIGHT1</span> <span class="o">:</span> <span class="s2">&quot;highlight1&quot;</span><span class="p">,</span>
<span class="nx">CSS_CELL_HIGHLIGHT2</span> <span class="o">:</span> <span class="s2">&quot;highlight2&quot;</span><span class="p">,</span>
<span class="nx">CSS_CELL_HIGHLIGHT3</span> <span class="o">:</span> <span class="s2">&quot;highlight3&quot;</span><span class="p">,</span>
<span class="nx">CSS_CELL_HIGHLIGHT4</span> <span class="o">:</span> <span class="s2">&quot;highlight4&quot;</span><span class="p">,</span>
<span class="nx">CSS_WITH_TITLE</span><span class="o">:</span> <span class="s2">&quot;withtitle&quot;</span><span class="p">,</span>
<span class="nx">CSS_FIXED_SIZE</span><span class="o">:</span> <span class="s2">&quot;fixedsize&quot;</span><span class="p">,</span>
<span class="nx">CSS_LINK_CLOSE</span><span class="o">:</span> <span class="s2">&quot;link-close&quot;</span>
<span class="p">};</span>
<span class="cm">/**</span>
<span class="cm">* The set of default style constants for the Calendar</span>
<span class="cm">* @property YAHOO.widget.Calendar._STYLES</span>
<span class="cm">* @deprecated Made public. See the public STYLES property for details</span>
<span class="cm">* @final</span>
<span class="cm">* @static</span>
<span class="cm">* @private</span>
<span class="cm">* @type Object</span>
<span class="cm">*/</span>
<span class="nx">Calendar</span><span class="p">.</span><span class="nx">_STYLES</span> <span class="o">=</span> <span class="nx">Calendar</span><span class="p">.</span><span class="nx">STYLES</span><span class="p">;</span>
<span class="nx">Calendar</span><span class="p">.</span><span class="nx">prototype</span> <span class="o">=</span> <span class="p">{</span>
<span class="cm">/**</span>
<span class="cm"> * The configuration object used to set up the calendars various locale and style options.</span>
<span class="cm"> * @property Config</span>
<span class="cm"> * @private</span>
<span class="cm"> * @deprecated Configuration properties should be set by calling Calendar.cfg.setProperty.</span>
<span class="cm"> * @type Object</span>
<span class="cm"> */</span>
<span class="nx">Config</span> <span class="o">:</span> <span class="kc">null</span><span class="p">,</span>
<span class="cm">/**</span>
<span class="cm"> * The parent CalendarGroup, only to be set explicitly by the parent group</span>
<span class="cm"> * @property parent</span>
<span class="cm"> * @type CalendarGroup</span>
<span class="cm"> */</span>
<span class="nx">parent</span> <span class="o">:</span> <span class="kc">null</span><span class="p">,</span>
<span class="cm">/**</span>
<span class="cm"> * The index of this item in the parent group</span>
<span class="cm"> * @property index</span>
<span class="cm"> * @type Number</span>
<span class="cm"> */</span>
<span class="nx">index</span> <span class="o">:</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span>
<span class="cm">/**</span>
<span class="cm"> * The collection of calendar table cells</span>
<span class="cm"> * @property cells</span>
<span class="cm"> * @type HTMLTableCellElement[]</span>
<span class="cm"> */</span>
<span class="nx">cells</span> <span class="o">:</span> <span class="kc">null</span><span class="p">,</span>
<span class="cm">/**</span>
<span class="cm"> * The collection of calendar cell dates that is parallel to the cells collection. The array contains dates field arrays in the format of [YYYY, M, D].</span>
<span class="cm"> * @property cellDates</span>
<span class="cm"> * @type Array[](Number[])</span>
<span class="cm"> */</span>
<span class="nx">cellDates</span> <span class="o">:</span> <span class="kc">null</span><span class="p">,</span>
<span class="cm">/**</span>
<span class="cm"> * The id that uniquely identifies this Calendar.</span>
<span class="cm"> * @property id</span>
<span class="cm"> * @type String</span>
<span class="cm"> */</span>
<span class="nx">id</span> <span class="o">:</span> <span class="kc">null</span><span class="p">,</span>
<span class="cm">/**</span>
<span class="cm"> * The unique id associated with the Calendar&#39;s container</span>
<span class="cm"> * @property containerId</span>
<span class="cm"> * @type String</span>
<span class="cm"> */</span>
<span class="nx">containerId</span><span class="o">:</span> <span class="kc">null</span><span class="p">,</span>
<span class="cm">/**</span>
<span class="cm"> * The DOM element reference that points to this calendar&#39;s container element. The calendar will be inserted into this element when the shell is rendered.</span>
<span class="cm"> * @property oDomContainer</span>
<span class="cm"> * @type HTMLElement</span>
<span class="cm"> */</span>
<span class="nx">oDomContainer</span> <span class="o">:</span> <span class="kc">null</span><span class="p">,</span>
<span class="cm">/**</span>
<span class="cm"> * A Date object representing today&#39;s date.</span>
<span class="cm"> * @deprecated Use the &quot;today&quot; configuration property</span>
<span class="cm"> * @property today</span>
<span class="cm"> * @type Date</span>
<span class="cm"> */</span>
<span class="nx">today</span> <span class="o">:</span> <span class="kc">null</span><span class="p">,</span>
<span class="cm">/**</span>
<span class="cm"> * The list of render functions, along with required parameters, used to render cells. </span>
<span class="cm"> * @property renderStack</span>
<span class="cm"> * @type Array[]</span>
<span class="cm"> */</span>
<span class="nx">renderStack</span> <span class="o">:</span> <span class="kc">null</span><span class="p">,</span>
<span class="cm">/**</span>
<span class="cm"> * A copy of the initial render functions created before rendering.</span>
<span class="cm"> * @property _renderStack</span>
<span class="cm"> * @private</span>
<span class="cm"> * @type Array</span>
<span class="cm"> */</span>
<span class="nx">_renderStack</span> <span class="o">:</span> <span class="kc">null</span><span class="p">,</span>
<span class="cm">/**</span>
<span class="cm"> * A reference to the CalendarNavigator instance created for this Calendar.</span>
<span class="cm"> * Will be null if the &quot;navigator&quot; configuration property has not been set</span>
<span class="cm"> * @property oNavigator</span>
<span class="cm"> * @type CalendarNavigator</span>
<span class="cm"> */</span>
<span class="nx">oNavigator</span> <span class="o">:</span> <span class="kc">null</span><span class="p">,</span>
<span class="cm">/**</span>
<span class="cm"> * The private list of initially selected dates.</span>
<span class="cm"> * @property _selectedDates</span>
<span class="cm"> * @private</span>
<span class="cm"> * @type Array</span>
<span class="cm"> */</span>
<span class="nx">_selectedDates</span> <span class="o">:</span> <span class="kc">null</span><span class="p">,</span>
<span class="cm">/**</span>
<span class="cm"> * A map of DOM event handlers to attach to cells associated with specific CSS class names</span>
<span class="cm"> * @property domEventMap</span>
<span class="cm"> * @type Object</span>
<span class="cm"> */</span>
<span class="nx">domEventMap</span> <span class="o">:</span> <span class="kc">null</span><span class="p">,</span>
<span class="cm">/**</span>
<span class="cm"> * Protected helper used to parse Calendar constructor/init arguments.</span>
<span class="cm"> *</span>
<span class="cm"> * As of 2.4.0, Calendar supports a simpler constructor </span>
<span class="cm"> * signature. This method reconciles arguments</span>
<span class="cm"> * received in the pre 2.4.0 and 2.4.0 formats.</span>
<span class="cm"> * </span>
<span class="cm"> * @protected</span>
<span class="cm"> * @method _parseArgs</span>
<span class="cm"> * @param {Array} Function &quot;arguments&quot; array</span>
<span class="cm"> * @return {Object} Object with id, container, config properties containing</span>
<span class="cm"> * the reconciled argument values.</span>
<span class="cm"> **/</span>
<span class="nx">_parseArgs</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">args</span><span class="p">)</span> <span class="p">{</span>
<span class="cm">/*</span>
<span class="cm"> 2.4.0 Constructors signatures</span>
<span class="cm"> new Calendar(String)</span>
<span class="cm"> new Calendar(HTMLElement)</span>
<span class="cm"> new Calendar(String, ConfigObject)</span>
<span class="cm"> new Calendar(HTMLElement, ConfigObject)</span>
<span class="cm"> Pre 2.4.0 Constructor signatures</span>
<span class="cm"> new Calendar(String, String)</span>
<span class="cm"> new Calendar(String, HTMLElement)</span>
<span class="cm"> new Calendar(String, String, ConfigObject)</span>
<span class="cm"> new Calendar(String, HTMLElement, ConfigObject)</span>
<span class="cm"> */</span>
<span class="kd">var</span> <span class="nx">nArgs</span> <span class="o">=</span> <span class="p">{</span><span class="nx">id</span><span class="o">:</span><span class="kc">null</span><span class="p">,</span> <span class="nx">container</span><span class="o">:</span><span class="kc">null</span><span class="p">,</span> <span class="nx">config</span><span class="o">:</span><span class="kc">null</span><span class="p">};</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">args</span> <span class="o">&amp;&amp;</span> <span class="nx">args</span><span class="p">.</span><span class="nx">length</span> <span class="o">&amp;&amp;</span> <span class="nx">args</span><span class="p">.</span><span class="nx">length</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span>
<span class="k">switch</span> <span class="p">(</span><span class="nx">args</span><span class="p">.</span><span class="nx">length</span><span class="p">)</span> <span class="p">{</span>
<span class="k">case</span> <span class="mi">1</span><span class="o">:</span>
<span class="nx">nArgs</span><span class="p">.</span><span class="nx">id</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span>
<span class="nx">nArgs</span><span class="p">.</span><span class="nx">container</span> <span class="o">=</span> <span class="nx">args</span><span class="p">[</span><span class="mi">0</span><span class="p">];</span>
<span class="nx">nArgs</span><span class="p">.</span><span class="nx">config</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span>
<span class="k">break</span><span class="p">;</span>
<span class="k">case</span> <span class="mi">2</span><span class="o">:</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">Lang</span><span class="p">.</span><span class="nx">isObject</span><span class="p">(</span><span class="nx">args</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span> <span class="o">&amp;&amp;</span> <span class="o">!</span><span class="nx">args</span><span class="p">[</span><span class="mi">1</span><span class="p">].</span><span class="nx">tagName</span> <span class="o">&amp;&amp;</span> <span class="o">!</span><span class="p">(</span><span class="nx">args</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="k">instanceof</span> <span class="nb">String</span><span class="p">))</span> <span class="p">{</span>
<span class="nx">nArgs</span><span class="p">.</span><span class="nx">id</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span>
<span class="nx">nArgs</span><span class="p">.</span><span class="nx">container</span> <span class="o">=</span> <span class="nx">args</span><span class="p">[</span><span class="mi">0</span><span class="p">];</span>
<span class="nx">nArgs</span><span class="p">.</span><span class="nx">config</span> <span class="o">=</span> <span class="nx">args</span><span class="p">[</span><span class="mi">1</span><span class="p">];</span>
<span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
<span class="nx">nArgs</span><span class="p">.</span><span class="nx">id</span> <span class="o">=</span> <span class="nx">args</span><span class="p">[</span><span class="mi">0</span><span class="p">];</span>
<span class="nx">nArgs</span><span class="p">.</span><span class="nx">container</span> <span class="o">=</span> <span class="nx">args</span><span class="p">[</span><span class="mi">1</span><span class="p">];</span>
<span class="nx">nArgs</span><span class="p">.</span><span class="nx">config</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span>
<span class="p">}</span>
<span class="k">break</span><span class="p">;</span>
<span class="k">default</span><span class="o">:</span> <span class="c1">// 3+</span>
<span class="nx">nArgs</span><span class="p">.</span><span class="nx">id</span> <span class="o">=</span> <span class="nx">args</span><span class="p">[</span><span class="mi">0</span><span class="p">];</span>
<span class="nx">nArgs</span><span class="p">.</span><span class="nx">container</span> <span class="o">=</span> <span class="nx">args</span><span class="p">[</span><span class="mi">1</span><span class="p">];</span>
<span class="nx">nArgs</span><span class="p">.</span><span class="nx">config</span> <span class="o">=</span> <span class="nx">args</span><span class="p">[</span><span class="mi">2</span><span class="p">];</span>
<span class="k">break</span><span class="p">;</span>
<span class="p">}</span>
<span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">logger</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s2">&quot;Invalid constructor/init arguments&quot;</span><span class="p">,</span> <span class="s2">&quot;error&quot;</span><span class="p">);</span>
<span class="p">}</span>
<span class="k">return</span> <span class="nx">nArgs</span><span class="p">;</span>
<span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * Initializes the Calendar widget.</span>
<span class="cm"> * @method init</span>
<span class="cm"> *</span>
<span class="cm"> * @param {String} id optional The id of the table element that will represent the Calendar widget. As of 2.4.0, this argument is optional.</span>
<span class="cm"> * @param {String | HTMLElement} container The id of the container div element that will wrap the Calendar table, or a reference to a DIV element which exists in the document.</span>
<span class="cm"> * @param {Object} config optional The configuration object containing the initial configuration values for the Calendar.</span>
<span class="cm"> */</span>
<span class="nx">init</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">id</span><span class="p">,</span> <span class="nx">container</span><span class="p">,</span> <span class="nx">config</span><span class="p">)</span> <span class="p">{</span>
<span class="c1">// Normalize 2.4.0, pre 2.4.0 args</span>
<span class="kd">var</span> <span class="nx">nArgs</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">_parseArgs</span><span class="p">(</span><span class="nx">arguments</span><span class="p">);</span>
<span class="nx">id</span> <span class="o">=</span> <span class="nx">nArgs</span><span class="p">.</span><span class="nx">id</span><span class="p">;</span>
<span class="nx">container</span> <span class="o">=</span> <span class="nx">nArgs</span><span class="p">.</span><span class="nx">container</span><span class="p">;</span>
<span class="nx">config</span> <span class="o">=</span> <span class="nx">nArgs</span><span class="p">.</span><span class="nx">config</span><span class="p">;</span>
<span class="k">this</span><span class="p">.</span><span class="nx">oDomContainer</span> <span class="o">=</span> <span class="nx">Dom</span><span class="p">.</span><span class="nx">get</span><span class="p">(</span><span class="nx">container</span><span class="p">);</span>
<span class="c1">// Removing due to order of operations issue [ logger/id ]. </span>
<span class="c1">// The log is kind of pointless because it&#39;ll barf on the next statement anyway.</span>
<span class="c1">// Any code related changes are beyond the scope of 2.9.0 at this point </span>
<span class="c1">// if (!this.oDomContainer) { this.logger.log(&quot;Container not found in document.&quot;, &quot;error&quot;); }</span>
<span class="k">this</span><span class="p">.</span><span class="nx">_oDoc</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">oDomContainer</span><span class="p">.</span><span class="nx">ownerDocument</span><span class="p">;</span>
<span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="k">this</span><span class="p">.</span><span class="nx">oDomContainer</span><span class="p">.</span><span class="nx">id</span><span class="p">)</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">oDomContainer</span><span class="p">.</span><span class="nx">id</span> <span class="o">=</span> <span class="nx">Dom</span><span class="p">.</span><span class="nx">generateId</span><span class="p">();</span>
<span class="p">}</span>
<span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">id</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">id</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">oDomContainer</span><span class="p">.</span><span class="nx">id</span> <span class="o">+</span> <span class="s2">&quot;_t&quot;</span><span class="p">;</span>
<span class="p">}</span>
<span class="k">this</span><span class="p">.</span><span class="nx">id</span> <span class="o">=</span> <span class="nx">id</span><span class="p">;</span>
<span class="k">this</span><span class="p">.</span><span class="nx">containerId</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">oDomContainer</span><span class="p">.</span><span class="nx">id</span><span class="p">;</span>
<span class="k">this</span><span class="p">.</span><span class="nx">logger</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">widget</span><span class="p">.</span><span class="nx">LogWriter</span><span class="p">(</span><span class="s2">&quot;Calendar &quot;</span> <span class="o">+</span> <span class="k">this</span><span class="p">.</span><span class="nx">id</span><span class="p">);</span>
<span class="k">this</span><span class="p">.</span><span class="nx">initEvents</span><span class="p">();</span>
<span class="cm">/**</span>
<span class="cm"> * The Config object used to hold the configuration variables for the Calendar</span>
<span class="cm"> * @property cfg</span>
<span class="cm"> * @type YAHOO.util.Config</span>
<span class="cm"> */</span>
<span class="k">this</span><span class="p">.</span><span class="nx">cfg</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">util</span><span class="p">.</span><span class="nx">Config</span><span class="p">(</span><span class="k">this</span><span class="p">);</span>
<span class="cm">/**</span>
<span class="cm"> * The local object which contains the Calendar&#39;s options</span>
<span class="cm"> * @property Options</span>
<span class="cm"> * @type Object</span>
<span class="cm"> */</span>
<span class="k">this</span><span class="p">.</span><span class="nx">Options</span> <span class="o">=</span> <span class="p">{};</span>
<span class="cm">/**</span>
<span class="cm"> * The local object which contains the Calendar&#39;s locale settings</span>
<span class="cm"> * @property Locale</span>
<span class="cm"> * @type Object</span>
<span class="cm"> */</span>
<span class="k">this</span><span class="p">.</span><span class="nx">Locale</span> <span class="o">=</span> <span class="p">{};</span>
<span class="k">this</span><span class="p">.</span><span class="nx">initStyles</span><span class="p">();</span>
<span class="nx">Dom</span><span class="p">.</span><span class="nx">addClass</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">oDomContainer</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_CONTAINER</span><span class="p">);</span>
<span class="nx">Dom</span><span class="p">.</span><span class="nx">addClass</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">oDomContainer</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_SINGLE</span><span class="p">);</span>
<span class="k">this</span><span class="p">.</span><span class="nx">cellDates</span> <span class="o">=</span> <span class="p">[];</span>
<span class="k">this</span><span class="p">.</span><span class="nx">cells</span> <span class="o">=</span> <span class="p">[];</span>
<span class="k">this</span><span class="p">.</span><span class="nx">renderStack</span> <span class="o">=</span> <span class="p">[];</span>
<span class="k">this</span><span class="p">.</span><span class="nx">_renderStack</span> <span class="o">=</span> <span class="p">[];</span>
<span class="k">this</span><span class="p">.</span><span class="nx">setupConfig</span><span class="p">();</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">config</span><span class="p">)</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">applyConfig</span><span class="p">(</span><span class="nx">config</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>
<span class="p">}</span>
<span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">fireQueue</span><span class="p">();</span>
<span class="k">this</span><span class="p">.</span><span class="nx">today</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="s2">&quot;today&quot;</span><span class="p">);</span>
<span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * Default Config listener for the iframe property. If the iframe config property is set to true, </span>
<span class="cm"> * renders the built-in IFRAME shim if the container is relatively or absolutely positioned.</span>
<span class="cm"> * </span>
<span class="cm"> * @method configIframe</span>
<span class="cm"> */</span>
<span class="nx">configIframe</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">type</span><span class="p">,</span> <span class="nx">args</span><span class="p">,</span> <span class="nx">obj</span><span class="p">)</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">useIframe</span> <span class="o">=</span> <span class="nx">args</span><span class="p">[</span><span class="mi">0</span><span class="p">];</span>
<span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="k">this</span><span class="p">.</span><span class="nx">parent</span><span class="p">)</span> <span class="p">{</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">inDocument</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">oDomContainer</span><span class="p">))</span> <span class="p">{</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">useIframe</span><span class="p">)</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">pos</span> <span class="o">=</span> <span class="nx">Dom</span><span class="p">.</span><span class="nx">getStyle</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">oDomContainer</span><span class="p">,</span> <span class="s2">&quot;position&quot;</span><span class="p">);</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">pos</span> <span class="o">==</span> <span class="s2">&quot;absolute&quot;</span> <span class="o">||</span> <span class="nx">pos</span> <span class="o">==</span> <span class="s2">&quot;relative&quot;</span><span class="p">)</span> <span class="p">{</span>
<span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">inDocument</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">iframe</span><span class="p">))</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">iframe</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">createElement</span><span class="p">(</span><span class="s2">&quot;iframe&quot;</span><span class="p">);</span>
<span class="k">this</span><span class="p">.</span><span class="nx">iframe</span><span class="p">.</span><span class="nx">src</span> <span class="o">=</span> <span class="s2">&quot;javascript:false;&quot;</span><span class="p">;</span>
<span class="nx">Dom</span><span class="p">.</span><span class="nx">setStyle</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">iframe</span><span class="p">,</span> <span class="s2">&quot;opacity&quot;</span><span class="p">,</span> <span class="s2">&quot;0&quot;</span><span class="p">);</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">YAHOO</span><span class="p">.</span><span class="nx">env</span><span class="p">.</span><span class="nx">ua</span><span class="p">.</span><span class="nx">ie</span> <span class="o">&amp;&amp;</span> <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">env</span><span class="p">.</span><span class="nx">ua</span><span class="p">.</span><span class="nx">ie</span> <span class="o">&lt;=</span> <span class="mi">6</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">Dom</span><span class="p">.</span><span class="nx">addClass</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">iframe</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_FIXED_SIZE</span><span class="p">);</span>
<span class="p">}</span>
<span class="k">this</span><span class="p">.</span><span class="nx">oDomContainer</span><span class="p">.</span><span class="nx">insertBefore</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">iframe</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">oDomContainer</span><span class="p">.</span><span class="nx">firstChild</span><span class="p">);</span>
<span class="p">}</span>
<span class="p">}</span>
<span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
<span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">iframe</span><span class="p">)</span> <span class="p">{</span>
<span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">iframe</span><span class="p">.</span><span class="nx">parentNode</span><span class="p">)</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">iframe</span><span class="p">.</span><span class="nx">parentNode</span><span class="p">.</span><span class="nx">removeChild</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">iframe</span><span class="p">);</span>
<span class="p">}</span>
<span class="k">this</span><span class="p">.</span><span class="nx">iframe</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span>
<span class="p">}</span>
<span class="p">}</span>
<span class="p">}</span>
<span class="p">}</span>
<span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * Default handler for the &quot;title&quot; property</span>
<span class="cm"> * @method configTitle</span>
<span class="cm"> */</span>
<span class="nx">configTitle</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">type</span><span class="p">,</span> <span class="nx">args</span><span class="p">,</span> <span class="nx">obj</span><span class="p">)</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">title</span> <span class="o">=</span> <span class="nx">args</span><span class="p">[</span><span class="mi">0</span><span class="p">];</span>
<span class="c1">// &quot;&quot; disables title bar</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">title</span><span class="p">)</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">createTitleBar</span><span class="p">(</span><span class="nx">title</span><span class="p">);</span>
<span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">close</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">CLOSE</span><span class="p">.</span><span class="nx">key</span><span class="p">);</span>
<span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">close</span><span class="p">)</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">removeTitleBar</span><span class="p">();</span>
<span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">createTitleBar</span><span class="p">(</span><span class="s2">&quot;&amp;#160;&quot;</span><span class="p">);</span>
<span class="p">}</span>
<span class="p">}</span>
<span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * Default handler for the &quot;close&quot; property</span>
<span class="cm"> * @method configClose</span>
<span class="cm"> */</span>
<span class="nx">configClose</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">type</span><span class="p">,</span> <span class="nx">args</span><span class="p">,</span> <span class="nx">obj</span><span class="p">)</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">close</span> <span class="o">=</span> <span class="nx">args</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span>
<span class="nx">title</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">TITLE</span><span class="p">.</span><span class="nx">key</span><span class="p">);</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">close</span><span class="p">)</span> <span class="p">{</span>
<span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">title</span><span class="p">)</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">createTitleBar</span><span class="p">(</span><span class="s2">&quot;&amp;#160;&quot;</span><span class="p">);</span>
<span class="p">}</span>
<span class="k">this</span><span class="p">.</span><span class="nx">createCloseButton</span><span class="p">();</span>
<span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">removeCloseButton</span><span class="p">();</span>
<span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">title</span><span class="p">)</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">removeTitleBar</span><span class="p">();</span>
<span class="p">}</span>
<span class="p">}</span>
<span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * Initializes Calendar&#39;s built-in CustomEvents</span>
<span class="cm"> * @method initEvents</span>
<span class="cm"> */</span>
<span class="nx">initEvents</span> <span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">defEvents</span> <span class="o">=</span> <span class="nx">Calendar</span><span class="p">.</span><span class="nx">_EVENT_TYPES</span><span class="p">,</span>
<span class="nx">CE</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">util</span><span class="p">.</span><span class="nx">CustomEvent</span><span class="p">,</span>
<span class="nx">cal</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span> <span class="c1">// To help with minification</span>
<span class="cm">/**</span>
<span class="cm"> * Fired before a date selection is made</span>
<span class="cm"> * @event beforeSelectEvent</span>
<span class="cm"> */</span>
<span class="nx">cal</span><span class="p">.</span><span class="nx">beforeSelectEvent</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">CE</span><span class="p">(</span><span class="nx">defEvents</span><span class="p">.</span><span class="nx">BEFORE_SELECT</span><span class="p">);</span>
<span class="cm">/**</span>
<span class="cm"> * Fired when a date selection is made</span>
<span class="cm"> * @event selectEvent</span>
<span class="cm"> * @param {Array} Array of Date field arrays in the format [YYYY, MM, DD].</span>
<span class="cm"> */</span>
<span class="nx">cal</span><span class="p">.</span><span class="nx">selectEvent</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">CE</span><span class="p">(</span><span class="nx">defEvents</span><span class="p">.</span><span class="nx">SELECT</span><span class="p">);</span>
<span class="cm">/**</span>
<span class="cm"> * Fired before a date or set of dates is deselected</span>
<span class="cm"> * @event beforeDeselectEvent</span>
<span class="cm"> */</span>
<span class="nx">cal</span><span class="p">.</span><span class="nx">beforeDeselectEvent</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">CE</span><span class="p">(</span><span class="nx">defEvents</span><span class="p">.</span><span class="nx">BEFORE_DESELECT</span><span class="p">);</span>
<span class="cm">/**</span>
<span class="cm"> * Fired when a date or set of dates is deselected</span>
<span class="cm"> * @event deselectEvent</span>
<span class="cm"> * @param {Array} Array of Date field arrays in the format [YYYY, MM, DD].</span>
<span class="cm"> */</span>
<span class="nx">cal</span><span class="p">.</span><span class="nx">deselectEvent</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">CE</span><span class="p">(</span><span class="nx">defEvents</span><span class="p">.</span><span class="nx">DESELECT</span><span class="p">);</span>
<span class="cm">/**</span>
<span class="cm"> * Fired when the Calendar page is changed</span>
<span class="cm"> * @event changePageEvent</span>
<span class="cm"> * @param {Date} prevDate The date before the page was changed</span>
<span class="cm"> * @param {Date} newDate The date after the page was changed</span>
<span class="cm"> */</span>
<span class="nx">cal</span><span class="p">.</span><span class="nx">changePageEvent</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">CE</span><span class="p">(</span><span class="nx">defEvents</span><span class="p">.</span><span class="nx">CHANGE_PAGE</span><span class="p">);</span>
<span class="cm">/**</span>
<span class="cm"> * Fired before the Calendar is rendered</span>
<span class="cm"> * @event beforeRenderEvent</span>
<span class="cm"> */</span>
<span class="nx">cal</span><span class="p">.</span><span class="nx">beforeRenderEvent</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">CE</span><span class="p">(</span><span class="nx">defEvents</span><span class="p">.</span><span class="nx">BEFORE_RENDER</span><span class="p">);</span>
<span class="cm">/**</span>
<span class="cm"> * Fired when the Calendar is rendered</span>
<span class="cm"> * @event renderEvent</span>
<span class="cm"> */</span>
<span class="nx">cal</span><span class="p">.</span><span class="nx">renderEvent</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">CE</span><span class="p">(</span><span class="nx">defEvents</span><span class="p">.</span><span class="nx">RENDER</span><span class="p">);</span>
<span class="cm">/**</span>
<span class="cm"> * Fired just before the Calendar is to be destroyed</span>
<span class="cm"> * @event beforeDestroyEvent</span>
<span class="cm"> */</span>
<span class="nx">cal</span><span class="p">.</span><span class="nx">beforeDestroyEvent</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">CE</span><span class="p">(</span><span class="nx">defEvents</span><span class="p">.</span><span class="nx">BEFORE_DESTROY</span><span class="p">);</span>
<span class="cm">/**</span>
<span class="cm"> * Fired after the Calendar is destroyed. This event should be used</span>
<span class="cm"> * for notification only. When this event is fired, important Calendar instance</span>
<span class="cm"> * properties, dom references and event listeners have already been </span>
<span class="cm"> * removed/dereferenced, and hence the Calendar instance is not in a usable </span>
<span class="cm"> * state.</span>
<span class="cm"> *</span>
<span class="cm"> * @event destroyEvent</span>
<span class="cm"> */</span>
<span class="nx">cal</span><span class="p">.</span><span class="nx">destroyEvent</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">CE</span><span class="p">(</span><span class="nx">defEvents</span><span class="p">.</span><span class="nx">DESTROY</span><span class="p">);</span>
<span class="cm">/**</span>
<span class="cm"> * Fired when the Calendar is reset</span>
<span class="cm"> * @event resetEvent</span>
<span class="cm"> */</span>
<span class="nx">cal</span><span class="p">.</span><span class="nx">resetEvent</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">CE</span><span class="p">(</span><span class="nx">defEvents</span><span class="p">.</span><span class="nx">RESET</span><span class="p">);</span>
<span class="cm">/**</span>
<span class="cm"> * Fired when the Calendar is cleared</span>
<span class="cm"> * @event clearEvent</span>
<span class="cm"> */</span>
<span class="nx">cal</span><span class="p">.</span><span class="nx">clearEvent</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">CE</span><span class="p">(</span><span class="nx">defEvents</span><span class="p">.</span><span class="nx">CLEAR</span><span class="p">);</span>
<span class="cm">/**</span>
<span class="cm"> * Fired just before the Calendar is to be shown</span>
<span class="cm"> * @event beforeShowEvent</span>
<span class="cm"> */</span>
<span class="nx">cal</span><span class="p">.</span><span class="nx">beforeShowEvent</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">CE</span><span class="p">(</span><span class="nx">defEvents</span><span class="p">.</span><span class="nx">BEFORE_SHOW</span><span class="p">);</span>
<span class="cm">/**</span>
<span class="cm"> * Fired after the Calendar is shown</span>
<span class="cm"> * @event showEvent</span>
<span class="cm"> */</span>
<span class="nx">cal</span><span class="p">.</span><span class="nx">showEvent</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">CE</span><span class="p">(</span><span class="nx">defEvents</span><span class="p">.</span><span class="nx">SHOW</span><span class="p">);</span>
<span class="cm">/**</span>
<span class="cm"> * Fired just before the Calendar is to be hidden</span>
<span class="cm"> * @event beforeHideEvent</span>
<span class="cm"> */</span>
<span class="nx">cal</span><span class="p">.</span><span class="nx">beforeHideEvent</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">CE</span><span class="p">(</span><span class="nx">defEvents</span><span class="p">.</span><span class="nx">BEFORE_HIDE</span><span class="p">);</span>
<span class="cm">/**</span>
<span class="cm"> * Fired after the Calendar is hidden</span>
<span class="cm"> * @event hideEvent</span>
<span class="cm"> */</span>
<span class="nx">cal</span><span class="p">.</span><span class="nx">hideEvent</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">CE</span><span class="p">(</span><span class="nx">defEvents</span><span class="p">.</span><span class="nx">HIDE</span><span class="p">);</span>
<span class="cm">/**</span>
<span class="cm"> * Fired just before the CalendarNavigator is to be shown</span>
<span class="cm"> * @event beforeShowNavEvent</span>
<span class="cm"> */</span>
<span class="nx">cal</span><span class="p">.</span><span class="nx">beforeShowNavEvent</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">CE</span><span class="p">(</span><span class="nx">defEvents</span><span class="p">.</span><span class="nx">BEFORE_SHOW_NAV</span><span class="p">);</span>
<span class="cm">/**</span>
<span class="cm"> * Fired after the CalendarNavigator is shown</span>
<span class="cm"> * @event showNavEvent</span>
<span class="cm"> */</span>
<span class="nx">cal</span><span class="p">.</span><span class="nx">showNavEvent</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">CE</span><span class="p">(</span><span class="nx">defEvents</span><span class="p">.</span><span class="nx">SHOW_NAV</span><span class="p">);</span>
<span class="cm">/**</span>
<span class="cm"> * Fired just before the CalendarNavigator is to be hidden</span>
<span class="cm"> * @event beforeHideNavEvent</span>
<span class="cm"> */</span>
<span class="nx">cal</span><span class="p">.</span><span class="nx">beforeHideNavEvent</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">CE</span><span class="p">(</span><span class="nx">defEvents</span><span class="p">.</span><span class="nx">BEFORE_HIDE_NAV</span><span class="p">);</span>
<span class="cm">/**</span>
<span class="cm"> * Fired after the CalendarNavigator is hidden</span>
<span class="cm"> * @event hideNavEvent</span>
<span class="cm"> */</span>
<span class="nx">cal</span><span class="p">.</span><span class="nx">hideNavEvent</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">CE</span><span class="p">(</span><span class="nx">defEvents</span><span class="p">.</span><span class="nx">HIDE_NAV</span><span class="p">);</span>
<span class="cm">/**</span>
<span class="cm"> * Fired just before the CalendarNavigator is to be rendered</span>
<span class="cm"> * @event beforeRenderNavEvent</span>
<span class="cm"> */</span>
<span class="nx">cal</span><span class="p">.</span><span class="nx">beforeRenderNavEvent</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">CE</span><span class="p">(</span><span class="nx">defEvents</span><span class="p">.</span><span class="nx">BEFORE_RENDER_NAV</span><span class="p">);</span>
<span class="cm">/**</span>
<span class="cm"> * Fired after the CalendarNavigator is rendered</span>
<span class="cm"> * @event renderNavEvent</span>
<span class="cm"> */</span>
<span class="nx">cal</span><span class="p">.</span><span class="nx">renderNavEvent</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">CE</span><span class="p">(</span><span class="nx">defEvents</span><span class="p">.</span><span class="nx">RENDER_NAV</span><span class="p">);</span>
<span class="nx">cal</span><span class="p">.</span><span class="nx">beforeSelectEvent</span><span class="p">.</span><span class="nx">subscribe</span><span class="p">(</span><span class="nx">cal</span><span class="p">.</span><span class="nx">onBeforeSelect</span><span class="p">,</span> <span class="k">this</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>
<span class="nx">cal</span><span class="p">.</span><span class="nx">selectEvent</span><span class="p">.</span><span class="nx">subscribe</span><span class="p">(</span><span class="nx">cal</span><span class="p">.</span><span class="nx">onSelect</span><span class="p">,</span> <span class="k">this</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>
<span class="nx">cal</span><span class="p">.</span><span class="nx">beforeDeselectEvent</span><span class="p">.</span><span class="nx">subscribe</span><span class="p">(</span><span class="nx">cal</span><span class="p">.</span><span class="nx">onBeforeDeselect</span><span class="p">,</span> <span class="k">this</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>
<span class="nx">cal</span><span class="p">.</span><span class="nx">deselectEvent</span><span class="p">.</span><span class="nx">subscribe</span><span class="p">(</span><span class="nx">cal</span><span class="p">.</span><span class="nx">onDeselect</span><span class="p">,</span> <span class="k">this</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>
<span class="nx">cal</span><span class="p">.</span><span class="nx">changePageEvent</span><span class="p">.</span><span class="nx">subscribe</span><span class="p">(</span><span class="nx">cal</span><span class="p">.</span><span class="nx">onChangePage</span><span class="p">,</span> <span class="k">this</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>
<span class="nx">cal</span><span class="p">.</span><span class="nx">renderEvent</span><span class="p">.</span><span class="nx">subscribe</span><span class="p">(</span><span class="nx">cal</span><span class="p">.</span><span class="nx">onRender</span><span class="p">,</span> <span class="k">this</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>
<span class="nx">cal</span><span class="p">.</span><span class="nx">resetEvent</span><span class="p">.</span><span class="nx">subscribe</span><span class="p">(</span><span class="nx">cal</span><span class="p">.</span><span class="nx">onReset</span><span class="p">,</span> <span class="k">this</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>
<span class="nx">cal</span><span class="p">.</span><span class="nx">clearEvent</span><span class="p">.</span><span class="nx">subscribe</span><span class="p">(</span><span class="nx">cal</span><span class="p">.</span><span class="nx">onClear</span><span class="p">,</span> <span class="k">this</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>
<span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * The default event handler for clicks on the &quot;Previous Month&quot; navigation UI</span>
<span class="cm"> *</span>
<span class="cm"> * @method doPreviousMonthNav</span>
<span class="cm"> * @param {DOMEvent} e The DOM event</span>
<span class="cm"> * @param {Calendar} cal A reference to the calendar</span>
<span class="cm"> */</span>
<span class="nx">doPreviousMonthNav</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">e</span><span class="p">,</span> <span class="nx">cal</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">Event</span><span class="p">.</span><span class="nx">preventDefault</span><span class="p">(</span><span class="nx">e</span><span class="p">);</span>
<span class="c1">// previousMonth invoked in a timeout, to allow</span>
<span class="c1">// event to bubble up, with correct target. Calling</span>
<span class="c1">// previousMonth, will call render which will remove </span>
<span class="c1">// HTML which generated the event, resulting in an </span>
<span class="c1">// invalid event target in certain browsers.</span>
<span class="nx">setTimeout</span><span class="p">(</span><span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
<span class="nx">cal</span><span class="p">.</span><span class="nx">previousMonth</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">navs</span> <span class="o">=</span> <span class="nx">Dom</span><span class="p">.</span><span class="nx">getElementsByClassName</span><span class="p">(</span><span class="nx">cal</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_NAV_LEFT</span><span class="p">,</span> <span class="s2">&quot;a&quot;</span><span class="p">,</span> <span class="nx">cal</span><span class="p">.</span><span class="nx">oDomContainer</span><span class="p">);</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">navs</span> <span class="o">&amp;&amp;</span> <span class="nx">navs</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span> <span class="p">{</span>
<span class="k">try</span> <span class="p">{</span>
<span class="nx">navs</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">focus</span><span class="p">();</span>
<span class="p">}</span> <span class="k">catch</span> <span class="p">(</span><span class="nx">ex</span><span class="p">)</span> <span class="p">{</span>
<span class="c1">// ignore</span>
<span class="p">}</span>
<span class="p">}</span>
<span class="p">},</span> <span class="mi">0</span><span class="p">);</span>
<span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * The default event handler for clicks on the &quot;Next Month&quot; navigation UI</span>
<span class="cm"> *</span>
<span class="cm"> * @method doNextMonthNav</span>
<span class="cm"> * @param {DOMEvent} e The DOM event</span>
<span class="cm"> * @param {Calendar} cal A reference to the calendar</span>
<span class="cm"> */</span>
<span class="nx">doNextMonthNav</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">e</span><span class="p">,</span> <span class="nx">cal</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">Event</span><span class="p">.</span><span class="nx">preventDefault</span><span class="p">(</span><span class="nx">e</span><span class="p">);</span>
<span class="nx">setTimeout</span><span class="p">(</span><span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
<span class="nx">cal</span><span class="p">.</span><span class="nx">nextMonth</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">navs</span> <span class="o">=</span> <span class="nx">Dom</span><span class="p">.</span><span class="nx">getElementsByClassName</span><span class="p">(</span><span class="nx">cal</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_NAV_RIGHT</span><span class="p">,</span> <span class="s2">&quot;a&quot;</span><span class="p">,</span> <span class="nx">cal</span><span class="p">.</span><span class="nx">oDomContainer</span><span class="p">);</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">navs</span> <span class="o">&amp;&amp;</span> <span class="nx">navs</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span> <span class="p">{</span>
<span class="k">try</span> <span class="p">{</span>
<span class="nx">navs</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">focus</span><span class="p">();</span>
<span class="p">}</span> <span class="k">catch</span> <span class="p">(</span><span class="nx">ex</span><span class="p">)</span> <span class="p">{</span>
<span class="c1">// ignore</span>
<span class="p">}</span>
<span class="p">}</span>
<span class="p">},</span> <span class="mi">0</span><span class="p">);</span>
<span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * The default event handler for date cell selection. Currently attached to </span>
<span class="cm"> * the Calendar&#39;s bounding box, referenced by it&#39;s &lt;a href=&quot;#property_oDomContainer&quot;&gt;oDomContainer&lt;/a&gt; property.</span>
<span class="cm"> *</span>
<span class="cm"> * @method doSelectCell</span>
<span class="cm"> * @param {DOMEvent} e The DOM event</span>
<span class="cm"> * @param {Calendar} cal A reference to the calendar</span>
<span class="cm"> */</span>
<span class="nx">doSelectCell</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">e</span><span class="p">,</span> <span class="nx">cal</span><span class="p">)</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">cell</span><span class="p">,</span> <span class="nx">d</span><span class="p">,</span> <span class="nx">date</span><span class="p">,</span> <span class="nx">index</span><span class="p">;</span>
<span class="kd">var</span> <span class="nx">target</span> <span class="o">=</span> <span class="nx">Event</span><span class="p">.</span><span class="nx">getTarget</span><span class="p">(</span><span class="nx">e</span><span class="p">),</span>
<span class="nx">tagName</span> <span class="o">=</span> <span class="nx">target</span><span class="p">.</span><span class="nx">tagName</span><span class="p">.</span><span class="nx">toLowerCase</span><span class="p">(),</span>
<span class="nx">defSelector</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span>
<span class="k">while</span> <span class="p">(</span><span class="nx">tagName</span> <span class="o">!=</span> <span class="s2">&quot;td&quot;</span> <span class="o">&amp;&amp;</span> <span class="o">!</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">hasClass</span><span class="p">(</span><span class="nx">target</span><span class="p">,</span> <span class="nx">cal</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_CELL_SELECTABLE</span><span class="p">))</span> <span class="p">{</span>
<span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">defSelector</span> <span class="o">&amp;&amp;</span> <span class="nx">tagName</span> <span class="o">==</span> <span class="s2">&quot;a&quot;</span> <span class="o">&amp;&amp;</span> <span class="nx">Dom</span><span class="p">.</span><span class="nx">hasClass</span><span class="p">(</span><span class="nx">target</span><span class="p">,</span> <span class="nx">cal</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_CELL_SELECTOR</span><span class="p">))</span> <span class="p">{</span>
<span class="nx">defSelector</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span>
<span class="p">}</span>
<span class="nx">target</span> <span class="o">=</span> <span class="nx">target</span><span class="p">.</span><span class="nx">parentNode</span><span class="p">;</span>
<span class="nx">tagName</span> <span class="o">=</span> <span class="nx">target</span><span class="p">.</span><span class="nx">tagName</span><span class="p">.</span><span class="nx">toLowerCase</span><span class="p">();</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">target</span> <span class="o">==</span> <span class="k">this</span><span class="p">.</span><span class="nx">oDomContainer</span> <span class="o">||</span> <span class="nx">tagName</span> <span class="o">==</span> <span class="s2">&quot;html&quot;</span><span class="p">)</span> <span class="p">{</span>
<span class="k">return</span><span class="p">;</span>
<span class="p">}</span>
<span class="p">}</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">defSelector</span><span class="p">)</span> <span class="p">{</span>
<span class="c1">// Stop link href navigation for default renderer</span>
<span class="nx">Event</span><span class="p">.</span><span class="nx">preventDefault</span><span class="p">(</span><span class="nx">e</span><span class="p">);</span>
<span class="p">}</span>
<span class="nx">cell</span> <span class="o">=</span> <span class="nx">target</span><span class="p">;</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">hasClass</span><span class="p">(</span><span class="nx">cell</span><span class="p">,</span> <span class="nx">cal</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_CELL_SELECTABLE</span><span class="p">))</span> <span class="p">{</span>
<span class="nx">index</span> <span class="o">=</span> <span class="nx">cal</span><span class="p">.</span><span class="nx">getIndexFromId</span><span class="p">(</span><span class="nx">cell</span><span class="p">.</span><span class="nx">id</span><span class="p">);</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">index</span> <span class="o">&gt;</span> <span class="o">-</span><span class="mi">1</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">d</span> <span class="o">=</span> <span class="nx">cal</span><span class="p">.</span><span class="nx">cellDates</span><span class="p">[</span><span class="nx">index</span><span class="p">];</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">d</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">date</span> <span class="o">=</span> <span class="nx">DateMath</span><span class="p">.</span><span class="nx">getDate</span><span class="p">(</span><span class="nx">d</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span><span class="nx">d</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="nx">d</span><span class="p">[</span><span class="mi">2</span><span class="p">]);</span>
<span class="kd">var</span> <span class="nx">link</span><span class="p">;</span>
<span class="nx">cal</span><span class="p">.</span><span class="nx">logger</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s2">&quot;Selecting cell &quot;</span> <span class="o">+</span> <span class="nx">index</span> <span class="o">+</span> <span class="s2">&quot; via click&quot;</span><span class="p">,</span> <span class="s2">&quot;info&quot;</span><span class="p">);</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">cal</span><span class="p">.</span><span class="nx">Options</span><span class="p">.</span><span class="nx">MULTI_SELECT</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">link</span> <span class="o">=</span> <span class="nx">cell</span><span class="p">.</span><span class="nx">getElementsByTagName</span><span class="p">(</span><span class="s2">&quot;a&quot;</span><span class="p">)[</span><span class="mi">0</span><span class="p">];</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">link</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">link</span><span class="p">.</span><span class="nx">blur</span><span class="p">();</span>
<span class="p">}</span>
<span class="kd">var</span> <span class="nx">cellDate</span> <span class="o">=</span> <span class="nx">cal</span><span class="p">.</span><span class="nx">cellDates</span><span class="p">[</span><span class="nx">index</span><span class="p">];</span>
<span class="kd">var</span> <span class="nx">cellDateIndex</span> <span class="o">=</span> <span class="nx">cal</span><span class="p">.</span><span class="nx">_indexOfSelectedFieldArray</span><span class="p">(</span><span class="nx">cellDate</span><span class="p">);</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">cellDateIndex</span> <span class="o">&gt;</span> <span class="o">-</span><span class="mi">1</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">cal</span><span class="p">.</span><span class="nx">deselectCell</span><span class="p">(</span><span class="nx">index</span><span class="p">);</span>
<span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
<span class="nx">cal</span><span class="p">.</span><span class="nx">selectCell</span><span class="p">(</span><span class="nx">index</span><span class="p">);</span>
<span class="p">}</span>
<span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
<span class="nx">link</span> <span class="o">=</span> <span class="nx">cell</span><span class="p">.</span><span class="nx">getElementsByTagName</span><span class="p">(</span><span class="s2">&quot;a&quot;</span><span class="p">)[</span><span class="mi">0</span><span class="p">];</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">link</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">link</span><span class="p">.</span><span class="nx">blur</span><span class="p">();</span>
<span class="p">}</span>
<span class="nx">cal</span><span class="p">.</span><span class="nx">selectCell</span><span class="p">(</span><span class="nx">index</span><span class="p">);</span>
<span class="p">}</span>
<span class="p">}</span>
<span class="p">}</span>
<span class="p">}</span>
<span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * The event that is executed when the user hovers over a cell</span>
<span class="cm"> * @method doCellMouseOver</span>
<span class="cm"> * @param {DOMEvent} e The event</span>
<span class="cm"> * @param {Calendar} cal A reference to the calendar passed by the Event utility</span>
<span class="cm"> */</span>
<span class="nx">doCellMouseOver</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">e</span><span class="p">,</span> <span class="nx">cal</span><span class="p">)</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">target</span><span class="p">;</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">e</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">target</span> <span class="o">=</span> <span class="nx">Event</span><span class="p">.</span><span class="nx">getTarget</span><span class="p">(</span><span class="nx">e</span><span class="p">);</span>
<span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
<span class="nx">target</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span>
<span class="p">}</span>
<span class="k">while</span> <span class="p">(</span><span class="nx">target</span><span class="p">.</span><span class="nx">tagName</span> <span class="o">&amp;&amp;</span> <span class="nx">target</span><span class="p">.</span><span class="nx">tagName</span><span class="p">.</span><span class="nx">toLowerCase</span><span class="p">()</span> <span class="o">!=</span> <span class="s2">&quot;td&quot;</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">target</span> <span class="o">=</span> <span class="nx">target</span><span class="p">.</span><span class="nx">parentNode</span><span class="p">;</span>
<span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">target</span><span class="p">.</span><span class="nx">tagName</span> <span class="o">||</span> <span class="nx">target</span><span class="p">.</span><span class="nx">tagName</span><span class="p">.</span><span class="nx">toLowerCase</span><span class="p">()</span> <span class="o">==</span> <span class="s2">&quot;html&quot;</span><span class="p">)</span> <span class="p">{</span>
<span class="k">return</span><span class="p">;</span>
<span class="p">}</span>
<span class="p">}</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">hasClass</span><span class="p">(</span><span class="nx">target</span><span class="p">,</span> <span class="nx">cal</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_CELL_SELECTABLE</span><span class="p">))</span> <span class="p">{</span>
<span class="nx">Dom</span><span class="p">.</span><span class="nx">addClass</span><span class="p">(</span><span class="nx">target</span><span class="p">,</span> <span class="nx">cal</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_CELL_HOVER</span><span class="p">);</span>
<span class="p">}</span>
<span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * The event that is executed when the user moves the mouse out of a cell</span>
<span class="cm"> * @method doCellMouseOut</span>
<span class="cm"> * @param {DOMEvent} e The event</span>
<span class="cm"> * @param {Calendar} cal A reference to the calendar passed by the Event utility</span>
<span class="cm"> */</span>
<span class="nx">doCellMouseOut</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">e</span><span class="p">,</span> <span class="nx">cal</span><span class="p">)</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">target</span><span class="p">;</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">e</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">target</span> <span class="o">=</span> <span class="nx">Event</span><span class="p">.</span><span class="nx">getTarget</span><span class="p">(</span><span class="nx">e</span><span class="p">);</span>
<span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
<span class="nx">target</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span>
<span class="p">}</span>
<span class="k">while</span> <span class="p">(</span><span class="nx">target</span><span class="p">.</span><span class="nx">tagName</span> <span class="o">&amp;&amp;</span> <span class="nx">target</span><span class="p">.</span><span class="nx">tagName</span><span class="p">.</span><span class="nx">toLowerCase</span><span class="p">()</span> <span class="o">!=</span> <span class="s2">&quot;td&quot;</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">target</span> <span class="o">=</span> <span class="nx">target</span><span class="p">.</span><span class="nx">parentNode</span><span class="p">;</span>
<span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">target</span><span class="p">.</span><span class="nx">tagName</span> <span class="o">||</span> <span class="nx">target</span><span class="p">.</span><span class="nx">tagName</span><span class="p">.</span><span class="nx">toLowerCase</span><span class="p">()</span> <span class="o">==</span> <span class="s2">&quot;html&quot;</span><span class="p">)</span> <span class="p">{</span>
<span class="k">return</span><span class="p">;</span>
<span class="p">}</span>
<span class="p">}</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">hasClass</span><span class="p">(</span><span class="nx">target</span><span class="p">,</span> <span class="nx">cal</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_CELL_SELECTABLE</span><span class="p">))</span> <span class="p">{</span>
<span class="nx">Dom</span><span class="p">.</span><span class="nx">removeClass</span><span class="p">(</span><span class="nx">target</span><span class="p">,</span> <span class="nx">cal</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_CELL_HOVER</span><span class="p">);</span>
<span class="p">}</span>
<span class="p">},</span>
<span class="nx">setupConfig</span> <span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">cfg</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">;</span>
<span class="cm">/**</span>
<span class="cm"> * The date to use to represent &quot;Today&quot;.</span>
<span class="cm"> *</span>
<span class="cm"> * @config today</span>
<span class="cm"> * @type Date</span>
<span class="cm"> * @default The client side date (new Date()) when the Calendar is instantiated.</span>
<span class="cm"> */</span>
<span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">TODAY</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span> <span class="nx">value</span><span class="o">:</span> <span class="k">new</span> <span class="nb">Date</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">TODAY</span><span class="p">.</span><span class="nx">value</span><span class="p">.</span><span class="nx">getTime</span><span class="p">()),</span> <span class="nx">supercedes</span><span class="o">:</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">TODAY</span><span class="p">.</span><span class="nx">supercedes</span><span class="p">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="p">.</span><span class="nx">configToday</span><span class="p">,</span> <span class="nx">suppressEvent</span><span class="o">:</span><span class="kc">true</span> <span class="p">}</span> <span class="p">);</span>
<span class="cm">/**</span>
<span class="cm"> * The month/year representing the current visible Calendar date (mm/yyyy)</span>
<span class="cm"> * @config pagedate</span>
<span class="cm"> * @type String | Date</span>
<span class="cm"> * @default Today&#39;s date</span>
<span class="cm"> */</span>
<span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">PAGEDATE</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span> <span class="nx">value</span><span class="o">:</span> <span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">PAGEDATE</span><span class="p">.</span><span class="nx">value</span> <span class="o">||</span> <span class="k">new</span> <span class="nb">Date</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">TODAY</span><span class="p">.</span><span class="nx">value</span><span class="p">.</span><span class="nx">getTime</span><span class="p">()),</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="p">.</span><span class="nx">configPageDate</span> <span class="p">}</span> <span class="p">);</span>
<span class="cm">/**</span>
<span class="cm"> * The date or range of dates representing the current Calendar selection</span>
<span class="cm"> * @config selected</span>
<span class="cm"> * @type String</span>
<span class="cm"> * @default []</span>
<span class="cm"> */</span>
<span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">SELECTED</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">SELECTED</span><span class="p">.</span><span class="nx">value</span><span class="p">.</span><span class="nx">concat</span><span class="p">(),</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="p">.</span><span class="nx">configSelected</span> <span class="p">}</span> <span class="p">);</span>
<span class="cm">/**</span>
<span class="cm"> * The title to display above the Calendar&#39;s month header. The title is inserted into the DOM as HTML, and should be escaped by the implementor if coming from an external source. </span>
<span class="cm"> * @config title</span>
<span class="cm"> * @type HTML</span>
<span class="cm"> * @default &quot;&quot;</span>
<span class="cm"> */</span>
<span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">TITLE</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">TITLE</span><span class="p">.</span><span class="nx">value</span><span class="p">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="p">.</span><span class="nx">configTitle</span> <span class="p">}</span> <span class="p">);</span>
<span class="cm">/**</span>
<span class="cm"> * Whether or not a close button should be displayed for this Calendar</span>
<span class="cm"> * @config close</span>
<span class="cm"> * @type Boolean</span>
<span class="cm"> * @default false</span>
<span class="cm"> */</span>
<span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">CLOSE</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">CLOSE</span><span class="p">.</span><span class="nx">value</span><span class="p">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="p">.</span><span class="nx">configClose</span> <span class="p">}</span> <span class="p">);</span>
<span class="cm">/**</span>
<span class="cm"> * Whether or not an iframe shim should be placed under the Calendar to prevent select boxes from bleeding through in Internet Explorer 6 and below.</span>
<span class="cm"> * This property is enabled by default for IE6 and below. It is disabled by default for other browsers for performance reasons, but can be </span>
<span class="cm"> * enabled if required.</span>
<span class="cm"> * </span>
<span class="cm"> * @config iframe</span>
<span class="cm"> * @type Boolean</span>
<span class="cm"> * @default true for IE6 and below, false for all other browsers</span>
<span class="cm"> */</span>
<span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">IFRAME</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">IFRAME</span><span class="p">.</span><span class="nx">value</span><span class="p">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="p">.</span><span class="nx">configIframe</span><span class="p">,</span> <span class="nx">validator</span><span class="o">:</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">checkBoolean</span> <span class="p">}</span> <span class="p">);</span>
<span class="cm">/**</span>
<span class="cm"> * The minimum selectable date in the current Calendar (mm/dd/yyyy)</span>
<span class="cm"> * @config mindate</span>
<span class="cm"> * @type String | Date</span>
<span class="cm"> * @default null</span>
<span class="cm"> */</span>
<span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MINDATE</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MINDATE</span><span class="p">.</span><span class="nx">value</span><span class="p">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="p">.</span><span class="nx">configMinDate</span> <span class="p">}</span> <span class="p">);</span>
<span class="cm">/**</span>
<span class="cm"> * The maximum selectable date in the current Calendar (mm/dd/yyyy)</span>
<span class="cm"> * @config maxdate</span>
<span class="cm"> * @type String | Date</span>
<span class="cm"> * @default null</span>
<span class="cm"> */</span>
<span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MAXDATE</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MAXDATE</span><span class="p">.</span><span class="nx">value</span><span class="p">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="p">.</span><span class="nx">configMaxDate</span> <span class="p">}</span> <span class="p">);</span>
<span class="c1">// Options properties</span>
<span class="cm">/**</span>
<span class="cm"> * True if the Calendar should allow multiple selections. False by default.</span>
<span class="cm"> * @config MULTI_SELECT</span>
<span class="cm"> * @type Boolean</span>
<span class="cm"> * @default false</span>
<span class="cm"> */</span>
<span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MULTI_SELECT</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MULTI_SELECT</span><span class="p">.</span><span class="nx">value</span><span class="p">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="p">.</span><span class="nx">configOptions</span><span class="p">,</span> <span class="nx">validator</span><span class="o">:</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">checkBoolean</span> <span class="p">}</span> <span class="p">);</span>
<span class="cm">/**</span>
<span class="cm"> * True if the Calendar should allow selection of out-of-month dates. False by default.</span>
<span class="cm"> * @config OOM_SELECT</span>
<span class="cm"> * @type Boolean</span>
<span class="cm"> * @default false</span>
<span class="cm"> */</span>
<span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">OOM_SELECT</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">OOM_SELECT</span><span class="p">.</span><span class="nx">value</span><span class="p">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="p">.</span><span class="nx">configOptions</span><span class="p">,</span> <span class="nx">validator</span><span class="o">:</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">checkBoolean</span> <span class="p">}</span> <span class="p">);</span>
<span class="cm">/**</span>
<span class="cm"> * The weekday the week begins on. Default is 0 (Sunday = 0, Monday = 1 ... Saturday = 6).</span>
<span class="cm"> * @config START_WEEKDAY</span>
<span class="cm"> * @type number</span>
<span class="cm"> * @default 0</span>
<span class="cm"> */</span>
<span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">START_WEEKDAY</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">START_WEEKDAY</span><span class="p">.</span><span class="nx">value</span><span class="p">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="p">.</span><span class="nx">configOptions</span><span class="p">,</span> <span class="nx">validator</span><span class="o">:</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">checkNumber</span> <span class="p">}</span> <span class="p">);</span>
<span class="cm">/**</span>
<span class="cm"> * True if the Calendar should show weekday labels. True by default.</span>
<span class="cm"> * @config SHOW_WEEKDAYS</span>
<span class="cm"> * @type Boolean</span>
<span class="cm"> * @default true</span>
<span class="cm"> */</span>
<span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">SHOW_WEEKDAYS</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">SHOW_WEEKDAYS</span><span class="p">.</span><span class="nx">value</span><span class="p">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="p">.</span><span class="nx">configOptions</span><span class="p">,</span> <span class="nx">validator</span><span class="o">:</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">checkBoolean</span> <span class="p">}</span> <span class="p">);</span>
<span class="cm">/**</span>
<span class="cm"> * True if the Calendar should show week row headers. False by default.</span>
<span class="cm"> * @config SHOW_WEEK_HEADER</span>
<span class="cm"> * @type Boolean</span>
<span class="cm"> * @default false</span>
<span class="cm"> */</span>
<span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">SHOW_WEEK_HEADER</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">SHOW_WEEK_HEADER</span><span class="p">.</span><span class="nx">value</span><span class="p">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="p">.</span><span class="nx">configOptions</span><span class="p">,</span> <span class="nx">validator</span><span class="o">:</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">checkBoolean</span> <span class="p">}</span> <span class="p">);</span>
<span class="cm">/**</span>
<span class="cm"> * True if the Calendar should show week row footers. False by default.</span>
<span class="cm"> * @config SHOW_WEEK_FOOTER</span>
<span class="cm"> * @type Boolean</span>
<span class="cm"> * @default false</span>
<span class="cm"> */</span>
<span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">SHOW_WEEK_FOOTER</span><span class="p">.</span><span class="nx">key</span><span class="p">,{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">SHOW_WEEK_FOOTER</span><span class="p">.</span><span class="nx">value</span><span class="p">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="p">.</span><span class="nx">configOptions</span><span class="p">,</span> <span class="nx">validator</span><span class="o">:</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">checkBoolean</span> <span class="p">}</span> <span class="p">);</span>
<span class="cm">/**</span>
<span class="cm"> * True if the Calendar should suppress weeks that are not a part of the current month. False by default.</span>
<span class="cm"> * @config HIDE_BLANK_WEEKS</span>
<span class="cm"> * @type Boolean</span>
<span class="cm"> * @default false</span>
<span class="cm"> */</span>
<span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">HIDE_BLANK_WEEKS</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">HIDE_BLANK_WEEKS</span><span class="p">.</span><span class="nx">value</span><span class="p">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="p">.</span><span class="nx">configOptions</span><span class="p">,</span> <span class="nx">validator</span><span class="o">:</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">checkBoolean</span> <span class="p">}</span> <span class="p">);</span>
<span class="cm">/**</span>
<span class="cm"> * The image URL that should be used for the left navigation arrow. The image URL is inserted into the DOM as HTML, and should be escaped by the implementor if coming from an external source.</span>
<span class="cm"> * @config NAV_ARROW_LEFT</span>
<span class="cm"> * @type String</span>
<span class="cm"> * @deprecated You can customize the image by overriding the default CSS class for the left arrow - &quot;calnavleft&quot; </span>
<span class="cm"> * @default null</span>
<span class="cm"> */</span>
<span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">NAV_ARROW_LEFT</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">NAV_ARROW_LEFT</span><span class="p">.</span><span class="nx">value</span><span class="p">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="p">.</span><span class="nx">configOptions</span> <span class="p">}</span> <span class="p">);</span>
<span class="cm">/**</span>
<span class="cm"> * The image URL that should be used for the right navigation arrow. The image URL is inserted into the DOM as HTML, and should be escaped by the implementor if coming from an external source.</span>
<span class="cm"> * @config NAV_ARROW_RIGHT</span>
<span class="cm"> * @type String</span>
<span class="cm"> * @deprecated You can customize the image by overriding the default CSS class for the right arrow - &quot;calnavright&quot;</span>
<span class="cm"> * @default null</span>
<span class="cm"> */</span>
<span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">NAV_ARROW_RIGHT</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">NAV_ARROW_RIGHT</span><span class="p">.</span><span class="nx">value</span><span class="p">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="p">.</span><span class="nx">configOptions</span> <span class="p">}</span> <span class="p">);</span>
<span class="c1">// Locale properties</span>
<span class="cm">/**</span>
<span class="cm"> * The short month labels for the current locale. The month labels are inserted into the DOM as HTML, and should be escaped by the implementor if coming from an external source.</span>
<span class="cm"> * @config MONTHS_SHORT</span>
<span class="cm"> * @type HTML[]</span>
<span class="cm"> * @default [&quot;Jan&quot;, &quot;Feb&quot;, &quot;Mar&quot;, &quot;Apr&quot;, &quot;May&quot;, &quot;Jun&quot;, &quot;Jul&quot;, &quot;Aug&quot;, &quot;Sep&quot;, &quot;Oct&quot;, &quot;Nov&quot;, &quot;Dec&quot;]</span>
<span class="cm"> */</span>
<span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MONTHS_SHORT</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MONTHS_SHORT</span><span class="p">.</span><span class="nx">value</span><span class="p">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="p">.</span><span class="nx">configLocale</span> <span class="p">}</span> <span class="p">);</span>
<span class="cm">/**</span>
<span class="cm"> * The long month labels for the current locale. The month labels are inserted into the DOM as HTML, and should be escaped by the implementor if coming from an external source.</span>
<span class="cm"> * @config MONTHS_LONG</span>
<span class="cm"> * @type HTML[]</span>
<span class="cm"> * @default [&quot;January&quot;, &quot;February&quot;, &quot;March&quot;, &quot;April&quot;, &quot;May&quot;, &quot;June&quot;, &quot;July&quot;, &quot;August&quot;, &quot;September&quot;, &quot;October&quot;, &quot;November&quot;, &quot;December&quot;</span>
<span class="cm"> */</span>
<span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MONTHS_LONG</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MONTHS_LONG</span><span class="p">.</span><span class="nx">value</span><span class="p">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="p">.</span><span class="nx">configLocale</span> <span class="p">}</span> <span class="p">);</span>
<span class="cm">/**</span>
<span class="cm"> * The 1-character weekday labels for the current locale. The weekday labels are inserted into the DOM as HTML, and should be escaped by the implementor if coming from an external source.</span>
<span class="cm"> * @config WEEKDAYS_1CHAR</span>
<span class="cm"> * @type HTML[]</span>
<span class="cm"> * @default [&quot;S&quot;, &quot;M&quot;, &quot;T&quot;, &quot;W&quot;, &quot;T&quot;, &quot;F&quot;, &quot;S&quot;]</span>
<span class="cm"> */</span>
<span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">WEEKDAYS_1CHAR</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">WEEKDAYS_1CHAR</span><span class="p">.</span><span class="nx">value</span><span class="p">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="p">.</span><span class="nx">configLocale</span> <span class="p">}</span> <span class="p">);</span>
<span class="cm">/**</span>
<span class="cm"> * The short weekday labels for the current locale. The weekday labels are inserted into the DOM as HTML, and should be escaped by the implementor if coming from an external source.</span>
<span class="cm"> * @config WEEKDAYS_SHORT</span>
<span class="cm"> * @type HTML[]</span>
<span class="cm"> * @default [&quot;Su&quot;, &quot;Mo&quot;, &quot;Tu&quot;, &quot;We&quot;, &quot;Th&quot;, &quot;Fr&quot;, &quot;Sa&quot;]</span>
<span class="cm"> */</span>
<span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">WEEKDAYS_SHORT</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">WEEKDAYS_SHORT</span><span class="p">.</span><span class="nx">value</span><span class="p">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="p">.</span><span class="nx">configLocale</span> <span class="p">}</span> <span class="p">);</span>
<span class="cm">/**</span>
<span class="cm"> * The medium weekday labels for the current locale. The weekday labels are inserted into the DOM as HTML, and should be escaped by the implementor if coming from an external source.</span>
<span class="cm"> * @config WEEKDAYS_MEDIUM</span>
<span class="cm"> * @type HTML[]</span>
<span class="cm"> * @default [&quot;Sun&quot;, &quot;Mon&quot;, &quot;Tue&quot;, &quot;Wed&quot;, &quot;Thu&quot;, &quot;Fri&quot;, &quot;Sat&quot;]</span>
<span class="cm"> */</span>
<span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">WEEKDAYS_MEDIUM</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">WEEKDAYS_MEDIUM</span><span class="p">.</span><span class="nx">value</span><span class="p">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="p">.</span><span class="nx">configLocale</span> <span class="p">}</span> <span class="p">);</span>
<span class="cm">/**</span>
<span class="cm"> * The long weekday labels for the current locale. The weekday labels are inserted into the DOM as HTML, and should be escaped by the implementor if coming from an external source.</span>
<span class="cm"> * @config WEEKDAYS_LONG</span>
<span class="cm"> * @type HTML[]</span>
<span class="cm"> * @default [&quot;Sunday&quot;, &quot;Monday&quot;, &quot;Tuesday&quot;, &quot;Wednesday&quot;, &quot;Thursday&quot;, &quot;Friday&quot;, &quot;Saturday&quot;]</span>
<span class="cm"> */</span>
<span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">WEEKDAYS_LONG</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">WEEKDAYS_LONG</span><span class="p">.</span><span class="nx">value</span><span class="p">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="p">.</span><span class="nx">configLocale</span> <span class="p">}</span> <span class="p">);</span>
<span class="cm">/**</span>
<span class="cm"> * Refreshes the locale values used to build the Calendar.</span>
<span class="cm"> * @method refreshLocale</span>
<span class="cm"> * @private</span>
<span class="cm"> */</span>
<span class="kd">var</span> <span class="nx">refreshLocale</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
<span class="nx">cfg</span><span class="p">.</span><span class="nx">refireEvent</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">LOCALE_MONTHS</span><span class="p">.</span><span class="nx">key</span><span class="p">);</span>
<span class="nx">cfg</span><span class="p">.</span><span class="nx">refireEvent</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">LOCALE_WEEKDAYS</span><span class="p">.</span><span class="nx">key</span><span class="p">);</span>
<span class="p">};</span>
<span class="nx">cfg</span><span class="p">.</span><span class="nx">subscribeToConfigEvent</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">START_WEEKDAY</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="nx">refreshLocale</span><span class="p">,</span> <span class="k">this</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>
<span class="nx">cfg</span><span class="p">.</span><span class="nx">subscribeToConfigEvent</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MONTHS_SHORT</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="nx">refreshLocale</span><span class="p">,</span> <span class="k">this</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>
<span class="nx">cfg</span><span class="p">.</span><span class="nx">subscribeToConfigEvent</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MONTHS_LONG</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="nx">refreshLocale</span><span class="p">,</span> <span class="k">this</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>
<span class="nx">cfg</span><span class="p">.</span><span class="nx">subscribeToConfigEvent</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">WEEKDAYS_1CHAR</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="nx">refreshLocale</span><span class="p">,</span> <span class="k">this</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>
<span class="nx">cfg</span><span class="p">.</span><span class="nx">subscribeToConfigEvent</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">WEEKDAYS_SHORT</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="nx">refreshLocale</span><span class="p">,</span> <span class="k">this</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>
<span class="nx">cfg</span><span class="p">.</span><span class="nx">subscribeToConfigEvent</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">WEEKDAYS_MEDIUM</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="nx">refreshLocale</span><span class="p">,</span> <span class="k">this</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>
<span class="nx">cfg</span><span class="p">.</span><span class="nx">subscribeToConfigEvent</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">WEEKDAYS_LONG</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="nx">refreshLocale</span><span class="p">,</span> <span class="k">this</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>
<span class="cm">/**</span>
<span class="cm"> * The setting that determines which length of month labels should be used. Possible values are &quot;short&quot; and &quot;long&quot;.</span>
<span class="cm"> * @config LOCALE_MONTHS</span>
<span class="cm"> * @type String</span>
<span class="cm"> * @default &quot;long&quot;</span>
<span class="cm"> */</span>
<span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">LOCALE_MONTHS</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">LOCALE_MONTHS</span><span class="p">.</span><span class="nx">value</span><span class="p">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="p">.</span><span class="nx">configLocaleValues</span> <span class="p">}</span> <span class="p">);</span>
<span class="cm">/**</span>
<span class="cm"> * The setting that determines which length of weekday labels should be used. Possible values are &quot;1char&quot;, &quot;short&quot;, &quot;medium&quot;, and &quot;long&quot;.</span>
<span class="cm"> * @config LOCALE_WEEKDAYS</span>
<span class="cm"> * @type String</span>
<span class="cm"> * @default &quot;short&quot;</span>
<span class="cm"> */</span>
<span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">LOCALE_WEEKDAYS</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">LOCALE_WEEKDAYS</span><span class="p">.</span><span class="nx">value</span><span class="p">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="p">.</span><span class="nx">configLocaleValues</span> <span class="p">}</span> <span class="p">);</span>
<span class="cm">/**</span>
<span class="cm"> * The positive or negative year offset from the Gregorian calendar year (assuming a January 1st rollover) to </span>
<span class="cm"> * be used when displaying and parsing dates. NOTE: All JS Date objects returned by methods, or expected as input by</span>
<span class="cm"> * methods will always represent the Gregorian year, in order to maintain date/month/week values. </span>
<span class="cm"> *</span>
<span class="cm"> * @config YEAR_OFFSET</span>
<span class="cm"> * @type Number</span>
<span class="cm"> * @default 0</span>
<span class="cm"> */</span>
<span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">YEAR_OFFSET</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">YEAR_OFFSET</span><span class="p">.</span><span class="nx">value</span><span class="p">,</span> <span class="nx">supercedes</span><span class="o">:</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">YEAR_OFFSET</span><span class="p">.</span><span class="nx">supercedes</span><span class="p">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="p">.</span><span class="nx">configLocale</span> <span class="p">}</span> <span class="p">);</span>
<span class="cm">/**</span>
<span class="cm"> * The value used to delimit individual dates in a date string passed to various Calendar functions.</span>
<span class="cm"> * @config DATE_DELIMITER</span>
<span class="cm"> * @type String</span>
<span class="cm"> * @default &quot;,&quot;</span>
<span class="cm"> */</span>
<span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">DATE_DELIMITER</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">DATE_DELIMITER</span><span class="p">.</span><span class="nx">value</span><span class="p">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="p">.</span><span class="nx">configLocale</span> <span class="p">}</span> <span class="p">);</span>
<span class="cm">/**</span>
<span class="cm"> * The value used to delimit date fields in a date string passed to various Calendar functions.</span>
<span class="cm"> * @config DATE_FIELD_DELIMITER</span>
<span class="cm"> * @type String</span>
<span class="cm"> * @default &quot;/&quot;</span>
<span class="cm"> */</span>
<span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">DATE_FIELD_DELIMITER</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">DATE_FIELD_DELIMITER</span><span class="p">.</span><span class="nx">value</span><span class="p">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="p">.</span><span class="nx">configLocale</span> <span class="p">}</span> <span class="p">);</span>
<span class="cm">/**</span>
<span class="cm"> * The value used to delimit date ranges in a date string passed to various Calendar functions.</span>
<span class="cm"> * @config DATE_RANGE_DELIMITER</span>
<span class="cm"> * @type String</span>
<span class="cm"> * @default &quot;-&quot;</span>
<span class="cm"> */</span>
<span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">DATE_RANGE_DELIMITER</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">DATE_RANGE_DELIMITER</span><span class="p">.</span><span class="nx">value</span><span class="p">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="p">.</span><span class="nx">configLocale</span> <span class="p">}</span> <span class="p">);</span>
<span class="cm">/**</span>
<span class="cm"> * The position of the month in a month/year date string</span>
<span class="cm"> * @config MY_MONTH_POSITION</span>
<span class="cm"> * @type Number</span>
<span class="cm"> * @default 1</span>
<span class="cm"> */</span>
<span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MY_MONTH_POSITION</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MY_MONTH_POSITION</span><span class="p">.</span><span class="nx">value</span><span class="p">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="p">.</span><span class="nx">configLocale</span><span class="p">,</span> <span class="nx">validator</span><span class="o">:</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">checkNumber</span> <span class="p">}</span> <span class="p">);</span>
<span class="cm">/**</span>
<span class="cm"> * The position of the year in a month/year date string</span>
<span class="cm"> * @config MY_YEAR_POSITION</span>
<span class="cm"> * @type Number</span>
<span class="cm"> * @default 2</span>
<span class="cm"> */</span>
<span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MY_YEAR_POSITION</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MY_YEAR_POSITION</span><span class="p">.</span><span class="nx">value</span><span class="p">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="p">.</span><span class="nx">configLocale</span><span class="p">,</span> <span class="nx">validator</span><span class="o">:</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">checkNumber</span> <span class="p">}</span> <span class="p">);</span>
<span class="cm">/**</span>
<span class="cm"> * The position of the month in a month/day date string</span>
<span class="cm"> * @config MD_MONTH_POSITION</span>
<span class="cm"> * @type Number</span>
<span class="cm"> * @default 1</span>
<span class="cm"> */</span>
<span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MD_MONTH_POSITION</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MD_MONTH_POSITION</span><span class="p">.</span><span class="nx">value</span><span class="p">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="p">.</span><span class="nx">configLocale</span><span class="p">,</span> <span class="nx">validator</span><span class="o">:</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">checkNumber</span> <span class="p">}</span> <span class="p">);</span>
<span class="cm">/**</span>
<span class="cm"> * The position of the day in a month/year date string</span>
<span class="cm"> * @config MD_DAY_POSITION</span>
<span class="cm"> * @type Number</span>
<span class="cm"> * @default 2</span>
<span class="cm"> */</span>
<span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MD_DAY_POSITION</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MD_DAY_POSITION</span><span class="p">.</span><span class="nx">value</span><span class="p">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="p">.</span><span class="nx">configLocale</span><span class="p">,</span> <span class="nx">validator</span><span class="o">:</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">checkNumber</span> <span class="p">}</span> <span class="p">);</span>
<span class="cm">/**</span>
<span class="cm"> * The position of the month in a month/day/year date string</span>
<span class="cm"> * @config MDY_MONTH_POSITION</span>
<span class="cm"> * @type Number</span>
<span class="cm"> * @default 1</span>
<span class="cm"> */</span>
<span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MDY_MONTH_POSITION</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MDY_MONTH_POSITION</span><span class="p">.</span><span class="nx">value</span><span class="p">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="p">.</span><span class="nx">configLocale</span><span class="p">,</span> <span class="nx">validator</span><span class="o">:</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">checkNumber</span> <span class="p">}</span> <span class="p">);</span>
<span class="cm">/**</span>
<span class="cm"> * The position of the day in a month/day/year date string</span>
<span class="cm"> * @config MDY_DAY_POSITION</span>
<span class="cm"> * @type Number</span>
<span class="cm"> * @default 2</span>
<span class="cm"> */</span>
<span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MDY_DAY_POSITION</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MDY_DAY_POSITION</span><span class="p">.</span><span class="nx">value</span><span class="p">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="p">.</span><span class="nx">configLocale</span><span class="p">,</span> <span class="nx">validator</span><span class="o">:</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">checkNumber</span> <span class="p">}</span> <span class="p">);</span>
<span class="cm">/**</span>
<span class="cm"> * The position of the year in a month/day/year date string</span>
<span class="cm"> * @config MDY_YEAR_POSITION</span>
<span class="cm"> * @type Number</span>
<span class="cm"> * @default 3</span>
<span class="cm"> */</span>
<span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MDY_YEAR_POSITION</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MDY_YEAR_POSITION</span><span class="p">.</span><span class="nx">value</span><span class="p">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="p">.</span><span class="nx">configLocale</span><span class="p">,</span> <span class="nx">validator</span><span class="o">:</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">checkNumber</span> <span class="p">}</span> <span class="p">);</span>
<span class="cm">/**</span>
<span class="cm"> * The position of the month in the month year label string used as the Calendar header</span>
<span class="cm"> * @config MY_LABEL_MONTH_POSITION</span>
<span class="cm"> * @type Number</span>
<span class="cm"> * @default 1</span>
<span class="cm"> */</span>
<span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MY_LABEL_MONTH_POSITION</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MY_LABEL_MONTH_POSITION</span><span class="p">.</span><span class="nx">value</span><span class="p">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="p">.</span><span class="nx">configLocale</span><span class="p">,</span> <span class="nx">validator</span><span class="o">:</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">checkNumber</span> <span class="p">}</span> <span class="p">);</span>
<span class="cm">/**</span>
<span class="cm"> * The position of the year in the month year label string used as the Calendar header</span>
<span class="cm"> * @config MY_LABEL_YEAR_POSITION</span>
<span class="cm"> * @type Number</span>
<span class="cm"> * @default 2</span>
<span class="cm"> */</span>
<span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MY_LABEL_YEAR_POSITION</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MY_LABEL_YEAR_POSITION</span><span class="p">.</span><span class="nx">value</span><span class="p">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="p">.</span><span class="nx">configLocale</span><span class="p">,</span> <span class="nx">validator</span><span class="o">:</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">checkNumber</span> <span class="p">}</span> <span class="p">);</span>
<span class="cm">/**</span>
<span class="cm"> * The suffix used after the month when rendering the Calendar header. The suffix is inserted into the DOM as HTML, and should be escaped by the implementor if coming from an external source.</span>
<span class="cm"> * @config MY_LABEL_MONTH_SUFFIX</span>
<span class="cm"> * @type HTML</span>
<span class="cm"> * @default &quot; &quot;</span>
<span class="cm"> */</span>
<span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MY_LABEL_MONTH_SUFFIX</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MY_LABEL_MONTH_SUFFIX</span><span class="p">.</span><span class="nx">value</span><span class="p">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="p">.</span><span class="nx">configLocale</span> <span class="p">}</span> <span class="p">);</span>
<span class="cm">/**</span>
<span class="cm"> * The suffix used after the year when rendering the Calendar header. The suffix is inserted into the DOM as HTML, and should be escaped by the implementor if coming from an external source.</span>
<span class="cm"> * @config MY_LABEL_YEAR_SUFFIX</span>
<span class="cm"> * @type HTML</span>
<span class="cm"> * @default &quot;&quot;</span>
<span class="cm"> */</span>
<span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MY_LABEL_YEAR_SUFFIX</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MY_LABEL_YEAR_SUFFIX</span><span class="p">.</span><span class="nx">value</span><span class="p">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="p">.</span><span class="nx">configLocale</span> <span class="p">}</span> <span class="p">);</span>
<span class="cm">/**</span>
<span class="cm"> * Configuration for the Month/Year CalendarNavigator UI which allows the user to jump directly to a </span>
<span class="cm"> * specific Month/Year without having to scroll sequentially through months.</span>
<span class="cm"> * &lt;p&gt;</span>
<span class="cm"> * Setting this property to null (default value) or false, will disable the CalendarNavigator UI.</span>
<span class="cm"> * &lt;/p&gt;</span>
<span class="cm"> * &lt;p&gt;</span>
<span class="cm"> * Setting this property to true will enable the CalendarNavigatior UI with the default CalendarNavigator configuration values.</span>
<span class="cm"> * &lt;/p&gt;</span>
<span class="cm"> * &lt;p&gt;</span>
<span class="cm"> * This property can also be set to an object literal containing configuration properties for the CalendarNavigator UI.</span>
<span class="cm"> * The configuration object expects the the following case-sensitive properties, with the &quot;strings&quot; property being a nested object.</span>
<span class="cm"> * Any properties which are not provided will use the default values (defined in the CalendarNavigator class).</span>
<span class="cm"> * &lt;/p&gt;</span>
<span class="cm"> * &lt;dl&gt;</span>
<span class="cm"> * &lt;dt&gt;strings&lt;/dt&gt;</span>
<span class="cm"> * &lt;dd&gt;&lt;em&gt;Object&lt;/em&gt; : An object with the properties shown below, defining the string labels to use in the Navigator&#39;s UI. The strings are inserted into the DOM as HTML, and should be escaped by the implementor if coming from an external source. </span>
<span class="cm"> * &lt;dl&gt;</span>
<span class="cm"> * &lt;dt&gt;month&lt;/dt&gt;&lt;dd&gt;&lt;em&gt;HTML&lt;/em&gt; : The markup to use for the month label. Defaults to &quot;Month&quot;.&lt;/dd&gt;</span>
<span class="cm"> * &lt;dt&gt;year&lt;/dt&gt;&lt;dd&gt;&lt;em&gt;HTML&lt;/em&gt; : The markup to use for the year label. Defaults to &quot;Year&quot;.&lt;/dd&gt;</span>
<span class="cm"> * &lt;dt&gt;submit&lt;/dt&gt;&lt;dd&gt;&lt;em&gt;HTML&lt;/em&gt; : The markup to use for the submit button label. Defaults to &quot;Okay&quot;.&lt;/dd&gt;</span>
<span class="cm"> * &lt;dt&gt;cancel&lt;/dt&gt;&lt;dd&gt;&lt;em&gt;HTML&lt;/em&gt; : The markup to use for the cancel button label. Defaults to &quot;Cancel&quot;.&lt;/dd&gt;</span>
<span class="cm"> * &lt;dt&gt;invalidYear&lt;/dt&gt;&lt;dd&gt;&lt;em&gt;HTML&lt;/em&gt; : The markup to use for invalid year values. Defaults to &quot;Year needs to be a number&quot;.&lt;/dd&gt;</span>
<span class="cm"> * &lt;/dl&gt;</span>
<span class="cm"> * &lt;/dd&gt;</span>
<span class="cm"> * &lt;dt&gt;monthFormat&lt;/dt&gt;&lt;dd&gt;&lt;em&gt;String&lt;/em&gt; : The month format to use. Either YAHOO.widget.Calendar.LONG, or YAHOO.widget.Calendar.SHORT. Defaults to YAHOO.widget.Calendar.LONG&lt;/dd&gt;</span>
<span class="cm"> * &lt;dt&gt;initialFocus&lt;/dt&gt;&lt;dd&gt;&lt;em&gt;String&lt;/em&gt; : Either &quot;year&quot; or &quot;month&quot; specifying which input control should get initial focus. Defaults to &quot;year&quot;&lt;/dd&gt;</span>
<span class="cm"> * &lt;/dl&gt;</span>
<span class="cm"> * &lt;p&gt;E.g.&lt;/p&gt;</span>
<span class="cm"> * &lt;pre&gt;</span>
<span class="cm"> * var navConfig = {</span>
<span class="cm"> * strings: {</span>
<span class="cm"> * month:&quot;Calendar Month&quot;,</span>
<span class="cm"> * year:&quot;Calendar Year&quot;,</span>
<span class="cm"> * submit: &quot;Submit&quot;,</span>
<span class="cm"> * cancel: &quot;Cancel&quot;,</span>
<span class="cm"> * invalidYear: &quot;Please enter a valid year&quot;</span>
<span class="cm"> * },</span>
<span class="cm"> * monthFormat: YAHOO.widget.Calendar.SHORT,</span>
<span class="cm"> * initialFocus: &quot;month&quot;</span>
<span class="cm"> * }</span>
<span class="cm"> * &lt;/pre&gt;</span>
<span class="cm"> * @config navigator</span>
<span class="cm"> * @type {Object|Boolean}</span>
<span class="cm"> * @default null</span>
<span class="cm"> */</span>
<span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">NAV</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">NAV</span><span class="p">.</span><span class="nx">value</span><span class="p">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="p">.</span><span class="nx">configNavigator</span> <span class="p">}</span> <span class="p">);</span>
<span class="cm">/**</span>
<span class="cm"> * The map of UI strings which the Calendar UI uses.</span>
<span class="cm"> *</span>
<span class="cm"> * @config strings</span>
<span class="cm"> * @type {Object}</span>
<span class="cm"> * @default An object with the properties shown below:</span>
<span class="cm"> * &lt;dl&gt;</span>
<span class="cm"> * &lt;dt&gt;previousMonth&lt;/dt&gt;&lt;dd&gt;&lt;em&gt;HTML&lt;/em&gt; : The markup to use for the &quot;Previous Month&quot; navigation label. Defaults to &quot;Previous Month&quot;. The string is added to the DOM as HTML, and should be escaped by the implementor if coming from an external source.&lt;/dd&gt;</span>
<span class="cm"> * &lt;dt&gt;nextMonth&lt;/dt&gt;&lt;dd&gt;&lt;em&gt;HTML&lt;/em&gt; : The markup to use for the &quot;Next Month&quot; navigation UI. Defaults to &quot;Next Month&quot;. The string is added to the DOM as HTML, and should be escaped by the implementor if coming from an external source.&lt;/dd&gt;</span>
<span class="cm"> * &lt;dt&gt;close&lt;/dt&gt;&lt;dd&gt;&lt;em&gt;HTML&lt;/em&gt; : The markup to use for the close button label. Defaults to &quot;Close&quot;. The string is added to the DOM as HTML, and should be escaped by the implementor if coming from an external source.&lt;/dd&gt;</span>
<span class="cm"> * &lt;/dl&gt;</span>
<span class="cm"> */</span>
<span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">STRINGS</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span>
<span class="nx">value</span><span class="o">:</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">STRINGS</span><span class="p">.</span><span class="nx">value</span><span class="p">,</span>
<span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="p">.</span><span class="nx">configStrings</span><span class="p">,</span>
<span class="nx">validator</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">val</span><span class="p">)</span> <span class="p">{</span>
<span class="k">return</span> <span class="nx">Lang</span><span class="p">.</span><span class="nx">isObject</span><span class="p">(</span><span class="nx">val</span><span class="p">);</span>
<span class="p">},</span>
<span class="nx">supercedes</span><span class="o">:</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">STRINGS</span><span class="p">.</span><span class="nx">supercedes</span>
<span class="p">});</span>
<span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * The default handler for the &quot;strings&quot; property</span>
<span class="cm"> * @method configStrings</span>
<span class="cm"> */</span>
<span class="nx">configStrings</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">type</span><span class="p">,</span> <span class="nx">args</span><span class="p">,</span> <span class="nx">obj</span><span class="p">)</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">val</span> <span class="o">=</span> <span class="nx">Lang</span><span class="p">.</span><span class="nx">merge</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">STRINGS</span><span class="p">.</span><span class="nx">value</span><span class="p">,</span> <span class="nx">args</span><span class="p">[</span><span class="mi">0</span><span class="p">]);</span>
<span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">setProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">STRINGS</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="nx">val</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>
<span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * The default handler for the &quot;pagedate&quot; property</span>
<span class="cm"> * @method configPageDate</span>
<span class="cm"> */</span>
<span class="nx">configPageDate</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">type</span><span class="p">,</span> <span class="nx">args</span><span class="p">,</span> <span class="nx">obj</span><span class="p">)</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">setProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">PAGEDATE</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">_parsePageDate</span><span class="p">(</span><span class="nx">args</span><span class="p">[</span><span class="mi">0</span><span class="p">]),</span> <span class="kc">true</span><span class="p">);</span>
<span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * The default handler for the &quot;mindate&quot; property</span>
<span class="cm"> * @method configMinDate</span>
<span class="cm"> */</span>
<span class="nx">configMinDate</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">type</span><span class="p">,</span> <span class="nx">args</span><span class="p">,</span> <span class="nx">obj</span><span class="p">)</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">val</span> <span class="o">=</span> <span class="nx">args</span><span class="p">[</span><span class="mi">0</span><span class="p">];</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">Lang</span><span class="p">.</span><span class="nx">isString</span><span class="p">(</span><span class="nx">val</span><span class="p">))</span> <span class="p">{</span>
<span class="nx">val</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">_parseDate</span><span class="p">(</span><span class="nx">val</span><span class="p">);</span>
<span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">setProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MINDATE</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="nx">DateMath</span><span class="p">.</span><span class="nx">getDate</span><span class="p">(</span><span class="nx">val</span><span class="p">[</span><span class="mi">0</span><span class="p">],(</span><span class="nx">val</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">-</span><span class="mi">1</span><span class="p">),</span><span class="nx">val</span><span class="p">[</span><span class="mi">2</span><span class="p">]));</span>
<span class="p">}</span>
<span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * The default handler for the &quot;maxdate&quot; property</span>
<span class="cm"> * @method configMaxDate</span>
<span class="cm"> */</span>
<span class="nx">configMaxDate</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">type</span><span class="p">,</span> <span class="nx">args</span><span class="p">,</span> <span class="nx">obj</span><span class="p">)</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">val</span> <span class="o">=</span> <span class="nx">args</span><span class="p">[</span><span class="mi">0</span><span class="p">];</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">Lang</span><span class="p">.</span><span class="nx">isString</span><span class="p">(</span><span class="nx">val</span><span class="p">))</span> <span class="p">{</span>
<span class="nx">val</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">_parseDate</span><span class="p">(</span><span class="nx">val</span><span class="p">);</span>
<span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">setProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MAXDATE</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="nx">DateMath</span><span class="p">.</span><span class="nx">getDate</span><span class="p">(</span><span class="nx">val</span><span class="p">[</span><span class="mi">0</span><span class="p">],(</span><span class="nx">val</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">-</span><span class="mi">1</span><span class="p">),</span><span class="nx">val</span><span class="p">[</span><span class="mi">2</span><span class="p">]));</span>
<span class="p">}</span>
<span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * The default handler for the &quot;today&quot; property</span>
<span class="cm"> * @method configToday</span>
<span class="cm"> */</span>
<span class="nx">configToday</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">type</span><span class="p">,</span> <span class="nx">args</span><span class="p">,</span> <span class="nx">obj</span><span class="p">)</span> <span class="p">{</span>
<span class="c1">// Only do this for initial set. Changing the today property after the initial</span>
<span class="c1">// set, doesn&#39;t affect pagedate</span>
<span class="kd">var</span> <span class="nx">val</span> <span class="o">=</span> <span class="nx">args</span><span class="p">[</span><span class="mi">0</span><span class="p">];</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">Lang</span><span class="p">.</span><span class="nx">isString</span><span class="p">(</span><span class="nx">val</span><span class="p">))</span> <span class="p">{</span>
<span class="nx">val</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">_parseDate</span><span class="p">(</span><span class="nx">val</span><span class="p">);</span>
<span class="p">}</span>
<span class="kd">var</span> <span class="nx">today</span> <span class="o">=</span> <span class="nx">DateMath</span><span class="p">.</span><span class="nx">clearTime</span><span class="p">(</span><span class="nx">val</span><span class="p">);</span>
<span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">initialConfig</span><span class="p">[</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">PAGEDATE</span><span class="p">.</span><span class="nx">key</span><span class="p">])</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">setProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">PAGEDATE</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="nx">today</span><span class="p">);</span>
<span class="p">}</span>
<span class="k">this</span><span class="p">.</span><span class="nx">today</span> <span class="o">=</span> <span class="nx">today</span><span class="p">;</span>
<span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">setProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">TODAY</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="nx">today</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>
<span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * The default handler for the &quot;selected&quot; property</span>
<span class="cm"> * @method configSelected</span>
<span class="cm"> */</span>
<span class="nx">configSelected</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">type</span><span class="p">,</span> <span class="nx">args</span><span class="p">,</span> <span class="nx">obj</span><span class="p">)</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">selected</span> <span class="o">=</span> <span class="nx">args</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span>
<span class="nx">cfgSelected</span> <span class="o">=</span> <span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">SELECTED</span><span class="p">.</span><span class="nx">key</span><span class="p">;</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">selected</span><span class="p">)</span> <span class="p">{</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">Lang</span><span class="p">.</span><span class="nx">isString</span><span class="p">(</span><span class="nx">selected</span><span class="p">))</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">setProperty</span><span class="p">(</span><span class="nx">cfgSelected</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">_parseDates</span><span class="p">(</span><span class="nx">selected</span><span class="p">),</span> <span class="kc">true</span><span class="p">);</span>
<span class="p">}</span>
<span class="p">}</span>
<span class="k">if</span> <span class="p">(</span><span class="o">!</span> <span class="k">this</span><span class="p">.</span><span class="nx">_selectedDates</span><span class="p">)</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">_selectedDates</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">cfgSelected</span><span class="p">);</span>
<span class="p">}</span>
<span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * The default handler for all configuration options properties</span>
<span class="cm"> * @method configOptions</span>
<span class="cm"> */</span>
<span class="nx">configOptions</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">type</span><span class="p">,</span> <span class="nx">args</span><span class="p">,</span> <span class="nx">obj</span><span class="p">)</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">Options</span><span class="p">[</span><span class="nx">type</span><span class="p">.</span><span class="nx">toUpperCase</span><span class="p">()]</span> <span class="o">=</span> <span class="nx">args</span><span class="p">[</span><span class="mi">0</span><span class="p">];</span>
<span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * The default handler for all configuration locale properties</span>
<span class="cm"> * @method configLocale</span>
<span class="cm"> */</span>
<span class="nx">configLocale</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">type</span><span class="p">,</span> <span class="nx">args</span><span class="p">,</span> <span class="nx">obj</span><span class="p">)</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">Locale</span><span class="p">[</span><span class="nx">type</span><span class="p">.</span><span class="nx">toUpperCase</span><span class="p">()]</span> <span class="o">=</span> <span class="nx">args</span><span class="p">[</span><span class="mi">0</span><span class="p">];</span>
<span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">refireEvent</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">LOCALE_MONTHS</span><span class="p">.</span><span class="nx">key</span><span class="p">);</span>
<span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">refireEvent</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">LOCALE_WEEKDAYS</span><span class="p">.</span><span class="nx">key</span><span class="p">);</span>
<span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * The default handler for all configuration locale field length properties</span>
<span class="cm"> * @method configLocaleValues</span>
<span class="cm"> */</span>
<span class="nx">configLocaleValues</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">type</span><span class="p">,</span> <span class="nx">args</span><span class="p">,</span> <span class="nx">obj</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">type</span> <span class="o">=</span> <span class="nx">type</span><span class="p">.</span><span class="nx">toLowerCase</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">val</span> <span class="o">=</span> <span class="nx">args</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span>
<span class="nx">cfg</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">,</span>
<span class="nx">Locale</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">Locale</span><span class="p">;</span>
<span class="k">switch</span> <span class="p">(</span><span class="nx">type</span><span class="p">)</span> <span class="p">{</span>
<span class="k">case</span> <span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">LOCALE_MONTHS</span><span class="p">.</span><span class="nx">key</span><span class="o">:</span>
<span class="k">switch</span> <span class="p">(</span><span class="nx">val</span><span class="p">)</span> <span class="p">{</span>
<span class="k">case</span> <span class="nx">Calendar</span><span class="p">.</span><span class="nx">SHORT</span><span class="o">:</span>
<span class="nx">Locale</span><span class="p">.</span><span class="nx">LOCALE_MONTHS</span> <span class="o">=</span> <span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MONTHS_SHORT</span><span class="p">.</span><span class="nx">key</span><span class="p">).</span><span class="nx">concat</span><span class="p">();</span>
<span class="k">break</span><span class="p">;</span>
<span class="k">case</span> <span class="nx">Calendar</span><span class="p">.</span><span class="nx">LONG</span><span class="o">:</span>
<span class="nx">Locale</span><span class="p">.</span><span class="nx">LOCALE_MONTHS</span> <span class="o">=</span> <span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MONTHS_LONG</span><span class="p">.</span><span class="nx">key</span><span class="p">).</span><span class="nx">concat</span><span class="p">();</span>
<span class="k">break</span><span class="p">;</span>
<span class="p">}</span>
<span class="k">break</span><span class="p">;</span>
<span class="k">case</span> <span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">LOCALE_WEEKDAYS</span><span class="p">.</span><span class="nx">key</span><span class="o">:</span>
<span class="k">switch</span> <span class="p">(</span><span class="nx">val</span><span class="p">)</span> <span class="p">{</span>
<span class="k">case</span> <span class="nx">Calendar</span><span class="p">.</span><span class="nx">ONE_CHAR</span><span class="o">:</span>
<span class="nx">Locale</span><span class="p">.</span><span class="nx">LOCALE_WEEKDAYS</span> <span class="o">=</span> <span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">WEEKDAYS_1CHAR</span><span class="p">.</span><span class="nx">key</span><span class="p">).</span><span class="nx">concat</span><span class="p">();</span>
<span class="k">break</span><span class="p">;</span>
<span class="k">case</span> <span class="nx">Calendar</span><span class="p">.</span><span class="nx">SHORT</span><span class="o">:</span>
<span class="nx">Locale</span><span class="p">.</span><span class="nx">LOCALE_WEEKDAYS</span> <span class="o">=</span> <span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">WEEKDAYS_SHORT</span><span class="p">.</span><span class="nx">key</span><span class="p">).</span><span class="nx">concat</span><span class="p">();</span>
<span class="k">break</span><span class="p">;</span>
<span class="k">case</span> <span class="nx">Calendar</span><span class="p">.</span><span class="nx">MEDIUM</span><span class="o">:</span>
<span class="nx">Locale</span><span class="p">.</span><span class="nx">LOCALE_WEEKDAYS</span> <span class="o">=</span> <span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">WEEKDAYS_MEDIUM</span><span class="p">.</span><span class="nx">key</span><span class="p">).</span><span class="nx">concat</span><span class="p">();</span>
<span class="k">break</span><span class="p">;</span>
<span class="k">case</span> <span class="nx">Calendar</span><span class="p">.</span><span class="nx">LONG</span><span class="o">:</span>
<span class="nx">Locale</span><span class="p">.</span><span class="nx">LOCALE_WEEKDAYS</span> <span class="o">=</span> <span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">WEEKDAYS_LONG</span><span class="p">.</span><span class="nx">key</span><span class="p">).</span><span class="nx">concat</span><span class="p">();</span>
<span class="k">break</span><span class="p">;</span>
<span class="p">}</span>
<span class="kd">var</span> <span class="nx">START_WEEKDAY</span> <span class="o">=</span> <span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">START_WEEKDAY</span><span class="p">.</span><span class="nx">key</span><span class="p">);</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">START_WEEKDAY</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span>
<span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">w</span><span class="o">=</span><span class="mi">0</span><span class="p">;</span> <span class="nx">w</span> <span class="o">&lt;</span> <span class="nx">START_WEEKDAY</span><span class="p">;</span> <span class="o">++</span><span class="nx">w</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">Locale</span><span class="p">.</span><span class="nx">LOCALE_WEEKDAYS</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">Locale</span><span class="p">.</span><span class="nx">LOCALE_WEEKDAYS</span><span class="p">.</span><span class="nx">shift</span><span class="p">());</span>
<span class="p">}</span>
<span class="p">}</span>
<span class="k">break</span><span class="p">;</span>
<span class="p">}</span>
<span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * The default handler for the &quot;navigator&quot; property</span>
<span class="cm"> * @method configNavigator</span>
<span class="cm"> */</span>
<span class="nx">configNavigator</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">type</span><span class="p">,</span> <span class="nx">args</span><span class="p">,</span> <span class="nx">obj</span><span class="p">)</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">val</span> <span class="o">=</span> <span class="nx">args</span><span class="p">[</span><span class="mi">0</span><span class="p">];</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">YAHOO</span><span class="p">.</span><span class="nx">widget</span><span class="p">.</span><span class="nx">CalendarNavigator</span> <span class="o">&amp;&amp;</span> <span class="p">(</span><span class="nx">val</span> <span class="o">===</span> <span class="kc">true</span> <span class="o">||</span> <span class="nx">Lang</span><span class="p">.</span><span class="nx">isObject</span><span class="p">(</span><span class="nx">val</span><span class="p">)))</span> <span class="p">{</span>
<span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="k">this</span><span class="p">.</span><span class="nx">oNavigator</span><span class="p">)</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">oNavigator</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">widget</span><span class="p">.</span><span class="nx">CalendarNavigator</span><span class="p">(</span><span class="k">this</span><span class="p">);</span>
<span class="c1">// Cleanup DOM Refs/Events before innerHTML is removed.</span>
<span class="k">this</span><span class="p">.</span><span class="nx">beforeRenderEvent</span><span class="p">.</span><span class="nx">subscribe</span><span class="p">(</span><span class="kd">function</span> <span class="p">()</span> <span class="p">{</span>
<span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="k">this</span><span class="p">.</span><span class="nx">pages</span><span class="p">)</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">oNavigator</span><span class="p">.</span><span class="nx">erase</span><span class="p">();</span>
<span class="p">}</span>
<span class="p">},</span> <span class="k">this</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>
<span class="p">}</span>
<span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
<span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">oNavigator</span><span class="p">)</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">oNavigator</span><span class="p">.</span><span class="nx">destroy</span><span class="p">();</span>
<span class="k">this</span><span class="p">.</span><span class="nx">oNavigator</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span>
<span class="p">}</span>
<span class="p">}</span>
<span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * Defines the class names used by Calendar when rendering to DOM. NOTE: The class names are added to the DOM as HTML and should be escaped by the implementor if coming from an external source. </span>
<span class="cm"> * @method initStyles</span>
<span class="cm"> */</span>
<span class="nx">initStyles</span> <span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">defStyle</span> <span class="o">=</span> <span class="nx">Calendar</span><span class="p">.</span><span class="nx">STYLES</span><span class="p">;</span>
<span class="k">this</span><span class="p">.</span><span class="nx">Style</span> <span class="o">=</span> <span class="p">{</span>
<span class="cm">/**</span>
<span class="cm"> * @property Style.CSS_ROW_HEADER</span>
<span class="cm"> */</span>
<span class="nx">CSS_ROW_HEADER</span><span class="o">:</span> <span class="nx">defStyle</span><span class="p">.</span><span class="nx">CSS_ROW_HEADER</span><span class="p">,</span>
<span class="cm">/**</span>
<span class="cm"> * @property Style.CSS_ROW_FOOTER</span>
<span class="cm"> */</span>
<span class="nx">CSS_ROW_FOOTER</span><span class="o">:</span> <span class="nx">defStyle</span><span class="p">.</span><span class="nx">CSS_ROW_FOOTER</span><span class="p">,</span>
<span class="cm">/**</span>
<span class="cm"> * @property Style.CSS_CELL</span>
<span class="cm"> */</span>
<span class="nx">CSS_CELL</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="p">.</span><span class="nx">CSS_CELL</span><span class="p">,</span>
<span class="cm">/**</span>
<span class="cm"> * @property Style.CSS_CELL_SELECTOR</span>
<span class="cm"> */</span>
<span class="nx">CSS_CELL_SELECTOR</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="p">.</span><span class="nx">CSS_CELL_SELECTOR</span><span class="p">,</span>
<span class="cm">/**</span>
<span class="cm"> * @property Style.CSS_CELL_SELECTED</span>
<span class="cm"> */</span>
<span class="nx">CSS_CELL_SELECTED</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="p">.</span><span class="nx">CSS_CELL_SELECTED</span><span class="p">,</span>
<span class="cm">/**</span>
<span class="cm"> * @property Style.CSS_CELL_SELECTABLE</span>
<span class="cm"> */</span>
<span class="nx">CSS_CELL_SELECTABLE</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="p">.</span><span class="nx">CSS_CELL_SELECTABLE</span><span class="p">,</span>
<span class="cm">/**</span>
<span class="cm"> * @property Style.CSS_CELL_RESTRICTED</span>
<span class="cm"> */</span>
<span class="nx">CSS_CELL_RESTRICTED</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="p">.</span><span class="nx">CSS_CELL_RESTRICTED</span><span class="p">,</span>
<span class="cm">/**</span>
<span class="cm"> * @property Style.CSS_CELL_TODAY</span>
<span class="cm"> */</span>
<span class="nx">CSS_CELL_TODAY</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="p">.</span><span class="nx">CSS_CELL_TODAY</span><span class="p">,</span>
<span class="cm">/**</span>
<span class="cm"> * @property Style.CSS_CELL_OOM</span>
<span class="cm"> */</span>
<span class="nx">CSS_CELL_OOM</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="p">.</span><span class="nx">CSS_CELL_OOM</span><span class="p">,</span>
<span class="cm">/**</span>
<span class="cm"> * @property Style.CSS_CELL_OOB</span>
<span class="cm"> */</span>
<span class="nx">CSS_CELL_OOB</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="p">.</span><span class="nx">CSS_CELL_OOB</span><span class="p">,</span>
<span class="cm">/**</span>
<span class="cm"> * @property Style.CSS_HEADER</span>
<span class="cm"> */</span>
<span class="nx">CSS_HEADER</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="p">.</span><span class="nx">CSS_HEADER</span><span class="p">,</span>
<span class="cm">/**</span>
<span class="cm"> * @property Style.CSS_HEADER_TEXT</span>
<span class="cm"> */</span>
<span class="nx">CSS_HEADER_TEXT</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="p">.</span><span class="nx">CSS_HEADER_TEXT</span><span class="p">,</span>
<span class="cm">/**</span>
<span class="cm"> * @property Style.CSS_BODY</span>
<span class="cm"> */</span>
<span class="nx">CSS_BODY</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="p">.</span><span class="nx">CSS_BODY</span><span class="p">,</span>
<span class="cm">/**</span>
<span class="cm"> * @property Style.CSS_WEEKDAY_CELL</span>
<span class="cm"> */</span>
<span class="nx">CSS_WEEKDAY_CELL</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="p">.</span><span class="nx">CSS_WEEKDAY_CELL</span><span class="p">,</span>
<span class="cm">/**</span>
<span class="cm"> * @property Style.CSS_WEEKDAY_ROW</span>
<span class="cm"> */</span>
<span class="nx">CSS_WEEKDAY_ROW</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="p">.</span><span class="nx">CSS_WEEKDAY_ROW</span><span class="p">,</span>
<span class="cm">/**</span>
<span class="cm"> * @property Style.CSS_FOOTER</span>
<span class="cm"> */</span>
<span class="nx">CSS_FOOTER</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="p">.</span><span class="nx">CSS_FOOTER</span><span class="p">,</span>
<span class="cm">/**</span>
<span class="cm"> * @property Style.CSS_CALENDAR</span>
<span class="cm"> */</span>
<span class="nx">CSS_CALENDAR</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="p">.</span><span class="nx">CSS_CALENDAR</span><span class="p">,</span>
<span class="cm">/**</span>
<span class="cm"> * @property Style.CSS_SINGLE</span>
<span class="cm"> */</span>
<span class="nx">CSS_SINGLE</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="p">.</span><span class="nx">CSS_SINGLE</span><span class="p">,</span>
<span class="cm">/**</span>
<span class="cm"> * @property Style.CSS_CONTAINER</span>
<span class="cm"> */</span>
<span class="nx">CSS_CONTAINER</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="p">.</span><span class="nx">CSS_CONTAINER</span><span class="p">,</span>
<span class="cm">/**</span>
<span class="cm"> * @property Style.CSS_NAV_LEFT</span>
<span class="cm"> */</span>
<span class="nx">CSS_NAV_LEFT</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="p">.</span><span class="nx">CSS_NAV_LEFT</span><span class="p">,</span>
<span class="cm">/**</span>
<span class="cm"> * @property Style.CSS_NAV_RIGHT</span>
<span class="cm"> */</span>
<span class="nx">CSS_NAV_RIGHT</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="p">.</span><span class="nx">CSS_NAV_RIGHT</span><span class="p">,</span>
<span class="cm">/**</span>
<span class="cm"> * @property Style.CSS_NAV</span>
<span class="cm"> */</span>
<span class="nx">CSS_NAV</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="p">.</span><span class="nx">CSS_NAV</span><span class="p">,</span>
<span class="cm">/**</span>
<span class="cm"> * @property Style.CSS_CLOSE</span>
<span class="cm"> */</span>
<span class="nx">CSS_CLOSE</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="p">.</span><span class="nx">CSS_CLOSE</span><span class="p">,</span>
<span class="cm">/**</span>
<span class="cm"> * @property Style.CSS_CELL_TOP</span>
<span class="cm"> */</span>
<span class="nx">CSS_CELL_TOP</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="p">.</span><span class="nx">CSS_CELL_TOP</span><span class="p">,</span>
<span class="cm">/**</span>
<span class="cm"> * @property Style.CSS_CELL_LEFT</span>
<span class="cm"> */</span>
<span class="nx">CSS_CELL_LEFT</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="p">.</span><span class="nx">CSS_CELL_LEFT</span><span class="p">,</span>
<span class="cm">/**</span>
<span class="cm"> * @property Style.CSS_CELL_RIGHT</span>
<span class="cm"> */</span>
<span class="nx">CSS_CELL_RIGHT</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="p">.</span><span class="nx">CSS_CELL_RIGHT</span><span class="p">,</span>
<span class="cm">/**</span>
<span class="cm"> * @property Style.CSS_CELL_BOTTOM</span>
<span class="cm"> */</span>
<span class="nx">CSS_CELL_BOTTOM</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="p">.</span><span class="nx">CSS_CELL_BOTTOM</span><span class="p">,</span>
<span class="cm">/**</span>
<span class="cm"> * @property Style.CSS_CELL_HOVER</span>
<span class="cm"> */</span>
<span class="nx">CSS_CELL_HOVER</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="p">.</span><span class="nx">CSS_CELL_HOVER</span><span class="p">,</span>
<span class="cm">/**</span>
<span class="cm"> * @property Style.CSS_CELL_HIGHLIGHT1</span>
<span class="cm"> */</span>
<span class="nx">CSS_CELL_HIGHLIGHT1</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="p">.</span><span class="nx">CSS_CELL_HIGHLIGHT1</span><span class="p">,</span>
<span class="cm">/**</span>
<span class="cm"> * @property Style.CSS_CELL_HIGHLIGHT2</span>
<span class="cm"> */</span>
<span class="nx">CSS_CELL_HIGHLIGHT2</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="p">.</span><span class="nx">CSS_CELL_HIGHLIGHT2</span><span class="p">,</span>
<span class="cm">/**</span>
<span class="cm"> * @property Style.CSS_CELL_HIGHLIGHT3</span>
<span class="cm"> */</span>
<span class="nx">CSS_CELL_HIGHLIGHT3</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="p">.</span><span class="nx">CSS_CELL_HIGHLIGHT3</span><span class="p">,</span>
<span class="cm">/**</span>
<span class="cm"> * @property Style.CSS_CELL_HIGHLIGHT4</span>
<span class="cm"> */</span>
<span class="nx">CSS_CELL_HIGHLIGHT4</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="p">.</span><span class="nx">CSS_CELL_HIGHLIGHT4</span><span class="p">,</span>
<span class="cm">/**</span>
<span class="cm"> * @property Style.CSS_WITH_TITLE</span>
<span class="cm"> */</span>
<span class="nx">CSS_WITH_TITLE</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="p">.</span><span class="nx">CSS_WITH_TITLE</span><span class="p">,</span>
<span class="cm">/**</span>
<span class="cm"> * @property Style.CSS_FIXED_SIZE</span>
<span class="cm"> */</span>
<span class="nx">CSS_FIXED_SIZE</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="p">.</span><span class="nx">CSS_FIXED_SIZE</span><span class="p">,</span>
<span class="cm">/**</span>
<span class="cm"> * @property Style.CSS_LINK_CLOSE</span>
<span class="cm"> */</span>
<span class="nx">CSS_LINK_CLOSE</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="p">.</span><span class="nx">CSS_LINK_CLOSE</span>
<span class="p">};</span>
<span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * Builds the date label that will be displayed in the calendar header or</span>
<span class="cm"> * footer, depending on configuration.</span>
<span class="cm"> * @method buildMonthLabel</span>
<span class="cm"> * @return {HTML} The formatted calendar month label</span>
<span class="cm"> */</span>
<span class="nx">buildMonthLabel</span> <span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
<span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">_buildMonthLabel</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">PAGEDATE</span><span class="p">.</span><span class="nx">key</span><span class="p">));</span>
<span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * Helper method, to format a Month Year string, given a JavaScript Date, based on the </span>
<span class="cm"> * Calendar localization settings</span>
<span class="cm"> * </span>
<span class="cm"> * @method _buildMonthLabel</span>
<span class="cm"> * @private</span>
<span class="cm"> * @param {Date} date</span>
<span class="cm"> * @return {HTML} Formated month, year string</span>
<span class="cm"> */</span>
<span class="nx">_buildMonthLabel</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">date</span><span class="p">)</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">monthLabel</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">Locale</span><span class="p">.</span><span class="nx">LOCALE_MONTHS</span><span class="p">[</span><span class="nx">date</span><span class="p">.</span><span class="nx">getMonth</span><span class="p">()]</span> <span class="o">+</span> <span class="k">this</span><span class="p">.</span><span class="nx">Locale</span><span class="p">.</span><span class="nx">MY_LABEL_MONTH_SUFFIX</span><span class="p">,</span>
<span class="nx">yearLabel</span> <span class="o">=</span> <span class="p">(</span><span class="nx">date</span><span class="p">.</span><span class="nx">getFullYear</span><span class="p">()</span> <span class="o">+</span> <span class="k">this</span><span class="p">.</span><span class="nx">Locale</span><span class="p">.</span><span class="nx">YEAR_OFFSET</span><span class="p">)</span> <span class="o">+</span> <span class="k">this</span><span class="p">.</span><span class="nx">Locale</span><span class="p">.</span><span class="nx">MY_LABEL_YEAR_SUFFIX</span><span class="p">;</span>
<span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">Locale</span><span class="p">.</span><span class="nx">MY_LABEL_MONTH_POSITION</span> <span class="o">==</span> <span class="mi">2</span> <span class="o">||</span> <span class="k">this</span><span class="p">.</span><span class="nx">Locale</span><span class="p">.</span><span class="nx">MY_LABEL_YEAR_POSITION</span> <span class="o">==</span> <span class="mi">1</span><span class="p">)</span> <span class="p">{</span>
<span class="k">return</span> <span class="nx">yearLabel</span> <span class="o">+</span> <span class="nx">monthLabel</span><span class="p">;</span>
<span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
<span class="k">return</span> <span class="nx">monthLabel</span> <span class="o">+</span> <span class="nx">yearLabel</span><span class="p">;</span>
<span class="p">}</span>
<span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * Builds the date digit that will be displayed in calendar cells</span>
<span class="cm"> * @method buildDayLabel</span>
<span class="cm"> * @param {Date} workingDate The current working date</span>
<span class="cm"> * @return {Number} The day</span>
<span class="cm"> */</span>
<span class="nx">buildDayLabel</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">workingDate</span><span class="p">)</span> <span class="p">{</span>
<span class="k">return</span> <span class="nx">workingDate</span><span class="p">.</span><span class="nx">getDate</span><span class="p">();</span>
<span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * Creates the title bar element and adds it to Calendar container DIV. NOTE: The title parameter passed into this method is added to the DOM as HTML and should be escaped by the implementor if coming from an external source. </span>
<span class="cm"> * </span>
<span class="cm"> * @method createTitleBar</span>
<span class="cm"> * @param {HTML} strTitle The title to display in the title bar</span>
<span class="cm"> * @return The title bar element</span>
<span class="cm"> */</span>
<span class="nx">createTitleBar</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">strTitle</span><span class="p">)</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">tDiv</span> <span class="o">=</span> <span class="nx">Dom</span><span class="p">.</span><span class="nx">getElementsByClassName</span><span class="p">(</span><span class="nx">YAHOO</span><span class="p">.</span><span class="nx">widget</span><span class="p">.</span><span class="nx">CalendarGroup</span><span class="p">.</span><span class="nx">CSS_2UPTITLE</span><span class="p">,</span> <span class="s2">&quot;div&quot;</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">oDomContainer</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span> <span class="o">||</span> <span class="nb">document</span><span class="p">.</span><span class="nx">createElement</span><span class="p">(</span><span class="s2">&quot;div&quot;</span><span class="p">);</span>
<span class="nx">tDiv</span><span class="p">.</span><span class="nx">className</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">widget</span><span class="p">.</span><span class="nx">CalendarGroup</span><span class="p">.</span><span class="nx">CSS_2UPTITLE</span><span class="p">;</span>
<span class="nx">tDiv</span><span class="p">.</span><span class="nx">innerHTML</span> <span class="o">=</span> <span class="nx">strTitle</span><span class="p">;</span>
<span class="k">this</span><span class="p">.</span><span class="nx">oDomContainer</span><span class="p">.</span><span class="nx">insertBefore</span><span class="p">(</span><span class="nx">tDiv</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">oDomContainer</span><span class="p">.</span><span class="nx">firstChild</span><span class="p">);</span>
<span class="nx">Dom</span><span class="p">.</span><span class="nx">addClass</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">oDomContainer</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_WITH_TITLE</span><span class="p">);</span>
<span class="k">return</span> <span class="nx">tDiv</span><span class="p">;</span>
<span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * Removes the title bar element from the DOM</span>
<span class="cm"> * </span>
<span class="cm"> * @method removeTitleBar</span>
<span class="cm"> */</span>
<span class="nx">removeTitleBar</span> <span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">tDiv</span> <span class="o">=</span> <span class="nx">Dom</span><span class="p">.</span><span class="nx">getElementsByClassName</span><span class="p">(</span><span class="nx">YAHOO</span><span class="p">.</span><span class="nx">widget</span><span class="p">.</span><span class="nx">CalendarGroup</span><span class="p">.</span><span class="nx">CSS_2UPTITLE</span><span class="p">,</span> <span class="s2">&quot;div&quot;</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">oDomContainer</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span> <span class="o">||</span> <span class="kc">null</span><span class="p">;</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">tDiv</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">Event</span><span class="p">.</span><span class="nx">purgeElement</span><span class="p">(</span><span class="nx">tDiv</span><span class="p">);</span>
<span class="k">this</span><span class="p">.</span><span class="nx">oDomContainer</span><span class="p">.</span><span class="nx">removeChild</span><span class="p">(</span><span class="nx">tDiv</span><span class="p">);</span>
<span class="p">}</span>
<span class="nx">Dom</span><span class="p">.</span><span class="nx">removeClass</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">oDomContainer</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_WITH_TITLE</span><span class="p">);</span>
<span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * Creates the close button HTML element and adds it to Calendar container DIV</span>
<span class="cm"> * </span>
<span class="cm"> * @method createCloseButton</span>
<span class="cm"> * @return {HTMLElement} The close HTML element created</span>
<span class="cm"> */</span>
<span class="nx">createCloseButton</span> <span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">cssClose</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">widget</span><span class="p">.</span><span class="nx">CalendarGroup</span><span class="p">.</span><span class="nx">CSS_2UPCLOSE</span><span class="p">,</span>
<span class="nx">cssLinkClose</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_LINK_CLOSE</span><span class="p">,</span>
<span class="nx">DEPR_CLOSE_PATH</span> <span class="o">=</span> <span class="s2">&quot;us/my/bn/x_d.gif&quot;</span><span class="p">,</span>
<span class="nx">lnk</span> <span class="o">=</span> <span class="nx">Dom</span><span class="p">.</span><span class="nx">getElementsByClassName</span><span class="p">(</span><span class="nx">cssLinkClose</span><span class="p">,</span> <span class="s2">&quot;a&quot;</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">oDomContainer</span><span class="p">)[</span><span class="mi">0</span><span class="p">],</span>
<span class="nx">strings</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">STRINGS</span><span class="p">.</span><span class="nx">key</span><span class="p">),</span>
<span class="nx">closeStr</span> <span class="o">=</span> <span class="p">(</span><span class="nx">strings</span> <span class="o">&amp;&amp;</span> <span class="nx">strings</span><span class="p">.</span><span class="nx">close</span><span class="p">)</span> <span class="o">?</span> <span class="nx">strings</span><span class="p">.</span><span class="nx">close</span> <span class="o">:</span> <span class="s2">&quot;&quot;</span><span class="p">;</span>
<span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">lnk</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">lnk</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">createElement</span><span class="p">(</span><span class="s2">&quot;a&quot;</span><span class="p">);</span>
<span class="nx">Event</span><span class="p">.</span><span class="nx">addListener</span><span class="p">(</span><span class="nx">lnk</span><span class="p">,</span> <span class="s2">&quot;click&quot;</span><span class="p">,</span> <span class="kd">function</span><span class="p">(</span><span class="nx">e</span><span class="p">,</span> <span class="nx">cal</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">cal</span><span class="p">.</span><span class="nx">hide</span><span class="p">();</span>
<span class="nx">Event</span><span class="p">.</span><span class="nx">preventDefault</span><span class="p">(</span><span class="nx">e</span><span class="p">);</span>
<span class="p">},</span> <span class="k">this</span><span class="p">);</span>
<span class="p">}</span>
<span class="nx">lnk</span><span class="p">.</span><span class="nx">href</span> <span class="o">=</span> <span class="s2">&quot;#&quot;</span><span class="p">;</span>
<span class="nx">lnk</span><span class="p">.</span><span class="nx">className</span> <span class="o">=</span> <span class="nx">cssLinkClose</span><span class="p">;</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">Calendar</span><span class="p">.</span><span class="nx">IMG_ROOT</span> <span class="o">!==</span> <span class="kc">null</span><span class="p">)</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">img</span> <span class="o">=</span> <span class="nx">Dom</span><span class="p">.</span><span class="nx">getElementsByClassName</span><span class="p">(</span><span class="nx">cssClose</span><span class="p">,</span> <span class="s2">&quot;img&quot;</span><span class="p">,</span> <span class="nx">lnk</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span> <span class="o">||</span> <span class="nb">document</span><span class="p">.</span><span class="nx">createElement</span><span class="p">(</span><span class="s2">&quot;img&quot;</span><span class="p">);</span>
<span class="nx">img</span><span class="p">.</span><span class="nx">src</span> <span class="o">=</span> <span class="nx">Calendar</span><span class="p">.</span><span class="nx">IMG_ROOT</span> <span class="o">+</span> <span class="nx">DEPR_CLOSE_PATH</span><span class="p">;</span>
<span class="nx">img</span><span class="p">.</span><span class="nx">className</span> <span class="o">=</span> <span class="nx">cssClose</span><span class="p">;</span>
<span class="nx">lnk</span><span class="p">.</span><span class="nx">appendChild</span><span class="p">(</span><span class="nx">img</span><span class="p">);</span>
<span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
<span class="nx">lnk</span><span class="p">.</span><span class="nx">innerHTML</span> <span class="o">=</span> <span class="s1">&#39;&lt;span class=&quot;&#39;</span> <span class="o">+</span> <span class="nx">cssClose</span> <span class="o">+</span> <span class="s1">&#39; &#39;</span> <span class="o">+</span> <span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_CLOSE</span> <span class="o">+</span> <span class="s1">&#39;&quot;&gt;&#39;</span> <span class="o">+</span> <span class="nx">closeStr</span> <span class="o">+</span> <span class="s1">&#39;&lt;/span&gt;&#39;</span><span class="p">;</span>
<span class="p">}</span>
<span class="k">this</span><span class="p">.</span><span class="nx">oDomContainer</span><span class="p">.</span><span class="nx">appendChild</span><span class="p">(</span><span class="nx">lnk</span><span class="p">);</span>
<span class="k">return</span> <span class="nx">lnk</span><span class="p">;</span>
<span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * Removes the close button HTML element from the DOM</span>
<span class="cm"> * </span>
<span class="cm"> * @method removeCloseButton</span>
<span class="cm"> */</span>
<span class="nx">removeCloseButton</span> <span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">btn</span> <span class="o">=</span> <span class="nx">Dom</span><span class="p">.</span><span class="nx">getElementsByClassName</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_LINK_CLOSE</span><span class="p">,</span> <span class="s2">&quot;a&quot;</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">oDomContainer</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span> <span class="o">||</span> <span class="kc">null</span><span class="p">;</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">btn</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">Event</span><span class="p">.</span><span class="nx">purgeElement</span><span class="p">(</span><span class="nx">btn</span><span class="p">);</span>
<span class="k">this</span><span class="p">.</span><span class="nx">oDomContainer</span><span class="p">.</span><span class="nx">removeChild</span><span class="p">(</span><span class="nx">btn</span><span class="p">);</span>
<span class="p">}</span>
<span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * Renders the calendar header. NOTE: The contents of the array passed into this method are added to the DOM as HTML, and should be escaped by the implementor if coming from an external source.</span>
<span class="cm"> * @method renderHeader</span>
<span class="cm"> * @param {HTML[]} html The current working HTML array</span>
<span class="cm"> * @return {HTML[]} The current working HTML array</span>
<span class="cm"> */</span>
<span class="nx">renderHeader</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">html</span><span class="p">)</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">logger</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s2">&quot;Rendering header&quot;</span><span class="p">,</span> <span class="s2">&quot;render&quot;</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">colSpan</span> <span class="o">=</span> <span class="mi">7</span><span class="p">,</span>
<span class="nx">DEPR_NAV_LEFT</span> <span class="o">=</span> <span class="s2">&quot;us/tr/callt.gif&quot;</span><span class="p">,</span>
<span class="nx">DEPR_NAV_RIGHT</span> <span class="o">=</span> <span class="s2">&quot;us/tr/calrt.gif&quot;</span><span class="p">,</span>
<span class="nx">cfg</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">,</span>
<span class="nx">pageDate</span> <span class="o">=</span> <span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">PAGEDATE</span><span class="p">.</span><span class="nx">key</span><span class="p">),</span>
<span class="nx">strings</span><span class="o">=</span> <span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">STRINGS</span><span class="p">.</span><span class="nx">key</span><span class="p">),</span>
<span class="nx">prevStr</span> <span class="o">=</span> <span class="p">(</span><span class="nx">strings</span> <span class="o">&amp;&amp;</span> <span class="nx">strings</span><span class="p">.</span><span class="nx">previousMonth</span><span class="p">)</span> <span class="o">?</span> <span class="nx">strings</span><span class="p">.</span><span class="nx">previousMonth</span> <span class="o">:</span> <span class="s2">&quot;&quot;</span><span class="p">,</span>
<span class="nx">nextStr</span> <span class="o">=</span> <span class="p">(</span><span class="nx">strings</span> <span class="o">&amp;&amp;</span> <span class="nx">strings</span><span class="p">.</span><span class="nx">nextMonth</span><span class="p">)</span> <span class="o">?</span> <span class="nx">strings</span><span class="p">.</span><span class="nx">nextMonth</span> <span class="o">:</span> <span class="s2">&quot;&quot;</span><span class="p">,</span>
<span class="nx">monthLabel</span><span class="p">;</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">SHOW_WEEK_HEADER</span><span class="p">.</span><span class="nx">key</span><span class="p">))</span> <span class="p">{</span>
<span class="nx">colSpan</span> <span class="o">+=</span> <span class="mi">1</span><span class="p">;</span>
<span class="p">}</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">SHOW_WEEK_FOOTER</span><span class="p">.</span><span class="nx">key</span><span class="p">))</span> <span class="p">{</span>
<span class="nx">colSpan</span> <span class="o">+=</span> <span class="mi">1</span><span class="p">;</span>
<span class="p">}</span>
<span class="nx">html</span><span class="p">[</span><span class="nx">html</span><span class="p">.</span><span class="nx">length</span><span class="p">]</span> <span class="o">=</span> <span class="s2">&quot;&lt;thead&gt;&quot;</span><span class="p">;</span>
<span class="nx">html</span><span class="p">[</span><span class="nx">html</span><span class="p">.</span><span class="nx">length</span><span class="p">]</span> <span class="o">=</span> <span class="s2">&quot;&lt;tr&gt;&quot;</span><span class="p">;</span>
<span class="nx">html</span><span class="p">[</span><span class="nx">html</span><span class="p">.</span><span class="nx">length</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;&lt;th colspan=&quot;&#39;</span> <span class="o">+</span> <span class="nx">colSpan</span> <span class="o">+</span> <span class="s1">&#39;&quot; class=&quot;&#39;</span> <span class="o">+</span> <span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_HEADER_TEXT</span> <span class="o">+</span> <span class="s1">&#39;&quot;&gt;&#39;</span><span class="p">;</span>
<span class="nx">html</span><span class="p">[</span><span class="nx">html</span><span class="p">.</span><span class="nx">length</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;&lt;div class=&quot;&#39;</span> <span class="o">+</span> <span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_HEADER</span> <span class="o">+</span> <span class="s1">&#39;&quot;&gt;&#39;</span><span class="p">;</span>
<span class="kd">var</span> <span class="nx">renderLeft</span><span class="p">,</span> <span class="nx">renderRight</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span>
<span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">parent</span><span class="p">)</span> <span class="p">{</span>
<span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">index</span> <span class="o">===</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">renderLeft</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span>
<span class="p">}</span>
<span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">index</span> <span class="o">==</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">parent</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="s2">&quot;pages&quot;</span><span class="p">)</span> <span class="o">-</span><span class="mi">1</span><span class="p">))</span> <span class="p">{</span>
<span class="nx">renderRight</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span>
<span class="p">}</span>
<span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
<span class="nx">renderLeft</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span>
<span class="nx">renderRight</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span>
<span class="p">}</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">renderLeft</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">monthLabel</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">_buildMonthLabel</span><span class="p">(</span><span class="nx">DateMath</span><span class="p">.</span><span class="nx">subtract</span><span class="p">(</span><span class="nx">pageDate</span><span class="p">,</span> <span class="nx">DateMath</span><span class="p">.</span><span class="nx">MONTH</span><span class="p">,</span> <span class="mi">1</span><span class="p">));</span>
<span class="kd">var</span> <span class="nx">leftArrow</span> <span class="o">=</span> <span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">NAV_ARROW_LEFT</span><span class="p">.</span><span class="nx">key</span><span class="p">);</span>
<span class="c1">// Check for deprecated customization - If someone set IMG_ROOT, but didn&#39;t set NAV_ARROW_LEFT, then set NAV_ARROW_LEFT to the old deprecated value</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">leftArrow</span> <span class="o">===</span> <span class="kc">null</span> <span class="o">&amp;&amp;</span> <span class="nx">Calendar</span><span class="p">.</span><span class="nx">IMG_ROOT</span> <span class="o">!==</span> <span class="kc">null</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">leftArrow</span> <span class="o">=</span> <span class="nx">Calendar</span><span class="p">.</span><span class="nx">IMG_ROOT</span> <span class="o">+</span> <span class="nx">DEPR_NAV_LEFT</span><span class="p">;</span>
<span class="p">}</span>
<span class="kd">var</span> <span class="nx">leftStyle</span> <span class="o">=</span> <span class="p">(</span><span class="nx">leftArrow</span> <span class="o">===</span> <span class="kc">null</span><span class="p">)</span> <span class="o">?</span> <span class="s2">&quot;&quot;</span> <span class="o">:</span> <span class="s1">&#39; style=&quot;background-image:url(&#39;</span> <span class="o">+</span> <span class="nx">leftArrow</span> <span class="o">+</span> <span class="s1">&#39;)&quot;&#39;</span><span class="p">;</span>
<span class="nx">html</span><span class="p">[</span><span class="nx">html</span><span class="p">.</span><span class="nx">length</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;&lt;a class=&quot;&#39;</span> <span class="o">+</span> <span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_NAV_LEFT</span> <span class="o">+</span> <span class="s1">&#39;&quot;&#39;</span> <span class="o">+</span> <span class="nx">leftStyle</span> <span class="o">+</span> <span class="s1">&#39; href=&quot;#&quot;&gt;&#39;</span> <span class="o">+</span> <span class="nx">prevStr</span> <span class="o">+</span> <span class="s1">&#39; (&#39;</span> <span class="o">+</span> <span class="nx">monthLabel</span> <span class="o">+</span> <span class="s1">&#39;)&#39;</span> <span class="o">+</span> <span class="s1">&#39;&lt;/a&gt;&#39;</span><span class="p">;</span>
<span class="p">}</span>
<span class="kd">var</span> <span class="nx">lbl</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">buildMonthLabel</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">cal</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">parent</span> <span class="o">||</span> <span class="k">this</span><span class="p">;</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">cal</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="s2">&quot;navigator&quot;</span><span class="p">))</span> <span class="p">{</span>
<span class="nx">lbl</span> <span class="o">=</span> <span class="s2">&quot;&lt;a class=\&quot;&quot;</span> <span class="o">+</span> <span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_NAV</span> <span class="o">+</span> <span class="s2">&quot;\&quot; href=\&quot;#\&quot;&gt;&quot;</span> <span class="o">+</span> <span class="nx">lbl</span> <span class="o">+</span> <span class="s2">&quot;&lt;/a&gt;&quot;</span><span class="p">;</span>
<span class="p">}</span>
<span class="nx">html</span><span class="p">[</span><span class="nx">html</span><span class="p">.</span><span class="nx">length</span><span class="p">]</span> <span class="o">=</span> <span class="nx">lbl</span><span class="p">;</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">renderRight</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">monthLabel</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">_buildMonthLabel</span><span class="p">(</span><span class="nx">DateMath</span><span class="p">.</span><span class="nx">add</span><span class="p">(</span><span class="nx">pageDate</span><span class="p">,</span> <span class="nx">DateMath</span><span class="p">.</span><span class="nx">MONTH</span><span class="p">,</span> <span class="mi">1</span><span class="p">));</span>
<span class="kd">var</span> <span class="nx">rightArrow</span> <span class="o">=</span> <span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">NAV_ARROW_RIGHT</span><span class="p">.</span><span class="nx">key</span><span class="p">);</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">rightArrow</span> <span class="o">===</span> <span class="kc">null</span> <span class="o">&amp;&amp;</span> <span class="nx">Calendar</span><span class="p">.</span><span class="nx">IMG_ROOT</span> <span class="o">!==</span> <span class="kc">null</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">rightArrow</span> <span class="o">=</span> <span class="nx">Calendar</span><span class="p">.</span><span class="nx">IMG_ROOT</span> <span class="o">+</span> <span class="nx">DEPR_NAV_RIGHT</span><span class="p">;</span>
<span class="p">}</span>
<span class="kd">var</span> <span class="nx">rightStyle</span> <span class="o">=</span> <span class="p">(</span><span class="nx">rightArrow</span> <span class="o">===</span> <span class="kc">null</span><span class="p">)</span> <span class="o">?</span> <span class="s2">&quot;&quot;</span> <span class="o">:</span> <span class="s1">&#39; style=&quot;background-image:url(&#39;</span> <span class="o">+</span> <span class="nx">rightArrow</span> <span class="o">+</span> <span class="s1">&#39;)&quot;&#39;</span><span class="p">;</span>
<span class="nx">html</span><span class="p">[</span><span class="nx">html</span><span class="p">.</span><span class="nx">length</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;&lt;a class=&quot;&#39;</span> <span class="o">+</span> <span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_NAV_RIGHT</span> <span class="o">+</span> <span class="s1">&#39;&quot;&#39;</span> <span class="o">+</span> <span class="nx">rightStyle</span> <span class="o">+</span> <span class="s1">&#39; href=&quot;#&quot;&gt;&#39;</span> <span class="o">+</span> <span class="nx">nextStr</span> <span class="o">+</span> <span class="s1">&#39; (&#39;</span> <span class="o">+</span> <span class="nx">monthLabel</span> <span class="o">+</span> <span class="s1">&#39;)&#39;</span> <span class="o">+</span> <span class="s1">&#39;&lt;/a&gt;&#39;</span><span class="p">;</span>
<span class="p">}</span>
<span class="nx">html</span><span class="p">[</span><span class="nx">html</span><span class="p">.</span><span class="nx">length</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;&lt;/div&gt;\n&lt;/th&gt;\n&lt;/tr&gt;&#39;</span><span class="p">;</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">SHOW_WEEKDAYS</span><span class="p">.</span><span class="nx">key</span><span class="p">))</span> <span class="p">{</span>
<span class="nx">html</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">buildWeekdays</span><span class="p">(</span><span class="nx">html</span><span class="p">);</span>
<span class="p">}</span>
<span class="nx">html</span><span class="p">[</span><span class="nx">html</span><span class="p">.</span><span class="nx">length</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;&lt;/thead&gt;&#39;</span><span class="p">;</span>
<span class="k">return</span> <span class="nx">html</span><span class="p">;</span>
<span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * Renders the Calendar&#39;s weekday headers. NOTE: The contents of the array passed into this method are added to the DOM as HTML, and should be escaped by the implementor if coming from an external source.</span>
<span class="cm"> * @method buildWeekdays</span>
<span class="cm"> * @param {HTML[]} html The current working HTML array</span>
<span class="cm"> * @return {HTML[]} The current working HTML array</span>
<span class="cm"> */</span>
<span class="nx">buildWeekdays</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">html</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">html</span><span class="p">[</span><span class="nx">html</span><span class="p">.</span><span class="nx">length</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;&lt;tr class=&quot;&#39;</span> <span class="o">+</span> <span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_WEEKDAY_ROW</span> <span class="o">+</span> <span class="s1">&#39;&quot;&gt;&#39;</span><span class="p">;</span>
<span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">SHOW_WEEK_HEADER</span><span class="p">.</span><span class="nx">key</span><span class="p">))</span> <span class="p">{</span>
<span class="nx">html</span><span class="p">[</span><span class="nx">html</span><span class="p">.</span><span class="nx">length</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;&lt;th&gt;&amp;#160;&lt;/th&gt;&#39;</span><span class="p">;</span>
<span class="p">}</span>
<span class="k">for</span><span class="p">(</span><span class="kd">var</span> <span class="nx">i</span><span class="o">=</span><span class="mi">0</span><span class="p">;</span><span class="nx">i</span> <span class="o">&lt;</span> <span class="k">this</span><span class="p">.</span><span class="nx">Locale</span><span class="p">.</span><span class="nx">LOCALE_WEEKDAYS</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="o">++</span><span class="nx">i</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">html</span><span class="p">[</span><span class="nx">html</span><span class="p">.</span><span class="nx">length</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;&lt;th class=&quot;&#39;</span> <span class="o">+</span> <span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_WEEKDAY_CELL</span> <span class="o">+</span> <span class="s1">&#39;&quot;&gt;&#39;</span> <span class="o">+</span> <span class="k">this</span><span class="p">.</span><span class="nx">Locale</span><span class="p">.</span><span class="nx">LOCALE_WEEKDAYS</span><span class="p">[</span><span class="nx">i</span><span class="p">]</span> <span class="o">+</span> <span class="s1">&#39;&lt;/th&gt;&#39;</span><span class="p">;</span>
<span class="p">}</span>
<span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">SHOW_WEEK_FOOTER</span><span class="p">.</span><span class="nx">key</span><span class="p">))</span> <span class="p">{</span>
<span class="nx">html</span><span class="p">[</span><span class="nx">html</span><span class="p">.</span><span class="nx">length</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;&lt;th&gt;&amp;#160;&lt;/th&gt;&#39;</span><span class="p">;</span>
<span class="p">}</span>
<span class="nx">html</span><span class="p">[</span><span class="nx">html</span><span class="p">.</span><span class="nx">length</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;&lt;/tr&gt;&#39;</span><span class="p">;</span>
<span class="k">return</span> <span class="nx">html</span><span class="p">;</span>
<span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * Renders the calendar body. NOTE: The contents of the array passed into this method are added to the DOM as HTML, and should be escaped by the implementor if coming from an external source.</span>
<span class="cm"> * @method renderBody</span>
<span class="cm"> * @param {Date} workingDate The current working Date being used for the render process</span>
<span class="cm"> * @param {HTML[]} html The current working HTML array</span>
<span class="cm"> * @return {HTML[]} The current working HTML array</span>
<span class="cm"> */</span>
<span class="nx">renderBody</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">workingDate</span><span class="p">,</span> <span class="nx">html</span><span class="p">)</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">logger</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s2">&quot;Rendering body&quot;</span><span class="p">,</span> <span class="s2">&quot;render&quot;</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">startDay</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">START_WEEKDAY</span><span class="p">.</span><span class="nx">key</span><span class="p">);</span>
<span class="k">this</span><span class="p">.</span><span class="nx">preMonthDays</span> <span class="o">=</span> <span class="nx">workingDate</span><span class="p">.</span><span class="nx">getDay</span><span class="p">();</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">startDay</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">preMonthDays</span> <span class="o">-=</span> <span class="nx">startDay</span><span class="p">;</span>
<span class="p">}</span>
<span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">preMonthDays</span> <span class="o">&lt;</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">preMonthDays</span> <span class="o">+=</span> <span class="mi">7</span><span class="p">;</span>
<span class="p">}</span>
<span class="k">this</span><span class="p">.</span><span class="nx">monthDays</span> <span class="o">=</span> <span class="nx">DateMath</span><span class="p">.</span><span class="nx">findMonthEnd</span><span class="p">(</span><span class="nx">workingDate</span><span class="p">).</span><span class="nx">getDate</span><span class="p">();</span>
<span class="k">this</span><span class="p">.</span><span class="nx">postMonthDays</span> <span class="o">=</span> <span class="nx">Calendar</span><span class="p">.</span><span class="nx">DISPLAY_DAYS</span><span class="o">-</span><span class="k">this</span><span class="p">.</span><span class="nx">preMonthDays</span><span class="o">-</span><span class="k">this</span><span class="p">.</span><span class="nx">monthDays</span><span class="p">;</span>
<span class="k">this</span><span class="p">.</span><span class="nx">logger</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">preMonthDays</span> <span class="o">+</span> <span class="s2">&quot; preciding out-of-month days&quot;</span><span class="p">,</span> <span class="s2">&quot;render&quot;</span><span class="p">);</span>
<span class="k">this</span><span class="p">.</span><span class="nx">logger</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">monthDays</span> <span class="o">+</span> <span class="s2">&quot; month days&quot;</span><span class="p">,</span> <span class="s2">&quot;render&quot;</span><span class="p">);</span>
<span class="k">this</span><span class="p">.</span><span class="nx">logger</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">postMonthDays</span> <span class="o">+</span> <span class="s2">&quot; post-month days&quot;</span><span class="p">,</span> <span class="s2">&quot;render&quot;</span><span class="p">);</span>
<span class="nx">workingDate</span> <span class="o">=</span> <span class="nx">DateMath</span><span class="p">.</span><span class="nx">subtract</span><span class="p">(</span><span class="nx">workingDate</span><span class="p">,</span> <span class="nx">DateMath</span><span class="p">.</span><span class="nx">DAY</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">preMonthDays</span><span class="p">);</span>
<span class="k">this</span><span class="p">.</span><span class="nx">logger</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s2">&quot;Calendar page starts on &quot;</span> <span class="o">+</span> <span class="nx">workingDate</span><span class="p">,</span> <span class="s2">&quot;render&quot;</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">weekNum</span><span class="p">,</span>
<span class="nx">weekClass</span><span class="p">,</span>
<span class="nx">weekPrefix</span> <span class="o">=</span> <span class="s2">&quot;w&quot;</span><span class="p">,</span>
<span class="nx">cellPrefix</span> <span class="o">=</span> <span class="s2">&quot;_cell&quot;</span><span class="p">,</span>
<span class="nx">workingDayPrefix</span> <span class="o">=</span> <span class="s2">&quot;wd&quot;</span><span class="p">,</span>
<span class="nx">dayPrefix</span> <span class="o">=</span> <span class="s2">&quot;d&quot;</span><span class="p">,</span>
<span class="nx">cellRenderers</span><span class="p">,</span>
<span class="nx">renderer</span><span class="p">,</span>
<span class="nx">t</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">today</span><span class="p">,</span>
<span class="nx">cfg</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">,</span>
<span class="nx">oom</span><span class="p">,</span>
<span class="nx">todayYear</span> <span class="o">=</span> <span class="nx">t</span><span class="p">.</span><span class="nx">getFullYear</span><span class="p">(),</span>
<span class="nx">todayMonth</span> <span class="o">=</span> <span class="nx">t</span><span class="p">.</span><span class="nx">getMonth</span><span class="p">(),</span>
<span class="nx">todayDate</span> <span class="o">=</span> <span class="nx">t</span><span class="p">.</span><span class="nx">getDate</span><span class="p">(),</span>
<span class="nx">useDate</span> <span class="o">=</span> <span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">PAGEDATE</span><span class="p">.</span><span class="nx">key</span><span class="p">),</span>
<span class="nx">hideBlankWeeks</span> <span class="o">=</span> <span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">HIDE_BLANK_WEEKS</span><span class="p">.</span><span class="nx">key</span><span class="p">),</span>
<span class="nx">showWeekFooter</span> <span class="o">=</span> <span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">SHOW_WEEK_FOOTER</span><span class="p">.</span><span class="nx">key</span><span class="p">),</span>
<span class="nx">showWeekHeader</span> <span class="o">=</span> <span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">SHOW_WEEK_HEADER</span><span class="p">.</span><span class="nx">key</span><span class="p">),</span>
<span class="nx">oomSelect</span> <span class="o">=</span> <span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">OOM_SELECT</span><span class="p">.</span><span class="nx">key</span><span class="p">),</span>
<span class="nx">mindate</span> <span class="o">=</span> <span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MINDATE</span><span class="p">.</span><span class="nx">key</span><span class="p">),</span>
<span class="nx">maxdate</span> <span class="o">=</span> <span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MAXDATE</span><span class="p">.</span><span class="nx">key</span><span class="p">),</span>
<span class="nx">yearOffset</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">Locale</span><span class="p">.</span><span class="nx">YEAR_OFFSET</span><span class="p">;</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">mindate</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">mindate</span> <span class="o">=</span> <span class="nx">DateMath</span><span class="p">.</span><span class="nx">clearTime</span><span class="p">(</span><span class="nx">mindate</span><span class="p">);</span>
<span class="p">}</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">maxdate</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">maxdate</span> <span class="o">=</span> <span class="nx">DateMath</span><span class="p">.</span><span class="nx">clearTime</span><span class="p">(</span><span class="nx">maxdate</span><span class="p">);</span>
<span class="p">}</span>
<span class="nx">html</span><span class="p">[</span><span class="nx">html</span><span class="p">.</span><span class="nx">length</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;&lt;tbody class=&quot;m&#39;</span> <span class="o">+</span> <span class="p">(</span><span class="nx">useDate</span><span class="p">.</span><span class="nx">getMonth</span><span class="p">()</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span> <span class="o">+</span> <span class="s1">&#39; &#39;</span> <span class="o">+</span> <span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_BODY</span> <span class="o">+</span> <span class="s1">&#39;&quot;&gt;&#39;</span><span class="p">;</span>
<span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span>
<span class="nx">tempDiv</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">createElement</span><span class="p">(</span><span class="s2">&quot;div&quot;</span><span class="p">),</span>
<span class="nx">cell</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">createElement</span><span class="p">(</span><span class="s2">&quot;td&quot;</span><span class="p">);</span>
<span class="nx">tempDiv</span><span class="p">.</span><span class="nx">appendChild</span><span class="p">(</span><span class="nx">cell</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">cal</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">parent</span> <span class="o">||</span> <span class="k">this</span><span class="p">;</span>
<span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">r</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">r</span> <span class="o">&lt;</span> <span class="mi">6</span><span class="p">;</span> <span class="nx">r</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">weekNum</span> <span class="o">=</span> <span class="nx">DateMath</span><span class="p">.</span><span class="nx">getWeekNumber</span><span class="p">(</span><span class="nx">workingDate</span><span class="p">,</span> <span class="nx">startDay</span><span class="p">);</span>
<span class="nx">weekClass</span> <span class="o">=</span> <span class="nx">weekPrefix</span> <span class="o">+</span> <span class="nx">weekNum</span><span class="p">;</span>
<span class="c1">// Local OOM check for performance, since we already have pagedate</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">r</span> <span class="o">!==</span> <span class="mi">0</span> <span class="o">&amp;&amp;</span> <span class="nx">hideBlankWeeks</span> <span class="o">===</span> <span class="kc">true</span> <span class="o">&amp;&amp;</span> <span class="nx">workingDate</span><span class="p">.</span><span class="nx">getMonth</span><span class="p">()</span> <span class="o">!=</span> <span class="nx">useDate</span><span class="p">.</span><span class="nx">getMonth</span><span class="p">())</span> <span class="p">{</span>
<span class="k">break</span><span class="p">;</span>
<span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
<span class="nx">html</span><span class="p">[</span><span class="nx">html</span><span class="p">.</span><span class="nx">length</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;&lt;tr class=&quot;&#39;</span> <span class="o">+</span> <span class="nx">weekClass</span> <span class="o">+</span> <span class="s1">&#39;&quot;&gt;&#39;</span><span class="p">;</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">showWeekHeader</span><span class="p">)</span> <span class="p">{</span> <span class="nx">html</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">renderRowHeader</span><span class="p">(</span><span class="nx">weekNum</span><span class="p">,</span> <span class="nx">html</span><span class="p">);</span> <span class="p">}</span>
<span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">d</span><span class="o">=</span><span class="mi">0</span><span class="p">;</span> <span class="nx">d</span> <span class="o">&lt;</span> <span class="mi">7</span><span class="p">;</span> <span class="nx">d</span><span class="o">++</span><span class="p">){</span> <span class="c1">// Render actual days</span>
<span class="nx">cellRenderers</span> <span class="o">=</span> <span class="p">[];</span>
<span class="k">this</span><span class="p">.</span><span class="nx">clearElement</span><span class="p">(</span><span class="nx">cell</span><span class="p">);</span>
<span class="nx">cell</span><span class="p">.</span><span class="nx">className</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_CELL</span><span class="p">;</span>
<span class="nx">cell</span><span class="p">.</span><span class="nx">id</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">id</span> <span class="o">+</span> <span class="nx">cellPrefix</span> <span class="o">+</span> <span class="nx">i</span><span class="p">;</span>
<span class="k">this</span><span class="p">.</span><span class="nx">logger</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s2">&quot;Rendering cell &quot;</span> <span class="o">+</span> <span class="nx">cell</span><span class="p">.</span><span class="nx">id</span> <span class="o">+</span> <span class="s2">&quot; (&quot;</span> <span class="o">+</span> <span class="nx">workingDate</span><span class="p">.</span><span class="nx">getFullYear</span><span class="p">()</span> <span class="o">+</span> <span class="nx">yearOffset</span> <span class="o">+</span> <span class="s2">&quot;-&quot;</span> <span class="o">+</span> <span class="p">(</span><span class="nx">workingDate</span><span class="p">.</span><span class="nx">getMonth</span><span class="p">()</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span> <span class="o">+</span> <span class="s2">&quot;-&quot;</span> <span class="o">+</span> <span class="nx">workingDate</span><span class="p">.</span><span class="nx">getDate</span><span class="p">()</span> <span class="o">+</span> <span class="s2">&quot;)&quot;</span><span class="p">,</span> <span class="s2">&quot;cellrender&quot;</span><span class="p">);</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">workingDate</span><span class="p">.</span><span class="nx">getDate</span><span class="p">()</span> <span class="o">==</span> <span class="nx">todayDate</span> <span class="o">&amp;&amp;</span>
<span class="nx">workingDate</span><span class="p">.</span><span class="nx">getMonth</span><span class="p">()</span> <span class="o">==</span> <span class="nx">todayMonth</span> <span class="o">&amp;&amp;</span>
<span class="nx">workingDate</span><span class="p">.</span><span class="nx">getFullYear</span><span class="p">()</span> <span class="o">==</span> <span class="nx">todayYear</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">cellRenderers</span><span class="p">[</span><span class="nx">cellRenderers</span><span class="p">.</span><span class="nx">length</span><span class="p">]</span><span class="o">=</span><span class="nx">cal</span><span class="p">.</span><span class="nx">renderCellStyleToday</span><span class="p">;</span>
<span class="p">}</span>
<span class="kd">var</span> <span class="nx">workingArray</span> <span class="o">=</span> <span class="p">[</span><span class="nx">workingDate</span><span class="p">.</span><span class="nx">getFullYear</span><span class="p">(),</span><span class="nx">workingDate</span><span class="p">.</span><span class="nx">getMonth</span><span class="p">()</span><span class="o">+</span><span class="mi">1</span><span class="p">,</span><span class="nx">workingDate</span><span class="p">.</span><span class="nx">getDate</span><span class="p">()];</span>
<span class="k">this</span><span class="p">.</span><span class="nx">cellDates</span><span class="p">[</span><span class="k">this</span><span class="p">.</span><span class="nx">cellDates</span><span class="p">.</span><span class="nx">length</span><span class="p">]</span> <span class="o">=</span> <span class="nx">workingArray</span><span class="p">;</span> <span class="c1">// Add this date to cellDates</span>
<span class="c1">// Local OOM check for performance, since we already have pagedate</span>
<span class="nx">oom</span> <span class="o">=</span> <span class="nx">workingDate</span><span class="p">.</span><span class="nx">getMonth</span><span class="p">()</span> <span class="o">!=</span> <span class="nx">useDate</span><span class="p">.</span><span class="nx">getMonth</span><span class="p">();</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">oom</span> <span class="o">&amp;&amp;</span> <span class="o">!</span><span class="nx">oomSelect</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">cellRenderers</span><span class="p">[</span><span class="nx">cellRenderers</span><span class="p">.</span><span class="nx">length</span><span class="p">]</span><span class="o">=</span><span class="nx">cal</span><span class="p">.</span><span class="nx">renderCellNotThisMonth</span><span class="p">;</span>
<span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
<span class="nx">Dom</span><span class="p">.</span><span class="nx">addClass</span><span class="p">(</span><span class="nx">cell</span><span class="p">,</span> <span class="nx">workingDayPrefix</span> <span class="o">+</span> <span class="nx">workingDate</span><span class="p">.</span><span class="nx">getDay</span><span class="p">());</span>
<span class="nx">Dom</span><span class="p">.</span><span class="nx">addClass</span><span class="p">(</span><span class="nx">cell</span><span class="p">,</span> <span class="nx">dayPrefix</span> <span class="o">+</span> <span class="nx">workingDate</span><span class="p">.</span><span class="nx">getDate</span><span class="p">());</span>
<span class="c1">// Concat, so that we&#39;re not splicing from an array </span>
<span class="c1">// which we&#39;re also iterating</span>
<span class="kd">var</span> <span class="nx">rs</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">renderStack</span><span class="p">.</span><span class="nx">concat</span><span class="p">();</span>
<span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">s</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="nx">l</span> <span class="o">=</span> <span class="nx">rs</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="nx">s</span> <span class="o">&lt;</span> <span class="nx">l</span><span class="p">;</span> <span class="o">++</span><span class="nx">s</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">renderer</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span>
<span class="kd">var</span> <span class="nx">rArray</span> <span class="o">=</span> <span class="nx">rs</span><span class="p">[</span><span class="nx">s</span><span class="p">],</span>
<span class="nx">type</span> <span class="o">=</span> <span class="nx">rArray</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span>
<span class="nx">month</span><span class="p">,</span>
<span class="nx">day</span><span class="p">,</span>
<span class="nx">year</span><span class="p">;</span>
<span class="k">switch</span> <span class="p">(</span><span class="nx">type</span><span class="p">)</span> <span class="p">{</span>
<span class="k">case</span> <span class="nx">Calendar</span><span class="p">.</span><span class="nx">DATE</span><span class="o">:</span>
<span class="nx">month</span> <span class="o">=</span> <span class="nx">rArray</span><span class="p">[</span><span class="mi">1</span><span class="p">][</span><span class="mi">1</span><span class="p">];</span>
<span class="nx">day</span> <span class="o">=</span> <span class="nx">rArray</span><span class="p">[</span><span class="mi">1</span><span class="p">][</span><span class="mi">2</span><span class="p">];</span>
<span class="nx">year</span> <span class="o">=</span> <span class="nx">rArray</span><span class="p">[</span><span class="mi">1</span><span class="p">][</span><span class="mi">0</span><span class="p">];</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">workingDate</span><span class="p">.</span><span class="nx">getMonth</span><span class="p">()</span><span class="o">+</span><span class="mi">1</span> <span class="o">==</span> <span class="nx">month</span> <span class="o">&amp;&amp;</span> <span class="nx">workingDate</span><span class="p">.</span><span class="nx">getDate</span><span class="p">()</span> <span class="o">==</span> <span class="nx">day</span> <span class="o">&amp;&amp;</span> <span class="nx">workingDate</span><span class="p">.</span><span class="nx">getFullYear</span><span class="p">()</span> <span class="o">==</span> <span class="nx">year</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">renderer</span> <span class="o">=</span> <span class="nx">rArray</span><span class="p">[</span><span class="mi">2</span><span class="p">];</span>
<span class="k">this</span><span class="p">.</span><span class="nx">renderStack</span><span class="p">.</span><span class="nx">splice</span><span class="p">(</span><span class="nx">s</span><span class="p">,</span><span class="mi">1</span><span class="p">);</span>
<span class="p">}</span>
<span class="k">break</span><span class="p">;</span>
<span class="k">case</span> <span class="nx">Calendar</span><span class="p">.</span><span class="nx">MONTH_DAY</span><span class="o">:</span>
<span class="nx">month</span> <span class="o">=</span> <span class="nx">rArray</span><span class="p">[</span><span class="mi">1</span><span class="p">][</span><span class="mi">0</span><span class="p">];</span>
<span class="nx">day</span> <span class="o">=</span> <span class="nx">rArray</span><span class="p">[</span><span class="mi">1</span><span class="p">][</span><span class="mi">1</span><span class="p">];</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">workingDate</span><span class="p">.</span><span class="nx">getMonth</span><span class="p">()</span><span class="o">+</span><span class="mi">1</span> <span class="o">==</span> <span class="nx">month</span> <span class="o">&amp;&amp;</span> <span class="nx">workingDate</span><span class="p">.</span><span class="nx">getDate</span><span class="p">()</span> <span class="o">==</span> <span class="nx">day</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">renderer</span> <span class="o">=</span> <span class="nx">rArray</span><span class="p">[</span><span class="mi">2</span><span class="p">];</span>
<span class="k">this</span><span class="p">.</span><span class="nx">renderStack</span><span class="p">.</span><span class="nx">splice</span><span class="p">(</span><span class="nx">s</span><span class="p">,</span><span class="mi">1</span><span class="p">);</span>
<span class="p">}</span>
<span class="k">break</span><span class="p">;</span>
<span class="k">case</span> <span class="nx">Calendar</span><span class="p">.</span><span class="nx">RANGE</span><span class="o">:</span>
<span class="kd">var</span> <span class="nx">date1</span> <span class="o">=</span> <span class="nx">rArray</span><span class="p">[</span><span class="mi">1</span><span class="p">][</span><span class="mi">0</span><span class="p">],</span>
<span class="nx">date2</span> <span class="o">=</span> <span class="nx">rArray</span><span class="p">[</span><span class="mi">1</span><span class="p">][</span><span class="mi">1</span><span class="p">],</span>
<span class="nx">d1month</span> <span class="o">=</span> <span class="nx">date1</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span>
<span class="nx">d1day</span> <span class="o">=</span> <span class="nx">date1</span><span class="p">[</span><span class="mi">2</span><span class="p">],</span>
<span class="nx">d1year</span> <span class="o">=</span> <span class="nx">date1</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span>
<span class="nx">d1</span> <span class="o">=</span> <span class="nx">DateMath</span><span class="p">.</span><span class="nx">getDate</span><span class="p">(</span><span class="nx">d1year</span><span class="p">,</span> <span class="nx">d1month</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="nx">d1day</span><span class="p">),</span>
<span class="nx">d2month</span> <span class="o">=</span> <span class="nx">date2</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span>
<span class="nx">d2day</span> <span class="o">=</span> <span class="nx">date2</span><span class="p">[</span><span class="mi">2</span><span class="p">],</span>
<span class="nx">d2year</span> <span class="o">=</span> <span class="nx">date2</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span>
<span class="nx">d2</span> <span class="o">=</span> <span class="nx">DateMath</span><span class="p">.</span><span class="nx">getDate</span><span class="p">(</span><span class="nx">d2year</span><span class="p">,</span> <span class="nx">d2month</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="nx">d2day</span><span class="p">);</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">workingDate</span><span class="p">.</span><span class="nx">getTime</span><span class="p">()</span> <span class="o">&gt;=</span> <span class="nx">d1</span><span class="p">.</span><span class="nx">getTime</span><span class="p">()</span> <span class="o">&amp;&amp;</span> <span class="nx">workingDate</span><span class="p">.</span><span class="nx">getTime</span><span class="p">()</span> <span class="o">&lt;=</span> <span class="nx">d2</span><span class="p">.</span><span class="nx">getTime</span><span class="p">())</span> <span class="p">{</span>
<span class="nx">renderer</span> <span class="o">=</span> <span class="nx">rArray</span><span class="p">[</span><span class="mi">2</span><span class="p">];</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">workingDate</span><span class="p">.</span><span class="nx">getTime</span><span class="p">()</span><span class="o">==</span><span class="nx">d2</span><span class="p">.</span><span class="nx">getTime</span><span class="p">())</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">renderStack</span><span class="p">.</span><span class="nx">splice</span><span class="p">(</span><span class="nx">s</span><span class="p">,</span><span class="mi">1</span><span class="p">);</span>
<span class="p">}</span>
<span class="p">}</span>
<span class="k">break</span><span class="p">;</span>
<span class="k">case</span> <span class="nx">Calendar</span><span class="p">.</span><span class="nx">WEEKDAY</span><span class="o">:</span>
<span class="kd">var</span> <span class="nx">weekday</span> <span class="o">=</span> <span class="nx">rArray</span><span class="p">[</span><span class="mi">1</span><span class="p">][</span><span class="mi">0</span><span class="p">];</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">workingDate</span><span class="p">.</span><span class="nx">getDay</span><span class="p">()</span><span class="o">+</span><span class="mi">1</span> <span class="o">==</span> <span class="nx">weekday</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">renderer</span> <span class="o">=</span> <span class="nx">rArray</span><span class="p">[</span><span class="mi">2</span><span class="p">];</span>
<span class="p">}</span>
<span class="k">break</span><span class="p">;</span>
<span class="k">case</span> <span class="nx">Calendar</span><span class="p">.</span><span class="nx">MONTH</span><span class="o">:</span>
<span class="nx">month</span> <span class="o">=</span> <span class="nx">rArray</span><span class="p">[</span><span class="mi">1</span><span class="p">][</span><span class="mi">0</span><span class="p">];</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">workingDate</span><span class="p">.</span><span class="nx">getMonth</span><span class="p">()</span><span class="o">+</span><span class="mi">1</span> <span class="o">==</span> <span class="nx">month</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">renderer</span> <span class="o">=</span> <span class="nx">rArray</span><span class="p">[</span><span class="mi">2</span><span class="p">];</span>
<span class="p">}</span>
<span class="k">break</span><span class="p">;</span>
<span class="p">}</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">renderer</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">cellRenderers</span><span class="p">[</span><span class="nx">cellRenderers</span><span class="p">.</span><span class="nx">length</span><span class="p">]</span><span class="o">=</span><span class="nx">renderer</span><span class="p">;</span>
<span class="p">}</span>
<span class="p">}</span>
<span class="p">}</span>
<span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">_indexOfSelectedFieldArray</span><span class="p">(</span><span class="nx">workingArray</span><span class="p">)</span> <span class="o">&gt;</span> <span class="o">-</span><span class="mi">1</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">cellRenderers</span><span class="p">[</span><span class="nx">cellRenderers</span><span class="p">.</span><span class="nx">length</span><span class="p">]</span><span class="o">=</span><span class="nx">cal</span><span class="p">.</span><span class="nx">renderCellStyleSelected</span><span class="p">;</span>
<span class="p">}</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">oom</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">cellRenderers</span><span class="p">[</span><span class="nx">cellRenderers</span><span class="p">.</span><span class="nx">length</span><span class="p">]</span> <span class="o">=</span> <span class="nx">cal</span><span class="p">.</span><span class="nx">styleCellNotThisMonth</span><span class="p">;</span>
<span class="p">}</span>
<span class="k">if</span> <span class="p">((</span><span class="nx">mindate</span> <span class="o">&amp;&amp;</span> <span class="p">(</span><span class="nx">workingDate</span><span class="p">.</span><span class="nx">getTime</span><span class="p">()</span> <span class="o">&lt;</span> <span class="nx">mindate</span><span class="p">.</span><span class="nx">getTime</span><span class="p">()))</span> <span class="o">||</span> <span class="p">(</span><span class="nx">maxdate</span> <span class="o">&amp;&amp;</span> <span class="p">(</span><span class="nx">workingDate</span><span class="p">.</span><span class="nx">getTime</span><span class="p">()</span> <span class="o">&gt;</span> <span class="nx">maxdate</span><span class="p">.</span><span class="nx">getTime</span><span class="p">())))</span> <span class="p">{</span>
<span class="nx">cellRenderers</span><span class="p">[</span><span class="nx">cellRenderers</span><span class="p">.</span><span class="nx">length</span><span class="p">]</span> <span class="o">=</span> <span class="nx">cal</span><span class="p">.</span><span class="nx">renderOutOfBoundsDate</span><span class="p">;</span>
<span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
<span class="nx">cellRenderers</span><span class="p">[</span><span class="nx">cellRenderers</span><span class="p">.</span><span class="nx">length</span><span class="p">]</span> <span class="o">=</span> <span class="nx">cal</span><span class="p">.</span><span class="nx">styleCellDefault</span><span class="p">;</span>
<span class="nx">cellRenderers</span><span class="p">[</span><span class="nx">cellRenderers</span><span class="p">.</span><span class="nx">length</span><span class="p">]</span> <span class="o">=</span> <span class="nx">cal</span><span class="p">.</span><span class="nx">renderCellDefault</span><span class="p">;</span>
<span class="p">}</span>
<span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">x</span><span class="o">=</span><span class="mi">0</span><span class="p">;</span> <span class="nx">x</span> <span class="o">&lt;</span> <span class="nx">cellRenderers</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="o">++</span><span class="nx">x</span><span class="p">)</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">logger</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s2">&quot;renderer[&quot;</span> <span class="o">+</span> <span class="nx">x</span> <span class="o">+</span> <span class="s2">&quot;] for (&quot;</span> <span class="o">+</span> <span class="nx">workingDate</span><span class="p">.</span><span class="nx">getFullYear</span><span class="p">()</span> <span class="o">+</span> <span class="nx">yearOffset</span> <span class="o">+</span> <span class="s2">&quot;-&quot;</span> <span class="o">+</span> <span class="p">(</span><span class="nx">workingDate</span><span class="p">.</span><span class="nx">getMonth</span><span class="p">()</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span> <span class="o">+</span> <span class="s2">&quot;-&quot;</span> <span class="o">+</span> <span class="nx">workingDate</span><span class="p">.</span><span class="nx">getDate</span><span class="p">()</span> <span class="o">+</span> <span class="s2">&quot;)&quot;</span><span class="p">,</span> <span class="s2">&quot;cellrender&quot;</span><span class="p">);</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">cellRenderers</span><span class="p">[</span><span class="nx">x</span><span class="p">].</span><span class="nx">call</span><span class="p">(</span><span class="nx">cal</span><span class="p">,</span> <span class="nx">workingDate</span><span class="p">,</span> <span class="nx">cell</span><span class="p">)</span> <span class="o">==</span> <span class="nx">Calendar</span><span class="p">.</span><span class="nx">STOP_RENDER</span><span class="p">)</span> <span class="p">{</span>
<span class="k">break</span><span class="p">;</span>
<span class="p">}</span>
<span class="p">}</span>
<span class="nx">workingDate</span><span class="p">.</span><span class="nx">setTime</span><span class="p">(</span><span class="nx">workingDate</span><span class="p">.</span><span class="nx">getTime</span><span class="p">()</span> <span class="o">+</span> <span class="nx">DateMath</span><span class="p">.</span><span class="nx">ONE_DAY_MS</span><span class="p">);</span>
<span class="c1">// Just in case we crossed DST/Summertime boundaries</span>
<span class="nx">workingDate</span> <span class="o">=</span> <span class="nx">DateMath</span><span class="p">.</span><span class="nx">clearTime</span><span class="p">(</span><span class="nx">workingDate</span><span class="p">);</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">i</span> <span class="o">&gt;=</span> <span class="mi">0</span> <span class="o">&amp;&amp;</span> <span class="nx">i</span> <span class="o">&lt;=</span> <span class="mi">6</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">Dom</span><span class="p">.</span><span class="nx">addClass</span><span class="p">(</span><span class="nx">cell</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_CELL_TOP</span><span class="p">);</span>
<span class="p">}</span>
<span class="k">if</span> <span class="p">((</span><span class="nx">i</span> <span class="o">%</span> <span class="mi">7</span><span class="p">)</span> <span class="o">===</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">Dom</span><span class="p">.</span><span class="nx">addClass</span><span class="p">(</span><span class="nx">cell</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_CELL_LEFT</span><span class="p">);</span>
<span class="p">}</span>
<span class="k">if</span> <span class="p">(((</span><span class="nx">i</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span> <span class="o">%</span> <span class="mi">7</span><span class="p">)</span> <span class="o">===</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">Dom</span><span class="p">.</span><span class="nx">addClass</span><span class="p">(</span><span class="nx">cell</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_CELL_RIGHT</span><span class="p">);</span>
<span class="p">}</span>
<span class="kd">var</span> <span class="nx">postDays</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">postMonthDays</span><span class="p">;</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">hideBlankWeeks</span> <span class="o">&amp;&amp;</span> <span class="nx">postDays</span> <span class="o">&gt;=</span> <span class="mi">7</span><span class="p">)</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">blankWeeks</span> <span class="o">=</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">floor</span><span class="p">(</span><span class="nx">postDays</span><span class="o">/</span><span class="mi">7</span><span class="p">);</span>
<span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">p</span><span class="o">=</span><span class="mi">0</span><span class="p">;</span><span class="nx">p</span><span class="o">&lt;</span><span class="nx">blankWeeks</span><span class="p">;</span><span class="o">++</span><span class="nx">p</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">postDays</span> <span class="o">-=</span> <span class="mi">7</span><span class="p">;</span>
<span class="p">}</span>
<span class="p">}</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">i</span> <span class="o">&gt;=</span> <span class="p">((</span><span class="k">this</span><span class="p">.</span><span class="nx">preMonthDays</span><span class="o">+</span><span class="nx">postDays</span><span class="o">+</span><span class="k">this</span><span class="p">.</span><span class="nx">monthDays</span><span class="p">)</span><span class="o">-</span><span class="mi">7</span><span class="p">))</span> <span class="p">{</span>
<span class="nx">Dom</span><span class="p">.</span><span class="nx">addClass</span><span class="p">(</span><span class="nx">cell</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_CELL_BOTTOM</span><span class="p">);</span>
<span class="p">}</span>
<span class="nx">html</span><span class="p">[</span><span class="nx">html</span><span class="p">.</span><span class="nx">length</span><span class="p">]</span> <span class="o">=</span> <span class="nx">tempDiv</span><span class="p">.</span><span class="nx">innerHTML</span><span class="p">;</span>
<span class="nx">i</span><span class="o">++</span><span class="p">;</span>
<span class="p">}</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">showWeekFooter</span><span class="p">)</span> <span class="p">{</span> <span class="nx">html</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">renderRowFooter</span><span class="p">(</span><span class="nx">weekNum</span><span class="p">,</span> <span class="nx">html</span><span class="p">);</span> <span class="p">}</span>
<span class="nx">html</span><span class="p">[</span><span class="nx">html</span><span class="p">.</span><span class="nx">length</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;&lt;/tr&gt;&#39;</span><span class="p">;</span>
<span class="p">}</span>
<span class="p">}</span>
<span class="nx">html</span><span class="p">[</span><span class="nx">html</span><span class="p">.</span><span class="nx">length</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;&lt;/tbody&gt;&#39;</span><span class="p">;</span>
<span class="k">return</span> <span class="nx">html</span><span class="p">;</span>
<span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * Renders the calendar footer. In the default implementation, there is no footer. NOTE: The contents of the array passed into this method are added to the DOM as HTML, and should be escaped by the implementor if coming from an external source.</span>
<span class="cm"> * @method renderFooter</span>
<span class="cm"> * @param {HTML[]} html The current working HTML array</span>
<span class="cm"> * @return {HTML[]} The current working HTML array</span>
<span class="cm"> */</span>
<span class="nx">renderFooter</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">html</span><span class="p">)</span> <span class="p">{</span> <span class="k">return</span> <span class="nx">html</span><span class="p">;</span> <span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * Renders the calendar after it has been configured. The render() method has a specific call chain that will execute</span>
<span class="cm"> * when the method is called: renderHeader, renderBody, renderFooter.</span>
<span class="cm"> * Refer to the documentation for those methods for information on individual render tasks.</span>
<span class="cm"> * @method render</span>
<span class="cm"> */</span>
<span class="nx">render</span> <span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">beforeRenderEvent</span><span class="p">.</span><span class="nx">fire</span><span class="p">();</span>
<span class="c1">// Find starting day of the current month</span>
<span class="kd">var</span> <span class="nx">workingDate</span> <span class="o">=</span> <span class="nx">DateMath</span><span class="p">.</span><span class="nx">findMonthStart</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">PAGEDATE</span><span class="p">.</span><span class="nx">key</span><span class="p">));</span>
<span class="k">this</span><span class="p">.</span><span class="nx">resetRenderers</span><span class="p">();</span>
<span class="k">this</span><span class="p">.</span><span class="nx">cellDates</span><span class="p">.</span><span class="nx">length</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
<span class="nx">Event</span><span class="p">.</span><span class="nx">purgeElement</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">oDomContainer</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">html</span> <span class="o">=</span> <span class="p">[],</span>
<span class="nx">table</span><span class="p">;</span>
<span class="nx">html</span><span class="p">[</span><span class="nx">html</span><span class="p">.</span><span class="nx">length</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;&lt;table cellSpacing=&quot;0&quot; class=&quot;&#39;</span> <span class="o">+</span> <span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_CALENDAR</span> <span class="o">+</span> <span class="s1">&#39; y&#39;</span> <span class="o">+</span> <span class="p">(</span><span class="nx">workingDate</span><span class="p">.</span><span class="nx">getFullYear</span><span class="p">()</span> <span class="o">+</span> <span class="k">this</span><span class="p">.</span><span class="nx">Locale</span><span class="p">.</span><span class="nx">YEAR_OFFSET</span><span class="p">)</span> <span class="o">+</span><span class="s1">&#39;&quot; id=&quot;&#39;</span> <span class="o">+</span> <span class="k">this</span><span class="p">.</span><span class="nx">id</span> <span class="o">+</span> <span class="s1">&#39;&quot;&gt;&#39;</span><span class="p">;</span>
<span class="nx">html</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">renderHeader</span><span class="p">(</span><span class="nx">html</span><span class="p">);</span>
<span class="nx">html</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">renderBody</span><span class="p">(</span><span class="nx">workingDate</span><span class="p">,</span> <span class="nx">html</span><span class="p">);</span>
<span class="nx">html</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">renderFooter</span><span class="p">(</span><span class="nx">html</span><span class="p">);</span>
<span class="nx">html</span><span class="p">[</span><span class="nx">html</span><span class="p">.</span><span class="nx">length</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;&lt;/table&gt;&#39;</span><span class="p">;</span>
<span class="k">this</span><span class="p">.</span><span class="nx">oDomContainer</span><span class="p">.</span><span class="nx">innerHTML</span> <span class="o">=</span> <span class="nx">html</span><span class="p">.</span><span class="nx">join</span><span class="p">(</span><span class="s2">&quot;\n&quot;</span><span class="p">);</span>
<span class="k">this</span><span class="p">.</span><span class="nx">applyListeners</span><span class="p">();</span>
<span class="c1">// Using oDomContainer.ownerDocument, to allow for cross-frame rendering</span>
<span class="nx">table</span> <span class="o">=</span> <span class="p">((</span><span class="k">this</span><span class="p">.</span><span class="nx">_oDoc</span><span class="p">)</span> <span class="o">&amp;&amp;</span> <span class="k">this</span><span class="p">.</span><span class="nx">_oDoc</span><span class="p">.</span><span class="nx">getElementById</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">id</span><span class="p">))</span> <span class="o">||</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">id</span><span class="p">);</span>
<span class="k">this</span><span class="p">.</span><span class="nx">cells</span> <span class="o">=</span> <span class="nx">Dom</span><span class="p">.</span><span class="nx">getElementsByClassName</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_CELL</span><span class="p">,</span> <span class="s2">&quot;td&quot;</span><span class="p">,</span> <span class="nx">table</span><span class="p">);</span>
<span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">refireEvent</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">TITLE</span><span class="p">.</span><span class="nx">key</span><span class="p">);</span>
<span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">refireEvent</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">CLOSE</span><span class="p">.</span><span class="nx">key</span><span class="p">);</span>
<span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">refireEvent</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">IFRAME</span><span class="p">.</span><span class="nx">key</span><span class="p">);</span>
<span class="k">this</span><span class="p">.</span><span class="nx">renderEvent</span><span class="p">.</span><span class="nx">fire</span><span class="p">();</span>
<span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * Applies the Calendar&#39;s DOM listeners to applicable elements.</span>
<span class="cm"> * @method applyListeners</span>
<span class="cm"> */</span>
<span class="nx">applyListeners</span> <span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">root</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">oDomContainer</span><span class="p">,</span>
<span class="nx">cal</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">parent</span> <span class="o">||</span> <span class="k">this</span><span class="p">,</span>
<span class="nx">anchor</span> <span class="o">=</span> <span class="s2">&quot;a&quot;</span><span class="p">,</span>
<span class="nx">click</span> <span class="o">=</span> <span class="s2">&quot;click&quot;</span><span class="p">;</span>
<span class="kd">var</span> <span class="nx">linkLeft</span> <span class="o">=</span> <span class="nx">Dom</span><span class="p">.</span><span class="nx">getElementsByClassName</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_NAV_LEFT</span><span class="p">,</span> <span class="nx">anchor</span><span class="p">,</span> <span class="nx">root</span><span class="p">),</span>
<span class="nx">linkRight</span> <span class="o">=</span> <span class="nx">Dom</span><span class="p">.</span><span class="nx">getElementsByClassName</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_NAV_RIGHT</span><span class="p">,</span> <span class="nx">anchor</span><span class="p">,</span> <span class="nx">root</span><span class="p">);</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">linkLeft</span> <span class="o">&amp;&amp;</span> <span class="nx">linkLeft</span><span class="p">.</span><span class="nx">length</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">linkLeft</span> <span class="o">=</span> <span class="nx">linkLeft</span><span class="p">[</span><span class="mi">0</span><span class="p">];</span>
<span class="nx">Event</span><span class="p">.</span><span class="nx">addListener</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">linkLeft</span><span class="p">,</span> <span class="nx">click</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">doPreviousMonthNav</span><span class="p">,</span> <span class="nx">cal</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>
<span class="p">}</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">linkRight</span> <span class="o">&amp;&amp;</span> <span class="nx">linkRight</span><span class="p">.</span><span class="nx">length</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">linkRight</span> <span class="o">=</span> <span class="nx">linkRight</span><span class="p">[</span><span class="mi">0</span><span class="p">];</span>
<span class="nx">Event</span><span class="p">.</span><span class="nx">addListener</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">linkRight</span><span class="p">,</span> <span class="nx">click</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">doNextMonthNav</span><span class="p">,</span> <span class="nx">cal</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>
<span class="p">}</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">cal</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="s2">&quot;navigator&quot;</span><span class="p">)</span> <span class="o">!==</span> <span class="kc">null</span><span class="p">)</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">applyNavListeners</span><span class="p">();</span>
<span class="p">}</span>
<span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">domEventMap</span><span class="p">)</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">el</span><span class="p">,</span><span class="nx">elements</span><span class="p">;</span>
<span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">cls</span> <span class="k">in</span> <span class="k">this</span><span class="p">.</span><span class="nx">domEventMap</span><span class="p">)</span> <span class="p">{</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">Lang</span><span class="p">.</span><span class="nx">hasOwnProperty</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">domEventMap</span><span class="p">,</span> <span class="nx">cls</span><span class="p">))</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">items</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">domEventMap</span><span class="p">[</span><span class="nx">cls</span><span class="p">];</span>
<span class="k">if</span> <span class="p">(</span><span class="o">!</span> <span class="p">(</span><span class="nx">items</span> <span class="k">instanceof</span> <span class="nb">Array</span><span class="p">))</span> <span class="p">{</span>
<span class="nx">items</span> <span class="o">=</span> <span class="p">[</span><span class="nx">items</span><span class="p">];</span>
<span class="p">}</span>
<span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">i</span><span class="o">=</span><span class="mi">0</span><span class="p">;</span><span class="nx">i</span><span class="o">&lt;</span><span class="nx">items</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span><span class="nx">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">item</span> <span class="o">=</span> <span class="nx">items</span><span class="p">[</span><span class="nx">i</span><span class="p">];</span>
<span class="nx">elements</span> <span class="o">=</span> <span class="nx">Dom</span><span class="p">.</span><span class="nx">getElementsByClassName</span><span class="p">(</span><span class="nx">cls</span><span class="p">,</span> <span class="nx">item</span><span class="p">.</span><span class="nx">tag</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">oDomContainer</span><span class="p">);</span>
<span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">c</span><span class="o">=</span><span class="mi">0</span><span class="p">;</span><span class="nx">c</span><span class="o">&lt;</span><span class="nx">elements</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span><span class="nx">c</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">el</span> <span class="o">=</span> <span class="nx">elements</span><span class="p">[</span><span class="nx">c</span><span class="p">];</span>
<span class="nx">Event</span><span class="p">.</span><span class="nx">addListener</span><span class="p">(</span><span class="nx">el</span><span class="p">,</span> <span class="nx">item</span><span class="p">.</span><span class="nx">event</span><span class="p">,</span> <span class="nx">item</span><span class="p">.</span><span class="nx">handler</span><span class="p">,</span> <span class="nx">item</span><span class="p">.</span><span class="nx">scope</span><span class="p">,</span> <span class="nx">item</span><span class="p">.</span><span class="nx">correct</span> <span class="p">);</span>
<span class="p">}</span>
<span class="p">}</span>
<span class="p">}</span>
<span class="p">}</span>
<span class="p">}</span>
<span class="nx">Event</span><span class="p">.</span><span class="nx">addListener</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">oDomContainer</span><span class="p">,</span> <span class="s2">&quot;click&quot;</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">doSelectCell</span><span class="p">,</span> <span class="k">this</span><span class="p">);</span>
<span class="nx">Event</span><span class="p">.</span><span class="nx">addListener</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">oDomContainer</span><span class="p">,</span> <span class="s2">&quot;mouseover&quot;</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">doCellMouseOver</span><span class="p">,</span> <span class="k">this</span><span class="p">);</span>
<span class="nx">Event</span><span class="p">.</span><span class="nx">addListener</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">oDomContainer</span><span class="p">,</span> <span class="s2">&quot;mouseout&quot;</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">doCellMouseOut</span><span class="p">,</span> <span class="k">this</span><span class="p">);</span>
<span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * Applies the DOM listeners to activate the Calendar Navigator.</span>
<span class="cm"> * @method applyNavListeners</span>
<span class="cm"> */</span>
<span class="nx">applyNavListeners</span> <span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">calParent</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">parent</span> <span class="o">||</span> <span class="k">this</span><span class="p">,</span>
<span class="nx">cal</span> <span class="o">=</span> <span class="k">this</span><span class="p">,</span>
<span class="nx">navBtns</span> <span class="o">=</span> <span class="nx">Dom</span><span class="p">.</span><span class="nx">getElementsByClassName</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_NAV</span><span class="p">,</span> <span class="s2">&quot;a&quot;</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">oDomContainer</span><span class="p">);</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">navBtns</span><span class="p">.</span><span class="nx">length</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">Event</span><span class="p">.</span><span class="nx">addListener</span><span class="p">(</span><span class="nx">navBtns</span><span class="p">,</span> <span class="s2">&quot;click&quot;</span><span class="p">,</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">e</span><span class="p">,</span> <span class="nx">obj</span><span class="p">)</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">target</span> <span class="o">=</span> <span class="nx">Event</span><span class="p">.</span><span class="nx">getTarget</span><span class="p">(</span><span class="nx">e</span><span class="p">);</span>
<span class="c1">// this == navBtn</span>
<span class="k">if</span> <span class="p">(</span><span class="k">this</span> <span class="o">===</span> <span class="nx">target</span> <span class="o">||</span> <span class="nx">Dom</span><span class="p">.</span><span class="nx">isAncestor</span><span class="p">(</span><span class="k">this</span><span class="p">,</span> <span class="nx">target</span><span class="p">))</span> <span class="p">{</span>
<span class="nx">Event</span><span class="p">.</span><span class="nx">preventDefault</span><span class="p">(</span><span class="nx">e</span><span class="p">);</span>
<span class="p">}</span>
<span class="kd">var</span> <span class="nx">navigator</span> <span class="o">=</span> <span class="nx">calParent</span><span class="p">.</span><span class="nx">oNavigator</span><span class="p">;</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">navigator</span><span class="p">)</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">pgdate</span> <span class="o">=</span> <span class="nx">cal</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="s2">&quot;pagedate&quot;</span><span class="p">);</span>
<span class="nx">navigator</span><span class="p">.</span><span class="nx">setYear</span><span class="p">(</span><span class="nx">pgdate</span><span class="p">.</span><span class="nx">getFullYear</span><span class="p">()</span> <span class="o">+</span> <span class="nx">cal</span><span class="p">.</span><span class="nx">Locale</span><span class="p">.</span><span class="nx">YEAR_OFFSET</span><span class="p">);</span>
<span class="nx">navigator</span><span class="p">.</span><span class="nx">setMonth</span><span class="p">(</span><span class="nx">pgdate</span><span class="p">.</span><span class="nx">getMonth</span><span class="p">());</span>
<span class="nx">navigator</span><span class="p">.</span><span class="nx">show</span><span class="p">();</span>
<span class="p">}</span>
<span class="p">});</span>
<span class="p">}</span>
<span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * Retrieves the Date object for the specified Calendar cell</span>
<span class="cm"> * @method getDateByCellId</span>
<span class="cm"> * @param {String} id The id of the cell</span>
<span class="cm"> * @return {Date} The Date object for the specified Calendar cell</span>
<span class="cm"> */</span>
<span class="nx">getDateByCellId</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">id</span><span class="p">)</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">date</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">getDateFieldsByCellId</span><span class="p">(</span><span class="nx">id</span><span class="p">);</span>
<span class="k">return</span> <span class="p">(</span><span class="nx">date</span><span class="p">)</span> <span class="o">?</span> <span class="nx">DateMath</span><span class="p">.</span><span class="nx">getDate</span><span class="p">(</span><span class="nx">date</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span><span class="nx">date</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="nx">date</span><span class="p">[</span><span class="mi">2</span><span class="p">])</span> <span class="o">:</span> <span class="kc">null</span><span class="p">;</span>
<span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * Retrieves the Date object for the specified Calendar cell</span>
<span class="cm"> * @method getDateFieldsByCellId</span>
<span class="cm"> * @param {String} id The id of the cell</span>
<span class="cm"> * @return {Array} The array of Date fields for the specified Calendar cell</span>
<span class="cm"> */</span>
<span class="nx">getDateFieldsByCellId</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">id</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">id</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">getIndexFromId</span><span class="p">(</span><span class="nx">id</span><span class="p">);</span>
<span class="k">return</span> <span class="p">(</span><span class="nx">id</span> <span class="o">&gt;</span> <span class="o">-</span><span class="mi">1</span><span class="p">)</span> <span class="o">?</span> <span class="k">this</span><span class="p">.</span><span class="nx">cellDates</span><span class="p">[</span><span class="nx">id</span><span class="p">]</span> <span class="o">:</span> <span class="kc">null</span><span class="p">;</span>
<span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * Find the Calendar&#39;s cell index for a given date.</span>
<span class="cm"> * If the date is not found, the method returns -1.</span>
<span class="cm"> * &lt;p&gt;</span>
<span class="cm"> * The returned index can be used to lookup the cell HTMLElement </span>
<span class="cm"> * using the Calendar&#39;s cells array or passed to selectCell to select </span>
<span class="cm"> * cells by index. </span>
<span class="cm"> * &lt;/p&gt;</span>
<span class="cm"> *</span>
<span class="cm"> * See &lt;a href=&quot;#cells&quot;&gt;cells&lt;/a&gt;, &lt;a href=&quot;#selectCell&quot;&gt;selectCell&lt;/a&gt;.</span>
<span class="cm"> *</span>
<span class="cm"> * @method getCellIndex</span>
<span class="cm"> * @param {Date} date JavaScript Date object, for which to find a cell index.</span>
<span class="cm"> * @return {Number} The index of the date in Calendars cellDates/cells arrays, or -1 if the date </span>
<span class="cm"> * is not on the curently rendered Calendar page.</span>
<span class="cm"> */</span>
<span class="nx">getCellIndex</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">date</span><span class="p">)</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">idx</span> <span class="o">=</span> <span class="o">-</span><span class="mi">1</span><span class="p">;</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">date</span><span class="p">)</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">m</span> <span class="o">=</span> <span class="nx">date</span><span class="p">.</span><span class="nx">getMonth</span><span class="p">(),</span>
<span class="nx">y</span> <span class="o">=</span> <span class="nx">date</span><span class="p">.</span><span class="nx">getFullYear</span><span class="p">(),</span>
<span class="nx">d</span> <span class="o">=</span> <span class="nx">date</span><span class="p">.</span><span class="nx">getDate</span><span class="p">(),</span>
<span class="nx">dates</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">cellDates</span><span class="p">;</span>
<span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">i</span> <span class="o">&lt;</span> <span class="nx">dates</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="o">++</span><span class="nx">i</span><span class="p">)</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">cellDate</span> <span class="o">=</span> <span class="nx">dates</span><span class="p">[</span><span class="nx">i</span><span class="p">];</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">cellDate</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">===</span> <span class="nx">y</span> <span class="o">&amp;&amp;</span> <span class="nx">cellDate</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">===</span> <span class="nx">m</span><span class="o">+</span><span class="mi">1</span> <span class="o">&amp;&amp;</span> <span class="nx">cellDate</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="o">===</span> <span class="nx">d</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">idx</span> <span class="o">=</span> <span class="nx">i</span><span class="p">;</span>
<span class="k">break</span><span class="p">;</span>
<span class="p">}</span>
<span class="p">}</span>
<span class="p">}</span>
<span class="k">return</span> <span class="nx">idx</span><span class="p">;</span>
<span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * Given the id used to mark each Calendar cell, this method</span>
<span class="cm"> * extracts the index number from the id.</span>
<span class="cm"> * </span>
<span class="cm"> * @param {String} strId The cell id</span>
<span class="cm"> * @return {Number} The index of the cell, or -1 if id does not contain an index number</span>
<span class="cm"> */</span>
<span class="nx">getIndexFromId</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">strId</span><span class="p">)</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">idx</span> <span class="o">=</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span>
<span class="nx">li</span> <span class="o">=</span> <span class="nx">strId</span><span class="p">.</span><span class="nx">lastIndexOf</span><span class="p">(</span><span class="s2">&quot;_cell&quot;</span><span class="p">);</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">li</span> <span class="o">&gt;</span> <span class="o">-</span><span class="mi">1</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">idx</span> <span class="o">=</span> <span class="nb">parseInt</span><span class="p">(</span><span class="nx">strId</span><span class="p">.</span><span class="nx">substring</span><span class="p">(</span><span class="nx">li</span> <span class="o">+</span> <span class="mi">5</span><span class="p">),</span> <span class="mi">10</span><span class="p">);</span>
<span class="p">}</span>
<span class="k">return</span> <span class="nx">idx</span><span class="p">;</span>
<span class="p">},</span>
<span class="c1">// BEGIN BUILT-IN TABLE CELL RENDERERS</span>
<span class="cm">/**</span>
<span class="cm"> * Renders a cell that falls before the minimum date or after the maximum date.</span>
<span class="cm"> * @method renderOutOfBoundsDate</span>
<span class="cm"> * @param {Date} workingDate The current working Date object being used to generate the calendar</span>
<span class="cm"> * @param {HTMLTableCellElement} cell The current working cell in the calendar</span>
<span class="cm"> * @return {String} YAHOO.widget.Calendar.STOP_RENDER if rendering should stop with this style, null or nothing if rendering</span>
<span class="cm"> * should not be terminated</span>
<span class="cm"> */</span>
<span class="nx">renderOutOfBoundsDate</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">workingDate</span><span class="p">,</span> <span class="nx">cell</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">Dom</span><span class="p">.</span><span class="nx">addClass</span><span class="p">(</span><span class="nx">cell</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_CELL_OOB</span><span class="p">);</span>
<span class="nx">cell</span><span class="p">.</span><span class="nx">innerHTML</span> <span class="o">=</span> <span class="nx">workingDate</span><span class="p">.</span><span class="nx">getDate</span><span class="p">();</span>
<span class="k">return</span> <span class="nx">Calendar</span><span class="p">.</span><span class="nx">STOP_RENDER</span><span class="p">;</span>
<span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * Renders the row header HTML for a week.</span>
<span class="cm"> *</span>
<span class="cm"> * @method renderRowHeader</span>
<span class="cm"> * @param {Number} weekNum The week number of the current row</span>
<span class="cm"> * @param {HTML[]} cell The current working HTML array</span>
<span class="cm"> */</span>
<span class="nx">renderRowHeader</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">weekNum</span><span class="p">,</span> <span class="nx">html</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">html</span><span class="p">[</span><span class="nx">html</span><span class="p">.</span><span class="nx">length</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;&lt;th class=&quot;&#39;</span> <span class="o">+</span> <span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_ROW_HEADER</span> <span class="o">+</span> <span class="s1">&#39;&quot;&gt;&#39;</span> <span class="o">+</span> <span class="nx">weekNum</span> <span class="o">+</span> <span class="s1">&#39;&lt;/th&gt;&#39;</span><span class="p">;</span>
<span class="k">return</span> <span class="nx">html</span><span class="p">;</span>
<span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * Renders the row footer HTML for a week.</span>
<span class="cm"> *</span>
<span class="cm"> * @method renderRowFooter</span>
<span class="cm"> * @param {Number} weekNum The week number of the current row</span>
<span class="cm"> * @param {HTML[]} cell The current working HTML array</span>
<span class="cm"> */</span>
<span class="nx">renderRowFooter</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">weekNum</span><span class="p">,</span> <span class="nx">html</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">html</span><span class="p">[</span><span class="nx">html</span><span class="p">.</span><span class="nx">length</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;&lt;th class=&quot;&#39;</span> <span class="o">+</span> <span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_ROW_FOOTER</span> <span class="o">+</span> <span class="s1">&#39;&quot;&gt;&#39;</span> <span class="o">+</span> <span class="nx">weekNum</span> <span class="o">+</span> <span class="s1">&#39;&lt;/th&gt;&#39;</span><span class="p">;</span>
<span class="k">return</span> <span class="nx">html</span><span class="p">;</span>
<span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * Renders a single standard calendar cell in the calendar widget table.</span>
<span class="cm"> *</span>
<span class="cm"> * All logic for determining how a standard default cell will be rendered is </span>
<span class="cm"> * encapsulated in this method, and must be accounted for when extending the</span>
<span class="cm"> * widget class.</span>
<span class="cm"> *</span>
<span class="cm"> * @method renderCellDefault</span>
<span class="cm"> * @param {Date} workingDate The current working Date object being used to generate the calendar</span>
<span class="cm"> * @param {HTMLTableCellElement} cell The current working cell in the calendar</span>
<span class="cm"> */</span>
<span class="nx">renderCellDefault</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">workingDate</span><span class="p">,</span> <span class="nx">cell</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">cell</span><span class="p">.</span><span class="nx">innerHTML</span> <span class="o">=</span> <span class="s1">&#39;&lt;a href=&quot;#&quot; class=&quot;&#39;</span> <span class="o">+</span> <span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_CELL_SELECTOR</span> <span class="o">+</span> <span class="s1">&#39;&quot;&gt;&#39;</span> <span class="o">+</span> <span class="k">this</span><span class="p">.</span><span class="nx">buildDayLabel</span><span class="p">(</span><span class="nx">workingDate</span><span class="p">)</span> <span class="o">+</span> <span class="s2">&quot;&lt;/a&gt;&quot;</span><span class="p">;</span>
<span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * Styles a selectable cell.</span>
<span class="cm"> * @method styleCellDefault</span>
<span class="cm"> * @param {Date} workingDate The current working Date object being used to generate the calendar</span>
<span class="cm"> * @param {HTMLTableCellElement} cell The current working cell in the calendar</span>
<span class="cm"> */</span>
<span class="nx">styleCellDefault</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">workingDate</span><span class="p">,</span> <span class="nx">cell</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">Dom</span><span class="p">.</span><span class="nx">addClass</span><span class="p">(</span><span class="nx">cell</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_CELL_SELECTABLE</span><span class="p">);</span>
<span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * Renders a single standard calendar cell using the CSS hightlight1 style</span>
<span class="cm"> * @method renderCellStyleHighlight1</span>
<span class="cm"> * @param {Date} workingDate The current working Date object being used to generate the calendar</span>
<span class="cm"> * @param {HTMLTableCellElement} cell The current working cell in the calendar</span>
<span class="cm"> */</span>
<span class="nx">renderCellStyleHighlight1</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">workingDate</span><span class="p">,</span> <span class="nx">cell</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">Dom</span><span class="p">.</span><span class="nx">addClass</span><span class="p">(</span><span class="nx">cell</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_CELL_HIGHLIGHT1</span><span class="p">);</span>
<span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * Renders a single standard calendar cell using the CSS hightlight2 style</span>
<span class="cm"> * @method renderCellStyleHighlight2</span>
<span class="cm"> * @param {Date} workingDate The current working Date object being used to generate the calendar</span>
<span class="cm"> * @param {HTMLTableCellElement} cell The current working cell in the calendar</span>
<span class="cm"> */</span>
<span class="nx">renderCellStyleHighlight2</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">workingDate</span><span class="p">,</span> <span class="nx">cell</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">Dom</span><span class="p">.</span><span class="nx">addClass</span><span class="p">(</span><span class="nx">cell</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_CELL_HIGHLIGHT2</span><span class="p">);</span>
<span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * Renders a single standard calendar cell using the CSS hightlight3 style</span>
<span class="cm"> * @method renderCellStyleHighlight3</span>
<span class="cm"> * @param {Date} workingDate The current working Date object being used to generate the calendar</span>
<span class="cm"> * @param {HTMLTableCellElement} cell The current working cell in the calendar</span>
<span class="cm"> */</span>
<span class="nx">renderCellStyleHighlight3</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">workingDate</span><span class="p">,</span> <span class="nx">cell</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">Dom</span><span class="p">.</span><span class="nx">addClass</span><span class="p">(</span><span class="nx">cell</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_CELL_HIGHLIGHT3</span><span class="p">);</span>
<span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * Renders a single standard calendar cell using the CSS hightlight4 style</span>
<span class="cm"> * @method renderCellStyleHighlight4</span>
<span class="cm"> * @param {Date} workingDate The current working Date object being used to generate the calendar</span>
<span class="cm"> * @param {HTMLTableCellElement} cell The current working cell in the calendar</span>
<span class="cm"> */</span>
<span class="nx">renderCellStyleHighlight4</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">workingDate</span><span class="p">,</span> <span class="nx">cell</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">Dom</span><span class="p">.</span><span class="nx">addClass</span><span class="p">(</span><span class="nx">cell</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_CELL_HIGHLIGHT4</span><span class="p">);</span>
<span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * Applies the default style used for rendering today&#39;s date to the current calendar cell</span>
<span class="cm"> * @method renderCellStyleToday</span>
<span class="cm"> * @param {Date} workingDate The current working Date object being used to generate the calendar</span>
<span class="cm"> * @param {HTMLTableCellElement} cell The current working cell in the calendar</span>
<span class="cm"> */</span>
<span class="nx">renderCellStyleToday</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">workingDate</span><span class="p">,</span> <span class="nx">cell</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">Dom</span><span class="p">.</span><span class="nx">addClass</span><span class="p">(</span><span class="nx">cell</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_CELL_TODAY</span><span class="p">);</span>
<span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * Applies the default style used for rendering selected dates to the current calendar cell</span>
<span class="cm"> * @method renderCellStyleSelected</span>
<span class="cm"> * @param {Date} workingDate The current working Date object being used to generate the calendar</span>
<span class="cm"> * @param {HTMLTableCellElement} cell The current working cell in the calendar</span>
<span class="cm"> * @return {String} YAHOO.widget.Calendar.STOP_RENDER if rendering should stop with this style, null or nothing if rendering</span>
<span class="cm"> * should not be terminated</span>
<span class="cm"> */</span>
<span class="nx">renderCellStyleSelected</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">workingDate</span><span class="p">,</span> <span class="nx">cell</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">Dom</span><span class="p">.</span><span class="nx">addClass</span><span class="p">(</span><span class="nx">cell</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_CELL_SELECTED</span><span class="p">);</span>
<span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * Applies the default style used for rendering dates that are not a part of the current</span>
<span class="cm"> * month (preceding or trailing the cells for the current month)</span>
<span class="cm"> *</span>
<span class="cm"> * @method renderCellNotThisMonth</span>
<span class="cm"> * @param {Date} workingDate The current working Date object being used to generate the calendar</span>
<span class="cm"> * @param {HTMLTableCellElement} cell The current working cell in the calendar</span>
<span class="cm"> * @return {String} YAHOO.widget.Calendar.STOP_RENDER if rendering should stop with this style, null or nothing if rendering</span>
<span class="cm"> * should not be terminated</span>
<span class="cm"> */</span>
<span class="nx">renderCellNotThisMonth</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">workingDate</span><span class="p">,</span> <span class="nx">cell</span><span class="p">)</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">styleCellNotThisMonth</span><span class="p">(</span><span class="nx">workingDate</span><span class="p">,</span> <span class="nx">cell</span><span class="p">);</span>
<span class="nx">cell</span><span class="p">.</span><span class="nx">innerHTML</span><span class="o">=</span><span class="nx">workingDate</span><span class="p">.</span><span class="nx">getDate</span><span class="p">();</span>
<span class="k">return</span> <span class="nx">Calendar</span><span class="p">.</span><span class="nx">STOP_RENDER</span><span class="p">;</span>
<span class="p">},</span>
<span class="cm">/** Applies the style used for rendering out-of-month dates to the current calendar cell</span>
<span class="cm"> * @method styleCellNotThisMonth</span>
<span class="cm"> * @param {Date} workingDate The current working Date object being used to generate the calendar</span>
<span class="cm"> * @param {HTMLTableCellElement} cell The current working cell in the calendar</span>
<span class="cm"> */</span>
<span class="nx">styleCellNotThisMonth</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">workingDate</span><span class="p">,</span> <span class="nx">cell</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">YAHOO</span><span class="p">.</span><span class="nx">util</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">addClass</span><span class="p">(</span><span class="nx">cell</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_CELL_OOM</span><span class="p">);</span>
<span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * Renders the current calendar cell as a non-selectable &quot;black-out&quot; date using the default</span>
<span class="cm"> * restricted style.</span>
<span class="cm"> * @method renderBodyCellRestricted</span>
<span class="cm"> * @param {Date} workingDate The current working Date object being used to generate the calendar</span>
<span class="cm"> * @param {HTMLTableCellElement} cell The current working cell in the calendar</span>
<span class="cm"> * @return {String} YAHOO.widget.Calendar.STOP_RENDER if rendering should stop with this style, null or nothing if rendering</span>
<span class="cm"> * should not be terminated</span>
<span class="cm"> */</span>
<span class="nx">renderBodyCellRestricted</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">workingDate</span><span class="p">,</span> <span class="nx">cell</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">Dom</span><span class="p">.</span><span class="nx">addClass</span><span class="p">(</span><span class="nx">cell</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_CELL</span><span class="p">);</span>
<span class="nx">Dom</span><span class="p">.</span><span class="nx">addClass</span><span class="p">(</span><span class="nx">cell</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_CELL_RESTRICTED</span><span class="p">);</span>
<span class="nx">cell</span><span class="p">.</span><span class="nx">innerHTML</span><span class="o">=</span><span class="nx">workingDate</span><span class="p">.</span><span class="nx">getDate</span><span class="p">();</span>
<span class="k">return</span> <span class="nx">Calendar</span><span class="p">.</span><span class="nx">STOP_RENDER</span><span class="p">;</span>
<span class="p">},</span>
<span class="c1">// END BUILT-IN TABLE CELL RENDERERS</span>
<span class="c1">// BEGIN MONTH NAVIGATION METHODS</span>
<span class="cm">/**</span>
<span class="cm"> * Adds the designated number of months to the current calendar month, and sets the current</span>
<span class="cm"> * calendar page date to the new month.</span>
<span class="cm"> * @method addMonths</span>
<span class="cm"> * @param {Number} count The number of months to add to the current calendar</span>
<span class="cm"> */</span>
<span class="nx">addMonths</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">count</span><span class="p">)</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">cfgPageDate</span> <span class="o">=</span> <span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">PAGEDATE</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span>
<span class="nx">prevDate</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">cfgPageDate</span><span class="p">),</span>
<span class="nx">newDate</span> <span class="o">=</span> <span class="nx">DateMath</span><span class="p">.</span><span class="nx">add</span><span class="p">(</span><span class="nx">prevDate</span><span class="p">,</span> <span class="nx">DateMath</span><span class="p">.</span><span class="nx">MONTH</span><span class="p">,</span> <span class="nx">count</span><span class="p">);</span>
<span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">setProperty</span><span class="p">(</span><span class="nx">cfgPageDate</span><span class="p">,</span> <span class="nx">newDate</span><span class="p">);</span>
<span class="k">this</span><span class="p">.</span><span class="nx">resetRenderers</span><span class="p">();</span>
<span class="k">this</span><span class="p">.</span><span class="nx">changePageEvent</span><span class="p">.</span><span class="nx">fire</span><span class="p">(</span><span class="nx">prevDate</span><span class="p">,</span> <span class="nx">newDate</span><span class="p">);</span>
<span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * Subtracts the designated number of months from the current calendar month, and sets the current</span>
<span class="cm"> * calendar page date to the new month.</span>
<span class="cm"> * @method subtractMonths</span>
<span class="cm"> * @param {Number} count The number of months to subtract from the current calendar</span>
<span class="cm"> */</span>
<span class="nx">subtractMonths</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">count</span><span class="p">)</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">addMonths</span><span class="p">(</span><span class="o">-</span><span class="mi">1</span><span class="o">*</span><span class="nx">count</span><span class="p">);</span>
<span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * Adds the designated number of years to the current calendar, and sets the current</span>
<span class="cm"> * calendar page date to the new month.</span>
<span class="cm"> * @method addYears</span>
<span class="cm"> * @param {Number} count The number of years to add to the current calendar</span>
<span class="cm"> */</span>
<span class="nx">addYears</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">count</span><span class="p">)</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">cfgPageDate</span> <span class="o">=</span> <span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">PAGEDATE</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span>
<span class="nx">prevDate</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">cfgPageDate</span><span class="p">),</span>
<span class="nx">newDate</span> <span class="o">=</span> <span class="nx">DateMath</span><span class="p">.</span><span class="nx">add</span><span class="p">(</span><span class="nx">prevDate</span><span class="p">,</span> <span class="nx">DateMath</span><span class="p">.</span><span class="nx">YEAR</span><span class="p">,</span> <span class="nx">count</span><span class="p">);</span>
<span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">setProperty</span><span class="p">(</span><span class="nx">cfgPageDate</span><span class="p">,</span> <span class="nx">newDate</span><span class="p">);</span>
<span class="k">this</span><span class="p">.</span><span class="nx">resetRenderers</span><span class="p">();</span>
<span class="k">this</span><span class="p">.</span><span class="nx">changePageEvent</span><span class="p">.</span><span class="nx">fire</span><span class="p">(</span><span class="nx">prevDate</span><span class="p">,</span> <span class="nx">newDate</span><span class="p">);</span>
<span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * Subtcats the designated number of years from the current calendar, and sets the current</span>
<span class="cm"> * calendar page date to the new month.</span>
<span class="cm"> * @method subtractYears</span>
<span class="cm"> * @param {Number} count The number of years to subtract from the current calendar</span>
<span class="cm"> */</span>
<span class="nx">subtractYears</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">count</span><span class="p">)</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">addYears</span><span class="p">(</span><span class="o">-</span><span class="mi">1</span><span class="o">*</span><span class="nx">count</span><span class="p">);</span>
<span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * Navigates to the next month page in the calendar widget.</span>
<span class="cm"> * @method nextMonth</span>
<span class="cm"> */</span>
<span class="nx">nextMonth</span> <span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">addMonths</span><span class="p">(</span><span class="mi">1</span><span class="p">);</span>
<span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * Navigates to the previous month page in the calendar widget.</span>
<span class="cm"> * @method previousMonth</span>
<span class="cm"> */</span>
<span class="nx">previousMonth</span> <span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">addMonths</span><span class="p">(</span><span class="o">-</span><span class="mi">1</span><span class="p">);</span>
<span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * Navigates to the next year in the currently selected month in the calendar widget.</span>
<span class="cm"> * @method nextYear</span>
<span class="cm"> */</span>
<span class="nx">nextYear</span> <span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">addYears</span><span class="p">(</span><span class="mi">1</span><span class="p">);</span>
<span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * Navigates to the previous year in the currently selected month in the calendar widget.</span>
<span class="cm"> * @method previousYear</span>
<span class="cm"> */</span>
<span class="nx">previousYear</span> <span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">addYears</span><span class="p">(</span><span class="o">-</span><span class="mi">1</span><span class="p">);</span>
<span class="p">},</span>
<span class="c1">// END MONTH NAVIGATION METHODS</span>
<span class="c1">// BEGIN SELECTION METHODS</span>
<span class="cm">/**</span>
<span class="cm"> * Resets the calendar widget to the originally selected month and year, and </span>
<span class="cm"> * sets the calendar to the initial selection(s).</span>
<span class="cm"> * @method reset</span>
<span class="cm"> */</span>
<span class="nx">reset</span> <span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">resetProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">SELECTED</span><span class="p">.</span><span class="nx">key</span><span class="p">);</span>
<span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">resetProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">PAGEDATE</span><span class="p">.</span><span class="nx">key</span><span class="p">);</span>
<span class="k">this</span><span class="p">.</span><span class="nx">resetEvent</span><span class="p">.</span><span class="nx">fire</span><span class="p">();</span>
<span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * Clears the selected dates in the current calendar widget and sets the calendar</span>
<span class="cm"> * to the current month and year.</span>
<span class="cm"> * @method clear</span>
<span class="cm"> */</span>
<span class="nx">clear</span> <span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">setProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">SELECTED</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">[]);</span>
<span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">setProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">PAGEDATE</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="k">new</span> <span class="nb">Date</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">today</span><span class="p">.</span><span class="nx">getTime</span><span class="p">()));</span>
<span class="k">this</span><span class="p">.</span><span class="nx">clearEvent</span><span class="p">.</span><span class="nx">fire</span><span class="p">();</span>
<span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * Selects a date or a collection of dates on the current calendar. This method, by default,</span>
<span class="cm"> * does not call the render method explicitly. Once selection has completed, render must be </span>
<span class="cm"> * called for the changes to be reflected visually.</span>
<span class="cm"> *</span>
<span class="cm"> * Any dates which are OOB (out of bounds, not selectable) will not be selected and the array of </span>
<span class="cm"> * selected dates passed to the selectEvent will not contain OOB dates.</span>
<span class="cm"> * </span>
<span class="cm"> * If all dates are OOB, the no state change will occur; beforeSelect and select events will not be fired.</span>
<span class="cm"> *</span>
<span class="cm"> * @method select</span>
<span class="cm"> * @param {String/Date/Date[]} date The date string of dates to select in the current calendar. Valid formats are</span>
<span class="cm"> * individual date(s) (12/24/2005,12/26/2005) or date range(s) (12/24/2005-1/1/2006).</span>
<span class="cm"> * Multiple comma-delimited dates can also be passed to this method (12/24/2005,12/11/2005-12/13/2005).</span>
<span class="cm"> * This method can also take a JavaScript Date object or an array of Date objects.</span>
<span class="cm"> * @return {Date[]} Array of JavaScript Date objects representing all individual dates that are currently selected.</span>
<span class="cm"> */</span>
<span class="nx">select</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">date</span><span class="p">)</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">logger</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s2">&quot;Select: &quot;</span> <span class="o">+</span> <span class="nx">date</span><span class="p">,</span> <span class="s2">&quot;info&quot;</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">aToBeSelected</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">_toFieldArray</span><span class="p">(</span><span class="nx">date</span><span class="p">),</span>
<span class="nx">validDates</span> <span class="o">=</span> <span class="p">[],</span>
<span class="nx">selected</span> <span class="o">=</span> <span class="p">[],</span>
<span class="nx">cfgSelected</span> <span class="o">=</span> <span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">SELECTED</span><span class="p">.</span><span class="nx">key</span><span class="p">;</span>
<span class="k">this</span><span class="p">.</span><span class="nx">logger</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s2">&quot;Selection field array: &quot;</span> <span class="o">+</span> <span class="nx">aToBeSelected</span><span class="p">,</span> <span class="s2">&quot;info&quot;</span><span class="p">);</span>
<span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">a</span><span class="o">=</span><span class="mi">0</span><span class="p">;</span> <span class="nx">a</span> <span class="o">&lt;</span> <span class="nx">aToBeSelected</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="o">++</span><span class="nx">a</span><span class="p">)</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">toSelect</span> <span class="o">=</span> <span class="nx">aToBeSelected</span><span class="p">[</span><span class="nx">a</span><span class="p">];</span>
<span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="k">this</span><span class="p">.</span><span class="nx">isDateOOB</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">_toDate</span><span class="p">(</span><span class="nx">toSelect</span><span class="p">)))</span> <span class="p">{</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">validDates</span><span class="p">.</span><span class="nx">length</span> <span class="o">===</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">beforeSelectEvent</span><span class="p">.</span><span class="nx">fire</span><span class="p">();</span>
<span class="nx">selected</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">cfgSelected</span><span class="p">);</span>
<span class="p">}</span>
<span class="nx">validDates</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">toSelect</span><span class="p">);</span>
<span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">_indexOfSelectedFieldArray</span><span class="p">(</span><span class="nx">toSelect</span><span class="p">)</span> <span class="o">==</span> <span class="o">-</span><span class="mi">1</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">selected</span><span class="p">[</span><span class="nx">selected</span><span class="p">.</span><span class="nx">length</span><span class="p">]</span> <span class="o">=</span> <span class="nx">toSelect</span><span class="p">;</span>
<span class="p">}</span>
<span class="p">}</span>
<span class="p">}</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">validDates</span><span class="p">.</span><span class="nx">length</span> <span class="o">===</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span> <span class="k">this</span><span class="p">.</span><span class="nx">logger</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s2">&quot;All provided dates were OOB. beforeSelect and select events not fired&quot;</span><span class="p">,</span> <span class="s2">&quot;info&quot;</span><span class="p">);</span> <span class="p">}</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">validDates</span><span class="p">.</span><span class="nx">length</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span>
<span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">parent</span><span class="p">)</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">parent</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">setProperty</span><span class="p">(</span><span class="nx">cfgSelected</span><span class="p">,</span> <span class="nx">selected</span><span class="p">);</span>
<span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">setProperty</span><span class="p">(</span><span class="nx">cfgSelected</span><span class="p">,</span> <span class="nx">selected</span><span class="p">);</span>
<span class="p">}</span>
<span class="k">this</span><span class="p">.</span><span class="nx">selectEvent</span><span class="p">.</span><span class="nx">fire</span><span class="p">(</span><span class="nx">validDates</span><span class="p">);</span>
<span class="p">}</span>
<span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">getSelectedDates</span><span class="p">();</span>
<span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * Selects a date on the current calendar by referencing the index of the cell that should be selected.</span>
<span class="cm"> * This method is used to easily select a single cell (usually with a mouse click) without having to do</span>
<span class="cm"> * a full render. The selected style is applied to the cell directly.</span>
<span class="cm"> *</span>
<span class="cm"> * If the cell is not marked with the CSS_CELL_SELECTABLE class (as is the case by default for out of month </span>
<span class="cm"> * or out of bounds cells), it will not be selected and in such a case beforeSelect and select events will not be fired.</span>
<span class="cm"> * </span>
<span class="cm"> * @method selectCell</span>
<span class="cm"> * @param {Number} cellIndex The index of the cell to select in the current calendar. </span>
<span class="cm"> * @return {Date[]} Array of JavaScript Date objects representing all individual dates that are currently selected.</span>
<span class="cm"> */</span>
<span class="nx">selectCell</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">cellIndex</span><span class="p">)</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">cell</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">cells</span><span class="p">[</span><span class="nx">cellIndex</span><span class="p">],</span>
<span class="nx">cellDate</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">cellDates</span><span class="p">[</span><span class="nx">cellIndex</span><span class="p">],</span>
<span class="nx">dCellDate</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">_toDate</span><span class="p">(</span><span class="nx">cellDate</span><span class="p">),</span>
<span class="nx">selectable</span> <span class="o">=</span> <span class="nx">Dom</span><span class="p">.</span><span class="nx">hasClass</span><span class="p">(</span><span class="nx">cell</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_CELL_SELECTABLE</span><span class="p">);</span>
<span class="k">this</span><span class="p">.</span><span class="nx">logger</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s2">&quot;Select: &quot;</span> <span class="o">+</span> <span class="nx">dCellDate</span><span class="p">,</span> <span class="s2">&quot;info&quot;</span><span class="p">);</span>
<span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">selectable</span><span class="p">)</span> <span class="p">{</span><span class="k">this</span><span class="p">.</span><span class="nx">logger</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s2">&quot;The cell at cellIndex:&quot;</span> <span class="o">+</span> <span class="nx">cellIndex</span> <span class="o">+</span> <span class="s2">&quot; is not a selectable cell. beforeSelect, select events not fired&quot;</span><span class="p">,</span> <span class="s2">&quot;info&quot;</span><span class="p">);</span> <span class="p">}</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">selectable</span><span class="p">)</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">beforeSelectEvent</span><span class="p">.</span><span class="nx">fire</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">cfgSelected</span> <span class="o">=</span> <span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">SELECTED</span><span class="p">.</span><span class="nx">key</span><span class="p">;</span>
<span class="kd">var</span> <span class="nx">selected</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">cfgSelected</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">selectDate</span> <span class="o">=</span> <span class="nx">cellDate</span><span class="p">.</span><span class="nx">concat</span><span class="p">();</span>
<span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">_indexOfSelectedFieldArray</span><span class="p">(</span><span class="nx">selectDate</span><span class="p">)</span> <span class="o">==</span> <span class="o">-</span><span class="mi">1</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">selected</span><span class="p">[</span><span class="nx">selected</span><span class="p">.</span><span class="nx">length</span><span class="p">]</span> <span class="o">=</span> <span class="nx">selectDate</span><span class="p">;</span>
<span class="p">}</span>
<span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">parent</span><span class="p">)</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">parent</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">setProperty</span><span class="p">(</span><span class="nx">cfgSelected</span><span class="p">,</span> <span class="nx">selected</span><span class="p">);</span>
<span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">setProperty</span><span class="p">(</span><span class="nx">cfgSelected</span><span class="p">,</span> <span class="nx">selected</span><span class="p">);</span>
<span class="p">}</span>
<span class="k">this</span><span class="p">.</span><span class="nx">renderCellStyleSelected</span><span class="p">(</span><span class="nx">dCellDate</span><span class="p">,</span><span class="nx">cell</span><span class="p">);</span>
<span class="k">this</span><span class="p">.</span><span class="nx">selectEvent</span><span class="p">.</span><span class="nx">fire</span><span class="p">([</span><span class="nx">selectDate</span><span class="p">]);</span>
<span class="k">this</span><span class="p">.</span><span class="nx">doCellMouseOut</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="nx">cell</span><span class="p">,</span> <span class="kc">null</span><span class="p">,</span> <span class="k">this</span><span class="p">);</span>
<span class="p">}</span>
<span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">getSelectedDates</span><span class="p">();</span>
<span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * Deselects a date or a collection of dates on the current calendar. This method, by default,</span>
<span class="cm"> * does not call the render method explicitly. Once deselection has completed, render must be </span>
<span class="cm"> * called for the changes to be reflected visually.</span>
<span class="cm"> * </span>
<span class="cm"> * The method will not attempt to deselect any dates which are OOB (out of bounds, and hence not selectable) </span>
<span class="cm"> * and the array of deselected dates passed to the deselectEvent will not contain any OOB dates.</span>
<span class="cm"> * </span>
<span class="cm"> * If all dates are OOB, beforeDeselect and deselect events will not be fired.</span>
<span class="cm"> * </span>
<span class="cm"> * @method deselect</span>
<span class="cm"> * @param {String/Date/Date[]} date The date string of dates to deselect in the current calendar. Valid formats are</span>
<span class="cm"> * individual date(s) (12/24/2005,12/26/2005) or date range(s) (12/24/2005-1/1/2006).</span>
<span class="cm"> * Multiple comma-delimited dates can also be passed to this method (12/24/2005,12/11/2005-12/13/2005).</span>
<span class="cm"> * This method can also take a JavaScript Date object or an array of Date objects. </span>
<span class="cm"> * @return {Date[]} Array of JavaScript Date objects representing all individual dates that are currently selected.</span>
<span class="cm"> */</span>
<span class="nx">deselect</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">date</span><span class="p">)</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">logger</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s2">&quot;Deselect: &quot;</span> <span class="o">+</span> <span class="nx">date</span><span class="p">,</span> <span class="s2">&quot;info&quot;</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">aToBeDeselected</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">_toFieldArray</span><span class="p">(</span><span class="nx">date</span><span class="p">),</span>
<span class="nx">validDates</span> <span class="o">=</span> <span class="p">[],</span>
<span class="nx">selected</span> <span class="o">=</span> <span class="p">[],</span>
<span class="nx">cfgSelected</span> <span class="o">=</span> <span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">SELECTED</span><span class="p">.</span><span class="nx">key</span><span class="p">;</span>
<span class="k">this</span><span class="p">.</span><span class="nx">logger</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s2">&quot;Deselection field array: &quot;</span> <span class="o">+</span> <span class="nx">aToBeDeselected</span><span class="p">,</span> <span class="s2">&quot;info&quot;</span><span class="p">);</span>
<span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">a</span><span class="o">=</span><span class="mi">0</span><span class="p">;</span> <span class="nx">a</span> <span class="o">&lt;</span> <span class="nx">aToBeDeselected</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="o">++</span><span class="nx">a</span><span class="p">)</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">toDeselect</span> <span class="o">=</span> <span class="nx">aToBeDeselected</span><span class="p">[</span><span class="nx">a</span><span class="p">];</span>
<span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="k">this</span><span class="p">.</span><span class="nx">isDateOOB</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">_toDate</span><span class="p">(</span><span class="nx">toDeselect</span><span class="p">)))</span> <span class="p">{</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">validDates</span><span class="p">.</span><span class="nx">length</span> <span class="o">===</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">beforeDeselectEvent</span><span class="p">.</span><span class="nx">fire</span><span class="p">();</span>
<span class="nx">selected</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">cfgSelected</span><span class="p">);</span>
<span class="p">}</span>
<span class="nx">validDates</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">toDeselect</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">index</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">_indexOfSelectedFieldArray</span><span class="p">(</span><span class="nx">toDeselect</span><span class="p">);</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">index</span> <span class="o">!=</span> <span class="o">-</span><span class="mi">1</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">selected</span><span class="p">.</span><span class="nx">splice</span><span class="p">(</span><span class="nx">index</span><span class="p">,</span><span class="mi">1</span><span class="p">);</span>
<span class="p">}</span>
<span class="p">}</span>
<span class="p">}</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">validDates</span><span class="p">.</span><span class="nx">length</span> <span class="o">===</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span> <span class="k">this</span><span class="p">.</span><span class="nx">logger</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s2">&quot;All provided dates were OOB. beforeDeselect and deselect events not fired&quot;</span><span class="p">);}</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">validDates</span><span class="p">.</span><span class="nx">length</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span>
<span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">parent</span><span class="p">)</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">parent</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">setProperty</span><span class="p">(</span><span class="nx">cfgSelected</span><span class="p">,</span> <span class="nx">selected</span><span class="p">);</span>
<span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">setProperty</span><span class="p">(</span><span class="nx">cfgSelected</span><span class="p">,</span> <span class="nx">selected</span><span class="p">);</span>
<span class="p">}</span>
<span class="k">this</span><span class="p">.</span><span class="nx">deselectEvent</span><span class="p">.</span><span class="nx">fire</span><span class="p">(</span><span class="nx">validDates</span><span class="p">);</span>
<span class="p">}</span>
<span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">getSelectedDates</span><span class="p">();</span>
<span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * Deselects a date on the current calendar by referencing the index of the cell that should be deselected.</span>
<span class="cm"> * This method is used to easily deselect a single cell (usually with a mouse click) without having to do</span>
<span class="cm"> * a full render. The selected style is removed from the cell directly.</span>
<span class="cm"> * </span>
<span class="cm"> * If the cell is not marked with the CSS_CELL_SELECTABLE class (as is the case by default for out of month </span>
<span class="cm"> * or out of bounds cells), the method will not attempt to deselect it and in such a case, beforeDeselect and </span>
<span class="cm"> * deselect events will not be fired.</span>
<span class="cm"> * </span>
<span class="cm"> * @method deselectCell</span>
<span class="cm"> * @param {Number} cellIndex The index of the cell to deselect in the current calendar. </span>
<span class="cm"> * @return {Date[]} Array of JavaScript Date objects representing all individual dates that are currently selected.</span>
<span class="cm"> */</span>
<span class="nx">deselectCell</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">cellIndex</span><span class="p">)</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">cell</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">cells</span><span class="p">[</span><span class="nx">cellIndex</span><span class="p">],</span>
<span class="nx">cellDate</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">cellDates</span><span class="p">[</span><span class="nx">cellIndex</span><span class="p">],</span>
<span class="nx">cellDateIndex</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">_indexOfSelectedFieldArray</span><span class="p">(</span><span class="nx">cellDate</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">selectable</span> <span class="o">=</span> <span class="nx">Dom</span><span class="p">.</span><span class="nx">hasClass</span><span class="p">(</span><span class="nx">cell</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_CELL_SELECTABLE</span><span class="p">);</span>
<span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">selectable</span><span class="p">)</span> <span class="p">{</span> <span class="k">this</span><span class="p">.</span><span class="nx">logger</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s2">&quot;The cell at cellIndex:&quot;</span> <span class="o">+</span> <span class="nx">cellIndex</span> <span class="o">+</span> <span class="s2">&quot; is not a selectable/deselectable cell&quot;</span><span class="p">,</span> <span class="s2">&quot;info&quot;</span><span class="p">);</span> <span class="p">}</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">selectable</span><span class="p">)</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">beforeDeselectEvent</span><span class="p">.</span><span class="nx">fire</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">selected</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">SELECTED</span><span class="p">.</span><span class="nx">key</span><span class="p">),</span>
<span class="nx">dCellDate</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">_toDate</span><span class="p">(</span><span class="nx">cellDate</span><span class="p">),</span>
<span class="nx">selectDate</span> <span class="o">=</span> <span class="nx">cellDate</span><span class="p">.</span><span class="nx">concat</span><span class="p">();</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">cellDateIndex</span> <span class="o">&gt;</span> <span class="o">-</span><span class="mi">1</span><span class="p">)</span> <span class="p">{</span>
<span class="k">if</span> <span class="p">((</span><span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">PAGEDATE</span><span class="p">.</span><span class="nx">key</span><span class="p">).</span><span class="nx">getMonth</span><span class="p">()</span> <span class="o">==</span> <span class="nx">dCellDate</span><span class="p">.</span><span class="nx">getMonth</span><span class="p">()</span> <span class="o">&amp;&amp;</span>
<span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">PAGEDATE</span><span class="p">.</span><span class="nx">key</span><span class="p">).</span><span class="nx">getFullYear</span><span class="p">()</span> <span class="o">==</span> <span class="nx">dCellDate</span><span class="p">.</span><span class="nx">getFullYear</span><span class="p">())</span> <span class="o">||</span> <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">OOM_SELECT</span><span class="p">.</span><span class="nx">key</span><span class="p">))</span> <span class="p">{</span>
<span class="nx">Dom</span><span class="p">.</span><span class="nx">removeClass</span><span class="p">(</span><span class="nx">cell</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_CELL_SELECTED</span><span class="p">);</span>
<span class="p">}</span>
<span class="nx">selected</span><span class="p">.</span><span class="nx">splice</span><span class="p">(</span><span class="nx">cellDateIndex</span><span class="p">,</span> <span class="mi">1</span><span class="p">);</span>
<span class="p">}</span>
<span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">parent</span><span class="p">)</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">parent</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">setProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">SELECTED</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="nx">selected</span><span class="p">);</span>
<span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">setProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">SELECTED</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="nx">selected</span><span class="p">);</span>
<span class="p">}</span>
<span class="k">this</span><span class="p">.</span><span class="nx">deselectEvent</span><span class="p">.</span><span class="nx">fire</span><span class="p">([</span><span class="nx">selectDate</span><span class="p">]);</span>
<span class="p">}</span>
<span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">getSelectedDates</span><span class="p">();</span>
<span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * Deselects all dates on the current calendar.</span>
<span class="cm"> * @method deselectAll</span>
<span class="cm"> * @return {Date[]} Array of JavaScript Date objects representing all individual dates that are currently selected.</span>
<span class="cm"> * Assuming that this function executes properly, the return value should be an empty array.</span>
<span class="cm"> * However, the empty array is returned for the sake of being able to check the selection status</span>
<span class="cm"> * of the calendar.</span>
<span class="cm"> */</span>
<span class="nx">deselectAll</span> <span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">beforeDeselectEvent</span><span class="p">.</span><span class="nx">fire</span><span class="p">();</span>
<span class="kd">var</span> <span class="nx">cfgSelected</span> <span class="o">=</span> <span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">SELECTED</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span>
<span class="nx">selected</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">cfgSelected</span><span class="p">),</span>
<span class="nx">count</span> <span class="o">=</span> <span class="nx">selected</span><span class="p">.</span><span class="nx">length</span><span class="p">,</span>
<span class="nx">sel</span> <span class="o">=</span> <span class="nx">selected</span><span class="p">.</span><span class="nx">concat</span><span class="p">();</span>
<span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">parent</span><span class="p">)</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">parent</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">setProperty</span><span class="p">(</span><span class="nx">cfgSelected</span><span class="p">,</span> <span class="p">[]);</span>
<span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">setProperty</span><span class="p">(</span><span class="nx">cfgSelected</span><span class="p">,</span> <span class="p">[]);</span>
<span class="p">}</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">count</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">deselectEvent</span><span class="p">.</span><span class="nx">fire</span><span class="p">(</span><span class="nx">sel</span><span class="p">);</span>
<span class="p">}</span>
<span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">getSelectedDates</span><span class="p">();</span>
<span class="p">},</span>
<span class="c1">// END SELECTION METHODS</span>
<span class="c1">// BEGIN TYPE CONVERSION METHODS</span>
<span class="cm">/**</span>
<span class="cm"> * Converts a date (either a JavaScript Date object, or a date string) to the internal data structure</span>
<span class="cm"> * used to represent dates: [[yyyy,mm,dd],[yyyy,mm,dd]].</span>
<span class="cm"> * @method _toFieldArray</span>
<span class="cm"> * @private</span>
<span class="cm"> * @param {String/Date/Date[]} date The date string of dates to deselect in the current calendar. Valid formats are</span>
<span class="cm"> * individual date(s) (12/24/2005,12/26/2005) or date range(s) (12/24/2005-1/1/2006).</span>
<span class="cm"> * Multiple comma-delimited dates can also be passed to this method (12/24/2005,12/11/2005-12/13/2005).</span>
<span class="cm"> * This method can also take a JavaScript Date object or an array of Date objects. </span>
<span class="cm"> * @return {Array[](Number[])} Array of date field arrays</span>
<span class="cm"> */</span>
<span class="nx">_toFieldArray</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">date</span><span class="p">)</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">returnDate</span> <span class="o">=</span> <span class="p">[];</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">date</span> <span class="k">instanceof</span> <span class="nb">Date</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">returnDate</span> <span class="o">=</span> <span class="p">[[</span><span class="nx">date</span><span class="p">.</span><span class="nx">getFullYear</span><span class="p">(),</span> <span class="nx">date</span><span class="p">.</span><span class="nx">getMonth</span><span class="p">()</span><span class="o">+</span><span class="mi">1</span><span class="p">,</span> <span class="nx">date</span><span class="p">.</span><span class="nx">getDate</span><span class="p">()]];</span>
<span class="p">}</span> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">Lang</span><span class="p">.</span><span class="nx">isString</span><span class="p">(</span><span class="nx">date</span><span class="p">))</span> <span class="p">{</span>
<span class="nx">returnDate</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">_parseDates</span><span class="p">(</span><span class="nx">date</span><span class="p">);</span>
<span class="p">}</span> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">Lang</span><span class="p">.</span><span class="nx">isArray</span><span class="p">(</span><span class="nx">date</span><span class="p">))</span> <span class="p">{</span>
<span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">i</span><span class="o">=</span><span class="mi">0</span><span class="p">;</span><span class="nx">i</span><span class="o">&lt;</span><span class="nx">date</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span><span class="o">++</span><span class="nx">i</span><span class="p">)</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">d</span> <span class="o">=</span> <span class="nx">date</span><span class="p">[</span><span class="nx">i</span><span class="p">];</span>
<span class="nx">returnDate</span><span class="p">[</span><span class="nx">returnDate</span><span class="p">.</span><span class="nx">length</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="nx">d</span><span class="p">.</span><span class="nx">getFullYear</span><span class="p">(),</span><span class="nx">d</span><span class="p">.</span><span class="nx">getMonth</span><span class="p">()</span><span class="o">+</span><span class="mi">1</span><span class="p">,</span><span class="nx">d</span><span class="p">.</span><span class="nx">getDate</span><span class="p">()];</span>
<span class="p">}</span>
<span class="p">}</span>
<span class="k">return</span> <span class="nx">returnDate</span><span class="p">;</span>
<span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * Converts a date field array [yyyy,mm,dd] to a JavaScript Date object. The date field array</span>
<span class="cm"> * is the format in which dates are as provided as arguments to selectEvent and deselectEvent listeners.</span>
<span class="cm"> * </span>
<span class="cm"> * @method toDate</span>
<span class="cm"> * @param {Number[]} dateFieldArray The date field array to convert to a JavaScript Date.</span>
<span class="cm"> * @return {Date} JavaScript Date object representing the date field array.</span>
<span class="cm"> */</span>
<span class="nx">toDate</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">dateFieldArray</span><span class="p">)</span> <span class="p">{</span>
<span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">_toDate</span><span class="p">(</span><span class="nx">dateFieldArray</span><span class="p">);</span>
<span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * Converts a date field array [yyyy,mm,dd] to a JavaScript Date object.</span>
<span class="cm"> * @method _toDate</span>
<span class="cm"> * @private</span>
<span class="cm"> * @deprecated Made public, toDate </span>
<span class="cm"> * @param {Number[]} dateFieldArray The date field array to convert to a JavaScript Date.</span>
<span class="cm"> * @return {Date} JavaScript Date object representing the date field array</span>
<span class="cm"> */</span>
<span class="nx">_toDate</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">dateFieldArray</span><span class="p">)</span> <span class="p">{</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">dateFieldArray</span> <span class="k">instanceof</span> <span class="nb">Date</span><span class="p">)</span> <span class="p">{</span>
<span class="k">return</span> <span class="nx">dateFieldArray</span><span class="p">;</span>
<span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
<span class="k">return</span> <span class="nx">DateMath</span><span class="p">.</span><span class="nx">getDate</span><span class="p">(</span><span class="nx">dateFieldArray</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span><span class="nx">dateFieldArray</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="nx">dateFieldArray</span><span class="p">[</span><span class="mi">2</span><span class="p">]);</span>
<span class="p">}</span>
<span class="p">},</span>
<span class="c1">// END TYPE CONVERSION METHODS </span>
<span class="c1">// BEGIN UTILITY METHODS</span>
<span class="cm">/**</span>
<span class="cm"> * Determines if 2 field arrays are equal.</span>
<span class="cm"> * @method _fieldArraysAreEqual</span>
<span class="cm"> * @private</span>
<span class="cm"> * @param {Number[]} array1 The first date field array to compare</span>
<span class="cm"> * @param {Number[]} array2 The first date field array to compare</span>
<span class="cm"> * @return {Boolean} The boolean that represents the equality of the two arrays</span>
<span class="cm"> */</span>
<span class="nx">_fieldArraysAreEqual</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">array1</span><span class="p">,</span> <span class="nx">array2</span><span class="p">)</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">match</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">array1</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">==</span><span class="nx">array2</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">&amp;&amp;</span><span class="nx">array1</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">==</span><span class="nx">array2</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">&amp;&amp;</span><span class="nx">array1</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span><span class="o">==</span><span class="nx">array2</span><span class="p">[</span><span class="mi">2</span><span class="p">])</span> <span class="p">{</span>
<span class="nx">match</span><span class="o">=</span><span class="kc">true</span><span class="p">;</span>
<span class="p">}</span>
<span class="k">return</span> <span class="nx">match</span><span class="p">;</span>
<span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * Gets the index of a date field array [yyyy,mm,dd] in the current list of selected dates.</span>
<span class="cm"> * @method _indexOfSelectedFieldArray</span>
<span class="cm"> * @private</span>
<span class="cm"> * @param {Number[]} find The date field array to search for</span>
<span class="cm"> * @return {Number} The index of the date field array within the collection of selected dates.</span>
<span class="cm"> * -1 will be returned if the date is not found.</span>
<span class="cm"> */</span>
<span class="nx">_indexOfSelectedFieldArray</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">find</span><span class="p">)</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">selected</span> <span class="o">=</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span>
<span class="nx">seldates</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">SELECTED</span><span class="p">.</span><span class="nx">key</span><span class="p">);</span>
<span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">s</span><span class="o">=</span><span class="mi">0</span><span class="p">;</span><span class="nx">s</span><span class="o">&lt;</span><span class="nx">seldates</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span><span class="o">++</span><span class="nx">s</span><span class="p">)</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">sArray</span> <span class="o">=</span> <span class="nx">seldates</span><span class="p">[</span><span class="nx">s</span><span class="p">];</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">find</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">==</span><span class="nx">sArray</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">&amp;&amp;</span><span class="nx">find</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">==</span><span class="nx">sArray</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">&amp;&amp;</span><span class="nx">find</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span><span class="o">==</span><span class="nx">sArray</span><span class="p">[</span><span class="mi">2</span><span class="p">])</span> <span class="p">{</span>
<span class="nx">selected</span> <span class="o">=</span> <span class="nx">s</span><span class="p">;</span>
<span class="k">break</span><span class="p">;</span>
<span class="p">}</span>
<span class="p">}</span>
<span class="k">return</span> <span class="nx">selected</span><span class="p">;</span>
<span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * Determines whether a given date is OOM (out of month).</span>
<span class="cm"> * @method isDateOOM</span>
<span class="cm"> * @param {Date} date The JavaScript Date object for which to check the OOM status</span>
<span class="cm"> * @return {Boolean} true if the date is OOM</span>
<span class="cm"> */</span>
<span class="nx">isDateOOM</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">date</span><span class="p">)</span> <span class="p">{</span>
<span class="k">return</span> <span class="p">(</span><span class="nx">date</span><span class="p">.</span><span class="nx">getMonth</span><span class="p">()</span> <span class="o">!=</span> <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">PAGEDATE</span><span class="p">.</span><span class="nx">key</span><span class="p">).</span><span class="nx">getMonth</span><span class="p">());</span>
<span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * Determines whether a given date is OOB (out of bounds - less than the mindate or more than the maxdate).</span>
<span class="cm"> *</span>
<span class="cm"> * @method isDateOOB</span>
<span class="cm"> * @param {Date} date The JavaScript Date object for which to check the OOB status</span>
<span class="cm"> * @return {Boolean} true if the date is OOB</span>
<span class="cm"> */</span>
<span class="nx">isDateOOB</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">date</span><span class="p">)</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">minDate</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MINDATE</span><span class="p">.</span><span class="nx">key</span><span class="p">),</span>
<span class="nx">maxDate</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MAXDATE</span><span class="p">.</span><span class="nx">key</span><span class="p">),</span>
<span class="nx">dm</span> <span class="o">=</span> <span class="nx">DateMath</span><span class="p">;</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">minDate</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">minDate</span> <span class="o">=</span> <span class="nx">dm</span><span class="p">.</span><span class="nx">clearTime</span><span class="p">(</span><span class="nx">minDate</span><span class="p">);</span>
<span class="p">}</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">maxDate</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">maxDate</span> <span class="o">=</span> <span class="nx">dm</span><span class="p">.</span><span class="nx">clearTime</span><span class="p">(</span><span class="nx">maxDate</span><span class="p">);</span>
<span class="p">}</span>
<span class="kd">var</span> <span class="nx">clearedDate</span> <span class="o">=</span> <span class="k">new</span> <span class="nb">Date</span><span class="p">(</span><span class="nx">date</span><span class="p">.</span><span class="nx">getTime</span><span class="p">());</span>
<span class="nx">clearedDate</span> <span class="o">=</span> <span class="nx">dm</span><span class="p">.</span><span class="nx">clearTime</span><span class="p">(</span><span class="nx">clearedDate</span><span class="p">);</span>
<span class="k">return</span> <span class="p">((</span><span class="nx">minDate</span> <span class="o">&amp;&amp;</span> <span class="nx">clearedDate</span><span class="p">.</span><span class="nx">getTime</span><span class="p">()</span> <span class="o">&lt;</span> <span class="nx">minDate</span><span class="p">.</span><span class="nx">getTime</span><span class="p">())</span> <span class="o">||</span> <span class="p">(</span><span class="nx">maxDate</span> <span class="o">&amp;&amp;</span> <span class="nx">clearedDate</span><span class="p">.</span><span class="nx">getTime</span><span class="p">()</span> <span class="o">&gt;</span> <span class="nx">maxDate</span><span class="p">.</span><span class="nx">getTime</span><span class="p">()));</span>
<span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * Parses a pagedate configuration property value. The value can either be specified as a string of form &quot;mm/yyyy&quot; or a Date object </span>
<span class="cm"> * and is parsed into a Date object normalized to the first day of the month. If no value is passed in, the month and year from today&#39;s date are used to create the Date object </span>
<span class="cm"> * @method _parsePageDate</span>
<span class="cm"> * @private</span>
<span class="cm"> * @param {Date|String} date Pagedate value which needs to be parsed</span>
<span class="cm"> * @return {Date} The Date object representing the pagedate</span>
<span class="cm"> */</span>
<span class="nx">_parsePageDate</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">date</span><span class="p">)</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">parsedDate</span><span class="p">;</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">date</span><span class="p">)</span> <span class="p">{</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">date</span> <span class="k">instanceof</span> <span class="nb">Date</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">parsedDate</span> <span class="o">=</span> <span class="nx">DateMath</span><span class="p">.</span><span class="nx">findMonthStart</span><span class="p">(</span><span class="nx">date</span><span class="p">);</span>
<span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">month</span><span class="p">,</span> <span class="nx">year</span><span class="p">,</span> <span class="nx">aMonthYear</span><span class="p">;</span>
<span class="nx">aMonthYear</span> <span class="o">=</span> <span class="nx">date</span><span class="p">.</span><span class="nx">split</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">DATE_FIELD_DELIMITER</span><span class="p">.</span><span class="nx">key</span><span class="p">));</span>
<span class="nx">month</span> <span class="o">=</span> <span class="nb">parseInt</span><span class="p">(</span><span class="nx">aMonthYear</span><span class="p">[</span><span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MY_MONTH_POSITION</span><span class="p">.</span><span class="nx">key</span><span class="p">)</span><span class="o">-</span><span class="mi">1</span><span class="p">],</span> <span class="mi">10</span><span class="p">)</span><span class="o">-</span><span class="mi">1</span><span class="p">;</span>
<span class="nx">year</span> <span class="o">=</span> <span class="nb">parseInt</span><span class="p">(</span><span class="nx">aMonthYear</span><span class="p">[</span><span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MY_YEAR_POSITION</span><span class="p">.</span><span class="nx">key</span><span class="p">)</span><span class="o">-</span><span class="mi">1</span><span class="p">],</span> <span class="mi">10</span><span class="p">)</span> <span class="o">-</span> <span class="k">this</span><span class="p">.</span><span class="nx">Locale</span><span class="p">.</span><span class="nx">YEAR_OFFSET</span><span class="p">;</span>
<span class="nx">parsedDate</span> <span class="o">=</span> <span class="nx">DateMath</span><span class="p">.</span><span class="nx">getDate</span><span class="p">(</span><span class="nx">year</span><span class="p">,</span> <span class="nx">month</span><span class="p">,</span> <span class="mi">1</span><span class="p">);</span>
<span class="p">}</span>
<span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
<span class="nx">parsedDate</span> <span class="o">=</span> <span class="nx">DateMath</span><span class="p">.</span><span class="nx">getDate</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">today</span><span class="p">.</span><span class="nx">getFullYear</span><span class="p">(),</span> <span class="k">this</span><span class="p">.</span><span class="nx">today</span><span class="p">.</span><span class="nx">getMonth</span><span class="p">(),</span> <span class="mi">1</span><span class="p">);</span>
<span class="p">}</span>
<span class="k">return</span> <span class="nx">parsedDate</span><span class="p">;</span>
<span class="p">},</span>
<span class="c1">// END UTILITY METHODS</span>
<span class="c1">// BEGIN EVENT HANDLERS</span>
<span class="cm">/**</span>
<span class="cm"> * Event executed before a date is selected in the calendar widget.</span>
<span class="cm"> * @deprecated Event handlers for this event should be susbcribed to beforeSelectEvent.</span>
<span class="cm"> */</span>
<span class="nx">onBeforeSelect</span> <span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
<span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">MULTI_SELECT</span><span class="p">.</span><span class="nx">key</span><span class="p">)</span> <span class="o">===</span> <span class="kc">false</span><span class="p">)</span> <span class="p">{</span>
<span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">parent</span><span class="p">)</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">parent</span><span class="p">.</span><span class="nx">callChildFunction</span><span class="p">(</span><span class="s2">&quot;clearAllBodyCellStyles&quot;</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_CELL_SELECTED</span><span class="p">);</span>
<span class="k">this</span><span class="p">.</span><span class="nx">parent</span><span class="p">.</span><span class="nx">deselectAll</span><span class="p">();</span>
<span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">clearAllBodyCellStyles</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_CELL_SELECTED</span><span class="p">);</span>
<span class="k">this</span><span class="p">.</span><span class="nx">deselectAll</span><span class="p">();</span>
<span class="p">}</span>
<span class="p">}</span>
<span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * Event executed when a date is selected in the calendar widget.</span>
<span class="cm"> * @param {Array} selected An array of date field arrays representing which date or dates were selected. Example: [ [2006,8,6],[2006,8,7],[2006,8,8] ]</span>
<span class="cm"> * @deprecated Event handlers for this event should be susbcribed to selectEvent.</span>
<span class="cm"> */</span>
<span class="nx">onSelect</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">selected</span><span class="p">)</span> <span class="p">{</span> <span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * Event executed before a date is deselected in the calendar widget.</span>
<span class="cm"> * @deprecated Event handlers for this event should be susbcribed to beforeDeselectEvent.</span>
<span class="cm"> */</span>
<span class="nx">onBeforeDeselect</span> <span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span> <span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * Event executed when a date is deselected in the calendar widget.</span>
<span class="cm"> * @param {Array} selected An array of date field arrays representing which date or dates were deselected. Example: [ [2006,8,6],[2006,8,7],[2006,8,8] ]</span>
<span class="cm"> * @deprecated Event handlers for this event should be susbcribed to deselectEvent.</span>
<span class="cm"> */</span>
<span class="nx">onDeselect</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">deselected</span><span class="p">)</span> <span class="p">{</span> <span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * Event executed when the user navigates to a different calendar page.</span>
<span class="cm"> * @deprecated Event handlers for this event should be susbcribed to changePageEvent.</span>
<span class="cm"> */</span>
<span class="nx">onChangePage</span> <span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">render</span><span class="p">();</span>
<span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * Event executed when the calendar widget is rendered.</span>
<span class="cm"> * @deprecated Event handlers for this event should be susbcribed to renderEvent.</span>
<span class="cm"> */</span>
<span class="nx">onRender</span> <span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span> <span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * Event executed when the calendar widget is reset to its original state.</span>
<span class="cm"> * @deprecated Event handlers for this event should be susbcribed to resetEvemt.</span>
<span class="cm"> */</span>
<span class="nx">onReset</span> <span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span> <span class="k">this</span><span class="p">.</span><span class="nx">render</span><span class="p">();</span> <span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * Event executed when the calendar widget is completely cleared to the current month with no selections.</span>
<span class="cm"> * @deprecated Event handlers for this event should be susbcribed to clearEvent.</span>
<span class="cm"> */</span>
<span class="nx">onClear</span> <span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span> <span class="k">this</span><span class="p">.</span><span class="nx">render</span><span class="p">();</span> <span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * Validates the calendar widget. This method has no default implementation</span>
<span class="cm"> * and must be extended by subclassing the widget.</span>
<span class="cm"> * @return Should return true if the widget validates, and false if</span>
<span class="cm"> * it doesn&#39;t.</span>
<span class="cm"> * @type Boolean</span>
<span class="cm"> */</span>
<span class="nx">validate</span> <span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span> <span class="k">return</span> <span class="kc">true</span><span class="p">;</span> <span class="p">},</span>
<span class="c1">// END EVENT HANDLERS</span>
<span class="c1">// BEGIN DATE PARSE METHODS</span>
<span class="cm">/**</span>
<span class="cm"> * Converts a date string to a date field array</span>
<span class="cm"> * @private</span>
<span class="cm"> * @param {String} sDate Date string. Valid formats are mm/dd and mm/dd/yyyy.</span>
<span class="cm"> * @return A date field array representing the string passed to the method</span>
<span class="cm"> * @type Array[](Number[])</span>
<span class="cm"> */</span>
<span class="nx">_parseDate</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">sDate</span><span class="p">)</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">aDate</span> <span class="o">=</span> <span class="nx">sDate</span><span class="p">.</span><span class="nx">split</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">Locale</span><span class="p">.</span><span class="nx">DATE_FIELD_DELIMITER</span><span class="p">),</span>
<span class="nx">rArray</span><span class="p">;</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">aDate</span><span class="p">.</span><span class="nx">length</span> <span class="o">==</span> <span class="mi">2</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">rArray</span> <span class="o">=</span> <span class="p">[</span><span class="nx">aDate</span><span class="p">[</span><span class="k">this</span><span class="p">.</span><span class="nx">Locale</span><span class="p">.</span><span class="nx">MD_MONTH_POSITION</span><span class="o">-</span><span class="mi">1</span><span class="p">],</span><span class="nx">aDate</span><span class="p">[</span><span class="k">this</span><span class="p">.</span><span class="nx">Locale</span><span class="p">.</span><span class="nx">MD_DAY_POSITION</span><span class="o">-</span><span class="mi">1</span><span class="p">]];</span>
<span class="nx">rArray</span><span class="p">.</span><span class="nx">type</span> <span class="o">=</span> <span class="nx">Calendar</span><span class="p">.</span><span class="nx">MONTH_DAY</span><span class="p">;</span>
<span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
<span class="nx">rArray</span> <span class="o">=</span> <span class="p">[</span><span class="nx">aDate</span><span class="p">[</span><span class="k">this</span><span class="p">.</span><span class="nx">Locale</span><span class="p">.</span><span class="nx">MDY_YEAR_POSITION</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="o">-</span> <span class="k">this</span><span class="p">.</span><span class="nx">Locale</span><span class="p">.</span><span class="nx">YEAR_OFFSET</span><span class="p">,</span> <span class="nx">aDate</span><span class="p">[</span><span class="k">this</span><span class="p">.</span><span class="nx">Locale</span><span class="p">.</span><span class="nx">MDY_MONTH_POSITION</span><span class="o">-</span><span class="mi">1</span><span class="p">],</span><span class="nx">aDate</span><span class="p">[</span><span class="k">this</span><span class="p">.</span><span class="nx">Locale</span><span class="p">.</span><span class="nx">MDY_DAY_POSITION</span><span class="o">-</span><span class="mi">1</span><span class="p">]];</span>
<span class="nx">rArray</span><span class="p">.</span><span class="nx">type</span> <span class="o">=</span> <span class="nx">Calendar</span><span class="p">.</span><span class="nx">DATE</span><span class="p">;</span>
<span class="p">}</span>
<span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">i</span><span class="o">=</span><span class="mi">0</span><span class="p">;</span><span class="nx">i</span><span class="o">&lt;</span><span class="nx">rArray</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span><span class="nx">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">rArray</span><span class="p">[</span><span class="nx">i</span><span class="p">]</span> <span class="o">=</span> <span class="nb">parseInt</span><span class="p">(</span><span class="nx">rArray</span><span class="p">[</span><span class="nx">i</span><span class="p">],</span> <span class="mi">10</span><span class="p">);</span>
<span class="p">}</span>
<span class="k">return</span> <span class="nx">rArray</span><span class="p">;</span>
<span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * Converts a multi or single-date string to an array of date field arrays</span>
<span class="cm"> * @private</span>
<span class="cm"> * @param {String} sDates Date string with one or more comma-delimited dates. Valid formats are mm/dd, mm/dd/yyyy, mm/dd/yyyy-mm/dd/yyyy</span>
<span class="cm"> * @return An array of date field arrays</span>
<span class="cm"> * @type Array[](Number[])</span>
<span class="cm"> */</span>
<span class="nx">_parseDates</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">sDates</span><span class="p">)</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">aReturn</span> <span class="o">=</span> <span class="p">[],</span>
<span class="nx">aDates</span> <span class="o">=</span> <span class="nx">sDates</span><span class="p">.</span><span class="nx">split</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">Locale</span><span class="p">.</span><span class="nx">DATE_DELIMITER</span><span class="p">);</span>
<span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">d</span><span class="o">=</span><span class="mi">0</span><span class="p">;</span><span class="nx">d</span><span class="o">&lt;</span><span class="nx">aDates</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span><span class="o">++</span><span class="nx">d</span><span class="p">)</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">sDate</span> <span class="o">=</span> <span class="nx">aDates</span><span class="p">[</span><span class="nx">d</span><span class="p">];</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">sDate</span><span class="p">.</span><span class="nx">indexOf</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">Locale</span><span class="p">.</span><span class="nx">DATE_RANGE_DELIMITER</span><span class="p">)</span> <span class="o">!=</span> <span class="o">-</span><span class="mi">1</span><span class="p">)</span> <span class="p">{</span>
<span class="c1">// This is a range</span>
<span class="kd">var</span> <span class="nx">aRange</span> <span class="o">=</span> <span class="nx">sDate</span><span class="p">.</span><span class="nx">split</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">Locale</span><span class="p">.</span><span class="nx">DATE_RANGE_DELIMITER</span><span class="p">),</span>
<span class="nx">dateStart</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">_parseDate</span><span class="p">(</span><span class="nx">aRange</span><span class="p">[</span><span class="mi">0</span><span class="p">]),</span>
<span class="nx">dateEnd</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">_parseDate</span><span class="p">(</span><span class="nx">aRange</span><span class="p">[</span><span class="mi">1</span><span class="p">]),</span>
<span class="nx">fullRange</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">_parseRange</span><span class="p">(</span><span class="nx">dateStart</span><span class="p">,</span> <span class="nx">dateEnd</span><span class="p">);</span>
<span class="nx">aReturn</span> <span class="o">=</span> <span class="nx">aReturn</span><span class="p">.</span><span class="nx">concat</span><span class="p">(</span><span class="nx">fullRange</span><span class="p">);</span>
<span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
<span class="c1">// This is not a range</span>
<span class="kd">var</span> <span class="nx">aDate</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">_parseDate</span><span class="p">(</span><span class="nx">sDate</span><span class="p">);</span>
<span class="nx">aReturn</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">aDate</span><span class="p">);</span>
<span class="p">}</span>
<span class="p">}</span>
<span class="k">return</span> <span class="nx">aReturn</span><span class="p">;</span>
<span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * Converts a date range to the full list of included dates</span>
<span class="cm"> * @private</span>
<span class="cm"> * @param {Number[]} startDate Date field array representing the first date in the range</span>
<span class="cm"> * @param {Number[]} endDate Date field array representing the last date in the range</span>
<span class="cm"> * @return An array of date field arrays</span>
<span class="cm"> * @type Array[](Number[])</span>
<span class="cm"> */</span>
<span class="nx">_parseRange</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">startDate</span><span class="p">,</span> <span class="nx">endDate</span><span class="p">)</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">dCurrent</span> <span class="o">=</span> <span class="nx">DateMath</span><span class="p">.</span><span class="nx">add</span><span class="p">(</span><span class="nx">DateMath</span><span class="p">.</span><span class="nx">getDate</span><span class="p">(</span><span class="nx">startDate</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span><span class="nx">startDate</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="nx">startDate</span><span class="p">[</span><span class="mi">2</span><span class="p">]),</span><span class="nx">DateMath</span><span class="p">.</span><span class="nx">DAY</span><span class="p">,</span><span class="mi">1</span><span class="p">),</span>
<span class="nx">dEnd</span> <span class="o">=</span> <span class="nx">DateMath</span><span class="p">.</span><span class="nx">getDate</span><span class="p">(</span><span class="nx">endDate</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="nx">endDate</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="nx">endDate</span><span class="p">[</span><span class="mi">2</span><span class="p">]),</span>
<span class="nx">results</span> <span class="o">=</span> <span class="p">[];</span>
<span class="nx">results</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">startDate</span><span class="p">);</span>
<span class="k">while</span> <span class="p">(</span><span class="nx">dCurrent</span><span class="p">.</span><span class="nx">getTime</span><span class="p">()</span> <span class="o">&lt;=</span> <span class="nx">dEnd</span><span class="p">.</span><span class="nx">getTime</span><span class="p">())</span> <span class="p">{</span>
<span class="nx">results</span><span class="p">.</span><span class="nx">push</span><span class="p">([</span><span class="nx">dCurrent</span><span class="p">.</span><span class="nx">getFullYear</span><span class="p">(),</span><span class="nx">dCurrent</span><span class="p">.</span><span class="nx">getMonth</span><span class="p">()</span><span class="o">+</span><span class="mi">1</span><span class="p">,</span><span class="nx">dCurrent</span><span class="p">.</span><span class="nx">getDate</span><span class="p">()]);</span>
<span class="nx">dCurrent</span> <span class="o">=</span> <span class="nx">DateMath</span><span class="p">.</span><span class="nx">add</span><span class="p">(</span><span class="nx">dCurrent</span><span class="p">,</span><span class="nx">DateMath</span><span class="p">.</span><span class="nx">DAY</span><span class="p">,</span><span class="mi">1</span><span class="p">);</span>
<span class="p">}</span>
<span class="k">return</span> <span class="nx">results</span><span class="p">;</span>
<span class="p">},</span>
<span class="c1">// END DATE PARSE METHODS</span>
<span class="c1">// BEGIN RENDERER METHODS</span>
<span class="cm">/**</span>
<span class="cm"> * Resets the render stack of the current calendar to its original pre-render value.</span>
<span class="cm"> */</span>
<span class="nx">resetRenderers</span> <span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">renderStack</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">_renderStack</span><span class="p">.</span><span class="nx">concat</span><span class="p">();</span>
<span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * Removes all custom renderers added to the Calendar through the addRenderer, addMonthRenderer and </span>
<span class="cm"> * addWeekdayRenderer methods. Calendar&#39;s render method needs to be called after removing renderers </span>
<span class="cm"> * to re-render the Calendar without custom renderers applied.</span>
<span class="cm"> */</span>
<span class="nx">removeRenderers</span> <span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">_renderStack</span> <span class="o">=</span> <span class="p">[];</span>
<span class="k">this</span><span class="p">.</span><span class="nx">renderStack</span> <span class="o">=</span> <span class="p">[];</span>
<span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * Clears the inner HTML, CSS class and style information from the specified cell.</span>
<span class="cm"> * @method clearElement</span>
<span class="cm"> * @param {HTMLTableCellElement} cell The cell to clear</span>
<span class="cm"> */</span>
<span class="nx">clearElement</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">cell</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">cell</span><span class="p">.</span><span class="nx">innerHTML</span> <span class="o">=</span> <span class="s2">&quot;&amp;#160;&quot;</span><span class="p">;</span>
<span class="nx">cell</span><span class="p">.</span><span class="nx">className</span><span class="o">=</span><span class="s2">&quot;&quot;</span><span class="p">;</span>
<span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * Adds a renderer to the render stack. The function reference passed to this method will be executed</span>
<span class="cm"> * when a date cell matches the conditions specified in the date string for this renderer.</span>
<span class="cm"> * </span>
<span class="cm"> * &lt;p&gt;NOTE: The contents of the cell set by the renderer will be added to the DOM as HTML. The custom renderer implementation should </span>
<span class="cm"> * escape markup used to set the cell contents, if coming from an external source.&lt;p&gt;</span>
<span class="cm"> * @method addRenderer</span>
<span class="cm"> * @param {String} sDates A date string to associate with the specified renderer. Valid formats</span>
<span class="cm"> * include date (12/24/2005), month/day (12/24), and range (12/1/2004-1/1/2005)</span>
<span class="cm"> * @param {Function} fnRender The function executed to render cells that match the render rules for this renderer.</span>
<span class="cm"> */</span>
<span class="nx">addRenderer</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">sDates</span><span class="p">,</span> <span class="nx">fnRender</span><span class="p">)</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">aDates</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">_parseDates</span><span class="p">(</span><span class="nx">sDates</span><span class="p">);</span>
<span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">i</span><span class="o">=</span><span class="mi">0</span><span class="p">;</span><span class="nx">i</span><span class="o">&lt;</span><span class="nx">aDates</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span><span class="o">++</span><span class="nx">i</span><span class="p">)</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">aDate</span> <span class="o">=</span> <span class="nx">aDates</span><span class="p">[</span><span class="nx">i</span><span class="p">];</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">aDate</span><span class="p">.</span><span class="nx">length</span> <span class="o">==</span> <span class="mi">2</span><span class="p">)</span> <span class="p">{</span> <span class="c1">// this is either a range or a month/day combo</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">aDate</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="k">instanceof</span> <span class="nb">Array</span><span class="p">)</span> <span class="p">{</span> <span class="c1">// this is a range</span>
<span class="k">this</span><span class="p">.</span><span class="nx">_addRenderer</span><span class="p">(</span><span class="nx">Calendar</span><span class="p">.</span><span class="nx">RANGE</span><span class="p">,</span><span class="nx">aDate</span><span class="p">,</span><span class="nx">fnRender</span><span class="p">);</span>
<span class="p">}</span> <span class="k">else</span> <span class="p">{</span> <span class="c1">// this is a month/day combo</span>
<span class="k">this</span><span class="p">.</span><span class="nx">_addRenderer</span><span class="p">(</span><span class="nx">Calendar</span><span class="p">.</span><span class="nx">MONTH_DAY</span><span class="p">,</span><span class="nx">aDate</span><span class="p">,</span><span class="nx">fnRender</span><span class="p">);</span>
<span class="p">}</span>
<span class="p">}</span> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">aDate</span><span class="p">.</span><span class="nx">length</span> <span class="o">==</span> <span class="mi">3</span><span class="p">)</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">_addRenderer</span><span class="p">(</span><span class="nx">Calendar</span><span class="p">.</span><span class="nx">DATE</span><span class="p">,</span><span class="nx">aDate</span><span class="p">,</span><span class="nx">fnRender</span><span class="p">);</span>
<span class="p">}</span>
<span class="p">}</span>
<span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * The private method used for adding cell renderers to the local render stack.</span>
<span class="cm"> * This method is called by other methods that set the renderer type prior to the method call.</span>
<span class="cm"> * @method _addRenderer</span>
<span class="cm"> * @private</span>
<span class="cm"> * @param {String} type The type string that indicates the type of date renderer being added.</span>
<span class="cm"> * Values are YAHOO.widget.Calendar.DATE, YAHOO.widget.Calendar.MONTH_DAY, YAHOO.widget.Calendar.WEEKDAY,</span>
<span class="cm"> * YAHOO.widget.Calendar.RANGE, YAHOO.widget.Calendar.MONTH</span>
<span class="cm"> * @param {Array} aDates An array of dates used to construct the renderer. The format varies based</span>
<span class="cm"> * on the renderer type</span>
<span class="cm"> * @param {Function} fnRender The function executed to render cells that match the render rules for this renderer.</span>
<span class="cm"> */</span>
<span class="nx">_addRenderer</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">type</span><span class="p">,</span> <span class="nx">aDates</span><span class="p">,</span> <span class="nx">fnRender</span><span class="p">)</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">add</span> <span class="o">=</span> <span class="p">[</span><span class="nx">type</span><span class="p">,</span><span class="nx">aDates</span><span class="p">,</span><span class="nx">fnRender</span><span class="p">];</span>
<span class="k">this</span><span class="p">.</span><span class="nx">renderStack</span><span class="p">.</span><span class="nx">unshift</span><span class="p">(</span><span class="nx">add</span><span class="p">);</span>
<span class="k">this</span><span class="p">.</span><span class="nx">_renderStack</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">renderStack</span><span class="p">.</span><span class="nx">concat</span><span class="p">();</span>
<span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * Adds a month renderer to the render stack. The function reference passed to this method will be executed</span>
<span class="cm"> * when a date cell matches the month passed to this method</span>
<span class="cm"> * </span>
<span class="cm"> * &lt;p&gt;NOTE: The contents of the cell set by the renderer will be added to the DOM as HTML. The custom renderer implementation should </span>
<span class="cm"> * escape markup used to set the cell contents, if coming from an external source.&lt;p&gt;</span>
<span class="cm"> * @method addMonthRenderer</span>
<span class="cm"> * @param {Number} month The month (1-12) to associate with this renderer</span>
<span class="cm"> * @param {Function} fnRender The function executed to render cells that match the render rules for this renderer.</span>
<span class="cm"> */</span>
<span class="nx">addMonthRenderer</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">month</span><span class="p">,</span> <span class="nx">fnRender</span><span class="p">)</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">_addRenderer</span><span class="p">(</span><span class="nx">Calendar</span><span class="p">.</span><span class="nx">MONTH</span><span class="p">,[</span><span class="nx">month</span><span class="p">],</span><span class="nx">fnRender</span><span class="p">);</span>
<span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * Adds a weekday renderer to the render stack. The function reference passed to this method will be executed</span>
<span class="cm"> * when a date cell matches the weekday passed to this method.</span>
<span class="cm"> *</span>
<span class="cm"> * &lt;p&gt;NOTE: The contents of the cell set by the renderer will be added to the DOM as HTML. The custom renderer implementation should </span>
<span class="cm"> * escape HTML used to set the cell contents, if coming from an external source.&lt;p&gt;</span>
<span class="cm"> *</span>
<span class="cm"> * @method addWeekdayRenderer</span>
<span class="cm"> * @param {Number} weekday The weekday (Sunday = 1, Monday = 2 ... Saturday = 7) to associate with this renderer</span>
<span class="cm"> * @param {Function} fnRender The function executed to render cells that match the render rules for this renderer.</span>
<span class="cm"> */</span>
<span class="nx">addWeekdayRenderer</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">weekday</span><span class="p">,</span> <span class="nx">fnRender</span><span class="p">)</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">_addRenderer</span><span class="p">(</span><span class="nx">Calendar</span><span class="p">.</span><span class="nx">WEEKDAY</span><span class="p">,[</span><span class="nx">weekday</span><span class="p">],</span><span class="nx">fnRender</span><span class="p">);</span>
<span class="p">},</span>
<span class="c1">// END RENDERER METHODS</span>
<span class="c1">// BEGIN CSS METHODS</span>
<span class="cm">/**</span>
<span class="cm"> * Removes all styles from all body cells in the current calendar table.</span>
<span class="cm"> * @method clearAllBodyCellStyles</span>
<span class="cm"> * @param {style} style The CSS class name to remove from all calendar body cells</span>
<span class="cm"> */</span>
<span class="nx">clearAllBodyCellStyles</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">style</span><span class="p">)</span> <span class="p">{</span>
<span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">c</span><span class="o">=</span><span class="mi">0</span><span class="p">;</span><span class="nx">c</span><span class="o">&lt;</span><span class="k">this</span><span class="p">.</span><span class="nx">cells</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span><span class="o">++</span><span class="nx">c</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">Dom</span><span class="p">.</span><span class="nx">removeClass</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">cells</span><span class="p">[</span><span class="nx">c</span><span class="p">],</span><span class="nx">style</span><span class="p">);</span>
<span class="p">}</span>
<span class="p">},</span>
<span class="c1">// END CSS METHODS</span>
<span class="c1">// BEGIN GETTER/SETTER METHODS</span>
<span class="cm">/**</span>
<span class="cm"> * Sets the calendar&#39;s month explicitly</span>
<span class="cm"> * @method setMonth</span>
<span class="cm"> * @param {Number} month The numeric month, from 0 (January) to 11 (December)</span>
<span class="cm"> */</span>
<span class="nx">setMonth</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">month</span><span class="p">)</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">cfgPageDate</span> <span class="o">=</span> <span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">PAGEDATE</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span>
<span class="nx">current</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">cfgPageDate</span><span class="p">);</span>
<span class="nx">current</span><span class="p">.</span><span class="nx">setMonth</span><span class="p">(</span><span class="nb">parseInt</span><span class="p">(</span><span class="nx">month</span><span class="p">,</span> <span class="mi">10</span><span class="p">));</span>
<span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">setProperty</span><span class="p">(</span><span class="nx">cfgPageDate</span><span class="p">,</span> <span class="nx">current</span><span class="p">);</span>
<span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * Sets the calendar&#39;s year explicitly.</span>
<span class="cm"> * @method setYear</span>
<span class="cm"> * @param {Number} year The numeric 4-digit year</span>
<span class="cm"> */</span>
<span class="nx">setYear</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">year</span><span class="p">)</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">cfgPageDate</span> <span class="o">=</span> <span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">PAGEDATE</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span>
<span class="nx">current</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">cfgPageDate</span><span class="p">);</span>
<span class="nx">current</span><span class="p">.</span><span class="nx">setFullYear</span><span class="p">(</span><span class="nb">parseInt</span><span class="p">(</span><span class="nx">year</span><span class="p">,</span> <span class="mi">10</span><span class="p">)</span> <span class="o">-</span> <span class="k">this</span><span class="p">.</span><span class="nx">Locale</span><span class="p">.</span><span class="nx">YEAR_OFFSET</span><span class="p">);</span>
<span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">setProperty</span><span class="p">(</span><span class="nx">cfgPageDate</span><span class="p">,</span> <span class="nx">current</span><span class="p">);</span>
<span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * Gets the list of currently selected dates from the calendar.</span>
<span class="cm"> * @method getSelectedDates</span>
<span class="cm"> * @return {Date[]} An array of currently selected JavaScript Date objects.</span>
<span class="cm"> */</span>
<span class="nx">getSelectedDates</span> <span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">returnDates</span> <span class="o">=</span> <span class="p">[],</span>
<span class="nx">selected</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">DEF_CFG</span><span class="p">.</span><span class="nx">SELECTED</span><span class="p">.</span><span class="nx">key</span><span class="p">);</span>
<span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">d</span><span class="o">=</span><span class="mi">0</span><span class="p">;</span><span class="nx">d</span><span class="o">&lt;</span><span class="nx">selected</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span><span class="o">++</span><span class="nx">d</span><span class="p">)</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">dateArray</span> <span class="o">=</span> <span class="nx">selected</span><span class="p">[</span><span class="nx">d</span><span class="p">];</span>
<span class="kd">var</span> <span class="nx">date</span> <span class="o">=</span> <span class="nx">DateMath</span><span class="p">.</span><span class="nx">getDate</span><span class="p">(</span><span class="nx">dateArray</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span><span class="nx">dateArray</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="nx">dateArray</span><span class="p">[</span><span class="mi">2</span><span class="p">]);</span>
<span class="nx">returnDates</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">date</span><span class="p">);</span>
<span class="p">}</span>
<span class="nx">returnDates</span><span class="p">.</span><span class="nx">sort</span><span class="p">(</span> <span class="kd">function</span><span class="p">(</span><span class="nx">a</span><span class="p">,</span><span class="nx">b</span><span class="p">)</span> <span class="p">{</span> <span class="k">return</span> <span class="nx">a</span><span class="o">-</span><span class="nx">b</span><span class="p">;</span> <span class="p">}</span> <span class="p">);</span>
<span class="k">return</span> <span class="nx">returnDates</span><span class="p">;</span>
<span class="p">},</span>
<span class="c1">/// END GETTER/SETTER METHODS ///</span>
<span class="cm">/**</span>
<span class="cm"> * Hides the Calendar&#39;s outer container from view.</span>
<span class="cm"> * @method hide</span>
<span class="cm"> */</span>
<span class="nx">hide</span> <span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
<span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">beforeHideEvent</span><span class="p">.</span><span class="nx">fire</span><span class="p">())</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">oDomContainer</span><span class="p">.</span><span class="nx">style</span><span class="p">.</span><span class="nx">display</span> <span class="o">=</span> <span class="s2">&quot;none&quot;</span><span class="p">;</span>
<span class="k">this</span><span class="p">.</span><span class="nx">hideEvent</span><span class="p">.</span><span class="nx">fire</span><span class="p">();</span>
<span class="p">}</span>
<span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * Shows the Calendar&#39;s outer container.</span>
<span class="cm"> * @method show</span>
<span class="cm"> */</span>
<span class="nx">show</span> <span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
<span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">beforeShowEvent</span><span class="p">.</span><span class="nx">fire</span><span class="p">())</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">oDomContainer</span><span class="p">.</span><span class="nx">style</span><span class="p">.</span><span class="nx">display</span> <span class="o">=</span> <span class="s2">&quot;block&quot;</span><span class="p">;</span>
<span class="k">this</span><span class="p">.</span><span class="nx">showEvent</span><span class="p">.</span><span class="nx">fire</span><span class="p">();</span>
<span class="p">}</span>
<span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * Returns a string representing the current browser.</span>
<span class="cm"> * @deprecated As of 2.3.0, environment information is available in YAHOO.env.ua</span>
<span class="cm"> * @see YAHOO.env.ua</span>
<span class="cm"> * @property browser</span>
<span class="cm"> * @type String</span>
<span class="cm"> */</span>
<span class="nx">browser</span> <span class="o">:</span> <span class="p">(</span><span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">ua</span> <span class="o">=</span> <span class="nx">navigator</span><span class="p">.</span><span class="nx">userAgent</span><span class="p">.</span><span class="nx">toLowerCase</span><span class="p">();</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">ua</span><span class="p">.</span><span class="nx">indexOf</span><span class="p">(</span><span class="s1">&#39;opera&#39;</span><span class="p">)</span><span class="o">!=-</span><span class="mi">1</span><span class="p">)</span> <span class="p">{</span> <span class="c1">// Opera (check first in case of spoof)</span>
<span class="k">return</span> <span class="s1">&#39;opera&#39;</span><span class="p">;</span>
<span class="p">}</span> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">ua</span><span class="p">.</span><span class="nx">indexOf</span><span class="p">(</span><span class="s1">&#39;msie 7&#39;</span><span class="p">)</span><span class="o">!=-</span><span class="mi">1</span><span class="p">)</span> <span class="p">{</span> <span class="c1">// IE7</span>
<span class="k">return</span> <span class="s1">&#39;ie7&#39;</span><span class="p">;</span>
<span class="p">}</span> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">ua</span><span class="p">.</span><span class="nx">indexOf</span><span class="p">(</span><span class="s1">&#39;msie&#39;</span><span class="p">)</span> <span class="o">!=-</span><span class="mi">1</span><span class="p">)</span> <span class="p">{</span> <span class="c1">// IE</span>
<span class="k">return</span> <span class="s1">&#39;ie&#39;</span><span class="p">;</span>
<span class="p">}</span> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">ua</span><span class="p">.</span><span class="nx">indexOf</span><span class="p">(</span><span class="s1">&#39;safari&#39;</span><span class="p">)</span><span class="o">!=-</span><span class="mi">1</span><span class="p">)</span> <span class="p">{</span> <span class="c1">// Safari (check before Gecko because it includes &quot;like Gecko&quot;)</span>
<span class="k">return</span> <span class="s1">&#39;safari&#39;</span><span class="p">;</span>
<span class="p">}</span> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">ua</span><span class="p">.</span><span class="nx">indexOf</span><span class="p">(</span><span class="s1">&#39;gecko&#39;</span><span class="p">)</span> <span class="o">!=</span> <span class="o">-</span><span class="mi">1</span><span class="p">)</span> <span class="p">{</span> <span class="c1">// Gecko</span>
<span class="k">return</span> <span class="s1">&#39;gecko&#39;</span><span class="p">;</span>
<span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
<span class="k">return</span> <span class="kc">false</span><span class="p">;</span>
<span class="p">}</span>
<span class="p">})(),</span>
<span class="cm">/**</span>
<span class="cm"> * Returns a string representation of the object.</span>
<span class="cm"> * @method toString</span>
<span class="cm"> * @return {String} A string representation of the Calendar object.</span>
<span class="cm"> */</span>
<span class="nx">toString</span> <span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
<span class="k">return</span> <span class="s2">&quot;Calendar &quot;</span> <span class="o">+</span> <span class="k">this</span><span class="p">.</span><span class="nx">id</span><span class="p">;</span>
<span class="p">},</span>
<span class="cm">/**</span>
<span class="cm"> * Destroys the Calendar instance. The method will remove references</span>
<span class="cm"> * to HTML elements, remove any event listeners added by the Calendar,</span>
<span class="cm"> * and destroy the Config and CalendarNavigator instances it has created.</span>
<span class="cm"> *</span>
<span class="cm"> * @method destroy</span>
<span class="cm"> */</span>
<span class="nx">destroy</span> <span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
<span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">beforeDestroyEvent</span><span class="p">.</span><span class="nx">fire</span><span class="p">())</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">cal</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span>
<span class="c1">// Child objects</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">cal</span><span class="p">.</span><span class="nx">navigator</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">cal</span><span class="p">.</span><span class="nx">navigator</span><span class="p">.</span><span class="nx">destroy</span><span class="p">();</span>
<span class="p">}</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">cal</span><span class="p">.</span><span class="nx">cfg</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">cal</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">destroy</span><span class="p">();</span>
<span class="p">}</span>
<span class="c1">// DOM event listeners</span>
<span class="nx">Event</span><span class="p">.</span><span class="nx">purgeElement</span><span class="p">(</span><span class="nx">cal</span><span class="p">.</span><span class="nx">oDomContainer</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>
<span class="c1">// Generated markup/DOM - Not removing the container DIV since we didn&#39;t create it.</span>
<span class="nx">Dom</span><span class="p">.</span><span class="nx">removeClass</span><span class="p">(</span><span class="nx">cal</span><span class="p">.</span><span class="nx">oDomContainer</span><span class="p">,</span> <span class="nx">cal</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_WITH_TITLE</span><span class="p">);</span>
<span class="nx">Dom</span><span class="p">.</span><span class="nx">removeClass</span><span class="p">(</span><span class="nx">cal</span><span class="p">.</span><span class="nx">oDomContainer</span><span class="p">,</span> <span class="nx">cal</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_CONTAINER</span><span class="p">);</span>
<span class="nx">Dom</span><span class="p">.</span><span class="nx">removeClass</span><span class="p">(</span><span class="nx">cal</span><span class="p">.</span><span class="nx">oDomContainer</span><span class="p">,</span> <span class="nx">cal</span><span class="p">.</span><span class="nx">Style</span><span class="p">.</span><span class="nx">CSS_SINGLE</span><span class="p">);</span>
<span class="nx">cal</span><span class="p">.</span><span class="nx">oDomContainer</span><span class="p">.</span><span class="nx">innerHTML</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span><span class="p">;</span>
<span class="c1">// JS-to-DOM references</span>
<span class="nx">cal</span><span class="p">.</span><span class="nx">oDomContainer</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span>
<span class="nx">cal</span><span class="p">.</span><span class="nx">cells</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span>
<span class="k">this</span><span class="p">.</span><span class="nx">destroyEvent</span><span class="p">.</span><span class="nx">fire</span><span class="p">();</span>
<span class="p">}</span>
<span class="p">}</span>
<span class="p">};</span>
<span class="nx">YAHOO</span><span class="p">.</span><span class="nx">widget</span><span class="p">.</span><span class="nx">Calendar</span> <span class="o">=</span> <span class="nx">Calendar</span><span class="p">;</span>
<span class="cm">/**</span>
<span class="cm">* @namespace YAHOO.widget</span>
<span class="cm">* @class Calendar_Core</span>
<span class="cm">* @extends YAHOO.widget.Calendar</span>
<span class="cm">* @deprecated The old Calendar_Core class is no longer necessary.</span>
<span class="cm">*/</span>
<span class="nx">YAHOO</span><span class="p">.</span><span class="nx">widget</span><span class="p">.</span><span class="nx">Calendar_Core</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">widget</span><span class="p">.</span><span class="nx">Calendar</span><span class="p">;</span>
<span class="nx">YAHOO</span><span class="p">.</span><span class="nx">widget</span><span class="p">.</span><span class="nx">Cal_Core</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">widget</span><span class="p">.</span><span class="nx">Calendar</span><span class="p">;</span>
<span class="p">})();</span>
</pre></div>
</div>
</div>
</div>
<div class="yui-b">
<div class="nav">
<div id="moduleList" class="module">
<h4>Modules</h4>
<ul class="content">
<li class=""><a href="module_animation.html" title="animation">animation</a></li>
<li class=""><a href="module_autocomplete.html" title="autocomplete">autocomplete</a></li>
<li class=""><a href="module_button.html" title="button">button</a></li>
<li class="selected"><a href="module_calendar.html" title="calendar">calendar</a></li>
<li class=""><a href="module_carousel.html" title="carousel">carousel</a></li>
<li class=""><a href="module_charts.html" title="charts">charts</a></li>
<li class=""><a href="module_colorpicker.html" title="colorpicker">colorpicker</a></li>
<li class=""><a href="module_connection.html" title="connection">connection</a></li>
<li class=""><a href="module_container.html" title="container">container</a></li>
<li class=""><a href="module_cookie.html" title="cookie">cookie</a></li>
<li class=""><a href="module_datasource.html" title="datasource">datasource</a></li>
<li class=""><a href="module_datatable.html" title="datatable">datatable</a></li>
<li class=""><a href="module_datemath.html" title="datemath">datemath</a></li>
<li class=""><a href="module_dom.html" title="dom">dom</a></li>
<li class=""><a href="module_dragdrop.html" title="dragdrop">dragdrop</a></li>
<li class=""><a href="module_editor.html" title="editor">editor</a></li>
<li class=""><a href="module_element.html" title="element">element</a></li>
<li class=""><a href="module_element-delegate.html" title="element-delegate">element-delegate</a></li>
<li class=""><a href="module_event.html" title="event">event</a></li>
<li class=""><a href="module_event-delegate.html" title="event-delegate">event-delegate</a></li>
<li class=""><a href="module_event-mouseenter.html" title="event-mouseenter">event-mouseenter</a></li>
<li class=""><a href="module_event-simulate.html" title="event-simulate">event-simulate</a></li>
<li class=""><a href="module_get.html" title="get">get</a></li>
<li class=""><a href="module_history.html" title="history">history</a></li>
<li class=""><a href="module_imagecropper.html" title="imagecropper">imagecropper</a></li>
<li class=""><a href="module_imageloader.html" title="imageloader">imageloader</a></li>
<li class=""><a href="module_json.html" title="json">json</a></li>
<li class=""><a href="module_layout.html" title="layout">layout</a></li>
<li class=""><a href="module_logger.html" title="logger">logger</a></li>
<li class=""><a href="module_menu.html" title="menu">menu</a></li>
<li class=""><a href="module_paginator.html" title="paginator">paginator</a></li>
<li class=""><a href="module_profiler.html" title="profiler">profiler</a></li>
<li class=""><a href="module_profilerviewer.html" title="profilerviewer">profilerviewer</a></li>
<li class=""><a href="module_progressbar.html" title="progressbar">progressbar</a></li>
<li class=""><a href="module_resize.html" title="resize">resize</a></li>
<li class=""><a href="module_selector.html" title="selector">selector</a></li>
<li class=""><a href="module_slider.html" title="slider">slider</a></li>
<li class=""><a href="module_storage.html" title="Storage">Storage</a></li>
<li class=""><a href="module_stylesheet.html" title="stylesheet">stylesheet</a></li>
<li class=""><a href="module_swf.html" title="swf">swf</a></li>
<li class=""><a href="module_swfdetect.html" title="swfdetect">swfdetect</a></li>
<li class=""><a href="module_swfstore.html" title="swfstore">swfstore</a></li>
<li class=""><a href="module_tabview.html" title="tabview">tabview</a></li>
<li class=""><a href="module_treeview.html" title="treeview">treeview</a></li>
<li class=""><a href="module_uploader.html" title="uploader">uploader</a></li>
<li class=""><a href="module_yahoo.html" title="yahoo">yahoo</a></li>
<li class=""><a href="module_yuiloader.html" title="yuiloader">yuiloader</a></li>
<li class=""><a href="module_yuitest.html" title="yuitest">yuitest</a></li>
</ul>
</div>
<div id="classList" class="module">
<h4>Classes</h4>
<ul class="content">
<li class=""><a href="YAHOO.widget.Calendar.html" title="YAHOO.widget.Calendar">YAHOO.widget.Calendar</a></li>
<li class=""><a href="YAHOO.widget.Calendar2up.html" title="YAHOO.widget.Calendar2up">YAHOO.widget.Calendar2up</a></li>
<li class=""><a href="YAHOO.widget.Calendar_Core.html" title="YAHOO.widget.Calendar_Core">YAHOO.widget.Calendar_Core</a></li>
<li class=""><a href="YAHOO.widget.CalendarGroup.html" title="YAHOO.widget.CalendarGroup">YAHOO.widget.CalendarGroup</a></li>
<li class=""><a href="YAHOO.widget.CalendarNavigator.html" title="YAHOO.widget.CalendarNavigator">YAHOO.widget.CalendarNavigator</a></li>
</ul>
</div>
<div id="fileList" class="module">
<h4>Files</h4>
<ul class="content">
<li class="selected"><a href="Calendar.js.html" title="Calendar.js">Calendar.js</a></li>
<li class=""><a href="CalendarGroup.js.html" title="CalendarGroup.js">CalendarGroup.js</a></li>
<li class=""><a href="CalendarNavigator.js.html" title="CalendarNavigator.js">CalendarNavigator.js</a></li>
</ul>
</div>
</div>
</div>
</div>
<div id="ft">
<hr />
Copyright &copy; 2011 Yahoo! Inc. All rights reserved.
</div>
</div>
<script type="text/javascript">
var ALL_YUI_PROPS = [{"access": "", "host": "YAHOO.widget.Calendar", "name": "addMonthRenderer", "url": "YAHOO.widget.Calendar.html#method_addMonthRenderer", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "addMonthRenderer", "url": "YAHOO.widget.CalendarGroup.html#method_addMonthRenderer", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "addMonths", "url": "YAHOO.widget.Calendar.html#method_addMonths", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "addMonths", "url": "YAHOO.widget.CalendarGroup.html#method_addMonths", "type": "method"}, {"access": "private", "host": "YAHOO.widget.Calendar", "name": "_addRenderer", "url": "YAHOO.widget.Calendar.html#method__addRenderer", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "addRenderer", "url": "YAHOO.widget.Calendar.html#method_addRenderer", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "addRenderer", "url": "YAHOO.widget.CalendarGroup.html#method_addRenderer", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "addWeekdayRenderer", "url": "YAHOO.widget.Calendar.html#method_addWeekdayRenderer", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "addWeekdayRenderer", "url": "YAHOO.widget.CalendarGroup.html#method_addWeekdayRenderer", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "addYears", "url": "YAHOO.widget.Calendar.html#method_addYears", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "addYears", "url": "YAHOO.widget.CalendarGroup.html#method_addYears", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "applyKeyListeners", "url": "YAHOO.widget.CalendarNavigator.html#method_applyKeyListeners", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "applyListeners", "url": "YAHOO.widget.Calendar.html#method_applyListeners", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "applyListeners", "url": "YAHOO.widget.CalendarNavigator.html#method_applyListeners", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "applyNavListeners", "url": "YAHOO.widget.Calendar.html#method_applyNavListeners", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "beforeDeselectEvent", "url": "YAHOO.widget.Calendar.html#event_beforeDeselectEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "beforeDeselectEvent", "url": "YAHOO.widget.CalendarGroup.html#event_beforeDeselectEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "beforeDestroyEvent", "url": "YAHOO.widget.Calendar.html#event_beforeDestroyEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "beforeDestroyEvent", "url": "YAHOO.widget.CalendarGroup.html#event_beforeDestroyEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "beforeHideEvent", "url": "YAHOO.widget.Calendar.html#event_beforeHideEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "beforeHideEvent", "url": "YAHOO.widget.CalendarGroup.html#event_beforeHideEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "beforeHideNavEvent", "url": "YAHOO.widget.Calendar.html#event_beforeHideNavEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "beforeHideNavEvent", "url": "YAHOO.widget.CalendarGroup.html#event_beforeHideNavEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "beforeRenderEvent", "url": "YAHOO.widget.Calendar.html#event_beforeRenderEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "beforeRenderEvent", "url": "YAHOO.widget.CalendarGroup.html#event_beforeRenderEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "beforeRenderNavEvent", "url": "YAHOO.widget.Calendar.html#event_beforeRenderNavEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "beforeRenderNavEvent", "url": "YAHOO.widget.CalendarGroup.html#event_beforeRenderNavEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "beforeSelectEvent", "url": "YAHOO.widget.Calendar.html#event_beforeSelectEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "beforeSelectEvent", "url": "YAHOO.widget.CalendarGroup.html#event_beforeSelectEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "beforeShowEvent", "url": "YAHOO.widget.Calendar.html#event_beforeShowEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "beforeShowEvent", "url": "YAHOO.widget.CalendarGroup.html#event_beforeShowEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "beforeShowNavEvent", "url": "YAHOO.widget.Calendar.html#event_beforeShowNavEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "beforeShowNavEvent", "url": "YAHOO.widget.CalendarGroup.html#event_beforeShowNavEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "browser", "url": "YAHOO.widget.Calendar.html#property_browser", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "buildDayLabel", "url": "YAHOO.widget.Calendar.html#method_buildDayLabel", "type": "method"}, {"access": "private", "host": "YAHOO.widget.Calendar", "name": "_buildMonthLabel", "url": "YAHOO.widget.Calendar.html#method__buildMonthLabel", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "buildMonthLabel", "url": "YAHOO.widget.Calendar.html#method_buildMonthLabel", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "buildWeekdays", "url": "YAHOO.widget.Calendar.html#method_buildWeekdays", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "cal", "url": "YAHOO.widget.CalendarNavigator.html#property_cal", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar2up", "name": "Cal2up", "url": "YAHOO.widget.Calendar2up.html#property_Cal2up", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "callChildFunction", "url": "YAHOO.widget.CalendarGroup.html#method_callChildFunction", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "cancel", "url": "YAHOO.widget.CalendarNavigator.html#method_cancel", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "cancelEl", "url": "YAHOO.widget.CalendarNavigator.html#property_cancelEl", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "cellDates", "url": "YAHOO.widget.Calendar.html#property_cellDates", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "cells", "url": "YAHOO.widget.Calendar.html#property_cells", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "cfg", "url": "YAHOO.widget.Calendar.html#property_cfg", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "cfg", "url": "YAHOO.widget.CalendarGroup.html#property_cfg", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "changePageEvent", "url": "YAHOO.widget.Calendar.html#event_changePageEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "changePageEvent", "url": "YAHOO.widget.CalendarGroup.html#event_changePageEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "clear", "url": "YAHOO.widget.Calendar.html#method_clear", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "clear", "url": "YAHOO.widget.CalendarGroup.html#method_clear", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "clearAllBodyCellStyles", "url": "YAHOO.widget.Calendar.html#method_clearAllBodyCellStyles", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "clearElement", "url": "YAHOO.widget.Calendar.html#method_clearElement", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "clearError", "url": "YAHOO.widget.CalendarNavigator.html#method_clearError", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "clearErrors", "url": "YAHOO.widget.CalendarNavigator.html#method_clearErrors", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "clearEvent", "url": "YAHOO.widget.Calendar.html#event_clearEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "clearEvent", "url": "YAHOO.widget.CalendarGroup.html#event_clearEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "clearYearError", "url": "YAHOO.widget.CalendarNavigator.html#method_clearYearError", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "close", "url": "YAHOO.widget.Calendar.html#config_close", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "close", "url": "YAHOO.widget.CalendarGroup.html#config_close", "type": "config"}, {"access": "private", "host": "YAHOO.widget.Calendar", "name": "Config", "url": "YAHOO.widget.Calendar.html#property_Config", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "configClose", "url": "YAHOO.widget.Calendar.html#method_configClose", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "configIframe", "url": "YAHOO.widget.Calendar.html#method_configIframe", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "configLocale", "url": "YAHOO.widget.Calendar.html#method_configLocale", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "configLocaleValues", "url": "YAHOO.widget.Calendar.html#method_configLocaleValues", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "configMaxDate", "url": "YAHOO.widget.Calendar.html#method_configMaxDate", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "configMinDate", "url": "YAHOO.widget.Calendar.html#method_configMinDate", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "configNavigator", "url": "YAHOO.widget.Calendar.html#method_configNavigator", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "configOptions", "url": "YAHOO.widget.Calendar.html#method_configOptions", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "configPageDate", "url": "YAHOO.widget.Calendar.html#method_configPageDate", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "configPageDate", "url": "YAHOO.widget.CalendarGroup.html#method_configPageDate", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "configPages", "url": "YAHOO.widget.CalendarGroup.html#method_configPages", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "configSelected", "url": "YAHOO.widget.Calendar.html#method_configSelected", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "configSelected", "url": "YAHOO.widget.CalendarGroup.html#method_configSelected", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "configStrings", "url": "YAHOO.widget.Calendar.html#method_configStrings", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "configTitle", "url": "YAHOO.widget.Calendar.html#method_configTitle", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "configToday", "url": "YAHOO.widget.Calendar.html#method_configToday", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "constructChild", "url": "YAHOO.widget.CalendarGroup.html#method_constructChild", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "containerId", "url": "YAHOO.widget.Calendar.html#property_containerId", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "containerId", "url": "YAHOO.widget.CalendarGroup.html#property_containerId", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "createCloseButton", "url": "YAHOO.widget.Calendar.html#method_createCloseButton", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "createMask", "url": "YAHOO.widget.CalendarNavigator.html#method_createMask", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "createNav", "url": "YAHOO.widget.CalendarNavigator.html#method_createNav", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "createTitleBar", "url": "YAHOO.widget.Calendar.html#method_createTitleBar", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "DATE_DELIMITER", "url": "YAHOO.widget.Calendar.html#config_DATE_DELIMITER", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "DATE_DELIMITER", "url": "YAHOO.widget.CalendarGroup.html#config_DATE_DELIMITER", "type": "config"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "DATE_FIELD_DELIMITER", "url": "YAHOO.widget.Calendar.html#config_DATE_FIELD_DELIMITER", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "DATE_FIELD_DELIMITER", "url": "YAHOO.widget.CalendarGroup.html#config_DATE_FIELD_DELIMITER", "type": "config"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "DATE_RANGE_DELIMITER", "url": "YAHOO.widget.Calendar.html#config_DATE_RANGE_DELIMITER", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "DATE_RANGE_DELIMITER", "url": "YAHOO.widget.CalendarGroup.html#config_DATE_RANGE_DELIMITER", "type": "config"}, {"access": "protected", "host": "YAHOO.widget.CalendarNavigator", "name": "_DEFAULT_CFG", "url": "YAHOO.widget.CalendarNavigator.html#property__DEFAULT_CFG", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "DEFAULT_CONFIG", "url": "YAHOO.widget.CalendarNavigator.html#property_DEFAULT_CONFIG", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "delegateConfig", "url": "YAHOO.widget.CalendarGroup.html#method_delegateConfig", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "deselect", "url": "YAHOO.widget.Calendar.html#method_deselect", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "deselect", "url": "YAHOO.widget.CalendarGroup.html#method_deselect", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "deselectAll", "url": "YAHOO.widget.Calendar.html#method_deselectAll", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "deselectAll", "url": "YAHOO.widget.CalendarGroup.html#method_deselectAll", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "deselectCell", "url": "YAHOO.widget.Calendar.html#method_deselectCell", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "deselectCell", "url": "YAHOO.widget.CalendarGroup.html#method_deselectCell", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "deselectEvent", "url": "YAHOO.widget.Calendar.html#event_deselectEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "deselectEvent", "url": "YAHOO.widget.CalendarGroup.html#event_deselectEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "destroy", "url": "YAHOO.widget.Calendar.html#method_destroy", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "destroy", "url": "YAHOO.widget.CalendarGroup.html#method_destroy", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "destroy", "url": "YAHOO.widget.CalendarNavigator.html#method_destroy", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "destroyEvent", "url": "YAHOO.widget.Calendar.html#event_destroyEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "destroyEvent", "url": "YAHOO.widget.CalendarGroup.html#event_destroyEvent", "type": "event"}, {"access": "protected", "host": "YAHOO.widget.CalendarNavigator", "name": "_doc", "url": "YAHOO.widget.CalendarNavigator.html#property__doc", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "doCellMouseOut", "url": "YAHOO.widget.Calendar.html#method_doCellMouseOut", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "doCellMouseOver", "url": "YAHOO.widget.Calendar.html#method_doCellMouseOver", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "domEventMap", "url": "YAHOO.widget.Calendar.html#property_domEventMap", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "doNextMonthNav", "url": "YAHOO.widget.Calendar.html#method_doNextMonthNav", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "doPreviousMonthNav", "url": "YAHOO.widget.Calendar.html#method_doPreviousMonthNav", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "doSelectCell", "url": "YAHOO.widget.Calendar.html#method_doSelectCell", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "erase", "url": "YAHOO.widget.CalendarNavigator.html#method_erase", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "errorEl", "url": "YAHOO.widget.CalendarNavigator.html#property_errorEl", "type": "property"}, {"access": "private", "host": "YAHOO.widget.Calendar", "name": "_fieldArraysAreEqual", "url": "YAHOO.widget.Calendar.html#method__fieldArraysAreEqual", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "firstCtrl", "url": "YAHOO.widget.CalendarNavigator.html#property_firstCtrl", "type": "property"}, {"access": "private", "host": "YAHOO.widget.CalendarGroup", "name": "_fixWidth", "url": "YAHOO.widget.CalendarGroup.html#method__fixWidth", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "getCalendarPage", "url": "YAHOO.widget.CalendarGroup.html#method_getCalendarPage", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "getCellIndex", "url": "YAHOO.widget.Calendar.html#method_getCellIndex", "type": "method"}, {"access": "private", "host": "YAHOO.widget.CalendarNavigator", "name": "__getCfg", "url": "YAHOO.widget.CalendarNavigator.html#method___getCfg", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "getDateByCellId", "url": "YAHOO.widget.Calendar.html#method_getDateByCellId", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "getDateFieldsByCellId", "url": "YAHOO.widget.Calendar.html#method_getDateFieldsByCellId", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "getIndexFromId", "url": "YAHOO.widget.Calendar.html#method_getIndexFromId", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "getMonth", "url": "YAHOO.widget.CalendarNavigator.html#method_getMonth", "type": "method"}, {"access": "protected", "host": "YAHOO.widget.CalendarNavigator", "name": "_getMonthFromUI", "url": "YAHOO.widget.CalendarNavigator.html#method__getMonthFromUI", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "getSelectedDates", "url": "YAHOO.widget.Calendar.html#method_getSelectedDates", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "getSelectedDates", "url": "YAHOO.widget.CalendarGroup.html#method_getSelectedDates", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "getYear", "url": "YAHOO.widget.CalendarNavigator.html#method_getYear", "type": "method"}, {"access": "protected", "host": "YAHOO.widget.CalendarNavigator", "name": "_getYearFromUI", "url": "YAHOO.widget.CalendarNavigator.html#method__getYearFromUI", "type": "method"}, {"access": "protected", "host": "YAHOO.widget.CalendarNavigator", "name": "_handleDirectionKeys", "url": "YAHOO.widget.CalendarNavigator.html#method__handleDirectionKeys", "type": "method"}, {"access": "protected", "host": "YAHOO.widget.CalendarNavigator", "name": "_handleEnterKey", "url": "YAHOO.widget.CalendarNavigator.html#method__handleEnterKey", "type": "method"}, {"access": "protected", "host": "YAHOO.widget.CalendarNavigator", "name": "_handleShiftTabKey", "url": "YAHOO.widget.CalendarNavigator.html#method__handleShiftTabKey", "type": "method"}, {"access": "protected", "host": "YAHOO.widget.CalendarNavigator", "name": "_handleTabKey", "url": "YAHOO.widget.CalendarNavigator.html#method__handleTabKey", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "hide", "url": "YAHOO.widget.Calendar.html#method_hide", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "hide", "url": "YAHOO.widget.CalendarNavigator.html#method_hide", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "HIDE_BLANK_WEEKS", "url": "YAHOO.widget.Calendar.html#config_HIDE_BLANK_WEEKS", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "HIDE_BLANK_WEEKS", "url": "YAHOO.widget.CalendarGroup.html#config_HIDE_BLANK_WEEKS", "type": "config"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "hideEvent", "url": "YAHOO.widget.Calendar.html#event_hideEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "hideEvent", "url": "YAHOO.widget.CalendarGroup.html#event_hideEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "hideMask", "url": "YAHOO.widget.CalendarNavigator.html#method_hideMask", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "hideNavEvent", "url": "YAHOO.widget.Calendar.html#event_hideNavEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "hideNavEvent", "url": "YAHOO.widget.CalendarGroup.html#event_hideNavEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "id", "url": "YAHOO.widget.Calendar.html#property_id", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "id", "url": "YAHOO.widget.CalendarGroup.html#property_id", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "id", "url": "YAHOO.widget.CalendarNavigator.html#property_id", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "iframe", "url": "YAHOO.widget.Calendar.html#config_iframe", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "iframe", "url": "YAHOO.widget.CalendarGroup.html#config_iframe", "type": "config"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "index", "url": "YAHOO.widget.Calendar.html#property_index", "type": "property"}, {"access": "private", "host": "YAHOO.widget.Calendar", "name": "_indexOfSelectedFieldArray", "url": "YAHOO.widget.Calendar.html#method__indexOfSelectedFieldArray", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "init", "url": "YAHOO.widget.Calendar.html#method_init", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "init", "url": "YAHOO.widget.CalendarGroup.html#method_init", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "init", "url": "YAHOO.widget.CalendarNavigator.html#method_init", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "initEvents", "url": "YAHOO.widget.Calendar.html#method_initEvents", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "initEvents", "url": "YAHOO.widget.CalendarGroup.html#method_initEvents", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "initStyles", "url": "YAHOO.widget.Calendar.html#method_initStyles", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "isDateOOB", "url": "YAHOO.widget.Calendar.html#method_isDateOOB", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "isDateOOM", "url": "YAHOO.widget.Calendar.html#method_isDateOOM", "type": "method"}, {"access": "private", "host": "YAHOO.widget.CalendarNavigator", "name": "__isIEQuirks", "url": "YAHOO.widget.CalendarNavigator.html#property___isIEQuirks", "type": "property"}, {"access": "private", "host": "YAHOO.widget.CalendarNavigator", "name": "__isMac", "url": "YAHOO.widget.CalendarNavigator.html#property___isMac", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "lastCtrl", "url": "YAHOO.widget.CalendarNavigator.html#property_lastCtrl", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "Locale", "url": "YAHOO.widget.Calendar.html#property_Locale", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "Locale", "url": "YAHOO.widget.CalendarGroup.html#property_Locale", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "LOCALE_MONTHS", "url": "YAHOO.widget.Calendar.html#config_LOCALE_MONTHS", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "LOCALE_MONTHS", "url": "YAHOO.widget.CalendarGroup.html#config_LOCALE_MONTHS", "type": "config"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "LOCALE_WEEKDAYS", "url": "YAHOO.widget.Calendar.html#config_LOCALE_WEEKDAYS", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "LOCALE_WEEKDAYS", "url": "YAHOO.widget.CalendarGroup.html#config_LOCALE_WEEKDAYS", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "maskEl", "url": "YAHOO.widget.CalendarNavigator.html#property_maskEl", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "maxdate", "url": "YAHOO.widget.Calendar.html#config_maxdate", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "maxdate", "url": "YAHOO.widget.CalendarGroup.html#config_maxdate", "type": "config"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "MD_DAY_POSITION", "url": "YAHOO.widget.Calendar.html#config_MD_DAY_POSITION", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "MD_DAY_POSITION", "url": "YAHOO.widget.CalendarGroup.html#config_MD_DAY_POSITION", "type": "config"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "MD_MONTH_POSITION", "url": "YAHOO.widget.Calendar.html#config_MD_MONTH_POSITION", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "MD_MONTH_POSITION", "url": "YAHOO.widget.CalendarGroup.html#config_MD_MONTH_POSITION", "type": "config"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "MDY_DAY_POSITION", "url": "YAHOO.widget.Calendar.html#config_MDY_DAY_POSITION", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "MDY_DAY_POSITION", "url": "YAHOO.widget.CalendarGroup.html#config_MDY_DAY_POSITION", "type": "config"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "MDY_MONTH_POSITION", "url": "YAHOO.widget.Calendar.html#config_MDY_MONTH_POSITION", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "MDY_MONTH_POSITION", "url": "YAHOO.widget.CalendarGroup.html#config_MDY_MONTH_POSITION", "type": "config"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "MDY_YEAR_POSITION", "url": "YAHOO.widget.Calendar.html#config_MDY_YEAR_POSITION", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "MDY_YEAR_POSITION", "url": "YAHOO.widget.CalendarGroup.html#config_MDY_YEAR_POSITION", "type": "config"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "mindate", "url": "YAHOO.widget.Calendar.html#config_mindate", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "mindate", "url": "YAHOO.widget.CalendarGroup.html#config_mindate", "type": "config"}, {"access": "protected", "host": "YAHOO.widget.CalendarNavigator", "name": "_month", "url": "YAHOO.widget.CalendarNavigator.html#property__month", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "monthEl", "url": "YAHOO.widget.CalendarNavigator.html#property_monthEl", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "MONTHS_LONG", "url": "YAHOO.widget.Calendar.html#config_MONTHS_LONG", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "MONTHS_LONG", "url": "YAHOO.widget.CalendarGroup.html#config_MONTHS_LONG", "type": "config"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "MONTHS_SHORT", "url": "YAHOO.widget.Calendar.html#config_MONTHS_SHORT", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "MONTHS_SHORT", "url": "YAHOO.widget.CalendarGroup.html#config_MONTHS_SHORT", "type": "config"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "MULTI_SELECT", "url": "YAHOO.widget.Calendar.html#config_MULTI_SELECT", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "MULTI_SELECT", "url": "YAHOO.widget.CalendarGroup.html#config_MULTI_SELECT", "type": "config"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "MY_LABEL_MONTH_POSITION", "url": "YAHOO.widget.Calendar.html#config_MY_LABEL_MONTH_POSITION", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "MY_LABEL_MONTH_POSITION", "url": "YAHOO.widget.CalendarGroup.html#config_MY_LABEL_MONTH_POSITION", "type": "config"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "MY_LABEL_MONTH_SUFFIX", "url": "YAHOO.widget.Calendar.html#config_MY_LABEL_MONTH_SUFFIX", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "MY_LABEL_MONTH_SUFFIX", "url": "YAHOO.widget.CalendarGroup.html#config_MY_LABEL_MONTH_SUFFIX", "type": "config"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "MY_LABEL_YEAR_POSITION", "url": "YAHOO.widget.Calendar.html#config_MY_LABEL_YEAR_POSITION", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "MY_LABEL_YEAR_POSITION", "url": "YAHOO.widget.CalendarGroup.html#config_MY_LABEL_YEAR_POSITION", "type": "config"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "MY_LABEL_YEAR_SUFFIX", "url": "YAHOO.widget.Calendar.html#config_MY_LABEL_YEAR_SUFFIX", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "MY_LABEL_YEAR_SUFFIX", "url": "YAHOO.widget.CalendarGroup.html#config_MY_LABEL_YEAR_SUFFIX", "type": "config"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "MY_MONTH_POSITION", "url": "YAHOO.widget.Calendar.html#config_MY_MONTH_POSITION", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "MY_MONTH_POSITION", "url": "YAHOO.widget.CalendarGroup.html#config_MY_MONTH_POSITION", "type": "config"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "MY_YEAR_POSITION", "url": "YAHOO.widget.Calendar.html#config_MY_YEAR_POSITION", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "MY_YEAR_POSITION", "url": "YAHOO.widget.CalendarGroup.html#config_MY_YEAR_POSITION", "type": "config"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "NAV_ARROW_LEFT", "url": "YAHOO.widget.Calendar.html#config_NAV_ARROW_LEFT", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "NAV_ARROW_LEFT", "url": "YAHOO.widget.CalendarGroup.html#config_NAV_ARROW_LEFT", "type": "config"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "NAV_ARROW_RIGHT", "url": "YAHOO.widget.Calendar.html#config_NAV_ARROW_RIGHT", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "NAV_ARROW_RIGHT", "url": "YAHOO.widget.CalendarGroup.html#config_NAV_ARROW_RIGHT", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "navEl", "url": "YAHOO.widget.CalendarNavigator.html#property_navEl", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "navigator", "url": "YAHOO.widget.Calendar.html#config_navigator", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "navigator", "url": "YAHOO.widget.CalendarGroup.html#config_navigator", "type": "config"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "nextMonth", "url": "YAHOO.widget.Calendar.html#method_nextMonth", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "nextMonth", "url": "YAHOO.widget.CalendarGroup.html#method_nextMonth", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "nextYear", "url": "YAHOO.widget.Calendar.html#method_nextYear", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "nextYear", "url": "YAHOO.widget.CalendarGroup.html#method_nextYear", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "oDomContainer", "url": "YAHOO.widget.Calendar.html#property_oDomContainer", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "oNavigator", "url": "YAHOO.widget.Calendar.html#property_oNavigator", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "onBeforeDeselect", "url": "YAHOO.widget.Calendar.html#method_onBeforeDeselect", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "onBeforeSelect", "url": "YAHOO.widget.Calendar.html#method_onBeforeSelect", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "onChangePage", "url": "YAHOO.widget.Calendar.html#method_onChangePage", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "onClear", "url": "YAHOO.widget.Calendar.html#method_onClear", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "onDeselect", "url": "YAHOO.widget.Calendar.html#method_onDeselect", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "onRender", "url": "YAHOO.widget.Calendar.html#method_onRender", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "onReset", "url": "YAHOO.widget.Calendar.html#method_onReset", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "onSelect", "url": "YAHOO.widget.Calendar.html#method_onSelect", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "OOM_SELECT", "url": "YAHOO.widget.Calendar.html#config_OOM_SELECT", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "OOM_SELECT", "url": "YAHOO.widget.CalendarGroup.html#config_OOM_SELECT", "type": "config"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "Options", "url": "YAHOO.widget.Calendar.html#property_Options", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "Options", "url": "YAHOO.widget.CalendarGroup.html#property_Options", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "pagedate", "url": "YAHOO.widget.Calendar.html#config_pagedate", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "pagedate", "url": "YAHOO.widget.CalendarGroup.html#config_pagedate", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "pages", "url": "YAHOO.widget.CalendarGroup.html#property_pages", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "pages", "url": "YAHOO.widget.CalendarGroup.html#config_pages", "type": "config"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "parent", "url": "YAHOO.widget.Calendar.html#property_parent", "type": "property"}, {"access": "protected", "host": "YAHOO.widget.Calendar", "name": "_parseArgs", "url": "YAHOO.widget.Calendar.html#method__parseArgs", "type": "method"}, {"access": "private", "host": "YAHOO.widget.Calendar", "name": "_parseDate", "url": "YAHOO.widget.Calendar.html#method__parseDate", "type": "method"}, {"access": "private", "host": "YAHOO.widget.Calendar", "name": "_parseDates", "url": "YAHOO.widget.Calendar.html#method__parseDates", "type": "method"}, {"access": "private", "host": "YAHOO.widget.Calendar", "name": "_parsePageDate", "url": "YAHOO.widget.Calendar.html#method__parsePageDate", "type": "method"}, {"access": "private", "host": "YAHOO.widget.Calendar", "name": "_parseRange", "url": "YAHOO.widget.Calendar.html#method__parseRange", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "previousMonth", "url": "YAHOO.widget.Calendar.html#method_previousMonth", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "previousMonth", "url": "YAHOO.widget.CalendarGroup.html#method_previousMonth", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "previousYear", "url": "YAHOO.widget.Calendar.html#method_previousYear", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "previousYear", "url": "YAHOO.widget.CalendarGroup.html#method_previousYear", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "purgeKeyListeners", "url": "YAHOO.widget.CalendarNavigator.html#method_purgeKeyListeners", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "purgeListeners", "url": "YAHOO.widget.CalendarNavigator.html#method_purgeListeners", "type": "method"}, {"access": "private", "host": "YAHOO.widget.Calendar", "name": "refreshLocale", "url": "YAHOO.widget.Calendar.html#method_refreshLocale", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "removeCloseButton", "url": "YAHOO.widget.Calendar.html#method_removeCloseButton", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "removeRenderers", "url": "YAHOO.widget.Calendar.html#method_removeRenderers", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "removeRenderers", "url": "YAHOO.widget.CalendarGroup.html#method_removeRenderers", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "removeTitleBar", "url": "YAHOO.widget.Calendar.html#method_removeTitleBar", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "render", "url": "YAHOO.widget.Calendar.html#method_render", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "render", "url": "YAHOO.widget.CalendarGroup.html#method_render", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "render", "url": "YAHOO.widget.CalendarNavigator.html#method_render", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "renderBody", "url": "YAHOO.widget.Calendar.html#method_renderBody", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "renderBodyCellRestricted", "url": "YAHOO.widget.Calendar.html#method_renderBodyCellRestricted", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "renderButtons", "url": "YAHOO.widget.CalendarNavigator.html#method_renderButtons", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "renderCellDefault", "url": "YAHOO.widget.Calendar.html#method_renderCellDefault", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "renderCellNotThisMonth", "url": "YAHOO.widget.Calendar.html#method_renderCellNotThisMonth", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "renderCellStyleHighlight1", "url": "YAHOO.widget.Calendar.html#method_renderCellStyleHighlight1", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "renderCellStyleHighlight2", "url": "YAHOO.widget.Calendar.html#method_renderCellStyleHighlight2", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "renderCellStyleHighlight3", "url": "YAHOO.widget.Calendar.html#method_renderCellStyleHighlight3", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "renderCellStyleHighlight4", "url": "YAHOO.widget.Calendar.html#method_renderCellStyleHighlight4", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "renderCellStyleSelected", "url": "YAHOO.widget.Calendar.html#method_renderCellStyleSelected", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "renderCellStyleToday", "url": "YAHOO.widget.Calendar.html#method_renderCellStyleToday", "type": "method"}, {"access": "private", "host": "YAHOO.widget.CalendarNavigator", "name": "__rendered", "url": "YAHOO.widget.CalendarNavigator.html#property___rendered", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "renderEvent", "url": "YAHOO.widget.Calendar.html#event_renderEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "renderEvent", "url": "YAHOO.widget.CalendarGroup.html#event_renderEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "renderFooter", "url": "YAHOO.widget.Calendar.html#method_renderFooter", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "renderFooter", "url": "YAHOO.widget.CalendarGroup.html#method_renderFooter", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "renderHeader", "url": "YAHOO.widget.Calendar.html#method_renderHeader", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "renderHeader", "url": "YAHOO.widget.CalendarGroup.html#method_renderHeader", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "renderNavContents", "url": "YAHOO.widget.CalendarNavigator.html#method_renderNavContents", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "renderNavEvent", "url": "YAHOO.widget.Calendar.html#event_renderNavEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "renderNavEvent", "url": "YAHOO.widget.CalendarGroup.html#event_renderNavEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "renderOutOfBoundsDate", "url": "YAHOO.widget.Calendar.html#method_renderOutOfBoundsDate", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "renderRowFooter", "url": "YAHOO.widget.Calendar.html#method_renderRowFooter", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "renderRowHeader", "url": "YAHOO.widget.Calendar.html#method_renderRowHeader", "type": "method"}, {"access": "private", "host": "YAHOO.widget.Calendar", "name": "_renderStack", "url": "YAHOO.widget.Calendar.html#property__renderStack", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "renderStack", "url": "YAHOO.widget.Calendar.html#property_renderStack", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "renderYear", "url": "YAHOO.widget.CalendarNavigator.html#method_renderYear", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "reset", "url": "YAHOO.widget.Calendar.html#method_reset", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "reset", "url": "YAHOO.widget.CalendarGroup.html#method_reset", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "resetEvent", "url": "YAHOO.widget.Calendar.html#event_resetEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "resetEvent", "url": "YAHOO.widget.CalendarGroup.html#event_resetEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "resetRenderers", "url": "YAHOO.widget.Calendar.html#method_resetRenderers", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "select", "url": "YAHOO.widget.Calendar.html#method_select", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "select", "url": "YAHOO.widget.CalendarGroup.html#method_select", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "selectCell", "url": "YAHOO.widget.Calendar.html#method_selectCell", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "selectCell", "url": "YAHOO.widget.CalendarGroup.html#method_selectCell", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "selected", "url": "YAHOO.widget.Calendar.html#config_selected", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "selected", "url": "YAHOO.widget.CalendarGroup.html#config_selected", "type": "config"}, {"access": "private", "host": "YAHOO.widget.Calendar", "name": "_selectedDates", "url": "YAHOO.widget.Calendar.html#property__selectedDates", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "selectEvent", "url": "YAHOO.widget.Calendar.html#event_selectEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "selectEvent", "url": "YAHOO.widget.CalendarGroup.html#event_selectEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "setChildFunction", "url": "YAHOO.widget.CalendarGroup.html#method_setChildFunction", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "setError", "url": "YAHOO.widget.CalendarNavigator.html#method_setError", "type": "method"}, {"access": "protected", "host": "YAHOO.widget.CalendarNavigator", "name": "_setFirstLastElements", "url": "YAHOO.widget.CalendarNavigator.html#method__setFirstLastElements", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "setInitialFocus", "url": "YAHOO.widget.CalendarNavigator.html#method_setInitialFocus", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "setMonth", "url": "YAHOO.widget.Calendar.html#method_setMonth", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "setMonth", "url": "YAHOO.widget.CalendarGroup.html#method_setMonth", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "setMonth", "url": "YAHOO.widget.CalendarNavigator.html#method_setMonth", "type": "method"}, {"access": "private", "host": "YAHOO.widget.CalendarGroup", "name": "_setMonthOnDate", "url": "YAHOO.widget.CalendarGroup.html#method__setMonthOnDate", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "setYear", "url": "YAHOO.widget.Calendar.html#method_setYear", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "setYear", "url": "YAHOO.widget.CalendarGroup.html#method_setYear", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "setYear", "url": "YAHOO.widget.CalendarNavigator.html#method_setYear", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "setYearError", "url": "YAHOO.widget.CalendarNavigator.html#method_setYearError", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "show", "url": "YAHOO.widget.Calendar.html#method_show", "type": "method"}, {"access": "protected", "host": "YAHOO.widget.CalendarNavigator", "name": "_show", "url": "YAHOO.widget.CalendarNavigator.html#method__show", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "show", "url": "YAHOO.widget.CalendarNavigator.html#method_show", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "showEvent", "url": "YAHOO.widget.Calendar.html#event_showEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "showEvent", "url": "YAHOO.widget.CalendarGroup.html#event_showEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "showMask", "url": "YAHOO.widget.CalendarNavigator.html#method_showMask", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "showNavEvent", "url": "YAHOO.widget.Calendar.html#event_showNavEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "showNavEvent", "url": "YAHOO.widget.CalendarGroup.html#event_showNavEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "SHOW_WEEKDAYS", "url": "YAHOO.widget.Calendar.html#config_SHOW_WEEKDAYS", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "SHOW_WEEKDAYS", "url": "YAHOO.widget.CalendarGroup.html#config_SHOW_WEEKDAYS", "type": "config"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "SHOW_WEEK_FOOTER", "url": "YAHOO.widget.Calendar.html#config_SHOW_WEEK_FOOTER", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "SHOW_WEEK_FOOTER", "url": "YAHOO.widget.CalendarGroup.html#config_SHOW_WEEK_FOOTER", "type": "config"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "SHOW_WEEK_HEADER", "url": "YAHOO.widget.Calendar.html#config_SHOW_WEEK_HEADER", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "SHOW_WEEK_HEADER", "url": "YAHOO.widget.CalendarGroup.html#config_SHOW_WEEK_HEADER", "type": "config"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "START_WEEKDAY", "url": "YAHOO.widget.Calendar.html#config_START_WEEKDAY", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "START_WEEKDAY", "url": "YAHOO.widget.CalendarGroup.html#config_START_WEEKDAY", "type": "config"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "strings", "url": "YAHOO.widget.Calendar.html#config_strings", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "strings", "url": "YAHOO.widget.CalendarGroup.html#config_strings", "type": "config"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "styleCellDefault", "url": "YAHOO.widget.Calendar.html#method_styleCellDefault", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "styleCellNotThisMonth", "url": "YAHOO.widget.Calendar.html#method_styleCellNotThisMonth", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_BODY", "url": "YAHOO.widget.Calendar.html#property_Style.CSS_BODY", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_CALENDAR", "url": "YAHOO.widget.Calendar.html#property_Style.CSS_CALENDAR", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_CELL", "url": "YAHOO.widget.Calendar.html#property_Style.CSS_CELL", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_CELL_BOTTOM", "url": "YAHOO.widget.Calendar.html#property_Style.CSS_CELL_BOTTOM", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_CELL_HIGHLIGHT1", "url": "YAHOO.widget.Calendar.html#property_Style.CSS_CELL_HIGHLIGHT1", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_CELL_HIGHLIGHT2", "url": "YAHOO.widget.Calendar.html#property_Style.CSS_CELL_HIGHLIGHT2", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_CELL_HIGHLIGHT3", "url": "YAHOO.widget.Calendar.html#property_Style.CSS_CELL_HIGHLIGHT3", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_CELL_HIGHLIGHT4", "url": "YAHOO.widget.Calendar.html#property_Style.CSS_CELL_HIGHLIGHT4", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_CELL_HOVER", "url": "YAHOO.widget.Calendar.html#property_Style.CSS_CELL_HOVER", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_CELL_LEFT", "url": "YAHOO.widget.Calendar.html#property_Style.CSS_CELL_LEFT", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_CELL_OOB", "url": "YAHOO.widget.Calendar.html#property_Style.CSS_CELL_OOB", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_CELL_OOM", "url": "YAHOO.widget.Calendar.html#property_Style.CSS_CELL_OOM", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_CELL_RESTRICTED", "url": "YAHOO.widget.Calendar.html#property_Style.CSS_CELL_RESTRICTED", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_CELL_RIGHT", "url": "YAHOO.widget.Calendar.html#property_Style.CSS_CELL_RIGHT", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_CELL_SELECTABLE", "url": "YAHOO.widget.Calendar.html#property_Style.CSS_CELL_SELECTABLE", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_CELL_SELECTED", "url": "YAHOO.widget.Calendar.html#property_Style.CSS_CELL_SELECTED", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_CELL_SELECTOR", "url": "YAHOO.widget.Calendar.html#property_Style.CSS_CELL_SELECTOR", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_CELL_TODAY", "url": "YAHOO.widget.Calendar.html#property_Style.CSS_CELL_TODAY", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_CELL_TOP", "url": "YAHOO.widget.Calendar.html#property_Style.CSS_CELL_TOP", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_CLOSE", "url": "YAHOO.widget.Calendar.html#property_Style.CSS_CLOSE", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_CONTAINER", "url": "YAHOO.widget.Calendar.html#property_Style.CSS_CONTAINER", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_FIXED_SIZE", "url": "YAHOO.widget.Calendar.html#property_Style.CSS_FIXED_SIZE", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_FOOTER", "url": "YAHOO.widget.Calendar.html#property_Style.CSS_FOOTER", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_HEADER", "url": "YAHOO.widget.Calendar.html#property_Style.CSS_HEADER", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_HEADER_TEXT", "url": "YAHOO.widget.Calendar.html#property_Style.CSS_HEADER_TEXT", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_LINK_CLOSE", "url": "YAHOO.widget.Calendar.html#property_Style.CSS_LINK_CLOSE", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_NAV", "url": "YAHOO.widget.Calendar.html#property_Style.CSS_NAV", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_NAV_LEFT", "url": "YAHOO.widget.Calendar.html#property_Style.CSS_NAV_LEFT", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_NAV_RIGHT", "url": "YAHOO.widget.Calendar.html#property_Style.CSS_NAV_RIGHT", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_ROW_FOOTER", "url": "YAHOO.widget.Calendar.html#property_Style.CSS_ROW_FOOTER", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_ROW_HEADER", "url": "YAHOO.widget.Calendar.html#property_Style.CSS_ROW_HEADER", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_SINGLE", "url": "YAHOO.widget.Calendar.html#property_Style.CSS_SINGLE", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_WEEKDAY_CELL", "url": "YAHOO.widget.Calendar.html#property_Style.CSS_WEEKDAY_CELL", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_WEEKDAY_ROW", "url": "YAHOO.widget.Calendar.html#property_Style.CSS_WEEKDAY_ROW", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "Style.CSS_WITH_TITLE", "url": "YAHOO.widget.Calendar.html#property_Style.CSS_WITH_TITLE", "type": "property"}, {"access": "private", "host": "YAHOO.widget.CalendarGroup", "name": "sub", "url": "YAHOO.widget.CalendarGroup.html#method_sub", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "submit", "url": "YAHOO.widget.CalendarNavigator.html#method_submit", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "submitEl", "url": "YAHOO.widget.CalendarNavigator.html#property_submitEl", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "subtractMonths", "url": "YAHOO.widget.Calendar.html#method_subtractMonths", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "subtractMonths", "url": "YAHOO.widget.CalendarGroup.html#method_subtractMonths", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "subtractYears", "url": "YAHOO.widget.Calendar.html#method_subtractYears", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "subtractYears", "url": "YAHOO.widget.CalendarGroup.html#method_subtractYears", "type": "method"}, {"access": "protected", "host": "YAHOO.widget.CalendarNavigator", "name": "_syncMask", "url": "YAHOO.widget.CalendarNavigator.html#method__syncMask", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "title", "url": "YAHOO.widget.Calendar.html#config_title", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "title", "url": "YAHOO.widget.CalendarGroup.html#config_title", "type": "config"}, {"access": "private", "host": "YAHOO.widget.Calendar", "name": "_toDate", "url": "YAHOO.widget.Calendar.html#method__toDate", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "toDate", "url": "YAHOO.widget.Calendar.html#method_toDate", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "today", "url": "YAHOO.widget.Calendar.html#property_today", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "today", "url": "YAHOO.widget.Calendar.html#config_today", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "today", "url": "YAHOO.widget.CalendarGroup.html#config_today", "type": "config"}, {"access": "private", "host": "YAHOO.widget.Calendar", "name": "_toFieldArray", "url": "YAHOO.widget.Calendar.html#method__toFieldArray", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "toString", "url": "YAHOO.widget.Calendar.html#method_toString", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "toString", "url": "YAHOO.widget.CalendarGroup.html#method_toString", "type": "method"}, {"access": "private", "host": "YAHOO.widget.CalendarGroup", "name": "unsub", "url": "YAHOO.widget.CalendarGroup.html#method_unsub", "type": "method"}, {"access": "protected", "host": "YAHOO.widget.CalendarNavigator", "name": "_update", "url": "YAHOO.widget.CalendarNavigator.html#method__update", "type": "method"}, {"access": "protected", "host": "YAHOO.widget.CalendarNavigator", "name": "_updateMonthUI", "url": "YAHOO.widget.CalendarNavigator.html#method__updateMonthUI", "type": "method"}, {"access": "protected", "host": "YAHOO.widget.CalendarNavigator", "name": "_updateYearUI", "url": "YAHOO.widget.CalendarNavigator.html#method__updateYearUI", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "validate", "url": "YAHOO.widget.Calendar.html#method_validate", "type": "method"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "validate", "url": "YAHOO.widget.CalendarNavigator.html#method_validate", "type": "method"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "WEEKDAYS_1CHAR", "url": "YAHOO.widget.Calendar.html#config_WEEKDAYS_1CHAR", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "WEEKDAYS_1CHAR", "url": "YAHOO.widget.CalendarGroup.html#config_WEEKDAYS_1CHAR", "type": "config"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "WEEKDAYS_LONG", "url": "YAHOO.widget.Calendar.html#config_WEEKDAYS_LONG", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "WEEKDAYS_LONG", "url": "YAHOO.widget.CalendarGroup.html#config_WEEKDAYS_LONG", "type": "config"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "WEEKDAYS_MEDIUM", "url": "YAHOO.widget.Calendar.html#config_WEEKDAYS_MEDIUM", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "WEEKDAYS_MEDIUM", "url": "YAHOO.widget.CalendarGroup.html#config_WEEKDAYS_MEDIUM", "type": "config"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "WEEKDAYS_SHORT", "url": "YAHOO.widget.Calendar.html#config_WEEKDAYS_SHORT", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "WEEKDAYS_SHORT", "url": "YAHOO.widget.CalendarGroup.html#config_WEEKDAYS_SHORT", "type": "config"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "YAHOO.widget.Calendar.DATE", "url": "YAHOO.widget.Calendar.html#property_YAHOO.widget.Calendar.DATE", "type": "property"}, {"access": "private", "host": "YAHOO.widget.Calendar", "name": "YAHOO.widget.Calendar._DEFAULT_CONFIG", "url": "YAHOO.widget.Calendar.html#property_YAHOO.widget.Calendar._DEFAULT_CONFIG", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "YAHOO.widget.Calendar.DEFAULT_CONFIG", "url": "YAHOO.widget.Calendar.html#property_YAHOO.widget.Calendar.DEFAULT_CONFIG", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "YAHOO.widget.Calendar.DISPLAY_DAYS", "url": "YAHOO.widget.Calendar.html#property_YAHOO.widget.Calendar.DISPLAY_DAYS", "type": "property"}, {"access": "private", "host": "YAHOO.widget.Calendar", "name": "YAHOO.widget.Calendar._EVENT_TYPES", "url": "YAHOO.widget.Calendar.html#property_YAHOO.widget.Calendar._EVENT_TYPES", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "YAHOO.widget.CalendarGroup.CSS_2UPCLOSE", "url": "YAHOO.widget.CalendarGroup.html#property_YAHOO.widget.CalendarGroup.CSS_2UPCLOSE", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "YAHOO.widget.CalendarGroup.CSS_2UPTITLE", "url": "YAHOO.widget.CalendarGroup.html#property_YAHOO.widget.CalendarGroup.CSS_2UPTITLE", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "YAHOO.widget.CalendarGroup.CSS_CONTAINER", "url": "YAHOO.widget.CalendarGroup.html#property_YAHOO.widget.CalendarGroup.CSS_CONTAINER", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "YAHOO.widget.CalendarGroup.CSS_MULTI_UP", "url": "YAHOO.widget.CalendarGroup.html#property_YAHOO.widget.CalendarGroup.CSS_MULTI_UP", "type": "property"}, {"access": "private", "host": "YAHOO.widget.CalendarGroup", "name": "YAHOO.widget.CalendarGroup._DEFAULT_CONFIG", "url": "YAHOO.widget.CalendarGroup.html#property_YAHOO.widget.CalendarGroup._DEFAULT_CONFIG", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "YAHOO.widget.CalendarGroup.DEFAULT_CONFIG", "url": "YAHOO.widget.CalendarGroup.html#property_YAHOO.widget.CalendarGroup.DEFAULT_CONFIG", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "YAHOO.widget.Calendar.IMG_ROOT", "url": "YAHOO.widget.Calendar.html#property_YAHOO.widget.Calendar.IMG_ROOT", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "YAHOO.widget.Calendar.LONG", "url": "YAHOO.widget.Calendar.html#property_YAHOO.widget.Calendar.LONG", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "YAHOO.widget.Calendar.MEDIUM", "url": "YAHOO.widget.Calendar.html#property_YAHOO.widget.Calendar.MEDIUM", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "YAHOO.widget.Calendar.MONTH", "url": "YAHOO.widget.Calendar.html#property_YAHOO.widget.Calendar.MONTH", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "YAHOO.widget.Calendar.MONTH_DAY", "url": "YAHOO.widget.Calendar.html#property_YAHOO.widget.Calendar.MONTH_DAY", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "YAHOO.widget.CalendarNavigator.CANCEL_SUFFIX", "url": "YAHOO.widget.CalendarNavigator.html#property_YAHOO.widget.CalendarNavigator.CANCEL_SUFFIX", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "YAHOO.widget.CalendarNavigator.CLASSES", "url": "YAHOO.widget.CalendarNavigator.html#property_YAHOO.widget.CalendarNavigator.CLASSES", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "YAHOO.widget.CalendarNavigator.CLASSES.BUTTON", "url": "YAHOO.widget.CalendarNavigator.html#property_YAHOO.widget.CalendarNavigator.CLASSES.BUTTON", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "YAHOO.widget.CalendarNavigator.CLASSES.BUTTONS", "url": "YAHOO.widget.CalendarNavigator.html#property_YAHOO.widget.CalendarNavigator.CLASSES.BUTTONS", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "YAHOO.widget.CalendarNavigator.CLASSES.DEFAULT", "url": "YAHOO.widget.CalendarNavigator.html#property_YAHOO.widget.CalendarNavigator.CLASSES.DEFAULT", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "YAHOO.widget.CalendarNavigator.CLASSES.ERROR", "url": "YAHOO.widget.CalendarNavigator.html#property_YAHOO.widget.CalendarNavigator.CLASSES.ERROR", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "YAHOO.widget.CalendarNavigator.CLASSES.INVALID", "url": "YAHOO.widget.CalendarNavigator.html#property_YAHOO.widget.CalendarNavigator.CLASSES.INVALID", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "YAHOO.widget.CalendarNavigator.CLASSES.MASK", "url": "YAHOO.widget.CalendarNavigator.html#property_YAHOO.widget.CalendarNavigator.CLASSES.MASK", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "YAHOO.widget.CalendarNavigator.CLASSES.MONTH", "url": "YAHOO.widget.CalendarNavigator.html#property_YAHOO.widget.CalendarNavigator.CLASSES.MONTH", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "YAHOO.widget.CalendarNavigator.CLASSES.MONTH_CTRL", "url": "YAHOO.widget.CalendarNavigator.html#property_YAHOO.widget.CalendarNavigator.CLASSES.MONTH_CTRL", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "YAHOO.widget.CalendarNavigator.CLASSES.NAV", "url": "YAHOO.widget.CalendarNavigator.html#property_YAHOO.widget.CalendarNavigator.CLASSES.NAV", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "YAHOO.widget.CalendarNavigator.CLASSES.NAV_VISIBLE", "url": "YAHOO.widget.CalendarNavigator.html#property_YAHOO.widget.CalendarNavigator.CLASSES.NAV_VISIBLE", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "YAHOO.widget.CalendarNavigator.CLASSES.YEAR", "url": "YAHOO.widget.CalendarNavigator.html#property_YAHOO.widget.CalendarNavigator.CLASSES.YEAR", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "YAHOO.widget.CalendarNavigator.CLASSES.YEAR_CTRL", "url": "YAHOO.widget.CalendarNavigator.html#property_YAHOO.widget.CalendarNavigator.CLASSES.YEAR_CTRL", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "YAHOO.widget.CalendarNavigator.ERROR_SUFFIX", "url": "YAHOO.widget.CalendarNavigator.html#property_YAHOO.widget.CalendarNavigator.ERROR_SUFFIX", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "YAHOO.widget.CalendarNavigator.ID_SUFFIX", "url": "YAHOO.widget.CalendarNavigator.html#property_YAHOO.widget.CalendarNavigator.ID_SUFFIX", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "YAHOO.widget.CalendarNavigator.MONTH_SUFFIX", "url": "YAHOO.widget.CalendarNavigator.html#property_YAHOO.widget.CalendarNavigator.MONTH_SUFFIX", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "YAHOO.widget.CalendarNavigator.SUBMIT_SUFFIX", "url": "YAHOO.widget.CalendarNavigator.html#property_YAHOO.widget.CalendarNavigator.SUBMIT_SUFFIX", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "YAHOO.widget.CalendarNavigator.TRIM", "url": "YAHOO.widget.CalendarNavigator.html#property_YAHOO.widget.CalendarNavigator.TRIM", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "YAHOO.widget.CalendarNavigator.UPDATE_DELAY", "url": "YAHOO.widget.CalendarNavigator.html#property_YAHOO.widget.CalendarNavigator.UPDATE_DELAY", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "YAHOO.widget.CalendarNavigator.YEAR_SUFFIX", "url": "YAHOO.widget.CalendarNavigator.html#property_YAHOO.widget.CalendarNavigator.YEAR_SUFFIX", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "YAHOO.widget.CalendarNavigator.YR_MAJOR_INC", "url": "YAHOO.widget.CalendarNavigator.html#property_YAHOO.widget.CalendarNavigator.YR_MAJOR_INC", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "YAHOO.widget.CalendarNavigator.YR_MAX_DIGITS", "url": "YAHOO.widget.CalendarNavigator.html#property_YAHOO.widget.CalendarNavigator.YR_MAX_DIGITS", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "YAHOO.widget.CalendarNavigator.YR_MINOR_INC", "url": "YAHOO.widget.CalendarNavigator.html#property_YAHOO.widget.CalendarNavigator.YR_MINOR_INC", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "YAHOO.widget.CalendarNavigator.YR_PATTERN", "url": "YAHOO.widget.CalendarNavigator.html#property_YAHOO.widget.CalendarNavigator.YR_PATTERN", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "YAHOO.widget.Calendar.ONE_CHAR", "url": "YAHOO.widget.Calendar.html#property_YAHOO.widget.Calendar.ONE_CHAR", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "YAHOO.widget.Calendar.RANGE", "url": "YAHOO.widget.Calendar.html#property_YAHOO.widget.Calendar.RANGE", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "YAHOO.widget.Calendar.SHORT", "url": "YAHOO.widget.Calendar.html#property_YAHOO.widget.Calendar.SHORT", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "YAHOO.widget.Calendar.STOP_RENDER", "url": "YAHOO.widget.Calendar.html#property_YAHOO.widget.Calendar.STOP_RENDER", "type": "property"}, {"access": "private", "host": "YAHOO.widget.Calendar", "name": "YAHOO.widget.Calendar._STYLES", "url": "YAHOO.widget.Calendar.html#property_YAHOO.widget.Calendar._STYLES", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "YAHOO.widget.Calendar.STYLES", "url": "YAHOO.widget.Calendar.html#property_YAHOO.widget.Calendar.STYLES", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "YAHOO.widget.Calendar.WEEKDAY", "url": "YAHOO.widget.Calendar.html#property_YAHOO.widget.Calendar.WEEKDAY", "type": "property"}, {"access": "protected", "host": "YAHOO.widget.CalendarNavigator", "name": "_year", "url": "YAHOO.widget.CalendarNavigator.html#property__year", "type": "property"}, {"access": "", "host": "YAHOO.widget.CalendarNavigator", "name": "yearEl", "url": "YAHOO.widget.CalendarNavigator.html#property_yearEl", "type": "property"}, {"access": "", "host": "YAHOO.widget.Calendar", "name": "YEAR_OFFSET", "url": "YAHOO.widget.Calendar.html#config_YEAR_OFFSET", "type": "config"}, {"access": "", "host": "YAHOO.widget.CalendarGroup", "name": "year_offset", "url": "YAHOO.widget.CalendarGroup.html#config_year_offset", "type": "config"}];
</script>
</body>
</html>