// GRADE ASSESSMENT AND CALCULATE SCORE

var answers = new Array();	// STORES ANSWERS
var thisAnswered = new Array();	// STORES ANSWERED
var thisWrong = new Array();	// STORES WRONG
var totalNumberAnswered = 0;

function getCookieScore(form) {						//calculates score
	score = 			0;
	finalScore = 		0;
	areaScores = new Array(0,0,0,0,0,0);
	var currElt;
	var currSelection;
	var theirChoice;
	numberAnswered = new Array(0,0,0,0,0,0);
	var area;

	 
	for (i=0; i < numQuesTotal; i++) {						// 
		currElt = i*numChoi;
	  	for (j=0; j < numChoi; j++) {						// GO THROUGH EACH CHOICE 
		  	currSelection = form.elements[currElt + j];
			var quesNum = selected[i].toString();
			ques = allQuestions[quesNum];								// GET QUESTION INDEX NUMBER
	  		if (currSelection.checked) {				 			// SELECTION IS CHECKED
	   			if (currSelection.value == ques[5]) { 				// CHECKED VALUE IS CORRECT
	        		score++;										// UPDATE TOTAL SCORE
					answered[quesNum] = 1;							// UPDATES ANWERED ARRAY
					wrong[quesNum] = 0;								// UPDATES WRONG ARRAY
					thisAnswered[quesNum] = 1;						// MARKS QUESTIONS ANSWERED THIS TIME
					area = ques[6] - 1;							// GET CORRECT AREA NUMBER
					areaScores[area]++;								// UPDATE AREA SPECIFIC SCORE
					numberAnswered[area]++;
					break;
				}
				else {												// IF INCORRECT, TAKE VALUE + 1 TO GET 
					answers[quesNum] = eval(currSelection.value) + 1; // CHOICE SELECTED
					answered[quesNum] = 1;							// UPDATES ANWERED ARRAY
					wrong[quesNum] = 1;								// UPDATES WRONG ARRAY
					thisAnswered[quesNum] = 1;				// MARKS QUESTIONS ANSWERED THIS TIME
					thisWrong[quesNum] = 1;
					area = ques[6] - 1;							// GET CORRECT AREA NUMBER
					numberAnswered[area]++;
					break;										
				}
			}
		}
	 } 
	 finalScore = Math.round(score/numQuesTotal*100);
	 for(i=0; i<numberAnswered.length; i++) {
	 	totalNumberAnswered = eval(totalNumberAnswered + numberAnswered[i]);
	}
}

//////////////////////////////////////////
//		PRINT RESULTS WINDOW
//////////////////////////////////////////

function testResultsCookie(form)   {
	var percents = new Array(6);		// CREATE ARRAY OF AREA PERCENTAGES

	// CALCULATE AND FORMAT PERCENTS
	for (i=0; i<percents.length; i++) {		
		percents[i] = Math.round(areaScores[i]/quesPerArea[i]*100);
		
		if (isNaN(percents[i])) {
			percents[i] = "--";
		}
		else {
			percents[i] = percents[i] + "%";
		}
	}

	////////////////////////////////////////////////// START RESULTS PAGE
	resultsPage=window.open("","resultsPage","scrollbars=yes,status=yes,toolbar=yes,resizable=yes");
	resultsPage.focus();		// OPEN NEW WINDOW
	var r = resultsPage.document;

	// BEGIN HTML
	r.write ("<HTML><HEAD><TITLE>KING III - IT Governance Assessment Results</TITLE></HEAD>");
	r.write ("<BODY BGCOLOR=\"#FFFFFF\" link=\"#8a213a\">");
	r.write ("<CENTER><p><font face=\"Verdana, Arial, Helvetica, sans-serif\"><b><font color=\"#8A213A\" size=\"+2\">KING III IT Governance Assessment Results</font><br><small>Copyright &copy; 2009 IT Governance Network. All rights reserved.</small><br><font size=1>www.itgovernance.co.za<br>info@itgovernance.com</font><br><br>");

	// PRINT RESULTS SUMMARY - 
    //	r.write ("<font size=\"+1\"> . . . </font><br><br>Date: ", totalTime, "<br><br>");
    r.write ("<font size=\"+1\"></font>", Date(), "<br><br>");
    r.write("<small>");
	r.write("<table border=\"1\" cellpadding=\"3\">"); // BEGIN TEST RESULTS SUMMARY TABLE
	r.write("<tr align=\"center\" bgcolor=\"#ffff00\"><td colspan=\"6\"><b>Current Assessment</b></td></tr>");
	r.write("<tr align=\"center\"><td><b>Area</b></td><td><b>Assessment Questions</b></td><td><b>Answered</b></td><td><b>Comply</b></td><td><b>Non-Compliant</b></td><td><b>Percent Compliant</b></td></tr>");

	// AREA ROWS
	for (i=0; i<percents.length; i++) {		// PRINT AREA BREAKDOWN
		r.write("<tr align=\"center\">");
		r.write ("<td>Area ", i+1, "</td><td>", quesPerArea[i], "</td><td>", numberAnswered[i], "</td><td>", areaScores[i], "</td><td>", eval(numberAnswered[i]-areaScores[i]),  "</td><td>", percents[i],   "</td></tr>");
	}
	
	// TOTAL ROW
	r.write("<tr align=\"center\" bgcolor=\"#c0c0c0\"><td><b>Total</b></td><td><b>", numQuesTotal, "</b></td><td><b>", totalNumberAnswered, "</b></td><td><b>", score, "</b></td><td><b>", eval(totalNumberAnswered-score), "</b></td><td><b>", finalScore, "%</b></td></tr>");
	
	// PTH ADDED HERE	
	var answeredHistory = eval(100-unAnswered);
	var correctHistory = eval(answeredHistory - availableWrong);
	var percentCorrectHistory = eval(Math.round(correctHistory/answeredHistory*100));
	
	if (isNaN(percentCorrectHistory)) {
			percentCorrectHistory = "--";
	}
	else {
		percentCorrectHistory = percentCorrectHistory + "%";
	}
	
	// EXAM HISTORY
//	r.write("<tr align=\"center\" bgcolor=\"#ffff00\"><td colspan=\"6\"><b>Exam History</b></td></tr>");
	
	// PTH ADDED HERE
//	r.write("<tr align=\"center\"><td colspan=\"2\" align=\"right\"><b>Out of 300 Questions</b></td><td><b>", answeredHistory , "</b></td><td><b>", correctHistory, "</b></td><td><b>", availableWrong, "</b></td><td><b>", percentCorrectHistory, "</b></td></tr>");

	r.write ("</table><br><br>If you want to retain a copy of your scored results summary, questions, answers and explanations, please print one now using your browser print capability. If you want just a copy of the scored results summary (above), simply request to print page 1 within your browser print function.<br><br><br>Contact us if you require a more detailed analysis of your current readiness and the development of a road map that addresses your specific needs regarding King III.</small><br><br>");
	
	r.write ("<br><br><a href=\"javascript:self.close();\">Close Window</a></b></font></p></center><blockquote><hr>");

	//	PRINT QUESTIONS AND ANSWERS
	var y = selected.length + 1;
	for(i=0; i< y; i++) {
		if (selected[i] != null) {	// NOT EMPTY
			var num = selected[i].toString();
			var x = allQuestions[num];
			r.write("<p><b>", i + 1, ". ", x[1], "</b></p>"); // PRINT QUESTION
			
			r.write("<BLOCKQUOTE><p><b><FONT COLOR=\"#8A213A\">The King III requirement is:</font><br>", x[x[5] + 1]); // ANSWER
			if (thisAnswered[num] == 1) { // QUESTION ANSWERED
				if (thisWrong[num] == 1) { // ANSWERED WRONG
					r.write("<br><br><font color=\"#FF0000\">Your selection doesn't meet the King III requirement. You selected:</font></b><br>" + x[answers[num]]);
				}
				else { 
					r.write("<br><br><FONT COLOR=\"#8A213A\">Your selection addresses the King III requirement.</FONT></b>"); // ANSWERED RIGHT
				}
			}
			else { // NOT ANSWERED
				r.write("<br><br><font color=\"#FF0000\">You did not make a selection.</font></b>");
			}
			r.write("<BR><BR><FONT COLOR=\"#8A213A\">Explanation:</font><BR>", x[4]); // EXPLANATION
			r.write("<br><br><font color=\"#8A213A\">Domain:</font> ", x[6], "</p></BLOCKQUOTE>");
		}
	}

	
	
// PRINT LINKS
	r.write ("<hr><p align=\"center\"><font face=\"Verdana, Arial, Helvetica, sans-serif\"><b><a href=\"javascript:self.close();\">Close Window</a> </b></font></p>");
	
	// PRINT COPYRIGHT
	
	r.write ("<P><b><small>Copyright &copy; 2009 IT Governance Network. All rights reserved.</small></B><p><b>USE RESTRICTIONS</b></p><p><SMALL>The question database and the software (&quot\;KING III Assessment&quot\;) is copyrighted.</SMALL></p></BLOCKQUOTE></BODY></HTML>");
	r.close ();
	
	// ERASE ALL INFO
	answered.length = 0;
	wrong.length = 0;
	answers.length = 0;
	thisAnswered.length = 0;
	thisWrong.length = 0;
	totalNumberAnswered = 0;
	percents.length = 0;
	score = 0;
	finalScore = 0;
	areaScores.length = 0;
	numberAnswered.length = 0;
}



