function Timer(trigger, delay)
{
	var trigger = trigger;
	var delay = delay;
	var timer_id = null;
	var is_running = false;

	this.Start = Start;
	this.Stop = Stop;

	function Start(new_trigger)
	{
		if (is_running)
			clearTimeout(timer_id);

		if (new_trigger)
			trigger = new_trigger;

		timer_id = setTimeout(trigger, delay);
		is_running = true;
	}

	function Stop()
	{
		if (is_running)
			clearTimeout(timer_id);

		is_running = false;
	}
}