var selclr=0;
var currow=0;
var startflag=false;
var playflag=true;
var guess=new Array(4);
var code=new Array(4);
var inguess=new Array(8);
var incode=new Array(8);
var inrow=0;
var newsel=false;
clr0=new Image(36,18);
clr0.src="images/mastermind/clr0.gif";
clr1=new Image(36,18);
clr1.src="images/mastermind/clr1.gif";
clr1sel=new Image(36,18);
clr1sel.src="images/mastermind/clr1sel.gif";
clr2=new Image(36,18);
clr2.src="images/mastermind/clr2.gif";
clr2sel=new Image(36,18);
clr2sel.src="images/mastermind/clr2sel.gif";
clr3=new Image(36,18);
clr3.src="images/mastermind/clr3.gif";
clr3sel=new Image(36,18);
clr3sel.src="images/mastermind/clr3sel.gif";
clr4=new Image(36,18);
clr4.src="images/mastermind/clr4.gif";
clr4sel=new Image(36,18);
clr4sel.src="images/mastermind/clr4sel.gif";
clr5=new Image(36,18);
clr5.src="images/mastermind/clr5.gif";
clr5sel=new Image(36,18);
clr5sel.src="images/mastermind/clr5sel.gif";
clr6=new Image(36,18);
clr6.src="images/mastermind/clr6.gif";
clr6sel=new Image(36,18);
clr6sel.src="images/mastermind/clr6sel.gif";
clr7=new Image(36,18);
clr7.src="images/mastermind/clr7.gif";
clr7sel=new Image(36,18);
clr7sel.src="images/mastermind/clr7sel.gif";
clr8=new Image(36,18);
clr8.src="images/mastermind/clr8.gif";
clr8sel=new Image(36,18);
clr8sel.src="images/mastermind/clr8sel.gif";
black=new Image(36,18);
black.src="images/mastermind/black.gif";
white=new Image(36,18);
white.src="images/mastermind/white.gif";
blank=new Image(36,18);
blank.src="images/mastermind/blank.gif"
function clickpal(clr)
 {
  if (startflag==false)
   {
    newgame();
    startflag=true;
   }
  if (selclr!=clr)
   {
    if (selclr!=0)
     {
      document.getElementById("pal"+selclr).src=eval("clr"+selclr+".src");
     }
    document.getElementById("pal"+clr).src=eval("clr"+clr+"sel.src");
    selclr=clr;
    newsel=true;
   }
 }
function newgame()
 {
  playflag=true;
  for(clr=1;clr<=8;clr++)
   {
    incode[clr]=0;
    document.getElementById("pal"+clr).src=eval("clr"+clr+".src");
    document.getElementById("ok"+(clr-1)).innerHTML="--- OK ---";
   }
  for(col=0;col<=4;col++)
   {
    guess[col]=0;
    code[col]=parseInt(Math.random()*8+1);
    incode[code[col]]++;
    document.getElementById("cod"+col).src=blank.src;
   }
  for(row=0;row<=9;row++)
   {
    if (startflag==true)
     {
      for(col=0;col<=4;col++)
       {
        document.getElementById("guess"+row+col).src=clr0.src;
        document.getElementById("ans"+row+col).src=clr0.src;
       }
     }
   }
  currow=0;
  selclr=0;
  document.getElementById("result").innerHTML="";
 }
function clickbd(row,col)
 {
  if(playflag==false)
    return;
  if (startflag==false)
   {
    newgame();
    startflag=true;
   }
  if (row<currow)
    {
        filename=document.getElementById("guess"+row+col).src.split('');
        clickpal(filename[filename.length-5]);
    }
  if (row>currow)
   alert ("You haven't got to this row yet.");
  if (row==currow && selclr!=0 && (newsel || guess[col]==0))
   {
    guess[col]=selclr;
    if (document.getElementById("guess"+row+col).src==clr0.src)
     inrow++;
    document.getElementById("guess"+row+col).src=eval("clr"+selclr+".src");
   }
  else if (row==currow && guess[col]!=0)
   {
    clickpal(guess[col]);
    newsel=false;
   }
 }
function lose()
 {
  if (startflag==true)
   {
    playflag=false;
    document.getElementById("result").innerHTML=" The code was:&nbsp;&nbsp;";
    for (col=0;col<=4;col++)
     {
      document.getElementById("cod"+col).src=eval("clr"+code[col]+".src");
     }
   }
 }
function evaluate(row)
 {
  if(playflag==false)
    return;
  var bk=0;
  var total=0;
  if (row==currow && startflag==true && inrow==5)
   {
    inrow=0;
    for (clr=1;clr<=8;clr++)
     {
      inguess[clr]=0;
     }
    for (col=0;col<=4;col++)
     {
      if (guess[col]==code[col])
       bk++;
      inguess[guess[col]]++;
     }
    for (clr=1;clr<=8;clr++)
     {
      total=total+Math.min(inguess[clr],incode[clr]);
     }
    for (col=0;col<total;col++)
     {
      if (col<bk)
       {
        document.getElementById("ans"+row+col).src=black.src;
       }
      else
       {
        document.getElementById("ans"+row+col).src=white.src;
       }
     }
    currow++;
    for (col=0;col<=total;col++)
     {
      guess[col]=0;
     }
    if (bk==5)
     {
      document.getElementById("result").innerHTML="YOU WIN!";
      playflag=false;
     }
    else
     {
      if (currow==10)
       lose();
     }
    document.getElementById("ok"+row).innerHTML="";
   }
  else if (row>=currow)
   {
    alert("You haven't completed this row.");
   }
 }