//boolean where var is indicator
//clear arrays in one line
//=========================================================================================================
//global
var tries = 1000;
//common
var pack = new Array(52);
var dealt = new Array(9);
//select vars
var packnum = 0;
var curdeal=0;
var ddeal=0;
var cursuit=0;
var ssuit=0;
var s=0;
var s2=0;
var rrank=0;
//calc vars
var cards = 52;
var tpack = new Array(52);
var dealts = 9;
var zdin = new Array(9);
var tdealt = new Array(9);
var sr=0;
var rw = 0;
var rn1 = new Array(5);
var st1 = new Array(5);
var rn2 = new Array(5);
var st2 = new Array(5);
var rnk1 = new Array(13);
var sut1 = new Array(4);
var rnk2 = new Array(13);
var sut2 = new Array(4);
var rnk10 = new Array(13);
var rnk11 = new Array(13);
var rnk12 = new Array(13);
var rnk13 = new Array(13);
var rnk20 = new Array(13);
var rnk21 = new Array(13);
var rnk22 = new Array(13);
var rnk23 = new Array(13);
var higs1 = new Array(5);
var higs2 = new Array(5);
var higa1 = new Array(5);
var higa2 = new Array(5);
var got1 = new Array(11);
var got2 = new Array(11);
var w0 = new Array(11);
var w1 = new Array(11);
var w2 = new Array(11);
var w3 = new Array(11);
var wr = new Array(0,0,0,0,0,0,0,0,0,0,0);
var wins=11;
var straight1=0;
var straight2=0;
var txsuit=new Array('Hearts','Clubs','Diamonds','Spades');
var txrank=new Array('Two','Three','Four','Five','Six','Seven','Eight','Nine','Ten','Jack','Queen','King','Ace');

//=========================================================================================================
function init() {
preload();
resetall();
}

//=========================================================================================================
function resetall() {
preload();
//reset pack to available
for (k=0;k<52;k=k+1){
pack[k]=0;
}
//reset to hearts displayed
//selsuit(0);
//reset to all faces displayed
s3=-1;
for(sr=0;sr<4;sr++) {
for(s=0;s<13;s++) {
s3++;
s2=((sr*13)+12)-s;
//document.rank[s2].src=('cpref/'+eval(s)+eval(sr)+'.gif');
document.rank[s2].src=eval('i'+eval(s)+eval(sr)+'.src');
document.rank[s2].alt=(txrank[s]+' Of '+txsuit[sr]);
}
}
//alert('i'+eval(s)+eval(sr)+'.src');
//reset deal cards
for (d=0;d<9;d=d+1){
//document.deal[d].src=('cpref/bb.gif');
document.deal[d].src=ibb.src;
document.deal[d].alt=('');
dealt[d]=98;
cursuit=0;
}
//default first deal card as selected
//document.deal[0].src=('cpref/br.gif');
document.deal[0].src=ibr.src;
dealt[0]=99;
curdeal=0;
clearcalc();
document.inp.ow1[0].value='';
document.inp.ow2[0].value='';
document.inp.ow0[0].value='';
document.inp.ow3[0].value='';
}

//=========================================================================================================
function seldeal(ddeal) {
//turn any other red back over
for (d=0;d<9;d=d+1){
if (dealt[d]==99){
//document.deal[d].src=('cpref/bb.gif');
document.deal[d].src=ibb.src;
document.deal[d].alt=('');
dealt[d]=98;
}
}
//reset rank card that this was
packnum=dealt[ddeal];
pack[packnum]=0;
//and re-show cursuit in case on screen
//selsuit(cursuit);
//reshow rank card as now not selected
if (dealt[ddeal]<98){
ssuit=Math.floor(packnum/13);
rrank=packnum-((Math.floor(packnum/13))*13);
s2=((ssuit*13)+12)-rrank;
document.rank[s2].src=eval('i'+eval(rrank)+eval(ssuit)+'.src');
}
//set this one as selected
//document.deal[ddeal].src=('cpref/br.gif');
document.deal[ddeal].src=ibr.src;
document.deal[ddeal].alt=('');
dealt[ddeal]=99;
curdeal=ddeal;
}

//=========================================================================================================
function selrank(rrank) {
//calculate 52 rank 0-51
//packnum=(cursuit*13)+rrank;
packnum=rrank;
ssuit=Math.floor(packnum/13);
rrank=packnum-((Math.floor(packnum/13))*13);
//check card not already selected
if (pack[packnum]==0){
//check valid deal card is selected
if (curdeal<9){
//turn selected card over
pack[packnum]=1;
s2=((ssuit*13)+12)-rrank;
//document.rank[s2].src=('cpref/bb.gif');
document.rank[s2].src=ibb.src;
//set dealt card image & dealt
//document.deal[curdeal].src=('cpref/'+eval(rrank)+eval(ssuit)+'.gif');
document.deal[curdeal].src=eval('i'+eval(rrank)+eval(ssuit)+'.src');
document.deal[curdeal].alt=(txrank[rrank]+' Of '+txsuit[ssuit]);
dealt[curdeal]=packnum;
//move selected to next one
////go 0,1,4,5,6,7,8,2,3
curdeal=curdeal+1;
//if (curdeal==2) curdeal=4;
//if (curdeal==9) curdeal=2;
//check not already set
if (dealt[curdeal]>=98) {
dealt[curdeal]=99;
//document.deal[curdeal].src=('cpref/br.gif');
document.deal[curdeal].src=ibr.src;
}
else curdeal=9;
}
}
}

//=========================================================================================================
function selsuit0(ssuit) {
cursuit=ssuit;
//set rank cards
for (s=12;s>=0; s=s-1){
//alert('cpref/'+eval(s)+eval(suit)+'.gif');
//document.rnk[s].src="cpref/00.gif";
s2=12-s;
document.rank[s2].src=('cpref/'+eval(s)+eval(ssuit)+'.gif');
//document.rank[s2].src=('i'+eval(s)+eval(ssuit));
//check if already selected
packnum=(cursuit*13)+s;
if (pack[packnum]==1){
document.rank[s2].src=('cpref/bb.gif');
}
}
}

//=========================================================================================================
function selrank0(rrank) {
//calculate 52 rank 0-51
packnum=(cursuit*13)+rrank;
//check card not already selected
if (pack[packnum]==0){
//check valid deal card is selected
if (curdeal<9){
//turn selected card over
pack[packnum]=1;
s2=12-rrank;
document.rank[s2].src=('cpref/bb.gif');
//set dealt card image & dealt
document.deal[curdeal].src=('cpref/'+eval(rrank)+eval(cursuit)+'.gif');
//document.deal[curdeal].src=('i'+eval(rrank)+eval(cursuit));
dealt[curdeal]=packnum;
//move selected to next one
////go 0,1,4,5,6,7,8,2,3
curdeal=curdeal+1;
//if (curdeal==2) curdeal=4;
//if (curdeal==9) curdeal=2;
//check not already set
if (dealt[curdeal]>=98) {
dealt[curdeal]=99;
document.deal[curdeal].src=('cpref/br.gif');
}
else curdeal=9;
}
}
}

//=========================================================================================================
function clearcalc() {
for(s=1;s<wins;s++) {
document.inp.ow1[s].value='';
document.inp.ow2[s].value='';
document.inp.ow0[s].value='';
document.inp.ow3[s].value='';
}
//calc();
}

//=========================================================================================================
function calc() {

//clear previous wins
for(s=0;s<wins;s++) {
w0[s]=0;
w1[s]=0;
w2[s]=0;
w3[s]=0;
}
//w0=wr;
//w1=wr;
//w2=wr;

//set delat 1-9 in correct order 11FFFTR22
//zdin[0]=dealt[0];
//zdin[1]=dealt[1];
//zdin[2]=dealt[4];
//zdin[3]=dealt[5];
//zdin[4]=dealt[6];
//zdin[5]=dealt[7];
//zdin[6]=dealt[8];
//zdin[7]=dealt[2];
//zdin[8]=dealt[3];
zdin=dealt;
//alert('dealt '+dealt+' zdin '+zdin+' pack '+pack);

//for loop------------------------------------------
for(h=0;h<(tries);h++) {

//fill------------------------
//reset cards to orig
for(w=0;w<cards;w++) {
tpack[w]=pack[w];
}
//reset dealt to orig then get all
for(s=0;s<dealts;s++) {
tdealt[s]=zdin[s];
if (tdealt[s]>=98){
do {
rw=Math.floor(52*Math.random()+0);
} while (tpack[rw]==1)
tpack[rw]=1;
tdealt[s]=rw;
}
} //for s

//check-----------------------
//build x2
for(s=0;s<dealts;s++) {
if (s<7){
st1[s]=Math.floor(tdealt[s]/13);
rn1[s]=tdealt[s]-(st1[s]*13);
}
if (s>1){
s2=s-2;
st2[s2]=Math.floor(tdealt[s]/13);
rn2[s2]=tdealt[s]-(st2[s2]*13);
}
}

//clear
for(s=0;s<5;s++) {
higs1[s]=0;
higs2[s]=0;
higa1[s]=0;
higa2[s]=0;
}
for(s=0;s<13;s++) {
rnk1[s]=0;
rnk2[s]=0;
rnk10[s]=0;
rnk11[s]=0;
rnk12[s]=0;
rnk13[s]=0;
rnk20[s]=0;
rnk21[s]=0;
rnk22[s]=0;
rnk23[s]=0;
}
for(s=0;s<4;s++) {
sut1[s]=0;
sut2[s]=0;
}
for(s=0;s<11;s++) {
got1[s]=0;
got2[s]=0;
}

//get #s
for(s=0;s<7;s++) {
rnk1[rn1[s]]++;
rnk2[rn2[s]]++;
sut1[st1[s]]++;
sut2[st2[s]]++;
eval('rnk1'+st1[s])[rn1[s]]++;
eval('rnk2'+st2[s])[rn2[s]]++;
}

//now have #s

//get hig
ss1=-1;
ss2=-1;
sa1=-1;
sa2=-1;
for(s=12;s>=0;s--) {
if (rnk1[s]==1) {
ss1=ss1+1;
if (ss1<5){
higs1[ss1]=s+12;
}
}
if (rnk1[s]>=1) {
sa1=sa1+1;
if (sa1<5){
higa1[sa1]=s+12;
}
}
if (rnk2[s]==1) {
ss2=ss2+1;
if (ss2<5){
higs2[ss2]=s+12;
}
}
if (rnk2[s]>=1) {
sa2=sa2+1;
if (sa2<5){
higa2[sa2]=s+12;
}
}
}

//get got rnk&suit
//get straight flushes
for(sr=0;sr<4;sr++) {
straight1=0;
straight2=0;
for(s=0;s<13;s++) {
//check if still on course for a straight
if (eval('rnk1'+sr)[s]>=1){
straight1++
if (straight1>=5) {
got1[2]=(s+12);
if (s==12) got1[1]=(s+12);
}
}
else {
straight1=0
}
if (eval('rnk2'+sr)[s]>=1){
straight2++
if (straight2>=5) {
got2[2]=(s+12);
if (s==12) got2[1]=(s+12);
}
}
else {
straight2=0
}
}
}
//check if player 1 found one of above, in that case stop here
if (got1[2]==0) {

//get got rnk
straight1=0;
straight2=0;
//for(s=12;s>=0;s--) {
for(s=0;s<13;s++) {
//check if still on course for a straight
if (rnk1[s]>=1) {
straight1++
if (straight1>=5) {
got1[6]=(s+12);
}
}
else {
straight1=0
}
//4 of a kind
if (rnk1[s]>=4) {
//set 2nd qualifier to be highest other rank
for(sr=1;sr>=0;sr=sr-1) {
if (higa1[sr]!=(s+12)){
got1[3]=(s+12)+'.'+higa1[sr];
}
}
}
//3 of a kind
if (rnk1[s]==3) {
//2nd set of 3 therefore full house
if (got1[7]>0){
got1[4]=(s+12)+'.'+got1[7].substr(0,2);
}
//1st set of three
got1[7]=(s+12)+'.'+higs1[0]+higs1[1];
}
//1 or 2 pairs
if (rnk1[s]==2) {
//2nd pair
if (got1[9]>0){
got1[8]=(s+12)+'.'+got1[9].substr(0,2);
//set 3rd qualifier to be highest other rank
for(sr=2;sr>=0;sr=sr-1) {
if (higa1[sr]!=(s+12) && higa1[sr]!=(got1[9].substr(0,2))){
got1[8]=got1[8]+higa1[sr];
}
}
}
//1 pair
got1[9]=(s+12)+'.'+higs1[0]+higs1[1]+higs1[2];
}
//one instance only -no pair high card
if (rnk1[s]==1) {
got1[10]=(s+12)+'.'+higs1[1]+higs1[2]+higs1[3]+higs1[4];
}
//same again for 2nd player
//check if still on course for a straight
if (rnk2[s]>=1) {
straight2++
if (straight2>=5) {
got2[6]=(s+12);
}
}
else {
straight2=0
}
if (rnk2[s]>=4) {
got2[3]=(s+12)+'.'+higs2[0];
//set 2nd qualifier to be highest other rank
for(sr=1;sr>=0;sr=sr-1) {
if (higa2[sr]!=(s+12)){
got2[3]=(s+12)+'.'+higa2[sr];
}
}
}
if (rnk2[s]==3) {
//2nd set of 3 therefore full house
if (got2[7]>0){
got2[4]=(s+12)+'.'+got2[7].substr(0,2);
}
//1st set of three
got2[7]=(s+12)+'.'+higs2[0]+higs2[1];
}
if (rnk2[s]==2) {
if (got2[9]>0){
got2[8]=(s+12)+'.'+got2[9].substr(0,2);
//set 3rd qualifier to be highest other rank
for(sr=2;sr>=0;sr=sr-1) {
if (higa2[sr]!=(s+12) && higa2[sr]!=(got2[9].substr(0,2))){
got2[8]=got2[8]+higa2[sr];
}
}
}
got2[9]=(s+12)+'.'+higs2[0]+higs2[1]+higs2[2];
}
if (rnk2[s]==1) {
got2[10]=(s+12)+'.'+higs2[1]+higs2[2]+higs2[3]+higs2[4];;
}
}
//full house = first 2 of [7] plus first 2 of [9]
if (got1[7]>0 && got1[9]>0) {
got1[4]=got1[7].substr(0,2)+'.'+got1[9].substr(0,2);
}
if (got2[7]>0 && got2[9]>0) {
got2[4]=got2[7].substr(0,2)+'.'+got2[9].substr(0,2);
}

//get got sut
for(s=3;s>=0;s--) {
//flush
if (sut1[s]>=5) {
//get 5 highest from this suit
got1[5]=1+'.';
for(sr=12;sr>=0;sr--) {
if (eval('rnk1'+s)[sr]==1){
got1[5]=got1[5]+(sr+12);
}
}
}
if (sut2[s]>=5) {
//get 5 highest from this suit
got2[5]=1+'.';
for(sr=12;sr>=0;sr--) {
if (eval('rnk2'+s)[sr]==1){
got2[5]=got2[5]+(sr+12);
}
}
}
}

} //got1[2] = 0

//get wX
for(s=0;s<wins;s++) {
if (got1[s]>got2[s]) {
w1[0]++;
w1[s]++;
s=12;
}
if (got2[s]>got1[s]) {
w2[0]++;
w2[s]++;
s=12;
}
//dont carry to next if either >0
if (got1[s]==got2[s] && got1[s]>0) {
w0[0]++;
w0[s]++;
s=12;
}
}
//get best for your hand
for(s=0;s<wins;s++) {
if (got1[s]!=0) {
w3[0]++;
w3[s]++;
s=12;
}
}

//debugw();

} //for h

for(s=0;s<wins;s++) {
document.inp.ow1[s].value=fmtNum((w1[s]/tries)*100);
document.inp.ow2[s].value=fmtNum((w2[s]/tries)*100);
document.inp.ow0[s].value=fmtNum((w0[s]/tries)*100);
document.inp.ow3[s].value=fmtNum((w3[s]/tries)*100);
if (s>0){
if (document.inp.ow1[s].value=='0.00') document.inp.ow1[s].value='';
if (document.inp.ow2[s].value=='0.00') document.inp.ow2[s].value='';
if (document.inp.ow0[s].value=='0.00') document.inp.ow0[s].value='';
if (document.inp.ow3[s].value=='0.00') document.inp.ow3[s].value='';
}
}
//alert('w1 '+w1+' w2 '+w2+' w0 '+w0);

//1  2  3 4  5 6 7 8  9 10
//RF,SF,4,FH,F,S,3,2P,2,1
//-  -  Y Y  Y - Y Y  Y Y

// Y  1. RF    x
// y  2. SF    x
// Y  3. 4     x .ha(if not x)        // could be 4 then 3 or 2P or 2
// Y  4. FH    x .x
// Y  5. F     hf.hf.hf.hf.hf
// y  6. S     x
// Y  7. 3     x .h1.h1
// .  8. 2P    x .x .h                  // could be 3x2P
// Y  9. 2     x .h1.h1.h1
// Y 10. 1     h1.h1.h1.h1.h1

}

//=========================================================================================================
function debugw() {
document.write(h+'. '+tdealt+'<br/>'+rn1+'---'+st1+'<br/>'+rn2+'---'+st2+'<br/>');
document.write('rnk1:'+rnk1+' sut1:'+sut1+'<br/>'+' rnk2:'+rnk2+' sut2:'+sut2+'<br/>');
document.write(rnk10+'~~~'+rnk11+'~~~'+rnk12+'~~~'+rnk13+'<br/>');
document.write(rnk20+'~~~'+rnk21+'~~~'+rnk22+'~~~'+rnk23+'<br/>');
document.write('g1:'+got1+' >'+higs1+' >>'+higa1+'<br/>'+'g2:'+got2+' >'+higs2+' >>'+higa2+'<br/>');
document.write('w:'+w1+'---'+w2+'---'+w0+'---'+w3+'<br/><br/>');
}

//=========================================================================================================
function fmtNum(value) {
	result=Math.floor(value)+".";
	var decimalplaces=100* (value-Math.floor(value)) + 0.5;

	if(decimalplaces > 100){
		result = Math.floor(value)+1+".00";
	}else{
	   	result += Math.floor(decimalplaces/10);
		result += Math.floor(decimalplaces%10);
	}
	//var numresult=parseFloat(result);
	return result;
}

//=========================================================================================================
function preload() {
ibb = new Image();
ibb.src = "cpref/bb.gif";
ibr = new Image();
ibr.src = "cpref/br.gif";
i00 = new Image();
i00.src = "cpref/00.gif";
i01 = new Image();
i01.src = "cpref/01.gif";
i02 = new Image();
i02.src = "cpref/02.gif";
i03 = new Image();
i03.src = "cpref/03.gif";
i10 = new Image();
i10.src = "cpref/10.gif";
i11 = new Image();
i11.src = "cpref/11.gif";
i12 = new Image();
i12.src = "cpref/12.gif";
i13 = new Image();
i13.src = "cpref/13.gif";
i20 = new Image();
i20.src = "cpref/20.gif";
i21 = new Image();
i21.src = "cpref/21.gif";
i22 = new Image();
i22.src = "cpref/22.gif";
i23 = new Image();
i23.src = "cpref/23.gif";
i30 = new Image();
i30.src = "cpref/30.gif";
i31 = new Image();
i31.src = "cpref/31.gif";
i32 = new Image();
i32.src = "cpref/32.gif";
i33 = new Image();
i33.src = "cpref/33.gif";
i40 = new Image();
i40.src = "cpref/40.gif";
i41 = new Image();
i41.src = "cpref/41.gif";
i42 = new Image();
i42.src = "cpref/42.gif";
i43 = new Image();
i43.src = "cpref/43.gif";
i50 = new Image();
i50.src = "cpref/50.gif";
i51 = new Image();
i51.src = "cpref/51.gif";
i52 = new Image();
i52.src = "cpref/52.gif";
i53 = new Image();
i53.src = "cpref/53.gif";
i60 = new Image();
i60.src = "cpref/60.gif";
i61 = new Image();
i61.src = "cpref/61.gif";
i62 = new Image();
i62.src = "cpref/62.gif";
i63 = new Image();
i63.src = "cpref/63.gif";
i70 = new Image();
i70.src = "cpref/70.gif";
i71 = new Image();
i71.src = "cpref/71.gif";
i72 = new Image();
i72.src = "cpref/72.gif";
i73 = new Image();
i73.src = "cpref/73.gif";
i80 = new Image();
i80.src = "cpref/80.gif";
i81 = new Image();
i81.src = "cpref/81.gif";
i82 = new Image();
i82.src = "cpref/82.gif";
i83 = new Image();
i83.src = "cpref/83.gif";
i90 = new Image();
i90.src = "cpref/90.gif";
i91 = new Image();
i91.src = "cpref/91.gif";
i92 = new Image();
i92.src = "cpref/92.gif";
i93 = new Image();
i93.src = "cpref/93.gif";
i100 = new Image();
i100.src = "cpref/100.gif";
i101 = new Image();
i101.src = "cpref/101.gif";
i102 = new Image();
i102.src = "cpref/102.gif";
i103 = new Image();
i103.src = "cpref/103.gif";
i110 = new Image();
i110.src = "cpref/110.gif";
i111 = new Image();
i111.src = "cpref/111.gif";
i112 = new Image();
i112.src = "cpref/112.gif";
i113 = new Image();
i113.src = "cpref/113.gif";
i120 = new Image();
i120.src = "cpref/120.gif";
i121 = new Image();
i121.src = "cpref/121.gif";
i122 = new Image();
i122.src = "cpref/122.gif";
i123 = new Image();
i123.src = "cpref/123.gif";
}

