!function(t){function e(t){var e=/^#?([a-f\d])([a-f\d])([a-f\d])$/i;t=t.replace(e,function(t,e,i,a){return e+e+i+i+a+a});var i=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(t);return i?{r:parseInt(i[1],16),g:parseInt(i[2],16),b:parseInt(i[3],16)}:null}function i(){var t=document.createElement("canvas");return!(!t.getContext||!t.getContext("2d"))}function a(){return Math.floor(65536*(1+Math.random())).toString(16).substring(1)}function s(){return a()+a()+"-"+a()+"-"+a()+"-"+a()+"-"+a()+a()+a()}function n(t){var e=t.match(/^[0-9]{4}-[0-9]{2}-[0-9]{2}\s[0-9]{1,2}:[0-9]{2}:[0-9]{2}$/);if(null!==e&&e.length>0){var i=t.split(" "),a=i[0].split("-"),s=i[1].split(":");return new Date(a[0],a[1]-1,a[2],s[0],s[1],s[2])}var n=Date.parse(t);return isNaN(n)?(n=Date.parse(t.replace(/-/g,"/").replace("T"," ")),isNaN(n)?new Date:n):n}function r(t,e,i,a,s){for(var n={},r={},o={},h={},d={},u={},l=null,c=0;c<a.length;c++){var m,p=a[c];m=null===l?i/f[p]:f[l]/f[p];var _=t/f[p],b=e/f[p];s&&(_=_>0?Math.floor(_):Math.ceil(_),b=b>0?Math.floor(b):Math.ceil(b)),"Days"!==p&&(_%=m,b%=m),n[p]=_,o[p]=Math.abs(_),r[p]=b,u[p]=Math.abs(b),h[p]=Math.abs(_)/m,d[p]=Math.abs(b)/m,l=p}return{raw_time:n,raw_old_time:r,time:o,old_time:u,pct:h,old_pct:d}}function o(){void 0!==d.TC_Instance_List?m=d.TC_Instance_List:d.TC_Instance_List=m,h(d)}function h(t){for(var e=["webkit","moz"],i=0;i<e.length&&!t.requestAnimationFrame;++i)t.requestAnimationFrame=t[e[i]+"RequestAnimationFrame"],t.cancelAnimationFrame=t[e[i]+"CancelAnimationFrame"];t.requestAnimationFrame&&t.cancelAnimationFrame||(t.requestAnimationFrame=function(e,i,a){void 0===a&&(a={data:{last_frame:0}});var s=(new Date).getTime(),n=Math.max(0,16-(s-a.data.last_frame)),r=t.setTimeout(function(){e(s+n)},n);return a.data.last_frame=s+n,r},t.cancelAnimationFrame=function(t){clearTimeout(t)})}var d=window;Object.keys||(Object.keys=function(){"use strict";var t=Object.prototype.hasOwnProperty,e=!{toString:null}.propertyIsEnumerable("toString"),i=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],a=i.length;return function(s){if("object"!=typeof s&&("function"!=typeof s||null===s))throw new TypeError("Object.keys called on non-object");var n,r,o=[];for(n in s)t.call(s,n)&&o.push(n);if(e)for(r=0;r<a;r++)t.call(s,i[r])&&o.push(i[r]);return o}}());var u=!1,l=(location.hash,["Days","Hours","Minutes","Seconds"]),c={Seconds:"Minutes",Minutes:"Hours",Hours:"Days",Days:"Years"},f={Seconds:1,Minutes:60,Hours:3600,Days:86400,Months:2678400,Years:31536e3};Array.prototype.indexOf||(Array.prototype.indexOf=function(t){var e=this.length>>>0,i=Number(arguments[1])||0;for((i=i<0?Math.ceil(i):Math.floor(i))<0&&(i+=e);i<e;i++)if(i in this&&this[i]===t)return i;return-1});var m={},p=function(t,e){this.element=t,this.container,this.listeners=null,this.data={paused:!1,last_frame:0,animation_frame:null,interval_fallback:null,timer:!1,total_duration:null,prev_time:null,drawn_units:[],text_elements:{Days:null,Hours:null,Minutes:null,Seconds:null},attributes:{canvas:null,context:null,item_size:null,line_width:null,radius:null,outer_radius:null},state:{fading:{Days:!1,Hours:!1,Minutes:!1,Seconds:!1}}},this.config=null,this.setOptions(e),this.initialize()};p.prototype.clearListeners=function(){this.listeners={all:[],visible:[]}},p.prototype.addTime=function(t){if(this.data.attributes.ref_date instanceof Date){var e=this.data.attributes.ref_date;e.setSeconds(e.getSeconds()+t)}else isNaN(this.data.attributes.ref_date)||(this.data.attributes.ref_date+=1e3*t)},p.prototype.initialize=function(e){this.data.drawn_units=[];for(h=0;h<Object.keys(this.config.time).length;h++){var a=Object.keys(this.config.time)[h];this.config.time[a].show&&this.data.drawn_units.push(a)}t(this.element).children("div.time_circles").remove(),void 0===e&&(e=!0),(e||null===this.listeners)&&this.clearListeners(),this.container=t("<div>"),this.container.addClass("time_circles"),this.container.appendTo(this.element);var s=this.element.offsetHeight,n=this.element.offsetWidth;0===s&&(s=t(this.element).height()),0===n&&(n=t(this.element).width()),0===s&&n>0?s=n/this.data.drawn_units.length:0===n&&s>0&&(n=s*this.data.drawn_units.length);var r=document.createElement("canvas");r.width=n/2,r.height=s/2,this.data.attributes.canvas=t(r),this.data.attributes.canvas.appendTo(this.container);var o=i();o||"undefined"==typeof G_vmlCanvasManager||(G_vmlCanvasManager.initElement(r),u=!0,o=!0),o&&(this.data.attributes.context=r.getContext("2d")),this.data.attributes.item_size=Math.min(n/this.data.drawn_units.length,s),this.data.attributes.line_width=this.data.attributes.item_size*this.config.fg_width,this.data.attributes.radius=(.8*this.data.attributes.item_size-this.data.attributes.line_width)/2,this.data.attributes.outer_radius=this.data.attributes.radius+.5*Math.max(this.data.attributes.line_width,this.data.attributes.line_width*this.config.bg_width);var h=0;for(var l in this.data.text_elements)if(this.config.time[l].show){var c=t("<div>");c.addClass("textDiv_"+l),c.css("top",Math.round(.25*this.data.attributes.item_size)),c.css("left",Math.round(h++*this.data.attributes.item_size)),c.css("width",this.data.attributes.item_size),c.appendTo(this.container);var f=t("<span>");f.css("font-size",Math.round(4*this.config.text_size*this.data.attributes.item_size)),f.css("line-height",Math.round(this.config.text_size*this.data.attributes.item_size)+"px"),f.appendTo(c);var m=t("<h4>");m.text(this.config.time[l].text),m.css("font-size",Math.round(this.config.text_size*this.data.attributes.item_size)),m.css("line-height",Math.round(this.config.text_size*this.data.attributes.item_size)+"px"),m.appendTo(c),this.data.text_elements[l]=f}this.start(),this.config.start||(this.data.paused=!0);var p=this;this.data.interval_fallback=d.setInterval(function(){p.update.call(p,!0)},100)},p.prototype.update=function(t){if(void 0===t)t=!1;else if(t&&this.data.paused)return;u&&this.data.attributes.context.clearRect(0,0,this.data.attributes.canvas[0].width,this.data.attributes.canvas[0].hright);var e,i,a=this.data.prev_time,s=new Date;if(this.data.prev_time=s,null===a&&(a=s),!this.config.count_past_zero&&s>this.data.attributes.ref_date){for(_=0;_<this.data.drawn_units.length;_++){y=this.data.drawn_units[_];this.data.text_elements[y].text("0");var n=_*this.data.attributes.item_size+this.data.attributes.item_size/2,o=this.data.attributes.item_size/2,h=this.config.time[y].color;this.drawArc(n,o,h,0)}this.stop()}else{e=(this.data.attributes.ref_date-s)/1e3,i=(this.data.attributes.ref_date-a)/1e3;var c="smooth"!==this.config.animation,m=r(e,i,this.data.total_duration,this.data.drawn_units,c),p=r(e,i,f.Years,l,c),_=0,b=0,v=null,g=this.data.drawn_units.slice();for(var _ in l){var y=l[_];if(Math.floor(p.raw_time[y])!==Math.floor(p.raw_old_time[y])&&this.notifyListeners(y,Math.floor(p.time[y]),Math.floor(e),"all"),!(g.indexOf(y)<0)){if(Math.floor(m.raw_time[y])!==Math.floor(m.raw_old_time[y])&&this.notifyListeners(y,Math.floor(m.time[y]),Math.floor(e),"visible"),!t){this.data.text_elements[y].text(Math.floor(Math.abs(m.time[y])));var n=b*this.data.attributes.item_size+this.data.attributes.item_size/2,o=this.data.attributes.item_size/2,h=this.config.time[y].color;"smooth"===this.config.animation?(null===v||u||(Math.floor(m.time[v])>Math.floor(m.old_time[v])?(this.radialFade(n,o,h,1,y),this.data.state.fading[y]=!0):Math.floor(m.time[v])<Math.floor(m.old_time[v])&&(this.radialFade(n,o,h,0,y),this.data.state.fading[y]=!0)),this.data.state.fading[y]||this.drawArc(n,o,h,m.pct[y])):this.animateArc(n,o,h,m.pct[y],m.old_pct[y],(new Date).getTime()+200)}v=y,b++}}if(!this.data.paused&&!t){var w=this,M=function(){w.update.call(w)};if("smooth"===this.config.animation)this.data.animation_frame=d.requestAnimationFrame(M,w.element,w);else{var x=e%1*1e3;x<0&&(x=1e3+x),x+=50,w.data.animation_frame=d.setTimeout(function(){w.data.animation_frame=d.requestAnimationFrame(M,w.element,w)},x)}}}},p.prototype.animateArc=function(t,e,i,a,s,n){if(null!==this.data.attributes.context){var r=s-a;if(Math.abs(r)>.5)0===a?this.radialFade(t,e,i,1):this.radialFade(t,e,i,0);else{var o=(200-(n-(new Date).getTime()))/200;o>1&&(o=1);var h=s*(1-o)+a*o;if(this.drawArc(t,e,i,h),o>=1)return;var u=this;d.requestAnimationFrame(function(){u.animateArc(t,e,i,a,s,n)},this.element)}}},p.prototype.drawArc=function(t,e,i,a){if(null!==this.data.attributes.context){var s=Math.max(this.data.attributes.outer_radius,this.data.attributes.item_size/2);u||this.data.attributes.context.clearRect(t-s,e-s,2*s,2*s),this.config.use_background&&(this.data.attributes.context.beginPath(),this.data.attributes.context.arc(t,e,this.data.attributes.radius,0,2*Math.PI,!1),this.data.attributes.context.lineWidth=this.data.attributes.line_width*this.config.bg_width,this.data.attributes.context.strokeStyle=this.config.circle_bg_color,this.data.attributes.context.stroke());var n,r,o,h=-.5*Math.PI,d=2*Math.PI;n=h+this.config.start_angle/360*d;var l=2*a*Math.PI;"Both"===this.config.direction?(o=!1,r=(n-=l/2)+l):"Clockwise"===this.config.direction?(o=!1,r=n+l):(o=!0,r=n-l),this.data.attributes.context.beginPath(),this.data.attributes.context.arc(t,e,this.data.attributes.radius,n,r,o),this.data.attributes.context.lineWidth=this.data.attributes.line_width,this.data.attributes.context.strokeStyle=i,this.data.attributes.context.stroke()}},p.prototype.radialFade=function(t,i,a,s,n){var r,o=e(a),h=this,u=.2*(1===s?-1:1);for(r=0;s<=1&&s>=0;r++)!function(){var e=50*r,a="rgba("+o.r+", "+o.g+", "+o.b+", "+Math.round(10*s)/10+")";d.setTimeout(function(){h.drawArc(t,i,a,1)},e)}(),s+=u;void 0!==typeof n&&d.setTimeout(function(){h.data.state.fading[n]=!1},50*r)},p.prototype.timeLeft=function(){if(this.data.paused&&"number"==typeof this.data.timer)return this.data.timer;var t=new Date;return(this.data.attributes.ref_date-t)/1e3},p.prototype.start=function(){d.cancelAnimationFrame(this.data.animation_frame),d.clearTimeout(this.data.animation_frame);var e=t(this.element).data("date");if(void 0===e&&(e=t(this.element).attr("data-date")),"string"==typeof e)this.data.attributes.ref_date=n(e);else if("number"==typeof this.data.timer)this.data.paused&&(this.data.attributes.ref_date=(new Date).getTime()+1e3*this.data.timer);else{var i=t(this.element).data("timer");void 0===i&&(i=t(this.element).attr("data-timer")),"string"==typeof i&&(i=parseFloat(i)),"number"==typeof i?(this.data.timer=i,this.data.attributes.ref_date=(new Date).getTime()+1e3*i):this.data.attributes.ref_date=this.config.ref_date}this.data.paused=!1,this.update.call(this)},p.prototype.restart=function(){this.data.timer=!1,this.start()},p.prototype.stop=function(){"number"==typeof this.data.timer&&(this.data.timer=this.timeLeft(this)),this.data.paused=!0,d.cancelAnimationFrame(this.data.animation_frame)},p.prototype.destroy=function(){this.clearListeners(),this.stop(),d.clearInterval(this.data.interval_fallback),this.data.interval_fallback=null,this.container.remove(),t(this.element).removeAttr("data-tc-id"),t(this.element).removeData("tc-id")},p.prototype.setOptions=function(e){if(null===this.config&&(this.default_options.ref_date=new Date,this.config=t.extend(!0,{},this.default_options)),t.extend(!0,this.config,e),d=this.config.use_top_frame?window.top:window,o(),this.data.total_duration=this.config.total_duration,"string"==typeof this.data.total_duration)if(void 0!==f[this.data.total_duration])this.data.total_duration=f[this.data.total_duration];else if("Auto"===this.data.total_duration)for(var i=0;i<Object.keys(this.config.time).length;i++){var a=Object.keys(this.config.time)[i];if(this.config.time[a].show){this.data.total_duration=f[c[a]];break}}else this.data.total_duration=f.Years,console.error("Valid values for TimeCircles config.total_duration are either numeric, or (string) Years, Months, Days, Hours, Minutes, Auto")},p.prototype.addListener=function(t,e,i){"function"==typeof t&&(void 0===i&&(i="visible"),this.listeners[i].push({func:t,scope:e}))},p.prototype.notifyListeners=function(t,e,i,a){for(var s=0;s<this.listeners[a].length;s++){var n=this.listeners[a][s];n.func.apply(n.scope,[t,e,i])}},p.prototype.default_options={ref_date:new Date,start:!0,animation:"smooth",count_past_zero:!0,circle_bg_color:"#60686F",use_background:!0,fg_width:.1,bg_width:1.2,text_size:.07,total_duration:"Auto",direction:"Clockwise",use_top_frame:!1,start_angle:0,time:{Days:{show:!0,text:"Days",color:"#FC6"},Hours:{show:!0,text:"Hours",color:"#9CF"},Minutes:{show:!0,text:"Minutes",color:"#BFB"},Seconds:{show:!0,text:"Seconds",color:"#F99"}}};var _=function(t,e){this.elements=t,this.options=e,this.foreach()};_.prototype.getInstance=function(e){var i,a=t(e).data("tc-id");if(void 0===a&&(a=s(),t(e).attr("data-tc-id",a)),void 0===m[a]){var n=this.options,r=t(e).data("options");"string"==typeof r&&(r=JSON.parse(r)),"object"==typeof r&&(n=t.extend(!0,{},this.options,r)),i=new p(e,n),m[a]=i}else i=m[a],void 0!==this.options&&i.setOptions(this.options);return i},_.prototype.addTime=function(t){this.foreach(function(e){e.addTime(t)})},_.prototype.foreach=function(t){var e=this;return this.elements.each(function(){var i=e.getInstance(this);"function"==typeof t&&t(i)}),this},_.prototype.start=function(){return this.foreach(function(t){t.start()}),this},_.prototype.stop=function(){return this.foreach(function(t){t.stop()}),this},_.prototype.restart=function(){return this.foreach(function(t){t.restart()}),this},_.prototype.rebuild=function(){return this.foreach(function(t){t.initialize(!1)}),this},_.prototype.getTime=function(){return this.getInstance(this.elements[0]).timeLeft()},_.prototype.addListener=function(t,e){void 0===e&&(e="visible");var i=this;return this.foreach(function(a){a.addListener(t,i.elements,e)}),this},_.prototype.destroy=function(){return this.foreach(function(t){t.destroy()}),this},_.prototype.end=function(){return this.elements},t.fn.TimeCircles=function(t){return new _(this,t)}}(jQuery);