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

var Bild = new Array(8*4);
var Strange = new Array(8*4);
var SrcPage = new Array('../',
'final.htm',
'quarters.htm',
'roundof16.htm',
'quarters.htm',
'final.htm',
'roundof16.htm',
'roundof16.htm',
'roundof16.htm',
'quarters.htm',
'roundof16.htm',
'roundof16.htm',
'semi.htm',
'roundof16.htm',
'roundof16.htm',
'quarters.htm',
'semi.htm');

var Moves, Found, Nr1, Nr2, Busy, Points;

var I0 = new Image(); I0.src = "0.gif";
var I1 = new Image(); I1.src = "wm10.gif";
var I2 = new Image(); I2.src = "wm02.gif";
var I3 = new Image(); I3.src = "wm27.gif";
var I4 = new Image(); I4.src = "wm11.gif";
var I5 = new Image(); I5.src = "wm23.gif";
var I6 = new Image(); I6.src = "wm22.gif";
var I7 = new Image(); I7.src = "wm17.gif";
var I8 = new Image(); I8.src = "wm05.gif";
var I9 = new Image(); I9.src = "wm15.gif";
var I10 = new Image(); I10.src = "wm20.gif";
var I11 = new Image(); I11.src = "wm28.gif";
var I12 = new Image(); I12.src = "wm18.gif";
var I13 = new Image(); I13.src = "wm07.gif";
var I14 = new Image(); I14.src = "wm24.gif";
var I15 = new Image(); I15.src = "wm08.gif";
var I16 = new Image(); I16.src = "wm26.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].src = eval("I" + Bild[j-3] + ".src"); }

function Cover(k) { document.images[k].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 == 16) { 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[36].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 == 16)
    {
      Points = 1552 - 32*Moves;
      if (Moves<30) Points = Points + 500*(30-Moves);
      if (Moves<17) Points = 1000 + Points;
      if (Points<0) Points = 0;
                  if (Moves>46) 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<47 && Moves>36) alert("Good!\nYou have completed the game in "+Moves+" moves.\nYou have got "+Points+" points.");
      if (Moves<37 && Moves>26) alert("Very good!\nYou have completed the game in "+Moves+" moves.\nYou have got "+Points+" points.");
      if (Moves<27 && Moves>16) alert("Excellent!\nYou have completed the game in "+Moves+" moves.\nYou have got "+Points+" points.");
                 if (Moves==16) alert("Perfect score!\nYou have completed the game in 16 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[36].src = Ln.src;
  for (n = 0; n < 32; n++)
  {
    Bild[n] = Math.floor(n/2) + 1;
    Strange[n] = 0;
    Cover(n+3);
  }
  for (n = 0; n < 32; n++)
  {
    i = Math.floor(Math.random()*32);
    HelpVar = Bild[i];
    Bild[i] = Bild[n];
    Bild[n] = HelpVar;
  }
  Busy = 0;
}

function aiSurf(i)
{
  if (Busy==1) return;
  if (Found==16)  { 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 == 16) { document.hof.Passwd.value = "ic42"; }
  if (document.hof.UserName.value == "(max. 20 characters)") { document.hof.UserName.value = ""; }
}

