var problems = new Array();
var answers = new Array(4);
var responses = new Array();
var problemindex = 0;
var answer;

shuffle = function(o){
	for(var j, x, i = o.length; i; j = parseInt(Math.random() * i), x = o[--i], o[i] = o[j], o[j] = x);
	return o;
};

function showquiz()
{
	var responsecounter;
	var correct = 0;

	// Clear solve and result divs. -PCP
	document.getElementById('solve1').innerHTML = '&nbsp;';
	document.getElementById('solve2').innerHTML = '&nbsp;';
	document.getElementById('solve3').innerHTML = '&nbsp;';
	document.getElementById('solve4').innerHTML = '&nbsp;';
	document.getElementById('solve5').innerHTML = '&nbsp;';
	document.getElementById('result').innerHTML = '&nbsp;';

	// Check to see if we're at the end of the quiz. -PCP
	if (problemindex == problems.length)
	{
		document.getElementById('problemheader').innerHTML = "Quiz Completed";
		document.getElementById('answers').innerHTML = '&nbsp;';

		// Count the number of correct answers. -PCP
		for (responsecounter = 0; responsecounter <= responses.length - 1; responsecounter++)
		{
			if (responses[responsecounter] == 1)
			{
				correct++;
			}
		}

		// Show the final score. -PCP
		document.getElementById('problem').innerHTML = "Percent Correct: " + ((correct / (responses.length)) * 100);
		document.getElementById('solve2').innerHTML = '<input type="button" class="reload_button" value=" Take Another Quiz " onclick="javascript:location.reload();">';
		return(0);
	}

	// Display the current problem. -PCP
	var problemsplit = problems[problemindex].split('|');
	document.getElementById('problem').innerHTML = problemsplit[0];
	document.getElementById('problemheader').innerHTML = "Problem " + (problemindex + 1) + " of " + problems.length;

	// Display answers in buttons. -PCP
	answerstring = problemsplit[problemsplit.length - 1] + '|' + problemsplit[problemsplit.length - 2] + '|' + problemsplit[problemsplit.length - 3] + '|' + problemsplit[problemsplit.length - 4];
	answers = shuffle(answerstring.split('|'));

	document.getElementById('answer1').style.backgroundColor = '#336699';
	document.getElementById('answer2').style.backgroundColor = '#336699';
	document.getElementById('answer3').style.backgroundColor = '#336699';
	document.getElementById('answer4').style.backgroundColor = '#336699';
	
	document.getElementById('answer1').value = answers[0];
	document.getElementById('answer2').value = answers[1];
	document.getElementById('answer3').value = answers[2];
	document.getElementById('answer4').value = answers[3];
}

function checkanswer(answer)
{
	var problemsplit = problems[problemindex].split('|');
	var correctanswer = problemsplit[problemsplit.length - 4];

	// Check to see if the question has already been answered. -PCP
	if (responses[problemindex] > -1)
	{
		return(0);
	}

	// Display message appropriate for the answer. -PCP
	if (document.getElementById('answer' + answer).value == correctanswer)
	{
		document.getElementById('result').innerHTML = "Correct! <a href=\"#\" class=\"result_link\" onclick=\"javascript:problemindex++; showquiz();\">Continue</a>";
		document.getElementById('answer' + answer).style.backgroundColor = '#008506';
		responses[problemindex] = 1;
	}
	else
	{
		document.getElementById('result').innerHTML = "Incorrect. See the solution above. <a href=\"#\" class=\"result_link\" onclick=\"javascript:problemindex++; showquiz();\">Continue</a>";
		document.getElementById('answer' + answer).style.backgroundColor = '#d90000';
		responses[problemindex] = 0;
	}

	// Show the solution steps. -PCP
	showanswer();
}

function showanswer()
{
	var problemsplit = problems[problemindex].split('|');
	var solvecounter;

	// Set solution step divs for the current problem. -PCP
	for (solvecounter = 1; solvecounter < (problemsplit.length - 4); solvecounter++)
	{
		document.getElementById('solve' + solvecounter).innerHTML = problemsplit[solvecounter];
	}
	// Clear the remaining solution step divs. -PCP
	for (solvecounter = (problemsplit.length - 4); solvecounter < 7; solvecounter++)
	{
		document.getElementById('solve' + solvecounter).innerHTML = '&nbsp;';
	}		
}

