var ranks=["Card","blank","Two","Three","Four","Five","Six","Seven","Eight","Nine","Ten","Jack","Queen","King","Ace"];var suits=["BackRed","Clubs","Diamonds","Hearts","Spades"];var hand_names=["blank","blank","blank","blank","blank","5-High","6-High","7-High","8-High","9-High","10-High","Jack-High","Queen-High","King-High","Ace-High","Pair","Flush","Straight","3-of-a-Kind!","Straight Flush!","Mini Royal!!!"];var player,dealer,unsorted_player,unsorted_dealer,player_val,dealer_val,player_hand_val;var player_cards,dealer_cards,folded,winner,bet_amount,pair_plus_amt,net_win,game_result;var speed=0.8;var folded_speed=0.35;preload_images();function deal_me(){if($("#deal").hasClass("buttonDis2")){return}if(bet_check()){folded=false;reset();$("#start_here").hide();$("#deal").attr("class","buttonDis2");$("#raise").val("");$("#pair_plus").attr("readonly",true);$("#pair_plus_bg").attr("class","bet_input_disabled");$("#ante").attr("readonly",true);$("#ante_bg").attr("class","bet_input_disabled");$("#raise").attr("readonly",true);$("#raise_bg").attr("class","bet_input_disabled");$("#payout_outline").hide();$("#bonus_payout_outline").hide();setTimeout("show_card(0, 'player');",700*speed)}}function deal_player(){player=generate_hand(new Array());unsorted_player=copy_array(player);player.sort(card_sort_fn);player_val=eval_hand(player);player_cards=generate_images(unsorted_player)}function deal_dealer(){dealer=generate_hand(player);unsorted_dealer=copy_array(dealer);dealer.sort(card_sort_fn);dealer_val=eval_hand(dealer);dealer_cards=generate_images(unsorted_dealer)}function reset(){if(player_cards==null){return}$("#p").hide();$("#d").hide();$("#w").html(" ");$("#win").hide();$("#lose").hide();$("#payout").hide();for(var a=0;a<player_cards.length;a++){player_cards[a]=getImage(0);dealer_cards[a]=getImage(0);$("#p"+a).attr("src",player_cards[a]).css("border","solid 3px white");$("#d"+a).attr("src",dealer_cards[a]).css("border","solid 3px white")}}function show_dealer(){$("#play").attr("class","buttonDis2");$("#fold").attr("class","buttonDis2");var a=speed;if(folded){a=folded_speed}setTimeout("show_card(0, 'dealer');",200*a)}function fold(){if($("#fold").hasClass("buttonDis2")){return}if($("#pair_plus").val()==""||$("#pair_plus").val().charAt(0)==" "){pair_plus_amt=0}else{pair_plus_amt=parseInt($("#pair_plus").val())}net_win=0;net_win=net_win-pair_plus_amt;net_win=net_win-parseInt($("#ante").val());PLAYER.bank_roll=PLAYER.bank_roll+net_win;folded=true;show_dealer()}function play_hand(){if($("#play").hasClass("buttonDis2")){return}net_win=0;if($("#pair_plus").val()==""||$("#pair_plus").val().charAt(0)==" "){pair_plus_amt=0}else{pair_plus_amt=parseInt($("#pair_plus").val())}net_win=net_win-pair_plus_amt;net_win=net_win-parseInt($("#ante").val());if(parseInt($("#ante").val())>PLAYER.bank_roll){$("#raise").val(PLAYER.bank_roll)}else{$("#raise").val(parseInt($("#ante").val()))}net_win=net_win-parseInt($("#raise").val());bet_amount=Math.abs(net_win);PLAYER.bank_roll=PLAYER.bank_roll+net_win;$("#m").html(formatTotalAmount(PLAYER.bank_roll));folded=false;show_dealer()}function bet_check(){var b=$("#ante").val();var a=$("#pair_plus").val();if(isNaN(b)||isNaN(a)||b.charAt(0)==" "||a.charAt(0)==" "){$("#w").html("Bets must be a number");$("#w").hide().fadeIn("slow");return false}if(b==""){$("#ante").val(0)}if(a==""){a=0}b=parseInt(b);a=parseInt(a);if(b<0){$("#w").html("Ante must be > 0");$("#w").hide().fadeIn("slow");return false}if(b>100000000){$("#w").html("Max bet is $100,000,000");$("#w").hide().fadeIn("slow");return false}if(a<0){$("#w").html("Pair Plus must be > 0");$("#w").hide().fadeIn("slow");return false}if(a>100000000){$("#w").html("Max Pair Plus bet is $100,000,000");$("#w").hide().fadeIn("slow");return false}if((b*2)+a>PLAYER.bank_roll){$("#w").html('<p style="color:red; font-size:0.85em;">Not Enough Money! [ <a href=# onclick="reset_money();">reset bank</a> ]</p>');$("#w").hide().fadeIn("slow");return false}$("#w").html(" ");return true}function calc_winner(){winner="It's a Draw";game_result="D";if(player_val>dealer_val){winner="You Win!";game_result="W"}else{if(player_val<dealer_val){winner="You Lose!";game_result="L"}else{var c=break_tie(player,dealer,player_val);if(c>0){winner="You Win!";game_result="W"}else{if(c<0){winner="You Lose!";game_result="L"}}}}if(folded){winner=((game_result=="L"&&dealerQualifies())?"Good Fold!":"You folded.");game_result="F";if(pair_plus_amt==0){$("#pair_plus_payout").html("$0")}else{$("#pair_plus_payout").html(formatTotalAmount(-pair_plus_amt))}if(parseInt($("#ante").val())==0){$("#ante_payout").html("$0")}else{$("#ante_payout").html(formatTotalAmount(-parseInt($("#ante").val())))}$("#play_payout").html("Folded");$("#ante_bonus_payout").html("$0");$("#total_payout").html(formatTotalAmount(net_win));$("#total_payout").css("color","red");$("#m").html(formatTotalAmount(PLAYER.bank_roll));if($("#rules").css("display")=="block"){$("#rules").delay(100).hide("drop",{},350)}$("#payout").delay(150).show("drop",{},350);var a="";for(var d=0;d<player.length;d++){a+=player[d]+" "}var b="";for(var d=0;d<dealer.length;d++){b+=dealer[d]+" "}update_stats($("#ante").val(),0,$("#pair_plus").val(),game_result,net_win,PLAYER.bank_roll,a,b,player_val)}else{pay_bets()}}function pay_bets(){net_win=0;var f=-parseInt($("#ante").val());var b=-parseInt($("#raise").val());if(dealerQualifies()){if(winner=="You Win!"){net_win=net_win+(parseInt($("#ante").val())*2);f=parseInt($("#ante").val());net_win=net_win+(parseInt($("#raise").val())*2);b=parseInt($("#raise").val())}else{if(winner=="It's a Draw"){net_win=net_win+parseInt($("#ante").val());f=0;net_win=net_win+parseInt($("#raise").val());b=0}}}else{winner="Dealer doesn't qualify";net_win=net_win+(parseInt($("#ante").val())*2);f=parseInt($("#ante").val());net_win=net_win+parseInt($("#raise").val());b=0}var e=pay_queens_up();var g=pay_ante_bonus();if((net_win-bet_amount)<0){$("#total_payout").html(formatTotalAmount((net_win-bet_amount)));$("#total_payout").css("color","#d23838")}else{$("#total_payout").html("+$"+formatTotalNumber(net_win-bet_amount));$("#total_payout").css("color","#029666")}if($("#rules").css("display")=="block"){$("#rules").delay(100).hide("drop",{},350)}$("#payout").delay(150).show("drop",{},350);PLAYER.bank_roll=PLAYER.bank_roll+net_win;$("#m").html(formatTotalAmount(PLAYER.bank_roll));var a="";for(var d=0;d<player.length;d++){a+=player[d]+" "}var c="";for(var d=0;d<dealer.length;d++){c+=dealer[d]+" "}update_stats($("#ante").val(),$("#raise").val(),$("#pair_plus").val(),game_result,(net_win-bet_amount),PLAYER.bank_roll,a,c,player_val);if(player_val>16){$("#payout_outline").css("top",(419+(Math.min(player_val-17,2)*18))+"px").show()}if(player_val>14){$("#bonus_payout_outline").css("top",(293+(Math.min(player_val-15,4)*18))+"px").show()}$("#pair_plus_payout").html(formatTotalAmount(e));$("#ante_payout").html(formatTotalAmount(f));$("#play_payout").html(formatTotalAmount(b));$("#ante_bonus_payout").html(formatTotalAmount(g))}function pay_queens_up(){if(pair_plus_amt==0){return 0}var a=net_win;switch(player_val){case 20:case 19:net_win=net_win+(parseInt($("#pair_plus").val())*41);break;case 18:net_win=net_win+(parseInt($("#pair_plus").val())*31);break;case 17:net_win=net_win+(parseInt($("#pair_plus").val())*6);break;case 16:net_win=net_win+(parseInt($("#pair_plus").val())*5);break;case 15:net_win=net_win+(parseInt($("#pair_plus").val())*2);break;default:break}return(net_win-a-parseInt($("#pair_plus").val()))}function pay_ante_bonus(){var a=net_win;switch(player_val){case 20:case 19:net_win=net_win+(parseInt($("#ante").val())*5);break;case 18:net_win=net_win+(parseInt($("#ante").val())*4);break;case 17:net_win=net_win+(parseInt($("#ante").val())*1);break;default:break}return(net_win-a)}function show_card(b,c){if(c=="player"){if(b==0){deal_player()}$("#p"+b).attr("src",player_cards[b])}else{if(b==0){deal_dealer()}$("#d"+b).attr("src",dealer_cards[b])}if(b==2){if(c=="player"){$("#play").attr("class","button2");$("#fold").attr("class","button2");setTimeout("show_eval('player');",800*speed)}else{setTimeout("show_eval('dealer');",600*speed)}}else{var a=speed;if(folded&&c=="dealer"){a=folded_speed}setTimeout("show_card("+(b+1)+", '"+c+"');",500*a)}if(folded==false){play_sound("deal")}}function show_eval(a){if(a=="player"){$("#p").html(hand_names[player_val]);$("#p").show();if(player_val>15){play_sound("big_win")}}else{$("#d").html(hand_names[dealer_val]);$("#d").show();setTimeout("show_winner();",350*speed)}}function show_winner(){calc_winner();$("#w").html(winner);$("#pair_plus").removeAttr("readonly");$("#ante").removeAttr("readonly");$("#raise").removeAttr("readonly");$("#play").attr("class","buttonDis2");$("#fold").attr("class","buttonDis2");$("#deal").attr("class","button2");$("#pair_plus_bg").attr("class","bet_input");$("#ante_bg").attr("class","bet_input")}function calc_hand(a){return eval_hand(a)}function eval_hand(a){if(isMiniRoyal(a)>0){return 20}if(isStraightFlush(a)>0){return 19}if(isThreeOfKind(a)>0){return 18}if(isStraight(a)>0){return 17}if(isFlush(a)>0){return 16}if(isPair(a)>0){return 15}return highCard(a)}function break_tie(c,b,a){switch(a){case 20:return isMiniRoyal(c)-isMiniRoyal(b);case 19:return isStraightFlush(c)-isStraightFlush(b);case 18:return isThreeOfKind(c)-isThreeOfKind(b);case 17:return isStraight(c)-isStraight(b);case 16:return isFlush(c)-isFlush(b);case 15:return isPair(c)-isPair(b);default:return isHighCard(c)-isHighCard(b)}}function isMiniRoyal(a){var b=isStraightFlush(a);if(b==14){return 1}return -1}function isStraightFlush(b){var a=isFlush(b);var c=isStraight(b);if(a>0&&c>0){return c}return -1}function isThreeOfKind(a){if(get_rank(a[0])==get_rank(a[1])&&get_rank(a[0])==get_rank(a[2])){return get_rank(a[0])}return -1}function isFlush(c){var e=get_suit(c[0]);var b=get_rank(c[0])*1000000;var a=10000;var d=0;for(d=1;d<3;d++){if(e!=get_suit(c[d])){return -1}b=b+(a*get_rank(c[d]));a=a/100}return b}function isStraight(b){var e=get_rank(b[0]);var a=e;var d=false;if(e==14){d=true}var c=0;for(c=1;c<3;c++){if(d&&c==1&&get_rank(b[c])==3){a=3}else{if(e!=get_rank(b[c])+1){return -1}}e=get_rank(b[c])}return a}function isPair(a){if(get_rank(a[0])==get_rank(a[1])){return(get_rank(a[0])*100)+get_rank(a[2])}if(get_rank(a[1])==get_rank(a[2])){return(get_rank(a[1])*100)+get_rank(a[0])}return -1}function isHighCard(c){var b=0;var a=100000;var d=0;for(d=0;d<3;d++){b=b+(a*get_rank(c[d]));a=a/100}return b}function highCard(a){return get_rank(a[0])}function get_suit(a){return Math.floor(a/100)}function get_rank(a){return a%100}function generate_hand(b){var a=new Array(3);var d=0;var e=0,c=0;var f=false;for(e=0;e<3;e++){f=false;d=generate_card();if(cardIn(b,d)){f=true}else{for(c=0;c<e;c++){if(a[c]==d){f=true;break}}}if(f){e--}else{a[e]=d}}return a}function dealerQualifies(){if(dealer_val>=15){return true}if(highCard(dealer)>=12){return true}return false};
