<!--

var qobj = null
var deltax;
var deltay;var  score;
var inmove = false;
var sqrarr = new Array(5);var row;var col;
function initScr()
{
    score = 0;
    var elm = document.getElementById("mball");
    if (elm != null) {elm.innerHTML = "<table><tr><td id=sq10><div id=mbub><img src=images/sb2.jpg border=0></div></td></tr></table>";}
    setBoard();
    
    sqrarr[0] = new Array(5);
    for (k = 1; k <= 4; k++)
    {
        sqrarr[k] = new Array(5);
        sqrarr[k][0] = 0;
        for (j = 1; j <= 4; j++) {sqrarr[k][j] = bsarr[((k-1)*4+j)];}
    }  
    for (k=0; k <5; k++) {sqrarr[0][k]=0;}
    elm = document.getElementById('mbub');
    elm.style.left='0px';
    elm.style.top='0px';
}


function setBoard()
{
    var str = "";
    for (i = 1; i <= 4; i++)
    {
        str += "<tr>";
        for (j = 1; j <= 4; j++)
        {
            str = str + "<td class=wht id=sq" + i + j + " onclick='movelr(" + i + "," + j + ");'><div id=dot" + i + j + ">" + bsarr[((i-1)*4+j)] + "</div></td>";
        }
        str += "</tr>";
    }
    var elm = document.getElementById("mbin");
    if (elm != null) {elm.innerHTML = "<table border=0 cellspacing=0 cellpadding=0>" + str + "</table>";}
}


function movelr(r,c)
{
  if (inmove) {return;}
  score++;
  inmove = true;
  x = 0;
  y = 0;
  
  var elm = document.getElementById('mbub');
  if (elm != null)
  {
      x = parseInt(elm.style.left) + getLeft(1,0);
      y = parseInt(elm.style.top) + getTop(1,0);
      qobj = elm;

      deltax = getLeft(r,c) - x;
      deltay = getTop(r,c) - y;
      row = r;col=c;
      moveslow();
  }
}



function getLeft(r,c)
{
  var poselm = "sq" + r + c;
  var position_element = document.getElementById(poselm);

  var x = 0;
  for (var p = position_element; p; p = p.offsetParent)
  if (p.style.position != 'absolute')
  {
      x += p.offsetLeft;
  }
  
  return x;
}

function getTop(r,c)
{
  var poselm = "sq" + r + c;
  var position_element = document.getElementById(poselm);

  var x = 0;
  for (var p = position_element; p; p = p.offsetParent)
  if (p.style.position != 'absolute')
  {
      x += p.offsetTop;
  }
  
  return x;
}


function moveup(r,c)
{    
    var newr = row+r;
    var newc = col+c;
    if (newc < 1 || newr < 1) {return;}
    if (sqrarr[newr][newc] > sqrarr[row][col])
    {
        var t = sqrarr[newr][newc];
        sqrarr[newr][newc] = sqrarr[row][col];
        sqrarr[row][col] = t;
        var elm = document.getElementById("sq" + row + "" + col);
        elm.innerHTML = t;
        deltay = r*(getTop(row,col)-getTop(newr,newc));
        deltax = c*(getLeft(row,col)-getLeft(newr,newc));
        row = newr;
        col = newc;
        moveslow();
    }
}

function submitfrm()
{
      f = document.getElementById("stuscr");
      o = f.appendChild(document.createElement('div'));
      o.innerHTML="<input type=hidden name=score value=" + score + ">";
      o = f.appendChild(document.createElement('div'));
      o.innerHTML="<input type=hidden name=name value=\"" + window.parent.document.getElementById("nmplc").innerHTML + "\">";
      document.magicbubblefrm.submit();
}


function canMove()
{
    var flag = false;
    for (var i = 4; i > 0; i--)
    {
        for (var j = 4; j > 0; j--)
        {
            l = j - 1;
            t = i-1;
            if (sqrarr[i][j] < sqrarr[i][l]) {flag = true;break;}
            else if (sqrarr[i][j] < sqrarr[t][j]) {flag = true;break;}
        }
    }
    
    return flag;
}

function isDone()
{
    var done = true;
    for (var i = 1; i <= 4; i++)
    {
        for (var j = 1; j <= 4; j++)
        {
            if (sqrarr[i][j] != ((i-1)*4 + j)) {done=false;break;}
        }
    }
    
    return done;
}


function moveslow() {
  if (deltax == 0 && deltay == 0)
  {
      qobj.innerHTML ="<table style='width:50;height:50;background-image:url(images/sb2.jpg);background-repeat:no-repeat'><tr><td class=blk>" + sqrarr[row][col] + "</td></tr></table>";
      newr = row-1;
      if (newr > 0 && sqrarr[newr][col] > sqrarr[row][col])
      {
	  moveup(-1,0);
      }
      else
      {
          newc = col-1;
          if (newc > 0 && sqrarr[row][newc] > sqrarr[row][col])
          {
	      moveup(0,-1);
          }
          else
          {
	      qobj.style.left = '0px';
	      qobj.style.top = '0px';
	      var elm = document.getElementById("sq" + row + "" + col);
	      elm.innerHTML = sqrarr[row][col];
	      qobj.innerHTML ="<img src=images/sb2.jpg border=0>";
	      if (canMove() == false)
	      {
	         if (isDone())
	         {
	             alert("Congratulations!");submitfrm();
	         }
	         else
	         {
	             alert("Sorry! You can not move any more numbers. Please start over.");
	         }
	      }
	      inmove = false;
          }
      }
      
      /*
      moveup(0,-1);
      */
      return;
  }  
  var multx = 1;
  var multy = 1;
  var offsetx = 5;var offsety=5;
  if (deltax > 0)
  {
      deltax -= 5; if (deltax < 0) {offsetx += deltax;deltax=0;}
  }
  else if (deltax < 0)
  {
      deltax += 5; if (deltax > 0) {offsetx -= deltax;deltax=0;}
      multx = -1;
  }
  else {offsetx = 0;}
  
  if (deltay > 0)
  {
      deltay -= 5; if (deltay < 0) {offsety += deltay;deltay=0;}
  }
  else if (deltay < 0)
  {
      deltay += 5; if (deltax > 0) {offsety -= deltay;deltay=0;}
      multy = -1;
  }
  else {offsety = 0;}

  qobj.style.left = parseInt(qobj.style.left) + (offsetx*multx) +'px';
  qobj.style.top = parseInt(qobj.style.top) + (offsety*multy) +'px';
  setTimeout(moveslow,20);
}

function IsAlphaNum(str) {
  $cstr = new String(str);
  return $cstr.match(/^[a-zA-Z0-9 ]+$/);
}

function setName()
{
  var nm;
  nm=document.magicbubblefrm.sname.value;
  if (nm.length > 0)
  {
    if (IsAlphaNum(nm) == null)
    {
      alert("Name should contain only Alpha Numeric characters");
      document.magicbubblefrm.sname.focus();
      return false;
    }
    var nm2;
    nm2=window.parent.document.getElementById("nmplc");
    if (nm2 != null) {nm2.innerHTML=nm;}
  }
  return true;
}

function getName()
{        
    var nm2=window.parent.document.getElementById("nmplc");
    if (nm2 != null) {
      if (nm2.innerHTML != "Name") {
        document.magicbubblefrm.sname.value=nm2.innerHTML;
      }
    }
    document.magicbubblefrm.sname.focus();
}


//-->
