// skript pro Pokerovou krizovku
var sirka=5;
var vyska=5;
var karet=52,policek=25;

var pole_hodn=new Array;
var karty=new Array;
var krizovka=new Array;
var pocet=0;

var pokuscislo=0;
var skore=0;

function get_element(eid)
{
  var obj = new Object;
  if (document.all)
    obj = eval("document.all."+eid);
  else
    obj = document.getElementById(eid);
  return obj;
}

function michej_karty()
{
  var pom=new Array;
  var nahindex;
  for (i=0;i<karet;i++)
    pom[i] = Math.floor(i/4) + 1;
  for (i=karet-1;i>=0;i--)
  {
    nahindex = Math.floor(Math.random()*(i+1));
	karty[i] = pom[nahindex];
	pom[nahindex] = pom[i];
  }
}  

function hraj()
{
  var i,j;
  var pomretez;
  
  skore=0;
  pocet=0;
  policek = sirka*vyska;
  michej_karty();
  for (i=0;i<policek;i++)
    krizovka[i]=0;
  pomretez = "<table><tbody>";
  for (i=0;i<vyska;i++)
  {
    pomretez += "<tr>";
	for (j=0;j<sirka;j++)
	  pomretez += "<td class='hra_pok' id='pole_"+(i*sirka+j)+"' onClick='poloz("+(i*sirka+j)+");'>&nbsp;&nbsp;</td>";
	pomretez += "</tr>";
  }
  pomretez += "</tbody></table>";
  get_element("plocha").innerHTML=pomretez;
  get_element("dalsi").innerHTML = karty[0];
  get_element("skore").innerHTML="&nbsp;";
  get_element("skore_titulek").innerHTML="&nbsp;";
}

function poloz(pos)
{
  var pom;
  if (pocet<policek && krizovka[pos]==0)
  {
    krizovka[pos] = karty[pocet];
    get_element("pole_"+pos).innerHTML = karty[pocet];
    pocet++;
    if (pocet==policek)
    {
      vyhodnot();
      get_element("dalsi").innerHTML = "KONEC";
    }
    else
      get_element("dalsi").innerHTML = karty[pocet];
  }	
}

function vyhodnot_pole()
{
  var i,j,mn,hlp,body;
  // setridi pole_hodn
  for (i=0;i<sirka-1;i++)
  {
    mn=i;
    for (j=i+1;j<sirka;j++)
      if (pole_hodn[mn]>pole_hodn[j])
        mn=j;
    hlp=pole_hodn[i];
    pole_hodn[i]=pole_hodn[mn];
    pole_hodn[mn]=hlp;
  }
  // spocita dvojice
  hlp=0;
  for (i=0;i<sirka-1;i++)
    for (j=i+1;j<sirka;j++)
      if (pole_hodn[i]==pole_hodn[j])
        hlp++;
  switch (hlp)
  {
    case 0: if (pole_hodn[1]+1 == pole_hodn[2] && pole_hodn[2]+1 == pole_hodn[3] && pole_hodn[3]+1 == pole_hodn[4])
             { 
             if (pole_hodn[0]+1 == pole_hodn[1])
              body=50;
             else 
              if (pole_hodn[0]==1 && pole_hodn[1]==10)
               body=100;
             } 
            else body=0;
            break;
    case 1: body=10;break;
    case 2: body=20;break;
    case 3: body=40;break;
    case 4: if (pole_hodn[0]==1 && pole_hodn[4]==13)
              body=150; 
            else
              body=80;
            break;
    case 6: if (pole_hodn[1]==1) 
              body=200;
            else 
              body=160;
            break;
  }
  return body;
}

function vyhodnot()
{
 var i,j;
// vyhodnoceni radku
  for (i=0;i<vyska;i++)
  {
   for(j=0;j<sirka;j++)
    pole_hodn[j]=krizovka[j+i*sirka];
   skore += vyhodnot_pole();
  }
// vyhodnoceni sloupcu
  for (i=0;i<sirka;i++)
  {
   for(j=0;j<vyska;j++)
    pole_hodn[j]=krizovka[i+j*vyska];
   skore += vyhodnot_pole();
  }
// vyhodnoceni diagonal
  for (i=0;i<vyska;i++)
    pole_hodn[i]=krizovka[4+i*(sirka-1)];
  j=vyhodnot_pole();
  skore += (j>0 ? j+10 : 0);
  for (i=0;i<vyska;i++)
    pole_hodn[i]=krizovka[i*(sirka+1)];
  j=vyhodnot_pole();
  skore += (j>0 ? j+10 : 0);

  get_element("skore").innerHTML = skore;
  get_element("skore_titulek").innerHTML = "<b>Skóre</b>";
}

