/*
 * CD
 * http://cd.justinjc.com/
 *
 * Copyright (c) 2012 Justin Chan	
 * Licensed under the Creative Commons Attribution Non-Commercial Share Alike License
 * http://creativecommons.org/licenses/by-nc-sa/3.0/
 */

$(function(){update_clock();var a=0,c=0;setInterval(function(){update_clock();c++;0<c-a&&$("#late-time").html('You are now <span class="info_strong">'+convert_seconds(c-a)+"</span> late.");i>=a?$("title").html("CD: late "+convert_seconds_compact(c-a)):0<a&&$("title").html("CD: "+convert_seconds_compact(a-c))},1E3);var d=$("#q").html(),b=/^([0-9]+)$|^((([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?)$|^(([0-9]+)(a?p?m?))$/i.exec(d);if(null!=b)if(null!=b[9]&&""!=b[9]&&0<parseInt(b[10],10)&&1259>=parseInt(b[10],
10)){var g=new Date,f=g.getTime(),e,h;1==b[10].length||2==b[10].length?(e=parseInt(b[10],10),h=0):3==b[10].length?(e=parseInt(b[10].substr(0,1),10),h=parseInt(b[10].substr(-2),10)):4==b[10].length&&(e=parseInt(b[10].substr(0,2),10),h=parseInt(b[10].substr(-2),10));60>h?("p"==b[11].substr(0,1)?12!=e&&(e+=12):"a"==b[11].substr(0,1)&&12==e&&(e-=12),e=(new Date(g.getFullYear(),g.getMonth(),g.getDate(),e,h,0,0)).getTime(),0>e-f&&(e+=864E5),a=Math.floor((e-f)/1E3)+1,display_info(f,a,!0)):a=-1}else null!=
b[1]&&""!=b[1]?a=60*parseInt(b[1],10):(null!=b[4]&&""!=b[4]&&(a+=3600*parseInt(b[4],10)),null!=b[6]&&""!=b[6]&&(a+=60*parseInt(b[6],10)),null!=b[8]&&""!=b[8]&&(a+=parseInt(b[8],10))),display_info(f,a,!1);if(0<a)if(172800>=a){var i=0,j=0;$("#timeleft").html(convert_seconds(a));$("#percentgone").html("0%");j=setInterval(function(){i++;$("#cdbar").width(758*(i/a));$("#timeleft").html(convert_seconds(a-i));$("#percentgone").html(Math.floor(100*(i/a))+"%");i>=a&&(clearInterval(j),$("html").css("background",
"#811"),$("body").css("background","#811"),$("#cdbar").css("background","#811"),$("#percentgone").html(""),$("title").html("CD: late"),$("#timeleft").html(convert_seconds(a)+" passed"),$("#late").show(),"Microsoft Internet Explorer"!=navigator.appName&&$("#alarm")[0].play())},1E3)}else a=-1,$("#timeleft").html("Don't want to wait that long");else""==d?($("#instructions").show(),$("#timeleft").html("0 seconds elapsed"),setInterval(function(){$("#timeleft").html(convert_seconds(c)+" elapsed");$("title").html("CD: elapsed "+
convert_seconds_compact(c))},1E3),e=(new Date).getHours(),h=(new Date).getMinutes(),d=(new Date).getSeconds(),$("#info").html('Started counting at <span class="info_strong">'+e+":"+pad_zero(h)+":"+pad_zero(d)+"</span>.")):$("#timeleft").html("Invalid input")});function plural(a){return 1==a?"":"s"}function update_clock(){var a=(new Date).getHours(),c=(new Date).getMinutes(),d=(new Date).getSeconds();$("#now").html("<strong>Now:</strong> "+a+":"+pad_zero(c)+":"+pad_zero(d))}
function convert_seconds(a){var c=Math.floor(a/3600),d=Math.floor((a-3600*c)/60),a=Math.floor(a-3600*c-60*d),b="";0<c&&(b+=c+" hour"+plural(c)+" ");0<d&&(b+=d+" minute"+plural(d)+" ");if(0<a||0==c&&0==d)b+=a+" second"+plural(a);return b}
function display_info(a,c,d){var a=(new Date).getHours(),b=(new Date).getMinutes(),g=(new Date).getSeconds(),f=new Date((new Date).getTime()+1E3*c);d?$("#info").html('Started waiting at <span class="info_strong">'+a+":"+pad_zero(b)+":"+pad_zero(g)+'</span> for <span class="info_strong">'+convert_seconds(c)+'</span> until <span class="info_strong"><em>'+f.getHours()+":"+pad_zero(f.getMinutes())+":"+pad_zero(f.getSeconds())+"</em></span>."):$("#info").html('Started waiting at <span class="info_strong">'+
a+":"+pad_zero(b)+":"+pad_zero(g)+'</span> for <span class="info_strong"><em>'+convert_seconds(c)+'</em></span> until <span class="info_strong">'+f.getHours()+":"+pad_zero(f.getMinutes())+":"+pad_zero(f.getSeconds())+"</span>.")}function convert_seconds_compact(a){var c=Math.floor(a/3600),d=Math.floor((a-3600*c)/60),a=Math.floor(a-3600*c-60*d),b="";0<c&&(b+=c+"h");0<d&&(b+=d+"m");if(0<a||0==c&&0==d)b+=a+"s";return b}function pad_zero(a){return 10>a?"0"+a:a};
