function showPlanOnly(bShow)
{
	document.getElementById("id_objectives").style.display = bShow ? 'none' : 'inline';
	document.getElementById("showplanonlylink").style.display = bShow ? 'none' : 'inline';
	document.getElementById("showalllink").style.display = !bShow ? 'none' : 'inline';
	document.getElementById("extra").style.display = bShow ? 'none' : 'inline';
	return false;
}

function checkFreeResponseAnswer(studentAnswerControl,correctAnswerControl,nPossiblePoints,bRecord,bGrade,nFeedback)
{
	var sStudentAnswer = studentAnswerControl.value;
	var asCorrectAnswers = correctAnswerControl.value.split("|");
	var sQuestionID = studentAnswerControl.name.substring(2);

	// evaluate the response
	var bCorrect = false;
	for (nAnswer = 0; nAnswer < asCorrectAnswers.length; nAnswer++)
	{
		if (sStudentAnswer == asCorrectAnswers[nAnswer])
		{
			bCorrect = true;
			break;
		}
	}
	var nPoints = bCorrect ? nPossiblePoints : 0;

	// record response if specified
	if (bRecord) parent.parent.menu.recordFreeResponse(sQuestionID,sStudentAnswer,bGrade,nPoints);

	// deliver feedback
	switch (nFeedback)
	{
		// no feedback
		case 0:
		{
			alert("Thank you. Your answer has been recorded.");
			break;
		}
		// correct / incorrect
		case 1:
		{
			alert(bCorrect ? "Correct! Good work." : "Incorrect.");
			break;
		}
		// correct answer
		case 2:
		{
			if (bCorrect) alert("Correct! Good work.");
			else alert("Incorrect. The correct answer is " + sCorrectAnswer + ".");
			break;
		}
		// try again
		case 3:
		{
			if (bCorrect) alert("Correct! Good work.");
			else alert("Incorrect. Please try again.");
			break;
		}
	}
}

function submitAnswers(form)
{
	return parent.parent.menu.submitAnswers(form);
}

function navNext()
{
	return parent.parent.menu.navNext();
}

function checkAnswerX(studentAnswerControl,sCorrectAnswers,sCorrectAnswerFeedback,sIncorrectAnswerFeedback)
{
	var sStudentAnswer = studentAnswerControl.value;
	var asCorrectAnswers = unescape(sCorrectAnswers).split("|");

	// evaluate the response
	var bCorrect = false;

	for (var nAnswer = 0; nAnswer < asCorrectAnswers.length; nAnswer++)
	{
		if (sStudentAnswer == asCorrectAnswers[nAnswer])
		{
			bCorrect = true;
			break;
		}
	}
	// give the feedback
	if (bCorrect)
	{
	  alert(unescape(sCorrectAnswerFeedback));
	}
	else
	{
	  alert(unescape(sIncorrectAnswerFeedback));
	}
}

function showHint(s1)
{
  return alert(unescape(s1));
} 
function setupKeyHandlers()
{
	// fix up any text fields
	nInputField = 0 ;
	while ( e = document.getElementsByTagName("input").item(nInputField++) )
	{
   		if (e.type == "text" && e.onkeypress == null)
		{
			e.onkeypress = function(event) { return keyHandler(this,event); }
		}
	}
}
function handleEnter(field)
{
	nInputField = 0 ;
    nTextFields = 0;
	while ( e = document.getElementsByTagName("input").item(nInputField++) )
	{
		if (e.type == "button" && e.onclick)
		{
			sOnClickScript = String(e.onclick);
			nStart = sOnClickScript.indexOf('checkAnswerX(');
			if (nStart != -1)
			{
				nStart += 30;
				nEnd = sOnClickScript.indexOf(",");
				sCheckFieldName = sOnClickScript.substring(nStart,nEnd);
				if (field.name == sCheckFieldName)
				{
					e.onclick();
					return;
				}
			}
		}
        else if (e.type == "text")
        {
        	nTextFields++;
        }
   	}
    if (nTextFields == 1) submitAnswers(document.answers);
}
function keyHandler(field, keyEvent)
{
	var keycode;

	if (window.event) keycode = window.event.keyCode;
	else if (keyEvent) keycode = keyEvent.which;
	else return true;

	if (keycode == 13)
	{
		handleEnter(field);
		return false;
	}
	else return true;
}
setTimeout("setupKeyHandlers()",1000);

