// JavaScript Document

var kana = new Array();
kana["hira"] = "あ,い,う,え,お,か,き,く,け,こ,さ,し,す,せ,そ,た,ち,つ,て,と,な,に,ぬ,ね,の,は,ひ,ふ,へ,ほ,ま,み,む,め,も,や,ゆ,よ,ら,り,る,れ,ろ,わ,を,ん,が,ぎ,ぐ,げ,ご,ざ,じ,ず,ぜ,ぞ,だ,ぢ,づ,で,ど,ば,び,ぶ,べ,ぼ,ぱ,ぴ,ぷ,ぺ,ぽ,きゃ,きゅ,きょ,しゃ,しゅ,しょ,ちゃ,ちゅ,ちょ,にゃ,にゅ,にょ,ひゃ,ひゅ,ひょ,みゃ,みゅ,みょ,りゃ,りゅ,りょ,ぎゃ,ぎゅ,ぎょ,じゃ,じゅ,じょ,ぢゃ,ぢゅ,ぢょ,びゃ,びゅ,びょ,ぴゃ,ぴゅ,ぴょ,　,。";
kana["hira"] = kana["hira"].split(",");

kana["kata"] = "ア,イ,ウ,エ,オ,カ,キ,ク,ケ,コ,サ,シ,ス,セ,ソ,タ,チ,ツ,テ,ト,ナ,ニ,ヌ,ネ,ノ,ハ,ヒ,フ,ヘ,ホ,マ,ミ,ム,メ,モ,ヤ,ユ,ヨ,ラ,リ,ル,レ,ロ,ワ,ヲ,ン,ガ,ギ,グ,ゲ,ゴ,ザ,ジ,ズ,ゼ,ゾ,ダ,ヂ,ヅ,デ,ド,バ,ビ,ブ,ベ,ボ,パ,ピ,プ,ペ,ポ,キャ,キュ,キョ,シャ,シュ,ショ,チャ,チュ,チョ,ニャ,ニュ,ニョ,ヒャ,ヒュ,ヒョ,ミャ,ミュ,ミョ,リャ,リュ,リョ,ギャ,ギュ,ギョ,ジャ,ジュ,ジョ,ヂャ,ヂュ,ヂョ,ビャ,ビュ,ビョ,ピャ,ピュ,ピョ,　,。";
kana["kata"] = kana["kata"].split(",");

kana["romaji"] = "a,i,u,e,o,ka,ki,ku,ke,ko,sa,shi,su,se,so,ta,chi,tsu,te,to,na,ni,nu,ne,no,ha,hi,hu,he,ho,ma,mi,mu,me,mo,ya,yu,yo,ra,ri,ru,re,ro,wa,wo,n,ga,gi,gu,ge,go,za,ji,zu,ze,zo,da,ji,zu,de,do,ba,bi,bu,be,bo,pa,pi,pu,pe,po,kya,kyu,kyo,sha,shu,sho,cha,chu,cho,nya,nyu,nyo,hya,hyu,hyo,mya,myu,myo,rya,ryu,ryo,gya,gyu,gyo,jya,jyu,jyo,jya,jyu,jyo,bya,byu,byo,pya,pyu,pyo, ,.";
kana["romaji"] = kana["romaji"].split(",");

var len = kana["hira"].length-3;
var savedWord;
var lvl = 0;


function createWord(count){
	vWord = new Array();
	for(i=0;i<count;i++){
		vWord.push(Math.floor(Math.random()*len));
	}
	return vWord;
}

function writeKana(word,type){
	vKana = kana[type];
	count = word.length;
	vWord = "";
	for(i=0;i<count;i++){
		vWord += vKana[word[i]];
	}
	return vWord;
}

function createPhrase(words,maxKana,minKana){
	
	if(savedWord)
		writeHistory();
	
	vPhrase = new Array();
	for(p=0;p<words;p++){
		vPhrase += createWord(Math.round(Math.random()*(maxKana-minKana)+minKana));
		if(p<words-1)
			vPhrase += ","+(len+1)+",";	
	}
	vPhrase += ","+(len+2);
	
	savedWord = vPhrase.split(",");
	
	return savedWord;
}

function createRandom(){
	if(lvl != 0){
		id("btRomaji").className = "";
		switch(lvl){
			case 1:
				return createPhrase(1,2,3);
			break;
			case 2:
				return createPhrase(3,2,3);
			break;
			case 3:
				return createPhrase(3,3,5);
			break;
			case 4:
				return createPhrase(4,2,8);
			break;
			case 5:
				return createPhrase(Math.ceil(Math.random()*3+1),8,2);
			break;
		}
	}
}

function writeHTML(v,type){
	if(lvl != 0){
		if(type != "romaji"){
			if(currKana != ""){
				id(currKana).className = "";
			}
			currKana = type;
			id(currKana).className = "active";
			
			isRomaji = false;
			id("romaji").innerHTML = "in Romaji umwandeln!";
			
		}
		
		id(v).innerHTML = writeKana(savedWord,type);
	}
}

function id(i){
	return document.getElementById(i);
}

function writeHistory(){
	hist = id("history");
	vhist = "";
	vhist += "<div class='divBox'><table border=0 cellpadding=0 cellspacing = 0>"
	
	if(currKana == "hira"){
		vhist += "<tr><td width=60>Hiragana: </td><td>";
		vhist += writeKana(savedWord,"hira");
		vhist += "</td></tr>";
	}else{
		vhist += "<tr><td width=60>Katkana: </td><td>";
		vhist += writeKana(savedWord,"kata");
		vhist += "</td></tr>";
	}
	vhist += "<tr><td>Romaji: </td><td>";
	vhist += writeKana(savedWord,"romaji");
	vhist += "</td></tr>";
	vhist += "</table></div>";
	
	hist.innerHTML = vhist + hist.innerHTML;
}

function setLevelTo(v,c){
	
	if(lvl != 0){
		id("lvl"+lvl).className = "";	
	}else{
		id("hira").className = "";
		id("kata").className = "";
	}
	lvl = v;
	id("lvl"+v).className = "active ";
	
	
	hist = id("history");
	if(savedWord){
		writeHistory();
		savedWord = false;
	}
	hist.innerHTML = "<div class='divBox'><p>Level set to «"+v+"»</p></div>" + hist.innerHTML;
	id(c).innerText = "Level «"+v+"» ";
	
	isRomaji = true;
	if(currKana == "kata"){
		id("romaji").innerHTML = "neuen Katakana-Satz Level «"+lvl+"» erstellen!";
	}else if(currKana == "hira"){
		id("romaji").innerHTML = "neuen Hiragana-Satz Level «"+lvl+"» erstellen!";
	}
}

var isRomaji = true;
var currKana = "";
function toggleRomaji(content,obj){
	if(currKana != ""){
		if(isRomaji){
			createRandom();
			writeHTML(content,currKana);
		}else{
			writeHTML(content,"romaji");
			isRomaji = true;
			if(currKana == "kata")
				id("romaji").innerHTML = "neuen Katakana-Satz Level «"+lvl+"» erstellen!";
			if(currKana == "hira")
				id("romaji").innerHTML = "neuen Hiragana-Satz Level «"+lvl+"» erstellen!";
		}
	}
}

function iPhone(){
	if (window.navigator.standalone){
		id("iPhoneInfo").innerHTML = "<strong>Vielen Dank, dass Sie Enjor readKana auf Ihrem Home-Screen eingerichtet haben!</strong>";
	}
}