var maxTimeOut = 5000;
var maxStartDelay = 0;
var maxTimerOperator;
var maxTimerStop = 0;
var maxFunctionName;

function maxTimer( maxTimeOutInput, maxTimerStopInput, maxStartDelayBool, maxFunctionNameInput )
{
	maxTimeOut = maxTimeOutInput;
	maxTimerStop = maxTimerStopInput;
	maxFunctionName = maxFunctionNameInput+';';
	
	if( !maxStartDelayBool ) {
		maxStartDelay = 1;	
	}	
	
	maxTimerAction();
}

function maxTimerAction() 
{
	if( maxStartDelay != 0 ) {
		eval( maxFunctionName );
	}
	
	if( maxStartDelay == maxTimerStop && maxTimerStop != 0 ) {
		maxAbortTimer();
	}
	else {
		maxTimerOperator = setTimeout( maxTimerAction, maxTimeOut );
		maxStartDelay++;
	}
}

function maxAbortTimer() 
{
	clearTimeout( maxTimerOperator );
}
