var UnSorted;
var Field = new Array(7);
var KarteOffen = false;
var KarteOffenWert = "";
var NeueKarte = "";
var Deckblatt = "/images/memory/memory_back.gif";
var Gefunden = 0;
var MaxGefunden = 0;
var Start = false;
var Secs = 0;
var React = true;
var Versuche = 0;
var KillClock = false;
var lng = "en";
var resultText = "You took %V% trials and %M%min %S%secs.";

function MemoryInit() {
  for (var i=0; i < Field.length; i++) { Field[i] = new Array(5); }
  UnSorted = new Array("memory_moon.gif", "memory_moon.gif", "memory_mercury.gif", "memory_mercury.gif",
               "memory_venus.gif", "memory_venus.gif", "memory_mars.gif", "memory_mars.gif", "memory_jupiter.gif",
               "memory_jupiter.gif", "memory_neptune.gif", "memory_neptune.gif", "memory_uranus.gif",
               "memory_uranus.gif", "memory_pluto.gif", "memory_pluto.gif", "memory_saturn.gif", "memory_saturn.gif",
               "memory_fighter.gif", "memory_fighter.gif", "memory_healer.gif", "memory_healer.gif", "memory_maker.gif",
               "memory_maker.gif", "memory_mugen.gif", "memory_mugen.gif", "memory_blackmoon.gif",
               "memory_blackmoon.gif", "memory_kakyuu.gif", "memory_kakyuu.gif"
               );
  for (var u=1; u <= 6; u++) {
    Field[u]["A"] = GetRndImage();
    Field[u]["B"] = GetRndImage();
    Field[u]["C"] = GetRndImage();
    Field[u]["D"] = GetRndImage();
    Field[u]["E"] = GetRndImage();
  }
  MaxGefunden = (UnSorted.length/2);
}

function MemoryStart() {
  Start = true;
  document.getElementById("tries").value = 0;
  document.getElementById("found").value = 0;
  window.setTimeout("SetClock()", 1000);
}

function MemoryShow(Karte) {
  temp = document.getElementById(Karte).src;
  if ((temp.search(Deckblatt) != -1) && Start == true && React == true) {
    if (KarteOffen == false) {
      document.getElementById(Karte).src = Field[Karte.charAt(1)][Karte.charAt(0)];
      KarteOffen = true; KarteOffenWert = Karte;
    }
    else {
      document.getElementById(Karte).src = Field[Karte.charAt(1)][Karte.charAt(0)];
      Versuche++; document.getElementById("tries").value = Versuche;
      if (document.getElementById(Karte).src != document.getElementById(KarteOffenWert).src) {
        NeueKarte = Karte; React = false; window.setTimeout("HideKarten()", 500);
      }
      else { Gefunden++; document.getElementById("found").value = Gefunden; }
      KarteOffen = false;
      if (Gefunden == MaxGefunden) { MemoryEnde(); }
    }
  }
}

function HideKarten() {
  document.getElementById(NeueKarte).src = Deckblatt;
  document.getElementById(KarteOffenWert).src = Deckblatt;
  React = true;
}

function SetClock() {
  if (KillClock == false) {
    Secs++;
    document.getElementById("clock").value = LZero(parseInt(Secs/60)) + ":" + LZero(parseInt(Secs%60));
    window.setTimeout("SetClock()", 1000);
  }
}

function LZero(Wert) {
  if (Wert < 10) { return "0" + Wert; }
  else { return Wert; }
}

function GetRndImage() {
  NotFound = true;
  while (NotFound == true) {
    temp = parseInt(Math.random() * UnSorted.length);
    if (UnSorted[temp] != "LEER") {
      ToRet = "/images/memory/" + UnSorted[temp]; UnSorted[temp] = "LEER"; NotFound = false;
    }
  }
  return ToRet;
}

function MemoryEnde() {
  KillClock = true;
  res = resultText;
  res = res.replace("%V%", Versuche);
  res = res.replace("%M%", parseInt(Secs/60));
  res = res.replace("%S%", parseInt(Secs%60));
  document.getElementById("erg").innerHTML = res;
}

