var clndr_mnames = Array('January','February','March','April','May','June','July','August','September','October','November','December');
var clndr_wnames = Array('Mo','Tu','We','Th','Fr','Sa','Su');
var openedCalendar = null;
function dummy(){}
var clndrSetDates = new Array();
//mn - month names
//wd - week names
//hc,bc - barvy
//r1 - day field, r2 - month field, r3 - year field, f - formaty
function clndr(ti,mi,mx,mn,wd,ho,hc,bc,r1,f1,r2,f2,r3,f3) {
    if(openedCalendar && !window.openedCalendar.closed) {
    	window.openedCalendar.close();
    	window.openedCalendar = null;
    }
    clndr_wi=window.open('about:blank','clndr_wi',"location=0,menubar=0,resizable=0,scrollbars=0,status=0,toolbar=0,width=186,height=146,left="+Math.floor((screen.width-196)/2)+",top="+Math.floor((screen.height-175)/2));
    openedCalendar = clndr_wi;
    clndr_ho=new Array();
    clndr_mn=new Array();
    clndr_wd=new Array();
    clndr_ms=new Array(31,28,31,30,31,30,31,31,30,31,30,31);
    clndr_dd=new Date();
    clndr_td=new Date();
    clndr_hd=new Date();
    for(i=0;i<ho.length;i++) if(ho[i].charAt(ho[i].length-1)==".") clndr_ho[i]=ho[i].substring(0,ho[i].length-1);
	    else clndr_ho[i]=ho[i];
    for(i=0;i<mn.length;i++) clndr_mn[i]=encodeURIComponentFull(mn[i]);
    for(i=0;i<7;i++) clndr_wd[i]=encodeURIComponentFull(wd[i]);
	    
    //for(i=0;i<ho.length;i++) if(ho[i].charAt(ho[i].length-1)==".") clndr_ho[i]=ho[i].substring(0,ho[i].length-1);
	    //else clndr_ho[i]=ho[i];
    //for(i=0;i<mn.length;i++) if(document.layers) clndr_mn[i]=clndr_as(mn[i]);
	    //else clndr_mn[i]=mn[i];
    //for(i=0;i<7;i++) if(document.layers) clndr_wd[i]=clndr_as(wd[i]);
	    //else clndr_wd[i]=wd[i];	    
	    
	    
    clndr_mi=clndr_mm(mi);
    clndr_mx=clndr_mm(mx);
    clndr_mx.setHours(23);
    clndr_mx.setMinutes(59);
    clndr_ti=encodeURIComponentFull(ti);
    //if(document.layers) clndr_ti=clndr_as(ti);
    //else clndr_ti=ti;
    clndr_hc=hc;
    clndr_bc=bc;
    clndr_r1=r1;
    clndr_r2=r2;
    clndr_r3=r3;
    clndr_f1=f1;
    clndr_f2=f2;
    clndr_f3=f3;
    if(clndrSetDates[clndr_ti])
      clndr_td = clndr_mm(clndrSetDates[clndr_ti]);
    clndr_sh();
}
function clndr_sh() {
    var i,pd,bm,yr,ho;
    var wd=clndr_wi.document;
    wd.open();
    wd.write("<html>\n<head>\n");
    if(document.all) wd.write("<meta http-equiv=\"Content-Type\" content=\"text/html; charset="+document.charset+"\">\n");
    wd.write("<title>"+decodeURIComponent(clndr_ti)+"&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </title>");
    wd.write("<style>\ntd { background-color: "+clndr_bc+"; text-align: center; font-style: normal; font-size: 11px; font-family: Tahoma, Arial, Helvetica, sans-serif; } input, select { font-size: 11px; } .no { color: #cccccc; } .ce { color: #dd0000; } .mi { color: #555555; } a, a:link, a:visited { color: #000000; text-decoration: none; } a:hover { color: #990000; text-decoration: none; } .border { background-color: "+clndr_hc+"; } .head { background-color: "+clndr_hc+"; }");
    wd.write("</style>\n<scr"+"ipt language=javascript>\n");
    wd.write("\nfunction ff(v) { var id='"+clndr_ti+"'; window.opener.clndr_ff(v,id); }");
    wd.write("\nfunction sm(v) { window.opener.clndr_td.setMonth(v); window.opener.clndr_sh(); }");
    wd.write("\nfunction sy(v) { window.opener.clndr_td.setFullYear(v); window.opener.clndr_sh(); }");
    wd.write("</scr"+"ipt>\n");
    wd.write("</head>\n<body topmargin=3 leftmargin=3 marginheight=3 marginwidth=3>");
    wd.write("<table width=180 cellpadding=1 cellspacing=0 border=0><tr><td class=border>\n<table width=100% cellpadding=0 cellspacing=0 border=0><tr><td width=20 class=head>");
    if((clndr_td.getFullYear()>clndr_mi.getFullYear())||((clndr_td.getMonth()!=0)&&(clndr_td.getFullYear()==clndr_mi.getFullYear()))) wd.write("<a href=\"javascript:sm("+(clndr_td.getMonth()-1)+")\"><b>&lt;</b></a>");
    else wd.write("<b>&lt;</b>");
	wd.write("</td><td class=head><form style=\"margin: 0px;\"><select style=\"width: 80px;\" name=\"m\" onchange=\"sm(this[this.selectedIndex].value);\">");
	for(i=0;i<12;i++) {
	    wd.write("<option value="+i);
	    if(i==(clndr_td.getMonth())) { wd.write(" selected "); }
	    wd.write(">"+decodeURIComponent(clndr_mn[i])+"</option>\n");
	}
	wd.write("</select><select name=r onchange=\"sy(this[this.selectedIndex].value);\">");
	for(i=clndr_mi.getFullYear();i<(clndr_mx.getFullYear()+1);i++) {
	    wd.write("<option value="+i);
	    if(i==clndr_td.getFullYear()) wd.write(" selected ");
	    wd.write(">"+i+"</option>\n");
	}
	wd.write("</select></form></td><td class=head width=20>");
    if((clndr_td.getFullYear()<clndr_mx.getFullYear())||((clndr_td.getMonth()!=11)&&(clndr_td.getFullYear()==clndr_mx.getFullYear()))) wd.write("<a href=\"javascript:sm("+(clndr_td.getMonth()+1)+")\"><b>&gt;</b></a>");
    else wd.write("<b>&gt;</b>");
    wd.write("</td></tr></table><table width=100% cellpadding=2 cellspacing=0 border=0><tr>");
    for(i=0;i<6;i++) wd.write("<td width=20><b>"+decodeURIComponent(clndr_wd[i])+"</b></td>");
    wd.write("<td width=20><span class=ce><b>"+decodeURIComponent(clndr_wd[6])+"</b></span></td></tr>\n");
    clndr_td.setDate(1);
    pd=clndr_td.getDay()-1;
    clndr_rc=0;
    if(pd==-1) pd=6;
	bm=clndr_td.getMonth();
	yr=clndr_td.getFullYear();
	if(bm==0) {
	    clndr_td.setMonth(11);
	    clndr_td.setFullYear(yr-1);
	    clndr_ol();
	} else clndr_td.setMonth(bm-1);
	for(i=clndr_ms[clndr_td.getMonth()]-pd+1;i<=clndr_ms[clndr_td.getMonth()];i++) {
	    clndr_td.setDate(i);
 	    if(clndr_td.getDay()==0) ho="class=ce";
	    else ho="";
	    wd.write("<td>&nbsp</td>");
	}
	clndr_td.setDate(1);
	clndr_td.setMonth(bm);
	clndr_td.setFullYear(yr);
	clndr_ol();
	for(i=0;i<clndr_ms[(clndr_td.getMonth())];i++) {
	    clndr_td.setDate(i+1);
	    if((clndr_td.getDay()==1)&&(clndr_td.getDate()!=1)) {
	 	    wd.write("</tr>\n<tr>");
	 	    clndr_rc++;
	    } else if((clndr_td.getDay()==1)&&(clndr_td.getDate()==1)) wd.write("<tr>");
	    if(clndr_td.getDay()==0) ho="class=ce";
	    else ho="";
 	    for(j=0;j<clndr_ho.length;j++) if((clndr_ho[j].substring(0,clndr_ho[j].indexOf("."))==clndr_td.getDate())&&(clndr_ho[j].substring(clndr_ho[j].indexOf(".")+1,clndr_ho[j].length)==(clndr_td.getMonth()+1))) ho="class=ce";
	    if((clndr_td.getTime()>clndr_mx.getTime())||(clndr_td.getTime()<clndr_mi.getTime())) wd.write("<td "+ho+"><span class=no>"+clndr_td.getDate()+"</span></td>");
	    else if(ho=="") wd.write("<td><a href=\"javascript:ff('"+clndr_td.getDate()+"."+(clndr_td.getMonth()+1)+"."+clndr_td.getFullYear()+"')\">"+clndr_td.getDate()+"</a></td>");
	    else wd.write("<td><a href=\"javascript:ff('"+clndr_td.getDate()+"."+(clndr_td.getMonth()+1)+"."+clndr_td.getFullYear()+"')\"><span class=ce>"+clndr_td.getDate()+"</span></a></td>");
	}
	clndr_td.setDate(1);
	clndr_td.setMonth(bm+1);
	pd=clndr_td.getDay()-1;
	if(pd==0) pd=20;
	if(pd==-1) pd=6;
	for(i=1;i<=(7-pd);i++) {
	    wd.write("<td>&nbsp</td>");
	    clndr_td.setDate(i);
	    if(clndr_td.getDay()==0) ho="class=ce";
	    else ho="";
	}
	clndr_td.setDate(1);
	clndr_td.setMonth(bm);
	clndr_td.setFullYear(yr);
	clndr_ol();
    if(clndr_rc<5) wd.write("</tr><tr><td colspan=7>&nbsp;</td>");
    wd.write("</tr></table></td></tr></table></body></html>");
    wd.close();
    window.clndr_wi.focus();
}
function clndr_mm(ta) {
    var td=new Date();
    ta=ta.split(".");
    td.setDate(ta[0]);
    td.setMonth(ta[1]-1);
    td.setFullYear(ta[2]);
    td.setHours(0);
    td.setMinutes(0);
    return(td);
}
function clndr_ol() {
    var y=clndr_td.getFullYear();
	if (0 == y%4 && ((y%100 != 0) || (y%400 == 0))) clndr_ms[1]=29;
	else  clndr_ms[1]=28;
}
function clndr_ff(dt,id) {
    var f,r,fr,d,dd,m,mm,mmm,yy,yyyy;
        clndrSetDates[id] = dt;
    var msn=Array('JAN','FEB','MAR','APR','MAY','JUN','JUL','AUG','SEP','OCT','NOV','DEC');
	dt=dt.split(".");
	d=dt[0];
	if(d<10) dd="0"+d;
	else dd=d;
	m=dt[1];
	if(m<10) mm="0"+m;
	else mm=m;
	mmm = msn[m-1];
	yyyy=dt[2];
	yy=yyyy.substring(2,4);
	for(i=1;i<=3;i++) {
	    r=eval("clndr_r"+i);
	    f=eval("clndr_f"+i);
	    if((r)&&(f!="undefined")) {
		    fr=f.replace("dd",dd);
		    fr=fr.replace("d",d);
		    fr=fr.replace("mmm",mmm);
		    fr=fr.replace("mm",mm);
		    fr=fr.replace("m",m);
		    fr=fr.replace("yyyy",yyyy);
		    fr=fr.replace("yy",yy);
        	r.value=fr;
    	}
    }
    window.clndr_wi.close();
    openedWindow = false;
}

//function clndr_as(co) {
// var k;
// var n="aAaAcCdDeEeEeEiIlLlLnNoOoOoOrRrRsStTuUuUuUyYzZ";
// var o="áÁäÄčČďĎéÉëËěĚíÍĺĹľĽňŇóÓôÔöÖŕŔřŘšŠťŤúÚůŮüÜýÝžŽ";
// for(k=0;k<n.length;k++) co=co.replace(o[k],n[k]);
// return(co);
//}

function encodeURIComponentFull(text) { // opravuje nedokonalost fce encodeURIComponent
    var reg;
    text = encodeURIComponent(text);
    reg = new RegExp('\\x2d', 'gm');
    text = text.replace(reg, '%2D'); //-
    reg = new RegExp('\\x5f', 'gm');
    text = text.replace(reg, '%5F'); //_
    reg = new RegExp('\\x2e', 'gm');
    text = text.replace(reg, '%2E'); //.
    reg = new RegExp('\\x21', 'gm');
    text = text.replace(reg, '%21'); //!
    reg = new RegExp('\\x7e', 'gm');
    text = text.replace(reg, '%7E'); //~
    reg = new RegExp('\\x2a', 'gm');
    text = text.replace(reg, '%2A'); //*
    reg = new RegExp('\\x27', 'gm');
    text = text.replace(reg, '%27'); //'
    reg = new RegExp('\\x28', 'gm');
    text = text.replace(reg, '%28'); //(
    reg = new RegExp('\\x29', 'gm');
    text = text.replace(reg, '%29'); //)
    return text;
}