/*
	---------------------------------------
	 Memory
	---------------------------------------
*/

function reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.pgW=innerWidth; document.pgH=innerHeight; onresize=reloadPage; }}
  else if (innerWidth!=document.pgW || innerHeight!=document.pgH) location.reload();
}
reloadPage(true);

function swapImage() { //v2.0
  var i,j=0,objStr,obj,swapArray=new Array,oldArray=document.swapImgData;
  for (i=0; i < (swapImage.arguments.length-2); i+=3) {
    objStr = swapImage.arguments[(navigator.appName == 'Netscape')?i:i+1];
    if ((objStr.indexOf('document.layers[')==0 && document.layers==null) ||
        (objStr.indexOf('document.all[')   ==0 && document.all   ==null))
      objStr = 'document'+objStr.substring(objStr.lastIndexOf('.'),objStr.length);
    obj = eval(objStr);
    if (obj != null) {
      swapArray[j++] = obj;
      swapArray[j++] = (oldArray==null || oldArray[j-1]!=obj)?obj.src:oldArray[j];
      obj.src = swapImage.arguments[i+2];
  } }
  document.swapImgData = swapArray; //used for restore
}

function callJS(jsStr) { //v2.0
  return eval(jsStr)
}

var f1 = 0;
    f2 = 0;
    f3 = 0;
    f4 = 0;
    f5 = 0;
    f6 = 0;
    f7 = 0;
    f8 = 0;
    f9 = 0;
    f10 = 0;
    f11 = 0;
    f12 = 0;
    y1 = 0;
    y2 = 0;
    y3 = 0;
    y4 = 0;
    y5 = 0;
    y6 = 0;
    z1 = 0;
    z2 = 0;
    z3 = 0;
    z4 = 0;
    z5 = 0;
    z6 = 0;
    durchgang = 0;
    geschafft = 0;

     // alle Karten
     var cardsArray = new Array('card1','card2','card3','card4','card5','card6','card7','card8','card9','card10','card11','card12','card13','card14','card15','card16','card17','card18','card19','card20');
     var cardsArrayNew = new Array();
     
     // neues Array mit 6 Karten erstellen
     for(var i=0; i<6; i++) {
     	var y = Math.floor(Math.random() * cardsArray.length);
     	zufallskarte = cardsArray[y]; 
     	cardsArray.splice(y, 1); // Karte aus altem Array entfernen
     	cardsArrayNew.push(zufallskarte); // Karte ins neue Array
     }
     
function setup()  {
    f1 = 0;
    f2 = 0;
    f3 = 0;
    f4 = 0;
    f5 = 0;
    f6 = 0;
    f7 = 0;
    f8 = 0;
    f9 = 0;
    f10 = 0;
    f11 = 0;
    f12 = 0;
}


function zaehlen(s) {
	if(s == 0) {
		durchgang = durchgang + 1; 
		document.getElementById("anzahl").firstChild.nodeValue = durchgang;
	}
   }
   
function check(wer,pos)   {
if (geschafft == 0) {
    var x = 0;
    var s = 0;
    
    // Hiddenfield auslesen
    var valueField = document.memform.svalue.value;
    var valueArray = valueField.split(",");
    
    //alert("wer"+wer+"pos"+pos);
    if(wer == 1)
        if (z1 == 1) alert('Diese Karte geht nicht!');
        else {
            if(wer == valueArray[0] && pos == valueArray[1]) {
            	//alert('Diese Karte ist schon gewählt!');
            	s = 1;
            }
            else if(pos == 1) 
                if (f1 == 0) f1 = 1;
                else drehen();
            else 
                if (f7 == 0) f7 = 1;
                else drehen();
        }
    if(wer == 2)
        if (z2 == 1) alert('Diese Karte geht nicht!');
        else {
            if(wer == valueArray[0] && pos == valueArray[1]) {
            	//alert('Diese Karte ist schon gewählt!');
            	s = 1;
            }
            else if(pos == 1)
                if (f2 == 0) f2 = 1;
                else drehen();
            else 
                if (f8 == 0) f8 = 1;
                else drehen();
        }
    if(wer == 3)
        if (z3 == 1) alert('Diese Karte geht nicht!');
        else {
            if(wer == valueArray[0] && pos == valueArray[1]) {
            	//alert('Diese Karte ist schon gewählt!');
            	s = 1;
            } else if(pos == 1)
                if (f3 == 0) f3 = 1;
                else drehen(); 
            else 
                if (f9 == 0) f9 = 1;
                else drehen();
        }
    if(wer == 4)
        if (z4 == 1) alert('Diese Karte geht nicht!');
        else {
            if(wer == valueArray[0] && pos == valueArray[1]) {
            	//alert('Diese Karte ist schon gewählt!');
            	s = 1;
            } else if(pos == 1) 
                if (f4 == 0) f4 = 1;
                else drehen();
            else 
                if (f10 == 0) f10 = 1;
                else drehen();
        }
    if(wer == 5)
        if (z5 == 1) alert('Diese Karte geht nicht!');
        else {
            if(wer == valueArray[0] && pos == valueArray[1]) {
            	//alert('Diese Karte ist schon gewählt!');
            	s = 1;
            } else if(pos == 1)
                if (f5 == 0) f5 = 1;
                else drehen();
            else 
                if (f11 == 0) f11 = 1;
                else drehen();
        }
    if(wer == 6)
        if (z6 == 1) alert('Diese Karte geht nicht!');
        else {
            if(wer == valueArray[0] && pos == valueArray[1]) {
            	//alert('Diese Karte ist schon gewählt!');
            	s = 1;
            } else if(pos == 1)
                if (f6 == 0) f6 = 1;
                else drehen();
            else 
                if (f12 == 0) f12 = 1;
                else drehen();
        }
    
    // Hiddenfield schreiben
    document.memform.svalue.value = wer+","+pos;
    
        x = f1;
    x = x + f2;
    x = x + f3;
    x = x + f4;
    x = x + f5;
    x = x + f6;
    x = x + f7;
    x = x + f8;
    x = x + f9;
    x = x + f10;
    x = x + f11;
    x = x + f12;
    if (x <= 1) hindrehen();
    if (x == 2) vergleich(s);
    if (x >= 3) drehen();
}
else {
      Check = confirm('Das Spiel ist beendet.\nMöchten Sie noch einmal spielen?');
	  if(Check == true) document.location.href="memory.html";
	  }
}

function hindrehen() {
     if (f1 == 1) swapImage('document.feld1','document.feld1','bilder/memory/'+cardsArrayNew[0]+'.png');
     if (f2 == 1) swapImage('document.feld2','document.feld2','bilder/memory/'+cardsArrayNew[1]+'.png');
     if (f3 == 1) swapImage('document.feld3','document.feld3','bilder/memory/'+cardsArrayNew[2]+'.png');
     if (f4 == 1) swapImage('document.feld4','document.feld4','bilder/memory/'+cardsArrayNew[3]+'.png');
     if (f5 == 1) swapImage('document.feld5','document.feld5','bilder/memory/'+cardsArrayNew[4]+'.png');
     if (f6 == 1) swapImage('document.feld6','document.feld6','bilder/memory/'+cardsArrayNew[5]+'.png');     
     if (f7 == 1) swapImage('document.feld7','document.feld7','bilder/memory/'+cardsArrayNew[0]+'.png');
     if (f8 == 1) swapImage('document.feld8','document.feld8','bilder/memory/'+cardsArrayNew[1]+'.png');
     if (f9 == 1) swapImage('document.feld9','document.feld9','bilder/memory/'+cardsArrayNew[2]+'.png');
     if (f10 == 1) swapImage('document.feld10','document.feld10','bilder/memory/'+cardsArrayNew[3]+'.png');
     if (f11 == 1) swapImage('document.feld11','document.feld11','bilder/memory/'+cardsArrayNew[4]+'.png');
     if (f12 == 1) swapImage('document.feld12','document.feld12','bilder/memory/'+cardsArrayNew[5]+'.png');
}

function vergleich(s)   { 
   zaehlen(s);
   hindrehen();
   if (f1 + f7 == 2)
       { 
           y1 = 1;
           z1 = 1; 
           fertig();
       } 
   else
       {
       if (f2 + f8 == 2)
           { 
               y2 = 1;
               z2 = 1;
               fertig();
           }
       else
           {
           if (f3 + f9 == 2)
               { 
                   y3 = 1;
                   z3 = 1;
                   fertig();
               }
           else
               {
               if (f4 + f10 == 2)
                   { 
                       y4 = 1;
                       z4 = 1;
                       fertig();
                   }
               else
                   {
                   if (f5 + f11 == 2)
                       { 
                           y5 = 1;
                           z5 = 1;
                           fertig();
                       }
                   else
                       {
                       if (f6 + f12 == 2)
                           { 
                               y6 = 1;
                               z6 = 1;
                               fertig();
                           }
                        }
                   }
               }
           }  
       }
}

function fertig()   {
   var sum = 0;
   sum = sum + y1;
   sum = sum + y2;
   sum = sum + y3;
   sum = sum + y4;
   sum = sum + y5;
   sum = sum + y6;
   if (sum == 6) {
      Check = confirm('Super, alle Paare wurden gefunden!\nHierfür wurden ' + durchgang + ' Versuche benötigt.\nMöchten Sie weiterspielen?');
	  if(Check == true) document.location.href="memory.html";
	  geschafft = 1;
      }
   else  
      {
      setup(); 
     }
}

function drehen()   {
    setup();
    if (z1 == 0) 
          {
           swapImage('document.feld1','document.feld1','bilder/memory/card.png');
           swapImage('document.feld7','document.feld7','bilder/memory/card.png');
          }
    if (z2 == 0)
          {
           swapImage('document.feld2','document.feld2','bilder/memory/card.png');
           swapImage('document.feld8','document.feld8','bilder/memory/card.png');
          }
    if (z3 == 0)
          {
           swapImage('document.feld3','document.feld3','bilder/memory/card.png');
           swapImage('document.feld9','document.feld9','bilder/memory/card.png');
          }
    if (z4 == 0)  
          {   
           swapImage('document.feld4','document.feld4','bilder/memory/card.png');
           swapImage('document.feld10','document.feld10','bilder/memory/card.png');
          }
    if (z5 == 0) 
          {
           swapImage('document.feld5','document.feld5','bilder/memory/card.png');
           swapImage('document.feld11','document.feld11','bilder/memory/card.png');
          }
    if (z6 == 0) 
          {
           swapImage('document.feld6','document.feld6','bilder/memory/card.png');
           swapImage('document.feld12','document.feld12','bilder/memory/card.png'); 
          }
          document.memform.svalue.value = "";
}

// Ausgabe auf Seite
var kartenArray = new Array('<td width="70"><div align="center"><a href="#" onClick="callJS(\'check(5,2)\')"><img src="bilder/memory/card.png" width="100" height="94" name="feld11" border="0" /><\/a><\/div><\/td>',
'<td width="70"><div align="center"><a href="#" onClick="callJS(\'check(1,2)\')"><img src="bilder/memory/card.png" width="100" height="94" name="feld7" border="0" /><\/a><\/div><\/td>',
'<td width="70"><div align="center"><a href="#" onClick="callJS(\'check(4,1)\')"><img src="bilder/memory/card.png" width="100" height="94" name="feld4" border="0" /><\/a><\/div><\/td>',
'<td width="70"><div align="center"><a href="#" onClick="callJS(\'check(4,2)\')"><img src="bilder/memory/card.png" width="100" height="94" name="feld10" border="0" /><\/a><\/div><\/td>',
'<td width="70"><div align="center"><a href="#" onClick="callJS(\'check(1,1)\')"><img src="bilder/memory/card.png" width="100" height="94" name="feld1" border="0" /><\/a><\/div><\/td>',
'<td width="70"><div align="center"><a href="#" onClick="callJS(\'check(5,1)\')"><img src="bilder/memory/card.png" width="100" height="94" name="feld5" border="0" /><\/a><\/div><\/td>',
'<td width="70"><div align="center"><a href="#" onClick="callJS(\'check(6,1)\')"><img src="bilder/memory/card.png" width="100" height="94" name="feld6" border="0" /><\/a><\/div><\/td>',
'<td width="70"><div align="center"><a href="#" onClick="callJS(\'check(3,2)\')"><img src="bilder/memory/card.png" width="100" height="94" name="feld9" border="0" /><\/a><\/div><\/td>',
'<td width="70"><div align="center"><a href="#" onClick="callJS(\'check(2,1)\')"><img src="bilder/memory/card.png" width="100" height="94" name="feld2" border="0" /><\/a><\/div><\/td>',
'<td width="70"><div align="center"><a href="#" onClick="callJS(\'check(3,1)\')"><img src="bilder/memory/card.png" width="100" height="94" name="feld3" border="0" /><\/a><\/div><\/td>',
'<td width="70"><div align="center"><a href="#" onClick="callJS(\'check(6,2)\')"><img src="bilder/memory/card.png" width="100" height="94" name="feld12" border="0" /><\/a><\/div><\/td>',
'<td width="70"><div align="center"><a href="#" onClick="callJS(\'check(2,2)\')"><img src="bilder/memory/card.png" width="100" height="94" name="feld8" border="0" /><\/a><\/div><\/td>');

	var cards = new Array();
	for(var i=0; i<12; i++) {
		karte = kartenArray[i];
		cards.push(karte);
	}
						
	//Mischen
	var neusKartenArray = new Array();
	while(cards.length > 0) {
		var zufall = Math.floor(Math.random() * cards.length);
		karte = cards[zufall];
		cards.splice(zufall, 1);
		neusKartenArray.push(karte);
	}
