var clndr_mnames = Array('Enero','Febrero','Marzo','Abril','Mayo','Junio','Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre');
var clndr_wnames = Array('Lun','Mar','Miér','Jue','Vie','Sab','Dom');
var openedCalendar = null;
var actDay = null;
//var actMonth = 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=230,height=190,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;
    actDay = r1.value;
    //actMonth = r2.value;
    if(clndrSetDates[clndr_ti])
      clndr_td = clndr_mm(clndrSetDates[clndr_ti]);
      //clndr_td = clndr_mm(clndrSetDates[clndr_mx]);
      //window.status = clndr_td;
    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>\n body {text-align: center;} .calendar { text-align: left; margin: auto; font-family: tahoma;  font-size: 70%;  text-align: center;  width: 210px;    } .calendar a {  color: #E0393D;  text-decoration: underline;  } .calendar a:hover {  color: #000;  text-decoration: none;  } .calendar tr.mes td  {  background: #fff;  } .calendar td.mes  {  text-align: center;  width: 150px;  } .calendar table {  border-collapse: collapse;  border: none;  font-size: 100%;  width: 100%;   } .calendar table th {  background: #A8B6BF;  border: 1px solid #fff;  text-align: center;  color: #fff;  padding: 3px;  /*width: 20px;*/  }  .calendar table td {  background: #F4F4F4;  border: 1px solid #fff;  color: #000;  padding: 3px;  text-align: center;  width: 30px;  } .calendar table td.na {   color: #aaa;  }  .calendar table td.calendarweekend {  background: #e7e7e7;  } .calendar table td.calendaractive {  background: #ffc0c0;  }");
    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><div class='calendar'>");
    wd.write("<table><tr style='background: none;'><td style='background: none;'>\n");
    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;&lt;</b></a>");
    else wd.write("<b>&lt;&lt;</b>");
	wd.write("</td><td colspan=\"5\" style=\"background: none; font-weight: bold; width: 150px;\">");
	/*<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");
	}
	</select></form>*/

	for(i=0; i<12; i++) {
	    //if(i == (actMonth-1)) { wd.write(decodeURIComponent(clndr_mn[i])); }
	    if(i == (clndr_td.getMonth())) { wd.write(decodeURIComponent(clndr_mn[i])); }
	}

	wd.write("&nbsp;/&nbsp;");

	for(i=clndr_mi.getFullYear();i<(clndr_mx.getFullYear()+1);i++) {
    	if(i==clndr_td.getFullYear()) wd.write(i);
	}
	
	wd.write("</td><td style=\"background: none;\">");
    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;&gt;</b></a>");
    else wd.write("<b>&gt;&gt;</b>");
    wd.write("</td></tr><tr>");
    for(i=0;i<7;i++) wd.write("<th>"+decodeURIComponent(clndr_wd[i])+"</th>");
    wd.write("</tr>\n");
    //wd.write("<td><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 || clndr_td.getDay()==6) ho="class='calendarweekend'";
	    else ho="";
	    wd.write("<td "+ho+">&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 || clndr_td.getDay()==6) ho="class='calendarweekend'";
	    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='calendarweekend'";
	    if(clndr_td.getDate() == actDay) wd.write("<td class=\"calendaractive\"><a href=\"javascript:ff('"+clndr_td.getDate()+"."+(clndr_td.getMonth()+1)+"."+clndr_td.getFullYear()+"')\">"+clndr_td.getDate()+"</a></td>");
	    else if((clndr_td.getTime()>clndr_mx.getTime())||(clndr_td.getTime()<clndr_mi.getTime())) wd.write("<td "+ho+">"+clndr_td.getDate()+"</td>"); //no available day
	    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 "+ho+"><a href=\"javascript:ff('"+clndr_td.getDate()+"."+(clndr_td.getMonth()+1)+"."+clndr_td.getFullYear()+"')\">"+clndr_td.getDate()+"</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++) {
	    if(clndr_td.getDay()==0) ho="class='calendarweekend'";
	    else ho="";
	    wd.write("<td "+ho+">&nbsp</td>");
	    clndr_td.setDate(i);
	}
	clndr_td.setDate(1);
	clndr_td.setMonth(bm);
	clndr_td.setFullYear(yr);
	clndr_ol();
    if(clndr_rc<5) wd.write("</tr><tr>");
    wd.write("</tr></table></div></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);
		    fr=fr.replace("m/yyyy",m+"/"+yyyy);
        	r.value=fr;
    	}
    }
    window.clndr_wi.close();
    try {
        checkDay2('dayFromID', 'monthYearFromID', 'dayToID', 'monthYearToID'); //pro booking formular
    } catch(eException) {
  	}
    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;
}