UNPKG

js-pkg

Version:
10 lines 79.2 kB
/*! * filename: ej.datepicker.min.js * version : 15.3.0.33 * Copyright Syncfusion Inc. 2001 - 2017. All rights reserved. * Use of this code is subject to the terms of our license. * A copy of the current license can be obtained at any time by e-mailing * licensing@syncfusion.com. Any infringement will be prosecuted under * applicable laws. */ (function(n){typeof define=="function"&&define.amd?define(["./../common/ej.globalize.min","./../common/ej.core.min","./../common/ej.touch.min"],n):n()})(function(){(function(n,t,r){t.widget("ejDatePicker","ej.DatePicker",{element:null,_rootCss:"e-datepicker",model:null,validTags:["input","div","span"],_setFirst:!1,_addToPersist:["value"],_cancelValue:!1,type:"editor",angular:{require:["?ngModel","^?form","^?ngModelOptions"],requireFormatters:!0},defaults:{dayHeaderFormat:"min",showPopupButton:!0,enableAnimation:!0,showFooter:!0,displayInline:!1,htmlAttributes:{},dateFormat:"",watermarkText:"Select date",value:null,minDate:new Date("01/01/1900"),maxDate:new Date("12/31/2099"),startLevel:"month",depthLevel:"",cssClass:"",startDay:-1,stepMonths:1,locale:"en-US",showOtherMonths:!0,enableStrictMode:!1,enablePersistence:!1,enabled:!0,width:"",height:"",enableRTL:!1,showRoundedCorner:!1,headerFormat:"MMMM yyyy",buttonText:"Today",readOnly:!1,specialDates:null,fields:{date:"date",tooltip:"tooltip",iconClass:"iconClass",cssClass:"cssClass"},showTooltip:!0,showDisabledRange:!0,highlightSection:"none",highlightWeekend:!1,validationRules:null,validationMessage:null,validationMessages:null,allowEdit:!0,tooltipFormat:"ddd MMM dd yyyy",allowDrillDown:!0,blackoutDates:[],beforeDateCreate:null,open:null,close:null,select:null,change:null,focusIn:null,focusOut:null,beforeOpen:null,beforeClose:null,navigate:null,create:null,destroy:null,weekNumber:!1},dataTypes:{startDay:"number",stepMonths:"number",showOtherMonths:"boolean",enableStrictMode:"boolean",showRoundedCorner:"boolean",enableRTL:"boolean",displayInline:"boolean",showPopupButton:"boolean",locale:"string",readOnly:"boolean",cssClass:"string",dateFormat:"string",watermarkText:"string",headerFormat:"string",buttonText:"string",specialDates:"data",showTooltip:"boolean",highlightSection:"enum",highlightWeekend:"boolean",enableAnimation:"boolean",validationRules:"data",validationMessage:"data",validationMessages:"data",htmlAttributes:"data",tooltipFormat:"string",allowEdit:"boolean",allowDrillDown:"boolean",weekNumber:"boolean"},_renderPopup:function(){this.sfCalendar=t.buildTag("div.e-datepicker e-popup e-widget "+this.model.cssClass+" e-calendar "+(this.model.specialDates?this.model.specialDates[0][this._mapField._icon]?"e-icons ":"":""),"",{},{id:this._id?"e-"+this._id:""}).attr({"aria-hidden":"true"}).attr(this._isIE8?{unselectable:"on"}:{}).insertBefore(this.element);this.model.displayInline&&!this.element.is("input")&&this.sfCalendar.addClass("e-inline");this.popup=this.sfCalendar;t.isTouchDevice()||this.sfCalendar.addClass("e-ntouch");this._setRestrictDateState(this.model.showDisabledRange);this._createCalender();this._setDisplayInline(this.model.displayInline);this._resizeCalender();this._setRTL(this.model.enableRTL);this._setRoundedCorner(this.model.showRoundedCorner);this._wireCalendarEvents()},_setModel:function(i){var r,o;t.isNullOrUndefined(this.sfCalendar)&&this._renderPopup();var u=!1,f=!1,e=!1;for(r in i)switch(r){case"dayHeaderFormat":this.model.dayHeaderFormat=i[r];u=f=!0;break;case"weekNumber":this.model.weekNumber=i[r];this._refreshDatepicker();break;case"showPopupButton":this._renderDateIcon(i[r],!0);break;case"displayInline":if(i[r]||this._bindDateButton(),this._setDisplayInline(i[r]),!this.model.allowEdit&&!i[r]&&this._isInputBox)this.element.on("mousedown",n.proxy(this._showDatePopUp,this));break;case"value":t.isPlainObject(i[r])&&(i[r]=null);t.isNullOrUndefined(i.minDate)&&t.isNullOrUndefined(i.maxDate)?(this._setDateValue(i[r]),this._specificFormat()&&(this._stopRefresh=!0),i[r]=this.model.value):this._updateDateValue(i[r]);e=u=f=!0;break;case"specialDates":this.model.specialDates=i[r];this._createSpecialDateObject();u=f=!0;break;case"fields":this.model.fields=i[r];this._mapField=this._getMapper();u=f=!0;break;case"showTooltip":this.model.showTooltip=i[r];u=f=!0;break;case"highlightWeekend":this.model.highlightWeekend=i[r];u=f=!0;break;case"highlightSection":this.model.highlightSection=i[r];u=f=!0;break;case"dateFormat":this.model.dateFormat=i[r];this._ensureValue();break;case"minDate":this._setMinDate(i[r]);i[r]=this.model.minDate;this._ensureValue();e=u=f=!0;break;case"maxDate":this._setMaxDate(i[r]);i[r]=this.model.maxDate;this._ensureValue();e=u=f=!0;break;case"locale":this.model.locale=i[r];this.model.startDay=t.isNullOrUndefined(this._options.startDay)&&this.model.startDay===this.culture.calendar.firstDay?-1:this._options.startDay===this.defaults.startDay?-1:this.model.startDay;this.model.dateFormat=t.isNullOrUndefined(this._options.dateFormat)&&this.model.dateFormat===this.culture.calendar.patterns.d?"":this.model.dateFormat;this._setCulture(i[r]);this.model.value&&this._setDateValue(this.model.value);i[r]=this.model.locale;u=f=!0;break;case"showOtherMonths":this.model.showOtherMonths=i[r];this._otherMonthsVisibility();break;case"enableStrictMode":this.model.enableStrictMode=i[r];e=u=f=!0;break;case"validationRules":this.model.validationRules!=null&&(this.element.rules("remove"),this.model.validationMessages=null);this.model.validationRules=i[r];this.model.validationRules!=null&&(this._initValidator(),this._setValidation());break;case"validationMessages":this.model.validationMessages=i[r];this.model.validationRules!=null&&this.model.validationMessages!=null&&(this._initValidator(),this._setValidation());break;case"validationMessage":this.model.validationMessages=i[r];this.model.validationRules!=null&&this.model.validationMessages!=null&&(this._initValidator(),this._setValidation());break;case"readOnly":this.model.readOnly=i[r];this._disbleMaualInput();break;case"width":this._setWidth(i[r]);break;case"height":this._setHeight(i[r]);break;case"cssClass":this._setSkin(i[r]);break;case"enableRTL":this._setRTL(i[r]);break;case"showRoundedCorner":this._setRoundedCorner(i[r]);break;case"enabled":i[r]?this.enable():this.disable();break;case"buttonText":t.isNullOrUndefined(this._options)&&(this._options={});this._options.buttonText=this.model.buttonText=i[r];this._localizedLabels.buttonText=this.model.buttonText;this._setFooterText(i[r]);break;case"showFooter":this._enableFooter(i[r]);break;case"watermarkText":t.isNullOrUndefined(this._options)&&(this._options={});this._options.watermarkText=this.model.watermarkText=i[r];this._localizedLabels.watermarkText=this.model.watermarkText;this._setWaterMark();break;case"startDay":o=i[r];(parseInt(i[r])<0||parseInt(i[r])>6)&&(i[r]=this.culture.calendar.firstDay,o=-1);this.model.startDay=i[r];t.isNullOrUndefined(this._options)&&(this._options={});this._options.startDay=o;u=f=!0;break;case"startLevel":this.model.startLevel=i[r];u=f=!0;break;case"headerFormat":this.model.headerFormat=i[r];u=f=!0;break;case"depthLevel":this.model.depthLevel=i[r];u=f=!0;break;case"htmlAttributes":this._addAttr(i[r]);break;case"allowEdit":this._changeEditable(i[r]);break;case"tooltipFormat":this.model.tooltipFormat=i[r];u=f=!0;break;case"allowDrillDown":this._allowQuickPick(i[r]);u=f=!0;break;case"showDisabledRange":this._setRestrictDateState(i[r]);break;case"blackoutDates":this.model.blackoutDates=i[r];this._initDisableObj(this.model.blackoutDates);u=f=!0}e&&(this._validateMinMaxDate(),i.value=this.model.value,i.maxDate=this.model.maxDate,i.minDate=this.model.minDate);this._setWaterMark();u&&(this.isValidState||this.model.displayInline)&&this._refreshDatepicker();f&&this._startLevel(this.model.startLevel);this._triggerChangeEvent();this._checkErrorClass()},observables:["value"],_destroy:function(){this.model.displayInline&&n(window).off("resize",n.proxy(this._OnWindowResize,this));this._isOpen&&this.hide();this.sfCalendar&&this.sfCalendar.remove();this.wrapper&&(this.element.insertAfter(this.wrapper),this.wrapper.remove());this._cloneElement.removeClass("e-js e-input").removeClass(t.util.getNameSpace(this.sfType));this._cloneElement.insertAfter(this.element);this.element.remove()},_init:function(n){this._options=n;this._cloneElement=this.element.clone();this._dt_drilldown=!1;this._ISORegex();this._initDisableObj(this.model.blackoutDates);this.animation={open:{duration:200},close:{duration:100}};this._animating=!1;this._isInputBox=this._isInputBox();this._isSupport=document.createElement("input").placeholder==r?!1:!0;this._checkAttribute();this._setValues();this._createDatePicker();t.isNullOrUndefined(n)||t.isNullOrUndefined(n.validationMessage)||(this.model.validationMessages=this.model.validationMessage);this.model.validationRules!=null&&(this._initValidator(),this._setValidation());n&&n.value!=r&&n.value!=this.element.val()&&this._trigger("_change",{value:this.element.val()})},_ISORegex:function(){this._tokens=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g;this._extISORegex=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?/;this._basicISORegex=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?/;this._numberRegex={2:/\d\d?/,4:/^\d{4}/,z:/Z|[+-]\d\d(?::?\d\d)?/gi,t:/T/,"-":/\-/,":":/:/};this._zeroRegex=/Z|[+-]\d\d(?::?\d\d)?/;this._dates=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/]];this._times=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]]},_initValidator:function(){this.element.closest("form").data("validator")||this.element.closest("form").validate()},_setValidation:function(){var r,i,u,f;this.element.rules("add",this.model.validationRules);r=this.element.closest("form").data("validator");r=r?r:this.element.closest("form").validate();name=this.element.attr("name");r.settings.messages[name]={};for(i in this.model.validationRules)if(u=null,!t.isNullOrUndefined(this.model.validationRules[i])){if(t.isNullOrUndefined(this.model.validationRules.messages&&this.model.validationRules.messages[i])){r.settings.messages[name][i]=n.validator.messages[i];for(f in this.model.validationMessages)i==f?u=this.model.validationMessages[i]:""}else u=this.model.validationRules.messages[i];r.settings.messages[name][i]=u!=null?u:n.validator.messages[i]}},_checkAttribute:function(){for(var u=["min","max","readonly","disabled"],f=["minDate","maxDate","readOnly","enabled"],i,n,r=0;r<u.length;r++)i=this.element.attr(u[r]),n=f[r],t.isNullOrUndefined(i)||(t.isNullOrUndefined(this._options)?this.model[n]=n!="enabled"&&n!="readOnly"?new Date(i):n=="readOnly"?this.element.is("[readonly]"):!this.element.is("[disabled]"):t.isNullOrUndefined(this._options[n])&&(this.model[n]=n!="enabled"&&n!="readOnly"?new Date(i):n=="readOnly"?this.element.is("[readonly]"):!this.element.is("[disabled]")))},_updateDateValue:function(n){var t=this._checkDateObject(n);t!=null?(this.isValidState=!0,t==""?(this.element.val(""),this.model.value=null):(this.model.value=t,this._preTxtValue=this.element.val(this._formatter(this.model.value,this.model.dateFormat)))):(typeof t=="string"&&this.model.enableStrictMode?this.element.val(n):this.element.val(""),this.model.value=null,this.isValidState=this.element.val()==""?!0:!1);this._removeWatermark()},_ensureValue:function(){var n=this._parseDate(this.element.val(),this.model.dateFormat);this.model.value?this._setDateValue(this.model.value):n&&this._setDateValue(n)},_changeEditable:function(t){var i=t?"_on":"_off";if(this.element.is(":input")){if(t)this.model.readOnly||this.element.attr("readonly",!1),this.element.off("mousedown",n.proxy(this._showDatePopUp,this));else if(this.model.readOnly||this.element.attr("readonly","readonly"),!this.model.displayInline)this.element.on("mousedown",n.proxy(this._showDatePopUp,this));this[i](this.element,"blur",this._onFocusOut);this[i](this.element,"focus",this._onFocusIn);this[i](this.element,"keydown",this._onKeyDown)}},_allowQuickPick:function(t){n(".e-datepicker-headertext",this.sfCalendar)[t?"on":"off"]("click",n.proxy(this._forwardNavHandler,this))},_setRestrictDateState:function(n){var t=n?"addClass":"removeClass";this.sfCalendar[t]("e-dp-restrict-show")},_setValues:function(){this.Date=new Date;this._id=this.element[0].id;this.isValidState=!0;this._setCulture(this.model.locale);this._setMinDate(this.model.minDate);this._setMaxDate(this.model.maxDate);this._calendarDate=this._zeroTime(new Date);(this.model.startDay<0||this.model.startDay>6)&&(this.model.startDay=0);this.Date.firstDayOfWeek=this.model.startDay;this.Date.fullYearStart="20";this._showHeader=!0;t.isNullOrUndefined(this.model.value)&&this.element[0].value!=""&&(this.model.value=this.element[0].value);this._validateMinMaxDate();this._dateValue=new Date(this._calendarDate.toString());this._isIE7=this._checkIE7();this._isIE8=t.browserInfo().name=="msie"&&t.browserInfo().version=="8.0"?!0:!1;this._isIE9=t.browserInfo().name=="msie"&&t.browserInfo().version=="9.0"?!0:!1;this._getInternalEvents=!1;this._flag=!0;this._ejHLWeekEnd=!1;this._isOpen=!1;this._prevDate=null;this._preValue=null;this._isFocused=!1},_addAttr:function(i){var r=this;n.map(i,function(n,i){var u=i.toLowerCase();u=="class"?r.wrapper.addClass(n):u=="disabled"?r.disable():u=="readOnly"?r.model.readOnly=!0:u=="style"||u=="id"?r.wrapper.attr(i,n):t.isValidAttr(r.element[0],i)?r.element.attr(i,n):r.wrapper.attr(i,n)})},_createDatePicker:function(){this._createWrapper();this._wireEvents();this.model.displayInline&&this.show();this.model.enableRTL&&this._setRTL(!0);this.model.showRoundedCorner&&this._setRoundedCorner(!0)},_checkNameAttr:function(){!this.element.attr("name")&&this._isInputBox&&this.element.attr("name",this.element[0].id);this.model.displayInline&&!this._isInputBox&&this._hiddenInput.attr("name",this.element[0].id)},_createWrapper:function(){if(this._getMapper(),this.model.specialDates&&this._createSpecialDateObject(),this.element.attr("tabindex","0"),this._isInputBox&&(this.element.addClass("e-input").attr({"aria-atomic":"true","aria-live":"assertive","aria-expanded":"false",role:"combobox"}),this.wrapper=t.buildTag("span.e-datewidget e-widget "+this.model.cssClass),this.wrapper.attr("style",this.element.attr("style")),this.element.removeAttr("style"),t.isTouchDevice()||this.wrapper.addClass("e-ntouch"),this.innerWrapper=t.buildTag("span.e-in-wrap e-box e-padding"),this.wrapper.append(this.innerWrapper).insertBefore(this.element),this.innerWrapper.append(this.element),this.dateIcon=t.buildTag("span.e-select#"+this._id+"-img","",{},this._isIE8?{unselectable:"on"}:{}).append(t.buildTag("span.e-icon e-calendar","",{},{"aria-label":"Select"}).attr(this._isIE8?{unselectable:"on"}:{})).insertAfter(this.element)),!this._isSupport||this.model.displayInline&&!this._isInputBox){this._hiddenInput=t.buildTag("input.e-input e-placeholder ","",{},{type:"text"}).insertAfter(this.element);this._isInputBox&&this._hiddenInput.val(this._localizedLabels.watermarkText);this._hiddenInput.css("display","block");var i=this;n(this._hiddenInput).focus(function(){i.element.focus()})}this._checkNameAttr();this.model.height||(this.model.height=this.element.attr("height"));this.model.width||(this.model.width=this.element.attr("width"));this._setHeight(this.model.height);this._setWidth(this.model.width);this._id&&n("#e-"+this._id).remove();this._setDateValue(this.model.value);this._preValue=this._parseDate(this.element.val(),this.model.dateFormat);this._setWaterMark();this._dateValue=new Date(this._calendarDate.toString());this.model.displayInline?this._renderPopup():this._isInputBox&&this._renderDateIcon(this.model.showPopupButton,!1);this.model.readOnly&&this._disbleMaualInput();this.model.enabled?this.model.enabled&&n(this.element).hasClass("e-disable")&&this.enable():this.disable();this._layoutChanged();this._checkErrorClass();this._addAttr(this.model.htmlAttributes)},_isInputBox:function(){return this.element.is("input")&&(this.element.is("input[type=text]")||!this.element.attr("type"))},_renderDateIcon:function(n,t){t&&this.model.showPopupButton==n||(!n&&this.dateIcon?(this._bindInputEvent(),this.dateIcon.css("display","none"),this.innerWrapper.removeClass("e-padding")):(this.innerWrapper&&(this.innerWrapper.addClass("e-padding"),this.dateIcon.css("display","block")),this.model.displayInline||this._bindDateButton()),this.model.showPopupButton=n)},_resizeCalender:function(){this.model.dayHeaderFormat=="short"||this.model.dayHeaderFormat=="min"||this.model.dayHeaderFormat=="none"?this.sfCalendar.removeClass("e-headerlong"):this.model.dayHeaderFormat=="long"&&this.sfCalendar.addClass("e-headerlong")},_setWidth:function(n){n?this.wrapper?this.wrapper.width(n):this.element.width(n):this.model.width=this.wrapper?this.wrapper.outerWidth():this.element.width()},_setHeight:function(n){n?this.wrapper?this.wrapper.height(n):this.element.height(n):this.model.height=this.wrapper?this.wrapper.outerHeight():this.element.height();this._isIE7&&this.element.height(this.innerWrapper.height())},_setRTL:function(n){n?(this.wrapper&&this.wrapper.addClass("e-rtl"),this.sfCalendar&&this.sfCalendar.addClass("e-rtl")):(this.wrapper&&this.wrapper.removeClass("e-rtl"),this.sfCalendar&&this.sfCalendar.removeClass("e-rtl"))},_setRoundedCorner:function(n){n?(this.innerWrapper&&this.innerWrapper.addClass("e-corner"),this.sfCalendar&&this.sfCalendar.addClass("e-corner")):(this.innerWrapper&&this.innerWrapper.removeClass("e-corner"),this.sfCalendar&&this.sfCalendar.removeClass("e-corner"))},_refreshDatepicker:function(){var t,i;if(this._stopRefresh){this._stopRefresh=!1;return}t=this.element.val();i=this._specificFormat()&&this._formatter(this._preValue,this.model.dateFormat,this.model.locale)!=t?this._parseDate(t,!0):this._parseDate(t);i=this._validateYearValue(i);this._setDateValue(i);this._specificFormat()&&this._compareDate(this.model.value,this._calendarDate)&&this.element.val(t);n(".e-datepicker-headertext",this.sfCalendar).text(this._formatter(this._calendarDate,this.model.headerFormat));this._resizeCalender();this._dateValue=new Date(this._calendarDate.toString());this._hoverDate=this._calendarDate.getDate()-1;this._renderCalendar(this,this._dateValue);this._setFooterText(this._localizedLabels.buttonText);this._enableFooter(this.model.showFooter);this._layoutChanged()},_validateYearValue:function(n){if(n!=null){var i=t.preferredCulture(this.model.locale).calendars.standard.twoDigitYearMax;i=typeof i=="string"?(new Date).getFullYear()%100+parseInt(i,10):i;this._calendarDate.getFullYear()-n.getFullYear()==100&&this._calendarDate.getFullYear()>i&&n.setFullYear(this._calendarDate.getFullYear())}return n},_setFooterText:function(t){n(".e-footer-text",this.sfCalendar).html(t)},_setSkin:function(n){this.wrapper?(this.wrapper.removeClass(this.model.cssClass),this.wrapper.addClass(n)):(this.element.removeClass(this.model.cssClass),this.element.addClass(n));this.sfCalendar.removeClass(this.model.cssClass);this.sfCalendar.addClass(n)},_setDisplayInline:function(t){this.model.displayInline=t;t&&this._isInputBox?(this.sfCalendar.insertAfter(this.wrapper),this._setDatePickerPosition()):t?(this.element.append(this.sfCalendar),this._isSupport&&this._isInputBox||this._hiddenInput.css("display","none")):(this.sfCalendar.css("display","none"),n("body").append(this.sfCalendar),this._isOpen=!1);t&&(this.show(),this._off(this.dateIcon,"mousedown",this._showDatePopUp),this.element.off("mousedown",n.proxy(this._showDatePopUp,this)))},_disbleMaualInput:function(){this.model.readOnly?(n(this.element).attr("readonly","readonly"),this.model.displayInline||this.hide()):this.model.allowEdit&&n(this.element).prop("readonly",!1)},_checkDateObject:function(n,t){var t;if(n&&(typeof JSON!="object"||JSON.stringify(n)!=="{}"))n instanceof Date||(t=this._specificFormat()?this._parseDate(n,!0):this._parseDate(n,t),n=t?t:(t=this._checkJSONString(n))?t:null);else return null;return!isNaN(Date.parse(n))&&(this._dateValue=this._calendarDate=this._zeroTime(n),this._validateDate(n))?this._dateValue:null},_checkJSONString:function(n){if(isNaN(Date.parse(n))){if(this._extISORegex.exec(n)||this._basicISORegex.exec(n))return this._dateFromISO(n)}else{if(new Date(n).toJSON()===n||new Date(n).toDateString()===n||new Date(n).toGMTString()===n||new Date(n).toISOString()===n||new Date(n).toLocaleString()===n||new Date(n).toString()===n||new Date(n).toUTCString()===n)return new Date(new Date(n).getTime()+t.serverTimezoneOffset*36e5);if(typeof n=="string")return this._dateFromISO(n)}},_dateFromISO:function(n){var i=this._extISORegex.exec(n)||this._basicISORegex.exec(n),c="",l="",a="",v,e,o,f,r,t,s,u,h,y;if(i){for(e=0;e<this._dates.length;e++)if(this._dates[e][1].exec(i[1])){c=this._dates[e][0];break}if(i[3])for(o=0;o<this._times.length;o++)if(this._times[o][1].exec(i[3])){l=(i[2]||" ")+this._times[o][0];break}for(i[4]&&this._zeroRegex.exec(i[4])&&(a="Z"),v=c+l+a,f=v.match(this._tokens),t=[],u=0;u<f.length;u++)h=f[u],s=this._checkLiteral(f[u]),y=this._numberRegex[s?f[u].toLowerCase():h.length]||new RegExp("^\\d{1,"+h.length+"}"),r=n.match(y),r&&(n.substr(0,n.indexOf(r))>=0&&!s&&(f[u].indexOf("M")>=0?t.push(parseInt(r[0])-1):t.push(parseInt(r[0]))),n=n.slice(n.indexOf(r[0])+r[0].length));return i[4]=="Z"?new Date(Date.UTC.apply(null,t)):new Date(t[0],t[1],t[2],t[3],t[4],t[5])}return new Date(n+"")},_checkLiteral:function(n){return char=n.toLowerCase(),char=="t"||char=="z"||char==":"||char=="-"?!0:!1},_checkInstanceType:function(n){if(n=this._stringToObject(n),n)n instanceof Date||(n=this._parseDate(n));else return null;return isNaN(Date.parse(n))?null:this._zeroTime(n)},_stringToObject:function(n){if(typeof n=="string"){var i=t.parseDate(n,this.model.dateFormat,this.model.locale);n=i!=null?i:new Date(n)}return n},_validateMinMaxDate:function(){var n=!1,t=!1;this.model.maxDate<this.model.minDate&&(this.model.minDate=this.model.maxDate);this.model.enableStrictMode?this.model.value?this.model.value<this.model.minDate?(this._calendarDate=this.model.minDate,this.isValidState=!1,t=!0):this.model.value>this.model.maxDate?(this._calendarDate=this.model.maxDate,this.isValidState=!1,t=!0):this.isValidState=!0:this._calendarDate<this.model.minDate?this._calendarDate=this.model.minDate:this._calendarDate>this.model.maxDate&&(this._calendarDate=this.model.maxDate):(this.model.value?this.model.value<this.model.minDate?(this._calendarDate=this.model.value=this.model.minDate,n=!0):this.model.value>this.model.maxDate&&(this._calendarDate=this.model.value=this.model.maxDate,n=!0):(this.element.val(""),this._calendarDate<this.model.minDate?this._calendarDate=this.model.minDate:this._calendarDate>this.model.maxDate&&(this._calendarDate=this.model.maxDate)),this.isValidState=!0);n&&this.element.val(this._formatter(this.model.value,this.model.dateFormat));t&&this._getInternalEvents&&this._trigger("outOfRange")},_setCulture:function(n){this.culture=t.preferredCulture(n);this.culture&&(this.model.locale=this.culture.name=="en"?"en-US":this.culture.name,this.Date.dayNames=this.culture.calendar.days.names,this.Date.dayNamesMin=this.culture.calendar.days.namesShort,this.Date.abbrDayNames=this.culture.calendar.days.namesAbbr,this.Date.monthNames=this.culture.calendar.months.names,this.Date.abbrMonthNames=this.culture.calendar.months.namesAbbr,this.Date.format=this.culture.calendar.patterns.d,this.model.dateFormat==""&&(this.model.dateFormat=this.culture.calendar.patterns.d),this.model.startDay==-1&&(this.model.startDay=this.culture.calendar.firstDay));this._separator=this._getSeparator();this._localizedLabels=this._getLocalizedLabels();t.isNullOrUndefined(this._options)||(t.isNullOrUndefined(this._options.watermarkText)||(this._localizedLabels.watermarkText=this._options.watermarkText),t.isNullOrUndefined(this._options.buttonText)||(this._localizedLabels.buttonText=this._options.buttonText));this._localizedLabelToModel()},_localizedLabelToModel:function(){this.model.watermarkText=this._localizedLabels.watermarkText;this.model.buttonText=this._localizedLabels.buttonText},_setWaterMark:function(){if(this.element!=null&&this.element.hasClass("e-input"))return this._localizedLabels.watermarkText&&this.element.val()==""&&(this.isValidState=!0,this._checkErrorClass()),this._isSupport||this.element.val()!=""?n(this.element).attr("placeholder",this._localizedLabels.watermarkText):this._hiddenInput.css("display","block").val(this._localizedLabels.watermarkText),!0},_setDatePickerPosition:function(){if(!this.model.displayInline||this._isInputBox){var i=this.element.is("input")?this.wrapper:this.element,r=this._getOffset(i),o,s,l=n(document).scrollTop()+n(window).height()-(r.top+n(i).outerHeight()),a=r.top-n(document).scrollTop(),f=this.sfCalendar.outerHeight(),e=this.sfCalendar.outerWidth(),u=r.left,h=i.outerHeight(),p=(h-i.height())/2,v=this._getZindexPartial(),c=3,y=f<l||f>a?r.top+h+c:r.top-f-c;o=n(document).scrollLeft()+n(window).width()-u;s=n(document).scrollLeft()+u+i.width();(this.model.enableRTL||e>o&&e<u+i.outerWidth()&&!t.isNullOrUndefined(this.wrapper))&&(u+=this.wrapper.width()-this.sfCalendar.width());e>s&&(u=r.left);this.sfCalendar.css({left:u+"px",top:y+"px","z-index":v})}},_getOffset:function(n){return t.util.getOffset(n)},_getZindexPartial:function(){return t.util.getZindexPartial(this.element,this.sfCalendar)},_setMinDate:function(n){this.model.minDate=this._checkInstanceType(n);this.model.minDate||(this.model.minDate=new Date("11/31/1899"))},_setMaxDate:function(n){this.model.maxDate=this._checkInstanceType(n);this.model.maxDate||(this.model.maxDate=new Date("12/31/2099"))},_setDateValue:function(n,i){var r=this._checkDateObject(n,i);r!=null?(this.isValidState=!0,this.model.value=new Date(r.toString()),this.model.displayInline||this.wrapper.addClass("e-valid"),this._validateMinMaxDate(),this._preTxtValue=this.element.val(this._formatter(this.model.value,this.model.dateFormat))):(n instanceof Date&&(this._validateMinMaxDate(),n=this._formatter(n,this.model.dateFormat)),this.model.enableStrictMode?this.element.val(n):this.element.val(null),this.model.value=null,this.model.displayInline||this.wrapper.removeClass("e-valid"),this._triggerChangeEvent(),this.isValidState=this.element.val()==""||t.isNullOrUndefined(this.element.val())?!0:!1);this._removeWatermark()},_updateInputVal:function(){var n=this._validateValue();(n!=null||!this.model.enableStrictMode)&&this.sfCalendar&&this.sfCalendar.find(".e-datepicker-days").is(":visible")&&this._refreshDatepicker()},_validateInputVal:function(){var n=this._validateValue();n!=null&&(this.model.enableStrictMode||(n<=this.model.maxDate&&n>=this.model.minDate?this.isValidState=!0:(this.model.value=null,this.isValidState=!0)))},_validateValue:function(){var n;return n=this._specificFormat()&&this.element.val()!=this._formatter(this._preValue,this.model.dateFormat,this.model.locale)?this._parseDate(this.element.val(),!0):this._parseDate(this.element.val()),this._validateYearValue(n)},_getSeparator:function(){var t,i,n;for(t=this.culture?this.culture.calendar.patterns.d:this.model.dateFormat,i=new RegExp("^[a-zA-Z0-9]+$"),n=0;n<t.length;n++)if(!i.test(t[n]))return t[n]},_checkIE7:function(){if(navigator.appName=="Microsoft Internet Explorer"){var t=new RegExp("MSIE ([0-9]{1,}[.0-9]{0,})"),n=-1;if(t.exec(navigator.userAgent)!=null&&(n=parseFloat(RegExp.$1)),n>=7&&n<8)return!0}return!1},_isValidDate:function(n){return n&&typeof n.getTime=="function"&&isFinite(n.getTime())},_formatter:function(n,i){var r=this._checkFormat(i);return t.format(n,r,this.model.locale)},_parseDate:function(n,i){var f=this._checkFormat(this.model.dateFormat),u=n;return!this._specificFormat()||u==r||n==""||i==!0||t.format(t.parseDate(u,f,this.model.locale),this.model.dateFormat,this.model.locale)==u?t.parseDate(n,f,this.model.locale):this._dateValue},_checkFormat:function(n){var i=this,r=this._regExp();return n.replace(r,function(n){return n==="/"?t.preferredCulture(i.model.locale).calendars.standard["/"]!=="/"?"'/'":n:n})},_regExp:function(){return/\/dddd|ddd|dd|d|MMMM|MMM|MM|M|yyyy|yy|HH|H|hh|h|mm|m|fff|ff|f|tt|ss|s|zzz|zz|z|gg|g|"[^"]*"|'[^']*'|[/]/g},isLeapYear:function(n){return n%4==0&&n%100!=0||n%400==0},_zeroTime:function(n){var t=typeof n=="string"?this._parseDate(n):new Date(n);return t.setMilliseconds(0),t.setSeconds(0),t.setMinutes(0),t.setHours(0),t},_getDaysInMonth:function(n){return[31,this.isLeapYear(n)?29:28,31,30,31,30,31,31,30,31,30,31][n.getMonth()]},_addDays:function(n,t){return n.setDate(n.getDate()+t),n},_addYears:function(n,t){return n.setFullYear(n.getFullYear()+t),n},_addMonths:function(n,t){var i=n.getDate();return n.setMonth(n.getMonth()+t),i>n.getDate()&&this._addDays(n,-n.getDate()),n},_isWeekend:function(n){return n.getDay()==0||n.getDay()==6},_isSpecialDates:function(n){if(this.model.specialDates)for(var t=0;t<this.model.specialDates.length;t++)if(this.model.specialDates[t]&&this.model.specialDates[t][this._mapField._date]&&n.getDate()==this.model.specialDates[t][this._mapField._date].getDate()&&n.getMonth()==this.model.specialDates[t][this._mapField._date].getMonth()&&n.getFullYear()==this.model.specialDates[t][this._mapField._date].getFullYear())return this._getIndex=t,!0;return!1},_getMapper:function(){var n=this.model.fields;this._mapField={};this._mapField._date=n&&n.date?n.date:"date";this._mapField._tooltip=n&&n.tooltip?n.tooltip:"tooltip";this._mapField._icon=n&&n.iconClass?n.iconClass:"iconClass";this._mapField._custom=n&&n.cssClass?n.cssClass:"cssClass"},_createSpecialDateObject:function(){for(var n=0;n<this.model.specialDates.length;n++)this.model.specialDates[n][this._mapField._date]=this._checkInstanceType(this.model.specialDates[n][this._mapField._date])},_getMonthName:function(n,t){return n?this.Date.abbrMonthNames[t.getMonth()]:this.Date.monthNames[t.getMonth()]},_displayNewMonth:function(n,t){return this._setDisplayedMonth(this.displayedMonth+n,this.displayedYear+t,!0),!1},_setDisplayedMonth:function(n,t,i){var f,e,u,s,h,o;this.model.minDate!=r&&this.model.maxDate!=r&&(f=new Date(this.model.minDate.getTime()),f.setDate(1),e=new Date(this.model.maxDate.getTime()),e.setDate(1),!n&&!t||isNaN(n)&&isNaN(t)?(u=this._zeroTime(new Date),u.setDate(1)):u=isNaN(n)?new Date(t,this.displayedMonth,1):isNaN(t)?new Date(this.displayedYear,n,1):new Date(t,n,1),u.getTime()<f.getTime()?u=f:u.getTime()>e.getTime()&&(u=e),s=this.displayedMonth,h=this.displayedYear,this.displayedMonth=u.getMonth(),this.displayedYear=u.getFullYear(),o=u,i&&(this.displayedMonth!=s||this.displayedYear!=h)&&(this._renderCalendar(this,o),this._dateValue=o,this._trigger("monthChanged",[this.displayedMonth,this.displayedYear])))},_clearSelected:function(){this.numSelected=0;t.isNullOrUndefined(this.sfCalendar)||(this.model.highlightSection=="week"?n("td.e-active",this.sfCalendar).removeClass("e-active").addClass("e-state-hover").attr("aria-selected",!1).parent().removeClass("e-selected-week"):this.model.highlightSection=="month"?n("td.e-active",this.sfCalendar).removeClass("e-active").addClass("e-state-hover").attr("aria-selected",!1).parent().parent().removeClass("e-selected-month"):this.model.highlightSection=="workdays"?n("td.e-active",this.sfCalendar).removeClass("e-active").addClass("e-state-hover").attr("aria-selected",!1).parent().removeClass("e-work-week"):n("td.e-active",this.sfCalendar).removeClass("e-active").addClass("e-state-hover").attr("aria-selected",!1))},_addSelected:function(){this.model.highlightSection=="week"?n("td.e-active",this.sfCalendar).parent().addClass("e-selected-week"):this.model.highlightSection=="month"?n("td.e-active, this.sfCalendar").parent().parent().addClass("e-selected-month"):this.model.highlightSection=="workdays"&&n("td.e-active",this.sfCalendar).parent().addClass("e-work-week")},_hideOtherMonths:function(t){n("td.other-month",t).css("visibility","hidden")},_showOtherMonths:function(t){n("td.other-month",t).css({visibility:"visible"})},_otherMonthsVisibility:function(){this.model.showOtherMonths?this._showOtherMonths(this.sfCalendar):this._hideOtherMonths(this.sfCalendar)},_createCalender:function(){t.buildTag("div.e-header").attr(this._isIE8?{unselectable:"on"}:{}).append(t.buildTag("span.e-prev").append(t.buildTag("a.e-icon e-arrow-sans-left").attr({role:"button"}).attr(this._isIE8?{unselectable:"on"}:{}))).append(t.buildTag("span.e-text").append(t.buildTag("span.e-datepicker-headertext").text(this._formatter(this._calendarDate,this.model.headerFormat)).attr({"aria-atomic":"true","aria-live":"assertive",role:"heading"}).attr(this._isIE8?{unselectable:"on"}:{}))).append(t.buildTag("span.e-next").append(t.buildTag("a.e-icon e-arrow-sans-right").attr({role:"button"}).attr(this._isIE8?{unselectable:"on"}:{}))).appendTo(this.sfCalendar);this._enableHeader(this._showHeader);var i=t.buildTag("table.e-dp-viewdays","",{}).data("e-table","data").attr({role:"grid"}).attr(this._isIE8?{unselectable:"on"}:{});this.sfCalendar.append(i);this._renderCalendar(this);this._startLevel(this.model.startLevel);t.buildTag("div.e-footer").append(t.buildTag("span.e-footer-icon")).append(t.buildTag("span.e-footer-text")).appendTo(this.sfCalendar);n(".e-footer-text",this.sfCalendar).html(this._localizedLabels.buttonText);this._enableFooter(this.model.showFooter)},_enableHeader:function(t){t?n(".e-header",this.sfCalendar).show():n(".e-header",this.sfCalendar).hide()},_enableFooter:function(t){t?n(".e-footer",this.sfCalendar).show():n(".e-footer",this.sfCalendar).hide();this._todayBtnDisable()},_todayBtnDisable:function(){var t=new Date((new Date).getFullYear(),(new Date).getMonth(),(new Date).getDate(),0,0,0);+this.model.minDate<=+t&&+this.model.maxDate>=+t?n(".e-footer",this.sfCalendar).removeClass("e-footer-disable"):n(".e-footer",this.sfCalendar).addClass("e-footer-disable")},_checkArrows:function(n,t){this._preArrowCondition(n,this.model.minDate.getFullYear());this._nextArrowCondition(t,this.model.maxDate.getFullYear())},_checkDateArrows:function(){this._preArrowCondition(this._tempMinDate,this.model.minDate);this._nextArrowCondition(this._tempMaxDate,this.model.maxDate)},_preArrowCondition:function(n,t){n<=t?this.sfCalendar.find(".e-arrow-sans-left").addClass("e-disable").attr({"aria-disabled":!0}):this.sfCalendar.find(".e-arrow-sans-left").removeClass("e-disable").attr({"aria-disabled":!1})},_nextArrowCondition:function(n,t){n>=t?this.sfCalendar.find(".e-arrow-sans-right").addClass("e-disable").attr({"aria-disabled":!0}):this.sfCalendar.find(".e-arrow-sans-right").removeClass("e-disable").attr({"aria-disabled":!1})},_previousNextHandler:function(t){var r,u,f,e,o,s,i;if(this.model.readOnly||!this.model.enabled||n(t.target).hasClass("e-disable"))return!1;t.preventDefault();r=n("table",this.sfCalendar);u=this._navigateFrom(r);f=n(t.target).is("a")?n(t.target.parentNode):n(t.target);e=f.hasClass("e-prev")?!0:!1;this._processNextPrevDate(e);o=n("table",this.sfCalendar);s=o.get(0).className;switch(s){case"e-dp-viewdays":i="month";break;case"e-dp-viewmonths":i="year";break;case"e-dp-viewyears":i="decade";break;case"e-dp-viewallyears":i="century"}this._trigger("navigate",{date:this._dateValue,value:this._formatter(this._dateValue,this.model.dateFormat),navigateTo:i,navigateFrom:u})},_processNextPrevDate:function(t){var c,i,u,l,s,h,f,e,o,r;if((this._DRPdisableFade&&(c=new Date(this.sfCalendar.find("td.current-month").attr("data-date")),this._dateValue=c),t&&this.sfCalendar.find(".e-arrow-sans-left").hasClass("e-disable"))||!t&&this.sfCalendar.find(".e-arrow-sans-right").hasClass("e-disable"))return!1;i=n("table",this.sfCalendar);l=i.get(0).className;switch(l){case"e-dp-viewdays":if(s=this.model.stepMonths,t){if(this._dateValue<=this.model.minDate)return this._flag=!1,!1}else if(this._dateValue>=this.model.maxDate)return this._flag=!1,!1;this._flag=!0;this._addMonths(this._dateValue,t?-s:s);this._clickedDate&&(this._calendarDate=this._clickedDate);this._dateValue=this._dateValue<this.model.minDate?new Date(this.model.minDate.toString()):this._dateValue;this._dateValue=this._dateValue>this.model.maxDate?new Date(this.model.maxDate.toString()):this._dateValue;this._renderCalendar(this,this._dateValue);n(".e-datepicker-headertext",this.sfCalendar).text(this._formatter(this._dateValue,this.model.headerFormat));this._addFocus("day",this._hoverDate);h=this._findFirstLastDay(new Date(this._dateValue.toString()));this._preArrowCondition(h.firstDay,this.model.minDate);this._nextArrowCondition(h.lastDay,this.model.maxDate);break;case"e-dp-viewmonths":if(f=this._dateValue,f.setFullYear(n(".e-datepicker-headertext",this.sfCalendar).text()),t){if(f.getFullYear()<=this.model.minDate.getFullYear())return this._flag=!1,!1}else if(f.getFullYear()>=this.model.maxDate.getFullYear())return this._flag=!1,!1;this._flag=!0;this._addYears(f,t?-1:1);this._renderCalendar(this,f);u=f.getFullYear();n(".e-datepicker-headertext",this.sfCalendar).text(u);n("tbody,tr.e-week-header",i).not(".e-datepicker-months").hide();n(n(i).find(".e-datepicker-months")).show();this._addFocus("month",this._hoverMonth);this._checkArrows(u,u);break;case"e-dp-viewyears":if(e=this._dateValue,e.setFullYear(n(i).find(".e-state-hover").text()),t){if(parseInt(n("td.e-year-first:first").text())<=this.model.minDate.getFullYear())return this._flag=!1,!1}else if(parseInt(n("td.e-year-last:first").prev().text())>=this.model.maxDate.getFullYear())return this._flag=!1,!1;this._flag=!0;n(i).find(".e-state-hover").hasClass("e-year-first")&&t||n(i).find(".e-state-hover").hasClass("e-year-last")&&!t?this._dateValue.setFullYear(e.getFullYear()):n(i).find(".e-state-hover").hasClass("e-year-first")&&!t?this._dateValue.setFullYear(e.getFullYear()+11):n(i).find(".e-state-hover").hasClass("e-year-last")&&t?this._dateValue.setFullYear(e.getFullYear()-11):this._dateValue.setFullYear(e.getFullYear()+(t?-10:10));this._renderCalendar(this,this._dateValue);r=parseInt(this._dateValue.getFullYear())-(parseInt(this._dateValue.getFullYear())%10+1);n(".e-datepicker-headertext",this.sfCalendar).text(r+1+" - "+(r+10));n("tbody,tr.e-week-header",i).not(".e-datepicker-years").hide();n(n(i).find(".e-datepicker-years")).show();this._addFocus("year",this._hoverYear+(n(".e-year-first.e-hidedate").length?-1:0));this._checkArrows(r+1,r+10);break;case"e-dp-viewallyears":if(t){if(o=parseFloat(n("td.e-allyear-first",i.get(0)).text().split("-")[1]),o<=this.model.minDate.getFullYear())return this._flag=!1,!1;this._flag=!0}else{if(o=parseFloat(n("td.e-allyear-last",i.get(0)).prev().text().split("-")[1]),o>=this.model.maxDate.getFullYear())return this._flag=!1,!1;this._flag=!0}this._dateValue.setFullYear((this._lastHoveredYear?this._lastHoveredYear:this._dateValue.getFullYear())+(t?-100:100));this._lastHoveredYear=this._dateValue.getFullYear();this._renderCalendar(this,this._dateValue);r=parseInt(this._dateValue.getFullYear())-(parseInt(this._dateValue.getFullYear())%100+1);u=parseFloat(n("td.e-allyear-last",i.get(0)).prev().text().split("-")[1]);n(".e-datepicker-headertext",this.sfCalendar).text(r+1+" - "+u);n("tbody,tr.e-week-header",i).not(".e-datepicker-allyears").hide();n(n(i).find(".e-datepicker-allyears")).show();this._addFocus("allyear",this._hoverAllYear+(n(".e-allyear-first.e-hidedate").length?-1:0));this._checkArrows(r+1,u)}this._layoutChanged()},_addFocus:function(t,i){var f="e-current-"+t,r,u;return t=="day"&&(f="current-month"),r=this.sfCalendar.find("tbody tr td."+f),t=="month"&&n(r).each(function(t,r){if(parseInt(n(r).attr("data-index"))==parseInt(i)){i=t;return}}),u=r[i],u||(u=r.last()),this.sfCalendar.find("table td").removeClass("e-state-hover"),n(u).addClass("e-state-hover"),this._setActiveState(t),i},_setActiveState:function(t){var e,f,o;if(this.model.value instanceof Date){var i=this.sfCalendar.find("tbody tr td.e-current-"+t),r,s=this,u=-1;switch(t){case"month":this.model.value.getFullYear()===parseInt(n(".e-text",this.sfCalendar).text())&&n(i).each(function(t,i){if(parseInt(n(i).attr("data-index"))==parseInt(s.model.value.getMonth())){u=t;return}});break;case"year":e=this.model.value.getFullYear();n(i).each(function(n,t){if(parseInt(t.innerHTML)==parseInt(e)){u=n;return}});break;case"allyear":f=parseInt(this.model.value.getFullYear())-(parseInt(this.model.value.getFullYear())%10+1);o=f+1+" - "+(f+10);n(i).each(function(n,t){if(parseInt(t.innerHTML)==parseInt(o)){u=n;return}})}r=i[u];r&&(this.sfCalendar.find("table td").removeClass("e-active"),n(r).hasClass("e-hidedate")||n(r).addClass("e-active"))}},_setFocusByName:function(t,i){var u=this.sfCalendar.find("tbody tr td.e-current-"+t),f,r;return n(u).each(function(n,t){if(parseInt(t.innerHTML)==parseInt(i)){f=n;return}}),r=u[f],r||(r=u.last()),this.sfCalendar.find("table td").removeClass("e-state-hover"),n(r).addClass("e-state-hover"),this._setActiveState(t),f},_getHeaderTxt:function(){return this.sfCalendar.find(".e-datepicker-headertext").text()},_findFirstLastDay:function(n){var t=n.getFullYear(),i=n.getMonth(),r=new Date(t,i,1),u=new Date(t,i+1,0);return{firstDay:r,lastDay:u}},_forwardNavHandler:function(t){if(this.model.readOnly||!this.model.enabled)return!1;t&&t.preventDefault();var u=n("table",this.sfCalendar),e=n("table",this.sfCalendar).get(0).className,o=this,i,r,f=this._navigateFrom(u);switch(e){case"e-dp-viewdays":this._hoverMonth=this._getDateObj(u.find(".e-state-hover")).getMonth()||this._getDateObj(u.find(".e-active")).getMonth()||0;this._DRPdisableFade&&(this._renderCalendar(this,this._calendarDate),n(".e-datepicker-headertext",this.sfCalendar).text(this._formatter(this._dateValue,this.model.headerFormat)));this._startLevel("year");r="year";this._addFocus("month",this._hoverMonth);break;case"e-dp-viewmonths":i=this._getHeaderTxt();this._startLevel("decade");r="decade";this._hoverYear=this._setFocusByName("year",i);break;case"e-dp-viewyears":i=this._getHeaderTxt();this._startLevel("century");r="century";this._hoverAllYear=this._setFocusByName("allyear",i)}f!="century"&&this._trigger("navigate",{date:this._dateValue,value:this._formatter(this._dateValue,this.model.dateFormat),navigateTo:r,navigateFrom:f});this._layoutChanged()},_cellSelection:function(){var u=n("table",this.sfCalendar),r=n("table",this.sfCalendar).get(0).className,t,i;switch(r){case"e-dp-viewmonths":this._hoverMonth=this._addFocus("month",this._dateValue.getMonth());break;case"e-dp-viewyears":t=new Date(this._dateValue.toString());this._navigationToPrevNext("year");this._dateValue=t;this._hoverYear=this._setFocusByName("year",this._dateValue.getFullYear());break;case"e-dp-viewallyears":t=new Date(this._dateValue.toString());this._navigationToPrevNext("allyear");this._dateValue=t;i=parseInt(this._dateValue.getFullYear())-(parseInt(this._dateValue.getFullYear())%10+1);this._hoverAllYear=this._setFocusByName("allyear",i+1+" - "+i+10)}this._layoutChanged()},_navigationToPrevNext:function(t){var r=this.sfCalendar.find("tbody tr td.e-current-"+t),u,i,f=this._dateValue.getFullYear();n(r).each(function(n,t){if(parseInt(t.innerHTML)==parseInt(f)){u=n;return}});i=r[u];i&&(n(i).hasClass("e-"+t+"-last")?this._processNextPrevDate(!1):n(i).hasClass("e-"+t+"-first")&&this._processNextPrevDate(!0))},_navigateFrom:function(n){var i=n.get(0).className,t;switch(i){case"e-dp-viewdays":t="month";break;case"e-dp-viewmonths":t="year";break;case"e-dp-viewyears":t="decade";break;case"e-dp-viewallyears":t="century"}return t},_backwardNavHandler:function(i){var u,r;if(this._animating=!0,this.model.readOnly||!this.model.enabled)return!1;i.type?(i.preventDefault(),u=n(i.currentTarget)):u=i;var f=n("table",this.sfCalendar),o,c=n("table",this.sfCalendar).get(0).className,e=this,s,h=this._navigateFrom(f);switch(c){case"e-dp-viewmonths":f.removeClass("e-dp-viewmonths").addClass("e-dp-viewdays");this._lastHoveredMonth=parseInt(n(u).attr("data-index"));this._dateValue=new Date(this._dateValue.getFullYear(),this._lastHoveredMonth,1);this._DRPdisableFade&&this._trigger("_month_Loaded",{currentTarget:i.currentTarget});this._renderCalendar(this,this._dateValue);n("tbody",f).not(".e-datepicker-days,.e-week-header").hide();n(n(f).find(".e-datepicker-days,.e-week-header")).fadeIn("fast",function(){e._addFocus("day",e._hoverDate||0);e._animating=!1});n(".e-datepicker-headertext",this.sfCalendar).text(this._formatter(this._dateValue,this.model.headerFormat));s="month";break;case"e-dp-viewyears":f.removeClass("e-dp-viewyears").addClass("e-dp-viewmonths");this._lastHoveredYear=parseInt(u.text());this._dateValue.setFullYear(this._lastHoveredYear);this._renderCalendar(this,this._dateValue);n("tbody,tr.e-week-header",f).not(".e-datepicker-months").hide();t.isNullOrUndefined(this._hoverMonth)&&!t.isNullOrUndefined(this._dateValue)&&(this._hoverMonth=this._dateValue.getMonth());n(n(f).find(".e-datepicker-months")).fadeIn("fast",function(){e._addFocus("month",e._hoverMonth||0);e._animating=!1});o=u.text();n(".e-datepicker-headertext",this.sfCalendar).text(o);this._checkArrows(o,o);s="year";break;case"e-dp-viewallyears":r=u.text().split("-");f.removeClass("e-dp-viewallyears").addClass("e-dp-viewyears");r[0]<this.model.minDate.getFullYear()?r[0]=this.model.minDate.getFullYear().toString():r[0]>this.model.maxDate.getFullYear()&&(r[0]=this.model.maxDate.getFullYear().toString());this._renderCalendar(this,new Date(r[0],0,1));n("tbody,tr.e-week-header",f).not(".e-datepicker-years").hide();n(n(f).find(".e-datepicker-years")).fadeIn("fast",function(){e._addFocus("year",e._hoverYear||0);e._animating=!1});n(".e-datepicker-headertext",this.sfCalendar).text(r[0]+" - "+r[1]);this._checkArrows(r[0],r[1]);s="decade";this._dateValue=new Date(this._dateValue.setFullYear(parseInt(n.trim(r[0]))+(this._lastHoveredYear?this._lastHoveredYear%10:this._dateValue.getFullYear()%10)));break;default:this._clearSelected();this.sfCalendar.find("table td").removeClass("e-state-hover");u.not("td.other-month.e-hidedate").addClass("e-active").attr("aria-selected",!0);this._addSelected();this._hoverDate=this._getDateObj(u).getDate()-1;this._dateValue=new Date(u.attr("data-date"));this._clickedDate=new Date(u.attr("data-date"));this._animating=!1}h!="month"&&this._trigger("navigate",{date:this._dateValue,value:this._formatter(this._dateValue,this.model.dateFormat),navigateTo:s,navigateFrom:h});this._layoutChanged()},_startLevel:function(t){var i=n("table",this.sfCalendar),o=n(".e-datepicker-headertext",this.sfCalendar),r,f,u=this._dateValue,s,e;switch(t){case"decade":i.removeClass("e-dp-viewallyears e-dp-viewmonths e-dp-viewdays").addClass("e-dp-viewyears");n("tbody,tr.e-week-header",i).not(".e-datepicker-years").hide();n(n(i).find(".e-datepicker-years")).show();u=this.model.enableStrictMode&&this._calendarDate<this._dateValue?this._calendarDate:u;e=parseInt(u.getFullYear())-(parseInt(u.getFullYear())%10+1);r=e+1;f=e+10;o.text(r+" - "+f);this._checkArrows(r,f);this._hoverYear=this._setFocusByName("year",u.getFullYear());break;case"century":this._calendarDate<this._dateValue||this._renderCalendar(this,u);i.removeClass("e-dp-viewyears e-dp-viewdays e-dp-viewmonths").addClass("e-dp-viewallyears");n("tbody,tr.e-week-header",i).not(".e-datepicker-allyears").hide();n(n(i).find(".e-datepicker-allyears")).show();r=parseFloat(n("td.e-allyear-first",i.get(0)).text().split("-")[1])+1;f=parseFloat(n("td.e-allyear-last",i.get(0)).prev().text().split("-")[1]);s=r+" - "+f;o.text(s);this._checkArrows(r,f);e=parseInt(u.getFullYear())-(parseInt(u.getFullYear())%10+1);this._hoverAllYear=this._setFocusByName("allyear",e+1+" - "+(e+10));break;case"year":i.removeClass("e-dp-viewyears e-dp-viewallyears e-dp-viewdays").addClass("e-dp-viewmonths");n("tbody,tr.e-week-header",i).hide();n(n(i).find(".e-datepicker-months")).show();r=this.model.enableStrictMode&&this._calendarDate<this._dateValue?this._calendarDate.getFullYear():u.getFullYear();o.text(r);this._checkArrows(r,r);this._hoverMonth=u.getMonth();this._addFocus("month",this._hoverMonth);break;case"month":i.removeClass("e-dp-viewyears e-dp-viewallyears e-dp-viewmonths").addClass("e-dp-viewdays ")}},_depthLevel:function(t){var i=this.sfCalendar;switch(t){case"year":n(i.find(".e-current-year,.e-current-allyear")).on("click",n.proxy(this._backwardNavHandler,this));this._on(n(".e-current-month",this.sfCalendar),"click",n.proxy(this._onDepthSelectHandler,this));break;case"decade":n(i.find(".e-current-allyear")).on("click",n.proxy(this._backwardNavHandler,this));n(".e-current-year",this.sfCalendar).on("click",n.proxy(this._onDepthSelectHandler,this));break;case"century":n(i.find(".e-current-allyear")).on("click",n.proxy(this._onDepthSelectHandler,this));break;case"month":this._on(i.find(".current-month,.other-month,.e-current-month,.e-current-year,.e-current-allyear"),"click",n.proxy(this._backwardNavHandler,this));this._on(i.find(".current-month , .other-month"),"click",n.proxy(this._onSetCancelDateHandler,this))}},_onDepthSelectHandler:function(t){if(this.model.readOnly||!this.model.enabled)return!1;n(t.target).hasClass("e-current-month")?this._dateValue=new Date(this._dateValue.setMonth(parseInt(t.target.attributes["data-index"].value))):n(t.target).hasClass("e-current-year")?this._dateValue=new Date(this._dateValue.setFullYear(parseInt(t.target.innerHTML))):n(t.target).hasClass("e-current-allyear")&&(this._dateValue=new Date(this._dateValue.setFu