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