-
Notifications
You must be signed in to change notification settings - Fork 7
Expand file tree
/
Copy pathjquery.datetimeentry.min.js
More file actions
6 lines (6 loc) · 19.5 KB
/
Copy pathjquery.datetimeentry.min.js
File metadata and controls
6 lines (6 loc) · 19.5 KB
1
2
3
4
5
6
/* http://keith-wood.name/datetimeEntry.html
Date and time entry for jQuery v2.0.0.
Written by Keith Wood (kbwood{at}iinet.com.au) September 2010.
Licensed under the MIT (https://github.com/jquery/jquery/blob/master/MIT-LICENSE.txt) license.
Please attribute the author if you use it. */
(function($){var v='datetimeEntry';$.JQPlugin.createPlugin({name:v,defaultOptions:{appendText:'',initialField:null,tabToExit:false,useMouseWheel:true,shortYearCutoff:'+10',defaultDatetime:null,minDatetime:null,maxDatetime:null,minTime:null,maxTime:null,timeSteps:[1,1,1],spinnerImage:'spinnerDefault.png',spinnerSize:[20,20,8],spinnerBigImage:'',spinnerBigSize:[40,40,16],spinnerIncDecOnly:false,spinnerRepeat:[500,250],beforeShow:null,altField:null,altFormat:null},regionalOptions:{'':{datetimeFormat:'O/D/Y H:Ma',datetimeSeparators:'.',monthNames:['January','February','March','April','May','June','July','August','September','October','November','December'],monthNamesShort:['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'],dayNames:['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'],dayNamesShort:['Sun','Mon','Tue','Wed','Thu','Fri','Sat'],ampmNames:['AM','PM'],spinnerTexts:['Today','Previous field','Next field','Increment','Decrement'],isRTL:false}},_getters:['getDatetime','getOffset','isDisabled'],_appendClass:v+'-append',_controlClass:v+'-control',_expandClass:v+'-expand',_disabledInputs:[],_instSettings:function(a,b){return{_field:0,_selectedYear:0,_selectedMonth:0,_selectedDay:0,_selectedHour:0,_selectedMinute:0,_selectedSecond:0}},_postAttach:function(b,c){this._decodeDatetimeFormat(c);b.on('focus.'+c.name,this._doFocus).on('blur.'+c.name,this._doBlur).on('click.'+c.name,this._doClick).on('keydown.'+c.name,this._doKeyDown).on('keypress.'+c.name,this._doKeyPress).on('paste.'+c.name,function(a){setTimeout(function(){w._extractDatetime(c)},1)})},_optionsChanged:function(a,b,c){var d=this._parseDatetime(b,a.val());$.extend(b.options,c);b._field=0;this._decodeDatetimeFormat(b);if(d){this._setDatetime(b,d)}a.next('span.'+this._appendClass).remove();a.parent().find('span.'+this._controlClass).remove();if($.fn.mousewheel){a.unmousewheel()}var e=(!b.options.spinnerImage?null:$('<span class="'+this._controlClass+'" style="display: inline-block; '+'background: url(\''+b.options.spinnerImage+'\') 0 0 no-repeat; width: '+b.options.spinnerSize[0]+'px; height: '+b.options.spinnerSize[1]+'px;"></span>'));a.after(b.options.appendText?'<span class="'+this._appendClass+'">'+b.options.appendText+'</span>':'').after(e||'');if(b.options.useMouseWheel&&$.fn.mousewheel){a.mousewheel(this._doMouseWheel)}if(e){e.mousedown(this._handleSpinner).mouseup(this._endSpinner).mouseover(this._expandSpinner).mouseout(this._endSpinner).mousemove(this._describeSpinner)}},enable:function(a){this._enableDisable(a,false)},disable:function(a){this._enableDisable(a,true)},_enableDisable:function(b,c){var d=this._getInst(b);if(!d){return}b.disabled=c;if(b.nextSibling&&b.nextSibling.nodeName.toLowerCase()==='span'){this._changeSpinner(d,b.nextSibling,(c?5:-1))}this._disabledInputs=$.map(this._disabledInputs,function(a){return(a===b?null:a)});if(c){this._disabledInputs.push(b)}},isDisabled:function(a){return $.inArray(a,this._disabledInputs)>-1},_preDestroy:function(b,c){b=$(b).off('.'+v);if($.fn.mousewheel){b.unmousewheel()}this._disabledInputs=$.map(this._disabledInputs,function(a){return(a===b[0]?null:a)});b.siblings('.'+this._appendClass+',.'+this._controlClass).remove()},_decodeDatetimeFormat:function(a){a._fields=[];a._ampmField=-1;for(var i=0;i<a.options.datetimeFormat.length;i++){if(a.options.datetimeFormat.charAt(i).match(/[yYoOnNdDwWhHmMsSa]/)){a._fields.push(i)}if(a.options.datetimeFormat.charAt(i)==='a'){a._ampmField=a._fields.length-1}}},setDatetime:function(a,b){var c=this._getInst(a);if(c){if(b===null||b===''){$(a).val('')}else{this._setDatetime(c,b?(typeof b==='object'?new Date(b.getTime()):b):null)}}},getDatetime:function(a){var b=this._getInst(a);return(b?this._parseDatetime(b,b.elem.val()):null)},getOffset:function(a){var b=this._getInst(a);var c=(b?this._parseDatetime(b,b.elem.val()):null);return(!c?0:(c.getHours()*3600+c.getMinutes()*60+c.getSeconds())*1000)},_doFocus:function(a){var b=(a.nodeName&&a.nodeName.toLowerCase()==='input'?a:this);if(w._lastInput===b||w.isDisabled(b)){return}var c=w._getInst(b);c._field=0;w._lastInput=b;w._blurredInput=null;$.extend(c.options,($.isFunction(c.options.beforeShow)?c.options.beforeShow.apply(b,[b]):{}));w._extractDatetime(c,a.nodeName?null:a);setTimeout(function(){w._showField(c)},10)},_doBlur:function(a){w._blurredInput=w._lastInput;w._lastInput=null},_doClick:function(a){var b=a.target;var c=w._getInst(b);var d=c._field;c._field=w._getSelection(c,b,a);if(d!==c._field){c._lastChr=''}w._showField(c)},_getSelection:function(b,c,d){var e=0;var f=b.options.datetimeFormat;if(typeof c.selectionStart!=='undefined'){var g=0;for(var h=0;h<f.length;h++){g+=w._fieldLength(b,f.charAt(h));if(c.selectionStart<g){break}e+=(f.charAt(h).match(/[yondwhmsa]/i)?1:0)}}else if(c.createTextRange&&d!=null&&$(c).val()){var i=$(d.target||d.srcElement);var j=c.createTextRange();var k=function(a){return{thin:2,medium:4,thick:6}[a]||a};var l=(d.clientX||0)+document.documentElement.scrollLeft-(i.offset().left+parseInt(k(i.css('border-left-width')),10))-j.offsetLeft;var g=0;for(var h=0;h<f.length;h++){g+=w._fieldLength(b,f.charAt(h));j.collapse();j.moveEnd('character',g);if(l<j.boundingWidth){break}e+=(f.charAt(h).match(/[yondwhmsa]/i)?1:0)}}return e},_doKeyDown:function(a){if(a.keyCode>=48){return true}var b=w._getInst(a.target);switch(a.keyCode){case 9:return(b.options.tabToExit?true:(a.shiftKey?w._changeField(b,-1,true):w._changeField(b,+1,true)));case 35:if(a.ctrlKey){w._setValue(b,'')}else{b._field=b._fields.length-1;w._adjustField(b,0)}break;case 36:if(a.ctrlKey){w._setDatetime(b)}else{b._field=0;w._adjustField(b,0)}break;case 37:w._changeField(b,-1,false);break;case 38:w._adjustField(b,+1);break;case 39:w._changeField(b,+1,false);break;case 40:w._adjustField(b,-1);break;case 46:w._setValue(b,'');break;default:return true}return false},_doKeyPress:function(a){var b=String.fromCharCode(a.charCode===undefined?a.keyCode:a.charCode);if(b<' '){return true}var c=w._getInst(a.target);w._handleKeyPress(c,b);return false},_handleKeyPress:function(a,b){b=b.toLowerCase();var c=a.options.datetimeFormat.charAt(a._fields[a._field]);var d=a.options.datetimeFormat.charAt(a._fields[a._field]+1);d=('yYoOnNdDwWhHmMsSa'.indexOf(d)===-1?d:'');if((a.options.datetimeSeparators+d).indexOf(b)>-1){this._changeField(a,+1,false)}else if(b>='0'&&b<='9'){var e=parseInt(b,10);var f=parseInt(a._lastChr+b,10);var g=(!c.match(/y/i)?a._selectedYear:f);var h=(!c.match(/o|n/i)?a._selectedMonth+1:(f>=1&&f<=12?f:(e>0?e:a._selectedMonth+1)));var j=(!c.match(/d|w/i)?a._selectedDay:(f>=1&&f<=this._getDaysInMonth(g,h-1)?f:(e>0?e:a._selectedDay)));var k=(!c.match(/h/i)?a._selectedHour:(a._ampmField===-1?(f<24?f:e):(f>=1&&f<=12?f:(e>0?e:a._selectedHour))%12+(a._selectedHour>=12?12:0)));var l=(!c.match(/m/i)?a._selectedMinute:(f<60?f:e));var m=(!c.match(/s/i)?a._selectedSecond:(f<60?f:e));var n=this._constrainTime(a,[k,l,m]);var o=this._shortYearCutoff(a);this._setDatetime(a,new Date(g+(g>=100||c!=='y'?0:(g>o?1900:2000)),h-1,j,n[0],n[1],n[2]));a._lastChr=(c!=='Y'?'':a._lastChr.substr(Math.max(0,a._lastChr.length-2)))+b}else if(c.match(/n/i)){a._lastChr+=b;var p=a.options[c==='n'?'monthNamesShort':'monthNames'];var q=function(){for(var i=0;i<p.length;i++){if(p[i].toLowerCase().substring(0,a._lastChr.length)===a._lastChr){return i;break}}return-1};var h=q();if(h===-1){a._lastChr=b.toLowerCase();h=q()}if(h===-1){a._lastChr=''}else{var g=a._selectedYear;var j=Math.min(a._selectedDay,this._getDaysInMonth(g,h));this._setDatetime(a,this._normaliseDatetime(new Date(g,h,j,a._selectedHour,a._selectedMinute,a._selectedSecond)))}}else if(a._ampmField>-1){if((b===a.options.ampmNames[0].substring(0,1).toLowerCase()&&a._selectedHour>=12)||(b===a.options.ampmNames[1].substring(0,1).toLowerCase()&&a._selectedHour<12)){var r=a._field;a._field=a._ampmField;this._adjustField(a,+1);a._field=r;this._showField(a)}}},_doMouseWheel:function(a,b){if(w.isDisabled(a.target)){return}var c=w._getInst(a.target);c.elem.focus();if(!c.elem.val()){w._extractDatetime(c)}w._adjustField(c,b);a.preventDefault()},_expandSpinner:function(b){var c=w._getSpinnerTarget(b);var d=w._getInst(w._getInput(c));if(w.isDisabled(d.elem[0])){return}if(d.options.spinnerBigImage){d._expanded=true;var e=$(c).offset();var f=null;$(c).parents().each(function(){var a=$(this);if(a.css('position')==='relative'||a.css('position')==='absolute'){f=a.offset()}return!f});$('<div class="'+w._expandClass+'" style="position: absolute; left: '+(e.left-(d.options.spinnerBigSize[0]-d.options.spinnerSize[0])/2-(f?f.left:0))+'px; top: '+(e.top-(d.options.spinnerBigSize[1]-d.options.spinnerSize[1])/2-(f?f.top:0))+'px; width: '+d.options.spinnerBigSize[0]+'px; height: '+d.options.spinnerBigSize[1]+'px; background: transparent url('+d.options.spinnerBigImage+') no-repeat 0px 0px; z-index: 10;"></div>').mousedown(w._handleSpinner).mouseup(w._endSpinner).mouseout(w._endExpand).mousemove(w._describeSpinner).insertAfter(c)}},_getInput:function(a){return $(a).siblings('.'+this._getMarker())[0]},_describeSpinner:function(a){var b=w._getSpinnerTarget(a);var c=w._getInst(w._getInput(b));b.title=c.options.spinnerTexts[w._getSpinnerRegion(c,a)]},_handleSpinner:function(a){var b=w._getSpinnerTarget(a);var c=w._getInput(b);if(w.isDisabled(c)){return}if(c===w._blurredInput){w._lastInput=c;w._blurredInput=null}var d=w._getInst(c);w._doFocus(c);var e=w._getSpinnerRegion(d,a);w._changeSpinner(d,b,e);w._actionSpinner(d,e);w._timer=null;w._handlingSpinner=true;if(e>=3&&d.options.spinnerRepeat[0]){w._timer=setTimeout(function(){w._repeatSpinner(d,e)},d.options.spinnerRepeat[0]);$(b).one('mouseout',w._releaseSpinner).one('mouseup',w._releaseSpinner)}},_actionSpinner:function(a,b){if(!a.elem.val()){w._extractDatetime(a)}switch(b){case 0:this._setDatetime(a);break;case 1:this._changeField(a,-1,false);break;case 2:this._changeField(a,+1,false);break;case 3:this._adjustField(a,+1);break;case 4:this._adjustField(a,-1);break}},_repeatSpinner:function(a,b){if(!w._timer){return}w._lastInput=w._blurredInput;this._actionSpinner(a,b);this._timer=setTimeout(function(){w._repeatSpinner(a,b)},a.options.spinnerRepeat[1])},_releaseSpinner:function(a){clearTimeout(w._timer);w._timer=null},_endExpand:function(a){w._timer=null;var b=w._getSpinnerTarget(a);var c=w._getInput(b);var d=w._getInst(c);$(b).remove();d._expanded=false},_endSpinner:function(a){w._timer=null;var b=w._getSpinnerTarget(a);var c=w._getInput(b);var d=w._getInst(c);if(!w.isDisabled(c)){w._changeSpinner(d,b,-1)}if(w._handlingSpinner){w._lastInput=w._blurredInput}if(w._lastInput&&w._handlingSpinner){w._showField(d)}w._handlingSpinner=false},_getSpinnerTarget:function(a){return a.target||a.srcElement},_getSpinnerRegion:function(a,b){var c=this._getSpinnerTarget(b);var d=$(c).offset();var e=[document.documentElement.scrollLeft||document.body.scrollLeft,document.documentElement.scrollTop||document.body.scrollTop];var f=(a.options.spinnerIncDecOnly?99:b.clientX+e[0]-d.left);var g=b.clientY+e[1]-d.top;var h=a.options[a._expanded?'spinnerBigSize':'spinnerSize'];var i=(a.options.spinnerIncDecOnly?99:h[0]-1-f);var j=h[1]-1-g;if(h[2]>0&&Math.abs(f-i)<=h[2]&&Math.abs(g-j)<=h[2]){return 0}var k=Math.min(f,g,i,j);return(k===f?1:(k===i?2:(k===g?3:4)))},_changeSpinner:function(a,b,c){$(b).css('background-position','-'+((c+1)*a.options[a._expanded?'spinnerBigSize':'spinnerSize'][0])+'px 0px')},_extractDatetime:function(a,b){var c=this._parseDatetime(a,a.elem.val())||this._normaliseDatetime(this._determineDatetime(a,a.options.defaultDatetime)||new Date());var d=this._constrainTime(a,[c.getHours(),c.getMinutes(),c.getSeconds()]);a._selectedYear=c.getFullYear();a._selectedMonth=c.getMonth();a._selectedDay=c.getDate();a._selectedHour=d[0];a._selectedMinute=d[1];a._selectedSecond=d[2];a._lastChr='';var e=function(){if(a.elem.val()!==''){w._showDatetime(a)}};if(typeof a.options.initialField==='number'){a._field=Math.max(0,a.options.initialField);e()}else{setTimeout(function(){a._field=w._getSelection(a,a.elem[0],b);e()},0)}},_parseDatetime:function(a,b){if(!b){return null}var c=0;var d=0;var e=0;var f=0;var g=0;var h=0;var k=[false,false,false];var l=0;var m=a.options.datetimeFormat;var n=function(){while(l<b.length&&b.charAt(l).match(/^[0-9]/)){l++}};var i;for(i=0;i<m.length&&l<b.length;i++){var o=m.charAt(i);var p=parseInt(b.substring(l),10);if(o.match(/y|o|d|h|m|s/i)&&isNaN(p)){throw'Invalid date/time';}p=(isNaN(p)?0:p);switch(o){case'y':case'Y':c=p;n();k[0]=true;break;case'o':case'O':d=p;n();k[1]=true;break;case'n':case'N':var q=a.options[o==='N'?'monthNames':'monthNamesShort'];for(var j=0;j<q.length;j++){if(b.substring(l).substr(0,q[j].length).toLowerCase()===q[j].toLowerCase()){d=j+1;l+=q[j].length;break}}k[1]=true;break;case'w':case'W':var r=a.options[o==='W'?'dayNames':'dayNamesShort'];for(var j=0;j<r.length;j++){if(b.substring(l).substr(0,r[j].length).toLowerCase()===r[j].toLowerCase()){l+=r[j].length+1;break}}p=parseInt(b.substring(l),10);p=(isNaN(p)?0:p);case'd':case'D':e=p;n();k[2]=true;break;case'h':case'H':f=p;n();break;case'm':case'M':g=p;n();break;case's':case'S':h=p;n();break;case'a':var s=(b.substr(l,a.options.ampmNames[1].length).toLowerCase()===a.options.ampmNames[1].toLowerCase());f=(f===12?0:f)+(s?12:0);l+=a.options.ampmNames[0].length;break;default:l++}}if(i<m.length){throw'Invalid date/time';}c=k[0]?c:2000;d=k[1]?d:1;e=k[2]?e:1;c+=(c>=100||m.indexOf('y')===-1?0:(c>this._shortYearCutoff(a)?1900:2000));var t=this._constrainTime(a,[f,g,h]);var u=new Date(c,Math.max(0,d-1),e,t[0],t[1],t[2]);if(m.match(/y|o|n|d|w/i)&&(u.getFullYear()!==c||u.getMonth()+1!==d||u.getDate()!==e)){throw'Invalid date/time';}return u},_showDatetime:function(a){this._setValue(a,this._formatDatetime(a,a.options.datetimeFormat));this._showField(a)},_formatDatetime:function(a,b){var c='';var d=b.indexOf('a')>-1;for(var i=0;i<b.length;i++){var e=b.charAt(i);switch(e){case'y':c+=this._formatNumber(a._selectedYear%100);break;case'Y':c+=this._formatNumber(a._selectedYear,4);break;case'o':case'O':c+=this._formatNumber(a._selectedMonth+1,e==='o'?1:2);break;case'n':case'N':c+=a.options[e==='N'?'monthNames':'monthNamesShort'][a._selectedMonth];break;case'd':case'D':c+=this._formatNumber(a._selectedDay,e==='d'?1:2);break;case'w':case'W':c+=a.options[e==='W'?'dayNames':'dayNamesShort'][new Date(a._selectedYear,a._selectedMonth,a._selectedDay).getDay()]+' '+this._formatNumber(a._selectedDay);break;case'h':case'H':c+=this._formatNumber(!d?a._selectedHour:a._selectedHour%12||12,e==='h'?1:2);break;case'm':case'M':c+=this._formatNumber(a._selectedMinute,e==='m'?1:2);break;case's':case'S':c+=this._formatNumber(a._selectedSecond,e==='s'?1:2);break;case'a':c+=a.options.ampmNames[a._selectedHour<12?0:1];break;default:c+=e;break}}return c},_showField:function(a){var b=a.elem[0];if(a.elem.is(':hidden')||w._lastInput!==b){return}var c=0;for(var i=0;i<a._fields[a._field];i++){c+=this._fieldLength(a,a.options.datetimeFormat.charAt(i))}var d=c+this._fieldLength(a,a.options.datetimeFormat.charAt(i));if(b.setSelectionRange){b.setSelectionRange(c,d)}else if(b.createTextRange){var e=b.createTextRange();e.moveStart('character',c);e.moveEnd('character',d-a.elem.val().length);e.select()}if(!b.disabled){b.focus()}},_fieldLength:function(a,b){switch(b){case'Y':return 4;case'n':case'N':return a.options[b==='N'?'monthNames':'monthNamesShort'][a._selectedMonth].length;case'w':case'W':return a.options[b==='W'?'dayNames':'dayNamesShort'][new Date(a._selectedYear,a._selectedMonth,a._selectedDay).getDay()].length+3;case'y':case'O':case'D':case'H':case'M':case'S':return 2;case'o':return(''+(a._selectedMonth+1)).length;case'd':return(''+a._selectedDay).length;case'h':return(''+(a._ampmField===-1?a._selectedHour:a._selectedHour%12||12)).length;case'm':return(''+a._selectedMinute).length;case's':return(''+a._selectedSecond).length;case'a':return a.options.ampmNames[0].length;default:return 1}},_formatNumber:function(a,b){a=''+a;b=b||2;while(a.length<b){a='0'+a}return a},_setValue:function(a,b){if(b!==a.elem.val()){if(a.options.altField){$(a.options.altField).val(!b?'':this._formatDatetime(a,a.options.altFormat||a.options.datetimeFormat))}a.elem.val(b).trigger('change')}},_changeField:function(a,b,c){var d=(a.elem.val()===''||a._field===(b===-1?0:a._fields.length-1));if(!d){a._field+=b}this._showField(a);a._lastChr='';return(d&&c)},_adjustField:function(a,b){if(a.elem.val()===''){b=0}var c=a.options.datetimeFormat.charAt(a._fields[a._field]);var d=a._selectedYear+(c.match(/y/i)?b:0);var e=a._selectedMonth+(c.match(/o|n/i)?b:0);var f=(c.match(/d|w/i)?a._selectedDay+b:Math.min(a._selectedDay,this._getDaysInMonth(d,e)));var g=a.options.timeSteps;var h=a._selectedHour+(c.match(/h/i)?b*g[0]:0)+(c==='a'&&b!==0?(a._selectedHour<12?+12:-12):0);var i=a._selectedMinute+(c.match(/m/i)?b*g[1]:0);var j=a._selectedSecond+(c.match(/s/i)?b*g[2]:0);this._setDatetime(a,new Date(d,e,f,h,i,j))},_getDaysInMonth:function(a,b){return new Date(a,b+1,0,12).getDate()},_setDatetime:function(a,b){b=this._normaliseDatetime(this._determineDatetime(a,b||a.options.defaultDatetime)||new Date());var c=this._constrainTime(a,[b.getHours(),b.getMinutes(),b.getSeconds()]);b.setHours(c[0],c[1],c[2]);var d=this._normaliseDatetime(this._determineDatetime(a,a.options.minDatetime));var e=this._normaliseDatetime(this._determineDatetime(a,a.options.maxDatetime));var f=this._normaliseDatetime(this._determineDatetime(a,a.options.minTime),'d');var g=this._normaliseDatetime(this._determineDatetime(a,a.options.maxTime),'d');b=(d&&b<d?d:(e&&b>e?e:b));if(f&&this._normaliseDatetime(new Date(b.getTime()),'d')<f){this._copyTime(f,b)}if(g&&this._normaliseDatetime(new Date(b.getTime()),'d')>g){this._copyTime(g,b)}a._selectedYear=b.getFullYear();a._selectedMonth=b.getMonth();a._selectedDay=b.getDate();a._selectedHour=b.getHours();a._selectedMinute=b.getMinutes();a._selectedSecond=b.getSeconds();this._showDatetime(a)},_copyDate:function(a,b){b.setFullYear(a.getFullYear());b.setMonth(a.getMonth());b.setDate(a.getDate())},_copyTime:function(a,b){b.setHours(a.getHours());b.setMinutes(a.getMinutes());b.setSeconds(a.getSeconds())},_determineDatetime:function(l,m){var n=function(a){var b=new Date();b.setSeconds(b.getSeconds()+a);return b};var o=function(a){var b;try{b=w._parseDatetime(l,a);if(b){return b}}catch(e){}a=a.toLowerCase();b=new Date();var c=b.getFullYear();var d=b.getMonth();var f=b.getDate();var g=b.getHours();var h=b.getMinutes();var i=b.getSeconds();var j=/([+-]?[0-9]+)\s*(s|m|h|d|w|o|y)?/g;var k=j.exec(a);while(k){switch(k[2]||'s'){case's':i+=parseInt(k[1],10);break;case'm':h+=parseInt(k[1],10);break;case'h':g+=parseInt(k[1],10);break;case'd':f+=parseInt(k[1],10);break;case'w':f+=parseInt(k[1],10)*7;break;case'o':d+=parseInt(k[1],10);break;case'y':c+=parseInt(k[1],10);break}k=j.exec(a)}return new Date(c,d,f,g,h,i)};return(m?(typeof m==='string'?o(m):(typeof m==='number'?n(m):m)):null)},_normaliseDatetime:function(a,b){if(!a){return null}if(b==='d'){a.setFullYear(0);a.setMonth(0);a.setDate(0)}if(b==='t'){a.setHours(12);a.setMinutes(0);a.setSeconds(0)}a.setMilliseconds(0);return a},_shortYearCutoff:function(a){var b=a.options.shortYearCutoff;if(typeof b==='string'){b=new Date().getFullYear()+parseInt(b,10)}return b%100},_constrainTime:function(a,b){var c=(b!==null&&b!==undefined);if(!c){var d=this._determineTime(a,a.options.defaultTime)||new Date();b=[d.getHours(),d.getMinutes(),d.getSeconds()]}var e=false;var f=a.options.timeSteps;for(var i=0;i<f.length;i++){if(e){b[i]=0}else if(f[i]>1){b[i]=Math.round(b[i]/f[i])*f[i];e=true}}return b}});var w=$.datetimeEntry})(jQuery);