var move=0
var moves=new Array(35)
var from_field="f00"


function storemove(st,en)
{
  this.start=st
  this.end=en
}

function is_a_dot(imgname)
{
  eval("fn=window.document.f1."+imgname+".src")
  l=fn.length
  filename=fn.substring(l-7,l)
  if (filename=="dot.gif") {return 1}
  else {return 0}
}

function switcher(pos)
{
  if (is_a_dot(pos))
  {
    eval("window.document.f1."+pos+".src='marbles/hole.gif'")
  }
  else
  {
    eval("window.document.f1."+pos+".src='marbles/dot.gif'")
  }
}

function move_not_of_board(a,b)
{
  for(n=0;n<2;n++)
  {
	if (n==1) {ck=a}
	else {ck=b}
	d=Math.floor(ck/10)
	s=ck-d*10
	if (!(((s>2 && s<6) && (d>0 && d<8)) || ((s>0 && s<8) && (d>2 && d<6))))
	{return false}
  }
  return true
}

function more_moves()
{
  for (i=1; i<33; i++)
  {
	imgname=window.document.images[i+1].name ;
	//2 is number of pictures before the game
    if (is_a_dot(imgname))
	{
	  sfn=imgname.substring(1,3)*1
	  for (direct=0; direct<4; direct++)
	  {
		k=0
		if (direct==0) {k=-10}
		if (direct==1) {k=1}
		if (direct==2) {k=10}
		if (direct==3) {k=-1}
		mfn=sfn*1+k*1			;//middlefieldnumber
		mft="F"+mfn			;//middlefieldnametext
		efn=sfn*1+2*k			;//endfieldnumber
		eft="F"+efn			;//endfieldnametext
		if(move_not_of_board(mfn,efn))
		{
		  if(is_a_dot(mft)&& !(is_a_dot(eft)))
		  {
			return true
		  }
		}
	  }
	}
  }
  return false
}

function finish()
{ 
  stopTimer()
  marbles = 32 - move
  if(move==31) 		{m="Absolutly perfect!"}
  if(move==30) 		{m="Very good playing!"}
  if(move==29 || move==28) {m="Quite good!"}
  if(move<28 && move>21) 	{m="Train more!"}
  if(move<22) 		{m="Try again!"}
  window.alert("\tNo Move Left!\n\n\tMarbles remaining " + marbles + "\n\n\t" +m)
  document.f1.score.value=marbles
  document.f1.submit()
}

function click_on_field (feld)
{
  if (is_a_dot(feld))
  { from_field=feld	}
  else
  {
	sp=from_field				;//Startpoint
	ep=feld					;//endpoint
	er=ep.substring(1,2)			;//row of endpoint
	ec=ep.substring(2,3)			;//colum of enpoint
	sr=sp.substring(1,2)
	sc=sp.substring(2,3)
	if ((er==sr && Math.abs(ec-sc)==2) || (ec==sc && Math.abs(er-sr)==2) )
	{
	  middlefield="F"+((sr*1+1*er)/2)+((1*sc+1*ec)/2)
	  if (is_a_dot(middlefield))
	  { 
		switcher(sp)
		switcher(middlefield)
		switcher(ep)

		moves[move]=new storemove(sp,ep)
		move=move+1
		from_field=""
		if (move==31 || !more_moves())
		{ finish(move) }
      }
	}
  }
}

function moveback()
{
  if (move>0)
  {
	move=move-1
	sp=moves[move].start
	ep=moves[move].end
	er=ep.substring(1,2)			;//row of endpoint
	ec=ep.substring(2,3)			;//colum of enpoint
	sr=sp.substring(1,2)
	sc=sp.substring(2,3)
	middlefield="F"+((sr*1+1*er)/2)+((1*sc+1*ec)/2)
	switcher(sp)
	switcher(middlefield)
	switcher(ep)
  }
}


var t,tt,ttt
tt = 0
ttt=0

function timer()
{
  tt++
  document.f1.time.value = tt
  ttt = setTimeout("timer()",1000) 
}

function startTimer()
{
  clearTimeout(ttt)
  timer() 
}

function stopTimer()
{
   clearTimeout(ttt)
   //ttt = 0
}
