// 1);
if (this.gecko){
this.geckoVer = parseInt(this.ua.substring(this.ua.indexOf('Gecko')+6, this.ua.length));
if (this.geckoVer < 20020000){this.min = false;}
}
//Look for Firebird
this.firebird = (this.ua.indexOf('Firebird') > 1);
//Look for Safari
this.safari = (this.ua.indexOf('Safari') > 1);
if (this.safari){
this.gecko = false;
}
//Look for IE
this.ie = (this.ua.indexOf('MSIE') > 0);
if (this.ie){
this.ieVer = parseFloat(this.ua.substring(this.ua.indexOf('MSIE')+5, this.ua.length));
if (this.ieVer < 5.5){this.min = false;}
}
//Look for Opera
this.opera = (this.ua.indexOf('Opera') > 0);
if (this.opera){
this.operaVer = parseFloat(this.ua.substring(this.ua.indexOf('Opera')+6, this.ua.length));
if (this.operaVer < 7.04){this.min = false;}
}
if (this.min == false){
alert('Your browser may not be able to handle this page.');
}
//Special case for the horrible ie5mac
this.ie5mac = (this.ie&&this.mac&&(this.ieVer<6));
}
var C = new Client();
//for (prop in C){
// alert(prop + ': ' + C[prop]);
//}
//CODE FOR HANDLING NAV BUTTONS AND FUNCTION BUTTONS
//[strNavBarJS]
function NavBtnOver(Btn){
if (Btn.className != 'NavButtonDown'){Btn.className = 'NavButtonUp';}
}
function NavBtnOut(Btn){
Btn.className = 'NavButton';
}
function NavBtnDown(Btn){
Btn.className = 'NavButtonDown';
}
//[/strNavBarJS]
function FuncBtnOver(Btn){
if (Btn.className != 'FuncButtonDown'){Btn.className = 'FuncButtonUp';}
}
function FuncBtnOut(Btn){
Btn.className = 'FuncButton';
}
function FuncBtnDown(Btn){
Btn.className = 'FuncButtonDown';
}
function FocusAButton(){
if (document.getElementById('CheckButton1') != null){
document.getElementById('CheckButton1').focus();
}
else{
if (document.getElementById('CheckButton2') != null){
document.getElementById('CheckButton2').focus();
}
else{
document.getElementsByTagName('button')[0].focus();
}
}
}
//CODE FOR HANDLING DISPLAY OF POPUP FEEDBACK BOX
var topZ = 1000;
function ShowMessage(Feedback){
var Output = Feedback + '
';
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');
//Focus the OK button
setTimeout("document.getElementById('FeedbackOKButton').focus()", 50);
//
}
function ShowElements(Show, TagName){
//Special for IE bug -- hide all the form elements that will show through the popup
if (C.ie){
var Els = document.getElementsByTagName(TagName);
for (var i=0; i 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 InArray[Longest].length){
Longest = i;
}
}
return Longest;
}
//UNICODE CHARACTER FUNCTIONS
function IsCombiningDiacritic(CharNum){
var Result = (((CharNum >= 0x0300)&&(CharNum <= 0x370))||((CharNum >= 0x20d0)&&(CharNum <= 0x20ff)));
Result = Result || (((CharNum >= 0x3099)&&(CharNum <= 0x309a))||((CharNum >= 0xfe20)&&(CharNum <= 0xfe23)));
return Result;
}
function IsCJK(CharNum){
return ((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 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' + 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';
}
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<0)||(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<0)||(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<0)||(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 -1){return ''}
RightBits = new Array();
for (var i=0; i 0){
SetGapValue(CurrGap, HintString);
State[CurrGap].HintsAndChecks += 1;
}
ShowMessage(GiveHint);
}
function TypeChars(Chars){
var CurrGap = FindCurrent();
if (CurrGap < 0){return;}
if (document.getElementById('Gap' + CurrGap) != null){
SetGapValue(CurrGap, document.getElementById('Gap' + CurrGap).value + Chars);
}
}
//-->
//]]>