

//<![CDATA[

<!--

// BrowserCheck Object

function BrowserCheck() {
	var b = navigator.appName
//HBS extension
	this.mac = (navigator.appVersion.indexOf('Mac') != -1)
	if (b=="Netscape") this.b = "ns"
	else if (b=="Microsoft Internet Explorer") this.b = "ie"
	else this.b = b
	this.version = navigator.appVersion
	this.v = parseInt(this.version)
	this.ns = (this.b=="ns" && this.v>=4)
	this.ns4 = (this.b=="ns" && this.v==4)
	this.ns5 = (this.b=="ns" && this.v==5)
	this.ie = (this.b=="ie" && this.v>=4)
	this.ie4 = (this.version.indexOf('MSIE 4')>0)
	this.ie5 = (this.version.indexOf('MSIE 5')>0)
	this.min = (this.ns||this.ie)
	this.CRAPBrowser = (this.ie4 && this.mac); //Cannot Resolve Addresses Properly
}

is = new BrowserCheck();

var LocFolder = GetFolder(window.location.href);
function GetFolder(LocPath){
	LocPath = ReplaceStuff('\'','%27',LocPath);
	var i = LocPath.lastIndexOf('/');
	if (i<0){i=LocPath.lastIndexOf('\\')};
	return LocPath.substring(0,i);
}

function CombineURLs(InURL){
	var i = InURL.indexOf('../');
	var s = LocFolder;
	while (i >- 1){
		s = GetFolder(s);
		InURL = InURL.substring(3,InURL.length);
		i = InURL.indexOf('../');
	}
	return s + '/' + InURL;
}

x = new Array();
function ResolveURLs(InText,Attribute){
	x.length=0;
	var Temp = InText.toLowerCase();
	var z;
	var AttLen = Attribute.length + 2;
	var y=Temp.lastIndexOf(Attribute + '="');
	while (y>-1){
		var sLoc = y+AttLen;
		if (Temp.substring(sLoc,sLoc+5) != 'http:'){
			x[x.length]=new Array();
			x[x.length-1][0] = sLoc;
			z = Temp.indexOf('"',sLoc);
			x[x.length-1][1] = z;
			x[x.length-1][2] = InText.substring(sLoc,z);

		}
		Temp = Temp.substring(0,y);
		y=Temp.lastIndexOf(Attribute + '="');
	}
	for (var j=0; j<x.length; j++){
		InText = InText.substring(0,x[j][0]) + CombineURLs(x[j][2]) + InText.substring(x[j][1], InText.length);
	}
	return InText;
}


function ResolveAllURLs(Stuff){
	Stuff = ResolveURLs(Stuff,'href');
	Stuff = ResolveURLs(Stuff,'src');
	Stuff = ResolveURLs(Stuff,'parent.location');
	return Stuff;
}

var CorrectIndicator = 'goed';
var IncorrectIndicator = 'fout';
var YourScoreIs = 'je eindscore is: '; //'Your score is: ';
var CorrectResponse = 'Correct!  goed gedaan';
var IncorrectResponse = 'Sorry!  probeer opnieuw';
var TotalUnfixedLeftItems = 0;
var TotCorrectChoices = 0;
var Penalties = 0;
var ExerciseTitle = 'Nationaliteiten'; //'Test exercise';
var ExerciseSubtitle = 'wat betekent dit spreekwoord'; //'Multiple-choice';
var Instructions = ''; //'';
var DefaultResponse = '[strDefaultResponse]';
var ReadingURL = '';

var PreviousPage = history.length;







var NavBar='';


NavBar+='<tr><form name="NavButtons1" action=""><td bgcolor="#c0c0c0" align="center">';
NavBar+='<font face="Geneva,Arial" size="-1">';


NavBar+='<input type="button" value="naar begin" onclick=\'parent.location="keuzescherm.htm"\'></input>';


NavBar+='</font></td></form></tr>';



var TitleCode = '<tr><td align="center" valign="middle" bgcolor="#000080">';
TitleCode += '<font size="+1" face="Geneva,Arial" color="#ffff00">' + ExerciseTitle + '</font><br />';
TitleCode += '<font size="-1" face="Geneva,Arial" color="#ffff00">' + ExerciseSubtitle + '<br />';
TitleCode += '</font></td></tr>';

var TableOpener = '<center><form name="QForm">';
TableOpener += '<table border="0">';

var IRow = '<tr><td valign="top" bgcolor="#c0c0c0">';
IRow += '<font face="Geneva,Arial" color="#000000">[strLeftItem]&nbsp;&nbsp;&nbsp;&nbsp;</font></td>';
IRow += '<td valign="top" bgcolor="#c0c0c0">';
IRow += '<font face="Geneva,Arial" color="#000000">[strRightItem]</font></td>';
IRow += '<td valign="top" bgcolor="#c0c0c0"><font face="Geneva,Arial" color="#000000">';
IRow += '&nbsp;&nbsp;&nbsp;[Mark]';
IRow += '</font></td></tr>';

var CheckButton = '<tr><td valign="top" align="center" bgcolor="#c0c0c0" colspan="3"><br /><input type="button" value="controle" OnClick="parent.CheckAnswers()"></input></td></tr>';

TableCloser = '</table></form></center>';

var DropDownList = '';
var Exercise = '';

function GoBack(){
	var BackSkip = history.length - PreviousPage;
	if (BackSkip > 0){
		history.go((BackSkip+1)*-1);
	}
	else{
		parent.history.back();
	}
}

function Shuffle(InArray){
	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; k++) {
			Temp[k] = Temp[k+1];
		}
		j--;
	}
	return InArray;
}

function WriteFeedback(Feedback) {
//Build the output string
	var OutString = '';
	OutString += '<html>';
	OutString += '<body  background="" bgcolor="#000080" text="#000000" link="#0000ff" vlink="#0000cc">';
	OutString += '<center><table border="0" cellpadding="5" cellspacing="1" width="85%">';
	OutString += NavBar;
	if (Feedback.length>0){
		OutString += '<tr><td bgcolor="#c0c0c0" align="center">'; 
		OutString += '<font face="Geneva,Arial" size="-1" color="#000000">';
		OutString += Feedback;
		OutString += '</font></td></tr>'
	}
	OutString += '</table></center></body></html>';

	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 BuildSelector(){
	DropDownList = '<select name="sel[INum]">';
	DropDownList += '<option value=" "> </option>';
	for (var i=0; i<RItems.length; i++){
		DropDownList += '<option value="' + EscapeDoubleQuotes(RItems[i][0]) + '">' + RItems[i][0] + '</option>';
	}
	DropDownList += '</select>';
}

function StartUp(){


	CorrectIndicator = '<nobr>' + CorrectIndicator + '</nobr>';
	IncorrectIndicator = '<nobr>' + IncorrectIndicator + '</nobr>';

//Write the top frame
	WriteFeedback(Instructions);

//Create the right-item/distractor array, and shuffle it
	var DuplicateItem = false;
	for (var i=0; i<I.length; i++){
//If it's not fixed
		if (I[i][2] < 1){
			if (I[i][0].length > 0){
				TotalUnfixedLeftItems++;
			}
			DuplicateItem = false;
//and it's not already in the array
			for (var j=0; j<RItems.length; j++){
				if (I[i][1] == RItems[j][0]){
					DuplicateItem = true;
					RItems[j][1][RItems[j][1].length] = i;
				}
			}
//add it to the array
			if (DuplicateItem == false){
				RItems[RItems.length] = new Array();
				RItems[RItems.length-1][0] = I[i][1];
				RItems[RItems.length-1][1] = new Array();
				RItems[RItems.length-1][1][0] = i;
			}
		}
	}
	RItems = Shuffle(RItems);

//Now tell the I array items which of the selector items matches to it
	for (i=0; i<RItems.length; i++){
		for (j=0; j<RItems[i][1].length; j++){
			I[RItems[i][1][j]][3] = i;
		}
	}

//Now use the RItems array to build the drop-down list selector
	BuildSelector();	

//Create arrays
	CreateStatusArrays();



//Build and show the exercise
	BuildExercise();
	DisplayExercise(Exercise);


}


function BuildExercise(){
	var TempRow = '';
	Exercise = '';
	for (var i=0; i<I.length; i++){
//if there's a left item -- ie it's not a distractor
		if (I[i][0].length > 0){
			TempRow = IRow;
			TempRow = ReplaceStuff('[strLeftItem]', I[i][0], TempRow);
//if not fixed and not yet answered correctly
			if ((I[i][2] < 1)&&(Status[i][0] < 1)){
				TempRow = ReplaceStuff('[strRightItem]', DropDownList, TempRow);
			}
			else{
				TempRow = ReplaceStuff('[strRightItem]', I[i][1], TempRow);
			}
//if it's not fixed, and it's been attempted, mark it appropriately
			if ((I[i][2] < 1)&&(Status[i][1] > 0)){
				if (Status[i][0] < 1){
					TempRow = ReplaceStuff('[Mark]', IncorrectIndicator, TempRow);
				}
				else{
					TempRow = ReplaceStuff('[Mark]', CorrectIndicator, TempRow);
				}
			}
			else{
				TempRow = ReplaceStuff('[Mark]', '', TempRow);
			}
			TempRow = ReplaceStuff('[INum]', i, TempRow);
			Exercise += TempRow;
		}
	}
//Add the check button
	Exercise += CheckButton;

//Make it into a table
	Exercise = TableOpener + Exercise + TableCloser;
}

I = new Array();
I[0] = new Array();
I[0][0] = 'met de Franse slag';
I[0][1] = 'hij maakt het werk maar slordig';
I[0][2] = 0;
I[1] = new Array();
I[1][0] = 'een Haags bakkie';
I[1][1] = 'een kopje koffie dat maar half vol is';
I[1][2] = 0;
I[2] = new Array();
I[2][0] = 'Haagse bluf';
I[2][1] = 'veel poeha, maar weinig inhoud';
I[2][2] = 0;
I[3] = new Array();
I[3][0] = 'Holland is in last';
I[3][1] = 'veel drukte om een klein probleempje';
I[3][2] = 0;
I[4] = new Array();
I[4][0] = 'Het in Keulen horen donderen';
I[4][1] = 'heel verbaasd zijn';
I[4][2] = 0;
I[5] = new Array();
I[5][0] = 'Oostindisch doof zijn';
I[5][1] = 'net doen of je de vraag niet begrijpt of niet gehoord hebt';
I[5][2] = 0;
I[6] = new Array();
I[6][0] = 'Alle wegen leiden naar Rome';
I[6][1] = 'er zijn meerdere wegen om je doel te bereiken';
I[6][2] = 0;
I[7] = new Array();
I[7][0] = 'Het Spaans benauwd krijgen';
I[7][1] = 'angstig worden';
I[7][2] = 0;
I[8] = new Array();
I[8][0] = 'Dat is zo oud als de weg naar Rome';
I[8][1] = 'dat is al zo lang bekend';
I[8][2] = 0;


Status = new Array();

RItems = new Array();

function CreateStatusArrays(){
	for (var x=0; x<I.length; x++){
		Status[x] = new Array();
		Status[x][0] = 0; // Item not matched correctly yet
		Status[x][1] = 0; //Tries at this item so far
	}
}

function ReplaceStuff(Token, Replacement, InString){
	var i = InString.indexOf(Token);
	var FirstBit = '';
	var LastBit = '';
	while (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 EscapeDoubleQuotes(InString){
	var Result = '';
	for (var i=0; i<InString.length; i++){
		if (InString.charAt(i) == '"'){
			Result += '&quot;';
		}
		else{
			Result += InString.charAt(i);
		}
	}
	return Result;
}

function DisplayExercise(StuffToDisplay){
//Build the output string
	var OutString = '';
	OutString += '<html>';
	OutString += '<body  background="" bgcolor="#000080" text="#000000" link="#0000ff" vlink="#0000cc">';
	OutString += '<center><table border="0" cellpadding="5" cellspacing="1" width="85%">';
	OutString += TitleCode; 
	OutString += '<tr><td bgcolor="#c0c0c0" align="center">'; 
	OutString += '<font face="Geneva,Arial" size="-1">';
	OutString += StuffToDisplay;
	OutString += '</font></td></tr>';
	OutString += NavBar;
	OutString += '</table></center></body></html>';

	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 GetAnswer(INum){
	var Result = -1;
	var s = eval('BottomFrame.document.QForm.sel' + INum);
	if (s != null){
		Result = s.selectedIndex - 1;
	}
	return Result;
}

function CheckAnswers(){
	var AllDone = true;
	TotCorrectChoices = 0;
//for each item not fixed or a distractor
	for (var i=0; i<I.length; i++){
		if ((I[i][2] < 1)&&(I[i][0].length > 0)){
//if it hasn't been answered correctly yet
			if (Status[i][0] < 1){
//Add one to the number of tries for this item
				Status[i][1]++;
//Get the answer
				if (GetAnswer(i) == I[i][3]){
//The answer is correct, so set the status flag
					Status[i][0] = 1;
				}
//else the answer is wrong, so remember that
				else{
					AllDone = false;
				}				
			}
//If it's correct, count it
			if (Status[i][0] == 1){
				TotCorrectChoices++;
			}
		}
	}
//Calculate the score
	var Score = Math.floor(((TotCorrectChoices-Penalties)/TotalUnfixedLeftItems)*100);
	var Feedback = '';

//Build the feedback
	if (AllDone == true){
		Feedback = CorrectResponse + '<br />' + YourScoreIs + Score + '%.';
	}
	else{
		Feedback = IncorrectResponse + '<br />' + YourScoreIs + Score + '%.';
//Penalty for incorrect check
		Penalties++;
	}
//Show the feedback and rebuild the exercise
	WriteFeedback(Feedback);



	BuildExercise();
	DisplayExercise(Exercise);
}







function Blank(){
	return '<html><body>&copy;Half-Baked Software. Loading...</body></html>';
}

//-->

//]]>



