//alert("testing");

var _beginTime = null;
var _finalTime = null;
var _givenTime = null;
var _timerOn = true;
var _timerStarted = false;
var _timerStopped = false;
var _timer = null;

function setTimeRemaining(seconds) {
	_givenTime = seconds;
}

function showTimer() {
       _timerOn = true;
       refreshTimer();
}
function hideTimer() {
       _timerOn = false;
       refreshTimer();
}
function startTimer() {
       if (_timerStarted) {
               return;
       }
       _beginTime = new Date();
       _timerStarted = true;
       timerLoop();
}
function stopTimer() {
       if (_timerStarted == false) {
               return;
       }
       _finalTime = new Date();
       _timerStopped = true;
       clearTimeout(_timer);
       return updateTimer();
}
function refreshTimer() {
       _timerStarted = false;
       _timerStopped = false;
       clearTimeout(_timer);
       updateTimer();
}
function timerLoop() {
       updateTimer();
       _timer = setTimeout("timerLoop()", 100);
}
function updateTimer() {
       if (!_timerOn) {
               return presentTimer(null);
       } else if (!_timerStarted) {
               return presentTimer(0);
       } else if (_timerStopped) {
               return presentTimer(_finalTime.getTime() - _beginTime.getTime());
       } else {
               return presentTimer((new Date()).getTime() - _beginTime.getTime());
       }
}

function sendTimeExpiredXML() {
	postXML("<?xml version='1.0' encoding='UTF-8'?><update type='timeExpired' />", true);	
}

function presentTimer(time) {
       tE = document.getElementById("timer");
       if (time == null) {
               tE.innerHTML = "";
               return null;
       }
       countdown = _givenTime * 1000 - time;
       if (countdown <= 0) {
			   sendTimeExpiredXML();       
               countdown = 0;
               _finalTime = new Date(_startTime.getTime() + _givenTime * 1000); //_starttime
               _timerStopped = true;
               clearTimeout(_timer);
       }
       var d = new Date(countdown);
       var dm = d.getMinutes();
       var ds = d.getSeconds();
       var s = "";
       s += (dm < 10) ? "0" + dm : dm;
       s += ":";
       s += (ds < 10) ? "0" + ds : ds;
       tE = document.getElementById("timer");
       tE.innerHTML = s;

       return countdown;
}

/*


var timerID = 0;
var tStart  = null;
var totalTime = 0;
var timerClear = false;

function clearTimerChildren(e) {
	while(e.childNodes && e.childNodes.length > 0) {
		e.removeChild(e.childNodes[0]);
	}
}

function clearTimer() {
	timerClear = true;
}

function setTime(seconds) {
	var timerE = document.getElementById('timer');
	clearTimerChildren(timerE);
	var textE = document.createTextNode("Auto-logout in: " + seconds + " seconds");
	timerE.appendChild(textE);
}

function updateTimer() {
	if (timerID) {
		clearTimeout(timerID);
	}

	if(!tStart) {
		tStart = new Date();
	}

	var tDate = new Date();
	var tDiff = tDate.getTime() - tStart.getTime();

	setTime(Math.floor(totalTime - (tDiff / 1000)));
	
	if (timerClear) {
		var timerE = document.getElementById('timer');
		clearTimerChildren(timerE);
		timerClear = false;
	} 
	else {
		timerID = setTimeout("updateTimer()", 1000);
	}
}

function startTimer(seconds) {
	tStart = new Date();
	totalTime = seconds;
	setTime(seconds);
	timerID = setTimeout("updateTimer()", 1000);
}
*/