// Objekte und Varialble initialisieren ---------------------------------------
testInitDone = false; 
AnzTestSeiten = 0;
init_test1();

// Constructor for class testSeitenEigenschaften
function testSeitenEigenschaften(file, defaultScore) {
  this.filename = file;
  this.score = 0; 
  this.maxim = 0;
  this.rightScore = 0;
  this.selection = new Array();
}

function AufgabenArray(Nummer) {
  this.AufgabenNummer = Nummer;
  this.selection = new Array();
}

// Constructor for class Personalien
function Personalien() {
	this.firstName	= "";
	this.lastName	= "";
	this.shortName	= "";
	this.totalScore = 0;
}
oPersonalien = new Personalien();

function init_test1() {
    contentFrameID = 'content';
	
    // aktuellerIndex = -1;
    aButton = "choice";
    refreshTicks = 50;

    MindestPunkte = 17;
    MaximalPunkte = 21;

    TestSeiten = new Array(AnzTestSeiten);
    TestSeiten[0] = new testSeitenEigenschaften('k_2', 0, 3, 1);
    TestSeiten[1] = new testSeitenEigenschaften('k_3', 0, 8, 5);
    TestSeiten[2] = new testSeitenEigenschaften('k_4', 0, 4, 2);
    TestSeiten[3] = new testSeitenEigenschaften('k_5', 0, 4, 2);
    TestSeiten[4] = new testSeitenEigenschaften('k_6', 0, 4, 2);
    TestSeiten[5] = new testSeitenEigenschaften('k_7', 0, 5, 3);
    TestSeiten[6] = new testSeitenEigenschaften('k_8', 0, 5, 3);
    TestSeiten[7] = new testSeitenEigenschaften('k_9', 0, 4, 1);
    TestSeiten[8] = new testSeitenEigenschaften('k_10', 0, 6, 3);
    TestSeiten[9] = new testSeitenEigenschaften('k_11', 0, 2, 1);
	AnzTestSeiten = TestSeiten.length;
	
    testStartSeite = "k_" + parent.language + ".html";
    Bestanden = "k_12_2_" + parent.language + ".html";
    NichtBestanden = "k_12_1_" + parent.language + ".html";

	testInitDone = true;
}

// Methoden beim Aufruf von neuen Seiten ---------------------------------------------

function zeigeBestehendeAuswahl() {
  waitTimer = setTimeout("AuswahlSetzen()", refreshTicks*2);
}

function judgeUserInput() {
  // Diese Methode bewertet die Eingaben des Benutzers
  if (parent.frames[contentFrameID].G01 != null) {
	// check if all three answers are selected; there are always exactly three answers
	var c = 0;

	//for (var i=1; i<=3; i++) if (parent.frames[contentFrameID].G01.e['choice'+i].selected) c++;
	
	if (c == 3) {
		// to select all three answers is not cool...
		alert("Bitte wählen Sie höchstens zwei Antworten aus.");
		return false;
	}
	
    // get score points
    PunktzahlSetzen();

    // branch to appropriate page
	// var index = getPageId();
	// parent.frames[contentFrameID].location = TestSeiten[index+1].filename;
	parent.frames[contentFrameID].G01.judge();
	
    // returning false means that main navigation doesn't go to the next page
    return false;
  }
  else {
    return true;
  }
}

function checkFinalTestActive() {
	if (isFinalTestActive()) {
		alert("Bitte fahren Sie mit dem Test fort, indem Sie auf die rote Weiter-Taste klicken.");
		return false;
	}
	return true;
}

function isFinalTestActive() {
	// personalien page ?
	// if (parent.frames[contentFrameID].location.href.indexOf("k_1.html") > 0) return true;
	
	// Q & A pages
	if (getPageId() > -1) return true;
	else return false;
}

// Punktzahl und Auswahl puffern  -------------------------------------------------

function PunktzahlSetzen() {
	var index = getPageId();

	// falls eine Frageseite aktuell, dann setze Punktzahl
	if (index > -1 && parent.frames[contentFrameID].G01 != null) {
		if (parent.frames[contentFrameID].G01.score < 0) {
			parent.frames[contentFrameID].G01.score = 0;
		}
		TestSeiten[index].score = parent.frames[contentFrameID].G01.score;
	}
}

function getPageId() {
	var seite = parent.frames[contentFrameID].location.href;

  	for (var i=0; i<AnzTestSeiten; i++) {
		if (seite.indexOf(TestSeiten[i].filename) > 0) return i;
	}
	return -1;
}

// Test auswerten ---------------------------------------------------------------------
function TestAuswerten() {
	var Summe = PunktezahlTotal();
	
	Punktezahl = Summe;
	oPersonalien.totalScore = Summe;
	
	parent.frames[contentFrameID].location.href = (Summe < MindestPunkte) ? NichtBestanden : Bestanden;
}

function PunktezahlTotal() {
  var total = 0;
  var j = 0;
  
  Aufgaben = new Array();
  
  RichtigePkte = new Array();
  RichtigePkte[0] = new AufgabenArray(2);
  RichtigePkte[1] = new AufgabenArray(1);
  RichtigePkte[2] = new AufgabenArray(1);
  RichtigePkte[3] = new AufgabenArray(1);
  RichtigePkte[4] = new AufgabenArray(1);
  RichtigePkte[5] = new AufgabenArray(3);
  RichtigePkte[6] = new AufgabenArray(2);
  RichtigePkte[7] = new AufgabenArray(3);
  RichtigePkte[8] = new AufgabenArray(1);
  RichtigePkte[9] = new AufgabenArray(6);
  
  for (var i=0; i<TestSeiten.length; i++) {
	  
    
  if (TestSeiten[i].score == RichtigePkte[i].AufgabenNummer)
    {
    	//alert("Richtig:" + RichtigePkte[i].AufgabenNummer + "/ Erhalten:" + TestSeiten[i].score);
    	Aufgaben[j] = new AufgabenArray(i);
    	j++;
    }
	
	
    if (TestSeiten[i].score > 0) total += TestSeiten[i].score;
  }

  return total;
}

function openTestPage(pageID) {
	parent.frames[contentFrameID].location.href = pageID + "_" + parent.language + ".html";
}

