/*
* 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();});
});