function memory_start() {
  paar = 0;
  versuche = 0;
  paare = 0;
  dauer_start = 0;
  aufgedeckt = 0;
  kartenpaare = new Array("1a", "1b", "2a", "2b", "3a", "3b", "4a", "4b", "5a", "5b", "6a", "6b", "7a", "7b", "8a", "8b");
  ids = new Array();
  for(i=0; i<750; i++) {
    zufall = Math.random();
    zufall = zufall * 10;
    zufall = Math.round(zufall);
    neu1 = kartenpaare.shift();
    neu2 = kartenpaare[zufall];
    kartenpaare.splice(zufall, 1, neu1);
    kartenpaare.push(neu2);
  }
  for(i=0; i<16; i++) {
    pos = i + 1;
    id_neu = "karte" + kartenpaare[i] + "_pos" + pos;
    document.getElementById("karte" + pos).id = id_neu;
    ids.push(id_neu);
  }
}


function memory_neustart() {
  document.getElementById("meldung").firstChild.nodeValue = "Viel Spaß und Erfolg!";
  document.getElementById("meldung_versuche").firstChild.nodeValue = "0";
  document.getElementById("meldung_dauer").firstChild.nodeValue = "0:00";
  pos = 0;
  for(i=1; i<=aufgedeckt; i++) {
    pos++;
    document.getElementById("aufgedeckt" + [i]).id = "karte" + pos;
    document.getElementById("karte" + pos).firstChild.src="memory_karte_verdeckt.jpg";
  }
  for(i=0; i<16; i++) {
    if(document.getElementById(ids[i])) {
      pos++;
      document.getElementById(ids[i]).id = "karte" + pos;
    }
  }
  memory_start();
}


function memory_aufdecken(id) {
  if(dauer_start == 0) {
    zeit = new Date();
    dauer_start = zeit.getTime();
    memory_dauer();
  }
  if(id.substr(0, 10) != "aufgedeckt") {
    paar++;
    if(paar <=2) {
      karte = id.substr(5, 1);
      pos = id.substr(id.length - 2, 2);
      if(pos.substr(pos.length - 2, 1) == "s") pos = pos.substr(1, 2);
      document.getElementById(id).firstChild.src = "memory_karte" + karte + ".jpg";
    }
    if(paar == 2) {
      versuche++;
      id_uebergabe2 = id;
      karte_uebergabe2 = karte;
      if(karte_uebergabe1 != karte_uebergabe2) {
        window.setTimeout("memory_zudecken(id_uebergabe1, id_uebergabe2)", 1700);
      }
      else {
        paar = 0;
        paare++;
        aufgedeckt++;
        document.getElementById(id_uebergabe1).id = "aufgedeckt" + aufgedeckt;
        aufgedeckt++;
        document.getElementById(id_uebergabe2).id = "aufgedeckt" + aufgedeckt;
      }
    }
    else {
      id_uebergabe1 = id;
      karte_uebergabe1 = karte;
    }
  }
  document.getElementById("meldung_versuche").firstChild.nodeValue = versuche;
  if(paare == 8) {
    document.getElementById("meldung").firstChild.nodeValue = "Gratulation, Sie haben es geschafft!";
  }
}


function memory_zudecken(id1, id2) {
  document.getElementById(id1).firstChild.src = "memory_karte_verdeckt.jpg";
  document.getElementById(id2).firstChild.src = "memory_karte_verdeckt.jpg";
  paar = 0;
}


function memory_dauer() {
  zeit = new Date();
  dauer_ende = zeit.getTime();
  dauer_differenz = Math.round((dauer_ende - dauer_start) / 1000);
  dauer_minuten = Math.floor(dauer_differenz / 60);
  dauer_sekunden = dauer_differenz - dauer_minuten * 60;
  dauer_sekunden = "0" + dauer_sekunden;
  if(dauer_sekunden.length > 2) {
    dauer_sekunden = dauer_sekunden.substr(1, 2);
  }
  dauer_formatiert = dauer_minuten + ":" + dauer_sekunden;
  document.getElementById("meldung_dauer").firstChild.nodeValue = dauer_formatiert;
  if(paare < 8 && dauer_start != 0) {
    window.setTimeout("memory_dauer()", 100);
  }
  else {
    if(dauer_start == 0) {
      document.getElementById("meldung_dauer").firstChild.nodeValue = "0:00";
    }
  }
}
