/*Fuer die Erlaubnis, dieses Script zu verwenden, bedanke ich mich herzlich bei Thomas Engelhardt (http://www.tomengelhardt.de) Jede Weiterverwendung des Scriptes ohne Thomas' Einverstaendnis ist untersagt.*/

/*Bilder vorausladen*/

function preloadImages()
{
  var d=document; if(d.images){ if(!d.p) d.p=new Array();
    var i,j=d.p.length,a=preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.p[j]=new Image; d.p[j++].src=a[i];}}
}

/*Bildertausch*/

function swapImage()
 {
  var i,j=0,x,a=swapImage.arguments;
  document.sr=new Array;
  for(i=0;i<(a.length-2);i+=3)
   if ((x=findObj(a[i]))!=null)
    {
     document.sr[j++]=x;
     if(!x.oSrc)
     x.oSrc=x.src;
     x.src=a[i+2];
    }
 }

/*Bilderzuruecktauschen*/

function swapImgRestore()
 {
  var i,x,a=document.sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
 }

/*wird von SwapImage und SwapRestore gebraucht*/

function findObj(n, d)
 {
  var p,i,x;
  if(!d)
   d=document;
  if((p=n.indexOf("?"))>0&&parent.frames.length)
   {
    d=parent.frames[n.substring(p+1)].document;
    n=n.substring(0,p);
   }
  if(!(x=d[n])&&d.all) x=d.all[n];
  for (i=0;!x&&i<d.forms.length;i++)
   x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++)
   x=findObj(n,d.layers[i].document);
  return x;
 }


/*Wuerfeln*/

      wuerfel1 = new Image(); wuerfel1.src = "http://www.gabis-bloghaeuschen.de/wp-content/plugins/wuerfel/w1.gif";
      wuerfel2 = new Image(); wuerfel2.src = "http://www.gabis-bloghaeuschen.de/wp-content/plugins/wuerfel/w2.gif";
      wuerfel3 = new Image(); wuerfel3.src = "http://www.gabis-bloghaeuschen.de/wp-content/plugins/wuerfel/w3.gif";
      wuerfel4 = new Image(); wuerfel4.src = "http://www.gabis-bloghaeuschen.de/wp-content/plugins/wuerfel/w4.gif";
      wuerfel5 = new Image(); wuerfel5.src = "http://www.gabis-bloghaeuschen.de/wp-content/plugins/wuerfel/w5.gif";
      wuerfel6 = new Image(); wuerfel6.src = "http://www.gabis-bloghaeuschen.de/wp-content/plugins/wuerfel/w6.gif";

      WuerfelWert = new Object; // 5 Wuerfel: WuerfelWert[0]..WuerfelWert[4]
      ZahlWert = new Object;    // 6 gleiche Werte: ZahlWert[1]..ZahlWert[6]
      for(i = 1; i < 7; i++)
        ZahlWert[i] = -1;
      var DreiPasch = -1;
      var VierPasch = -1;
      var FullWert = -1;
      var KleinStrass = -1;
      var GrossStrass = -1;
      var KniffelWert = -1;
      var ChanceWert = -1;
      var Zustand = 0;
      // 1: 1-mal gewuerfelt, 2: 2-mal gewuerfelt, 3: 3-mal gewuerfelt, 0: bewertet
      var Summe1 = 0;
      var Summe2 = 0;
      var GameOver = false;
      function Zufall(faktor)
      {
        return Math.floor(Math.random() * faktor + 1);
      }

      function WuerfelAnzeige(WuerfelWert)
      {
        var i;
        for(i = 0; i < 5; i++)
          switch(WuerfelWert[i])
          {
            case 1:
            {
              document.images[i].src = wuerfel1.src;
              break;
            }
            case 2:
            {
              document.images[i].src = wuerfel2.src;
              break;
            }
            case 3:
            {
              document.images[i].src = wuerfel3.src;
              break;
            }
            case 4:
            {
              document.images[i].src = wuerfel4.src;
              break;
            }
            case 5:
            {
              document.images[i].src = wuerfel5.src;
              break;
            }
            case 6:
            {
              document.images[i].src = wuerfel6.src;
            }
          }
      }

      function AlleWerteAnzeigen()
      {
        var i;
        var ende = true;
        if (ZahlWert[1] == -1)
        {
          document.Formular.WertB1.value = " ";
          ende = false;
          Summe1 = 0;
        }
        else
        {
          document.Formular.WertB1.value = ZahlWert[1];
          Summe1 = ZahlWert[1];
        }
        if (ZahlWert[2] == -1)
        {
          document.Formular.WertB2.value = " ";
          ende = false;
        }
        else
        {
          document.Formular.WertB2.value = ZahlWert[2];
          Summe1 += ZahlWert[2];
        }
        if (ZahlWert[3] == -1)
        {
          document.Formular.WertB3.value = " ";
          ende = false;
        }
        else
        {
          document.Formular.WertB3.value = ZahlWert[3];
          Summe1 += ZahlWert[3];
        }
        if (ZahlWert[4] == -1)
        {
          document.Formular.WertB4.value = " ";
          ende = false;
        }
        else
        {
          document.Formular.WertB4.value = ZahlWert[4];
          Summe1 += ZahlWert[4];
        }
        if (ZahlWert[5] == -1)
        {
          document.Formular.WertB5.value = " ";
          ende = false;
        }
        else
        {
          document.Formular.WertB5.value = ZahlWert[5];
          Summe1 += ZahlWert[5];
        }
        if (ZahlWert[6] == -1)
        {
          document.Formular.WertB6.value = " ";
          ende = false;
        }
        else
        {
          document.Formular.WertB6.value = ZahlWert[6];
          Summe1 += ZahlWert[6];
        }

        if (DreiPasch == -1)
        {
          document.Formular.WertP3.value = " ";
          ende = false;
          Summe2 = 0;
        }
        else
        {
          document.Formular.WertP3.value = DreiPasch;
          Summe2 = DreiPasch;
        }
        if (VierPasch == -1)
        {
          document.Formular.WertP4.value = " ";
          ende = false;
        }
        else
        {
          document.Formular.WertP4.value = VierPasch;
          Summe2 += VierPasch;
        }
        if (FullWert == -1)
        {
          document.Formular.WertFH.value = " ";
          ende = false;
        }
        else
        {
          document.Formular.WertFH.value = FullWert;
          Summe2 += FullWert;
        }
        if (KleinStrass == -1)
        {
          document.Formular.WertKS.value = " ";
          ende = false;
        }
        else
        {
          document.Formular.WertKS.value = KleinStrass;
          Summe2 += KleinStrass;
        }
        if (GrossStrass == -1)
        {
          document.Formular.WertGS.value = " ";
          ende = false;
        }
        else
        {
          document.Formular.WertGS.value = GrossStrass;
          Summe2 += GrossStrass;
        }
        if (KniffelWert == -1)
        {
          document.Formular.WertKN.value = " ";
          ende = false;
        }
        else
        {
          document.Formular.WertKN.value = KniffelWert;
          Summe2 += KniffelWert;
        }
        if (ChanceWert == -1)
        {
          document.Formular.WertCH.value = " ";
          ende = false;
        }
        else
        {
          document.Formular.WertCH.value = ChanceWert;
          Summe2 += ChanceWert;
        }

        if (Summe1 > 62)
          Bonus = 35;
        else
          Bonus = 0;
        document.Formular.WertBO.value = Bonus;
        document.Formular.WertS1.value = Summe1 + Bonus;
        document.Formular.WertS2.value = Summe2;
        document.Formular.WertTotal.value = Summe1 + Bonus + Summe2;

        for(i = 0; i < 5; i++)
          document.Formular.elements[i].checked = false;
        if (ende)
          {
          alert("Herzlichen Glueckwunsch!\nDu hast das Spiel mit " + document.Formular.WertTotal.value + " Punkten beendet!");
          GameOver = true;
          }
      }

      function PruefungOK(Wert)
      {
        if (Wert == 0)
        {
          alert("Sorry!\nDen hast du schon versemmelt!")
          return false;
        }
        else
        {
          if (Wert > 0)
          {
            alert("Dieser Wert wurde schon vergeben.\nWaehle einen anderen aus!");
            return false;
          }
          else
          {
            if (Zustand == 0)
            {
              alert("Du hast die Wuerfel bereits zugeordnet.\nBitte wuerfeln!");
              return false;
            }
            else
            {
              // OK-Fall
              Zustand = 0;
              return true;
            }
          }
        }
      }

      function BubbleSort()
      {
        var i, j;
        var merker;
        for(i = 4; i > -1; i--)
          for(j = 0; j < i; j++)
            if (WuerfelWert[j] > WuerfelWert[j + 1])
            {
              merker = WuerfelWert[j];
              WuerfelWert[j] = WuerfelWert[j + 1];
              WuerfelWert[j + 1] = merker;
            }
      }

      function Augen(Zahl)
      {
        var ergebnis = 0;
        var i;
        if (PruefungOK(ZahlWert[Zahl]))
        {
          for(i = 0; i < 5; i++)
            if (WuerfelWert[i] == Zahl)
              ergebnis += WuerfelWert[i];
          ZahlWert[Zahl] = ergebnis;

          if (ergebnis == 0)
          {
            check = confirm("Es liegt kein passender Wurf auf dem Tisch.\nWenn Du diesen Eintrag \"opfern\" musst: [OK]\nWenn dies ein Versehen war: [Abbrechen].");
            if(check == false)
            {
              Zustand = 3;
              ZahlWert[Zahl] = -1;
            }
          }
          AlleWerteAnzeigen();
        }
      }

      function DreierPasch()
      {
        var ergebnis = 0;
        var OK = false;
        if (PruefungOK(DreiPasch))
        {
          BubbleSort();
          if ((WuerfelWert[0] == WuerfelWert[1]) && (WuerfelWert[1] == WuerfelWert[2]))
            OK = true;
          if ((WuerfelWert[1] == WuerfelWert[2]) && (WuerfelWert[2] == WuerfelWert[3]))
            OK = true;
          if ((WuerfelWert[2] == WuerfelWert[3]) && (WuerfelWert[3] == WuerfelWert[4]))
            OK = true;
          if (OK)
            for(i = 0; i < 5; i++)
              ergebnis += WuerfelWert[i];
          DreiPasch = ergebnis;

          if (ergebnis == 0)
          {
            check = confirm("Es liegt kein passender Wurf auf dem Tisch.\nWenn Du diesen Eintrag \"opfern\" musst: [OK]\nWenn dies ein Versehen war: [Abbrechen].");
            if(check == false)
            {
              Zustand = 3;
              DreiPasch = -1;
            }
          }

          AlleWerteAnzeigen();
        }
      }

      function ViererPasch()
      {
        var ergebnis = 0;
        var OK = false;
        if (PruefungOK(VierPasch))
        {
          BubbleSort();
          if ((WuerfelWert[0] == WuerfelWert[1]) && (WuerfelWert[1] == WuerfelWert[2]) && (WuerfelWert[2] == WuerfelWert[3]))
            OK = true;
          if ((WuerfelWert[1] == WuerfelWert[2]) && (WuerfelWert[2] == WuerfelWert[3]) && (WuerfelWert[3] == WuerfelWert[4]))
            OK = true;
          if (OK)
            for(i = 0; i < 5; i++)
              ergebnis += WuerfelWert[i];
          VierPasch = ergebnis;

          if (ergebnis == 0)
          {
            check = confirm("Es liegt kein passender Wurf auf dem Tisch.\nWenn Du diesen Eintrag \"opfern\" musst: [OK]\nWenn dies ein Versehen war: [Abbrechen].");
            if(check == false)
            {
              Zustand = 3;
              VierPasch = -1;
            }
          }

          AlleWerteAnzeigen();
        }
      }

      function FullHouse()
      {
        var ergebnis = 0;
        if (PruefungOK(FullWert))
        {
          BubbleSort();
          if ((WuerfelWert[0] == WuerfelWert[1]) && (WuerfelWert[1] == WuerfelWert[2]) && (WuerfelWert[3] == WuerfelWert[4]))
            ergebnis = 25;
          if ((WuerfelWert[0] == WuerfelWert[1]) && (WuerfelWert[2] == WuerfelWert[3]) && (WuerfelWert[3] == WuerfelWert[4]))
            ergebnis = 25;
          FullWert = ergebnis;

          if (ergebnis == 0)
          {
            check = confirm("Es liegt kein passender Wurf auf dem Tisch.\nWenn Du diesen Eintrag \"opfern\" musst: [OK]\nWenn dies ein Versehen war: [Abbrechen].");
            if(check == false)
            {
              Zustand = 3;
              FullWert = -1;
            }
          }

          AlleWerteAnzeigen();
        }
      }

      function KleineStr()
      {
        w = new Object; // 6 Wuerfelwerte: w[1]..w[6]
        var ergebnis = 0;
        var i;
        if (PruefungOK(KleinStrass))
        {
          for(i = 1; i < 7; i++)
            w[i] = false;
          for(i = 0; i < 5; i++)
            w[WuerfelWert[i]] = true;
          if ((w[1] && w[2] && w[3] && w[4]) || (w[2] && w[3] && w[4] && w[5]) || (w[3] && w[4] && w[5] && w[6]))
            ergebnis = 30;
          KleinStrass = ergebnis;

          if (ergebnis == 0)
          {
            check = confirm("Es liegt kein passender Wurf auf dem Tisch.\nWenn Du diesen Eintrag \"opfern\" musst: [OK]\nWenn dies ein Versehen war: [Abbrechen].");
            if(check == false)
            {
              Zustand = 3;
              KleinStrass = -1;
            }
          }

          AlleWerteAnzeigen();
        }
      }

      function GrosseStr()
      {
        var ergebnis = 0;
        if (PruefungOK(GrossStrass))
        {
          BubbleSort();
          if ((WuerfelWert[0] == WuerfelWert[1] - 1) && (WuerfelWert[1] == WuerfelWert[2] - 1) && (WuerfelWert[2] == WuerfelWert[3] - 1) && (WuerfelWert[3] == WuerfelWert[4] - 1))
            ergebnis = 40;
          GrossStrass = ergebnis;

          if (ergebnis == 0)
          {
            check = confirm("Es liegt kein passender Wurf auf dem Tisch.\nWenn Du diesen Eintrag \"opfern\" musst: [OK]\nWenn dies ein Versehen war: [Abbrechen].");
            if(check == false)
            {
              Zustand = 3;
              GrossStrass = -1;
            }
          }

          AlleWerteAnzeigen();
        }
      }

      function Kniffel()
      {
        var ergebnis = KniffelWert;
        if (KniffelWert == 0)
        {
          alert("Sorry!\nDen hast du schon versemmelt!")
          return false;
        }
        else
        {
          if (Zustand == 0)
            alert("Du hast die Wuerfel bereits zugeordnet.\nBitte wuerfeln!");
          else
          {
            if ((WuerfelWert[0] == WuerfelWert[1]) && (WuerfelWert[1] == WuerfelWert[2]) && (WuerfelWert[2] == WuerfelWert[3]) && (WuerfelWert[3] == WuerfelWert[4]))
              if (KniffelWert == -1)
                ergebnis = 50;
              else
                ergebnis += 100;
            else
              ergebnis = 0;
            if (KniffelWert > 0 && ergebnis == 0)
              alert("Dieser Wert wurde schon vergeben.\nWaehle einen anderen aus!");
            else
            {
              Zustand = 0;
              KniffelWert = ergebnis;

          if (ergebnis == 0)
          {
            check = confirm("Es liegt kein passender Wurf auf dem Tisch.\nWenn Du diesen Eintrag \"opfern\" musst: [OK]\nWenn dies ein Versehen war: [Abbrechen].");
            if(check == false)
            {
              Zustand = 3;
              KniffelWert = -1;
            }
          }

              AlleWerteAnzeigen();
            }
          }
        }
      }

      function Chance()
      {
        var ergebnis = 0;
        var i;
        if (PruefungOK(ChanceWert))
        {
          for(i = 0; i < 5; i++)
            ergebnis += WuerfelWert[i];
          ChanceWert = ergebnis;
          AlleWerteAnzeigen();
        }
      }

      function Wuerfeln()
      {
        var i;
        if (Zustand == 0)
        {
          for(i = 0; i < 5; i++)
          document.Formular.elements[i].checked = false;
        }

          Zustand++;
          for(i = 0; i < 5; i++)
          if(!document.Formular.elements[i].checked)
            WuerfelWert[i]=Zufall(6);

          WuerfelAnzeige(WuerfelWert);
        }

      function NeuesSpiel() // Reset
      {
        window.document.images.becher.src = 'http://www.gabis-bloghaeuschen.de/wp-content/plugins/wuerfel/becher1.gif';
        GameOver = false;
        var i;
        for(i = 1; i < 7; i++)
          ZahlWert[i] = -1;
        DreiPasch = -1;
        VierPasch = -1;
        FullWert = -1;
        KleinStrass = -1;
        GrossStrass = -1;
        KniffelWert = -1;
        ChanceWert = -1;
        Zustand = 0;
        document.images[0].src = wuerfel1.src;
        document.images[1].src = wuerfel2.src;
        document.images[2].src = wuerfel3.src;
        document.images[3].src = wuerfel4.src;
        document.images[4].src = wuerfel5.src;
        AlleWerteAnzeigen();
      }


      function BecherKippen() // Kippt den Wuerfelbecher aus
      {
        if (GameOver)
          alert ("Das Spiel ist beendet!\nBitte starte ein neues Spiel!");
        else
        {
          if (Zustand == 3)
            alert("Du hast bereits drei mal gewuerfelt oder wolltest schon eintragen.\nBitte ordne die Wuerfel zu!");
          else
          {
            window.document.images.becher.src = 'http://www.gabis-bloghaeuschen.de/wp-content/plugins/wuerfel/becher_a.gif';
            window.setTimeout("swapImage('becher','','http://www.gabis-bloghaeuschen.de/wp-content/plugins/wuerfel/becher2.gif',1)",1000);
            window.setTimeout("Wuerfeln()",1000);
          }//else
        }//else
      }

       function toggle(i)
       {
         if (!document.Formular.elements[i].checked)
           document.Formular.elements[i].checked=true;
         else
           document.Formular.elements[i].checked=false;
       }
