var LF="Bilder/feld_leer_weiss.gif";
var werdran;
var dran;
var hatwurf;
var wurf;
var wurfanz;
var start=0;


//******************** Wenn die Hintergrundfarbe geändert wird ********************
//*********************************************************************************
function hintergrund (farbe)
{
 document.getElementsByTagName("body")[0].setAttribute("bgColor", farbe);
 parent.frames[0].document.getElementsByTagName("body")[0].setAttribute("bgColor", farbe);
}


//******************** Die Log-Datei des Speils ausdrucken ********************
//*****************************************************************************
function nachricht ()
{
 if (dran==null) {
  parent.frames[0].document.write("<b>Nachricht:</b> <i>\""+prompt("Bitte Nachricht eingeben. Um etwas fett darzustellen schreibe <B>text</B>,\nfür untersrichenen Text <U>text</U> und für einen Zeilenumbruch <BR>","")+"\"</i><br>");
  parent.frames[0].window.scrollBy(0,9999999999);
 }
 else {
  parent.frames[0].document.write("<b>"+Sp[dran][5]+":</b> <i>\""+prompt("Bitte Nachricht eingeben. Um etwas fett darzustellen schreibe <B>text</B>,\nfür untersrichenen Text <U>text</U> und für einen Zeilenumbruch <BR>","")+"\"</i><br>");
  parent.frames[0].window.scrollBy(0,9999999999);
 }
}


//******************** Die Log-Datei des Speils ausdrucken ********************
//*****************************************************************************
function drucken ()
{
  alert("Um den Spielablauf auszudrucken, klicke\nmit rechts darauf und wähle \"drucken\".");
}


//******************** Wenn gewürfelt wird ********************
//*************************************************************
function wuerfeln ()
{
 if (hatwurf<=0) {
  wurf = Math.ceil(6 * Math.random())
  parent.frames[0].document.write(Sp[dran][5]+" würfelt eine "+wurf+".<br>");
  parent.frames[0].window.scrollBy(0,9999999999);
  wurfanz++
  hatwurf++
  if (wurf==6) hatwurf=1;
  else if (wurfanz==3) werdran();
 }
}


//******************** Wenn ein Feld angeklickt wird ********************
//***********************************************************************
function klick (feld)
{
do {
 if (Sp[dran][1]==feld||Sp[dran][2]==feld||Sp[dran][3]==feld||Sp[dran][4]==feld) {		//Vorrausgestzt du klickst deine eigene Figur an...
   if (hatwurf==1) {																				//...und du hast auch schon gewürfelt:
   if (wurf < 6) {																						//Wenn du weniger als sechs würfelst...
    if (feld=="S"+dran+"1"||feld=="S"+dran+"2"||feld=="S"+dran+"3"||feld=="S"+dran+"4") {		//...und ein Startfeld anklickst...
     alert ("Dafür musst du schon 'ne Sechs würfeln!");													//...Fehler!
     break;
    }
    else {																									//...und ein normales Spielfeld anklickst...
     FZ = 0;
     start = parseInt(feld);
     gehvon = parseInt(feld);
     gehzu = parseInt(feld)+1;
     if (gehzu > 48) gehzu=gehzu-48;
     if (gehvon > 48) gehvon=gehvon-48;
     tempo = parseInt(document.einstellungen.geschwindigkeit.value)*250
     laufen();																									//...wird die Figur gesetzt.
     break;
    }
   }
   if (wurf==6) {																						//Wenn du eine Sechs Würfelst...
    if (feld=="S"+dran+"1"||feld=="S"+dran+"2"||feld=="S"+dran+"3"||feld=="S"+dran+"4") {		//...und ein Startfeld anklickst...
     document.getElementsByName(feld)[0].src=LF;														//...wird die Figur raus gesetzt.
      for (var n=1; n<=4; n++) for (var N=1; N<=4; N++) if (Sp[dran][6]==Sp[n][N]) {					//Fals auf dem Zielfeld eine Figur steht...
       document.getElementsByName("S"+n+N)[0].src="Bilder/figur_" + Sp[n][0] + ".gif";				//...diese Figur auf ihr Startfeld setzen
       Sp[n][N]="S"+n+N;
       parent.frames[0].document.write(Sp[dran][5]+" schmeißt Figur von "+Sp[n][5]+" raus.<br>");
       parent.frames[0].window.scrollBy(0,9999999999);
      }
     document.getElementsByName("F"+Sp[dran][6])[0].src="Bilder/figur_" + Sp[dran][0] + ".gif";
     for (var X=1; X<=4; X++) if (feld==Sp[dran][X]) Sp[dran][X]=Sp[dran][6];
     parent.frames[0].document.write(Sp[dran][5]+" muss wegen der 6 nocheinmal würfeln.<br>");
     parent.frames[0].window.scrollBy(0,9999999999);
    }
    else {																									//...und ein normales Spielfeld anklickst!
     FZ = 0;
     start = parseInt(feld);
     gehvon = parseInt(feld);
     gehzu = parseInt(feld)+1;
     if (gehzu > 48) gehzu=gehzu-48;
     if (gehvon > 48) gehvon=gehvon-48;
     tempo = parseInt(document.einstellungen.geschwindigkeit.value)*250
     laufen();																									//...wird die Figur gesetzt.
     break;
    }
    hatwurf=0;
    wurfanz=0;
    break;
   }
   werdran();
  }
 }
}
while (1==2);
}


//******************** Die Figur um die gewürfelte Zahl setzen ********************
//*********************************************************************************
function laufen ()
{
do {
 document.getElementsByName("F"+gehvon)[0].src=LF;												//altes Feld gegen leeres Feld austauschen
 if (FZ==0) {																							//Beim setzten des ersten Felds:
  for (var x=1; x<=4; x++) if (gehvon==Sp[x][6]) {													//Fals es sich um ein Startfeld handelte...
   document.getElementsByName("F"+gehvon)[0].src="Bilder/feld_" + Sp[x][0] + ".gif";				//...gegen dieses entsprechende austauschen
  }
 }
 else {																								//Bei einem Feld zwischen erstem und letzen:
  for (var x=1; x<=4; x++) if (gehvon==Sp[x][6]) {													//Fals es sich um ein Startfeld handelte...
   document.getElementsByName("F"+gehvon)[0].src="Bilder/feld_" + Sp[x][0] + ".gif";				//...gegen dieses entsprechende austauschen
  }
  for (var x=1; x<=4; x++) for (var X=1; X<=4; X++) if (gehvon==Sp[x][X]) {					//Fals auf dem Feld eine Figur stand...
   document.getElementsByName("F"+gehvon)[0].src="Bilder/figur_" + Sp[x][0] + ".gif";			//...diese Figur wieder aufstellen
  }
 }
 if (FZ+1==wurf) {																					//Beim setzen des letzten Feldes:
  for (var n=1; n<=4; n++) for (var N=1; N<=4; N++) if (gehzu==Sp[n][N]) {					//Fals auf dem Zielfeld eine Figur steht...
   document.getElementsByName("S"+n+N)[0].src="Bilder/figur_" + Sp[n][0] + ".gif";				//...diese Figur auf ihr Startfeld setzen
   Sp[n][N]="S"+n+N;
   parent.frames[0].document.write(Sp[dran][5]+" schmeißt Figur von "+Sp[n][5]+" raus.<br>");
   parent.frames[0].window.scrollBy(0,9999999999);
  }
 }
 if (FZ < wurf && gehvon == Sp[dran][7]) {														//Wenn das Ziel erreicht wird
  window.setTimeout("laufenziel()",tempo);
  break;
 }
 document.getElementsByName("F"+gehzu)[0].src="Bilder/figur_" + Sp[dran][0] + ".gif";	//neues Feld gegen Feld mit Figur austauschen
 FZ++;																								//gezogene Felder hochzählen
 gehvon++;
 gehzu++;
 if (gehzu > 48) gehzu=gehzu-48;
 if (gehvon > 48) gehvon=gehvon-48;
 if(FZ < wurf) window.setTimeout("laufen()",tempo);											//Der Würfelwurf ist nicht erreicht: weiter setzen
 else {																							//Der Würfelwurf ist erreicht:
  for (var X=1; X<=4; X++) if (start==Sp[dran][X]) {											//Welche Figur wurde angeklickt bzw. gesetzt?
   Sp[dran][X]=start+wurf;
   if(Sp[dran][X]>48) Sp[dran][X]=Sp[dran][X]-48;
  }
  if (wurf < 6) werdran();																			//Wenn der Wurf keine Sechs war
  else {																								//Wenn der Wurf eine Sechs war
   hatwurf=0;
   wurfanz=0;
   parent.frames[0].document.write(Sp[dran][5]+" muss wegen der 6 nocheinmal würfeln.<br>");
   parent.frames[0].window.scrollBy(0,9999999999);
  }
 }
}
while (1==2);
}


//******************** Die Figur ins Ziel setzen ********************
//*******************************************************************
function laufenziel ()
{
do {
 parent.frames[0].document.write(Sp[dran][5]+" erreicht mit einer Figur das Ziel.<br>");
 parent.frames[0].window.scrollBy(0,9999999999);
 Sp[dran][8]++;																						//Anzahl der Figuren im Ziel hochzählen
 document.getElementsByName("Z"+dran+Sp[dran][8])[0].src="Bilder/figur_" + Sp[dran][0] + ".gif";
 for (var X=1; X<=4; X++) if (start==Sp[dran][X]) {												//Welche Figur wurde angeklickt bzw. gesetzt?
  Sp[dran][X]="Z"+dran+Sp[dran][8];
 }
 if (Sp[dran][8]==4) {																				//Wenn der Spieler jetzt gewonnen hat:
  parent.frames[0].document.write(Sp[dran][5]+" gewinnt das Spiel.<br>");
  parent.frames[0].window.scrollBy(0,9999999999);
  Sp[dran][0]=0;																							//Spieler spielt nicht mehr mit
  nichtsp++;
  if (nichtsp==4) {
   parent.frames[0].document.write("Das Spiel ist Beendet.<br>Es kann nun von neuem auf \"neues Spiel\" gecklickt werden.");
   parent.frames[0].window.scrollBy(0,9999999999);
   start=0;
   break;
  }
  werdran();
  break;
 }
 if (wurf < 6) werdran();																			//Wenn der Wurf keine Sechs war
 else {																								//Wenn der Wurf eine Sechs war
  hatwurf=0;
  wurfanz=0;
  parent.frames[0].document.write(Sp[dran][5]+" muss wegen der 6 nocheinmal würfeln.<br>");
  parent.frames[0].window.scrollBy(0,9999999999);
 }
}
while (1==2);
}


//******************** Ein neues Spiel starten ********************
//*****************************************************************
function neuesSpiel ()
{
 //******************** Spielfeld aufbauen ********************
 //************************************************************
 parent.frames[0].document.write("******** Ein neues Spiel beginnt! *******<br>Das Spielfeld wird jetzt aufgebaut... ");
 parent.frames[0].window.scrollBy(0,9999999999);
 nichtsp=0;
 Sp=new Array;
 for (var Y=1; Y<=48; Y++) document.getElementsByName("F"+Y)[0].src=LF;										//Die 48 Spielfelder!
 SF=new Array ('0','1','13','25','37')	//Startfelder
 ZF=new Array ('0','48','12','24','36')	//Zielfelder
 for (var Y=1; Y<=4; Y++) {																							//Die 4 Spieler:
  Sp[Y]=new Array();																									//Das Spielstand-Array
  Sp[Y][0]=document.getElementsByName("Spieler"+Y)[0].options[document.getElementsByName("Spieler"+Y)[0].options.selectedIndex].value;
  if (Sp[Y][0]=="leer_weiss") {																						//Wenn er nicht mitspielt
   nichtsp++;
   Sp[Y][0]=0;
  }
  else {
   Sp[Y][5]=prompt("Wie lautet der Name von Spieler "+Y+"?","Spieler "+Y);									//Namen abfragen und speichern
   Sp[Y][6]=SF[Y];																									//Das Startfeld definieren
   document.getElementsByName("F"+Sp[Y][6])[0].src="Bilder/feld_" + Sp[Y][0] + ".gif";					//Das Startfeld
   Sp[Y][7]=ZF[Y];																									//Das Feld vorm Ziel definieren
   Sp[Y][8]=0;																										//Anzehl der Figuren im Ziel
  }
  for (var y=1; y<=4; y++) {																						//vier Figuren:
   Sp[Y][y]="S"+Y+y;																									//Figur Position
   document.getElementsByName("S"+Y+y)[0].src="Bilder/figur_" + Sp[Y][0] + ".gif";							//Startfelder
   document.getElementsByName("Z"+Y+y)[0].src="Bilder/feld_" + Sp[Y][0] + "_" + y + ".gif";				//Zielfelder
  }
 }
 if (nichtsp==4) {																									//Prüfen, wieviele NICHT mitspielen
  alert("Das war aber ein guter Witz!\n\nWozu startest du dann erst das Spiel, wenn\ndu noch nicht mal selbst spielen möchtest?");
  parent.frames[0].document.write(" ...Aufbau abgebrochen!<br>");
  parent.frames[0].window.scrollBy(0,9999999999);
  start=0;
 }
 else {
  parent.frames[0].document.write(" ...Aufbau erfolgreich:<br>");
  start=1;
  if (nichtsp==3) {
   alert("Wenn du meinst, dass das so alleine Spaß macht!");
  }
  if (Sp[1][0]==0) parent.frames[0].document.write(" - Spieler 1 spielt nicht mit.<br>");
  else parent.frames[0].document.write(" - Spieler 1 ("+Sp[1][5]+") ist "+Sp[1][0]+".<br>");
  if (Sp[2][0]==0) parent.frames[0].document.write(" - Spieler 2 spielt nicht mit.<br>");
  else parent.frames[0].document.write(" - Spieler 2 ("+Sp[2][5]+") ist "+Sp[2][0]+".<br>");
  if (Sp[3][0]==0) parent.frames[0].document.write(" - Spieler 3 spielt nicht mit.<br>");
  else parent.frames[0].document.write(" - Spieler 3 ("+Sp[3][5]+") ist "+Sp[3][0]+".<br>");
  if (Sp[4][0]==0) parent.frames[0].document.write(" - Spieler 4 spielt nicht mit.<br>");
  else parent.frames[0].document.write(" - Spieler 4 ("+Sp[4][5]+") ist "+Sp[4][0]+".<br>");
  parent.frames[0].window.scrollBy(0,9999999999);
  dran=0;
  werdran();
 }
}


//******************** Feststellen, wer dran ist ********************
//*******************************************************************
function werdran ()
{
  dran++;
  if (dran==5) dran=1;
  if (Sp[dran][0]!=0) {
   if (Sp[dran][1]=="S"+dran+"1"||Sp[dran][1]=="Z"+dran+"1"||Sp[dran][1]=="Z"+dran+"2"||Sp[dran][1]=="Z"+dran+"3"||Sp[dran][1]=="Z"+dran+"4") {
    if (Sp[dran][2]=="S"+dran+"2"||Sp[dran][2]=="Z"+dran+"1"||Sp[dran][2]=="Z"+dran+"2"||Sp[dran][2]=="Z"+dran+"3"||Sp[dran][2]=="Z"+dran+"4") {
     if (Sp[dran][3]=="S"+dran+"3"||Sp[dran][3]=="Z"+dran+"1"||Sp[dran][3]=="Z"+dran+"2"||Sp[dran][3]=="Z"+dran+"3"||Sp[dran][3]=="Z"+dran+"4") {
      if (Sp[dran][4]=="S"+dran+"4"||Sp[dran][4]=="Z"+dran+"1"||Sp[dran][4]=="Z"+dran+"2"||Sp[dran][4]=="Z"+dran+"3"||Sp[dran][4]=="Z"+dran+"4") {
       hatwurf=-2;
      }
      else hatwurf=0;
     }
     else hatwurf=0;
    }
    else hatwurf=0;
   }
   else hatwurf=0;
   parent.frames[0].document.write(Sp[dran][5]+" ist dran.<br>");
   parent.frames[0].window.scrollBy(0,9999999999);
   wurfanz=0;
  }
  else werdran();
}


//******************** Den Spielstand als Cookie speichern ********************
//*****************************************************************************
function speichern ()
{
do {
 parent.frames[0].document.write("Das Spiel wird gespeichert... ");
 parent.frames[0].window.scrollBy(0,9999999999);
 if (start==0) {
  alert("Was willst denn du speichern,\nwenn gar kein Spiel läuft?");
  parent.frames[0].document.write(" ...speichern abgebrochen!<br>");
  parent.frames[0].window.scrollBy(0,9999999999);																//Wenn gar kein Spiel läuft
  break;
 }
 if (document.cookie=='') {
  frage1=confirm("Du solltest beachten, dass zum speichern ein Cookie verwendet wird.\nCookies müssen also von deinem Browser erlaubt werden.\n\nAußerdem, wenn durch eine automatische oder manuelle Reinigung Cookies\ngelöscht werden, geht dein Spielstand unwiederbringlich verloren!");
 }
 else frage1=confirm("Es ist in deinem Browser bereits ein Spielstand gespeichert, wenn\ndu jetzt erneut speicherst, wird der alte Stand überschrieben!");
 if(frage1==true) {
  frage2=confirm("Beim Speichern wird nicht der bisherige spielverlauf gespeichert.\nDu solltest diesen vielleicht erst ausdrucken.\nMöchtest du trotzdem fortfahren?");
  if(frage2==true) {
   haltbarkeit=new Date(2090, 11, 31);
   document.cookie=Sp[1]+"$$$"+Sp[2]+"$$$"+Sp[3]+"$$$"+Sp[4]+"$$$"+dran+"; expires="+haltbarkeit.toGMTString();
   parent.frames[0].document.write(" ...speichern erfolgreich!<br>");										//Cookie anlegen
   parent.frames[0].window.scrollBy(0,9999999999);
  }
  else {
   parent.frames[0].document.write(" ...speichern abgebrochen!<br>");										//wenn erst gedruckt werden soll
   parent.frames[0].window.scrollBy(0,9999999999);
  }
 }
 else {
  parent.frames[0].document.write(" ...speichern abgebrochen!<br>");											//wenn Cookies zu unsicher sind
  parent.frames[0].window.scrollBy(0,9999999999);
 }
}
while (1==2);
}


//******************** Den Spielstand vom Cookie laden ********************
//*************************************************************************
function laden ()
{
 if (document.cookie=='') {
  frage1=false;
  alert("Wie willst du etwas laden, wenn\ndu gar nichts gespeichert hast?");
 }
 else frage1=confirm("Möchtest du wirklich den zuletzt gepeicherten\nSpielstand wiederherstellen?");
 if(frage1==true) {
  parent.frames[0].document.write("******** Ein Spiel wird geladen! *******<br>Das Spielfeld wird jetzt wiederhergestellt... ");
  parent.frames[0].window.scrollBy(0,9999999999);
  nichtsp=0;
  Sp=new Array;
  temp=document.cookie.split("$$$");
  temp2=new Array();
  for (var Y=1; Y<=48; Y++) document.getElementsByName("F"+Y)[0].src=LF;								//Die 48 Spielfelder!
  for (var i=0; i<4; i++) {																						//Die vier Spieler
   iplus=i+1;
   Sp[iplus]=new Array();
   temp2[i]=temp[i].split(",");
   if (temp2[i][0]!=0) {																							//Vorrausgesetzt er spielt mit...
    for (var I=0; I<9; I++) Sp[iplus][I]=temp2[i][I];															//Figur-Positionen festlegen
    document.getElementsByName("F"+Sp[iplus][6])[0].src="Bilder/feld_" + Sp[iplus][0] + ".gif";			//Das Startfeld
    for (var t=1; t<=4; t++) {
     document.getElementsByName("Z"+iplus+t)[0].src="Bilder/feld_" + Sp[iplus][0] + "_" + t + ".gif";	//Zielfelder
     document.getElementsByName("S"+iplus+t)[0].src=LF;														//Startfelder
    }
   }
   else {
    Sp[iplus][0]=0;
    nichtsp++
    for (var T=1; T<=4; T++) {
     document.getElementsByName("Z"+iplus+T)[0].src="Bilder/figur_0.gif";									//Zielfelder
     document.getElementsByName("S"+iplus+T)[0].src="Bilder/figur_0.gif";									//Startfelder
    }
   }
  }
  for (var i=1; i<=4; i++) {
   for (var t=1; t<=4; t++) {
    if (Sp[i][0]!=0) {
     if (Sp[i][t].indexOf('S')==0) document.getElementsByName(Sp[i][t])[0].src="Bilder/figur_" + Sp[i][0] + ".gif";
     else {
      if (Sp[i][t].indexOf('Z')==0) document.getElementsByName(Sp[i][t])[0].src="Bilder/figur_" + Sp[i][0] + ".gif";
      else document.getElementsByName("F"+Sp[i][t])[0].src="Bilder/figur_" + Sp[i][0] + ".gif";
     }
    }
   }
  }
  parent.frames[0].document.write(" ...Wiederherstellung erfolgreich.<br>");
  if (Sp[1][0]==0) parent.frames[0].document.write(" - Spieler 1 spielt nicht mit.<br>");
  else parent.frames[0].document.write(" - Spieler 1 ("+Sp[1][5]+") ist "+Sp[1][0]+".<br>");
  if (Sp[2][0]==0) parent.frames[0].document.write(" - Spieler 2 spielt nicht mit.<br>");
  else parent.frames[0].document.write(" - Spieler 2 ("+Sp[2][5]+") ist "+Sp[2][0]+".<br>");
  if (Sp[3][0]==0) parent.frames[0].document.write(" - Spieler 3 spielt nicht mit.<br>");
  else parent.frames[0].document.write(" - Spieler 3 ("+Sp[3][5]+") ist "+Sp[3][0]+".<br>");
  if (Sp[4][0]==0) parent.frames[0].document.write(" - Spieler 4 spielt nicht mit.<br>");
  else parent.frames[0].document.write(" - Spieler 4 ("+Sp[4][5]+") ist "+Sp[4][0]+".<br>");
  parent.frames[0].window.scrollBy(0,9999999999);
  dran=parseInt(temp[4])-1;
  start=1;
  werdran();
 } 
}