Négation - QCM

Bild: Négation - QCM

text/html fautes.htm — 30 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  jalousie
</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 = '#F8eccb';



var PageBGColor = '#f6d4af';



var NavBarColor = '#ffbb99';


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  jalousie';
var ExerciseSubtitle = 'Questions &#224; choix multiples';
var Instructions = 'Choisis la bonne r&#233;ponse.'; //'';
var ShuffleQs = false;
var ShuffleAs = true;
var DefaultRight = 'Correct!';
var DefaultWrong = 'Erreur, essaie &#224; nouveau';
var QsToShow = 12;
var ShowOneByOne = true;
var ReadingURL = '';
var EraseFeedback = true;
var Score = 0;

var PreviousPage = history.length;



ReadingText='<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 jalousie</title></head><body background="" bgcolor="#f6d4af" text="#000066" link="#0000ff" vlink="#0000cc"><center><table border="0" cellpadding="5" cellspacing="1" width="85%"><tr><td align="center" bgcolor="#f6d4af"><font size="+1" face="Geneva,Arial" color="#ff0000">La jalousie<br></br></font></td></tr><tr><td bgcolor="#F8eccb"><font face="Geneva,Arial" size="-1" color="#000066">C\'est dimanche, 19h. Sylvie a rendez-vous avec son ami Patrick. Elle sait que samedi dernier, il est all\u00E9 \u00E0 la discoth\u00E8que avec Janine, sa meilleure amie. Sylvie est un peu jalouse et lui pose des questions. Patrick a bonne conscience et r\u00E9pond - par des phrases grammaticalement correctes, bien s\u00FBr!<br />Indiquez les r\u00E9ponses que Patrick a donn\u00E9es \u00E0 Sylvie.</font></td></tr></table></center></body></html>';


if (is.CRAPBrowser){ReadingText=ResolveAllURLs(ReadingText);}


var NavBar='';


NavBar+='<tr><form name="NavButtons1" action=""><td bgcolor="#ffbb99" 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="#f6d4af">';
TitleCode += '<font size="+1" face="Geneva,Arial" color="#ff0000">' + ExerciseTitle + '</font><br />';
TitleCode += '<font size="-1" face="Geneva,Arial" color="#ff0000">' + 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="#F8eccb" align="right">';
QRow += '<font size="+1" face="Geneva,Arial" color="#000066">[QNumber]</font></td>';
QRow += '<td colspan="3" valign="top" bgcolor="#F8eccb"><font size="-1" face="Geneva,Arial" color="#000066">[Question]<br />&nbsp;';
QRow += '</font></td></tr>';

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

var MARow = '<tr><td></td><td valign="top" bgcolor="#F8eccb" 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="#F8eccb" ><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="#f6d4af" 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="#F8eccb" 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(){




//Write the reading frame
        ShowReading();



//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]='Il est 19h30 ! Tu as oubli&#233; &#224; quelle heure on avait rendez-vous ?';
I[0][1] = new Array();
I[0][1][0] = new Array();
I[0][1][0][0]='Mais non, je ne l\'ai pas oubli&#233;.';
I[0][1][0][1]='';
I[0][1][0][2] = 1;
I[0][1][1] = new Array();
I[0][1][1][0]='Mais non, je l\'ai ne pas oubli&#233;.';
I[0][1][1][1]='<i>ne ... pas</i> umschlie&#223;t Objektpronomen und konjugiertes Verb.';
I[0][1][1][2] = 0;
I[0][1][2] = new Array();
I[0][1][2][0]='Mais non, je ne l\'ai pas oublier.';
I[0][1][2][1]='<i>oublier</i> = Infinitiv, <i>oubli&#233;</i> = participe pass&#233;';
I[0][1][2][2] = 0;
I[0][2] = 0;

I[1] = new Array();
I[1][0]='Dis, tu es all&#233; &#224; la discoth&#232;que avec Janine. Je pense que tu voudrais sortir avec elle !';
I[1][1] = new Array();
I[1][1][0] = new Array();
I[1][1][0][0]='Qu\'est-ce que tu dis, je n\'aimerais sortir pas du tout avec elle, crois-moi !';
I[1][1][0][1]='<i>pas</i> muss hinter das konjugierte Verb';
I[1][1][0][2] = 0;
I[1][1][1] = new Array();
I[1][1][1][0]='Qu\'est-ce que tu dis, j\'aimerais pas du tout sortir avec elle, ma petite amie, c\'est toi !';
I[1][1][1][1]='<i>ne</i> fehlt';
I[1][1][1][2] = 0;
I[1][1][2] = new Array();
I[1][1][2][0]='Qu\'est-ce que tu dis, je ne sortirais jamais avec elle!';
I[1][1][2][1]='';
I[1][1][2][2] = 1;
I[1][2] = 0;

I[2] = new Array();
I[2][0]='Tu lui as donn&#233; des baisers ?';
I[2][1] = new Array();
I[2][1][0] = new Array();
I[2][1][0][0]='Non, je ne lui ai jamais donn&#233; de baisers.';
I[2][1][0][1]='';
I[2][1][0][2] = 1;
I[2][1][1] = new Array();
I[2][1][1][0]='Non, je ne lui ai jamais donn&#233; des baisers.';
I[2][1][1][1]='<i>ne ... jamais de</i> ohne Artikel (verneinte Menge, wie <i>ne ... pas de</i>)';
I[2][1][1][2] = 0;
I[2][1][2] = new Array();
I[2][1][2][0]='Non, je n\'ai pas lui donn&#233; de baisers, j\'ai seulement lui fait la bise.';
I[2][1][2][1]='Objektpronomen wie <i>lui</i> stehen vor dem konjugierten Verb. Hier 2x falsch';
I[2][1][2][2] = 0;
I[2][2] = 0;

I[3] = new Array();
I[3][0]='Tu en as d&#233;j&#224; assez de moi ?';
I[3][1] = new Array();
I[3][1][0] = new Array();
I[3][1][0][0]='Non, je n\'ai pas d&#233;j&#224; assez de toi.';
I[3][1][0][1]='<i>d&#233;j&#224;</i> = schon; <i>encore</i> = noch';
I[3][1][0][2] = 0;
I[3][1][1] = new Array();
I[3][1][1][0]='Non, je n\'ai pas encore assez de toi.';
I[3][1][1][1]='';
I[3][1][1][2] = 1;
I[3][1][2] = new Array();
I[3][1][2][0]='Non, je n\'ai plus assez de toi.';
I[3][1][2][1]='';
I[3][1][2][2] = 0;
I[3][2] = 0;

I[4] = new Array();
I[4][0]='Tu iras encore une fois &#224; la dicoth&#232;que avec elle ?';
I[4][1] = new Array();
I[4][1][0] = new Array();
I[4][1][0][0]='Non, je suis s&#251;r que je ne vais y aller qu\'avec toi.';
I[4][1][0][1]='';
I[4][1][0][2] = 1;
I[4][1][1] = new Array();
I[4][1][1][0]='Non, je suis s&#251;r que je n\'y vais aller qu\'avec toi.';
I[4][1][1][1]='Adverbialpronomen (<i>en, y</i>) und Objektpronomen stehen vor dem Infinitiv';
I[4][1][1][2] = 0;
I[4][1][2] = new Array();
I[4][1][2][0]='Non, je suis s&#251;r que je ne vais pas y aller qu\'avec toi.';
I[4][1][2][1]='<i>ne ... pas</i> = nicht; <i>ne ... que</i> = nur (Diese Antwort  ergibt keinen Sinn)';
I[4][1][2][2] = 0;
I[4][2] = 0;

I[5] = new Array();
I[5][0]='Tu vas me laisser seule encore une fois ?';
I[5][1] = new Array();
I[5][1][0] = new Array();
I[5][1][0][0]='Non, je ne vais pas encore te laisser seule.';
I[5][1][0][1]='<i>ne ... pas encore</i> = noch nicht';
I[5][1][0][2] = 0;
I[5][1][1] = new Array();
I[5][1][1][0]='Non, je ne te vais plus laisser seule.';
I[5][1][1][1]='Objektpronomen vor den Infinitiv';
I[5][1][1][2] = 0;
I[5][1][2] = new Array();
I[5][1][2][0]='Non, je ne vais plus jamais te laisser seule.';
I[5][1][2][1]='';
I[5][1][2][2] = 1;
I[5][2] = 0;

I[6] = new Array();
I[6][0]='Tu penses souvent &#224; Janine ?';
I[6][1] = new Array();
I[6][1][0] = new Array();
I[6][1][0][0]='Non, je ne pense gu&#232;re souvent &#224; elle.';
I[6][1][0][1]='Ce n\'est pas logique !';
I[6][1][0][2] = 0;
I[6][1][1] = new Array();
I[6][1][1][0]='Non, je ne pense guerre &#224; elle.';
I[6][1][1][1]='<i>la guerre</i> = der Krieg!';
I[6][1][1][2] = 0;
I[6][1][2] = new Array();
I[6][1][2][0]='Non, je ne pense gu&#232;re &#224; elle.';
I[6][1][2][1]='';
I[6][1][2][2] = 1;
I[6][2] = 0;

I[7] = new Array();
I[7][0]='Tu as invit&#233; d\'autres filles &#224; sortir avec toi ?';
I[7][1] = new Array();
I[7][1][0] = new Array();
I[7][1][0][0]='Non, je n\'ai personne invit&#233;.';
I[7][1][0][1]='<i>personne</i> steht an derselben Stelle wie das Substantiv';
I[7][1][0][2] = 0;
I[7][1][1] = new Array();
I[7][1][1][0]='Non, je n\'ai invit&#233; personne.';
I[7][1][1][1]='';
I[7][1][1][2] = 1;
I[7][1][2] = new Array();
I[7][1][2][0]='Non, personne ne m\'a invit&#233;.';
I[7][1][2][1]='Dieser Satz ist keine Antwort auf die Frage, auch wenn er grammatisch richtig ist.';
I[7][1][2][2] = 0;
I[7][2] = 0;

I[8] = new Array();
I[8][0]='Tu n\'as pas eu de scrupules d\'aller &#224; la discoth&#232;que avec une autre fille ?';
I[8][1] = new Array();
I[8][1][0] = new Array();
I[8][1][0][0]='Non, je n\'ai eu aucun scrupule.';
I[8][1][0][1]='';
I[8][1][0][2] = 1;
I[8][1][1] = new Array();
I[8][1][1][0]='Non, je n\'ai pas eu aucun scrupule.';
I[8][1][1][1]='Das ist "doppelt gemoppelt"';
I[8][1][1][2] = 0;
I[8][1][2] = new Array();
I[8][1][2][0]='Non, je n\'ai eu pas de scrupule.';
I[8][1][2][1]='<I>ne ... pas</i> umschlie&#223;t das konjugierte Verb';
I[8][1][2][2] = 0;
I[8][2] = 0;

I[9] = new Array();
I[9][0]='Tu me trouves belle ?';
I[9][1] = new Array();
I[9][1][0] = new Array();
I[9][1][0][0]='Oui, tu es plus belle que jamais.';
I[9][1][0][1]='';
I[9][1][0][2] = 1;
I[9][1][1] = new Array();
I[9][1][1][0]='Oui, tu es plus belle que ne jamais.';
I[9][1][1][1]='<I>jamais</i> ohne <i>ne</i> = je(mals)';
I[9][1][1][2] = 0;
I[9][1][2] = new Array();
I[9][1][2][0]='Oui, aucun fille n\'est aussi belle que toi.';
I[9][1][2][1]='<i>aucun</i> ist m&#228;nnlich!';
I[9][1][2][2] = 0;
I[9][2] = 0;

I[10] = new Array();
I[10][0]='Tu as vraiment &#233;t&#233; fid&#232;le ?';
I[10][1] = new Array();
I[10][1][0] = new Array();
I[10][1][0][0]='Oh, tu sais, il n\'est personne si fid&#232;le que moi.';
I[10][1][0][1]='<i>personne</i> ist Subjekt des Satzes.';
I[10][1][0][2] = 0;
I[10][1][1] = new Array();
I[10][1][1][0]='Oh, tu sais, ne personne est si fid&#232;le que moi.';
I[10][1][1][1]='<i>ne</i> steht immer vor dem Verb (bzw. vor dem Objektpronomen)';
I[10][1][1][2] = 0;
I[10][1][2] = new Array();
I[10][1][2][0]='Oh, tu sais, personne n\'est si fid&#232;le que moi.';
I[10][1][2][1]='';
I[10][1][2][2] = 1;
I[10][2] = 0;

I[11] = new Array();
I[11][0]='Eh bien, je ne parlerai plus de &#231;a.';
I[11][1] = new Array();
I[11][1][0] = new Array();
I[11][1][0][0]='Moi, je n\'en parlerai plus aussi.';
I[11][1][0][1]='<i>ne ... pas (ne ... plus) non plus</i>  = auch nicht (mehr)';
I[11][1][0][2] = 0;
I[11][1][1] = new Array();
I[11][1][1][0]='Moi, je n\'en parlerai pas non plus.';
I[11][1][1][1]='';
I[11][1][1][2] = 1;
I[11][1][2] = new Array();
I[11][1][2][0]='Moi, je n\'en parlerai non plus.';
I[11][1][2][1]='<i>plus</i> fehlt nach dem konjugierten Verb.';
I[11][1][2][2] = 0;
I[11][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="#f6d4af" text="#000066" link="#0000ff" vlink="#0000cc">';
        OutString += '<center><table border="0" cellpadding="5" cellspacing="1" width="85%">';
        OutString += TitleCode;
        OutString += '<tr><td bgcolor="#F8eccb" 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 ShowReading(){
        if (ReadingFrame != null){
                if (ReadingURL.length > 0){
                        ReadingFrame.location.href=ReadingURL;
                }
                else{
                        ReadingFrame.document.clear();
                        ReadingFrame.document.open();
                        ReadingFrame.document.write(ReadingText);
                        ReadingFrame.document.close();
                }
        }
}






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 cols = "50%,50%" framespacing="0" border="0">
  <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>
  <frame src="javascript:parent.Blank()" frameborder="0" name="ReadingFrame"></frame>
</frameset>





</html>