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;	}
	writeHeader();

	if ((Number(question) + 1) > getQuestionCounter()) {
		clearAll();
		writeResult();
	}
	else {
		writeQuestions((Number(question) + 1));
		writeButton(0, (Number(question) + 1));
	}
}

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

function writeButton(form, questionNumber) {
	var onClickValue = '';
	var buttonLabel = '>> weiter';
	
	switch (form) {
		case 1:
			onClickValue = 'callIVWPixel();writeOutput();';
			break;
		case 2:
			onClickValue = 'resetQuiz();';
			buttonLabel = 'nochmal';
			break;
		default:
			onClickValue = 'saveAnswer(' + questionNumber + ');';
			break;
	}
	
	document.getElementById("button").innerHTML = '<a href="javascript://" onClick="' + onClickValue + '">' + buttonLabel + '&nbsp;&nbsp;&nbsp;&nbsp;</a>';
}

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

function writeHeader() {
	var maxQuestions = getQuestionCounter();
	document.getElementById("header").innerHTML = master[0];
}

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

function writeQuestions(questionNumber) {
	document.getElementById("questionLine").innerHTML = master[questionNumber].question;
	var tmpString = '';
	for (var i = 1; i <= master[questionNumber].answers.length; i++) {
		eval('var question = document.getElementById("question' + i + '");');
		if (master[questionNumber].answers[i - 1].length > 0) {
			tmpString = '<table class="quiz" cellpadding="0" cellspacing="0" border="0" style="width:165px;"><tr>';
			tmpString += '<td width="15"><input type="radio" name="radioQuiz" value="' + i + '"></td>';
			tmpString += '<td width="150">' + master[questionNumber].answers[i - 1] + '</td></tr></table>';
		} 
//		else {
//			tmpString = '<b>Warnung:</b> Die ' + i + '. Antwort der Frage ' + questionNumber + ' ist leer.';
//		}
		question.innerHTML = tmpString;
	}
}

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

function saveAnswer(questionNumber) {
	var radioObject = document.quiz.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('Bitte eine Auswahl treffen');
	}
	else {
		window.quiz_answer = checkedValue;
		window.quiz_question = questionNumber;
		callIVWPixel();
		clearAll();
		writeAnswer(questionNumber, checkedValue);
	}
}

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

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

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

function writeAnswer(questionNumber, answerNumber) {
	var answerText = master[questionNumber].correctAnswer;
	var rightNumber = master[questionNumber].correctAnswerIndex;
	
	if (rightNumber == answerNumber) {
		document.getElementById("questionLine").innerHTML = 'Richtig!';
		window.quiz_rightanswer = Number(window.quiz_rightanswer) + 1;
	} 
	else {
		document.getElementById("questionLine").innerHTML = 'Leider falsch!';
	}
	window.quiz_answer = 0;
	document.getElementById("question1").innerHTML = answerText;
	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 = 'Sie haben ' + rightAnswers + ' von ' + allQuestions + ' Fragen richtig beantwortet.';
	var resultString = '';
	
	for (var i = 0; i < rank.estimate.length && resultString == ''; i++) {
		if (rank.maxValue[i] >= prozent && rank.minValue[i] <= prozent) {
			resultString = rank.estimate[i];
		}
	}
	for (var i = 0; i < defaultRank.estimate.length && resultString == ''; i++) {
		if (defaultRank.maxValue[i] >= prozent && defaultRank.minValue[i] <= prozent) {
			resultString = defaultRank.estimate[i];
		}
	}

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

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

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

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

function clearAll() {
	clearInnerHtmlById('questionLine');
	clearInnerHtmlById('question1');
	clearInnerHtmlById('question2');
	clearInnerHtmlById('question3');
	clearInnerHtmlById('button');
}

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

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

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

function callIVWPixel() {
	countivw('quiz');
}

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

function checkDataFile() {
	var alertString = checkMainData();
	alertString +=		checkRankData();
	alert(alertString);
}

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

function checkMainData() {
	var rs = '';
	// pruefen der Ueberschrift.
	if (master[0].length == 0) {
		rs += 'Es fehlt die Quizüberschrift.\n';
	}	
	
	// Pruefen der Fragepackete
	for (var i = 1; i < master.length; i++) {
		if (master[i].question.length == 0) {
			rs += 'Es fehlt der Text der ' + i + '. Frage\n';
		}
		if (master[i].correctAnswer.length == 0) {
			rs += 'Es fehlt der Lösungstext der ' + i + '. Frage\n';
		}
		if (master[i].correctAnswerIndex.length == 0) {
			rs += 'Es fehlt der Lösungs Index der ' + i + '. Frage\n';
		}
		
		for (var y = 0; y < 3; y++) {
			if (master[i].answers[y] == null || master[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 < rank.estimate.length || i < rank.minValue.length || i < rank.maxValue.length; i ++) {
		if (rank.estimate[i].length == 0) {
			rs += 'Der ' + (i + 1) + '. Bewertungstext fehlt.\n';
		}
		if (rank.minValue[i].length == 0) {
			rs += 'Die ' + (i + 1) + '. Minimumprozentangabe fehlt.\n';
		}
		if (rank.maxValue[i].length == 0) {
			rs += 'Die ' + (i + 1) + '. Maximumprozentangabe fehlt.\n';
		}
	}
	if (rs.length == 0 && rank.estimate.length == 0) {
		rs += 'Die Standart Bewertungstexte werden nun ausgegeben.\n';
	}	
	if (rs.length == 0) {
		rs += 'Die ' + rank.estimate.length + ' Bewertungstexte sind vollständig eingegeben.\n';
	}
	return rs;
}

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



