js-pkg
Version:
Npm package of Syncfusion.JavaScript.
10 lines • 71.2 kB
JavaScript
/*!
* filename: ej.datetimepicker.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.scroller.min","./ej.datepicker.min","./ej.timepicker.min"],n):n()})(function(){(function(n,t,r){t.widget("ejDateTimePicker","ej.DateTimePicker",{element:null,model:null,validTags:["input"],_addToPersist:["value"],_setFirst:!1,_rootCSS:"e-datetimepicker",type:"editor",angular:{require:["?ngModel","^?form","^?ngModelOptions"],requireFormatters:!0},_requiresID:!0,defaults:{cssClass:"",locale:"en-US",readOnly:!1,showRoundedCorner:!1,enableRTL:!1,htmlAttributes:{},allowEdit:!0,enabled:!0,value:"",name:null,minDateTime:new Date("1/1/1900 12:00:00 AM"),maxDateTime:new Date("12/31/2099 11:59:59 PM"),height:"",width:"",dateTimeFormat:"",showPopupButton:!0,enableStrictMode:!1,buttonText:{today:"Today",timeNow:"Time Now",done:"Done",timeTitle:"Time"},watermarkText:"Select datetime",enablePersistence:!1,interval:30,timeDisplayFormat:"",timePopupWidth:105,popupPosition:"bottom",dayHeaderFormat:"short",startLevel:"month",depthLevel:"",startDay:-1,stepMonths:1,showOtherMonths:!0,enableAnimation:!0,headerFormat:"MMMM yyyy",validationRules:null,validationMessage:null,validationMessages:null,timeDrillDown:{enabled:!1,interval:5,showMeridian:!1,autoClose:!0,showFooter:!0},beforeOpen:null,beforeClose:null,open:null,close:null,change:null,create:null,destroy:null,focusIn:null,focusOut:null},dataTypes:{allowEdit:"boolean",cssClass:"string",locale:"string",readOnly:"boolean",showRoundedCorner:"boolean",enableRTL:"boolean",enabled:"boolean",enableAnimation:"boolean",dateTimeFormat:"string",showPopupButton:"boolean",buttonText:"data",watermarkText:"string",enablePersistence:"boolean",enableStrictMode:"boolean",interval:"number",timeDrillDown:"data",timeDisplayFormat:"string",dayHeaderFormat:"string",startLevel:"string",depthLevel:"string",startDay:"number",stepMonths:"number",showOtherMonths:"boolean",headerFormat:"string",validationRules:"data",validationMessage:"data",validationMessages:"data",htmlAttributes:"data"},_setModel:function(i){var r,f,e,u,o;this.popup||this._renderDropdown();f=!1;for(r in i)switch(r){case"allowEdit":this._changeEditable(i[r]);break;case"cssClass":this._changeSkin(i[r]);break;case"locale":this._localize(i[r]);break;case"readOnly":this._readOnly(i[r]);break;case"showRoundedCorner":this._setRoundedCorner(i[r]);break;case"enableRTL":this._setRtl(i[r]);break;case"enabled":this._enabled(i[r]);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"validationMessage":this.model.validationMessages=i[r];this.model.validationRules!=null&&this.model.validationMessages!=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"value":i[r]=this._setValue(i[r]);this._specificFormat()&&(this._stopRefresh=!0);f=!0;this._prevDateTime=this._prevDateTimeVal||this._preVal;break;case"enableStrictMode":this.model.enableStrictMode=i[r];f=!0;break;case"minDateTime":u=this._stringToObject(i[r]);e=this._getFormat(u,this.timePicker.model.timeFormat);this._isValidDate(u)?(this.datePicker.option("minDate",u),this.timePicker.option("minTime",e),i[r]=u,this.model.minDateTime=u):i[r]=this.model[r];f=!0;break;case"maxDateTime":u=this._stringToObject(i[r]);o=this._getFormat(i[r],this.timePicker.model.timeFormat);this._isValidDate(u)?(this.datePicker.option("maxDate",u),this.timePicker.option("maxTime",o),i[r]=u,this.model.maxDateTime=u):i[r]=this.model[r];f=!0;break;case"height":this.wrapper.height(i[r]);break;case"width":this.wrapper.width(i[r]);break;case"dateTimeFormat":this.model.dateTimeFormat=i[r];this.isValidState&&this._setValue(this.model.value);break;case"showPopupButton":this._showButton(i[r]);break;case"watermarkText":t.isNullOrUndefined(this._options)&&(this._options={});this._options[r]=this.model.watermarkText=i[r];this._localizedLabels.watermarkText=this.model.watermarkText;this._setWaterMark();break;case"buttonText":t.isNullOrUndefined(this._options)||(this._options.buttonText=this.model.buttonText=i[r]);this._localizedLabels.buttonText=this.model.buttonText;this._buttonText(i[r]);break;case"interval":this._updateTimeHeight();this.timePicker.option("interval",i[r]);break;case"timeDisplayFormat":this._updateTimeHeight();this.timePicker.option("timeFormat",i[r]);break;case"timePopupWidth":this._updateTimeHeight();this.timePicker.option("popupWidth",i[r]);break;case"dayHeaderFormat":this.datePicker.option("dayHeaderFormat",i[r]);break;case"startLevel":this.datePicker.option("startLevel",i[r]);break;case"depthLevel":this.datePicker.option("depthLevel",i[r]);break;case"startDay":this.datePicker.option("startDay",i[r]);this.model.startDay=this.datePicker.model.startDay;i[r]=this.model.startDay;break;case"stepMonths":this.datePicker.option("stepMonths",i[r]);break;case"showOtherMonths":this.datePicker.option("showOtherMonths",i[r]);break;case"headerFormat":this.datePicker.option("headerFormat",i[r]);break;case"htmlAttributes":this._addAttr(i[r]);break;case"popupPosition":this.model.popupPosition=i[r];this._setListPosition();break;case"timeDrillDown":t.isNullOrUndefined(i[r].enabled)||(this.model.timeDrillDown.enabled=i[r].enabled,this._changeDesign());t.isNullOrUndefined(i[r].interval)||(this.model.timeDrillDown.interval=i[r].interval,this._generateMins(n.trim(t.format(this.timePicker._createObject(this._datetimeValue),"HH:00",this.model.locale))));t.isNullOrUndefined(i[r].showMeridian)||(this.model.timeDrillDown.showMeridian=i[r].showMeridian,this._sfTimeHour.empty(),this._renderHourTable());t.isNullOrUndefined(i[r].showFooter)||(this.model.timeDrillDown.showFooter=i[r].showFooter,this._changeDesign())}f&&this._validateMinMax();this._valueChange(!0);r=="value"&&(i[r]=this.model.value);this._updateTimeHeight();this._checkErrorClass()},observables:["value"],_destroy:function(){this.isPopupOpen&&this._hideResult();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();t.isNullOrUndefined(this.datePicker)||this.datePicker.destroy();t.isNullOrUndefined(this.timePicker)||this.timePicker.destroy();this.popup&&this.popup.remove()},_init:function(n){if(!this.element.is("input")||this.element.attr("type")&&this.element.attr("type")!="text")return!1;this._options=n;this._cloneElement=this.element.clone();this._ISORegex();this._isSupport=document.createElement("input").placeholder==r?!1:!0;this._validateMeridian();this._checkAttribute();this._initialize();this._initial=!0;this._interval=60;this._render();this._wireEvents();this._addAttr(this.model.htmlAttributes);t.isNullOrUndefined(n)||t.isNullOrUndefined(n.validationMessage)||(this.model.validationMessages=this.model.validationMessage);this.model.validationRules!=null&&(this._initValidator(),this._setValidation());this._removeWatermark();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/]]},_changeDesign:function(){if(this.model.timeDrillDown.enabled){var t=this.model.timeDrillDown.showFooter?"block":"none";this.popup.addClass("e-drill-down");this._timeContainer.css("display","none");this._buttonContainer.css("display","none");this.datePicker.option("showFooter",this.model.timeDrillDown.showFooter);n(".e-footer",this._sfTimeHour).css("display",t);n(".e-footer",this._sfTimeMins).css("display",t)}else this.popup.removeClass("e-drill-down"),this._sfTimeHour.hide(),this._sfTimeMins.hide(),this._updateTimeHeight(),this._dateContainer.show(),this._timeContainer.show(),this._buttonContainer.show(),this.datePicker.option("showFooter",!1),this.timePicker._refreshScroller(),this.timePicker._changeActiveEle()},_initValidator:function(){this.element.closest("form").data("validator")||this.element.closest("form").validate()},_checkAttribute:function(){this.model.value=this.model.value===""?this.element[0].value:this.model.value;this._options.minDateTime||(this.model.minDateTime=this.element[0].min);this._options.maxDateTime||(this.model.maxDateTime=this.element[0].max);t.isNullOrUndefined(this._options.readOnly)&&(this.model.readOnly=this.element.is("[readonly]"));t.isNullOrUndefined(this._options.enabled)&&(this.model.enabled=!this.element.is("[disabled]"))},_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]}},_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._enabled(!1):u=="readOnly"?r._readOnly(!0):u=="style"||u=="id"?r.wrapper.attr(i,n):t.isValidAttr(r.element[0],u)?r.element.attr(u,n):r.wrapper.attr(u,n)})},_validateMeridian:function(){var n=t.preferredCulture(this.model.locale);n&&(this.model.locale=n.name=="en"?"en-US":n.name);t.isNullOrUndefined(this._options)?this.model.timeDrillDown.showMeridian=t.isNullOrUndefined(t.preferredCulture(this.model.locale).calendars.standard.AM)?!1:!0:t.isNullOrUndefined(this._options.timeDrillDown)?this.model.timeDrillDown.showMeridian=t.isNullOrUndefined(t.preferredCulture(this.model.locale).calendars.standard.AM)?!1:!0:t.isNullOrUndefined(this._options.timeDrillDown.showMeridian)&&(this.model.timeDrillDown.showMeridian=t.isNullOrUndefined(t.preferredCulture(this.model.locale).calendars.standard.AM)?!1:!0)},_initialize:function(){var i,r,u,f;this.popup=null;this.isPopupOpen=!1;this.isValidState=!0;this._localizedLabels=this._getLocalizedLabels();t.isNullOrUndefined(this._options)||(t.isNullOrUndefined(this._options.buttonText)||n.extend(this._localizedLabels.buttonText,this._options.buttonText),t.isNullOrUndefined(this._options.watermarkText)||(this._localizedLabels.watermarkText=this._options.watermarkText));this._localizedLabelToModel();this.model.startDay==-1&&(this.model.startDay=t.preferredCulture(this.model.locale).calendar.firstDay);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.model.dateTimeFormat&&this.model.timeDisplayFormat||this._getDateTimeFormat();this.model.value&&(typeof JSON!="object"||JSON.stringify(this.model.value)!=="{}")?this.model.value instanceof Date?i=this.model.value:(r=t.parseDate(this.model.value,this.model.dateTimeFormat,this.model.locale),i=r?r:(r=this._checkJSONString(this.model.value))?r:null):i=null;i&&(this.model.value=i);u=this.model.minDateTime=this._stringToObject(this.model.minDateTime);u&&this._isValidDate(u)||(this.model.minDateTime=this.defaults.minDateTime);f=this.model.maxDateTime=this._stringToObject(this.model.maxDateTime);f&&this._isValidDate(f)||(this.model.maxDateTime=this.defaults.maxDateTime)},_checkJSONString:function(n){var t=new Date(n);if(isNaN(Date.parse(t))){if(this._extISORegex.exec(n)||this._basicISORegex.exec(n))return this._dateFromISO(n)}else{if(t.toJSON()===this.model.value||t.toGMTString()===this.model.value||t.toISOString()===this.model.value||t.toLocaleString()===this.model.value||t.toString()===this.model.value||t.toUTCString()===this.model.value)return t;if(typeof n=="string")return this._dateFromISO(n)}},_render:function(){this._renderWrapper();this._renderIcon();this._setDimentions();this._checkProperties()},_renderWrapper:function(){if(this.element.addClass("e-input").attr({"aria-atomic":"true","aria-live":"assertive",tabindex:"0",role:"combobox","aria-expanded":"false"}),this.wrapper=t.buildTag("span.e-datetime-wrap e-widget "+this.model.cssClass+"#"+this.element[0].id+"_wrapper").insertAfter(this.element),this._setValue(this.model.value),this.wrapper.attr("style",this.element.attr("style")),this.element.removeAttr("style"),t.isTouchDevice()||this.wrapper.addClass("e-ntouch"),this.container=t.buildTag("span.e-in-wrap e-box").append(this.element),this.wrapper.append(this.container),!this._isSupport){this._hiddenInput=t.buildTag("input.e-input e-placeholder ","",{},{type:"text"}).insertAfter(this.element);this._hiddenInput.val(this._localizedLabels.watermarkText);this._hiddenInput.css("display","block");var i=this;n(this._hiddenInput).focus(function(){i.element.focus()})}},_removeWatermark:function(){this.element.val()!=""&&!this._isSupport&&this._hiddenInput&&this._hiddenInput.css("display","none")},_renderIcon:function(){if(!this.model.showPopupButton)return!1;this.datetimeIcon=t.buildTag("span.e-select","",{}).attr(this._isIE8?{unselectable:"on"}:{});var n=t.buildTag("span.e-icon e-datetime","",{},{"aria-label":"select"}).attr(this._isIE8?{unselectable:"on"}:{});this.datetimeIcon.append(n);this.container.append(this.datetimeIcon).addClass("e-padding");this._on(this.datetimeIcon,"click",this._iconClick);this._on(this.datetimeIcon,"mousedown",function(n){n.preventDefault()})},_setDimentions:function(){this.model.height||(this.model.height=this.element.attr("height"));this.model.width||(this.model.width=this.element.attr("width"));this.wrapper.height(this.model.height);this.wrapper.width(this.model.width)},_renderDropdown:function(){var f=n("#"+this.element[0].id+"_popup").get(0),e,o,i,r,u;f&&n(f).remove();this.popup=t.buildTag("div.e-datetime-popup e-popup e-widget e-box "+this.model.cssClass+"#"+this.element[0].id+"_popup").css("visibility","hidden");t.isTouchDevice()||this.popup.addClass("e-ntouch");n("body").append(this.popup);this._renderControls();e=t.buildTag("div.e-header",this._localizedLabels.buttonText.timeTitle).attr(this._isIE8?{unselectable:"on"}:{});this._dateContainer=t.buildTag("div.e-datecontainer").append(this.datePicker.popup).attr(this._isIE8?{unselectable:"on"}:{});this._timeContainer=t.buildTag("div.e-timecontainer").append(e,this.timePicker.popup).attr(this._isIE8?{unselectable:"on"}:{});this._drillDownContainer=t.buildTag("div.e-drillDowncontainer").append().attr(this._isIE8?{unselectable:"on"}:{});o=t.buildTag("div.e-popup-container").append(this._dateContainer,this._timeContainer,this._drillDownContainer).attr(this._isIE8?{unselectable:"on"}:{});i=t.buildTag("div.e-dt-button e-dt-today e-btn e-select e-flat",this._localizedLabels.buttonText.today).attr(this._isIE8?{unselectable:"on"}:{});r=t.buildTag("div.e-dt-button e-dt-now e-btn e-select e-flat",this._localizedLabels.buttonText.timeNow).attr(this._isIE8?{unselectable:"on"}:{});u=t.buildTag("div.e-dt-button e-dt-done e-btn e-select e-flat",this._localizedLabels.buttonText.done).attr(this._isIE8?{unselectable:"on"}:{});this._buttonContainer=t.buildTag("div.e-button-container").append(i,r,u).attr(this._isIE8?{unselectable:"on"}:{});this._renderDrillDown();this.popup.append(o,this._buttonContainer);this._checkForResponsive();this._updateTimeHeight();this._bindOperations();this._updateValues();this.popup.css({visibility:"visible",display:"none"});this._on(i,"click",this._todayClick);this._on(r,"click",this._nowClick);this._on(u,"click",this._doneClick);this.popup.on("mouseenter touchstart",n.proxy(function(){this._popClose=!0},this));this.popup.on("mouseleave touchend",n.proxy(function(){this._popClose=!1},this));this._changeDesign()},_renderControls:function(){this._renderDateControl();this._renderTimeControl();var n=t.buildTag("span").append(this.datePicker.wrapper,this.timePicker.wrapper);n.find("span").css("display","none");this.popup.append(n)},_renderDrillDown:function(){this._renderHourPopup();this._renderMinsPopup()},_renderHourPopup:function(){this._sfTimeHour=t.buildTag("div.e-timepicker e-popup e-widget "+this.model.cssClass+" e-time-hours ","",{},{id:this._id?"e-hours-"+this._id:""}).attr({"aria-hidden":"true"}).attr(this._isIE8?{unselectable:"on"}:{});t.isTouchDevice()||this._sfTimeHour.addClass("e-ntouch");this._drillDownContainer.append(this._sfTimeHour);this._renderHourTable()},_renderHourTable:function(){var i,o,a,v,s,u,y,p,r,w,l,e;if(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-hours-headertext").text("October 2015").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._sfTimeHour),this._interval<1)return!1;y=this._interval*6e4;p=this.model.timeDrillDown.showMeridian?2:1;v=this.model.timeDrillDown.showMeridian?6:4;var b=this.model.timeDrillDown.showMeridian?"hh":"HH:00",h=["AM","PM"],c=0,f="";for(i=this.timePicker._createObject("12:00:00 AM"),o=this.model.timeDrillDown.showMeridian?this.timePicker._createObject("11:59:59 AM"):this.timePicker._createObject("11:59:59 PM"),r=0;r<p;r++){for(this.model.timeDrillDown.showMeridian&&(f=h[r].toLowerCase(),w=t.isNullOrUndefined(t.preferredCulture(this.model.locale).calendars.standard[h[r]])?"":t.preferredCulture(this.model.locale).calendars.standard[h[r]][0],t.buildTag("div.e-header-"+f).attr(this._isIE8?{unselectable:"on"}:{}).append(t.buildTag("span.e-text").append(t.buildTag("span.e-hours-meridiantxt-"+f).text(w).attr({"aria-atomic":"true","aria-live":"assertive",role:"heading"}).attr(this._isIE8?{unselectable:"on"}:{}))).appendTo(this._sfTimeHour)),s=t.buildTag("table.e-dp-viewhours","",{}).data("e-table","data").attr({role:"grid"}).attr(this._isIE8?{unselectable:"on"}:{}),this._sfTimeHour.append(s),l=t.buildTag("tbody.e-timepicker-hours").attr(this._isIE8?{unselectable:"on"}:{}),u=t.buildTag("tr","").attr(this._isIE8?{unselectable:"on"}:{});this.timePicker._compareTime(o,i,!0);)a=this._localizeTime(i,b),e=t.buildTag("td.e-hour e-state-default",a),this.model.timeDrillDown.showMeridian&&e.addClass("e-hour-"+f),this._isIE8&&e.attr("unselectable","on"),u.append(e),c++,c>=v&&(c=0,l.append(u),u=t.buildTag("tr","").attr(this._isIE8?{unselectable:"on"}:{})),i=this.timePicker._createObject(i).getTime()+y;s.append(l);this.model.timeDrillDown.showMeridian&&(i=this.timePicker._createObject("12:00:00 PM"),o=this.timePicker._createObject("11:59:59 PM"))}t.buildTag("div.e-footer").append(t.buildTag("span.e-footer-icon")).append(t.buildTag("span.e-footer-text")).appendTo(this._sfTimeHour);n(".e-footer-text",this._sfTimeHour).html(this._localizedLabels.buttonText.timeNow);n(".e-hours-headertext",this._sfTimeHour).text(t.format(this.datePicker.model.value,"dd MMM yyyy"));this._on(this._sfTimeHour.find(".e-hour"),"click",n.proxy(this._hourNavHandler,this));this._on(n(".e-next",this._sfTimeHour),"click",n.proxy(this._prevNextHourHandler,this));this._on(n(".e-prev",this._sfTimeHour),"click",n.proxy(this._prevNextHourHandler,this));this._on(n(".e-footer",this._sfTimeHour),"click",this._todayBtn);n(".e-hours-headertext",this._sfTimeHour).on("click",n.proxy(this._forwardNavHandler,this));this._sfTimeHour.hide()},_localizeTime:function(i,r){return n.trim(t.format(this.timePicker._createObject(i),r,this.model.locale))},_renderMinsPopup:function(){var r,e,i,s,h,c,u,f,o;if(this._sfTimeMins=t.buildTag("div.e-timepicker e-popup e-widget "+this.model.cssClass+" e-time-minitues ","",{},{id:this._id?"e-time-minitues-"+this._id:""}).attr({"aria-hidden":"true"}).attr(this._isIE8?{unselectable:"on"}:{}),t.isTouchDevice()||this._sfTimeMins.addClass("e-ntouch"),this._drillDownContainer.append(this._sfTimeMins),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-minitues-headertext").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._sfTimeMins),t.buildTag("div.e-mins-header").attr(this._isIE8?{unselectable:"on"}:{}).append(t.buildTag("span.e-text").append(t.buildTag("span.e-minitues-meridiantxt").text("AM").attr({"aria-atomic":"true","aria-live":"assertive",role:"heading"}).attr(this._isIE8?{unselectable:"on"}:{}))).appendTo(this._sfTimeMins),r=t.buildTag("table.e-dp-viewmins","",{}).data("e-table","data").attr({role:"grid"}).attr(this._isIE8?{unselectable:"on"}:{}),this._sfTimeMins.append(r),e=t.buildTag("tbody.e-timepicker-mins").attr(this._isIE8?{unselectable:"on"}:{}),this._intervall<1)return!1;for(c=this._interval*6e4,i=this.timePicker._createObject("12:00:00 AM"),s=this.timePicker._createObject("11:59:59 PM"),u=t.buildTag("tr","").attr(this._isIE8?{unselectable:"on"}:{}),f=0;this.timePicker._compareTime(s,i,!0);)h=this._localizeTime(i,"HH:00"),o=t.buildTag("td.e-mins e-state-default",h),this._isIE8&&o.attr("unselectable","on"),u.append(o),f++,f>=4&&(f=0,e.append(u),u=t.buildTag("tr","").attr(this._isIE8?{unselectable:"on"}:{})),i=this.timePicker._createObject(i).getTime()+c;r.append(e);n(".e-minitues-headertext",this._sfTimeMins).text(n(".e-hours-headertext",this._sfTimeHour).text());t.buildTag("div.e-footer").append(t.buildTag("span.e-footer-icon")).append(t.buildTag("span.e-footer-text")).appendTo(this._sfTimeMins);n(".e-footer-text",this._sfTimeMins).html(this._localizedLabels.buttonText.timeNow);n(".e-minitues-headertext",this._sfTimeMins).text(t.format(this.datePicker.model.value,"dd MMM yyyy"));this.model.timeDrillDown.showMeridian||n(".e-mins-header",this._sfTimeMins).css("display","none");this._on(r.find(".e-mins"),"click",n.proxy(this._minsNavHandler,this));this._on(n(".e-next",this._sfTimeMins),"click",n.proxy(this._prevNextMinsHandler,this));this._on(n(".e-prev",this._sfTimeMins),"click",n.proxy(this._prevNextMinsHandler,this));this._on(n(".e-footer",this._sfTimeMins),"click",this._todayBtn);n(".e-minitues-headertext",this._sfTimeMins).on("click",n.proxy(this._forwardNavHandler,this));this._sfTimeMins.hide()},_todayBtn:function(){this._nowClick();this._hideResult()},_hourNavHandler:function(i){var r,f;if(this.model.readOnly||!this.model.enabled||i&&n(i.target).hasClass("e-disable"))return!1;i&&i.type&&i.preventDefault();n("table",this._sfTimeHour).find("td").removeClass("e-active");n(i.target).addClass("e-active");this._sfTimeHour.hide();this._sfTimeMins.show();this._addFocus(this._sfTimeMins);this.model.timeDrillDown.showMeridian?(f=n(i.target).hasClass("e-hour-am")?"AM":"PM",r=n(i.target).text()+":00 "+f):r=n(i.target).text();this._generateMins(r);var e=new Date(this._datetimeValue.toString()).setMinutes(this.model.value.getMinutes()),o=n.trim(t.format(this.timePicker._createObject(e),"HH:mm",this.model.locale)),s=n.trim(t.format(this.timePicker._createObject(e),"HH:00",this.model.locale)),u=(this.timePicker._parse(o)-this.timePicker._parse(s))/(this.model.timeDrillDown.interval*6e4);u=Math.ceil(u);this._hoverMins=this._setFocusByIndex("mins",u,this._sfTimeMins)},_minsNavHandler:function(i){if(this.model.readOnly||!this.model.enabled||i&&n(i.target).hasClass("e-disable"))return!1;if(i&&i.type&&i.preventDefault(),n("table",this._sfTimeMins).find("td").removeClass("e-active").removeClass("e-state-hover"),n(i.target).addClass("e-active"),this.model.timeDrillDown.showMeridian){var r=n(i.target).text()+" "+t.format(this._datetimeValue,"tt","en-US");r=this.timePicker._localizeTime(r)}else r=n(i.target).text();this.timePicker.option("value",r);this.datePicker.option("value",this._datetimeValue);this._datetimeValue=new Date(this.model.value.toString());this._updateInput();this.model.timeDrillDown.autoClose&&this._hideResult(i)},_generateMins:function(i){var f=n("table",this._sfTimeMins),h,s;f.empty();this.model.timeDrillDown.showMeridian?n(".e-mins-header",this._sfTimeMins).show():n(".e-mins-header",this._sfTimeMins).hide();h=this.model.timeDrillDown.showMeridian?"hh:mm":"HH:mm";n(".e-minitues-headertext",this._sfTimeMins).text(n(".e-hours-headertext",this._sfTimeHour).text());var e=t.buildTag("tbody.e-timepicker-mins").attr(this._isIE8?{unselectable:"on"}:{}),r,u,c,l,o=0,a=this.model.timeDrillDown.interval*6e4;for(r=this.timePicker._createObject(i),this._datetimeValue.setHours(r.getHours()),c=this.timePicker._createObject(r).getTime()+354e4,u=t.buildTag("tr","").attr(this._isIE8?{unselectable:"on"}:{}),e.append(u);this.timePicker._compareTime(c,r,!0);)o>=4&&(o=0,u=t.buildTag("tr","").attr(this._isIE8?{unselectable:"on"}:{}),e.append(u)),l=this._localizeTime(r,h),s=t.buildTag("td.e-mins e-state-default",l),this._isIE8&&s.attr("unselectable","on"),u.append(s),o++,r=this.timePicker._createObject(r).getTime()+a;f.append(e);n(".e-mins-header",this._sfTimeMins).find(".e-minitues-meridiantxt").text(t.format(this._datetimeValue,"tt",this.model.locale));this._disableRange("mins");this._on(f.find(".e-mins"),"click",n.proxy(this._minsNavHandler,this))},_prevNextHourHandler:function(t){if(this.model.readOnly||!this.model.enabled)return!1;t.preventDefault();var i=n(t.target).is("a")?n(t.target.parentNode):n(t.target),r=i.hasClass("e-prev")?!0:!1;this._processNextPrev(r,this._sfTimeHour)},_prevNextMinsHandler:function(t){if(this.model.readOnly||!this.model.enabled)return!1;t.preventDefault();var i=n(t.target).is("a")?n(t.target.parentNode):n(t.target),r=i.hasClass("e-prev")?!0:!1;this._processNextPrev(r,this._sfTimeMins)},_processNextPrev:function(i,r){var e,o,u,s;if(i&&r.find(".e-arrow-sans-left").hasClass("e-disable")||!i&&r.find(".e-arrow-sans-right").hasClass("e-disable"))return!1;e=n("table",r);s=e.get(0).className;switch(s){case"e-dp-viewhours":u=i?-1:1;this._datetimeValue.setDate(this._datetimeValue.getDate()+u);this._disableRange("hour");this._hoverHour=this._setFocusByIndex("hour",this._hoverHour,this._sfTimeHour);n(".e-hours-headertext",this._sfTimeHour).text(t.format(this._datetimeValue,"dd MMM yyyy"));n(".e-minitues-headertext",this._sfTimeMins).text(t.format(this._datetimeValue,"dd MMM yyyy"));break;case"e-dp-viewmins":u=i?-1:1;this._datetimeValue.setHours(this._datetimeValue.getHours()+u);this._generateMins(n.trim(t.format(this.timePicker._createObject(this._datetimeValue),"HH:00",this.model.locale)));var o=new Date(this._datetimeValue.toString()).setMinutes(this.model.value.getMinutes()),h=n.trim(t.format(this.timePicker._createObject(o),"HH:mm",this.model.locale)),c=n.trim(t.format(this.timePicker._createObject(o),"HH:00",this.model.locale)),f=(this.timePicker._parse(h)-this.timePicker._parse(c))/(this.model.timeDrillDown.interval*6e4);f=Math.ceil(f);this._disableRange("mins");this._hoverMins=this._setFocusByIndex("mins",f,this._sfTimeMins);n(".e-hours-headertext",this._sfTimeHour).text(t.format(this._datetimeValue,"dd MMM yyyy"));n(".e-minitues-headertext",this._sfTimeMins).text(t.format(this._datetimeValue,"dd MMM yyyy"))}},_forwardNavHandler:function(i,r){var u,o,f,e;if(this.model.readOnly||!this.model.enabled)return!1;o=this;i&&i.preventDefault();u=i?n(i.currentTarget).get(0).className:r.find(".e-text>span").get(0).className;switch(u){case"e-hours-headertext":this._sfTimeHour.css("display","none");this._dateContainer.css("display","block");this._addFocus(this._dateContainer.find(".e-datepicker"));break;case"e-minitues-headertext":this._sfTimeMins.css("display","none");this._disableRange("hour");f=this._localizeTime(this.timePicker._createObject("12:00:00 AM"),"HH:00");e=n.trim(t.format(this.timePicker._createObject(this._datetimeValue),"HH:00",this.model.locale));indx=(this.timePicker._parse(e)-this.timePicker._parse(f))/(this._interval*6e4);indx=Math.floor(indx);this._hoverHour=this._setFocusByIndex("hour",indx,this._sfTimeHour);n(".e-hours-headertext",this._sfTimeHour).text(t.format(this._datetimeValue,"dd MMM yyyy"));n(".e-minitues-headertext",this._sfTimeMins).text(t.format(this._datetimeValue,"dd MMM yyyy"));this._sfTimeHour.css("display","block");this._addFocus(this._sfTimeHour)}},_renderDateControl:function(){var n=t.buildTag("input#"+this.element[0].id+"_date","",{},{type:"text"});this.popup.append(n);n.ejDatePicker({height:"0px",width:"0px",displayInline:!0,showDateIcon:!1,showFooter:this.model.timeDrillDown.enabled?this.model.timeDrillDown.showFooter:!1,enableStrictMode:!0,buttonText:this._localizedLabels.buttonText.today,minDate:this._stringToObject(this.model.minDateTime),maxDate:this._stringToObject(this.model.maxDateTime),dayHeaderFormat:this.model.dayHeaderFormat,startLevel:this.model.startLevel,depthLevel:this.model.depthLevel,startDay:this.model.startDay,stepMonths:this.model.stepMonths,showOtherMonths:this.model.showOtherMonths,headerFormat:this.model.headerFormat,enabled:this.model.enabled,enableRTL:this.model.enableRTL,showRoundedCorner:this.model.showRoundedCorner,readOnly:this.model.readOnly,cssClass:this.model.cssClass,locale:this.model.locale});t.isNullOrUndefined(this.model.value)||(this._datetimeValue=new Date(this.model.value.toString()));this.datePicker=n.data("ejDatePicker");this._datetimeValue=new Date(this.datePicker._dateValue.toString());this.model.startDay=this.datePicker.model.startDay;this.datePicker._getInternalEvents=!0;this.datePicker._dt_drilldown=!0;this.datePicker.popup.css({position:"static",display:"block"})},_renderTimeControl:function(){var n=t.buildTag("input#"+this.element[0].id+"_time","",{},{type:"text"}),i,r;this.popup.append(n);n.ejTimePicker({height:"0px",width:"0px",interval:this.model.interval,timeFormat:this.model.timeDisplayFormat,popupWidth:this.model.timePopupWidth,enabled:this.model.enabled,enableRTL:this.model.enableRTL,showRoundedCorner:this.model.showRoundedCorner,readOnly:this.model.readOnly,cssClass:this.model.cssClass,locale:this.model.locale});this.timePicker=n.data("ejTimePicker");this.timePicker._renderDropdown();this.timePicker.popup.css({position:"static",display:"block"});this.timePicker._getInternalEvents=!0;this.timePicker.showDropdown=!0;this.timePicker._dateTimeInternal=!0;i=this.model.minDateTime?this._stringToObject(this.model.minDateTime):this.defaults.minDateTime;r=this.model.maxDateTime?this._stringToObject(this.model.maxDateTime):this.defaults.maxDateTime},_updateTimeHeight:function(){var n=this.popup.find(".e-timecontainer .e-header").is(":visible")?this.datePicker.popup.height()-this.popup.find(".e-header").height():this.datePicker.popup.height();n=this.popup.hasClass("e-dt-responsive")?"98px":n;this.timePicker.option("popupHeight",n)},_bindOperations:function(){var n=this;this.datePicker.option("layoutChange",function(){n._updateTimeHeight()});this.datePicker.option("outOfRange",function(){n.isValidState=!1});this.timePicker.option("outOfRange",function(){n.isValidState=!1});this.datePicker.option("change",function(t){n._refreshTimes(t)});this.datePicker.option("select",function(t){n._updateInput(t)});this.datePicker.option("dt_drilldown",function(t){n.model.timeDrillDown.enabled&&(n._updateInput(t),n._switchToDrilDown(t))});this.timePicker.option("select",function(){n._updateInput()})},_switchToDrilDown:function(){var r;this._dateContainer.hide();this._sfTimeHour.show();this._addFocus(this._sfTimeHour);r=new Date(this.model.value.toString());this._datetimeValue=new Date(r.setHours(this._datetimeValue.getHours(),this._datetimeValue.getMinutes(),this._datetimeValue.getSeconds(),this._datetimeValue.getMilliseconds()));this._disableRange("hour");var u=this._localizeTime(this.timePicker._createObject("12:00:00 AM"),"HH:00"),f=n.trim(t.format(this.timePicker._createObject(this._datetimeValue),"HH:00",this.model.locale)),i=(this.timePicker._parse(f)-this.timePicker._parse(u))/(this._interval*6e4);i=Math.floor(i);this._hoverHour=this._setFocusByIndex("hour",i,this._sfTimeHour);n(".e-hours-headertext",this._sfTimeHour).text(t.format(this._datetimeValue,"dd MMM yyyy"));n(".e-minitues-headertext",this._sfTimeMins).text(t.format(this._datetimeValue,"dd MMM yyyy"))},_disableRange:function(r){var c=r=="hour"?this._interval:this.model.timeDrillDown.interval,u=r=="hour"?this._sfTimeHour:this._sfTimeMins,s=r=="hour"?"e-hide-hour e-disable":"e-hide-mins e-disable",h,f,l,e,o;if(u.find("tbody tr td.e-"+r).removeClass(s),u.find(".e-arrow-sans-left").removeClass("e-disable"),u.find(".e-arrow-sans-right").removeClass("e-disable"),h=r=="hour"?this._localizeTime(this.timePicker._createObject("12:00:00 AM"),"HH:00"):this._localizeTime(n.trim(t.format(this.timePicker._createObject(this._datetimeValue),"HH:00",this.model.locale)),"HH:00"),this._compareDate(this.model.minDateTime,this._datetimeValue)){if(r=="mins"&&!(this.model.minDateTime.getHours()===this._datetimeValue.getHours()))return!1;for(f=n.trim(t.format(this.timePicker._createObject(this.model.minDateTime),"HH:mm",this.model.locale)),indx=(this.timePicker._parse(f)-this.timePicker._parse(h))/(c*6e4),indx=r=="hour"?Math.floor(indx):Math.ceil(indx),i=0;i<indx;i++)e=u.find("tbody tr td.e-"+r),o=e[i],n(o).addClass(s);u.find(".e-arrow-sans-left").addClass("e-disable")}if(this._compareDate(this.model.maxDateTime,this._datetimeValue)){if(r=="mins"&&!(this.model.maxDateTime.getHours()===this._datetimeValue.getHours()))return!1;for(f=n.trim(t.format(this.timePicker._createObject(this.model.maxDateTime),"HH:mm",this.model.locale)),indx=(this.timePicker._parse(f)-this.timePicker._parse(h))/(c*6e4),indx=Math.floor(indx)+1,l=u.find("tbody tr td.e-"+r).length,i=indx;i<l;i++)e=u.find("tbody tr td.e-"+r),o=e[i],n(o).addClass(s);u.find(".e-arrow-sans-right").addClass("e-disable")}},_setFocusByName:function(t,i,r){var f=r.find("tbody tr td.e-"+t),e,u;return n(f).each(function(n,t){if(t.innerHTML==i){e=n;return}}),u=f[e],u||(u=f.last()),r.find("table td").removeClass("e-state-hover").removeClass("e-active"),n(u).hasClass("e-hide-"+t)||n(u).addClass("e-state-hover"),this._setActiveState(t,r),e},_setFocusByIndex:function(t,i,r){var f=r.find("tbody tr td.e-"+t),u;return u=f[i],u||(u=f.last()),r.find("table td").removeClass("e-state-hover").removeClass("e-active"),n(u).hasClass("e-hide-"+t)||n(u).addClass("e-state-hover"),this._setActiveState(t,r),i},_setActiveState:function(i,r){var h=r.find("tbody tr td.e-"+i),f,l=this,u=-1,o,e;switch(i){case"hour":this._compareDate(this.model.value,this._datetimeValue)&&(o=this._localizeTime(this.timePicker._createObject("12:00:00 AM"),"HH:00"),e=n.trim(t.format(this.timePicker._createObject(this.model.value),"HH:00",this.model.locale)),u=(this.timePicker._parse(e)-this.timePicker._parse(o))/(this._interval*6e4),u=Math.floor(u));break;case"mins":if(this._compareDate(this.model.value,this._datetimeValue)&&this.model.value.getHours()===this._datetimeValue.getHours()){var s=new Date(this._datetimeValue.toString()).setMinutes(this.model.value.getMinutes()),e=n.trim(t.format(this.timePicker._createObject(s),"HH:mm",this.model.locale)),c=n.trim(t.format(this.timePicker._createObject(s),"HH:00",this.model.locale));u=(this.timePicker._parse(e)-this.timePicker._parse(c))/(this.model.timeDrillDown.interval*6e4);u=Math.ceil(u)}}f=h[u];f&&(r.find("table td").removeClass("e-active"),n(f).removeClass("e-state-hover").addClass("e-active"))},_compareDate:function(n,t){var i=new Date(n.toString()).setHours(0,0,0,0),r=new Date(t.toString()).setHours(0,0,0,0);return+i==+r?!0:!1},_updateInput:function(n){var r=(new Date).setHours(0,0,0,0),t=this._getDate()||new Date,i=this._getTime()||this.timePicker._createObject(r);this.model.value=new Date(t.getFullYear(),t.getMonth(),t.getDate(),i.getHours(),i.getMinutes(),i.getSeconds());this._updateDateTime();this._raiseChangeEvent();this._updateModel(n,!0);n&&(n.cancel=!0)},_updateDateTime:function(){this.isValidState=!0;var n=this._objectToString(this.model.value);this.element.val(n);this._removeWatermark()},_refreshTimes:function(n){var t=this._getDateObj(n.value,this.datePicker.model.dateFormat),i,u,r;if(!t)return!1;this.isValidState=!0;this._compare(t,this._setEmptyTime(this.model.minDateTime))?(i=this._getFormat(this.model.minDateTime,this.timePicker.model.timeFormat),r=this._getTime(),this.timePicker.option("minTime",i),this.model.enableStrictMode||this._updateInput()):this.timePicker.option("minTime",this._defaultMinVal());this._compare(t,this._setEmptyTime(this.model.maxDateTime))?(u=this._getFormat(this.model.maxDateTime,this.timePicker.model.timeFormat),r=this._getTime(),this.timePicker.option("maxTime",u),this.model.enableStrictMode||this._updateInput()):this.timePicker.option("maxTime",this._defaultMaxVal());this.timePicker._changeActiveEle()},_defaultMinVal:function(){var n=(new Date).setHours(0,0,0,0);return t.format(this.timePicker._createObject(n),this.timePicker.model.timeFormat,this.timePicker.model.locale)},_defaultMaxVal:function(){var n=(new Date).setHours(23,59,59,59);return t.format(this.timePicker._createObject(n),this.timePicker.model.timeFormat,this.timePicker.model.locale)},_updateValues:function(){var n=this.model.value;this.model.value!=null&&(this.datePicker.option("value",this.model.value),this.timePicker.option("value",this.model.value));this._setValue(n);this._validateMinMax();this._preVal=this.element.val();this._checkErrorClass()},_specificFormat:function(){var i=t.globalize._getDateParseRegExp(t.globalize.findCulture(this.model.locale).calendar,this.model.dateFormat);return n.inArray("dddd",i.groups)>-1||n.inArray("ddd",i.groups)>-1},_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._showhidePopup,this));else{this.model.readOnly||this.element.attr("readonly","readonly");this.element.on("mousedown",n.proxy(this._showhidePopup,this))}this[i](this.element,"blur",this._targetBlur);this[i](this.element,"focus",this._targetFocus);this[i](this.element,"keydown",this._keyDownOnInput)}this._change("allowEdit",t)},_setValue:function(n){return n&&(typeof JSON!="object"||JSON.stringify(n)!=="{}")?typeof n=="string"?this._extISORegex.exec(n)||this._basicISORegex.exec(n)?this._checkObject(this._dateFromISO(n)):(this.element.val(n),this._updateModel(),this._validateMinMax(),this._checkStrictMode(),this.wrapper.addClass("e-valid")):n instanceof Date&&this._isValidDate(n)&&this._checkObject(n):(this.element.val(""),this.model.value=null,this.isValidState=!0,this.wrapper.removeClass("e-valid")),this._checkErrorClass(),this.model.value},_checkObject:function(n){n instanceof Date&&this._isValidDate(n)&&(this.model.value=n,this._updateDateTime(),this._validateMinMax(),this._checkStrictMode())},_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},_validateValue:function(n){var i=t.parseDate(n,this.model.dateTimeFormat);!i||i<this.model.minDateTime||i>this.model.maxDateTime?(this.model.value=null,this._change("value",this.model.value),this.isValidState=!1):(this._change("value",this.model.value),this.isValidState=!0)},_validateMinMax:function(){var i,n,t;if(i=this.model.value?this._stringToObject(this.model.value):null,n=this.model.minDateTime?this._stringToObject(this.model.minDateTime):this.defaults.minDateTime,t=this.model.maxDateTime?this._stringToObject(this.model.maxDateTime):this.defaults.maxDateTime,!i||!n||!t)return!1;n>t&&(this.model.minDateTime=this.model.maxDateTime);i<n&&(this.model.enableStrictMode?this.model.enableStrictMode&&(this.datePicker.option("minDate",this._getFormat(n,this.datePicker.model.dateFormat)),this.timePicker.option("minTime",this._getFormat(n,this.timePicker.model.timeFormat)),this.isValidState=!1):(this._setValue(n),this.isValidState=!0));i>t&&(this.model.enableStrictMode?this.model.enableStrictMode&&(this.datePicker.option("maxDate",this._getFormat(t,this.datePicker.model.dateFormat)),this.timePicker.option("maxTime",this._getFormat(t,this.timePicker.model.timeFormat)),this.isValidState=!1):(this._setValue(t),this.isValidState=!0));i<n||i>t||(this.isValidState=!0)},_checkProperties:function(){this.model.readOnly&&this._readOnly(!0);this.model.showRoundedCorner&&this._setRoundedCorner(!0);this.model.enableRTL&&this._setRtl(!0);this.model.enabled&&this._enabled(!0);this.model.enabled?this.model.enabled&&this.element.hasClass("e-disable")&&this._enabled(!0):this._enabled(!1);this.model.name=this._options.name?this.model.name:this.element.attr("name")?this.element.attr("name"):this.element[0].id;this.element.attr("name",this.model.name);this._checkStrictMode();this._checkErrorClass();this._setWaterMark()},_checkStrictMode:function(){this.model.enableStrictMode?this.model.enableStrictMode&&(this.isValidState||(this.model.value=null,this.isValidState=!1)):this.isValidState||(this.model.value<this.model.minDateTime?(this.element.val(this._objectToString(this.model.minDateTime)),this.model.value=this.model.minDateTime,this.isValidState=!0):this.model.value>this.model.maxDateTime?(this.element.val(this._objectToString(this.model.maxDateTime)),this.model.value=this.model.maxDateTime,this.isValidState=!0):(this.model.value="",this.element.val(""),this.isValidState=!0))},_targetFocus:function(n){n.preventDefault();this.isFocused=!0;this.wrapper.addClass("e-focus");this.wrapper.removeClass("e-error");this._isSupport||this._hiddenInput.css("display","none");this._prevDateTimeVal=this.element.val();this.model.showPopupButton||this.model.readOnly||this._showResult();this.model.showPopupButton||this._on(this.element,"click",this._elementClick);!this.model.showPopupButton&&this.model.readOnly&&this._off(this.element,"click",this._elementClick);this._trigger("focusIn",{value:this.model.value});this.wrapper.addClass("e-valid")},_targetBlur:function(){var n,i;this.isFocused=!1;this.wrapper.removeClass("e-focus");this.model.showPopupButton||this._hideResult();n=t.parseDate(this.element.val(),this.model.dateTimeFormat,this.model.locale);n&&!this.model.enableStrictMode&&(n<this.model.minDateTime||n>this.model.maxDateTime)&&(n=n<this.model.minDateTime?this.model.minDateTime:this.model.maxDateTime,this.element.val(this._objectToString(n)));i=t.parseDate(this.element.val(),this.model.dateTimeFormat,this.model.locale);i!=null||this.model.enableStrictMode||(this._prevDateTimeVal==null||this.element.val()==""?this.element.val(""):this.element.val(this._preVal));this._valueChange();this.model.enableStrictMode?this.element.val()!=""&&this._validateValue(this.element.val()):this.isValidState?this._prevDateTimeVal=this.element.val():(this.element.val(this._prevDateTimeVal),this._preVal=this._prevDateTimeVal,this.model.value=this._stringToObject(this._prevDateTimeVal),this.isValidState=!0);this._isSupport||this.element.val()!=""||this._hiddenInput.css("display","block");this._checkErrorClass();this.model.showPopupButton||this._off(this.element,"click",this._elementClick);this._trigger("focusOut",{value:this.model.value});t.isNullOrUndefined(this.model.value)?this.wrapper.removeClass("e-valid"):this.wrapper.addClass("e-valid");this._previousDateUpdate()},_previousDateUpdate:function(){var n=t.parseDate(this._prevDateTime,this.model.dateTimeFormat),i=t.parseDate(this.element.val(),this.model.dateTimeFormat);return+n==+i||(this._preValString=this._prevDateTime,this._prevDateTime=this.element.val()),this._preValString},_elementClick:function(){this.isPopupOpen||this._showResult()},_keyDownOnInput:function(n){switch(n.keyCode){case 40:n.altKey&&this._showhidePopup();break;case 37:case 39:this.model.timeDrillDown.enabled||n.altKey&&this.isPopupOpen&&(n.preventDefault(),this._addPrevNextFocus(n.keyCode==37));break;case 27:n.preventDefault();case 9:this._hideResult();break;case 13:var i=t.parseDate(this.element.val(),this.model.dateTimeFormat);if(i!=null||this.model.enableStrictMode||(this._prevDateTimeVal==null||this.element.val()==""?this.element.val(""):this.element.val(this._preVal)),this._valueChange(),!this.model.timeDrillDown.enabled){this._valueChange();this.model.enableStrictMode&&this._checkErrorClass();break}}},_addFocus:function(t){if(!t.hasClass("e-focus"))if(this._removeFocus(),t.addClass("e-focus"),t.hasClass("e-datepicker e-popup"))n(document).on("keydown",n.proxy(this.datePicker._keyboardNavigation,this.datePicker));else if(t.hasClass("e-timecontainer"))n(document).on("keydown",n.proxy(this.timePicker._keyDownOnInput,this.timePicker));else if(t.hasClass("e-time-hours"))n(document).on("keydown",n.proxy(this._keyDownOnHours,this));else if(t.hasClass("e-time-minitues"))n(document).on("keydown",n.proxy(this._keyDownOnMinutes,this));else if(t.hasClass("e-dt-button"))n(document).on("keydown",n.proxy(this._buttonClick,this))},_removeFocus:function(){var t=this._getFocusedElement();t.length>0&&(t.removeClass("e-focus"),t.hasClass("e-datepicker e-popup")?n(document).off("keydown",n.proxy(this.datePicker._keyboardNavigation,this.datePicker)):t.hasClass("e-timecontainer")?n(document).off("keydown",n.proxy(this.timePicker._keyDownOnInput,this.timePicker)):t.hasClass("e-time-hours")?n(document).off("keydown",n.proxy(this._keyDownOnHours,this)):t.hasClass("e-time-minitues")?n(document).off("keydown",n.proxy(this._keyDownOnMinutes,this)):t.hasClass("e-dt-button")&&n(document).off("keydown",n.proxy(this._buttonClick,this)))},_addPrevNextFocus:function(n){var i=this._getFocusedElement(),t;i.length>0?i.hasClass("e-datepicker e-popup")?t=n?this.popup.find(".e-dt-done"):this.popup.find(".e-timecontainer"):i.hasClass("e-timecontainer")?t=n?this.popup.find(".e-datecontainer >.e-datepicker.e-popup"):this.popup.find(".e-dt-today"):i.hasClass("e-dt-today")?t=n?this.popup.find(".e-timecontainer"):this.popup.find(".e-dt-now"):i.hasClass("e-dt-now")?t=n?this.popup.find(".e-dt-today"):this.popup.find(".e-dt-done"):i.hasClass("e-dt-done")&&(t=n?this.popup.find(".e-dt-now"):this.popup.find(".e-datecontainer >.e-datepicker.e-popup")):t=n?this.popup.find(".e-dt-done"):this.popup.find(".e-datecontainer >.e-datepicker.e-popup");this._addFocus(t)},_getFocusedElement:function(){return this.popup.children("div").find("div.e-focus")},_keyDownOnHours:function(n){var t,r,i;(n.keyCode==37||n.keyCode==38||n.keyCode==39||n.keyCode==40||n.keyCode==13||n.keyCode==36||n.keyCode==35)&&(n.preventDefault&&n.preventDefault(),t={row:null,col:null},t.col=this._sfTimeHour.find("tbody tr td.e-state-hover").index(),t.row=this._sfTimeHour.find("tbody tr td.e-state-hover").parent().index(),t.col=t.col!=-1?t.col+1:this._sfTimeHour.find("tbody tr td.e-active").index()+1,t.row!=-1?(t.row=t.row+1,this.model.timeDrillDown.showMeridian&&this._sfTimeHour.find("tbody tr td.e-state-hover").hasClass("e-hour-pm")&&(t.row=t.row+2)):(t.row=this._sfTimeHour.find("tbody tr td.e-active").parent().index()+1,this.model.timeDrillDown.showMeridian&&this._sfTimeHour.find("tbody tr td.e-active").hasClass("e-hour-pm")&&(t.row=t.row+2)),r=this._sfTimeHour.find("table")[0