function MakeArray(n)
{
	this.length=n;
	for(var i = 1; i<= n; i++)
	{
		this[i] = "";
	}
	return(this);
}
var dieqty = new MakeArray(7);  
var dieindex = new MakeArray(7);  
var diefaces = new MakeArray(7);  
var dicearray = new MakeArray(7);
var totals = new MakeArray(7);
var mods = new MakeArray(7);
var rollnum = 0;
var fullnum = 0;
var bignum = 0;
var remainder = 0;

diefaces[1] = 4;
diefaces[2] = 6;
diefaces[3] = 8;
diefaces[4] = 10;
diefaces[5] = 12;
diefaces[6] = 20;
diefaces[7] = 100;

function throwdice()
{
	rollnum++;
	document.form1.DICELOG.value += '\n\nRoll number '+rollnum;
	dieqty[1] = parseInt(document.dieboard.qd4.value);
	mods[1] = (dieqty[1] > 0) ? parseInt(document.dieboard.md4.value) : 0;
	document.dieboard.md4.value = mods[1];
	dieqty[2] = parseInt(document.dieboard.qd6.value);
	mods[2] = (dieqty[2] > 0) ? parseInt(document.dieboard.md6.value) : 0;
	document.dieboard.md6.value = mods[2];
	dieqty[3] = parseInt(document.dieboard.qd8.value);
	mods[3] = (dieqty[1] > 0) ? parseInt(document.dieboard.md8.value) : 0;
	document.dieboard.md8.value = mods[3];
	dieqty[4] = parseInt(document.dieboard.qd10.value);
	mods[4] = (dieqty[1] > 0) ? parseInt(document.dieboard.md10.value) : 0;
	document.dieboard.md10.value = mods[4];
	dieqty[5] = parseInt(document.dieboard.qd12.value);
	mods[5] = (dieqty[1] > 0) ? parseInt(document.dieboard.md12.value) : 0;
	document.dieboard.md12.value = mods[5];
	dieqty[6] = parseInt(document.dieboard.qd20.value);
	mods[6] = (dieqty[1] > 0) ? parseInt(document.dieboard.md20.value) : 0;
	document.dieboard.md20.value = mods[6];
	dieqty[7] = parseInt(document.dieboard.qd100.value);
	mods[7] = (dieqty[1] > 0) ? parseInt(document.dieboard.md100.value) : 0;
	document.dieboard.md100.value = mods[7];
	var idx = "";
	totals[0] = 0;
	for(var index = 1; index<= 7; index++) 
	{
		if (dieqty[index] > 0)	document.form1.DICELOG.value += '\n'+dieqty[index]+'d'+diefaces[index]+':';
		dicearray[index] = new MakeArray(dieqty[index]);
		dieindex[index] = 0;
		totals[index] = 0;
		idx=1+"d"+diefaces[index];
		if (index < 7 )
		{
			document.images[idx].src=eval("d"+diefaces[index]+"faceg.src");
		}
		else
		{
			document.images["1d100"].src=eval("d100faceg.src");
			document.images["1d10s"].src=eval("d10faceg.src");
		}
		for(var i = 2; i<= 5; i++)
		{
			if (index < 7)
			{
				idx=i+"d"+diefaces[index];
				document.images[idx].src=eval("d"+diefaces[index]+"face0.src");
			}
			else
			{
				idx=i+"d100";
				document.images[idx].src=eval("d100face0.src");
				idx=i+"d10s";
				document.images[idx].src=eval("d10face0.src");
			}
		}
		if (dieqty[index] > 5)
		{
			idx="rd"+diefaces[index];
			document.images[idx].src=activright.src;
		}
		else
		{
			idx="rd"+diefaces[index];
			document.images[idx].src=greyright.src;
		}
		if (mods[index] != 0) totals[index] = mods[index];
		totals[0] += totals[index];
		for(var i = 1; i<= dieqty[index]; i++)
		{	
			idx = diefaces[index];
			idx--;
			dicearray[index][i] = Math.round(Math.random()*idx);
			dicearray[index][i]++;
			fullnum = dicearray[index][i];
			totals[index] += fullnum; 
			totals[0] += fullnum;
			if (dieqty[index] > 0) document.form1.DICELOG.value += fullnum+',';
			if (i<6)
			{ 
				if (index<7)
				{
					idx=i+"d"+diefaces[index];
					document.images[idx].src=eval("d"+diefaces[index]+"face"+fullnum+".src");
				}
				else
				{ 
					bignum = Math.floor(fullnum / 10);
					remainder = fullnum - (10 * bignum);
					if (bignum == 0) bignum = 10;
					if (remainder == 0) remainder = 10;
					idx=i+"d100";
					document.images[idx].src=eval("d100face"+bignum+".src");
					idx=i+"d10s";
					document.images[idx].src=eval("d10face"+remainder+".src");
				}
			}
		}
		if (dieqty[index] > 0) document.form1.DICELOG.value += ' add '+mods[index]+'='+totals[index];
	}
	document.dieboard.td4.value = totals[1];
	document.dieboard.td6.value = totals[2];
	document.dieboard.td8.value = totals[3];
	document.dieboard.td10.value = totals[4];
	document.dieboard.td12.value = totals[5];
	document.dieboard.td20.value = totals[6];
	document.dieboard.td100.value = totals[7];
	document.dieboard.total.value = totals[0];
}
function checkEnter(keycode)
{
	if (keycode == 13) 
	{
		throwdice();
		return false;
	}
	else return true;
}
function scroll(direction,faces) 
{
	switch (faces)
	{
		case 4:  
			index=1;
		break;  
		case 6:  
			index=2;
		break;  
		case 8:  
			index=3;
		break;  
		case 10:  
			index=4;
		break;  
		case 12:  
			index=5;
		break;  
		case 20:  
			index=6;
		break;  
		case 100:  
			index=7;
		break;  
		default:  
			return;  
		break;
	}
	if (dieqty[index] > 5) 
	{
		max = dieqty[index]-dieindex[index];
		if (direction==2 && max >= 6) 
		{
			++dieindex[index];
			scrollit(index);

			idx="ld"+diefaces[index];
			document.images[idx].src=activleft.src;
		}
		else if (direction==1 && dieindex[index] >= 1) 
		{
			--dieindex[index];
			scrollit(index);
			idx="rd"+diefaces[index];
			document.images[idx].src=activright.src;
		}
	}
}

function scrollit(index)
{
	for(var i = 1; i<= 5; i++) 
	{
		if (i <= dieqty[index])  
		{
			diepos = i+dieindex[index];
			fullnum = dicearray[index][diepos];
			if (diepos <= dieqty[index] && diepos >=1) 
			{
				if (index<7)
				{
					idx=i+"d"+diefaces[index];
					document.images[idx].src=eval("d"+diefaces[index]+"face"+fullnum+".src");
				}
				else
				{
					bignum = Math.floor(fullnum / 10);
					remainder = fullnum - (10 * bignum);
					if (bignum == 0) bignum = 10;
					if (remainder == 0) remainder = 10;
					idx=i+"d100";
					document.images[idx].src=eval("d100face"+bignum+".src");
					idx=i+"d10s";
					document.images[idx].src=eval("d10face"+remainder+".src");
				}
			}
		}
	}
	if (dieindex[index] < 1) 
	{
		idx="ld"+diefaces[index];
		document.images[idx].src=greyleft.src;
	}
	if (dieqty[index]-dieindex[index] < 6) 
	{
		idx="rd"+diefaces[index];
		document.images[idx].src=greyright.src;
	}
}
function clearform() 
{
	totals[0] = 0;
	for(var index = 1; index<= 7; index++) 
	{
		dicearray[index] = new MakeArray(dieqty[index]);
		dieindex[index] = 0;
		totals[index] = 0;
		mods[index] = 0;
		dieqty[index] = 0;
		idx="1d"+diefaces[index];
		document.images[idx].src=eval("d"+diefaces[index]+"faceg.src");
		idx="ld"+diefaces[index];
		document.images[idx].src=greyleft.src;
		idx="rd"+diefaces[index];
		document.images[idx].src=greyright.src;
		for(var i = 2; i<= 5; i++) 
		{
			idx=i+"d"+diefaces[index];
			document.images[idx].src=eval("d"+diefaces[index]+"face0.src");
		}
	}		
	for(var i = 2; i<= 5; i++) 
	{
		idx=i+"d10s";
		document.images["1d10s"].src=eval("d10faceg.src");
		document.images[idx].src=eval("d10face0.src");
	}
	
	document.dieboard.total.value = totals[0];
	document.dieboard.td4.value = totals[1];
	document.dieboard.td6.value = totals[2];
	document.dieboard.td8.value = totals[3];
	document.dieboard.td10.value = totals[4];
	document.dieboard.td12.value = totals[5];
	document.dieboard.td20.value = totals[6];
	document.dieboard.td100.value = totals[7];
	document.dieboard.md4.value = mods[1];
	document.dieboard.md6.value = mods[2];
	document.dieboard.md8.value = mods[3];
	document.dieboard.md10.value = mods[4];
	document.dieboard.md12.value = mods[5];
	document.dieboard.md20.value = mods[6];
	document.dieboard.md100.value = mods[7];
	document.dieboard.qd4.value = dieqty[1];
	document.dieboard.qd6.value = dieqty[2];
	document.dieboard.qd8.value = dieqty[3];
	document.dieboard.qd10.value = dieqty[4];
	document.dieboard.qd12.value = dieqty[5];
	document.dieboard.qd20.value = dieqty[6];
	document.dieboard.qd100.value = dieqty[7];
}