/* * TODO: * * - rework use of global variables and functions into OO idioms * - initialise time wasting clock from storage in OO idiom rather * than just stray function call * - bind a key to toggle the date */ $.ionSound({ sounds: [ { name: "klaxon" }, { name: "button_tiny", }, { name: "cheonjae", }, { name: "onetwothree", } ], // volume: 0.5, path: "sounds/", preload: true }); var timeWastingClock = new FlipClock($('.time-wasting-clock'), { autoStart:false, callbacks:{ interval:function () { $.ionSound.play("button_tiny"); var time = timeWastingClock.getTime().time; $.jStorage.set("time_wasted", time); } } }); timeWastingClock.setTime($.jStorage.get("time_wasted", 0)); var $timeWastingClockRunning = false; var activityClock = new FlipClock($('.activity-countdown'), { autoStart:false, countdown:true, callbacks:{ stop:function () { $.ionSound.play("cheonjae"); } } }); function timeWastingClockToggle() { if ($timeWastingClockRunning) { $('#timeWastingClockGo').html('Start timer'); timeWastingClock.stop(); $timeWastingClockRunning = false; } else { $('#timeWastingClockGo').html('Stop timer'); timeWastingClock.start(); $timeWastingClockRunning = true; } } $(document).bind('keydown', 't', timeWastingClockToggle); $(document).bind('keydown', 'j', timeWastingClockToggle); $(document).bind('keydown', 'space', timeWastingClockToggle); $(document).bind('keydown', 'k', function (){$.ionSound.play("klaxon");}); $(document).bind('keydown', 'o', function (){$.ionSound.play("onetwothree");}); function activityClockGo($seconds) { activityClock.setTime($seconds); activityClock.start(); } function timeWastingClockReset() { if (timeWastingClock.getTime() != 0) { var $timeWastingClockResetConfirm = confirm("Are you sure?"); if ($timeWastingClockResetConfirm) { if ($timeWastingClockRunning) { $('#timeWastingClockGo').html('Start timer'); timeWastingClock.stop(); $timeWastingClockRunning = false; } $.jStorage.set("time_wasted", 0); timeWastingClock.setTime(0); } } } function activityClockReset() { activityClock.stop(); activityClock.setTime(0); } function activityClockCustom() { var minutes = prompt("Number of minutes", "0"); var seconds = prompt("Number of seconds", "0"); activityClockGo(parseInt(minutes) * 60 + parseInt(seconds)); } // mplungjan on stack overflow: http://stackoverflow.com/a/15397495 function nth(d) { if(d>3 && d<21) return 'th'; // thanks kennebec switch (d % 10) { case 1: return "st"; case 2: return "nd"; case 3: return "rd"; default: return "th"; } } function toggleDateStyle() { var currentDate = $('#date').html(); var today = new Date(); var month = "January,February,March,April,May,June,July,August,September,October,November,December" .split(",")[today.getMonth()]; var day = "Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday" .split(",")[today.getDay()]; var date = today.getDate(); var British = day + " " + date + nth(date) + " " + month + " " + today.getFullYear(); var American = day + " " + month + " " + date + nth(date) + ", " + today.getFullYear(); if ($.jStorage.get("date_style", 0) == 0) { $('#date').html(American); $.jStorage.set("date_style", 1); } else { $('#date').html(British); $.jStorage.set("date_style", 0); } } // set initial date to British style if ($.jStorage.get("date_style", 0) == 0) $.jStorage.set("date_style", 1); else $.jStorage.set("date_style", 0); toggleDateStyle(); $(document).bind('keydown', 's', timeWastingClockReset); $(document).bind('keydown', 'r', activityClockReset); $(document).bind('keydown', 'c', activityClockCustom); $(document).bind('keydown', '0', function (){activityClockGo(30);}); $(document).bind('keydown', '1', function (){activityClockGo(60);}); $(document).bind('keydown', '9', function (){activityClockGo(90);}); $(document).bind('keydown', '2', function (){activityClockGo(120);}); $(document).bind('keydown', '3', function (){activityClockGo(180);}); $(document).bind('keydown', '4', function (){activityClockGo(240);}); $(document).bind('keydown', '5', function (){activityClockGo(300);}); $(document).bind('keydown', '6', function (){activityClockGo(360);}); $(document).bind('keydown', '7', function (){activityClockGo(420);}); $(document).bind('keydown', '8', function (){activityClockGo(480);}); $(document).ready(function(){ $('#klaxon').button(); $('#klaxon').click(function (){$.ionSound.play("klaxon");}); $('#one-two-three').button(); $('#one-two-three').click(function (){$.ionSound.play("onetwothree");}); $('#timeWastingClockGo').button(); $('#timeWastingClockGo').click(timeWastingClockToggle); $('#timeWastingClockReset').button(); $('#timeWastingClockReset').click(timeWastingClockReset); $('#activityClockReset').button(); $('#activityClockReset').click(activityClockReset); $('#activityClockCustom').button(); $('#activityClockCustom').click(activityClockCustom); $('#activityClock30s').button(); $('#activityClock30s').click(function (){activityClockGo(30);}) $('#activityClock60s').button(); $('#activityClock60s').click(function (){activityClockGo(60);}) $('#activityClock90s').button(); $('#activityClock90s').click(function (){activityClockGo(90);}) $('#activityClock120s').button(); $('#activityClock120s').click(function (){activityClockGo(120);}) $('#activityClock180s').button(); $('#activityClock180s').click(function (){activityClockGo(180);}) $('#activityClock240s').button(); $('#activityClock240s').click(function (){activityClockGo(240);}) $('#activityClock300s').button(); $('#activityClock300s').click(function (){activityClockGo(300);}) $('#date-toggle').button(); $('#date-toggle').click(function (){toggleDateStyle();}); });