﻿var choices = { Rock : "Rock", Paper : "Paper" , Scissors : "Scissors"  }
var outcomes = { Win : "Win", Lose : "Lose", Tie : "Tie" }
var playToGames = 5;

function ProcessGameWinner()
{
    if( recordWin >= playToGames )
    {
        alert('you win the match');
        PageMethods.GetXaml('MatchWin.xaml',ProcessGameWinnerGetXaml_Completed);
        return true;
    }
    else if( recordLose >= playToGames )
    {
        alert('you lose the match');
        PageMethods.GetXaml('MatchLose.xaml',ProcessGameWinnerGetXaml_Completed);
        return true;
    }
    return false;
}
function ProcessGameWinnerGetXaml_Completed(result)
{
    var xaml = result;
    var ctrl = pageHost.createFromXaml(xaml);
    pageHost.findName('contentPlaceHolder').children.clear();
    pageHost.findName('contentPlaceHolder').children.add(ctrl);
}

function GetRandomOpponentAction()
{
    switch(getRandomInt(3))
    {
        case 0:
            return choices.Rock;
        case 1:
            return choices.Paper;
        case 2:
            return choices.Scissors;
    }
}

function DetermineOutcome(action, opponentAction)
{
    switch(action)
    {
        case choices.Rock:
            switch(opponentAction)
            {
                case choices.Rock: return outcomes.Tie;
                case choices.Paper: return outcomes.Lose;
                case choices.Scissors: return outcomes.Win;
            }
        case choices.Paper:
            switch(opponentAction)
            {
                case choices.Rock: return outcomes.Win;
                case choices.Paper: return outcomes.Tie;
                case choices.Scissors: return outcomes.Lose;
            }
        case choices.Scissors:
            switch(opponentAction)
            {
                case choices.Rock: return outcomes.Lose;
                case choices.Paper: return outcomes.Win;
                case choices.Scissors: return outcomes.Tie;
            }
    }
}

function UpdateStatistics(myAction,oppAction,outcome)
{
    choiceHistory.push(myAction + ',' + oppAction);
    eval("choice" + myAction + "++");
    eval("oppChoice" + oppAction + "++");
    eval("record" + outcome + "++");
    
    DisplayCurrentRecord();
    
    tbOutcome.text = "You " + outcome;
}

function DisplayCurrentRecord()
{
    var col1Left = 95;
    var col2Left = 185;
       
    homeWin["Canvas.Left"] = (recordWin >= 10) ? (col1Left-10) : col1Left;
    awayWin["Canvas.Left"] = (recordLose >= 10) ? (col2Left-10) : col2Left;
    
    homeRock["Canvas.Left"] = (choiceRock >= 10) ? (col1Left-5) : (col1Left+3);
    homePaper["Canvas.Left"] = (choicePaper >= 10) ? (col1Left-5) : (col1Left+3);
    homeScissors["Canvas.Left"] = (choiceScissors >= 10) ? (col1Left-5) : (col1Left+3);
    
    awayRock["Canvas.Left"] = (oppChoiceRock >= 10) ? (col2Left-5) : (col2Left+3);
    awayPaper["Canvas.Left"] = (oppChoicePaper >= 10) ? (col2Left-5) : (col2Left+3);
    awayScissors["Canvas.Left"] = (oppChoiceScissors >= 10) ? (col2Left-5) : (col2Left+3);
       
    homeWin.text = recordWin.toString();
    homeRock.text = choiceRock.toString();
    homePaper.text = choicePaper.toString();
    homeScissors.text = choiceScissors.toString();
    awayWin.text = recordLose.toString();
    awayRock.text = oppChoiceRock.toString();
    awayPaper.text = oppChoicePaper.toString();
    awayScissors.text = oppChoiceScissors.toString();
}