docs/symbols/src/Roo_DatePicker.js.html
[roojs1] / docs / symbols / src / Roo_DatePicker.js.html
1 <html><head><title>../roojs1/Roo/DatePicker.js</title><link rel="stylesheet" type="text/css" href="../../../css/highlight-js.css"/></head><body class="highlightpage"><code class="jsdoc-pretty"><span class="jsdoc-comment">/*
2  * Based on:
3  * Ext JS Library 1.1.1
4  * Copyright(c) 2006-2007, Ext JS, LLC.
5  *
6  * Originally Released Under LGPL - original licence link has changed is not relivant.
7  *
8  * Fork - LGPL
9  * &lt;script type=&quot;text/javascript&quot;&gt;
10  */
11  
12 /**
13  * @class Roo.DatePicker
14  * @extends Roo.Component
15  * Simple date picker class.
16  * @constructor
17  * Create a new DatePicker
18  * @param {Object} config The config object
19  */
20 </span><span class="jsdoc-var">Roo.DatePicker </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">config</span><span class="jsdoc-syntax">){
21     </span><span class="jsdoc-var">Roo.DatePicker.superclass.constructor.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">config</span><span class="jsdoc-syntax">);
22
23     </span><span class="jsdoc-var">this.value </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">config </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">config.value </span><span class="jsdoc-syntax">?
24                  </span><span class="jsdoc-var">config.value.clearTime</span><span class="jsdoc-syntax">() : </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Date</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.clearTime</span><span class="jsdoc-syntax">();
25
26     </span><span class="jsdoc-var">this.addEvents</span><span class="jsdoc-syntax">({
27         </span><span class="jsdoc-comment">/**
28              * @event select
29              * Fires when a date is selected
30              * @param {DatePicker} this
31              * @param {Date} date The selected date
32              */
33         </span><span class="jsdoc-var">select</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true
34     </span><span class="jsdoc-syntax">});
35
36     </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.handler</span><span class="jsdoc-syntax">){
37         </span><span class="jsdoc-var">this.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;select&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.handler</span><span class="jsdoc-syntax">,  </span><span class="jsdoc-var">this.scope </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
38     }
39     </span><span class="jsdoc-comment">// build the disabledDatesRE
40     </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.disabledDatesRE </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">this.disabledDates</span><span class="jsdoc-syntax">){
41         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">dd </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.disabledDates</span><span class="jsdoc-syntax">;
42         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">re </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">&quot;(?:&quot;</span><span class="jsdoc-syntax">;
43         </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= 0; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">dd.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++){
44             </span><span class="jsdoc-var">re </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-var">dd</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">];
45             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">!= </span><span class="jsdoc-var">dd.length</span><span class="jsdoc-syntax">-1) </span><span class="jsdoc-var">re </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-string">&quot;|&quot;</span><span class="jsdoc-syntax">;
46         }
47         </span><span class="jsdoc-var">this.disabledDatesRE </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">RegExp</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">re </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">&quot;)&quot;</span><span class="jsdoc-syntax">);
48     }
49 };
50
51 </span><span class="jsdoc-var">Roo.extend</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.DatePicker</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">Roo.Component</span><span class="jsdoc-syntax">, {
52     </span><span class="jsdoc-comment">/**
53      * @cfg {String} todayText
54      * The text to display on the button that selects the current date (defaults to &quot;Today&quot;)
55      */
56     </span><span class="jsdoc-var">todayText </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;Today&quot;</span><span class="jsdoc-syntax">,
57     </span><span class="jsdoc-comment">/**
58      * @cfg {String} okText
59      * The text to display on the ok button
60      */
61     </span><span class="jsdoc-var">okText </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;&amp;#160;OK&amp;#160;&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-comment">// &amp;#160; to give the user extra clicking room
62     /**
63      * @cfg {String} cancelText
64      * The text to display on the cancel button
65      */
66     </span><span class="jsdoc-var">cancelText </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;Cancel&quot;</span><span class="jsdoc-syntax">,
67     </span><span class="jsdoc-comment">/**
68      * @cfg {String} todayTip
69      * The tooltip to display for the button that selects the current date (defaults to &quot;{current date} (Spacebar)&quot;)
70      */
71     </span><span class="jsdoc-var">todayTip </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;{0} (Spacebar)&quot;</span><span class="jsdoc-syntax">,
72     </span><span class="jsdoc-comment">/**
73      * @cfg {Date} minDate
74      * Minimum allowable date (JavaScript date object, defaults to null)
75      */
76     </span><span class="jsdoc-var">minDate </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">,
77     </span><span class="jsdoc-comment">/**
78      * @cfg {Date} maxDate
79      * Maximum allowable date (JavaScript date object, defaults to null)
80      */
81     </span><span class="jsdoc-var">maxDate </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">,
82     </span><span class="jsdoc-comment">/**
83      * @cfg {String} minText
84      * The error text to display if the minDate validation fails (defaults to &quot;This date is before the minimum date&quot;)
85      */
86     </span><span class="jsdoc-var">minText </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;This date is before the minimum date&quot;</span><span class="jsdoc-syntax">,
87     </span><span class="jsdoc-comment">/**
88      * @cfg {String} maxText
89      * The error text to display if the maxDate validation fails (defaults to &quot;This date is after the maximum date&quot;)
90      */
91     </span><span class="jsdoc-var">maxText </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;This date is after the maximum date&quot;</span><span class="jsdoc-syntax">,
92     </span><span class="jsdoc-comment">/**
93      * @cfg {String} format
94      * The default date format string which can be overriden for localization support.  The format must be
95      * valid according to {@link Date#parseDate} (defaults to 'm/d/y').
96      */
97     </span><span class="jsdoc-var">format </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;m/d/y&quot;</span><span class="jsdoc-syntax">,
98     </span><span class="jsdoc-comment">/**
99      * @cfg {Array} disabledDays
100      * An array of days to disable, 0-based. For example, [0, 6] disables Sunday and Saturday (defaults to null).
101      */
102     </span><span class="jsdoc-var">disabledDays </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">,
103     </span><span class="jsdoc-comment">/**
104      * @cfg {String} disabledDaysText
105      * The tooltip to display when the date falls on a disabled day (defaults to &quot;&quot;)
106      */
107     </span><span class="jsdoc-var">disabledDaysText </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;&quot;</span><span class="jsdoc-syntax">,
108     </span><span class="jsdoc-comment">/**
109      * @cfg {RegExp} disabledDatesRE
110      * JavaScript regular expression used to disable a pattern of dates (defaults to null)
111      */
112     </span><span class="jsdoc-var">disabledDatesRE </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">,
113     </span><span class="jsdoc-comment">/**
114      * @cfg {String} disabledDatesText
115      * The tooltip text to display when the date falls on a disabled date (defaults to &quot;&quot;)
116      */
117     </span><span class="jsdoc-var">disabledDatesText </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;&quot;</span><span class="jsdoc-syntax">,
118     </span><span class="jsdoc-comment">/**
119      * @cfg {Boolean} constrainToViewport
120      * True to constrain the date picker to the viewport (defaults to true)
121      */
122     </span><span class="jsdoc-var">constrainToViewport </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
123     </span><span class="jsdoc-comment">/**
124      * @cfg {Array} monthNames
125      * An array of textual month names which can be overriden for localization support (defaults to Date.monthNames)
126      */
127     </span><span class="jsdoc-var">monthNames </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">Date.monthNames</span><span class="jsdoc-syntax">,
128     </span><span class="jsdoc-comment">/**
129      * @cfg {Array} dayNames
130      * An array of textual day names which can be overriden for localization support (defaults to Date.dayNames)
131      */
132     </span><span class="jsdoc-var">dayNames </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">Date.dayNames</span><span class="jsdoc-syntax">,
133     </span><span class="jsdoc-comment">/**
134      * @cfg {String} nextText
135      * The next month navigation button tooltip (defaults to 'Next Month (Control+Right)')
136      */
137     </span><span class="jsdoc-var">nextText</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'Next Month (Control+Right)'</span><span class="jsdoc-syntax">,
138     </span><span class="jsdoc-comment">/**
139      * @cfg {String} prevText
140      * The previous month navigation button tooltip (defaults to 'Previous Month (Control+Left)')
141      */
142     </span><span class="jsdoc-var">prevText</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'Previous Month (Control+Left)'</span><span class="jsdoc-syntax">,
143     </span><span class="jsdoc-comment">/**
144      * @cfg {String} monthYearText
145      * The header month selector tooltip (defaults to 'Choose a month (Control+Up/Down to move years)')
146      */
147     </span><span class="jsdoc-var">monthYearText</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'Choose a month (Control+Up/Down to move years)'</span><span class="jsdoc-syntax">,
148     </span><span class="jsdoc-comment">/**
149      * @cfg {Number} startDay
150      * Day index at which the week should begin, 0-based (defaults to 0, which is Sunday)
151      */
152     </span><span class="jsdoc-var">startDay </span><span class="jsdoc-syntax">: 0,
153     </span><span class="jsdoc-comment">/**
154      * @cfg {Bool} showClear
155      * Show a clear button (usefull for date form elements that can be blank.)
156      */
157     
158     </span><span class="jsdoc-var">showClear</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
159     
160     </span><span class="jsdoc-comment">/**
161      * Sets the value of the date field
162      * @param {Date} value The date to set
163      */
164     </span><span class="jsdoc-var">setValue </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">value</span><span class="jsdoc-syntax">){
165         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">old </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.value</span><span class="jsdoc-syntax">;
166         </span><span class="jsdoc-var">this.value </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">value.clearTime</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
167         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.el</span><span class="jsdoc-syntax">){
168             </span><span class="jsdoc-var">this.update</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.value</span><span class="jsdoc-syntax">);
169         }
170     },
171
172     </span><span class="jsdoc-comment">/**
173      * Gets the current selected value of the date field
174      * @return {Date} The selected date
175      */
176     </span><span class="jsdoc-var">getValue </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
177         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.value</span><span class="jsdoc-syntax">;
178     },
179
180     </span><span class="jsdoc-comment">// private
181     </span><span class="jsdoc-var">focus </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
182         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.el</span><span class="jsdoc-syntax">){
183             </span><span class="jsdoc-var">this.update</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.activeDate</span><span class="jsdoc-syntax">);
184         }
185     },
186
187     </span><span class="jsdoc-comment">// private
188     </span><span class="jsdoc-var">onRender </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">container</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">position</span><span class="jsdoc-syntax">){
189         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">m </span><span class="jsdoc-syntax">= [
190              </span><span class="jsdoc-string">'&lt;table cellspacing=&quot;0&quot;&gt;'</span><span class="jsdoc-syntax">,
191                 </span><span class="jsdoc-string">'&lt;tr&gt;&lt;td class=&quot;x-date-left&quot;&gt;&lt;a href=&quot;#&quot; title=&quot;'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.prevText </span><span class="jsdoc-syntax">,</span><span class="jsdoc-string">'&quot;&gt;&amp;#160;&lt;/a&gt;&lt;/td&gt;&lt;td class=&quot;x-date-middle&quot; align=&quot;center&quot;&gt;&lt;/td&gt;&lt;td class=&quot;x-date-right&quot;&gt;&lt;a href=&quot;#&quot; title=&quot;'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.nextText </span><span class="jsdoc-syntax">,</span><span class="jsdoc-string">'&quot;&gt;&amp;#160;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;'</span><span class="jsdoc-syntax">,
192                 </span><span class="jsdoc-string">'&lt;tr&gt;&lt;td colspan=&quot;3&quot;&gt;&lt;table class=&quot;x-date-inner&quot; cellspacing=&quot;0&quot;&gt;&lt;thead&gt;&lt;tr&gt;'</span><span class="jsdoc-syntax">];
193         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">dn </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.dayNames</span><span class="jsdoc-syntax">;
194         </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= 0; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">&lt; 7; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++){
195             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">d </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.startDay</span><span class="jsdoc-syntax">+</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">;
196             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">d </span><span class="jsdoc-syntax">&gt; 6){
197                 </span><span class="jsdoc-var">d </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">d</span><span class="jsdoc-syntax">-7;
198             }
199             </span><span class="jsdoc-var">m.push</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;&lt;th&gt;&lt;span&gt;&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">dn</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">d</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.substr</span><span class="jsdoc-syntax">(0,1), </span><span class="jsdoc-string">&quot;&lt;/span&gt;&lt;/th&gt;&quot;</span><span class="jsdoc-syntax">);
200         }
201         </span><span class="jsdoc-var">m</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">m.length</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-string">&quot;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&quot;</span><span class="jsdoc-syntax">;
202         </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= 0; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">&lt; 42; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++) {
203             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">% 7 == 0 &amp;&amp; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">!= 0){
204                 </span><span class="jsdoc-var">m</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">m.length</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-string">&quot;&lt;/tr&gt;&lt;tr&gt;&quot;</span><span class="jsdoc-syntax">;
205             }
206             </span><span class="jsdoc-var">m</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">m.length</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-string">'&lt;td&gt;&lt;a href=&quot;#&quot; hidefocus=&quot;on&quot; class=&quot;x-date-date&quot; tabIndex=&quot;1&quot;&gt;&lt;em&gt;&lt;span&gt;&lt;/span&gt;&lt;/em&gt;&lt;/a&gt;&lt;/td&gt;'</span><span class="jsdoc-syntax">;
207         }
208         </span><span class="jsdoc-var">m</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">m.length</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-string">'&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;'</span><span class="jsdoc-syntax">+
209             </span><span class="jsdoc-string">'&lt;td colspan=&quot;3&quot; class=&quot;x-date-bottom&quot; align=&quot;center&quot;&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div class=&quot;x-date-mp&quot;&gt;&lt;/div&gt;'</span><span class="jsdoc-syntax">;
210
211         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">el </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">document.createElement</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;div&quot;</span><span class="jsdoc-syntax">);
212         </span><span class="jsdoc-var">el.className </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">&quot;x-date-picker&quot;</span><span class="jsdoc-syntax">;
213         </span><span class="jsdoc-var">el.innerHTML </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">m.join</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;&quot;</span><span class="jsdoc-syntax">);
214
215         </span><span class="jsdoc-var">container.dom.insertBefore</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">position</span><span class="jsdoc-syntax">);
216
217         </span><span class="jsdoc-var">this.el </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.get</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">);
218         </span><span class="jsdoc-var">this.eventEl </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.get</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el.firstChild</span><span class="jsdoc-syntax">);
219
220         </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.util.ClickRepeater</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.el.child</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;td.x-date-left a&quot;</span><span class="jsdoc-syntax">), {
221             </span><span class="jsdoc-var">handler</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.showPrevMonth</span><span class="jsdoc-syntax">,
222             </span><span class="jsdoc-var">scope</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">,
223             </span><span class="jsdoc-var">preventDefault</span><span class="jsdoc-syntax">:</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
224             </span><span class="jsdoc-var">stopDefault</span><span class="jsdoc-syntax">:</span><span class="jsdoc-keyword">true
225         </span><span class="jsdoc-syntax">});
226
227         </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.util.ClickRepeater</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.el.child</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;td.x-date-right a&quot;</span><span class="jsdoc-syntax">), {
228             </span><span class="jsdoc-var">handler</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.showNextMonth</span><span class="jsdoc-syntax">,
229             </span><span class="jsdoc-var">scope</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">,
230             </span><span class="jsdoc-var">preventDefault</span><span class="jsdoc-syntax">:</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
231             </span><span class="jsdoc-var">stopDefault</span><span class="jsdoc-syntax">:</span><span class="jsdoc-keyword">true
232         </span><span class="jsdoc-syntax">});
233
234         </span><span class="jsdoc-var">this.eventEl.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;mousewheel&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.handleMouseWheel</span><span class="jsdoc-syntax">,  </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
235
236         </span><span class="jsdoc-var">this.monthPicker </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.el.down</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'div.x-date-mp'</span><span class="jsdoc-syntax">);
237         </span><span class="jsdoc-var">this.monthPicker.enableDisplayMode</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'block'</span><span class="jsdoc-syntax">);
238         
239         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">kn </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.KeyNav</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.eventEl</span><span class="jsdoc-syntax">, {
240             </span><span class="jsdoc-string">&quot;left&quot; </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">){
241                 </span><span class="jsdoc-var">e.ctrlKey </span><span class="jsdoc-syntax">?
242                     </span><span class="jsdoc-var">this.showPrevMonth</span><span class="jsdoc-syntax">() :
243                     </span><span class="jsdoc-var">this.update</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.activeDate.add</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;d&quot;</span><span class="jsdoc-syntax">, -1));
244             },
245
246             </span><span class="jsdoc-string">&quot;right&quot; </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">){
247                 </span><span class="jsdoc-var">e.ctrlKey </span><span class="jsdoc-syntax">?
248                     </span><span class="jsdoc-var">this.showNextMonth</span><span class="jsdoc-syntax">() :
249                     </span><span class="jsdoc-var">this.update</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.activeDate.add</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;d&quot;</span><span class="jsdoc-syntax">, 1));
250             },
251
252             </span><span class="jsdoc-string">&quot;up&quot; </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">){
253                 </span><span class="jsdoc-var">e.ctrlKey </span><span class="jsdoc-syntax">?
254                     </span><span class="jsdoc-var">this.showNextYear</span><span class="jsdoc-syntax">() :
255                     </span><span class="jsdoc-var">this.update</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.activeDate.add</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;d&quot;</span><span class="jsdoc-syntax">, -7));
256             },
257
258             </span><span class="jsdoc-string">&quot;down&quot; </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">){
259                 </span><span class="jsdoc-var">e.ctrlKey </span><span class="jsdoc-syntax">?
260                     </span><span class="jsdoc-var">this.showPrevYear</span><span class="jsdoc-syntax">() :
261                     </span><span class="jsdoc-var">this.update</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.activeDate.add</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;d&quot;</span><span class="jsdoc-syntax">, 7));
262             },
263
264             </span><span class="jsdoc-string">&quot;pageUp&quot; </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">){
265                 </span><span class="jsdoc-var">this.showNextMonth</span><span class="jsdoc-syntax">();
266             },
267
268             </span><span class="jsdoc-string">&quot;pageDown&quot; </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">){
269                 </span><span class="jsdoc-var">this.showPrevMonth</span><span class="jsdoc-syntax">();
270             },
271
272             </span><span class="jsdoc-string">&quot;enter&quot; </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">){
273                 </span><span class="jsdoc-var">e.stopPropagation</span><span class="jsdoc-syntax">();
274                 </span><span class="jsdoc-keyword">return true</span><span class="jsdoc-syntax">;
275             },
276
277             </span><span class="jsdoc-var">scope </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this
278         </span><span class="jsdoc-syntax">});
279
280         </span><span class="jsdoc-var">this.eventEl.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;click&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.handleDateClick</span><span class="jsdoc-syntax">,  </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, {</span><span class="jsdoc-var">delegate</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;a.x-date-date&quot;</span><span class="jsdoc-syntax">});
281
282         </span><span class="jsdoc-var">this.eventEl.addKeyListener</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.EventObject.SPACE</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.selectToday</span><span class="jsdoc-syntax">,  </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
283
284         </span><span class="jsdoc-var">this.el.unselectable</span><span class="jsdoc-syntax">();
285         
286         </span><span class="jsdoc-var">this.cells </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.el.select</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;table.x-date-inner tbody td&quot;</span><span class="jsdoc-syntax">);
287         </span><span class="jsdoc-var">this.textNodes </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.el.query</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;table.x-date-inner tbody span&quot;</span><span class="jsdoc-syntax">);
288
289         </span><span class="jsdoc-var">this.mbtn </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.Button</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.el.child</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;td.x-date-middle&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">), {
290             </span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;&amp;#160;&quot;</span><span class="jsdoc-syntax">,
291             </span><span class="jsdoc-var">tooltip</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.monthYearText
292         </span><span class="jsdoc-syntax">});
293
294         </span><span class="jsdoc-var">this.mbtn.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'click'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.showMonthPicker</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
295         </span><span class="jsdoc-var">this.mbtn.el.child</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.mbtn.menuClassTarget</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.addClass</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;x-btn-with-menu&quot;</span><span class="jsdoc-syntax">);
296
297
298         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">today </span><span class="jsdoc-syntax">= (</span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Date</span><span class="jsdoc-syntax">())</span><span class="jsdoc-var">.dateFormat</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.format</span><span class="jsdoc-syntax">);
299         
300         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">baseTb </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.Toolbar</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.el.child</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;td.x-date-bottom&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">));
301         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.showClear</span><span class="jsdoc-syntax">) {
302             </span><span class="jsdoc-var">baseTb.add</span><span class="jsdoc-syntax">( </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.Toolbar.Fill</span><span class="jsdoc-syntax">());
303         }
304         </span><span class="jsdoc-var">baseTb.add</span><span class="jsdoc-syntax">({
305             </span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">String.format</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.todayText</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">today</span><span class="jsdoc-syntax">),
306             </span><span class="jsdoc-var">tooltip</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">String.format</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.todayTip</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">today</span><span class="jsdoc-syntax">),
307             </span><span class="jsdoc-var">handler</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.selectToday</span><span class="jsdoc-syntax">,
308             </span><span class="jsdoc-var">scope</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this
309         </span><span class="jsdoc-syntax">});
310         
311         </span><span class="jsdoc-comment">//var todayBtn = new Roo.Button(this.el.child(&quot;td.x-date-bottom&quot;, true), {
312             
313         //});
314         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.showClear</span><span class="jsdoc-syntax">) {
315             
316             </span><span class="jsdoc-var">baseTb.add</span><span class="jsdoc-syntax">( </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.Toolbar.Fill</span><span class="jsdoc-syntax">());
317             </span><span class="jsdoc-var">baseTb.add</span><span class="jsdoc-syntax">({
318                 </span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'&amp;#160;'</span><span class="jsdoc-syntax">,
319                 </span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'x-btn-icon x-btn-clear'</span><span class="jsdoc-syntax">,
320                 </span><span class="jsdoc-var">handler</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() {
321                     </span><span class="jsdoc-comment">//this.value = '';
322                     </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;select&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">);
323                 },
324                 </span><span class="jsdoc-var">scope</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this
325             </span><span class="jsdoc-syntax">});
326         }
327         
328         
329         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.isIE</span><span class="jsdoc-syntax">){
330             </span><span class="jsdoc-var">this.el.repaint</span><span class="jsdoc-syntax">();
331         }
332         </span><span class="jsdoc-var">this.update</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.value</span><span class="jsdoc-syntax">);
333     },
334
335     </span><span class="jsdoc-var">createMonthPicker </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
336         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.monthPicker.dom.firstChild</span><span class="jsdoc-syntax">){
337             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">buf </span><span class="jsdoc-syntax">= [</span><span class="jsdoc-string">'&lt;table border=&quot;0&quot; cellspacing=&quot;0&quot;&gt;'</span><span class="jsdoc-syntax">];
338             </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= 0; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">&lt; 6; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++){
339                 </span><span class="jsdoc-var">buf.push</span><span class="jsdoc-syntax">(
340                     </span><span class="jsdoc-string">'&lt;tr&gt;&lt;td class=&quot;x-date-mp-month&quot;&gt;&lt;a href=&quot;#&quot;&gt;'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.monthNames</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.substr</span><span class="jsdoc-syntax">(0, 3), </span><span class="jsdoc-string">'&lt;/a&gt;&lt;/td&gt;'</span><span class="jsdoc-syntax">,
341                     </span><span class="jsdoc-string">'&lt;td class=&quot;x-date-mp-month x-date-mp-sep&quot;&gt;&lt;a href=&quot;#&quot;&gt;'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.monthNames</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">+6]</span><span class="jsdoc-var">.substr</span><span class="jsdoc-syntax">(0, 3), </span><span class="jsdoc-string">'&lt;/a&gt;&lt;/td&gt;'</span><span class="jsdoc-syntax">,
342                     </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">== 0 ?
343                     </span><span class="jsdoc-string">'&lt;td class=&quot;x-date-mp-ybtn&quot; align=&quot;center&quot;&gt;&lt;a class=&quot;x-date-mp-prev&quot;&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class=&quot;x-date-mp-ybtn&quot; align=&quot;center&quot;&gt;&lt;a class=&quot;x-date-mp-next&quot;&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;' </span><span class="jsdoc-syntax">:
344                     </span><span class="jsdoc-string">'&lt;td class=&quot;x-date-mp-year&quot;&gt;&lt;a href=&quot;#&quot;&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class=&quot;x-date-mp-year&quot;&gt;&lt;a href=&quot;#&quot;&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;'
345                 </span><span class="jsdoc-syntax">);
346             }
347             </span><span class="jsdoc-var">buf.push</span><span class="jsdoc-syntax">(
348                 </span><span class="jsdoc-string">'&lt;tr class=&quot;x-date-mp-btns&quot;&gt;&lt;td colspan=&quot;4&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;x-date-mp-ok&quot;&gt;'</span><span class="jsdoc-syntax">,
349                     </span><span class="jsdoc-var">this.okText</span><span class="jsdoc-syntax">,
350                     </span><span class="jsdoc-string">'&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;x-date-mp-cancel&quot;&gt;'</span><span class="jsdoc-syntax">,
351                     </span><span class="jsdoc-var">this.cancelText</span><span class="jsdoc-syntax">,
352                     </span><span class="jsdoc-string">'&lt;/button&gt;&lt;/td&gt;&lt;/tr&gt;'</span><span class="jsdoc-syntax">,
353                 </span><span class="jsdoc-string">'&lt;/table&gt;'
354             </span><span class="jsdoc-syntax">);
355             </span><span class="jsdoc-var">this.monthPicker.update</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">buf.join</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">));
356             </span><span class="jsdoc-var">this.monthPicker.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'click'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.onMonthClick</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
357             </span><span class="jsdoc-var">this.monthPicker.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'dblclick'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.onMonthDblClick</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
358
359             </span><span class="jsdoc-var">this.mpMonths </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.monthPicker.select</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'td.x-date-mp-month'</span><span class="jsdoc-syntax">);
360             </span><span class="jsdoc-var">this.mpYears </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.monthPicker.select</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'td.x-date-mp-year'</span><span class="jsdoc-syntax">);
361
362             </span><span class="jsdoc-var">this.mpMonths.each</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">m</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">a</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">){
363                 </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">+= 1;
364                 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">((</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">%2) == 0){
365                     </span><span class="jsdoc-var">m.dom.xmonth </span><span class="jsdoc-syntax">= 5 + </span><span class="jsdoc-var">Math.round</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">* </span><span class="jsdoc-var">.</span><span class="jsdoc-syntax">5);
366                 }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
367                     </span><span class="jsdoc-var">m.dom.xmonth </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Math.round</span><span class="jsdoc-syntax">((</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">-1) * </span><span class="jsdoc-var">.</span><span class="jsdoc-syntax">5);
368                 }
369             });
370         }
371     },
372
373     </span><span class="jsdoc-var">showMonthPicker </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
374         </span><span class="jsdoc-var">this.createMonthPicker</span><span class="jsdoc-syntax">();
375         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">size </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.el.getSize</span><span class="jsdoc-syntax">();
376         </span><span class="jsdoc-var">this.monthPicker.setSize</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">size</span><span class="jsdoc-syntax">);
377         </span><span class="jsdoc-var">this.monthPicker.child</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'table'</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.setSize</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">size</span><span class="jsdoc-syntax">);
378
379         </span><span class="jsdoc-var">this.mpSelMonth </span><span class="jsdoc-syntax">= (</span><span class="jsdoc-var">this.activeDate </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">this.value</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.getMonth</span><span class="jsdoc-syntax">();
380         </span><span class="jsdoc-var">this.updateMPMonth</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.mpSelMonth</span><span class="jsdoc-syntax">);
381         </span><span class="jsdoc-var">this.mpSelYear </span><span class="jsdoc-syntax">= (</span><span class="jsdoc-var">this.activeDate </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">this.value</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.getFullYear</span><span class="jsdoc-syntax">();
382         </span><span class="jsdoc-var">this.updateMPYear</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.mpSelYear</span><span class="jsdoc-syntax">);
383
384         </span><span class="jsdoc-var">this.monthPicker.slideIn</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'t'</span><span class="jsdoc-syntax">, {</span><span class="jsdoc-var">duration</span><span class="jsdoc-syntax">:</span><span class="jsdoc-var">.</span><span class="jsdoc-syntax">2});
385     },
386
387     </span><span class="jsdoc-var">updateMPYear </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">y</span><span class="jsdoc-syntax">){
388         </span><span class="jsdoc-var">this.mpyear </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">y</span><span class="jsdoc-syntax">;
389         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">ys </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.mpYears.elements</span><span class="jsdoc-syntax">;
390         </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= 1; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">&lt;= 10; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++){
391             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">td </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">ys</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">-1], </span><span class="jsdoc-var">y2</span><span class="jsdoc-syntax">;
392             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">((</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">%2) == 0){
393                 </span><span class="jsdoc-var">y2 </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">y </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">Math.round</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">* </span><span class="jsdoc-var">.</span><span class="jsdoc-syntax">5);
394                 </span><span class="jsdoc-var">td.firstChild.innerHTML </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">y2</span><span class="jsdoc-syntax">;
395                 </span><span class="jsdoc-var">td.xyear </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">y2</span><span class="jsdoc-syntax">;
396             }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
397                 </span><span class="jsdoc-var">y2 </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">y </span><span class="jsdoc-syntax">- (5-</span><span class="jsdoc-var">Math.round</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">* </span><span class="jsdoc-var">.</span><span class="jsdoc-syntax">5));
398                 </span><span class="jsdoc-var">td.firstChild.innerHTML </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">y2</span><span class="jsdoc-syntax">;
399                 </span><span class="jsdoc-var">td.xyear </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">y2</span><span class="jsdoc-syntax">;
400             }
401             </span><span class="jsdoc-var">this.mpYears.item</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">-1)[</span><span class="jsdoc-var">y2 </span><span class="jsdoc-syntax">== </span><span class="jsdoc-var">this.mpSelYear </span><span class="jsdoc-syntax">? </span><span class="jsdoc-string">'addClass' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'removeClass'</span><span class="jsdoc-syntax">](</span><span class="jsdoc-string">'x-date-mp-sel'</span><span class="jsdoc-syntax">);
402         }
403     },
404
405     </span><span class="jsdoc-var">updateMPMonth </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">sm</span><span class="jsdoc-syntax">){
406         </span><span class="jsdoc-var">this.mpMonths.each</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">m</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">a</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">){
407             </span><span class="jsdoc-var">m</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">m.dom.xmonth </span><span class="jsdoc-syntax">== </span><span class="jsdoc-var">sm </span><span class="jsdoc-syntax">? </span><span class="jsdoc-string">'addClass' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'removeClass'</span><span class="jsdoc-syntax">](</span><span class="jsdoc-string">'x-date-mp-sel'</span><span class="jsdoc-syntax">);
408         });
409     },
410
411     </span><span class="jsdoc-var">selectMPMonth</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">m</span><span class="jsdoc-syntax">){
412         
413     },
414
415     </span><span class="jsdoc-var">onMonthClick </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">t</span><span class="jsdoc-syntax">){
416         </span><span class="jsdoc-var">e.stopEvent</span><span class="jsdoc-syntax">();
417         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">el </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.Element</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">t</span><span class="jsdoc-syntax">), </span><span class="jsdoc-var">pn</span><span class="jsdoc-syntax">;
418         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el.is</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'button.x-date-mp-cancel'</span><span class="jsdoc-syntax">)){
419             </span><span class="jsdoc-var">this.hideMonthPicker</span><span class="jsdoc-syntax">();
420         }
421         </span><span class="jsdoc-keyword">else if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el.is</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'button.x-date-mp-ok'</span><span class="jsdoc-syntax">)){
422             </span><span class="jsdoc-var">this.update</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Date</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.mpSelYear</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.mpSelMonth</span><span class="jsdoc-syntax">, (</span><span class="jsdoc-var">this.activeDate </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">this.value</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.getDate</span><span class="jsdoc-syntax">()));
423             </span><span class="jsdoc-var">this.hideMonthPicker</span><span class="jsdoc-syntax">();
424         }
425         </span><span class="jsdoc-keyword">else if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">pn </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">el.up</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'td.x-date-mp-month'</span><span class="jsdoc-syntax">, 2)){
426             </span><span class="jsdoc-var">this.mpMonths.removeClass</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'x-date-mp-sel'</span><span class="jsdoc-syntax">);
427             </span><span class="jsdoc-var">pn.addClass</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'x-date-mp-sel'</span><span class="jsdoc-syntax">);
428             </span><span class="jsdoc-var">this.mpSelMonth </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">pn.dom.xmonth</span><span class="jsdoc-syntax">;
429         }
430         </span><span class="jsdoc-keyword">else if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">pn </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">el.up</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'td.x-date-mp-year'</span><span class="jsdoc-syntax">, 2)){
431             </span><span class="jsdoc-var">this.mpYears.removeClass</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'x-date-mp-sel'</span><span class="jsdoc-syntax">);
432             </span><span class="jsdoc-var">pn.addClass</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'x-date-mp-sel'</span><span class="jsdoc-syntax">);
433             </span><span class="jsdoc-var">this.mpSelYear </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">pn.dom.xyear</span><span class="jsdoc-syntax">;
434         }
435         </span><span class="jsdoc-keyword">else if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el.is</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'a.x-date-mp-prev'</span><span class="jsdoc-syntax">)){
436             </span><span class="jsdoc-var">this.updateMPYear</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.mpyear</span><span class="jsdoc-syntax">-10);
437         }
438         </span><span class="jsdoc-keyword">else if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el.is</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'a.x-date-mp-next'</span><span class="jsdoc-syntax">)){
439             </span><span class="jsdoc-var">this.updateMPYear</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.mpyear</span><span class="jsdoc-syntax">+10);
440         }
441     },
442
443     </span><span class="jsdoc-var">onMonthDblClick </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">t</span><span class="jsdoc-syntax">){
444         </span><span class="jsdoc-var">e.stopEvent</span><span class="jsdoc-syntax">();
445         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">el </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.Element</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">t</span><span class="jsdoc-syntax">), </span><span class="jsdoc-var">pn</span><span class="jsdoc-syntax">;
446         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">pn </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">el.up</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'td.x-date-mp-month'</span><span class="jsdoc-syntax">, 2)){
447             </span><span class="jsdoc-var">this.update</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Date</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.mpSelYear</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">pn.dom.xmonth</span><span class="jsdoc-syntax">, (</span><span class="jsdoc-var">this.activeDate </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">this.value</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.getDate</span><span class="jsdoc-syntax">()));
448             </span><span class="jsdoc-var">this.hideMonthPicker</span><span class="jsdoc-syntax">();
449         }
450         </span><span class="jsdoc-keyword">else if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">pn </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">el.up</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'td.x-date-mp-year'</span><span class="jsdoc-syntax">, 2)){
451             </span><span class="jsdoc-var">this.update</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Date</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">pn.dom.xyear</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.mpSelMonth</span><span class="jsdoc-syntax">, (</span><span class="jsdoc-var">this.activeDate </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">this.value</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.getDate</span><span class="jsdoc-syntax">()));
452             </span><span class="jsdoc-var">this.hideMonthPicker</span><span class="jsdoc-syntax">();
453         }
454     },
455
456     </span><span class="jsdoc-var">hideMonthPicker </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">disableAnim</span><span class="jsdoc-syntax">){
457         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.monthPicker</span><span class="jsdoc-syntax">){
458             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">disableAnim </span><span class="jsdoc-syntax">=== </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">){
459                 </span><span class="jsdoc-var">this.monthPicker.hide</span><span class="jsdoc-syntax">();
460             }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
461                 </span><span class="jsdoc-var">this.monthPicker.slideOut</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'t'</span><span class="jsdoc-syntax">, {</span><span class="jsdoc-var">duration</span><span class="jsdoc-syntax">:</span><span class="jsdoc-var">.</span><span class="jsdoc-syntax">2});
462             }
463         }
464     },
465
466     </span><span class="jsdoc-comment">// private
467     </span><span class="jsdoc-var">showPrevMonth </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">){
468         </span><span class="jsdoc-var">this.update</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.activeDate.add</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;mo&quot;</span><span class="jsdoc-syntax">, -1));
469     },
470
471     </span><span class="jsdoc-comment">// private
472     </span><span class="jsdoc-var">showNextMonth </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">){
473         </span><span class="jsdoc-var">this.update</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.activeDate.add</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;mo&quot;</span><span class="jsdoc-syntax">, 1));
474     },
475
476     </span><span class="jsdoc-comment">// private
477     </span><span class="jsdoc-var">showPrevYear </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
478         </span><span class="jsdoc-var">this.update</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.activeDate.add</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;y&quot;</span><span class="jsdoc-syntax">, -1));
479     },
480
481     </span><span class="jsdoc-comment">// private
482     </span><span class="jsdoc-var">showNextYear </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
483         </span><span class="jsdoc-var">this.update</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.activeDate.add</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;y&quot;</span><span class="jsdoc-syntax">, 1));
484     },
485
486     </span><span class="jsdoc-comment">// private
487     </span><span class="jsdoc-var">handleMouseWheel </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">){
488         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">delta </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">e.getWheelDelta</span><span class="jsdoc-syntax">();
489         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">delta </span><span class="jsdoc-syntax">&gt; 0){
490             </span><span class="jsdoc-var">this.showPrevMonth</span><span class="jsdoc-syntax">();
491             </span><span class="jsdoc-var">e.stopEvent</span><span class="jsdoc-syntax">();
492         } </span><span class="jsdoc-keyword">else if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">delta </span><span class="jsdoc-syntax">&lt; 0){
493             </span><span class="jsdoc-var">this.showNextMonth</span><span class="jsdoc-syntax">();
494             </span><span class="jsdoc-var">e.stopEvent</span><span class="jsdoc-syntax">();
495         }
496     },
497
498     </span><span class="jsdoc-comment">// private
499     </span><span class="jsdoc-var">handleDateClick </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">t</span><span class="jsdoc-syntax">){
500         </span><span class="jsdoc-var">e.stopEvent</span><span class="jsdoc-syntax">();
501         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">t.dateValue </span><span class="jsdoc-syntax">&amp;&amp; !</span><span class="jsdoc-var">Roo.fly</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">t.parentNode</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.hasClass</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;x-date-disabled&quot;</span><span class="jsdoc-syntax">)){
502             </span><span class="jsdoc-var">this.setValue</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Date</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">t.dateValue</span><span class="jsdoc-syntax">));
503             </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;select&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.value</span><span class="jsdoc-syntax">);
504         }
505     },
506
507     </span><span class="jsdoc-comment">// private
508     </span><span class="jsdoc-var">selectToday </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
509         </span><span class="jsdoc-var">this.setValue</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Date</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.clearTime</span><span class="jsdoc-syntax">());
510         </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;select&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.value</span><span class="jsdoc-syntax">);
511     },
512
513     </span><span class="jsdoc-comment">// private
514     </span><span class="jsdoc-var">update </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">date</span><span class="jsdoc-syntax">){
515         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">vd </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.activeDate</span><span class="jsdoc-syntax">;
516         </span><span class="jsdoc-var">this.activeDate </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">date</span><span class="jsdoc-syntax">;
517         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">vd </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">this.el</span><span class="jsdoc-syntax">){
518             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">t </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">date.getTime</span><span class="jsdoc-syntax">();
519             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">vd.getMonth</span><span class="jsdoc-syntax">() == </span><span class="jsdoc-var">date.getMonth</span><span class="jsdoc-syntax">() &amp;&amp; </span><span class="jsdoc-var">vd.getFullYear</span><span class="jsdoc-syntax">() == </span><span class="jsdoc-var">date.getFullYear</span><span class="jsdoc-syntax">()){
520                 </span><span class="jsdoc-var">this.cells.removeClass</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;x-date-selected&quot;</span><span class="jsdoc-syntax">);
521                 </span><span class="jsdoc-var">this.cells.each</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">c</span><span class="jsdoc-syntax">){
522                    </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">c.dom.firstChild.dateValue </span><span class="jsdoc-syntax">== </span><span class="jsdoc-var">t</span><span class="jsdoc-syntax">){
523                        </span><span class="jsdoc-var">c.addClass</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;x-date-selected&quot;</span><span class="jsdoc-syntax">);
524                        </span><span class="jsdoc-var">setTimeout</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
525                             </span><span class="jsdoc-keyword">try</span><span class="jsdoc-syntax">{</span><span class="jsdoc-var">c.dom.firstChild.focus</span><span class="jsdoc-syntax">();}</span><span class="jsdoc-keyword">catch</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">){}
526                        }, 50);
527                        </span><span class="jsdoc-keyword">return false</span><span class="jsdoc-syntax">;
528                    }
529                 });
530                 </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
531             }
532         }
533         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">days </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">date.getDaysInMonth</span><span class="jsdoc-syntax">();
534         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">firstOfMonth </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">date.getFirstDateOfMonth</span><span class="jsdoc-syntax">();
535         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">startingPos </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">firstOfMonth.getDay</span><span class="jsdoc-syntax">()-</span><span class="jsdoc-var">this.startDay</span><span class="jsdoc-syntax">;
536
537         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">startingPos </span><span class="jsdoc-syntax">&lt;= </span><span class="jsdoc-var">this.startDay</span><span class="jsdoc-syntax">){
538             </span><span class="jsdoc-var">startingPos </span><span class="jsdoc-syntax">+= 7;
539         }
540
541         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">pm </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">date.add</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;mo&quot;</span><span class="jsdoc-syntax">, -1);
542         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">prevStart </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">pm.getDaysInMonth</span><span class="jsdoc-syntax">()-</span><span class="jsdoc-var">startingPos</span><span class="jsdoc-syntax">;
543
544         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">cells </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.cells.elements</span><span class="jsdoc-syntax">;
545         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">textEls </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.textNodes</span><span class="jsdoc-syntax">;
546         </span><span class="jsdoc-var">days </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-var">startingPos</span><span class="jsdoc-syntax">;
547
548         </span><span class="jsdoc-comment">// convert everything to numbers so it's fast
549         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">day </span><span class="jsdoc-syntax">= 86400000;
550         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">d </span><span class="jsdoc-syntax">= (</span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Date</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">pm.getFullYear</span><span class="jsdoc-syntax">(), </span><span class="jsdoc-var">pm.getMonth</span><span class="jsdoc-syntax">(), </span><span class="jsdoc-var">prevStart</span><span class="jsdoc-syntax">))</span><span class="jsdoc-var">.clearTime</span><span class="jsdoc-syntax">();
551         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">today </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Date</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.clearTime</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.getTime</span><span class="jsdoc-syntax">();
552         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">sel </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">date.clearTime</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.getTime</span><span class="jsdoc-syntax">();
553         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">min </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.minDate </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">this.minDate.clearTime</span><span class="jsdoc-syntax">() : </span><span class="jsdoc-var">Number.NEGATIVE_INFINITY</span><span class="jsdoc-syntax">;
554         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">max </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.maxDate </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">this.maxDate.clearTime</span><span class="jsdoc-syntax">() : </span><span class="jsdoc-var">Number.POSITIVE_INFINITY</span><span class="jsdoc-syntax">;
555         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">ddMatch </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.disabledDatesRE</span><span class="jsdoc-syntax">;
556         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">ddText </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.disabledDatesText</span><span class="jsdoc-syntax">;
557         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">ddays </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.disabledDays </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">this.disabledDays.join</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;&quot;</span><span class="jsdoc-syntax">) : </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
558         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">ddaysText </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.disabledDaysText</span><span class="jsdoc-syntax">;
559         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">format </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.format</span><span class="jsdoc-syntax">;
560
561         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">setCellClass </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cal</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">cell</span><span class="jsdoc-syntax">){
562             </span><span class="jsdoc-var">cell.title </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">&quot;&quot;</span><span class="jsdoc-syntax">;
563             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">t </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">d.getTime</span><span class="jsdoc-syntax">();
564             </span><span class="jsdoc-var">cell.firstChild.dateValue </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">t</span><span class="jsdoc-syntax">;
565             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">t </span><span class="jsdoc-syntax">== </span><span class="jsdoc-var">today</span><span class="jsdoc-syntax">){
566                 </span><span class="jsdoc-var">cell.className </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-string">&quot; x-date-today&quot;</span><span class="jsdoc-syntax">;
567                 </span><span class="jsdoc-var">cell.title </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cal.todayText</span><span class="jsdoc-syntax">;
568             }
569             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">t </span><span class="jsdoc-syntax">== </span><span class="jsdoc-var">sel</span><span class="jsdoc-syntax">){
570                 </span><span class="jsdoc-var">cell.className </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-string">&quot; x-date-selected&quot;</span><span class="jsdoc-syntax">;
571                 </span><span class="jsdoc-var">setTimeout</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
572                     </span><span class="jsdoc-keyword">try</span><span class="jsdoc-syntax">{</span><span class="jsdoc-var">cell.firstChild.focus</span><span class="jsdoc-syntax">();}</span><span class="jsdoc-keyword">catch</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">){}
573                 }, 50);
574             }
575             </span><span class="jsdoc-comment">// disabling
576             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">t </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">min</span><span class="jsdoc-syntax">) {
577                 </span><span class="jsdoc-var">cell.className </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">&quot; x-date-disabled&quot;</span><span class="jsdoc-syntax">;
578                 </span><span class="jsdoc-var">cell.title </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cal.minText</span><span class="jsdoc-syntax">;
579                 </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
580             }
581             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">t </span><span class="jsdoc-syntax">&gt; </span><span class="jsdoc-var">max</span><span class="jsdoc-syntax">) {
582                 </span><span class="jsdoc-var">cell.className </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">&quot; x-date-disabled&quot;</span><span class="jsdoc-syntax">;
583                 </span><span class="jsdoc-var">cell.title </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cal.maxText</span><span class="jsdoc-syntax">;
584                 </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
585             }
586             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ddays</span><span class="jsdoc-syntax">){
587                 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ddays.indexOf</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">d.getDay</span><span class="jsdoc-syntax">()) != -1){
588                     </span><span class="jsdoc-var">cell.title </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">ddaysText</span><span class="jsdoc-syntax">;
589                     </span><span class="jsdoc-var">cell.className </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">&quot; x-date-disabled&quot;</span><span class="jsdoc-syntax">;
590                 }
591             }
592             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ddMatch </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">format</span><span class="jsdoc-syntax">){
593                 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">fvalue </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">d.dateFormat</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">format</span><span class="jsdoc-syntax">);
594                 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ddMatch.test</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">fvalue</span><span class="jsdoc-syntax">)){
595                     </span><span class="jsdoc-var">cell.title </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">ddText.replace</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;%0&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">fvalue</span><span class="jsdoc-syntax">);
596                     </span><span class="jsdoc-var">cell.className </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">&quot; x-date-disabled&quot;</span><span class="jsdoc-syntax">;
597                 }
598             }
599         };
600
601         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= 0;
602         </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">(; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">startingPos</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++) {
603             </span><span class="jsdoc-var">textEls</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.innerHTML </span><span class="jsdoc-syntax">= (++</span><span class="jsdoc-var">prevStart</span><span class="jsdoc-syntax">);
604             </span><span class="jsdoc-var">d.setDate</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">d.getDate</span><span class="jsdoc-syntax">()+1);
605             </span><span class="jsdoc-var">cells</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.className </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">&quot;x-date-prevday&quot;</span><span class="jsdoc-syntax">;
606             </span><span class="jsdoc-var">setCellClass</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">cells</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]);
607         }
608         </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">(; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">days</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++){
609             </span><span class="jsdoc-var">intDay </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">- </span><span class="jsdoc-var">startingPos </span><span class="jsdoc-syntax">+ 1;
610             </span><span class="jsdoc-var">textEls</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.innerHTML </span><span class="jsdoc-syntax">= (</span><span class="jsdoc-var">intDay</span><span class="jsdoc-syntax">);
611             </span><span class="jsdoc-var">d.setDate</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">d.getDate</span><span class="jsdoc-syntax">()+1);
612             </span><span class="jsdoc-var">cells</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.className </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">&quot;x-date-active&quot;</span><span class="jsdoc-syntax">;
613             </span><span class="jsdoc-var">setCellClass</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">cells</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]);
614         }
615         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">extraDays </span><span class="jsdoc-syntax">= 0;
616         </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">(; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">&lt; 42; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++) {
617              </span><span class="jsdoc-var">textEls</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.innerHTML </span><span class="jsdoc-syntax">= (++</span><span class="jsdoc-var">extraDays</span><span class="jsdoc-syntax">);
618              </span><span class="jsdoc-var">d.setDate</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">d.getDate</span><span class="jsdoc-syntax">()+1);
619              </span><span class="jsdoc-var">cells</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.className </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">&quot;x-date-nextday&quot;</span><span class="jsdoc-syntax">;
620              </span><span class="jsdoc-var">setCellClass</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">cells</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]);
621         }
622
623         </span><span class="jsdoc-var">this.mbtn.setText</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.monthNames</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">date.getMonth</span><span class="jsdoc-syntax">()] + </span><span class="jsdoc-string">&quot; &quot; </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">date.getFullYear</span><span class="jsdoc-syntax">());
624
625         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.internalRender</span><span class="jsdoc-syntax">){
626             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">main </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.el.dom.firstChild</span><span class="jsdoc-syntax">;
627             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">w </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">main.offsetWidth</span><span class="jsdoc-syntax">;
628             </span><span class="jsdoc-var">this.el.setWidth</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">w </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">this.el.getBorderWidth</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;lr&quot;</span><span class="jsdoc-syntax">));
629             </span><span class="jsdoc-var">Roo.fly</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">main</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.setWidth</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">w</span><span class="jsdoc-syntax">);
630             </span><span class="jsdoc-var">this.internalRender </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
631             </span><span class="jsdoc-comment">// opera does not respect the auto grow header center column
632             // then, after it gets a width opera refuses to recalculate
633             // without a second pass
634             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.isOpera </span><span class="jsdoc-syntax">&amp;&amp; !</span><span class="jsdoc-var">this.secondPass</span><span class="jsdoc-syntax">){
635                 </span><span class="jsdoc-var">main.rows</span><span class="jsdoc-syntax">[0]</span><span class="jsdoc-var">.cells</span><span class="jsdoc-syntax">[1]</span><span class="jsdoc-var">.style.width </span><span class="jsdoc-syntax">= (</span><span class="jsdoc-var">w </span><span class="jsdoc-syntax">- (</span><span class="jsdoc-var">main.rows</span><span class="jsdoc-syntax">[0]</span><span class="jsdoc-var">.cells</span><span class="jsdoc-syntax">[0]</span><span class="jsdoc-var">.offsetWidth</span><span class="jsdoc-syntax">+</span><span class="jsdoc-var">main.rows</span><span class="jsdoc-syntax">[0]</span><span class="jsdoc-var">.cells</span><span class="jsdoc-syntax">[2]</span><span class="jsdoc-var">.offsetWidth</span><span class="jsdoc-syntax">)) + </span><span class="jsdoc-string">&quot;px&quot;</span><span class="jsdoc-syntax">;
636                 </span><span class="jsdoc-var">this.secondPass </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
637                 </span><span class="jsdoc-var">this.update.defer</span><span class="jsdoc-syntax">(10, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, [</span><span class="jsdoc-var">date</span><span class="jsdoc-syntax">]);
638             }
639         }
640     }
641 });</span></code></body></html>