var timer = {
	startTime: 0,
	pausedTime: 0,
	totalPausedTime: 0,
	isPaused: false,
	isTiming: false,
	
	now: function()
	{
		return (new Date).getTime();	
	},
	
	start: function()
	{
		this.reset();
		this.isTiming = true;
		
		if(!this.startTime)
			this.startTime = this.now();
		else
			this.resume();
	},
	
	pause: function()
	{
		this.isPaused = true;
		this.pausedTime = this.now();
	},
	
	resume: function()
	{
		this.totalPausedTime = this.now() - this.pausedTime;
		this.isPaused = false;
	},
	
	stop: function()
	{
		if(this.isPaused)
			this.resume();
		
		this.isTiming = false;
		return Math.ceil(((this.now() - this.startTime) - this.totalPausedTime)/1000);
	},
	
	reset: function()
	{
		this.startTime = 0;
		this.endTime = 0;
		this.pausedTime = 0;
		this.totalPausedTime = 0;	
	}
}
