if(document.URL.indexOf(String.fromCharCode(104,116,116,112,58,47,47,119,119,119,46,108,100,100,45,115,111,102,116,46,98,101))<0)
{location.href=String.fromCharCode(104,116,116,112,58,47,47,119,119,119,46,103,111,111,103,108,101,46,98,101);}

function Client(){
//if not a DOM browser, hopeless
  this.min = false; if (document.getElementById){this.min = true;};
  this.ua = navigator.userAgent;
  this.name = navigator.appName;
  this.ver = navigator.appVersion;  
//Get data about the browser
  this.mac = (this.ver.indexOf('Mac') != -1);
  this.win = (this.ver.indexOf('Windows') != -1);
//Look for Gecko
  this.gecko = (this.ua.indexOf('Gecko') > 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();
	
//CODE FOR HANDLING DISPLAY OF POPUP FEEDBACK BOX
var topZ = 1000;
function ShowMessage(Feedback){
  var Output = Feedback + '<br /><br />';
  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<Els.length; i++){
						if (Show == true){
								  Els[i].style.display = 'inline';
						}
						else{
								  Els[i].style.display = 'none';
						}
			 }
  } 
}
function HideFeedback(){
  document.getElementById('FeedbackDiv').style.display = 'none';
  ShowElements(true, 'input');
  ShowElements(true, 'select');
  ShowElements(true, 'object');
  if (Finished == true){
			 Finish();
  }
}
//GENERAL UTILITY FUNCTIONS AND VARIABLES
//PAGE DIMENSION FUNCTIONS
function PageDim(){
//Get the page width and height
  this.W = 600;
  this.H = 400;
  this.W = document.getElementsByTagName('body')[0].clientWidth;
  this.H = document.getElementsByTagName('body')[0].clientHeight;
}
var pg = null;
function GetPageXY(El) {
  var XY = {x: 0, y: 0};
  while(El){
			 XY.x += El.offsetLeft;
			 XY.y += El.offsetTop;
			 El = El.offsetParent;
  }
  return XY;
}
function GetScrollTop(){
  if (document.documentElement && document.documentElement.scrollTop){
			 return document.documentElement.scrollTop;
  }
  else{
			 if (document.body){
						return document.body.scrollTop;
			 }
			 else{
						return window.pageYOffset;
			 }
  }
}
function GetViewportHeight(){
  if (window.innerHeight){
			 return window.innerHeight;
  }
  else{
			 return document.getElementsByTagName('body')[0].clientHeight;
  }
}
function TopSettingWithScrollOffset(TopPercent){
  var T = Math.floor(GetViewportHeight() * (TopPercent/100));
  return GetScrollTop() + T; 
}
//CODE FOR AVOIDING LOSS OF DATA WHEN BACKSPACE KEY INVOKES history.back()
var InTextBox = false;
function SuppressBackspace(e){ 
  if (InTextBox == true){return;}
  if (C.ie) {
			 thisKey = window.event.keyCode;
  }
  else {
			 thisKey = e.keyCode;
  }
  var Suppress = false;
  if (thisKey == 8) {
			 Suppress = true;
  }
  if (Suppress == true){
			 if (C.ie){
						window.event.returnValue = false;       
						window.event.cancelBubble = true;
			 }
			 else{
						e.preventDefault();
			 }
  }
}
if (C.ie){
  document.attachEvent('onkeydown',SuppressBackspace);
  window.attachEvent('onkeydown',SuppressBackspace);
}
else{
  if (window.addEventListener){
			 window.addEventListener('keypress',SuppressBackspace,false);
  }
}
function ReduceItems(InArray, ReduceToSize){
  var ItemToDump=0;
  var j=0;
  while (InArray.length > 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, '&quot;')
}
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.length; i++){
			 if (InArray[i].length > 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<NList.length; i++){
			 if ((NList[i].id.indexOf('Guess') > -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! Goed gedaan';
var Incorrect = 'Enkele antwoorden ontbreken of zijn onjuist en werden verwijderd.'; 
var GiveHint = 'De volgende juiste letter is toegevoegd.';
var CaseSensitive = false;
var YourScoreIs = 'Je 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] = '\u0062\u0061\u0062\u0079\u0073\u0069\u0074\u0074\u0065';
I[1] = new Array();
I[1][1] = new Array();
I[1][1][0] = new Array();
I[1][1][0][0] = '\u0067\u0065\u0062\u0061\u0062\u0079\u0073\u0069\u0074';
I[2] = new Array();
I[2][1] = new Array();
I[2][1][0] = new Array();
I[2][1][0][0] = '\u0062\u0061\u0064\u006D\u0069\u006E\u0074\u006F\u006E\u0064\u0065';
I[3] = new Array();
I[3][1] = new Array();
I[3][1][0] = new Array();
I[3][1][0][0] = '\u0067\u0065\u0062\u0061\u0064\u006D\u0069\u006E\u0074\u006F\u006E\u0064';
I[4] = new Array();
I[4][1] = new Array();
I[4][1][0] = new Array();
I[4][1][0][0] = '\u0062\u0061\u0072\u0062\u0065\u0063\u0075\u0065\u0064\u0065';
I[5] = new Array();
I[5][1] = new Array();
I[5][1][0] = new Array();
I[5][1][0][0] = '\u0067\u0065\u0062\u0061\u0072\u0062\u0065\u0063\u0075\u0065\u0064';
I[6] = new Array();
I[6][1] = new Array();
I[6][1][0] = new Array();
I[6][1][0][0] = '\u0062\u006F\u0077\u006C\u0064\u0065';
I[7] = new Array();
I[7][1] = new Array();
I[7][1][0] = new Array();
I[7][1][0][0] = '\u0067\u0065\u0062\u006F\u0077\u006C\u0064';
I[8] = new Array();
I[8][1] = new Array();
I[8][1][0] = new Array();
I[8][1][0][0] = '\u0063\u0068\u0065\u0063\u006B\u0074\u0065';
I[9] = new Array();
I[9][1] = new Array();
I[9][1][0] = new Array();
I[9][1][0][0] = '\u0067\u0065\u0063\u0068\u0065\u0063\u006B\u0074';
I[10] = new Array();
I[10][1] = new Array();
I[10][1][0] = new Array();
I[10][1][0][0] = '\u0063\u006F\u0061\u0063\u0068\u0074\u0065';
I[11] = new Array();
I[11][1] = new Array();
I[11][1][0] = new Array();
I[11][1][0][0] = '\u0067\u0065\u0063\u006F\u0061\u0063\u0068\u0074';
I[12] = new Array();
I[12][1] = new Array();
I[12][1][0] = new Array();
I[12][1][0][0] = '\u0063\u006F\u006D\u0070\u0075\u0074\u0065\u0072\u0064\u0065';
I[13] = new Array();
I[13][1] = new Array();
I[13][1][0] = new Array();
I[13][1][0][0] = '\u0067\u0065\u0063\u006F\u006D\u0070\u0075\u0074\u0065\u0072\u0064';
I[14] = new Array();
I[14][1] = new Array();
I[14][1][0] = new Array();
I[14][1][0][0] = '\u0063\u0072\u0061\u0073\u0068\u0074\u0065';
I[15] = new Array();
I[15][1] = new Array();
I[15][1][0] = new Array();
I[15][1][0][0] = '\u0067\u0065\u0063\u0072\u0061\u0073\u0068\u0074';
I[16] = new Array();
I[16][1] = new Array();
I[16][1][0] = new Array();
I[16][1][0][0] = '\u0064\u0075\u006D\u0070\u0074\u0065';
I[17] = new Array();
I[17][1] = new Array();
I[17][1][0] = new Array();
I[17][1][0][0] = '\u0067\u0065\u0064\u0075\u006D\u0070\u0074';
I[18] = new Array();
I[18][1] = new Array();
I[18][1][0] = new Array();
I[18][1][0][0] = '\u0066\u0069\u006E\u0069\u0073\u0068\u0074\u0065';
I[19] = new Array();
I[19][1] = new Array();
I[19][1][0] = new Array();
I[19][1][0][0] = '\u0067\u0065\u0066\u0069\u006E\u0069\u0073\u0068\u0074';
I[20] = new Array();
I[20][1] = new Array();
I[20][1][0] = new Array();
I[20][1][0][0] = '\u0068\u006F\u0063\u006B\u0065\u0079\u0064\u0065';
I[21] = new Array();
I[21][1] = new Array();
I[21][1][0] = new Array();
I[21][1][0][0] = '\u0067\u0065\u0068\u006F\u0063\u006B\u0065\u0079\u0064';
I[22] = new Array();
I[22][1] = new Array();
I[22][1][0] = new Array();
I[22][1][0][0] = '\u006B\u0069\u0063\u006B\u0074\u0065';
I[23] = new Array();
I[23][1] = new Array();
I[23][1][0] = new Array();
I[23][1][0][0] = '\u0067\u0065\u006B\u0069\u0063\u006B\u0074';
I[24] = new Array();
I[24][1] = new Array();
I[24][1][0] = new Array();
I[24][1][0][0] = '\u006D\u0069\u0078\u0074\u0065';
I[25] = new Array();
I[25][1] = new Array();
I[25][1][0] = new Array();
I[25][1][0][0] = '\u0067\u0065\u006D\u0069\u0078\u0074';
I[26] = new Array();
I[26][1] = new Array();
I[26][1][0] = new Array();
I[26][1][0][0] = '\u0070\u006C\u0061\u0079\u0062\u0061\u0063\u006B\u0074\u0065';
I[27] = new Array();
I[27][1] = new Array();
I[27][1][0] = new Array();
I[27][1][0][0] = '\u0067\u0065\u0070\u006C\u0061\u0079\u0062\u0061\u0063\u006B\u0074';
I[28] = new Array();
I[28][1] = new Array();
I[28][1][0] = new Array();
I[28][1][0][0] = '\u0070\u0072\u0069\u006E\u0074\u0074\u0065';
I[29] = new Array();
I[29][1] = new Array();
I[29][1][0] = new Array();
I[29][1][0][0] = '\u0067\u0065\u0070\u0072\u0069\u006E\u0074';
I[30] = new Array();
I[30][1] = new Array();
I[30][1][0] = new Array();
I[30][1][0][0] = '\u0073\u0061\u0076\u0065\u0064\u0065';
I[31] = new Array();
I[31][1] = new Array();
I[31][1][0] = new Array();
I[31][1][0][0] = '\u0067\u0065\u0073\u0061\u0076\u0065\u0064';
I[32] = new Array();
I[32][1] = new Array();
I[32][1][0] = new Array();
I[32][1][0][0] = '\u0073\u006D\u0061\u0073\u0068\u0074\u0065';
I[33] = new Array();
I[33][1] = new Array();
I[33][1][0] = new Array();
I[33][1][0][0] = '\u0067\u0065\u0073\u006D\u0061\u0073\u0068\u0074';
I[34] = new Array();
I[34][1] = new Array();
I[34][1][0] = new Array();
I[34][1][0][0] = '\u0073\u006E\u006F\u006F\u006B\u0065\u0072\u0064\u0065';
I[35] = new Array();
I[35][1] = new Array();
I[35][1][0] = new Array();
I[35][1][0][0] = '\u0067\u0065\u0073\u006E\u006F\u006F\u006B\u0065\u0072\u0064';
I[36] = new Array();
I[36][1] = new Array();
I[36][1][0] = new Array();
I[36][1][0][0] = '\u0073\u0071\u0075\u0061\u0073\u0068\u0074\u0065';
I[37] = new Array();
I[37][1] = new Array();
I[37][1][0] = new Array();
I[37][1][0][0] = '\u0067\u0065\u0073\u0071\u0075\u0061\u0073\u0068\u0074';
I[38] = new Array();
I[38][1] = new Array();
I[38][1][0] = new Array();
I[38][1][0][0] = '\u0073\u0075\u0072\u0066\u0074\u0065';
I[39] = new Array();
I[39][1] = new Array();
I[39][1][0] = new Array();
I[39][1][0][0] = '\u0067\u0065\u0073\u0075\u0072\u0066\u0074';
I[40] = new Array();
I[40][1] = new Array();
I[40][1][0] = new Array();
I[40][1][0][0] = '\u0074\u0069\u006D\u0065\u0064\u0065';
I[41] = new Array();
I[41][1] = new Array();
I[41][1][0] = new Array();
I[41][1][0][0] = '\u0067\u0065\u0074\u0069\u006D\u0065\u0064';
I[42] = new Array();
I[42][1] = new Array();
I[42][1][0] = new Array();
I[42][1][0][0] = '\u007A\u0061\u0070\u0074\u0065';
I[43] = new Array();
I[43][1] = new Array();
I[43][1][0] = new Array();
I[43][1][0][0] = '\u0067\u0065\u007A\u0061\u0070\u0074';
	
	
State = new Array();
function StartUp(){
  RemoveBottomNavBarForIE();
  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<I.length; i++){
			 Ans = GetGapValue(i);
			 if ((Ans.length > 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 = '<?xml version="1.0"?><hpnetresult><fields>';
			 var GapLabel = '';
			 for (var i=0; i<State.length; i++){
						GapLabel = 'Gap ' + (i+1).toString();
						Temp += '<field><fieldname>' + GapLabel + '<\/fieldname>';
						Temp += '<fieldtype>student-responses<\/fieldtype><fieldlabel>' + GapLabel + '<\/fieldlabel>';
						Temp += '<fieldlabelid>JClozeStudentResponses<\/fieldlabelid><fielddata>';
						for (var j=0; j<State[i].Guesses.length; j++){
								  if (j>0){Temp += '| ';}
								  Temp += State[i].Guesses[j] + ' ';      
						}       
			 Temp += '<\/fielddata><\/field>';
			 }
			 Temp += '<\/fields><\/hpnetresult>';
			 Detail = Temp;
  }
}
function CheckAnswers(){
  if (Locked == true){return;}
  SaveCurrentAnswers();
  var AllCorrect = true;
//Check each answer
  for (var i = 0; i<I.length; i++){
			 if (State[i].AnsweredCorrectly == false){
//If it's right, calculate its score
						if (CheckAnswer(i, true) > -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 + '<br />';
  }
  Output += YourScoreIs + ' ' + TotalScore + '%.<br />';
  if (AllCorrect == false){
			 Output += '<br />' + 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).style.backgroundColor="#9EDA7A";
		document.getElementById('GapSpan' + GNum).style.padding="3px";
	  document.getElementById('GapSpan' + GNum).innerHTML = "<big>"+Val+"<\/big>";
  }
}
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<I[GapNum][1].length; i++){
			 if (CaseSensitive == false){
						UpperAnswer = I[GapNum][1][i][0].toUpperCase();
			 }
			 else{
						UpperAnswer = I[GapNum][1][i][0];
			 }
			 if (TrimString(UpperGuess) == UpperAnswer){
						Match = i;
						if (MarkAnswer == true){
								  State[GapNum].AnsweredCorrectly = true;
						}
			 }
  }
  return Match;
}
function GetHint(GapNum){
  Guess = GetGapValue(GapNum);
  if (CheckAnswer(GapNum, false) > -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 (Locked == true){return;}
  var CurrGap = FindCurrent();
  if (CurrGap < 0){return;}
  var HintString = GetHint(CurrGap);
  if (HintString.length > 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);
  }
}

