// Kleiner FensterOeffner fuer die StarBox
function stars()
{
 if ( document.starbox.url.selectedIndex > -1 )
 {
  var url  = document.starbox.url.options[document.starbox.url.selectedIndex].value;
  window.open(url);
 }
}
// Made by Blinde Kuh - Die erste deutschspr. Suchmaschine nur fuer Kinder
// Online-Memo mit div. Optionen (c)2001 Stefan R. Mueller (www.blinde-kuh.de)
// Dieser Code unterliegt dem Urheberrecht. Das bedeutet in der einfachsten
// Auslegung, die Nutzung fuer private Zwecke ist frei, aber die Nutzung
// fuer komerzielle Zwecke eben nicht. Diese muss mit dem Urheber vereinbart
// werden, wobei eine angemessene Gegenleistung in Betracht zu ziehen ist.
// Geschrieben ist dieses Spiel fuer Netscape ab Version 3 und auch Microsoft
// Internet Explorer ab Version 3.
// Die hier verwendeten Bilder stammen von Birte Schneider.
 
if (document.images)
{
  window.status="Das Spiel wird gerade neu aufgebaut ..."
  // Bilder muss der Browser schon laden koennen, 
  // sonst ist es irgendwie langweilig
  // Voreinstellungen
  var Paare        = 12;
  var MischFaktor  = 10;
  
  // Motive deklarieren
  // alle weiteren Parameter fuer die Motiv-Vorgabe
  // richten sich nach diesen Angaben
  var Seperator    = "_";
  var ErsteKarte   = "1";
  var ZweiteKarte  = "1";
  var Endung       = "jpg";
  var Universum = new Array(
   "fileadmin/images/spielspass/memo/memo_unterwasser/wasserA", "fileadmin/images/spielspass/memo/memo_unterwasser/wasserB", "fileadmin/images/spielspass/memo/memo_unterwasser/wasserC", "fileadmin/images/spielspass/memo/memo_unterwasser/wasserD", "fileadmin/images/spielspass/memo/memo_unterwasser/wasserE", "fileadmin/images/spielspass/memo/memo_unterwasser/wasserF", "fileadmin/images/spielspass/memo/memo_unterwasser/wasserG", "fileadmin/images/spielspass/memo/memo_unterwasser/wasserH", "fileadmin/images/spielspass/memo/memo_unterwasser/wasserI", "fileadmin/images/spielspass/memo/memo_unterwasser/wasserJ", "fileadmin/images/spielspass/memo/memo_unterwasser/wasserK", "fileadmin/images/spielspass/memo/memo_unterwasser/wasserL"
  );
  var AnzahlMotive = Universum.length;
  // Bild-Daten deklarieren
  var AnzahlKarten = Paare * 2;
  var Rueckseite=new Image();         Rueckseite.src="fileadmin/images/spielspass/memo/memo_unterwasser/inaktiv.jpg"
  var AktiveRueckseite=new Image() ;  AktiveRueckseite.src="fileadmin/images/spielspass/memo/memo_unterwasser/aktiv.jpg"
  var LeerBild=new Image() ;          LeerBild.src="fileadmin/images/spielspass/memo/memo_unterwasser/leer.jpg"
  var AnzahlRichtige = 0;
  // Parameter zuruecksetzen
  var Bilder=new Array(AnzahlKarten+1);
  var Klicks=0;
  var LetzteKarte=0;
  var VorletzteKarte=0;
  var sum = 0;
  var SpielStand = 0;
    
  var arr=new Array(AnzahlKarten+1);
  var arrCount=0;
  
}
 else
{
  alert(   "Du benoetigst fuer dieses Memo\n"
         + "einen moderneren Browser, z.B.:\n"
         + "Netscape ab 3.0 oder MS Internet Explorer ab 4.0" )
  history.go(-1)
}
function Init() 
{
  SpielStand = 0;
  window.status="Einen Moment, bitte. Ich mische gerade ..."
  var j=0; var n=0; arrCount=AnzahlKarten;
  var i = 0;
  // Parameter Zurueckseten
  AnzahlRichtige = 0;
  Klicks         = 0;
  LetzteKarte    = 0;
  VorletzteKarte = 0;
  sum = 0;  
  KartenVerdecken();
  SetzeModus();
  BilderAuswahlen();
  KartenMischen();
  KlicksAusgabe(0)
  // Test per View
  // BilderAufdecken();
  SpielStand = 1;
  // Startmeldung
  window.status="Das Spiel kann beginnen! Klicke auf die Karte, die du aufdecken moechtest."
}
function SetzeBild(n,source)
{
  document.images['bild'+n].src = source;
}
function KartenVerdecken()
{
  // Je nachdem, was aus der Selectbox ausgewaehlt wird,
  // wird bei den Zweiten Karten die angegebene Endung
  // mit angehaengt.
  for (var i=1; i<=AnzahlKarten; i++)
  {
    arr[i]=0;
    // SetzeBild(i, Bilder[i].src);
    SetzeBild(i, Rueckseite.src);
  }
}
function SetzeModus()
{
  // Je nachdem, was aus der Selectbox ausgewaehlt wird,
  // wird bei den Zweiten Karten die angegebene Endung
  // mit angehaengt.
  if ( document.game.type )
  {
  var i = document.game.type.selectedIndex;
  if ( i > -1 )
  {
   var modus = document.game.type.options[i].value;
  if ( modus )
  {
    ZweiteKarte = modus;
  }
  }
  }
}
function HoleBild(n,source)
{
  var source = document.images['bild'+n].src;
  return source;
}
function Klick(n) // Wenn man auf die Karte klickt
{
   if (document.images)
   // if ((document.images) && (!arr[n]))
   {
    if ( LeerBild.src == document.images['bild'+n].src ) return;
     Klicks++
     if (Klicks % 2 == 0) // "zweiter" Klick
     {
       sum++
       KlicksAusgabe(sum);
       if (n != VorletzteKarte )
       {
         SetzeBild(n, Bilder[n].src);
         LetzteKarte=n;
         var source = HoleBild(LetzteKarte);
         var Name1 = HoleNamen( source );
         source = HoleBild(VorletzteKarte);
         var Name2 = HoleNamen( source );
         if (Name1 == Name2)
         {
            // Wegraeumen, wenn gewuenscht
            SetzeBild(LetzteKarte, LeerBild.src)
            SetzeBild(VorletzteKarte, LeerBild.src)
            arr[LetzteKarte]=1
            arr[VorletzteKarte]=1
            AnzahlRichtige++
            if (AnzahlRichtige==Paare) { SpielGewonnen() }
         }
       }
       else
       { Klicks -- }
     }
     else // "erster" Klick
     {
        if ((LetzteKarte) && (!arr[LetzteKarte]))
        {
          SetzeBild(LetzteKarte, Rueckseite.src );
          SetzeBild(VorletzteKarte, Rueckseite.src);
        }
        SetzeBild(n, Bilder[n].src );
        VorletzteKarte=n;
     }
  }
}
function Out(n) // Ausserhalb des Spielfeldes
{
  if (document.images)
  {
  var source = HoleBild(n);
  if ( source == AktiveRueckseite.src )
  {
    SetzeBild(n, Rueckseite.src);
  }
  if ( SpielStand == 1 )
  {
   window.status="Bewege den Mauszeiger ueber das Spielfeld";
  }
  }
}
function Over(n)
{
  if (document.images)
  {
  if ( SpielStand != 1 )
  {
   window.status = 'Das Spiel ist beendet';
  }
  else
  {
  var source = HoleBild(n);
  // Wenn die Maus ueber die Rueckseite faehrt
  if ( source == LeerBild.src )
  {
    window.status = 'An diesem Platz ist die Karte bereits abgeraeumt!';
  }
  else
  {
  if ((source == AktiveRueckseite.src ) || (source == Rueckseite.src ) )
  {
    SetzeBild( n, AktiveRueckseite.src )
    window.status="Du musst die Karte anklicken, um sie aufzudecken";
  }
  // Maus faehrt ueber eine aufgedeckte Karte
  else
  {
    window.status = 'Motiv auf der Karte: ' + HoleNamen(source);
  }
  }
  }
  }
}
function HoleNamen(source)
{
  // Schneidet den String heraus, der im Feld Universum
  // angegeben wurde
  var p=source.lastIndexOf("/");
  var q=source.length;
  source = source.substring( p+1, q );
  p=source.indexOf(Seperator);
  source = source.substring( 0, p );
  return source;
}
function KlicksAusgabe(n)
{
  var x = '000';
  x = n;
  if ( x < 100 )
  {
   if (x >9 )
     x = '0' + x;
   else
     x = '00' + x;
  }
  document.game.counter.value = x;
}
function SpielGewonnen()
{
 var a = "Hurra. Geschafft!!!\n";
 a = a + "Du hattest insgesamt "+sum+ " Zuege.";
 a = a + "\n\nMoechtest du dieses Spiel noch einmal spielen?";
 SpielStand = 0;
 if ( confirm( a ) ) { Init();}
}
function BilderAufdecken()
{
  for ( var i=1; i<=AnzahlKarten; i++ )
  {
    SetzeBild(i, Bilder[i].src)
  }
}
function BilderAuswahlen()
{
  // Aus dem Array Universum werden die ersten Motive
  // herauskopiert.
  MotiveMischen();
  for ( var i=0; i<Paare; i++ )
  {
    Bilder[i+1].src = 
      Universum[i] + Seperator + ErsteKarte + "." + Endung;
    Bilder[i+1+Paare].src = 
      Universum[i] + Seperator + ZweiteKarte + "." + Endung;
  }
}
function MotiveMischen()
{
  // Die im Array Universum angegebenen Motive werden
  // heftigst durcheinander gemischt, damit es ein wenig
  // Abwechslung bei jedem neuen Spiel gibt.
  var temporaer = "";
  var ziel = 0;
  for ( var i=0; i<MischFaktor; i++ )
  { 
   for ( var j=0; j<AnzahlMotive; j++ )
   {
    ziel = random( AnzahlMotive );
    if ( ziel != j )
    {
     temporaer = Universum[ziel];
     Universum[ziel] = Universum[j];
     Universum[j] = temporaer;
    }
   }
  }
}
function KartenMischen()
{
  // Das Array Bilder wird komplett durcheinander gemischt,
  // damit duerften die Paerchen etwas verstreut sein
  var temporaer = "";
  var ziel = 0;
  var zuletztaktiv = 0;
  for ( var i=0; i<MischFaktor; i++ )
  {
   for ( var j=0; j<AnzahlKarten; j++ )
   {
    ziel = random( AnzahlKarten );
    if ( ziel != j )
    {
     if ( zuletztaktiv > 0 )
     {
      SetzeBild(zuletztaktiv, Rueckseite.src);
     }
     SetzeBild(ziel+1, AktiveRueckseite.src);
     zuletztaktiv = ziel+1;
     temporaer = Bilder[ziel+1].src;
     Bilder[ziel+1].src = Bilder[j+1].src;
     Bilder[j+1].src = temporaer;
    }
   }
  }
  if ( zuletztaktiv > 0 )
  {
   SetzeBild(zuletztaktiv, Rueckseite.src);
  }
}
function BilderInitialisieren() {
 for (i=1; i<=AnzahlKarten; i++)
 {
   Bilder[i] = new Image();
 }
}
function BilderVorladen()
{
  window.status="Ich muss erst einmal all die Bilder laden ...";
  for ( var i=0; i<AnzahlMotive; i++ )
  {
   for ( var a=1; a<=3; a++ )
   {
    document.write( '<img src="'+ Universum[i] + Seperator );
    if ( a <= 2 ) document.write( a );
    if ( a == 3 ) document.write( 'text' );
    document.write( '.' + Endung +'"' );
    document.write( ' width=1 height=0' );
    document.write( '>' );
   }
  }
}
// Zufallsgenerator von
// Paul Houle 
// Department of Physics,  Cornell University 
today=new Date();
jran=today.getTime();
function rnd() 
{
 ia=9301;
 ic=49297;
 im=233280;
 jran = (jran*ia+ic) % im;
 return jran/(im*1.0);
}
function random(number) {
 return Math.floor(rnd()*number);
}
BilderInitialisieren();  