function Card(Suit,Range)
{
  this.Picture     = new Image();
  this.Picture.src = "cards/"+Range+Suit+".gif";
  if(Range == 'j')
    Range = 11;
  else if(Range == 'q')
    Range = 12;
  else if(Range == 'k')
    Range = 13;
  else if(Range == '1')
    Range = 14;
  this.Type = parseInt(Range,10);
  return;
} 
function Deck()
{
  this.Cards = new Array();
  for(Suits=0;Suits<gSuits.length;Suits++)
    for(Range=0;Range<gRange.length;Range++)
      this.Cards[this.Cards.length] = new Card(gSuits[Suits],gRange[Range]);
  return;
}
function Redeal()
{
  DeckIndx = 0;
  GameLost = false;
  document.getElementById('CardCount').innerHTML = '01';
  document.getElementById('MessageArea').innerHTML = '';
  document.getElementById('BackFrame').style.visibility = 'hidden';
  var Ptr = document.getElementById('FlipCards');
  Ptr.style.visibility = 'visible';
  Ptr.innerHTML = ''; //clear out shown cards
  Shuffle();
  Ptr.appendChild(GameDeck.Cards[ShuffleIndx[DeckIndx]].Picture);
  document.getElementById('AcesButton').disabled = false;
  return;
}
function Shuffle()
{
  // document.all.SOUNDTRICK.src = 'shuffle.wav';
  //Much more efficient to shuffle an array of integers versus the array of Objects
  for(indx=0;indx<5000;indx++)
  {
    Swap1 = Math.round(Math.random() * 51);
    Swap2 = Math.round(Math.random() * 51);
    Temp = ShuffleIndx[Swap1];
    ShuffleIndx[Swap1] = ShuffleIndx[Swap2];
    ShuffleIndx[Swap2] = Temp;
  }
  return;
}
function FlipCard(Higher)
{
  DeckIndx++;
  if(DeckIndx > 51 || GameLost)
    return;
  document.getElementById('AcesButton').disabled = true;
  document.getElementById('FlipCards').appendChild(GameDeck.Cards[ShuffleIndx[DeckIndx]].Picture);
  if(Higher)
  {
    if(GameDeck.Cards[ShuffleIndx[DeckIndx]].Type < GameDeck.Cards[ShuffleIndx[DeckIndx-1]].Type)
      YouLose('Lower');
  }
  else
  {
    if(GameDeck.Cards[ShuffleIndx[DeckIndx]].Type > GameDeck.Cards[ShuffleIndx[DeckIndx-1]].Type)
      YouLose('Higher');
  }
  if(!GameLost)
  {
   // document.all.SOUNDTRICK.src = 'woohoo.wav';
    document.getElementById('CardCount').innerHTML = (DeckIndx < 9) ? '0'+(DeckIndx+1) : DeckIndx+1;
  }
  return;
}
function YouLose(Msg)
{
  //if(DeckIndx == 1)
    //document.all.SOUNDTRICK.src = 'humiliation.wav';
  //else
    //document.all.SOUNDTRICK.src = 'doh.wav';
  GameLost = true;
  document.getElementById('MessageArea').innerHTML = 'Tough Break, it was ' + Msg + '...';
  CheckForHighScore();
  return;
}
function AceValue(which)
{
  if(which.value == 'Aces High')
  {
    var AceValue = 1;
    which.value = 'Aces Low';
  }
  else
  {
    var AceValue = 14;
    which.value = 'Aces High';
  }
  for(var i=0;i<52;i+=13)
    GameDeck.Cards[i].Type = AceValue;
  return;
}
function CheckForHighScore()
{
  BackFrame.location.href = 'HighScore.php?Score='+DeckIndx;
  return;
}
var DeckIndx,GameLost;
var gSuits = new Array('c','d','h','s');
var gRange = new Array('1','2','3','4','5','6','7','8','9','10','j','q','k');
var ShuffleIndx = new Array();
for(var indx=0;indx<52;indx++)
  ShuffleIndx[indx] = indx;
var GameDeck = new Deck();

