/*	perikura.js
	copyleft Thomas Baspeyras 2004-2005

index:
	Perikura(teacher, onizuka)
*/

function Perikura(teacher, onizuka) {

	var teacherTextNode;
	var onizukaTextNode;

	var teacherInitialChats = new Array();
	var onizukaInitialChats = new Array;

	var teacherGoodComments = new Array;
	var onizukaGoodComments = new Array;
	var teacherBadComments = new Array;
	var onizukaBadComments = new Array;
	var maxBadComments = -1;
	var maxGoodComments = -1;

	this.addTeacherInitialChat = function() {
		for (var i = 0; i < arguments.length; i++) teacherInitialChats.push(arguments[i]);
	}

	this.addOnizukaInitialChat = function() {
		for (var i = 0; i < arguments.length; i++) onizukaInitialChats.push(arguments[i]);
	}

	this.addGoodComments = function(teacherComment, onizukaComment) {
		teacherGoodComments.push(teacherComment);
		onizukaGoodComments.push(onizukaComment);
	}

	this.addBadComments = function(teacherComment, onizukaComment) {
		teacherBadComments.push(teacherComment);
		onizukaBadComments.push(onizukaComment);
	}

	var maxBadComments;
	var maxGoodComments;

	this.addPerikura = function() {
	/*	adds dialog nodes to elements identified by characters name
		ajoute les noeuds de dialogue aux éléments identifiés par le nom des personnages
	*/
		addTo(teacher, teacherTextNode = textNode(teacherInitialChats.random()));
		addTo(onizuka, onizukaTextNode = textNode(onizukaInitialChats.random()));
		maxBadComments = teacherBadComments.length - 1;
		maxGoodComments = teacherGoodComments.length - 1;
	}

	var lowestGoodMark = 100;
	var lowestBadMark = 100;

	this.commentMarks = function(marks) {
	/*	characters comment marks harshly
		les personnages commentent les notes durement
	*/
		var badMark = 2 * marks["wrong"] + marks["missing"];
		if (badMark > 0) {
			if (badMark < lowestBadMark) lowestBadMark = badMark;
			var commentIndex = Math.min(badMark - lowestBadMark, maxBadComments);
			teacherTextNode.data = teacherBadComments[commentIndex];
			onizukaTextNode.data = onizukaBadComments[commentIndex];
		}
		else {
			var goodMark = marks["right"];
			if (goodMark < lowestGoodMark) lowestGoodMark = goodMark;
			var commentIndex = Math.min(goodMark - lowestGoodMark, maxGoodComments);
			teacherTextNode.data = teacherGoodComments[commentIndex];
			onizukaTextNode.data = onizukaGoodComments[commentIndex];
		}
	}
}
