var timerID = null;
var timerRunning = false;
var delay = 1000;
function InitializeTimer()
{
	if (document.getElementById("result").value!="start")
	{
		// start for the demo 
		var erg = document.getElementById("erg").value;
		if (erg != "")
		{
			//alert(erg);
			document.getElementById("GreyHeader").innerHTML = "";
			document.getElementById("currentquestion").innerHTML = erg;
		}
				
		// end of test version, no longer closing
		//window.close();
		//return false;
		
		// show answers version, instead of closing 
		OpenAll();
	}
	else
	{
	  document.getElementById("NextButton").disabled = false;
	  StopTheClock();
		StartTheTimer();
	}

}

function StopTheClock()
{
	if(timerRunning)
	{
		clearTimeout(timerID);
	}
	timerRunning = false;
}

function formatsecs(seconds)
{
	var min = Math.floor(seconds/60);
	var sec = (seconds-(60*min));
	var minstr=new String(min);
	var secstr=new String(sec);
	if (minstr.length==1)
	{
		minstr = "0"+minstr;
	}
	if (secstr.length==1)
	{
		secstr = "0"+secstr;
	}
	return (minstr+" : "+secstr);

}

function StartTheTimer()
{
	var secs = document.getElementById("secs").value;
  if (secs==-1)
  {
    StopTheClock();
    // postback to server 
    document.getElementById("remainingtime").innerHTML = "Saving your result, please wait ...";
		document.getElementById("EndTest").click();
    document.getElementById("EndTest").disabled=true;
  }
  else
  {
		var rt = formatsecs(secs);
    document.getElementById("remainingtime").innerHTML=rt;
    //self.status = secs;
    document.getElementById("secs").value = secs - 1;
    timerRunning = true;
    timerID = self.setTimeout("StartTheTimer()", delay);
    // refresh parent in order to prevent time outs
    if ( (secs % 400) == 0)
    {
			UpdateParent();    
    }
  }
}


function backq(evt)
{
	var curqnr = document.getElementById('curqnr').value;
	if (curqnr == 1)
	{
		return;
	}
	curqnr--;
	document.getElementById('curqnr').value = curqnr;
	var NextButton = document.getElementById('NextButton');
	var BackButton = document.getElementById('BackButton');
	NextButton.disabled = false;
	if (curqnr == 1)
	{
		BackButton.disabled = true;
	}
	document.getElementById("question"+(curqnr+1)).style.display="none";
	document.getElementById("question"+(curqnr)).style.display=""; // block makes Problems with FF
	updateheader();

	disablepostback(evt);
	return false;
}


function nextq(evt)
{
	var nrofq = document.getElementById('nrofq').value;
	var curqnr = document.getElementById('curqnr').value;
	if (curqnr == nrofq)
	{
		return;
	}
	curqnr++;
	document.getElementById('curqnr').value = curqnr;
	var NextButton = document.getElementById('NextButton');
	var BackButton = document.getElementById('BackButton');
	BackButton.disabled = false;
	if (curqnr == nrofq)
	{
		NextButton.disabled = true;
	}
	document.getElementById("question"+(curqnr-1)).style.display="none";
	document.getElementById("question"+(curqnr)).style.display=""; // block makes Problems with FF
	updateheader();
	
	disablepostback(evt);
	return false;
}

function disablepostback(evt)
{
	//window.event.cancelBubble = true;
	//window.event.returnValue = false;
	var e = (window.event) ? window.event : evt;
	e.cancelBubble = true; //IE
	e.returnValue = false; //IE
	if (e.stopPropagation) e.stopPropagation(); //FF
	if (e.preventDefault) e.preventDefault(); //FF
	e.cancel = true; //FF
	e.returnValue=false; //FF
}

function enablepostback(evt)
{
	document.getElementById("result").value = evaluateall();

	var e = (window.event) ? window.event : evt;
	e.cancelBubble = false; //IE
	e.returnValue = true; //IE

	e.cancel = false; //FF
	e.returnValue=true; //FF
	return true;
}

function updateheader()
{
	var nrofq = document.getElementById('nrofq').value;
	var curqnr = document.getElementById('curqnr').value;
	// no .innerText in FF so inner html or check for browser and use .text
	document.getElementById("currentquestion").innerHTML=curqnr+" of "+nrofq;
}

function evaluateall()
{
	var data=""; // otherwise ="undefined"
	var curdata="";
	var questionid;
	var answer;
	var useranswer;
	var cbarray;
	var nrofq = document.getElementById('nrofq').value;
	var selected;
	
	for (i=1;i<=nrofq;i++)
	{
		qsetid = document.getElementById("questiontype"+i).value;
		curdata = "qid="+document.getElementById("questionid"+i).value+","+qsetid+"=";
		answer = document.getElementById("answer"+i).value;
		cbarray = document.getElementsByName("group"+i);
		useranswer = "empty;";
		selected = document.getElementById("selected");

		for (j=0;j<cbarray.length;j++)
		{
			if (cbarray[j].checked==true)
			{
				useranswer = cbarray[j].value;
				selected.value = selected.value + j + "-";
				break;
			}
		}
		for (j=0;j<cbarray.length;j++)
		{
			if (cbarray[j].value==answer)
			{
				selected.value = selected.value + j + ";";
				break;
			}
		}
		if (useranswer != "empty;")
		{
			if (useranswer==answer)
			{
				curdata = curdata+"correct;";
			}
			else
			{
				curdata = curdata+"wrong;";
			}
		}
		else
		{
			curdata = curdata+"empty;";
		}
		data = data+curdata;
	}
	return data;
}

function OpenAll()
{
	var nrofq = document.getElementById('nrofq').value;
	var tr,trchoice;
	var selected;
	selected = document.getElementById("selected");
	var selarray = selected.value.split(";");
	var selindex,correctindex;
	var temparray;
	var cbarray;
	var incindexint;

	for (i=1;i<=nrofq;i++)
	{
		tr = document.getElementById("question"+i);
		tr.style.display = "";
		temparray = selarray[i-1].split("-");
		selindex = "";
		correctindex = "";
		selindex = temparray[0];
		correctindex = temparray[1];
		if (selarray[i-1].indexOf("-") == -1)
		{
			correctindex = selindex;
			selindex = "";
		}
		if (selindex != "")
		{
			incindexint = parseInt(selindex)+1;
			trchoice = document.getElementById("tr"+i+"-"+incindexint);
			trchoice.bgColor = "#CC0000"; // color wrong set anyway
			
			incindexint = parseInt(correctindex)+1;
			trchoice = document.getElementById("tr"+i+"-"+incindexint);
			trchoice.bgColor = "#009900"; // color true
			
			cbarray = document.getElementsByName("group"+i);
			cbarray[selindex].checked = true;
		}
		else
		{
			incindexint = parseInt(correctindex)+1;
			trchoice = document.getElementById("tr"+i+"-"+incindexint);
			trchoice.bgColor = "#009900"; // color true
		}
	}	
	document.getElementById("EndTest").disabled = true;
	document.getElementById("BackButton").disabled = true;
	document.getElementById("NextButton").disabled = true;	
	
}