
/* Globale Variablen */
var ersteRunde = false;
var rundenzaehler = 0;
var galgenzaehler = 0;
var	spielZuende = false;
var zufall_m = 714025;         // Initialisiert die Varialblen für die Zufallsberechnung
var zufall_a=4096; 			   
var zufall_c=150889;           
var gdt = new Date()
var zufall_start = gdt.getTime()%zufall_m; 
var hangman = new Array();
var secret = new Array();
var enabled = new Array();
var pushed = new Array();
var down = new Array();
var up = new Array();
var rot = new Array();
var gruen = new Array();
var woerter = new Array();			
var wort = new Array();
var found = new Array();

function zufall(){
	/* Berechnet eine Pseudozufallszahl 0 oder 1 auf Basis linearer Kongruenzen */
	zufall_start = (zufall_start * zufall_a + zufall_c) % zufall_m;
	return Math.round(zufall_start / zufall_m);
}

function rdzaehler(){
	/* Aktualisiert die Runden- und Trefferzahl auf dem Bildschrim */
	zaehle(rundenzaehler, "zug");
}

function initialize(){	
	/* Initialisiere Buchstaben */
	var INIT = "abcdefghijklmnopqrstuvwxyz";
	var bildurl;
	var neueswort;
	for(nz=0; nz<INIT.length; nz++){
		nn = INIT.charAt(nz);
		gruen[nn]= new Image(); gruen[nn].src="gfx/gal_"+nn+"g.gif";
		rot[nn]= new Image(); rot[nn].src="gfx/gal_"+nn+"r.gif";
		up[nn]= new Image(); up[nn].src="gfx/gal_"+nn+".gif";
		down[nn]= new Image(); down[nn].src="gfx/gal_"+nn+"p.gif";
		document[nn].src=up[nn].src;
		pushed[nn] = false;
		enabled[nn] = true;
		secret[nn] = new Image(); secret[nn].src="gfx/galg_s_"+nn+".gif";
	}
	secret["_"]= new Image(); secret["_"].src="gfx/galg_s__.gif";
	secret["-"]= new Image(); secret["-"].src="gfx/galg_s_-.gif";
	secret[" "]= new Image(); secret[" "].src="gfx/galg_s_.gif";		
	/* Initialisiere Galgen */
	for (nz = 0; nz<13; nz++){
		bildurl ="gfx/galgen";					
		if (nz<10){bildurl+="0";}
		bildurl += nz+".gif";
		hangman[nz]= new Image(); hangman[nz].src=bildurl;
	}
	document["galgen"].src = hangman[0].src
	galgenzaehler = 0;
	/* Erstelle Unterstriche */
	/* Beginne Spiel */
	rundenzaehler = 0;
	document.forms['ru'].elements['nextround'].disabled = true;
	document.forms['hs'].elements['eintrager'].style.visibility = "hidden";
	document.forms['hs'].elements['eintrager'].disabled = true;
	wortliste();
	mische();
	ersteRunde = true;
	rundenzaehler ++;
	rdzaehler();
	neueswort = ziehe();
	if (neueswort!=null){wortzuteiler(neueswort)};
}

function neustart(){
	var neueswort = ziehe();
	if (neueswort!=null){
		var INIT = "abcdefghijklmnopqrstuvwxyz";
		for(nz=0; nz<INIT.length; nz++){
			nn = INIT.charAt(nz);
			document[nn].src=up[nn].src;
			pushed[nn]= false;
			enabled[nn]= true;
		}
		rundenzaehler ++;
		rdzaehler();
		wortzuteiler(neueswort);
	}
	document.forms['ru'].elements['nextround'].disabled = true;
	spielZuende = false;
	// Galgen um eine Einheit abbauen
	if (galgenzaehler>0){
		galgenzaehler--;
		document["galgen"].src = hangman[galgenzaehler].src;
	}
}
	

function mische(){
	// mischt die Wörter durch;
	var pool = new Array();
	var pos = 0;
	var hier = 0;
	woerter.sort();
	woerter.reverse();
	while (woerter.length>0){
		pos = 0;
		for (ooo = 0; ooo<woerter.length-1; ooo++){
			pos+= zufall();
		}
		if (woerter[pos]!=""){pool[hier] = woerter[pos];}
		woerter[pos] = "";
		woerter.sort();
		woerter.reverse();
		woerter.length --;
		hier ++;
//		else{alert(woerter[pos]);}
	}
	for (ppp = 0; ppp<pool.length; ppp++){
		woerter[ppp] = pool[ppp];
	}
}

function ziehe(){
	// ziehe ein Wort aus der Wortliste
	var zuf = 0;
	var geheimwort;
	if (woerter.length==0){
		alert("Herzlichen Glückwunsch, Sie haben die komplette Wortliste durch!");
		document.forms['hs'].elements['eintrager'].style.visibility = "visible";
		document.forms['hs'].elements['eintrager'].disabled = false;
		spielZuende = true;
		var EXIT = "abcdefghijklmnopqrstuvwxyz";
		for(nz=0; nz<EXIT.length; nz++){
			enabled[EXIT.charAt(nz)] = false;
		}
		return null;
		}
	else{
		for (zzz = 0; zzz<woerter.length-1; zzz++){
			zuf+=zufall();
		}	
		geheimwort = woerter[zuf];
		woerter[zuf] = "";
		woerter.sort();
		woerter.reverse();
		woerter.length--;
		mische();
		if (geheimwort==null){
			geheimwort = ziehe();
		}
		return geheimwort;
	}
}
	
function press(buchstabe){
	if (enabled[buchstabe]){
		pushed[buchstabe] = true;
		document[buchstabe].src=down[buchstabe].src;
	}
}

function release(buchstabe){
	if (pushed[buchstabe]){	
		document[buchstabe].src=up[buchstabe].src;
		enabled[buchstabe] = false;
		pushed[buchstabe] = false;
		if (isInWord(buchstabe)){
			document[buchstabe].src=gruen[buchstabe].src;
			if ((allesAufgedeckt())&&(!spielZuende)) {gewonnen();}
		}
		else{
			document[buchstabe].src=rot[buchstabe].src;
			baueGalgen();
			if (galgenzaehler>=12){verloren();}
		}
	}
}

function isInWord(letter){
	var gefunden=false;
	for (jj = 0; jj<wort.length; jj++){
		if (letter==wort[jj]){
			deckeAuf(jj);
			gefunden = true;
		}
	}
	return gefunden;
}

function baueGalgen(){
	galgenzaehler++;
	document["galgen"].src = hangman[galgenzaehler].src;
}

function spielende(){
	var EXIT = "abcdefghijklmnopqrstuvwxyz";
	for(nz=0; nz<EXIT.length; nz++){
		enabled[EXIT.charAt(nz)] = false;
	}
	for (ijk = 0; ijk < wort.length; ijk++){
		deckeAuf(ijk);
	}
}

function verloren(){
	www="";
	for (abc = 0; abc<wort.length; abc++){
		www += wort[abc];
	}
	document.forms['hs'].elements['eintrager'].style.visibility = "visible";
	document.forms['hs'].elements['eintrager'].disabled = false;
	spielZuende = true;
	spielende();
}

function gewonnen(){
	www="";
	for (abc = 0; abc<wort.length; abc++){
		www += wort[abc];
	}
	spielZuende = true;
	spielende();
	document.forms['ru'].elements['nextround'].disabled = false;
}

function wortzuteiler(secretword){
	for (nzz = 0; nzz<secretword.length; nzz++){
		wort[nzz] = secretword.charAt(nzz);
		found[nzz] = false;
	}
	unterstriche();
}

function deckeAuf(position){
	// decke einen Buchstaben auf
	document["s"+position].src = secret[wort[position]].src;
	found[position] = true;
}

function allesAufgedeckt(){
	var ffound= true;
	for (kl = 0; kl<found.length; kl++){
		if (!found[kl]){
			ffound = false;
		}
	}
	return ffound;
}
	
function unterstriche(){
	for (var q=0; q<wort.length; q++){
		if (wort[q] == " "){
			document["s"+q].src = secret[" "].src;
			found[q] = true;
		}
		else{
			document["s"+q].src = secret["_"].src;
		}
	}
}	













































































































function eintragen(){
	url="http://ki219.fernuni-hagen.de/php/eichhorn/hgein.php?";
	url+="zuege="+(((((rundenzaehler+13)*7)+11)*3)-1);
	location.href=url;
}
function wortliste(){
	/* Initialisiere Wörter-Array */
	woerter[ 0] = " chorleiter  ";
	woerter[ 1] = "   gospel    ";
	woerter[ 2] = "    queen    ";
	woerter[ 3] = " achtelnote  ";
	woerter[ 4] = " notenmappe  ";
	woerter[ 5] = "    tenor    ";
	woerter[ 6] = "    sopran   ";
	woerter[ 7] = "     alt     ";
	woerter[ 8] = "     bass    ";
	woerter[ 9] = " outta limits";
	woerter[10] = "  tintijana  ";
	woerter[11] = "  wise guys  ";
	woerter[12] = "mauersberger ";
	woerter[13] = "    singen   ";
	woerter[14] = " gern singen ";
	woerter[15] = " apnoesingen ";
	woerter[16] = "    keller   ";
	woerter[17] = "    soest    ";
	woerter[18] = " mendelssohn ";
	woerter[19] = "    orgel    ";
	woerter[20] = "   klavier   ";
	woerter[21] = "fronleichnam ";
	woerter[22] = "   klavier   ";
	woerter[23] = "   fluegel   ";
	woerter[24] = "notenstaender";
	woerter[25] = "  bluethner  ";
	woerter[26] = "  tenorhasi  ";
	woerter[27] = "  stimmicals ";
	woerter[28] = "  einsingen  ";
	woerter[29] = "  intervall  ";
	woerter[30] = "    quinte   ";
	woerter[31] = "    quarte   ";
	woerter[32] = "  tritonus   ";
	woerter[33] = "otmar stangl ";
	woerter[34] = "  oekumene   ";
	woerter[35] = "     bach    ";
	woerter[36] = "mittwochabend";
	woerter[37] = "  weizenbier ";
	woerter[38] = "  amaretto   ";
	woerter[39] = "kartoffelhaus";
	woerter[40] = "  sologesang ";
	woerter[41] = "  puenktlich ";
	woerter[42] = "    swing    ";
	woerter[43] = " afro gospel ";
	woerter[44] = "engelsgleich ";
	woerter[45] = "  halleluja  ";
	woerter[46] = "go down moses";
	woerter[47] = "   hochzeit  ";
	woerter[48] = " osternacht  ";
	woerter[49] = "konfirmation ";
	woerter[50] = "erdbeerbowle ";
	woerter[51] = "kirchenmusik ";
	woerter[52] = "   konzert   ";
	woerter[53] = "    triole   ";
	woerter[54] = "  dortmund   ";
	woerter[55] = "   iserlohn  ";
	woerter[56] = "    hemer    ";
	woerter[57] = "   nachrodt  ";
	woerter[58] = "  chorkasse  ";
	woerter[59] = "  webmaster  ";
	woerter[60] = "  chromatik  ";
	woerter[61] = " raucherpause";
	woerter[62] = " barockmusik ";
	woerter[63] = "  rockmusik  ";
	woerter[64] = "   romantik  ";
	woerter[65] = "   romanik   ";
	woerter[66] = "   popmusik  ";
	woerter[67] = "     taize   ";
	woerter[68] = " apfelschorle";
	woerter[69] = " klassenbuch ";
	woerter[70] = " gemeindehaus";
}


