
// KanjiTeacher JavaScript Functions - © www.unckel.de

// Abfrage-, Button- und Übungs-Array
var kanjiPollingArray;
var kanjiButtonArray;
var kanjiGradeArray;

// ID und Index des Lösungs-Kanjis
var kanjiSolutionId;
var kanjiSolutionIndex;

// Fehlerzähler, Anzahl der zu übenden Kanji
var falseKanji;
var practiceKanjiCount;

// Index des Lösung-Buttons (1,2,3)
var buttonIndex;


function ChooseKanjiSet() {

	// Kanji kopieren
	kanjiPollingArray = new Array;
	
	if (document.getElementById("kanjiSet1").checked) {	kanjiPollingArray = kanjiPollingArray.concat(grade1); EnableReading(1); }
	if (document.getElementById("kanjiSet2").checked) {	kanjiPollingArray = kanjiPollingArray.concat(grade2); EnableReading(1); }
	if (document.getElementById("kanjiSet3").checked) {	kanjiPollingArray = kanjiPollingArray.concat(grade3); EnableReading(1); }
	if (document.getElementById("kanjiSet4").checked) {	kanjiPollingArray = kanjiPollingArray.concat(grade4); EnableReading(1); }
	if (document.getElementById("kanjiSet5").checked) {	kanjiPollingArray = kanjiPollingArray.concat(grade5); EnableReading(1); }
	if (document.getElementById("kanjiSet6").checked) {	kanjiPollingArray = kanjiPollingArray.concat(grade6); EnableReading(1); }
	if (document.getElementById("kanjiSet7").checked) {	kanjiPollingArray = kanjiPollingArray.concat(hiragana); EnableReading(0); }
	if (document.getElementById("kanjiSet8").checked) {	kanjiPollingArray = kanjiPollingArray.concat(katakana); EnableReading(0); }

	kanjiGradeArray = new Array;
	kanjiGradeArray = kanjiGradeArray.concat(kanjiPollingArray);
	
	falseKanji = 0;
	document.getElementById("infoPanel1").innerHTML = "<strong>Click a button!</strong>";
	
	// Anzahl der zu übenden Kanji setzen
	practiceKanjiCount = kanjiPollingArray.length;
	
	ChooseKanji();
}


function ChooseKanji() {
	
	// Vorschläge für Buttons
	kanjiButtonArray = new Array;
	kanjiButtonArray = kanjiButtonArray.concat(kanjiGradeArray);
	
	
	// Zufalls-Kanji-Index
	kanjiSolutionIndex = Math.floor(Math.random()*kanjiPollingArray.length);
	kanjiSolutionId = kanjiPollingArray[kanjiSolutionIndex][0];
	
	// Zufalls-Kanji zeigen
	document.getElementById("kanjiChar").innerHTML = kanjiPollingArray[kanjiSolutionIndex][1];
	
	// Zufalls-Button für Lösung wählen
	//buttonIndex = Math.round(1+Math.random()*2); // bad random!!!!!!
	  buttonIndex = Math.floor(1+Math.random()*3);

	
	// IDs der anderen 2 Buttons ermitteln
	var otherButtonIndex1,otherButtonIndex2; 
	if (buttonIndex == 1) { otherButtonIndex1 = 2; otherButtonIndex2 = 3; }
	if (buttonIndex == 2) { otherButtonIndex1 = 1; otherButtonIndex2 = 3; }
	if (buttonIndex == 3) { otherButtonIndex1 = 1; otherButtonIndex2 = 2; }
	
	// Lösung dem Buttons zuweisen
	//document.getElementById("button" + buttonIndex).value = kanjiPollingArray[kanjiSolutionIndex][2];

	if (document.getElementById("showReading").checked == true) {
		document.getElementById("button" + buttonIndex).value = kanjiPollingArray[kanjiSolutionIndex][2] + " / " + 
			kanjiPollingArray[kanjiSolutionIndex][3] + " / " + kanjiPollingArray[kanjiSolutionIndex][4]; }
	else {
		document.getElementById("button" + buttonIndex).value = kanjiPollingArray[kanjiSolutionIndex][2]; }

	
	// Lösungskanji über ID dem ButtonArray abziehen
	kanjiButtonArray.splice(GetIndexFromId(),1);
	
	// Alternativ-Kanji  den anderen 2 Buttons zuweisen
	var falseButtonIndex1 = Math.floor(Math.random()*kanjiButtonArray.length);	
	//document.getElementById("button" + otherButtonIndex1).value = kanjiButtonArray[falseButtonIndex1][2];

	if (document.getElementById("showReading").checked == true) {
		document.getElementById("button" + otherButtonIndex1).value = kanjiButtonArray[falseButtonIndex1][2] + " / " + 
			kanjiButtonArray[falseButtonIndex1][3] + " / " + kanjiButtonArray[falseButtonIndex1][4]; }
	else {
		document.getElementById("button" + otherButtonIndex1).value = kanjiButtonArray[falseButtonIndex1][2]; }
	
	kanjiButtonArray.splice(falseButtonIndex1,1);
	var falseButtonIndex2 = Math.floor(Math.random()*kanjiButtonArray.length);	
	//document.getElementById("button" + otherButtonIndex2).value = kanjiButtonArray[falseButtonIndex2][2];

	if (document.getElementById("showReading").checked == true) {
		document.getElementById("button" + otherButtonIndex2).value = kanjiButtonArray[falseButtonIndex2][2] + " / " + 
			kanjiButtonArray[falseButtonIndex2][3] + " / " + kanjiButtonArray[falseButtonIndex2][4]; }
	else {
		document.getElementById("button" + otherButtonIndex2).value = kanjiButtonArray[falseButtonIndex2][2]; }

	document.getElementById("infoPanel2").innerHTML = kanjiPollingArray.length + " of " + 
		practiceKanjiCount + " / " + falseKanji + " failed";
	
}


function GetIndexFromId() {
	var i, id;
	for(i = 0; i < kanjiGradeArray.length; i++)
	{
		if(kanjiGradeArray[i][0] == kanjiSolutionId) { id = i; }
	}
	return id;
} 


function CheckKanji(btnId) {

	// ID-Nummer des gedrückten Buttons mit ID des Lösungs-Buttons vergleichen
	if (buttonIndex == btnId.id.substr(6,1)) {
		document.getElementById("infoPanel1").innerHTML = "<img src=\"icon-tick.png\" class=\"icon\" />";

		// Kanji aus Array entfernen
		kanjiPollingArray.splice(kanjiSolutionIndex,1);
	}
	else {
		document.getElementById("infoPanel1").innerHTML = "<img src=\"icon-cross.png\" class=\"icon\" /> " + 
			kanjiPollingArray[kanjiSolutionIndex][1] + " = " + 
			kanjiPollingArray[kanjiSolutionIndex][2];
		falseKanji++;
	}
	
	if (kanjiPollingArray.length < 1) {
		alert("Done!\n\nIf you like it, become a fan on Facebook.\n\nThank you!");
		falseKanji = 0;
		ChooseKanjiSet();
	}
	else {
		ChooseKanji();
	}
}


function ShowHind(show) {

	// Lösung zeigen
	if (show == 1) {
		document.getElementById("kanjiChar").style.fontSize = "13px"; 
		document.getElementById("kanjiChar").style.lineHeight = "20px"; 
		document.getElementById("kanjiChar").innerHTML =  
			kanjiPollingArray[kanjiSolutionIndex][1] + " = " + 
			kanjiPollingArray[kanjiSolutionIndex][2] + "<br />" + 
			"(See wiktionary for this kanji)";
	}
	else {
		document.getElementById("kanjiChar").style.fontSize = "40px"; 
		document.getElementById("kanjiChar").style.lineHeight = "60px"; 
		document.getElementById("kanjiChar").innerHTML = kanjiPollingArray[kanjiSolutionIndex][1];
	}
}

// 
function GotoDict() {
	window.location.href =	"http://en.wiktionary.org/wiki/" + kanjiPollingArray[kanjiSolutionIndex][1];
}

function EnableReading(show) {
	if (show == 1) {
		document.getElementById("showReading").disabled = false;
	}
	else {
		document.getElementById("showReading").checked = false;
		document.getElementById("showReading").disabled = true;
	}
}




/*
document.addEventListener('keydown', 
	function(e) {
		   e = e || window.e;
			//return e.keyCode;
			//alert(e.keyCode); // keyCode = auch F5-Taste z.B.
		
		//document.getElementById("infoPanel1").innerHTML = e.keyCode;
		
		if (e.keyCode == "49") { CheckKanji("button1"); }
		if (e.keyCode == "50") { CheckKanji("button2"); }
		if (e.keyCode == "51") { CheckKanji("button3"); }
		CheckKanji("button1");
		//checkKanji("button2");
		
		//var key = e.which;
		//key = String.fromCharCode(key)
		
		//if(key == "Y")
		//	alert("Du hast Y gedrückt!");

	},
true);
//*/

/*
function ShowArray1() {
	var str = "";
	for (var i=0; i<kanjiPollingArray.length; ++i) {
		str += kanjiPollingArray[i][2] + "<br />";
	}
	document.getElementById("i1").innerHTML = str;
}


function ShowArray2() {
	var str = "";
	for (var i=0; i<kanjiButtonArray.length; i++) {
		str += kanjiButtonArray[i][2] + "<br />";
	}
	document.getElementById("i2").innerHTML = str;
}

function ShowArray3() {
	var str = "";
	for (var i=0; i<kanjiGradeArray.length; i++) {
		str += kanjiGradeArray[i][2] + "<br />";
	}
	document.getElementById("i3").innerHTML = str;
}
*/



