<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<?
  
class kalendar
  
{
    var 
$mesic;
    var 
$rok;
    function 
PocetDnu ()
    {
      return 
cal_days_in_month(CAL_GREGORIAN$this->mesic$this->rok);
    }

    function 
PrvniDen ()
    {
      
$anglickeporadi date("w"mktime(000$this->mesic1$this->rok));
      return (
$anglickeporadi==0) ? $anglickeporadi;
    }

    function 
Bunka ($radek$sloupec$PrvniDen$PocetDnu)
    {
      
$dny=Array(1=>"Po""t""St""t""P""So""Ne");
      if (
$sloupec==1) return $dny[$radek];
      
$chcivratit = ($sloupec-2)*$radek $PrvniDen+1;
      if (
$chcivratit<|| $chcivratit>$PocetDnu) return "&nbsp;"; else return $chcivratit;
    }

    function 
vypis ()
    {
      
$mesice=Array(1=>"leden""nor""bezen""duben""kvten""erven""ervenec""srpen""z""jen""listopad""prosinec");
      if (!
is_numeric($this->mesic))
      {
        echo 
"Msc mus bt slo!";
        return;
      }
      if (!
is_numeric($this->rok))
      {
        echo 
"Rok mus bt slo!";
        return;
      }
      if (
$this->mesic<|| $this->mesic>12)
      {
        echo 
"Msc mus bt slo od 1 do 12";
        return;
      }
      if (
$this->rok<1980 || $this->rok>2050)
      {
        echo 
"Rok mus bt slo od 1980 do 2050";
        return;
      }
      
$PocetDnu $this->PocetDnu ($this->mesic$this->rok); $PrvniDen $this->PrvniDen($this->mesic,$this->rok);
      
$sloupcu date("W"mktime(000$this->mesic$PocetDnu-7$this->rok)) - date("W"mktime(000$this->mesic1+7$this->rok))+4;
      echo 
"<TABLE border=\"1\" style=\"border-collapse: collapse\" width=\"",$sloupcu*30,"\">";
      echo 
"<TR><TD colspan=$sloupcu width=\"",$sloupcu*30,"\" align=\"center\">".$mesice[$this->mesic]."&nbsp;".$rok."</TD></TR>\n";
      for (
$radek=1;$radek<=7;$radek++)
      {
        echo 
"<TR align=\"center\">";
        for (
$sloupec=1$sloupec<=$sloupcu$sloupec++) echo "<TD width=\"30\">".$this->Bunka($radek$sloupec$PrvniDen$PocetDnu)."</TD>";
        echo 
"</TR>\n";
      }
      echo 
"</TABLE>";
    }
  }

  class 
lepsi_kalendar extends kalendar
  
{
    var 
$zvyrazni_dny;

    function 
Bunka ($radek$sloupec$PrvniDen$PocetDnu)
    {
      
$dny=Array(1=>"Po""t""St""t""P""So""Ne");
      if (
$sloupec==1) return $dny[$radek];
      
$chcivratit = ($sloupec-2)*$radek $PrvniDen+1;
      if (
$chcivratit<|| $chcivratit>$PocetDnu) return "&nbsp;";
      else
      {
        if (
in_array($chcivratit$this->zvyrazni_dny))
        return 
"<B><BIG>".$chcivratit."</BIG></B>"; else return $chcivratit;
      }
    }

  }

  
$muj_kalendar= new lepsi_kalendar;
  
$muj_kalendar->mesic=7;
  
$muj_kalendar->rok=2004;
  
$muj_kalendar->zvyrazni_dny = Array(1,7,8,13,26);
  
$muj_kalendar->vypis();
?>