La chasse aux fautes

Bild: La chasse aux fautes

text/html chasse.htm — 20 KB

Dateiinhalt

<html>
<head><meta name="author" content="Created with Hot Potatoes by Half-Baked Software, registered to Richard Nisius."></meta><meta name="keywords" content="Hot Potatoes, Half-Baked Software, Windows, University of Victoria"></meta>
<title>
La  chasse aux fautes
</title>

<script language="javascript" type="text/javascript">

//<![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.ie && 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 ExBGColor = '#DDDDFF';



var PageBGColor = '#FFFFFF';



var NavBarColor = '#333366';


var TextColor = '#000066';
var CurrQNum = 0;
var ALetters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
var CorrectIndicator = ':-)';
var IncorrectIndicator = 'X';
var YourScoreIs = 'Ton pointage est :';
var Tries = 0;
var CorrectChoices = 0;
var ContinuousScoring = true;
var CorrectFirstTime = 'R&#233;ponses correctes la premi&#232;re fois : ';var ExerciseTitle = 'La  chasse aux fautes';
var ExerciseSubtitle = 'Questions &#224; choix multiples';
var Instructions = 'Choisis la bonne r&#233;ponse pour chaque question.'; //'';
var ShuffleQs = true;
var ShuffleAs = true;
var DefaultRight = 'Correct!';
var DefaultWrong = 'Erreur, essaie &#224; nouveau';
var QsToShow = 6;
var ShowOneByOne = true;
var ReadingURL = '';
var EraseFeedback = true;
var Score = 0;

var PreviousPage = history.length;







var NavBar='';


NavBar+='<tr><form name="NavButtons1" action=""><td bgcolor="#333366" align="center">';
NavBar+='<font face="Geneva,Arial" size="-1">';


NavBar+='<input type="button" value="Index" onclick=\'parent.location="index.htm"\'></input>';


NavBar+='<input type="button" value="Exercice suivant" onclick=\'parent.location="contraire.htm"\'></input>';
NavBar+='</font></td></form></tr>';
if (is.CRAPBrowser){NavBar=ResolveAllURLs(NavBar)};


var TitleCode = '<tr><td align="center" valign="middle" bgcolor="#FFFFFF">';
TitleCode += '<font size="+1" face="Geneva,Arial" color="#000066">' + ExerciseTitle + '</font><br />';
TitleCode += '<font size="-1" face="Geneva,Arial" color="#000066">' + ExerciseSubtitle + '<br />';
TitleCode += '</font></td></tr>';

var QButtonsOpener = '<table border="0" width="85%" cellpadding="10">';
QButtonsOpener += '<tr><td align="center" valign="middle"><form>';
QButtonsOpener += '<font size="+1"><input type="button" value="&lt;=" onclick="parent.ChangeQ(-1)"></input>';
var QButtonsCloser = '<input type="button" value="=&gt;" onclick="parent.ChangeQ(1)"></input>';
QButtonsCloser += '</font></form></td></tr></table>';

var TableOpener = '<form name="QForm">';
TableOpener += '<table border="0" width="85%">';
var QRow = '<tr><td valign="top" bgcolor="#DDDDFF" align="right">';
QRow += '<font size="+1" face="Geneva,Arial" color="#000066">[QNumber]</font></td>';
QRow += '<td colspan="3" valign="top" bgcolor="#DDDDFF"><font size="-1" face="Geneva,Arial" color="#000066">[Question]<br />&nbsp;';
QRow += '</font></td></tr>';

var ARow = '<tr><td></td><td valign="top" bgcolor="#DDDDFF"><input type="text" value=" " size="3" name="FB_[QNum]_[ANum]"></input></td>';
ARow += '<td valign="top" bgcolor="#DDDDFF"><input type="button" value="[ALetter]" OnClick="parent.CheckAnswer([QNum],[ANum])"></input></td>';
ARow += '<td width="100%" bgcolor="#DDDDFF"><font size="-1" face="Geneva,Arial" color="#000066">[Ans]</font></td></tr>';

var MARow = '<tr><td></td><td valign="top" bgcolor="#DDDDFF" colspan="3"><input type="checkbox" name="A_[QNum]_[ANum]" value="[Correct]"></input>';
MARow += '<font size="-1" face="Geneva,Arial" color="#000066">[Ans]</font></td></tr>';

var CheckButton = '<tr><td></td><td valign="top" bgcolor="#DDDDFF" ><input type="button" value="Correction"';
CheckButton += ' onclick="parent.CheckMulti([QNum])"></input></td></tr>';

TableCloser = '</table></form>';

function GoBack(){
	var BackSkip = history.length - PreviousPage;
	if (BackSkip > 0){
		history.go((BackSkip+1)*-1);
	}
	else{
		parent.history.back();
	}
}

function ReduceItems(){
	var ItemToDump=0;
	var j=0;
	while (I.length > QsToShow){
		ItemToDump = Math.floor(I.length*Math.random());
		for (j=ItemToDump; j<(I.length-1); j++){
			I[j] = I[j+1];
		}
		I.length = I.length-1;
	}
}

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) {
	if (is.CRAPBrowser){Feedback=ResolveAllURLs(Feedback);}
//Build the output string
	var OutString = '';
	OutString += '<html>';
	OutString += '<body  background="" bgcolor="#FFFFFF" text="#000066" 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="#DDDDFF" align="center">';
		OutString += '<font face="Geneva,Arial" size="-1" color="#000066">';
		OutString += Feedback;
		OutString += '</font></td></tr>'
	}
	OutString += '</table></center></body></html>';
//Write it to the frame
	TopFrame.document.clear();
	TopFrame.document.open();
	TopFrame.document.write(OutString);
	TopFrame.document.close();
}

function StartUp(){




//Reduce array if required
	if (QsToShow < I.length){
		ReduceItems();
	}

//Shuffle stuff if required

	if (ShuffleQs == true){
		I = Shuffle(I);
	}

	if (ShuffleAs == true){
		for (var i=0; i<I.length; i++){
			I[i][1] = Shuffle(I[i][1]);
		}
	}

//Create arrays
	CreateStatusArrays();



//Show the first question or all of them
	if (ShowOneByOne == false){
		ShowAllQs();
	}
	else{
		ShowQuestion(CurrQNum);
	}

//Write the top frame
	WriteFeedback(Instructions);
}


I = new Array();

I[0] = new Array();
I[0][0]='Tu &#233;tais d&#233;j&#224; venu en France ?';
I[0][1] = new Array();
I[0][1][0] = new Array();
I[0][1][0][0]='Non, je n\'y &#233;tais pas jamais venu.';
I[0][1][0][1]='\'ne ... jamais\' allein bedeutet \'nie\'';
I[0][1][0][2] = 0;
I[0][1][1] = new Array();
I[0][1][1][0]='Non, je n\'y &#233;tais encore jamais venu.';
I[0][1][1][1]='';
I[0][1][1][2] = 1;
I[0][1][2] = new Array();
I[0][1][2][0]='Non, je n\'y &#233;tais pas d&#233;j&#224; venu.';
I[0][1][2][1]='d&#233;j&#224; - schon !';
I[0][1][2][2] = 0;
I[0][2] = 0;

I[1] = new Array();
I[1][0]='Tu as entendu parler de la soir&#233;e dansante organis&#233;e demain par le camping ?';
I[1][1] = new Array();
I[1][1][0] = new Array();
I[1][1][0][0]='Non, je n\'ai pas entendu parler.';
I[1][1][0][1]='Erg&#228;nzungen mit \'de\' (de la soir&#233;e dansante ...) m&#252;ssen durch \'en\' ersetzt werden.';
I[1][1][0][2] = 0;
I[1][1][1] = new Array();
I[1][1][1][0]='Non, je n\'en ai entendu pas parler.';
I[1][1][1][1]='Ne ... pas umschlie&#223;t das konjugierte Verb.';
I[1][1][1][2] = 0;
I[1][1][2] = new Array();
I[1][1][2][0]='Non, je n\'en ai pas entendu parler.';
I[1][1][2][1]='';
I[1][1][2][2] = 1;
I[1][2] = 0;

I[2] = new Array();
I[2][0]='Tu penses que tu vas y aller avec ta famille ?';
I[2][1] = new Array();
I[2][1][0] = new Array();
I[2][1][0][0]='Non, je crois que je ne vais y aller qu\'avec ma s&#339;ur.';
I[2][1][0][1]='';
I[2][1][0][2] = 1;
I[2][1][1] = new Array();
I[2][1][1][0]='Non, je crois que je ne vais pas y aller qu\'avec ma s&#339;ur.';
I[2][1][1][1]='ne ... pas - nicht;   ne ... que - nur (Diese Antwort  ergibt keinen Sinn)';
I[2][1][1][2] = 0;
I[2][1][2] = new Array();
I[2][1][2][0]='Non, je crois que j\'y vais aller que seulement avec ma s&#339;ur.';
I[2][1][2][1]='\'y\' muss vor das konjugierte Verb; \'ne\' von \'ne ... que\' fehlt; seulement = - \'ne ... que\' ("doppelt gemoppelt")';
I[2][1][2][2] = 0;
I[2][2] = 0;

I[3] = new Array();
I[3][0]='Tu sais, je la trouve sympa, ta s&#339;ur. Tu crois qu\'elle aimerait danser avec moi ?';
I[3][1] = new Array();
I[3][1][0] = new Array();
I[3][1][0][0]='Je ne crois pas. Elle ne danse jamais.';
I[3][1][0][1]='';
I[3][1][0][2] = 1;
I[3][1][1] = new Array();
I[3][1][1][0]='Je ne crois pas. Elle aime danser pas du tout.';
I[3][1][1][1]='\'ne\' fehlt; \'pas\' muss hinter das konjugierte Verb';
I[3][1][1][2] = 0;
I[3][1][2] = new Array();
I[3][1][2][0]='Je ne crois pas. Elle n\'aime danser pas.';
I[3][1][2][1]='\'pas\' muss hinter das konjugierte Verb';
I[3][1][2][2] = 0;
I[3][2] = 0;

I[4] = new Array();
I[4][0]='On va prendre l\'ap&#233;ritif. Pour nous, il y a du coca. Tu en veux ?';
I[4][1] = new Array();
I[4][1][0] = new Array();
I[4][1][0][0]='Non merci, je ne bois jamais de coca.';
I[4][1][0][1]='';
I[4][1][0][2] = 1;
I[4][1][1] = new Array();
I[4][1][1][0]='Non merci, je n\'aime pas du coca.';
I[4][1][1][1]='\'aimer\' steht mit dem bestimmten Artikel';
I[4][1][1][2] = 0;
I[4][1][2] = new Array();
I[4][1][2][0]='Non merci, je ne bois jamais du coca.';
I[4][1][2][1]='\'ne ... jamais de\' ohne Artikel (verneinte Menge, wie \'ne ... pas de\')';
I[4][1][2][2] = 0;
I[4][2] = 0;

I[5] = new Array();
I[5][0]='On fait encore une partie de boules ensemble ?';
I[5][1] = new Array();
I[5][1][0] = new Array();
I[5][1][0][0]='Non, je pr&#233;f&#232;re ne jouer plus: mes parents m\'attendent.';
I[5][1][0][1]='\'ne plus\' muss hier zusammen vor dem Infinitiv stehen, auf den es sich bezieht';
I[5][1][0][2] = 0;
I[5][1][1] = new Array();
I[5][1][1][0]='Non, &#231;a me n\'int&#233;resse plus de jouer aux boules.';
I[5][1][1][1]='\'ne ... pas\' umschlie&#223;t Objektpronomen und  konjugiertes Verb';
I[5][1][1][2] = 0;
I[5][1][2] = new Array();
I[5][1][2][0]='Non, je n\'ai plus envie de jouer.';
I[5][1][2][1]='';
I[5][1][2][2] = 1;
I[5][2] = 0;


Status = new Array();


function CreateStatusArrays(){
	for (var x=0; x<I.length; x++){
		Status[x] = new Array();
		Status[x][0] = 0; // Question not done yet
		Status[x][1] = new Array(); //for tracking whether answers chosen
		for (var y=0; y<I[x][1].length; y++){
			Status[x][1][y] = '0'; //Answers not chosen yet
		}
		Status[x][2] = 0; //Wrong tries at this question so far
		Status[x][3] = 0; //For storing score out of one on this question
	}
}

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 ChangeQ(ChangeBy){
	var NewNum = CurrQNum + ChangeBy;
	if ((NewNum >= 0)&&(NewNum<I.length)){
		CurrQNum = NewNum;
		ShowQuestion(CurrQNum);
	}
	var CurrScore = '';
	if ((ContinuousScoring == true)&&(EraseFeedback == true)){
		CurrScore = YourScoreIs + ' ' + Score + '%.';
		WriteFeedback(CurrScore);
	}
}

function BuildQuestion(QNum){
	if (I[QNum][2] == 0){
		var Temp = ReplaceStuff('[Question]', I[QNum][0], QRow);

		var AnsRows = '';
		for (var i=0; i<I[QNum][1].length; i++){
			TempAns = ARow;
			TempAns = ReplaceStuff('[ANum]', i, TempAns);
			TempAns = ReplaceStuff('[ALetter]', ' ' + ALetters.charAt(i) + ' ', TempAns);
			TempAns = ReplaceStuff('[Ans]', I[QNum][1][i][0], TempAns);
			AnsRows += TempAns;
		}
		Temp += AnsRows;
		Temp = ReplaceStuff('[QNumber]', QNum+1, Temp);
		Temp = ReplaceStuff('[QNum]', QNum, Temp);
	}
	else{
		var Temp = ReplaceStuff('[Question]', I[QNum][0], QRow);
		var AnsRows = '';
		for (var i=0; i<I[QNum][1].length; i++){
			TempAns = MARow;
			TempAns = ReplaceStuff('[ANum]', i, TempAns);
			TempAns = ReplaceStuff('[Correct]', I[QNum][1][i][2], TempAns);
			TempAns = ReplaceStuff('[Ans]', I[QNum][1][i][0], TempAns);
			AnsRows += TempAns;
		}
		Temp += AnsRows;
		Temp += CheckButton;
		Temp = ReplaceStuff('[QNumber]', QNum+1, Temp);
		Temp = ReplaceStuff('[QNum]', QNum, Temp);
	}
	return Temp;
}

function DisplayExercise(StuffToDisplay){
//Build the output string
	var OutString = '';
	OutString += '<html>';
	OutString += '<body  background="" bgcolor="#FFFFFF" text="#000066" link="#0000ff" vlink="#0000cc">';
	OutString += '<center><table border="0" cellpadding="5" cellspacing="1" width="85%">';
	OutString += TitleCode;
	OutString += '<tr><td bgcolor="#DDDDFF" 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 ShowAllQs(){
	var Output = '';
	for (var i=0; i<I.length-1; i++){
		Output = Output + BuildQuestion(i);
		Output = Output + '<tr><td colspan="4"><hr></hr></td></tr>';
	}
	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);

//Mark the answers already done
	for (i=0; i<Status[QNum][1].length; i++){
		if (Status[QNum][1][i] == 'R'){
			MarkAnswer(QNum,i,true)
		}
		if (Status[QNum][1][i] == 'W'){
			MarkAnswer(QNum,i,false)
		}
		if (Status[QNum][1][i] == 'C'){
			CheckCheckbox(QNum,i);
		}
	}
//Eliminate feedback from previous question
	if (EraseFeedback == true){
		WriteFeedback('');
	}
}

function CheckMulti(QNum){
	var TotWrong = 0;
	var Output = '';
	var TotAns = I[QNum][1].length;
	for (var i=TotAns-1; i>=0; i--){
//Find any incorrect choices

		var b = eval('BottomFrame.document.QForm.A_' + QNum + '_' + i);

		if (b != null){
//if it's wrong, count it
			if (b.checked == true){
				Status[QNum][1][i] = 'C';
			}
			else{
				Status[QNum][1][i] = 'U';
			}
			if (((b.checked == true) && (b.value == "0"))||((b.checked == false)&&(b.value == "1"))){
				TotWrong++;
			}
		}
	}

	if (TotWrong == 0){
		Output = DefaultRight;
	}
	else{
		Output = DefaultWrong + '<br />' + (TotAns-TotWrong) + '/' + TotAns;
	}

//If you haven't tried the question before
	if (Status[QNum][0] == 0){
		if (TotWrong > 0){
			Status[QNum][2]++;
		}
		if (TotWrong == 0){
			Status[QNum][0] = 1;
//Calculate the score for this question as a floating-point fraction of 1
			Status[QNum][3] =  ((Status[QNum][1].length - Status[QNum][2]) - 1) / (Status[QNum][1].length - 1);
//If less than zero, set to zero
			if (Status[QNum][3] < 0){Status[QNum][3] = 0;}
		}
	}

//Check whether the quiz is finished
	var Finished = true;
	for (var i=0; i<Status.length; i++){
		if (Status[i][0] == 0){Finished = false;}
	}

//Calculate the score if needed

	if (Status[QNum][0] == 1){
		if ((Finished==true)||(ContinuousScoring==true)){
			var DoneQs = 0;
			var TotalScore = 0;
			for (var i=0; i<Status.length; i++){
				if (Status[i][0] == 1){
					DoneQs++;
					TotalScore += Status[i][3];
				}
			}
			Score = (Math.floor(100 * (TotalScore/DoneQs)));
			Output = Output + '<br />' + YourScoreIs + ' ' + Score + '%.';
		}

		if (Finished == true){
			EraseFeedback = false;
			var CFT = 0;
			for (i=0; i<I.length; i++){
				if (Status[i][2] == 0){
					CFT++;
				}
			}
		Output += '<br />' + CorrectFirstTime + CFT + '/' + I.length;

		}
	}

//Show the feedback
	if (Output.length > 0){
		WriteFeedback(Output);
	}

}

function CheckAnswer(QNum, ANum){
	var Output = I[QNum][1][ANum][1];

	if (Output==''){
		if (I[QNum][1][ANum][2] == 1){
			Output = DefaultRight;
		}
		else{
			Output = DefaultWrong;
		}
	}

//If it's not been previously answered correctly
	if (Status[QNum][0] == 0){
//If it's a correct answer
		if (I[QNum][1][ANum][2] == 1){
			Status[QNum][0] = 1;//Mark the Q as done
			Status[QNum][1][ANum] = 'R';
			MarkAnswer(QNum, ANum, true);
//Calculate the score for this question as a floating-point fraction of 1
			var PossibleWrongs = 0;
			for (var i=0; i<I[QNum][1].length; i++){
				if (I[QNum][1][i][2] == 0){
					PossibleWrongs++;
				}
			}

			if (PossibleWrongs == 0){PossibleWrongs = 1;}

			Status[QNum][3] = 1 - (Status[QNum][2]/PossibleWrongs);

//If less than zero, set to zero
			if (Status[QNum][3] < 0){Status[QNum][3] = 0;}
		}
		else{
			if (Status[QNum][1][ANum] != 'W'){
				Status[QNum][1][ANum] = 'W';
				MarkAnswer(QNum, ANum, false);
				Status[QNum][2]++; //increment wrong tries for this Q
			}
		}
	}

//Check whether the quiz is finished
	var Finished = true;
	for (var i=0; i<Status.length; i++){
		if (Status[i][0] == 0){Finished = false;}
	}

//Calculate the score if needed

	if (Status[QNum][0] == 1){
		if ((Finished==true)||(ContinuousScoring==true)){
			var DoneQs = 0;
			var TotalScore = 0;
			for (var i=0; i<Status.length; i++){
				if (Status[i][0] == 1){
					DoneQs++;
					TotalScore += Status[i][3];
				}
			}
			Score = (Math.floor(100 * (TotalScore/DoneQs)));
			Output = Output + '<br />' + YourScoreIs + ' ' + Score + '%.';
		}

		if (Finished == true){
			EraseFeedback = false;
			var CFT = 0;
			for (i=0; i<I.length; i++){
				if (Status[i][2] == 0){
					CFT++;
				}
			}
		Output += '<br />' + CorrectFirstTime + CFT + '/' + I.length;

		}
	}

//Show the feedback
	if (Output.length > 0){
		WriteFeedback(Output);
	}
}

function MarkAnswer(QNum, ANum, Right){
	var Mark = CorrectIndicator;
	if (Right == false){Mark = IncorrectIndicator;}

	if (eval('BottomFrame.document.QForm.FB_' + QNum + '_' + ANum) != null){
		eval('BottomFrame.document.QForm.FB_' + QNum + '_' + ANum).value = Mark;
	}
}

function CheckCheckbox(QNum, ANum){
	if (eval('BottomFrame.document.QForm.A_' + QNum + '_' + ANum) != null){
		eval('BottomFrame.document.QForm.A_' + QNum + '_' + ANum).checked = true;
	}
}







function Blank(){
	return '<html><body>&copy;Half-Baked Software. Loading...</body></html>';
}

//-->

//]]>

</script>


</head>
<!--<body>Fool those dumb ad-inserting ISPs</body>-->

<!--For full XHTML 1.0 compatibility, remove the border and framespacing attributes.
These are required for proper display in current browsers, but render the document incompatible. Then, you'll need to add the appropriate Document Type Declaration; use
the W3C XHTML 1 frameset DTD.-->


<frameset rows="20%,*" onload="StartUp()" framespacing="0" border="0">
	<frame src="javascript:parent.Blank()" frameborder="0" name="TopFrame"></frame>
	<frame src="javascript:parent.Blank()" frameborder="0" name="BottomFrame"></frame>
</frameset>




</html>