//-----------------------------------------------------------
/* jQuery countdown plugin by Ben Hull: www.spookandpuff.com 

  	v0.3
	Take an element and turn it into a clock, counting down to a date in the future in days, hours, minutes and seconds.
	Usage: $(element).countDown(options)
*/
(function(d){d.fn.countDown=function(p){var b=d.extend({},d.fn.countDown.defaults,p),i=new Date,e={timer:null,subscribers:d(),subscribe:function(a){this.subscribers=this.subscribers.add(a)},unsubscribe:function(a){this.subscribers=this.subscribers.not(a)},tick:function(){var a=new Date;a-i>b.interval-b.errorThreshold&&(this.subscribers&&this.subscribers.trigger("countDown.update",a),i=a)},stop:function(){clearInterval(e.timer)},start:function(){this.timer=setInterval(function(){e.tick()},b.tickRate)},
init:function(){this.start()}};e.init();var f={day:864E5,hour:36E5,minute:6E4,second:1E3},j=function(a){for(a=a.toString();a.length<3;)a="0"+a;a=a.split("").reverse();return{units:a[0]||0,tens:a[1]||0,hundreds:a[2]||0}};return this.each(function(){var a=d(this),g;if(typeof b.endTime=="function")g=new Date(b.endTime());else if(g=new Date(b.endTime),isNaN(g))try{g=new Date(a.find(b.endTime).text())}catch(i){return console.log(b.endTime+"does not resolve to a valid date."),!1}var c=d('<div class="countDownTimer"><span class="days"><span class="value"><span class="digit hundreds"/><span class="digit tens"/><span class="digit units"/></span><span class="label">Days</span></span><span class="hours"><span class="value"><span class="digit tens"/><span class="digit units"/></span><span class="label">Hours</span></span><span class="minutes"><span class="value"><span class="digit tens"/><span class="digit units"/></span><span class="label">Mins</span></span><span class="seconds"><span class="value"><span class="digit tens"/><span class="digit units"/></span><span class="label">Secs</span></span></div>');
if(d.browser.msie&&d.browser.version<7)c.addClass("textOnly"),b.animate=!1,b.updateText=!0,b.updateClasses=!1,document.execCommand("BackgroundImageCache",!1,!0);b.animate&&c.addClass("animated");d.support.boxModel||c.addClass("layoutFix");c.prependTo(a);var k=c.find(".days > .value"),l=c.find(".hours > .value"),m=c.find(".minutes > .value"),n=c.find(".seconds > .value");a.data("completed",!1).data("started",!1).data("endGame",!1).data("endTime",g).bind("countDown.update",function(d,e){var h=a.data("endTime")-
e,c=Math.floor(h/f.day),g=Math.floor((h-c*f.day)/f.hour),i=Math.floor((h-c*f.day-g*f.hour)/f.minute),o=Math.floor((h-c*f.day-g*f.hour-i*f.minute)/f.second);a.data("timeRemaining",h);a.data("started")||a.addClass("started").data("started",!0);if(!a.data("endGame")&&h<b.endGame){if(a.addClass("endGame").data("endGame",!0),typeof b.onEndGame=="function")b.onEndGame(a)}else h>b.endGame&&a.removeClass("endGame").data("endGame",!1);if(!a.data("completed")&&h<0){a.addClass("complete").data("completed",!0);
if(typeof b.onComplete=="function")b.onComplete(a);a.trigger("countDown.stop");return!1}else h>0&&a.removeClass("complete").data("completed",!1);b.updateText&&(k.text(c),l.text(g),m.text(i),n.text(o));b.updateClasses&&(k.attr("class",function(){var a=j(c);return"value h_"+a.hundreds+" t_"+a.tens+" u_"+a.units}),l.attr("class",function(){var a=j(g);return"value h_"+a.hundreds+" t_"+a.tens+" u_"+a.units}),m.attr("class",function(){var a=j(i);return"value h_"+a.hundreds+" t_"+a.tens+" u_"+a.units}),
n.attr("class",function(){var a=j(o);return"value h_"+a.hundreds+" t_"+a.tens+" u_"+a.units}));if(typeof b.onUpdate=="function")b.onUpdate(a)}).bind("countDown.start",function(){e.subscribe(a)}).bind("countDown.stop",function(){e.unsubscribe(a)}).bind("countDown.refresh",function(){e.unsubscribe(a);e.subscribe(a)}).bind("countDown.setEndTime",function(b,c){c=new Date(c);a.data("endTime",c);a.trigger("countDown.refresh")});a.find(".stopTimer").click(function(){a.trigger("countDown.stop")});a.find(".startTimer").click(function(){a.trigger("countDown.start")});
b.autoStart&&e.subscribe(a)})};d.fn.countDown.defaults={tickRate:20,interval:1E3,errorThreshold:20,autoStart:!0,updateText:!1,updateClasses:!0,animate:!0,endTime:".endTime",onUpdate:null,onComplete:null,onEndGame:null,endGame:0}})(jQuery);
