e43a146b4fe858d2fb758a2db9de75102a434cb9
[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-string">'select'</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
34         </span><span class="jsdoc-comment">/**
35              * @event monthchange
36              * Fires when the displayed month changes 
37              * @param {DatePicker} this
38              * @param {Date} date The selected month
39              */
40         </span><span class="jsdoc-string">'monthchange'</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true
41     </span><span class="jsdoc-syntax">});
42
43     </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.handler</span><span class="jsdoc-syntax">){
44         </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">);
45     }
46     </span><span class="jsdoc-comment">// build the disabledDatesRE
47     </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">){
48         </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">;
49         </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">;
50         </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">++){
51             </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">];
52             </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">;
53         }
54         </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">);
55     }
56 };
57
58 </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">, {
59     </span><span class="jsdoc-comment">/**
60      * @cfg {String} todayText
61      * The text to display on the button that selects the current date (defaults to &quot;Today&quot;)
62      */
63     </span><span class="jsdoc-var">todayText </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;Today&quot;</span><span class="jsdoc-syntax">,
64     </span><span class="jsdoc-comment">/**
65      * @cfg {String} okText
66      * The text to display on the ok button
67      */
68     </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
69     /**
70      * @cfg {String} cancelText
71      * The text to display on the cancel button
72      */
73     </span><span class="jsdoc-var">cancelText </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;Cancel&quot;</span><span class="jsdoc-syntax">,
74     </span><span class="jsdoc-comment">/**
75      * @cfg {String} todayTip
76      * The tooltip to display for the button that selects the current date (defaults to &quot;{current date} (Spacebar)&quot;)
77      */
78     </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">,
79     </span><span class="jsdoc-comment">/**
80      * @cfg {Date} minDate
81      * Minimum allowable date (JavaScript date object, defaults to null)
82      */
83     </span><span class="jsdoc-var">minDate </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">,
84     </span><span class="jsdoc-comment">/**
85      * @cfg {Date} maxDate
86      * Maximum allowable date (JavaScript date object, defaults to null)
87      */
88     </span><span class="jsdoc-var">maxDate </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">,
89     </span><span class="jsdoc-comment">/**
90      * @cfg {String} minText
91      * The error text to display if the minDate validation fails (defaults to &quot;This date is before the minimum date&quot;)
92      */
93     </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">,
94     </span><span class="jsdoc-comment">/**
95      * @cfg {String} maxText
96      * The error text to display if the maxDate validation fails (defaults to &quot;This date is after the maximum date&quot;)
97      */
98     </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">,
99     </span><span class="jsdoc-comment">/**
100      * @cfg {String} format
101      * The default date format string which can be overriden for localization support.  The format must be
102      * valid according to {@link Date#parseDate} (defaults to 'm/d/y').
103      */
104     </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">,
105     </span><span class="jsdoc-comment">/**
106      * @cfg {Array} disabledDays
107      * An array of days to disable, 0-based. For example, [0, 6] disables Sunday and Saturday (defaults to null).
108      */
109     </span><span class="jsdoc-var">disabledDays </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">,
110     </span><span class="jsdoc-comment">/**
111      * @cfg {String} disabledDaysText
112      * The tooltip to display when the date falls on a disabled day (defaults to &quot;&quot;)
113      */
114     </span><span class="jsdoc-var">disabledDaysText </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;&quot;</span><span class="jsdoc-syntax">,
115     </span><span class="jsdoc-comment">/**
116      * @cfg {RegExp} disabledDatesRE
117      * JavaScript regular expression used to disable a pattern of dates (defaults to null)
118      */
119     </span><span class="jsdoc-var">disabledDatesRE </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">,
120     </span><span class="jsdoc-comment">/**
121      * @cfg {String} disabledDatesText
122      * The tooltip text to display when the date falls on a disabled date (defaults to &quot;&quot;)
123      */
124     </span><span class="jsdoc-var">disabledDatesText </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;&quot;</span><span class="jsdoc-syntax">,
125     </span><span class="jsdoc-comment">/**
126      * @cfg {Boolean} constrainToViewport
127      * True to constrain the date picker to the viewport (defaults to true)
128      */
129     </span><span class="jsdoc-var">constrainToViewport </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
130     </span><span class="jsdoc-comment">/**
131      * @cfg {Array} monthNames
132      * An array of textual month names which can be overriden for localization support (defaults to Date.monthNames)
133      */
134     </span><span class="jsdoc-var">monthNames </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">Date.monthNames</span><span class="jsdoc-syntax">,
135     </span><span class="jsdoc-comment">/**
136      * @cfg {Array} dayNames
137      * An array of textual day names which can be overriden for localization support (defaults to Date.dayNames)
138      */
139     </span><span class="jsdoc-var">dayNames </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">Date.dayNames</span><span class="jsdoc-syntax">,
140     </span><span class="jsdoc-comment">/**
141      * @cfg {String} nextText
142      * The next month navigation button tooltip (defaults to 'Next Month (Control+Right)')
143      */
144     </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">,
145     </span><span class="jsdoc-comment">/**
146      * @cfg {String} prevText
147      * The previous month navigation button tooltip (defaults to 'Previous Month (Control+Left)')
148      */
149     </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">,
150     </span><span class="jsdoc-comment">/**
151      * @cfg {String} monthYearText
152      * The header month selector tooltip (defaults to 'Choose a month (Control+Up/Down to move years)')
153      */
154     </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">,
155     </span><span class="jsdoc-comment">/**
156      * @cfg {Number} startDay
157      * Day index at which the week should begin, 0-based (defaults to 0, which is Sunday)
158      */
159     </span><span class="jsdoc-var">startDay </span><span class="jsdoc-syntax">: 0,
160     </span><span class="jsdoc-comment">/**
161      * @cfg {Bool} showClear
162      * Show a clear button (usefull for date form elements that can be blank.)
163      */
164     
165     </span><span class="jsdoc-var">showClear</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
166     
167     </span><span class="jsdoc-comment">/**
168      * Sets the value of the date field
169      * @param {Date} value The date to set
170      */
171     </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">){
172         </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">;
173         
174         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">typeof</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">value</span><span class="jsdoc-syntax">) == </span><span class="jsdoc-string">'string'</span><span class="jsdoc-syntax">) {
175          
176             </span><span class="jsdoc-var">value </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Date.parseDate</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">value</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.format</span><span class="jsdoc-syntax">);
177         }
178         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">value</span><span class="jsdoc-syntax">) {
179             </span><span class="jsdoc-var">value </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Date</span><span class="jsdoc-syntax">();
180         }
181         
182         </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">);
183         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.el</span><span class="jsdoc-syntax">){
184             </span><span class="jsdoc-var">this.update</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.value</span><span class="jsdoc-syntax">);
185         }
186     },
187
188     </span><span class="jsdoc-comment">/**
189      * Gets the current selected value of the date field
190      * @return {Date} The selected date
191      */
192     </span><span class="jsdoc-var">getValue </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
193         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.value</span><span class="jsdoc-syntax">;
194     },
195
196     </span><span class="jsdoc-comment">// private
197     </span><span class="jsdoc-var">focus </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
198         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.el</span><span class="jsdoc-syntax">){
199             </span><span class="jsdoc-var">this.update</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.activeDate</span><span class="jsdoc-syntax">);
200         }
201     },
202
203     </span><span class="jsdoc-comment">// privateval
204     </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">){
205         
206         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">m </span><span class="jsdoc-syntax">= [
207              </span><span class="jsdoc-string">'&lt;table cellspacing=&quot;0&quot;&gt;'</span><span class="jsdoc-syntax">,
208                 </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">,
209                 </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">];
210         </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">;
211         </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">++){
212             </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">;
213             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">d </span><span class="jsdoc-syntax">&gt; 6){
214                 </span><span class="jsdoc-var">d </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">d</span><span class="jsdoc-syntax">-7;
215             }
216             </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">);
217         }
218         </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">;
219         </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">++) {
220             </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){
221                 </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">;
222             }
223             </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">;
224         }
225         </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">+
226             </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">;
227
228         </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">);
229         </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">;
230         </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">);
231
232         </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">);
233
234         </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">);
235         </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">);
236
237         </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">), {
238             </span><span class="jsdoc-var">handler</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.showPrevMonth</span><span class="jsdoc-syntax">,
239             </span><span class="jsdoc-var">scope</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">,
240             </span><span class="jsdoc-var">preventDefault</span><span class="jsdoc-syntax">:</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
241             </span><span class="jsdoc-var">stopDefault</span><span class="jsdoc-syntax">:</span><span class="jsdoc-keyword">true
242         </span><span class="jsdoc-syntax">});
243
244         </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">), {
245             </span><span class="jsdoc-var">handler</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.showNextMonth</span><span class="jsdoc-syntax">,
246             </span><span class="jsdoc-var">scope</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">,
247             </span><span class="jsdoc-var">preventDefault</span><span class="jsdoc-syntax">:</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
248             </span><span class="jsdoc-var">stopDefault</span><span class="jsdoc-syntax">:</span><span class="jsdoc-keyword">true
249         </span><span class="jsdoc-syntax">});
250
251         </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">);
252
253         </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">);
254         </span><span class="jsdoc-var">this.monthPicker.enableDisplayMode</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'block'</span><span class="jsdoc-syntax">);
255         
256         </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">, {
257             </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">){
258                 </span><span class="jsdoc-var">e.ctrlKey </span><span class="jsdoc-syntax">?
259                     </span><span class="jsdoc-var">this.showPrevMonth</span><span class="jsdoc-syntax">() :
260                     </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));
261             },
262
263             </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">){
264                 </span><span class="jsdoc-var">e.ctrlKey </span><span class="jsdoc-syntax">?
265                     </span><span class="jsdoc-var">this.showNextMonth</span><span class="jsdoc-syntax">() :
266                     </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));
267             },
268
269             </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">){
270                 </span><span class="jsdoc-var">e.ctrlKey </span><span class="jsdoc-syntax">?
271                     </span><span class="jsdoc-var">this.showNextYear</span><span class="jsdoc-syntax">() :
272                     </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));
273             },
274
275             </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">){
276                 </span><span class="jsdoc-var">e.ctrlKey </span><span class="jsdoc-syntax">?
277                     </span><span class="jsdoc-var">this.showPrevYear</span><span class="jsdoc-syntax">() :
278                     </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));
279             },
280
281             </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">){
282                 </span><span class="jsdoc-var">this.showNextMonth</span><span class="jsdoc-syntax">();
283             },
284
285             </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">){
286                 </span><span class="jsdoc-var">this.showPrevMonth</span><span class="jsdoc-syntax">();
287             },
288
289             </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">){
290                 </span><span class="jsdoc-var">e.stopPropagation</span><span class="jsdoc-syntax">();
291                 </span><span class="jsdoc-keyword">return true</span><span class="jsdoc-syntax">;
292             },
293
294             </span><span class="jsdoc-var">scope </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this
295         </span><span class="jsdoc-syntax">});
296
297         </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">});
298
299         </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">);
300
301         </span><span class="jsdoc-var">this.el.unselectable</span><span class="jsdoc-syntax">();
302         
303         </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">);
304         </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">);
305
306         </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">), {
307             </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">,
308             </span><span class="jsdoc-var">tooltip</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.monthYearText
309         </span><span class="jsdoc-syntax">});
310
311         </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">);
312         </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">);
313
314
315         </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">);
316         
317         </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">));
318         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.showClear</span><span class="jsdoc-syntax">) {
319             </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">());
320         }
321         </span><span class="jsdoc-var">baseTb.add</span><span class="jsdoc-syntax">({
322             </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">),
323             </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">),
324             </span><span class="jsdoc-var">handler</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.selectToday</span><span class="jsdoc-syntax">,
325             </span><span class="jsdoc-var">scope</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this
326         </span><span class="jsdoc-syntax">});
327         
328         </span><span class="jsdoc-comment">//var todayBtn = new Roo.Button(this.el.child(&quot;td.x-date-bottom&quot;, true), {
329             
330         //});
331         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.showClear</span><span class="jsdoc-syntax">) {
332             
333             </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">());
334             </span><span class="jsdoc-var">baseTb.add</span><span class="jsdoc-syntax">({
335                 </span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'&amp;#160;'</span><span class="jsdoc-syntax">,
336                 </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">,
337                 </span><span class="jsdoc-var">handler</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() {
338                     </span><span class="jsdoc-comment">//this.value = '';
339                     </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">);
340                 },
341                 </span><span class="jsdoc-var">scope</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this
342             </span><span class="jsdoc-syntax">});
343         }
344         
345         
346         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.isIE</span><span class="jsdoc-syntax">){
347             </span><span class="jsdoc-var">this.el.repaint</span><span class="jsdoc-syntax">();
348         }
349         </span><span class="jsdoc-var">this.update</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.value</span><span class="jsdoc-syntax">);
350     },
351
352     </span><span class="jsdoc-var">createMonthPicker </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
353         </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">){
354             </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">];
355             </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">++){
356                 </span><span class="jsdoc-var">buf.push</span><span class="jsdoc-syntax">(
357                     </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">,
358                     </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">,
359                     </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">== 0 ?
360                     </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">:
361                     </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;'
362                 </span><span class="jsdoc-syntax">);
363             }
364             </span><span class="jsdoc-var">buf.push</span><span class="jsdoc-syntax">(
365                 </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">,
366                     </span><span class="jsdoc-var">this.okText</span><span class="jsdoc-syntax">,
367                     </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">,
368                     </span><span class="jsdoc-var">this.cancelText</span><span class="jsdoc-syntax">,
369                     </span><span class="jsdoc-string">'&lt;/button&gt;&lt;/td&gt;&lt;/tr&gt;'</span><span class="jsdoc-syntax">,
370                 </span><span class="jsdoc-string">'&lt;/table&gt;'
371             </span><span class="jsdoc-syntax">);
372             </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">));
373             </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">);
374             </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">);
375
376             </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">);
377             </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">);
378
379             </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">){
380                 </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">+= 1;
381                 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">((</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">%2) == 0){
382                     </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);
383                 }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
384                     </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);
385                 }
386             });
387         }
388     },
389
390     </span><span class="jsdoc-var">showMonthPicker </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
391         </span><span class="jsdoc-var">this.createMonthPicker</span><span class="jsdoc-syntax">();
392         </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">();
393         </span><span class="jsdoc-var">this.monthPicker.setSize</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">size</span><span class="jsdoc-syntax">);
394         </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">);
395
396         </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">();
397         </span><span class="jsdoc-var">this.updateMPMonth</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.mpSelMonth</span><span class="jsdoc-syntax">);
398         </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">();
399         </span><span class="jsdoc-var">this.updateMPYear</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.mpSelYear</span><span class="jsdoc-syntax">);
400
401         </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});
402     },
403
404     </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">){
405         </span><span class="jsdoc-var">this.mpyear </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">y</span><span class="jsdoc-syntax">;
406         </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">;
407         </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">++){
408             </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">;
409             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">((</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">%2) == 0){
410                 </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);
411                 </span><span class="jsdoc-var">td.firstChild.innerHTML </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">y2</span><span class="jsdoc-syntax">;
412                 </span><span class="jsdoc-var">td.xyear </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">y2</span><span class="jsdoc-syntax">;
413             }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
414                 </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));
415                 </span><span class="jsdoc-var">td.firstChild.innerHTML </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">y2</span><span class="jsdoc-syntax">;
416                 </span><span class="jsdoc-var">td.xyear </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">y2</span><span class="jsdoc-syntax">;
417             }
418             </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">);
419         }
420     },
421
422     </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">){
423         </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">){
424             </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">);
425         });
426     },
427
428     </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">){
429         
430     },
431
432     </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">){
433         </span><span class="jsdoc-var">e.stopEvent</span><span class="jsdoc-syntax">();
434         </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">;
435         </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">)){
436             </span><span class="jsdoc-var">this.hideMonthPicker</span><span class="jsdoc-syntax">();
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">'button.x-date-mp-ok'</span><span class="jsdoc-syntax">)){
439             </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">()));
440             </span><span class="jsdoc-var">this.hideMonthPicker</span><span class="jsdoc-syntax">();
441         }
442         </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)){
443             </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">);
444             </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">);
445             </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">;
446         }
447         </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)){
448             </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">);
449             </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">);
450             </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">;
451         }
452         </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">)){
453             </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);
454         }
455         </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">)){
456             </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);
457         }
458     },
459
460     </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">){
461         </span><span class="jsdoc-var">e.stopEvent</span><span class="jsdoc-syntax">();
462         </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">;
463         </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)){
464             </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">()));
465             </span><span class="jsdoc-var">this.hideMonthPicker</span><span class="jsdoc-syntax">();
466         }
467         </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)){
468             </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">()));
469             </span><span class="jsdoc-var">this.hideMonthPicker</span><span class="jsdoc-syntax">();
470         }
471     },
472
473     </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">){
474         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.monthPicker</span><span class="jsdoc-syntax">){
475             </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">){
476                 </span><span class="jsdoc-var">this.monthPicker.hide</span><span class="jsdoc-syntax">();
477             }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
478                 </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});
479             }
480         }
481     },
482
483     </span><span class="jsdoc-comment">// private
484     </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">){
485         </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));
486     },
487
488     </span><span class="jsdoc-comment">// private
489     </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">){
490         </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));
491     },
492
493     </span><span class="jsdoc-comment">// private
494     </span><span class="jsdoc-var">showPrevYear </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
495         </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));
496     },
497
498     </span><span class="jsdoc-comment">// private
499     </span><span class="jsdoc-var">showNextYear </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
500         </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));
501     },
502
503     </span><span class="jsdoc-comment">// private
504     </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">){
505         </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">();
506         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">delta </span><span class="jsdoc-syntax">&gt; 0){
507             </span><span class="jsdoc-var">this.showPrevMonth</span><span class="jsdoc-syntax">();
508             </span><span class="jsdoc-var">e.stopEvent</span><span class="jsdoc-syntax">();
509         } </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){
510             </span><span class="jsdoc-var">this.showNextMonth</span><span class="jsdoc-syntax">();
511             </span><span class="jsdoc-var">e.stopEvent</span><span class="jsdoc-syntax">();
512         }
513     },
514
515     </span><span class="jsdoc-comment">// private
516     </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">){
517         </span><span class="jsdoc-var">e.stopEvent</span><span class="jsdoc-syntax">();
518         </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">)){
519             </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">));
520             </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">);
521         }
522     },
523
524     </span><span class="jsdoc-comment">// private
525     </span><span class="jsdoc-var">selectToday </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
526         </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">());
527         </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">);
528     },
529
530     </span><span class="jsdoc-comment">// private
531     </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">)
532     {
533         </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">;
534         </span><span class="jsdoc-var">this.activeDate </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">date</span><span class="jsdoc-syntax">;
535         </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">){
536             </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">();
537             </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">()){
538                 </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">);
539                 </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">){
540                    </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">){
541                        </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">);
542                        </span><span class="jsdoc-var">setTimeout</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
543                             </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">){}
544                        }, 50);
545                        </span><span class="jsdoc-keyword">return false</span><span class="jsdoc-syntax">;
546                    }
547                 });
548                 </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
549             }
550         }
551         
552         </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">();
553         </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">();
554         </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">;
555
556         </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">){
557             </span><span class="jsdoc-var">startingPos </span><span class="jsdoc-syntax">+= 7;
558         }
559
560         </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);
561         </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">;
562
563         </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">;
564         </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">;
565         </span><span class="jsdoc-var">days </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-var">startingPos</span><span class="jsdoc-syntax">;
566
567         </span><span class="jsdoc-comment">// convert everything to numbers so it's fast
568         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">day </span><span class="jsdoc-syntax">= 86400000;
569         </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">();
570         </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">();
571         </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">();
572         </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">;
573         </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">;
574         </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">;
575         </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">;
576         </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">;
577         </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">;
578         </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">;
579
580         </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">){
581             </span><span class="jsdoc-var">cell.title </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">&quot;&quot;</span><span class="jsdoc-syntax">;
582             </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">();
583             </span><span class="jsdoc-var">cell.firstChild.dateValue </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">t</span><span class="jsdoc-syntax">;
584             </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">){
585                 </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">;
586                 </span><span class="jsdoc-var">cell.title </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cal.todayText</span><span class="jsdoc-syntax">;
587             }
588             </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">){
589                 </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">;
590                 </span><span class="jsdoc-var">setTimeout</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
591                     </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">){}
592                 }, 50);
593             }
594             </span><span class="jsdoc-comment">// disabling
595             </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">) {
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                 </span><span class="jsdoc-var">cell.title </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cal.minText</span><span class="jsdoc-syntax">;
598                 </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
599             }
600             </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">) {
601                 </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">;
602                 </span><span class="jsdoc-var">cell.title </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cal.maxText</span><span class="jsdoc-syntax">;
603                 </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
604             }
605             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ddays</span><span class="jsdoc-syntax">){
606                 </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){
607                     </span><span class="jsdoc-var">cell.title </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">ddaysText</span><span class="jsdoc-syntax">;
608                     </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">;
609                 }
610             }
611             </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">){
612                 </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">);
613                 </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">)){
614                     </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">);
615                     </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">;
616                 }
617             }
618         };
619
620         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= 0;
621         </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">++) {
622             </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">);
623             </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);
624             </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">;
625             </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">]);
626         }
627         </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">++){
628             </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;
629             </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">);
630             </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);
631             </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">;
632             </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">]);
633         }
634         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">extraDays </span><span class="jsdoc-syntax">= 0;
635         </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">++) {
636              </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">);
637              </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);
638              </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">;
639              </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">]);
640         }
641
642         </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">());
643         </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'monthchange'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">date</span><span class="jsdoc-syntax">);
644         
645         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.internalRender</span><span class="jsdoc-syntax">){
646             </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">;
647             </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">;
648             </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">));
649             </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">);
650             </span><span class="jsdoc-var">this.internalRender </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
651             </span><span class="jsdoc-comment">// opera does not respect the auto grow header center column
652             // then, after it gets a width opera refuses to recalculate
653             // without a second pass
654             </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">){
655                 </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">;
656                 </span><span class="jsdoc-var">this.secondPass </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
657                 </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">]);
658             }
659         }
660         
661         
662     }
663 });</span></code></body></html>