sync
[web.Reddit] / docs / symbols / src / Roo_bootstrap_DateField.js.html
1 <html><head><title>../roojs1/Roo/bootstrap/DateField.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  * - LGPL
3  *
4  * DateField
5  * 
6  */
7
8 /**
9  * @class Roo.bootstrap.DateField
10  * @extends Roo.bootstrap.Input
11  * Bootstrap DateField class
12  * @cfg {Number} weekStart default 0
13  * @cfg {Number} weekStart default 0
14  * @cfg {Number} viewMode default empty, (months|years)
15  * @cfg {Number} minViewMode default empty, (months|years)
16  * @cfg {Number} startDate default -Infinity
17  * @cfg {Number} endDate default Infinity
18  * @cfg {Boolean} todayHighlight default false
19  * @cfg {Boolean} todayBtn default false
20  * @cfg {Boolean} calendarWeeks default false
21  * @cfg {Object} daysOfWeekDisabled default empty
22  * 
23  * @cfg {Boolean} keyboardNavigation default true
24  * @cfg {String} language default en
25  * 
26  * @constructor
27  * Create a new DateField
28  * @param {Object} config The config object
29  */
30
31 </span><span class="jsdoc-var">Roo.bootstrap.DateField </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">){
32     </span><span class="jsdoc-var">Roo.bootstrap.DateField.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">);
33      </span><span class="jsdoc-var">this.addEvents</span><span class="jsdoc-syntax">({
34             </span><span class="jsdoc-comment">/**
35              * @event show
36              * Fires when this field show.
37              * @param {Roo.bootstrap.DateField} this
38              * @param {Mixed} date The date value
39              */
40             </span><span class="jsdoc-var">show </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
41             </span><span class="jsdoc-comment">/**
42              * @event show
43              * Fires when this field hide.
44              * @param {Roo.bootstrap.DateField} this
45              * @param {Mixed} date The date value
46              */
47             </span><span class="jsdoc-var">hide </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
48             </span><span class="jsdoc-comment">/**
49              * @event select
50              * Fires when select a date.
51              * @param {Roo.bootstrap.DateField} this
52              * @param {Mixed} date The date value
53              */
54             </span><span class="jsdoc-var">select </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true
55         </span><span class="jsdoc-syntax">});
56 };
57
58 </span><span class="jsdoc-var">Roo.extend</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.bootstrap.DateField</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">Roo.bootstrap.Input</span><span class="jsdoc-syntax">,  {
59     
60     </span><span class="jsdoc-comment">/**
61      * @cfg {String} format
62      * The default date format string which can be overriden for localization support.  The format must be
63      * valid according to {@link Date#parseDate} (defaults to 'm/d/y').
64      */
65     </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">,
66     </span><span class="jsdoc-comment">/**
67      * @cfg {String} altFormats
68      * Multiple date formats separated by &quot;|&quot; to try when parsing a user input value and it doesn't match the defined
69      * format (defaults to 'm/d/Y|m-d-y|m-d-Y|m/d|m-d|d').
70      */
71     </span><span class="jsdoc-var">altFormats </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;m/d/Y|m-d-y|m-d-Y|m/d|m-d|md|mdy|mdY|d&quot;</span><span class="jsdoc-syntax">,
72     
73     </span><span class="jsdoc-var">weekStart </span><span class="jsdoc-syntax">: 0,
74     
75     </span><span class="jsdoc-var">viewMode </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">,
76     
77     </span><span class="jsdoc-var">minViewMode </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">,
78     
79     </span><span class="jsdoc-var">todayHighlight </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
80     
81     </span><span class="jsdoc-var">todayBtn</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
82     
83     </span><span class="jsdoc-var">language</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'en'</span><span class="jsdoc-syntax">,
84     
85     </span><span class="jsdoc-var">keyboardNavigation</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
86     
87     </span><span class="jsdoc-var">calendarWeeks</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
88     
89     </span><span class="jsdoc-var">startDate</span><span class="jsdoc-syntax">: -</span><span class="jsdoc-var">Infinity</span><span class="jsdoc-syntax">,
90     
91     </span><span class="jsdoc-var">endDate</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">Infinity</span><span class="jsdoc-syntax">,
92     
93     </span><span class="jsdoc-var">daysOfWeekDisabled</span><span class="jsdoc-syntax">: [],
94     
95     </span><span class="jsdoc-var">_events</span><span class="jsdoc-syntax">: [],
96     
97     </span><span class="jsdoc-var">UTCDate</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
98     {
99         </span><span class="jsdoc-keyword">return new </span><span class="jsdoc-var">Date</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Date.UTC.apply</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Date</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">arguments</span><span class="jsdoc-syntax">));
100     },
101     
102     </span><span class="jsdoc-var">UTCToday</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
103     {
104         </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">();
105         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.UTCDate</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">today.getUTCFullYear</span><span class="jsdoc-syntax">(), </span><span class="jsdoc-var">today.getUTCMonth</span><span class="jsdoc-syntax">(), </span><span class="jsdoc-var">today.getUTCDate</span><span class="jsdoc-syntax">());
106     },
107     
108     </span><span class="jsdoc-var">getDate</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() {
109             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">d </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.getUTCDate</span><span class="jsdoc-syntax">();
110             </span><span class="jsdoc-keyword">return new </span><span class="jsdoc-var">Date</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">d.getTime</span><span class="jsdoc-syntax">() + (</span><span class="jsdoc-var">d.getTimezoneOffset</span><span class="jsdoc-syntax">()*60000));
111     },
112     
113     </span><span class="jsdoc-var">getUTCDate</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() {
114             </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.date</span><span class="jsdoc-syntax">;
115     },
116     
117     </span><span class="jsdoc-var">setDate</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">d</span><span class="jsdoc-syntax">) {
118             </span><span class="jsdoc-var">this.setUTCDate</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">d.getTime</span><span class="jsdoc-syntax">() - (</span><span class="jsdoc-var">d.getTimezoneOffset</span><span class="jsdoc-syntax">()*60000)));
119     },
120     
121     </span><span class="jsdoc-var">setUTCDate</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">d</span><span class="jsdoc-syntax">) {
122             </span><span class="jsdoc-var">this.date </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">d</span><span class="jsdoc-syntax">;
123             </span><span class="jsdoc-var">this.setValue</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.formatDate</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.date</span><span class="jsdoc-syntax">));
124     },
125         
126     </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">ct</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">position</span><span class="jsdoc-syntax">)
127     {
128         
129         </span><span class="jsdoc-var">Roo.bootstrap.DateField.superclass.onRender.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">ct</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">position</span><span class="jsdoc-syntax">);
130         
131         </span><span class="jsdoc-var">this.language </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.language </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-string">'en'</span><span class="jsdoc-syntax">;
132         </span><span class="jsdoc-var">this.language </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.language </span><span class="jsdoc-keyword">in </span><span class="jsdoc-var">Roo.bootstrap.DateField.dates </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">this.language </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.language.split</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'-'</span><span class="jsdoc-syntax">)[0];
133         </span><span class="jsdoc-var">this.language </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.language </span><span class="jsdoc-keyword">in </span><span class="jsdoc-var">Roo.bootstrap.DateField.dates </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">this.language </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;en&quot;</span><span class="jsdoc-syntax">;
134         
135         </span><span class="jsdoc-var">this.isRTL </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.bootstrap.DateField.dates</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">this.language</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.rtl </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
136         </span><span class="jsdoc-var">this.format </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.format </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-string">'m/d/y'</span><span class="jsdoc-syntax">;
137         </span><span class="jsdoc-var">this.isInline </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
138         </span><span class="jsdoc-var">this.isInput </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
139         </span><span class="jsdoc-var">this.component </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.el.select</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'.add-on'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.first</span><span class="jsdoc-syntax">() || </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
140         </span><span class="jsdoc-var">this.component </span><span class="jsdoc-syntax">= (</span><span class="jsdoc-var">this.component </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">this.component.length </span><span class="jsdoc-syntax">=== 0) ? </span><span class="jsdoc-keyword">false </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.component</span><span class="jsdoc-syntax">;
141         </span><span class="jsdoc-var">this.hasInput </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.component </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">this.inputEL</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.length</span><span class="jsdoc-syntax">;
142         
143         </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">this.minViewMode </span><span class="jsdoc-syntax">=== </span><span class="jsdoc-string">'string'</span><span class="jsdoc-syntax">)) {
144             </span><span class="jsdoc-keyword">switch </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.minViewMode</span><span class="jsdoc-syntax">) {
145                 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">'months'</span><span class="jsdoc-syntax">:
146                     </span><span class="jsdoc-var">this.minViewMode </span><span class="jsdoc-syntax">= 1;
147                     </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
148                 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">'years'</span><span class="jsdoc-syntax">:
149                     </span><span class="jsdoc-var">this.minViewMode </span><span class="jsdoc-syntax">= 2;
150                     </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
151                 </span><span class="jsdoc-keyword">default</span><span class="jsdoc-syntax">:
152                     </span><span class="jsdoc-var">this.minViewMode </span><span class="jsdoc-syntax">= 0;
153                     </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
154             }
155         }
156         
157         </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">this.viewMode </span><span class="jsdoc-syntax">=== </span><span class="jsdoc-string">'string'</span><span class="jsdoc-syntax">)) {
158             </span><span class="jsdoc-keyword">switch </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.viewMode</span><span class="jsdoc-syntax">) {
159                 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">'months'</span><span class="jsdoc-syntax">:
160                     </span><span class="jsdoc-var">this.viewMode </span><span class="jsdoc-syntax">= 1;
161                     </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
162                 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">'years'</span><span class="jsdoc-syntax">:
163                     </span><span class="jsdoc-var">this.viewMode </span><span class="jsdoc-syntax">= 2;
164                     </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
165                 </span><span class="jsdoc-keyword">default</span><span class="jsdoc-syntax">:
166                     </span><span class="jsdoc-var">this.viewMode </span><span class="jsdoc-syntax">= 0;
167                     </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
168             }
169         }
170                 
171         </span><span class="jsdoc-var">this.el.select</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'&gt;.input-group'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.first</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.createChild</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.bootstrap.DateField.template</span><span class="jsdoc-syntax">);
172         
173         </span><span class="jsdoc-var">this.picker</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.setVisibilityMode</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.Element.DISPLAY</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.originalDisplay </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">'block'</span><span class="jsdoc-syntax">;
174         
175         </span><span class="jsdoc-var">this.picker</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'mousedown'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.onMousedown</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
176         </span><span class="jsdoc-var">this.picker</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'click'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.onClick</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
177         
178         </span><span class="jsdoc-var">this.picker</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.addClass</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'datepicker-dropdown'</span><span class="jsdoc-syntax">);
179         
180         </span><span class="jsdoc-var">this.startViewMode </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.viewMode</span><span class="jsdoc-syntax">;
181         
182         
183         </span><span class="jsdoc-var">Roo.each</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.picker</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.select</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'tfoot th.today'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.elements</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">v</span><span class="jsdoc-syntax">){
184             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.calendarWeeks</span><span class="jsdoc-syntax">){
185                 </span><span class="jsdoc-var">v.remove</span><span class="jsdoc-syntax">();
186                 </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
187             };
188             
189             </span><span class="jsdoc-var">v.dom.innerHTML </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.bootstrap.DateField.dates</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">this.language</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.today
190             v.attr</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'colspan'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">val</span><span class="jsdoc-syntax">){
191                 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">parseInt</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">val</span><span class="jsdoc-syntax">) + 1;
192             });
193         })
194                         
195         
196         </span><span class="jsdoc-var">this.weekEnd </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.weekStart </span><span class="jsdoc-syntax">=== 0 ? 6 : </span><span class="jsdoc-var">this.weekStart </span><span class="jsdoc-syntax">- 1;
197         
198         </span><span class="jsdoc-var">this.setStartDate</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.startDate</span><span class="jsdoc-syntax">);
199         </span><span class="jsdoc-var">this.setEndDate</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.endDate</span><span class="jsdoc-syntax">);
200         
201         </span><span class="jsdoc-var">this.setDaysOfWeekDisabled</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.daysOfWeekDisabled</span><span class="jsdoc-syntax">);
202         
203         </span><span class="jsdoc-var">this.fillDow</span><span class="jsdoc-syntax">();
204         </span><span class="jsdoc-var">this.fillMonths</span><span class="jsdoc-syntax">();
205         </span><span class="jsdoc-var">this.update</span><span class="jsdoc-syntax">();
206         </span><span class="jsdoc-var">this.showMode</span><span class="jsdoc-syntax">();
207         
208         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.isInline</span><span class="jsdoc-syntax">) {
209             </span><span class="jsdoc-var">this.show</span><span class="jsdoc-syntax">();
210         }
211     },
212     
213     </span><span class="jsdoc-var">picker </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
214     {
215         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.el.select</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'.datepicker'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.first</span><span class="jsdoc-syntax">();
216     },
217     
218     </span><span class="jsdoc-var">fillDow</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
219     {
220         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">dowCnt </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.weekStart</span><span class="jsdoc-syntax">;
221         
222         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">dow </span><span class="jsdoc-syntax">= {
223             </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'tr'</span><span class="jsdoc-syntax">,
224             </span><span class="jsdoc-var">cn</span><span class="jsdoc-syntax">: [
225                 
226             ]
227         };
228         
229         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.calendarWeeks</span><span class="jsdoc-syntax">){
230             </span><span class="jsdoc-var">dow.cn.push</span><span class="jsdoc-syntax">({
231                 </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'th'</span><span class="jsdoc-syntax">,
232                 </span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'cw'</span><span class="jsdoc-syntax">,
233                 </span><span class="jsdoc-var">html</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'&amp;nbsp;'
234             </span><span class="jsdoc-syntax">})
235         }
236         
237         </span><span class="jsdoc-keyword">while </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">dowCnt </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">this.weekStart </span><span class="jsdoc-syntax">+ 7) {
238             </span><span class="jsdoc-var">dow.cn.push</span><span class="jsdoc-syntax">({
239                 </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'th'</span><span class="jsdoc-syntax">,
240                 </span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'dow'</span><span class="jsdoc-syntax">,
241                 </span><span class="jsdoc-var">html</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">Roo.bootstrap.DateField.dates</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">this.language</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.daysMin</span><span class="jsdoc-syntax">[(</span><span class="jsdoc-var">dowCnt</span><span class="jsdoc-syntax">++)%7]
242             });
243         }
244         
245         </span><span class="jsdoc-var">this.picker</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.select</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'&gt;.datepicker-days thead'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.first</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.createChild</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">dow</span><span class="jsdoc-syntax">);
246     },
247     
248     </span><span class="jsdoc-var">fillMonths</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
249     {    
250         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= 0
251         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">months </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.picker</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.select</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'&gt;.datepicker-months td'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.first</span><span class="jsdoc-syntax">();
252         
253         </span><span class="jsdoc-var">months.dom.innerHTML </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">;
254         
255         </span><span class="jsdoc-keyword">while </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">&lt; 12) {
256             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">month </span><span class="jsdoc-syntax">= {
257                 </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'span'</span><span class="jsdoc-syntax">,
258                 </span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'month'</span><span class="jsdoc-syntax">,
259                 </span><span class="jsdoc-var">html</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">Roo.bootstrap.DateField.dates</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">this.language</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.monthsShort</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++]
260             }
261             
262             </span><span class="jsdoc-var">months.createChild</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">month</span><span class="jsdoc-syntax">);
263         }
264         
265     },
266     
267     </span><span class="jsdoc-var">update</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
268         
269         </span><span class="jsdoc-var">this.date </span><span class="jsdoc-syntax">= (</span><span class="jsdoc-keyword">typeof</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.date</span><span class="jsdoc-syntax">) === </span><span class="jsdoc-string">'undefined'</span><span class="jsdoc-syntax">) ? </span><span class="jsdoc-var">this.UTCToday</span><span class="jsdoc-syntax">() : (</span><span class="jsdoc-keyword">typeof</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.date</span><span class="jsdoc-syntax">) === </span><span class="jsdoc-string">'string'</span><span class="jsdoc-syntax">) ? </span><span class="jsdoc-var">this.parseDate</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.date</span><span class="jsdoc-syntax">) : </span><span class="jsdoc-var">this.date</span><span class="jsdoc-syntax">;
270         
271         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.date </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">this.startDate</span><span class="jsdoc-syntax">) {
272             </span><span class="jsdoc-var">this.viewDate </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.startDate</span><span class="jsdoc-syntax">);
273         } </span><span class="jsdoc-keyword">else if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.date </span><span class="jsdoc-syntax">&gt; </span><span class="jsdoc-var">this.endDate</span><span class="jsdoc-syntax">) {
274             </span><span class="jsdoc-var">this.viewDate </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.endDate</span><span class="jsdoc-syntax">);
275         } </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
276             </span><span class="jsdoc-var">this.viewDate </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.date</span><span class="jsdoc-syntax">);
277         }
278         
279         </span><span class="jsdoc-var">this.fill</span><span class="jsdoc-syntax">();
280     },
281     
282     </span><span class="jsdoc-var">fill</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() {
283         </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">this.viewDate</span><span class="jsdoc-syntax">),
284                 </span><span class="jsdoc-var">year </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">d.getUTCFullYear</span><span class="jsdoc-syntax">(),
285                 </span><span class="jsdoc-var">month </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">d.getUTCMonth</span><span class="jsdoc-syntax">(),
286                 </span><span class="jsdoc-var">startYear </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.startDate </span><span class="jsdoc-syntax">!== -</span><span class="jsdoc-var">Infinity </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">this.startDate.getUTCFullYear</span><span class="jsdoc-syntax">() : -</span><span class="jsdoc-var">Infinity</span><span class="jsdoc-syntax">,
287                 </span><span class="jsdoc-var">startMonth </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.startDate </span><span class="jsdoc-syntax">!== -</span><span class="jsdoc-var">Infinity </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">this.startDate.getUTCMonth</span><span class="jsdoc-syntax">() : -</span><span class="jsdoc-var">Infinity</span><span class="jsdoc-syntax">,
288                 </span><span class="jsdoc-var">endYear </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.endDate </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-var">Infinity </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">this.endDate.getUTCFullYear</span><span class="jsdoc-syntax">() : </span><span class="jsdoc-var">Infinity</span><span class="jsdoc-syntax">,
289                 </span><span class="jsdoc-var">endMonth </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.endDate </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-var">Infinity </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">this.endDate.getUTCMonth</span><span class="jsdoc-syntax">() : </span><span class="jsdoc-var">Infinity</span><span class="jsdoc-syntax">,
290                 </span><span class="jsdoc-var">currentDate </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.date </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">this.date.valueOf</span><span class="jsdoc-syntax">(),
291                 </span><span class="jsdoc-var">today </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.UTCToday</span><span class="jsdoc-syntax">();
292         
293         </span><span class="jsdoc-var">this.picker</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.select</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'&gt;.datepicker-days thead th.switch'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.first</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.dom.innerHTML </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.bootstrap.DateField.dates</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">this.language</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.months</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">month</span><span class="jsdoc-syntax">]+</span><span class="jsdoc-string">' '</span><span class="jsdoc-syntax">+</span><span class="jsdoc-var">year</span><span class="jsdoc-syntax">;
294         
295 </span><span class="jsdoc-comment">//        this.picker().select('&gt;tfoot th.today', true).first().dom.innerHTML = Roo.bootstrap.DateField.dates[this.language].today;
296         
297 //        this.picker.select('&gt;tfoot th.today').
298 //                                              .text(dates[this.language].today)
299 //                                              .toggle(this.todayBtn !== false);
300     
301         </span><span class="jsdoc-var">this.updateNavArrows</span><span class="jsdoc-syntax">();
302         </span><span class="jsdoc-var">this.fillMonths</span><span class="jsdoc-syntax">();
303                                                 
304         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">prevMonth </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.UTCDate</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">year</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">month</span><span class="jsdoc-syntax">-1, 28,0,0,0,0),
305         
306         </span><span class="jsdoc-var">day </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">prevMonth.getDaysInMonth</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">prevMonth.getUTCFullYear</span><span class="jsdoc-syntax">(), </span><span class="jsdoc-var">prevMonth.getUTCMonth</span><span class="jsdoc-syntax">());
307          
308         </span><span class="jsdoc-var">prevMonth.setUTCDate</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">day</span><span class="jsdoc-syntax">);
309         
310         </span><span class="jsdoc-var">prevMonth.setUTCDate</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">day </span><span class="jsdoc-syntax">- (</span><span class="jsdoc-var">prevMonth.getUTCDay</span><span class="jsdoc-syntax">() - </span><span class="jsdoc-var">this.weekStart </span><span class="jsdoc-syntax">+ 7)%7);
311         
312         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">nextMonth </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">prevMonth</span><span class="jsdoc-syntax">);
313         
314         </span><span class="jsdoc-var">nextMonth.setUTCDate</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">nextMonth.getUTCDate</span><span class="jsdoc-syntax">() + 42);
315         
316         </span><span class="jsdoc-var">nextMonth </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">nextMonth.valueOf</span><span class="jsdoc-syntax">();
317         
318         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">fillMonths </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
319         
320         </span><span class="jsdoc-var">this.picker</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.select</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'&gt;.datepicker-days tbody'</span><span class="jsdoc-syntax">,</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.first</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.dom.innerHTML </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">;
321         
322         </span><span class="jsdoc-keyword">while</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">prevMonth.valueOf</span><span class="jsdoc-syntax">() &lt; </span><span class="jsdoc-var">nextMonth</span><span class="jsdoc-syntax">) {
323             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">clsName </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">;
324             
325             </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">prevMonth.getUTCDay</span><span class="jsdoc-syntax">() === </span><span class="jsdoc-var">this.weekStart</span><span class="jsdoc-syntax">) {
326                 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">fillMonths</span><span class="jsdoc-syntax">){
327                     </span><span class="jsdoc-var">this.picker</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.select</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'&gt;.datepicker-days tbody'</span><span class="jsdoc-syntax">,</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.first</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.createChild</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">fillMonths</span><span class="jsdoc-syntax">);
328                 }
329                     
330                 </span><span class="jsdoc-var">fillMonths </span><span class="jsdoc-syntax">= {
331                     </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'tr'</span><span class="jsdoc-syntax">,
332                     </span><span class="jsdoc-var">cn</span><span class="jsdoc-syntax">: []
333                 };
334                 
335                 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.calendarWeeks</span><span class="jsdoc-syntax">){
336                     </span><span class="jsdoc-comment">// ISO 8601: First week contains first thursday.
337                     // ISO also states week starts on Monday, but we can be more abstract here.
338                     </span><span class="jsdoc-keyword">var
339                     </span><span class="jsdoc-comment">// Start of current week: based on weekstart/current date
340                     </span><span class="jsdoc-var">ws </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">prevMonth </span><span class="jsdoc-syntax">+ (</span><span class="jsdoc-var">this.weekStart </span><span class="jsdoc-syntax">- </span><span class="jsdoc-var">prevMonth.getUTCDay</span><span class="jsdoc-syntax">() - 7) % 7 * 864</span><span class="jsdoc-var">e5</span><span class="jsdoc-syntax">),
341                     </span><span class="jsdoc-comment">// Thursday of this week
342                     </span><span class="jsdoc-var">th </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">ws </span><span class="jsdoc-syntax">+ (7 + 4 - </span><span class="jsdoc-var">ws.getUTCDay</span><span class="jsdoc-syntax">()) % 7 * 864</span><span class="jsdoc-var">e5</span><span class="jsdoc-syntax">),
343                     </span><span class="jsdoc-comment">// First Thursday of year, year from thursday
344                     </span><span class="jsdoc-var">yth </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">yth </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.UTCDate</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">th.getUTCFullYear</span><span class="jsdoc-syntax">(), 0, 1)) + (7 + 4 - </span><span class="jsdoc-var">yth.getUTCDay</span><span class="jsdoc-syntax">())%7*864</span><span class="jsdoc-var">e5</span><span class="jsdoc-syntax">),
345                     </span><span class="jsdoc-comment">// Calendar week: ms between thursdays, div ms per day, div 7 days
346                     </span><span class="jsdoc-var">calWeek </span><span class="jsdoc-syntax">=  (</span><span class="jsdoc-var">th </span><span class="jsdoc-syntax">- </span><span class="jsdoc-var">yth</span><span class="jsdoc-syntax">) / 864</span><span class="jsdoc-var">e5 </span><span class="jsdoc-syntax">/ 7 + 1;
347                     
348                     </span><span class="jsdoc-var">fillMonths.cn.push</span><span class="jsdoc-syntax">({
349                         </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'td'</span><span class="jsdoc-syntax">,
350                         </span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'cw'</span><span class="jsdoc-syntax">,
351                         </span><span class="jsdoc-var">html</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">calWeek
352                     </span><span class="jsdoc-syntax">});
353                 }
354             }
355             
356             </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">prevMonth.getUTCFullYear</span><span class="jsdoc-syntax">() &lt; </span><span class="jsdoc-var">year </span><span class="jsdoc-syntax">|| (</span><span class="jsdoc-var">prevMonth.getUTCFullYear</span><span class="jsdoc-syntax">() == </span><span class="jsdoc-var">year </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">prevMonth.getUTCMonth</span><span class="jsdoc-syntax">() &lt; </span><span class="jsdoc-var">month</span><span class="jsdoc-syntax">)) {
357                 </span><span class="jsdoc-var">clsName </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-string">' old'</span><span class="jsdoc-syntax">;
358             } </span><span class="jsdoc-keyword">else if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">prevMonth.getUTCFullYear</span><span class="jsdoc-syntax">() &gt; </span><span class="jsdoc-var">year </span><span class="jsdoc-syntax">|| (</span><span class="jsdoc-var">prevMonth.getUTCFullYear</span><span class="jsdoc-syntax">() == </span><span class="jsdoc-var">year </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">prevMonth.getUTCMonth</span><span class="jsdoc-syntax">() &gt; </span><span class="jsdoc-var">month</span><span class="jsdoc-syntax">)) {
359                 </span><span class="jsdoc-var">clsName </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-string">' new'</span><span class="jsdoc-syntax">;
360             }
361             </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.todayHighlight </span><span class="jsdoc-syntax">&amp;&amp;
362                 </span><span class="jsdoc-var">prevMonth.getUTCFullYear</span><span class="jsdoc-syntax">() == </span><span class="jsdoc-var">today.getFullYear</span><span class="jsdoc-syntax">() &amp;&amp;
363                 </span><span class="jsdoc-var">prevMonth.getUTCMonth</span><span class="jsdoc-syntax">() == </span><span class="jsdoc-var">today.getMonth</span><span class="jsdoc-syntax">() &amp;&amp;
364                 </span><span class="jsdoc-var">prevMonth.getUTCDate</span><span class="jsdoc-syntax">() == </span><span class="jsdoc-var">today.getDate</span><span class="jsdoc-syntax">()) {
365                 </span><span class="jsdoc-var">clsName </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-string">' today'</span><span class="jsdoc-syntax">;
366             }
367             
368             </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">currentDate </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">prevMonth.valueOf</span><span class="jsdoc-syntax">() === </span><span class="jsdoc-var">currentDate</span><span class="jsdoc-syntax">) {
369                 </span><span class="jsdoc-var">clsName </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-string">' active'</span><span class="jsdoc-syntax">;
370             }
371             
372             </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">prevMonth.valueOf</span><span class="jsdoc-syntax">() &lt; </span><span class="jsdoc-var">this.startDate </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">prevMonth.valueOf</span><span class="jsdoc-syntax">() &gt; </span><span class="jsdoc-var">this.endDate </span><span class="jsdoc-syntax">||
373                     </span><span class="jsdoc-var">this.daysOfWeekDisabled.indexOf</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">prevMonth.getUTCDay</span><span class="jsdoc-syntax">()) !== -1) {
374                     </span><span class="jsdoc-var">clsName </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-string">' disabled'</span><span class="jsdoc-syntax">;
375             }
376             
377             </span><span class="jsdoc-var">fillMonths.cn.push</span><span class="jsdoc-syntax">({
378                 </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'td'</span><span class="jsdoc-syntax">,
379                 </span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'day ' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">clsName</span><span class="jsdoc-syntax">,
380                 </span><span class="jsdoc-var">html</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">prevMonth.getDate</span><span class="jsdoc-syntax">()
381             })
382             
383             </span><span class="jsdoc-var">prevMonth.setDate</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">prevMonth.getDate</span><span class="jsdoc-syntax">()+1);
384         }
385           
386         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">currentYear </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.date </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">this.date.getUTCFullYear</span><span class="jsdoc-syntax">();
387         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">currentMonth </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.date </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">this.date.getUTCMonth</span><span class="jsdoc-syntax">();
388         
389         </span><span class="jsdoc-var">this.picker</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.select</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'&gt;.datepicker-months th.switch'</span><span class="jsdoc-syntax">,</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.first</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.dom.innerHTML </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">year</span><span class="jsdoc-syntax">;
390         
391         </span><span class="jsdoc-var">Roo.each</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.picker</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.select</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'&gt;.datepicker-months tbody span'</span><span class="jsdoc-syntax">,</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.elements</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">v</span><span class="jsdoc-syntax">,</span><span class="jsdoc-var">k</span><span class="jsdoc-syntax">){
392             </span><span class="jsdoc-var">v.removeClass</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'active'</span><span class="jsdoc-syntax">);
393             
394             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">currentYear </span><span class="jsdoc-syntax">=== </span><span class="jsdoc-var">year </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">k </span><span class="jsdoc-syntax">=== </span><span class="jsdoc-var">currentMonth</span><span class="jsdoc-syntax">){
395                 </span><span class="jsdoc-var">v.addClass</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'active'</span><span class="jsdoc-syntax">);
396             }
397             
398             </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">year </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">startYear </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">year </span><span class="jsdoc-syntax">&gt; </span><span class="jsdoc-var">endYear </span><span class="jsdoc-syntax">|| (</span><span class="jsdoc-var">year </span><span class="jsdoc-syntax">== </span><span class="jsdoc-var">startYear </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">k </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">startMonth</span><span class="jsdoc-syntax">) || (</span><span class="jsdoc-var">year </span><span class="jsdoc-syntax">== </span><span class="jsdoc-var">endYear </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">k </span><span class="jsdoc-syntax">&gt; </span><span class="jsdoc-var">endMonth</span><span class="jsdoc-syntax">)) {
399                 </span><span class="jsdoc-var">v.addClass</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'disabled'</span><span class="jsdoc-syntax">);
400             }
401             
402         });
403         
404         
405         </span><span class="jsdoc-var">year </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">parseInt</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">year</span><span class="jsdoc-syntax">/10, 10) * 10;
406         
407         </span><span class="jsdoc-var">this.picker</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.select</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'&gt;.datepicker-years th.switch'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.first</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.dom.innerHTML </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">year </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">'-' </span><span class="jsdoc-syntax">+ (</span><span class="jsdoc-var">year </span><span class="jsdoc-syntax">+ 9);
408         
409         </span><span class="jsdoc-var">this.picker</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.select</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'&gt;.datepicker-years tbody td'</span><span class="jsdoc-syntax">,</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.first</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.dom.innerHTML </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">;
410         
411         </span><span class="jsdoc-var">year </span><span class="jsdoc-syntax">-= 1;
412         </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; 11; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++) {
413             </span><span class="jsdoc-var">this.picker</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.select</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'&gt;.datepicker-years tbody td'</span><span class="jsdoc-syntax">,</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.first</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.createChild</span><span class="jsdoc-syntax">({
414                 </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'span'</span><span class="jsdoc-syntax">,
415                 </span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'year' </span><span class="jsdoc-syntax">+ (</span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">=== -1 || </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">=== 10 ? </span><span class="jsdoc-string">' old' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">) + (</span><span class="jsdoc-var">currentYear </span><span class="jsdoc-syntax">=== </span><span class="jsdoc-var">year </span><span class="jsdoc-syntax">? </span><span class="jsdoc-string">' active' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">) + (</span><span class="jsdoc-var">year </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">startYear </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">year </span><span class="jsdoc-syntax">&gt; </span><span class="jsdoc-var">endYear </span><span class="jsdoc-syntax">? </span><span class="jsdoc-string">' disabled' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">),
416                 </span><span class="jsdoc-var">html</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">year
417             </span><span class="jsdoc-syntax">})
418             
419             </span><span class="jsdoc-var">year </span><span class="jsdoc-syntax">+= 1;
420         }
421     },
422     
423     </span><span class="jsdoc-var">showMode</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">dir</span><span class="jsdoc-syntax">) {
424         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">dir</span><span class="jsdoc-syntax">) {
425             </span><span class="jsdoc-var">this.viewMode </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Math.max</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.minViewMode</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">Math.min</span><span class="jsdoc-syntax">(2, </span><span class="jsdoc-var">this.viewMode </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">dir</span><span class="jsdoc-syntax">));
426         }
427         </span><span class="jsdoc-var">Roo.each</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.picker</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.select</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'&gt;div'</span><span class="jsdoc-syntax">,</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.elements</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">v</span><span class="jsdoc-syntax">){
428             </span><span class="jsdoc-var">v.setVisibilityMode</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.Element.DISPLAY</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.originalDisplay </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">'block'</span><span class="jsdoc-syntax">;
429             </span><span class="jsdoc-var">v.hide</span><span class="jsdoc-syntax">();
430         });
431         </span><span class="jsdoc-var">this.picker</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.select</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'&gt;.datepicker-'</span><span class="jsdoc-syntax">+</span><span class="jsdoc-var">Roo.bootstrap.DateField.modes</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">this.viewMode</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.clsName</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.first</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.show</span><span class="jsdoc-syntax">();
432     },
433     
434     </span><span class="jsdoc-var">place</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
435     {
436         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.isInline</span><span class="jsdoc-syntax">) </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
437         
438         </span><span class="jsdoc-var">this.picker</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.removeClass</span><span class="jsdoc-syntax">([</span><span class="jsdoc-string">'bottom'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'top'</span><span class="jsdoc-syntax">]);
439         
440         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">((</span><span class="jsdoc-var">Roo.lib.Dom.getViewHeight</span><span class="jsdoc-syntax">() + </span><span class="jsdoc-var">Roo.get</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">document.body</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.getScroll</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.top</span><span class="jsdoc-syntax">) - (</span><span class="jsdoc-var">this.inputEl</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.getBottom</span><span class="jsdoc-syntax">() + </span><span class="jsdoc-var">this.picker</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.getHeight</span><span class="jsdoc-syntax">()) &lt; 0){
441             </span><span class="jsdoc-comment">/*
442              * place to the top of element!
443              *
444              */
445             
446             </span><span class="jsdoc-var">this.picker</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.addClass</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'top'</span><span class="jsdoc-syntax">);
447             </span><span class="jsdoc-var">this.picker</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.setTop</span><span class="jsdoc-syntax">(0 - </span><span class="jsdoc-var">this.picker</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.getHeight</span><span class="jsdoc-syntax">())</span><span class="jsdoc-var">.setLeft</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.inputEl</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.getLeft</span><span class="jsdoc-syntax">() - </span><span class="jsdoc-var">this.el.getLeft</span><span class="jsdoc-syntax">());
448             
449             </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
450         }
451         
452         </span><span class="jsdoc-var">this.picker</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.addClass</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'bottom'</span><span class="jsdoc-syntax">);
453         
454         </span><span class="jsdoc-var">this.picker</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.setTop</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.inputEl</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.getHeight</span><span class="jsdoc-syntax">())</span><span class="jsdoc-var">.setLeft</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.inputEl</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.getLeft</span><span class="jsdoc-syntax">() - </span><span class="jsdoc-var">this.el.getLeft</span><span class="jsdoc-syntax">());
455     },
456     
457     </span><span class="jsdoc-var">parseDate </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">){
458         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">value </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">value </span><span class="jsdoc-keyword">instanceof </span><span class="jsdoc-var">Date</span><span class="jsdoc-syntax">){
459             </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">value</span><span class="jsdoc-syntax">;
460         }
461         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">v </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">);
462         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">v </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">this.useIso</span><span class="jsdoc-syntax">) {
463             </span><span class="jsdoc-var">v </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-string">'Y-m-d'</span><span class="jsdoc-syntax">);
464         }
465         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">v </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">this.altFormats</span><span class="jsdoc-syntax">){
466             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.altFormatsArray</span><span class="jsdoc-syntax">){
467                 </span><span class="jsdoc-var">this.altFormatsArray </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.altFormats.split</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;|&quot;</span><span class="jsdoc-syntax">);
468             }
469             </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">len </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.altFormatsArray.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">len </span><span class="jsdoc-syntax">&amp;&amp; !</span><span class="jsdoc-var">v</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++){
470                 </span><span class="jsdoc-var">v </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.altFormatsArray</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]);
471             }
472         }
473         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">v</span><span class="jsdoc-syntax">;
474     },
475     
476     </span><span class="jsdoc-var">formatDate </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">, </span><span class="jsdoc-var">fmt</span><span class="jsdoc-syntax">){
477         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">date </span><span class="jsdoc-syntax">|| !(</span><span class="jsdoc-var">date </span><span class="jsdoc-keyword">instanceof </span><span class="jsdoc-var">Date</span><span class="jsdoc-syntax">)) ?
478         </span><span class="jsdoc-var">date </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">date.dateFormat</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">fmt </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">this.format</span><span class="jsdoc-syntax">);
479     },
480     
481     </span><span class="jsdoc-var">onFocus </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
482     {
483         </span><span class="jsdoc-var">Roo.bootstrap.DateField.superclass.onFocus.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
484         </span><span class="jsdoc-var">this.show</span><span class="jsdoc-syntax">();
485     },
486     
487     </span><span class="jsdoc-var">onBlur </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
488     {
489         </span><span class="jsdoc-var">Roo.bootstrap.DateField.superclass.onBlur.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
490         </span><span class="jsdoc-var">this.hide</span><span class="jsdoc-syntax">();
491     },
492     
493     </span><span class="jsdoc-var">show </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
494     {
495         </span><span class="jsdoc-var">this.picker</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.show</span><span class="jsdoc-syntax">();
496         </span><span class="jsdoc-var">this.update</span><span class="jsdoc-syntax">();
497         </span><span class="jsdoc-var">this.place</span><span class="jsdoc-syntax">();
498         
499         </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'show'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.date</span><span class="jsdoc-syntax">);
500     },
501     
502     </span><span class="jsdoc-var">hide </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
503     {
504         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.isInline</span><span class="jsdoc-syntax">) </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
505         </span><span class="jsdoc-var">this.picker</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.hide</span><span class="jsdoc-syntax">();
506         </span><span class="jsdoc-var">this.viewMode </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.startViewMode</span><span class="jsdoc-syntax">;
507         </span><span class="jsdoc-var">this.showMode</span><span class="jsdoc-syntax">();
508         
509         </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'hide'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.date</span><span class="jsdoc-syntax">);
510         
511     },
512     
513     </span><span class="jsdoc-var">onMousedown</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">){
514         </span><span class="jsdoc-var">e.stopPropagation</span><span class="jsdoc-syntax">();
515         </span><span class="jsdoc-var">e.preventDefault</span><span class="jsdoc-syntax">();
516     },
517     
518     </span><span class="jsdoc-var">keyup</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">){
519         </span><span class="jsdoc-var">Roo.bootstrap.DateField.superclass.keyup.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
520         </span><span class="jsdoc-var">this.update</span><span class="jsdoc-syntax">();
521         
522     },
523
524     </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">v</span><span class="jsdoc-syntax">){
525         </span><span class="jsdoc-var">Roo.bootstrap.DateField.superclass.setValue.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">v</span><span class="jsdoc-syntax">);
526         
527         </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'select'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.date</span><span class="jsdoc-syntax">);
528         
529     },
530     
531     </span><span class="jsdoc-var">fireKey</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">){
532         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.picker</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.isVisible</span><span class="jsdoc-syntax">()){
533             </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e.keyCode </span><span class="jsdoc-syntax">== 27) </span><span class="jsdoc-comment">// allow escape to hide and re-show picker
534                 </span><span class="jsdoc-var">this.show</span><span class="jsdoc-syntax">();
535             </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
536         }
537         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">dateChanged </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
538         </span><span class="jsdoc-var">dir</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">day</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">month</span><span class="jsdoc-syntax">,
539         </span><span class="jsdoc-var">newDate</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">newViewDate</span><span class="jsdoc-syntax">;
540         </span><span class="jsdoc-keyword">switch</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e.keyCode</span><span class="jsdoc-syntax">){
541             </span><span class="jsdoc-keyword">case </span><span class="jsdoc-syntax">27: </span><span class="jsdoc-comment">// escape
542                 </span><span class="jsdoc-var">this.hide</span><span class="jsdoc-syntax">();
543                 </span><span class="jsdoc-var">e.preventDefault</span><span class="jsdoc-syntax">();
544                 </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
545             </span><span class="jsdoc-keyword">case </span><span class="jsdoc-syntax">37: </span><span class="jsdoc-comment">// left
546             </span><span class="jsdoc-keyword">case </span><span class="jsdoc-syntax">39: </span><span class="jsdoc-comment">// right
547                 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.keyboardNavigation</span><span class="jsdoc-syntax">) </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
548                 </span><span class="jsdoc-var">dir </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">e.keyCode </span><span class="jsdoc-syntax">== 37 ? -1 : 1;
549                 
550                 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e.ctrlKey</span><span class="jsdoc-syntax">){
551                     </span><span class="jsdoc-var">newDate </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.moveYear</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.date</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">dir</span><span class="jsdoc-syntax">);
552                     </span><span class="jsdoc-var">newViewDate </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.moveYear</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.viewDate</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">dir</span><span class="jsdoc-syntax">);
553                 } </span><span class="jsdoc-keyword">else if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e.shiftKey</span><span class="jsdoc-syntax">){
554                     </span><span class="jsdoc-var">newDate </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.moveMonth</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.date</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">dir</span><span class="jsdoc-syntax">);
555                     </span><span class="jsdoc-var">newViewDate </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.moveMonth</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.viewDate</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">dir</span><span class="jsdoc-syntax">);
556                 } </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
557                     </span><span class="jsdoc-var">newDate </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.date</span><span class="jsdoc-syntax">);
558                     </span><span class="jsdoc-var">newDate.setUTCDate</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.date.getUTCDate</span><span class="jsdoc-syntax">() + </span><span class="jsdoc-var">dir</span><span class="jsdoc-syntax">);
559                     </span><span class="jsdoc-var">newViewDate </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.viewDate</span><span class="jsdoc-syntax">);
560                     </span><span class="jsdoc-var">newViewDate.setUTCDate</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.viewDate.getUTCDate</span><span class="jsdoc-syntax">() + </span><span class="jsdoc-var">dir</span><span class="jsdoc-syntax">);
561                 }
562                 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.dateWithinRange</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">newDate</span><span class="jsdoc-syntax">)){
563                     </span><span class="jsdoc-var">this.date </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">newDate</span><span class="jsdoc-syntax">;
564                     </span><span class="jsdoc-var">this.viewDate </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">newViewDate</span><span class="jsdoc-syntax">;
565                     </span><span class="jsdoc-var">this.setValue</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.formatDate</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.date</span><span class="jsdoc-syntax">));
566                     </span><span class="jsdoc-var">this.update</span><span class="jsdoc-syntax">();
567                     </span><span class="jsdoc-var">e.preventDefault</span><span class="jsdoc-syntax">();
568                     </span><span class="jsdoc-var">dateChanged </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
569                 }
570                 </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
571             </span><span class="jsdoc-keyword">case </span><span class="jsdoc-syntax">38: </span><span class="jsdoc-comment">// up
572             </span><span class="jsdoc-keyword">case </span><span class="jsdoc-syntax">40: </span><span class="jsdoc-comment">// down
573                 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.keyboardNavigation</span><span class="jsdoc-syntax">) </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
574                 </span><span class="jsdoc-var">dir </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">e.keyCode </span><span class="jsdoc-syntax">== 38 ? -1 : 1;
575                 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e.ctrlKey</span><span class="jsdoc-syntax">){
576                     </span><span class="jsdoc-var">newDate </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.moveYear</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.date</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">dir</span><span class="jsdoc-syntax">);
577                     </span><span class="jsdoc-var">newViewDate </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.moveYear</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.viewDate</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">dir</span><span class="jsdoc-syntax">);
578                 } </span><span class="jsdoc-keyword">else if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e.shiftKey</span><span class="jsdoc-syntax">){
579                     </span><span class="jsdoc-var">newDate </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.moveMonth</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.date</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">dir</span><span class="jsdoc-syntax">);
580                     </span><span class="jsdoc-var">newViewDate </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.moveMonth</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.viewDate</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">dir</span><span class="jsdoc-syntax">);
581                 } </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
582                     </span><span class="jsdoc-var">newDate </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.date</span><span class="jsdoc-syntax">);
583                     </span><span class="jsdoc-var">newDate.setUTCDate</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.date.getUTCDate</span><span class="jsdoc-syntax">() + </span><span class="jsdoc-var">dir </span><span class="jsdoc-syntax">* 7);
584                     </span><span class="jsdoc-var">newViewDate </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.viewDate</span><span class="jsdoc-syntax">);
585                     </span><span class="jsdoc-var">newViewDate.setUTCDate</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.viewDate.getUTCDate</span><span class="jsdoc-syntax">() + </span><span class="jsdoc-var">dir </span><span class="jsdoc-syntax">* 7);
586                 }
587                 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.dateWithinRange</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">newDate</span><span class="jsdoc-syntax">)){
588                     </span><span class="jsdoc-var">this.date </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">newDate</span><span class="jsdoc-syntax">;
589                     </span><span class="jsdoc-var">this.viewDate </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">newViewDate</span><span class="jsdoc-syntax">;
590                     </span><span class="jsdoc-var">this.setValue</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.formatDate</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.date</span><span class="jsdoc-syntax">));
591                     </span><span class="jsdoc-var">this.update</span><span class="jsdoc-syntax">();
592                     </span><span class="jsdoc-var">e.preventDefault</span><span class="jsdoc-syntax">();
593                     </span><span class="jsdoc-var">dateChanged </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
594                 }
595                 </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
596             </span><span class="jsdoc-keyword">case </span><span class="jsdoc-syntax">13: </span><span class="jsdoc-comment">// enter
597                 </span><span class="jsdoc-var">this.setValue</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.formatDate</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.date</span><span class="jsdoc-syntax">));
598                 </span><span class="jsdoc-var">this.hide</span><span class="jsdoc-syntax">();
599                 </span><span class="jsdoc-var">e.preventDefault</span><span class="jsdoc-syntax">();
600                 </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
601             </span><span class="jsdoc-keyword">case </span><span class="jsdoc-syntax">9: </span><span class="jsdoc-comment">// tab
602                 </span><span class="jsdoc-var">this.setValue</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.formatDate</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.date</span><span class="jsdoc-syntax">));
603                 </span><span class="jsdoc-var">this.hide</span><span class="jsdoc-syntax">();
604                 </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
605         }
606     },
607     
608     
609     </span><span class="jsdoc-var">onClick</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">) {
610         </span><span class="jsdoc-var">e.stopPropagation</span><span class="jsdoc-syntax">();
611         </span><span class="jsdoc-var">e.preventDefault</span><span class="jsdoc-syntax">();
612         
613         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">target </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">e.getTarget</span><span class="jsdoc-syntax">();
614         
615         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">target.nodeName.toLowerCase</span><span class="jsdoc-syntax">() === </span><span class="jsdoc-string">'i'</span><span class="jsdoc-syntax">){
616             </span><span class="jsdoc-var">target </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.get</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">target</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.dom.parentNode</span><span class="jsdoc-syntax">;
617         }
618         
619         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">nodeName </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">target.nodeName</span><span class="jsdoc-syntax">;
620         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">className </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">target.className</span><span class="jsdoc-syntax">;
621         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">html </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">target.innerHTML</span><span class="jsdoc-syntax">;
622         
623         </span><span class="jsdoc-keyword">switch</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">nodeName.toLowerCase</span><span class="jsdoc-syntax">()) {
624             </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">'th'</span><span class="jsdoc-syntax">:
625                 </span><span class="jsdoc-keyword">switch</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">className</span><span class="jsdoc-syntax">) {
626                     </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">'switch'</span><span class="jsdoc-syntax">:
627                         </span><span class="jsdoc-var">this.showMode</span><span class="jsdoc-syntax">(1);
628                         </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
629                     </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">'prev'</span><span class="jsdoc-syntax">:
630                     </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">'next'</span><span class="jsdoc-syntax">:
631                         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">dir </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.bootstrap.DateField.modes</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">this.viewMode</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.navStep </span><span class="jsdoc-syntax">* (</span><span class="jsdoc-var">className </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">'prev' </span><span class="jsdoc-syntax">? -1 : 1);
632                         </span><span class="jsdoc-keyword">switch</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.viewMode</span><span class="jsdoc-syntax">){
633                                 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-syntax">0:
634                                         </span><span class="jsdoc-var">this.viewDate </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.moveMonth</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.viewDate</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">dir</span><span class="jsdoc-syntax">);
635                                         </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
636                                 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-syntax">1:
637                                 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-syntax">2:
638                                         </span><span class="jsdoc-var">this.viewDate </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.moveYear</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.viewDate</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">dir</span><span class="jsdoc-syntax">);
639                                         </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
640                         }
641                         </span><span class="jsdoc-var">this.fill</span><span class="jsdoc-syntax">();
642                         </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
643                     </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">'today'</span><span class="jsdoc-syntax">:
644                         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">date </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Date</span><span class="jsdoc-syntax">();
645                         </span><span class="jsdoc-var">this.date </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.UTCDate</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">date.getFullYear</span><span class="jsdoc-syntax">(), </span><span class="jsdoc-var">date.getMonth</span><span class="jsdoc-syntax">(), </span><span class="jsdoc-var">date.getDate</span><span class="jsdoc-syntax">(), 0, 0, 0);
646                         </span><span class="jsdoc-var">this.fill</span><span class="jsdoc-syntax">()
647                         </span><span class="jsdoc-var">this.setValue</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.formatDate</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.date</span><span class="jsdoc-syntax">));
648                         </span><span class="jsdoc-var">this.hide</span><span class="jsdoc-syntax">();
649                         </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
650                 }
651                 </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
652             </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">'span'</span><span class="jsdoc-syntax">:
653                 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">className.indexOf</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'disabled'</span><span class="jsdoc-syntax">) === -1) {
654                     </span><span class="jsdoc-var">this.viewDate.setUTCDate</span><span class="jsdoc-syntax">(1);
655                     </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">className.indexOf</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'month'</span><span class="jsdoc-syntax">) !== -1) {
656                         </span><span class="jsdoc-var">this.viewDate.setUTCMonth</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.bootstrap.DateField.dates</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">this.language</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.monthsShort.indexOf</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">html</span><span class="jsdoc-syntax">));
657                     } </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
658                         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">year </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">parseInt</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">html</span><span class="jsdoc-syntax">, 10) || 0;
659                         </span><span class="jsdoc-var">this.viewDate.setUTCFullYear</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">year</span><span class="jsdoc-syntax">);
660                         
661                     }
662                     </span><span class="jsdoc-var">this.showMode</span><span class="jsdoc-syntax">(-1);
663                     </span><span class="jsdoc-var">this.fill</span><span class="jsdoc-syntax">();
664                 }
665                 </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
666                 
667             </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">'td'</span><span class="jsdoc-syntax">:
668                 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">className.indexOf</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'day'</span><span class="jsdoc-syntax">) !== -1 &amp;&amp; </span><span class="jsdoc-var">className.indexOf</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'disabled'</span><span class="jsdoc-syntax">) === -1){
669                     </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">day </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">parseInt</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">html</span><span class="jsdoc-syntax">, 10) || 1;
670                     </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">year </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.viewDate.getUTCFullYear</span><span class="jsdoc-syntax">(),
671                         </span><span class="jsdoc-var">month </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.viewDate.getUTCMonth</span><span class="jsdoc-syntax">();
672
673                     </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">className.indexOf</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'old'</span><span class="jsdoc-syntax">) !== -1) {
674                         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">month </span><span class="jsdoc-syntax">=== 0 ){
675                             </span><span class="jsdoc-var">month </span><span class="jsdoc-syntax">= 11;
676                             </span><span class="jsdoc-var">year </span><span class="jsdoc-syntax">-= 1;
677                         }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
678                             </span><span class="jsdoc-var">month </span><span class="jsdoc-syntax">-= 1;
679                         }
680                     } </span><span class="jsdoc-keyword">else if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">className.indexOf</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'new'</span><span class="jsdoc-syntax">) !== -1) {
681                         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">month </span><span class="jsdoc-syntax">== 11) {
682                             </span><span class="jsdoc-var">month </span><span class="jsdoc-syntax">= 0;
683                             </span><span class="jsdoc-var">year </span><span class="jsdoc-syntax">+= 1;
684                         } </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
685                             </span><span class="jsdoc-var">month </span><span class="jsdoc-syntax">+= 1;
686                         }
687                     }
688                     </span><span class="jsdoc-var">this.date </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.UTCDate</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">year</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">month</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">day</span><span class="jsdoc-syntax">,0,0,0,0);
689                     </span><span class="jsdoc-var">this.viewDate </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.UTCDate</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">year</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">month</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">Math.min</span><span class="jsdoc-syntax">(28, </span><span class="jsdoc-var">day</span><span class="jsdoc-syntax">),0,0,0,0);
690                     </span><span class="jsdoc-var">this.fill</span><span class="jsdoc-syntax">();
691                     </span><span class="jsdoc-var">this.setValue</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.formatDate</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.date</span><span class="jsdoc-syntax">));
692                     </span><span class="jsdoc-var">this.hide</span><span class="jsdoc-syntax">();
693                 }
694                 </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
695         }
696     },
697     
698     </span><span class="jsdoc-var">setStartDate</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">startDate</span><span class="jsdoc-syntax">){
699         </span><span class="jsdoc-var">this.startDate </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">startDate </span><span class="jsdoc-syntax">|| -</span><span class="jsdoc-var">Infinity</span><span class="jsdoc-syntax">;
700         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.startDate </span><span class="jsdoc-syntax">!== -</span><span class="jsdoc-var">Infinity</span><span class="jsdoc-syntax">) {
701             </span><span class="jsdoc-var">this.startDate </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.parseDate</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.startDate</span><span class="jsdoc-syntax">);
702         }
703         </span><span class="jsdoc-var">this.update</span><span class="jsdoc-syntax">();
704         </span><span class="jsdoc-var">this.updateNavArrows</span><span class="jsdoc-syntax">();
705     },
706
707     </span><span class="jsdoc-var">setEndDate</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">endDate</span><span class="jsdoc-syntax">){
708         </span><span class="jsdoc-var">this.endDate </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">endDate </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">Infinity</span><span class="jsdoc-syntax">;
709         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.endDate </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-var">Infinity</span><span class="jsdoc-syntax">) {
710             </span><span class="jsdoc-var">this.endDate </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.parseDate</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.endDate</span><span class="jsdoc-syntax">);
711         }
712         </span><span class="jsdoc-var">this.update</span><span class="jsdoc-syntax">();
713         </span><span class="jsdoc-var">this.updateNavArrows</span><span class="jsdoc-syntax">();
714     },
715     
716     </span><span class="jsdoc-var">setDaysOfWeekDisabled</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">daysOfWeekDisabled</span><span class="jsdoc-syntax">){
717         </span><span class="jsdoc-var">this.daysOfWeekDisabled </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">daysOfWeekDisabled </span><span class="jsdoc-syntax">|| [];
718         </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">this.daysOfWeekDisabled</span><span class="jsdoc-syntax">) !== </span><span class="jsdoc-string">'object'</span><span class="jsdoc-syntax">) {
719             </span><span class="jsdoc-var">this.daysOfWeekDisabled </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.daysOfWeekDisabled.split</span><span class="jsdoc-syntax">(/,\s*/);
720         }
721         </span><span class="jsdoc-var">this.daysOfWeekDisabled </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.daysOfWeekDisabled.map</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">d</span><span class="jsdoc-syntax">) {
722             </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">parseInt</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">d</span><span class="jsdoc-syntax">, 10);
723         });
724         </span><span class="jsdoc-var">this.update</span><span class="jsdoc-syntax">();
725         </span><span class="jsdoc-var">this.updateNavArrows</span><span class="jsdoc-syntax">();
726     },
727     
728     </span><span class="jsdoc-var">updateNavArrows</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() {
729         </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">this.viewDate</span><span class="jsdoc-syntax">),
730         </span><span class="jsdoc-var">year </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">d.getUTCFullYear</span><span class="jsdoc-syntax">(),
731         </span><span class="jsdoc-var">month </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">d.getUTCMonth</span><span class="jsdoc-syntax">();
732         
733         </span><span class="jsdoc-var">Roo.each</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.picker</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.select</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'.prev'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.elements</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">v</span><span class="jsdoc-syntax">){
734             </span><span class="jsdoc-var">v.show</span><span class="jsdoc-syntax">();
735             </span><span class="jsdoc-keyword">switch </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.viewMode</span><span class="jsdoc-syntax">) {
736                 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-syntax">0:
737
738                     </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.startDate </span><span class="jsdoc-syntax">!== -</span><span class="jsdoc-var">Infinity </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">year </span><span class="jsdoc-syntax">&lt;= </span><span class="jsdoc-var">this.startDate.getUTCFullYear</span><span class="jsdoc-syntax">() &amp;&amp; </span><span class="jsdoc-var">month </span><span class="jsdoc-syntax">&lt;= </span><span class="jsdoc-var">this.startDate.getUTCMonth</span><span class="jsdoc-syntax">()) {
739                         </span><span class="jsdoc-var">v.hide</span><span class="jsdoc-syntax">();
740                     }
741                     </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
742                 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-syntax">1:
743                 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-syntax">2:
744                     </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.startDate </span><span class="jsdoc-syntax">!== -</span><span class="jsdoc-var">Infinity </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">year </span><span class="jsdoc-syntax">&lt;= </span><span class="jsdoc-var">this.startDate.getUTCFullYear</span><span class="jsdoc-syntax">()) {
745                         </span><span class="jsdoc-var">v.hide</span><span class="jsdoc-syntax">();
746                     }
747                     </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
748             }
749         });
750         
751         </span><span class="jsdoc-var">Roo.each</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.picker</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.select</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'.next'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.elements</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">v</span><span class="jsdoc-syntax">){
752             </span><span class="jsdoc-var">v.show</span><span class="jsdoc-syntax">();
753             </span><span class="jsdoc-keyword">switch </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.viewMode</span><span class="jsdoc-syntax">) {
754                 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-syntax">0:
755
756                     </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.endDate </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-var">Infinity </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">year </span><span class="jsdoc-syntax">&gt;= </span><span class="jsdoc-var">this.endDate.getUTCFullYear</span><span class="jsdoc-syntax">() &amp;&amp; </span><span class="jsdoc-var">month </span><span class="jsdoc-syntax">&gt;= </span><span class="jsdoc-var">this.endDate.getUTCMonth</span><span class="jsdoc-syntax">()) {
757                         </span><span class="jsdoc-var">v.hide</span><span class="jsdoc-syntax">();
758                     }
759                     </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
760                 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-syntax">1:
761                 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-syntax">2:
762                     </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.endDate </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-var">Infinity </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">year </span><span class="jsdoc-syntax">&gt;= </span><span class="jsdoc-var">this.endDate.getUTCFullYear</span><span class="jsdoc-syntax">()) {
763                         </span><span class="jsdoc-var">v.hide</span><span class="jsdoc-syntax">();
764                     }
765                     </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
766             }
767         })
768     },
769     
770     </span><span class="jsdoc-var">moveMonth</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">, </span><span class="jsdoc-var">dir</span><span class="jsdoc-syntax">){
771         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">dir</span><span class="jsdoc-syntax">) </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">date</span><span class="jsdoc-syntax">;
772         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">new_date </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">date.valueOf</span><span class="jsdoc-syntax">()),
773         </span><span class="jsdoc-var">day </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">new_date.getUTCDate</span><span class="jsdoc-syntax">(),
774         </span><span class="jsdoc-var">month </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">new_date.getUTCMonth</span><span class="jsdoc-syntax">(),
775         </span><span class="jsdoc-var">mag </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Math.abs</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">dir</span><span class="jsdoc-syntax">),
776         </span><span class="jsdoc-var">new_month</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">test</span><span class="jsdoc-syntax">;
777         </span><span class="jsdoc-var">dir </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">dir </span><span class="jsdoc-syntax">&gt; 0 ? 1 : -1;
778         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">mag </span><span class="jsdoc-syntax">== 1){
779             </span><span class="jsdoc-var">test </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">dir </span><span class="jsdoc-syntax">== -1
780             </span><span class="jsdoc-comment">// If going back one month, make sure month is not current month
781             // (eg, Mar 31 -&gt; Feb 31 == Feb 28, not Mar 02)
782             </span><span class="jsdoc-syntax">? </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
783                 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">new_date.getUTCMonth</span><span class="jsdoc-syntax">() == </span><span class="jsdoc-var">month</span><span class="jsdoc-syntax">;
784             }
785             </span><span class="jsdoc-comment">// If going forward one month, make sure month is as expected
786             // (eg, Jan 31 -&gt; Feb 31 == Feb 28, not Mar 02)
787             </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
788                 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">new_date.getUTCMonth</span><span class="jsdoc-syntax">() != </span><span class="jsdoc-var">new_month</span><span class="jsdoc-syntax">;
789             };
790             </span><span class="jsdoc-var">new_month </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">month </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">dir</span><span class="jsdoc-syntax">;
791             </span><span class="jsdoc-var">new_date.setUTCMonth</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">new_month</span><span class="jsdoc-syntax">);
792             </span><span class="jsdoc-comment">// Dec -&gt; Jan (12) or Jan -&gt; Dec (-1) -- limit expected date to 0-11
793             </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">new_month </span><span class="jsdoc-syntax">&lt; 0 || </span><span class="jsdoc-var">new_month </span><span class="jsdoc-syntax">&gt; 11)
794                 </span><span class="jsdoc-var">new_month </span><span class="jsdoc-syntax">= (</span><span class="jsdoc-var">new_month </span><span class="jsdoc-syntax">+ 12) % 12;
795         } </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
796             </span><span class="jsdoc-comment">// For magnitudes &gt;1, move one month at a time...
797             </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">mag</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++)
798                 </span><span class="jsdoc-comment">// ...which might decrease the day (eg, Jan 31 to Feb 28, etc)...
799                 </span><span class="jsdoc-var">new_date </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.moveMonth</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">new_date</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">dir</span><span class="jsdoc-syntax">);
800             </span><span class="jsdoc-comment">// ...then reset the day, keeping it in the new month
801             </span><span class="jsdoc-var">new_month </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">new_date.getUTCMonth</span><span class="jsdoc-syntax">();
802             </span><span class="jsdoc-var">new_date.setUTCDate</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">day</span><span class="jsdoc-syntax">);
803             </span><span class="jsdoc-var">test </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
804                 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">new_month </span><span class="jsdoc-syntax">!= </span><span class="jsdoc-var">new_date.getUTCMonth</span><span class="jsdoc-syntax">();
805             };
806         }
807         </span><span class="jsdoc-comment">// Common date-resetting loop -- if date is beyond end of month, make it
808         // end of month
809         </span><span class="jsdoc-keyword">while </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">test</span><span class="jsdoc-syntax">()){
810             </span><span class="jsdoc-var">new_date.setUTCDate</span><span class="jsdoc-syntax">(--</span><span class="jsdoc-var">day</span><span class="jsdoc-syntax">);
811             </span><span class="jsdoc-var">new_date.setUTCMonth</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">new_month</span><span class="jsdoc-syntax">);
812         }
813         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">new_date</span><span class="jsdoc-syntax">;
814     },
815
816     </span><span class="jsdoc-var">moveYear</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">, </span><span class="jsdoc-var">dir</span><span class="jsdoc-syntax">){
817         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.moveMonth</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">date</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">dir</span><span class="jsdoc-syntax">*12);
818     },
819
820     </span><span class="jsdoc-var">dateWithinRange</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">){
821         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">date </span><span class="jsdoc-syntax">&gt;= </span><span class="jsdoc-var">this.startDate </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">date </span><span class="jsdoc-syntax">&lt;= </span><span class="jsdoc-var">this.endDate</span><span class="jsdoc-syntax">;
822     },
823
824     
825     </span><span class="jsdoc-var">remove</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() {
826         </span><span class="jsdoc-var">this.picker</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.remove</span><span class="jsdoc-syntax">();
827     }
828    
829 });
830
831 </span><span class="jsdoc-var">Roo.apply</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.bootstrap.DateField</span><span class="jsdoc-syntax">,  {
832     
833     </span><span class="jsdoc-var">head </span><span class="jsdoc-syntax">: {
834         </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'thead'</span><span class="jsdoc-syntax">,
835         </span><span class="jsdoc-var">cn</span><span class="jsdoc-syntax">: [
836         {
837             </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'tr'</span><span class="jsdoc-syntax">,
838             </span><span class="jsdoc-var">cn</span><span class="jsdoc-syntax">: [
839             {
840                 </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'th'</span><span class="jsdoc-syntax">,
841                 </span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'prev'</span><span class="jsdoc-syntax">,
842                 </span><span class="jsdoc-var">html</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'&lt;i class=&quot;fa fa-arrow-left&quot;/&gt;'
843             </span><span class="jsdoc-syntax">},
844             {
845                 </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'th'</span><span class="jsdoc-syntax">,
846                 </span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'switch'</span><span class="jsdoc-syntax">,
847                 </span><span class="jsdoc-var">colspan</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'5'
848             </span><span class="jsdoc-syntax">},
849             {
850                 </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'th'</span><span class="jsdoc-syntax">,
851                 </span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'next'</span><span class="jsdoc-syntax">,
852                 </span><span class="jsdoc-var">html</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'&lt;i class=&quot;fa fa-arrow-right&quot;/&gt;'
853             </span><span class="jsdoc-syntax">}
854
855             ]
856         }
857         ]
858     },
859     
860     </span><span class="jsdoc-var">content </span><span class="jsdoc-syntax">: {
861         </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'tbody'</span><span class="jsdoc-syntax">,
862         </span><span class="jsdoc-var">cn</span><span class="jsdoc-syntax">: [
863         {
864             </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'tr'</span><span class="jsdoc-syntax">,
865             </span><span class="jsdoc-var">cn</span><span class="jsdoc-syntax">: [
866             {
867                 </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'td'</span><span class="jsdoc-syntax">,
868                 </span><span class="jsdoc-var">colspan</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'7'
869             </span><span class="jsdoc-syntax">}
870             ]
871         }
872         ]
873     },
874     
875     </span><span class="jsdoc-var">footer </span><span class="jsdoc-syntax">: {
876         </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'tfoot'</span><span class="jsdoc-syntax">,
877         </span><span class="jsdoc-var">cn</span><span class="jsdoc-syntax">: [
878         {
879             </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'tr'</span><span class="jsdoc-syntax">,
880             </span><span class="jsdoc-var">cn</span><span class="jsdoc-syntax">: [
881             {
882                 </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'th'</span><span class="jsdoc-syntax">,
883                 </span><span class="jsdoc-var">colspan</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'7'</span><span class="jsdoc-syntax">,
884                 </span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'today'
885             </span><span class="jsdoc-syntax">}
886                     
887             ]
888         }
889         ]
890     },
891     
892     </span><span class="jsdoc-var">dates</span><span class="jsdoc-syntax">:{
893         </span><span class="jsdoc-var">en</span><span class="jsdoc-syntax">: {
894             </span><span class="jsdoc-var">days</span><span class="jsdoc-syntax">: [</span><span class="jsdoc-string">&quot;Sunday&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;Monday&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;Tuesday&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;Wednesday&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;Thursday&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;Friday&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;Saturday&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;Sunday&quot;</span><span class="jsdoc-syntax">],
895             </span><span class="jsdoc-var">daysShort</span><span class="jsdoc-syntax">: [</span><span class="jsdoc-string">&quot;Sun&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;Mon&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;Tue&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;Wed&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;Thu&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;Fri&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;Sat&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;Sun&quot;</span><span class="jsdoc-syntax">],
896             </span><span class="jsdoc-var">daysMin</span><span class="jsdoc-syntax">: [</span><span class="jsdoc-string">&quot;Su&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;Mo&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;Tu&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;We&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;Th&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;Fr&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;Sa&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;Su&quot;</span><span class="jsdoc-syntax">],
897             </span><span class="jsdoc-var">months</span><span class="jsdoc-syntax">: [</span><span class="jsdoc-string">&quot;January&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;February&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;March&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;April&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;May&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;June&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;July&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;August&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;September&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;October&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;November&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;December&quot;</span><span class="jsdoc-syntax">],
898             </span><span class="jsdoc-var">monthsShort</span><span class="jsdoc-syntax">: [</span><span class="jsdoc-string">&quot;Jan&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;Feb&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;Mar&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;Apr&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;May&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;Jun&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;Jul&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;Aug&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;Sep&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;Oct&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;Nov&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;Dec&quot;</span><span class="jsdoc-syntax">],
899             </span><span class="jsdoc-var">today</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;Today&quot;
900         </span><span class="jsdoc-syntax">}
901     },
902     
903     </span><span class="jsdoc-var">modes</span><span class="jsdoc-syntax">: [
904     {
905         </span><span class="jsdoc-var">clsName</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'days'</span><span class="jsdoc-syntax">,
906         </span><span class="jsdoc-var">navFnc</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'Month'</span><span class="jsdoc-syntax">,
907         </span><span class="jsdoc-var">navStep</span><span class="jsdoc-syntax">: 1
908     },
909     {
910         </span><span class="jsdoc-var">clsName</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'months'</span><span class="jsdoc-syntax">,
911         </span><span class="jsdoc-var">navFnc</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'FullYear'</span><span class="jsdoc-syntax">,
912         </span><span class="jsdoc-var">navStep</span><span class="jsdoc-syntax">: 1
913     },
914     {
915         </span><span class="jsdoc-var">clsName</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'years'</span><span class="jsdoc-syntax">,
916         </span><span class="jsdoc-var">navFnc</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'FullYear'</span><span class="jsdoc-syntax">,
917         </span><span class="jsdoc-var">navStep</span><span class="jsdoc-syntax">: 10
918     }]
919 });
920
921 </span><span class="jsdoc-var">Roo.apply</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.bootstrap.DateField</span><span class="jsdoc-syntax">,  {
922   
923     </span><span class="jsdoc-var">template </span><span class="jsdoc-syntax">: {
924         </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'div'</span><span class="jsdoc-syntax">,
925         </span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'datepicker dropdown-menu'</span><span class="jsdoc-syntax">,
926         </span><span class="jsdoc-var">cn</span><span class="jsdoc-syntax">: [
927         {
928             </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'div'</span><span class="jsdoc-syntax">,
929             </span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'datepicker-days'</span><span class="jsdoc-syntax">,
930             </span><span class="jsdoc-var">cn</span><span class="jsdoc-syntax">: [
931             {
932                 </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'table'</span><span class="jsdoc-syntax">,
933                 </span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'table-condensed'</span><span class="jsdoc-syntax">,
934                 </span><span class="jsdoc-var">cn</span><span class="jsdoc-syntax">:[
935                 </span><span class="jsdoc-var">Roo.bootstrap.DateField.head</span><span class="jsdoc-syntax">,
936                 {
937                     </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'tbody'
938                 </span><span class="jsdoc-syntax">},
939                 </span><span class="jsdoc-var">Roo.bootstrap.DateField.footer
940                 </span><span class="jsdoc-syntax">]
941             }
942             ]
943         },
944         {
945             </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'div'</span><span class="jsdoc-syntax">,
946             </span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'datepicker-months'</span><span class="jsdoc-syntax">,
947             </span><span class="jsdoc-var">cn</span><span class="jsdoc-syntax">: [
948             {
949                 </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'table'</span><span class="jsdoc-syntax">,
950                 </span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'table-condensed'</span><span class="jsdoc-syntax">,
951                 </span><span class="jsdoc-var">cn</span><span class="jsdoc-syntax">:[
952                 </span><span class="jsdoc-var">Roo.bootstrap.DateField.head</span><span class="jsdoc-syntax">,
953                 </span><span class="jsdoc-var">Roo.bootstrap.DateField.content</span><span class="jsdoc-syntax">,
954                 </span><span class="jsdoc-var">Roo.bootstrap.DateField.footer
955                 </span><span class="jsdoc-syntax">]
956             }
957             ]
958         },
959         {
960             </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'div'</span><span class="jsdoc-syntax">,
961             </span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'datepicker-years'</span><span class="jsdoc-syntax">,
962             </span><span class="jsdoc-var">cn</span><span class="jsdoc-syntax">: [
963             {
964                 </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'table'</span><span class="jsdoc-syntax">,
965                 </span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'table-condensed'</span><span class="jsdoc-syntax">,
966                 </span><span class="jsdoc-var">cn</span><span class="jsdoc-syntax">:[
967                 </span><span class="jsdoc-var">Roo.bootstrap.DateField.head</span><span class="jsdoc-syntax">,
968                 </span><span class="jsdoc-var">Roo.bootstrap.DateField.content</span><span class="jsdoc-syntax">,
969                 </span><span class="jsdoc-var">Roo.bootstrap.DateField.footer
970                 </span><span class="jsdoc-syntax">]
971             }
972             ]
973         }
974         ]
975     }
976 });
977
978  
979
980  </span></code></body></html>