// HRAT Quiz -> JavaScript Component v1.1 (04-10-05)

function preloadQuiz() {

	// Init
	
	imagePath = "images/";  
	
	if (document.images) {
	
		arrowImg = new Image(); 
		arrowImg.src = imagePath+"q_left-arrow.gif";
		
		arrowImg = new Image(); 
		arrowImg.src = imagePath+"q_right-arrow.gif";

		checkImg = new Image(); 
		checkImg.src = imagePath+"q_check.gif";	
	}
}

function checkAnswer(num, mode, args) {
	
	// Init
	
	var alphaKeys = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'];
	
	var modeParams = args.split('|');
	var formname = 'q'+num;
	
	// Logic A
	
	if (mode == 'a') {
		
		var radioset = modeParams['0'];
		var correctAnswer = modeParams['1'];
		var ico = radioset+'_'+correctAnswer+'_stat';
		
		for (i=0; i < document.forms[formname].elements[radioset].length; i++) {
			if (document.forms[formname].elements[radioset][i].checked) {
				var userSelection = document.forms[formname].elements[radioset][i].value;
			}
		}
		
		if (userSelection != correctAnswer) {
			var correctFlag = 'false';
			document.images[ico].src = imagePath+"q_right-arrow.gif";
		} else {
			var correctFlag = 'true';
			document.images[ico].src = imagePath+"q_check.gif";
		}	
	}
	
	// Logic B
	
	if (mode == 'b') {
	
		var radioset = modeParams['0'];
		var count = modeParams['1'];
		
		var correctValues = new Array();
		
		for (i=0; i < count; i++) {
			correctValues[radioset+'_'+alphaKeys[i]] = modeParams[i+2];
		}
		
		var correctFlag = 'true';
		var booleanValues = ['false','true'];
		
		for (i=0; i < count; i++) {
		
			var currentRadio = radioset+'_'+alphaKeys[i];
			var ico = currentRadio+'_stat';
			var currentSelection = 'undefined';
			var currentValue = booleanValues[correctValues[radioset+'_'+alphaKeys[i]]];

			for (n=0; n < document.forms[formname].elements[currentRadio].length; n++) {
				if (document.forms[formname].elements[currentRadio][n].checked) {
					currentSelection = document.forms[formname].elements[currentRadio][n].value;
				}
			}		
		
			if (currentSelection == currentValue) {
				document.images[ico].src = imagePath+'q_check.gif';
			} else {
				document.images[ico].src = imagePath+'q_left-arrow.gif';
				correctFlag = 'false';
			}
		}
	}
	
	// Logic C
	
	if (mode == 'c') {
	
		var checkset = modeParams['0'];
		var count = modeParams['1'];
		
		var correctValues = new Array();
		
		for (i=0; i < count; i++) {	
			correctValues[checkset+'_'+alphaKeys[i]] = modeParams[i+2];	
		}
		
		var correctFlag = 'true';
		
		for (i=0; i < count; i++) {
		
			var currentCheck = checkset+'_'+alphaKeys[i];
			var ico = currentCheck+'_stat';		
		
			if (document.forms[formname].elements[currentCheck].checked) {
			
				if (correctValues[checkset+'_'+alphaKeys[i]] == '1') {
					document.images[ico].src = imagePath+'q_check.gif';
				} else {
					correctFlag = 'false';
				}
				
			} else {
			
				if (correctValues[checkset+'_'+alphaKeys[i]] == '1') {
					correctFlag = 'false';
					document.images[ico].src = imagePath+'q_right-arrow.gif';
				}
			}
		}
	}
	
	
	// Logic C
	
	if (mode == 'd') {
		var correctFlag = 'true';
	}
	
	// Set Link
	
	document.getElementById('c'+num).removeAttribute("href");
	document.getElementById('c'+num).removeAttribute("onclick");
	
	document.getElementById('c'+num).style.fontWeight = 'bold';
	document.getElementById('c'+num).style.textDecoration = 'none';
	
	if (correctFlag == 'true') {
		
		if (mode != "d") {
		
			document.getElementById('c'+num).style.color = '#009460';
		
			if (mode == 'b' || mode == 'c') {
				document.getElementById('c'+num).innerHTML = "CONGRATULATIONS";
			} else {
				document.getElementById('c'+num).innerHTML = "Correct";
			}
		} else {
			document.getElementById('c'+num).style.color = '#999999';
			document.getElementById('c'+num).innerHTML = "PLEASE READ THE NOTE";
		}
	
	} else {
		
		document.getElementById('c'+num).style.color = '#FF0000';
		
		if (mode == 'a') {
			document.getElementById('c'+num).innerHTML = "Incorrect";
		} else {
			document.getElementById('c'+num).innerHTML = "NOT ENTIRELY CORRECT";		
		}
	}
	
	// Set Answer Key
	
	if (document.getElementById('a'+num)) {
		document.getElementById('a'+num).style.display = (name == ('a'+num)) ? 'display':'block';
	}
	return false;
}
