/*

The script below is used to evaluate and process student responses to the quiz.

			
Name			Date		Action

Scott Reeser	9/9/2004	Created
Scott Reeser	11/22/2004 	Modified for use with a final exam instead of individual quizzes.

*/

var answerKey = new Array();

answerKey[0] = new Array("c","a","c","b","e","c","b","c","a","d","b","c","a","d","e","b","a","b","a","e");


function evaluate() {

   var exam_num_correct = 0; //number they got right
   var exam_num_possible = document.test1.Exam_Num_Possible.value;
   var exam_pct; //percent calcluation
   var student_answers = ""; //student answers
   var correct_answers = ""; //correct answers 


    var part = 1
	var stuAnswers = new Array();
	var unAnswered = new Array();

	var patternTest = new RegExp(/q[0-9]+/);
	
	for(i=0;i<document.test1.elements.length;i++) {
			elementName = document.test1.elements[i].name; 

			if(patternTest.exec(elementName) && document.test1.elements[i].checked) {
					 var elementVal = document.test1.elements[i].value;
					 var questionNum = elementName.substring(1,elementName.length);
					 stuAnswers[questionNum-1] = elementVal;

			}
	}	

	incompleteFlag = false; 
	
	evalResults = new Array();
	for(i=0;i<answerKey[part-1].length;i++) {
	      correct_answers = correct_answers + answerKey[part-1][i];
	
	   if(stuAnswers[i]==answerKey[part-1][i]) {
	   	  student_answers = student_answers + stuAnswers[i];
	      //evalResults[i]="Correct!";
		  exam_num_correct++;
	   } else if (stuAnswers[i] != null) {
	   	  student_answers = student_answers + stuAnswers[i];
	      //evalResults[i]="Incorrect!";
	   } else {
	   	  student_answers = student_answers + "-";
	      evalResults[i]="Unanswered";
		  incompleteFlag = true;
	   }
	}
	
	
	results = "\n================\n\n";
	for(i=0;i<evalResults.length;i++)  {
	   if(evalResults[i]=="Unanswered")
       results = results + "Question " + (i+1) + ":  " + evalResults[i] + "\n";
	}
	results = results + "\n\n================\n\n";
	if(incompleteFlag) {
		results = "You did not answer all the questions.\nPlease try again.\n\n" + results;
		confirm(results);
	} else {
		document.test1.Exam_Num_Correct.value = exam_num_correct;
		exam_pct = exam_num_correct/exam_num_possible*100;
		document.test1.Exam_Pct.value = Math.round(exam_pct*1000)/1000;	   
	    document.test1.Student_Answers.value = student_answers.toUpperCase();
		document.test1.Correct_Answers.value = correct_answers.toUpperCase(); 
		document.test1.submit();
	}
}
