!function(a){"use strict";var b=function(b,c){this.$element=a(b);this.options=a.extend({},a.fn.timepicker.defaults,c,this.$element.data());this.minuteStep=this.options.minuteStep||this.minuteStep;this.secondStep=this.options.secondStep||this.secondStep;this.showMeridian=this.options.showMeridian||this.showMeridian;this.showSeconds=this.options.showSeconds||this.showSeconds;this.showInputs=this.options.showInputs||this.showInputs;this.disableFocus=this.options.disableFocus||this.disableFocus;this.template=this.options.template||this.template;this.modalBackdrop=this.options.modalBackdrop||this.modalBackdrop;this.defaultTime=this.options.defaultTime||this.defaultTime;this.open=false;this.init()};b.prototype={constructor:b,init:function(){if(this.$element.parent().hasClass("input-append")){this.$element.parent(".input-append").find(".add-on").on("click",a.proxy(this.showWidget,this));this.$element.on({focus:a.proxy(this.highlightUnit,this),click:a.proxy(this.highlightUnit,this),keypress:a.proxy(this.elementKeypress,this),blur:a.proxy(this.blurElement,this)})}else{if(this.template){this.$element.on({focus:a.proxy(this.showWidget,this),click:a.proxy(this.showWidget,this),blur:a.proxy(this.blurElement,this)})}else{this.$element.on({focus:a.proxy(this.highlightUnit,this),click:a.proxy(this.highlightUnit,this),keypress:a.proxy(this.elementKeypress,this),blur:a.proxy(this.blurElement,this)})}}this.$widget=a(this.getTemplate()).appendTo("body");this.$widget.on("click",a.proxy(this.widgetClick,this));if(this.showInputs){this.$widget.find("input").on({click:function(){this.select()},keypress:a.proxy(this.widgetKeypress,this),change:a.proxy(this.updateFromWidgetInputs,this)})}this.setDefaultTime(this.defaultTime)},showWidget:function(b){b.stopPropagation();b.preventDefault();if(this.open){return}this.$element.trigger("show");if(this.disableFocus){this.$element.blur()}var c=a.extend({},this.$element.offset(),{height:this.$element[0].offsetHeight});this.updateFromElementVal();a("html").trigger("click.timepicker.data-api").one("click.timepicker.data-api",a.proxy(this.hideWidget,this));if(this.template==="modal"){this.$widget.modal("show").on("hidden",a.proxy(this.hideWidget,this))}else{this.$widget.css({top:c.top+c.height,left:c.left});if(!this.open){this.$widget.addClass("open")}}this.open=true;this.$element.trigger("shown")},hideWidget:function(){this.$element.trigger("hide");if(this.template==="modal"){this.$widget.modal("hide")}else{this.$widget.removeClass("open")}this.open=false;this.$element.trigger("hidden")},widgetClick:function(b){b.stopPropagation();b.preventDefault();var c=a(b.target).closest("a").data("action");if(c){this[c]();this.update()}},widgetKeypress:function(b){var c=a(b.target).closest("input").attr("name");switch(b.keyCode){case 9:if(this.showMeridian){if(c=="meridian"){this.hideWidget()}}else{if(this.showSeconds){if(c=="second"){this.hideWidget()}}else{if(c=="minute"){this.hideWidget()}}}break;case 27:this.hideWidget();break;case 38:switch(c){case"hour":this.incrementHour();break;case"minute":this.incrementMinute();break;case"second":this.incrementSecond();break;case"meridian":this.toggleMeridian();break}this.update();break;case 40:switch(c){case"hour":this.decrementHour();break;case"minute":this.decrementMinute();break;case"second":this.decrementSecond();break;case"meridian":this.toggleMeridian();break}this.update();break}},elementKeypress:function(a){var b=this.$element.get(0);switch(a.keyCode){case 0:break;case 9:this.updateFromElementVal();if(this.showMeridian){if(this.highlightedUnit!="meridian"){a.preventDefault();this.highlightNextUnit()}}else{if(this.showSeconds){if(this.highlightedUnit!="second"){a.preventDefault();this.highlightNextUnit()}}else{if(this.highlightedUnit!="minute"){a.preventDefault();this.highlightNextUnit()}}}break;case 27:this.updateFromElementVal();break;case 37:this.updateFromElementVal();this.highlightPrevUnit();break;case 38:switch(this.highlightedUnit){case"hour":this.incrementHour();break;case"minute":this.incrementMinute();break;case"second":this.incrementSecond();break;case"meridian":this.toggleMeridian();break}this.updateElement();break;case 39:this.updateFromElementVal();this.highlightNextUnit();break;case 40:switch(this.highlightedUnit){case"hour":this.decrementHour();break;case"minute":this.decrementMinute();break;case"second":this.decrementSecond();break;case"meridian":this.toggleMeridian();break}this.updateElement();break}if(a.keyCode!==0&&a.keyCode!==8&&a.keyCode!==9&&a.keyCode!==46){a.preventDefault()}},setValues:function(a){if(this.showMeridian){var b=a.split(" ");var c=b[0].split(":");this.meridian=b[1]}else{var c=a.split(":")}this.hour=parseInt(c[0],10);this.minute=parseInt(c[1],10);this.second=parseInt(c[2],10);if(isNaN(this.hour)){this.hour=1}if(isNaN(this.minute)){this.minute=0}if(this.showMeridian){if(this.hour>12){this.hour=12}else if(this.hour<1){this.hour=1}if(this.meridian=="am"||this.meridian=="a"){this.meridian="AM"}else if(this.meridian=="pm"||this.meridian=="p"){this.meridian="PM"}if(this.meridian!="AM"&&this.meridian!="PM"){this.meridian="AM"}}if(this.minute<0){this.minute=0}else if(this.minute>60){this.minute=60}if(this.showSeconds){if(isNaN(this.second)){this.second=0}else if(this.second<0){this.second=0}else if(this.second>60){this.second=60}}this.updateElement();this.updateWidget()},setMeridian:function(a){if(a=="a"||a=="am"||a=="AM"){this.meridian="AM"}else if(a=="p"||a=="pm"||a=="PM"){this.meridian="PM"}else{this.updateWidget()}this.updateElement()},setDefaultTime:function(a){if(a){if(a==="current"){var b=new Date;var c=b.getHours();var d=Math.floor(b.getMinutes()/this.minuteStep)*this.minuteStep;var e=Math.floor(b.getSeconds()/this.secondStep)*this.secondStep;var f="AM";if(this.showMeridian){if(c===0){c=12}else if(c>=12){if(c>12){c=c-12}f="PM"}else{f="AM"}}this.hour=c;this.minute=d;this.second=e;this.meridian=f}else if(a==="value"){this.setValues(this.$element.val())}else{this.setValues(a)}this.update()}else{this.hour=0;this.minute=0;this.second=0}},formatTime:function(a,b,c,d){a=a<10?"0"+a:a;b=b<10?"0"+b:b;c=c<10?"0"+c:c;return a+":"+b+(this.showSeconds?":"+c:"")+(this.showMeridian?" "+d:"")},getTime:function(){return this.formatTime(this.hour,this.minute,this.second,this.meridian)},setTime:function(a){this.setValues(a);this.update()},update:function(){this.updateElement();this.updateWidget()},blurElement:function(){this.highlightedUnit=undefined;this.updateFromElementVal()},updateElement:function(){var a=this.getTime();this.$element.val(a).change();switch(this.highlightedUnit){case"hour":this.highlightHour();break;case"minute":this.highlightMinute();break;case"second":this.highlightSecond();break;case"meridian":this.highlightMeridian();break}},updateWidget:function(){if(this.showInputs){this.$widget.find("input.bootstrap-timepicker-hour").val(this.hour<10?"0"+this.hour:this.hour);this.$widget.find("input.bootstrap-timepicker-minute").val(this.minute<10?"0"+this.minute:this.minute);if(this.showSeconds){this.$widget.find("input.bootstrap-timepicker-second").val(this.second<10?"0"+this.second:this.second)}if(this.showMeridian){this.$widget.find("input.bootstrap-timepicker-meridian").val(this.meridian)}}else{this.$widget.find("span.bootstrap-timepicker-hour").text(this.hour);this.$widget.find("span.bootstrap-timepicker-minute").text(this.minute<10?"0"+this.minute:this.minute);if(this.showSeconds){this.$widget.find("span.bootstrap-timepicker-second").text(this.second<10?"0"+this.second:this.second)}if(this.showMeridian){this.$widget.find("span.bootstrap-timepicker-meridian").text(this.meridian)}}},updateFromElementVal:function(a){var b=this.$element.val();if(b){this.setValues(b);this.updateWidget()}},updateFromWidgetInputs:function(){var b=a("input.bootstrap-timepicker-hour").val()+":"+a("input.bootstrap-timepicker-minute").val()+(this.showSeconds?":"+a("input.bootstrap-timepicker-second").val():"")+(this.showMeridian?" "+a("input.bootstrap-timepicker-meridian").val():"");this.setValues(b)},getCursorPosition:function(){var a=this.$element.get(0);if("selectionStart"in a){return a.selectionStart}else if(document.selection){a.focus();var b=document.selection.createRange();var c=document.selection.createRange().text.length;b.moveStart("character",-a.value.length);return b.text.length-c}},highlightUnit:function(){var a=this.$element.get(0);this.position=this.getCursorPosition();if(this.position>=0&&this.position<=2){this.highlightHour()}else if(this.position>=3&&this.position<=5){this.highlightMinute()}else if(this.position>=6&&this.position<=8){if(this.showSeconds){this.highlightSecond()}else{this.highlightMeridian()}}else if(this.position>=9&&this.position<=11){this.highlightMeridian()}},highlightNextUnit:function(){switch(this.highlightedUnit){case"hour":this.highlightMinute();break;case"minute":if(this.showSeconds){this.highlightSecond()}else{this.highlightMeridian()}break;case"second":this.highlightMeridian();break;case"meridian":this.highlightHour();break}},highlightPrevUnit:function(){switch(this.highlightedUnit){case"hour":this.highlightMeridian();break;case"minute":this.highlightHour();break;case"second":this.highlightMinute();break;case"meridian":if(this.showSeconds){this.highlightSecond()}else{this.highlightMinute()}break}},highlightHour:function(){this.highlightedUnit="hour";this.$element.get(0).setSelectionRange(0,2)},highlightMinute:function(){this.highlightedUnit="minute";this.$element.get(0).setSelectionRange(3,5)},highlightSecond:function(){this.highlightedUnit="second";this.$element.get(0).setSelectionRange(6,8)},highlightMeridian:function(){this.highlightedUnit="meridian";if(this.showSeconds){this.$element.get(0).setSelectionRange(9,11)}else{this.$element.get(0).setSelectionRange(6,8)}},incrementHour:function(){if(this.showMeridian){if(this.hour===11){this.toggleMeridian()}else if(this.hour===12){return this.hour=1}}if(this.hour===23){return this.hour=0}this.hour=this.hour+1},decrementHour:function(){if(this.showMeridian){if(this.hour===1){return this.hour=12}else if(this.hour===12){this.toggleMeridian()}}if(this.hour===0){return this.hour=23}this.hour=this.hour-1},incrementMinute:function(){var a=this.minute+this.minuteStep-this.minute%this.minuteStep;if(a>59){this.incrementHour();this.minute=a-60}else{this.minute=a}},decrementMinute:function(){var a=this.minute-this.minuteStep;if(a<0){this.decrementHour();this.minute=a+60}else{this.minute=a}},incrementSecond:function(){var a=this.second+this.secondStep-this.second%this.secondStep;if(a>59){this.incrementMinute();this.second=a-60}else{this.second=a}},decrementSecond:function(){var a=this.second-this.secondStep;if(a<0){this.decrementMinute();this.second=a+60}else{this.second=a}},toggleMeridian:function(){this.meridian=this.meridian==="AM"?"PM":"AM";this.update()},getTemplate:function(){if(this.options.templates[this.options.template]){return this.options.templates[this.options.template]}if(this.showInputs){var a='';var b='';var c='';var d=''}else{var a='';var b='';var c='';var d=''}var e=''+""+''+''+''+(this.showSeconds?''+'':"")+(this.showMeridian?''+'':"")+""+""+" "+''+" "+(this.showSeconds?''+"":"")+(this.showMeridian?''+"":"")+""+""+''+''+''+(this.showSeconds?''+'':"")+(this.showMeridian?''+'':"")+""+"
   
"+a+":"+b+":"+c+" "+d+"
  
";var f;switch(this.options.template){case"modal":f='";break;case"dropdown":f='";break}return f}};a.fn.timepicker=function(c){return this.each(function(){var d=a(this),e=d.data("timepicker"),f=typeof c=="object"&&c;if(!e){d.data("timepicker",e=new b(this,f))}if(typeof c=="string"){e[c]()}})};a.fn.timepicker.defaults={minuteStep:15,secondStep:15,disableFocus:false,defaultTime:"current",showSeconds:false,showInputs:true,showMeridian:true,template:"dropdown",modalBackdrop:false,templates:{}};a.fn.timepicker.Constructor=b}(window.jQuery)