var	prv_bet=0;
var	prv_lvl=4;
var	level=new Array(4,2,2,2,1,3,3,1,4,4,1);
var	sel=new Array(0,0,0,0);
var	cnt=new Array(0,0,0,0);
function Disable(lvl) {
	if(prv_lvl==lvl)
		return;
	for(i=1;i<4;i++)
	{
		var	s=document.styleSheets[0];
		var	vs=s.rules[i].style;
		var	vn=s.rules[i+4].style;
		if(i<lvl&&i>=prv_lvl)
			vn.visibility=vs.visibility='visible';
		if(i>=lvl&&i<prv_lvl)
			vn.visibility=vs.visibility='hidden';
	}
	prv_lvl=lvl;
}
function FlipBet(which) {
	var	bf=document.bet;
	if(prv_bet)
		Normal(bf.elements[prv_bet-1].style);
	if(which)
		Select(bf.elements[which-1].style);
	prv_bet=which;
	Disable(level[which]);
	ShowCost();
}
function FlipHorse(which,mj,mn)
{
	var	bf=document.bet;
	var	hs=bf.elements[which+9].style;
	if(hs.color=="lime")
	{
		Normal(hs);
		cnt[mj]--;
	}
	else
	{
		Select(hs);
		cnt[mj]++;
	}
	sel[mj]^=mn;
	ShowCost();
}
function ClearAll() {
	var	bf=document.bet;
	FlipBet(0);
	for(i=10;i<90;i++)
		Normal(bf.elements[i].style);
	for(i=0;i<4;i++)
		cnt[i]=sel[i]=0;
	ShowCost();
}
function Normal(hs) {
	hs.background="silver";
	hs.color="black";
	hs.border="outset"
}
function Select(hs) {
	hs.background="black";
	hs.color="lime";
	hs.border="inset"
}
function ShowCost() {
	var	bf=document.bet.cost;
	bf.focus();
	bf.value='COST: R '+CalcCost();
}
function CountBits(b) {
	var	count=0;
	for(;b;b>>=1)
		if(b&1)
			count++;
	return(count);
}
function Swinger(s) {
	return((s*(s-1))/2);
}
function CalcCost() {
	if(prv_bet<1||prv_bet>10)
		return(0);
	var	c0=cnt[0];
	var	c1=cnt[1];
	var	s0=sel[0];
	var	s1=sel[1];
	var	c01=CountBits(s0&s1);
	if(prv_bet==1)
	{
		if(!c0)
			return(Swinger(c1));
		if(!c1)
			return(Swinger(c0));
		return(c0*c1-c01-Swinger(c01));
	}
	if(prv_bet==2)
		return(c0*c1-c01);
	if(prv_bet==3)
		return((c0==1&&c1>1)?(c0*c1-c01)*2:0);
	if(prv_bet==4)
		return(c0*(c0-1));
	var	c2=cnt[2];
	var	s2=sel[2];
	var	c02=CountBits(s0&s2);
	var	c12=CountBits(s1&s2);
	var	c012=CountBits(s0&s1&s2);
	if(prv_bet==5)
		return(c2?c0*c1*c2+c012*2-c0*c12-c1*c02-c2*c01:c0*c1*(c1-1)+2*c01*(1-c1));
	if(prv_bet==6)
	{
		if(c0==1&&c1>2&&!c2)
			return((c1-2*c01)*(c1-1)*3);
		if(c0==1&&c1==1&&s0!=s1&&c2>1)
			return((c2+2*c012-c12-c02-c2*c01)*6);
		return(0);
	}
	if(prv_bet==7)
		return(c0*(c0-1)*(c0-2));
	var	c3=cnt[3];
	var	s3=sel[3];
	var	c03=CountBits(s0&s3);
	var	c13=CountBits(s1&s3);
	var	c23=CountBits(s2&s3);
	var	c013=CountBits(s0&s1&s3);
	var	c023=CountBits(s0&s2&s3);
	var	c123=CountBits(s1&s2&s3);
	var	c0123=CountBits(s0&s1&s2&s3);
	if(prv_bet==8)
	{
		if(!c3)
		{
			if(c2)
			{
				c3=c23=c2;
				c03=c023=c02;
				c13=c123=c12;
				c013=c0123=c012;
			}
			else
			{
				c3=c2=c12=c13=c23=c123=c1;
				c02=c03=c012=c013=c023=c0123=c01;
			}
		}
		var	t1=c0*c1*c2*c3;
		var	t2=(c012*c3+c013*c2+c023*c1+c123*c0)*2;
		var	t3=c01*c23+c02*c13+c03*c12;
		var	t4=6*c0123;
		var	t5=c01*c2*c3+c02*c1*c3+c03*c1*c2+c12*c0*c3+c13*c0*c2+c23*c0*c1;
		return(t1+t2+t3-t4-t5);
	}
	if(prv_bet==9)
	{
		if(c0==1&&c1>3&&!c2&&!c3)
		{
			c1-=c01;
			return(c1*(c1-1)*(c1-2)*4);
		}
		if(c0==1&&c1==1&&s0!=s1&&c2>2&&!c3)
		{
			c2-=c02+c12;
			return(c2*(c2-1)*12);
		}
		if(c0==1&&c1==1&&c2==1&&s0!=s1&&s0!=s2&&s1!=s2&&c3>1)
		{
			return((c3-c03-c13-c23)*24);
		}
		return(0);
	}
	return(c0*(c0-1)*(c0-2)*(c0-3));
}

