jQuery Stopwatch

by GosiaPi

HTML

<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css">
<script src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.2/js/bootstrap.min.js"></script>

			<div id="timeContainer" class="well well-sm">
				<time id="timerValue"></time>
			</div>
			<div id="timerButtons">
				<button id="start" class="btn btn-success">START</button>
				<button id="stop" class="btn btn-danger">STOP</button>
				<button id="reset" class="btn btn-default">RESET</button>
			</div>

JavaScript

// Initialize our variables
var timerDiv = document.getElementById('timerValue'),
	start = document.getElementById('start'),
	stop = document.getElementById('stop'),
	reset = document.getElementById('reset'),
	t;

// Get time from cookie
var cookieTime = getCookie('time');

// If timer value is saved in the cookie
if( cookieTime != null && cookieTime != '00:00:00' ) {
	var savedCookie = cookieTime;
	var initialSegments = savedCookie.split('|');
	var savedTimer = initialSegments[0];
	var timerSegments = savedTimer.split(':');
	
    var date = new Date(initialSegments[1]);
    alert(date)
    date.setHours(date.getHours() + parseInt(timerSegments[0],10), date.getMinutes() + parseInt(timerSegments[1],10), date.getSeconds() + parseInt(timerSegments[2],10));    
    var secsDiff = ((date - new Date(initialSegments[1]))/1000);
    alert(secsDiff)
    var seconds = secsDiff%60,
		minutes = Math.floor(secsDiff/60),
		hours = Math.floor(secsDiff/(60*60));
    add();
    //document.getElementById('timerValue').textContent = hours +':' + minutes + ':' + minutes;
    
	$('#stop').removeAttr('disabled');
	$('#reset').removeAttr('disabled');
} else {
	var seconds = 0, minutes = 0, hours = 0;
	timerDiv.textContent = "00:00:00";
}

// New Date object for the expire time
var curdate = new Date();
var exp = new Date();

// Set the expire time
exp.setTime(exp + 2592000000);

function add() {

	seconds++;
	if (seconds >= 60) {
		seconds = 0;
		minutes++;
		if (minutes >= 60) {
			minutes = 0;
			hours++;
		}
	}

	timerDiv.textContent = (hours ? (hours > 9 ? hours : "0" + hours) : "00")
		+ ":" + (minutes ? (minutes > 9 ? minutes : "0" + minutes) : "00")
		+ ":" + (seconds > 9 ? seconds : "0" + seconds);

	// Set a 'time' cookie with the current timer time and expire time object.
	var timerTime = timerDiv.textContent.replace("%3A", ":");
	// console.log('timerTime', timerTime);
	setCookie('time', timerTime + '|' + curdate, exp);

	timer();
}

function timer() {
	t = setTimeout(add,...