/**
 * Wertet aus, ob die übergebene Checkbox ausgewaehlt ist und veraendert
 * dementsprechend die global gespeicherten Stoffwerte. Ruft anschließend
 * quizUpdate() auf.
 * @param oCheckBox Object Die Checkbox.
 * @param aStoffe   Array  Das Array von Stoffveraenderungen. Muss die
 *                  gleiche Laenge haben, wie das globale Array.
 */
function quizDo(oCheckBox, aStoffe) {
	var iVorzeichen = 1;
	if (!$(oCheckBox).is(':checked')) {
		iVorzeichen = -1;
	}
	for (var i = 0; i < aGesamtStoffe.length; i++) {
		aGesamtStoffe[i] = aGesamtStoffe[i] + iVorzeichen * aStoffe[i];
	}
	quizUpdate();
}

/**
 * Aktualisiert die Anzeige des globalen Stoffarays auf der Webseite.
 */
function quizUpdate() {
	for (var i = 0; i < aGesamtStoffe.length; i++) {
		$('#quizStoff_' + i).html(aGesamtStoffe[i]);	
	}
	updateColors();
}

/**
 * Setzt alle Eingabeelemente zurück.
 */
function quizClearElements() {
	$("input[type='checkbox']").attr("checked", false);
}


/**
 * Schreibt Werte in die GUI.
 */
function initGUI() {
	for (var i = 0; i < aStoffMaximum.length; i++) {
		$('#quizStoffMax_' + i).html(aStoffMaximum[i]);	
		$('#quizStoffGrenzwert_' + i).html(aStoffGrenzwert[i]);	
	}
	quizUpdate();
}

/**
 * Prueft die Werte mit den Grenzwerten und passt gegebenenfalls die Farben an.
 */
function updateColors() {
	for (var i = 0; i < aGesamtStoffe.length; i++) {
		var color = '#00FF00';
		if (aGesamtStoffe[i] < aStoffGrenzwert[i]) {
			color = '#FF0000';
		} else if (aGesamtStoffe[i] == aStoffGrenzwert[i]) {
			color = '#FFFF00';
		}
		$('#quizStoff_' + i).css('background-color', color);
	}
}

/**
 * Gibt ja nach Grenzwertüberschreitung oder Übereinstimmung den Hinweistext auf Fehlen aus.
 */
function updateAuswertung() {
	for (var i = 0; i < aGesamtStoffe.length; i++) {
		if (aGesamtStoffe[i] <= aStoffGrenzwert[i]) {
			$('#quizAuswertung_' + i).html(aStoffTexte[i]);
		} else {
			$('#quizAuswertung_' + i).html(sStandardauswertung);
		}	
	}
}

/**
 * Startet automatisch, sobald das DOM Objekt fertig geladen ist.
 * Initialisiert und ruft dann quizUpdate() auf.
 */
$(document).ready(function () {
	quizClearElements();
	initVars();
	initGUI();
});

