'; OutString += '
'; OutString += NavBar; if (Feedback.length>0){ OutString += '' } OutString += '
'; OutString += ''; OutString += Feedback; OutString += '
'; if (is.CRAPBrowser){OutString=ResolveAllURLs(OutString);} //Write it to the frame TopFrame.document.clear(); TopFrame.document.open(); TopFrame.document.write(OutString); TopFrame.document.close(); } function StartUp(){ //Write the top frame WriteFeedback(Instructions); if ((is.mac)&&(is.ns)) { FocusBoxes = false; } //Reduce array if required if (QsToShow < I.length){ ReduceItems(); } //Shuffle stuff if required if (ShuffleQs == true){ I = Shuffle(I); } //Create arrays CreateStatusArrays(); //Show the first question or all of them if (ShowOneByOne == false){ ShowAllQs(); } else{ ShowQuestion(CurrQNum); } //Focus the first box var Box = eval('BottomFrame.document.QForm0.Guess'); if (Box != null){ Box.focus(); } } I = new Array(); I[0] = new Array(); I[0][0]='che voi abbiate'; I[0][1] = new Array(); I[0][1][0] = new Array(); I[0][1][0][0]='que vous ayez'; I[1] = new Array(); I[1][0]='io ho corso'; I[1][1] = new Array(); I[1][1][0] = new Array(); I[1][1][0][0]='j\'ai couru'; I[2] = new Array(); I[2][0]='tu sei stata'; I[2][1] = new Array(); I[2][1][0] = new Array(); I[2][1][0][0]='tu as \u00E9t\u00E9'; I[3] = new Array(); I[3][0]='egli dovette'; I[3][1] = new Array(); I[3][1][0] = new Array(); I[3][1][0][0]='il dut'; I[4] = new Array(); I[4][0]='voi viveste'; I[4][1] = new Array(); I[4][1][0] = new Array(); I[4][1][0][0]='vous v\u00E9c\u00FBtes'; I[5] = new Array(); I[5][0]='voi finite'; I[5][1] = new Array(); I[5][1][0] = new Array(); I[5][1][0][0]='vous finissez'; I[6] = new Array(); I[6][0]='voi finiste'; I[6][1] = new Array(); I[6][1][0] = new Array(); I[6][1][0][0]='vous fin\u00EEtes'; I[7] = new Array(); I[7][0]='io avrei'; I[7][1] = new Array(); I[7][1][0] = new Array(); I[7][1][0][0]='j\'aurais'; I[8] = new Array(); I[8][0]='tu seguirai'; I[8][1] = new Array(); I[8][1][0] = new Array(); I[8][1][0][0]='tu suivras'; I[9] = new Array(); I[9][0]='voi seguiste'; I[9][1] = new Array(); I[9][1][0] = new Array(); I[9][1][0][0]='vous suiv\u00EEtes'; I[10] = new Array(); I[10][0]='io far\u00F2'; I[10][1] = new Array(); I[10][1][0] = new Array(); I[10][1][0][0]='je ferai'; I[11] = new Array(); I[11][0]='essi andarono'; I[11][1] = new Array(); I[11][1][0] = new Array(); I[11][1][0][0]='ils all\u00E8rent'; I[12] = new Array(); I[12][0]='essi credono'; I[12][1] = new Array(); I[12][1][0] = new Array(); I[12][1][0][0]='ils croient'; I[13] = new Array(); I[13][0]='tu sapresti'; I[13][1] = new Array(); I[13][1][0] = new Array(); I[13][1][0][0]='tu saurais'; I[14] = new Array(); I[14][0]='che io faccia'; I[14][1] = new Array(); I[14][1][0] = new Array(); I[14][1][0][0]='que je fasse'; I[15] = new Array(); I[15][0]='voi avete riso'; I[15][1] = new Array(); I[15][1][0] = new Array(); I[15][1][0][0]='vous avez ri'; I[16] = new Array(); I[16][0]='che tu sia'; I[16][1] = new Array(); I[16][1][0] = new Array(); I[16][1][0][0]='que tu sois'; I[17] = new Array(); I[17][0]='che tu riceva'; I[17][1] = new Array(); I[17][1][0] = new Array(); I[17][1][0][0]='que tu re\u00E7oives'; I[18] = new Array(); I[18][0]='voi metteste'; I[18][1] = new Array(); I[18][1][0] = new Array(); I[18][1][0][0]='vous m\u00EEtes'; I[19] = new Array(); I[19][0]='egli vorrebbe'; I[19][1] = new Array(); I[19][1][0] = new Array(); I[19][1][0][0]='il voudrait'; I[20] = new Array(); I[20][0]='tu correvi'; I[20][1] = new Array(); I[20][1][0] = new Array(); I[20][1][0][0]='tu courais'; I[21] = new Array(); I[21][0]='voi avete vissuto'; I[21][1] = new Array(); I[21][1][0] = new Array(); I[21][1][0][0]='vous avez v\u00E9cu'; I[22] = new Array(); I[22][0]='esse sono venute'; I[22][1] = new Array(); I[22][1][0] = new Array(); I[22][1][0][0]='elles sont venues'; I[23] = new Array(); I[23][0]='che egli venga'; I[23][1] = new Array(); I[23][1][0] = new Array(); I[23][1][0][0]='qu\'il vienne'; I[24] = new Array(); I[24][0]='tu dovrai'; I[24][1] = new Array(); I[24][1][0] = new Array(); I[24][1][0][0]='tu devras'; I[25] = new Array(); I[25][0]='tu dovresti'; I[25][1] = new Array(); I[25][1][0] = new Array(); I[25][1][0][0]='tu devrais'; I[26] = new Array(); I[26][0]='voi foste'; I[26][1] = new Array(); I[26][1][0] = new Array(); I[26][1][0][0]='vous f\u00FBtes'; I[27] = new Array(); I[27][0]='tu correrai'; I[27][1] = new Array(); I[27][1][0] = new Array(); I[27][1][0][0]='tu courras'; I[28] = new Array(); I[28][0]='io ho atteso'; I[28][1] = new Array(); I[28][1][0] = new Array(); I[28][1][0][0]='j\'ai attendu'; I[29] = new Array(); I[29][0]='che voi diciate'; I[29][1] = new Array(); I[29][1][0] = new Array(); I[29][1][0][0]='que vous disiez'; I[30] = new Array(); I[30][0]='io ho scritto'; I[30][1] = new Array(); I[30][1][0] = new Array(); I[30][1][0][0]='j\'ai \u00E9crit'; I[31] = new Array(); I[31][0]='noi attendevamo'; I[31][1] = new Array(); I[31][1][0] = new Array(); I[31][1][0][0]='nous attendions'; I[32] = new Array(); I[32][0]='che egli corra'; I[32][1] = new Array(); I[32][1][0] = new Array(); I[32][1][0][0]='qu\'il coure'; I[33] = new Array(); I[33][0]='tu saresti'; I[33][1] = new Array(); I[33][1][0] = new Array(); I[33][1][0][0]='tu serais'; I[34] = new Array(); I[34][0]='tu andresti'; I[34][1] = new Array(); I[34][1][0] = new Array(); I[34][1][0][0]='tu irais'; I[35] = new Array(); I[35][0]='egli ha creduto'; I[35][1] = new Array(); I[35][1][0] = new Array(); I[35][1][0][0]='il a cru'; I[36] = new Array(); I[36][0]='tu scrivi'; I[36][1] = new Array(); I[36][1][0] = new Array(); I[36][1][0][0]='tu \u00E9cris'; I[37] = new Array(); I[37][0]='tu attenderai'; I[37][1] = new Array(); I[37][1][0] = new Array(); I[37][1][0][0]='tu attendras'; I[38] = new Array(); I[38][0]='tu attenderesti'; I[38][1] = new Array(); I[38][1][0] = new Array(); I[38][1][0][0]='tu attendrais'; I[39] = new Array(); I[39][0]='che io sia'; I[39][1] = new Array(); I[39][1][0] = new Array(); I[39][1][0][0]='que je sois'; Status = new Array(); function CreateStatusArrays(){ Status.length = 0; for (i=0; i-1){ FirstBit = InString.substring(0, i); LastBit = InString.substring(i + Token.length, InString.length); InString = FirstBit + Replacement + LastBit; i = InString.indexOf(Token); } return InString; } function ChangeQ(ChangeBy){ // if (Status[CurrQNum][0] < 1) {return;} var NewNum = CurrQNum + ChangeBy; if ((NewNum >= 0)&&(NewNum Longest){ Longest = I[QNum][1][i][0].length; } } var AnsBox = ''; if (Longest > 20){ AnsBox = LongAnswer; } else{ AnsBox = ReplaceStuff('[AnswerSize]', (Longest + ''), ShortAnswer); } var AnsRow = ReplaceStuff('[AnswerBox]', AnsBox, ARow); Temp += AnsRow; Temp += BtnRow; Temp = ReplaceStuff('[QNumber]', QNum+1, Temp); Temp = ReplaceStuff('[QNum]', QNum, Temp); return Temp; } function DisplayExercise(StuffToDisplay){ //Build the output string var OutString = ''; OutString += ''; OutString += ' '; OutString += '
'; OutString += TitleCode; OutString += ''; OutString += NavBar; OutString += '
'; OutString += ''; OutString += StuffToDisplay; OutString += '
'; 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 + ' '; } Readout = QButtonsOpener + Readout + QButtonsCloser; var Output = BuildQuestion(QNum); 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 + ' '; //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; if (Status[QNum][0] != 1){ //Question is not already done 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] + '
'; //Check whether the quiz is finished var Finished = true; for (var i=0; i ©Half-Baked Software. Loading... '; } //--> //]]> -->