-
Notifications
You must be signed in to change notification settings - Fork 6
/
jquery.timepicker.min.js
14 lines (14 loc) · 6.44 KB
/
jquery.timepicker.min.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
/*! jQuery timepicker 1.0.0 teamdf.com/jquery-plugins | teamdf.com/jquery-plugins/license */
(function(c){var n={onchange:c.noop,onsubmit:c.noop,dateformat:"H:i:s",value:null},k={init:function(h){return c(this).each(function(){var e=c.extend({},n);h&&c.extend(e,h);var i=c(this),a=i.data("timepicker");if(!a){a={target:i,wrapper:i,output:null,hour:null,minute:null,meridiem:null,settings:e};if(a.target.is("input")){i.css("display","none");i.wrap('<div class="ui-timepicker" />');a.output=i;a.wrapper=i.parent();if(a.settings.value===null)a.settings.value=a.output.val()}else a.wrapper.addClass("ui-timepicker ");
a.hour=c('<input type="text" class="ui-timepicker-hour" size="2"/>');a.minute=c('<input type="text" class="ui-timepicker-minute" size="2"/>');a.meridiem=c('<input type="text" class="ui-timepicker-meridiem" size="2"/>');a.wrapper.addClass("ui-widget ui-widget-content").css("whitespace","pre").append(a.hour,"<span>:</span>",a.minute,"<span> </span>",a.meridiem,a.output);if(!(a.settings.value instanceof Date)){e=a.settings.value.split(":");a.settings.value=new Date(0);a.settings.value.setHours(e[0]);
a.settings.value.setMinutes(e[1]);a.settings.value.setSeconds(e[2])}if(a.settings.value instanceof Date){a.hour.val(c.timepicker.format(a.settings.value,"g"));a.minute.val(c.timepicker.format(a.settings.value,"i"));a.meridiem.val(c.timepicker.format(a.settings.value,"a"))}else{a.hour.val("12");a.minute.val("00");a.meridiem.val("am")}a.hour.bind("keydown",function(b){var f=Number(c(this).val()),d=null,g=null;if(b.which>=48&&b.which<=57||b.which>=96&&b.which<=105||b.which==9)return true;switch(b.which){case 13:a.settings.onsubmit.call(a.target,
a.output.val());return true;case 38:d=f+1;break;case 40:d=f-1}if(d!==null){if(d>12)d-=12;if(d<1)d+=12;if(f==12&&a.meridiem.val()=="am"&&b.which==40)g="pm";else if(f==11&&a.meridiem.val()=="pm"&&b.which==38)g="am";else if(f==12&&a.meridiem.val()=="pm"&&b.which==40)g="am";else if(f==11&&a.meridiem.val()=="am"&&b.which==38)g="pm"}d!==null&&c(this).val(d).trigger("update");g!==null&&a.meridiem.val(g).trigger("update");c(this).select();b.preventDefault();return false}).bind("keyup blur",function(b){var f=
c(this).val(),d=null,g=null;f=f.substring(f.length-2,f.length);d=Number(f);if(d>24)d=Number(f.substring(1,2));if(f.substring(0,1)=="0"&&f.length>1)g="am";if(f=="00"||d==0&&b.type=="blur"){d=12;g="am"}else if(d>12){d-=12;g="pm"}d!==null&&c(this).val(d).trigger("update");g!==null&&a.meridiem.val(g).trigger("update");if((d>2||g!==null||Number(f)>12||b.which==9||b.which==16)&&b.type!=="blur")c(this).select();k.update.call(a.target)}).bind("focus mouseup mousedown",function(b){c(this).select();b.type==
"mouseup"&&b.preventDefault()});a.minute.bind("keydown",function(b){var f=Number(c(this).val()),d=Number(a.hour.val()),g=null,j=null,l=null;if(b.which>=48&&b.which<=57||b.which>=96&&b.which<=105||b.which==9)return true;switch(b.which){case 13:a.settings.onsubmit.call(a.target,a.output.val());return true;case 38:j=f+1;break;case 40:j=f-1}if(j!==null){if(j>59){g=Number(a.hour.val());g+=1;j-=60}if(j<0){g=Number(a.hour.val());g-=1;j+=60}}if(g!==null){if(g>12)g-=12;if(g<1)g+=12;if(d==12&&a.meridiem.val()==
"am"&&b.which==40)l="pm";else if(d==11&&a.meridiem.val()=="pm"&&b.which==38)l="am";else if(d==12&&a.meridiem.val()=="pm"&&b.which==40)l="am";else if(d==11&&a.meridiem.val()=="am"&&b.which==38)l="pm"}g!==null&&a.hour.val(g).trigger("update");if(j!==null)c(this).val(j<10?"0"+j:j).trigger("update");l!==null&&a.meridiem.val(l).trigger("update");c(this).select();b.preventDefault();return false}).bind("keyup blur",function(b){var f=c(this).val(),d=null;d=Number(f.replace(/$0/).substring(f.length-2,f.length));
if(d>59)d=Number(String(d).substring(1,2));if(d!==null)c(this).val(d<10?"0"+d:d).trigger("update");if((d>5||b.which==9||b.which==16)&&b.type!=="blur")c(this).select();k.update.call(a.target)}).bind("focus mouseup mousedown",function(b){c(this).select();b.type=="mouseup"&&b.preventDefault()});i.data("timepicker",a)}a.meridiem.bind("keydown",function(b){switch(b.which){case 13:a.settings.onsubmit.call(a.target,a.output.val());return true;case 38:case 40:c(this).val()=="am"?c(this).val("pm"):c(this).val("am");
break;case 80:c(this).val("pm");break;case 65:c(this).val("am")}c(this).select();k.update.call(a.target);if(b.which!==9){b.preventDefault();return false}}).bind("focus mouseup mousedown",function(b){c(this).select();b.type=="mouseup"&&b.preventDefault()})})},update:function(){var h=c(this),e=h.data("timepicker");if(e){var i=new Date(0),a=Number(e.hour.val()),b=Number(e.minute.val()),f=e.output&&typeof e.output=="object"?e.output.val():e.output;i.setHours(e.meridiem.val()=="am"?a-(a==12?12:0):a+(a!=
12?12:0));i.setMinutes(b);a=c.timepicker.format(i,e.settings.dateformat);if(f!==a){if(e.output&&typeof e.output=="object"){e.output.val(a);e.output.trigger("change")}else e.output=a;e.settings.onchange.call(h,a,i)}}return h},option:function(h,e){var i=c(this),a=i.data("timepicker");if(a){if(typeof h=="undefined")return a.settings;if(!h in a.settings)return false;if(typeof e=="undefined")return a.settings[h];else{a.settings[h]=e;return i}}},version:function(){return"timepicker v1.0.0"},destroy:function(){return this.each(function(){var h=
c(this);h.data("timepicker")&&h.removeData("timepicker")})}},m={a:function(){return this.getHours()<12?"am":"pm"},A:function(){return this.getHours()<12?"AM":"PM"},B:function(){return"B"},g:function(){return this.getHours()==0?12:this.getHours()>12?this.getHours()-12:this.getHours()},G:function(){return this.getHours()},h:function(){return(this.getHours()<10||12<this.getHours()<22?"0":"")+(this.getHours()<10?this.getHours()+1:this.getHours()-12)},H:function(){return(this.getHours()<10?"0":"")+this.getHours()},
i:function(){return(this.getMinutes()<10?"0":"")+this.getMinutes()},s:function(){return(this.getSeconds()<10?"0":"")+this.getSeconds()},e:function(){return"e"},I:function(){return"I"},O:function(){return(this.getTimezoneOffset()<0?"-":"+")+(this.getTimezoneOffset()/60<10?"0":"")+this.getTimezoneOffset()/60+"00"},T:function(){return"T"},Z:function(){return this.getTimezoneOffset()*60}};c.timepicker={};c.timepicker.format=function(h,e){for(var i="",a="",b=0;b<e.length;b++){a=e.charAt(b);if(a=="\\"&&
m[e.charAt(b+1)]){i+=e.charAt(b+1);b++}else i+=m[a]?m[a].call(h):a}return i};c.fn.timepicker=function(h){if(k[h])return k[h].apply(this,Array.prototype.slice.call(arguments,1));else if(typeof h==="object"||!h)return k.init.apply(this,arguments);else c.error("Method "+h+" does not exist on jQuery.timepicker")}})(jQuery);