webgui/www/extras/yui/docs/Calendar.js.html
2008-03-25 16:13:25 +00:00

3401 lines
435 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>API: calendar Calendar.js (YUI Library)</title>
<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">
<a href="http://developer.yahoo.com/yui/"><h1>Yahoo! UI Library</h1></a>
<h3>Calendar&nbsp; <span class="subtitle">2.5.1</span></h3>
<p>
<a href="./index.html">Yahoo! UI Library</a>
&gt; <a href="./module_calendar.html">calendar</a>
&gt; Calendar.js (source view)
</p>
</div>
<div id="bd">
<div id="yui-main">
<div class="yui-b">
<form name="yui-classopts-form">
<span id="classopts"><input type="checkbox" name="showprivate" id="showprivate" /> Show Private</span>
<span id="classopts"><input type="checkbox" name="showprotected" id="showprotected" /> Show Protected</span>
</form>
<div id="srcout">
<style>
#doc3 #classopts { display:none; }
</style>
<div class="highlight" ><pre><span class="c">/**</span>
<span class="c">* 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="c">* multi-month interface. Calendars are generated entirely via script and can be navigated without any page refreshes.</span>
<span class="c">* @module calendar</span>
<span class="c">* @title Calendar</span>
<span class="c">* @namespace YAHOO.widget</span>
<span class="c">* @requires yahoo,dom,event</span>
<span class="c">*/</span>
<span class="c">/**</span>
<span class="c">* Calendar is the base class for the Calendar widget. In its most basic</span>
<span class="c">* implementation, it has the ability to render a calendar widget on the page</span>
<span class="c">* that can be manipulated to select a single date, move back and forth between</span>
<span class="c">* months and years.</span>
<span class="c">* &lt;p&gt;To construct the placeholder for the calendar widget, the code is as</span>
<span class="c">* follows:</span>
<span class="c">* &lt;xmp&gt;</span>
<span class="c">* &lt;div id=&quot;calContainer&quot;&gt;&lt;/div&gt;</span>
<span class="c">* &lt;/xmp&gt;</span>
<span class="c">* &lt;/p&gt;</span>
<span class="c">* &lt;p&gt;</span>
<span class="c">* &lt;strong&gt;NOTE: As of 2.4.0, the constructor&#39;s ID argument is optional.&lt;/strong&gt;</span>
<span class="c">* The Calendar can be constructed by simply providing a container ID string, </span>
<span class="c">* or a reference to a container DIV HTMLElement (the element needs to exist </span>
<span class="c">* in the document).</span>
<span class="c">* </span>
<span class="c">* E.g.:</span>
<span class="c">* &lt;xmp&gt;</span>
<span class="c">* var c = new YAHOO.widget.Calendar(&quot;calContainer&quot;, configOptions);</span>
<span class="c">* &lt;/xmp&gt;</span>
<span class="c">* or:</span>
<span class="c">* &lt;xmp&gt;</span>
<span class="c">* var containerDiv = YAHOO.util.Dom.get(&quot;calContainer&quot;);</span>
<span class="c">* var c = new YAHOO.widget.Calendar(containerDiv, configOptions);</span>
<span class="c">* &lt;/xmp&gt;</span>
<span class="c">* &lt;/p&gt;</span>
<span class="c">* &lt;p&gt;</span>
<span class="c">* If not provided, the ID will be generated from the container DIV ID by adding an &quot;_t&quot; suffix.</span>
<span class="c">* 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="c">* &lt;/p&gt;</span>
<span class="c">* </span>
<span class="c">* @namespace YAHOO.widget</span>
<span class="c">* @class Calendar</span>
<span class="c">* @constructor</span>
<span class="c">* @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="c">* @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="c">* @param {Object} config optional The configuration object containing the initial configuration values for the Calendar.</span>
<span class="c">*/</span>
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Calendar</span> <span class="o">=</span> <span class="k">function</span><span class="o">(</span><span class="nx">id</span><span class="o">,</span> <span class="nx">containerId</span><span class="o">,</span> <span class="nx">config</span><span class="o">)</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">init</span><span class="o">.</span><span class="nx">apply</span><span class="o">(</span><span class="k">this</span><span class="o">,</span> <span class="nx">arguments</span><span class="o">);</span>
<span class="o">};</span>
<span class="c">/**</span>
<span class="c">* The path to be used for images loaded for the Calendar</span>
<span class="c">* @property YAHOO.widget.Calendar.IMG_ROOT</span>
<span class="c">* @static</span>
<span class="c">* @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="c">* @type String</span>
<span class="c">*/</span>
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Calendar</span><span class="o">.</span><span class="nx">IMG_ROOT</span> <span class="o">=</span> <span class="kc">null</span><span class="o">;</span>
<span class="c">/**</span>
<span class="c">* Type constant used for renderers to represent an individual date (M/D/Y)</span>
<span class="c">* @property YAHOO.widget.Calendar.DATE</span>
<span class="c">* @static</span>
<span class="c">* @final</span>
<span class="c">* @type String</span>
<span class="c">*/</span>
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Calendar</span><span class="o">.</span><span class="nx">DATE</span> <span class="o">=</span> <span class="s2">&quot;D&quot;</span><span class="o">;</span>
<span class="c">/**</span>
<span class="c">* Type constant used for renderers to represent an individual date across any year (M/D)</span>
<span class="c">* @property YAHOO.widget.Calendar.MONTH_DAY</span>
<span class="c">* @static</span>
<span class="c">* @final</span>
<span class="c">* @type String</span>
<span class="c">*/</span>
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Calendar</span><span class="o">.</span><span class="nx">MONTH_DAY</span> <span class="o">=</span> <span class="s2">&quot;MD&quot;</span><span class="o">;</span>
<span class="c">/**</span>
<span class="c">* Type constant used for renderers to represent a weekday</span>
<span class="c">* @property YAHOO.widget.Calendar.WEEKDAY</span>
<span class="c">* @static</span>
<span class="c">* @final</span>
<span class="c">* @type String</span>
<span class="c">*/</span>
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Calendar</span><span class="o">.</span><span class="nx">WEEKDAY</span> <span class="o">=</span> <span class="s2">&quot;WD&quot;</span><span class="o">;</span>
<span class="c">/**</span>
<span class="c">* Type constant used for renderers to represent a range of individual dates (M/D/Y-M/D/Y)</span>
<span class="c">* @property YAHOO.widget.Calendar.RANGE</span>
<span class="c">* @static</span>
<span class="c">* @final</span>
<span class="c">* @type String</span>
<span class="c">*/</span>
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Calendar</span><span class="o">.</span><span class="nx">RANGE</span> <span class="o">=</span> <span class="s2">&quot;R&quot;</span><span class="o">;</span>
<span class="c">/**</span>
<span class="c">* Type constant used for renderers to represent a month across any year</span>
<span class="c">* @property YAHOO.widget.Calendar.MONTH</span>
<span class="c">* @static</span>
<span class="c">* @final</span>
<span class="c">* @type String</span>
<span class="c">*/</span>
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Calendar</span><span class="o">.</span><span class="nx">MONTH</span> <span class="o">=</span> <span class="s2">&quot;M&quot;</span><span class="o">;</span>
<span class="c">/**</span>
<span class="c">* Constant that represents the total number of date cells that are displayed in a given month</span>
<span class="c">* @property YAHOO.widget.Calendar.DISPLAY_DAYS</span>
<span class="c">* @static</span>
<span class="c">* @final</span>
<span class="c">* @type Number</span>
<span class="c">*/</span>
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Calendar</span><span class="o">.</span><span class="nx">DISPLAY_DAYS</span> <span class="o">=</span> <span class="m">42</span><span class="o">;</span>
<span class="c">/**</span>
<span class="c">* Constant used for halting the execution of the remainder of the render stack</span>
<span class="c">* @property YAHOO.widget.Calendar.STOP_RENDER</span>
<span class="c">* @static</span>
<span class="c">* @final</span>
<span class="c">* @type String</span>
<span class="c">*/</span>
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Calendar</span><span class="o">.</span><span class="nx">STOP_RENDER</span> <span class="o">=</span> <span class="s2">&quot;S&quot;</span><span class="o">;</span>
<span class="c">/**</span>
<span class="c">* Constant used to represent short date field string formats (e.g. Tu or Feb)</span>
<span class="c">* @property YAHOO.widget.Calendar.SHORT</span>
<span class="c">* @static</span>
<span class="c">* @final</span>
<span class="c">* @type String</span>
<span class="c">*/</span>
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Calendar</span><span class="o">.</span><span class="nx">SHORT</span> <span class="o">=</span> <span class="s2">&quot;short&quot;</span><span class="o">;</span>
<span class="c">/**</span>
<span class="c">* Constant used to represent long date field string formats (e.g. Monday or February)</span>
<span class="c">* @property YAHOO.widget.Calendar.LONG</span>
<span class="c">* @static</span>
<span class="c">* @final</span>
<span class="c">* @type String</span>
<span class="c">*/</span>
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Calendar</span><span class="o">.</span><span class="nx">LONG</span> <span class="o">=</span> <span class="s2">&quot;long&quot;</span><span class="o">;</span>
<span class="c">/**</span>
<span class="c">* Constant used to represent medium date field string formats (e.g. Mon)</span>
<span class="c">* @property YAHOO.widget.Calendar.MEDIUM</span>
<span class="c">* @static</span>
<span class="c">* @final</span>
<span class="c">* @type String</span>
<span class="c">*/</span>
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Calendar</span><span class="o">.</span><span class="nx">MEDIUM</span> <span class="o">=</span> <span class="s2">&quot;medium&quot;</span><span class="o">;</span>
<span class="c">/**</span>
<span class="c">* Constant used to represent single character date field string formats (e.g. M, T, W)</span>
<span class="c">* @property YAHOO.widget.Calendar.ONE_CHAR</span>
<span class="c">* @static</span>
<span class="c">* @final</span>
<span class="c">* @type String</span>
<span class="c">*/</span>
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Calendar</span><span class="o">.</span><span class="nx">ONE_CHAR</span> <span class="o">=</span> <span class="s2">&quot;1char&quot;</span><span class="o">;</span>
<span class="c">/**</span>
<span class="c">* The set of default Config property keys and values for the Calendar</span>
<span class="c">* @property YAHOO.widget.Calendar._DEFAULT_CONFIG</span>
<span class="c">* @final</span>
<span class="c">* @static</span>
<span class="c">* @private</span>
<span class="c">* @type Object</span>
<span class="c">*/</span>
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Calendar</span><span class="o">.</span><span class="nx">_DEFAULT_CONFIG</span> <span class="o">=</span> <span class="o">{</span>
<span class="c">// Default values for pagedate and selected are not class level constants - they are set during instance creation </span>
<span class="c"></span> <span class="nx">PAGEDATE</span> <span class="o">:</span> <span class="o">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;pagedate&quot;</span><span class="o">,</span> <span class="nx">value</span><span class="o">:</span><span class="kc">null</span><span class="o">},</span>
<span class="nx">SELECTED</span> <span class="o">:</span> <span class="o">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;selected&quot;</span><span class="o">,</span> <span class="nx">value</span><span class="o">:</span><span class="kc">null</span><span class="o">},</span>
<span class="nx">TITLE</span> <span class="o">:</span> <span class="o">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;title&quot;</span><span class="o">,</span> <span class="nx">value</span><span class="o">:</span><span class="s2">&quot;&quot;</span><span class="o">},</span>
<span class="nx">CLOSE</span> <span class="o">:</span> <span class="o">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;close&quot;</span><span class="o">,</span> <span class="nx">value</span><span class="o">:</span><span class="kc">false</span><span class="o">},</span>
<span class="nx">IFRAME</span> <span class="o">:</span> <span class="o">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;iframe&quot;</span><span class="o">,</span> <span class="nx">value</span><span class="o">:(</span><span class="nx">YAHOO</span><span class="o">.</span><span class="nx">env</span><span class="o">.</span><span class="nx">ua</span><span class="o">.</span><span class="nx">ie</span> <span class="o">&amp;&amp;</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">env</span><span class="o">.</span><span class="nx">ua</span><span class="o">.</span><span class="nx">ie</span> <span class="o">&lt;=</span> <span class="m">6</span><span class="o">)</span> <span class="o">?</span> <span class="kc">true</span> <span class="o">:</span> <span class="kc">false</span><span class="o">},</span>
<span class="nx">MINDATE</span> <span class="o">:</span> <span class="o">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;mindate&quot;</span><span class="o">,</span> <span class="nx">value</span><span class="o">:</span><span class="kc">null</span><span class="o">},</span>
<span class="nx">MAXDATE</span> <span class="o">:</span> <span class="o">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;maxdate&quot;</span><span class="o">,</span> <span class="nx">value</span><span class="o">:</span><span class="kc">null</span><span class="o">},</span>
<span class="nx">MULTI_SELECT</span> <span class="o">:</span> <span class="o">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;multi_select&quot;</span><span class="o">,</span> <span class="nx">value</span><span class="o">:</span><span class="kc">false</span><span class="o">},</span>
<span class="nx">START_WEEKDAY</span> <span class="o">:</span> <span class="o">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;start_weekday&quot;</span><span class="o">,</span> <span class="nx">value</span><span class="o">:</span><span class="m">0</span><span class="o">},</span>
<span class="nx">SHOW_WEEKDAYS</span> <span class="o">:</span> <span class="o">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;show_weekdays&quot;</span><span class="o">,</span> <span class="nx">value</span><span class="o">:</span><span class="kc">true</span><span class="o">},</span>
<span class="nx">SHOW_WEEK_HEADER</span> <span class="o">:</span> <span class="o">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;show_week_header&quot;</span><span class="o">,</span> <span class="nx">value</span><span class="o">:</span><span class="kc">false</span><span class="o">},</span>
<span class="nx">SHOW_WEEK_FOOTER</span> <span class="o">:</span> <span class="o">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;show_week_footer&quot;</span><span class="o">,</span> <span class="nx">value</span><span class="o">:</span><span class="kc">false</span><span class="o">},</span>
<span class="nx">HIDE_BLANK_WEEKS</span> <span class="o">:</span> <span class="o">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;hide_blank_weeks&quot;</span><span class="o">,</span> <span class="nx">value</span><span class="o">:</span><span class="kc">false</span><span class="o">},</span>
<span class="nx">NAV_ARROW_LEFT</span><span class="o">:</span> <span class="o">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;nav_arrow_left&quot;</span><span class="o">,</span> <span class="nx">value</span><span class="o">:</span><span class="kc">null</span><span class="o">}</span> <span class="o">,</span>
<span class="nx">NAV_ARROW_RIGHT</span> <span class="o">:</span> <span class="o">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;nav_arrow_right&quot;</span><span class="o">,</span> <span class="nx">value</span><span class="o">:</span><span class="kc">null</span><span class="o">}</span> <span class="o">,</span>
<span class="nx">MONTHS_SHORT</span> <span class="o">:</span> <span class="o">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;months_short&quot;</span><span class="o">,</span> <span class="nx">value</span><span class="o">:[</span><span class="s2">&quot;Jan&quot;</span><span class="o">,</span> <span class="s2">&quot;Feb&quot;</span><span class="o">,</span> <span class="s2">&quot;Mar&quot;</span><span class="o">,</span> <span class="s2">&quot;Apr&quot;</span><span class="o">,</span> <span class="s2">&quot;May&quot;</span><span class="o">,</span> <span class="s2">&quot;Jun&quot;</span><span class="o">,</span> <span class="s2">&quot;Jul&quot;</span><span class="o">,</span> <span class="s2">&quot;Aug&quot;</span><span class="o">,</span> <span class="s2">&quot;Sep&quot;</span><span class="o">,</span> <span class="s2">&quot;Oct&quot;</span><span class="o">,</span> <span class="s2">&quot;Nov&quot;</span><span class="o">,</span> <span class="s2">&quot;Dec&quot;</span><span class="o">]},</span>
<span class="nx">MONTHS_LONG</span><span class="o">:</span> <span class="o">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;months_long&quot;</span><span class="o">,</span> <span class="nx">value</span><span class="o">:[</span><span class="s2">&quot;January&quot;</span><span class="o">,</span> <span class="s2">&quot;February&quot;</span><span class="o">,</span> <span class="s2">&quot;March&quot;</span><span class="o">,</span> <span class="s2">&quot;April&quot;</span><span class="o">,</span> <span class="s2">&quot;May&quot;</span><span class="o">,</span> <span class="s2">&quot;June&quot;</span><span class="o">,</span> <span class="s2">&quot;July&quot;</span><span class="o">,</span> <span class="s2">&quot;August&quot;</span><span class="o">,</span> <span class="s2">&quot;September&quot;</span><span class="o">,</span> <span class="s2">&quot;October&quot;</span><span class="o">,</span> <span class="s2">&quot;November&quot;</span><span class="o">,</span> <span class="s2">&quot;December&quot;</span><span class="o">]},</span>
<span class="nx">WEEKDAYS_1CHAR</span><span class="o">:</span> <span class="o">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;weekdays_1char&quot;</span><span class="o">,</span> <span class="nx">value</span><span class="o">:[</span><span class="s2">&quot;S&quot;</span><span class="o">,</span> <span class="s2">&quot;M&quot;</span><span class="o">,</span> <span class="s2">&quot;T&quot;</span><span class="o">,</span> <span class="s2">&quot;W&quot;</span><span class="o">,</span> <span class="s2">&quot;T&quot;</span><span class="o">,</span> <span class="s2">&quot;F&quot;</span><span class="o">,</span> <span class="s2">&quot;S&quot;</span><span class="o">]},</span>
<span class="nx">WEEKDAYS_SHORT</span><span class="o">:</span> <span class="o">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;weekdays_short&quot;</span><span class="o">,</span> <span class="nx">value</span><span class="o">:[</span><span class="s2">&quot;Su&quot;</span><span class="o">,</span> <span class="s2">&quot;Mo&quot;</span><span class="o">,</span> <span class="s2">&quot;Tu&quot;</span><span class="o">,</span> <span class="s2">&quot;We&quot;</span><span class="o">,</span> <span class="s2">&quot;Th&quot;</span><span class="o">,</span> <span class="s2">&quot;Fr&quot;</span><span class="o">,</span> <span class="s2">&quot;Sa&quot;</span><span class="o">]},</span>
<span class="nx">WEEKDAYS_MEDIUM</span><span class="o">:</span> <span class="o">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;weekdays_medium&quot;</span><span class="o">,</span> <span class="nx">value</span><span class="o">:[</span><span class="s2">&quot;Sun&quot;</span><span class="o">,</span> <span class="s2">&quot;Mon&quot;</span><span class="o">,</span> <span class="s2">&quot;Tue&quot;</span><span class="o">,</span> <span class="s2">&quot;Wed&quot;</span><span class="o">,</span> <span class="s2">&quot;Thu&quot;</span><span class="o">,</span> <span class="s2">&quot;Fri&quot;</span><span class="o">,</span> <span class="s2">&quot;Sat&quot;</span><span class="o">]},</span>
<span class="nx">WEEKDAYS_LONG</span><span class="o">:</span> <span class="o">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;weekdays_long&quot;</span><span class="o">,</span> <span class="nx">value</span><span class="o">:[</span><span class="s2">&quot;Sunday&quot;</span><span class="o">,</span> <span class="s2">&quot;Monday&quot;</span><span class="o">,</span> <span class="s2">&quot;Tuesday&quot;</span><span class="o">,</span> <span class="s2">&quot;Wednesday&quot;</span><span class="o">,</span> <span class="s2">&quot;Thursday&quot;</span><span class="o">,</span> <span class="s2">&quot;Friday&quot;</span><span class="o">,</span> <span class="s2">&quot;Saturday&quot;</span><span class="o">]},</span>
<span class="nx">LOCALE_MONTHS</span><span class="o">:{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;locale_months&quot;</span><span class="o">,</span> <span class="nx">value</span><span class="o">:</span><span class="s2">&quot;long&quot;</span><span class="o">},</span>
<span class="nx">LOCALE_WEEKDAYS</span><span class="o">:{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;locale_weekdays&quot;</span><span class="o">,</span> <span class="nx">value</span><span class="o">:</span><span class="s2">&quot;short&quot;</span><span class="o">},</span>
<span class="nx">DATE_DELIMITER</span><span class="o">:{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;date_delimiter&quot;</span><span class="o">,</span> <span class="nx">value</span><span class="o">:</span><span class="s2">&quot;,&quot;</span><span class="o">},</span>
<span class="nx">DATE_FIELD_DELIMITER</span><span class="o">:{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;date_field_delimiter&quot;</span><span class="o">,</span> <span class="nx">value</span><span class="o">:</span><span class="s2">&quot;/&quot;</span><span class="o">},</span>
<span class="nx">DATE_RANGE_DELIMITER</span><span class="o">:{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;date_range_delimiter&quot;</span><span class="o">,</span> <span class="nx">value</span><span class="o">:</span><span class="s2">&quot;-&quot;</span><span class="o">},</span>
<span class="nx">MY_MONTH_POSITION</span><span class="o">:{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;my_month_position&quot;</span><span class="o">,</span> <span class="nx">value</span><span class="o">:</span><span class="m">1</span><span class="o">},</span>
<span class="nx">MY_YEAR_POSITION</span><span class="o">:{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;my_year_position&quot;</span><span class="o">,</span> <span class="nx">value</span><span class="o">:</span><span class="m">2</span><span class="o">},</span>
<span class="nx">MD_MONTH_POSITION</span><span class="o">:{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;md_month_position&quot;</span><span class="o">,</span> <span class="nx">value</span><span class="o">:</span><span class="m">1</span><span class="o">},</span>
<span class="nx">MD_DAY_POSITION</span><span class="o">:{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;md_day_position&quot;</span><span class="o">,</span> <span class="nx">value</span><span class="o">:</span><span class="m">2</span><span class="o">},</span>
<span class="nx">MDY_MONTH_POSITION</span><span class="o">:{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;mdy_month_position&quot;</span><span class="o">,</span> <span class="nx">value</span><span class="o">:</span><span class="m">1</span><span class="o">},</span>
<span class="nx">MDY_DAY_POSITION</span><span class="o">:{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;mdy_day_position&quot;</span><span class="o">,</span> <span class="nx">value</span><span class="o">:</span><span class="m">2</span><span class="o">},</span>
<span class="nx">MDY_YEAR_POSITION</span><span class="o">:{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;mdy_year_position&quot;</span><span class="o">,</span> <span class="nx">value</span><span class="o">:</span><span class="m">3</span><span class="o">},</span>
<span class="nx">MY_LABEL_MONTH_POSITION</span><span class="o">:{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;my_label_month_position&quot;</span><span class="o">,</span> <span class="nx">value</span><span class="o">:</span><span class="m">1</span><span class="o">},</span>
<span class="nx">MY_LABEL_YEAR_POSITION</span><span class="o">:{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;my_label_year_position&quot;</span><span class="o">,</span> <span class="nx">value</span><span class="o">:</span><span class="m">2</span><span class="o">},</span>
<span class="nx">MY_LABEL_MONTH_SUFFIX</span><span class="o">:{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;my_label_month_suffix&quot;</span><span class="o">,</span> <span class="nx">value</span><span class="o">:</span><span class="s2">&quot; &quot;</span><span class="o">},</span>
<span class="nx">MY_LABEL_YEAR_SUFFIX</span><span class="o">:{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;my_label_year_suffix&quot;</span><span class="o">,</span> <span class="nx">value</span><span class="o">:</span><span class="s2">&quot;&quot;</span><span class="o">},</span>
<span class="nx">NAV</span><span class="o">:</span> <span class="o">{</span><span class="nx">key</span><span class="o">:</span><span class="s2">&quot;navigator&quot;</span><span class="o">,</span> <span class="nx">value</span><span class="o">:</span> <span class="kc">null</span><span class="o">}</span>
<span class="o">};</span>
<span class="c">/**</span>
<span class="c">* The set of Custom Event types supported by the Calendar</span>
<span class="c">* @property YAHOO.widget.Calendar._EVENT_TYPES</span>
<span class="c">* @final</span>
<span class="c">* @static</span>
<span class="c">* @private</span>
<span class="c">* @type Object</span>
<span class="c">*/</span>
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Calendar</span><span class="o">.</span><span class="nx">_EVENT_TYPES</span> <span class="o">=</span> <span class="o">{</span>
<span class="nx">BEFORE_SELECT</span> <span class="o">:</span> <span class="s2">&quot;beforeSelect&quot;</span><span class="o">,</span>
<span class="nx">SELECT</span> <span class="o">:</span> <span class="s2">&quot;select&quot;</span><span class="o">,</span>
<span class="nx">BEFORE_DESELECT</span> <span class="o">:</span> <span class="s2">&quot;beforeDeselect&quot;</span><span class="o">,</span>
<span class="nx">DESELECT</span> <span class="o">:</span> <span class="s2">&quot;deselect&quot;</span><span class="o">,</span>
<span class="nx">CHANGE_PAGE</span> <span class="o">:</span> <span class="s2">&quot;changePage&quot;</span><span class="o">,</span>
<span class="nx">BEFORE_RENDER</span> <span class="o">:</span> <span class="s2">&quot;beforeRender&quot;</span><span class="o">,</span>
<span class="nx">RENDER</span> <span class="o">:</span> <span class="s2">&quot;render&quot;</span><span class="o">,</span>
<span class="nx">RESET</span> <span class="o">:</span> <span class="s2">&quot;reset&quot;</span><span class="o">,</span>
<span class="nx">CLEAR</span> <span class="o">:</span> <span class="s2">&quot;clear&quot;</span><span class="o">,</span>
<span class="nx">BEFORE_HIDE</span> <span class="o">:</span> <span class="s2">&quot;beforeHide&quot;</span><span class="o">,</span>
<span class="nx">HIDE</span> <span class="o">:</span> <span class="s2">&quot;hide&quot;</span><span class="o">,</span>
<span class="nx">BEFORE_SHOW</span> <span class="o">:</span> <span class="s2">&quot;beforeShow&quot;</span><span class="o">,</span>
<span class="nx">SHOW</span> <span class="o">:</span> <span class="s2">&quot;show&quot;</span><span class="o">,</span>
<span class="nx">BEFORE_HIDE_NAV</span> <span class="o">:</span> <span class="s2">&quot;beforeHideNav&quot;</span><span class="o">,</span>
<span class="nx">HIDE_NAV</span> <span class="o">:</span> <span class="s2">&quot;hideNav&quot;</span><span class="o">,</span>
<span class="nx">BEFORE_SHOW_NAV</span> <span class="o">:</span> <span class="s2">&quot;beforeShowNav&quot;</span><span class="o">,</span>
<span class="nx">SHOW_NAV</span> <span class="o">:</span> <span class="s2">&quot;showNav&quot;</span><span class="o">,</span>
<span class="nx">BEFORE_RENDER_NAV</span> <span class="o">:</span> <span class="s2">&quot;beforeRenderNav&quot;</span><span class="o">,</span>
<span class="nx">RENDER_NAV</span> <span class="o">:</span> <span class="s2">&quot;renderNav&quot;</span>
<span class="o">};</span>
<span class="c">/**</span>
<span class="c">* The set of default style constants for the Calendar</span>
<span class="c">* @property YAHOO.widget.Calendar._STYLES</span>
<span class="c">* @final</span>
<span class="c">* @static</span>
<span class="c">* @private</span>
<span class="c">* @type Object</span>
<span class="c">*/</span>
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Calendar</span><span class="o">.</span><span class="nx">_STYLES</span> <span class="o">=</span> <span class="o">{</span>
<span class="nx">CSS_ROW_HEADER</span><span class="o">:</span> <span class="s2">&quot;calrowhead&quot;</span><span class="o">,</span>
<span class="nx">CSS_ROW_FOOTER</span><span class="o">:</span> <span class="s2">&quot;calrowfoot&quot;</span><span class="o">,</span>
<span class="nx">CSS_CELL</span> <span class="o">:</span> <span class="s2">&quot;calcell&quot;</span><span class="o">,</span>
<span class="nx">CSS_CELL_SELECTOR</span> <span class="o">:</span> <span class="s2">&quot;selector&quot;</span><span class="o">,</span>
<span class="nx">CSS_CELL_SELECTED</span> <span class="o">:</span> <span class="s2">&quot;selected&quot;</span><span class="o">,</span>
<span class="nx">CSS_CELL_SELECTABLE</span> <span class="o">:</span> <span class="s2">&quot;selectable&quot;</span><span class="o">,</span>
<span class="nx">CSS_CELL_RESTRICTED</span> <span class="o">:</span> <span class="s2">&quot;restricted&quot;</span><span class="o">,</span>
<span class="nx">CSS_CELL_TODAY</span> <span class="o">:</span> <span class="s2">&quot;today&quot;</span><span class="o">,</span>
<span class="nx">CSS_CELL_OOM</span> <span class="o">:</span> <span class="s2">&quot;oom&quot;</span><span class="o">,</span>
<span class="nx">CSS_CELL_OOB</span> <span class="o">:</span> <span class="s2">&quot;previous&quot;</span><span class="o">,</span>
<span class="nx">CSS_HEADER</span> <span class="o">:</span> <span class="s2">&quot;calheader&quot;</span><span class="o">,</span>
<span class="nx">CSS_HEADER_TEXT</span> <span class="o">:</span> <span class="s2">&quot;calhead&quot;</span><span class="o">,</span>
<span class="nx">CSS_BODY</span> <span class="o">:</span> <span class="s2">&quot;calbody&quot;</span><span class="o">,</span>
<span class="nx">CSS_WEEKDAY_CELL</span> <span class="o">:</span> <span class="s2">&quot;calweekdaycell&quot;</span><span class="o">,</span>
<span class="nx">CSS_WEEKDAY_ROW</span> <span class="o">:</span> <span class="s2">&quot;calweekdayrow&quot;</span><span class="o">,</span>
<span class="nx">CSS_FOOTER</span> <span class="o">:</span> <span class="s2">&quot;calfoot&quot;</span><span class="o">,</span>
<span class="nx">CSS_CALENDAR</span> <span class="o">:</span> <span class="s2">&quot;yui-calendar&quot;</span><span class="o">,</span>
<span class="nx">CSS_SINGLE</span> <span class="o">:</span> <span class="s2">&quot;single&quot;</span><span class="o">,</span>
<span class="nx">CSS_CONTAINER</span> <span class="o">:</span> <span class="s2">&quot;yui-calcontainer&quot;</span><span class="o">,</span>
<span class="nx">CSS_NAV_LEFT</span> <span class="o">:</span> <span class="s2">&quot;calnavleft&quot;</span><span class="o">,</span>
<span class="nx">CSS_NAV_RIGHT</span> <span class="o">:</span> <span class="s2">&quot;calnavright&quot;</span><span class="o">,</span>
<span class="nx">CSS_NAV</span> <span class="o">:</span> <span class="s2">&quot;calnav&quot;</span><span class="o">,</span>
<span class="nx">CSS_CLOSE</span> <span class="o">:</span> <span class="s2">&quot;calclose&quot;</span><span class="o">,</span>
<span class="nx">CSS_CELL_TOP</span> <span class="o">:</span> <span class="s2">&quot;calcelltop&quot;</span><span class="o">,</span>
<span class="nx">CSS_CELL_LEFT</span> <span class="o">:</span> <span class="s2">&quot;calcellleft&quot;</span><span class="o">,</span>
<span class="nx">CSS_CELL_RIGHT</span> <span class="o">:</span> <span class="s2">&quot;calcellright&quot;</span><span class="o">,</span>
<span class="nx">CSS_CELL_BOTTOM</span> <span class="o">:</span> <span class="s2">&quot;calcellbottom&quot;</span><span class="o">,</span>
<span class="nx">CSS_CELL_HOVER</span> <span class="o">:</span> <span class="s2">&quot;calcellhover&quot;</span><span class="o">,</span>
<span class="nx">CSS_CELL_HIGHLIGHT1</span> <span class="o">:</span> <span class="s2">&quot;highlight1&quot;</span><span class="o">,</span>
<span class="nx">CSS_CELL_HIGHLIGHT2</span> <span class="o">:</span> <span class="s2">&quot;highlight2&quot;</span><span class="o">,</span>
<span class="nx">CSS_CELL_HIGHLIGHT3</span> <span class="o">:</span> <span class="s2">&quot;highlight3&quot;</span><span class="o">,</span>
<span class="nx">CSS_CELL_HIGHLIGHT4</span> <span class="o">:</span> <span class="s2">&quot;highlight4&quot;</span>
<span class="o">};</span>
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Calendar</span><span class="o">.</span><span class="nx">prototype</span> <span class="o">=</span> <span class="o">{</span>
<span class="c">/**</span>
<span class="c"> * The configuration object used to set up the calendars various locale and style options.</span>
<span class="c"> * @property Config</span>
<span class="c"> * @private</span>
<span class="c"> * @deprecated Configuration properties should be set by calling Calendar.cfg.setProperty.</span>
<span class="c"> * @type Object</span>
<span class="c"> */</span>
<span class="nx">Config</span> <span class="o">:</span> <span class="kc">null</span><span class="o">,</span>
<span class="c">/**</span>
<span class="c"> * The parent CalendarGroup, only to be set explicitly by the parent group</span>
<span class="c"> * @property parent</span>
<span class="c"> * @type CalendarGroup</span>
<span class="c"> */</span>
<span class="nx">parent</span> <span class="o">:</span> <span class="kc">null</span><span class="o">,</span>
<span class="c">/**</span>
<span class="c"> * The index of this item in the parent group</span>
<span class="c"> * @property index</span>
<span class="c"> * @type Number</span>
<span class="c"> */</span>
<span class="nx">index</span> <span class="o">:</span> <span class="o">-</span><span class="m">1</span><span class="o">,</span>
<span class="c">/**</span>
<span class="c"> * The collection of calendar table cells</span>
<span class="c"> * @property cells</span>
<span class="c"> * @type HTMLTableCellElement[]</span>
<span class="c"> */</span>
<span class="nx">cells</span> <span class="o">:</span> <span class="kc">null</span><span class="o">,</span>
<span class="c">/**</span>
<span class="c"> * 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="c"> * @property cellDates</span>
<span class="c"> * @type Array[](Number[])</span>
<span class="c"> */</span>
<span class="nx">cellDates</span> <span class="o">:</span> <span class="kc">null</span><span class="o">,</span>
<span class="c">/**</span>
<span class="c"> * The id that uniquely identifies this Calendar.</span>
<span class="c"> * @property id</span>
<span class="c"> * @type String</span>
<span class="c"> */</span>
<span class="nx">id</span> <span class="o">:</span> <span class="kc">null</span><span class="o">,</span>
<span class="c">/**</span>
<span class="c"> * The unique id associated with the Calendar&#39;s container</span>
<span class="c"> * @property containerId</span>
<span class="c"> * @type String</span>
<span class="c"> */</span>
<span class="nx">containerId</span><span class="o">:</span> <span class="kc">null</span><span class="o">,</span>
<span class="c">/**</span>
<span class="c"> * 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="c"> * @property oDomContainer</span>
<span class="c"> * @type HTMLElement</span>
<span class="c"> */</span>
<span class="nx">oDomContainer</span> <span class="o">:</span> <span class="kc">null</span><span class="o">,</span>
<span class="c">/**</span>
<span class="c"> * A Date object representing today&#39;s date.</span>
<span class="c"> * @property today</span>
<span class="c"> * @type Date</span>
<span class="c"> */</span>
<span class="nx">today</span> <span class="o">:</span> <span class="kc">null</span><span class="o">,</span>
<span class="c">/**</span>
<span class="c"> * The list of render functions, along with required parameters, used to render cells. </span>
<span class="c"> * @property renderStack</span>
<span class="c"> * @type Array[]</span>
<span class="c"> */</span>
<span class="nx">renderStack</span> <span class="o">:</span> <span class="kc">null</span><span class="o">,</span>
<span class="c">/**</span>
<span class="c"> * A copy of the initial render functions created before rendering.</span>
<span class="c"> * @property _renderStack</span>
<span class="c"> * @private</span>
<span class="c"> * @type Array</span>
<span class="c"> */</span>
<span class="nx">_renderStack</span> <span class="o">:</span> <span class="kc">null</span><span class="o">,</span>
<span class="c">/**</span>
<span class="c"> * A reference to the CalendarNavigator instance created for this Calendar.</span>
<span class="c"> * Will be null if the &quot;navigator&quot; configuration property has not been set</span>
<span class="c"> * @property oNavigator</span>
<span class="c"> * @type CalendarNavigator</span>
<span class="c"> */</span>
<span class="nx">oNavigator</span> <span class="o">:</span> <span class="kc">null</span><span class="o">,</span>
<span class="c">/**</span>
<span class="c"> * The private list of initially selected dates.</span>
<span class="c"> * @property _selectedDates</span>
<span class="c"> * @private</span>
<span class="c"> * @type Array</span>
<span class="c"> */</span>
<span class="nx">_selectedDates</span> <span class="o">:</span> <span class="kc">null</span><span class="o">,</span>
<span class="c">/**</span>
<span class="c"> * A map of DOM event handlers to attach to cells associated with specific CSS class names</span>
<span class="c"> * @property domEventMap</span>
<span class="c"> * @type Object</span>
<span class="c"> */</span>
<span class="nx">domEventMap</span> <span class="o">:</span> <span class="kc">null</span><span class="o">,</span>
<span class="c">/**</span>
<span class="c"> * Protected helper used to parse Calendar constructor/init arguments.</span>
<span class="c"> *</span>
<span class="c"> * As of 2.4.0, Calendar supports a simpler constructor </span>
<span class="c"> * signature. This method reconciles arguments</span>
<span class="c"> * received in the pre 2.4.0 and 2.4.0 formats.</span>
<span class="c"> * </span>
<span class="c"> * @protected</span>
<span class="c"> * @method _parseArgs</span>
<span class="c"> * @param {Array} Function &quot;arguments&quot; array</span>
<span class="c"> * @return {Object} Object with id, container, config properties containing</span>
<span class="c"> * the reconciled argument values.</span>
<span class="c"> **/</span>
<span class="nx">_parseArgs</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">args</span><span class="o">)</span> <span class="o">{</span>
<span class="c">/*</span>
<span class="c"> 2.4.0 Constructors signatures</span>
<span class="c"></span>
<span class="c"> new Calendar(String)</span>
<span class="c"> new Calendar(HTMLElement)</span>
<span class="c"> new Calendar(String, ConfigObject)</span>
<span class="c"> new Calendar(HTMLElement, ConfigObject)</span>
<span class="c"></span>
<span class="c"> Pre 2.4.0 Constructor signatures</span>
<span class="c"></span>
<span class="c"> new Calendar(String, String)</span>
<span class="c"> new Calendar(String, HTMLElement)</span>
<span class="c"> new Calendar(String, String, ConfigObject)</span>
<span class="c"> new Calendar(String, HTMLElement, ConfigObject)</span>
<span class="c"> */</span>
<span class="k">var</span> <span class="nx">nArgs</span> <span class="o">=</span> <span class="o">{</span><span class="nx">id</span><span class="o">:</span><span class="kc">null</span><span class="o">,</span> <span class="nx">container</span><span class="o">:</span><span class="kc">null</span><span class="o">,</span> <span class="nx">config</span><span class="o">:</span><span class="kc">null</span><span class="o">};</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">args</span> <span class="o">&amp;&amp;</span> <span class="nx">args</span><span class="o">.</span><span class="nx">length</span> <span class="o">&amp;&amp;</span> <span class="nx">args</span><span class="o">.</span><span class="nx">length</span> <span class="o">&gt;</span> <span class="m">0</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">switch</span> <span class="o">(</span><span class="nx">args</span><span class="o">.</span><span class="nx">length</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">case</span> <span class="m">1</span><span class="o">:</span>
<span class="nx">nArgs</span><span class="o">.</span><span class="nx">id</span> <span class="o">=</span> <span class="kc">null</span><span class="o">;</span>
<span class="nx">nArgs</span><span class="o">.</span><span class="nx">container</span> <span class="o">=</span> <span class="nx">args</span><span class="o">[</span><span class="m">0</span><span class="o">];</span>
<span class="nx">nArgs</span><span class="o">.</span><span class="nx">config</span> <span class="o">=</span> <span class="kc">null</span><span class="o">;</span>
<span class="k">break</span><span class="o">;</span>
<span class="nx">case</span> <span class="m">2</span><span class="o">:</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">YAHOO</span><span class="o">.</span><span class="nx">lang</span><span class="o">.</span><span class="nx">isObject</span><span class="o">(</span><span class="nx">args</span><span class="o">[</span><span class="m">1</span><span class="o">])</span> <span class="o">&amp;&amp;</span> <span class="o">!</span><span class="nx">args</span><span class="o">[</span><span class="m">1</span><span class="o">].</span><span class="nx">tagName</span> <span class="o">&amp;&amp;</span> <span class="o">!(</span><span class="nx">args</span><span class="o">[</span><span class="m">1</span><span class="o">]</span> <span class="k">instanceof</span> <span class="nb">String</span><span class="o">))</span> <span class="o">{</span>
<span class="nx">nArgs</span><span class="o">.</span><span class="nx">id</span> <span class="o">=</span> <span class="kc">null</span><span class="o">;</span>
<span class="nx">nArgs</span><span class="o">.</span><span class="nx">container</span> <span class="o">=</span> <span class="nx">args</span><span class="o">[</span><span class="m">0</span><span class="o">];</span>
<span class="nx">nArgs</span><span class="o">.</span><span class="nx">config</span> <span class="o">=</span> <span class="nx">args</span><span class="o">[</span><span class="m">1</span><span class="o">];</span>
<span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
<span class="nx">nArgs</span><span class="o">.</span><span class="nx">id</span> <span class="o">=</span> <span class="nx">args</span><span class="o">[</span><span class="m">0</span><span class="o">];</span>
<span class="nx">nArgs</span><span class="o">.</span><span class="nx">container</span> <span class="o">=</span> <span class="nx">args</span><span class="o">[</span><span class="m">1</span><span class="o">];</span>
<span class="nx">nArgs</span><span class="o">.</span><span class="nx">config</span> <span class="o">=</span> <span class="kc">null</span><span class="o">;</span>
<span class="o">}</span>
<span class="k">break</span><span class="o">;</span>
<span class="nx">default</span><span class="o">:</span> <span class="c">// 3+</span>
<span class="c"></span> <span class="nx">nArgs</span><span class="o">.</span><span class="nx">id</span> <span class="o">=</span> <span class="nx">args</span><span class="o">[</span><span class="m">0</span><span class="o">];</span>
<span class="nx">nArgs</span><span class="o">.</span><span class="nx">container</span> <span class="o">=</span> <span class="nx">args</span><span class="o">[</span><span class="m">1</span><span class="o">];</span>
<span class="nx">nArgs</span><span class="o">.</span><span class="nx">config</span> <span class="o">=</span> <span class="nx">args</span><span class="o">[</span><span class="m">2</span><span class="o">];</span>
<span class="k">break</span><span class="o">;</span>
<span class="o">}</span>
<span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">logger</span><span class="o">.</span><span class="nx">log</span><span class="o">(</span><span class="s2">&quot;Invalid constructor/init arguments&quot;</span><span class="o">,</span> <span class="s2">&quot;error&quot;</span><span class="o">);</span>
<span class="o">}</span>
<span class="k">return</span> <span class="nx">nArgs</span><span class="o">;</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Initializes the Calendar widget.</span>
<span class="c"> * @method init</span>
<span class="c"> *</span>
<span class="c"> * @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="c"> * @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="c"> * @param {Object} config optional The configuration object containing the initial configuration values for the Calendar.</span>
<span class="c"> */</span>
<span class="nx">init</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">id</span><span class="o">,</span> <span class="nx">container</span><span class="o">,</span> <span class="nx">config</span><span class="o">)</span> <span class="o">{</span>
<span class="c">// Normalize 2.4.0, pre 2.4.0 args</span>
<span class="c"></span> <span class="k">var</span> <span class="nx">nArgs</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">_parseArgs</span><span class="o">(</span><span class="nx">arguments</span><span class="o">);</span>
<span class="nx">id</span> <span class="o">=</span> <span class="nx">nArgs</span><span class="o">.</span><span class="nx">id</span><span class="o">;</span>
<span class="nx">container</span> <span class="o">=</span> <span class="nx">nArgs</span><span class="o">.</span><span class="nx">container</span><span class="o">;</span>
<span class="nx">config</span> <span class="o">=</span> <span class="nx">nArgs</span><span class="o">.</span><span class="nx">config</span><span class="o">;</span>
<span class="k">this</span><span class="o">.</span><span class="nx">oDomContainer</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Dom</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">container</span><span class="o">);</span>
<span class="k">if</span> <span class="o">(!</span><span class="k">this</span><span class="o">.</span><span class="nx">oDomContainer</span><span class="o">)</span> <span class="o">{</span> <span class="k">this</span><span class="o">.</span><span class="nx">logger</span><span class="o">.</span><span class="nx">log</span><span class="o">(</span><span class="s2">&quot;Container not found in document.&quot;</span><span class="o">,</span> <span class="s2">&quot;error&quot;</span><span class="o">);</span> <span class="o">}</span>
<span class="k">if</span> <span class="o">(!</span><span class="k">this</span><span class="o">.</span><span class="nx">oDomContainer</span><span class="o">.</span><span class="nx">id</span><span class="o">)</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">oDomContainer</span><span class="o">.</span><span class="nx">id</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Dom</span><span class="o">.</span><span class="nx">generateId</span><span class="o">();</span>
<span class="o">}</span>
<span class="k">if</span> <span class="o">(!</span><span class="nx">id</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">id</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">oDomContainer</span><span class="o">.</span><span class="nx">id</span> <span class="o">+</span> <span class="s2">&quot;_t&quot;</span><span class="o">;</span>
<span class="o">}</span>
<span class="k">this</span><span class="o">.</span><span class="nx">id</span> <span class="o">=</span> <span class="nx">id</span><span class="o">;</span>
<span class="k">this</span><span class="o">.</span><span class="nx">containerId</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">oDomContainer</span><span class="o">.</span><span class="nx">id</span><span class="o">;</span>
<span class="k">this</span><span class="o">.</span><span class="nx">logger</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">LogWriter</span><span class="o">(</span><span class="s2">&quot;Calendar &quot;</span> <span class="o">+</span> <span class="k">this</span><span class="o">.</span><span class="nx">id</span><span class="o">);</span>
<span class="k">this</span><span class="o">.</span><span class="nx">initEvents</span><span class="o">();</span>
<span class="k">this</span><span class="o">.</span><span class="nx">today</span> <span class="o">=</span> <span class="k">new</span> <span class="nb">Date</span><span class="o">();</span>
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">DateMath</span><span class="o">.</span><span class="nx">clearTime</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">today</span><span class="o">);</span>
<span class="c">/**</span>
<span class="c"> * The Config object used to hold the configuration variables for the Calendar</span>
<span class="c"> * @property cfg</span>
<span class="c"> * @type YAHOO.util.Config</span>
<span class="c"> */</span>
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Config</span><span class="o">(</span><span class="k">this</span><span class="o">);</span>
<span class="c">/**</span>
<span class="c"> * The local object which contains the Calendar&#39;s options</span>
<span class="c"> * @property Options</span>
<span class="c"> * @type Object</span>
<span class="c"> */</span>
<span class="k">this</span><span class="o">.</span><span class="nx">Options</span> <span class="o">=</span> <span class="o">{};</span>
<span class="c">/**</span>
<span class="c"> * The local object which contains the Calendar&#39;s locale settings</span>
<span class="c"> * @property Locale</span>
<span class="c"> * @type Object</span>
<span class="c"> */</span>
<span class="k">this</span><span class="o">.</span><span class="nx">Locale</span> <span class="o">=</span> <span class="o">{};</span>
<span class="k">this</span><span class="o">.</span><span class="nx">initStyles</span><span class="o">();</span>
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Dom</span><span class="o">.</span><span class="nx">addClass</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">oDomContainer</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">Style</span><span class="o">.</span><span class="nx">CSS_CONTAINER</span><span class="o">);</span>
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Dom</span><span class="o">.</span><span class="nx">addClass</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">oDomContainer</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">Style</span><span class="o">.</span><span class="nx">CSS_SINGLE</span><span class="o">);</span>
<span class="k">this</span><span class="o">.</span><span class="nx">cellDates</span> <span class="o">=</span> <span class="o">[];</span>
<span class="k">this</span><span class="o">.</span><span class="nx">cells</span> <span class="o">=</span> <span class="o">[];</span>
<span class="k">this</span><span class="o">.</span><span class="nx">renderStack</span> <span class="o">=</span> <span class="o">[];</span>
<span class="k">this</span><span class="o">.</span><span class="nx">_renderStack</span> <span class="o">=</span> <span class="o">[];</span>
<span class="k">this</span><span class="o">.</span><span class="nx">setupConfig</span><span class="o">();</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">config</span><span class="o">)</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">applyConfig</span><span class="o">(</span><span class="nx">config</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
<span class="o">}</span>
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">fireQueue</span><span class="o">();</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Default Config listener for the iframe property. If the iframe config property is set to true, </span>
<span class="c"> * renders the built-in IFRAME shim if the container is relatively or absolutely positioned.</span>
<span class="c"> * </span>
<span class="c"> * @method configIframe</span>
<span class="c"> */</span>
<span class="nx">configIframe</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">type</span><span class="o">,</span> <span class="nx">args</span><span class="o">,</span> <span class="nx">obj</span><span class="o">)</span> <span class="o">{</span>
<span class="k">var</span> <span class="nx">useIframe</span> <span class="o">=</span> <span class="nx">args</span><span class="o">[</span><span class="m">0</span><span class="o">];</span>
<span class="k">if</span> <span class="o">(!</span><span class="k">this</span><span class="o">.</span><span class="nx">parent</span><span class="o">)</span> <span class="o">{</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Dom</span><span class="o">.</span><span class="nx">inDocument</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">oDomContainer</span><span class="o">))</span> <span class="o">{</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">useIframe</span><span class="o">)</span> <span class="o">{</span>
<span class="k">var</span> <span class="nx">pos</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Dom</span><span class="o">.</span><span class="nx">getStyle</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">oDomContainer</span><span class="o">,</span> <span class="s2">&quot;position&quot;</span><span class="o">);</span>
<span class="k">if</span> <span class="o">(</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="o">)</span> <span class="o">{</span>
<span class="k">if</span> <span class="o">(!</span><span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Dom</span><span class="o">.</span><span class="nx">inDocument</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">iframe</span><span class="o">))</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">iframe</span> <span class="o">=</span> <span class="nb">document</span><span class="o">.</span><span class="nx">createElement</span><span class="o">(</span><span class="s2">&quot;iframe&quot;</span><span class="o">);</span>
<span class="k">this</span><span class="o">.</span><span class="nx">iframe</span><span class="o">.</span><span class="nx">src</span> <span class="o">=</span> <span class="s2">&quot;javascript:false;&quot;</span><span class="o">;</span>
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Dom</span><span class="o">.</span><span class="nx">setStyle</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">iframe</span><span class="o">,</span> <span class="s2">&quot;opacity&quot;</span><span class="o">,</span> <span class="s2">&quot;0&quot;</span><span class="o">);</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">YAHOO</span><span class="o">.</span><span class="nx">env</span><span class="o">.</span><span class="nx">ua</span><span class="o">.</span><span class="nx">ie</span> <span class="o">&amp;&amp;</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">env</span><span class="o">.</span><span class="nx">ua</span><span class="o">.</span><span class="nx">ie</span> <span class="o">&lt;=</span> <span class="m">6</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Dom</span><span class="o">.</span><span class="nx">addClass</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">iframe</span><span class="o">,</span> <span class="s2">&quot;fixedsize&quot;</span><span class="o">);</span>
<span class="o">}</span>
<span class="k">this</span><span class="o">.</span><span class="nx">oDomContainer</span><span class="o">.</span><span class="nx">insertBefore</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">iframe</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">oDomContainer</span><span class="o">.</span><span class="nx">firstChild</span><span class="o">);</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">iframe</span><span class="o">)</span> <span class="o">{</span>
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">iframe</span><span class="o">.</span><span class="nx">parentNode</span><span class="o">)</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">iframe</span><span class="o">.</span><span class="nx">parentNode</span><span class="o">.</span><span class="nx">removeChild</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">iframe</span><span class="o">);</span>
<span class="o">}</span>
<span class="k">this</span><span class="o">.</span><span class="nx">iframe</span> <span class="o">=</span> <span class="kc">null</span><span class="o">;</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Default handler for the &quot;title&quot; property</span>
<span class="c"> * @method configTitle</span>
<span class="c"> */</span>
<span class="nx">configTitle</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">type</span><span class="o">,</span> <span class="nx">args</span><span class="o">,</span> <span class="nx">obj</span><span class="o">)</span> <span class="o">{</span>
<span class="k">var</span> <span class="nx">title</span> <span class="o">=</span> <span class="nx">args</span><span class="o">[</span><span class="m">0</span><span class="o">];</span>
<span class="c">// &quot;&quot; disables title bar</span>
<span class="c"></span> <span class="k">if</span> <span class="o">(</span><span class="nx">title</span><span class="o">)</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">createTitleBar</span><span class="o">(</span><span class="nx">title</span><span class="o">);</span>
<span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
<span class="k">var</span> <span class="nx">close</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Calendar</span><span class="o">.</span><span class="nx">_DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">CLOSE</span><span class="o">.</span><span class="nx">key</span><span class="o">);</span>
<span class="k">if</span> <span class="o">(!</span><span class="nx">close</span><span class="o">)</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">removeTitleBar</span><span class="o">();</span>
<span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">createTitleBar</span><span class="o">(</span><span class="s2">&quot;&amp;#160;&quot;</span><span class="o">);</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Default handler for the &quot;close&quot; property</span>
<span class="c"> * @method configClose</span>
<span class="c"> */</span>
<span class="nx">configClose</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">type</span><span class="o">,</span> <span class="nx">args</span><span class="o">,</span> <span class="nx">obj</span><span class="o">)</span> <span class="o">{</span>
<span class="k">var</span> <span class="nx">close</span> <span class="o">=</span> <span class="nx">args</span><span class="o">[</span><span class="m">0</span><span class="o">],</span>
<span class="nx">title</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Calendar</span><span class="o">.</span><span class="nx">_DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">TITLE</span><span class="o">.</span><span class="nx">key</span><span class="o">);</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">close</span><span class="o">)</span> <span class="o">{</span>
<span class="k">if</span> <span class="o">(!</span><span class="nx">title</span><span class="o">)</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">createTitleBar</span><span class="o">(</span><span class="s2">&quot;&amp;#160;&quot;</span><span class="o">);</span>
<span class="o">}</span>
<span class="k">this</span><span class="o">.</span><span class="nx">createCloseButton</span><span class="o">();</span>
<span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">removeCloseButton</span><span class="o">();</span>
<span class="k">if</span> <span class="o">(!</span><span class="nx">title</span><span class="o">)</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">removeTitleBar</span><span class="o">();</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Initializes Calendar&#39;s built-in CustomEvents</span>
<span class="c"> * @method initEvents</span>
<span class="c"> */</span>
<span class="nx">initEvents</span> <span class="o">:</span> <span class="k">function</span><span class="o">()</span> <span class="o">{</span>
<span class="k">var</span> <span class="nx">defEvents</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Calendar</span><span class="o">.</span><span class="nx">_EVENT_TYPES</span><span class="o">;</span>
<span class="c">/**</span>
<span class="c"> * Fired before a selection is made</span>
<span class="c"> * @event beforeSelectEvent</span>
<span class="c"> */</span>
<span class="k">this</span><span class="o">.</span><span class="nx">beforeSelectEvent</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">CustomEvent</span><span class="o">(</span><span class="nx">defEvents</span><span class="o">.</span><span class="nx">BEFORE_SELECT</span><span class="o">);</span>
<span class="c">/**</span>
<span class="c"> * Fired when a selection is made</span>
<span class="c"> * @event selectEvent</span>
<span class="c"> * @param {Array} Array of Date field arrays in the format [YYYY, MM, DD].</span>
<span class="c"> */</span>
<span class="k">this</span><span class="o">.</span><span class="nx">selectEvent</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">CustomEvent</span><span class="o">(</span><span class="nx">defEvents</span><span class="o">.</span><span class="nx">SELECT</span><span class="o">);</span>
<span class="c">/**</span>
<span class="c"> * Fired before a selection is made</span>
<span class="c"> * @event beforeDeselectEvent</span>
<span class="c"> */</span>
<span class="k">this</span><span class="o">.</span><span class="nx">beforeDeselectEvent</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">CustomEvent</span><span class="o">(</span><span class="nx">defEvents</span><span class="o">.</span><span class="nx">BEFORE_DESELECT</span><span class="o">);</span>
<span class="c">/**</span>
<span class="c"> * Fired when a selection is made</span>
<span class="c"> * @event deselectEvent</span>
<span class="c"> * @param {Array} Array of Date field arrays in the format [YYYY, MM, DD].</span>
<span class="c"> */</span>
<span class="k">this</span><span class="o">.</span><span class="nx">deselectEvent</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">CustomEvent</span><span class="o">(</span><span class="nx">defEvents</span><span class="o">.</span><span class="nx">DESELECT</span><span class="o">);</span>
<span class="c">/**</span>
<span class="c"> * Fired when the Calendar page is changed</span>
<span class="c"> * @event changePageEvent</span>
<span class="c"> */</span>
<span class="k">this</span><span class="o">.</span><span class="nx">changePageEvent</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">CustomEvent</span><span class="o">(</span><span class="nx">defEvents</span><span class="o">.</span><span class="nx">CHANGE_PAGE</span><span class="o">);</span>
<span class="c">/**</span>
<span class="c"> * Fired before the Calendar is rendered</span>
<span class="c"> * @event beforeRenderEvent</span>
<span class="c"> */</span>
<span class="k">this</span><span class="o">.</span><span class="nx">beforeRenderEvent</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">CustomEvent</span><span class="o">(</span><span class="nx">defEvents</span><span class="o">.</span><span class="nx">BEFORE_RENDER</span><span class="o">);</span>
<span class="c">/**</span>
<span class="c"> * Fired when the Calendar is rendered</span>
<span class="c"> * @event renderEvent</span>
<span class="c"> */</span>
<span class="k">this</span><span class="o">.</span><span class="nx">renderEvent</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">CustomEvent</span><span class="o">(</span><span class="nx">defEvents</span><span class="o">.</span><span class="nx">RENDER</span><span class="o">);</span>
<span class="c">/**</span>
<span class="c"> * Fired when the Calendar is reset</span>
<span class="c"> * @event resetEvent</span>
<span class="c"> */</span>
<span class="k">this</span><span class="o">.</span><span class="nx">resetEvent</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">CustomEvent</span><span class="o">(</span><span class="nx">defEvents</span><span class="o">.</span><span class="nx">RESET</span><span class="o">);</span>
<span class="c">/**</span>
<span class="c"> * Fired when the Calendar is cleared</span>
<span class="c"> * @event clearEvent</span>
<span class="c"> */</span>
<span class="k">this</span><span class="o">.</span><span class="nx">clearEvent</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">CustomEvent</span><span class="o">(</span><span class="nx">defEvents</span><span class="o">.</span><span class="nx">CLEAR</span><span class="o">);</span>
<span class="c">/**</span>
<span class="c"> * Fired just before the Calendar is to be shown</span>
<span class="c"> * @event beforeShowEvent</span>
<span class="c"> */</span>
<span class="k">this</span><span class="o">.</span><span class="nx">beforeShowEvent</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">CustomEvent</span><span class="o">(</span><span class="nx">defEvents</span><span class="o">.</span><span class="nx">BEFORE_SHOW</span><span class="o">);</span>
<span class="c">/**</span>
<span class="c"> * Fired after the Calendar is shown</span>
<span class="c"> * @event showEvent</span>
<span class="c"> */</span>
<span class="k">this</span><span class="o">.</span><span class="nx">showEvent</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">CustomEvent</span><span class="o">(</span><span class="nx">defEvents</span><span class="o">.</span><span class="nx">SHOW</span><span class="o">);</span>
<span class="c">/**</span>
<span class="c"> * Fired just before the Calendar is to be hidden</span>
<span class="c"> * @event beforeHideEvent</span>
<span class="c"> */</span>
<span class="k">this</span><span class="o">.</span><span class="nx">beforeHideEvent</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">CustomEvent</span><span class="o">(</span><span class="nx">defEvents</span><span class="o">.</span><span class="nx">BEFORE_HIDE</span><span class="o">);</span>
<span class="c">/**</span>
<span class="c"> * Fired after the Calendar is hidden</span>
<span class="c"> * @event hideEvent</span>
<span class="c"> */</span>
<span class="k">this</span><span class="o">.</span><span class="nx">hideEvent</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">CustomEvent</span><span class="o">(</span><span class="nx">defEvents</span><span class="o">.</span><span class="nx">HIDE</span><span class="o">);</span>
<span class="c">/**</span>
<span class="c"> * Fired just before the CalendarNavigator is to be shown</span>
<span class="c"> * @event beforeShowNavEvent</span>
<span class="c"> */</span>
<span class="k">this</span><span class="o">.</span><span class="nx">beforeShowNavEvent</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">CustomEvent</span><span class="o">(</span><span class="nx">defEvents</span><span class="o">.</span><span class="nx">BEFORE_SHOW_NAV</span><span class="o">);</span>
<span class="c">/**</span>
<span class="c"> * Fired after the CalendarNavigator is shown</span>
<span class="c"> * @event showNavEvent</span>
<span class="c"> */</span>
<span class="k">this</span><span class="o">.</span><span class="nx">showNavEvent</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">CustomEvent</span><span class="o">(</span><span class="nx">defEvents</span><span class="o">.</span><span class="nx">SHOW_NAV</span><span class="o">);</span>
<span class="c">/**</span>
<span class="c"> * Fired just before the CalendarNavigator is to be hidden</span>
<span class="c"> * @event beforeHideNavEvent</span>
<span class="c"> */</span>
<span class="k">this</span><span class="o">.</span><span class="nx">beforeHideNavEvent</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">CustomEvent</span><span class="o">(</span><span class="nx">defEvents</span><span class="o">.</span><span class="nx">BEFORE_HIDE_NAV</span><span class="o">);</span>
<span class="c">/**</span>
<span class="c"> * Fired after the CalendarNavigator is hidden</span>
<span class="c"> * @event hideNavEvent</span>
<span class="c"> */</span>
<span class="k">this</span><span class="o">.</span><span class="nx">hideNavEvent</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">CustomEvent</span><span class="o">(</span><span class="nx">defEvents</span><span class="o">.</span><span class="nx">HIDE_NAV</span><span class="o">);</span>
<span class="c">/**</span>
<span class="c"> * Fired just before the CalendarNavigator is to be rendered</span>
<span class="c"> * @event beforeRenderNavEvent</span>
<span class="c"> */</span>
<span class="k">this</span><span class="o">.</span><span class="nx">beforeRenderNavEvent</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">CustomEvent</span><span class="o">(</span><span class="nx">defEvents</span><span class="o">.</span><span class="nx">BEFORE_RENDER_NAV</span><span class="o">);</span>
<span class="c">/**</span>
<span class="c"> * Fired after the CalendarNavigator is rendered</span>
<span class="c"> * @event renderNavEvent</span>
<span class="c"> */</span>
<span class="k">this</span><span class="o">.</span><span class="nx">renderNavEvent</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">CustomEvent</span><span class="o">(</span><span class="nx">defEvents</span><span class="o">.</span><span class="nx">RENDER_NAV</span><span class="o">);</span>
<span class="k">this</span><span class="o">.</span><span class="nx">beforeSelectEvent</span><span class="o">.</span><span class="nx">subscribe</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">onBeforeSelect</span><span class="o">,</span> <span class="k">this</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
<span class="k">this</span><span class="o">.</span><span class="nx">selectEvent</span><span class="o">.</span><span class="nx">subscribe</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">onSelect</span><span class="o">,</span> <span class="k">this</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
<span class="k">this</span><span class="o">.</span><span class="nx">beforeDeselectEvent</span><span class="o">.</span><span class="nx">subscribe</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">onBeforeDeselect</span><span class="o">,</span> <span class="k">this</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
<span class="k">this</span><span class="o">.</span><span class="nx">deselectEvent</span><span class="o">.</span><span class="nx">subscribe</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">onDeselect</span><span class="o">,</span> <span class="k">this</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
<span class="k">this</span><span class="o">.</span><span class="nx">changePageEvent</span><span class="o">.</span><span class="nx">subscribe</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">onChangePage</span><span class="o">,</span> <span class="k">this</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
<span class="k">this</span><span class="o">.</span><span class="nx">renderEvent</span><span class="o">.</span><span class="nx">subscribe</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">onRender</span><span class="o">,</span> <span class="k">this</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
<span class="k">this</span><span class="o">.</span><span class="nx">resetEvent</span><span class="o">.</span><span class="nx">subscribe</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">onReset</span><span class="o">,</span> <span class="k">this</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
<span class="k">this</span><span class="o">.</span><span class="nx">clearEvent</span><span class="o">.</span><span class="nx">subscribe</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">onClear</span><span class="o">,</span> <span class="k">this</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * The default event function that is attached to a date link within a calendar cell</span>
<span class="c"> * when the calendar is rendered.</span>
<span class="c"> * @method doSelectCell</span>
<span class="c"> * @param {DOMEvent} e The event</span>
<span class="c"> * @param {Calendar} cal A reference to the calendar passed by the Event utility</span>
<span class="c"> */</span>
<span class="nx">doSelectCell</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">e</span><span class="o">,</span> <span class="nx">cal</span><span class="o">)</span> <span class="o">{</span>
<span class="k">var</span> <span class="nx">cell</span><span class="o">,</span><span class="nx">index</span><span class="o">,</span><span class="nx">d</span><span class="o">,</span><span class="nx">date</span><span class="o">;</span>
<span class="k">var</span> <span class="nx">target</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Event</span><span class="o">.</span><span class="nx">getTarget</span><span class="o">(</span><span class="nx">e</span><span class="o">);</span>
<span class="k">var</span> <span class="nx">tagName</span> <span class="o">=</span> <span class="nx">target</span><span class="o">.</span><span class="nx">tagName</span><span class="o">.</span><span class="nx">toLowerCase</span><span class="o">();</span>
<span class="k">var</span> <span class="nx">defSelector</span> <span class="o">=</span> <span class="kc">false</span><span class="o">;</span>
<span class="k">while</span> <span class="o">(</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">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Dom</span><span class="o">.</span><span class="nx">hasClass</span><span class="o">(</span><span class="nx">target</span><span class="o">,</span> <span class="nx">cal</span><span class="o">.</span><span class="nx">Style</span><span class="o">.</span><span class="nx">CSS_CELL_SELECTABLE</span><span class="o">))</span> <span class="o">{</span>
<span class="k">if</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">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Dom</span><span class="o">.</span><span class="nx">hasClass</span><span class="o">(</span><span class="nx">target</span><span class="o">,</span> <span class="nx">cal</span><span class="o">.</span><span class="nx">Style</span><span class="o">.</span><span class="nx">CSS_CELL_SELECTOR</span><span class="o">))</span> <span class="o">{</span>
<span class="nx">defSelector</span> <span class="o">=</span> <span class="kc">true</span><span class="o">;</span>
<span class="o">}</span>
<span class="nx">target</span> <span class="o">=</span> <span class="nx">target</span><span class="o">.</span><span class="nx">parentNode</span><span class="o">;</span>
<span class="nx">tagName</span> <span class="o">=</span> <span class="nx">target</span><span class="o">.</span><span class="nx">tagName</span><span class="o">.</span><span class="nx">toLowerCase</span><span class="o">();</span>
<span class="c">// TODO: No need to go all the way up to html.</span>
<span class="c"></span> <span class="k">if</span> <span class="o">(</span><span class="nx">tagName</span> <span class="o">==</span> <span class="s2">&quot;html&quot;</span><span class="o">)</span> <span class="o">{</span>
<span class="k">return</span><span class="o">;</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">defSelector</span><span class="o">)</span> <span class="o">{</span>
<span class="c">// Stop link href navigation for default renderer</span>
<span class="c"></span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Event</span><span class="o">.</span><span class="nx">preventDefault</span><span class="o">(</span><span class="nx">e</span><span class="o">);</span>
<span class="o">}</span>
<span class="nx">cell</span> <span class="o">=</span> <span class="nx">target</span><span class="o">;</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Dom</span><span class="o">.</span><span class="nx">hasClass</span><span class="o">(</span><span class="nx">cell</span><span class="o">,</span> <span class="nx">cal</span><span class="o">.</span><span class="nx">Style</span><span class="o">.</span><span class="nx">CSS_CELL_SELECTABLE</span><span class="o">))</span> <span class="o">{</span>
<span class="nx">index</span> <span class="o">=</span> <span class="nx">cell</span><span class="o">.</span><span class="nx">id</span><span class="o">.</span><span class="nx">split</span><span class="o">(</span><span class="s2">&quot;cell&quot;</span><span class="o">)[</span><span class="m">1</span><span class="o">];</span>
<span class="nx">d</span> <span class="o">=</span> <span class="nx">cal</span><span class="o">.</span><span class="nx">cellDates</span><span class="o">[</span><span class="nx">index</span><span class="o">];</span>
<span class="nx">date</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">DateMath</span><span class="o">.</span><span class="nx">getDate</span><span class="o">(</span><span class="nx">d</span><span class="o">[</span><span class="m">0</span><span class="o">],</span><span class="nx">d</span><span class="o">[</span><span class="m">1</span><span class="o">]-</span><span class="m">1</span><span class="o">,</span><span class="nx">d</span><span class="o">[</span><span class="m">2</span><span class="o">]);</span>
<span class="k">var</span> <span class="nx">link</span><span class="o">;</span>
<span class="nx">cal</span><span class="o">.</span><span class="nx">logger</span><span class="o">.</span><span class="nx">log</span><span class="o">(</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="o">,</span> <span class="s2">&quot;info&quot;</span><span class="o">);</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">cal</span><span class="o">.</span><span class="nx">Options</span><span class="o">.</span><span class="nx">MULTI_SELECT</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">link</span> <span class="o">=</span> <span class="nx">cell</span><span class="o">.</span><span class="nx">getElementsByTagName</span><span class="o">(</span><span class="s2">&quot;a&quot;</span><span class="o">)[</span><span class="m">0</span><span class="o">];</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">link</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">link</span><span class="o">.</span><span class="nx">blur</span><span class="o">();</span>
<span class="o">}</span>
<span class="k">var</span> <span class="nx">cellDate</span> <span class="o">=</span> <span class="nx">cal</span><span class="o">.</span><span class="nx">cellDates</span><span class="o">[</span><span class="nx">index</span><span class="o">];</span>
<span class="k">var</span> <span class="nx">cellDateIndex</span> <span class="o">=</span> <span class="nx">cal</span><span class="o">.</span><span class="nx">_indexOfSelectedFieldArray</span><span class="o">(</span><span class="nx">cellDate</span><span class="o">);</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">cellDateIndex</span> <span class="o">&gt;</span> <span class="o">-</span><span class="m">1</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">cal</span><span class="o">.</span><span class="nx">deselectCell</span><span class="o">(</span><span class="nx">index</span><span class="o">);</span>
<span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
<span class="nx">cal</span><span class="o">.</span><span class="nx">selectCell</span><span class="o">(</span><span class="nx">index</span><span class="o">);</span>
<span class="o">}</span>
<span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
<span class="nx">link</span> <span class="o">=</span> <span class="nx">cell</span><span class="o">.</span><span class="nx">getElementsByTagName</span><span class="o">(</span><span class="s2">&quot;a&quot;</span><span class="o">)[</span><span class="m">0</span><span class="o">];</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">link</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">link</span><span class="o">.</span><span class="nx">blur</span><span class="o">();</span>
<span class="o">}</span>
<span class="nx">cal</span><span class="o">.</span><span class="nx">selectCell</span><span class="o">(</span><span class="nx">index</span><span class="o">);</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * The event that is executed when the user hovers over a cell</span>
<span class="c"> * @method doCellMouseOver</span>
<span class="c"> * @param {DOMEvent} e The event</span>
<span class="c"> * @param {Calendar} cal A reference to the calendar passed by the Event utility</span>
<span class="c"> */</span>
<span class="nx">doCellMouseOver</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">e</span><span class="o">,</span> <span class="nx">cal</span><span class="o">)</span> <span class="o">{</span>
<span class="k">var</span> <span class="nx">target</span><span class="o">;</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">e</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">target</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Event</span><span class="o">.</span><span class="nx">getTarget</span><span class="o">(</span><span class="nx">e</span><span class="o">);</span>
<span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
<span class="nx">target</span> <span class="o">=</span> <span class="k">this</span><span class="o">;</span>
<span class="o">}</span>
<span class="k">while</span> <span class="o">(</span><span class="nx">target</span><span class="o">.</span><span class="nx">tagName</span> <span class="o">&amp;&amp;</span> <span class="nx">target</span><span class="o">.</span><span class="nx">tagName</span><span class="o">.</span><span class="nx">toLowerCase</span><span class="o">()</span> <span class="o">!=</span> <span class="s2">&quot;td&quot;</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">target</span> <span class="o">=</span> <span class="nx">target</span><span class="o">.</span><span class="nx">parentNode</span><span class="o">;</span>
<span class="k">if</span> <span class="o">(!</span><span class="nx">target</span><span class="o">.</span><span class="nx">tagName</span> <span class="o">||</span> <span class="nx">target</span><span class="o">.</span><span class="nx">tagName</span><span class="o">.</span><span class="nx">toLowerCase</span><span class="o">()</span> <span class="o">==</span> <span class="s2">&quot;html&quot;</span><span class="o">)</span> <span class="o">{</span>
<span class="k">return</span><span class="o">;</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Dom</span><span class="o">.</span><span class="nx">hasClass</span><span class="o">(</span><span class="nx">target</span><span class="o">,</span> <span class="nx">cal</span><span class="o">.</span><span class="nx">Style</span><span class="o">.</span><span class="nx">CSS_CELL_SELECTABLE</span><span class="o">))</span> <span class="o">{</span>
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Dom</span><span class="o">.</span><span class="nx">addClass</span><span class="o">(</span><span class="nx">target</span><span class="o">,</span> <span class="nx">cal</span><span class="o">.</span><span class="nx">Style</span><span class="o">.</span><span class="nx">CSS_CELL_HOVER</span><span class="o">);</span>
<span class="o">}</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * The event that is executed when the user moves the mouse out of a cell</span>
<span class="c"> * @method doCellMouseOut</span>
<span class="c"> * @param {DOMEvent} e The event</span>
<span class="c"> * @param {Calendar} cal A reference to the calendar passed by the Event utility</span>
<span class="c"> */</span>
<span class="nx">doCellMouseOut</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">e</span><span class="o">,</span> <span class="nx">cal</span><span class="o">)</span> <span class="o">{</span>
<span class="k">var</span> <span class="nx">target</span><span class="o">;</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">e</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">target</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Event</span><span class="o">.</span><span class="nx">getTarget</span><span class="o">(</span><span class="nx">e</span><span class="o">);</span>
<span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
<span class="nx">target</span> <span class="o">=</span> <span class="k">this</span><span class="o">;</span>
<span class="o">}</span>
<span class="k">while</span> <span class="o">(</span><span class="nx">target</span><span class="o">.</span><span class="nx">tagName</span> <span class="o">&amp;&amp;</span> <span class="nx">target</span><span class="o">.</span><span class="nx">tagName</span><span class="o">.</span><span class="nx">toLowerCase</span><span class="o">()</span> <span class="o">!=</span> <span class="s2">&quot;td&quot;</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">target</span> <span class="o">=</span> <span class="nx">target</span><span class="o">.</span><span class="nx">parentNode</span><span class="o">;</span>
<span class="k">if</span> <span class="o">(!</span><span class="nx">target</span><span class="o">.</span><span class="nx">tagName</span> <span class="o">||</span> <span class="nx">target</span><span class="o">.</span><span class="nx">tagName</span><span class="o">.</span><span class="nx">toLowerCase</span><span class="o">()</span> <span class="o">==</span> <span class="s2">&quot;html&quot;</span><span class="o">)</span> <span class="o">{</span>
<span class="k">return</span><span class="o">;</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Dom</span><span class="o">.</span><span class="nx">hasClass</span><span class="o">(</span><span class="nx">target</span><span class="o">,</span> <span class="nx">cal</span><span class="o">.</span><span class="nx">Style</span><span class="o">.</span><span class="nx">CSS_CELL_SELECTABLE</span><span class="o">))</span> <span class="o">{</span>
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Dom</span><span class="o">.</span><span class="nx">removeClass</span><span class="o">(</span><span class="nx">target</span><span class="o">,</span> <span class="nx">cal</span><span class="o">.</span><span class="nx">Style</span><span class="o">.</span><span class="nx">CSS_CELL_HOVER</span><span class="o">);</span>
<span class="o">}</span>
<span class="o">},</span>
<span class="nx">setupConfig</span> <span class="o">:</span> <span class="k">function</span><span class="o">()</span> <span class="o">{</span>
<span class="k">var</span> <span class="nx">defCfg</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Calendar</span><span class="o">.</span><span class="nx">_DEFAULT_CONFIG</span><span class="o">;</span>
<span class="c">/**</span>
<span class="c"> * The month/year representing the current visible Calendar date (mm/yyyy)</span>
<span class="c"> * @config pagedate</span>
<span class="c"> * @type String</span>
<span class="c"> * @default today&#39;s date</span>
<span class="c"> */</span>
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">addProperty</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">PAGEDATE</span><span class="o">.</span><span class="nx">key</span><span class="o">,</span> <span class="o">{</span> <span class="nx">value</span><span class="o">:</span><span class="k">new</span> <span class="nb">Date</span><span class="o">(),</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="o">.</span><span class="nx">configPageDate</span> <span class="o">}</span> <span class="o">);</span>
<span class="c">/**</span>
<span class="c"> * The date or range of dates representing the current Calendar selection</span>
<span class="c"> * @config selected</span>
<span class="c"> * @type String</span>
<span class="c"> * @default []</span>
<span class="c"> */</span>
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">addProperty</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">SELECTED</span><span class="o">.</span><span class="nx">key</span><span class="o">,</span> <span class="o">{</span> <span class="nx">value</span><span class="o">:[],</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="o">.</span><span class="nx">configSelected</span> <span class="o">}</span> <span class="o">);</span>
<span class="c">/**</span>
<span class="c"> * The title to display above the Calendar&#39;s month header</span>
<span class="c"> * @config title</span>
<span class="c"> * @type String</span>
<span class="c"> * @default &quot;&quot;</span>
<span class="c"> */</span>
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">addProperty</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">TITLE</span><span class="o">.</span><span class="nx">key</span><span class="o">,</span> <span class="o">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">TITLE</span><span class="o">.</span><span class="nx">value</span><span class="o">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="o">.</span><span class="nx">configTitle</span> <span class="o">}</span> <span class="o">);</span>
<span class="c">/**</span>
<span class="c"> * Whether or not a close button should be displayed for this Calendar</span>
<span class="c"> * @config close</span>
<span class="c"> * @type Boolean</span>
<span class="c"> * @default false</span>
<span class="c"> */</span>
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">addProperty</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">CLOSE</span><span class="o">.</span><span class="nx">key</span><span class="o">,</span> <span class="o">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">CLOSE</span><span class="o">.</span><span class="nx">value</span><span class="o">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="o">.</span><span class="nx">configClose</span> <span class="o">}</span> <span class="o">);</span>
<span class="c">/**</span>
<span class="c"> * 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="c"> * 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="c"> * enabled if required.</span>
<span class="c"> * </span>
<span class="c"> * @config iframe</span>
<span class="c"> * @type Boolean</span>
<span class="c"> * @default true for IE6 and below, false for all other browsers</span>
<span class="c"> */</span>
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">addProperty</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">IFRAME</span><span class="o">.</span><span class="nx">key</span><span class="o">,</span> <span class="o">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">IFRAME</span><span class="o">.</span><span class="nx">value</span><span class="o">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="o">.</span><span class="nx">configIframe</span><span class="o">,</span> <span class="nx">validator</span><span class="o">:</span><span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">checkBoolean</span> <span class="o">}</span> <span class="o">);</span>
<span class="c">/**</span>
<span class="c"> * The minimum selectable date in the current Calendar (mm/dd/yyyy)</span>
<span class="c"> * @config mindate</span>
<span class="c"> * @type String</span>
<span class="c"> * @default null</span>
<span class="c"> */</span>
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">addProperty</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">MINDATE</span><span class="o">.</span><span class="nx">key</span><span class="o">,</span> <span class="o">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">MINDATE</span><span class="o">.</span><span class="nx">value</span><span class="o">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="o">.</span><span class="nx">configMinDate</span> <span class="o">}</span> <span class="o">);</span>
<span class="c">/**</span>
<span class="c"> * The maximum selectable date in the current Calendar (mm/dd/yyyy)</span>
<span class="c"> * @config maxdate</span>
<span class="c"> * @type String</span>
<span class="c"> * @default null</span>
<span class="c"> */</span>
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">addProperty</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">MAXDATE</span><span class="o">.</span><span class="nx">key</span><span class="o">,</span> <span class="o">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">MAXDATE</span><span class="o">.</span><span class="nx">value</span><span class="o">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="o">.</span><span class="nx">configMaxDate</span> <span class="o">}</span> <span class="o">);</span>
<span class="c">// Options properties</span>
<span class="c"></span>
<span class="c">/**</span>
<span class="c"> * True if the Calendar should allow multiple selections. False by default.</span>
<span class="c"> * @config MULTI_SELECT</span>
<span class="c"> * @type Boolean</span>
<span class="c"> * @default false</span>
<span class="c"> */</span>
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">addProperty</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">MULTI_SELECT</span><span class="o">.</span><span class="nx">key</span><span class="o">,</span> <span class="o">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">MULTI_SELECT</span><span class="o">.</span><span class="nx">value</span><span class="o">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="o">.</span><span class="nx">configOptions</span><span class="o">,</span> <span class="nx">validator</span><span class="o">:</span><span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">checkBoolean</span> <span class="o">}</span> <span class="o">);</span>
<span class="c">/**</span>
<span class="c"> * The weekday the week begins on. Default is 0 (Sunday = 0, Monday = 1 ... Saturday = 6).</span>
<span class="c"> * @config START_WEEKDAY</span>
<span class="c"> * @type number</span>
<span class="c"> * @default 0</span>
<span class="c"> */</span>
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">addProperty</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">START_WEEKDAY</span><span class="o">.</span><span class="nx">key</span><span class="o">,</span> <span class="o">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">START_WEEKDAY</span><span class="o">.</span><span class="nx">value</span><span class="o">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="o">.</span><span class="nx">configOptions</span><span class="o">,</span> <span class="nx">validator</span><span class="o">:</span><span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">checkNumber</span> <span class="o">}</span> <span class="o">);</span>
<span class="c">/**</span>
<span class="c"> * True if the Calendar should show weekday labels. True by default.</span>
<span class="c"> * @config SHOW_WEEKDAYS</span>
<span class="c"> * @type Boolean</span>
<span class="c"> * @default true</span>
<span class="c"> */</span>
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">addProperty</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">SHOW_WEEKDAYS</span><span class="o">.</span><span class="nx">key</span><span class="o">,</span> <span class="o">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">SHOW_WEEKDAYS</span><span class="o">.</span><span class="nx">value</span><span class="o">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="o">.</span><span class="nx">configOptions</span><span class="o">,</span> <span class="nx">validator</span><span class="o">:</span><span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">checkBoolean</span> <span class="o">}</span> <span class="o">);</span>
<span class="c">/**</span>
<span class="c"> * True if the Calendar should show week row headers. False by default.</span>
<span class="c"> * @config SHOW_WEEK_HEADER</span>
<span class="c"> * @type Boolean</span>
<span class="c"> * @default false</span>
<span class="c"> */</span>
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">addProperty</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">SHOW_WEEK_HEADER</span><span class="o">.</span><span class="nx">key</span><span class="o">,</span> <span class="o">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">SHOW_WEEK_HEADER</span><span class="o">.</span><span class="nx">value</span><span class="o">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="o">.</span><span class="nx">configOptions</span><span class="o">,</span> <span class="nx">validator</span><span class="o">:</span><span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">checkBoolean</span> <span class="o">}</span> <span class="o">);</span>
<span class="c">/**</span>
<span class="c"> * True if the Calendar should show week row footers. False by default.</span>
<span class="c"> * @config SHOW_WEEK_FOOTER</span>
<span class="c"> * @type Boolean</span>
<span class="c"> * @default false</span>
<span class="c"> */</span>
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">addProperty</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">SHOW_WEEK_FOOTER</span><span class="o">.</span><span class="nx">key</span><span class="o">,{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">SHOW_WEEK_FOOTER</span><span class="o">.</span><span class="nx">value</span><span class="o">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="o">.</span><span class="nx">configOptions</span><span class="o">,</span> <span class="nx">validator</span><span class="o">:</span><span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">checkBoolean</span> <span class="o">}</span> <span class="o">);</span>
<span class="c">/**</span>
<span class="c"> * True if the Calendar should suppress weeks that are not a part of the current month. False by default.</span>
<span class="c"> * @config HIDE_BLANK_WEEKS</span>
<span class="c"> * @type Boolean</span>
<span class="c"> * @default false</span>
<span class="c"> */</span>
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">addProperty</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">HIDE_BLANK_WEEKS</span><span class="o">.</span><span class="nx">key</span><span class="o">,</span> <span class="o">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">HIDE_BLANK_WEEKS</span><span class="o">.</span><span class="nx">value</span><span class="o">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="o">.</span><span class="nx">configOptions</span><span class="o">,</span> <span class="nx">validator</span><span class="o">:</span><span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">checkBoolean</span> <span class="o">}</span> <span class="o">);</span>
<span class="c">/**</span>
<span class="c"> * The image that should be used for the left navigation arrow.</span>
<span class="c"> * @config NAV_ARROW_LEFT</span>
<span class="c"> * @type String</span>
<span class="c"> * @deprecated You can customize the image by overriding the default CSS class for the left arrow - &quot;calnavleft&quot; </span>
<span class="c"> * @default null</span>
<span class="c"> */</span>
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">addProperty</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">NAV_ARROW_LEFT</span><span class="o">.</span><span class="nx">key</span><span class="o">,</span> <span class="o">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">NAV_ARROW_LEFT</span><span class="o">.</span><span class="nx">value</span><span class="o">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="o">.</span><span class="nx">configOptions</span> <span class="o">}</span> <span class="o">);</span>
<span class="c">/**</span>
<span class="c"> * The image that should be used for the right navigation arrow.</span>
<span class="c"> * @config NAV_ARROW_RIGHT</span>
<span class="c"> * @type String</span>
<span class="c"> * @deprecated You can customize the image by overriding the default CSS class for the right arrow - &quot;calnavright&quot;</span>
<span class="c"> * @default null</span>
<span class="c"> */</span>
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">addProperty</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">NAV_ARROW_RIGHT</span><span class="o">.</span><span class="nx">key</span><span class="o">,</span> <span class="o">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">NAV_ARROW_RIGHT</span><span class="o">.</span><span class="nx">value</span><span class="o">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="o">.</span><span class="nx">configOptions</span> <span class="o">}</span> <span class="o">);</span>
<span class="c">// Locale properties</span>
<span class="c"></span>
<span class="c">/**</span>
<span class="c"> * The short month labels for the current locale.</span>
<span class="c"> * @config MONTHS_SHORT</span>
<span class="c"> * @type String[]</span>
<span class="c"> * @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="c"> */</span>
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">addProperty</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">MONTHS_SHORT</span><span class="o">.</span><span class="nx">key</span><span class="o">,</span> <span class="o">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">MONTHS_SHORT</span><span class="o">.</span><span class="nx">value</span><span class="o">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="o">.</span><span class="nx">configLocale</span> <span class="o">}</span> <span class="o">);</span>
<span class="c">/**</span>
<span class="c"> * The long month labels for the current locale.</span>
<span class="c"> * @config MONTHS_LONG</span>
<span class="c"> * @type String[]</span>
<span class="c"> * @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="c"> */</span>
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">addProperty</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">MONTHS_LONG</span><span class="o">.</span><span class="nx">key</span><span class="o">,</span> <span class="o">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">MONTHS_LONG</span><span class="o">.</span><span class="nx">value</span><span class="o">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="o">.</span><span class="nx">configLocale</span> <span class="o">}</span> <span class="o">);</span>
<span class="c">/**</span>
<span class="c"> * The 1-character weekday labels for the current locale.</span>
<span class="c"> * @config WEEKDAYS_1CHAR</span>
<span class="c"> * @type String[]</span>
<span class="c"> * @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="c"> */</span>
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">addProperty</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">WEEKDAYS_1CHAR</span><span class="o">.</span><span class="nx">key</span><span class="o">,</span> <span class="o">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">WEEKDAYS_1CHAR</span><span class="o">.</span><span class="nx">value</span><span class="o">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="o">.</span><span class="nx">configLocale</span> <span class="o">}</span> <span class="o">);</span>
<span class="c">/**</span>
<span class="c"> * The short weekday labels for the current locale.</span>
<span class="c"> * @config WEEKDAYS_SHORT</span>
<span class="c"> * @type String[]</span>
<span class="c"> * @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="c"> */</span>
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">addProperty</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">WEEKDAYS_SHORT</span><span class="o">.</span><span class="nx">key</span><span class="o">,</span> <span class="o">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">WEEKDAYS_SHORT</span><span class="o">.</span><span class="nx">value</span><span class="o">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="o">.</span><span class="nx">configLocale</span> <span class="o">}</span> <span class="o">);</span>
<span class="c">/**</span>
<span class="c"> * The medium weekday labels for the current locale.</span>
<span class="c"> * @config WEEKDAYS_MEDIUM</span>
<span class="c"> * @type String[]</span>
<span class="c"> * @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="c"> */</span>
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">addProperty</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">WEEKDAYS_MEDIUM</span><span class="o">.</span><span class="nx">key</span><span class="o">,</span> <span class="o">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">WEEKDAYS_MEDIUM</span><span class="o">.</span><span class="nx">value</span><span class="o">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="o">.</span><span class="nx">configLocale</span> <span class="o">}</span> <span class="o">);</span>
<span class="c">/**</span>
<span class="c"> * The long weekday labels for the current locale.</span>
<span class="c"> * @config WEEKDAYS_LONG</span>
<span class="c"> * @type String[]</span>
<span class="c"> * @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="c"> */</span>
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">addProperty</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">WEEKDAYS_LONG</span><span class="o">.</span><span class="nx">key</span><span class="o">,</span> <span class="o">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">WEEKDAYS_LONG</span><span class="o">.</span><span class="nx">value</span><span class="o">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="o">.</span><span class="nx">configLocale</span> <span class="o">}</span> <span class="o">);</span>
<span class="c">/**</span>
<span class="c"> * Refreshes the locale values used to build the Calendar.</span>
<span class="c"> * @method refreshLocale</span>
<span class="c"> * @private</span>
<span class="c"> */</span>
<span class="k">var</span> <span class="nx">refreshLocale</span> <span class="o">=</span> <span class="k">function</span><span class="o">()</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">refireEvent</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">LOCALE_MONTHS</span><span class="o">.</span><span class="nx">key</span><span class="o">);</span>
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">refireEvent</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">LOCALE_WEEKDAYS</span><span class="o">.</span><span class="nx">key</span><span class="o">);</span>
<span class="o">};</span>
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">subscribeToConfigEvent</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">START_WEEKDAY</span><span class="o">.</span><span class="nx">key</span><span class="o">,</span> <span class="nx">refreshLocale</span><span class="o">,</span> <span class="k">this</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">subscribeToConfigEvent</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">MONTHS_SHORT</span><span class="o">.</span><span class="nx">key</span><span class="o">,</span> <span class="nx">refreshLocale</span><span class="o">,</span> <span class="k">this</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">subscribeToConfigEvent</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">MONTHS_LONG</span><span class="o">.</span><span class="nx">key</span><span class="o">,</span> <span class="nx">refreshLocale</span><span class="o">,</span> <span class="k">this</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">subscribeToConfigEvent</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">WEEKDAYS_1CHAR</span><span class="o">.</span><span class="nx">key</span><span class="o">,</span> <span class="nx">refreshLocale</span><span class="o">,</span> <span class="k">this</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">subscribeToConfigEvent</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">WEEKDAYS_SHORT</span><span class="o">.</span><span class="nx">key</span><span class="o">,</span> <span class="nx">refreshLocale</span><span class="o">,</span> <span class="k">this</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">subscribeToConfigEvent</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">WEEKDAYS_MEDIUM</span><span class="o">.</span><span class="nx">key</span><span class="o">,</span> <span class="nx">refreshLocale</span><span class="o">,</span> <span class="k">this</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">subscribeToConfigEvent</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">WEEKDAYS_LONG</span><span class="o">.</span><span class="nx">key</span><span class="o">,</span> <span class="nx">refreshLocale</span><span class="o">,</span> <span class="k">this</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
<span class="c">/**</span>
<span class="c"> * 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="c"> * @config LOCALE_MONTHS</span>
<span class="c"> * @type String</span>
<span class="c"> * @default &quot;long&quot;</span>
<span class="c"> */</span>
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">addProperty</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">LOCALE_MONTHS</span><span class="o">.</span><span class="nx">key</span><span class="o">,</span> <span class="o">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">LOCALE_MONTHS</span><span class="o">.</span><span class="nx">value</span><span class="o">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="o">.</span><span class="nx">configLocaleValues</span> <span class="o">}</span> <span class="o">);</span>
<span class="c">/**</span>
<span class="c"> * 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="c"> * @config LOCALE_WEEKDAYS</span>
<span class="c"> * @type String</span>
<span class="c"> * @default &quot;short&quot;</span>
<span class="c"> */</span>
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">addProperty</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">LOCALE_WEEKDAYS</span><span class="o">.</span><span class="nx">key</span><span class="o">,</span> <span class="o">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">LOCALE_WEEKDAYS</span><span class="o">.</span><span class="nx">value</span><span class="o">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="o">.</span><span class="nx">configLocaleValues</span> <span class="o">}</span> <span class="o">);</span>
<span class="c">/**</span>
<span class="c"> * The value used to delimit individual dates in a date string passed to various Calendar functions.</span>
<span class="c"> * @config DATE_DELIMITER</span>
<span class="c"> * @type String</span>
<span class="c"> * @default &quot;,&quot;</span>
<span class="c"> */</span>
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">addProperty</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">DATE_DELIMITER</span><span class="o">.</span><span class="nx">key</span><span class="o">,</span> <span class="o">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">DATE_DELIMITER</span><span class="o">.</span><span class="nx">value</span><span class="o">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="o">.</span><span class="nx">configLocale</span> <span class="o">}</span> <span class="o">);</span>
<span class="c">/**</span>
<span class="c"> * The value used to delimit date fields in a date string passed to various Calendar functions.</span>
<span class="c"> * @config DATE_FIELD_DELIMITER</span>
<span class="c"> * @type String</span>
<span class="c"> * @default &quot;/&quot;</span>
<span class="c"> */</span>
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">addProperty</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">DATE_FIELD_DELIMITER</span><span class="o">.</span><span class="nx">key</span><span class="o">,</span> <span class="o">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">DATE_FIELD_DELIMITER</span><span class="o">.</span><span class="nx">value</span><span class="o">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="o">.</span><span class="nx">configLocale</span> <span class="o">}</span> <span class="o">);</span>
<span class="c">/**</span>
<span class="c"> * The value used to delimit date ranges in a date string passed to various Calendar functions.</span>
<span class="c"> * @config DATE_RANGE_DELIMITER</span>
<span class="c"> * @type String</span>
<span class="c"> * @default &quot;-&quot;</span>
<span class="c"> */</span>
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">addProperty</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">DATE_RANGE_DELIMITER</span><span class="o">.</span><span class="nx">key</span><span class="o">,</span> <span class="o">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">DATE_RANGE_DELIMITER</span><span class="o">.</span><span class="nx">value</span><span class="o">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="o">.</span><span class="nx">configLocale</span> <span class="o">}</span> <span class="o">);</span>
<span class="c">/**</span>
<span class="c"> * The position of the month in a month/year date string</span>
<span class="c"> * @config MY_MONTH_POSITION</span>
<span class="c"> * @type Number</span>
<span class="c"> * @default 1</span>
<span class="c"> */</span>
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">addProperty</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">MY_MONTH_POSITION</span><span class="o">.</span><span class="nx">key</span><span class="o">,</span> <span class="o">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">MY_MONTH_POSITION</span><span class="o">.</span><span class="nx">value</span><span class="o">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="o">.</span><span class="nx">configLocale</span><span class="o">,</span> <span class="nx">validator</span><span class="o">:</span><span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">checkNumber</span> <span class="o">}</span> <span class="o">);</span>
<span class="c">/**</span>
<span class="c"> * The position of the year in a month/year date string</span>
<span class="c"> * @config MY_YEAR_POSITION</span>
<span class="c"> * @type Number</span>
<span class="c"> * @default 2</span>
<span class="c"> */</span>
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">addProperty</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">MY_YEAR_POSITION</span><span class="o">.</span><span class="nx">key</span><span class="o">,</span> <span class="o">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">MY_YEAR_POSITION</span><span class="o">.</span><span class="nx">value</span><span class="o">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="o">.</span><span class="nx">configLocale</span><span class="o">,</span> <span class="nx">validator</span><span class="o">:</span><span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">checkNumber</span> <span class="o">}</span> <span class="o">);</span>
<span class="c">/**</span>
<span class="c"> * The position of the month in a month/day date string</span>
<span class="c"> * @config MD_MONTH_POSITION</span>
<span class="c"> * @type Number</span>
<span class="c"> * @default 1</span>
<span class="c"> */</span>
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">addProperty</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">MD_MONTH_POSITION</span><span class="o">.</span><span class="nx">key</span><span class="o">,</span> <span class="o">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">MD_MONTH_POSITION</span><span class="o">.</span><span class="nx">value</span><span class="o">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="o">.</span><span class="nx">configLocale</span><span class="o">,</span> <span class="nx">validator</span><span class="o">:</span><span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">checkNumber</span> <span class="o">}</span> <span class="o">);</span>
<span class="c">/**</span>
<span class="c"> * The position of the day in a month/year date string</span>
<span class="c"> * @config MD_DAY_POSITION</span>
<span class="c"> * @type Number</span>
<span class="c"> * @default 2</span>
<span class="c"> */</span>
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">addProperty</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">MD_DAY_POSITION</span><span class="o">.</span><span class="nx">key</span><span class="o">,</span> <span class="o">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">MD_DAY_POSITION</span><span class="o">.</span><span class="nx">value</span><span class="o">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="o">.</span><span class="nx">configLocale</span><span class="o">,</span> <span class="nx">validator</span><span class="o">:</span><span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">checkNumber</span> <span class="o">}</span> <span class="o">);</span>
<span class="c">/**</span>
<span class="c"> * The position of the month in a month/day/year date string</span>
<span class="c"> * @config MDY_MONTH_POSITION</span>
<span class="c"> * @type Number</span>
<span class="c"> * @default 1</span>
<span class="c"> */</span>
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">addProperty</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">MDY_MONTH_POSITION</span><span class="o">.</span><span class="nx">key</span><span class="o">,</span> <span class="o">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">MDY_MONTH_POSITION</span><span class="o">.</span><span class="nx">value</span><span class="o">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="o">.</span><span class="nx">configLocale</span><span class="o">,</span> <span class="nx">validator</span><span class="o">:</span><span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">checkNumber</span> <span class="o">}</span> <span class="o">);</span>
<span class="c">/**</span>
<span class="c"> * The position of the day in a month/day/year date string</span>
<span class="c"> * @config MDY_DAY_POSITION</span>
<span class="c"> * @type Number</span>
<span class="c"> * @default 2</span>
<span class="c"> */</span>
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">addProperty</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">MDY_DAY_POSITION</span><span class="o">.</span><span class="nx">key</span><span class="o">,</span> <span class="o">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">MDY_DAY_POSITION</span><span class="o">.</span><span class="nx">value</span><span class="o">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="o">.</span><span class="nx">configLocale</span><span class="o">,</span> <span class="nx">validator</span><span class="o">:</span><span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">checkNumber</span> <span class="o">}</span> <span class="o">);</span>
<span class="c">/**</span>
<span class="c"> * The position of the year in a month/day/year date string</span>
<span class="c"> * @config MDY_YEAR_POSITION</span>
<span class="c"> * @type Number</span>
<span class="c"> * @default 3</span>
<span class="c"> */</span>
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">addProperty</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">MDY_YEAR_POSITION</span><span class="o">.</span><span class="nx">key</span><span class="o">,</span> <span class="o">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">MDY_YEAR_POSITION</span><span class="o">.</span><span class="nx">value</span><span class="o">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="o">.</span><span class="nx">configLocale</span><span class="o">,</span> <span class="nx">validator</span><span class="o">:</span><span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">checkNumber</span> <span class="o">}</span> <span class="o">);</span>
<span class="c">/**</span>
<span class="c"> * The position of the month in the month year label string used as the Calendar header</span>
<span class="c"> * @config MY_LABEL_MONTH_POSITION</span>
<span class="c"> * @type Number</span>
<span class="c"> * @default 1</span>
<span class="c"> */</span>
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">addProperty</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">MY_LABEL_MONTH_POSITION</span><span class="o">.</span><span class="nx">key</span><span class="o">,</span> <span class="o">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">MY_LABEL_MONTH_POSITION</span><span class="o">.</span><span class="nx">value</span><span class="o">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="o">.</span><span class="nx">configLocale</span><span class="o">,</span> <span class="nx">validator</span><span class="o">:</span><span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">checkNumber</span> <span class="o">}</span> <span class="o">);</span>
<span class="c">/**</span>
<span class="c"> * The position of the year in the month year label string used as the Calendar header</span>
<span class="c"> * @config MY_LABEL_YEAR_POSITION</span>
<span class="c"> * @type Number</span>
<span class="c"> * @default 2</span>
<span class="c"> */</span>
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">addProperty</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">MY_LABEL_YEAR_POSITION</span><span class="o">.</span><span class="nx">key</span><span class="o">,</span> <span class="o">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">MY_LABEL_YEAR_POSITION</span><span class="o">.</span><span class="nx">value</span><span class="o">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="o">.</span><span class="nx">configLocale</span><span class="o">,</span> <span class="nx">validator</span><span class="o">:</span><span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">checkNumber</span> <span class="o">}</span> <span class="o">);</span>
<span class="c">/**</span>
<span class="c"> * The suffix used after the month when rendering the Calendar header</span>
<span class="c"> * @config MY_LABEL_MONTH_SUFFIX</span>
<span class="c"> * @type String</span>
<span class="c"> * @default &quot; &quot;</span>
<span class="c"> */</span>
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">addProperty</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">MY_LABEL_MONTH_SUFFIX</span><span class="o">.</span><span class="nx">key</span><span class="o">,</span> <span class="o">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">MY_LABEL_MONTH_SUFFIX</span><span class="o">.</span><span class="nx">value</span><span class="o">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="o">.</span><span class="nx">configLocale</span> <span class="o">}</span> <span class="o">);</span>
<span class="c">/**</span>
<span class="c"> * The suffix used after the year when rendering the Calendar header</span>
<span class="c"> * @config MY_LABEL_YEAR_SUFFIX</span>
<span class="c"> * @type String</span>
<span class="c"> * @default &quot;&quot;</span>
<span class="c"> */</span>
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">addProperty</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">MY_LABEL_YEAR_SUFFIX</span><span class="o">.</span><span class="nx">key</span><span class="o">,</span> <span class="o">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">MY_LABEL_YEAR_SUFFIX</span><span class="o">.</span><span class="nx">value</span><span class="o">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="o">.</span><span class="nx">configLocale</span> <span class="o">}</span> <span class="o">);</span>
<span class="c">/**</span>
<span class="c"> * Configuration for the Month/Year CalendarNavigator UI which allows the user to jump directly to a </span>
<span class="c"> * specific Month/Year without having to scroll sequentially through months.</span>
<span class="c"> * &lt;p&gt;</span>
<span class="c"> * Setting this property to null (default value) or false, will disable the CalendarNavigator UI.</span>
<span class="c"> * &lt;/p&gt;</span>
<span class="c"> * &lt;p&gt;</span>
<span class="c"> * Setting this property to true will enable the CalendarNavigatior UI with the default CalendarNavigator configuration values.</span>
<span class="c"> * &lt;/p&gt;</span>
<span class="c"> * &lt;p&gt;</span>
<span class="c"> * This property can also be set to an object literal containing configuration properties for the CalendarNavigator UI.</span>
<span class="c"> * The configuration object expects the the following case-sensitive properties, with the &quot;strings&quot; property being a nested object.</span>
<span class="c"> * Any properties which are not provided will use the default values (defined in the CalendarNavigator class).</span>
<span class="c"> * &lt;/p&gt;</span>
<span class="c"> * &lt;dl&gt;</span>
<span class="c"> * &lt;dt&gt;strings&lt;/dt&gt;</span>
<span class="c"> * &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</span>
<span class="c"> * &lt;dl&gt;</span>
<span class="c"> * &lt;dt&gt;month&lt;/dt&gt;&lt;dd&gt;&lt;em&gt;String&lt;/em&gt; : The string to use for the month label. Defaults to &quot;Month&quot;.&lt;/dd&gt;</span>
<span class="c"> * &lt;dt&gt;year&lt;/dt&gt;&lt;dd&gt;&lt;em&gt;String&lt;/em&gt; : The string to use for the year label. Defaults to &quot;Year&quot;.&lt;/dd&gt;</span>
<span class="c"> * &lt;dt&gt;submit&lt;/dt&gt;&lt;dd&gt;&lt;em&gt;String&lt;/em&gt; : The string to use for the submit button label. Defaults to &quot;Okay&quot;.&lt;/dd&gt;</span>
<span class="c"> * &lt;dt&gt;cancel&lt;/dt&gt;&lt;dd&gt;&lt;em&gt;String&lt;/em&gt; : The string to use for the cancel button label. Defaults to &quot;Cancel&quot;.&lt;/dd&gt;</span>
<span class="c"> * &lt;dt&gt;invalidYear&lt;/dt&gt;&lt;dd&gt;&lt;em&gt;String&lt;/em&gt; : The string to use for invalid year values. Defaults to &quot;Year needs to be a number&quot;.&lt;/dd&gt;</span>
<span class="c"> * &lt;/dl&gt;</span>
<span class="c"> * &lt;/dd&gt;</span>
<span class="c"> * &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="c"> * &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="c"> * &lt;/dl&gt;</span>
<span class="c"> * &lt;p&gt;E.g.&lt;/p&gt;</span>
<span class="c"> * &lt;pre&gt;</span>
<span class="c"> * var navConfig = {</span>
<span class="c"> * strings: {</span>
<span class="c"> * month:&quot;Calendar Month&quot;,</span>
<span class="c"> * year:&quot;Calendar Year&quot;,</span>
<span class="c"> * submit: &quot;Submit&quot;,</span>
<span class="c"> * cancel: &quot;Cancel&quot;,</span>
<span class="c"> * invalidYear: &quot;Please enter a valid year&quot;</span>
<span class="c"> * },</span>
<span class="c"> * monthFormat: YAHOO.widget.Calendar.SHORT,</span>
<span class="c"> * initialFocus: &quot;month&quot;</span>
<span class="c"> * }</span>
<span class="c"> * &lt;/pre&gt;</span>
<span class="c"> * @config navigator</span>
<span class="c"> * @type {Object|Boolean}</span>
<span class="c"> * @default null</span>
<span class="c"> */</span>
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">addProperty</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">NAV</span><span class="o">.</span><span class="nx">key</span><span class="o">,</span> <span class="o">{</span> <span class="nx">value</span><span class="o">:</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">NAV</span><span class="o">.</span><span class="nx">value</span><span class="o">,</span> <span class="nx">handler</span><span class="o">:</span><span class="k">this</span><span class="o">.</span><span class="nx">configNavigator</span> <span class="o">}</span> <span class="o">);</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * The default handler for the &quot;pagedate&quot; property</span>
<span class="c"> * @method configPageDate</span>
<span class="c"> */</span>
<span class="nx">configPageDate</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">type</span><span class="o">,</span> <span class="nx">args</span><span class="o">,</span> <span class="nx">obj</span><span class="o">)</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">setProperty</span><span class="o">(</span><span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Calendar</span><span class="o">.</span><span class="nx">_DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">PAGEDATE</span><span class="o">.</span><span class="nx">key</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">_parsePageDate</span><span class="o">(</span><span class="nx">args</span><span class="o">[</span><span class="m">0</span><span class="o">]),</span> <span class="kc">true</span><span class="o">);</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * The default handler for the &quot;mindate&quot; property</span>
<span class="c"> * @method configMinDate</span>
<span class="c"> */</span>
<span class="nx">configMinDate</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">type</span><span class="o">,</span> <span class="nx">args</span><span class="o">,</span> <span class="nx">obj</span><span class="o">)</span> <span class="o">{</span>
<span class="k">var</span> <span class="nx">val</span> <span class="o">=</span> <span class="nx">args</span><span class="o">[</span><span class="m">0</span><span class="o">];</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">YAHOO</span><span class="o">.</span><span class="nx">lang</span><span class="o">.</span><span class="nx">isString</span><span class="o">(</span><span class="nx">val</span><span class="o">))</span> <span class="o">{</span>
<span class="nx">val</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">_parseDate</span><span class="o">(</span><span class="nx">val</span><span class="o">);</span>
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">setProperty</span><span class="o">(</span><span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Calendar</span><span class="o">.</span><span class="nx">_DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">MINDATE</span><span class="o">.</span><span class="nx">key</span><span class="o">,</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">DateMath</span><span class="o">.</span><span class="nx">getDate</span><span class="o">(</span><span class="nx">val</span><span class="o">[</span><span class="m">0</span><span class="o">],(</span><span class="nx">val</span><span class="o">[</span><span class="m">1</span><span class="o">]-</span><span class="m">1</span><span class="o">),</span><span class="nx">val</span><span class="o">[</span><span class="m">2</span><span class="o">]));</span>
<span class="o">}</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * The default handler for the &quot;maxdate&quot; property</span>
<span class="c"> * @method configMaxDate</span>
<span class="c"> */</span>
<span class="nx">configMaxDate</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">type</span><span class="o">,</span> <span class="nx">args</span><span class="o">,</span> <span class="nx">obj</span><span class="o">)</span> <span class="o">{</span>
<span class="k">var</span> <span class="nx">val</span> <span class="o">=</span> <span class="nx">args</span><span class="o">[</span><span class="m">0</span><span class="o">];</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">YAHOO</span><span class="o">.</span><span class="nx">lang</span><span class="o">.</span><span class="nx">isString</span><span class="o">(</span><span class="nx">val</span><span class="o">))</span> <span class="o">{</span>
<span class="nx">val</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">_parseDate</span><span class="o">(</span><span class="nx">val</span><span class="o">);</span>
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">setProperty</span><span class="o">(</span><span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Calendar</span><span class="o">.</span><span class="nx">_DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">MAXDATE</span><span class="o">.</span><span class="nx">key</span><span class="o">,</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">DateMath</span><span class="o">.</span><span class="nx">getDate</span><span class="o">(</span><span class="nx">val</span><span class="o">[</span><span class="m">0</span><span class="o">],(</span><span class="nx">val</span><span class="o">[</span><span class="m">1</span><span class="o">]-</span><span class="m">1</span><span class="o">),</span><span class="nx">val</span><span class="o">[</span><span class="m">2</span><span class="o">]));</span>
<span class="o">}</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * The default handler for the &quot;selected&quot; property</span>
<span class="c"> * @method configSelected</span>
<span class="c"> */</span>
<span class="nx">configSelected</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">type</span><span class="o">,</span> <span class="nx">args</span><span class="o">,</span> <span class="nx">obj</span><span class="o">)</span> <span class="o">{</span>
<span class="k">var</span> <span class="nx">selected</span> <span class="o">=</span> <span class="nx">args</span><span class="o">[</span><span class="m">0</span><span class="o">];</span>
<span class="k">var</span> <span class="nx">cfgSelected</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Calendar</span><span class="o">.</span><span class="nx">_DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">SELECTED</span><span class="o">.</span><span class="nx">key</span><span class="o">;</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">selected</span><span class="o">)</span> <span class="o">{</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">YAHOO</span><span class="o">.</span><span class="nx">lang</span><span class="o">.</span><span class="nx">isString</span><span class="o">(</span><span class="nx">selected</span><span class="o">))</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">setProperty</span><span class="o">(</span><span class="nx">cfgSelected</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">_parseDates</span><span class="o">(</span><span class="nx">selected</span><span class="o">),</span> <span class="kc">true</span><span class="o">);</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="k">if</span> <span class="o">(!</span> <span class="k">this</span><span class="o">.</span><span class="nx">_selectedDates</span><span class="o">)</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">_selectedDates</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="nx">cfgSelected</span><span class="o">);</span>
<span class="o">}</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * The default handler for all configuration options properties</span>
<span class="c"> * @method configOptions</span>
<span class="c"> */</span>
<span class="nx">configOptions</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">type</span><span class="o">,</span> <span class="nx">args</span><span class="o">,</span> <span class="nx">obj</span><span class="o">)</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">Options</span><span class="o">[</span><span class="nx">type</span><span class="o">.</span><span class="nx">toUpperCase</span><span class="o">()]</span> <span class="o">=</span> <span class="nx">args</span><span class="o">[</span><span class="m">0</span><span class="o">];</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * The default handler for all configuration locale properties</span>
<span class="c"> * @method configLocale</span>
<span class="c"> */</span>
<span class="nx">configLocale</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">type</span><span class="o">,</span> <span class="nx">args</span><span class="o">,</span> <span class="nx">obj</span><span class="o">)</span> <span class="o">{</span>
<span class="k">var</span> <span class="nx">defCfg</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Calendar</span><span class="o">.</span><span class="nx">_DEFAULT_CONFIG</span><span class="o">;</span>
<span class="k">this</span><span class="o">.</span><span class="nx">Locale</span><span class="o">[</span><span class="nx">type</span><span class="o">.</span><span class="nx">toUpperCase</span><span class="o">()]</span> <span class="o">=</span> <span class="nx">args</span><span class="o">[</span><span class="m">0</span><span class="o">];</span>
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">refireEvent</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">LOCALE_MONTHS</span><span class="o">.</span><span class="nx">key</span><span class="o">);</span>
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">refireEvent</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">LOCALE_WEEKDAYS</span><span class="o">.</span><span class="nx">key</span><span class="o">);</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * The default handler for all configuration locale field length properties</span>
<span class="c"> * @method configLocaleValues</span>
<span class="c"> */</span>
<span class="nx">configLocaleValues</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">type</span><span class="o">,</span> <span class="nx">args</span><span class="o">,</span> <span class="nx">obj</span><span class="o">)</span> <span class="o">{</span>
<span class="k">var</span> <span class="nx">defCfg</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Calendar</span><span class="o">.</span><span class="nx">_DEFAULT_CONFIG</span><span class="o">;</span>
<span class="nx">type</span> <span class="o">=</span> <span class="nx">type</span><span class="o">.</span><span class="nx">toLowerCase</span><span class="o">();</span>
<span class="k">var</span> <span class="nx">val</span> <span class="o">=</span> <span class="nx">args</span><span class="o">[</span><span class="m">0</span><span class="o">];</span>
<span class="nx">switch</span> <span class="o">(</span><span class="nx">type</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">case</span> <span class="nx">defCfg</span><span class="o">.</span><span class="nx">LOCALE_MONTHS</span><span class="o">.</span><span class="nx">key</span><span class="o">:</span>
<span class="nx">switch</span> <span class="o">(</span><span class="nx">val</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">case</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Calendar</span><span class="o">.</span><span class="nx">SHORT</span><span class="o">:</span>
<span class="k">this</span><span class="o">.</span><span class="nx">Locale</span><span class="o">.</span><span class="nx">LOCALE_MONTHS</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">MONTHS_SHORT</span><span class="o">.</span><span class="nx">key</span><span class="o">).</span><span class="nx">concat</span><span class="o">();</span>
<span class="k">break</span><span class="o">;</span>
<span class="nx">case</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Calendar</span><span class="o">.</span><span class="nx">LONG</span><span class="o">:</span>
<span class="k">this</span><span class="o">.</span><span class="nx">Locale</span><span class="o">.</span><span class="nx">LOCALE_MONTHS</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">MONTHS_LONG</span><span class="o">.</span><span class="nx">key</span><span class="o">).</span><span class="nx">concat</span><span class="o">();</span>
<span class="k">break</span><span class="o">;</span>
<span class="o">}</span>
<span class="k">break</span><span class="o">;</span>
<span class="nx">case</span> <span class="nx">defCfg</span><span class="o">.</span><span class="nx">LOCALE_WEEKDAYS</span><span class="o">.</span><span class="nx">key</span><span class="o">:</span>
<span class="nx">switch</span> <span class="o">(</span><span class="nx">val</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">case</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Calendar</span><span class="o">.</span><span class="nx">ONE_CHAR</span><span class="o">:</span>
<span class="k">this</span><span class="o">.</span><span class="nx">Locale</span><span class="o">.</span><span class="nx">LOCALE_WEEKDAYS</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">WEEKDAYS_1CHAR</span><span class="o">.</span><span class="nx">key</span><span class="o">).</span><span class="nx">concat</span><span class="o">();</span>
<span class="k">break</span><span class="o">;</span>
<span class="nx">case</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Calendar</span><span class="o">.</span><span class="nx">SHORT</span><span class="o">:</span>
<span class="k">this</span><span class="o">.</span><span class="nx">Locale</span><span class="o">.</span><span class="nx">LOCALE_WEEKDAYS</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">WEEKDAYS_SHORT</span><span class="o">.</span><span class="nx">key</span><span class="o">).</span><span class="nx">concat</span><span class="o">();</span>
<span class="k">break</span><span class="o">;</span>
<span class="nx">case</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Calendar</span><span class="o">.</span><span class="nx">MEDIUM</span><span class="o">:</span>
<span class="k">this</span><span class="o">.</span><span class="nx">Locale</span><span class="o">.</span><span class="nx">LOCALE_WEEKDAYS</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">WEEKDAYS_MEDIUM</span><span class="o">.</span><span class="nx">key</span><span class="o">).</span><span class="nx">concat</span><span class="o">();</span>
<span class="k">break</span><span class="o">;</span>
<span class="nx">case</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Calendar</span><span class="o">.</span><span class="nx">LONG</span><span class="o">:</span>
<span class="k">this</span><span class="o">.</span><span class="nx">Locale</span><span class="o">.</span><span class="nx">LOCALE_WEEKDAYS</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">WEEKDAYS_LONG</span><span class="o">.</span><span class="nx">key</span><span class="o">).</span><span class="nx">concat</span><span class="o">();</span>
<span class="k">break</span><span class="o">;</span>
<span class="o">}</span>
<span class="k">var</span> <span class="nx">START_WEEKDAY</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">START_WEEKDAY</span><span class="o">.</span><span class="nx">key</span><span class="o">);</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">START_WEEKDAY</span> <span class="o">&gt;</span> <span class="m">0</span><span class="o">)</span> <span class="o">{</span>
<span class="k">for</span> <span class="o">(</span><span class="k">var</span> <span class="nx">w</span><span class="o">=</span><span class="m">0</span><span class="o">;</span><span class="nx">w</span><span class="o">&lt;</span><span class="nx">START_WEEKDAY</span><span class="o">;++</span><span class="nx">w</span><span class="o">)</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">Locale</span><span class="o">.</span><span class="nx">LOCALE_WEEKDAYS</span><span class="o">.</span><span class="nx">push</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">Locale</span><span class="o">.</span><span class="nx">LOCALE_WEEKDAYS</span><span class="o">.</span><span class="nx">shift</span><span class="o">());</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="k">break</span><span class="o">;</span>
<span class="o">}</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * The default handler for the &quot;navigator&quot; property</span>
<span class="c"> * @method configNavigator</span>
<span class="c"> */</span>
<span class="nx">configNavigator</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">type</span><span class="o">,</span> <span class="nx">args</span><span class="o">,</span> <span class="nx">obj</span><span class="o">)</span> <span class="o">{</span>
<span class="k">var</span> <span class="nx">val</span> <span class="o">=</span> <span class="nx">args</span><span class="o">[</span><span class="m">0</span><span class="o">];</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">CalendarNavigator</span> <span class="o">&amp;&amp;</span> <span class="o">(</span><span class="nx">val</span> <span class="o">===</span> <span class="kc">true</span> <span class="o">||</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">lang</span><span class="o">.</span><span class="nx">isObject</span><span class="o">(</span><span class="nx">val</span><span class="o">)))</span> <span class="o">{</span>
<span class="k">if</span> <span class="o">(!</span><span class="k">this</span><span class="o">.</span><span class="nx">oNavigator</span><span class="o">)</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">oNavigator</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">CalendarNavigator</span><span class="o">(</span><span class="k">this</span><span class="o">);</span>
<span class="c">// Cleanup DOM Refs/Events before innerHTML is removed.</span>
<span class="c"></span> <span class="k">function</span> <span class="nx">erase</span><span class="o">()</span> <span class="o">{</span>
<span class="k">if</span> <span class="o">(!</span><span class="k">this</span><span class="o">.</span><span class="nx">pages</span><span class="o">)</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">oNavigator</span><span class="o">.</span><span class="nx">erase</span><span class="o">();</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="k">this</span><span class="o">.</span><span class="nx">beforeRenderEvent</span><span class="o">.</span><span class="nx">subscribe</span><span class="o">(</span><span class="nx">erase</span><span class="o">,</span> <span class="k">this</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
<span class="o">}</span>
<span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">oNavigator</span><span class="o">)</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">oNavigator</span><span class="o">.</span><span class="nx">destroy</span><span class="o">();</span>
<span class="k">this</span><span class="o">.</span><span class="nx">oNavigator</span> <span class="o">=</span> <span class="kc">null</span><span class="o">;</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Defines the style constants for the Calendar</span>
<span class="c"> * @method initStyles</span>
<span class="c"> */</span>
<span class="nx">initStyles</span> <span class="o">:</span> <span class="k">function</span><span class="o">()</span> <span class="o">{</span>
<span class="k">var</span> <span class="nx">defStyle</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Calendar</span><span class="o">.</span><span class="nx">_STYLES</span><span class="o">;</span>
<span class="k">this</span><span class="o">.</span><span class="nx">Style</span> <span class="o">=</span> <span class="o">{</span>
<span class="c">/**</span>
<span class="c"> * @property Style.CSS_ROW_HEADER</span>
<span class="c"> */</span>
<span class="nx">CSS_ROW_HEADER</span><span class="o">:</span> <span class="nx">defStyle</span><span class="o">.</span><span class="nx">CSS_ROW_HEADER</span><span class="o">,</span>
<span class="c">/**</span>
<span class="c"> * @property Style.CSS_ROW_FOOTER</span>
<span class="c"> */</span>
<span class="nx">CSS_ROW_FOOTER</span><span class="o">:</span> <span class="nx">defStyle</span><span class="o">.</span><span class="nx">CSS_ROW_FOOTER</span><span class="o">,</span>
<span class="c">/**</span>
<span class="c"> * @property Style.CSS_CELL</span>
<span class="c"> */</span>
<span class="nx">CSS_CELL</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="o">.</span><span class="nx">CSS_CELL</span><span class="o">,</span>
<span class="c">/**</span>
<span class="c"> * @property Style.CSS_CELL_SELECTOR</span>
<span class="c"> */</span>
<span class="nx">CSS_CELL_SELECTOR</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="o">.</span><span class="nx">CSS_CELL_SELECTOR</span><span class="o">,</span>
<span class="c">/**</span>
<span class="c"> * @property Style.CSS_CELL_SELECTED</span>
<span class="c"> */</span>
<span class="nx">CSS_CELL_SELECTED</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="o">.</span><span class="nx">CSS_CELL_SELECTED</span><span class="o">,</span>
<span class="c">/**</span>
<span class="c"> * @property Style.CSS_CELL_SELECTABLE</span>
<span class="c"> */</span>
<span class="nx">CSS_CELL_SELECTABLE</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="o">.</span><span class="nx">CSS_CELL_SELECTABLE</span><span class="o">,</span>
<span class="c">/**</span>
<span class="c"> * @property Style.CSS_CELL_RESTRICTED</span>
<span class="c"> */</span>
<span class="nx">CSS_CELL_RESTRICTED</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="o">.</span><span class="nx">CSS_CELL_RESTRICTED</span><span class="o">,</span>
<span class="c">/**</span>
<span class="c"> * @property Style.CSS_CELL_TODAY</span>
<span class="c"> */</span>
<span class="nx">CSS_CELL_TODAY</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="o">.</span><span class="nx">CSS_CELL_TODAY</span><span class="o">,</span>
<span class="c">/**</span>
<span class="c"> * @property Style.CSS_CELL_OOM</span>
<span class="c"> */</span>
<span class="nx">CSS_CELL_OOM</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="o">.</span><span class="nx">CSS_CELL_OOM</span><span class="o">,</span>
<span class="c">/**</span>
<span class="c"> * @property Style.CSS_CELL_OOB</span>
<span class="c"> */</span>
<span class="nx">CSS_CELL_OOB</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="o">.</span><span class="nx">CSS_CELL_OOB</span><span class="o">,</span>
<span class="c">/**</span>
<span class="c"> * @property Style.CSS_HEADER</span>
<span class="c"> */</span>
<span class="nx">CSS_HEADER</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="o">.</span><span class="nx">CSS_HEADER</span><span class="o">,</span>
<span class="c">/**</span>
<span class="c"> * @property Style.CSS_HEADER_TEXT</span>
<span class="c"> */</span>
<span class="nx">CSS_HEADER_TEXT</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="o">.</span><span class="nx">CSS_HEADER_TEXT</span><span class="o">,</span>
<span class="c">/**</span>
<span class="c"> * @property Style.CSS_BODY</span>
<span class="c"> */</span>
<span class="nx">CSS_BODY</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="o">.</span><span class="nx">CSS_BODY</span><span class="o">,</span>
<span class="c">/**</span>
<span class="c"> * @property Style.CSS_WEEKDAY_CELL</span>
<span class="c"> */</span>
<span class="nx">CSS_WEEKDAY_CELL</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="o">.</span><span class="nx">CSS_WEEKDAY_CELL</span><span class="o">,</span>
<span class="c">/**</span>
<span class="c"> * @property Style.CSS_WEEKDAY_ROW</span>
<span class="c"> */</span>
<span class="nx">CSS_WEEKDAY_ROW</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="o">.</span><span class="nx">CSS_WEEKDAY_ROW</span><span class="o">,</span>
<span class="c">/**</span>
<span class="c"> * @property Style.CSS_FOOTER</span>
<span class="c"> */</span>
<span class="nx">CSS_FOOTER</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="o">.</span><span class="nx">CSS_FOOTER</span><span class="o">,</span>
<span class="c">/**</span>
<span class="c"> * @property Style.CSS_CALENDAR</span>
<span class="c"> */</span>
<span class="nx">CSS_CALENDAR</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="o">.</span><span class="nx">CSS_CALENDAR</span><span class="o">,</span>
<span class="c">/**</span>
<span class="c"> * @property Style.CSS_SINGLE</span>
<span class="c"> */</span>
<span class="nx">CSS_SINGLE</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="o">.</span><span class="nx">CSS_SINGLE</span><span class="o">,</span>
<span class="c">/**</span>
<span class="c"> * @property Style.CSS_CONTAINER</span>
<span class="c"> */</span>
<span class="nx">CSS_CONTAINER</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="o">.</span><span class="nx">CSS_CONTAINER</span><span class="o">,</span>
<span class="c">/**</span>
<span class="c"> * @property Style.CSS_NAV_LEFT</span>
<span class="c"> */</span>
<span class="nx">CSS_NAV_LEFT</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="o">.</span><span class="nx">CSS_NAV_LEFT</span><span class="o">,</span>
<span class="c">/**</span>
<span class="c"> * @property Style.CSS_NAV_RIGHT</span>
<span class="c"> */</span>
<span class="nx">CSS_NAV_RIGHT</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="o">.</span><span class="nx">CSS_NAV_RIGHT</span><span class="o">,</span>
<span class="c">/**</span>
<span class="c"> * @property Style.CSS_NAV</span>
<span class="c"> */</span>
<span class="nx">CSS_NAV</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="o">.</span><span class="nx">CSS_NAV</span><span class="o">,</span>
<span class="c">/**</span>
<span class="c"> * @property Style.CSS_CLOSE</span>
<span class="c"> */</span>
<span class="nx">CSS_CLOSE</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="o">.</span><span class="nx">CSS_CLOSE</span><span class="o">,</span>
<span class="c">/**</span>
<span class="c"> * @property Style.CSS_CELL_TOP</span>
<span class="c"> */</span>
<span class="nx">CSS_CELL_TOP</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="o">.</span><span class="nx">CSS_CELL_TOP</span><span class="o">,</span>
<span class="c">/**</span>
<span class="c"> * @property Style.CSS_CELL_LEFT</span>
<span class="c"> */</span>
<span class="nx">CSS_CELL_LEFT</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="o">.</span><span class="nx">CSS_CELL_LEFT</span><span class="o">,</span>
<span class="c">/**</span>
<span class="c"> * @property Style.CSS_CELL_RIGHT</span>
<span class="c"> */</span>
<span class="nx">CSS_CELL_RIGHT</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="o">.</span><span class="nx">CSS_CELL_RIGHT</span><span class="o">,</span>
<span class="c">/**</span>
<span class="c"> * @property Style.CSS_CELL_BOTTOM</span>
<span class="c"> */</span>
<span class="nx">CSS_CELL_BOTTOM</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="o">.</span><span class="nx">CSS_CELL_BOTTOM</span><span class="o">,</span>
<span class="c">/**</span>
<span class="c"> * @property Style.CSS_CELL_HOVER</span>
<span class="c"> */</span>
<span class="nx">CSS_CELL_HOVER</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="o">.</span><span class="nx">CSS_CELL_HOVER</span><span class="o">,</span>
<span class="c">/**</span>
<span class="c"> * @property Style.CSS_CELL_HIGHLIGHT1</span>
<span class="c"> */</span>
<span class="nx">CSS_CELL_HIGHLIGHT1</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="o">.</span><span class="nx">CSS_CELL_HIGHLIGHT1</span><span class="o">,</span>
<span class="c">/**</span>
<span class="c"> * @property Style.CSS_CELL_HIGHLIGHT2</span>
<span class="c"> */</span>
<span class="nx">CSS_CELL_HIGHLIGHT2</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="o">.</span><span class="nx">CSS_CELL_HIGHLIGHT2</span><span class="o">,</span>
<span class="c">/**</span>
<span class="c"> * @property Style.CSS_CELL_HIGHLIGHT3</span>
<span class="c"> */</span>
<span class="nx">CSS_CELL_HIGHLIGHT3</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="o">.</span><span class="nx">CSS_CELL_HIGHLIGHT3</span><span class="o">,</span>
<span class="c">/**</span>
<span class="c"> * @property Style.CSS_CELL_HIGHLIGHT4</span>
<span class="c"> */</span>
<span class="nx">CSS_CELL_HIGHLIGHT4</span> <span class="o">:</span> <span class="nx">defStyle</span><span class="o">.</span><span class="nx">CSS_CELL_HIGHLIGHT4</span>
<span class="o">};</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Builds the date label that will be displayed in the calendar header or</span>
<span class="c"> * footer, depending on configuration.</span>
<span class="c"> * @method buildMonthLabel</span>
<span class="c"> * @return {String} The formatted calendar month label</span>
<span class="c"> */</span>
<span class="nx">buildMonthLabel</span> <span class="o">:</span> <span class="k">function</span><span class="o">()</span> <span class="o">{</span>
<span class="k">var</span> <span class="nx">pageDate</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Calendar</span><span class="o">.</span><span class="nx">_DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">PAGEDATE</span><span class="o">.</span><span class="nx">key</span><span class="o">);</span>
<span class="k">var</span> <span class="nx">monthLabel</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">Locale</span><span class="o">.</span><span class="nx">LOCALE_MONTHS</span><span class="o">[</span><span class="nx">pageDate</span><span class="o">.</span><span class="nx">getMonth</span><span class="o">()]</span> <span class="o">+</span> <span class="k">this</span><span class="o">.</span><span class="nx">Locale</span><span class="o">.</span><span class="nx">MY_LABEL_MONTH_SUFFIX</span><span class="o">;</span>
<span class="k">var</span> <span class="nx">yearLabel</span> <span class="o">=</span> <span class="nx">pageDate</span><span class="o">.</span><span class="nx">getFullYear</span><span class="o">()</span> <span class="o">+</span> <span class="k">this</span><span class="o">.</span><span class="nx">Locale</span><span class="o">.</span><span class="nx">MY_LABEL_YEAR_SUFFIX</span><span class="o">;</span>
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">Locale</span><span class="o">.</span><span class="nx">MY_LABEL_MONTH_POSITION</span> <span class="o">==</span> <span class="m">2</span> <span class="o">||</span> <span class="k">this</span><span class="o">.</span><span class="nx">Locale</span><span class="o">.</span><span class="nx">MY_LABEL_YEAR_POSITION</span> <span class="o">==</span> <span class="m">1</span><span class="o">)</span> <span class="o">{</span>
<span class="k">return</span> <span class="nx">yearLabel</span> <span class="o">+</span> <span class="nx">monthLabel</span><span class="o">;</span>
<span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
<span class="k">return</span> <span class="nx">monthLabel</span> <span class="o">+</span> <span class="nx">yearLabel</span><span class="o">;</span>
<span class="o">}</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Builds the date digit that will be displayed in calendar cells</span>
<span class="c"> * @method buildDayLabel</span>
<span class="c"> * @param {Date} workingDate The current working date</span>
<span class="c"> * @return {String} The formatted day label</span>
<span class="c"> */</span>
<span class="nx">buildDayLabel</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">workingDate</span><span class="o">)</span> <span class="o">{</span>
<span class="k">return</span> <span class="nx">workingDate</span><span class="o">.</span><span class="nx">getDate</span><span class="o">();</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Creates the title bar element and adds it to Calendar container DIV</span>
<span class="c"> * </span>
<span class="c"> * @method createTitleBar</span>
<span class="c"> * @param {String} strTitle The title to display in the title bar</span>
<span class="c"> * @return The title bar element</span>
<span class="c"> */</span>
<span class="nx">createTitleBar</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">strTitle</span><span class="o">)</span> <span class="o">{</span>
<span class="k">var</span> <span class="nx">tDiv</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Dom</span><span class="o">.</span><span class="nx">getElementsByClassName</span><span class="o">(</span><span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">CalendarGroup</span><span class="o">.</span><span class="nx">CSS_2UPTITLE</span><span class="o">,</span> <span class="s2">&quot;div&quot;</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">oDomContainer</span><span class="o">)[</span><span class="m">0</span><span class="o">]</span> <span class="o">||</span> <span class="nb">document</span><span class="o">.</span><span class="nx">createElement</span><span class="o">(</span><span class="s2">&quot;div&quot;</span><span class="o">);</span>
<span class="nx">tDiv</span><span class="o">.</span><span class="nx">className</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">CalendarGroup</span><span class="o">.</span><span class="nx">CSS_2UPTITLE</span><span class="o">;</span>
<span class="nx">tDiv</span><span class="o">.</span><span class="nx">innerHTML</span> <span class="o">=</span> <span class="nx">strTitle</span><span class="o">;</span>
<span class="k">this</span><span class="o">.</span><span class="nx">oDomContainer</span><span class="o">.</span><span class="nx">insertBefore</span><span class="o">(</span><span class="nx">tDiv</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">oDomContainer</span><span class="o">.</span><span class="nx">firstChild</span><span class="o">);</span>
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Dom</span><span class="o">.</span><span class="nx">addClass</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">oDomContainer</span><span class="o">,</span> <span class="s2">&quot;withtitle&quot;</span><span class="o">);</span>
<span class="k">return</span> <span class="nx">tDiv</span><span class="o">;</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Removes the title bar element from the DOM</span>
<span class="c"> * </span>
<span class="c"> * @method removeTitleBar</span>
<span class="c"> */</span>
<span class="nx">removeTitleBar</span> <span class="o">:</span> <span class="k">function</span><span class="o">()</span> <span class="o">{</span>
<span class="k">var</span> <span class="nx">tDiv</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Dom</span><span class="o">.</span><span class="nx">getElementsByClassName</span><span class="o">(</span><span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">CalendarGroup</span><span class="o">.</span><span class="nx">CSS_2UPTITLE</span><span class="o">,</span> <span class="s2">&quot;div&quot;</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">oDomContainer</span><span class="o">)[</span><span class="m">0</span><span class="o">]</span> <span class="o">||</span> <span class="kc">null</span><span class="o">;</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">tDiv</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Event</span><span class="o">.</span><span class="nx">purgeElement</span><span class="o">(</span><span class="nx">tDiv</span><span class="o">);</span>
<span class="k">this</span><span class="o">.</span><span class="nx">oDomContainer</span><span class="o">.</span><span class="nx">removeChild</span><span class="o">(</span><span class="nx">tDiv</span><span class="o">);</span>
<span class="o">}</span>
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Dom</span><span class="o">.</span><span class="nx">removeClass</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">oDomContainer</span><span class="o">,</span> <span class="s2">&quot;withtitle&quot;</span><span class="o">);</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Creates the close button HTML element and adds it to Calendar container DIV</span>
<span class="c"> * </span>
<span class="c"> * @method createCloseButton</span>
<span class="c"> * @return The close HTML element created</span>
<span class="c"> */</span>
<span class="nx">createCloseButton</span> <span class="o">:</span> <span class="k">function</span><span class="o">()</span> <span class="o">{</span>
<span class="k">var</span> <span class="nx">Dom</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Dom</span><span class="o">,</span>
<span class="nx">Event</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Event</span><span class="o">,</span>
<span class="nx">cssClose</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">CalendarGroup</span><span class="o">.</span><span class="nx">CSS_2UPCLOSE</span><span class="o">,</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="o">;</span>
<span class="k">var</span> <span class="nx">lnk</span> <span class="o">=</span> <span class="nx">Dom</span><span class="o">.</span><span class="nx">getElementsByClassName</span><span class="o">(</span><span class="s2">&quot;link-close&quot;</span><span class="o">,</span> <span class="s2">&quot;a&quot;</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">oDomContainer</span><span class="o">)[</span><span class="m">0</span><span class="o">];</span>
<span class="k">if</span> <span class="o">(!</span><span class="nx">lnk</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">lnk</span> <span class="o">=</span> <span class="nb">document</span><span class="o">.</span><span class="nx">createElement</span><span class="o">(</span><span class="s2">&quot;a&quot;</span><span class="o">);</span>
<span class="nx">Event</span><span class="o">.</span><span class="nx">addListener</span><span class="o">(</span><span class="nx">lnk</span><span class="o">,</span> <span class="s2">&quot;click&quot;</span><span class="o">,</span> <span class="k">function</span><span class="o">(</span><span class="nx">e</span><span class="o">,</span> <span class="nx">cal</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">cal</span><span class="o">.</span><span class="nx">hide</span><span class="o">();</span>
<span class="nx">Event</span><span class="o">.</span><span class="nx">preventDefault</span><span class="o">(</span><span class="nx">e</span><span class="o">);</span>
<span class="o">},</span> <span class="k">this</span><span class="o">);</span>
<span class="o">}</span>
<span class="nx">lnk</span><span class="o">.</span><span class="nx">href</span> <span class="o">=</span> <span class="s2">&quot;#&quot;</span><span class="o">;</span>
<span class="nx">lnk</span><span class="o">.</span><span class="nx">className</span> <span class="o">=</span> <span class="s2">&quot;link-close&quot;</span><span class="o">;</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Calendar</span><span class="o">.</span><span class="nx">IMG_ROOT</span> <span class="o">!==</span> <span class="kc">null</span><span class="o">)</span> <span class="o">{</span>
<span class="k">var</span> <span class="nx">img</span> <span class="o">=</span> <span class="nx">Dom</span><span class="o">.</span><span class="nx">getElementsByClassName</span><span class="o">(</span><span class="nx">cssClose</span><span class="o">,</span> <span class="s2">&quot;img&quot;</span><span class="o">,</span> <span class="nx">lnk</span><span class="o">)[</span><span class="m">0</span><span class="o">]</span> <span class="o">||</span> <span class="nb">document</span><span class="o">.</span><span class="nx">createElement</span><span class="o">(</span><span class="s2">&quot;img&quot;</span><span class="o">);</span>
<span class="nx">img</span><span class="o">.</span><span class="nx">src</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Calendar</span><span class="o">.</span><span class="nx">IMG_ROOT</span> <span class="o">+</span> <span class="nx">DEPR_CLOSE_PATH</span><span class="o">;</span>
<span class="nx">img</span><span class="o">.</span><span class="nx">className</span> <span class="o">=</span> <span class="nx">cssClose</span><span class="o">;</span>
<span class="nx">lnk</span><span class="o">.</span><span class="nx">appendChild</span><span class="o">(</span><span class="nx">img</span><span class="o">);</span>
<span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
<span class="nx">lnk</span><span class="o">.</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="o">.</span><span class="nx">Style</span><span class="o">.</span><span class="nx">CSS_CLOSE</span> <span class="o">+</span> <span class="s1">&#39;&quot;&gt;&lt;/span&gt;&#39;</span><span class="o">;</span>
<span class="o">}</span>
<span class="k">this</span><span class="o">.</span><span class="nx">oDomContainer</span><span class="o">.</span><span class="nx">appendChild</span><span class="o">(</span><span class="nx">lnk</span><span class="o">);</span>
<span class="k">return</span> <span class="nx">lnk</span><span class="o">;</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Removes the close button HTML element from the DOM</span>
<span class="c"> * </span>
<span class="c"> * @method removeCloseButton</span>
<span class="c"> */</span>
<span class="nx">removeCloseButton</span> <span class="o">:</span> <span class="k">function</span><span class="o">()</span> <span class="o">{</span>
<span class="k">var</span> <span class="nx">btn</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Dom</span><span class="o">.</span><span class="nx">getElementsByClassName</span><span class="o">(</span><span class="s2">&quot;link-close&quot;</span><span class="o">,</span> <span class="s2">&quot;a&quot;</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">oDomContainer</span><span class="o">)[</span><span class="m">0</span><span class="o">]</span> <span class="o">||</span> <span class="kc">null</span><span class="o">;</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">btn</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Event</span><span class="o">.</span><span class="nx">purgeElement</span><span class="o">(</span><span class="nx">btn</span><span class="o">);</span>
<span class="k">this</span><span class="o">.</span><span class="nx">oDomContainer</span><span class="o">.</span><span class="nx">removeChild</span><span class="o">(</span><span class="nx">btn</span><span class="o">);</span>
<span class="o">}</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Renders the calendar header.</span>
<span class="c"> * @method renderHeader</span>
<span class="c"> * @param {Array} html The current working HTML array</span>
<span class="c"> * @return {Array} The current working HTML array</span>
<span class="c"> */</span>
<span class="nx">renderHeader</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">html</span><span class="o">)</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">logger</span><span class="o">.</span><span class="nx">log</span><span class="o">(</span><span class="s2">&quot;Rendering header&quot;</span><span class="o">,</span> <span class="s2">&quot;render&quot;</span><span class="o">);</span>
<span class="k">var</span> <span class="nx">colSpan</span> <span class="o">=</span> <span class="m">7</span><span class="o">;</span>
<span class="k">var</span> <span class="nx">DEPR_NAV_LEFT</span> <span class="o">=</span> <span class="s2">&quot;us/tr/callt.gif&quot;</span><span class="o">;</span>
<span class="k">var</span> <span class="nx">DEPR_NAV_RIGHT</span> <span class="o">=</span> <span class="s2">&quot;us/tr/calrt.gif&quot;</span><span class="o">;</span>
<span class="k">var</span> <span class="nx">defCfg</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Calendar</span><span class="o">.</span><span class="nx">_DEFAULT_CONFIG</span><span class="o">;</span>
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">SHOW_WEEK_HEADER</span><span class="o">.</span><span class="nx">key</span><span class="o">))</span> <span class="o">{</span>
<span class="nx">colSpan</span> <span class="o">+=</span> <span class="m">1</span><span class="o">;</span>
<span class="o">}</span>
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">SHOW_WEEK_FOOTER</span><span class="o">.</span><span class="nx">key</span><span class="o">))</span> <span class="o">{</span>
<span class="nx">colSpan</span> <span class="o">+=</span> <span class="m">1</span><span class="o">;</span>
<span class="o">}</span>
<span class="nx">html</span><span class="o">[</span><span class="nx">html</span><span class="o">.</span><span class="nx">length</span><span class="o">]</span> <span class="o">=</span> <span class="s2">&quot;&lt;thead&gt;&quot;</span><span class="o">;</span>
<span class="nx">html</span><span class="o">[</span><span class="nx">html</span><span class="o">.</span><span class="nx">length</span><span class="o">]</span> <span class="o">=</span> <span class="s2">&quot;&lt;tr&gt;&quot;</span><span class="o">;</span>
<span class="nx">html</span><span class="o">[</span><span class="nx">html</span><span class="o">.</span><span class="nx">length</span><span class="o">]</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="o">.</span><span class="nx">Style</span><span class="o">.</span><span class="nx">CSS_HEADER_TEXT</span> <span class="o">+</span> <span class="s1">&#39;&quot;&gt;&#39;</span><span class="o">;</span>
<span class="nx">html</span><span class="o">[</span><span class="nx">html</span><span class="o">.</span><span class="nx">length</span><span class="o">]</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="o">.</span><span class="nx">Style</span><span class="o">.</span><span class="nx">CSS_HEADER</span> <span class="o">+</span> <span class="s1">&#39;&quot;&gt;&#39;</span><span class="o">;</span>
<span class="k">var</span> <span class="nx">renderLeft</span><span class="o">,</span> <span class="nx">renderRight</span> <span class="o">=</span> <span class="kc">false</span><span class="o">;</span>
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">parent</span><span class="o">)</span> <span class="o">{</span>
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">index</span> <span class="o">===</span> <span class="m">0</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">renderLeft</span> <span class="o">=</span> <span class="kc">true</span><span class="o">;</span>
<span class="o">}</span>
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">index</span> <span class="o">==</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">parent</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="s2">&quot;pages&quot;</span><span class="o">)</span> <span class="o">-</span><span class="m">1</span><span class="o">))</span> <span class="o">{</span>
<span class="nx">renderRight</span> <span class="o">=</span> <span class="kc">true</span><span class="o">;</span>
<span class="o">}</span>
<span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
<span class="nx">renderLeft</span> <span class="o">=</span> <span class="kc">true</span><span class="o">;</span>
<span class="nx">renderRight</span> <span class="o">=</span> <span class="kc">true</span><span class="o">;</span>
<span class="o">}</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">renderLeft</span><span class="o">)</span> <span class="o">{</span>
<span class="k">var</span> <span class="nx">leftArrow</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">NAV_ARROW_LEFT</span><span class="o">.</span><span class="nx">key</span><span class="o">);</span>
<span class="c">// 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="c"></span> <span class="k">if</span> <span class="o">(</span><span class="nx">leftArrow</span> <span class="o">===</span> <span class="kc">null</span> <span class="o">&amp;&amp;</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Calendar</span><span class="o">.</span><span class="nx">IMG_ROOT</span> <span class="o">!==</span> <span class="kc">null</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">leftArrow</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Calendar</span><span class="o">.</span><span class="nx">IMG_ROOT</span> <span class="o">+</span> <span class="nx">DEPR_NAV_LEFT</span><span class="o">;</span>
<span class="o">}</span>
<span class="k">var</span> <span class="nx">leftStyle</span> <span class="o">=</span> <span class="o">(</span><span class="nx">leftArrow</span> <span class="o">===</span> <span class="kc">null</span><span class="o">)</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="o">;</span>
<span class="nx">html</span><span class="o">[</span><span class="nx">html</span><span class="o">.</span><span class="nx">length</span><span class="o">]</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="o">.</span><span class="nx">Style</span><span class="o">.</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; &gt;&amp;#160;&lt;/a&gt;&#39;</span><span class="o">;</span>
<span class="o">}</span>
<span class="k">var</span> <span class="nx">lbl</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">buildMonthLabel</span><span class="o">();</span>
<span class="k">var</span> <span class="nx">cal</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">parent</span> <span class="o">||</span> <span class="k">this</span><span class="o">;</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">cal</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="s2">&quot;navigator&quot;</span><span class="o">))</span> <span class="o">{</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="o">.</span><span class="nx">Style</span><span class="o">.</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="o">;</span>
<span class="o">}</span>
<span class="nx">html</span><span class="o">[</span><span class="nx">html</span><span class="o">.</span><span class="nx">length</span><span class="o">]</span> <span class="o">=</span> <span class="nx">lbl</span><span class="o">;</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">renderRight</span><span class="o">)</span> <span class="o">{</span>
<span class="k">var</span> <span class="nx">rightArrow</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">NAV_ARROW_RIGHT</span><span class="o">.</span><span class="nx">key</span><span class="o">);</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">rightArrow</span> <span class="o">===</span> <span class="kc">null</span> <span class="o">&amp;&amp;</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Calendar</span><span class="o">.</span><span class="nx">IMG_ROOT</span> <span class="o">!==</span> <span class="kc">null</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">rightArrow</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Calendar</span><span class="o">.</span><span class="nx">IMG_ROOT</span> <span class="o">+</span> <span class="nx">DEPR_NAV_RIGHT</span><span class="o">;</span>
<span class="o">}</span>
<span class="k">var</span> <span class="nx">rightStyle</span> <span class="o">=</span> <span class="o">(</span><span class="nx">rightArrow</span> <span class="o">===</span> <span class="kc">null</span><span class="o">)</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="o">;</span>
<span class="nx">html</span><span class="o">[</span><span class="nx">html</span><span class="o">.</span><span class="nx">length</span><span class="o">]</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="o">.</span><span class="nx">Style</span><span class="o">.</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; &gt;&amp;#160;&lt;/a&gt;&#39;</span><span class="o">;</span>
<span class="o">}</span>
<span class="nx">html</span><span class="o">[</span><span class="nx">html</span><span class="o">.</span><span class="nx">length</span><span class="o">]</span> <span class="o">=</span> <span class="s1">&#39;&lt;/div&gt;\n&lt;/th&gt;\n&lt;/tr&gt;&#39;</span><span class="o">;</span>
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">SHOW_WEEKDAYS</span><span class="o">.</span><span class="nx">key</span><span class="o">))</span> <span class="o">{</span>
<span class="nx">html</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">buildWeekdays</span><span class="o">(</span><span class="nx">html</span><span class="o">);</span>
<span class="o">}</span>
<span class="nx">html</span><span class="o">[</span><span class="nx">html</span><span class="o">.</span><span class="nx">length</span><span class="o">]</span> <span class="o">=</span> <span class="s1">&#39;&lt;/thead&gt;&#39;</span><span class="o">;</span>
<span class="k">return</span> <span class="nx">html</span><span class="o">;</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Renders the Calendar&#39;s weekday headers.</span>
<span class="c"> * @method buildWeekdays</span>
<span class="c"> * @param {Array} html The current working HTML array</span>
<span class="c"> * @return {Array} The current working HTML array</span>
<span class="c"> */</span>
<span class="nx">buildWeekdays</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">html</span><span class="o">)</span> <span class="o">{</span>
<span class="k">var</span> <span class="nx">defCfg</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Calendar</span><span class="o">.</span><span class="nx">_DEFAULT_CONFIG</span><span class="o">;</span>
<span class="nx">html</span><span class="o">[</span><span class="nx">html</span><span class="o">.</span><span class="nx">length</span><span class="o">]</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="o">.</span><span class="nx">Style</span><span class="o">.</span><span class="nx">CSS_WEEKDAY_ROW</span> <span class="o">+</span> <span class="s1">&#39;&quot;&gt;&#39;</span><span class="o">;</span>
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">SHOW_WEEK_HEADER</span><span class="o">.</span><span class="nx">key</span><span class="o">))</span> <span class="o">{</span>
<span class="nx">html</span><span class="o">[</span><span class="nx">html</span><span class="o">.</span><span class="nx">length</span><span class="o">]</span> <span class="o">=</span> <span class="s1">&#39;&lt;th&gt;&amp;#160;&lt;/th&gt;&#39;</span><span class="o">;</span>
<span class="o">}</span>
<span class="k">for</span><span class="o">(</span><span class="k">var</span> <span class="nx">i</span><span class="o">=</span><span class="m">0</span><span class="o">;</span><span class="nx">i</span><span class="o">&lt;</span><span class="k">this</span><span class="o">.</span><span class="nx">Locale</span><span class="o">.</span><span class="nx">LOCALE_WEEKDAYS</span><span class="o">.</span><span class="nx">length</span><span class="o">;++</span><span class="nx">i</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">html</span><span class="o">[</span><span class="nx">html</span><span class="o">.</span><span class="nx">length</span><span class="o">]</span> <span class="o">=</span> <span class="s1">&#39;&lt;th class=&quot;calweekdaycell&quot;&gt;&#39;</span> <span class="o">+</span> <span class="k">this</span><span class="o">.</span><span class="nx">Locale</span><span class="o">.</span><span class="nx">LOCALE_WEEKDAYS</span><span class="o">[</span><span class="nx">i</span><span class="o">]</span> <span class="o">+</span> <span class="s1">&#39;&lt;/th&gt;&#39;</span><span class="o">;</span>
<span class="o">}</span>
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">SHOW_WEEK_FOOTER</span><span class="o">.</span><span class="nx">key</span><span class="o">))</span> <span class="o">{</span>
<span class="nx">html</span><span class="o">[</span><span class="nx">html</span><span class="o">.</span><span class="nx">length</span><span class="o">]</span> <span class="o">=</span> <span class="s1">&#39;&lt;th&gt;&amp;#160;&lt;/th&gt;&#39;</span><span class="o">;</span>
<span class="o">}</span>
<span class="nx">html</span><span class="o">[</span><span class="nx">html</span><span class="o">.</span><span class="nx">length</span><span class="o">]</span> <span class="o">=</span> <span class="s1">&#39;&lt;/tr&gt;&#39;</span><span class="o">;</span>
<span class="k">return</span> <span class="nx">html</span><span class="o">;</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Renders the calendar body.</span>
<span class="c"> * @method renderBody</span>
<span class="c"> * @param {Date} workingDate The current working Date being used for the render process</span>
<span class="c"> * @param {Array} html The current working HTML array</span>
<span class="c"> * @return {Array} The current working HTML array</span>
<span class="c"> */</span>
<span class="nx">renderBody</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">workingDate</span><span class="o">,</span> <span class="nx">html</span><span class="o">)</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">logger</span><span class="o">.</span><span class="nx">log</span><span class="o">(</span><span class="s2">&quot;Rendering body&quot;</span><span class="o">,</span> <span class="s2">&quot;render&quot;</span><span class="o">);</span>
<span class="k">var</span> <span class="nx">DM</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">DateMath</span><span class="o">,</span>
<span class="nx">CAL</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Calendar</span><span class="o">,</span>
<span class="nx">D</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Dom</span><span class="o">,</span>
<span class="nx">defCfg</span> <span class="o">=</span> <span class="nx">CAL</span><span class="o">.</span><span class="nx">_DEFAULT_CONFIG</span><span class="o">;</span>
<span class="k">var</span> <span class="nx">startDay</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">START_WEEKDAY</span><span class="o">.</span><span class="nx">key</span><span class="o">);</span>
<span class="k">this</span><span class="o">.</span><span class="nx">preMonthDays</span> <span class="o">=</span> <span class="nx">workingDate</span><span class="o">.</span><span class="nx">getDay</span><span class="o">();</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">startDay</span> <span class="o">&gt;</span> <span class="m">0</span><span class="o">)</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">preMonthDays</span> <span class="o">-=</span> <span class="nx">startDay</span><span class="o">;</span>
<span class="o">}</span>
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">preMonthDays</span> <span class="o">&lt;</span> <span class="m">0</span><span class="o">)</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">preMonthDays</span> <span class="o">+=</span> <span class="m">7</span><span class="o">;</span>
<span class="o">}</span>
<span class="k">this</span><span class="o">.</span><span class="nx">monthDays</span> <span class="o">=</span> <span class="nx">DM</span><span class="o">.</span><span class="nx">findMonthEnd</span><span class="o">(</span><span class="nx">workingDate</span><span class="o">).</span><span class="nx">getDate</span><span class="o">();</span>
<span class="k">this</span><span class="o">.</span><span class="nx">postMonthDays</span> <span class="o">=</span> <span class="nx">CAL</span><span class="o">.</span><span class="nx">DISPLAY_DAYS</span><span class="o">-</span><span class="k">this</span><span class="o">.</span><span class="nx">preMonthDays</span><span class="o">-</span><span class="k">this</span><span class="o">.</span><span class="nx">monthDays</span><span class="o">;</span>
<span class="k">this</span><span class="o">.</span><span class="nx">logger</span><span class="o">.</span><span class="nx">log</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">preMonthDays</span> <span class="o">+</span> <span class="s2">&quot; preciding out-of-month days&quot;</span><span class="o">,</span> <span class="s2">&quot;render&quot;</span><span class="o">);</span>
<span class="k">this</span><span class="o">.</span><span class="nx">logger</span><span class="o">.</span><span class="nx">log</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">monthDays</span> <span class="o">+</span> <span class="s2">&quot; month days&quot;</span><span class="o">,</span> <span class="s2">&quot;render&quot;</span><span class="o">);</span>
<span class="k">this</span><span class="o">.</span><span class="nx">logger</span><span class="o">.</span><span class="nx">log</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">postMonthDays</span> <span class="o">+</span> <span class="s2">&quot; post-month days&quot;</span><span class="o">,</span> <span class="s2">&quot;render&quot;</span><span class="o">);</span>
<span class="nx">workingDate</span> <span class="o">=</span> <span class="nx">DM</span><span class="o">.</span><span class="nx">subtract</span><span class="o">(</span><span class="nx">workingDate</span><span class="o">,</span> <span class="nx">DM</span><span class="o">.</span><span class="nx">DAY</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">preMonthDays</span><span class="o">);</span>
<span class="k">this</span><span class="o">.</span><span class="nx">logger</span><span class="o">.</span><span class="nx">log</span><span class="o">(</span><span class="s2">&quot;Calendar page starts on &quot;</span> <span class="o">+</span> <span class="nx">workingDate</span><span class="o">,</span> <span class="s2">&quot;render&quot;</span><span class="o">);</span>
<span class="k">var</span> <span class="nx">weekNum</span><span class="o">,</span>
<span class="nx">weekClass</span><span class="o">,</span>
<span class="nx">weekPrefix</span> <span class="o">=</span> <span class="s2">&quot;w&quot;</span><span class="o">,</span>
<span class="nx">cellPrefix</span> <span class="o">=</span> <span class="s2">&quot;_cell&quot;</span><span class="o">,</span>
<span class="nx">workingDayPrefix</span> <span class="o">=</span> <span class="s2">&quot;wd&quot;</span><span class="o">,</span>
<span class="nx">dayPrefix</span> <span class="o">=</span> <span class="s2">&quot;d&quot;</span><span class="o">,</span>
<span class="nx">cellRenderers</span><span class="o">,</span>
<span class="nx">renderer</span><span class="o">,</span>
<span class="nx">todayYear</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">today</span><span class="o">.</span><span class="nx">getFullYear</span><span class="o">(),</span>
<span class="nx">todayMonth</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">today</span><span class="o">.</span><span class="nx">getMonth</span><span class="o">(),</span>
<span class="nx">todayDate</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">today</span><span class="o">.</span><span class="nx">getDate</span><span class="o">(),</span>
<span class="nx">useDate</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">PAGEDATE</span><span class="o">.</span><span class="nx">key</span><span class="o">),</span>
<span class="nx">hideBlankWeeks</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">HIDE_BLANK_WEEKS</span><span class="o">.</span><span class="nx">key</span><span class="o">),</span>
<span class="nx">showWeekFooter</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">SHOW_WEEK_FOOTER</span><span class="o">.</span><span class="nx">key</span><span class="o">),</span>
<span class="nx">showWeekHeader</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">SHOW_WEEK_HEADER</span><span class="o">.</span><span class="nx">key</span><span class="o">),</span>
<span class="nx">mindate</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">MINDATE</span><span class="o">.</span><span class="nx">key</span><span class="o">),</span>
<span class="nx">maxdate</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">MAXDATE</span><span class="o">.</span><span class="nx">key</span><span class="o">);</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">mindate</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">mindate</span> <span class="o">=</span> <span class="nx">DM</span><span class="o">.</span><span class="nx">clearTime</span><span class="o">(</span><span class="nx">mindate</span><span class="o">);</span>
<span class="o">}</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">maxdate</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">maxdate</span> <span class="o">=</span> <span class="nx">DM</span><span class="o">.</span><span class="nx">clearTime</span><span class="o">(</span><span class="nx">maxdate</span><span class="o">);</span>
<span class="o">}</span>
<span class="nx">html</span><span class="o">[</span><span class="nx">html</span><span class="o">.</span><span class="nx">length</span><span class="o">]</span> <span class="o">=</span> <span class="s1">&#39;&lt;tbody class=&quot;m&#39;</span> <span class="o">+</span> <span class="o">(</span><span class="nx">useDate</span><span class="o">.</span><span class="nx">getMonth</span><span class="o">()+</span><span class="m">1</span><span class="o">)</span> <span class="o">+</span> <span class="s1">&#39; &#39;</span> <span class="o">+</span> <span class="k">this</span><span class="o">.</span><span class="nx">Style</span><span class="o">.</span><span class="nx">CSS_BODY</span> <span class="o">+</span> <span class="s1">&#39;&quot;&gt;&#39;</span><span class="o">;</span>
<span class="k">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="m">0</span><span class="o">,</span>
<span class="nx">tempDiv</span> <span class="o">=</span> <span class="nb">document</span><span class="o">.</span><span class="nx">createElement</span><span class="o">(</span><span class="s2">&quot;div&quot;</span><span class="o">),</span>
<span class="nx">cell</span> <span class="o">=</span> <span class="nb">document</span><span class="o">.</span><span class="nx">createElement</span><span class="o">(</span><span class="s2">&quot;td&quot;</span><span class="o">);</span>
<span class="nx">tempDiv</span><span class="o">.</span><span class="nx">appendChild</span><span class="o">(</span><span class="nx">cell</span><span class="o">);</span>
<span class="k">var</span> <span class="nx">cal</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">parent</span> <span class="o">||</span> <span class="k">this</span><span class="o">;</span>
<span class="k">for</span> <span class="o">(</span><span class="k">var</span> <span class="nx">r</span><span class="o">=</span><span class="m">0</span><span class="o">;</span><span class="nx">r</span><span class="o">&lt;</span><span class="m">6</span><span class="o">;</span><span class="nx">r</span><span class="o">++)</span> <span class="o">{</span>
<span class="nx">weekNum</span> <span class="o">=</span> <span class="nx">DM</span><span class="o">.</span><span class="nx">getWeekNumber</span><span class="o">(</span><span class="nx">workingDate</span><span class="o">,</span> <span class="nx">startDay</span><span class="o">);</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="o">;</span>
<span class="c">// Local OOM check for performance, since we already have pagedate</span>
<span class="c"></span> <span class="k">if</span> <span class="o">(</span><span class="nx">r</span> <span class="o">!==</span> <span class="m">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="o">.</span><span class="nx">getMonth</span><span class="o">()</span> <span class="o">!=</span> <span class="nx">useDate</span><span class="o">.</span><span class="nx">getMonth</span><span class="o">())</span> <span class="o">{</span>
<span class="k">break</span><span class="o">;</span>
<span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
<span class="nx">html</span><span class="o">[</span><span class="nx">html</span><span class="o">.</span><span class="nx">length</span><span class="o">]</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="o">;</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">showWeekHeader</span><span class="o">)</span> <span class="o">{</span> <span class="nx">html</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">renderRowHeader</span><span class="o">(</span><span class="nx">weekNum</span><span class="o">,</span> <span class="nx">html</span><span class="o">);</span> <span class="o">}</span>
<span class="k">for</span> <span class="o">(</span><span class="k">var</span> <span class="nx">d</span><span class="o">=</span><span class="m">0</span><span class="o">;</span> <span class="nx">d</span> <span class="o">&lt;</span> <span class="m">7</span><span class="o">;</span> <span class="nx">d</span><span class="o">++){</span> <span class="c">// Render actual days</span>
<span class="c"></span>
<span class="nx">cellRenderers</span> <span class="o">=</span> <span class="o">[];</span>
<span class="k">this</span><span class="o">.</span><span class="nx">clearElement</span><span class="o">(</span><span class="nx">cell</span><span class="o">);</span>
<span class="nx">cell</span><span class="o">.</span><span class="nx">className</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">Style</span><span class="o">.</span><span class="nx">CSS_CELL</span><span class="o">;</span>
<span class="nx">cell</span><span class="o">.</span><span class="nx">id</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</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="o">;</span>
<span class="k">this</span><span class="o">.</span><span class="nx">logger</span><span class="o">.</span><span class="nx">log</span><span class="o">(</span><span class="s2">&quot;Rendering cell &quot;</span> <span class="o">+</span> <span class="nx">cell</span><span class="o">.</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="o">.</span><span class="nx">getFullYear</span><span class="o">()</span> <span class="o">+</span> <span class="s2">&quot;-&quot;</span> <span class="o">+</span> <span class="o">(</span><span class="nx">workingDate</span><span class="o">.</span><span class="nx">getMonth</span><span class="o">()+</span><span class="m">1</span><span class="o">)</span> <span class="o">+</span> <span class="s2">&quot;-&quot;</span> <span class="o">+</span> <span class="nx">workingDate</span><span class="o">.</span><span class="nx">getDate</span><span class="o">()</span> <span class="o">+</span> <span class="s2">&quot;)&quot;</span><span class="o">,</span> <span class="s2">&quot;cellrender&quot;</span><span class="o">);</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">workingDate</span><span class="o">.</span><span class="nx">getDate</span><span class="o">()</span> <span class="o">==</span> <span class="nx">todayDate</span> <span class="o">&amp;&amp;</span>
<span class="nx">workingDate</span><span class="o">.</span><span class="nx">getMonth</span><span class="o">()</span> <span class="o">==</span> <span class="nx">todayMonth</span> <span class="o">&amp;&amp;</span>
<span class="nx">workingDate</span><span class="o">.</span><span class="nx">getFullYear</span><span class="o">()</span> <span class="o">==</span> <span class="nx">todayYear</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">cellRenderers</span><span class="o">[</span><span class="nx">cellRenderers</span><span class="o">.</span><span class="nx">length</span><span class="o">]=</span><span class="nx">cal</span><span class="o">.</span><span class="nx">renderCellStyleToday</span><span class="o">;</span>
<span class="o">}</span>
<span class="k">var</span> <span class="nx">workingArray</span> <span class="o">=</span> <span class="o">[</span><span class="nx">workingDate</span><span class="o">.</span><span class="nx">getFullYear</span><span class="o">(),</span><span class="nx">workingDate</span><span class="o">.</span><span class="nx">getMonth</span><span class="o">()+</span><span class="m">1</span><span class="o">,</span><span class="nx">workingDate</span><span class="o">.</span><span class="nx">getDate</span><span class="o">()];</span>
<span class="k">this</span><span class="o">.</span><span class="nx">cellDates</span><span class="o">[</span><span class="k">this</span><span class="o">.</span><span class="nx">cellDates</span><span class="o">.</span><span class="nx">length</span><span class="o">]</span> <span class="o">=</span> <span class="nx">workingArray</span><span class="o">;</span> <span class="c">// Add this date to cellDates</span>
<span class="c"></span>
<span class="c">// Local OOM check for performance, since we already have pagedate</span>
<span class="c"></span> <span class="k">if</span> <span class="o">(</span><span class="nx">workingDate</span><span class="o">.</span><span class="nx">getMonth</span><span class="o">()</span> <span class="o">!=</span> <span class="nx">useDate</span><span class="o">.</span><span class="nx">getMonth</span><span class="o">())</span> <span class="o">{</span>
<span class="nx">cellRenderers</span><span class="o">[</span><span class="nx">cellRenderers</span><span class="o">.</span><span class="nx">length</span><span class="o">]=</span><span class="nx">cal</span><span class="o">.</span><span class="nx">renderCellNotThisMonth</span><span class="o">;</span>
<span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
<span class="nx">D</span><span class="o">.</span><span class="nx">addClass</span><span class="o">(</span><span class="nx">cell</span><span class="o">,</span> <span class="nx">workingDayPrefix</span> <span class="o">+</span> <span class="nx">workingDate</span><span class="o">.</span><span class="nx">getDay</span><span class="o">());</span>
<span class="nx">D</span><span class="o">.</span><span class="nx">addClass</span><span class="o">(</span><span class="nx">cell</span><span class="o">,</span> <span class="nx">dayPrefix</span> <span class="o">+</span> <span class="nx">workingDate</span><span class="o">.</span><span class="nx">getDate</span><span class="o">());</span>
<span class="k">for</span> <span class="o">(</span><span class="k">var</span> <span class="nx">s</span><span class="o">=</span><span class="m">0</span><span class="o">;</span><span class="nx">s</span><span class="o">&lt;</span><span class="k">this</span><span class="o">.</span><span class="nx">renderStack</span><span class="o">.</span><span class="nx">length</span><span class="o">;++</span><span class="nx">s</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">renderer</span> <span class="o">=</span> <span class="kc">null</span><span class="o">;</span>
<span class="k">var</span> <span class="nx">rArray</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">renderStack</span><span class="o">[</span><span class="nx">s</span><span class="o">],</span>
<span class="nx">type</span> <span class="o">=</span> <span class="nx">rArray</span><span class="o">[</span><span class="m">0</span><span class="o">],</span>
<span class="nx">month</span><span class="o">,</span>
<span class="nx">day</span><span class="o">,</span>
<span class="nx">year</span><span class="o">;</span>
<span class="nx">switch</span> <span class="o">(</span><span class="nx">type</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">case</span> <span class="nx">CAL</span><span class="o">.</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="o">[</span><span class="m">1</span><span class="o">][</span><span class="m">1</span><span class="o">];</span>
<span class="nx">day</span> <span class="o">=</span> <span class="nx">rArray</span><span class="o">[</span><span class="m">1</span><span class="o">][</span><span class="m">2</span><span class="o">];</span>
<span class="nx">year</span> <span class="o">=</span> <span class="nx">rArray</span><span class="o">[</span><span class="m">1</span><span class="o">][</span><span class="m">0</span><span class="o">];</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">workingDate</span><span class="o">.</span><span class="nx">getMonth</span><span class="o">()+</span><span class="m">1</span> <span class="o">==</span> <span class="nx">month</span> <span class="o">&amp;&amp;</span> <span class="nx">workingDate</span><span class="o">.</span><span class="nx">getDate</span><span class="o">()</span> <span class="o">==</span> <span class="nx">day</span> <span class="o">&amp;&amp;</span> <span class="nx">workingDate</span><span class="o">.</span><span class="nx">getFullYear</span><span class="o">()</span> <span class="o">==</span> <span class="nx">year</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">renderer</span> <span class="o">=</span> <span class="nx">rArray</span><span class="o">[</span><span class="m">2</span><span class="o">];</span>
<span class="k">this</span><span class="o">.</span><span class="nx">renderStack</span><span class="o">.</span><span class="nx">splice</span><span class="o">(</span><span class="nx">s</span><span class="o">,</span><span class="m">1</span><span class="o">);</span>
<span class="o">}</span>
<span class="k">break</span><span class="o">;</span>
<span class="nx">case</span> <span class="nx">CAL</span><span class="o">.</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="o">[</span><span class="m">1</span><span class="o">][</span><span class="m">0</span><span class="o">];</span>
<span class="nx">day</span> <span class="o">=</span> <span class="nx">rArray</span><span class="o">[</span><span class="m">1</span><span class="o">][</span><span class="m">1</span><span class="o">];</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">workingDate</span><span class="o">.</span><span class="nx">getMonth</span><span class="o">()+</span><span class="m">1</span> <span class="o">==</span> <span class="nx">month</span> <span class="o">&amp;&amp;</span> <span class="nx">workingDate</span><span class="o">.</span><span class="nx">getDate</span><span class="o">()</span> <span class="o">==</span> <span class="nx">day</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">renderer</span> <span class="o">=</span> <span class="nx">rArray</span><span class="o">[</span><span class="m">2</span><span class="o">];</span>
<span class="k">this</span><span class="o">.</span><span class="nx">renderStack</span><span class="o">.</span><span class="nx">splice</span><span class="o">(</span><span class="nx">s</span><span class="o">,</span><span class="m">1</span><span class="o">);</span>
<span class="o">}</span>
<span class="k">break</span><span class="o">;</span>
<span class="nx">case</span> <span class="nx">CAL</span><span class="o">.</span><span class="nx">RANGE</span><span class="o">:</span>
<span class="k">var</span> <span class="nx">date1</span> <span class="o">=</span> <span class="nx">rArray</span><span class="o">[</span><span class="m">1</span><span class="o">][</span><span class="m">0</span><span class="o">],</span>
<span class="nx">date2</span> <span class="o">=</span> <span class="nx">rArray</span><span class="o">[</span><span class="m">1</span><span class="o">][</span><span class="m">1</span><span class="o">],</span>
<span class="nx">d1month</span> <span class="o">=</span> <span class="nx">date1</span><span class="o">[</span><span class="m">1</span><span class="o">],</span>
<span class="nx">d1day</span> <span class="o">=</span> <span class="nx">date1</span><span class="o">[</span><span class="m">2</span><span class="o">],</span>
<span class="nx">d1year</span> <span class="o">=</span> <span class="nx">date1</span><span class="o">[</span><span class="m">0</span><span class="o">],</span>
<span class="nx">d1</span> <span class="o">=</span> <span class="nx">DM</span><span class="o">.</span><span class="nx">getDate</span><span class="o">(</span><span class="nx">d1year</span><span class="o">,</span> <span class="nx">d1month</span><span class="o">-</span><span class="m">1</span><span class="o">,</span> <span class="nx">d1day</span><span class="o">),</span>
<span class="nx">d2month</span> <span class="o">=</span> <span class="nx">date2</span><span class="o">[</span><span class="m">1</span><span class="o">],</span>
<span class="nx">d2day</span> <span class="o">=</span> <span class="nx">date2</span><span class="o">[</span><span class="m">2</span><span class="o">],</span>
<span class="nx">d2year</span> <span class="o">=</span> <span class="nx">date2</span><span class="o">[</span><span class="m">0</span><span class="o">],</span>
<span class="nx">d2</span> <span class="o">=</span> <span class="nx">DM</span><span class="o">.</span><span class="nx">getDate</span><span class="o">(</span><span class="nx">d2year</span><span class="o">,</span> <span class="nx">d2month</span><span class="o">-</span><span class="m">1</span><span class="o">,</span> <span class="nx">d2day</span><span class="o">);</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">workingDate</span><span class="o">.</span><span class="nx">getTime</span><span class="o">()</span> <span class="o">&gt;=</span> <span class="nx">d1</span><span class="o">.</span><span class="nx">getTime</span><span class="o">()</span> <span class="o">&amp;&amp;</span> <span class="nx">workingDate</span><span class="o">.</span><span class="nx">getTime</span><span class="o">()</span> <span class="o">&lt;=</span> <span class="nx">d2</span><span class="o">.</span><span class="nx">getTime</span><span class="o">())</span> <span class="o">{</span>
<span class="nx">renderer</span> <span class="o">=</span> <span class="nx">rArray</span><span class="o">[</span><span class="m">2</span><span class="o">];</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">workingDate</span><span class="o">.</span><span class="nx">getTime</span><span class="o">()==</span><span class="nx">d2</span><span class="o">.</span><span class="nx">getTime</span><span class="o">())</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">renderStack</span><span class="o">.</span><span class="nx">splice</span><span class="o">(</span><span class="nx">s</span><span class="o">,</span><span class="m">1</span><span class="o">);</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="k">break</span><span class="o">;</span>
<span class="nx">case</span> <span class="nx">CAL</span><span class="o">.</span><span class="nx">WEEKDAY</span><span class="o">:</span>
<span class="k">var</span> <span class="nx">weekday</span> <span class="o">=</span> <span class="nx">rArray</span><span class="o">[</span><span class="m">1</span><span class="o">][</span><span class="m">0</span><span class="o">];</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">workingDate</span><span class="o">.</span><span class="nx">getDay</span><span class="o">()+</span><span class="m">1</span> <span class="o">==</span> <span class="nx">weekday</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">renderer</span> <span class="o">=</span> <span class="nx">rArray</span><span class="o">[</span><span class="m">2</span><span class="o">];</span>
<span class="o">}</span>
<span class="k">break</span><span class="o">;</span>
<span class="nx">case</span> <span class="nx">CAL</span><span class="o">.</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="o">[</span><span class="m">1</span><span class="o">][</span><span class="m">0</span><span class="o">];</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">workingDate</span><span class="o">.</span><span class="nx">getMonth</span><span class="o">()+</span><span class="m">1</span> <span class="o">==</span> <span class="nx">month</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">renderer</span> <span class="o">=</span> <span class="nx">rArray</span><span class="o">[</span><span class="m">2</span><span class="o">];</span>
<span class="o">}</span>
<span class="k">break</span><span class="o">;</span>
<span class="o">}</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">renderer</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">cellRenderers</span><span class="o">[</span><span class="nx">cellRenderers</span><span class="o">.</span><span class="nx">length</span><span class="o">]=</span><span class="nx">renderer</span><span class="o">;</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">_indexOfSelectedFieldArray</span><span class="o">(</span><span class="nx">workingArray</span><span class="o">)</span> <span class="o">&gt;</span> <span class="o">-</span><span class="m">1</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">cellRenderers</span><span class="o">[</span><span class="nx">cellRenderers</span><span class="o">.</span><span class="nx">length</span><span class="o">]=</span><span class="nx">cal</span><span class="o">.</span><span class="nx">renderCellStyleSelected</span><span class="o">;</span>
<span class="o">}</span>
<span class="k">if</span> <span class="o">((</span><span class="nx">mindate</span> <span class="o">&amp;&amp;</span> <span class="o">(</span><span class="nx">workingDate</span><span class="o">.</span><span class="nx">getTime</span><span class="o">()</span> <span class="o">&lt;</span> <span class="nx">mindate</span><span class="o">.</span><span class="nx">getTime</span><span class="o">()))</span> <span class="o">||</span>
<span class="o">(</span><span class="nx">maxdate</span> <span class="o">&amp;&amp;</span> <span class="o">(</span><span class="nx">workingDate</span><span class="o">.</span><span class="nx">getTime</span><span class="o">()</span> <span class="o">&gt;</span> <span class="nx">maxdate</span><span class="o">.</span><span class="nx">getTime</span><span class="o">()))</span>
<span class="o">)</span> <span class="o">{</span>
<span class="nx">cellRenderers</span><span class="o">[</span><span class="nx">cellRenderers</span><span class="o">.</span><span class="nx">length</span><span class="o">]=</span><span class="nx">cal</span><span class="o">.</span><span class="nx">renderOutOfBoundsDate</span><span class="o">;</span>
<span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
<span class="nx">cellRenderers</span><span class="o">[</span><span class="nx">cellRenderers</span><span class="o">.</span><span class="nx">length</span><span class="o">]=</span><span class="nx">cal</span><span class="o">.</span><span class="nx">styleCellDefault</span><span class="o">;</span>
<span class="nx">cellRenderers</span><span class="o">[</span><span class="nx">cellRenderers</span><span class="o">.</span><span class="nx">length</span><span class="o">]=</span><span class="nx">cal</span><span class="o">.</span><span class="nx">renderCellDefault</span><span class="o">;</span>
<span class="o">}</span>
<span class="k">for</span> <span class="o">(</span><span class="k">var</span> <span class="nx">x</span><span class="o">=</span><span class="m">0</span><span class="o">;</span> <span class="nx">x</span> <span class="o">&lt;</span> <span class="nx">cellRenderers</span><span class="o">.</span><span class="nx">length</span><span class="o">;</span> <span class="o">++</span><span class="nx">x</span><span class="o">)</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">logger</span><span class="o">.</span><span class="nx">log</span><span class="o">(</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="o">.</span><span class="nx">getFullYear</span><span class="o">()</span> <span class="o">+</span> <span class="s2">&quot;-&quot;</span> <span class="o">+</span> <span class="o">(</span><span class="nx">workingDate</span><span class="o">.</span><span class="nx">getMonth</span><span class="o">()+</span><span class="m">1</span><span class="o">)</span> <span class="o">+</span> <span class="s2">&quot;-&quot;</span> <span class="o">+</span> <span class="nx">workingDate</span><span class="o">.</span><span class="nx">getDate</span><span class="o">()</span> <span class="o">+</span> <span class="s2">&quot;)&quot;</span><span class="o">,</span> <span class="s2">&quot;cellrender&quot;</span><span class="o">);</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">cellRenderers</span><span class="o">[</span><span class="nx">x</span><span class="o">].</span><span class="nx">call</span><span class="o">(</span><span class="nx">cal</span><span class="o">,</span> <span class="nx">workingDate</span><span class="o">,</span> <span class="nx">cell</span><span class="o">)</span> <span class="o">==</span> <span class="nx">CAL</span><span class="o">.</span><span class="nx">STOP_RENDER</span><span class="o">)</span> <span class="o">{</span>
<span class="k">break</span><span class="o">;</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="nx">workingDate</span><span class="o">.</span><span class="nx">setTime</span><span class="o">(</span><span class="nx">workingDate</span><span class="o">.</span><span class="nx">getTime</span><span class="o">()</span> <span class="o">+</span> <span class="nx">DM</span><span class="o">.</span><span class="nx">ONE_DAY_MS</span><span class="o">);</span>
<span class="c">// Just in case we crossed DST/Summertime boundaries</span>
<span class="c"></span> <span class="nx">workingDate</span> <span class="o">=</span> <span class="nx">DM</span><span class="o">.</span><span class="nx">clearTime</span><span class="o">(</span><span class="nx">workingDate</span><span class="o">);</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">i</span> <span class="o">&gt;=</span> <span class="m">0</span> <span class="o">&amp;&amp;</span> <span class="nx">i</span> <span class="o">&lt;=</span> <span class="m">6</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">D</span><span class="o">.</span><span class="nx">addClass</span><span class="o">(</span><span class="nx">cell</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">Style</span><span class="o">.</span><span class="nx">CSS_CELL_TOP</span><span class="o">);</span>
<span class="o">}</span>
<span class="k">if</span> <span class="o">((</span><span class="nx">i</span> <span class="o">%</span> <span class="m">7</span><span class="o">)</span> <span class="o">===</span> <span class="m">0</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">D</span><span class="o">.</span><span class="nx">addClass</span><span class="o">(</span><span class="nx">cell</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">Style</span><span class="o">.</span><span class="nx">CSS_CELL_LEFT</span><span class="o">);</span>
<span class="o">}</span>
<span class="k">if</span> <span class="o">(((</span><span class="nx">i</span><span class="o">+</span><span class="m">1</span><span class="o">)</span> <span class="o">%</span> <span class="m">7</span><span class="o">)</span> <span class="o">===</span> <span class="m">0</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">D</span><span class="o">.</span><span class="nx">addClass</span><span class="o">(</span><span class="nx">cell</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">Style</span><span class="o">.</span><span class="nx">CSS_CELL_RIGHT</span><span class="o">);</span>
<span class="o">}</span>
<span class="k">var</span> <span class="nx">postDays</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">postMonthDays</span><span class="o">;</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">hideBlankWeeks</span> <span class="o">&amp;&amp;</span> <span class="nx">postDays</span> <span class="o">&gt;=</span> <span class="m">7</span><span class="o">)</span> <span class="o">{</span>
<span class="k">var</span> <span class="nx">blankWeeks</span> <span class="o">=</span> <span class="nb">Math</span><span class="o">.</span><span class="nx">floor</span><span class="o">(</span><span class="nx">postDays</span><span class="o">/</span><span class="m">7</span><span class="o">);</span>
<span class="k">for</span> <span class="o">(</span><span class="k">var</span> <span class="nx">p</span><span class="o">=</span><span class="m">0</span><span class="o">;</span><span class="nx">p</span><span class="o">&lt;</span><span class="nx">blankWeeks</span><span class="o">;++</span><span class="nx">p</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">postDays</span> <span class="o">-=</span> <span class="m">7</span><span class="o">;</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">i</span> <span class="o">&gt;=</span> <span class="o">((</span><span class="k">this</span><span class="o">.</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="o">.</span><span class="nx">monthDays</span><span class="o">)-</span><span class="m">7</span><span class="o">))</span> <span class="o">{</span>
<span class="nx">D</span><span class="o">.</span><span class="nx">addClass</span><span class="o">(</span><span class="nx">cell</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">Style</span><span class="o">.</span><span class="nx">CSS_CELL_BOTTOM</span><span class="o">);</span>
<span class="o">}</span>
<span class="nx">html</span><span class="o">[</span><span class="nx">html</span><span class="o">.</span><span class="nx">length</span><span class="o">]</span> <span class="o">=</span> <span class="nx">tempDiv</span><span class="o">.</span><span class="nx">innerHTML</span><span class="o">;</span>
<span class="nx">i</span><span class="o">++;</span>
<span class="o">}</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">showWeekFooter</span><span class="o">)</span> <span class="o">{</span> <span class="nx">html</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">renderRowFooter</span><span class="o">(</span><span class="nx">weekNum</span><span class="o">,</span> <span class="nx">html</span><span class="o">);</span> <span class="o">}</span>
<span class="nx">html</span><span class="o">[</span><span class="nx">html</span><span class="o">.</span><span class="nx">length</span><span class="o">]</span> <span class="o">=</span> <span class="s1">&#39;&lt;/tr&gt;&#39;</span><span class="o">;</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="nx">html</span><span class="o">[</span><span class="nx">html</span><span class="o">.</span><span class="nx">length</span><span class="o">]</span> <span class="o">=</span> <span class="s1">&#39;&lt;/tbody&gt;&#39;</span><span class="o">;</span>
<span class="k">return</span> <span class="nx">html</span><span class="o">;</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Renders the calendar footer. In the default implementation, there is</span>
<span class="c"> * no footer.</span>
<span class="c"> * @method renderFooter</span>
<span class="c"> * @param {Array} html The current working HTML array</span>
<span class="c"> * @return {Array} The current working HTML array</span>
<span class="c"> */</span>
<span class="nx">renderFooter</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">html</span><span class="o">)</span> <span class="o">{</span> <span class="k">return</span> <span class="nx">html</span><span class="o">;</span> <span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Renders the calendar after it has been configured. The render() method has a specific call chain that will execute</span>
<span class="c"> * when the method is called: renderHeader, renderBody, renderFooter.</span>
<span class="c"> * Refer to the documentation for those methods for information on </span>
<span class="c"> * individual render tasks.</span>
<span class="c"> * @method render</span>
<span class="c"> */</span>
<span class="nx">render</span> <span class="o">:</span> <span class="k">function</span><span class="o">()</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">beforeRenderEvent</span><span class="o">.</span><span class="nx">fire</span><span class="o">();</span>
<span class="k">var</span> <span class="nx">defCfg</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Calendar</span><span class="o">.</span><span class="nx">_DEFAULT_CONFIG</span><span class="o">;</span>
<span class="c">// Find starting day of the current month</span>
<span class="c"></span> <span class="k">var</span> <span class="nx">workingDate</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">DateMath</span><span class="o">.</span><span class="nx">findMonthStart</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">PAGEDATE</span><span class="o">.</span><span class="nx">key</span><span class="o">));</span>
<span class="k">this</span><span class="o">.</span><span class="nx">resetRenderers</span><span class="o">();</span>
<span class="k">this</span><span class="o">.</span><span class="nx">cellDates</span><span class="o">.</span><span class="nx">length</span> <span class="o">=</span> <span class="m">0</span><span class="o">;</span>
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Event</span><span class="o">.</span><span class="nx">purgeElement</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">oDomContainer</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
<span class="k">var</span> <span class="nx">html</span> <span class="o">=</span> <span class="o">[];</span>
<span class="nx">html</span><span class="o">[</span><span class="nx">html</span><span class="o">.</span><span class="nx">length</span><span class="o">]</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="o">.</span><span class="nx">Style</span><span class="o">.</span><span class="nx">CSS_CALENDAR</span> <span class="o">+</span> <span class="s1">&#39; y&#39;</span> <span class="o">+</span> <span class="nx">workingDate</span><span class="o">.</span><span class="nx">getFullYear</span><span class="o">()</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="o">.</span><span class="nx">id</span> <span class="o">+</span> <span class="s1">&#39;&quot;&gt;&#39;</span><span class="o">;</span>
<span class="nx">html</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">renderHeader</span><span class="o">(</span><span class="nx">html</span><span class="o">);</span>
<span class="nx">html</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">renderBody</span><span class="o">(</span><span class="nx">workingDate</span><span class="o">,</span> <span class="nx">html</span><span class="o">);</span>
<span class="nx">html</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">renderFooter</span><span class="o">(</span><span class="nx">html</span><span class="o">);</span>
<span class="nx">html</span><span class="o">[</span><span class="nx">html</span><span class="o">.</span><span class="nx">length</span><span class="o">]</span> <span class="o">=</span> <span class="s1">&#39;&lt;/table&gt;&#39;</span><span class="o">;</span>
<span class="k">this</span><span class="o">.</span><span class="nx">oDomContainer</span><span class="o">.</span><span class="nx">innerHTML</span> <span class="o">=</span> <span class="nx">html</span><span class="o">.</span><span class="nx">join</span><span class="o">(</span><span class="s2">&quot;\n&quot;</span><span class="o">);</span>
<span class="k">this</span><span class="o">.</span><span class="nx">applyListeners</span><span class="o">();</span>
<span class="k">this</span><span class="o">.</span><span class="nx">cells</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">oDomContainer</span><span class="o">.</span><span class="nx">getElementsByTagName</span><span class="o">(</span><span class="s2">&quot;td&quot;</span><span class="o">);</span>
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">refireEvent</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">TITLE</span><span class="o">.</span><span class="nx">key</span><span class="o">);</span>
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">refireEvent</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">CLOSE</span><span class="o">.</span><span class="nx">key</span><span class="o">);</span>
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">refireEvent</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">IFRAME</span><span class="o">.</span><span class="nx">key</span><span class="o">);</span>
<span class="k">this</span><span class="o">.</span><span class="nx">renderEvent</span><span class="o">.</span><span class="nx">fire</span><span class="o">();</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Applies the Calendar&#39;s DOM listeners to applicable elements.</span>
<span class="c"> * @method applyListeners</span>
<span class="c"> */</span>
<span class="nx">applyListeners</span> <span class="o">:</span> <span class="k">function</span><span class="o">()</span> <span class="o">{</span>
<span class="k">var</span> <span class="nx">root</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">oDomContainer</span><span class="o">;</span>
<span class="k">var</span> <span class="nx">cal</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">parent</span> <span class="o">||</span> <span class="k">this</span><span class="o">;</span>
<span class="k">var</span> <span class="nx">anchor</span> <span class="o">=</span> <span class="s2">&quot;a&quot;</span><span class="o">;</span>
<span class="k">var</span> <span class="nx">mousedown</span> <span class="o">=</span> <span class="s2">&quot;mousedown&quot;</span><span class="o">;</span>
<span class="k">var</span> <span class="nx">linkLeft</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Dom</span><span class="o">.</span><span class="nx">getElementsByClassName</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">Style</span><span class="o">.</span><span class="nx">CSS_NAV_LEFT</span><span class="o">,</span> <span class="nx">anchor</span><span class="o">,</span> <span class="nx">root</span><span class="o">);</span>
<span class="k">var</span> <span class="nx">linkRight</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Dom</span><span class="o">.</span><span class="nx">getElementsByClassName</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">Style</span><span class="o">.</span><span class="nx">CSS_NAV_RIGHT</span><span class="o">,</span> <span class="nx">anchor</span><span class="o">,</span> <span class="nx">root</span><span class="o">);</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">linkLeft</span> <span class="o">&amp;&amp;</span> <span class="nx">linkLeft</span><span class="o">.</span><span class="nx">length</span> <span class="o">&gt;</span> <span class="m">0</span><span class="o">)</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">linkLeft</span> <span class="o">=</span> <span class="nx">linkLeft</span><span class="o">[</span><span class="m">0</span><span class="o">];</span>
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Event</span><span class="o">.</span><span class="nx">addListener</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">linkLeft</span><span class="o">,</span> <span class="nx">mousedown</span><span class="o">,</span> <span class="nx">cal</span><span class="o">.</span><span class="nx">previousMonth</span><span class="o">,</span> <span class="nx">cal</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
<span class="o">}</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">linkRight</span> <span class="o">&amp;&amp;</span> <span class="nx">linkRight</span><span class="o">.</span><span class="nx">length</span> <span class="o">&gt;</span> <span class="m">0</span><span class="o">)</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">linkRight</span> <span class="o">=</span> <span class="nx">linkRight</span><span class="o">[</span><span class="m">0</span><span class="o">];</span>
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Event</span><span class="o">.</span><span class="nx">addListener</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">linkRight</span><span class="o">,</span> <span class="nx">mousedown</span><span class="o">,</span> <span class="nx">cal</span><span class="o">.</span><span class="nx">nextMonth</span><span class="o">,</span> <span class="nx">cal</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
<span class="o">}</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">cal</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="s2">&quot;navigator&quot;</span><span class="o">)</span> <span class="o">!==</span> <span class="kc">null</span><span class="o">)</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">applyNavListeners</span><span class="o">();</span>
<span class="o">}</span>
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">domEventMap</span><span class="o">)</span> <span class="o">{</span>
<span class="k">var</span> <span class="nx">el</span><span class="o">,</span><span class="nx">elements</span><span class="o">;</span>
<span class="k">for</span> <span class="o">(</span><span class="k">var</span> <span class="nx">cls</span> <span class="k">in</span> <span class="k">this</span><span class="o">.</span><span class="nx">domEventMap</span><span class="o">)</span> <span class="o">{</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">YAHOO</span><span class="o">.</span><span class="nx">lang</span><span class="o">.</span><span class="nx">hasOwnProperty</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">domEventMap</span><span class="o">,</span> <span class="nx">cls</span><span class="o">))</span> <span class="o">{</span>
<span class="k">var</span> <span class="nx">items</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">domEventMap</span><span class="o">[</span><span class="nx">cls</span><span class="o">];</span>
<span class="k">if</span> <span class="o">(!</span> <span class="o">(</span><span class="nx">items</span> <span class="k">instanceof</span> <span class="nb">Array</span><span class="o">))</span> <span class="o">{</span>
<span class="nx">items</span> <span class="o">=</span> <span class="o">[</span><span class="nx">items</span><span class="o">];</span>
<span class="o">}</span>
<span class="k">for</span> <span class="o">(</span><span class="k">var</span> <span class="nx">i</span><span class="o">=</span><span class="m">0</span><span class="o">;</span><span class="nx">i</span><span class="o">&lt;</span><span class="nx">items</span><span class="o">.</span><span class="nx">length</span><span class="o">;</span><span class="nx">i</span><span class="o">++)</span> <span class="o">{</span>
<span class="k">var</span> <span class="nx">item</span> <span class="o">=</span> <span class="nx">items</span><span class="o">[</span><span class="nx">i</span><span class="o">];</span>
<span class="nx">elements</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Dom</span><span class="o">.</span><span class="nx">getElementsByClassName</span><span class="o">(</span><span class="nx">cls</span><span class="o">,</span> <span class="nx">item</span><span class="o">.</span><span class="nx">tag</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">oDomContainer</span><span class="o">);</span>
<span class="k">for</span> <span class="o">(</span><span class="k">var</span> <span class="nx">c</span><span class="o">=</span><span class="m">0</span><span class="o">;</span><span class="nx">c</span><span class="o">&lt;</span><span class="nx">elements</span><span class="o">.</span><span class="nx">length</span><span class="o">;</span><span class="nx">c</span><span class="o">++)</span> <span class="o">{</span>
<span class="nx">el</span> <span class="o">=</span> <span class="nx">elements</span><span class="o">[</span><span class="nx">c</span><span class="o">];</span>
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Event</span><span class="o">.</span><span class="nx">addListener</span><span class="o">(</span><span class="nx">el</span><span class="o">,</span> <span class="nx">item</span><span class="o">.</span><span class="nx">event</span><span class="o">,</span> <span class="nx">item</span><span class="o">.</span><span class="nx">handler</span><span class="o">,</span> <span class="nx">item</span><span class="o">.</span><span class="nx">scope</span><span class="o">,</span> <span class="nx">item</span><span class="o">.</span><span class="nx">correct</span> <span class="o">);</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Event</span><span class="o">.</span><span class="nx">addListener</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">oDomContainer</span><span class="o">,</span> <span class="s2">&quot;click&quot;</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">doSelectCell</span><span class="o">,</span> <span class="k">this</span><span class="o">);</span>
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Event</span><span class="o">.</span><span class="nx">addListener</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">oDomContainer</span><span class="o">,</span> <span class="s2">&quot;mouseover&quot;</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">doCellMouseOver</span><span class="o">,</span> <span class="k">this</span><span class="o">);</span>
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Event</span><span class="o">.</span><span class="nx">addListener</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">oDomContainer</span><span class="o">,</span> <span class="s2">&quot;mouseout&quot;</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">doCellMouseOut</span><span class="o">,</span> <span class="k">this</span><span class="o">);</span>
<span class="o">},</span>
<span class="nx">applyNavListeners</span> <span class="o">:</span> <span class="k">function</span><span class="o">()</span> <span class="o">{</span>
<span class="k">var</span> <span class="nx">E</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Event</span><span class="o">;</span>
<span class="k">var</span> <span class="nx">calParent</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">parent</span> <span class="o">||</span> <span class="k">this</span><span class="o">;</span>
<span class="k">var</span> <span class="nx">cal</span> <span class="o">=</span> <span class="k">this</span><span class="o">;</span>
<span class="k">var</span> <span class="nx">navBtns</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Dom</span><span class="o">.</span><span class="nx">getElementsByClassName</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">Style</span><span class="o">.</span><span class="nx">CSS_NAV</span><span class="o">,</span> <span class="s2">&quot;a&quot;</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">oDomContainer</span><span class="o">);</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">navBtns</span><span class="o">.</span><span class="nx">length</span> <span class="o">&gt;</span> <span class="m">0</span><span class="o">)</span> <span class="o">{</span>
<span class="k">function</span> <span class="nx">show</span><span class="o">(</span><span class="nx">e</span><span class="o">,</span> <span class="nx">obj</span><span class="o">)</span> <span class="o">{</span>
<span class="k">var</span> <span class="nx">target</span> <span class="o">=</span> <span class="nx">E</span><span class="o">.</span><span class="nx">getTarget</span><span class="o">(</span><span class="nx">e</span><span class="o">);</span>
<span class="c">// this == navBtn</span>
<span class="c"></span> <span class="k">if</span> <span class="o">(</span><span class="k">this</span> <span class="o">===</span> <span class="nx">target</span> <span class="o">||</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Dom</span><span class="o">.</span><span class="nx">isAncestor</span><span class="o">(</span><span class="k">this</span><span class="o">,</span> <span class="nx">target</span><span class="o">))</span> <span class="o">{</span>
<span class="nx">E</span><span class="o">.</span><span class="nx">preventDefault</span><span class="o">(</span><span class="nx">e</span><span class="o">);</span>
<span class="o">}</span>
<span class="k">var</span> <span class="nx">navigator</span> <span class="o">=</span> <span class="nx">calParent</span><span class="o">.</span><span class="nx">oNavigator</span><span class="o">;</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">navigator</span><span class="o">)</span> <span class="o">{</span>
<span class="k">var</span> <span class="nx">pgdate</span> <span class="o">=</span> <span class="nx">cal</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="s2">&quot;pagedate&quot;</span><span class="o">);</span>
<span class="nx">navigator</span><span class="o">.</span><span class="nx">setYear</span><span class="o">(</span><span class="nx">pgdate</span><span class="o">.</span><span class="nx">getFullYear</span><span class="o">());</span>
<span class="nx">navigator</span><span class="o">.</span><span class="nx">setMonth</span><span class="o">(</span><span class="nx">pgdate</span><span class="o">.</span><span class="nx">getMonth</span><span class="o">());</span>
<span class="nx">navigator</span><span class="o">.</span><span class="nx">show</span><span class="o">();</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="nx">E</span><span class="o">.</span><span class="nx">addListener</span><span class="o">(</span><span class="nx">navBtns</span><span class="o">,</span> <span class="s2">&quot;click&quot;</span><span class="o">,</span> <span class="nx">show</span><span class="o">);</span>
<span class="o">}</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Retrieves the Date object for the specified Calendar cell</span>
<span class="c"> * @method getDateByCellId</span>
<span class="c"> * @param {String} id The id of the cell</span>
<span class="c"> * @return {Date} The Date object for the specified Calendar cell</span>
<span class="c"> */</span>
<span class="nx">getDateByCellId</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">id</span><span class="o">)</span> <span class="o">{</span>
<span class="k">var</span> <span class="nx">date</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">getDateFieldsByCellId</span><span class="o">(</span><span class="nx">id</span><span class="o">);</span>
<span class="k">return</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">DateMath</span><span class="o">.</span><span class="nx">getDate</span><span class="o">(</span><span class="nx">date</span><span class="o">[</span><span class="m">0</span><span class="o">],</span><span class="nx">date</span><span class="o">[</span><span class="m">1</span><span class="o">]-</span><span class="m">1</span><span class="o">,</span><span class="nx">date</span><span class="o">[</span><span class="m">2</span><span class="o">]);</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Retrieves the Date object for the specified Calendar cell</span>
<span class="c"> * @method getDateFieldsByCellId</span>
<span class="c"> * @param {String} id The id of the cell</span>
<span class="c"> * @return {Array} The array of Date fields for the specified Calendar cell</span>
<span class="c"> */</span>
<span class="nx">getDateFieldsByCellId</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">id</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">id</span> <span class="o">=</span> <span class="nx">id</span><span class="o">.</span><span class="nx">toLowerCase</span><span class="o">().</span><span class="nx">split</span><span class="o">(</span><span class="s2">&quot;_cell&quot;</span><span class="o">)[</span><span class="m">1</span><span class="o">];</span>
<span class="nx">id</span> <span class="o">=</span> <span class="nb">parseInt</span><span class="o">(</span><span class="nx">id</span><span class="o">,</span> <span class="m">10</span><span class="o">);</span>
<span class="k">return</span> <span class="k">this</span><span class="o">.</span><span class="nx">cellDates</span><span class="o">[</span><span class="nx">id</span><span class="o">];</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Find the Calendar&#39;s cell index for a given date.</span>
<span class="c"> * If the date is not found, the method returns -1.</span>
<span class="c"> * &lt;p&gt;</span>
<span class="c"> * The returned index can be used to lookup the cell HTMLElement </span>
<span class="c"> * using the Calendar&#39;s cells array or passed to selectCell to select </span>
<span class="c"> * cells by index. </span>
<span class="c"> * &lt;/p&gt;</span>
<span class="c"> *</span>
<span class="c"> * 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="c"> *</span>
<span class="c"> * @method getCellIndex</span>
<span class="c"> * @param {Date} date JavaScript Date object, for which to find a cell index.</span>
<span class="c"> * @return {Number} The index of the date in Calendars cellDates/cells arrays, or -1 if the date </span>
<span class="c"> * is not on the curently rendered Calendar page.</span>
<span class="c"> */</span>
<span class="nx">getCellIndex</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">date</span><span class="o">)</span> <span class="o">{</span>
<span class="k">var</span> <span class="nx">idx</span> <span class="o">=</span> <span class="o">-</span><span class="m">1</span><span class="o">;</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">date</span><span class="o">)</span> <span class="o">{</span>
<span class="k">var</span> <span class="nx">m</span> <span class="o">=</span> <span class="nx">date</span><span class="o">.</span><span class="nx">getMonth</span><span class="o">(),</span>
<span class="nx">y</span> <span class="o">=</span> <span class="nx">date</span><span class="o">.</span><span class="nx">getFullYear</span><span class="o">(),</span>
<span class="nx">d</span> <span class="o">=</span> <span class="nx">date</span><span class="o">.</span><span class="nx">getDate</span><span class="o">(),</span>
<span class="nx">dates</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">cellDates</span><span class="o">;</span>
<span class="k">for</span> <span class="o">(</span><span class="k">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="m">0</span><span class="o">;</span> <span class="nx">i</span> <span class="o">&lt;</span> <span class="nx">dates</span><span class="o">.</span><span class="nx">length</span><span class="o">;</span> <span class="o">++</span><span class="nx">i</span><span class="o">)</span> <span class="o">{</span>
<span class="k">var</span> <span class="nx">cellDate</span> <span class="o">=</span> <span class="nx">dates</span><span class="o">[</span><span class="nx">i</span><span class="o">];</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">cellDate</span><span class="o">[</span><span class="m">0</span><span class="o">]</span> <span class="o">===</span> <span class="nx">y</span> <span class="o">&amp;&amp;</span> <span class="nx">cellDate</span><span class="o">[</span><span class="m">1</span><span class="o">]</span> <span class="o">===</span> <span class="nx">m</span><span class="o">+</span><span class="m">1</span> <span class="o">&amp;&amp;</span> <span class="nx">cellDate</span><span class="o">[</span><span class="m">2</span><span class="o">]</span> <span class="o">===</span> <span class="nx">d</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">idx</span> <span class="o">=</span> <span class="nx">i</span><span class="o">;</span>
<span class="k">break</span><span class="o">;</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="k">return</span> <span class="nx">idx</span><span class="o">;</span>
<span class="o">},</span>
<span class="c">// BEGIN BUILT-IN TABLE CELL RENDERERS</span>
<span class="c"></span>
<span class="c">/**</span>
<span class="c"> * Renders a cell that falls before the minimum date or after the maximum date.</span>
<span class="c"> * widget class.</span>
<span class="c"> * @method renderOutOfBoundsDate</span>
<span class="c"> * @param {Date} workingDate The current working Date object being used to generate the calendar</span>
<span class="c"> * @param {HTMLTableCellElement} cell The current working cell in the calendar</span>
<span class="c"> * @return {String} YAHOO.widget.Calendar.STOP_RENDER if rendering should stop with this style, null or nothing if rendering</span>
<span class="c"> * should not be terminated</span>
<span class="c"> */</span>
<span class="nx">renderOutOfBoundsDate</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">workingDate</span><span class="o">,</span> <span class="nx">cell</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Dom</span><span class="o">.</span><span class="nx">addClass</span><span class="o">(</span><span class="nx">cell</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">Style</span><span class="o">.</span><span class="nx">CSS_CELL_OOB</span><span class="o">);</span>
<span class="nx">cell</span><span class="o">.</span><span class="nx">innerHTML</span> <span class="o">=</span> <span class="nx">workingDate</span><span class="o">.</span><span class="nx">getDate</span><span class="o">();</span>
<span class="k">return</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Calendar</span><span class="o">.</span><span class="nx">STOP_RENDER</span><span class="o">;</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Renders the row header for a week.</span>
<span class="c"> * @method renderRowHeader</span>
<span class="c"> * @param {Number} weekNum The week number of the current row</span>
<span class="c"> * @param {Array} cell The current working HTML array</span>
<span class="c"> */</span>
<span class="nx">renderRowHeader</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">weekNum</span><span class="o">,</span> <span class="nx">html</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">html</span><span class="o">[</span><span class="nx">html</span><span class="o">.</span><span class="nx">length</span><span class="o">]</span> <span class="o">=</span> <span class="s1">&#39;&lt;th class=&quot;calrowhead&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="o">;</span>
<span class="k">return</span> <span class="nx">html</span><span class="o">;</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Renders the row footer for a week.</span>
<span class="c"> * @method renderRowFooter</span>
<span class="c"> * @param {Number} weekNum The week number of the current row</span>
<span class="c"> * @param {Array} cell The current working HTML array</span>
<span class="c"> */</span>
<span class="nx">renderRowFooter</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">weekNum</span><span class="o">,</span> <span class="nx">html</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">html</span><span class="o">[</span><span class="nx">html</span><span class="o">.</span><span class="nx">length</span><span class="o">]</span> <span class="o">=</span> <span class="s1">&#39;&lt;th class=&quot;calrowfoot&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="o">;</span>
<span class="k">return</span> <span class="nx">html</span><span class="o">;</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Renders a single standard calendar cell in the calendar widget table.</span>
<span class="c"> * All logic for determining how a standard default cell will be rendered is </span>
<span class="c"> * encapsulated in this method, and must be accounted for when extending the</span>
<span class="c"> * widget class.</span>
<span class="c"> * @method renderCellDefault</span>
<span class="c"> * @param {Date} workingDate The current working Date object being used to generate the calendar</span>
<span class="c"> * @param {HTMLTableCellElement} cell The current working cell in the calendar</span>
<span class="c"> */</span>
<span class="nx">renderCellDefault</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">workingDate</span><span class="o">,</span> <span class="nx">cell</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">cell</span><span class="o">.</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="o">.</span><span class="nx">Style</span><span class="o">.</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="o">.</span><span class="nx">buildDayLabel</span><span class="o">(</span><span class="nx">workingDate</span><span class="o">)</span> <span class="o">+</span> <span class="s2">&quot;&lt;/a&gt;&quot;</span><span class="o">;</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Styles a selectable cell.</span>
<span class="c"> * @method styleCellDefault</span>
<span class="c"> * @param {Date} workingDate The current working Date object being used to generate the calendar</span>
<span class="c"> * @param {HTMLTableCellElement} cell The current working cell in the calendar</span>
<span class="c"> */</span>
<span class="nx">styleCellDefault</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">workingDate</span><span class="o">,</span> <span class="nx">cell</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Dom</span><span class="o">.</span><span class="nx">addClass</span><span class="o">(</span><span class="nx">cell</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">Style</span><span class="o">.</span><span class="nx">CSS_CELL_SELECTABLE</span><span class="o">);</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Renders a single standard calendar cell using the CSS hightlight1 style</span>
<span class="c"> * @method renderCellStyleHighlight1</span>
<span class="c"> * @param {Date} workingDate The current working Date object being used to generate the calendar</span>
<span class="c"> * @param {HTMLTableCellElement} cell The current working cell in the calendar</span>
<span class="c"> */</span>
<span class="nx">renderCellStyleHighlight1</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">workingDate</span><span class="o">,</span> <span class="nx">cell</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Dom</span><span class="o">.</span><span class="nx">addClass</span><span class="o">(</span><span class="nx">cell</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">Style</span><span class="o">.</span><span class="nx">CSS_CELL_HIGHLIGHT1</span><span class="o">);</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Renders a single standard calendar cell using the CSS hightlight2 style</span>
<span class="c"> * @method renderCellStyleHighlight2</span>
<span class="c"> * @param {Date} workingDate The current working Date object being used to generate the calendar</span>
<span class="c"> * @param {HTMLTableCellElement} cell The current working cell in the calendar</span>
<span class="c"> */</span>
<span class="nx">renderCellStyleHighlight2</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">workingDate</span><span class="o">,</span> <span class="nx">cell</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Dom</span><span class="o">.</span><span class="nx">addClass</span><span class="o">(</span><span class="nx">cell</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">Style</span><span class="o">.</span><span class="nx">CSS_CELL_HIGHLIGHT2</span><span class="o">);</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Renders a single standard calendar cell using the CSS hightlight3 style</span>
<span class="c"> * @method renderCellStyleHighlight3</span>
<span class="c"> * @param {Date} workingDate The current working Date object being used to generate the calendar</span>
<span class="c"> * @param {HTMLTableCellElement} cell The current working cell in the calendar</span>
<span class="c"> */</span>
<span class="nx">renderCellStyleHighlight3</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">workingDate</span><span class="o">,</span> <span class="nx">cell</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Dom</span><span class="o">.</span><span class="nx">addClass</span><span class="o">(</span><span class="nx">cell</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">Style</span><span class="o">.</span><span class="nx">CSS_CELL_HIGHLIGHT3</span><span class="o">);</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Renders a single standard calendar cell using the CSS hightlight4 style</span>
<span class="c"> * @method renderCellStyleHighlight4</span>
<span class="c"> * @param {Date} workingDate The current working Date object being used to generate the calendar</span>
<span class="c"> * @param {HTMLTableCellElement} cell The current working cell in the calendar</span>
<span class="c"> */</span>
<span class="nx">renderCellStyleHighlight4</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">workingDate</span><span class="o">,</span> <span class="nx">cell</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Dom</span><span class="o">.</span><span class="nx">addClass</span><span class="o">(</span><span class="nx">cell</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">Style</span><span class="o">.</span><span class="nx">CSS_CELL_HIGHLIGHT4</span><span class="o">);</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Applies the default style used for rendering today&#39;s date to the current calendar cell</span>
<span class="c"> * @method renderCellStyleToday</span>
<span class="c"> * @param {Date} workingDate The current working Date object being used to generate the calendar</span>
<span class="c"> * @param {HTMLTableCellElement} cell The current working cell in the calendar</span>
<span class="c"> */</span>
<span class="nx">renderCellStyleToday</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">workingDate</span><span class="o">,</span> <span class="nx">cell</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Dom</span><span class="o">.</span><span class="nx">addClass</span><span class="o">(</span><span class="nx">cell</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">Style</span><span class="o">.</span><span class="nx">CSS_CELL_TODAY</span><span class="o">);</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Applies the default style used for rendering selected dates to the current calendar cell</span>
<span class="c"> * @method renderCellStyleSelected</span>
<span class="c"> * @param {Date} workingDate The current working Date object being used to generate the calendar</span>
<span class="c"> * @param {HTMLTableCellElement} cell The current working cell in the calendar</span>
<span class="c"> * @return {String} YAHOO.widget.Calendar.STOP_RENDER if rendering should stop with this style, null or nothing if rendering</span>
<span class="c"> * should not be terminated</span>
<span class="c"> */</span>
<span class="nx">renderCellStyleSelected</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">workingDate</span><span class="o">,</span> <span class="nx">cell</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Dom</span><span class="o">.</span><span class="nx">addClass</span><span class="o">(</span><span class="nx">cell</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">Style</span><span class="o">.</span><span class="nx">CSS_CELL_SELECTED</span><span class="o">);</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Applies the default style used for rendering dates that are not a part of the current</span>
<span class="c"> * month (preceding or trailing the cells for the current month)</span>
<span class="c"> * @method renderCellNotThisMonth</span>
<span class="c"> * @param {Date} workingDate The current working Date object being used to generate the calendar</span>
<span class="c"> * @param {HTMLTableCellElement} cell The current working cell in the calendar</span>
<span class="c"> * @return {String} YAHOO.widget.Calendar.STOP_RENDER if rendering should stop with this style, null or nothing if rendering</span>
<span class="c"> * should not be terminated</span>
<span class="c"> */</span>
<span class="nx">renderCellNotThisMonth</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">workingDate</span><span class="o">,</span> <span class="nx">cell</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Dom</span><span class="o">.</span><span class="nx">addClass</span><span class="o">(</span><span class="nx">cell</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">Style</span><span class="o">.</span><span class="nx">CSS_CELL_OOM</span><span class="o">);</span>
<span class="nx">cell</span><span class="o">.</span><span class="nx">innerHTML</span><span class="o">=</span><span class="nx">workingDate</span><span class="o">.</span><span class="nx">getDate</span><span class="o">();</span>
<span class="k">return</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Calendar</span><span class="o">.</span><span class="nx">STOP_RENDER</span><span class="o">;</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Renders the current calendar cell as a non-selectable &quot;black-out&quot; date using the default</span>
<span class="c"> * restricted style.</span>
<span class="c"> * @method renderBodyCellRestricted</span>
<span class="c"> * @param {Date} workingDate The current working Date object being used to generate the calendar</span>
<span class="c"> * @param {HTMLTableCellElement} cell The current working cell in the calendar</span>
<span class="c"> * @return {String} YAHOO.widget.Calendar.STOP_RENDER if rendering should stop with this style, null or nothing if rendering</span>
<span class="c"> * should not be terminated</span>
<span class="c"> */</span>
<span class="nx">renderBodyCellRestricted</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">workingDate</span><span class="o">,</span> <span class="nx">cell</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Dom</span><span class="o">.</span><span class="nx">addClass</span><span class="o">(</span><span class="nx">cell</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">Style</span><span class="o">.</span><span class="nx">CSS_CELL</span><span class="o">);</span>
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Dom</span><span class="o">.</span><span class="nx">addClass</span><span class="o">(</span><span class="nx">cell</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">Style</span><span class="o">.</span><span class="nx">CSS_CELL_RESTRICTED</span><span class="o">);</span>
<span class="nx">cell</span><span class="o">.</span><span class="nx">innerHTML</span><span class="o">=</span><span class="nx">workingDate</span><span class="o">.</span><span class="nx">getDate</span><span class="o">();</span>
<span class="k">return</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Calendar</span><span class="o">.</span><span class="nx">STOP_RENDER</span><span class="o">;</span>
<span class="o">},</span>
<span class="c">// END BUILT-IN TABLE CELL RENDERERS</span>
<span class="c"></span>
<span class="c">// BEGIN MONTH NAVIGATION METHODS</span>
<span class="c"></span>
<span class="c">/**</span>
<span class="c"> * Adds the designated number of months to the current calendar month, and sets the current</span>
<span class="c"> * calendar page date to the new month.</span>
<span class="c"> * @method addMonths</span>
<span class="c"> * @param {Number} count The number of months to add to the current calendar</span>
<span class="c"> */</span>
<span class="nx">addMonths</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">count</span><span class="o">)</span> <span class="o">{</span>
<span class="k">var</span> <span class="nx">cfgPageDate</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Calendar</span><span class="o">.</span><span class="nx">_DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">PAGEDATE</span><span class="o">.</span><span class="nx">key</span><span class="o">;</span>
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">setProperty</span><span class="o">(</span><span class="nx">cfgPageDate</span><span class="o">,</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">DateMath</span><span class="o">.</span><span class="nx">add</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="nx">cfgPageDate</span><span class="o">),</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">DateMath</span><span class="o">.</span><span class="nx">MONTH</span><span class="o">,</span> <span class="nx">count</span><span class="o">));</span>
<span class="k">this</span><span class="o">.</span><span class="nx">resetRenderers</span><span class="o">();</span>
<span class="k">this</span><span class="o">.</span><span class="nx">changePageEvent</span><span class="o">.</span><span class="nx">fire</span><span class="o">();</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Subtracts the designated number of months from the current calendar month, and sets the current</span>
<span class="c"> * calendar page date to the new month.</span>
<span class="c"> * @method subtractMonths</span>
<span class="c"> * @param {Number} count The number of months to subtract from the current calendar</span>
<span class="c"> */</span>
<span class="nx">subtractMonths</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">count</span><span class="o">)</span> <span class="o">{</span>
<span class="k">var</span> <span class="nx">cfgPageDate</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Calendar</span><span class="o">.</span><span class="nx">_DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">PAGEDATE</span><span class="o">.</span><span class="nx">key</span><span class="o">;</span>
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">setProperty</span><span class="o">(</span><span class="nx">cfgPageDate</span><span class="o">,</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">DateMath</span><span class="o">.</span><span class="nx">subtract</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="nx">cfgPageDate</span><span class="o">),</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">DateMath</span><span class="o">.</span><span class="nx">MONTH</span><span class="o">,</span> <span class="nx">count</span><span class="o">));</span>
<span class="k">this</span><span class="o">.</span><span class="nx">resetRenderers</span><span class="o">();</span>
<span class="k">this</span><span class="o">.</span><span class="nx">changePageEvent</span><span class="o">.</span><span class="nx">fire</span><span class="o">();</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Adds the designated number of years to the current calendar, and sets the current</span>
<span class="c"> * calendar page date to the new month.</span>
<span class="c"> * @method addYears</span>
<span class="c"> * @param {Number} count The number of years to add to the current calendar</span>
<span class="c"> */</span>
<span class="nx">addYears</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">count</span><span class="o">)</span> <span class="o">{</span>
<span class="k">var</span> <span class="nx">cfgPageDate</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Calendar</span><span class="o">.</span><span class="nx">_DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">PAGEDATE</span><span class="o">.</span><span class="nx">key</span><span class="o">;</span>
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">setProperty</span><span class="o">(</span><span class="nx">cfgPageDate</span><span class="o">,</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">DateMath</span><span class="o">.</span><span class="nx">add</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="nx">cfgPageDate</span><span class="o">),</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">DateMath</span><span class="o">.</span><span class="nx">YEAR</span><span class="o">,</span> <span class="nx">count</span><span class="o">));</span>
<span class="k">this</span><span class="o">.</span><span class="nx">resetRenderers</span><span class="o">();</span>
<span class="k">this</span><span class="o">.</span><span class="nx">changePageEvent</span><span class="o">.</span><span class="nx">fire</span><span class="o">();</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Subtcats the designated number of years from the current calendar, and sets the current</span>
<span class="c"> * calendar page date to the new month.</span>
<span class="c"> * @method subtractYears</span>
<span class="c"> * @param {Number} count The number of years to subtract from the current calendar</span>
<span class="c"> */</span>
<span class="nx">subtractYears</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">count</span><span class="o">)</span> <span class="o">{</span>
<span class="k">var</span> <span class="nx">cfgPageDate</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Calendar</span><span class="o">.</span><span class="nx">_DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">PAGEDATE</span><span class="o">.</span><span class="nx">key</span><span class="o">;</span>
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">setProperty</span><span class="o">(</span><span class="nx">cfgPageDate</span><span class="o">,</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">DateMath</span><span class="o">.</span><span class="nx">subtract</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="nx">cfgPageDate</span><span class="o">),</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">DateMath</span><span class="o">.</span><span class="nx">YEAR</span><span class="o">,</span> <span class="nx">count</span><span class="o">));</span>
<span class="k">this</span><span class="o">.</span><span class="nx">resetRenderers</span><span class="o">();</span>
<span class="k">this</span><span class="o">.</span><span class="nx">changePageEvent</span><span class="o">.</span><span class="nx">fire</span><span class="o">();</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Navigates to the next month page in the calendar widget.</span>
<span class="c"> * @method nextMonth</span>
<span class="c"> */</span>
<span class="nx">nextMonth</span> <span class="o">:</span> <span class="k">function</span><span class="o">()</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">addMonths</span><span class="o">(</span><span class="m">1</span><span class="o">);</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Navigates to the previous month page in the calendar widget.</span>
<span class="c"> * @method previousMonth</span>
<span class="c"> */</span>
<span class="nx">previousMonth</span> <span class="o">:</span> <span class="k">function</span><span class="o">()</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">subtractMonths</span><span class="o">(</span><span class="m">1</span><span class="o">);</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Navigates to the next year in the currently selected month in the calendar widget.</span>
<span class="c"> * @method nextYear</span>
<span class="c"> */</span>
<span class="nx">nextYear</span> <span class="o">:</span> <span class="k">function</span><span class="o">()</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">addYears</span><span class="o">(</span><span class="m">1</span><span class="o">);</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Navigates to the previous year in the currently selected month in the calendar widget.</span>
<span class="c"> * @method previousYear</span>
<span class="c"> */</span>
<span class="nx">previousYear</span> <span class="o">:</span> <span class="k">function</span><span class="o">()</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">subtractYears</span><span class="o">(</span><span class="m">1</span><span class="o">);</span>
<span class="o">},</span>
<span class="c">// END MONTH NAVIGATION METHODS</span>
<span class="c"></span>
<span class="c">// BEGIN SELECTION METHODS</span>
<span class="c"></span>
<span class="c">/**</span>
<span class="c"> * Resets the calendar widget to the originally selected month and year, and </span>
<span class="c"> * sets the calendar to the initial selection(s).</span>
<span class="c"> * @method reset</span>
<span class="c"> */</span>
<span class="nx">reset</span> <span class="o">:</span> <span class="k">function</span><span class="o">()</span> <span class="o">{</span>
<span class="k">var</span> <span class="nx">defCfg</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Calendar</span><span class="o">.</span><span class="nx">_DEFAULT_CONFIG</span><span class="o">;</span>
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">resetProperty</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">SELECTED</span><span class="o">.</span><span class="nx">key</span><span class="o">);</span>
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">resetProperty</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">PAGEDATE</span><span class="o">.</span><span class="nx">key</span><span class="o">);</span>
<span class="k">this</span><span class="o">.</span><span class="nx">resetEvent</span><span class="o">.</span><span class="nx">fire</span><span class="o">();</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Clears the selected dates in the current calendar widget and sets the calendar</span>
<span class="c"> * to the current month and year.</span>
<span class="c"> * @method clear</span>
<span class="c"> */</span>
<span class="nx">clear</span> <span class="o">:</span> <span class="k">function</span><span class="o">()</span> <span class="o">{</span>
<span class="k">var</span> <span class="nx">defCfg</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Calendar</span><span class="o">.</span><span class="nx">_DEFAULT_CONFIG</span><span class="o">;</span>
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">setProperty</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">SELECTED</span><span class="o">.</span><span class="nx">key</span><span class="o">,</span> <span class="o">[]);</span>
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">setProperty</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">PAGEDATE</span><span class="o">.</span><span class="nx">key</span><span class="o">,</span> <span class="k">new</span> <span class="nb">Date</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">today</span><span class="o">.</span><span class="nx">getTime</span><span class="o">()));</span>
<span class="k">this</span><span class="o">.</span><span class="nx">clearEvent</span><span class="o">.</span><span class="nx">fire</span><span class="o">();</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Selects a date or a collection of dates on the current calendar. This method, by default,</span>
<span class="c"> * does not call the render method explicitly. Once selection has completed, render must be </span>
<span class="c"> * called for the changes to be reflected visually.</span>
<span class="c"> *</span>
<span class="c"> * Any dates which are OOB (out of bounds, not selectable) will not be selected and the array of </span>
<span class="c"> * selected dates passed to the selectEvent will not contain OOB dates.</span>
<span class="c"> * </span>
<span class="c"> * If all dates are OOB, the no state change will occur; beforeSelect and select events will not be fired.</span>
<span class="c"> *</span>
<span class="c"> * @method select</span>
<span class="c"> * @param {String/Date/Date[]} date The date string of dates to select in the current calendar. Valid formats are</span>
<span class="c"> * individual date(s) (12/24/2005,12/26/2005) or date range(s) (12/24/2005-1/1/2006).</span>
<span class="c"> * Multiple comma-delimited dates can also be passed to this method (12/24/2005,12/11/2005-12/13/2005).</span>
<span class="c"> * This method can also take a JavaScript Date object or an array of Date objects.</span>
<span class="c"> * @return {Date[]} Array of JavaScript Date objects representing all individual dates that are currently selected.</span>
<span class="c"> */</span>
<span class="nx">select</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">date</span><span class="o">)</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">logger</span><span class="o">.</span><span class="nx">log</span><span class="o">(</span><span class="s2">&quot;Select: &quot;</span> <span class="o">+</span> <span class="nx">date</span><span class="o">,</span> <span class="s2">&quot;info&quot;</span><span class="o">);</span>
<span class="k">var</span> <span class="nx">aToBeSelected</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">_toFieldArray</span><span class="o">(</span><span class="nx">date</span><span class="o">);</span>
<span class="k">this</span><span class="o">.</span><span class="nx">logger</span><span class="o">.</span><span class="nx">log</span><span class="o">(</span><span class="s2">&quot;Selection field array: &quot;</span> <span class="o">+</span> <span class="nx">aToBeSelected</span><span class="o">,</span> <span class="s2">&quot;info&quot;</span><span class="o">);</span>
<span class="c">// Filtered array of valid dates</span>
<span class="c"></span> <span class="k">var</span> <span class="nx">validDates</span> <span class="o">=</span> <span class="o">[];</span>
<span class="k">var</span> <span class="nx">selected</span> <span class="o">=</span> <span class="o">[];</span>
<span class="k">var</span> <span class="nx">cfgSelected</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Calendar</span><span class="o">.</span><span class="nx">_DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">SELECTED</span><span class="o">.</span><span class="nx">key</span><span class="o">;</span>
<span class="k">for</span> <span class="o">(</span><span class="k">var</span> <span class="nx">a</span><span class="o">=</span><span class="m">0</span><span class="o">;</span> <span class="nx">a</span> <span class="o">&lt;</span> <span class="nx">aToBeSelected</span><span class="o">.</span><span class="nx">length</span><span class="o">;</span> <span class="o">++</span><span class="nx">a</span><span class="o">)</span> <span class="o">{</span>
<span class="k">var</span> <span class="nx">toSelect</span> <span class="o">=</span> <span class="nx">aToBeSelected</span><span class="o">[</span><span class="nx">a</span><span class="o">];</span>
<span class="k">if</span> <span class="o">(!</span><span class="k">this</span><span class="o">.</span><span class="nx">isDateOOB</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">_toDate</span><span class="o">(</span><span class="nx">toSelect</span><span class="o">)))</span> <span class="o">{</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">validDates</span><span class="o">.</span><span class="nx">length</span> <span class="o">===</span> <span class="m">0</span><span class="o">)</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">beforeSelectEvent</span><span class="o">.</span><span class="nx">fire</span><span class="o">();</span>
<span class="nx">selected</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="nx">cfgSelected</span><span class="o">);</span>
<span class="o">}</span>
<span class="nx">validDates</span><span class="o">.</span><span class="nx">push</span><span class="o">(</span><span class="nx">toSelect</span><span class="o">);</span>
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">_indexOfSelectedFieldArray</span><span class="o">(</span><span class="nx">toSelect</span><span class="o">)</span> <span class="o">==</span> <span class="o">-</span><span class="m">1</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">selected</span><span class="o">[</span><span class="nx">selected</span><span class="o">.</span><span class="nx">length</span><span class="o">]</span> <span class="o">=</span> <span class="nx">toSelect</span><span class="o">;</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">validDates</span><span class="o">.</span><span class="nx">length</span> <span class="o">===</span> <span class="m">0</span><span class="o">)</span> <span class="o">{</span> <span class="k">this</span><span class="o">.</span><span class="nx">logger</span><span class="o">.</span><span class="nx">log</span><span class="o">(</span><span class="s2">&quot;All provided dates were OOB. beforeSelect and select events not fired&quot;</span><span class="o">,</span> <span class="s2">&quot;info&quot;</span><span class="o">);</span> <span class="o">}</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">validDates</span><span class="o">.</span><span class="nx">length</span> <span class="o">&gt;</span> <span class="m">0</span><span class="o">)</span> <span class="o">{</span>
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">parent</span><span class="o">)</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">parent</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">setProperty</span><span class="o">(</span><span class="nx">cfgSelected</span><span class="o">,</span> <span class="nx">selected</span><span class="o">);</span>
<span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">setProperty</span><span class="o">(</span><span class="nx">cfgSelected</span><span class="o">,</span> <span class="nx">selected</span><span class="o">);</span>
<span class="o">}</span>
<span class="k">this</span><span class="o">.</span><span class="nx">selectEvent</span><span class="o">.</span><span class="nx">fire</span><span class="o">(</span><span class="nx">validDates</span><span class="o">);</span>
<span class="o">}</span>
<span class="k">return</span> <span class="k">this</span><span class="o">.</span><span class="nx">getSelectedDates</span><span class="o">();</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Selects a date on the current calendar by referencing the index of the cell that should be selected.</span>
<span class="c"> * This method is used to easily select a single cell (usually with a mouse click) without having to do</span>
<span class="c"> * a full render. The selected style is applied to the cell directly.</span>
<span class="c"> *</span>
<span class="c"> * 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="c"> * 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="c"> * </span>
<span class="c"> * @method selectCell</span>
<span class="c"> * @param {Number} cellIndex The index of the cell to select in the current calendar. </span>
<span class="c"> * @return {Date[]} Array of JavaScript Date objects representing all individual dates that are currently selected.</span>
<span class="c"> */</span>
<span class="nx">selectCell</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">cellIndex</span><span class="o">)</span> <span class="o">{</span>
<span class="k">var</span> <span class="nx">cell</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">cells</span><span class="o">[</span><span class="nx">cellIndex</span><span class="o">];</span>
<span class="k">var</span> <span class="nx">cellDate</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">cellDates</span><span class="o">[</span><span class="nx">cellIndex</span><span class="o">];</span>
<span class="k">var</span> <span class="nx">dCellDate</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">_toDate</span><span class="o">(</span><span class="nx">cellDate</span><span class="o">);</span>
<span class="k">this</span><span class="o">.</span><span class="nx">logger</span><span class="o">.</span><span class="nx">log</span><span class="o">(</span><span class="s2">&quot;Select: &quot;</span> <span class="o">+</span> <span class="nx">dCellDate</span><span class="o">,</span> <span class="s2">&quot;info&quot;</span><span class="o">);</span>
<span class="k">var</span> <span class="nx">selectable</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Dom</span><span class="o">.</span><span class="nx">hasClass</span><span class="o">(</span><span class="nx">cell</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">Style</span><span class="o">.</span><span class="nx">CSS_CELL_SELECTABLE</span><span class="o">);</span>
<span class="k">if</span> <span class="o">(!</span><span class="nx">selectable</span><span class="o">)</span> <span class="o">{</span><span class="k">this</span><span class="o">.</span><span class="nx">logger</span><span class="o">.</span><span class="nx">log</span><span class="o">(</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="o">,</span> <span class="s2">&quot;info&quot;</span><span class="o">);</span> <span class="o">}</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">selectable</span><span class="o">)</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">beforeSelectEvent</span><span class="o">.</span><span class="nx">fire</span><span class="o">();</span>
<span class="k">var</span> <span class="nx">cfgSelected</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Calendar</span><span class="o">.</span><span class="nx">_DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">SELECTED</span><span class="o">.</span><span class="nx">key</span><span class="o">;</span>
<span class="k">var</span> <span class="nx">selected</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="nx">cfgSelected</span><span class="o">);</span>
<span class="k">var</span> <span class="nx">selectDate</span> <span class="o">=</span> <span class="nx">cellDate</span><span class="o">.</span><span class="nx">concat</span><span class="o">();</span>
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">_indexOfSelectedFieldArray</span><span class="o">(</span><span class="nx">selectDate</span><span class="o">)</span> <span class="o">==</span> <span class="o">-</span><span class="m">1</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">selected</span><span class="o">[</span><span class="nx">selected</span><span class="o">.</span><span class="nx">length</span><span class="o">]</span> <span class="o">=</span> <span class="nx">selectDate</span><span class="o">;</span>
<span class="o">}</span>
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">parent</span><span class="o">)</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">parent</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">setProperty</span><span class="o">(</span><span class="nx">cfgSelected</span><span class="o">,</span> <span class="nx">selected</span><span class="o">);</span>
<span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">setProperty</span><span class="o">(</span><span class="nx">cfgSelected</span><span class="o">,</span> <span class="nx">selected</span><span class="o">);</span>
<span class="o">}</span>
<span class="k">this</span><span class="o">.</span><span class="nx">renderCellStyleSelected</span><span class="o">(</span><span class="nx">dCellDate</span><span class="o">,</span><span class="nx">cell</span><span class="o">);</span>
<span class="k">this</span><span class="o">.</span><span class="nx">selectEvent</span><span class="o">.</span><span class="nx">fire</span><span class="o">([</span><span class="nx">selectDate</span><span class="o">]);</span>
<span class="k">this</span><span class="o">.</span><span class="nx">doCellMouseOut</span><span class="o">.</span><span class="nx">call</span><span class="o">(</span><span class="nx">cell</span><span class="o">,</span> <span class="kc">null</span><span class="o">,</span> <span class="k">this</span><span class="o">);</span>
<span class="o">}</span>
<span class="k">return</span> <span class="k">this</span><span class="o">.</span><span class="nx">getSelectedDates</span><span class="o">();</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Deselects a date or a collection of dates on the current calendar. This method, by default,</span>
<span class="c"> * does not call the render method explicitly. Once deselection has completed, render must be </span>
<span class="c"> * called for the changes to be reflected visually.</span>
<span class="c"> * </span>
<span class="c"> * The method will not attempt to deselect any dates which are OOB (out of bounds, and hence not selectable) </span>
<span class="c"> * and the array of deselected dates passed to the deselectEvent will not contain any OOB dates.</span>
<span class="c"> * </span>
<span class="c"> * If all dates are OOB, beforeDeselect and deselect events will not be fired.</span>
<span class="c"> * </span>
<span class="c"> * @method deselect</span>
<span class="c"> * @param {String/Date/Date[]} date The date string of dates to deselect in the current calendar. Valid formats are</span>
<span class="c"> * individual date(s) (12/24/2005,12/26/2005) or date range(s) (12/24/2005-1/1/2006).</span>
<span class="c"> * Multiple comma-delimited dates can also be passed to this method (12/24/2005,12/11/2005-12/13/2005).</span>
<span class="c"> * This method can also take a JavaScript Date object or an array of Date objects. </span>
<span class="c"> * @return {Date[]} Array of JavaScript Date objects representing all individual dates that are currently selected.</span>
<span class="c"> */</span>
<span class="nx">deselect</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">date</span><span class="o">)</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">logger</span><span class="o">.</span><span class="nx">log</span><span class="o">(</span><span class="s2">&quot;Deselect: &quot;</span> <span class="o">+</span> <span class="nx">date</span><span class="o">,</span> <span class="s2">&quot;info&quot;</span><span class="o">);</span>
<span class="k">var</span> <span class="nx">aToBeDeselected</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">_toFieldArray</span><span class="o">(</span><span class="nx">date</span><span class="o">);</span>
<span class="k">this</span><span class="o">.</span><span class="nx">logger</span><span class="o">.</span><span class="nx">log</span><span class="o">(</span><span class="s2">&quot;Deselection field array: &quot;</span> <span class="o">+</span> <span class="nx">aToBeDeselected</span><span class="o">,</span> <span class="s2">&quot;info&quot;</span><span class="o">);</span>
<span class="k">var</span> <span class="nx">validDates</span> <span class="o">=</span> <span class="o">[];</span>
<span class="k">var</span> <span class="nx">selected</span> <span class="o">=</span> <span class="o">[];</span>
<span class="k">var</span> <span class="nx">cfgSelected</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Calendar</span><span class="o">.</span><span class="nx">_DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">SELECTED</span><span class="o">.</span><span class="nx">key</span><span class="o">;</span>
<span class="k">for</span> <span class="o">(</span><span class="k">var</span> <span class="nx">a</span><span class="o">=</span><span class="m">0</span><span class="o">;</span> <span class="nx">a</span> <span class="o">&lt;</span> <span class="nx">aToBeDeselected</span><span class="o">.</span><span class="nx">length</span><span class="o">;</span> <span class="o">++</span><span class="nx">a</span><span class="o">)</span> <span class="o">{</span>
<span class="k">var</span> <span class="nx">toDeselect</span> <span class="o">=</span> <span class="nx">aToBeDeselected</span><span class="o">[</span><span class="nx">a</span><span class="o">];</span>
<span class="k">if</span> <span class="o">(!</span><span class="k">this</span><span class="o">.</span><span class="nx">isDateOOB</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">_toDate</span><span class="o">(</span><span class="nx">toDeselect</span><span class="o">)))</span> <span class="o">{</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">validDates</span><span class="o">.</span><span class="nx">length</span> <span class="o">===</span> <span class="m">0</span><span class="o">)</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">beforeDeselectEvent</span><span class="o">.</span><span class="nx">fire</span><span class="o">();</span>
<span class="nx">selected</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="nx">cfgSelected</span><span class="o">);</span>
<span class="o">}</span>
<span class="nx">validDates</span><span class="o">.</span><span class="nx">push</span><span class="o">(</span><span class="nx">toDeselect</span><span class="o">);</span>
<span class="k">var</span> <span class="nx">index</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">_indexOfSelectedFieldArray</span><span class="o">(</span><span class="nx">toDeselect</span><span class="o">);</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">index</span> <span class="o">!=</span> <span class="o">-</span><span class="m">1</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">selected</span><span class="o">.</span><span class="nx">splice</span><span class="o">(</span><span class="nx">index</span><span class="o">,</span><span class="m">1</span><span class="o">);</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">validDates</span><span class="o">.</span><span class="nx">length</span> <span class="o">===</span> <span class="m">0</span><span class="o">)</span> <span class="o">{</span> <span class="k">this</span><span class="o">.</span><span class="nx">logger</span><span class="o">.</span><span class="nx">log</span><span class="o">(</span><span class="s2">&quot;All provided dates were OOB. beforeDeselect and deselect events not fired&quot;</span><span class="o">);}</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">validDates</span><span class="o">.</span><span class="nx">length</span> <span class="o">&gt;</span> <span class="m">0</span><span class="o">)</span> <span class="o">{</span>
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">parent</span><span class="o">)</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">parent</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">setProperty</span><span class="o">(</span><span class="nx">cfgSelected</span><span class="o">,</span> <span class="nx">selected</span><span class="o">);</span>
<span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">setProperty</span><span class="o">(</span><span class="nx">cfgSelected</span><span class="o">,</span> <span class="nx">selected</span><span class="o">);</span>
<span class="o">}</span>
<span class="k">this</span><span class="o">.</span><span class="nx">deselectEvent</span><span class="o">.</span><span class="nx">fire</span><span class="o">(</span><span class="nx">validDates</span><span class="o">);</span>
<span class="o">}</span>
<span class="k">return</span> <span class="k">this</span><span class="o">.</span><span class="nx">getSelectedDates</span><span class="o">();</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Deselects a date on the current calendar by referencing the index of the cell that should be deselected.</span>
<span class="c"> * This method is used to easily deselect a single cell (usually with a mouse click) without having to do</span>
<span class="c"> * a full render. The selected style is removed from the cell directly.</span>
<span class="c"> * </span>
<span class="c"> * 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="c"> * or out of bounds cells), the method will not attempt to deselect it and in such a case, beforeDeselect and </span>
<span class="c"> * deselect events will not be fired.</span>
<span class="c"> * </span>
<span class="c"> * @method deselectCell</span>
<span class="c"> * @param {Number} cellIndex The index of the cell to deselect in the current calendar. </span>
<span class="c"> * @return {Date[]} Array of JavaScript Date objects representing all individual dates that are currently selected.</span>
<span class="c"> */</span>
<span class="nx">deselectCell</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">cellIndex</span><span class="o">)</span> <span class="o">{</span>
<span class="k">var</span> <span class="nx">cell</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">cells</span><span class="o">[</span><span class="nx">cellIndex</span><span class="o">];</span>
<span class="k">var</span> <span class="nx">cellDate</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">cellDates</span><span class="o">[</span><span class="nx">cellIndex</span><span class="o">];</span>
<span class="k">var</span> <span class="nx">cellDateIndex</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">_indexOfSelectedFieldArray</span><span class="o">(</span><span class="nx">cellDate</span><span class="o">);</span>
<span class="k">var</span> <span class="nx">selectable</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Dom</span><span class="o">.</span><span class="nx">hasClass</span><span class="o">(</span><span class="nx">cell</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">Style</span><span class="o">.</span><span class="nx">CSS_CELL_SELECTABLE</span><span class="o">);</span>
<span class="k">if</span> <span class="o">(!</span><span class="nx">selectable</span><span class="o">)</span> <span class="o">{</span> <span class="k">this</span><span class="o">.</span><span class="nx">logger</span><span class="o">.</span><span class="nx">log</span><span class="o">(</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="o">,</span> <span class="s2">&quot;info&quot;</span><span class="o">);</span> <span class="o">}</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">selectable</span><span class="o">)</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">beforeDeselectEvent</span><span class="o">.</span><span class="nx">fire</span><span class="o">();</span>
<span class="k">var</span> <span class="nx">defCfg</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Calendar</span><span class="o">.</span><span class="nx">_DEFAULT_CONFIG</span><span class="o">;</span>
<span class="k">var</span> <span class="nx">selected</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">SELECTED</span><span class="o">.</span><span class="nx">key</span><span class="o">);</span>
<span class="k">var</span> <span class="nx">dCellDate</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">_toDate</span><span class="o">(</span><span class="nx">cellDate</span><span class="o">);</span>
<span class="k">var</span> <span class="nx">selectDate</span> <span class="o">=</span> <span class="nx">cellDate</span><span class="o">.</span><span class="nx">concat</span><span class="o">();</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">cellDateIndex</span> <span class="o">&gt;</span> <span class="o">-</span><span class="m">1</span><span class="o">)</span> <span class="o">{</span>
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">PAGEDATE</span><span class="o">.</span><span class="nx">key</span><span class="o">).</span><span class="nx">getMonth</span><span class="o">()</span> <span class="o">==</span> <span class="nx">dCellDate</span><span class="o">.</span><span class="nx">getMonth</span><span class="o">()</span> <span class="o">&amp;&amp;</span>
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">PAGEDATE</span><span class="o">.</span><span class="nx">key</span><span class="o">).</span><span class="nx">getFullYear</span><span class="o">()</span> <span class="o">==</span> <span class="nx">dCellDate</span><span class="o">.</span><span class="nx">getFullYear</span><span class="o">())</span> <span class="o">{</span>
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Dom</span><span class="o">.</span><span class="nx">removeClass</span><span class="o">(</span><span class="nx">cell</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">Style</span><span class="o">.</span><span class="nx">CSS_CELL_SELECTED</span><span class="o">);</span>
<span class="o">}</span>
<span class="nx">selected</span><span class="o">.</span><span class="nx">splice</span><span class="o">(</span><span class="nx">cellDateIndex</span><span class="o">,</span> <span class="m">1</span><span class="o">);</span>
<span class="o">}</span>
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">parent</span><span class="o">)</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">parent</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">setProperty</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">SELECTED</span><span class="o">.</span><span class="nx">key</span><span class="o">,</span> <span class="nx">selected</span><span class="o">);</span>
<span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">setProperty</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">SELECTED</span><span class="o">.</span><span class="nx">key</span><span class="o">,</span> <span class="nx">selected</span><span class="o">);</span>
<span class="o">}</span>
<span class="k">this</span><span class="o">.</span><span class="nx">deselectEvent</span><span class="o">.</span><span class="nx">fire</span><span class="o">(</span><span class="nx">selectDate</span><span class="o">);</span>
<span class="o">}</span>
<span class="k">return</span> <span class="k">this</span><span class="o">.</span><span class="nx">getSelectedDates</span><span class="o">();</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Deselects all dates on the current calendar.</span>
<span class="c"> * @method deselectAll</span>
<span class="c"> * @return {Date[]} Array of JavaScript Date objects representing all individual dates that are currently selected.</span>
<span class="c"> * Assuming that this function executes properly, the return value should be an empty array.</span>
<span class="c"> * However, the empty array is returned for the sake of being able to check the selection status</span>
<span class="c"> * of the calendar.</span>
<span class="c"> */</span>
<span class="nx">deselectAll</span> <span class="o">:</span> <span class="k">function</span><span class="o">()</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">beforeDeselectEvent</span><span class="o">.</span><span class="nx">fire</span><span class="o">();</span>
<span class="k">var</span> <span class="nx">cfgSelected</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Calendar</span><span class="o">.</span><span class="nx">_DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">SELECTED</span><span class="o">.</span><span class="nx">key</span><span class="o">;</span>
<span class="k">var</span> <span class="nx">selected</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="nx">cfgSelected</span><span class="o">);</span>
<span class="k">var</span> <span class="nx">count</span> <span class="o">=</span> <span class="nx">selected</span><span class="o">.</span><span class="nx">length</span><span class="o">;</span>
<span class="k">var</span> <span class="nx">sel</span> <span class="o">=</span> <span class="nx">selected</span><span class="o">.</span><span class="nx">concat</span><span class="o">();</span>
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">parent</span><span class="o">)</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">parent</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">setProperty</span><span class="o">(</span><span class="nx">cfgSelected</span><span class="o">,</span> <span class="o">[]);</span>
<span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">setProperty</span><span class="o">(</span><span class="nx">cfgSelected</span><span class="o">,</span> <span class="o">[]);</span>
<span class="o">}</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">count</span> <span class="o">&gt;</span> <span class="m">0</span><span class="o">)</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">deselectEvent</span><span class="o">.</span><span class="nx">fire</span><span class="o">(</span><span class="nx">sel</span><span class="o">);</span>
<span class="o">}</span>
<span class="k">return</span> <span class="k">this</span><span class="o">.</span><span class="nx">getSelectedDates</span><span class="o">();</span>
<span class="o">},</span>
<span class="c">// END SELECTION METHODS</span>
<span class="c"></span>
<span class="c">// BEGIN TYPE CONVERSION METHODS</span>
<span class="c"></span>
<span class="c">/**</span>
<span class="c"> * Converts a date (either a JavaScript Date object, or a date string) to the internal data structure</span>
<span class="c"> * used to represent dates: [[yyyy,mm,dd],[yyyy,mm,dd]].</span>
<span class="c"> * @method _toFieldArray</span>
<span class="c"> * @private</span>
<span class="c"> * @param {String/Date/Date[]} date The date string of dates to deselect in the current calendar. Valid formats are</span>
<span class="c"> * individual date(s) (12/24/2005,12/26/2005) or date range(s) (12/24/2005-1/1/2006).</span>
<span class="c"> * Multiple comma-delimited dates can also be passed to this method (12/24/2005,12/11/2005-12/13/2005).</span>
<span class="c"> * This method can also take a JavaScript Date object or an array of Date objects. </span>
<span class="c"> * @return {Array[](Number[])} Array of date field arrays</span>
<span class="c"> */</span>
<span class="nx">_toFieldArray</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">date</span><span class="o">)</span> <span class="o">{</span>
<span class="k">var</span> <span class="nx">returnDate</span> <span class="o">=</span> <span class="o">[];</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">date</span> <span class="k">instanceof</span> <span class="nb">Date</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">returnDate</span> <span class="o">=</span> <span class="o">[[</span><span class="nx">date</span><span class="o">.</span><span class="nx">getFullYear</span><span class="o">(),</span> <span class="nx">date</span><span class="o">.</span><span class="nx">getMonth</span><span class="o">()+</span><span class="m">1</span><span class="o">,</span> <span class="nx">date</span><span class="o">.</span><span class="nx">getDate</span><span class="o">()]];</span>
<span class="o">}</span> <span class="k">else</span> <span class="k">if</span> <span class="o">(</span><span class="nx">YAHOO</span><span class="o">.</span><span class="nx">lang</span><span class="o">.</span><span class="nx">isString</span><span class="o">(</span><span class="nx">date</span><span class="o">))</span> <span class="o">{</span>
<span class="nx">returnDate</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">_parseDates</span><span class="o">(</span><span class="nx">date</span><span class="o">);</span>
<span class="o">}</span> <span class="k">else</span> <span class="k">if</span> <span class="o">(</span><span class="nx">YAHOO</span><span class="o">.</span><span class="nx">lang</span><span class="o">.</span><span class="nx">isArray</span><span class="o">(</span><span class="nx">date</span><span class="o">))</span> <span class="o">{</span>
<span class="k">for</span> <span class="o">(</span><span class="k">var</span> <span class="nx">i</span><span class="o">=</span><span class="m">0</span><span class="o">;</span><span class="nx">i</span><span class="o">&lt;</span><span class="nx">date</span><span class="o">.</span><span class="nx">length</span><span class="o">;++</span><span class="nx">i</span><span class="o">)</span> <span class="o">{</span>
<span class="k">var</span> <span class="nx">d</span> <span class="o">=</span> <span class="nx">date</span><span class="o">[</span><span class="nx">i</span><span class="o">];</span>
<span class="nx">returnDate</span><span class="o">[</span><span class="nx">returnDate</span><span class="o">.</span><span class="nx">length</span><span class="o">]</span> <span class="o">=</span> <span class="o">[</span><span class="nx">d</span><span class="o">.</span><span class="nx">getFullYear</span><span class="o">(),</span><span class="nx">d</span><span class="o">.</span><span class="nx">getMonth</span><span class="o">()+</span><span class="m">1</span><span class="o">,</span><span class="nx">d</span><span class="o">.</span><span class="nx">getDate</span><span class="o">()];</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="k">return</span> <span class="nx">returnDate</span><span class="o">;</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Converts a date field array [yyyy,mm,dd] to a JavaScript Date object. The date field array</span>
<span class="c"> * is the format in which dates are as provided as arguments to selectEvent and deselectEvent listeners.</span>
<span class="c"> * </span>
<span class="c"> * @method toDate</span>
<span class="c"> * @param {Number[]} dateFieldArray The date field array to convert to a JavaScript Date.</span>
<span class="c"> * @return {Date} JavaScript Date object representing the date field array.</span>
<span class="c"> */</span>
<span class="nx">toDate</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">dateFieldArray</span><span class="o">)</span> <span class="o">{</span>
<span class="k">return</span> <span class="k">this</span><span class="o">.</span><span class="nx">_toDate</span><span class="o">(</span><span class="nx">dateFieldArray</span><span class="o">);</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Converts a date field array [yyyy,mm,dd] to a JavaScript Date object.</span>
<span class="c"> * @method _toDate</span>
<span class="c"> * @private</span>
<span class="c"> * @deprecated Made public, toDate </span>
<span class="c"> * @param {Number[]} dateFieldArray The date field array to convert to a JavaScript Date.</span>
<span class="c"> * @return {Date} JavaScript Date object representing the date field array</span>
<span class="c"> */</span>
<span class="nx">_toDate</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">dateFieldArray</span><span class="o">)</span> <span class="o">{</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">dateFieldArray</span> <span class="k">instanceof</span> <span class="nb">Date</span><span class="o">)</span> <span class="o">{</span>
<span class="k">return</span> <span class="nx">dateFieldArray</span><span class="o">;</span>
<span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
<span class="k">return</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">DateMath</span><span class="o">.</span><span class="nx">getDate</span><span class="o">(</span><span class="nx">dateFieldArray</span><span class="o">[</span><span class="m">0</span><span class="o">],</span><span class="nx">dateFieldArray</span><span class="o">[</span><span class="m">1</span><span class="o">]-</span><span class="m">1</span><span class="o">,</span><span class="nx">dateFieldArray</span><span class="o">[</span><span class="m">2</span><span class="o">]);</span>
<span class="o">}</span>
<span class="o">},</span>
<span class="c">// END TYPE CONVERSION METHODS </span>
<span class="c"></span>
<span class="c">// BEGIN UTILITY METHODS</span>
<span class="c"></span>
<span class="c">/**</span>
<span class="c"> * Converts a date field array [yyyy,mm,dd] to a JavaScript Date object.</span>
<span class="c"> * @method _fieldArraysAreEqual</span>
<span class="c"> * @private</span>
<span class="c"> * @param {Number[]} array1 The first date field array to compare</span>
<span class="c"> * @param {Number[]} array2 The first date field array to compare</span>
<span class="c"> * @return {Boolean} The boolean that represents the equality of the two arrays</span>
<span class="c"> */</span>
<span class="nx">_fieldArraysAreEqual</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">array1</span><span class="o">,</span> <span class="nx">array2</span><span class="o">)</span> <span class="o">{</span>
<span class="k">var</span> <span class="nx">match</span> <span class="o">=</span> <span class="kc">false</span><span class="o">;</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">array1</span><span class="o">[</span><span class="m">0</span><span class="o">]==</span><span class="nx">array2</span><span class="o">[</span><span class="m">0</span><span class="o">]&amp;&amp;</span><span class="nx">array1</span><span class="o">[</span><span class="m">1</span><span class="o">]==</span><span class="nx">array2</span><span class="o">[</span><span class="m">1</span><span class="o">]&amp;&amp;</span><span class="nx">array1</span><span class="o">[</span><span class="m">2</span><span class="o">]==</span><span class="nx">array2</span><span class="o">[</span><span class="m">2</span><span class="o">])</span> <span class="o">{</span>
<span class="nx">match</span><span class="o">=</span><span class="kc">true</span><span class="o">;</span>
<span class="o">}</span>
<span class="k">return</span> <span class="nx">match</span><span class="o">;</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Gets the index of a date field array [yyyy,mm,dd] in the current list of selected dates.</span>
<span class="c"> * @method _indexOfSelectedFieldArray</span>
<span class="c"> * @private</span>
<span class="c"> * @param {Number[]} find The date field array to search for</span>
<span class="c"> * @return {Number} The index of the date field array within the collection of selected dates.</span>
<span class="c"> * -1 will be returned if the date is not found.</span>
<span class="c"> */</span>
<span class="nx">_indexOfSelectedFieldArray</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">find</span><span class="o">)</span> <span class="o">{</span>
<span class="k">var</span> <span class="nx">selected</span> <span class="o">=</span> <span class="o">-</span><span class="m">1</span><span class="o">;</span>
<span class="k">var</span> <span class="nx">seldates</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Calendar</span><span class="o">.</span><span class="nx">_DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">SELECTED</span><span class="o">.</span><span class="nx">key</span><span class="o">);</span>
<span class="k">for</span> <span class="o">(</span><span class="k">var</span> <span class="nx">s</span><span class="o">=</span><span class="m">0</span><span class="o">;</span><span class="nx">s</span><span class="o">&lt;</span><span class="nx">seldates</span><span class="o">.</span><span class="nx">length</span><span class="o">;++</span><span class="nx">s</span><span class="o">)</span> <span class="o">{</span>
<span class="k">var</span> <span class="nx">sArray</span> <span class="o">=</span> <span class="nx">seldates</span><span class="o">[</span><span class="nx">s</span><span class="o">];</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">find</span><span class="o">[</span><span class="m">0</span><span class="o">]==</span><span class="nx">sArray</span><span class="o">[</span><span class="m">0</span><span class="o">]&amp;&amp;</span><span class="nx">find</span><span class="o">[</span><span class="m">1</span><span class="o">]==</span><span class="nx">sArray</span><span class="o">[</span><span class="m">1</span><span class="o">]&amp;&amp;</span><span class="nx">find</span><span class="o">[</span><span class="m">2</span><span class="o">]==</span><span class="nx">sArray</span><span class="o">[</span><span class="m">2</span><span class="o">])</span> <span class="o">{</span>
<span class="nx">selected</span> <span class="o">=</span> <span class="nx">s</span><span class="o">;</span>
<span class="k">break</span><span class="o">;</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="k">return</span> <span class="nx">selected</span><span class="o">;</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Determines whether a given date is OOM (out of month).</span>
<span class="c"> * @method isDateOOM</span>
<span class="c"> * @param {Date} date The JavaScript Date object for which to check the OOM status</span>
<span class="c"> * @return {Boolean} true if the date is OOM</span>
<span class="c"> */</span>
<span class="nx">isDateOOM</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">date</span><span class="o">)</span> <span class="o">{</span>
<span class="k">return</span> <span class="o">(</span><span class="nx">date</span><span class="o">.</span><span class="nx">getMonth</span><span class="o">()</span> <span class="o">!=</span> <span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Calendar</span><span class="o">.</span><span class="nx">_DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">PAGEDATE</span><span class="o">.</span><span class="nx">key</span><span class="o">).</span><span class="nx">getMonth</span><span class="o">());</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Determines whether a given date is OOB (out of bounds - less than the mindate or more than the maxdate).</span>
<span class="c"> *</span>
<span class="c"> * @method isDateOOB</span>
<span class="c"> * @param {Date} date The JavaScript Date object for which to check the OOB status</span>
<span class="c"> * @return {Boolean} true if the date is OOB</span>
<span class="c"> */</span>
<span class="nx">isDateOOB</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">date</span><span class="o">)</span> <span class="o">{</span>
<span class="k">var</span> <span class="nx">defCfg</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Calendar</span><span class="o">.</span><span class="nx">_DEFAULT_CONFIG</span><span class="o">;</span>
<span class="k">var</span> <span class="nx">minDate</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">MINDATE</span><span class="o">.</span><span class="nx">key</span><span class="o">);</span>
<span class="k">var</span> <span class="nx">maxDate</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">MAXDATE</span><span class="o">.</span><span class="nx">key</span><span class="o">);</span>
<span class="k">var</span> <span class="nx">dm</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">DateMath</span><span class="o">;</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">minDate</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">minDate</span> <span class="o">=</span> <span class="nx">dm</span><span class="o">.</span><span class="nx">clearTime</span><span class="o">(</span><span class="nx">minDate</span><span class="o">);</span>
<span class="o">}</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">maxDate</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">maxDate</span> <span class="o">=</span> <span class="nx">dm</span><span class="o">.</span><span class="nx">clearTime</span><span class="o">(</span><span class="nx">maxDate</span><span class="o">);</span>
<span class="o">}</span>
<span class="k">var</span> <span class="nx">clearedDate</span> <span class="o">=</span> <span class="k">new</span> <span class="nb">Date</span><span class="o">(</span><span class="nx">date</span><span class="o">.</span><span class="nx">getTime</span><span class="o">());</span>
<span class="nx">clearedDate</span> <span class="o">=</span> <span class="nx">dm</span><span class="o">.</span><span class="nx">clearTime</span><span class="o">(</span><span class="nx">clearedDate</span><span class="o">);</span>
<span class="k">return</span> <span class="o">((</span><span class="nx">minDate</span> <span class="o">&amp;&amp;</span> <span class="nx">clearedDate</span><span class="o">.</span><span class="nx">getTime</span><span class="o">()</span> <span class="o">&lt;</span> <span class="nx">minDate</span><span class="o">.</span><span class="nx">getTime</span><span class="o">())</span> <span class="o">||</span> <span class="o">(</span><span class="nx">maxDate</span> <span class="o">&amp;&amp;</span> <span class="nx">clearedDate</span><span class="o">.</span><span class="nx">getTime</span><span class="o">()</span> <span class="o">&gt;</span> <span class="nx">maxDate</span><span class="o">.</span><span class="nx">getTime</span><span class="o">()));</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * 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="c"> * 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="c"> * @method _parsePageDate</span>
<span class="c"> * @private</span>
<span class="c"> * @param {Date|String} date Pagedate value which needs to be parsed</span>
<span class="c"> * @return {Date} The Date object representing the pagedate</span>
<span class="c"> */</span>
<span class="nx">_parsePageDate</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">date</span><span class="o">)</span> <span class="o">{</span>
<span class="k">var</span> <span class="nx">parsedDate</span><span class="o">;</span>
<span class="k">var</span> <span class="nx">defCfg</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Calendar</span><span class="o">.</span><span class="nx">_DEFAULT_CONFIG</span><span class="o">;</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">date</span><span class="o">)</span> <span class="o">{</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">date</span> <span class="k">instanceof</span> <span class="nb">Date</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">parsedDate</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">DateMath</span><span class="o">.</span><span class="nx">findMonthStart</span><span class="o">(</span><span class="nx">date</span><span class="o">);</span>
<span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
<span class="k">var</span> <span class="nx">month</span><span class="o">,</span> <span class="nx">year</span><span class="o">,</span> <span class="nx">aMonthYear</span><span class="o">;</span>
<span class="nx">aMonthYear</span> <span class="o">=</span> <span class="nx">date</span><span class="o">.</span><span class="nx">split</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">DATE_FIELD_DELIMITER</span><span class="o">.</span><span class="nx">key</span><span class="o">));</span>
<span class="nx">month</span> <span class="o">=</span> <span class="nb">parseInt</span><span class="o">(</span><span class="nx">aMonthYear</span><span class="o">[</span><span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">MY_MONTH_POSITION</span><span class="o">.</span><span class="nx">key</span><span class="o">)-</span><span class="m">1</span><span class="o">],</span> <span class="m">10</span><span class="o">)-</span><span class="m">1</span><span class="o">;</span>
<span class="nx">year</span> <span class="o">=</span> <span class="nb">parseInt</span><span class="o">(</span><span class="nx">aMonthYear</span><span class="o">[</span><span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="nx">defCfg</span><span class="o">.</span><span class="nx">MY_YEAR_POSITION</span><span class="o">.</span><span class="nx">key</span><span class="o">)-</span><span class="m">1</span><span class="o">],</span> <span class="m">10</span><span class="o">);</span>
<span class="nx">parsedDate</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">DateMath</span><span class="o">.</span><span class="nx">getDate</span><span class="o">(</span><span class="nx">year</span><span class="o">,</span> <span class="nx">month</span><span class="o">,</span> <span class="m">1</span><span class="o">);</span>
<span class="o">}</span>
<span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
<span class="nx">parsedDate</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">DateMath</span><span class="o">.</span><span class="nx">getDate</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">today</span><span class="o">.</span><span class="nx">getFullYear</span><span class="o">(),</span> <span class="k">this</span><span class="o">.</span><span class="nx">today</span><span class="o">.</span><span class="nx">getMonth</span><span class="o">(),</span> <span class="m">1</span><span class="o">);</span>
<span class="o">}</span>
<span class="k">return</span> <span class="nx">parsedDate</span><span class="o">;</span>
<span class="o">},</span>
<span class="c">// END UTILITY METHODS</span>
<span class="c"></span>
<span class="c">// BEGIN EVENT HANDLERS</span>
<span class="c"></span>
<span class="c">/**</span>
<span class="c"> * Event executed before a date is selected in the calendar widget.</span>
<span class="c"> * @deprecated Event handlers for this event should be susbcribed to beforeSelectEvent.</span>
<span class="c"> */</span>
<span class="nx">onBeforeSelect</span> <span class="o">:</span> <span class="k">function</span><span class="o">()</span> <span class="o">{</span>
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Calendar</span><span class="o">.</span><span class="nx">_DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">MULTI_SELECT</span><span class="o">.</span><span class="nx">key</span><span class="o">)</span> <span class="o">===</span> <span class="kc">false</span><span class="o">)</span> <span class="o">{</span>
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">parent</span><span class="o">)</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">parent</span><span class="o">.</span><span class="nx">callChildFunction</span><span class="o">(</span><span class="s2">&quot;clearAllBodyCellStyles&quot;</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">Style</span><span class="o">.</span><span class="nx">CSS_CELL_SELECTED</span><span class="o">);</span>
<span class="k">this</span><span class="o">.</span><span class="nx">parent</span><span class="o">.</span><span class="nx">deselectAll</span><span class="o">();</span>
<span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">clearAllBodyCellStyles</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">Style</span><span class="o">.</span><span class="nx">CSS_CELL_SELECTED</span><span class="o">);</span>
<span class="k">this</span><span class="o">.</span><span class="nx">deselectAll</span><span class="o">();</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Event executed when a date is selected in the calendar widget.</span>
<span class="c"> * @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="c"> * @deprecated Event handlers for this event should be susbcribed to selectEvent.</span>
<span class="c"> */</span>
<span class="nx">onSelect</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">selected</span><span class="o">)</span> <span class="o">{</span> <span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Event executed before a date is deselected in the calendar widget.</span>
<span class="c"> * @deprecated Event handlers for this event should be susbcribed to beforeDeselectEvent.</span>
<span class="c"> */</span>
<span class="nx">onBeforeDeselect</span> <span class="o">:</span> <span class="k">function</span><span class="o">()</span> <span class="o">{</span> <span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Event executed when a date is deselected in the calendar widget.</span>
<span class="c"> * @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="c"> * @deprecated Event handlers for this event should be susbcribed to deselectEvent.</span>
<span class="c"> */</span>
<span class="nx">onDeselect</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">deselected</span><span class="o">)</span> <span class="o">{</span> <span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Event executed when the user navigates to a different calendar page.</span>
<span class="c"> * @deprecated Event handlers for this event should be susbcribed to changePageEvent.</span>
<span class="c"> */</span>
<span class="nx">onChangePage</span> <span class="o">:</span> <span class="k">function</span><span class="o">()</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">render</span><span class="o">();</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Event executed when the calendar widget is rendered.</span>
<span class="c"> * @deprecated Event handlers for this event should be susbcribed to renderEvent.</span>
<span class="c"> */</span>
<span class="nx">onRender</span> <span class="o">:</span> <span class="k">function</span><span class="o">()</span> <span class="o">{</span> <span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Event executed when the calendar widget is reset to its original state.</span>
<span class="c"> * @deprecated Event handlers for this event should be susbcribed to resetEvemt.</span>
<span class="c"> */</span>
<span class="nx">onReset</span> <span class="o">:</span> <span class="k">function</span><span class="o">()</span> <span class="o">{</span> <span class="k">this</span><span class="o">.</span><span class="nx">render</span><span class="o">();</span> <span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Event executed when the calendar widget is completely cleared to the current month with no selections.</span>
<span class="c"> * @deprecated Event handlers for this event should be susbcribed to clearEvent.</span>
<span class="c"> */</span>
<span class="nx">onClear</span> <span class="o">:</span> <span class="k">function</span><span class="o">()</span> <span class="o">{</span> <span class="k">this</span><span class="o">.</span><span class="nx">render</span><span class="o">();</span> <span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Validates the calendar widget. This method has no default implementation</span>
<span class="c"> * and must be extended by subclassing the widget.</span>
<span class="c"> * @return Should return true if the widget validates, and false if</span>
<span class="c"> * it doesn&#39;t.</span>
<span class="c"> * @type Boolean</span>
<span class="c"> */</span>
<span class="nx">validate</span> <span class="o">:</span> <span class="k">function</span><span class="o">()</span> <span class="o">{</span> <span class="k">return</span> <span class="kc">true</span><span class="o">;</span> <span class="o">},</span>
<span class="c">// END EVENT HANDLERS</span>
<span class="c"></span>
<span class="c">// BEGIN DATE PARSE METHODS</span>
<span class="c"></span>
<span class="c">/**</span>
<span class="c"> * Converts a date string to a date field array</span>
<span class="c"> * @private</span>
<span class="c"> * @param {String} sDate Date string. Valid formats are mm/dd and mm/dd/yyyy.</span>
<span class="c"> * @return A date field array representing the string passed to the method</span>
<span class="c"> * @type Array[](Number[])</span>
<span class="c"> */</span>
<span class="nx">_parseDate</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">sDate</span><span class="o">)</span> <span class="o">{</span>
<span class="k">var</span> <span class="nx">aDate</span> <span class="o">=</span> <span class="nx">sDate</span><span class="o">.</span><span class="nx">split</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">Locale</span><span class="o">.</span><span class="nx">DATE_FIELD_DELIMITER</span><span class="o">);</span>
<span class="k">var</span> <span class="nx">rArray</span><span class="o">;</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">aDate</span><span class="o">.</span><span class="nx">length</span> <span class="o">==</span> <span class="m">2</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">rArray</span> <span class="o">=</span> <span class="o">[</span><span class="nx">aDate</span><span class="o">[</span><span class="k">this</span><span class="o">.</span><span class="nx">Locale</span><span class="o">.</span><span class="nx">MD_MONTH_POSITION</span><span class="o">-</span><span class="m">1</span><span class="o">],</span><span class="nx">aDate</span><span class="o">[</span><span class="k">this</span><span class="o">.</span><span class="nx">Locale</span><span class="o">.</span><span class="nx">MD_DAY_POSITION</span><span class="o">-</span><span class="m">1</span><span class="o">]];</span>
<span class="nx">rArray</span><span class="o">.</span><span class="nx">type</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Calendar</span><span class="o">.</span><span class="nx">MONTH_DAY</span><span class="o">;</span>
<span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
<span class="nx">rArray</span> <span class="o">=</span> <span class="o">[</span><span class="nx">aDate</span><span class="o">[</span><span class="k">this</span><span class="o">.</span><span class="nx">Locale</span><span class="o">.</span><span class="nx">MDY_YEAR_POSITION</span><span class="o">-</span><span class="m">1</span><span class="o">],</span><span class="nx">aDate</span><span class="o">[</span><span class="k">this</span><span class="o">.</span><span class="nx">Locale</span><span class="o">.</span><span class="nx">MDY_MONTH_POSITION</span><span class="o">-</span><span class="m">1</span><span class="o">],</span><span class="nx">aDate</span><span class="o">[</span><span class="k">this</span><span class="o">.</span><span class="nx">Locale</span><span class="o">.</span><span class="nx">MDY_DAY_POSITION</span><span class="o">-</span><span class="m">1</span><span class="o">]];</span>
<span class="nx">rArray</span><span class="o">.</span><span class="nx">type</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Calendar</span><span class="o">.</span><span class="nx">DATE</span><span class="o">;</span>
<span class="o">}</span>
<span class="k">for</span> <span class="o">(</span><span class="k">var</span> <span class="nx">i</span><span class="o">=</span><span class="m">0</span><span class="o">;</span><span class="nx">i</span><span class="o">&lt;</span><span class="nx">rArray</span><span class="o">.</span><span class="nx">length</span><span class="o">;</span><span class="nx">i</span><span class="o">++)</span> <span class="o">{</span>
<span class="nx">rArray</span><span class="o">[</span><span class="nx">i</span><span class="o">]</span> <span class="o">=</span> <span class="nb">parseInt</span><span class="o">(</span><span class="nx">rArray</span><span class="o">[</span><span class="nx">i</span><span class="o">],</span> <span class="m">10</span><span class="o">);</span>
<span class="o">}</span>
<span class="k">return</span> <span class="nx">rArray</span><span class="o">;</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Converts a multi or single-date string to an array of date field arrays</span>
<span class="c"> * @private</span>
<span class="c"> * @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="c"> * @return An array of date field arrays</span>
<span class="c"> * @type Array[](Number[])</span>
<span class="c"> */</span>
<span class="nx">_parseDates</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">sDates</span><span class="o">)</span> <span class="o">{</span>
<span class="k">var</span> <span class="nx">aReturn</span> <span class="o">=</span> <span class="o">[];</span>
<span class="k">var</span> <span class="nx">aDates</span> <span class="o">=</span> <span class="nx">sDates</span><span class="o">.</span><span class="nx">split</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">Locale</span><span class="o">.</span><span class="nx">DATE_DELIMITER</span><span class="o">);</span>
<span class="k">for</span> <span class="o">(</span><span class="k">var</span> <span class="nx">d</span><span class="o">=</span><span class="m">0</span><span class="o">;</span><span class="nx">d</span><span class="o">&lt;</span><span class="nx">aDates</span><span class="o">.</span><span class="nx">length</span><span class="o">;++</span><span class="nx">d</span><span class="o">)</span> <span class="o">{</span>
<span class="k">var</span> <span class="nx">sDate</span> <span class="o">=</span> <span class="nx">aDates</span><span class="o">[</span><span class="nx">d</span><span class="o">];</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">sDate</span><span class="o">.</span><span class="nx">indexOf</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">Locale</span><span class="o">.</span><span class="nx">DATE_RANGE_DELIMITER</span><span class="o">)</span> <span class="o">!=</span> <span class="o">-</span><span class="m">1</span><span class="o">)</span> <span class="o">{</span>
<span class="c">// This is a range</span>
<span class="c"></span> <span class="k">var</span> <span class="nx">aRange</span> <span class="o">=</span> <span class="nx">sDate</span><span class="o">.</span><span class="nx">split</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">Locale</span><span class="o">.</span><span class="nx">DATE_RANGE_DELIMITER</span><span class="o">);</span>
<span class="k">var</span> <span class="nx">dateStart</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">_parseDate</span><span class="o">(</span><span class="nx">aRange</span><span class="o">[</span><span class="m">0</span><span class="o">]);</span>
<span class="k">var</span> <span class="nx">dateEnd</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">_parseDate</span><span class="o">(</span><span class="nx">aRange</span><span class="o">[</span><span class="m">1</span><span class="o">]);</span>
<span class="k">var</span> <span class="nx">fullRange</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">_parseRange</span><span class="o">(</span><span class="nx">dateStart</span><span class="o">,</span> <span class="nx">dateEnd</span><span class="o">);</span>
<span class="nx">aReturn</span> <span class="o">=</span> <span class="nx">aReturn</span><span class="o">.</span><span class="nx">concat</span><span class="o">(</span><span class="nx">fullRange</span><span class="o">);</span>
<span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
<span class="c">// This is not a range</span>
<span class="c"></span> <span class="k">var</span> <span class="nx">aDate</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">_parseDate</span><span class="o">(</span><span class="nx">sDate</span><span class="o">);</span>
<span class="nx">aReturn</span><span class="o">.</span><span class="nx">push</span><span class="o">(</span><span class="nx">aDate</span><span class="o">);</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="k">return</span> <span class="nx">aReturn</span><span class="o">;</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Converts a date range to the full list of included dates</span>
<span class="c"> * @private</span>
<span class="c"> * @param {Number[]} startDate Date field array representing the first date in the range</span>
<span class="c"> * @param {Number[]} endDate Date field array representing the last date in the range</span>
<span class="c"> * @return An array of date field arrays</span>
<span class="c"> * @type Array[](Number[])</span>
<span class="c"> */</span>
<span class="nx">_parseRange</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">startDate</span><span class="o">,</span> <span class="nx">endDate</span><span class="o">)</span> <span class="o">{</span>
<span class="k">var</span> <span class="nx">dCurrent</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">DateMath</span><span class="o">.</span><span class="nx">add</span><span class="o">(</span><span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">DateMath</span><span class="o">.</span><span class="nx">getDate</span><span class="o">(</span><span class="nx">startDate</span><span class="o">[</span><span class="m">0</span><span class="o">],</span><span class="nx">startDate</span><span class="o">[</span><span class="m">1</span><span class="o">]-</span><span class="m">1</span><span class="o">,</span><span class="nx">startDate</span><span class="o">[</span><span class="m">2</span><span class="o">]),</span><span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">DateMath</span><span class="o">.</span><span class="nx">DAY</span><span class="o">,</span><span class="m">1</span><span class="o">);</span>
<span class="k">var</span> <span class="nx">dEnd</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">DateMath</span><span class="o">.</span><span class="nx">getDate</span><span class="o">(</span><span class="nx">endDate</span><span class="o">[</span><span class="m">0</span><span class="o">],</span> <span class="nx">endDate</span><span class="o">[</span><span class="m">1</span><span class="o">]-</span><span class="m">1</span><span class="o">,</span> <span class="nx">endDate</span><span class="o">[</span><span class="m">2</span><span class="o">]);</span>
<span class="k">var</span> <span class="nx">results</span> <span class="o">=</span> <span class="o">[];</span>
<span class="nx">results</span><span class="o">.</span><span class="nx">push</span><span class="o">(</span><span class="nx">startDate</span><span class="o">);</span>
<span class="k">while</span> <span class="o">(</span><span class="nx">dCurrent</span><span class="o">.</span><span class="nx">getTime</span><span class="o">()</span> <span class="o">&lt;=</span> <span class="nx">dEnd</span><span class="o">.</span><span class="nx">getTime</span><span class="o">())</span> <span class="o">{</span>
<span class="nx">results</span><span class="o">.</span><span class="nx">push</span><span class="o">([</span><span class="nx">dCurrent</span><span class="o">.</span><span class="nx">getFullYear</span><span class="o">(),</span><span class="nx">dCurrent</span><span class="o">.</span><span class="nx">getMonth</span><span class="o">()+</span><span class="m">1</span><span class="o">,</span><span class="nx">dCurrent</span><span class="o">.</span><span class="nx">getDate</span><span class="o">()]);</span>
<span class="nx">dCurrent</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">DateMath</span><span class="o">.</span><span class="nx">add</span><span class="o">(</span><span class="nx">dCurrent</span><span class="o">,</span><span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">DateMath</span><span class="o">.</span><span class="nx">DAY</span><span class="o">,</span><span class="m">1</span><span class="o">);</span>
<span class="o">}</span>
<span class="k">return</span> <span class="nx">results</span><span class="o">;</span>
<span class="o">},</span>
<span class="c">// END DATE PARSE METHODS</span>
<span class="c"></span>
<span class="c">// BEGIN RENDERER METHODS</span>
<span class="c"></span>
<span class="c">/**</span>
<span class="c"> * Resets the render stack of the current calendar to its original pre-render value.</span>
<span class="c"> */</span>
<span class="nx">resetRenderers</span> <span class="o">:</span> <span class="k">function</span><span class="o">()</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">renderStack</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">_renderStack</span><span class="o">.</span><span class="nx">concat</span><span class="o">();</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Removes all custom renderers added to the Calendar through the addRenderer, addMonthRenderer and </span>
<span class="c"> * addWeekdayRenderer methods. Calendar&#39;s render method needs to be called after removing renderers </span>
<span class="c"> * to re-render the Calendar without custom renderers applied.</span>
<span class="c"> */</span>
<span class="nx">removeRenderers</span> <span class="o">:</span> <span class="k">function</span><span class="o">()</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">_renderStack</span> <span class="o">=</span> <span class="o">[];</span>
<span class="k">this</span><span class="o">.</span><span class="nx">renderStack</span> <span class="o">=</span> <span class="o">[];</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Clears the inner HTML, CSS class and style information from the specified cell.</span>
<span class="c"> * @method clearElement</span>
<span class="c"> * @param {HTMLTableCellElement} cell The cell to clear</span>
<span class="c"> */</span>
<span class="nx">clearElement</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">cell</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">cell</span><span class="o">.</span><span class="nx">innerHTML</span> <span class="o">=</span> <span class="s2">&quot;&amp;#160;&quot;</span><span class="o">;</span>
<span class="nx">cell</span><span class="o">.</span><span class="nx">className</span><span class="o">=</span><span class="s2">&quot;&quot;</span><span class="o">;</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Adds a renderer to the render stack. The function reference passed to this method will be executed</span>
<span class="c"> * when a date cell matches the conditions specified in the date string for this renderer.</span>
<span class="c"> * @method addRenderer</span>
<span class="c"> * @param {String} sDates A date string to associate with the specified renderer. Valid formats</span>
<span class="c"> * include date (12/24/2005), month/day (12/24), and range (12/1/2004-1/1/2005)</span>
<span class="c"> * @param {Function} fnRender The function executed to render cells that match the render rules for this renderer.</span>
<span class="c"> */</span>
<span class="nx">addRenderer</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">sDates</span><span class="o">,</span> <span class="nx">fnRender</span><span class="o">)</span> <span class="o">{</span>
<span class="k">var</span> <span class="nx">aDates</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">_parseDates</span><span class="o">(</span><span class="nx">sDates</span><span class="o">);</span>
<span class="k">for</span> <span class="o">(</span><span class="k">var</span> <span class="nx">i</span><span class="o">=</span><span class="m">0</span><span class="o">;</span><span class="nx">i</span><span class="o">&lt;</span><span class="nx">aDates</span><span class="o">.</span><span class="nx">length</span><span class="o">;++</span><span class="nx">i</span><span class="o">)</span> <span class="o">{</span>
<span class="k">var</span> <span class="nx">aDate</span> <span class="o">=</span> <span class="nx">aDates</span><span class="o">[</span><span class="nx">i</span><span class="o">];</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">aDate</span><span class="o">.</span><span class="nx">length</span> <span class="o">==</span> <span class="m">2</span><span class="o">)</span> <span class="o">{</span> <span class="c">// this is either a range or a month/day combo</span>
<span class="c"></span> <span class="k">if</span> <span class="o">(</span><span class="nx">aDate</span><span class="o">[</span><span class="m">0</span><span class="o">]</span> <span class="k">instanceof</span> <span class="nb">Array</span><span class="o">)</span> <span class="o">{</span> <span class="c">// this is a range</span>
<span class="c"></span> <span class="k">this</span><span class="o">.</span><span class="nx">_addRenderer</span><span class="o">(</span><span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Calendar</span><span class="o">.</span><span class="nx">RANGE</span><span class="o">,</span><span class="nx">aDate</span><span class="o">,</span><span class="nx">fnRender</span><span class="o">);</span>
<span class="o">}</span> <span class="k">else</span> <span class="o">{</span> <span class="c">// this is a month/day combo</span>
<span class="c"></span> <span class="k">this</span><span class="o">.</span><span class="nx">_addRenderer</span><span class="o">(</span><span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Calendar</span><span class="o">.</span><span class="nx">MONTH_DAY</span><span class="o">,</span><span class="nx">aDate</span><span class="o">,</span><span class="nx">fnRender</span><span class="o">);</span>
<span class="o">}</span>
<span class="o">}</span> <span class="k">else</span> <span class="k">if</span> <span class="o">(</span><span class="nx">aDate</span><span class="o">.</span><span class="nx">length</span> <span class="o">==</span> <span class="m">3</span><span class="o">)</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">_addRenderer</span><span class="o">(</span><span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Calendar</span><span class="o">.</span><span class="nx">DATE</span><span class="o">,</span><span class="nx">aDate</span><span class="o">,</span><span class="nx">fnRender</span><span class="o">);</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * The private method used for adding cell renderers to the local render stack.</span>
<span class="c"> * This method is called by other methods that set the renderer type prior to the method call.</span>
<span class="c"> * @method _addRenderer</span>
<span class="c"> * @private</span>
<span class="c"> * @param {String} type The type string that indicates the type of date renderer being added.</span>
<span class="c"> * Values are YAHOO.widget.Calendar.DATE, YAHOO.widget.Calendar.MONTH_DAY, YAHOO.widget.Calendar.WEEKDAY,</span>
<span class="c"> * YAHOO.widget.Calendar.RANGE, YAHOO.widget.Calendar.MONTH</span>
<span class="c"> * @param {Array} aDates An array of dates used to construct the renderer. The format varies based</span>
<span class="c"> * on the renderer type</span>
<span class="c"> * @param {Function} fnRender The function executed to render cells that match the render rules for this renderer.</span>
<span class="c"> */</span>
<span class="nx">_addRenderer</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">type</span><span class="o">,</span> <span class="nx">aDates</span><span class="o">,</span> <span class="nx">fnRender</span><span class="o">)</span> <span class="o">{</span>
<span class="k">var</span> <span class="nx">add</span> <span class="o">=</span> <span class="o">[</span><span class="nx">type</span><span class="o">,</span><span class="nx">aDates</span><span class="o">,</span><span class="nx">fnRender</span><span class="o">];</span>
<span class="k">this</span><span class="o">.</span><span class="nx">renderStack</span><span class="o">.</span><span class="nx">unshift</span><span class="o">(</span><span class="nx">add</span><span class="o">);</span>
<span class="k">this</span><span class="o">.</span><span class="nx">_renderStack</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">renderStack</span><span class="o">.</span><span class="nx">concat</span><span class="o">();</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Adds a month to the render stack. The function reference passed to this method will be executed</span>
<span class="c"> * when a date cell matches the month passed to this method.</span>
<span class="c"> * @method addMonthRenderer</span>
<span class="c"> * @param {Number} month The month (1-12) to associate with this renderer</span>
<span class="c"> * @param {Function} fnRender The function executed to render cells that match the render rules for this renderer.</span>
<span class="c"> */</span>
<span class="nx">addMonthRenderer</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">month</span><span class="o">,</span> <span class="nx">fnRender</span><span class="o">)</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">_addRenderer</span><span class="o">(</span><span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Calendar</span><span class="o">.</span><span class="nx">MONTH</span><span class="o">,[</span><span class="nx">month</span><span class="o">],</span><span class="nx">fnRender</span><span class="o">);</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Adds a weekday to the render stack. The function reference passed to this method will be executed</span>
<span class="c"> * when a date cell matches the weekday passed to this method.</span>
<span class="c"> * @method addWeekdayRenderer</span>
<span class="c"> * @param {Number} weekday The weekday (Sunday = 1, Monday = 2 ... Saturday = 7) to associate with this renderer</span>
<span class="c"> * @param {Function} fnRender The function executed to render cells that match the render rules for this renderer.</span>
<span class="c"> */</span>
<span class="nx">addWeekdayRenderer</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">weekday</span><span class="o">,</span> <span class="nx">fnRender</span><span class="o">)</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">_addRenderer</span><span class="o">(</span><span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Calendar</span><span class="o">.</span><span class="nx">WEEKDAY</span><span class="o">,[</span><span class="nx">weekday</span><span class="o">],</span><span class="nx">fnRender</span><span class="o">);</span>
<span class="o">},</span>
<span class="c">// END RENDERER METHODS</span>
<span class="c"></span>
<span class="c">// BEGIN CSS METHODS</span>
<span class="c"></span>
<span class="c">/**</span>
<span class="c"> * Removes all styles from all body cells in the current calendar table.</span>
<span class="c"> * @method clearAllBodyCellStyles</span>
<span class="c"> * @param {style} style The CSS class name to remove from all calendar body cells</span>
<span class="c"> */</span>
<span class="nx">clearAllBodyCellStyles</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">style</span><span class="o">)</span> <span class="o">{</span>
<span class="k">for</span> <span class="o">(</span><span class="k">var</span> <span class="nx">c</span><span class="o">=</span><span class="m">0</span><span class="o">;</span><span class="nx">c</span><span class="o">&lt;</span><span class="k">this</span><span class="o">.</span><span class="nx">cells</span><span class="o">.</span><span class="nx">length</span><span class="o">;++</span><span class="nx">c</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Dom</span><span class="o">.</span><span class="nx">removeClass</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">cells</span><span class="o">[</span><span class="nx">c</span><span class="o">],</span><span class="nx">style</span><span class="o">);</span>
<span class="o">}</span>
<span class="o">},</span>
<span class="c">// END CSS METHODS</span>
<span class="c"></span>
<span class="c">// BEGIN GETTER/SETTER METHODS</span>
<span class="c"></span> <span class="c">/**</span>
<span class="c"> * Sets the calendar&#39;s month explicitly</span>
<span class="c"> * @method setMonth</span>
<span class="c"> * @param {Number} month The numeric month, from 0 (January) to 11 (December)</span>
<span class="c"> */</span>
<span class="nx">setMonth</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">month</span><span class="o">)</span> <span class="o">{</span>
<span class="k">var</span> <span class="nx">cfgPageDate</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Calendar</span><span class="o">.</span><span class="nx">_DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">PAGEDATE</span><span class="o">.</span><span class="nx">key</span><span class="o">;</span>
<span class="k">var</span> <span class="nx">current</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="nx">cfgPageDate</span><span class="o">);</span>
<span class="nx">current</span><span class="o">.</span><span class="nx">setMonth</span><span class="o">(</span><span class="nb">parseInt</span><span class="o">(</span><span class="nx">month</span><span class="o">,</span> <span class="m">10</span><span class="o">));</span>
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">setProperty</span><span class="o">(</span><span class="nx">cfgPageDate</span><span class="o">,</span> <span class="nx">current</span><span class="o">);</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Sets the calendar&#39;s year explicitly.</span>
<span class="c"> * @method setYear</span>
<span class="c"> * @param {Number} year The numeric 4-digit year</span>
<span class="c"> */</span>
<span class="nx">setYear</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">year</span><span class="o">)</span> <span class="o">{</span>
<span class="k">var</span> <span class="nx">cfgPageDate</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Calendar</span><span class="o">.</span><span class="nx">_DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">PAGEDATE</span><span class="o">.</span><span class="nx">key</span><span class="o">;</span>
<span class="k">var</span> <span class="nx">current</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="nx">cfgPageDate</span><span class="o">);</span>
<span class="nx">current</span><span class="o">.</span><span class="nx">setFullYear</span><span class="o">(</span><span class="nb">parseInt</span><span class="o">(</span><span class="nx">year</span><span class="o">,</span> <span class="m">10</span><span class="o">));</span>
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">setProperty</span><span class="o">(</span><span class="nx">cfgPageDate</span><span class="o">,</span> <span class="nx">current</span><span class="o">);</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Gets the list of currently selected dates from the calendar.</span>
<span class="c"> * @method getSelectedDates</span>
<span class="c"> * @return {Date[]} An array of currently selected JavaScript Date objects.</span>
<span class="c"> */</span>
<span class="nx">getSelectedDates</span> <span class="o">:</span> <span class="k">function</span><span class="o">()</span> <span class="o">{</span>
<span class="k">var</span> <span class="nx">returnDates</span> <span class="o">=</span> <span class="o">[];</span>
<span class="k">var</span> <span class="nx">selected</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Calendar</span><span class="o">.</span><span class="nx">_DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">SELECTED</span><span class="o">.</span><span class="nx">key</span><span class="o">);</span>
<span class="k">for</span> <span class="o">(</span><span class="k">var</span> <span class="nx">d</span><span class="o">=</span><span class="m">0</span><span class="o">;</span><span class="nx">d</span><span class="o">&lt;</span><span class="nx">selected</span><span class="o">.</span><span class="nx">length</span><span class="o">;++</span><span class="nx">d</span><span class="o">)</span> <span class="o">{</span>
<span class="k">var</span> <span class="nx">dateArray</span> <span class="o">=</span> <span class="nx">selected</span><span class="o">[</span><span class="nx">d</span><span class="o">];</span>
<span class="k">var</span> <span class="nx">date</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">DateMath</span><span class="o">.</span><span class="nx">getDate</span><span class="o">(</span><span class="nx">dateArray</span><span class="o">[</span><span class="m">0</span><span class="o">],</span><span class="nx">dateArray</span><span class="o">[</span><span class="m">1</span><span class="o">]-</span><span class="m">1</span><span class="o">,</span><span class="nx">dateArray</span><span class="o">[</span><span class="m">2</span><span class="o">]);</span>
<span class="nx">returnDates</span><span class="o">.</span><span class="nx">push</span><span class="o">(</span><span class="nx">date</span><span class="o">);</span>
<span class="o">}</span>
<span class="nx">returnDates</span><span class="o">.</span><span class="nx">sort</span><span class="o">(</span> <span class="k">function</span><span class="o">(</span><span class="nx">a</span><span class="o">,</span><span class="nx">b</span><span class="o">)</span> <span class="o">{</span> <span class="k">return</span> <span class="nx">a</span><span class="o">-</span><span class="nx">b</span><span class="o">;</span> <span class="o">}</span> <span class="o">);</span>
<span class="k">return</span> <span class="nx">returnDates</span><span class="o">;</span>
<span class="o">},</span>
<span class="c">/// END GETTER/SETTER METHODS ///</span>
<span class="c"></span>
<span class="c">/**</span>
<span class="c"> * Hides the Calendar&#39;s outer container from view.</span>
<span class="c"> * @method hide</span>
<span class="c"> */</span>
<span class="nx">hide</span> <span class="o">:</span> <span class="k">function</span><span class="o">()</span> <span class="o">{</span>
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">beforeHideEvent</span><span class="o">.</span><span class="nx">fire</span><span class="o">())</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">oDomContainer</span><span class="o">.</span><span class="nx">style</span><span class="o">.</span><span class="nx">display</span> <span class="o">=</span> <span class="s2">&quot;none&quot;</span><span class="o">;</span>
<span class="k">this</span><span class="o">.</span><span class="nx">hideEvent</span><span class="o">.</span><span class="nx">fire</span><span class="o">();</span>
<span class="o">}</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Shows the Calendar&#39;s outer container.</span>
<span class="c"> * @method show</span>
<span class="c"> */</span>
<span class="nx">show</span> <span class="o">:</span> <span class="k">function</span><span class="o">()</span> <span class="o">{</span>
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">beforeShowEvent</span><span class="o">.</span><span class="nx">fire</span><span class="o">())</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">oDomContainer</span><span class="o">.</span><span class="nx">style</span><span class="o">.</span><span class="nx">display</span> <span class="o">=</span> <span class="s2">&quot;block&quot;</span><span class="o">;</span>
<span class="k">this</span><span class="o">.</span><span class="nx">showEvent</span><span class="o">.</span><span class="nx">fire</span><span class="o">();</span>
<span class="o">}</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Returns a string representing the current browser.</span>
<span class="c"> * @deprecated As of 2.3.0, environment information is available in YAHOO.env.ua</span>
<span class="c"> * @see YAHOO.env.ua</span>
<span class="c"> * @property browser</span>
<span class="c"> * @type String</span>
<span class="c"> */</span>
<span class="nx">browser</span> <span class="o">:</span> <span class="o">(</span><span class="k">function</span><span class="o">()</span> <span class="o">{</span>
<span class="k">var</span> <span class="nx">ua</span> <span class="o">=</span> <span class="nx">navigator</span><span class="o">.</span><span class="nx">userAgent</span><span class="o">.</span><span class="nx">toLowerCase</span><span class="o">();</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">ua</span><span class="o">.</span><span class="nx">indexOf</span><span class="o">(</span><span class="s1">&#39;opera&#39;</span><span class="o">)!=-</span><span class="m">1</span><span class="o">)</span> <span class="o">{</span> <span class="c">// Opera (check first in case of spoof)</span>
<span class="c"></span> <span class="k">return</span> <span class="s1">&#39;opera&#39;</span><span class="o">;</span>
<span class="o">}</span> <span class="k">else</span> <span class="k">if</span> <span class="o">(</span><span class="nx">ua</span><span class="o">.</span><span class="nx">indexOf</span><span class="o">(</span><span class="s1">&#39;msie 7&#39;</span><span class="o">)!=-</span><span class="m">1</span><span class="o">)</span> <span class="o">{</span> <span class="c">// IE7</span>
<span class="c"></span> <span class="k">return</span> <span class="s1">&#39;ie7&#39;</span><span class="o">;</span>
<span class="o">}</span> <span class="k">else</span> <span class="k">if</span> <span class="o">(</span><span class="nx">ua</span><span class="o">.</span><span class="nx">indexOf</span><span class="o">(</span><span class="s1">&#39;msie&#39;</span><span class="o">)</span> <span class="o">!=-</span><span class="m">1</span><span class="o">)</span> <span class="o">{</span> <span class="c">// IE</span>
<span class="c"></span> <span class="k">return</span> <span class="s1">&#39;ie&#39;</span><span class="o">;</span>
<span class="o">}</span> <span class="k">else</span> <span class="k">if</span> <span class="o">(</span><span class="nx">ua</span><span class="o">.</span><span class="nx">indexOf</span><span class="o">(</span><span class="s1">&#39;safari&#39;</span><span class="o">)!=-</span><span class="m">1</span><span class="o">)</span> <span class="o">{</span> <span class="c">// Safari (check before Gecko because it includes &quot;like Gecko&quot;)</span>
<span class="c"></span> <span class="k">return</span> <span class="s1">&#39;safari&#39;</span><span class="o">;</span>
<span class="o">}</span> <span class="k">else</span> <span class="k">if</span> <span class="o">(</span><span class="nx">ua</span><span class="o">.</span><span class="nx">indexOf</span><span class="o">(</span><span class="s1">&#39;gecko&#39;</span><span class="o">)</span> <span class="o">!=</span> <span class="o">-</span><span class="m">1</span><span class="o">)</span> <span class="o">{</span> <span class="c">// Gecko</span>
<span class="c"></span> <span class="k">return</span> <span class="s1">&#39;gecko&#39;</span><span class="o">;</span>
<span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
<span class="k">return</span> <span class="kc">false</span><span class="o">;</span>
<span class="o">}</span>
<span class="o">})(),</span>
<span class="c">/**</span>
<span class="c"> * Returns a string representation of the object.</span>
<span class="c"> * @method toString</span>
<span class="c"> * @return {String} A string representation of the Calendar object.</span>
<span class="c"> */</span>
<span class="nx">toString</span> <span class="o">:</span> <span class="k">function</span><span class="o">()</span> <span class="o">{</span>
<span class="k">return</span> <span class="s2">&quot;Calendar &quot;</span> <span class="o">+</span> <span class="k">this</span><span class="o">.</span><span class="nx">id</span><span class="o">;</span>
<span class="o">}</span>
<span class="o">};</span>
<span class="c">/**</span>
<span class="c">* @namespace YAHOO.widget</span>
<span class="c">* @class Calendar_Core</span>
<span class="c">* @extends YAHOO.widget.Calendar</span>
<span class="c">* @deprecated The old Calendar_Core class is no longer necessary.</span>
<span class="c">*/</span>
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Calendar_Core</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Calendar</span><span class="o">;</span>
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Cal_Core</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Calendar</span><span class="o">;</span>
</pre></div>
</div>
</div>
</div>
<div class="yui-b">
<div class="nav">
<div class="module">
<h4>Modules</h4>
<ul class="content">
<li class=""><a href="module_animation.html">animation</a></li>
<li class=""><a href="module_autocomplete.html">autocomplete</a></li>
<li class=""><a href="module_button.html">button</a></li>
<li class="selected"><a href="module_calendar.html">calendar</a></li>
<li class=""><a href="module_charts.html">charts</a></li>
<li class=""><a href="module_colorpicker.html">colorpicker</a></li>
<li class=""><a href="module_connection.html">connection</a></li>
<li class=""><a href="module_container.html">container</a></li>
<li class=""><a href="module_cookie.html">cookie</a></li>
<li class=""><a href="module_datasource.html">datasource</a></li>
<li class=""><a href="module_datatable.html">datatable</a></li>
<li class=""><a href="module_dom.html">dom</a></li>
<li class=""><a href="module_dragdrop.html">dragdrop</a></li>
<li class=""><a href="module_editor.html">editor</a></li>
<li class=""><a href="module_element.html">element</a></li>
<li class=""><a href="module_event.html">event</a></li>
<li class=""><a href="module_get.html">get</a></li>
<li class=""><a href="module_history.html">history</a></li>
<li class=""><a href="module_imagecropper.html">imagecropper</a></li>
<li class=""><a href="module_imageloader.html">imageloader</a></li>
<li class=""><a href="module_json.html">json</a></li>
<li class=""><a href="module_layout.html">layout</a></li>
<li class=""><a href="module_logger.html">logger</a></li>
<li class=""><a href="module_menu.html">menu</a></li>
<li class=""><a href="module_profiler.html">profiler</a></li>
<li class=""><a href="module_profilerviewer.html">profilerviewer</a></li>
<li class=""><a href="module_resize.html">resize</a></li>
<li class=""><a href="module_selector.html">selector</a></li>
<li class=""><a href="module_slider.html">slider</a></li>
<li class=""><a href="module_tabview.html">tabview</a></li>
<li class=""><a href="module_treeview.html">treeview</a></li>
<li class=""><a href="module_uploader.html">uploader</a></li>
<li class=""><a href="module_yahoo.html">yahoo</a></li>
<li class=""><a href="module_yuiloader.html">yuiloader</a></li>
<li class=""><a href="module_yuitest.html">yuitest</a></li>
</ul>
</div>
<div class="module">
<h4>Classes</h4>
<ul class="content">
<li class=""><a href="YAHOO.widget.Calendar.html">YAHOO.widget.Calendar</a></li>
<li class=""><a href="YAHOO.widget.Calendar2up.html">YAHOO.widget.Calendar2up</a></li>
<li class=""><a href="YAHOO.widget.Calendar_Core.html">YAHOO.widget.Calendar_Core</a></li>
<li class=""><a href="YAHOO.widget.CalendarGroup.html">YAHOO.widget.CalendarGroup</a></li>
<li class=""><a href="YAHOO.widget.CalendarNavigator.html">YAHOO.widget.CalendarNavigator</a></li>
<li class=""><a href="YAHOO.widget.DateMath.html">YAHOO.widget.DateMath</a></li>
</ul>
</div>
<div class="module">
<h4>Files</h4>
<ul class="content">
<li class="selected"><a href="Calendar.js.html">Calendar.js</a></li>
<li class=""><a href="CalendarGroup.js.html">CalendarGroup.js</a></li>
<li class=""><a href="CalendarNavigator.js.html">CalendarNavigator.js</a></li>
<li class=""><a href="DateMath.js.html">DateMath.js</a></li>
</ul>
</div>
</div>
</div>
</div>
<div id="ft">
<hr />
Copyright &copy; 2007 Yahoo! Inc. All rights reserved.
</div>
</div>
</body>
</html>