<!-- JavaScript program by Osman Mrzljak -->
<!-- Implements answer checking and scoring for a multiple choice test -->

var Done=new Array(50);
var score=new Array(50);
var Total=0;
var answers=new Array(50);
var avgscore=34;

function checkbuttons() {
	var count=0;
	var el=document.mock.elements.length;
	for(x=0;x<el;x++){
		if(document.mock.elements[x].checked==true){
			var s=new String(document.mock.elements[x].name);
			if(s.charAt(0)=="R"){
				var s2=new String;
				s2=document.mock.elements[x].value;
				count = parseInt(s.substr(1)) -1;
				Done[count]= s2.charAt(0);
				score[count]=parseInt(s2.charAt(1));
			}
		}
	}
}

function initArrays(){
	initAnswers();

	for(x=0;x<Total;x++){
		score[x]=0;
		Done[x]=0;
	}
	checkbuttons();
}

function showvalue(obj,ndx){
	var s=new String;
	s=obj.value;
	Done[ndx-1]= s.charAt(0);
	score[ndx-1]=parseInt(s.charAt(1));
}

function calculate(f) {
	var finalscore=0;
	for(i=0;i<Total;i++)finalscore+=score[i];
}

function doReview(Total,answers,Done,score,student){
	var finalscore=0;
	for(i=0;i<Total;i++)finalscore+=score[i];
	
	var results ="<strong>";
	results +="Exam results for: " + student + "</font>\n";
	results +="</strong><br/>\n";
	results +="<strong>You scored "+finalscore+" out of "+Total +" = " + Math.round((finalscore*100)/Total) +" % </strong><br/>";
	results +="<strong>Average students score "+ avgscore +" % </strong>";
	results +="<table align=center border=4>\n";
	results +="<tr><td><b><i>Question</i></b></td><td><b><i>Answer</i></b></td><td><b><i>Submit</i></b></td><td><b><i>Score</i></b></td></tr>\n";
	
	for(i=0;i<Total;i++){
		results +="<tr><td align=center>"+(i+1)+"</td><td align=center><b>\n";
		results +=answers[i]+"</b></td><td align=center><b>\n";
		results +=Done[i]+"</b></td><td align=center><b><font color=#FF0000>\n";
		results +=score[i]+"</b></td></tr>\n";
	
	}
	results +="</table>\n";
	results +="<p>Press the 'Clear' button to try it one more time.</p>\n";
	document.getElementById('mockresults').innerHTML = results;
}

function checkanswers(form){
	var student = form.student.value;
	doReview(Total,answers,Done,score,student);
	return false;
}

function resetResult(form)
{
	document.getElementById('mockresults').innerHTML = "";
	for(x=0;x<Total;x++){
		score[x]=0;
		Done[x]=0;
	}
	checkanswers(form);
}

function submitResults(form) {
	checkanswers(form);
	var student=form.student;
	var finalscore=0;
	for(i=0;i<Total;i++)finalscore+=score[i];
	var perc = Math.round((finalscore*100)/Total);
	form.percentage.value = perc;
	//submitScore(form, 'URL', alertContents);
}

function submitScore( form , url, responseHandler ) {
	var requestData="";
	var elements = form.elements;
	for (var i = 0; i < elements.length;i++){
		var element = elements[i];
		if ( !((element.type == "checkbox" || element.type == "radio") && !element.checked))
		{
			// only befor first elmenet we don't need & 
			if (i > 0 ) {
				requestData+= "&" ;
			}
			requestData+= element.name + "=" + element.value;
		}
	}
	requestData = "bericht=" + encodeURI(requestData);
	requestData+="&naam=" + form.student.value + "&subject=mockscore";
	makePOSTRequest(url, requestData, responseHandler);
}


function alertContents() {
  if (http_request.readyState == 4) {
	 if (http_request.status == 200) {
		//alert(http_request.responseText);
	 	alert("Your score is submited. Thanks!");
	 } else {
		alert('There was a problem with the request.');
	 }
  }
}

