
var small_images = "/images/cards/Small";
var large_images = "/images/cards/ingame";

var small_blank_card_src = small_images + '/card_blank.gif';
var small_unknown_card_src = small_images + '/card_unknown.gif';

var large_blank_card_src = large_images + '/cardback.png';
var large_unknown_card_src = large_images + '/cardback.png';

var num_open_cards = 2;
var open_card_ary = ['p1c1', 'p1c2'];

card_ary = new Array('A', 'K', 'Q', 'J', 'T', '9', '8', '7', '6', '5', '4', '3', '2');
suit_ary = new Array('Spade', 'Heart', 'Diamond', 'Club');

function resetAll(resetSelect) {
  resetAllCards();
  document.the_form.reset();
  $('results').innerHTML = 'Please select 2 cards for your hand by clicking on the cards in the deck.';
}

function resetAllCards() {
  for (card = 1; card <= 2; card++)  {
    pos = 'p1' + 'c' + card;
    if (!document.images[pos].src.match(large_blank_card_src)) { 
      document.images[pos].src = large_blank_card_src;
      document.the_form.elements[pos + '_suit'].value = '';
      document.the_form.elements[pos + '_card'].value = '';
    }
  }

  // Reset the deck of cards, but only the ones that need to be reset (much faster!)
  for (suit = 0; suit < 4; suit++)  {
    for (card = 0; card < 13; card++)  {
      img = 'deck_' + suit_ary[suit] + '_' + card_ary[card];
      src = small_images + '/' + suit_ary[suit] + '/' + card_ary[card] + '.gif';
      if (!document.images[img].src.match(src)) document.images[img].src = src;
    }
  }

  open_card_ary = new Array(num_open_cards);      

  pos = 0;
  for (card = 1; card <= 2; card++)  {
    img = 'p1' + 'c' + card;
    document.images[img].src = large_unknown_card_src;
    open_card_ary[pos++] = img;
  }
}

function dropCard(card) {
  pos = 'p1' + 'c' + card;

  if (document.images[pos].src.indexOf(large_blank_card_src) != -1 ||
  document.images[pos].src.indexOf(large_unknown_card_src) != -1 )  {
    return;
  }

  document.images[pos].src = large_unknown_card_src;

  s = document.the_form.elements[pos + '_suit'].value;
  c = document.the_form.elements[pos + '_card'].value;
  img = 'deck_' + s + '_' + c;
  document.images[img].src = small_images + '/' + s + '/' + c + '.gif';

  document.the_form.elements[pos + '_suit'].value = '';
  document.the_form.elements[pos + '_card'].value = '';
}

function pickCard(suit, card) {

  img = 'deck_' + suit + '_' + card;

  if (document.images[img].src.indexOf(small_blank_card_src) != -1) {
    return;
  }

  i = 0;
  pos = open_card_ary[i];
  while (document.images[pos].src.indexOf(large_unknown_card_src) == -1) { 
    i++;
    if (i >= num_open_cards) {
      return;
    }
    pos = open_card_ary[i];
  }

  document.images[img].src = small_blank_card_src;

  document.images[pos].src = large_images + '/' + suit + '/' + card + '.png';

  document.the_form.elements[pos + '_suit'].value = suit;
  document.the_form.elements[pos + '_card'].value = card;

}

function error_msg(msg) {
  $('results').innerHTML = msg;
}

function make_recommendation() {

  for (card = 1; card <= 2; card++)  {
    img = 'p1' + 'c' + card;
    if (document.images[img].src.indexOf(large_unknown_card_src) != -1) {
      if (card == 1) {
        c = "1st";
      }else {
          c = "2nd";
      }
      error_msg("You must choose a " + c + " card.");
      return(false);
    }
  }

  if (document.the_form.num_players.selectedIndex == 0) {
    error_msg("You must select the number of players.");
    return(false);
  }

  if (document.the_form.position.selectedIndex == 0) {
    error_msg("You must select your position.");
    return(false);
  }

  hand = (document.the_form.p1c1_card.value + document.the_form.p1c2_card.value).toLowerCase();
  if ( document.the_form.p1c1_suit.value == document.the_form.p1c2_suit.value ) {
    hand += 's';
  }
  score = hand_rankings[hand];

  if ( score == undefined ) {
    hand = (document.the_form.p1c2_card.value + document.the_form.p1c1_card.value).toLowerCase();
    if ( document.the_form.p1c1_suit.value == document.the_form.p1c2_suit.value ) {
      hand += 's';
    }
    score = hand_rankings[hand];
  }

  score = parseInt(score);

  num_players = parseInt(document.the_form.num_players.value);
  position = document.the_form.position.value;

  if (num_players == 2) {
    score += 25;
  }else if ( num_players <= 4 ) {
    score += 10;
  }else if ( num_players <= 6 ) {
    score += 0;
  }else {
    score -= 10;
  }

  if ( num_players != 2 ) {
    switch(position) {
      case 'early':
        score -= 10;
        break;
      case 'late':
        score += 10;
        break;
    }
  }

  if ( score > 75 ) { klass = "premium"; }
  else if ( score > 50 ) { klass = "good"; }
  else if ( score > 25 ) { klass = "average"; }
  else if ( score > 0 ) { klass = "weak"; }
  else { klass = "inferior"; }
      
  if ( hand_nicknames[hand] != '' ) { 
    $('results').innerHTML = hand_nicknames[hand] + '<br/>' + $('message_' + klass).innerHTML; 
  }else {
    $('results').innerHTML = $('message_' + klass).innerHTML; 
  }
  $('results').show();

  return(false);
}

