var karten=0, breit=0, hoch=0;
var karte=new Array(); 
var mlbr=new Array(); 
var emk=new Array(); 
var emz=new Array(); 
var i, j, k, l, m, n;
var lf=String.fromCharCode(10);
var lebrm=0, breit=3, hoch=4, spieler=1, vogelzahl=0, getabt=0;
var	mh=Math.floor((screen.availHeight-100)/61);
var	mb=Math.floor((screen.availWidth-60)/91);
if (mh*mb>(2*vogelanzahl)) mb=Math.floor((2*vogelanzahl)/mh);

function pfeil(n,o,p)
{	
	if (p<0) p=0;
	if (p>o) p=o;

	lebrm=p;
	for (i=0; i<=o; i++)
		document.getElementById(n+i).src="leer.gif";
	document.getElementById(n+p).src="pfeilrechts_w.gif";
}

function zufallszahl(n)  //								ganze zufallszahl von 0 bis n
{	var zahl=Math.floor(Math.random()*(n+1));
	return zahl;
}

function vorhanden(y) 	//									sucht in karten nach wert y -> kartennummer oder -1
{	var x=-1, i=0;
	while ((karte[i]!=y)&&(i<karten)) i++;
	if (i<karten) x=i;
	return x;
}

function mischen()
{
	for(i=0;i<karten;i++)   // 								karten initialisieren
	{	karte[i]="#";
		mlbr[i]=false;
		emk[i]="#";
	}
	i=0;

	while (vorhanden("#")!=-1) 	//							mischvorgang
	{	j=zufallszahl(vogelanzahl-1);
		while ((vorhanden(j)!=-1)||(!document.vogels.elements[j].checked)) if (j<(vogelanzahl-1)) j++; else j=0;
		emz[i]=j;
		
		k=zufallszahl(karten);
		while (karte[k]!="#") if (k<karten) k++; else k=0;
		karte[k]=j;
		emk[k]=i;
		
		m==zufallszahl(karten);
		while (karte[m]!="#") if (m>=0) m--; else m=karten;
		karte[m]=j;
		emk[m]=i;
		mlbr[m]=(lebrm==1);
		
		i++;
	}
}

function spielfenster() 
{	
	if (haveff) 
		fenster=window.open("", "", "width="+(91*breit+80)+",height="+(61*hoch+80)+",left="+Math.floor((screen.availWidth-91*breit-960)/2)+",resizable=yes");
	else
	{	fenster=window.open("", "");
		fenster.resizeTo((91*breit+95), (61*hoch+255));
	}
	fenster.focus();
	fenster.document.writeln("<html>");
	fenster.document.writeln("<head>");
	fenster.document.writeln("<title>VOGELMEMORY:SPIEL</title>");
	fenster.document.writeln("<style type='text/css'>");
	fenster.document.writeln("body {font-family:'arial narrow'; font-size:12px; color:#ffffff; background-color:#5E86BD; margin-left:20px; margin-top:20px; margin-bottom:20px;}");
	fenster.document.writeln("a {text-decoration:none; font-size:12px; color:#ffffff;}");
	fenster.document.writeln("a:hover {text-decoration:underline;}");
	fenster.document.writeln("h1 {font-family: times new roman; font-size:48px; color: #ffffff;}");
	fenster.document.writeln("input {font-family:'arial narrow'; font-size:12px; color:#ffffff; background-color:#5E86BD; border-color:#7094c5; border-style:solid; text-align:center;}");
	fenster.document.writeln("</style>");
	fenster.document.writeln("<script language='JavaScript' type='text/JavaScript'>");
	//  fenster.document.writeln("var unfertig=true;");
	fenster.document.writeln("var emk=new Array();");
	k=0;
	for (i=0; i < hoch; i++) 
	{	for (j=0; j < breit; j++) 
		{	fenster.document.write("emk["+k+"]="+emk[k++]+"; ");
		}
		fenster.document.writeln("");
	}
	fenster.document.writeln("</script>");
	if (haveff) 
		fenster.document.writeln("<script src='spielff.js' language='JavaScript' type='text/JavaScript'></script>");
	else 
	{	if (haveqt) 
			fenster.document.writeln("<script src='spielqt.js' language='JavaScript' type='text/JavaScript'></script>");
		else 
			fenster.document.writeln("<script src='spiel.js' language='JavaScript' type='text/JavaScript'></script>");
	}
	fenster.document.writeln("</head>");
	fenster.document.writeln("");
	fenster.document.writeln("<body onLoad='anfang()'>");
	fenster.document.writeln("<div align='right' style='position:absolute; top:"+(61*hoch-27)+"px; left:30px; width:"+(91*breit+0)+"px; z-index:2;'>");
	fenster.document.writeln("    <h1>...geduld...</h1></div>");
	k=0; m=0;
	for (i=0; i < hoch; i++) 
	{	fenster.document.writeln("");
		fenster.document.writeln("<!--  zeile "+(i+1)+"  -->");
		fenster.document.writeln("");
		for (j=0; j < breit; j++) 
		{	if (k%2==0) 
			{	fenster.document.writeln("<!--  "+(k/2)+"."+emz[k/2]+"  -->");
				if (haveqt) 
				{	fenster.document.writeln("<OBJECT classid='clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B'");
					fenster.document.writeln("    codebase='http://www.apple.com/qtactivex/qtplugin.cab' width='0' height='0' id='movie"+(k/2)+"'>");
					fenster.document.writeln("<PARAM name='src' value='http://www.vogelwarte.ch/assets/media/voices/"+(daten[5*emz[k/2]])+".mp3'>");
					fenster.document.writeln("<PARAM name='autostart' value='false'>");
					fenster.document.writeln("<embed width='0' height='0' type='audio/mpeg' autostart='false'");
					fenster.document.writeln("    src='http://www.vogelwarte.ch/assets/media/voices/"+(daten[5*emz[k/2]])+".mp3' PLUGINSPAGE='www.apple.com/quicktime/download'");
					fenster.document.writeln("    name='movie"+(k/2)+"' enablejavascript='true'></embed>");
					fenster.document.writeln("</OBJECT>");
				}
				else
				{	fenster.document.writeln("<embed name='movie"+(k/2)+"' type='audio/mpeg' autostart='false'");
					fenster.document.writeln("    src='http://www.vogelwarte.ch/assets/media/voices/"+(daten[5*emz[k/2]])+".mp3' width='0' height='0'></embed>");
				}
				fenster.document.writeln("");
				fenster.document.writeln("");
			}
			fenster.document.writeln("<!--  "+k+"."+karte[k]+"  -->");
			fenster.document.writeln("<div style='position:absolute; width:90px; height:60px; top:"+(61*i+30)+"px; left:"+(91*j+30)+"px; z-index:1'>");
			fenster.document.writeln("    <a href='javascript:bildwechsel("+(m++)+")'><img src='logo3.gif' border='0'></a></div>");
			fenster.document.writeln("<div style='position:absolute; width:90px; height:60px; top:"+(61*i+30)+"px; left:"+(91*j+30)+"px; z-index:0; visibility:hidden;'>");
			fenster.document.writeln("    <a href='javascript:bildwechsel("+(m++)+")' onDblClick=\"javascript:infofenster('"+(daten[5*karte[k]])+"')\">");
			if (lebrm==2)
				fenster.document.writeln("    <img src='logo1.gif' ");
			else
			{	if (mlbr[k]) 
					fenster.document.writeln("    <img src='http://www.vogelwarte.ch/assets/images/vogeldb/artbilder/100px/"+(daten[5*karte[k]])+"_0.jpg' ");   //    bild lebensraum, provisorisch durch vogelbild ersetzt
//					fenster.document.writeln("    <img src='http://www.vogelwarte.ch/db/pictures/"+(daten[5*karte[k]])+"_L.jpg' ");   //    bild lebensraum
				else 
					fenster.document.writeln("    <img src='http://www.vogelwarte.ch/assets/images/vogeldb/artbilder/100px/"+(daten[5*karte[k]])+"_0.jpg' ");    //    bild vogel klein
//					fenster.document.writeln("    <img src='http://www.vogelwarte.ch/db/pictures/"+(daten[5*karte[k]])+"V.jpg' ");    //    bild vogel klein
			}
			fenster.document.writeln("        title='"+(daten[5*karte[k]+1])+". \n"+(daten[5*karte[k]+2])+". \nVogelgruppe: "+(daten[5*karte[k]+3])+", \nLebensraum: "+(daten[5*karte[k]+4])+". \n...Doppelclick führt zu mehr Infos \nauf www.vogelwarte.ch' ");
			fenster.document.writeln("        width='90' height='60' border='0'></a></div>");
			fenster.document.writeln("");
			k++;	//						<====							<====							<====	  NÄCHSTE KARTE		<====
		}
	}
	fenster.document.writeln("<div align='right' style='position:absolute; top:"+(61*hoch+28)+"px; left:30px; width:"+(91*breit+0)+"px; z-index:2'>");
	fenster.document.writeln("<a href='http://www.vogelwarte.ch/' target='_blank'>www.vogelwarte.ch</a></div>");
	fenster.document.writeln("<div align='right' style='position:absolute; top:"+(61*hoch+40)+"px; left:30px; width:"+(91*breit+0)+"px; z-index:2'>");
	fenster.document.writeln("<a href='http://www.audio-engineering-art.com/' target='_blank'>www.audio-engineering-art.com</a></div>");
	fenster.document.writeln("");
	fenster.document.writeln("<div align='left' style='position:absolute; top:"+(61*hoch+33)+"px; left:29px; width:"+(91*breit+0)+"px; z-index:1'>");
	fenster.document.writeln("<form name='formular'>");
	for (i=0; i<spieler; i++) 
	{	fenster.document.writeln("    <input type='text' value='0' size='1' readonly>");
	}
	fenster.document.writeln("</form></div>");
	fenster.document.writeln("");
	fenster.document.writeln("<div style='position:absolute; top:"+(30*hoch-270)+"px; left:"+(45*breit-270)+"px; z-index:0'>");
	fenster.document.writeln("    <img src='l6bl.gif' border='0'><br>");
	fenster.document.writeln("</div>");
	fenster.document.writeln("");
	fenster.document.writeln("<script language='JavaScript' type='text/JavaScript'>");
	fenster.document.writeln("    var d=document.getElementsByTagName('div');");
	fenster.document.writeln("    d[0].style.zIndex='2';");
//  fenster.document.writeln("    var unfertig=true;");
	fenster.document.writeln("    var vogel=new Array();");
	for (i=0; i < (hoch*breit/2); i++) 
	{	fenster.document.writeln("    vogel["+i+"]=document.movie"+i+"; ");
	}
	fenster.document.writeln("</script>");
	fenster.document.writeln("</body>");
	fenster.document.writeln("</html>");
	fenster.document.close();
}

function auswahlcheck()
{
	if ((document.spiel.pab.value>mb)||(document.spiel.pah.value>mh))
	{	if (document.spiel.pab.value>mb) document.spiel.pab.value=mb;
		if (document.spiel.pah.value>mh) document.spiel.pah.value=mh;
		window.alert("Die ausgewählte Höhe oder Breite passt nicht in den Bildschirm!\nDer Wert wurde korrigiert."); 
		return false;
	}
	if (document.spiel.pab.value<3) document.spiel.pab.value=3;
	breit=document.spiel.pab.value;
	if (document.spiel.pah.value<4) document.spiel.pah.value=4;
	hoch=document.spiel.pah.value;
	spieler=document.spiel.splz.value;
	karten=breit*hoch;
	if (karten>(2*vogelanzahl)) {window.alert("Es sind nur "+vogelanzahl+" Kartenpaare verfügbar!"); return false;}
	if (karten%2!=0) {window.alert("Der Wert für entweder Höhe oder Breite oder beide muss eine gerade Zahl sein!"); return false;}
	if (karten<4) {window.alert("Das Spiel könnte größer sein!"); return false;}
	if ((karten/2)>document.vogaus.anz.value) {window.alert("Für die Spielgrösse sind zu wenig Vögel ausgewählt!"); return false;}
	return true;
}


function losgehts() 
{	
	if (auswahlcheck())
	{	mischen();
		spielfenster();
		//window.alert("losgehts() erledigt");
	}
}

function vanz()
{	var n=0;
	for (i=0; i<vogelanzahl; i++)
		if (document.vogels.elements[i].checked) n++;
	document.vogaus.anz.value=n;
	document.spiel.anz.value=n;
	vogelzahl=n;
}

function vauswahl(a)
{	var stichwort=document.vogaus.wort.value.toLowerCase();
	
	//if (document.vogaus.auswahl.selectedIndex==1) 
	if (a==1) 				//		alle löschen
		for (i=0; i<vogelanzahl; i++)
			document.vogels.elements[i].checked=false;
	//else if (document.vogaus.auswahl.selectedIndex==3) 
	else if (a==3) 			//		alle auswählen
		for (i=0; i<vogelanzahl; i++)
			document.vogels.elements[i].checked=true;
	//else if ((document.vogaus.auswahl.selectedIndex==2)||(document.vogaus.auswahl.selectedIndex==0)) 
	else if (a==2) 			//		hinzufügen
		for (i=0; i<(5*vogelanzahl); i++)
		{	if (!document.vogels.elements[Math.floor(i/5)].checked) 
				document.vogels.elements[Math.floor(i/5)].checked=(daten[i].toLowerCase().indexOf(stichwort)>=0);
		}
	else if (a==4) 			//		einschränken
	{	for (i=0; i<vogelanzahl; i++)
		{	if (document.vogels.elements[i].checked) 
			{	var x=((daten[5*i].toLowerCase().indexOf(stichwort)+daten[5*i+1].toLowerCase().indexOf(stichwort)+daten[5*i+2].toLowerCase().indexOf(stichwort)+daten[5*i+3].toLowerCase().indexOf(stichwort)+daten[5*i+4].toLowerCase().indexOf(stichwort))>-5)
				document.vogels.elements[i].checked=x;
			}
		}
		
		
	}
	else window.alert("Diese Funktion steht gegenwärtig noch nicht zur Verfügung.");
	vanz();
}

function spielladen() 
{
	var wert = "";
	if (document.cookie) 
	{	//window.alert(document.cookie);
		var wertstart = document.cookie.indexOf("VM1010auswahl=") + 14;
		var wertende = document.cookie.indexOf(";", wertstart);
		if (wertende == -1)
			wertende = document.cookie.length;
		if (wertstart != -1)
			wert = document.cookie.substring(wertstart, wertende);
	}
	if (wert!="")
	{	
		
		document.spiel.pab.value=parseInt(wert.substr(50, 2),16)+3;	//	breit=
		document.spiel.pah.value=parseInt(wert.substr(52, 2),16)+4;	//	hoch=
		lebrm=parseInt(wert.substr(54, 1),16);	//	lebrm=
		document.spiel.splz.value=parseInt(wert.substr(55, 1),16)+1;	//	spieler=
		
		var i=0, n=0;
		while (i<vogelanzahl)
		{	if (i%4==0) 
			{	n=parseInt(wert.substr(Math.floor((vogelanzahl-1-i)/4), 1),16);
			}
			if (n%2==1) 
				document.vogels.elements[vogelanzahl-1-i].checked=true;
			else
				document.vogels.elements[vogelanzahl-1-i].checked=false;
			n=Math.floor(n/2);
			i++;
		}
		vanz();
	}
	pfeil("bm", 2, lebrm);
	if (document.spiel.pab.value<3) 
		document.spiel.pab.value=3;
	if (document.spiel.pab.value>mb) 
		document.spiel.pab.value=mb;
	if (document.spiel.pah.value<4) 
		document.spiel.pah.value=4;
	if (document.spiel.pah.value>mh) 
		document.spiel.pah.value=mh;
	if (document.spiel.splz.value<1) 
		document.spiel.splz.value=1;
	if (document.spiel.splz.value>15) 
		document.spiel.splz.value=15;
}

function spielspeichern() 
{	
	if (auswahlcheck())
	{
		if (document.spiel.pab.value<3) 
			document.spiel.pab.value=3;
		if (document.spiel.pab.value>mb) 
			document.spiel.pab.value=mb;
		if (document.spiel.pah.value<4) 
			document.spiel.pah.value=4;
		if (document.spiel.pah.value>mh) 
			document.spiel.pah.value=mh;
		if (document.spiel.splz.value<1) 
			document.spiel.splz.value=1;
		if (document.spiel.splz.value>15) 
			document.spiel.splz.value=15;
	
		var wert = "", i=0, n=0;
		while (i<vogelanzahl)
		{	n=n*2;
			if (document.vogels.elements[i].checked) n++;
			if (i%4==3) 
			{	wert=wert+n.toString(16);
				n=0;
			}
			i++;
		}
			
		n=Math.floor((document.spiel.pab.value-3)/16);	//	breit=
		wert=wert+n.toString(16);
		n=(document.spiel.pab.value-3)%16;	
		wert=wert+n.toString(16);
		n=Math.floor((document.spiel.pah.value-4)/16);	//	hoch=
		wert=wert+n.toString(16);
		n=(document.spiel.pah.value-4)%16;	
		wert=wert+n.toString(16);
		n=lebrm%16;		//	lebrm=
		wert=wert+n.toString(16);
		n=(document.spiel.splz.value-1)%16;				//	spieler=
		wert=wert+n.toString(16);
			
		var jetzt = new Date();
		var auszeit = new Date(jetzt.getTime() + 31536000000);	// Verfallszeit = 1 Jahr
		document.cookie = "VM1010auswahl=" + wert + "; expires=" + auszeit.toGMTString() + ";";
	
		window.alert("Die Einstellungen unter Vogelauswahl und Spielbeginn\nwurden in einem Cookie gespeichert und werden beim\nnächsten Aufrufen von Vogelmemory wiederhergestellt.");
	}
}

function auswahl(n,o)
{	d=document.getElementById(n);
	if (o==-1)
	{	d.style.display="block";
		d.style.visibility="visible";
	}
	else
	if (o==0)
	{	d.style.visibility="hidden";
		d.style.display="none";
	}
	else
	{	d.style.visibility="hidden";
		d.style.display="none";
		if  (n=="paba") document.spiel.pab.value=o;
		if  (n=="paha") document.spiel.pah.value=o;
		if  (n=="splza") document.spiel.splz.value=o;
		if  (n=="vartmen") document.vogaus.wort.value=o;
		if  (n=="lebrmen") document.vogaus.wort.value=o;
	}
}

function tabulator(n)
{	getabt=n;
	for (i=1; i<5; i++)
	{	if (i==n) 
		{	document.getElementById("tab"+i).style.display="block";
	//		document.getElementById("re1"+i).style.color="#fa3";	//	orange
	//		document.getElementById("re1"+i).style.color="#ff6";	//	gelb	
			document.getElementById("re1"+i).style.fontWeight="bold";	
			document.getElementById("re1"+i).style.textTransform="uppercase";
			document.getElementById("re2"+i).style.fontWeight="bold";	
			document.getElementById("re2"+i).style.textTransform="uppercase";
			document.getElementById("re1"+i).style.backgroundColor="#d82";	//	orange/lachs	
			document.getElementById("re2"+i).style.backgroundColor="#d82";	//	moosgrün	
		}
		else 
		{	document.getElementById("tab"+i).style.display="none";
	//		document.getElementById("re1"+i).style.color="#4f4";	//	grün
	//		document.getElementById("re1"+i).style.color="#fff";	//	weiss
			document.getElementById("re1"+i).style.fontWeight="normal";	
			document.getElementById("re1"+i).style.textTransform="none";
			document.getElementById("re2"+i).style.fontWeight="normal";	
			document.getElementById("re2"+i).style.textTransform="none";
			document.getElementById("re1"+i).style.backgroundColor="#5E86BD";	//	hellblau1	
			document.getElementById("re2"+i).style.backgroundColor="#5E86BD";	//	hellblau1	
		}
	}
	if ((n%2)==1) 
		document.getElementById("tab0").style.display="block";
	else document.getElementById("tab0").style.display="none";

	window.scrollTo(0, 0);
	
	document.getElementById("vartmen").style.display="none";
	document.getElementById("lebrmen").style.display="none";
}

function fertiggeladen()
{
	document.movie.Play();
}

function bgswp(n)
{	if (n!=getabt) 
	{	document.getElementById("re1"+n).style.backgroundColor="#47b";	//	dblau
		document.getElementById("re2"+n).style.backgroundColor="#47b";	//	dblau
	}
}
function bgrst(n)
{	if (n!=getabt) 
	{	document.getElementById("re1"+n).style.backgroundColor="#5E86BD";	//	hellblau1	
		document.getElementById("re2"+n).style.backgroundColor="#5E86BD";	//	hellblau1	
	}
}
