var b = new Array(180);
var stack = new Array(360);
var d;
var st;
var sc = 0;
var xy;
var cnt;
var temp;
var iget;
var iput;
var jget;
var jput;
var done;
var gameover = 0;

function Start() {
  gameover = 0;
  sc = 0;
  document.getElementById("sc").firstChild.nodeValue = 0;
  for(i=0; i<10; i++) {
    for(j=0; j<18; j++) {
      var c = Math.floor(Math.random()*4)+1;
      d = "d"+(i*18+j);
      document.getElementById(d).style.backgroundImage = "url(portions/fv"+c+".gif)";
      b[i*18+j] = c;
    }
  }
  document.getElementById("go").style.visibility = "hidden";
}
function eat(x, y) {
  if (gameover==0) {
    xy = x*18+y;
    if (b[xy]!=0) {
      temp = b[xy];
      cnt = 0;
      if (x>0) {
        if (b[xy-18]==temp) cnt++;
      }
      if (x<9) {
        if (b[xy+18]==temp) cnt++;
      }
      if (y>0) {
        if (b[xy-1]==temp) cnt++;
      }
      if (y<17) {
        if (b[xy+1]==temp) cnt++;
      }
      if (cnt>0) {
        st = 1;
        cnt = 1;
        stack[2] = x;
        stack[3] = y;
        while (st>0) {
          x = stack[st*2];
          y = stack[st*2+1];
          xy = x*18+y;
          st--;
          d = "d"+xy;
          document.getElementById(d).style.backgroundImage = "url(portions/fv0.gif)";
          b[xy] = 0;
          if (x>0) {
            if (b[xy-18]==temp) {
              st++;
              stack[st*2] = x-1;
              stack[st*2+1] = y;
              cnt++;
            }
          }
          if (x<9) {
            if (b[xy+18]==temp) {
              st++;
              stack[st*2] = x+1;
              stack[st*2+1] = y;
              cnt++;
            }
          }
          if (y>0) {
            if (b[xy-1]==temp) {
              st++;
              stack[st*2] = x;
              stack[st*2+1] = y-1;
              cnt++;
            }
          }
          if (y<17) {
            if (b[xy+1]==temp) {
              st++;
              stack[st*2] = x;
              stack[st*2+1] = y+1;
              cnt++;
            }
          }
        }
        for (j=0; j<18; j++) {
          iput = 10;
          done = 0;
          while (done==0) {
            done = 1;
            iput--;
            if (iput>-1) {
              if (b[iput*18+j]!=0) done = 0;
            }
          }
          if (iput>0) {
            iget = iput-1;
            while (iget>-1) {
              if (b[iget*18+j]>0) {
                b[iput*18+j] = b[iget*18+j];
                d = "d"+(iput*18+j)
                document.getElementById(d).style.backgroundImage = "url(portions/fv"+b[iput*18+j]+".gif)";
                b[iget*18+j] = 0;
                d = "d"+(iget*18+j);
                document.getElementById(d).style.backgroundImage = "url(portions/fv0.gif)";
                iput--;
              }
              iget--;
            }
          }
        }
        jput = -1;
        done = 0;
        while (done==0) {
          done = 1;
          jput++;
          if (jput<18) {
            if (b[162+jput]!=0) done = 0;
          }
        }
        if (jput<17) {
          jget = jput+1;
          while (jget<18) {
            if (b[162+jget]>0) {
              for (i=0; i<10; i++) {
                b[i*18+jput] = b[i*18+jget];
                d = "d"+(i*18+jput);
                document.getElementById(d).style.backgroundImage = "url(portions/fv"+b[i*18+jput]+".gif)";
                b[i*18+jget] = 0;
                d = "d"+(i*18+jget);
                document.getElementById(d).style.backgroundImage = "url(portions/fv0.gif)";
              }
              jput++;
            }
            jget++;
          }
        }
        gameover = 1;
        for (i=1; i<10; i++) {
          for (j=0; j<17; j++) {
            if (b[i*18+j]>0) {
              if (b[i*18+j]==b[i*18+j-18]) gameover=0;
              if (b[i*18+j]==b[i*18+j+1]) gameover=0;
            }
          }
        }
        sc+=cnt*cnt;
        document.getElementById("sc").firstChild.nodeValue = sc;
        if (gameover==1) {
          document.getElementById("end").firstChild.nodeValue = sc;
          document.getElementById("go").style.visibility = "visible";
        }
      }
    }
  }
}