/*

Video Poker version 2.01
Copyright (C) 1997-99 Rob Eisler.  All Rights Reserved.
http://www.robplanet.com/js/poker
rob@robplanet.com

Last modified on Jun 7, 1999

Copyright Notice:
Copyright 1999 Robert S. Eisler.  All Rights Reserved.

This code may be used and modified by anyone so long as this header and
copyright information remains intact.  By using this code you agree to 
indemnify Robert S. Eisler from any liability that might arise from its 
use.  You must obtain written consent before selling or redistributing 
this code.

*/

var bet = 1
var credit = 200
var savecredit = 0
var debt = 200
var gameon = false
var temp = 0
var besthand = 1
var handsplayed = 0
hold = new Array(5)
card = new Array(5)
newcard = new Array(5)
cardvalue = new Array(5)
cardsuit = new Array(5)
cardnumber = new Array(53)
number = new Array(10)
message = new Array(14)

for(x=0;x<5;x++) {
	hold[x] = true
	card[x] = 0
	newcard[x] = 0
	cardvalue[x] = 0
	cardsuit[x] = 0
}

cardnumber[0]=new Image(71,96)
cardnumber[0].src="cardback.gif"

for (x=1;x<53;x++) {
	cardnumber[x]=new Image(71,96)
	cardnumber[x].src= eval('"card' + x + '.gif"')
}

for (x=0;x<10;x++) {
	number[x]=new Image(23,25)
	number[x].src=eval('"number' + x + '.gif"')
}

numberblank=new Image(23,25)
numberblank.src="numberblank.gif"

for (x=1;x<14;x++) {
	message[x]=new Image(350,25)
	message[x].src=eval('"pmessage' + x + '.gif"')
}

function show(img, imgnum)  {
        document[img].src = cardnumber[card[imgnum]].src 
}

function draw()  {
	if (gameon) draw2()
	else draw1()
}

function draw1()  {

	handsplayed++
	hand = 12
	updatemessage('message')
	gameon=true
	credit -= bet
	updatecredit('credita', 'creditb', 'creditc', 'creditd')

	card[0] = Math.floor(52*(Math.random()) + 1)
	card[1] = Math.floor(52*(Math.random()) + 1)
	while (card[1] == card[0])  {
		card[1] = Math.floor(52*(Math.random()) + 1)
	}
	card[2] = Math.floor(52*(Math.random()) + 1)
	while (card[2] == card[0] || card[2] == card[1])  {
		card[2] = Math.floor(52*(Math.random()) + 1)
	}
	card[3] = Math.floor(52*(Math.random()) + 1)
	while (card[3] == card[2] || card[3] == card[1] || card[3] == card[0])  {
		card[3] = Math.floor(52*(Math.random()) + 1)
	}
	card[4] = Math.floor(52*(Math.random()) + 1)
	while (card[4] == card[3] || card[4] == card[2] || card[4] == card[1] || card[4] == card[0])  {
		card[4] = Math.floor(52*(Math.random()) + 1)
	}

	show('carda', 0)
	show('cardb', 1)
	show('cardc', 2)
	show('cardd', 3)
	show('carde', 4)
}

function draw2()  {
	gameon=false
	if (hold[0] == false)  {
		newcard[0] = Math.floor(52*(Math.random()) + 1)
		while (newcard[0] == card[0] || newcard[0] == card[1] || newcard[0] == card[2] || newcard[0] == card[3] || newcard[0] == card[4])  {
			newcard[0] = Math.floor(52*(Math.random()) + 1)
		}
	}
	else  {
		newcard[0] = card[0]
	}
	if (hold[1] == false)  {
		newcard[1] = Math.floor(52*(Math.random()) + 1)
		while (newcard[1] == newcard[0] || newcard[1] == card[0] || newcard[1] == card[1] || newcard[1] == card[2] || newcard[1] == card[3] || newcard[1] == card[4])  {
			newcard[1] = Math.floor(52*(Math.random()) + 1)
		}
	}
	else  {
		newcard[1] = card[1]
	}
	if (hold[2] == false)  {
		newcard[2] = Math.floor(52*(Math.random()) + 1)
		while (newcard[2] == newcard[1] || newcard[2] == newcard[0] || newcard[2] == card[0] || newcard[2] == card[1] || newcard[2] == card[2] || newcard[2] == card[3] || newcard[2] == card[4])  {
			newcard[2] = Math.floor(52*(Math.random()) + 1)
		}
	}
	else  {
		newcard[2] = card[2]
	}
	if (hold[3] == false)  {
		newcard[3] = Math.floor(52*(Math.random()) + 1)
		while (newcard[3] == newcard[2] || newcard[3] == newcard[1] || newcard[3] == newcard[0] || newcard[3] == card[0] || newcard[3] == card[1] || newcard[3] == card[2] || newcard[3] == card[3] || newcard[3] == card[4])  {
			newcard[3] = Math.floor(52*(Math.random()) + 1)
		}
	}
	else  {
		newcard[3] = card[3]
	}
	if (hold[4] == false)  {
		newcard[4] = Math.floor(52*(Math.random()) + 1)
		while (newcard[4] == newcard[3] || newcard[4] == newcard[2] || newcard[4] == newcard[1] || newcard[4] == newcard[0] || newcard[4] == card[0] || newcard[4] == card[1] || newcard[4] == card[2] || newcard[4] == card[3] || newcard[4] == card[4])  {
			newcard[4] = Math.floor(52*(Math.random()) + 1)
		}
	}
	else  {
		newcard[4] = card[4]
	}

	for (x=0;x<5;x++) {
		card[x] = newcard[x]
	}

	if (hold[0]==false)  {
		show('carda', 0)
	}
	if (hold[1]==false)  {
		show('cardb', 1)
	}
	if (hold[2]==false)  {
		show('cardc', 2)
	}
	if (hold[3]==false)  {
		show('cardd', 3)
	}
	if (hold[4]==false)  {
		show('carde', 4)
	}

	sort()
	checkhand()
	for (x=0;x<5;x++) {
		hold[x] = true
	}

	if (credit==0)  {
		bankmachine()
	}
	else if (bet > credit)  {
		bet = credit
		updatebet('beta', 'betb')
	}

}

function sort()  {

	for (x=0;x<5;x++)  {
		cardvalue[x] = card[x] - (13*(Math.floor((card[x]-1)/13)))
		cardsuit[x] = Math.floor((card[x]-1)/13) + 1
	}

	for (y=4; y>0; y--) {
		for (z=0; z<y; z++) {
			if (cardvalue[z] > cardvalue[z+1])  {
				temp = cardvalue[z+1]
				cardvalue[z+1] = cardvalue[z]
				cardvalue[z] = temp
			}
		}
	}
}

function checkhand()  {

	if (cardsuit[0] == cardsuit[1] && cardsuit[0] == cardsuit[2] && cardsuit[0] == cardsuit[3] && cardsuit[0] == cardsuit[4])  {
		hand=6
		if (cardvalue[0] == (cardvalue[1] - 1) && cardvalue[1] == (cardvalue[2] - 1) && cardvalue[2] == (cardvalue[3] - 1) && cardvalue[3] == (cardvalue[4] - 1))  {
			hand=9
		} 
		else if (cardvalue[0] == 1 && cardvalue[1] == 10 && cardvalue[2] == 11 && cardvalue[3] == 12 && cardvalue[4] == 13)  {
			hand=10
		}
	} 
	else if ((cardvalue[1] == cardvalue[2] && cardvalue[2] == cardvalue[3]) && (cardvalue[0] == cardvalue[1] || cardvalue[3] == cardvalue[4]))  {
		hand=8
	}
	else if ((cardvalue[0] == cardvalue[1] && cardvalue[1]==cardvalue[2] && cardvalue[3] == cardvalue[4]) || (cardvalue[0] == cardvalue[1] && cardvalue[2] == cardvalue[3] && cardvalue[3] == cardvalue[4]))  {
		hand=7
	}
	else if ((cardvalue[0] == (cardvalue[1] - 1) && cardvalue[1] == (cardvalue[2] - 1) && cardvalue[2] == (cardvalue[3] - 1) && cardvalue[3] == (cardvalue[4] - 1)) || (cardvalue[0] == 1 && cardvalue[1] == 10 && cardvalue[2] == 11 && cardvalue[3] == 12 && cardvalue[4] == 13))  {
		hand=5
	}
	else if ((cardvalue[0] == cardvalue[1] && cardvalue[1] == cardvalue[2]) || (cardvalue[1] == cardvalue[2] && cardvalue[2] == cardvalue[3]) || (cardvalue[2] == cardvalue[3] && cardvalue[3] == cardvalue[4]))  {
		hand=4
	}
	else if ((cardvalue[0] == cardvalue[1] && cardvalue[2] == cardvalue[3]) || (cardvalue[0] == cardvalue[1] && cardvalue[3] == cardvalue[4]) || (cardvalue[1] == cardvalue[2] && cardvalue[3] == cardvalue[4]))  {
		hand=3
	}
	else if ((cardvalue[0] == cardvalue[1] && (cardvalue[1] > 10 || cardvalue[1] == 1)) || (cardvalue[1] == cardvalue[2] && (cardvalue[2] > 10 || cardvalue[2] == 1)) || (cardvalue[2] == cardvalue[3] && (cardvalue[3] > 10 || cardvalue[3] == 1)) || (cardvalue[3] == cardvalue[4] && (cardvalue[4] > 10 || cardvalue[4] == 1)))  {
		hand=2 
	}
	else  {
		hand=13 
	}

	if (hand>besthand && hand < 12 && hand > 1) besthand=hand
	if (hand==2) credit += bet
	else if (hand==3) credit += bet*2
	else if (hand==4) credit += bet*3
	else if (hand==5) credit += bet*5
	else if (hand==6) credit += bet*6
	else if (hand==7) credit += bet*8
	else if (hand==8) credit += bet*15
	else if (hand==9) credit += bet*50
	else if (hand==10) credit += bet*250

	updatecredit('credita', 'creditb', 'creditc', 'creditd')
	updatemessage('message')

}

function h(image, holdnum)  {
	if (gameon)  {
		if (hold[holdnum-1]==false) {
			show(image, holdnum-1)
			hold[holdnum-1] = true			
		}
		else  {
			document [image].src=cardnumber[0].src
			hold[holdnum-1] = false
		}
	}
}

function updatebet(aaa, bbb)  {
	if (bet == 10)  {
		document [aaa].src = number[1].src
		document [bbb].src = number[0].src
	}
	else  {
		document [bbb].src = numberblank.src
		document [aaa].src = number[bet].src
	}
}

function updatecredit(aaa, bbb, ccc, ddd)  {
	savecredit = credit

	if (credit > 999)  {
		document [aaa].src = number[Math.floor(credit/1000)].src
		credit -= (Math.floor(credit/1000)*1000)
		document [bbb].src = number[Math.floor(credit/100)].src
		credit -= (Math.floor(credit/100)*100)
		document [ccc].src = number[Math.floor(credit/10)].src
		credit -= (Math.floor(credit/10)*10)
		document [ddd].src = number[credit].src
	}
	else if (credit > 99)  {
		document [ddd].src = numberblank.src
		document [aaa].src = number[Math.floor(credit/100)].src
		credit -= (Math.floor(credit/100)*100)
		document [bbb].src = number[Math.floor(credit/10)].src
		credit -= (Math.floor(credit/10)*10)
		document [ccc].src = number[credit].src
	}
	else if (credit > 9)  {
		document [ddd].src = numberblank.src
		document [ccc].src = numberblank.src
		document [aaa].src = number[Math.floor(credit/10)].src
		credit -= (Math.floor(credit/10)*10)
		document [bbb].src = number[credit].src
	}
	else  {
		document [ddd].src = numberblank.src
		document [ccc].src = numberblank.src
		document [bbb].src = numberblank.src
		document [aaa].src = number[credit].src
	}
	credit = savecredit
}

function updatemessage(aaa)  {
	document [aaa].src = message[hand].src
}

function odds()  {
	open("odds.html", "odds", "width=250,height=270,scrollbars,resizable"); 
}

function rules()  {
	open("rules.html", "rules", "width=500,height=225,scrollbars,resizable"); 
}

function about()  {
	alert("JScript Video Poker v2.01\n" +
		"Copyright (C) 1997-99 Robert Eisler\n" +
		"http://www.robplanet.com/js/poker\n" +
		"rob@robplanet.com")
}

function betup()  {
	if (!gameon && credit>bet && bet<10)  {
		bet++
		updatebet('beta', 'betb')
	}
}

function betdown()  {
	if (!gameon && bet>1)  {
		bet--
		updatebet('beta', 'betb')
	}
}

function betone()  {
	if (!gameon) {
		bet=1
		updatebet('beta', 'betb')
	}
}

function betten()  {
	if (!gameon && bet<10 && credit>9)  {
		bet=10
		updatebet('beta', 'betb')
	}
}

function bankmachine()  {
	debt += 200
//	hand = 11
//	updatemessage('message')
	for (x=0;x<201;x+=5)  {
		credit = x	
		updatecredit('credita', 'creditb', 'creditc', 'creditd')
	}
}

function total()  {
	if (credit > debt)  alert("You made $" + (credit-debt) + " today.  Congratulations!")
	else if (credit == debt)  alert("You broke even today.  Not bad.")
	else  alert("You lost $" + (debt-credit) + " today.  Better luck next time!")
	debt = 200
	credit = 200
	besthand = 1
	updatecredit('credita', 'creditb', 'creditc', 'creditd')
}