Daily Programmer Challenge #170: Blackjack Checker

My submission to: http://www.reddit.com/r/dailyprogrammer/comments/29zut0/772014_challenge_170_easy_blackjack_checker/

by pendensproditor

JavaScript

(function (window) {

    var CARD_VALUES = {
            "ace": 1,
            "two": 2,
            "three": 3,
            "four": 4,
            "five": 5,
            "six": 6,
            "seven": 7,
            "eight": 8,
            "nine": 9,
            "ten": 10,
            "jack": 10,
            "queen": 10,
            "king": 10
        },
    
        ACE_BONUS_VALUE = 10,

        WINNING_VALUE = 21,

        CARDS_FOR_TRICK = 5,

        parsePlayerHands = function (str) {
            var inputLines = str.split('\n'),
                hands = {};
            for (var i = 1; i < inputLines.length; i++) {
                var inputPlayer = inputLines[i].split(':'),
                    player = inputPlayer[0],
                    hand = inputPlayer[1];
                hands[player] = parsePlayerHand(hand);
            }
            return hands;
        },

        parsePlayerHand = function (str) {
            var inputCards = str.split(','),
                cards = [];
            for (var i = 0; i < inputCards.length; i++) {
                var inputCard = inputCards[i].trim().split(' '),
                    card = inputCard[0].toLowerCase();
                cards.push(card);
            }
            return cards;
        },

        calculateHandValue = function (cards) {
            var handValue = 0,
                acesFound = 0;
            // assume aces are worth 1 at first
            for (var i = 0; i < cards.length; i++) {
                handValue += CARD_VALUES[cards[i]];
                if (cards[i] == 'ace') acesFound++;
            }
            // for every ace that could improve the hand 
            // value if it were worth 11, add those points
            for (var j = 0; j < acesFound; j++) {
                if (handValue + ACE_BONUS_VALUE <= WINNING_VALUE) handValue += ACE_BONUS_VALUE;
            }
            return handValue;
        },

        calculateWinningHand = function (str) {
            var playerHands =...