';
if (is.CRAPBrowser){OutString=ResolveAllURLs(OutString);}
//Write it to the frame
BottomFrame.document.clear();
BottomFrame.document.open();
BottomFrame.document.write(OutString);
BottomFrame.document.close();
}
function ShowAllQs(){
var Output = '';
for (var i=0; i
';
}
Output = Output + BuildQuestion(I.length-1);
Output = TableOpener + Output + TableCloser;
DisplayExercise(Output);
}
function ShowQuestion(QNum){
//First, create the Q number readout at the top
var Readout = (QNum+1) + '/' + I.length;
while (Readout.length < 7){
Readout = ' ' + Readout + ' ';
}
var Output = BuildQuestion(QNum);
Readout = QButtonsOpener + Readout + QButtonsCloser;
Output = TableOpener + Output + TableCloser;
DisplayExercise(Readout + Output);
//Replace the student's answer
var Box = eval('BottomFrame.document.QForm' + QNum + '.Guess');
if (Box != null){
if (Status[QNum][3].length > 0){
Box.value = Status[QNum][3];
}
Box.focus();
}
}
function TrimString(InString){
var x = 0
if (InString.length != 0) {
while ((InString.charAt(InString.length - 1) == '\u0020') || (InString.charAt(InString.length - 1) == '\u000A') || (InString.charAt(InString.length - 1) == '\u000D')){
InString = InString.substring(0, InString.length - 1)
}
while ((InString.charAt(0) == '\u0020') || (InString.charAt(0) == '\u000A') || (InString.charAt(0) == '\u000D')){
InString = InString.substring(1, InString.length)
}
while (InString.indexOf(' ') != -1) {
x = InString.indexOf(' ')
InString = InString.substring(0, x) + InString.substring(x+1, InString.length)
}
return InString;
}
else {
return '';
}
}
function RemovePunctuation(InString){
var OutString = '';
for (i=0; i InArray[Longest].length){
Longest = i;
}
}
return Longest;
}
function CheckWords(Guess, Answer){
var Start = 0;
var End = 0;
var LoopCounter = 0;
var ReturnList = '';
var i = 0;
var j = 0;
GuessWords = new Array();
AnswerWords = new Array();
Guess = RemovePunctuation(Guess);
Answer = RemovePunctuation(Answer);
while (Guess.indexOf(' ', Start) > -1) {
End = Guess.indexOf(' ', Start);
GuessWords[LoopCounter] = Guess.substring(Start, End).toLowerCase();
LoopCounter++;
Start = End + 1;
}
GuessWords[LoopCounter] = Guess.substring(Start, Guess.length).toLowerCase();
Start = 0;
LoopCounter = 0;
while (Answer.indexOf(' ', Start) > -1) {
End = Answer.indexOf(' ', Start);
AnswerWords[LoopCounter] = Answer.substring(Start, End);
LoopCounter++;
Start = End + 1;
}
AnswerWords[LoopCounter] = Answer.substring(Start, Answer.length);
ReturnList = '';
for (i = 0; i < GuessWords.length; i++){
for (j = 0; j < AnswerWords.length; j++){
if (GuessWords[i] == AnswerWords[j].toLowerCase()){
ReturnList = ReturnList + AnswerWords[j] + ', ' ;
AnswerWords[j] = '';
break;
}
}
}
if (ReturnList.length > 0){
ReturnList = ReturnList.substring(0, ReturnList.length - 2);
}
return ReturnList;
}
function CalculateScore(){
Score = 0;
var DoneQs = 0;
for (i=0; i';};
}
if (Right > -1){
Status[QNum][0] = 1;
Output = CorrectResponse + ' ';
if (OtherAnswers.length > 0){
Output += '';
}
//Get the score for this question
var HintPenalty = (Status[QNum][2]*10)/CorrectAs[Right].length;
Status[QNum][4] = Math.floor((10 - Status[QNum][1]) - HintPenalty);
//Check whether the quiz is finished
var Finished = true;
for (var i=0; i 0){
CorrectBits[0][i] = RealAs[i].substring(0,CorrectBits[0][i].length);
}
CorrectBits[1][i] = CheckEnd(Guess, CorrectAs[i]);
if (CorrectBits[1][i].length > 0){
CorrectBits[1][i] = RealAs[i].substring(RealAs[i].length-CorrectBits[1][i].length,RealAs[i].length);
}
CorrectBits[2][i] = CorrectBits[0][i] + ' ... ' + CorrectBits[1][i];
CorrectBits[3][i] = CorrectBits[0][i] + RealAs[i].charAt(CorrectBits[0][i].length);
if (CorrectBits[3][i].charAt(CorrectBits[3][i].length-1) == ' '){
CorrectBits[3][i] += RealAs[i].charAt(CorrectBits[3][i].length);
}
CorrectBits[3][i] += '...'
}
var LongestCorrect = FindLongest(CorrectBits[2]);
if (CorrectBits[2][LongestCorrect].length > 5){
Output = ThisMuchIsCorrect + ' ' + CorrectBits[2][LongestCorrect];
}
else{
if (ShowHint == false){
Output = IncorrectResponse;
}
}
//Include words found in the answer
var FoundWords = CheckWords(Guess, CorrectAs[LongestCorrect]);
if (FoundWords.length > 0){
Output += ' ' + TheseWordsAppear + FoundWords;
}
if (ShowHint == true){
Output += GiveHint + CorrectBits[3][LongestCorrect];
}
WriteFeedback(Output);
//Put the focus back in the box
if (FocusBoxes==true){
eval('BottomFrame.document.QForm' + (QNum) + '.Guess').focus();
}
}
}
function ShowAnswers(QNum){
//If the question isn't done, mark it as done. Score will be 0;
Status[QNum][0] = 1;
Status[QNum][1] = -1;
Status[QNum][2] = -1;
//Get the correct answers and put them into a string
var Output = TheseCorrect + ' ';
Output += I[QNum][1][0][0] + ' ';
for (var i=1; i';
}
//Check whether the quiz is finished
var Finished = true;
for (var i=0; i