

var posix = -2;
var gratulation = "Gratulation!";
var versuche;

function scroll() {

  posix++;
  if (posix == -1) 
    scrl = "Gratulation!";
  else 
   scrl = gratulation.substring(0, gratulation.length-posix)+versuche;
  
  document.feedback.tries.value = scrl;
  
  if (posix < gratulation.length)
    setTimeout("scroll()", 350);
  else
    posix = -2;

}

        
var typeOfBrowser = null;
if (navigator.appName == 'Netscape')  {
  typeOfBrowser = "navigator"
};


// multi-purpose...
function initArray() {
  
  this.length = initArray.arguments.length;
  for (var i = 0; i <= this.length; i++)
  this[i+1] = initArray.arguments[i];
  
}

function MakeArray(n) {
  
  this.length = n;
  for (var i = 0; i <= n; i++) {
    this[i] = 0;
  }
  
  return this;
}

function FillArray(n, thevalue) {
  
  this.length = n;
  for (var i = 0; i <= n; i++) {
    this[i] = thevalue
  }
  
  return this;
}

function RandomNumberCustom(toplimit) {
  
  limits = toplimit + 1;
  today = new Date();
  num = today.getTime();
  num = Math.round(Math.abs(Math.sin (num)*1000000)) % limits;
  
  return num;
}

function RandomNumber(toplimit) {
  
  var num = Math.round(Math.random()*toplimit);
  
  return num;
}
// ... end of multi-purpose

// here we go...
var showSolution = 0;
var maximumOfTries = 16;
var numcells = 16;
var numimages = numcells/2;
var imagedefault = "images/0.gif";
var clickfirst = 99;
var clicknext  = 99;
heightOfImage = 126;
widthOfImage = 84;
var imageDB = new initArray();
var imageBG = new initArray();


// eight images are a set of sixteen cards...
function LoadImages() {
  for (var i=0; i <= (numimages-1); i++) {
    imageDB[i] = new Image(heightOfImage,widthOfImage);
    imageDB[i].src = "images/"+(i+1)+".jpg";
  }
  
}

// background image
function LoadBGImages() {
  for (var i=0; i <= (numcells-1); i++) {
    imageBG[i] = new Image(heightOfImage,widthOfImage);
    imageBG[i].src = "images/b"+(i+1)+".jpg";
  }
  
}


function getADate(n) {
  
  aDate = new Date ();
  a = aDate.getTime().toString();
  result = a.substring(2,7)+n+a.substring(5,8);
  
return result;
}


function setImages() {
  
  for ( var ii = 0; ii <= (numimages-1);) {
    // first image....
    nn = RandomNumber(numcells-1);
    nn = RandomNumber(numcells-1);
    if (thecell_status[nn] == -2) {
      thecell_status[nn] = 0;
      thecell_imgnum[nn] = ii;
      if (showSolution) {
        document.write('['+nn+':'+ii+'] ')
          };
      // second image...
      for (var jj = 0; jj == 0; ) {
        nn = RandomNumber(numcells-1);
        nn = RandomNumber(numcells-1);
        if (thecell_status[nn] == -2) {
          thecell_status[nn] = 0;
          thecell_imgnum[nn] = ii;
          jj = 1;
          if (showSolution) {
                document.write('{'+nn+':'+ii+'} ')
              };
        } 
      }
      ii++;
    }
  }
  
}




var numberOfClicks = 0;
var numberOfTries = 0;
var firstclick = null;
var counterX = 0;

function imageClicked(n) {
  evaluate(n)
}


function evaluate(n) {
  
  if (numberOfTries < maximumOfTries) {

    if ((clickfirst != 99) && (clicknext != 99)) {
      setActiveImage (clickfirst, imageBG[clickfirst].src);
      setActiveImage (clicknext, imageBG[clicknext].src);               
      clickfirst = 99;
      clicknext  = 99;
    }   

    if (thecell_status[n] == 0) {
      ++numberOfClicks;
      if (numberOfClicks == 1) {
        setActiveImage (n, imageDB[thecell_imgnum[n]].src);
        firstclick = n;
        thecell_status[n] = -1;
      }

      if (numberOfClicks == 2) {
        numberOfClicks = 0;
        document.feedback.tries.value = ++numberOfTries + 'ter Versuch!';
        if (numberOfTries  == maximumOfTries) {
                  document.forms[0].tries.value = '16 mal, das war zuviel, Game over!';
                }

        setActiveImage (n, imageDB[thecell_imgnum[n]].src);
        if (thecell_imgnum[n] == thecell_imgnum[firstclick]) {
          thecell_status[firstclick] = 1;
          thecell_status[n] = 1;
          clickfirst = firstclick;
          clicknext  = n;

          if (++counterX == numimages) {
                        // game over, sucessfull !!
            //updateCookie(CookieName, numberOfTries)
            p=getADate(numberOfTries);

// call winners page...
            document.location.href="onlinegame-ende.php";
            versuche = 'Versuche:' + numberOfTries;
            scroll();
            setActiveImage (clickfirst, imageBG[clickfirst].src);
            setActiveImage (clicknext, imageBG[clicknext].src);         

          }
        }
                else {
          clickfirst = 99;
          clicknext  = 99;
          var idletime = 1000;
          var timeoutID = setTimeout("setdefault("+ firstclick +","+ n +")",idletime);

        }        
      }
    }
  }
  else {
    // game over, lost
  }
 
}

function setdefault (firstclick, n) {
  
  setActiveImage (n, imagedefault);
  thecell_status[n] = 0;
  setActiveImage (firstclick, imagedefault);
  thecell_status[firstclick] = 0;
}

function setActiveImage (n, theimage) {
        if (n == 0) { document.img0.src = theimage };
        if (n == 1) { document.img1.src = theimage };
        if (n == 2) { document.img2.src = theimage };
        if (n == 3) { document.img3.src = theimage };
        if (n == 4) { document.img4.src = theimage };
        if (n == 5) { document.img5.src = theimage };
        if (n == 6) { document.img6.src = theimage };
        if (n == 7) { document.img7.src = theimage };
        if (n == 8) { document.img8.src = theimage };
        if (n == 9) { document.img9.src = theimage };
        if (n == 10) { document.img10.src = theimage };
        if (n == 11) { document.img11.src = theimage };
        if (n == 12) { document.img12.src = theimage };
        if (n == 13) { document.img13.src = theimage };
        if (n == 14) { document.img14.src = theimage };
        if (n == 15) { document.img15.src = theimage };
 }


function playagain () {

  
    document.feedback.tries.value = 'Neues Spiel!';
    for (var nn = 0; nn < numcells; nn++) {
      thecell_status[nn] = -2
      setActiveImage (nn, imagedefault) 
    }
    prepareToPlay()
  
 
}

function prepareToPlay() {
  LoadImages();
  LoadBGImages();
  
  thecell_imgnum = new FillArray(numcells-1,0);
  thecell_status = new FillArray(numcells-1,-2);
  clickfirst = 99;
  clicknext  = 99;
  numberOfClicks = 0;
  numberOfTries = 0;
  firstclick = null;
  counterX = 0;
  setImages(); 
  var timeoutID = setTimeout("document.feedback.tries.value = 'Und los gehts!'",5000);

  
}

prepareToPlay()