var aQuestion = new Array();

var oRank = new Object();
oRank.estimate = new Array();
oRank.minValue = new Array();
oRank.maxValue = new Array();

var oDefaultRank = new Object();

window.quiz_rightanswer = 0;
window.quiz_question = 0;
window.quiz_answer = 0;



// -----------------------------------------------------------------------------------------------------------------------------
function writeOutput() {
	var question = window.quiz_question;
	var answer = window.quiz_answer;
	if (question.length == 0) {	question = 0; }
	startQuiz();
	clearAll();
	
	if (getQuestionCounter() > 0) {
		if ((Number(question) + 1) > getQuestionCounter()) {
			writeResult();
		}
		else {
			writeQuestions((Number(question) + 1));
			writeButton(0, (Number(question) + 1));
		}
	}
	else {
		document.getElementById("questionLine").innerHTML = sLevels;
	}
}

// -----------------------------------------------------------------------------------------------------------------------------
function writeButton(form, questionNumber) {
	var onClickValue = '';
	var buttonLabel = '<strong>Richtig oder falsch?</strong>';
	
	switch (form) {
		case 1:
			onClickValue = 'writeOutput();';
			buttonLabel = '<strong>Weiter zur nächsten Frage...</strong>';
			break;
		case 2:
			onClickValue = 'resetQuiz();';
			buttonLabel = '<br /><strong>Ich versuche es nochmal!</strong>';
			break;
		default:
			onClickValue = 'saveAnswer(' + questionNumber + ');';
			break;
	}
	
	document.getElementById("quizButton").innerHTML = '<a href="javascript:' + onClickValue + '">' + buttonLabel + '</a>';
}

// -----------------------------------------------------------------------------------------------------------------------------
function startQuiz() {
	var maxQuestions = getQuestionCounter();
	//document.getElementById("quizHeader").innerHTML = aQuestion[0];
}

// -----------------------------------------------------------------------------------------------------------------------------
function writeQuestions(questionNumber) {
	document.getElementById("questionLine").innerHTML = '<strong>' + questionNumber + '.</strong> "' + aQuestion[questionNumber].question + '"';
	var tmpString = '';
	for (var i=1; i<=aQuestion[questionNumber].answers.length; i++) {
		if (aQuestion[questionNumber].answers[i-1].length > 0) {
			tmpString += '<input type="radio" name="radioQuiz" value="' + i + '" class="radio" />&nbsp;';
			tmpString += aQuestion[questionNumber].answers[i-1] + '<br />';
		}
	}
	sQuestionShort = aQuestion[questionNumber].question.slice(0, 50) + "...";
	tmpString += '<br /><a href="javascript:playAudio(\'' + aQuestion[questionNumber].sample + '\', \'' + sQuestionShort + '\')" onmouseover="window.status=\'\'; return true"><img src="./web/pix/icn_hoerprobe.gif" alt="Reinhören" title="Reinhören" />&nbsp;<strong>Reinhören</strong></a><br /><br />';
	document.getElementById("questions").innerHTML = tmpString;
}

// -----------------------------------------------------------------------------------------------------------------------------
function saveAnswer(questionNumber) {
	var frm = document.getElementById(quizId);
	var radioObject = frm.elements["radioQuiz"];
	var checkedValue = null;
	for (var i=0; i<radioObject.length && checkedValue == null; i++) {
		if (radioObject[i].checked == true) {
			checkedValue = radioObject[i].value;
		}
	}
	if (checkedValue == null) {
		alert('Du musst eine Auswahl treffen!');
	}
	else {
		window.quiz_answer = checkedValue;
		window.quiz_question = questionNumber;
		clearAll();
		writeAnswer(questionNumber, checkedValue);
	}
}

// -----------------------------------------------------------------------------------------------------------------------------
function getQuestionCounter() {
	return aQuestion.length-1;
}

// -----------------------------------------------------------------------------------------------------------------------------
function writeAnswer(questionNumber, answerNumber) {
	var answerText = aQuestion[questionNumber].correctAnswer;
	var rightNumber = aQuestion[questionNumber].correctAnswerIndex;
	
	if (rightNumber == answerNumber) {
		document.getElementById("questionLine").innerHTML = '<strong>Richtig!</strong>';
		window.quiz_rightanswer = Number(window.quiz_rightanswer) + 1;
	} 
	else {
		document.getElementById("questionLine").innerHTML = '<strong>Leider falsch!</strong>';
	}
	window.quiz_answer = 0;
	document.getElementById("questions").innerHTML = answerText + '<br /><br />';
	writeButton(1, 0);				
}

// -----------------------------------------------------------------------------------------------------------------------------
function writeResult() {
	var rightAnswers = Number(window.quiz_rightanswer);
	var allQuestions = getQuestionCounter();
	var prozent = Math.round((100 / allQuestions) * rightAnswers);
	document.getElementById("questionLine").innerHTML = '<strong>Du hast ' + rightAnswers + ' von ' + allQuestions + ' Fragen richtig beantwortet.</strong>';
	var resultString = '';
	
	for (var i=0; i<oRank.estimate.length && resultString == ''; i++) {
		if (oRank.maxValue[i] >= prozent && oRank.minValue[i] <= prozent) {
			resultString = oRank.estimate[i];
		}
	}
	for (var i=0; i<oDefaultRank.estimate.length && resultString == ''; i++) {
		if (oDefaultRank.maxValue[i] >= prozent && oDefaultRank.minValue[i] <= prozent) {
			resultString = oDefaultRank.estimate[i];
		}
	}

	document.getElementById("questions").innerHTML = resultString;
	writeButton(2, 0);
}

// -----------------------------------------------------------------------------------------------------------------------------
function resetQuiz() {
	clearAll();
	window.quiz_answer = 0;
	window.quiz_question = 0;
	window.quiz_rightanswer = 0;
	// writeOutput();
	initQuiz();
}

// -----------------------------------------------------------------------------------------------------------------------------
function clearAll() {
	clearInnerHtmlById('questionLine');
	clearInnerHtmlById('questions');
	clearInnerHtmlById('quizButton');
}

// -----------------------------------------------------------------------------------------------------------------------------
function clearInnerHtmlById(idName) {
	document.getElementById(idName).innerHTML = '';
}

// DEBUG----------------------------------------------------------------------------------------------------------------------
/*
function checkDataFile() {
	var alertString = checkMainData();
	alertString += checkRankData();
	alert(alertString);
}

function checkMainData() {
	var rs = '';
	// pruefen der Ueberschrift.
	if (aQuestion[0].length == 0) {
		rs += 'Es fehlt die Quiz???berschrift.\n';
	}	
	
	// Pruefen der Fragepackete
	for (var i = 1; i < aQuestion.length; i++) {
		if (aQuestion[i].question.length == 0) {
			rs += 'Es fehlt der Text der ' + i + '. Frage\n';
		}
		if (aQuestion[i].correctAnswer.length == 0) {
			rs += 'Es fehlt der L??sungstext der ' + i + '. Frage\n';
		}
		if (aQuestion[i].correctAnswerIndex.length == 0) {
			rs += 'Es fehlt der L??sungs Index der ' + i + '. Frage\n';
		}
		
		for (var y = 0; y < 3; y++) {
			if (aQuestion[i].answers[y] == null || aQuestion[i].answers[y].length == 0) {
				rs += 'Es fehlt die ' + (y + 1) + '. Antwortm??glichkeit der ' + i + '. Frage.\n';
			}
		}
	}
	// Ausgabe eines Statustext, wenn alles in Ordnung ist.
	if (rs.length == 0) {
		rs += 'Die ' + getQuestionCounter() + ' Fragen sind alle richtig Eingegeben.\n\n';
	}
	else {
		rs += '\n';
	}
	return rs;
}

function checkRankData() {
	var rs = '';
	
	for (var i = 0; i < oRank.estimate.length || i < oRank.minValue.length || i < oRank.maxValue.length; i ++) {
		if (oRank.estimate[i].length == 0) {
			rs += 'Der ' + (i + 1) + '. Bewertungstext fehlt.\n';
		}
		if (oRank.minValue[i].length == 0) {
			rs += 'Die ' + (i + 1) + '. Minimumprozentangabe fehlt.\n';
		}
		if (oRank.maxValue[i].length == 0) {
			rs += 'Die ' + (i + 1) + '. Maximumprozentangabe fehlt.\n';
		}
	}
	if (rs.length == 0 && oRank.estimate.length == 0) {
		rs += 'Die Standart Bewertungstexte werden nun ausgegeben.\n';
	}	
	if (rs.length == 0) {
		rs += 'Die ' + oRank.estimate.length + ' Bewertungstexte sind vollst??ndig eingegeben.\n';
	}
	return rs;
}
*/

// -----------------------------------------------------------------------------------------------------------------------------

