﻿﻿var cardDeck,bet=0,credits=10,dragnaCard=0,drag=0,player1,hand,points;var isNewRound=true,isPosting=false;hasAnswer=false,isHigher=false,hasDoubleUpAnswer=false,isYes=false;var path="http://poker.mindexplosion.se/default.aspx";$(function(){newDeck();makeBet();showCredits();newRound();getHighScore();$("#btnBet").click(makeBet);$('#btnDeal').click(dealDraw);$("#btnHigh").click(function(){isHigher=true;giveAnswer();});$("#btnLower").click(function(){isHigher=false;giveAnswer();});$("#btnYes").click(function(){isYes=true;hasDoubleUpAnswer=true});$("#btnNo").click(function(){isYes=false;hasDoubleUpAnswer=true});$("#btnNewGame").click(function(){credits=10;newRound();showCredits();});$("#btnHiScore").click(function(){if(isPosting)
return;isPosting=true;var jsonText=JSON.stringify({name:$("#txtName").val(),score:$("#tdScore").text()});$.ajax({type:"POST",url:path+'/RegisterScore',contentType:"application/json; charset=utf-8",data:jsonText,dataType:"json",success:function(){isPosting=false;credits=10;showCredits();newRound();$("#poker").removeClass("hidden");$("#postHiScore").addClass("hidden");getHighScore();}});});$("#btnShowHiScore").click(function(){$("#poker").addClass("hidden");$("#postHiScore").removeClass("hidden");$("#tdScore").text(credits);});$('#cardHolder1').click(function(){if(isNewRound)
return;holdCard(player1,this,0);});$('#cardHolder2').click(function(){if(isNewRound)
return;holdCard(player1,this,1);});$('#cardHolder3').click(function(){if(isNewRound)
return;holdCard(player1,this,2);});$('#cardHolder4').click(function(){if(isNewRound)
return;holdCard(player1,this,3);});$('#cardHolder5').click(function(){if(isNewRound)
return;holdCard(player1,this,4);});});var Card=function(value,color,hold,picture){this.value=value;this.color=color;this.hold=hold;this.picture=picture;}
var Player=function(hand){this.hand=hand;}
Player.prototype.getResult=function(){isNewRound=true;points=resultat(this);if(points>0){showPoints();setTimeout('hiOrLow(false)',2000);}
else
setTimeout(newRound,4000);};function getHighScore(){var jsonText="{}";$.ajax({type:"POST",url:path+'/GetHighScore',contentType:"application/json; charset=utf-8",data:jsonText,dataType:"json",success:function(response){$("#divHighScore").html(response.d);}});}
function newDeck(){cardDeck=new Array();for(i=1;i<14;i++){cardDeck.push(new Card(i,"hjärter",false,"hj"+i));cardDeck.push(new Card(i,"ruter",false,"ru"+i));cardDeck.push(new Card(i,"klöver",false,"kl"+i));cardDeck.push(new Card(i,"spader",false,"sp"+i));}}
function makeBet(){if(!isNewRound)
return;var prevBet=bet;if(bet<5)
bet++;else
bet=1;$("#tblScore tr").each(function(){$(this).find("td").eq(prevBet).removeClass("selected");$(this).find("td").eq(bet).addClass("selected");});};function randomSort(){return(Math.round(Math.random())-0.5);}
function draCard(){if(dragnaCard<cardDeck.length)
return cardDeck[dragnaCard];else
return null;}
function dealDraw(){if(isNewRound){$("#btnDeal span span").text("Draw");if(credits-bet<0){alert("Not enough credits");return;}
credits-=bet;showCredits();visaCard();animeraCard();isNewRound=false;return;}
for(i=0;i<player1.hand.length;i++){if(player1.hand[i].hold){player1.hand[i].hold=false;player1.hand[i]=draCard();$("#cardHolder"+(i+1)).children('div.card').removeClass().addClass("card "+player1.hand[i].picture);$("#cardHolder"+(i+1)).children('.backcard').delay(i*200).animate({"top":'100px'},1500);dragnaCard++;}}
drag++;if(drag==2){setTimeout('player1.getResult()',1000);$("#dealHolder").addClass("hidden");$("#btnDeal span span").text("Deal");}}
function newRound(){$("#doubleup").addClass("hidden");$("#poker").removeClass("hidden");$('.cardholder').children('.backcard').animate({"top":'0px'},10);drag=0;dragnaCard=0;for(var i=0;i<5;i++){cardDeck.sort(randomSort);}
var startHand=[];for(i=0;i<5;i++){startHand.push(draCard());dragnaCard++;}
player1=new Player(startHand);$("#dealHolder").removeClass("hidden");}
function visaCard(){$('#cardHolder1').children('div.card').removeClass().addClass("card "+player1.hand[0].picture);$('#cardHolder2').children('div.card').removeClass().addClass("card "+player1.hand[1].picture);$('#cardHolder3').children('div.card').removeClass().addClass("card "+player1.hand[2].picture);$('#cardHolder4').children('div.card').removeClass().addClass("card "+player1.hand[3].picture);$('#cardHolder5').children('div.card').removeClass().addClass("card "+player1.hand[4].picture);}
function animeraCard(){$('#cardHolder1 .backcard').animate({"top":'100px'},1000);$('#cardHolder2 .backcard').delay(300).animate({"top":'100px'},1000);$('#cardHolder3 .backcard').delay(600).animate({"top":'100px'},1000);$('#cardHolder4 .backcard').delay(900).animate({"top":'100px'},1000);$('#cardHolder5 .backcard').delay(1200).animate({"top":'100px'},2500);}
function holdCard(spl,selector,x){if(spl.hand[x].hold){spl.hand[x].hold=false;$(selector).children('.backcard').animate({"top":'100px'},10);}
else{spl.hand[x].hold=true;$(selector).children('.backcard').animate({"top":'0px'},10);}}
function showCredits(){$("#credits").animate({"font-size":"20px"},"slow").text(credits).delay(200).animate({"font-size":"16px"},"slow");}
function showPoints(){$("#points").animate({"font-size":"20px"},"slow").text(points).delay(200).animate({"font-size":"16px"},"slow");}
function sortera(a,b){return(a.value-b.value)}
function resultat(playerHand){playerHand.hand.sort(sortera);var isColor=false;var xcolor=0;for(i=1;i<playerHand.hand.length;i++){if(playerHand.hand[0].color==playerHand.hand[i].color){xcolor++;}}
if(xcolor==4){isColor=true;}
var isStraight=false;if(((playerHand.hand[4].value-playerHand.hand[3].value)==1&&(playerHand.hand[3].value-playerHand.hand[2].value)==1&&(playerHand.hand[2].value-playerHand.hand[1].value)==1)&&((playerHand.hand[1].value-playerHand.hand[0].value)==1||((playerHand.hand[1].value-playerHand.hand[0].value)==9&&playerHand.hand[0].value==1))){isStraight=true;}
if(isColor||isStraight){if(isColor&&isStraight)
points=100;else if(isColor)
points=50;else
points=25;}
else{if((playerHand.hand[1].value==playerHand.hand[2].value)&&(playerHand.hand[1].value==playerHand.hand[3].value)&&((playerHand.hand[1].value==playerHand.hand[4].value)||(playerHand.hand[1].value==playerHand.hand[0].value))){points=10;}
else if((playerHand.hand[0].value==playerHand.hand[1].value)&&(playerHand.hand[3].value==playerHand.hand[4].value)&&((playerHand.hand[2].value==playerHand.hand[1].value)||(playerHand.hand[2].value==playerHand.hand[3].value))){points=5;}
else if(((playerHand.hand[0].value==playerHand.hand[1].value)&&(playerHand.hand[1].value==playerHand.hand[2].value))||((playerHand.hand[1].value==playerHand.hand[2].value)&&(playerHand.hand[2].value==playerHand.hand[3].value))||((playerHand.hand[2].value==playerHand.hand[3].value)&&(playerHand.hand[3].value==playerHand.hand[4].value))){points=3;}
else if(((playerHand.hand[0].value==playerHand.hand[1].value)&&(playerHand.hand[2].value==playerHand.hand[3].value))||((playerHand.hand[0].value==playerHand.hand[1].value)&&(playerHand.hand[3].value==playerHand.hand[4].value))||((playerHand.hand[1].value==playerHand.hand[2].value)&&(playerHand.hand[3].value==playerHand.hand[4].value))){points=2;}
else{var antal=0;var prev=playerHand.hand[0].value;for(i=1;i<playerHand.hand.length;i++)
{for(j=i;j<playerHand.hand.length;j++)
{if(prev==playerHand.hand[i].value&&(playerHand.hand[i].value>10||playerHand.hand[i].value==1))
{antal++;}}
prev=playerHand.hand[i].value;}
if(antal>0)
points=1;}}
return getScore(points);}
function getScore(currentPoints){var value="0";var index=0;switch(currentPoints){case 100:index=2;break;case 50:index=5;break;case 25:index=6;break;case 10:index=3;break;case 5:index=4;break;case 3:index=7;break;case 2:index=8;break;case 1:index=9;break;default:index=0;}
if(index>0){var tr=$("#tblScore tr:eq("+index+")");value=tr.find("td.selected").text();tr.addClass("selected");setTimeout(function(){tr.removeClass("selected");},4000);}
return parseInt(value);}
function showHiLow(){$("#doubleup").removeClass("hidden");$("#hiLowButtons").removeClass("hidden");for(var i=0;i<5;i++){cardDeck.sort(randomSort);}
hand=new Array();dragnaCard=0;for(i=0;i<5;i++){hand.push(draCard());dragnaCard++;}
$('#cardFirst').children('div.card').removeClass().addClass("card "+hand[0].picture);$("#cardFirst").children('.backcard').animate({"top":"100px"},"slow");$("#cardSecond").children('.backcard').animate({"top":"0px"},1);}
function hiOrLow(isWaiting){if(!isWaiting){$("#poker").addClass("hidden");$("#doubleup").addClass("hidden");$("#askDoubleUp").removeClass("hidden");$("#divAskScore").text(points);if(hasDoubleUpAnswer){hasDoubleUpAnswer=false;isWaiting=true;$("#askDoubleUp").addClass("hidden");if(isYes){showHiLow();}
else{credits+=points;showCredits();setTimeout(newRound,2000);return;}}
setTimeout('hiOrLow('+isWaiting+')',1000);}}
function giveAnswer(){$("#hiLowButtons").addClass("hidden");$('#cardSecond').children("div.card").removeClass().addClass("card "+hand[3].picture);$("#cardSecond").children('.backcard').delay(100).animate({"top":"100px"},500);isWaiting=false;if(isHigher){if(hand[0].value<hand[3].value){points=points*2;showPoints();}
else{points=0;setTimeout(newRound,2000);return;}}
else{if(hand[0].value>hand[3].value){points=points*2;showPoints();}
else{points=0;setTimeout(newRound,2000);return;}}
setTimeout('hiOrLow('+isWaiting+')',2000);}