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 validaceDnu(dd,mm,yy)
{
	var dds=Days(mm+1,yy);
	return (dd>dds)?dds:dd;
}

function KalendarObjekt(id,d_od,d_do)
{
	this.datum_od=d_od;
	this.datum_do=d_do;
	this.datum=new Date(d_od);
	this.id=id;
}

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+=">leden</option><option";
	if(mm==2) kod+=" selected"; kod+=">únor</option><option";
	if(mm==3) kod+=" selected"; kod+=">březen</option><option";
	if(mm==4) kod+=" selected"; kod+=">duben</option><option";
	if(mm==5) kod+=" selected"; kod+=">květen</option><option";
	if(mm==6) kod+=" selected"; kod+=">červen</option><option";
	if(mm==7) kod+=" selected"; kod+=">červenec</option><option";
	if(mm==8) kod+=" selected"; kod+=">srpen</option><option";
	if(mm==9) kod+=" selected"; kod+=">září</option><option";
	if(mm==10) kod+=" selected"; kod+=">říjen</option><option";
	if(mm==11) kod+=" selected"; kod+=">listopad</option><option";
	if(mm==12) kod+=" selected"; kod+=">prosinec</option>";
	kod+="</select><select class=vyber name='rok' onChange='Setyy(k"+k.id+",this.selectedIndex)'>";
	for(i=yy-1; i<=yy+1; 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;
	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;
		var akt=new Date(yy,mm-1,currdd);
		if((k.datum_od<=akt)&&(akt<=k.datum_do))
			styl="dnes";
		else
			styl="den";
		kod+="<td class='"+styl+"' align=center>&nbsp;"+mezera+currdd+"&nbsp;</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.divkalendar"+k.id+".document.write(\""+kod+"\"); document.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 zavrit(k)
{
	IE?eval("document.all.divkalendar"+k.id+".style.visibility='hidden'"):eval("document.layers.divkalendar"+k.id+".visibility='hide'");
}

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);

	Kalendar(k);
}

function Setyy(k,yy)
{
	var y=k.datum.getYear(); if (y<1000) y+=1900;
	yy=y+yy-1;

	var mm=k.datum.getMonth();
	var dd=k.datum.getDate();
	dd=validaceDnu(dd,mm,yy);

	k.datum.setDate(dd);
	k.datum.setYear(yy);

	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();

	mm--;
	if(mm<0)
	{
		mm=11;
		yy--;
	}

	k.datum.setDate(validaceDnu(dd,mm,yy));
	k.datum.setMonth(mm);
	k.datum.setYear(yy);

	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();

	mm++;
	if(mm>11)
	{
		mm=0;
		yy++;
	}

	k.datum.setDate(validaceDnu(dd,mm,yy));
	k.datum.setMonth(mm);
	k.datum.setYear(yy);

	Kalendar(k);
}
