IE=document.all?true:false;

function Days(mm,yy)
{
	var dds=0;
	switch(mm)
	{
		case 1:
		case 3:
		case 5:
		case 7:
		case 8:
		case 10:
		case 12: dds=31; break;
		case 4:
		case 6:
		case 9:
		case 11: dds=30; break;
		default: dds=(((!(yy%4))&&(yy%100))||(!(yy%400)))?29:dds=28;
	}
    return dds;
}

function DaysInMonth(k)
{
	var mm=k.datum.getMonth()+1;
	var yy=k.datum.getYear(); if(yy<1000) yy+=1900;
	return Days(mm,yy);
}

function kontrola(dd,mm,yy)
{
	var ted=new Date();
	var tedyy=ted.getYear(); if(tedyy<1000) tedyy+=1900;
	var tedmm=ted.getMonth();
	var teddd=ted.getDate()
	return ((tedyy*10000+tedmm*100+teddd)<=(yy*10000+mm*100+dd));
}

function validaceDnu(dd,mm,yy)
{
	var dds=Days(mm+1,yy);
	return (dd>dds)?dds:dd;
}


function KalendarObjekt(id,x,y,nx,ny,sel,yyod,yydo)
{
	this.datum=new Date();

	this.x=x;
	this.y=y;
	this.nx=nx;
	this.ny=ny;
	this.id=id;
	this.sel=sel;

	var yyodn=new Number(yyod);
	var yydon=new Number(yydo);
	this.yyod=yyodn.valueOf();
	this.yydo=yydon.valueOf();
}

function Nastav(k)
{
	var mm=eval("document.rez."+k.sel+"_mesic.selectedIndex");
	var yy=eval("document.rez."+k.sel+"_rok.selectedIndex")+k.yyod;
	var dd=eval("document.rez."+k.sel+"_den.selectedIndex")+1;

	k.datum.setDate(validaceDnu(dd,mm,yy));
	k.datum.setMonth(mm);
	k.datum.setYear(yy);

	Kalendar(k);
}

function Kalendar(k)
{
	var mm=k.datum.getMonth()+1;
	var yy=k.datum.getYear(); if (yy<1000) yy+=1900;
	var dd=k.datum.getDate();
	var i=0;

	var kod="<table border=2 cellspacing=0 cellpadding=1 width=190 bgcolor=#C0C0C0><tr><td><table cellpadding=0 cellspacing=0 border=0 align=center width=100% bgcolor=#C0C0C0><tr><form name='control"+k.id+"' onSubmit='return false;'><td nowrap align=center valign=middle width=100%><a href='javascript:minusmm(k"+k.id+")'><img src='/share/img/predchozi.gif' border=0 width=10 height=16></a><select class=vyber name='mm' onChange='Setmm(k"+k.id+",this.selectedIndex)'><option";
	if(mm==1) kod+=" selected";	kod+=">január</option><option";
	if(mm==2) kod+=" selected"; kod+=">február</option><option";
	if(mm==3) kod+=" selected"; kod+=">marec</option><option";
	if(mm==4) kod+=" selected"; kod+=">apríl</option><option";
	if(mm==5) kod+=" selected"; kod+=">máj</option><option";
	if(mm==6) kod+=" selected"; kod+=">jún</option><option";
	if(mm==7) kod+=" selected"; kod+=">júl</option><option";
	if(mm==8) kod+=" selected"; kod+=">august</option><option";
	if(mm==9) kod+=" selected"; kod+=">september</option><option";
	if(mm==10) kod+=" selected"; kod+=">október</option><option";
	if(mm==11) kod+=" selected"; kod+=">november</option><option";
	if(mm==12) kod+=" selected"; kod+=">december</option>";
	kod+="</select><select class=vyber name='rok' onChange='Setyy(k"+k.id+",this.selectedIndex)'>";
	for(i=k.yyod; i<=k.yydo; i++)
	{ 
		kod+="<option"; if(yy==i) kod+=" selected"; kod+=">"+i+"</option>";
	}
	kod+="</select><a href='javascript:plusmm(k"+k.id+")'><img src='/share/img/dalsi.gif' border=0 width=10 height=16></a></td><td width=16 valign=top><a href='javascript:zavrit(k"+k.id+")'><img src='/share/img/zavrit.gif' border=0 width=16 height=14 alt='X'></a></td></form></tr></table></td></tr><tr><td>";
	kod+="<table cellpadding=0 cellspacing=0 border=0 align=center width=100% bgcolor=white><tr><td bgcolor=#DDDDDD class='uvod' align=center>Po</td><td bgcolor=#DDDDDD class='uvod' align=center>Út</td><td bgcolor=#DDDDDD class='uvod' align=center>St</td><td bgcolor=#DDDDDD class='uvod' align=center>Čt</td><td bgcolor=#DDDDDD class='uvod' align=center>Pá</td><td bgcolor=#DDDDDD class='uvod' align=center>So</td><td bgcolor=#DDDDDD class='uvod' align=center>Ne</td></tr>";

	var dds=DaysInMonth(k);
	var currdd=0;
	var column=0;
	if(dd>dds) dd=dds;
	var first=new Date(yy,mm-1,1);
	var start=first.getDay()-1; if (start<0) start=6;
	dds+=start;
	for(i=0; i<start; i++)
	{
		kod+="<td class=den bgcolor=white>&nbsp;</td>";
		column++;
	}
	var styl="den";
	for(i=start; i<dds; i++)
	{
		var mezera="&nbsp;";
		if(i-start+1<10) mezera="&nbsp;&nbsp;"; else mezera="&nbsp;";
		currdd=i-start+1;
		if(currdd==dd) styl="dnes"; else styl="den";
//		if(!kontrola(currdd,mm-1,yy))
//			kod+="<td class='minulost' align=center><font face=verdana size=1>"+mezera+currdd+"&nbsp;</font></td>";
//		else
			kod+="<td class='"+styl+"' align=center>&nbsp;<a class='"+styl+"' href='javascript:vloz(k"+k.id+", "+currdd+")'>"+mezera+currdd+"&nbsp;</a></td>";
		column++;
		if(!(column%7))
			kod+="</tr><tr>";
	}
	for(i=dds; i<42; i++)
	{
		if(!(column%7))
		{
			kod+="</tr>";
			break;
		}
		kod+="<td class=den bgcolor=white>&nbsp;</td>";
		column++;
	}
	kod+="</table></td></tr></table>";

	IE?eval("document.all.divkalendar"+k.id+".innerHTML=\""+kod+"\""):eval("document.layers.divkalendar"+k.id+".document.write(\""+kod+"\"); document.layers.divkalendar"+k.id+".document.close()");
	IE?eval("document.all.divkalendar"+k.id+".style.pixelLeft="+k.x):eval("document.layers.divkalendar"+k.id+".left="+k.nx);
	IE?eval("document.all.divkalendar"+k.id+".style.pixelTop="+k.y):eval("document.layers.divkalendar"+k.id+".top="+k.ny);
	IE?eval("document.all.divkalendar"+k.id+".style.visibility='visible'"):eval("document.layers.divkalendar"+k.id+".visibility='show'");
}

function vloz(k,dd)
{
	k.datum.setDate(dd);
	zapis(k);
	zavrit(k);
}

function zavrit(k)
{
	IE?eval("document.all.divkalendar"+k.id+".style.visibility='hidden'"):eval("document.layers.divkalendar"+k.id+".visibility='hide'");
}

function zapis(k)
{
	var mm=k.datum.getMonth();
	var yy=k.datum.getYear(); if (yy<1000) yy+=1900; yy-=k.yyod;
	var dd=k.datum.getDate()-1;
	eval("document.rez."+k.sel+"_mesic.options["+mm+"].selected=true;");
	eval("document.rez."+k.sel+"_den.options["+dd+"].selected=true;");
	eval("document.rez."+k.sel+"_rok.options["+yy+"].selected=true;");
}

function Setmm(k,mm)
{
	var yy=k.datum.getYear(); if (yy<1000) yy+=1900;
	var dd=k.datum.getDate();
	dd=validaceDnu(dd,mm,yy);

	k.datum.setDate(dd);
	k.datum.setMonth(mm);

	zapis(k);
	Kalendar(k);
}

function Setyy(k,yy)
{
	yy+=k.yyod;

	var mm=k.datum.getMonth();
	var dd=k.datum.getDate();
	dd=validaceDnu(dd,mm,yy);

	k.datum.setDate(dd);
	k.datum.setYear(yy);

	zapis(k);
	Kalendar(k);
}

function minusmm(k)
{
	var mm=k.datum.getMonth();
	var yy=k.datum.getYear(); if (yy<1000) yy+=1900;
	var dd=k.datum.getDate();

	if(yy>k.yyod)
	{
		mm--;
		if(mm<0)
		{
			mm=11; yy--;
		}
	}
	else if(mm>0)
		mm--;

	k.datum.setDate(validaceDnu(dd,mm,yy));
	k.datum.setMonth(mm);
	k.datum.setYear(yy);

	zapis(k);
	Kalendar(k);
}

function plusmm(k)
{
	var mm=k.datum.getMonth();
	var yy=k.datum.getYear(); if (yy<1000) yy+=1900;
	var dd=k.datum.getDate();

	if(yy<k.yydo)
	{
		mm++;
		if(mm>11)
		{
			mm=0;
			yy++;
		}
	}
	else if(mm<11)
		mm++;

	k.datum.setDate(validaceDnu(dd,mm,yy));
	k.datum.setMonth(mm);
	k.datum.setYear(yy);

	zapis(k);
	Kalendar(k);
}
