/*!
* jquery-timepicker v1.13.2 - A jQuery timepicker plugin inspired by Google Calendar. It supports both mouse and keyboard navigation.
* Copyright (c) 2015 Jon Thornton - http://jonthornton.github.com/jquery-timepicker/
* License: MIT
*/
!function(e){"object"==typeof exports&&exports&&"object"==typeof module&&module&&module.exports===exports?e(require("jquery")):"function"==typeof define&&define.amd?define(["jquery"],e):e(jQuery)}(function(e){function i(e){var i=e[0];return i.offsetWidth>0&&i.offsetHeight>0}function t(i){if(i.minTime&&(i.minTime=T(i.minTime)),i.maxTime&&(i.maxTime=T(i.maxTime)),i.durationTime&&"function"!=typeof i.durationTime&&(i.durationTime=T(i.durationTime)),"now"==i.scrollDefault)i.scrollDefault=function(){return i.roundingFunction(T(new Date),i)};else if(i.scrollDefault&&"function"!=typeof i.scrollDefault){var t=i.scrollDefault;i.scrollDefault=function(){return i.roundingFunction(T(t),i)}}else i.minTime&&(i.scrollDefault=function(){return i.roundingFunction(i.minTime,i)});if("string"===e.type(i.timeFormat)&&i.timeFormat.match(/[gh]/)&&(i._twelveHourTime=!0),!1===i.showOnFocus&&-1!=i.showOn.indexOf("focus")&&i.showOn.splice(i.showOn.indexOf("focus"),1),i.disableTimeRanges.length>0){for(var n in i.disableTimeRanges)i.disableTimeRanges[n]=[T(i.disableTimeRanges[n][0]),T(i.disableTimeRanges[n][1])];i.disableTimeRanges=i.disableTimeRanges.sort(function(e,i){return e[0]-i[0]});for(var n=i.disableTimeRanges.length-1;n>0;n--)i.disableTimeRanges[n][0]<=i.disableTimeRanges[n-1][1]&&(i.disableTimeRanges[n-1]=[Math.min(i.disableTimeRanges[n][0],i.disableTimeRanges[n-1][0]),Math.max(i.disableTimeRanges[n][1],i.disableTimeRanges[n-1][1])],i.disableTimeRanges.splice(n,1))}return i}function n(i){var t=i.data("timepicker-settings"),n=i.data("timepicker-list");if(n&&n.length&&(n.remove(),i.data("timepicker-list",!1)),t.useSelect){n=e("",{"class":"ui-timepicker-select"}),i.attr("name")&&n.attr("name","ui-timepicker-"+i.attr("name"));var s=n}else{n=e("
",{"class":"ui-timepicker-list"});var s=e("",{"class":"ui-timepicker-wrapper",tabindex:-1});s.css({display:"none",position:"absolute"}).append(n)}if(t.noneOption)if(!0===t.noneOption&&(t.noneOption=t.useSelect?"Time...":"None"),e.isArray(t.noneOption)){for(var l in t.noneOption)if(parseInt(l,10)==l){var u=r(t.noneOption[l],t.useSelect);n.append(u)}}else{var u=r(t.noneOption,t.useSelect);n.append(u)}if(t.className&&s.addClass(t.className),(null!==t.minTime||null!==t.durationTime)&&t.showDuration){"function"==typeof t.step||t.step;s.addClass("ui-timepicker-with-duration"),s.addClass("ui-timepicker-step-"+t.step)}var p=t.minTime;"function"==typeof t.durationTime?p=T(t.durationTime()):null!==t.durationTime&&(p=t.durationTime);var d=null!==t.minTime?t.minTime:0,f=null!==t.maxTime?t.maxTime:d+w-1;f",{value:R});S.text(R)}else{var S=e("");S.addClass(D%w",{"class":"ui-timepicker-duration"});F.text(" ("+M+")"),S.append(F)}}y=h[y][1]&&(y+=1),h[y]&&D>=h[y][0]&&D",{value:a,"class":r,text:n}):e("",{"class":r,text:n}).data("time",String(a))}function a(e,i){if(null!==(e=i.roundingFunction(e,i)))return v(e,i)}function s(i){if(i.target!=window){var t=e(i.target);t.closest(".ui-timepicker-input").length||t.closest(".ui-timepicker-wrapper").length||(x.hide(),e(document).unbind(".ui-timepicker"),e(window).unbind(".ui-timepicker"))}}function o(e){var i=e.data("timepicker-settings");return(window.navigator.msMaxTouchPoints||"ontouchstart"in document)&&i.disableTouchKeyboard}function l(i,t,n){if(!n&&0!==n)return!1;var r=i.data("timepicker-settings"),a=!1,n=r.roundingFunction(n,r);return t.find("li").each(function(i,t){var r=e(t);if("number"==typeof r.data("time"))return r.data("time")==n?(a=r,!1):void 0}),a}function c(e,i){i.find("li").removeClass("ui-timepicker-selected");var t=e.data("timepicker-settings"),n=T(p(e),t);if(null!==n){var r=l(e,i,n);if(r){var a=r.offset().top-i.offset().top;(a+r.outerHeight()>i.outerHeight()||a<0)&&i.scrollTop(i.scrollTop()+r.position().top-r.outerHeight()),(t.forceRoundTime||r.data("time")===n)&&r.addClass("ui-timepicker-selected")}}}function u(i,t){if("timepicker"!=t){var n=e(this);if(""===this.value)return void m(n,null,t);if(!n.is(":focus")||i&&"change"==i.type){var r=n.data("timepicker-settings"),a=T(this.value,r);if(null===a)return n.trigger("timeFormatError"),void n.attr("data-is-valid-time","false");var s=!1;if(null!==r.minTime&&null!==r.maxTime&&(ar.maxTime)&&(s=!0),e.each(r.disableTimeRanges,function(){if(a>=this[0]&&a0)return a=e(t),!1}),a.addClass("ui-timepicker-selected")),!1;case 40:return a=r.find(".ui-timepicker-selected"),0===a.length?(r.find("li").each(function(i,t){if(e(t).position().top>0)return a=e(t),!1}),a.addClass("ui-timepicker-selected")):a.is(":last-child")||(a.removeClass("ui-timepicker-selected"),a.next().addClass("ui-timepicker-selected"),a.next().position().top+2*a.outerHeight()>r.outerHeight()&&r.scrollTop(r.scrollTop()+a.outerHeight())),!1;case 27:r.find("li").removeClass("ui-timepicker-selected"),x.hide();break;case 9:x.hide();break;default:return!0}}function h(t){var n=e(this),r=n.data("timepicker-list"),a=n.data("timepicker-settings");if(!r||!i(r)||a.disableTextInput)return!0;if("paste"===t.type||"cut"===t.type)return void setTimeout(function(){a.typeaheadHighlight?c(n,r):r.hide()},0);switch(t.keyCode){case 96:case 97:case 98:case 99:case 100:case 101:case 102:case 103:case 104:case 105:case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:case 65:case 77:case 80:case 186:case 8:case 46:a.typeaheadHighlight?c(n,r):r.hide()}}function g(e){var i=e.data("timepicker-settings"),t=e.data("timepicker-list"),n=null,r=t.find(".ui-timepicker-selected");return!r.hasClass("ui-timepicker-disabled")&&(r.length&&(n=r.data("time")),null!==n&&("string"!=typeof n&&(n=v(n,i)),m(e,n,"select")),!0)}function k(e,i){e=Math.abs(e);var t,n,r=Math.round(e/60),a=[];return r<60?a=[r,y.mins]:(t=Math.floor(r/60),n=r%60,30==i&&30==n&&(t+=y.decimal+5),a.push(t),a.push(1==t?y.hr:y.hrs),30!=i&&n&&(a.push(n),a.push(y.mins))),a.join(" ")}function v(i,t){if("number"!=typeof i)return null;var n=parseInt(i%60),r=parseInt(i/60%60),a=parseInt(i/3600%24),s=new Date(1970,0,2,a,r,n,0);if(isNaN(s.getTime()))return null;if("function"===e.type(t.timeFormat))return t.timeFormat(s);for(var o,l,c="",u=0;u11?y.pm:y.am;break;case"A":c+=s.getHours()>11?y.PM:y.AM;break;case"g":o=s.getHours()%12,c+=0===o?"12":o;break;case"G":o=s.getHours(),i===w&&(o=t.show2400?24:0),c+=o;break;case"h":o=s.getHours()%12,0!==o&&o<10&&(o="0"+o),c+=0===o?"12":o;break;case"H":o=s.getHours(),i===w&&(o=t.show2400?24:0),c+=o>9?o:"0"+o;break;case"i":var r=s.getMinutes();c+=r>9?r:"0"+r;break;case"s":n=s.getSeconds(),c+=n>9?n:"0"+n;break;case"\\":u++,c+=t.timeFormat.charAt(u);break;default:c+=l}return c}function T(e,i){if(""===e||null===e)return null;if("object"==typeof e)return 3600*e.getHours()+60*e.getMinutes()+e.getSeconds();if("string"!=typeof e)return e;e=e.toLowerCase().replace(/[\s\.]/g,""),"a"!=e.slice(-1)&&"p"!=e.slice(-1)||(e+="m");var t=(y.am.replace(".",""),y.pm.replace(".",""),y.AM.replace(".",""),y.PM.replace(".",""),new RegExp("^(([^0-9]*))?([0-9]?[0-9])(\\W?([0-5][0-9]))?(\\W+([0-5][0-9]))?(([^0-9]*))$","u")),n=e.match(t);if(!n)return null;var r=parseInt(1*n[3],10),a=n[2]||n[9],s=r,o=1*n[5]||0,l=1*n[7]||0;if(r<=12&&a){a=a.trim();var c=a==y.pm||a==y.PM;s=12==r?c?12:0:r+(c?12:0)}else if(i){var u=3600*r+60*o+l;if(u>=w+(i.show2400?1:0)){if(!1===i.wrapHours)return null;s=r%24}}var p=3600*s+60*o+l;if(r<12&&!a&&i&&i._twelveHourTime&&i.scrollDefault){var m=p-i.scrollDefault();m<0&&m>=w/-2&&(p=(p+w/2)%w)}return p}function b(e,i){return e==w&&i.show2400?e:e%w}var w=86400,y={am:"am",pm:"pm",AM:"AM",PM:"PM",decimal:".",mins:"mins",hr:"hr",hrs:"hrs"},x={init:function(i){return this.each(function(){var r=e(this),a=[];for(var s in e.fn.timepickerinput.defaults)r.data(s)&&(a[s]=r.data(s));var o=e.extend({},e.fn.timepickerinput.defaults,i,a);if(o.lang&&(y=e.extend(y,o.lang)),o=t(o),r.data("timepicker-settings",o),r.addClass("ui-timepicker-input"),o.useSelect)n(r);else{if(r.prop("autocomplete","off"),o.showOn)for(var l in o.showOn)r.on(o.showOn[l]+".timepickerinput",x.show);r.on("change.timepickerinput",u),r.on("keydown.timepickerinput",f),r.on("keyup.timepickerinput",h),o.disableTextInput&&r.on("keydown.timepickerinput",d),r.on("cut.timepickerinput",h),r.on("paste.timepickerinput",h),u.call(r.get(0),null,"initial")}})},show:function(t){var r=e(this),a=r.data("timepicker-settings");if(t&&t.preventDefault(),a.useSelect)return void r.data("timepicker-list").focus();o(r)&&r.blur();var u=r.data("timepicker-list");if(!r.prop("readonly")&&(u&&0!==u.length&&"function"!=typeof a.durationTime||(n(r),u=r.data("timepicker-list")),!i(u))){r.data("ui-timepicker-value",r.val()),c(r,u),x.hide(),"number"==typeof a.listWidth&&(console.log(a.listWidth),u.width(r.outerWidth()*a.listWidth)),u.show();var m={};a.orientation.match(/r/)?m.left=r.offset().left+r.outerWidth()-u.outerWidth()+parseInt(u.css("marginLeft").replace("px",""),10):a.orientation.match(/l/)?m.left=r.offset().left+parseInt(u.css("marginLeft").replace("px",""),10):a.orientation.match(/c/)&&(m.left=r.offset().left+(r.outerWidth()-u.outerWidth())/2+parseInt(u.css("marginLeft").replace("px",""),10));var d;d=a.orientation.match(/t/)?"t":a.orientation.match(/b/)?"b":r.offset().top+r.outerHeight(!0)+u.outerHeight()>e(window).height()+e(window).scrollTop()?"t":"b","t"==d?(u.addClass("ui-timepicker-positioned-top"),m.top=r.offset().top-u.outerHeight()+parseInt(u.css("marginTop").replace("px",""),10)):(u.removeClass("ui-timepicker-positioned-top"),m.top=r.offset().top+r.outerHeight()+parseInt(u.css("marginTop").replace("px",""),10)),u.offset(m);var f=u.find(".ui-timepicker-selected");if(!f.length){var h=T(p(r));null!==h?f=l(r,u,h):a.scrollDefault&&(f=l(r,u,a.scrollDefault()))}if(f.length&&!f.hasClass("ui-timepicker-disabled")||(f=u.find("li:not(.ui-timepicker-disabled):first")),f&&f.length){var g=u.scrollTop()+f.position().top-f.outerHeight();u.scrollTop(g)}else u.scrollTop(0);return a.stopScrollPropagation&&e(document).on("wheel.ui-timepicker",".ui-timepicker-wrapper",function(i){i.preventDefault();var t=e(this).scrollTop();e(this).scrollTop(t+i.originalEvent.deltaY)}),e(document).on("touchstart.ui-timepicker mousedown.ui-timepicker",s),e(window).on("resize.ui-timepicker",s),a.closeOnWindowScroll&&e(document).on("scroll.ui-timepicker",s),r.trigger("showTimepicker"),this}},hide:function(){var t=e(this),n=t.data("timepicker-settings");return n&&n.useSelect&&t.blur(),e(".ui-timepicker-wrapper").each(function(){var t=e(this);if(i(t)){var n=t.data("timepicker-input"),r=n.data("timepicker-settings");r&&r.selectOnBlur&&g(n),t.hide(),n.trigger("hideTimepicker")}}),this},option:function(i,r){return"string"==typeof i&&void 0===r?e(this).data("timepicker-settings")[i]:this.each(function(){var a=e(this),s=a.data("timepicker-settings"),o=a.data("timepicker-list");"object"==typeof i?s=e.extend(s,i):"string"==typeof i&&(s[i]=r),s=t(s),a.data("timepicker-settings",s),u.call(a.get(0),{type:"change"},"initial"),o&&(o.remove(),a.data("timepicker-list",!1)),s.useSelect&&n(a)})},getSecondsFromMidnight:function(){return T(p(this))},getTime:function(e){var i=this,t=p(i);if(!t)return null;var n=T(t);if(null===n)return null;e||(e=new Date);var r=new Date(e);return r.setHours(n/3600),r.setMinutes(n%3600/60),r.setSeconds(n%60),r.setMilliseconds(0),r},isVisible:function(){var e=this,t=e.data("timepicker-list");return!(!t||!i(t))},setTime:function(e){var i=this,t=i.data("timepicker-settings");if(t.forceRoundTime)var n=a(T(e),t);else var n=v(T(e),t);return e&&null===n&&t.noneOption&&(n=e),m(i,n,"initial"),u.call(i.get(0),{type:"change"},"initial"),i.data("timepicker-list")&&c(i,i.data("timepicker-list")),this},remove:function(){var e=this;if(e.hasClass("ui-timepicker-input")){var i=e.data("timepicker-settings");return e.removeAttr("autocomplete","off"),e.removeClass("ui-timepicker-input"),e.removeData("timepicker-settings"),e.off(".timepickerinput"),e.data("timepicker-list")&&e.data("timepicker-list").remove(),i.useSelect&&e.show(),e.removeData("timepicker-list"),this}}};e.fn.timepickerinput=function(i){return this.length?x[i]?this.hasClass("ui-timepicker-input")?x[i].apply(this,Array.prototype.slice.call(arguments,1)):this:"object"!=typeof i&&i?void e.error("Method "+i+" does not exist on jQuery.timepickerinput"):x.init.apply(this,arguments):this},e.fn.timepickerinput.defaults={appendTo:"body",className:null,closeOnWindowScroll:!1,disableTextInput:!1,disableTimeRanges:[],disableTouchKeyboard:!1,durationTime:null,forceRoundTime:!1,listWidth:null,maxTime:null,minTime:null,noneOption:!1,orientation:"l",roundingFunction:function(e,i){if(null===e)return null;if("number"!=typeof i.step)return e;var t=e%(60*i.step);return t-=(i.minTime||0)%(60*i.step),t>=30*i.step?e+=60*i.step-t:e-=t,b(e,i)},scrollDefault:null,selectOnBlur:!1,show2400:!1,showDuration:!1,showOn:["click","focus"],showOnFocus:!0,step:15,stopScrollPropagation:!1,timeFormat:"g:ia",typeaheadHighlight:!0,useSelect:!1,wrapHours:!0}});