// JavaScript Document
// simple timer helper functions
// code by Azer Manafov (azerman[at]hotmail[dot]com)
var TIMER_ID 		  = null;
var bTIMER_RUNNING 	  = false;
var TIMER_DELAY 	  = 50;

var TM_STATE_START    = 1;
var TM_STATE_RUN      = 2;
var TM_STATE_STOP     = 3;

var TIMER_STACK       = new Array( );

function isTimer( )
{
	return bTIMER_RUNNING;
}
function setTimerCallback( fnTimerCallback )
{   for ( var i = 0; i < TIMER_STACK.length; i++ )
		  if ( TIMER_STACK[i] == fnTimerCallback )
		       return;
	TIMER_STACK.push( fnTimerCallback );		 
}
function removeTimerCallback( fnTimerCallback )
{   for ( var i = 0; i < TIMER_STACK.length; i++ )
	{   if ( TIMER_STACK[i] == fnTimerCallback )
		{   TIMER_STACK.splice( i,1);
			return;
		}
	}
}
function killTimer( )
{   
//if ( isTimer() )
//         self.clearTimeout( TIMER_ID );
    bTIMER_RUNNING = false;
	TIMER_ID       = null;
	for ( var i = 0; i < TIMER_STACK.length; i++ )
		  TIMER_STACK[i](TM_STATE_STOP);
}
function setTimer( )
{   bTIMER_RUNNING = true;
	for ( var i = 0; i < TIMER_STACK.length; i++ )
		  TIMER_STACK[i]( TM_STATE_START );
	timerRunner( );
}
function timerRunner( )
{   if ( !isTimer()) return;
	for ( var i = 0; i < TIMER_STACK.length; i++ )
		  TIMER_STACK[i]( TM_STATE_RUN );
	TIMER_ID = self.setTimeout("timerRunner( )", TIMER_DELAY);
}
