// please keep these lines on when you copy the source
// made by: Nicolas - http://www.javascript-page.com

var timerID = 0;
var tStart  = null;
var startTime  = null;
var endTime  = null;
var startHours = null;
var startMins = null;
var startSecs = null;

var endHours = null;
var endMins = null;
var endSecs = null;

var startTimes = new Array();

function UpdateTimer() {
   if(timerID) {
  	clearTimeout(timerID);
  	clockID  = 0;
   }

   if(!tStart)
  	tStart   = new Date();

   var   tDate = new Date();
   var   tDiff = tDate.getTime() - tStart.getTime();

   tDate.setTime(tDiff);

   $("#durTime").text(""+ tDate.getMinutes() + ":"+ tDate.getSeconds());
   
   timerID = setTimeout("UpdateTimer()", 1000);
}

function Start() {
	
	tStart = new Date();
	startTime = new Date();
	
	startTimes.push(startTime);
	
	var startAmPm = "AM";
	
   $("#durTime").text("00:00");
   $("#freqTime").text("----");
   $("#endTime").text("----");
   
   startHours = startTime.getHours();
   
   if(startHours == 0)
   {
   	startHours = 12;
   	startAmPm = "AM";
   }
   else if(startHours > 11)
   {
   	startAmPm = "PM";
   	if(startHours > 12)
   	{
   		startHours = startHours - 12;
   	}
   }
   
   startMins = startTime.getMinutes();
   
   if(startMins < 10)
   {
   	startMins = "0" + startMins;
   }
   
   startSecs = startTime.getSeconds();
   
   if(startSecs < 10)
   {
   	startSecs = "0" + startSecs;
   }
   
   $("#startTime").html(startHours + ":"+ startMins + ":<span class='secs'>" + startSecs + "</span>" + " " + startAmPm);

   timerID  = setTimeout("UpdateTimer()", 1000);
}

function Stop() {
	if(startTimes.length > 1)
	{
		var freq = 0;
		var difference = startTimes[startTimes.length-1] - startTimes[startTimes.length-2];
		
		freq = difference/(1000*60);
		var freqMins = Math.floor(freq);
		var freqSecs = Math.round((freq - freqMins) * 60);
		
		$("#freqTime").html(freqMins + " m, " + freqSecs + " s");
	}

	endTime = new Date();
	
	var endAmPm = "AM";
	
	endHours = endTime.getHours();
   
   if(endHours == 0)
   {
   	endHours = 12;
   	endAmPm = "AM";
   }
   else if(endHours > 11)
   {
   	endAmPm = "PM";
   	if(endHours > 12)
   	{
   		endHours = endHours - 12;
   	}
   }
   
   endMins = endTime.getMinutes();
   
   if(endMins < 10)
   {
   	endMins = "0" + endMins;
   }
   
   endSecs = endTime.getSeconds();
   
   if(endSecs < 10)
   {
   	endSecs = "0" + endSecs;
   }
   
   $("#endTime").html(endHours + ":"+ endMins + ":<span class='secs'>" + endSecs + "</span>" + " " + endAmPm);
   
   if(timerID) {
  	clearTimeout(timerID);
  	timerID  = 0;
   }
   
   tStart = null;
}

function Reset() {
   tStart = null;

   $("#durTime").text("Stopped");
   $("#startTime").text("Stopped");
   $("#endTime").text("Stopped");
   $("#freqTime").text("Stopped");
}

$(document).ready(function(){
			
			var timerOn = 0;
			
			document.onkeydown = checkKeycode;
			
			function checkKeycode(e) {
				var keycode;
				if (window.event) keycode = window.event.keyCode;
				else if (e) keycode = e.which;
				
				if(keycode == 83){
					if(timerOn == 0){
						$("#start-stop").text("Stop");
						Start();
						$("#timerRow").removeClass("timerOff");
						$("#timerRow").addClass("timerOn");
						timerOn = 1;
					}else{
						$("#start-stop").text("Start");
						Stop();
						$("#timerRow").addClass("timerOff");
						$("#timerRow").removeClass("timerOn");
						$("#timerRow").after("<tr><td>"+$('#startTime').html()+"<\/td><td>"+$('#endTime').html()+"<\/td><td>"+$('#durTime').html()+"<\/td><td>"+$('#freqTime').html()+"<\/td><\/tr>");
						timerOn = 0;
						Reset();
					}
				};
			};
			
			$("#timerRow").addClass("timerOff");
			
			$("#start-stop").click(
  				function(){
  					if(timerOn == 0){
						$("#start-stop").text("Stop");
						Start();
						$("#timerRow").removeClass("timerOff");
						$("#timerRow").addClass("timerOn");
						timerOn = 1;
					}else{
						$("#start-stop").text("Start");
						Stop();
						$("#timerRow").addClass("timerOff");
						$("#timerRow").removeClass("timerOn");
						$("#timerRow").after("<tr><td>"+$('#startTime').html()+"<\/td><td>"+$('#endTime').html()+"<\/td><td>"+$('#durTime').html()+"<\/td><td>"+$('#freqTime').html()+"<\/td><\/tr>");
						timerOn = 0;
						Reset();
					}
  				}
			);
			
  		});