var secs
var timerID = null
var timerRunning = false
var delay = 1000
var warnTime1, warnTime2
var testID
var database
var subjectID
var previewTest
var timeExpired
var chapterID
var warning1
var warning2
var timeExpire

function timeLeft()
{
	return secs;
}

function formatTime(secs)
{
	var hour;
	var min;
	var sec;
	var shour;
	var smin;
	var ssec;
	hour = Math.floor(secs/3600);
	min = Math.floor(secs/60)-hour*60;
	sec = secs-Math.floor(secs/60)*60;
	
	if (hour < 10)
	{
		shour = "0" + String(hour);
	}
	else
	{
		shour = String(hour);
	}

	if (min < 10) 
	{	
		smin = "0" + String(min);
	}
	else
	{
		smin = String(min);
	} 
	if (sec < 10)
	{
		ssec = "0" + String(sec);
	}
	else
	{
		ssec = String(sec);
	}
	if (secs >= 0)
	{	
		return "You have " + shour + ":" + smin + ":" + ssec + " remaining";
	}
	else
	{
		return ""
	}
}
function displayTimeLeft()
{
	var timeLeft = readCookie("timeLeft");
	window.status = formatTime(timeLeft);
}

function initializeTimer(timeLeft, time1, time2, test, host, subject, preview, chapter)
{
    // Set the length of the timer, in seconds
    secs = timeLeft;
	warnTime1 = time1;
	warnTime2 = time2; 
    testID = test;
    database = host;
    subjectID = subject;
    previewTest = preview;
    chapterID = chapter;
    writeCookie("timeLeft",timeLeft,null);
    writeCookie("timeExpired",0,null);
}

function writeTimeLeft()
{
	writeCookie("timeLeft",secs,null);
}

function stopTimer()
{
    if(timerRunning)
        clearTimeout(timerID)
    timerRunning = false
}

function startTimer()
{
	var features = 'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,width=200,height=300,top=100,left=100';
	var width = screen.width/3;
	var height = screen.height/5;
	var day = new Date();
	var id = day.getTime();
	var URL;
	var testEndURL;

	if (warnTime1 == 0)
	{
		warnTime1=null;
	}
	if (warnTime2 == 0)
	{
		warnTime2=null;
	}
	
	URL = "TimerRemaining.asp?db="+database+"&testID="+testID;
	if (chapterID != 0)
	{
		URL = URL + "&chap=" + chapterID
	}
	testEndURL = "TakeTest.end.asp?db="+database+"&testID="+testID+"&subjectID="+subjectID;
	if (previewTest) {
		testEndURL = testEndURL + "&test=true";
	}
    if (secs==0)
    {
		URL = URL+"&level=0";
        stopTimer();
        writeCookie("timeExpired",1,null);
        /*
        if (document.frmTest.btnSubmit)
        {
			document.frmTest.btnSubmit.click();
        }
        */
        if (document.getElementById("btnSubmit"))
        {
			document.getElementById("btnSubmit").click();
        }
        eval("page0" + id + " = window.open(URL, '" + id + "', 'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=0,width=" + width + ",height=" + height +",left = 0,top = 0');");
        
        //window.location.replace(testEndURL);
	}
	else if (secs==warnTime1)
	{
		URL = URL+"&level=2";
		eval("page2" + id + " = window.open(URL, '" + id + "', 'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=0,width=" + width + ",height=" + height +",left = 0,top = 0');");
		secs = secs - 1;
        timerRunning = true;
        timerID = self.setTimeout("startTimer()", delay);
	}
	else if (secs==warnTime2)
	{
		URL = URL+"&level=1";
		eval("page1" + id + " = window.open(URL, '" + id + "', 'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=0,width=" + width + ",height=" + height +",left = 0,top = 0');");
		secs = secs - 1;
        timerRunning = true;
        timerID = self.setTimeout("startTimer()", delay);
	}
    else
    {
        window.status = formatTime(secs);
        secs = secs - 1;
        timerRunning = true;
        timerID = self.setTimeout("startTimer()", delay);
    }
}

function checkCookiesEnabled()
{
	var URL;
	URL = "TimerError.asp?db="+database+"&testID="+testID+"&cookies=false";
	if (!cookiesEnabled)
	{
		 //window.location.replace(URL);
		 Document.write("You browser must enable cookies for time testing!")
	}
}

function startTimerAlert(warning1, warning2, timeExpire)
{
	var features = 'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,width=200,height=300,top=100,left=100';
	var width = screen.width/3;
	var height = screen.height/5;
	var day = new Date();
	var id = day.getTime();
	var URL;
	var testEndURL;

	if (warnTime1 == 0)
	{
		warnTime1=null;
	}
	if (warnTime2 == 0)
	{
		warnTime2=null;
	}
	
	URL = "TimerRemaining.asp?db="+database+"&testID="+testID;
	if (chapterID != 0)
	{
		URL = URL + "&chap=" + chapterID
	}
	testEndURL = "TakeTest.end.asp?db="+database+"&testID="+testID+"&subjectID="+subjectID;
	if (previewTest) {
		testEndURL = testEndURL + "&test=true";
	}
    if (secs==0)
    {
		URL = URL+"&level=0";
        stopTimer();
        writeCookie("timeExpired",1,null);
        /*
        if (document.frmTest.btnSubmit)
        {
			document.frmTest.btnSubmit.click();
        }
        */
        if (document.getElementById("btnSubmit"))
        {
			document.getElementById("btnSubmit").click();
        }
        window.alert(timeExpire);
        
        //window.location.replace(testEndURL);
	}
	else if (secs==warnTime1)
	{
		URL = URL+"&level=2";
		window.alert(warning1);
		secs = secs - 1;
        timerRunning = true;
        //timerID = self.setTimeout("startTimerAlert('"+warning1+"','"+warning2+"','"+timeExpire+'")", delay);
        timerID = self.setTimeout("startTimerAlert('"+warning1+"','"+warning2+"','"+timeExpire+"')", delay);
	}
	else if (secs==warnTime2)
	{
		URL = URL+"&level=1";
		window.alert(warning2);
		secs = secs - 1;
        timerRunning = true;
        //timerID = self.setTimeout("startTimerAlert('"+warning1+"','"+warning2+"','"+timeExpire+'")", delay);
        //timerID = self.setTimeout("startTimerAlert("+warning1+","+warning2+","+timeExpire+")", delay);
        timerID = self.setTimeout("startTimerAlert('"+warning1+"','"+warning2+"','"+timeExpire+"')", delay);
	}
    else
    {
        window.status = formatTime(secs);
        secs = secs - 1;
        timerRunning = true;
        //timerID = self.setTimeout("startTimerAlert('"+warning1+"','"+warning2+"','"+timeExpire+'")", delay);
        //timerID = self.setTimeout("startTimerAlert("+warning1+","+warning2+","+timeExpire+")", delay);
       timerID = self.setTimeout("startTimerAlert('"+warning1+"','"+warning2+"','"+timeExpire+"')", delay);
    }
}

