whitespace
[roojs1] / docs / src / Roo_bootstrap_DateField.js.html
1 <html><head><title>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 {String} viewMode default empty, (months|years)
14  * @cfg {String} minViewMode default empty, (months|years)
15  * @cfg {Number} startDate default -Infinity
16  * @cfg {Number} endDate default Infinity
17  * @cfg {Boolean} todayHighlight default false
18  * @cfg {Boolean} todayBtn default false
19  * @cfg {Boolean} calendarWeeks default false
20  * @cfg {Object} daysOfWeekDisabled default empty
21  * @cfg {Boolean} singleMode default false (true | false)
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</span><span class="jsdoc-syntax">,
55             </span><span class="jsdoc-comment">/**
56              * @event beforeselect
57              * Fires when before select a date.
58              * @param {Roo.bootstrap.DateField} this
59              * @param {Mixed} date The date value
60              */
61             </span><span class="jsdoc-var">beforeselect </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true
62         </span><span class="jsdoc-syntax">});
63 };
64
65 </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">,  {
66
67     </span><span class="jsdoc-comment">/**
68      * @cfg {String} format
69      * The default date format string which can be overriden for localization support.  The format must be
70      * valid according to {@link Date#parseDate} (defaults to 'm/d/y').
71      */
72     </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">,
73     </span><span class="jsdoc-comment">/**
74      * @cfg {String} altFormats
75      * Multiple date formats separated by &quot;|&quot; to try when parsing a user input value and it doesn't match the defined
76      * format (defaults to 'm/d/Y|m-d-y|m-d-Y|m/d|m-d|d').
77      */
78     </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">,
79
80     </span><span class="jsdoc-var">weekStart </span><span class="jsdoc-syntax">: 0,
81
82     </span><span class="jsdoc-var">viewMode </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">,
83
84     </span><span class="jsdoc-var">minViewMode </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">,
85
86     </span><span class="jsdoc-var">todayHighlight </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
87
88     </span><span class="jsdoc-var">todayBtn</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
89
90     </span><span class="jsdoc-var">language</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'en'</span><span class="jsdoc-syntax">,
91
92     </span><span class="jsdoc-var">keyboardNavigation</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
93
94     </span><span class="jsdoc-var">calendarWeeks</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
95
96     </span><span class="jsdoc-var">startDate</span><span class="jsdoc-syntax">: -</span><span class="jsdoc-var">Infinity</span><span class="jsdoc-syntax">,
97
98     </span><span class="jsdoc-var">endDate</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">Infinity</span><span class="jsdoc-syntax">,
99
100     </span><span class="jsdoc-var">daysOfWeekDisabled</span><span class="jsdoc-syntax">: [],
101
102     </span><span class="jsdoc-var">_events</span><span class="jsdoc-syntax">: [],
103
104     </span><span class="jsdoc-var">singleMode </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
105
106     </span><span class="jsdoc-var">UTCDate</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
107     {
108         </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">));
109     },
110
111     </span><span class="jsdoc-var">UTCToday</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
112     {
113         </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">();
114         </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">());
115     },
116
117     </span><span class="jsdoc-var">getDate</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() {
118             </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">();
119             </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));
120     },
121
122     </span><span class="jsdoc-var">getUTCDate</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() {
123             </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.date</span><span class="jsdoc-syntax">;
124     },
125
126     </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">) {
127             </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)));
128     },
129
130     </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">) {
131             </span><span class="jsdoc-var">this.date </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">d</span><span class="jsdoc-syntax">;
132             </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">));
133     },
134
135     </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">)
136     {
137
138         </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">);
139
140         </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">;
141         </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];
142         </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">;
143
144         </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">;
145         </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">;
146         </span><span class="jsdoc-var">this.isInline </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
147         </span><span class="jsdoc-var">this.isInput </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
148         </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">;
149         </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">;
150         </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">;
151
152         </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">)) {
153             </span><span class="jsdoc-keyword">switch </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.minViewMode</span><span class="jsdoc-syntax">) {
154                 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">'months'</span><span class="jsdoc-syntax">:
155                     </span><span class="jsdoc-var">this.minViewMode </span><span class="jsdoc-syntax">= 1;
156                     </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
157                 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">'years'</span><span class="jsdoc-syntax">:
158                     </span><span class="jsdoc-var">this.minViewMode </span><span class="jsdoc-syntax">= 2;
159                     </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
160                 </span><span class="jsdoc-keyword">default</span><span class="jsdoc-syntax">:
161                     </span><span class="jsdoc-var">this.minViewMode </span><span class="jsdoc-syntax">= 0;
162                     </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
163             }
164         }
165
166         </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">)) {
167             </span><span class="jsdoc-keyword">switch </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.viewMode</span><span class="jsdoc-syntax">) {
168                 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">'months'</span><span class="jsdoc-syntax">:
169                     </span><span class="jsdoc-var">this.viewMode </span><span class="jsdoc-syntax">= 1;
170                     </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
171                 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">'years'</span><span class="jsdoc-syntax">:
172                     </span><span class="jsdoc-var">this.viewMode </span><span class="jsdoc-syntax">= 2;
173                     </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
174                 </span><span class="jsdoc-keyword">default</span><span class="jsdoc-syntax">:
175                     </span><span class="jsdoc-var">this.viewMode </span><span class="jsdoc-syntax">= 0;
176                     </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
177             }
178         }
179
180         </span><span class="jsdoc-var">this.pickerEl </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">.createChild</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.bootstrap.DateField.template</span><span class="jsdoc-syntax">);
181
182 </span><span class="jsdoc-comment">//        this.el.select('&gt;.input-group', true).first().createChild(Roo.bootstrap.DateField.template);
183
184         </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">;
185
186         </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">);
187         </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">);
188
189         </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">);
190
191         </span><span class="jsdoc-var">this.startViewMode </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.viewMode</span><span class="jsdoc-syntax">;
192
193         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.singleMode</span><span class="jsdoc-syntax">){
194             </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">'thead &gt; tr &gt; th'</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">){
195                 </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">);
196                 </span><span class="jsdoc-var">v.hide</span><span class="jsdoc-syntax">();
197             });
198
199             </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">'tbody &gt; tr &gt; td'</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">){
200                 </span><span class="jsdoc-var">v.setStyle</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'width'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'189px'</span><span class="jsdoc-syntax">);
201             });
202         }
203
204         </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">){
205             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.calendarWeeks</span><span class="jsdoc-syntax">){
206                 </span><span class="jsdoc-var">v.remove</span><span class="jsdoc-syntax">();
207                 </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
208             }
209
210             </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</span><span class="jsdoc-syntax">;
211             </span><span class="jsdoc-var">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">){
212                 </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;
213             });
214         });
215
216
217         </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;
218
219         </span><span class="jsdoc-var">this.setStartDate</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.startDate</span><span class="jsdoc-syntax">);
220         </span><span class="jsdoc-var">this.setEndDate</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.endDate</span><span class="jsdoc-syntax">);
221
222         </span><span class="jsdoc-var">this.setDaysOfWeekDisabled</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.daysOfWeekDisabled</span><span class="jsdoc-syntax">);
223
224         </span><span class="jsdoc-var">this.fillDow</span><span class="jsdoc-syntax">();
225         </span><span class="jsdoc-var">this.fillMonths</span><span class="jsdoc-syntax">();
226         </span><span class="jsdoc-var">this.update</span><span class="jsdoc-syntax">();
227         </span><span class="jsdoc-var">this.showMode</span><span class="jsdoc-syntax">();
228
229         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.isInline</span><span class="jsdoc-syntax">) {
230             </span><span class="jsdoc-var">this.showPopup</span><span class="jsdoc-syntax">();
231         }
232     },
233
234     </span><span class="jsdoc-var">picker </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
235     {
236         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.pickerEl</span><span class="jsdoc-syntax">;
237 </span><span class="jsdoc-comment">//        return this.el.select('.datepicker', true).first();
238     </span><span class="jsdoc-syntax">},
239
240     </span><span class="jsdoc-var">fillDow</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
241     {
242         </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">;
243
244         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">dow </span><span class="jsdoc-syntax">= {
245             </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'tr'</span><span class="jsdoc-syntax">,
246             </span><span class="jsdoc-var">cn</span><span class="jsdoc-syntax">: [
247
248             ]
249         };
250
251         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.calendarWeeks</span><span class="jsdoc-syntax">){
252             </span><span class="jsdoc-var">dow.cn.push</span><span class="jsdoc-syntax">({
253                 </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'th'</span><span class="jsdoc-syntax">,
254                 </span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'cw'</span><span class="jsdoc-syntax">,
255                 </span><span class="jsdoc-var">html</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'&amp;nbsp;'
256             </span><span class="jsdoc-syntax">})
257         }
258
259         </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) {
260             </span><span class="jsdoc-var">dow.cn.push</span><span class="jsdoc-syntax">({
261                 </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'th'</span><span class="jsdoc-syntax">,
262                 </span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'dow'</span><span class="jsdoc-syntax">,
263                 </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]
264             });
265         }
266
267         </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">);
268     },
269
270     </span><span class="jsdoc-var">fillMonths</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
271     {
272         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= 0;
273         </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">();
274
275         </span><span class="jsdoc-var">months.dom.innerHTML </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">;
276
277         </span><span class="jsdoc-keyword">while </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">&lt; 12) {
278             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">month </span><span class="jsdoc-syntax">= {
279                 </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'span'</span><span class="jsdoc-syntax">,
280                 </span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'month'</span><span class="jsdoc-syntax">,
281                 </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">++]
282             };
283
284             </span><span class="jsdoc-var">months.createChild</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">month</span><span class="jsdoc-syntax">);
285         }
286
287     },
288
289     </span><span class="jsdoc-var">update</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
290     {
291         </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-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">) &amp;&amp; !</span><span class="jsdoc-var">this.date.length</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">;
292
293         </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">) {
294             </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">);
295         } </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">) {
296             </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">);
297         } </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
298             </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">);
299         }
300
301         </span><span class="jsdoc-var">this.fill</span><span class="jsdoc-syntax">();
302     },
303
304     </span><span class="jsdoc-var">fill</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
305     {
306         </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">),
307                 </span><span class="jsdoc-var">year </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">d.getUTCFullYear</span><span class="jsdoc-syntax">(),
308                 </span><span class="jsdoc-var">month </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">d.getUTCMonth</span><span class="jsdoc-syntax">(),
309                 </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">,
310                 </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">,
311                 </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">,
312                 </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">,
313                 </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">(),
314                 </span><span class="jsdoc-var">today </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.UTCToday</span><span class="jsdoc-syntax">();
315
316         </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">;
317
318 </span><span class="jsdoc-comment">//        this.picker().select('&gt;tfoot th.today', true).first().dom.innerHTML = Roo.bootstrap.DateField.dates[this.language].today;
319
320 //        this.picker.select('&gt;tfoot th.today').
321 //                                              .text(dates[this.language].today)
322 //                                              .toggle(this.todayBtn !== false);
323
324         </span><span class="jsdoc-var">this.updateNavArrows</span><span class="jsdoc-syntax">();
325         </span><span class="jsdoc-var">this.fillMonths</span><span class="jsdoc-syntax">();
326
327         </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),
328
329         </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">());
330
331         </span><span class="jsdoc-var">prevMonth.setUTCDate</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">day</span><span class="jsdoc-syntax">);
332
333         </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);
334
335         </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">);
336
337         </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);
338
339         </span><span class="jsdoc-var">nextMonth </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">nextMonth.valueOf</span><span class="jsdoc-syntax">();
340
341         </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">;
342
343         </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">;
344
345         </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">) {
346             </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">;
347
348             </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">) {
349                 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">fillMonths</span><span class="jsdoc-syntax">){
350                     </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">);
351                 }
352
353                 </span><span class="jsdoc-var">fillMonths </span><span class="jsdoc-syntax">= {
354                     </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'tr'</span><span class="jsdoc-syntax">,
355                     </span><span class="jsdoc-var">cn</span><span class="jsdoc-syntax">: []
356                 };
357
358                 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.calendarWeeks</span><span class="jsdoc-syntax">){
359                     </span><span class="jsdoc-comment">// ISO 8601: First week contains first thursday.
360                     // ISO also states week starts on Monday, but we can be more abstract here.
361                     </span><span class="jsdoc-keyword">var
362                     </span><span class="jsdoc-comment">// Start of current week: based on weekstart/current date
363                     </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 * 864e5),
364                     </span><span class="jsdoc-comment">// Thursday of this week
365                     </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 * 864e5),
366                     </span><span class="jsdoc-comment">// First Thursday of year, year from thursday
367                     </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*864e5),
368                     </span><span class="jsdoc-comment">// Calendar week: ms between thursdays, div ms per day, div 7 days
369                     </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">) / 864e5 / 7 + 1;
370
371                     </span><span class="jsdoc-var">fillMonths.cn.push</span><span class="jsdoc-syntax">({
372                         </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'td'</span><span class="jsdoc-syntax">,
373                         </span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'cw'</span><span class="jsdoc-syntax">,
374                         </span><span class="jsdoc-var">html</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">calWeek
375                     </span><span class="jsdoc-syntax">});
376                 }
377             }
378
379             </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">)) {
380                 </span><span class="jsdoc-var">clsName </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-string">' old'</span><span class="jsdoc-syntax">;
381             } </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">)) {
382                 </span><span class="jsdoc-var">clsName </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-string">' new'</span><span class="jsdoc-syntax">;
383             }
384             </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;
385                 </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;
386                 </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;
387                 </span><span class="jsdoc-var">prevMonth.getUTCDate</span><span class="jsdoc-syntax">() == </span><span class="jsdoc-var">today.getDate</span><span class="jsdoc-syntax">()) {
388                 </span><span class="jsdoc-var">clsName </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-string">' today'</span><span class="jsdoc-syntax">;
389             }
390
391             </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">) {
392                 </span><span class="jsdoc-var">clsName </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-string">' active'</span><span class="jsdoc-syntax">;
393             }
394
395             </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">||
396                     </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) {
397                     </span><span class="jsdoc-var">clsName </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-string">' disabled'</span><span class="jsdoc-syntax">;
398             }
399
400             </span><span class="jsdoc-var">fillMonths.cn.push</span><span class="jsdoc-syntax">({
401                 </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'td'</span><span class="jsdoc-syntax">,
402                 </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">,
403                 </span><span class="jsdoc-var">html</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">prevMonth.getDate</span><span class="jsdoc-syntax">()
404             });
405
406             </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);
407         }
408
409         </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">();
410         </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">();
411
412         </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">;
413
414         </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">){
415             </span><span class="jsdoc-var">v.removeClass</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'active'</span><span class="jsdoc-syntax">);
416
417             </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">){
418                 </span><span class="jsdoc-var">v.addClass</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'active'</span><span class="jsdoc-syntax">);
419             }
420
421             </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">)) {
422                 </span><span class="jsdoc-var">v.addClass</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'disabled'</span><span class="jsdoc-syntax">);
423             }
424
425         });
426
427
428         </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;
429
430         </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);
431
432         </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">;
433
434         </span><span class="jsdoc-var">year </span><span class="jsdoc-syntax">-= 1;
435         </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">++) {
436             </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">({
437                 </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'span'</span><span class="jsdoc-syntax">,
438                 </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">),
439                 </span><span class="jsdoc-var">html</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">year
440             </span><span class="jsdoc-syntax">});
441
442             </span><span class="jsdoc-var">year </span><span class="jsdoc-syntax">+= 1;
443         }
444     },
445
446     </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">)
447     {
448         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">dir</span><span class="jsdoc-syntax">) {
449             </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">));
450         }
451
452         </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">){
453             </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">;
454             </span><span class="jsdoc-var">v.hide</span><span class="jsdoc-syntax">();
455         });
456         </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">();
457     },
458
459     </span><span class="jsdoc-var">place</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
460     {
461         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.isInline</span><span class="jsdoc-syntax">) {
462             </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
463         }
464
465         </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">]);
466
467         </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){
468             </span><span class="jsdoc-comment">/*
469              * place to the top of element!
470              *
471              */
472
473             </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">);
474             </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">.getTop</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">())</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">());
475
476             </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
477         }
478
479         </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">);
480
481         </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">.getBottom</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">());
482     },
483
484     </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">)
485     {
486         </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">){
487             </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">value</span><span class="jsdoc-syntax">;
488         }
489         </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">);
490         </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">|| </span><span class="jsdoc-var">value.match</span><span class="jsdoc-syntax">(/^(\d{4})-0?(\d+)-0?(\d+)/))) {
491             </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">);
492         }
493         </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">){
494             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.altFormatsArray</span><span class="jsdoc-syntax">){
495                 </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">);
496             }
497             </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">++){
498                 </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">]);
499             }
500         }
501         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">v</span><span class="jsdoc-syntax">;
502     },
503
504     </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">)
505     {
506         </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">)) ?
507         </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">);
508     },
509
510     </span><span class="jsdoc-var">onFocus </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
511     {
512         </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">);
513         </span><span class="jsdoc-var">this.showPopup</span><span class="jsdoc-syntax">();
514     },
515
516     </span><span class="jsdoc-var">onBlur </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
517     {
518         </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">);
519
520         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">d </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.inputEl</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.getValue</span><span class="jsdoc-syntax">();
521
522         </span><span class="jsdoc-var">this.setValue</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">d</span><span class="jsdoc-syntax">);
523
524         </span><span class="jsdoc-var">this.hidePopup</span><span class="jsdoc-syntax">();
525     },
526
527     </span><span class="jsdoc-var">showPopup </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
528     {
529         </span><span class="jsdoc-var">this.picker</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.show</span><span class="jsdoc-syntax">();
530         </span><span class="jsdoc-var">this.update</span><span class="jsdoc-syntax">();
531         </span><span class="jsdoc-var">this.place</span><span class="jsdoc-syntax">();
532
533         </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'showpopup'</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">);
534     },
535
536     </span><span class="jsdoc-var">hidePopup </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
537     {
538         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.isInline</span><span class="jsdoc-syntax">) {
539             </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
540         }
541         </span><span class="jsdoc-var">this.picker</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.hide</span><span class="jsdoc-syntax">();
542         </span><span class="jsdoc-var">this.viewMode </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.startViewMode</span><span class="jsdoc-syntax">;
543         </span><span class="jsdoc-var">this.showMode</span><span class="jsdoc-syntax">();
544
545         </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'hidepopup'</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">);
546
547     },
548
549     </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">)
550     {
551         </span><span class="jsdoc-var">e.stopPropagation</span><span class="jsdoc-syntax">();
552         </span><span class="jsdoc-var">e.preventDefault</span><span class="jsdoc-syntax">();
553     },
554
555     </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">)
556     {
557         </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">);
558         </span><span class="jsdoc-var">this.update</span><span class="jsdoc-syntax">();
559     },
560
561     </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">)
562     {
563         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'beforeselect'</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">) !== </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">){
564             </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.parseDate</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">v</span><span class="jsdoc-syntax">) )</span><span class="jsdoc-var">.clearTime</span><span class="jsdoc-syntax">();
565
566             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">isNaN</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">d.getTime</span><span class="jsdoc-syntax">())){
567                 </span><span class="jsdoc-var">this.date </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.viewDate </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">;
568                 </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-string">''</span><span class="jsdoc-syntax">);
569                 </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
570             }
571
572             </span><span class="jsdoc-var">v </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.formatDate</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">d</span><span class="jsdoc-syntax">);
573
574             </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">);
575
576             </span><span class="jsdoc-var">this.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">d.getTime</span><span class="jsdoc-syntax">() - </span><span class="jsdoc-var">d.getTimezoneOffset</span><span class="jsdoc-syntax">()*60000);
577
578             </span><span class="jsdoc-var">this.update</span><span class="jsdoc-syntax">();
579
580             </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">);
581         }
582     },
583
584     </span><span class="jsdoc-var">getValue</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
585     {
586         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.formatDate</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.date</span><span class="jsdoc-syntax">);
587     },
588
589     </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">)
590     {
591         </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">()){
592             </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
593                 </span><span class="jsdoc-var">this.showPopup</span><span class="jsdoc-syntax">();
594             }
595             </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
596         }
597
598         </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">,
599         </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">,
600         </span><span class="jsdoc-var">newDate</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">newViewDate</span><span class="jsdoc-syntax">;
601
602         </span><span class="jsdoc-keyword">switch</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e.keyCode</span><span class="jsdoc-syntax">){
603             </span><span class="jsdoc-keyword">case </span><span class="jsdoc-syntax">27: </span><span class="jsdoc-comment">// escape
604                 </span><span class="jsdoc-var">this.hidePopup</span><span class="jsdoc-syntax">();
605                 </span><span class="jsdoc-var">e.preventDefault</span><span class="jsdoc-syntax">();
606                 </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
607             </span><span class="jsdoc-keyword">case </span><span class="jsdoc-syntax">37: </span><span class="jsdoc-comment">// left
608             </span><span class="jsdoc-keyword">case </span><span class="jsdoc-syntax">39: </span><span class="jsdoc-comment">// right
609                 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.keyboardNavigation</span><span class="jsdoc-syntax">) {
610                     </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
611                 }
612                 </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;
613
614                 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e.ctrlKey</span><span class="jsdoc-syntax">){
615                     </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">);
616                     </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">);
617                 } </span><span class="jsdoc-keyword">else if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e.shiftKey</span><span class="jsdoc-syntax">){
618                     </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">);
619                     </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">);
620                 } </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
621                     </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">);
622                     </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">);
623                     </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">);
624                     </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">);
625                 }
626                 </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">)){
627                     </span><span class="jsdoc-var">this.date </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">newDate</span><span class="jsdoc-syntax">;
628                     </span><span class="jsdoc-var">this.viewDate </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">newViewDate</span><span class="jsdoc-syntax">;
629                     </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">));
630 </span><span class="jsdoc-comment">//                    this.update();
631                     </span><span class="jsdoc-var">e.preventDefault</span><span class="jsdoc-syntax">();
632                     </span><span class="jsdoc-var">dateChanged </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
633                 }
634                 </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
635             </span><span class="jsdoc-keyword">case </span><span class="jsdoc-syntax">38: </span><span class="jsdoc-comment">// up
636             </span><span class="jsdoc-keyword">case </span><span class="jsdoc-syntax">40: </span><span class="jsdoc-comment">// down
637                 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.keyboardNavigation</span><span class="jsdoc-syntax">) {
638                     </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
639                 }
640                 </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;
641                 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e.ctrlKey</span><span class="jsdoc-syntax">){
642                     </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">);
643                     </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">);
644                 } </span><span class="jsdoc-keyword">else if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e.shiftKey</span><span class="jsdoc-syntax">){
645                     </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">);
646                     </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">);
647                 } </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
648                     </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">);
649                     </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);
650                     </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">);
651                     </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);
652                 }
653                 </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">)){
654                     </span><span class="jsdoc-var">this.date </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">newDate</span><span class="jsdoc-syntax">;
655                     </span><span class="jsdoc-var">this.viewDate </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">newViewDate</span><span class="jsdoc-syntax">;
656                     </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">));
657 </span><span class="jsdoc-comment">//                    this.update();
658                     </span><span class="jsdoc-var">e.preventDefault</span><span class="jsdoc-syntax">();
659                     </span><span class="jsdoc-var">dateChanged </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
660                 }
661                 </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
662             </span><span class="jsdoc-keyword">case </span><span class="jsdoc-syntax">13: </span><span class="jsdoc-comment">// enter
663                 </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">));
664                 </span><span class="jsdoc-var">this.hidePopup</span><span class="jsdoc-syntax">();
665                 </span><span class="jsdoc-var">e.preventDefault</span><span class="jsdoc-syntax">();
666                 </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
667             </span><span class="jsdoc-keyword">case </span><span class="jsdoc-syntax">9: </span><span class="jsdoc-comment">// tab
668                 </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">));
669                 </span><span class="jsdoc-var">this.hidePopup</span><span class="jsdoc-syntax">();
670                 </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
671             </span><span class="jsdoc-keyword">case </span><span class="jsdoc-syntax">16: </span><span class="jsdoc-comment">// shift
672             </span><span class="jsdoc-keyword">case </span><span class="jsdoc-syntax">17: </span><span class="jsdoc-comment">// ctrl
673             </span><span class="jsdoc-keyword">case </span><span class="jsdoc-syntax">18: </span><span class="jsdoc-comment">// alt
674                 </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
675             </span><span class="jsdoc-keyword">default </span><span class="jsdoc-syntax">:
676                 </span><span class="jsdoc-var">this.hidePopup</span><span class="jsdoc-syntax">();
677
678         }
679     },
680
681
682     </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">)
683     {
684         </span><span class="jsdoc-var">e.stopPropagation</span><span class="jsdoc-syntax">();
685         </span><span class="jsdoc-var">e.preventDefault</span><span class="jsdoc-syntax">();
686
687         </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">();
688
689         </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">){
690             </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">;
691         }
692
693         </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">;
694         </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">;
695         </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">;
696         </span><span class="jsdoc-comment">//Roo.log(nodeName);
697
698         </span><span class="jsdoc-keyword">switch</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">nodeName.toLowerCase</span><span class="jsdoc-syntax">()) {
699             </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">'th'</span><span class="jsdoc-syntax">:
700                 </span><span class="jsdoc-keyword">switch</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">className</span><span class="jsdoc-syntax">) {
701                     </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">'switch'</span><span class="jsdoc-syntax">:
702                         </span><span class="jsdoc-var">this.showMode</span><span class="jsdoc-syntax">(1);
703                         </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
704                     </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">'prev'</span><span class="jsdoc-syntax">:
705                     </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">'next'</span><span class="jsdoc-syntax">:
706                         </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);
707                         </span><span class="jsdoc-keyword">switch</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.viewMode</span><span class="jsdoc-syntax">){
708                                 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-syntax">0:
709                                         </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">);
710                                         </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
711                                 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-syntax">1:
712                                 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-syntax">2:
713                                         </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">);
714                                         </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
715                         }
716                         </span><span class="jsdoc-var">this.fill</span><span class="jsdoc-syntax">();
717                         </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
718                     </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">'today'</span><span class="jsdoc-syntax">:
719                         </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">();
720                         </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);
721 </span><span class="jsdoc-comment">//                        this.fill()
722                         </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">));
723
724                         </span><span class="jsdoc-var">this.hidePopup</span><span class="jsdoc-syntax">();
725                         </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
726                 }
727                 </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
728             </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">'span'</span><span class="jsdoc-syntax">:
729                 </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">) &lt; 0) {
730                     </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.viewDate</span><span class="jsdoc-syntax">) {
731                         </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">();
732                     }
733                     </span><span class="jsdoc-var">this.viewDate.setUTCDate</span><span class="jsdoc-syntax">(1);
734                     </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">) &gt; -1) {
735                         </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">));
736                     } </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
737                         </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;
738                         </span><span class="jsdoc-var">this.viewDate.setUTCFullYear</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">year</span><span class="jsdoc-syntax">);
739
740                     }
741
742                     </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.singleMode</span><span class="jsdoc-syntax">){
743                         </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.viewDate</span><span class="jsdoc-syntax">));
744                         </span><span class="jsdoc-var">this.hidePopup</span><span class="jsdoc-syntax">();
745                         </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
746                     }
747
748                     </span><span class="jsdoc-var">this.showMode</span><span class="jsdoc-syntax">(-1);
749                     </span><span class="jsdoc-var">this.fill</span><span class="jsdoc-syntax">();
750                 }
751                 </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
752
753             </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">'td'</span><span class="jsdoc-syntax">:
754                 </span><span class="jsdoc-comment">//Roo.log(className);
755                 </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">) &gt; -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">) &lt; 0 ){
756                     </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;
757                     </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">year </span><span class="jsdoc-syntax">=  (</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">.getUTCFullYear</span><span class="jsdoc-syntax">(),
758                         </span><span class="jsdoc-var">month </span><span class="jsdoc-syntax">= (</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">.getUTCMonth</span><span class="jsdoc-syntax">();
759
760                     </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">) &gt; -1) {
761                         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">month </span><span class="jsdoc-syntax">=== 0 ){
762                             </span><span class="jsdoc-var">month </span><span class="jsdoc-syntax">= 11;
763                             </span><span class="jsdoc-var">year </span><span class="jsdoc-syntax">-= 1;
764                         }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
765                             </span><span class="jsdoc-var">month </span><span class="jsdoc-syntax">-= 1;
766                         }
767                     } </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">) &gt; -1) {
768                         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">month </span><span class="jsdoc-syntax">== 11) {
769                             </span><span class="jsdoc-var">month </span><span class="jsdoc-syntax">= 0;
770                             </span><span class="jsdoc-var">year </span><span class="jsdoc-syntax">+= 1;
771                         } </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
772                             </span><span class="jsdoc-var">month </span><span class="jsdoc-syntax">+= 1;
773                         }
774                     }
775                     </span><span class="jsdoc-comment">//Roo.log([year,month,day]);
776                     </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);
777                     </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);
778 </span><span class="jsdoc-comment">//                    this.fill();
779                     //Roo.log(this.formatDate(this.date));
780                     </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">));
781                     </span><span class="jsdoc-var">this.hidePopup</span><span class="jsdoc-syntax">();
782                 }
783                 </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
784         }
785     },
786
787     </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">)
788     {
789         </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">;
790         </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">) {
791             </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">);
792         }
793         </span><span class="jsdoc-var">this.update</span><span class="jsdoc-syntax">();
794         </span><span class="jsdoc-var">this.updateNavArrows</span><span class="jsdoc-syntax">();
795     },
796
797     </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">)
798     {
799         </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">;
800         </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">) {
801             </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">);
802         }
803         </span><span class="jsdoc-var">this.update</span><span class="jsdoc-syntax">();
804         </span><span class="jsdoc-var">this.updateNavArrows</span><span class="jsdoc-syntax">();
805     },
806
807     </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">)
808     {
809         </span><span class="jsdoc-var">this.daysOfWeekDisabled </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">daysOfWeekDisabled </span><span class="jsdoc-syntax">|| [];
810         </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">) {
811             </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*/);
812         }
813         </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">) {
814             </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);
815         });
816         </span><span class="jsdoc-var">this.update</span><span class="jsdoc-syntax">();
817         </span><span class="jsdoc-var">this.updateNavArrows</span><span class="jsdoc-syntax">();
818     },
819
820     </span><span class="jsdoc-var">updateNavArrows</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
821     {
822         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.singleMode</span><span class="jsdoc-syntax">){
823             </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
824         }
825
826         </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">),
827         </span><span class="jsdoc-var">year </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">d.getUTCFullYear</span><span class="jsdoc-syntax">(),
828         </span><span class="jsdoc-var">month </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">d.getUTCMonth</span><span class="jsdoc-syntax">();
829
830         </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">){
831             </span><span class="jsdoc-var">v.show</span><span class="jsdoc-syntax">();
832             </span><span class="jsdoc-keyword">switch </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.viewMode</span><span class="jsdoc-syntax">) {
833                 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-syntax">0:
834
835                     </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">()) {
836                         </span><span class="jsdoc-var">v.hide</span><span class="jsdoc-syntax">();
837                     }
838                     </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
839                 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-syntax">1:
840                 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-syntax">2:
841                     </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">()) {
842                         </span><span class="jsdoc-var">v.hide</span><span class="jsdoc-syntax">();
843                     }
844                     </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
845             }
846         });
847
848         </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">){
849             </span><span class="jsdoc-var">v.show</span><span class="jsdoc-syntax">();
850             </span><span class="jsdoc-keyword">switch </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.viewMode</span><span class="jsdoc-syntax">) {
851                 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-syntax">0:
852
853                     </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">()) {
854                         </span><span class="jsdoc-var">v.hide</span><span class="jsdoc-syntax">();
855                     }
856                     </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
857                 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-syntax">1:
858                 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-syntax">2:
859                     </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">()) {
860                         </span><span class="jsdoc-var">v.hide</span><span class="jsdoc-syntax">();
861                     }
862                     </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
863             }
864         })
865     },
866
867     </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">)
868     {
869         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">dir</span><span class="jsdoc-syntax">) {
870             </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">date</span><span class="jsdoc-syntax">;
871         }
872         </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">()),
873         </span><span class="jsdoc-var">day </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">new_date.getUTCDate</span><span class="jsdoc-syntax">(),
874         </span><span class="jsdoc-var">month </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">new_date.getUTCMonth</span><span class="jsdoc-syntax">(),
875         </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">),
876         </span><span class="jsdoc-var">new_month</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">test</span><span class="jsdoc-syntax">;
877         </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;
878         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">mag </span><span class="jsdoc-syntax">== 1){
879             </span><span class="jsdoc-var">test </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">dir </span><span class="jsdoc-syntax">== -1
880             </span><span class="jsdoc-comment">// If going back one month, make sure month is not current month
881             // (eg, Mar 31 -&gt; Feb 31 == Feb 28, not Mar 02)
882             </span><span class="jsdoc-syntax">? </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
883                 </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">;
884             }
885             </span><span class="jsdoc-comment">// If going forward one month, make sure month is as expected
886             // (eg, Jan 31 -&gt; Feb 31 == Feb 28, not Mar 02)
887             </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
888                 </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">;
889             };
890             </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">;
891             </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">);
892             </span><span class="jsdoc-comment">// Dec -&gt; Jan (12) or Jan -&gt; Dec (-1) -- limit expected date to 0-11
893             </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) {
894                 </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;
895             }
896         } </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
897             </span><span class="jsdoc-comment">// For magnitudes &gt;1, move one month at a time...
898             </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">++) {
899                 </span><span class="jsdoc-comment">// ...which might decrease the day (eg, Jan 31 to Feb 28, etc)...
900                 </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">);
901             }
902             </span><span class="jsdoc-comment">// ...then reset the day, keeping it in the new month
903             </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">();
904             </span><span class="jsdoc-var">new_date.setUTCDate</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">day</span><span class="jsdoc-syntax">);
905             </span><span class="jsdoc-var">test </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
906                 </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">();
907             };
908         }
909         </span><span class="jsdoc-comment">// Common date-resetting loop -- if date is beyond end of month, make it
910         // end of month
911         </span><span class="jsdoc-keyword">while </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">test</span><span class="jsdoc-syntax">()){
912             </span><span class="jsdoc-var">new_date.setUTCDate</span><span class="jsdoc-syntax">(--</span><span class="jsdoc-var">day</span><span class="jsdoc-syntax">);
913             </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">);
914         }
915         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">new_date</span><span class="jsdoc-syntax">;
916     },
917
918     </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">)
919     {
920         </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);
921     },
922
923     </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">)
924     {
925         </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">;
926     },
927
928
929     </span><span class="jsdoc-var">remove</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
930     {
931         </span><span class="jsdoc-var">this.picker</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.remove</span><span class="jsdoc-syntax">();
932     },
933
934     </span><span class="jsdoc-var">validateValue </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">)
935     {
936         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.getVisibilityEl</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.hasClass</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'hidden'</span><span class="jsdoc-syntax">)){
937             </span><span class="jsdoc-keyword">return true</span><span class="jsdoc-syntax">;
938         }
939
940         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">value.length </span><span class="jsdoc-syntax">&lt; 1)  {
941             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.allowBlank</span><span class="jsdoc-syntax">){
942                 </span><span class="jsdoc-keyword">return true</span><span class="jsdoc-syntax">;
943             }
944             </span><span class="jsdoc-keyword">return false</span><span class="jsdoc-syntax">;
945         }
946
947         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">value.length </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">this.minLength</span><span class="jsdoc-syntax">){
948             </span><span class="jsdoc-keyword">return false</span><span class="jsdoc-syntax">;
949         }
950         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">value.length </span><span class="jsdoc-syntax">&gt; </span><span class="jsdoc-var">this.maxLength</span><span class="jsdoc-syntax">){
951             </span><span class="jsdoc-keyword">return false</span><span class="jsdoc-syntax">;
952         }
953         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.vtype</span><span class="jsdoc-syntax">){
954             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">vt </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.form.VTypes</span><span class="jsdoc-syntax">;
955             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">vt</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">this.vtype</span><span class="jsdoc-syntax">](</span><span class="jsdoc-var">value</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">)){
956                 </span><span class="jsdoc-keyword">return false</span><span class="jsdoc-syntax">;
957             }
958         }
959         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">typeof </span><span class="jsdoc-var">this.validator </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">&quot;function&quot;</span><span class="jsdoc-syntax">){
960             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">msg </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.validator</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">value</span><span class="jsdoc-syntax">);
961             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">msg </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">){
962                 </span><span class="jsdoc-keyword">return false</span><span class="jsdoc-syntax">;
963             }
964         }
965
966         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.regex </span><span class="jsdoc-syntax">&amp;&amp; !</span><span class="jsdoc-var">this.regex.test</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">value</span><span class="jsdoc-syntax">)){
967             </span><span class="jsdoc-keyword">return false</span><span class="jsdoc-syntax">;
968         }
969
970         </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.parseDate</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">value</span><span class="jsdoc-syntax">)) == </span><span class="jsdoc-string">'undefined'</span><span class="jsdoc-syntax">){
971             </span><span class="jsdoc-keyword">return false</span><span class="jsdoc-syntax">;
972         }
973
974         </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">this.parseDate</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">value</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.getTime</span><span class="jsdoc-syntax">() &gt; </span><span class="jsdoc-var">this.endDate.getTime</span><span class="jsdoc-syntax">()) {
975             </span><span class="jsdoc-keyword">return false</span><span class="jsdoc-syntax">;
976         }
977
978         </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">this.parseDate</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">value</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.getTime</span><span class="jsdoc-syntax">() &lt; </span><span class="jsdoc-var">this.startDate.getTime</span><span class="jsdoc-syntax">()) {
979             </span><span class="jsdoc-keyword">return false</span><span class="jsdoc-syntax">;
980         }
981
982
983         </span><span class="jsdoc-keyword">return true</span><span class="jsdoc-syntax">;
984     },
985
986     </span><span class="jsdoc-var">reset </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
987     {
988         </span><span class="jsdoc-var">this.date </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.viewDate </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">;
989
990         </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-string">''</span><span class="jsdoc-syntax">);
991     }
992
993 });
994
995 </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">,  {
996
997     </span><span class="jsdoc-var">head </span><span class="jsdoc-syntax">: {
998         </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'thead'</span><span class="jsdoc-syntax">,
999         </span><span class="jsdoc-var">cn</span><span class="jsdoc-syntax">: [
1000         {
1001             </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'tr'</span><span class="jsdoc-syntax">,
1002             </span><span class="jsdoc-var">cn</span><span class="jsdoc-syntax">: [
1003             {
1004                 </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'th'</span><span class="jsdoc-syntax">,
1005                 </span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'prev'</span><span class="jsdoc-syntax">,
1006                 </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;'
1007             </span><span class="jsdoc-syntax">},
1008             {
1009                 </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'th'</span><span class="jsdoc-syntax">,
1010                 </span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'switch'</span><span class="jsdoc-syntax">,
1011                 </span><span class="jsdoc-var">colspan</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'5'
1012             </span><span class="jsdoc-syntax">},
1013             {
1014                 </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'th'</span><span class="jsdoc-syntax">,
1015                 </span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'next'</span><span class="jsdoc-syntax">,
1016                 </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;'
1017             </span><span class="jsdoc-syntax">}
1018
1019             ]
1020         }
1021         ]
1022     },
1023
1024     </span><span class="jsdoc-var">content </span><span class="jsdoc-syntax">: {
1025         </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'tbody'</span><span class="jsdoc-syntax">,
1026         </span><span class="jsdoc-var">cn</span><span class="jsdoc-syntax">: [
1027         {
1028             </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'tr'</span><span class="jsdoc-syntax">,
1029             </span><span class="jsdoc-var">cn</span><span class="jsdoc-syntax">: [
1030             {
1031                 </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'td'</span><span class="jsdoc-syntax">,
1032                 </span><span class="jsdoc-var">colspan</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'7'
1033             </span><span class="jsdoc-syntax">}
1034             ]
1035         }
1036         ]
1037     },
1038
1039     </span><span class="jsdoc-var">footer </span><span class="jsdoc-syntax">: {
1040         </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'tfoot'</span><span class="jsdoc-syntax">,
1041         </span><span class="jsdoc-var">cn</span><span class="jsdoc-syntax">: [
1042         {
1043             </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'tr'</span><span class="jsdoc-syntax">,
1044             </span><span class="jsdoc-var">cn</span><span class="jsdoc-syntax">: [
1045             {
1046                 </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'th'</span><span class="jsdoc-syntax">,
1047                 </span><span class="jsdoc-var">colspan</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'7'</span><span class="jsdoc-syntax">,
1048                 </span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'today'
1049             </span><span class="jsdoc-syntax">}
1050
1051             ]
1052         }
1053         ]
1054     },
1055
1056     </span><span class="jsdoc-var">dates</span><span class="jsdoc-syntax">:{
1057         </span><span class="jsdoc-var">en</span><span class="jsdoc-syntax">: {
1058             </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">],
1059             </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">],
1060             </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">],
1061             </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">],
1062             </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">],
1063             </span><span class="jsdoc-var">today</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;Today&quot;
1064         </span><span class="jsdoc-syntax">}
1065     },
1066
1067     </span><span class="jsdoc-var">modes</span><span class="jsdoc-syntax">: [
1068     {
1069         </span><span class="jsdoc-var">clsName</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'days'</span><span class="jsdoc-syntax">,
1070         </span><span class="jsdoc-var">navFnc</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'Month'</span><span class="jsdoc-syntax">,
1071         </span><span class="jsdoc-var">navStep</span><span class="jsdoc-syntax">: 1
1072     },
1073     {
1074         </span><span class="jsdoc-var">clsName</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'months'</span><span class="jsdoc-syntax">,
1075         </span><span class="jsdoc-var">navFnc</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'FullYear'</span><span class="jsdoc-syntax">,
1076         </span><span class="jsdoc-var">navStep</span><span class="jsdoc-syntax">: 1
1077     },
1078     {
1079         </span><span class="jsdoc-var">clsName</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'years'</span><span class="jsdoc-syntax">,
1080         </span><span class="jsdoc-var">navFnc</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'FullYear'</span><span class="jsdoc-syntax">,
1081         </span><span class="jsdoc-var">navStep</span><span class="jsdoc-syntax">: 10
1082     }]
1083 });
1084
1085 </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">,  {
1086
1087     </span><span class="jsdoc-var">template </span><span class="jsdoc-syntax">: {
1088         </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'div'</span><span class="jsdoc-syntax">,
1089         </span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'datepicker dropdown-menu roo-dynamic shadow'</span><span class="jsdoc-syntax">,
1090         </span><span class="jsdoc-var">cn</span><span class="jsdoc-syntax">: [
1091         {
1092             </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'div'</span><span class="jsdoc-syntax">,
1093             </span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'datepicker-days'</span><span class="jsdoc-syntax">,
1094             </span><span class="jsdoc-var">cn</span><span class="jsdoc-syntax">: [
1095             {
1096                 </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'table'</span><span class="jsdoc-syntax">,
1097                 </span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'table-condensed'</span><span class="jsdoc-syntax">,
1098                 </span><span class="jsdoc-var">cn</span><span class="jsdoc-syntax">:[
1099                 </span><span class="jsdoc-var">Roo.bootstrap.DateField.head</span><span class="jsdoc-syntax">,
1100                 {
1101                     </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'tbody'
1102                 </span><span class="jsdoc-syntax">},
1103                 </span><span class="jsdoc-var">Roo.bootstrap.DateField.footer
1104                 </span><span class="jsdoc-syntax">]
1105             }
1106             ]
1107         },
1108         {
1109             </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'div'</span><span class="jsdoc-syntax">,
1110             </span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'datepicker-months'</span><span class="jsdoc-syntax">,
1111             </span><span class="jsdoc-var">cn</span><span class="jsdoc-syntax">: [
1112             {
1113                 </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'table'</span><span class="jsdoc-syntax">,
1114                 </span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'table-condensed'</span><span class="jsdoc-syntax">,
1115                 </span><span class="jsdoc-var">cn</span><span class="jsdoc-syntax">:[
1116                 </span><span class="jsdoc-var">Roo.bootstrap.DateField.head</span><span class="jsdoc-syntax">,
1117                 </span><span class="jsdoc-var">Roo.bootstrap.DateField.content</span><span class="jsdoc-syntax">,
1118                 </span><span class="jsdoc-var">Roo.bootstrap.DateField.footer
1119                 </span><span class="jsdoc-syntax">]
1120             }
1121             ]
1122         },
1123         {
1124             </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'div'</span><span class="jsdoc-syntax">,
1125             </span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'datepicker-years'</span><span class="jsdoc-syntax">,
1126             </span><span class="jsdoc-var">cn</span><span class="jsdoc-syntax">: [
1127             {
1128                 </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'table'</span><span class="jsdoc-syntax">,
1129                 </span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'table-condensed'</span><span class="jsdoc-syntax">,
1130                 </span><span class="jsdoc-var">cn</span><span class="jsdoc-syntax">:[
1131                 </span><span class="jsdoc-var">Roo.bootstrap.DateField.head</span><span class="jsdoc-syntax">,
1132                 </span><span class="jsdoc-var">Roo.bootstrap.DateField.content</span><span class="jsdoc-syntax">,
1133                 </span><span class="jsdoc-var">Roo.bootstrap.DateField.footer
1134                 </span><span class="jsdoc-syntax">]
1135             }
1136             ]
1137         }
1138         ]
1139     }
1140 });
1141
1142
1143
1144  </span></code></body></html>