// variables
var alternate = 0;
var whosturn = 1;
var readytostart=0;
var vtxtRemain = document.formNIM.txtRemain;
var vtxtYoutook = document.formNIM.txtYoutook;
var vrbTake = new Array(3);
vrbTake = document.formNIM.rbTake;
var vrbFirst = new Array();
vrbFirst = document.formNIM.rbFirst;
var vtxtNimtook = document.formNIM.txtNimtook;

empty = new Image();
empty.src="empty.gif";
full = new Image();
full.src = "full.gif";


// functions ***********************************************************
function rbFirst_click(who) {
if (readytostart==0) {
whosturn = who;
readytostart = 1; 
  if (who==1) {
	NIMsturn(); } }


 }
// *********************************************************************
function rbTake_click(numtotake) {

if (readytostart==0) {
alert("You must first click the option of \nof who you want to start first.");

// SQUARE BRACKETS for defined variable parameters!!
vrbTake[numtotake-1].checked = false; }

if ((whosturn==2) && (readytostart==1)) {
vtxtYoutook.value=numtotake;
takem(numtotake); }

if ((whosturn==1) && (readytostart==1)){
	NIMsturn(); } 


}

// *********************************************************************
function takem(numtotake) {

var remain=(tokensleft-numtotake);

if (remain<0) {
alert("There aren't that many tokens to take!");
	vtxtYoutook.value=""; }
	else {
	 for (var take = tokensleft; (take > remain); take--) {
	  
	if (whosturn==1) {
changeImage(take);
 playasound(10);
		
for (var delay=1; delay<200000; delay++) {
; }
		 }
 		else {
  		changeImage(take);
 playasound(9);
		
for (var delay=1; delay<200000; delay++) {
; }
		 }

 

}
	 tokensleft = remain; 
	  vtxtRemain.value=tokensleft;
 	  checkforwinner(); }

}
// *********************************************************************
function checkforwinner() {

 if ((whosturn==1) && (tokensleft==0)) {
	playasound(8);
    var WinWin = window.open("nimform.htm");
    alert("You have beaten NIM and are hereby invited to join our winner's circle!\nTo post your name in the winner's circle,\nsimply enter your name or screen name in the\nfollowing form and click the submit button!"); 
    var TodayBlock = WinWin.document.WINFORM.MYTODAY;	
    TodayBlock.value = new Date(); 
    var ScreennameBlock = WinWin.document.WINFORM.SCREENNAME;	
    ScreennameBlock.focus(); }


  	else if ((whosturn==2) && (tokensleft==0)) {
  alert("NIM wins!\nThat means, YOU lose!");
  var soundnumber = (Math.random()*7); // 0 through 7
  soundnumber = Math.round(soundnumber); // round the number}
  playasound(soundnumber); }
    
  	else if (whosturn==1) {
  	whosturn=2; }
  	else if (whosturn==2) {
  	whosturn=1; }
	
}
// *********************************************************************


// *********************************************************************
function NIMsturn() {

if (tokensleft < 5) {
	numtotake = (tokensleft - 1);
	 if (numtotake == 0) {
	  numtotake = 1; }
       }

if (tokensleft>4) {	     

var ideal = ((Math.floor((tokensleft - 1) / 4) * 4) + 1);
	     numtotake = (tokensleft - ideal); }

if (numtotake==0) {
numtotake = (((Math.random())*2)+1); // from 1 to 3
numtotake = Math.round(numtotake); } // round the number  

if (tokensleft > stupid) {
numtotake = (((Math.random())*2)+1); // from 1 to 3
numtotake = Math.round(numtotake); } // round the number  

vtxtNimtook.value=numtotake;
takem(numtotake);

}

// ***********************************************************************

function changeImage(erase) {

// works in IE and Netscape
//document.images[erase].src = empty.src;
// works in IE only
document.token[erase-1].src=empty.src;


}
// **********************************************************************
// sound
var aySound = new Array();
// Below: source for sound files to be preloaded
aySound[0] = "loser1.wav";
aySound[1] = "loser2.wav";
aySound[2] = "loser3.wav";
aySound[3] = "loser4.wav";
aySound[4] = "loser5.wav";
aySound[5] = "loser6.wav";
aySound[6] = "loser7.wav";
aySound[7] = "loser8.wav";
aySound[8] = "winner.wav";
aySound[9] = "usersound.wav";
aySound[10] = "nimsound.wav";

// DO NOT edit below this line
document.write('<BGSOUND ID="auIEContainer">');
IE = (navigator.appVersion.indexOf("MSIE")!=-1 && document.all)? 1:0;
NS = (navigator.appName=="Netscape" && navigator.plugins["LiveAudio"])? 1:0;
ver4 = IE||NS? 1:0;
onload=auPreload;

function auPreload() {
if (!ver4) return;
if (NS) auEmb = new Layer(0,window);
else {
Str = "<DIV ID='auEmb' STYLE='position:absolute;'></DIV>";
document.body.insertAdjacentHTML("BeforeEnd",Str);
}
var Str = '';
for (i=0;i<aySound.length;i++)
Str += "<EMBED SRC='"+aySound[i]+"' AUTOSTART='FALSE' HIDDEN='TRUE'>";
if (IE) auEmb.innerHTML = Str;
else {
auEmb.document.open();
auEmb.document.write(Str);
auEmb.document.close();
}
auCon = IE? document.all.auIEContainer:auEmb;
auCon.control = auCtrl;
}
function auCtrl(whSound,play) {
if (IE) this.src = play? aySound[whSound]:'';
else eval("this.document.embeds[whSound]." + (play? "play()":"stop()"));
}
function playSound(whSound) { if (window.auCon) auCon.control(whSound,true); }
function stopSound(whSound) { if (window.auCon) auCon.control(whSound,false); }
// ******************************************************************************
function playasound(soundnumber) {
playSound(soundnumber);

}


// start the script
// get a random number for the tokens
var tokensleft = (((Math.random())*16)+25); // from 25 to 40
tokensleft = Math.round(tokensleft); // round the number

var stupid = (((Math.random())*(tokensleft-25))+25); // not less than 25 to max
stupid = Math.round(stupid); // round the number
var token = new Array(tokensleft); // make an image array 'tokensleft' long

// layout tokens
for (x = 1; x<tokensleft+1; x++) {
	document.write("<img name=\"token\" src=\"full.gif\" >");
}

vtxtRemain.value = tokensleft;




