// Copyright 2000-2004 AbsInt Angewandte Informatik GmbH
// Written by alex@absint.com

var Bild4 = new Array('4.gif',
'31.gif',
'4.gif');
var Src4 = new Array('../gallery/graph7.htm',
'../gdledit/',
'../gallery/graph7.htm');
var Bild5 = new Array('5.gif',
'32.gif',
'5.gif');
var Src5 = new Array('../anim/maple.htm',
'../gdledit/',
'../anim/maple.htm');

i4 = Math.floor(Math.random()*2);
i5 = Math.floor(Math.random()*2);

var Bild = new Array(4*7);        // speichert die Bilder
var Strange = new Array(4*7);     // speichert, welche Bilder gerade offen sind
var SrcPage = new Array('../',
'../contact/',
'../gallery/graph7.htm',
Src4[i4],
Src5[i5],
'../anim/maple.htm',
'../gdl/nutshell/shapes.htm',
'../split/',
'../gdl/nutshell/icons.htm',
'../shop/pricing.htm',
'../shop/',
'../logos/',
'../shop/site.htm',
'../gdl/nutshell/sld001.htm',
'../gdl/nutshell/edges.htm#23');
                             // speichert, wohin der Spieler weitergeleitet wird
var Moves, Found, Nr1, Nr2, Busy, Points; // gemachte Zuege, gefundene Paare, erstes Bild, zweites Bild, keine Spieleraktionen moeglich, Punkte

var I0 = new Image(); I0.src = "0.gif";
var I1 = new Image(); I1.src = "1.gif";
var I2 = new Image(); I2.src = "2.gif";
var I3 = new Image(); I3.src = "3.gif";
var I4 = new Image(); I4.src = Bild4[i4];
var I5 = new Image(); I5.src = Bild5[i5];
var I6 = new Image(); I6.src = "6.gif";
var I7 = new Image(); I7.src = "7.gif";
var I8 = new Image(); I8.src = "8.gif";
var I9 = new Image(); I9.src = "9.gif";
var I10 = new Image(); I10.src = "10.gif";
var I11 = new Image(); I11.src = "11.gif";
var I12 = new Image(); I12.src = "12.gif";
var I13 = new Image(); I13.src = "20.gif";
var I14 = new Image(); I14.src = "22.gif";

Ln = new Image();   Ln.src = "line.gif";
Nu1 = new Image();  Nu1.src = "numb01.gif";
Nu2 = new Image();  Nu2.src = "numb02.gif";
Nu3 = new Image();  Nu3.src = "numb03.gif";
Nu4 = new Image();  Nu4.src = "numb04.gif";
Nu5 = new Image();  Nu5.src = "numb05.gif";
Nu6 = new Image();  Nu6.src = "numb06.gif";
Nu7 = new Image();  Nu7.src = "numb07.gif";
Nu8 = new Image();  Nu8.src = "numb08.gif";
Nu9 = new Image();  Nu9.src = "numb09.gif";
Nu10 = new Image(); Nu10.src = "numb10.gif";
Nu11 = new Image(); Nu11.src = "numb11.gif";
Nu12 = new Image(); Nu12.src = "numb12.gif";
Nu13 = new Image(); Nu13.src = "numb13.gif";
Nu14 = new Image(); Nu14.src = "numb14.gif";
Nu15 = new Image(); Nu15.src = "numb15.gif";
Nu16 = new Image(); Nu16.src = "numb16.gif";
Nu17 = new Image(); Nu17.src = "numb17.gif";
Nu18 = new Image(); Nu18.src = "numb18.gif";
Nu19 = new Image(); Nu19.src = "numb19.gif";
Nu20 = new Image(); Nu20.src = "numb20.gif";
Nu21 = new Image(); Nu21.src = "numb21.gif";
Nu22 = new Image(); Nu22.src = "numb22.gif";
Nu23 = new Image(); Nu23.src = "numb23.gif";
Nu24 = new Image(); Nu24.src = "numb24.gif";
Nu25 = new Image(); Nu25.src = "numb25.gif";
Nu26 = new Image(); Nu26.src = "numb26.gif";
Nu27 = new Image(); Nu27.src = "numb27.gif";
Nu28 = new Image(); Nu28.src = "numb28.gif";
Nu29 = new Image(); Nu29.src = "numb29.gif";
Nu30 = new Image(); Nu30.src = "numb30.gif";
Nu31 = new Image(); Nu31.src = "numb31.gif";
Nu32 = new Image(); Nu32.src = "numb32.gif";
Nu33 = new Image(); Nu33.src = "numb33.gif";
Nu34 = new Image(); Nu34.src = "numb34.gif";
Nu35 = new Image(); Nu35.src = "numb35.gif";
Nu36 = new Image(); Nu36.src = "numb36.gif";

function UnCover(j) { document.images[j-3].src = eval("I" + Bild[j-3] + ".src"); }

function Cover(k) { document.images[k-3].src = I0.src; }

function Hide() { Cover(Nr1); Nr1 = -1; Cover(Nr2); Nr2 = -1; Busy = 0; }

function aiSwap(i)
{
    Busy = 1;
    if (Strange[i] == 1) { Busy = 0; return; }
    if (Found == 14) { Busy = 0; return; }
    i = i+3;
    UnCover(i);
    if (Nr1 == -1 || i == Nr1 || Strange[i-3] == 1) { Nr1 = i; Busy = 0; return; };
    Nr2 = i;
    Moves++;
    if (Moves<37) { document.images[30].src = eval("Nu"+Moves+".src"); };
    if (Bild[Nr1-3] != Bild[Nr2-3]) { setTimeout("Hide()", 1500); }
    else
    {
        Found++;
        Strange[Nr1-3] = 1;
        Strange[Nr2-3] = 1;
        if (Found == 14)
        {
            Points = 1358 - 39*Moves;
            if (Moves<28) Points = Points + 500*(28-Moves);
            if (Moves<15) Points = 1000 + Points;
            if (Moves>28) alert("Congratulations!\nYou have completed the game in "+Moves+" moves.\nYou have got "+Points+" points.\nThat's no great shakes, but still ;-)\nWhy don't you play another game?");
            if (Moves<29 && Moves>24) alert("Good!\nYou have completed the game in "+Moves+" moves.\nYou have got "+Points+" points.");
            if (Moves<25 && Moves>19) alert("Very good!\nYou have completed the game in "+Moves+" moves.\nYou have got "+Points+" points.");
            if (Moves<20 && Moves>14) alert("Excellent!\nYou have completed the game in "+Moves+" moves.\nYou have got "+Points+" points.");
            if (Moves==14) alert("Perfect score!\nYou have completed the game in "+Moves+" moves.\nYou have got "+Points+" points.");
        }
    Nr1 = -1;
    Nr2 = -1;
    Busy = 0;
    }
}

function StartUp()
{
  Busy = 1;
  Points = 0;
  Moves = 0;
  Found = 0;
  Nr1 = -1;
  Nr2 = -1;
  document.images[30].src = Ln.src;
  for (n = 0; n < 28; n++)
  {
    Bild[n] = Math.floor(n/2) + 1;
    Strange[n] = 0;
    Cover(n+3);
  }
  for (n = 0; n < 28; n++)
  {
    i = Math.floor(Math.random()*28);
    HelpVar = Bild[i];
    Bild[i] = Bild[n];
    Bild[n] = HelpVar;
  }
  Busy = 0;
}

function aiSurf(i) // overhead: ist das Spiel vorbei, wird Weiterleitung freigeschaltet
{
    if (Busy==1) return;
    if (Found==14)  { i=Bild[i]; location.href = SrcPage[i]; }
    else { aiSwap(i); }
}

function UB(r) { status = r; return true; }

function CheckForm()
{
  document.hof.Browser.value = navigator.userAgent;
  document.hof.Xaxis.value = screen.width;
  document.hof.Yaxis.value = screen.height;
  document.hof.Zuege.value = Moves;
  document.hof.Score.value = Points;
  if (Found == 14) { document.hof.Passwd.value = "ic42"; }
  if (document.hof.UserName.value == "(max. 20 characters)") { document.hof.UserName.value = ""; }
}



