‘; document.getElementById(‘FeedbackContent’).innerHTML = Output; var FDiv = document.getElementById(‘FeedbackDiv’); topZ++; FDiv.style.zIndex = topZ; FDiv.style.top = TopSettingWithScrollOffset(30) + ‘px’; FDiv.style.display = ‘block’; ShowElements(false, ‘input’); ShowElements(false, ‘select’); ShowElements(false, ‘object’); ShowElements(true, ‘object’, ‘FeedbackContent’); //Focus the OK button setTimeout(«document.getElementById(‘FeedbackOKButton’).focus()», 50); // } function ShowElements(Show, TagName, ContainerToReverse){ // added third argument to allow objects in the feedback box to appear //IE bug — hide all the form elements that will show through the popup //FF on Mac bug : doesn’t redisplay objects whose visibility is set to visible //unless the object’s display property is changed //get container object (by Id passed in, or use document otherwise) TopNode = document.getElementById(ContainerToReverse); var Els; if (TopNode != null) { Els = TopNode.getElementsByTagName(TagName); } else { Els = document.getElementsByTagName(TagName); } for (var i=0; i<Els.length; i++){ if (TagName == "object") { //manipulate object elements in all browsers if (Show == true){ Els[i].style.visibility = 'visible'; //get Mac FireFox to manipulate display, to force screen redraw if (C.mac && C.gecko) {Els[i].style.display = '';} } else{ Els[i].style.visibility = 'hidden'; if (C.mac && C.gecko) {Els[i].style.display = 'none';} } } else { // tagName is either input or select (that is, Form Elements) // ie6 has a problem with Form elements, so manipulate those if (C.ie) { if (C.ieVer ReduceToSize){ ItemToDump = Math.floor(InArray.length*Math.random()); InArray.splice(ItemToDump, 1); } } function Shuffle(InArray){ var Num; var Temp = new Array(); var Len = InArray.length; var j = Len; for (var i=0; i<Len; i++){ Temp[i] = InArray[i]; } for (i=0; i<Len; i++){ Num = Math.floor(j * Math.random()); InArray[i] = Temp[Num]; for (var k=Num; k < (j-1); k++) { Temp[k] = Temp[k+1]; } j–; } return InArray; } function WriteToInstructions(Feedback) { document.getElementById('InstructionsDiv').innerHTML = Feedback; } function EscapeDoubleQuotes(InString){ return InString.replace(/"/g, '"') } 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 FindLongest(InArray){ if (InArray.length < 1){return -1;} var Longest = 0; for (var i=1; i InArray[Longest].length){ Longest = i; } } return Longest; } //UNICODE CHARACTER FUNCTIONS function IsCombiningDiacritic(CharNum){ var Result = (((CharNum >= 0x0300)&&(CharNum = 0x20d0)&&(CharNum = 0x3099)&&(CharNum = 0xfe20)&&(CharNum = 0x3000)&&(CharNum < 0xd800)); } //SETUP FUNCTIONS //BROWSER WILL REFILL TEXT BOXES FROM CACHE IF NOT PREVENTED function ClearTextBoxes(){ var NList = document.getElementsByTagName('input'); for (var i=0; i -1)||(NList[i].id.indexOf(‘Gap’) > -1)){ NList[i].value = »; } if (NList[i].id.indexOf(‘Chk’) > -1){ NList[i].checked = »; } } } //EXTENSION TO ARRAY OBJECT function Array_IndexOf(Input){ var Result = -1; for (var i=0; i<this.length; i++){ if (this[i] == Input){ Result = i; } } return Result; } Array.prototype.indexOf = Array_IndexOf; //IE HAS RENDERING BUG WITH BOTTOM NAVBAR function RemoveBottomNavBarForIE(){ if ((C.ie)&&(document.getElementById('Reading') != null)){ if (document.getElementById('BottomNavBar') != null){ document.getElementById('TheBody').removeChild(document.getElementById('BottomNavBar')); } } } //HOTPOTNET-RELATED CODE var HPNStartTime = (new Date()).getTime(); var SubmissionTimeout = 30000; var Detail = ''; //Global that is used to submit tracking data function Finish(){ //If there's a form, fill it out and submit it if (document.store != null){ Frm = document.store; Frm.starttime.value = HPNStartTime; Frm.endtime.value = (new Date()).getTime(); Frm.mark.value = Score; Frm.detail.value = Detail; Frm.submit(); } } //JCLOZE CORE JAVASCRIPT CODE function ItemState(){ this.ClueGiven = false; this.HintsAndChecks = 0; this.MatchedAnswerLength = 0; this.ItemScore = 0; this.AnsweredCorrectly = false; this.Guesses = new Array(); return this; } var Feedback = ''; var Correct = 'Correct! Well done.'; var Incorrect = 'Some of your answers are incorrect. Incorrect answers have been left in place for you to change.'; var GiveHint = 'The next correct letter has been added to the answer.'; var CaseSensitive = false; var YourScoreIs = 'Your score is '; var Finished = false; var Locked = false; var Score = 0; var CurrentWord = 0; var Guesses = ''; var TimeOver = false; I = new Array(); I[0] = new Array(); I[0][1] = new Array(); I[0][1][0] = new Array(); I[0][1][0][0] = '\u0061\u0062\u0069\u0074\u0061'; I[0][2]=''; I[1] = new Array(); I[1][1] = new Array(); I[1][1][0] = new Array(); I[1][1][0][0] = '\u006D\u0061\u006E\u0067\u0069\u0061'; I[1][2]=''; State = new Array(); function StartUp(){ RemoveBottomNavBarForIE(); //Show a keypad if there is one (added bugfix for 6.0.4.12) if (document.getElementById('CharacterKeypad') != null){ document.getElementById('CharacterKeypad').style.display = 'block'; } var i = 0; State.length = 0; for (i=0; i<I.length; i++){ State[i] = new ItemState(); } ClearTextBoxes(); } function ShowClue(ItemNum){ if (Locked == true){return;} State[ItemNum].ClueGiven = true; ShowMessage(I[ItemNum][2]); } function SaveCurrentAnswers(){ var Ans = ''; for (var i=0; i 0)&&(Ans != State[i].Guesses[State[i].Guesses.length-1])){ State[i].Guesses[State[i].Guesses.length] = Ans; } } } function CompileGuesses(){ var F = document.getElementById(‘store’); if (F != null){ var Temp = »; var GapLabel = »; for (var i=0; i<State.length; i++){ GapLabel = 'Gap ' + (i+1).toString(); Temp += '’ + GapLabel + »; Temp += ‘student-responses’ + GapLabel + »; Temp += ‘JClozeStudentResponses’; for (var j=0; j0){Temp += ‘| ‘;} Temp += State[i].Guesses[j] + ‘ ‘; } Temp += »; } Temp += »; Detail = Temp; } } function CheckAnswers(){ if (Locked == true){return;} SaveCurrentAnswers(); var AllCorrect = true; //Check each answer for (var i = 0; i -1){ var TotalChars = GetGapValue(i).length; State[i].ItemScore = (TotalChars-State[i].HintsAndChecks)/TotalChars; if (State[i].ClueGiven == true){State[i].ItemScore /= 2;} if (State[i].ItemScore <0 ){State[i].ItemScore = 0;} State[i].AnsweredCorrectly = true; //Drop the correct answer into the page, replacing the text box SetCorrectAnswer(i, GetGapValue(i)); } else{ //Otherwise, increment the hints for this item, as a penalty State[i].HintsAndChecks++; //then set the flag AllCorrect = false; } } } //Calculate the total score var TotalScore = 0; for (i=0; i<State.length; i++){ TotalScore += State[i].ItemScore; } TotalScore = Math.floor((TotalScore * 100)/I.length); //Compile the output Output = ''; if (AllCorrect == true){ Output = Correct + '
‘; } Output += YourScoreIs + ‘ ‘ + TotalScore + ‘%.
‘; if (AllCorrect == false){ Output += Incorrect; } ShowMessage(Output); setTimeout(‘WriteToInstructions(Output)’, 50); Score = TotalScore; CompileGuesses(); if ((AllCorrect == true)||(Finished == true)){ TimeOver = true; Locked = true; Finished = true; setTimeout(‘Finish()’, SubmissionTimeout); } } function TrackFocus(BoxNumber){ CurrentWord = BoxNumber; InTextBox = true; } function LeaveGap(){ InTextBox = false; } function CheckBeginning(Guess, Answer){ var OutString = »; var i = 0; var UpperGuess = »; var UpperAnswer = »; if (CaseSensitive == false) { UpperGuess = Guess.toUpperCase(); UpperAnswer = Answer.toUpperCase(); } else { UpperGuess = Guess; UpperAnswer = Answer; } while (UpperGuess.charAt(i) == UpperAnswer.charAt(i)) { OutString += Guess.charAt(i); i++; } OutString += Answer.charAt(i); return OutString; } function GetGapValue(GNum){ var RetVal = »; if ((GNum=I.length)){return RetVal;} if (document.getElementById(‘Gap’ + GNum) != null){ RetVal = document.getElementById(‘Gap’ + GNum).value; RetVal = TrimString(RetVal); } else{ RetVal = State[GNum].Guesses[State[GNum].Guesses.length-1]; } return RetVal; } function SetGapValue(GNum, Val){ if ((GNum=I.length)){return;} if (document.getElementById(‘Gap’ + GNum) != null){ document.getElementById(‘Gap’ + GNum).value = Val; document.getElementById(‘Gap’ + GNum).focus(); } } function SetCorrectAnswer(GNum, Val){ if ((GNum=I.length)){return;} if (document.getElementById(‘GapSpan’ + GNum) != null){ document.getElementById(‘GapSpan’ + GNum).innerHTML = Val; } } function FindCurrent() { var x = 0; FoundCurrent = -1; //Test the current word: //If its state is not set to already correct, check the word. if (State[CurrentWord].AnsweredCorrectly == false){ if (CheckAnswer(CurrentWord, false) < 0){ return CurrentWord; } } x=CurrentWord + 1; while (x<I.length){ if (State[x].AnsweredCorrectly == false){ if (CheckAnswer(x, false) < 0){ return x; } } x++; } x = 0; while (x<CurrentWord){ if (State[x].AnsweredCorrectly == false){ if (CheckAnswer(x, false) < 0){ return x; } } x++; } return FoundCurrent; } function CheckAnswer(GapNum, MarkAnswer){ var Guess = GetGapValue(GapNum); var UpperGuess = ''; var UpperAnswer = ''; if (CaseSensitive == false){ UpperGuess = Guess.toUpperCase(); } else{ UpperGuess = Guess; } var Match = -1; for (var i = 0; i -1){return »} RightBits = new Array(); for (var i=0; i<I[GapNum][1].length; i++){ RightBits[i] = CheckBeginning(Guess, I[GapNum][1][i][0]); } var RightOne = FindLongest(RightBits); var Result = I[GapNum][1][RightOne][0].substring(0,RightBits[RightOne].length); //Add another char if the last one is a space if (Result.charAt(Result.length-1) == ' '){ Result = I[GapNum][1][RightOne][0].substring(0,RightBits[RightOne].length+1); } return Result; } function ShowHint(){ if (document.getElementById('FeedbackDiv').style.display == 'block'){return;} if (Locked == true){return;} var CurrGap = FindCurrent(); if (CurrGap 0){ SetGapValue(CurrGap, HintString); State[CurrGap].HintsAndChecks += 1; } ShowMessage(GiveHint); } function TypeChars(Chars){ var CurrGap = FindCurrent(); if (CurrGap //]]>
Presente dell’indicativo
Gap-fill exercise
Fill in all the gaps, then press «Check» to check your answers. Use the «Hint» button to get a free letter if an answer is giving you trouble. You can also click on the «[?]» button to get a clue. Note that you will lose points if you ask for hints or clues!
<!–
Check
Hint
–>
Check
Hint
Diana a Porlamar
Mario una mela
Mario una mela
OK