var sortes_vu   = new Array(" ","&hearts;","&spades;","&diams;","&clubs;");
var cartes_vu   = new Array(" ","A",2,3,4,5,6,7,8,9,"10","J","Q","K");
var gain_text     = new Array(" ","PAIRE ","DOUBLE PAIRE","BRELAN","QUINTE","FLUSH",
                            "FULL","CARRÉ","QUINTE FLUSH","QUINTE ROYAL FLUSH");                                                      
var gain_mult     = new Array(0,1,3,4,5,6,10,25,50,250);
var gage_maximum  = 500;
var cartes_valeur  = new Array(); 
var cartes_sorte   = new Array(); 
var cartes_utilisees   = new Array();
var cartes_discartees= new Array();
var cartes     = new Array();
var cartes_chargees   = false;
var cartes_all    = false;
var mode_retirer = false;
var mode_donner    = true;
var cartes_num    = 1;
var gager             = 10;
var credit          = 1000;

function initialisation()
{ 
   var IE  = document.all;
   for (no=1;no <= 5;no++)
      cartes[no]      = document.getElementById("carte"+no);
   
   mettre_montant();
   reset_cartes();

   for (no=1;no <= 5;no++)
   {
      cartes_discartees[no] = false;
	  cartes_valeur[no]   = 0;
	  mettre_carte_fond(no);
   }
   cartes_valeur[0] = 0; 
   load_cartes();
   
}

function reset_cartes()
{
   for (card=1;card <= 52; card++)
      cartes_utilisees[card] = false;
}

function donner()
{  
   if (!cartes_chargees)
   {
      if (mode_donner) 
      {  
	     document.getElementById("msg").style.visibility   = "hidden";
         for (cartes_num=1;cartes_num <= 5;cartes_num++)
            mettre_carte_fond(cartes_num);
         mode_retirer = true;
         mode_donner    = false;
	     cartes_chargees   = true;
         cartes_all    = true;
	     cartes_num    = 0;
		 credit    = credit - gager;
		 mettre_montant();
      }
      else
      {
         if (mode_retirer)
         { 
            mode_retirer = false;
            mode_donner    = true;
            cartes_all    = false;
            cartes_chargees   = true;
	        cartes_num    = 0;
	     }
      }
   }
}

function mettre_montant()
{
   document.getElementById("gage").innerHTML = format_montant(gager);
   document.getElementById("gain").innerHTML = format_montant(credit);
}

function load_cartes()
{
   if (cartes_chargees)
   {  
   	  if (cartes_all)
         cartes_num++
	  else   
 	     do cartes_num++; while(cartes_num <= 5 && cartes_discartees[cartes_num]==false);
		 
	  if (cartes_num !== 6)
	  {
         do card = Math.floor(Math.random() * 52 + 1); while (cartes_utilisees[card])
         cartes_utilisees[card]         = true;
		 cartes_discartees[cartes_num] = false;
		 if (Math.floor(card/13)==(card/13))
            cartes_sorte[cartes_num] = Math.floor(card/13);
		 else
		    cartes_sorte[cartes_num] = Math.floor(card/13) + 1;
         cartes_valeur[cartes_num]   = card-((cartes_sorte[cartes_num]-1)*13);
		 mettre_carte(cartes_num);
     }
	 else
	 {
	    cartes_chargees = false;     
	    if (!cartes_all)
		   evaluate();
	 }
  }
  setTimeout("load_cartes()",300)
}

function mettre_carte(cartes_num)
{
   couleur = cartes_sorte[cartes_num]%2?'rouge':'noir';
   carte = '<table class=carte cellspacing=2 onclick="push(this);setTimeout(\'Retirer('+cartes_num+')\',200);"><tr><td align=left><span class='+couleur+'>'+cartes_vu[cartes_valeur[cartes_num]]+'</span></td></tr><tr><td align=right><span class='+couleur+'>'+sortes_vu[cartes_sorte[cartes_num]]+'</span></td></tr></table>';
   Transition(cartes_num,carte)
}

function mettre_carte_fond(cartes_num)
{   
  carte = '<table class=carte_derriere cellspacing=2 onclick="push(this);setTimeout(\'Retirer('+cartes_num+')\',200);"><tr><td></td></tr></table>';
  Transition(cartes_num,carte)
}

function Transition(cartes_num,carte)
{
         if (document.all)
		{
	  //*  cartes[cartes_num].filters[0].apply();
          cartes[cartes_num].innerHTML = carte; 
	  //*  cartes[cartes_num].filters[0].play();
		}
		else 
	  if (document.getElementById)
		  {
			 cartes[cartes_num].innerHTML =carte;
	      } 
}

function Retirer(cartes_num)
{
   if (mode_retirer)
   {   
      if (!cartes_discartees[cartes_num])
      {
         mettre_carte_fond(cartes_num);
	     cartes_discartees[cartes_num] = true;
      }
      else
      {
  	     mettre_carte(cartes_num);
	     cartes_discartees[cartes_num] = false; 
	  }
   }
}

function evaluate()
{     
   win = 0, pair = false, carteSorte = "";
   cartes_valeur.sort(tri_num);
   //* Paire de Dame, Valet, Roi ou AS
   for (i=1;i <= 4;i++)
	  if (cartes_valeur[i] == cartes_valeur[i+1])
		 {
		    pair=true;
		    if ((cartes_valeur[i] == 13) || (cartes_valeur[i] == 12)
			  ||(cartes_valeur[i] == 11) || (cartes_valeur[i] == 1))
			  {
		        carteSorte = cartes_valeur[i] == 13?"DE ROI":cartes_valeur[i] == 12?"DE DAME":cartes_valeur[i] == 11?"DE VALET":"D'AS";
			    win = 1;
			  }
		 }
   //* Brelan
   for (i=1;i <= 3;i++)
	  if ((cartes_valeur[i] == cartes_valeur[i+1])&&(cartes_valeur[i] == cartes_valeur[i+2]))
          win = 3;
		 
   //* Double paire et Full
   if (((cartes_valeur[1] == cartes_valeur[2])&&(cartes_valeur[3] == cartes_valeur[4]))||
	   ((cartes_valeur[1] == cartes_valeur[2])&&(cartes_valeur[4] == cartes_valeur[5]))||
	   ((cartes_valeur[2] == cartes_valeur[3])&&(cartes_valeur[4] == cartes_valeur[5])))
		if (win !== 3)
		    win = 2;
		else
		    win = 6;
   //* Carré
   for (i=1;i <= 2;i++)
	  if ((cartes_valeur[i] == cartes_valeur[i+1])&&(cartes_valeur[i] == cartes_valeur[i+2])&&(cartes_valeur[i] == cartes_valeur[i+3]))
         win = 7;		
   //* Quinte
   if ((!pair && ((cartes_valeur[5] - cartes_valeur[1]) == 4)) ||
	  ((cartes_valeur[1] == 1) && (cartes_valeur[2] == 10) && (cartes_valeur[3] == 11) 
	                         && (cartes_valeur[4] == 12) && (cartes_valeur[5] == 13)))
	     win = 4
   //* Flush, Quinte Flush et  Quinte Flush Royal
   if ((cartes_sorte[1] == cartes_sorte[2])&&(cartes_sorte[2] == cartes_sorte[3])&&
	   (cartes_sorte[3] == cartes_sorte[4])&&(cartes_sorte[4] == cartes_sorte[5]))
   {
      if (win !== 4) 
	      win = 5;
	  else
	     if (cartes_valeur[1] == 1 && cartes_valeur[2] != 2)
		    win = 9;
		 else
		    win = 8;
   }
   if (win !== 0)
   {  
      gagne = gager * gain_mult[win];
	  document.getElementById("msg").style.visibility   = "visible";
	  document.getElementById("msg").innerHTML = gain_text[win] + (win==1?carteSorte:"") + "<br>Vous gagnez " + format_montant(gagne) + " pièces d'or";
	  credit += gager * gain_mult[win];
      mettre_montant();
   }
   else  
   
   {
   
      if (win == 0) 
      {       
      document.getElementById("msg").style.visibility   = "visible";
      document.getElementById("msg").innerHTML = "Perdu !<br> Redistribuez les cartes"
      }
   
      if (gager > credit)
      {
          gager = credit;
	      mettre_montant();
      }
      
	  if (credit == 0)
	  {
         document.getElementById("msg").style.visibility   = "visible";
	     document.getElementById("msg").innerHTML = "Fin de la partie<br>Essayez de nouveau!!!";
		 credit = 1000;
		 gager    = 10;
		 mettre_montant();
	  }
   }
  reset_cartes();
}

function tri_num(i,j)
{
   return(i-j)
}

function bet_montant(montant)
{
   if (mode_donner)
   {
      gager += montant;
	  if (gager == 0)
	     gager = 5;
	  if (gager > gage_maximum)
	     gager = gage_maximum;
	  if (gager > credit)
	     gager = credit;
	  mettre_montant();
   }
}

function format_montant(number)
{
  return number;
}
function push(el)
{ 
  if (el)
  {
    document.el = el;
    document.el.style.borderStyle="outset"
   	document.el.style.borderTopWidth="3px"
	document.el.style.borderBottomWidth="1px"
   	document.el.style.borderLeftWidth="3px"
	document.el.style.borderRightWidth="1px"
	setTimeout("push()",100)
  }
  else
  {
    document.el.style.borderStyle="inset"
   	document.el.style.borderTopWidth="2px"
	document.el.style.borderBottomWidth="2px"
   	document.el.style.borderLeftWidth="2px"
	document.el.style.borderRightWidth="2px"
  }
}

