// JavaScript Document
/*-----------------------------------------------------------
Comment Header

Project		: XPJS-Timer
Version		: v1.1
Author		: Sebastian Lenczewski
File Type	: Javascript (.js)
Date Created: June 5, 2008
Comments	: A javascript timer function that can be used
			to control and trigger timed events.  This can 
			be added to any tag in the "onmouseover", 
			"onmouseout" or any other control that requires
			a triggered event over a set period of time.

-----------------------------------------------------------*/

// Edit these values to control the peramiters of the timer.


// Global variables

var timeTicker = 0; // counts how many seconds have passed.
var timer; // a variable pointing to the TimeOut object.
var lengthOfTime;
var lengthOfOneTime;
var seconds = 1; // ellapsed time since timer started.
var timeRemaining = 0; // the time remaining until change occurs.
var refreshRate = 10; // in miliseconds. 1-1000 are somewhat time stable.



function startTimer(newTime)
{
	
	if( typeof (newTime) != 'undefined')
		{
			lengthOfTime = newTime;
		}
	
	startEvent();
	
	runTimer();
	
	//Enter code to be run once when the timer is started.
}



function runTimer()
{
	timer=setTimeout("runTimer()",(refreshRate));
	
	timeTracker();
}



function resumeTimer()
{
	resumeEvent();
	timer=setTimeout("runTimer()",(refreshRate));
}





function timeTracker()
{
	
	timeTicker ++;
	
	var alarm = 0;
	
	if (timeTicker >= (1000/refreshRate))
	{
		timeTicker = 0;
		
		
		if (seconds >= lengthOfTime)
		{
			seconds = 0;
			
			runEvent();
			
			alarm = 1;
		}
		
		seconds += 1;
		
		timeRemaining = lengthOfTime - seconds + 1;
		
		
	}
	
	
	return(alarm);
	
	// add the code desiered to be triggered when the timer goes off
}






function stopTimer()
{
	clearTimeout(timer);
	
	timeTicker = 0;
	
	seconds = 0;	
	
	stopEvent();
}




function pauseTimer()
{
	clearTimeout(timer);
	
	timeTicker = 0;	
	
	pauseEvent();
}







