// Vorausladen der Kartenbilder
    var kartenbilder = new Array();
    for (i = 0; i < 8; i++) {
       kartenbilder[i] = new Image();
       kartenbilder[i].src = "memory/karte" + i + ".jpg";
    }
       // Die Menge aller existierenden Karten definieren
    var vorrat = new Array();
    for (i = 0; i < 8; i++) {
       vorrat.push ("a" + i);
       vorrat.push ("b" + i);
       // Der IE für Mac versteht push() nicht, dort:
       // vorrat[vorrat.length] = "a" + i;
       // vorrat[vorrat.length] = "b" + i;
    }
    // Die Karten mischen und "auslegen"
    var karten = new Array();
    for (i = 0; i < 16; i++) {
       do {
          // Zufällige Karte wählen
          var karte = parseInt (Math.random () * 16);
          // War diese Zahl schon da?
          var schonda = false;
          for (j = 0; j < i; j++) {
             if (karten[j] == karte)
                schonda = true;
          }
       } while (schonda);
       karten.push (karte);
       // IE/Mac:
       // karten [i] = karte;
    }
        // Status der Karten
    var nochda = new Array();
    for (i = 0; i < 16; i++) {
       nochda.push (true);
       // IE/Mac:
       // nochda[i] = true;
    }
        // Anzahl der Versuche und der zz. offenen Karten
    var versuche = 0;
    var offene = 0;
        // Bereits gefundene Kartenpaare
    var paare = 0;
        // Die beiden zz. offenen Karten
    var offen1, offen2;
        // Speichervariable für das Timeout zum Schließen
    var stoppuhr = null;
        function klick(karte)
    {
       // Ist diese Karte schon weg?
       if (!nochda [karte])
          return;
       // Sind bereits zwei offen?
       if (offene == 2) {
          offene = 0;
          document.images["k" + offen1].src 
               = "memory/memoryvorher.gif";
          document.images["k" + offen2].src 
               = "memory/memoryvorher.gif";
          if (stoppuhr) {
             clearTimeout (stoppuhr);
             stoppuhr = null;
          }
       }
       // Eine Karte wurde geöffnet:
       offene++;
       // Die aktuell angeklickte Karte "umdrehen"
       var kartenbild = vorrat [karten [karte]];
       var bildnr = kartenbild.charAt(1);
       document.images ["k" + karte].src 
            = kartenbilder[bildnr].src;
       // Ist dies die erste Karte?
       if (offene == 1) {
          offen1 = karte;
          return;
       }
       // HIER sind auf jeden Fall ZWEI offen.
       offen2 = karte;
       // Ist dies DIESELBE Karte?
       if (offen2 == offen1) {
          alert ("Zweimal dieselbe ist verboten!");
          offene = 1;
          return;
       }
       var kartenbild1 = vorrat [karten [offen1]];
       var kartenbild2 = vorrat [karten [offen2]];
       var bildnr1 = kartenbild1.charAt (1);
       var bildnr2 = kartenbild2.charAt (1);
       // Die beiden Karten vergleichen:
       if (bildnr1 == bildnr2) {
          // Die beiden Karten sind identisch!
          // Die beiden Karten verschwinden lassen
          document.images ["k" + offen1].src 
             = "memory/memorynachher.gif";
          document.images ["k" + offen2].src 
             = "memory/memorynachher.gif";
          nochda[offen1] = false;
          nochda[offen2] = false;
          // Es wurde ein Paar gefunden!

         paare++;
          offene = 0;
       } else {
          // Die beiden Karten sind verschieden -
          // Vorbereiten zum Schließen in 1 Sekunde:
          stoppuhr = setTimeout 
               ("schliessen();", 2000);
       }
       // Dies war ein weiterer Versuch:
       versuche++;
	   var name = "";
       // Alle gefunden?
       if (paare == 8) {
          //alert ("Gewonnen mit " + versuche + " Versuchen. Leider geht der Highscoreeintrag gerade nicht!", "Memory");
			//var pfad = location+"?v="+versuche+"&name=Hans";
			//pfad.reload();
			//var name = "";
			name = prompt("Gewonnen mit " + versuche + " Versuchen. Wie ist dein Name?");
			if (name == "" || name == null) {
				//location.reload();
				location.href = "memory.php";
			}
			else{
				//alert ("Hallo " + name +"! Leider geht der Highscoreeintrag gerade nicht.");
				location.href = "memory.php?n="+name+"&v="+versuche+"&i=g";
			}	
			//location.reload();
       }
    }
       function schliessen ()
    {
       // Die beiden offenen Karten zurücksetzen:
       document.images ["k" + offen1].src 
            = "memory/memoryvorher.gif";
       document.images ["k" + offen2].src 
            = "memory/memoryvorher.gif";
       offene = 0;
       stoppuhr = null;
    }
