
// pole názvů dní
dn=["pondělí","úterý","středa","čtvrtek","pátek","sobota","neděle"];
// pole názvů měsíců
me=["Leden","Únor","Březen","Duben","Květen","Červen","Červenec",
"Srpen","Září","Říjen","Listopad","Prosinec"];
var  dnes = new Date();
// pole počtu dní v jednotlivých měsících
pd=[31,28,31,30,31,30,31,31,30,31,30,31];

// JavaScript Document
/*****************************************************************************/
function Kalendar2(Rok,Mes,evt)
/*****************************************************************************/
{
//Pokud není zadán měsíc a datum načte se nové datum
// jina se zvětší nebo zmenší měsíc či rok podle volby
//if(Mes==0 && Rok==0) dnes=new Date();
//else


{
  m = dnes.getMonth();
  m = m+Mes;
  r = dnes.getFullYear();
  r = r+Rok;
  while(m>11){r++; m=m-12;}
  while(m<0){r--; m=m+12;}
  dnes.setMonth(m);
  dnes.setFullYear(r);
  //    dnes.setMonth(dnes.getMonth()+Mes);
  //    dnes.setYear(dnes.getYaer()+Rok);
}
rok=dnes.getFullYear();

// nastavení počtu dní v měsíci únoru v přestupném roce
if ((rok%4==0 && rok%100!=0) || (rok%400==0)) pd[1]=29;
s="<div class='kalendar'>";
s+="<table class='kalHlava'><tr><td width='3'></td><td width='10'><div class='IkoRokDow' onclick='Kalendar2(-1,0,null);'></DIV></td>";
s+="<td width='10'><div class='IkoMesDow' onclick='Kalendar2(0,-1,null);'></DIV></td>";
s+="<td width='107'><b>"+me[dnes.getMonth()]+' '+rok+"</b></td>";
s+="<td width='10'><div class='IkoMesUp' onclick='Kalendar2(0,1,null);'></DIV></td>";
s+="<td width='13'><div class='IkoRokUp' onclick='Kalendar2(1,0,null);'></DIV></td>";
s+="<td width='15'><div class='IkoZavri' onclick='VyberDen(0);'></DIV></td></tr></table>";

s+='<TABLE>';
s+="<TR class='kalendarnadden'><TH>Po</TH><TH>Út</TH><TH>St</TH><TH>Čt</TH>";
s+="<TH>Pá</TH><TH>So</TH><TH>Ne</TH></TR>\n<TR>";
pomden = new Date(dnes);
pomden.setDate(1);
 prvniDen=kalden2(pomden.getDay()); sloupec=1;
// vygenerování prázdných políček na začátku kalendáře
for(i=1;i<prvniDen;i++) {
s+="<TD></TD>";
sloupec++; }
//dnes=new Date(); 
dnesek = new Date();
dnesekD=dnesek.getDate();
dnesekM=dnesek.getMonth();
dnesekR=dnesek.getFullYear();
posledniDen=pd[pomden.getMonth()]
// vygenerování políček představujících jednotlivé dny v měsíci


for(i=1;i<=posledniDen;i++)
{
  s+='<TD><a onclick="VyberDen('+i+');" CLASS="';
  if (i==dnesekD && dnes.getMonth()==dnesekM && rok==dnesekR) s+='dnes';
  else
    if (sloupec==6) s+='sob';
    else
      if (sloupec==7) s+='ned';
        else
          s+='norm';
  s+='">'+i+'</a></TD>';
  sloupec++;
  if (sloupec==8)
  {
    if (i!=posledniDen) s+="</TR><TR>";
    sloupec=1;
  }
}
// vygenerování prázdných políček na konci kalendáře
if (sloupec!=1) for (i=sloupec;i<=7;i++) s+="<TD></TD>";
s+="</TR></TABLE></DIV>";

  if(evt!=null)
  {
  //Najde volající talčítko
  if(evt.srcElement)Ramec = evt.srcElement;
  if(evt.target)Ramec = evt.target;
  PopUpVstup = Ramec;
  //Načete ze vstupního pole atributy výstupu a funkce
  X = 0;
  Y = Ramec.offsetHeight+0;
  while(Ramec)
  {
    X = X+Ramec.offsetLeft;
    Y = Y+Ramec.offsetTop; 
    Ramec = Ramec.offsetParent;
  }

  PopUpRamec=document.getElementById("PopUp");
  PopUpRamec.style.top=Y+2;
  PopUpRamec.style.left=X+3;
  PopUpRamec.style.zIndex=100;
  PopUpRamec.style.display="block";
  PopUpRamec.style.width = 170;
  }
  PopUpRamec.innerHTML = s;
  
}

function kalden2(i) { return (i==0 ? 7:i) }

/*****************************************************************************/
function VyberDen(den)
/*****************************************************************************/
{
  PopUpRamec.style.display="none";  
  if(den==0) return;
  dnes.setDate(den);
  mes = dnes.getMonth()+1;
  s=dnes.getDate()+"."+mes+"."+dnes.getFullYear();
  PopUpVstup.value = s;
  if(PopUpVstup.getAttribute("funkce"))
  {
//    var fce = PopUpVstup.getAttribute("funkce")+"(\""+s+"\",\""+PopUpVstup.getAttribute()+"\")";
    var fce = PopUpVstup.getAttribute("funkce");
    eval(fce);
  }
}

