(function(){function e(n){return document.createElementNS(w,n)}function o(n){return(n<10?"0":"")+n}function tt(n){var t=++nt+"";return n?n+t:t}function t(t,l){function yt(n,t){var w=et.offset(),k=/^touch/.test(n.type),h=w.left+i,a=w.top+i,e=(k?n.originalEvent.touches[0]:n).pageX-h,o=(k?n.originalEvent.touches[0]:n).pageY-a,d=Math.sqrt(e*e+o*o),p=!1,nt;if(!t||!(d<r-f||d>r+f)){n.preventDefault();nt=setTimeout(function(){c.addClass("clockpicker-moving")},200);s&&et.append(g.canvas);g.setHand(e,o,!t,!0);u.off(v).on(v,function(n){n.preventDefault();var t=/^touch/.test(n.type),i=(t?n.originalEvent.touches[0]:n).pageX-h,r=(t?n.originalEvent.touches[0]:n).pageY-a;(p||i!==e||r!==o)&&(p=!0,g.setHand(i,r,!1,!0))});u.off(b).one(b,function(n){n.preventDefault();var i=/^touch/.test(n.type),r=(i?n.originalEvent.changedTouches[0]:n).pageX-h,f=(i?n.originalEvent.changedTouches[0]:n).pageY-a;(t||p)&&r===e&&f===o&&g.setHand(r,f);g.currentView==="hours"?g.toggleView("minutes",y/2):l.autoclose&&(g.minutesView.addClass("clockpicker-dial-out"),setTimeout(function(){g.done()},y/2));et.prepend(ct);clearTimeout(nt);c.removeClass("clockpicker-moving");u.off(v)})}}var k=n(it),et=k.find(".clockpicker-plate"),pt=k.find(".clockpicker-hours"),wt=k.find(".clockpicker-minutes"),bt=t.prop("tagName")==="INPUT",kt=bt?t:t.find("input"),dt=t.find(".input-group-addon"),g=this,lt,p,w,ut,at,vt,ct,ft,nt,rt,ot,st,ht;this.id=tt("cp");this.element=t;this.options=l;this.isAppended=!1;this.isShown=!1;this.currentView="hours";this.isInput=bt;this.input=kt;this.addon=dt;this.popover=k;this.plate=et;this.hoursView=pt;this.minutesView=wt;this.spanHours=k.find(".clockpicker-span-hours");this.spanMinutes=k.find(".clockpicker-span-minutes");l.autoclose||n('<button type="button" class="btn btn-sm btn-default btn-block clockpicker-button">'+l.donetext+"<\/button>").click(n.proxy(this.done,this)).appendTo(k);(l.placement==="top"||l.placement==="bottom")&&(l.align==="top"||l.align==="bottom")&&(l.align="left");(l.placement==="left"||l.placement==="right")&&(l.align==="left"||l.align==="right")&&(l.align="top");k.addClass(l.placement);k.addClass("clockpicker-align-"+l.align);this.spanHours.click(n.proxy(this.toggleView,this,"hours"));this.spanMinutes.click(n.proxy(this.toggleView,this,"minutes"));kt.on("focus.clockpicker click.clockpicker",n.proxy(this.show,this));dt.on("click.clockpicker",n.proxy(this.toggle,this));for(lt=n('<div class="clockpicker-tick"><\/div>'),p=0;p<24;p+=1){w=lt.clone();ut=p/6*Math.PI;at=p>0&&p<13;vt=at?h:r;w.css({left:i+Math.sin(ut)*vt-f,top:i-Math.cos(ut)*vt-f});at&&w.css("font-size","120%");w.html(p===0?"00":p);pt.append(w);w.on(a,yt)}for(p=0;p<60;p+=5){w=lt.clone();ut=p/30*Math.PI;w.css({left:i+Math.sin(ut)*r-f,top:i-Math.cos(ut)*r-f});w.css("font-size","120%");w.html(o(p));wt.append(w);w.on(a,yt)}et.on(a,function(t){n(t.target).closest(".clockpicker-tick").length===0&&yt(t,!0)});s&&(ct=k.find(".clockpicker-canvas"),ft=e("svg"),ft.setAttribute("class","clockpicker-svg"),ft.setAttribute("width",d),ft.setAttribute("height",d),nt=e("g"),nt.setAttribute("transform","translate("+i+","+i+")"),rt=e("circle"),rt.setAttribute("class","clockpicker-canvas-bearing"),rt.setAttribute("cx",0),rt.setAttribute("cy",0),rt.setAttribute("r",2),ot=e("line"),ot.setAttribute("x1",0),ot.setAttribute("y1",0),st=e("circle"),st.setAttribute("class","clockpicker-canvas-bg"),st.setAttribute("r",f),ht=e("circle"),ht.setAttribute("class","clockpicker-canvas-fg"),ht.setAttribute("r",3.5),nt.appendChild(ot),nt.appendChild(st),nt.appendChild(ht),nt.appendChild(rt),ft.appendChild(nt),ct.append(ft),this.hand=ot,this.bg=st,this.fg=ht,this.bearing=rt,this.g=nt,this.canvas=ct)}var n=window.jQuery,p=n(window),u=n(document),c,w="http://www.w3.org/2000/svg",s="SVGAngle"in window&&function(){var t,n=document.createElement("div");return n.innerHTML="<svg/>",t=(n.firstChild&&n.firstChild.namespaceURI)==w,n.innerHTML="",t}(),g=function(){var n=document.createElement("div").style;return"transition"in n||"WebkitTransition"in n||"MozTransition"in n||"msTransition"in n||"OTransition"in n}(),l="ontouchstart"in window,a="mousedown"+(l?" touchstart":""),v="mousemove.clockpicker"+(l?" touchmove.clockpicker":""),b="mouseup.clockpicker"+(l?" touchend.clockpicker":""),k=navigator.vibrate?"vibrate":navigator.webkitVibrate?"webkitVibrate":null,nt=0,i=100,r=80,h=54,f=13,d=i*2,y=g?350:1,it='<div class="popover clockpicker-popover"><div class="arrow"><\/div><div class="popover-title"><span class="clockpicker-span-hours text-primary"><\/span> : <span class="clockpicker-span-minutes"><\/span><\/div><div class="popover-content"><div class="clockpicker-plate"><div class="clockpicker-canvas"><\/div><div class="clockpicker-dial clockpicker-hours"><\/div><div class="clockpicker-dial clockpicker-minutes clockpicker-dial-out"><\/div><\/div><\/div><\/div>';t.DEFAULTS={"default":"",fromnow:0,placement:"bottom",align:"left",donetext:"完成",autoclose:!1,vibrate:!0};t.prototype.toggle=function(){this[this.isShown?"hide":"show"]()};t.prototype.locate=function(){var r=this.element,i=this.popover,t=r.offset(),u=r.outerWidth(),f=r.outerHeight(),e=this.options.placement,o=this.options.align,n={},s=this;i.show();switch(e){case"bottom":n.top=t.top+f;break;case"right":n.left=t.left+u;break;case"top":n.top=t.top-i.outerHeight();break;case"left":n.left=t.left-i.outerWidth()}switch(o){case"left":n.left=t.left;break;case"right":n.left=t.left+u-i.outerWidth();break;case"top":n.top=t.top;break;case"bottom":n.top=t.top+f-i.outerHeight()}i.css(n)};t.prototype.show=function(){var t,i,r;if(!this.isShown){if(t=this,!this.isAppended){c=n(document.body).append(this.popover);p.on("resize.clockpicker"+this.id,function(){t.isShown&&t.locate()});this.isAppended=!0}i=((this.input.prop("value")||this.options["default"]||"")+"").split(":");i[0]==="now"&&(r=new Date(+new Date+this.options.fromnow),i=[r.getHours(),r.getMinutes()]);this.hours=+i[0]||0;this.minutes=+i[1]||0;this.spanHours.html(o(this.hours));this.spanMinutes.html(o(this.minutes));this.toggleView("hours");this.locate();this.isShown=!0;u.on("click.clockpicker."+this.id+" focusin.clockpicker."+this.id,function(i){var r=n(i.target);r.closest(t.popover).length===0&&r.closest(t.addon).length===0&&r.closest(t.input).length===0&&t.hide()});u.on("keyup.clockpicker."+this.id,function(n){n.keyCode===27&&t.hide()})}};t.prototype.hide=function(){this.isShown=!1;u.off("click.clockpicker."+this.id+" focusin.clockpicker."+this.id);u.off("keyup.clockpicker."+this.id);this.popover.hide()};t.prototype.toggleView=function(n,t){var i=n==="hours",u=i?this.hoursView:this.minutesView,r=i?this.minutesView:this.hoursView;this.currentView=n;this.spanHours.toggleClass("text-primary",i);this.spanMinutes.toggleClass("text-primary",!i);r.addClass("clockpicker-dial-out");u.css("visibility","visible").removeClass("clockpicker-dial-out");this.resetClock(t);clearTimeout(this.toggleViewTimer);this.toggleViewTimer=setTimeout(function(){r.css("visibility","hidden")},y)};t.prototype.resetClock=function(n){var u=this.currentView,t=this[u],f=u==="hours",a=Math.PI/(f?6:30),e=t*a,o=f&&t>0&&t<13?h:r,c=Math.sin(e)*o,l=-Math.cos(e)*o,i=this;s&&n?(i.canvas.addClass("clockpicker-canvas-out"),setTimeout(function(){i.canvas.removeClass("clockpicker-canvas-out");i.setHand(c,l)},n)):this.setHand(c,l)};t.prototype.setHand=function(t,i,u,f){var c=Math.atan2(t,-i),l=this.currentView==="hours",y=Math.PI/(l||u?6:30),b=Math.sqrt(t*t+i*i),d=this.options,p=l&&b<(r+h)/2,w=p?h:r,e,a,v;if(c<0&&(c=Math.PI*2+c),e=Math.round(c/y),c=e*y,l?(e===12&&(e=0),e=p?e===0?12:e:e===0?0:e+12):(u&&(e*=5),e===60&&(e=0)),this[this.currentView]!==e&&k&&this.options.vibrate&&(this.vibrateTimer||(navigator[k](10),this.vibrateTimer=setTimeout(n.proxy(function(){this.vibrateTimer=null},this),100))),this[this.currentView]=e,this[l?"spanHours":"spanMinutes"].html(o(e)),!s){this[l?"hoursView":"minutesView"].find(".clockpicker-tick").each(function(){var t=n(this);t.toggleClass("active",e===+t.html())});return}f||!l&&e%5?(this.g.insertBefore(this.hand,this.bearing),this.g.insertBefore(this.bg,this.fg),this.bg.setAttribute("class","clockpicker-canvas-bg clockpicker-canvas-bg-trans")):(this.g.insertBefore(this.hand,this.bg),this.g.insertBefore(this.fg,this.bg),this.bg.setAttribute("class","clockpicker-canvas-bg"));a=Math.sin(c)*w;v=-Math.cos(c)*w;this.hand.setAttribute("x2",a);this.hand.setAttribute("y2",v);this.bg.setAttribute("cx",a);this.bg.setAttribute("cy",v);this.fg.setAttribute("cx",a);this.fg.setAttribute("cy",v)};t.prototype.done=function(){this.hide();var t=this.input.prop("value"),n=o(this.hours)+":"+o(this.minutes);this.input.prop("value",n);n!==t&&(this.input.triggerHandler("change"),this.isInput||this.element.trigger("change"))};t.prototype.remove=function(){this.element.removeData("clockpicker");this.input.off("focus.clockpicker click.clockpicker");this.addon.off("click.clockpicker");this.isShown&&this.hide();this.isAppended&&(p.off("resize.clockpicker"+this.id),this.popover.remove())};n.fn.clockpicker=function(i){var r=Array.prototype.slice.call(arguments,1);return this.each(function(){var u=n(this),f=u.data("clockpicker"),e;f?typeof f[i]=="function"&&f[i].apply(f,r):(e=n.extend({},t.DEFAULTS,u.data(),typeof i=="object"&&i),u.data("clockpicker",new t(u,e)))})}})()