var wbmLeftTries;
var wbmAvailableLetters = new Array("a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "ä", "ö", "ü");
var wbmUsedLetters;
var wbmCurrentWordSelected;
var wbmImageVisible;
var wbmCurrentWordInput;
var wbmSelectedWord;

function wbmInit() {
	var wbmWord;
	
	wbmUsedLetters = new Array();
	//wbmLeftTries = 8;
	wbmLeftTries = 10;
	wbmSelectedWord = document.getElementById("wbm_settings_word").innerHTML;
	wbmWord = wbmSelectedWord.toLowerCase();
	if (wbmWord.length == 0) {
		//window.location.reload();
		//alert(wbmWord.length);
		//alert(wbmCurrentWordSelected.length);
		return;
	}
	
	wbmCurrentWordInput = new Array();
	wbmCurrentWordSelected = new Array();
	for (var i = 0; i < wbmWord.length; i++) {
		wbmCurrentWordInput.push("_");
		wbmCurrentWordSelected.push("_");
	}
	wbmImageVisible = new Array(false, false, false, false, false, false, false, false, false);
	$("#wbm_image div").css("visibility","visible");
	
	for(var i = 0; i < wbmCurrentWordSelected.length; i++) {
		wbmCurrentWordSelected[i] = wbmWord.substring(i,i+1);
	}
	
	wbmSetInputText();
	wbmSetInputLetters();
	wbmSetImage(0);
	//wbmSetStatus("Sie haben noch " + wbmLeftTries + " Versuche.");
	wbmSetStatus(wbmGetStatus("instr1") + wbmLeftTries + wbmGetStatus("instr2"));
	document.getElementById("wbm_input_letters").style.visibility = "visible";
}

function wbmSetInputText() {
	var output = "";
	for(var i = 0; i < wbmCurrentWordInput.length; i++) {
		output = output + wbmCurrentWordInput[i].toUpperCase() + " ";
	}
	wbmSetInnerHtml("wbm_input_text",output);
}

function wbmSetInputLetters() {
	var output = "";
	var bLtrIsAvailable;
	for(var i = 0; i < wbmAvailableLetters.length; i++) {
		bLtrIsAvailable = true;
		for(var j = 0; j < wbmUsedLetters.length; j++) {
			if (wbmAvailableLetters[i] == wbmUsedLetters[j]) {
				bLtrIsAvailable = false;
				break;
			}
		}
		output = output + "<li";
		if (bLtrIsAvailable) output = output + " class=\"clickable\" onclick=\"javascript:wbmLtrInput('" + wbmAvailableLetters[i] + "'); return false;\"";
		if (!bLtrIsAvailable) output = output + " class=\"unclickable\"";
		output = output + ">";
		output = output + wbmAvailableLetters[i].toUpperCase();
		output = output + "</li>";
	}
	wbmSetInnerHtml("wbm_input_letters",output);
}

function wbmSetImage() {
	//wbmSetInnerHtml("wbm_image","Bild: " + number);
	for (var i = 0; i < wbmImageVisible.length; i++) {
		if (wbmImageVisible[i]) $("#wbm_image_" + i).css("visibility","hidden");
		else $("#wbm_image_" + i).css("visibility","visible");
	}
}

function wbmShowFurtherImagePart() {
	//return;
	var newFieldId = wbmGetRandom(0,wbmImageVisible.length - 1);
	var cnt = 0;
	while (!wbmIsOpenable(newFieldId)) {
		newFieldId = wbmGetRandom(0,wbmImageVisible.length - 1);
		cnt++;
		if (cnt > 100) return;
	}
	wbmImageVisible[newFieldId] = true;
}

function wbmIsOpenable(fieldId) {
	if (wbmImageVisible[fieldId]) return false;
	else return true;
}

function wbmGetStatus(code) {
	return document.getElementById("wbm_settings_status_" + code).innerHTML;
}

function wbmSetStatus(text) {
	wbmSetInnerHtml("wbm_status",text);
}

function wbmLtrInput(ltr) {
	var correspondingLetters = 0;
	var bHit = false;
	
	wbmUsedLetters.push(ltr);
	
	for(var i = 0; i < wbmCurrentWordSelected.length; i++) {
		if (wbmCurrentWordSelected[i] == ltr) {
			wbmCurrentWordInput[i] = ltr;
			bHit = true
			wbmShowFurtherImagePart();
		}
		if (wbmCurrentWordSelected[i] == wbmCurrentWordInput[i]) {
			correspondingLetters++;
		}
	}
	if (!bHit) wbmLeftTries--;
	
	wbmSetInputText();
	wbmSetInputLetters();
	wbmSetImage();
	if (correspondingLetters == wbmCurrentWordSelected.length) {
		//has won
		document.getElementById("wbm_input_letters").style.visibility = "hidden";
		wbmSetStatus(wbmGetStatus("won"));
		document.getElementById("wbm_imagecopyright").style.visibility = "visible";
	}
	else {
		if (wbmLeftTries <= 0) {
			//has lost
			document.getElementById("wbm_input_letters").style.visibility = "hidden";
			wbmSetStatus(wbmGetStatus("lost1") + wbmSelectedWord + wbmGetStatus("lost2"));
		}
		else {
			wbmSetStatus(wbmGetStatus("instr1") + wbmLeftTries + wbmGetStatus("instr2"));
		}
	}
}

function wbmSetInnerHtml(id,value) {
	document.getElementById(id).innerHTML = value;
}

function wbmGetRandom(min,max) {
	if(min > max) {
		return(-1);
	}
	if(min == max) {
		return(min);
	}
	return(min + parseInt(Math.random() * (max-min+1)));
}
