/* -- DO NOT REMOVE --
 * jQuery MDTimePicker v1.0 plugin
 * 
 * Author: Dionlee Uy
 * Email: dionleeuy@gmail.com
 *
 * Date: Tuesday, August 28 2017
 *
 * @requires jQuery
 * -- DO NOT REMOVE -- */
if("undefined"==typeof jQuery)throw new Error("MDTimePicker: This plugin requires jQuery");+function(e){var t="mdtimepicker",i=120,s=90,n=360,r=30,a=6,o=[9,112,113,114,115,116,117,118,119,120,121,122,123],c=function(t,i){this.hour=t,this.minute=i,this.format=function(t,i){var s=this,n=(t.match(/h/g)||[]).length>1;return e.trim(t.replace(/(hh|h|mm|ss|tt|t)/g,function(e){switch(e.toLowerCase()){case"h":var t=s.getHour(!0);return i&&10>t?"0"+t:t;case"hh":return s.hour<10?"0"+s.hour:s.hour;case"mm":return s.minute<10?"0"+s.minute:s.minute;case"ss":return"00";case"t":return n?"":s.getT().toLowerCase();case"tt":return n?"":s.getT()}}))},this.setHour=function(e){this.hour=e},this.getHour=function(e){return e?0===this.hour||12===this.hour?12:this.hour%12:this.hour},this.invert=function(){"AM"===this.getT()?this.setHour(this.getHour()+12):this.setHour(this.getHour()-12)},this.setMinutes=function(e){this.minute=e},this.getMinutes=function(){return this.minute},this.getT=function(){return this.hour<12?"AM":"PM"}},d=function(t,i){var s=this;this.visible=!1,this.activeView="hours",this.hTimeout=null,this.mTimeout=null,this.input=e(t),this.config=i,this.time=new c(0,0),this.selected=new c(0,0),this.timepicker={overlay:e('<div class="mdtimepicker hidden"></div>'),wrapper:e('<div class="mdtp__wrapper"></div>'),timeHolder:{wrapper:e('<section class="mdtp__time_holder"></section>'),hour:e('<span class="mdtp__time_h">12</span>'),dots:e('<span class="mdtp__timedots">:</span>'),minute:e('<span class="mdtp__time_m">00</span>'),am_pm:e('<span class="mdtp__ampm">AM</span>')},clockHolder:{wrapper:e('<section class="mdtp__clock_holder"></section>'),am:e('<span class="mdtp__am">AM</span>'),pm:e('<span class="mdtp__pm">PM</span>'),clock:{wrapper:e('<div class="mdtp__clock"></div>'),dot:e('<span class="mdtp__clock_dot"></span>'),hours:e('<div class="mdtp__hour_holder"></div>'),minutes:e('<div class="mdtp__minute_holder"></div>')},buttonsHolder:{wrapper:e('<div class="mdtp__buttons">'),btnOk:e('<span class="mdtp__button ok">Ok</span>'),btnCancel:e('<span class="mdtp__button cancel">Cancel</span>')}}};var n=s.timepicker;if(s.setup(n).appendTo("body"),n.clockHolder.am.click(function(){"AM"!==s.selected.getT()&&s.setT("am")}),n.clockHolder.pm.click(function(){"PM"!==s.selected.getT()&&s.setT("pm")}),n.timeHolder.hour.click(function(){"hours"!==s.activeView&&s.switchView("hours")}),n.timeHolder.minute.click(function(){"minutes"!==s.activeView&&s.switchView("minutes")}),n.clockHolder.buttonsHolder.btnOk.click(function(){s.setValue(s.selected);var t=s.getFormattedTime();s.input.trigger(e.Event("timechanged",{time:t.time,value:t.value})).trigger("onchange"),s.hide()}),n.clockHolder.buttonsHolder.btnCancel.click(function(){s.hide()}),s.input.on("keydown",function(e){return 13===e.keyCode&&s.show(),!(o.indexOf(e.which)<0&&s.config.readOnly)}).on("click",function(){s.show()}).prop("readonly",s.config.readOnly),""!==s.input.val()){var r=s.parseTime(s.input.val(),s.config.format);s.setValue(r)}else{var r=s.getSystemTime();s.time=new c(r.hour,r.minute)}s.resetSelected(),s.switchView(s.activeView)};d.prototype={constructor:d,setup:function(t){if("undefined"==typeof t)throw new Error("Expecting a value.");var o=this,c=t.overlay,d=t.wrapper,u=t.timeHolder,m=t.clockHolder;u.wrapper.append(u.hour).append(u.dots).append(u.minute).append(u.am_pm).appendTo(d);for(var l=0;12>l;l++){var p=l+1,h=(i+l*r)%n,f=e('<div class="mdtp__digit rotate-'+h+'" data-hour="'+p+'"><span>'+p+"</span></div>");f.find("span").click(function(){var t=parseInt(e(this).parent().data("hour")),i=o.selected.getT(),s=(t+("PM"===i&&12>t||"AM"===i&&12===t?12:0))%24;o.setHour(s),o.switchView("minutes")}),m.clock.hours.append(f)}for(var l=0;60>l;l++){var v=10>l?"0"+l:l,h=(s+l*a)%n,k=e('<div class="mdtp__digit rotate-'+h+'" data-minute="'+l+'"></div>');l%5===0?k.addClass("marker").html("<span>"+v+"</span>"):k.html("<span></span>"),k.find("span").click(function(){o.setMinute(e(this).parent().data("minute"))}),m.clock.minutes.append(k)}switch(m.clock.wrapper.append(m.am).append(m.pm).append(m.clock.dot).append(m.clock.hours).append(m.clock.minutes).appendTo(m.wrapper),m.buttonsHolder.wrapper.append(m.buttonsHolder.btnCancel).append(m.buttonsHolder.btnOk).appendTo(m.wrapper),m.wrapper.appendTo(d),o.config.theme){case"red":case"blue":case"green":case"purple":case"indigo":case"teal":d.attr("data-theme",o.config.theme);break;default:d.attr("data-theme",e.fn.mdtimepicker.defaults.theme)}return d.appendTo(c),c},setHour:function(t){if("undefined"==typeof t)throw new Error("Expecting a value.");var i=this;this.selected.setHour(t),this.timepicker.timeHolder.hour.text(this.selected.getHour(!0)),this.timepicker.clockHolder.clock.hours.children("div").each(function(t,s){var n=e(s),r=n.data("hour");n[r===i.selected.getHour(!0)?"addClass":"removeClass"]("active")})},setMinute:function(t){if("undefined"==typeof t)throw new Error("Expecting a value.");this.selected.setMinutes(t),this.timepicker.timeHolder.minute.text(10>t?"0"+t:t),this.timepicker.clockHolder.clock.minutes.children("div").each(function(i,s){var n=e(s),r=n.data("minute");n[r===t?"addClass":"removeClass"]("active")})},setT:function(e){if("undefined"==typeof e)throw new Error("Expecting a value.");this.selected.getT()!==e.toUpperCase()&&this.selected.invert();var t=this.selected.getT();this.timepicker.timeHolder.am_pm.text(t),this.timepicker.clockHolder.am["AM"===t?"addClass":"removeClass"]("active"),this.timepicker.clockHolder.pm["PM"===t?"addClass":"removeClass"]("active")},setValue:function(e){if("undefined"==typeof e)throw new Error("Expecting a value.");var t="string"==typeof e?this.parseTime(e,this.config.format):e;this.time=new c(t.hour,t.minute);var i=this.getFormattedTime();this.input.val(i.value).attr("data-time",i.time).attr("value",i.value)},resetSelected:function(){this.setHour(this.time.hour),this.setMinute(this.time.minute),this.setT(this.time.getT())},getFormattedTime:function(){var e=this.time.format(this.config.timeFormat,!1),t=this.time.format(this.config.format,this.config.hourPadding);return{time:e,value:t}},getSystemTime:function(){var e=new Date;return new c(e.getHours(),e.getMinutes())},parseTime:function(e,t){var i=this,s="undefined"==typeof t?i.config.format:t,n=(s.match(/h/g)||[]).length,r=n>1,a=((s.match(/m/g)||[]).length,(s.match(/t/g)||[]).length),o=e.length,d=s.indexOf("h"),u=s.lastIndexOf("h"),m="",l="",p="";if(i.config.hourPadding||r)m=e.substr(d,2);else{var h=s.substring(d-1,d),f=s.substring(u+1,u+2);m=u===s.length-1?e.substring(e.indexOf(h,d-1)+1,o):0===d?e.substring(0,e.indexOf(f,d)):e.substring(e.indexOf(h,d-1)+1,e.indexOf(f,d+1))}s=s.replace(/(hh|h)/g,m);var v=s.indexOf("m"),k=s.lastIndexOf("m"),g=s.indexOf("t"),w=s.substring(v-1,v);s.substring(k+1,k+2);l=k===s.length-1?e.substring(e.indexOf(w,v-1)+1,o):0===v?e.substring(0,2):e.substr(v,2),p=r?parseInt(m)>11?a>1?"PM":"pm":a>1?"AM":"am":e.substr(g,2);var H="pm"===p.toLowerCase(),_=new c(parseInt(m),parseInt(l));return(H&&parseInt(m)<12||!H&&12===parseInt(m))&&_.invert(),_},switchView:function(e){var t=this,i=this.timepicker,s=350;"hours"!==e&&"minutes"!==e||(t.activeView=e,i.timeHolder.hour["hours"===e?"addClass":"removeClass"]("active"),i.timeHolder.minute["hours"===e?"removeClass":"addClass"]("active"),i.clockHolder.clock.hours.addClass("animate"),"hours"===e&&i.clockHolder.clock.hours.removeClass("hidden"),clearTimeout(t.hTimeout),t.hTimeout=setTimeout(function(){"hours"!==e&&i.clockHolder.clock.hours.addClass("hidden"),i.clockHolder.clock.hours.removeClass("animate")},"hours"===e?20:s),i.clockHolder.clock.minutes.addClass("animate"),"minutes"===e&&i.clockHolder.clock.minutes.removeClass("hidden"),clearTimeout(t.mTimeout),t.mTimeout=setTimeout(function(){"minutes"!==e&&i.clockHolder.clock.minutes.addClass("hidden"),i.clockHolder.clock.minutes.removeClass("animate")},"minutes"===e?20:s))},show:function(){var t=this;if(""===t.input.val()){var i=t.getSystemTime();this.time=new c(i.hour,i.minute)}t.resetSelected(),e("body").attr("mdtimepicker-display","on"),t.timepicker.wrapper.addClass("animate"),t.timepicker.overlay.removeClass("hidden").addClass("animate"),setTimeout(function(){t.timepicker.overlay.removeClass("animate"),t.timepicker.wrapper.removeClass("animate"),t.visible=!0,t.input.blur()},10)},hide:function(){var t=this;t.timepicker.overlay.addClass("animate"),t.timepicker.wrapper.addClass("animate"),setTimeout(function(){t.switchView("hours"),t.timepicker.overlay.addClass("hidden").removeClass("animate"),t.timepicker.wrapper.removeClass("animate"),e("body").removeAttr("mdtimepicker-display"),t.visible=!1,t.input.focus()},300)},destroy:function(){var e=this;e.input.removeData(t).unbind("keydown").unbind("click").removeProp("readonly"),e.timepicker.overlay.remove()}},e.fn.mdtimepicker=function(i){return e(this).each(function(){var s=this,n=e(this),r=e(this).data(t);options=e.extend({},e.fn.mdtimepicker.defaults,n.data(),"object"==typeof i&&i),r||n.data(t,r=new d(s,options)),"string"==typeof i&&r[i](),e(document).on("keydown",function(e){27===e.keyCode&&r.visible&&r.hide()})})},e.fn.mdtimepicker.defaults={timeFormat:"hh:mm:ss.000",format:"h:mm tt",theme:"blue",readOnly:!0,hourPadding:!1}}(jQuery);