scheduler.templates.calendar_month=scheduler.date.date_to_str("%F %Y");scheduler.templates.calendar_scale_date=scheduler.date.date_to_str("%D");scheduler.renderCalendar=function(F){C=C||(new Date());var L=F.container;var J=F.position;var C=F.date;if(typeof L=="string"){L=document.getElementById(L)}if(typeof C=="string"){C=this.templates.api_date(C)}if(typeof J=="string"){J=document.getElementById(J)}if(J&&(typeof J.left=="undefined")){var G=getOffset(J);J={top:G.top+J.offsetHeight,left:G.left}}if(!L){L=scheduler._get_def_cont(J)}var A=this._render_calendar(L,C,F);var B=scheduler.date.month_start(C);var D=scheduler.date.add(B,1,"month");var K=this.getEvents(B,D);for(var E=0;E<K.length;E++){var I=K[E];var H=I.start_date;if(H.valueOf()<B.valueOf()){H=B}while(H<I.end_date){this.markCalendar(A,H,"dhx_year_event");H=this.date.add(H,1,"day");if(H.valueOf()>=D.valueOf()){break}}}A.onclick=function(O){O=O||event;var P=O.target||O.srcElement;if(P.className.indexOf("dhx_month_head")!=-1){var N=P.parentNode.className;if(N!="dhx_after"&&N!="dhx_before"){var M=scheduler.templates.xml_date(this.getAttribute("date"));M.setDate(parseInt(P.innerHTML,10));scheduler.unmarkCalendar(this);scheduler.markCalendar(this,M,"dhx_calendar_click");this._last_date=M;if(F.handler){F.handler.call(scheduler,M,this)}}}};return A};scheduler._get_def_cont=function(A){if(!this._def_count){this._def_count=document.createElement("DIV");this._def_count.style.cssText="position:absolute;z-index:10100;width:251px; height:175px;";this._def_count.onclick=function(B){(B||event).cancelBubble=true};document.body.appendChild(this._def_count)}this._def_count.style.left=A.left+"px";this._def_count.style.top=A.top+"px";this._def_count._created=new Date();return this._def_count};scheduler._locateCalendar=function(C,A){var B=C.childNodes[2].childNodes[0];if(typeof A=="string"){A=scheduler.templates.api_date(A)}var D=C.week_start+A.getDate()-1;return B.rows[Math.floor(D/7)].cells[D%7].firstChild};scheduler.markCalendar=function(C,A,B){this._locateCalendar(C,A).className+=" "+B};scheduler.unmarkCalendar=function(D,A,B){A=A||D._last_date;B=B||"dhx_calendar_click";if(!A){return }var C=this._locateCalendar(D,A);C.className=(C.className||"").replace(RegExp(B,"g"))};scheduler._week_template=function(B){var F=(B||250);var E=0;var C=document.createElement("div");var D=this.date.week_start(new Date());for(var A=0;A<7;A++){this._cols[A]=Math.floor(F/(7-A));this._render_x_header(A,E,D,C);D=this.date.add(D,1,"day");F-=this._cols[A];E+=this._cols[A]}C.lastChild.className+=" dhx_scale_bar_last";return C};scheduler._render_calendar=function(G,J,H){var N=this._cols;this._cols=[];var D=this._mode;this._mode="calendar";var C=this._colsS;this._colsS={height:0};var B=new Date(this._min_date);var P=new Date(this._max_date);var O=new Date(scheduler._date);J=this.date.month_start(J);var F=this._week_template(G.offsetWidth-1);var I=document.createElement("DIV");I.className="dhx_cal_container dhx_mini_calendar";I.setAttribute("date",this.templates.xml_format(J));I.innerHTML="<div class='dhx_year_month'></div><div class='dhx_year_week'>"+F.innerHTML+"</div><div class='dhx_year_body'></div>";I.childNodes[0].innerHTML=this.templates.calendar_month(J);if(H.navigation){var L=document.createElement("DIV");L.className="dhx_cal_prev_button";L.style.cssText="left:1px;top:2px;position:absolute;";L.innerHTML="&nbsp;";I.firstChild.appendChild(L);L.onclick=function(){H.date=scheduler.date.add(I._date,-1,"month");scheduler.destroyCalendar(I);scheduler.renderCalendar(H)};L=document.createElement("DIV");L.className="dhx_cal_next_button";L.style.cssText="left:auto; right:1px;top:2px;position:absolute;";L.innerHTML="&nbsp;";I.firstChild.appendChild(L);L.onclick=function(){H.date=scheduler.date.add(I._date,1,"month");scheduler.destroyCalendar(I);scheduler.renderCalendar(H)};I._date=new Date(J)}I.week_start=(J.getDay()-(this.config.start_on_monday?1:0)+7)%7;var M=this.date.week_start(J);this._reset_month_scale(I.childNodes[2],J,M);var A=I.childNodes[2].firstChild.rows;for(var E=A.length;E<6;E++){A[0].parentNode.appendChild(A[0].cloneNode(true));for(var K=0;K<A[E].childNodes.length;K++){A[E].childNodes[K].className="dhx_after"}}G.appendChild(I);this._cols=N;this._mode=D;this._colsS=C;this._min_date=B;this._max_date=P;scheduler._date=O;return I};scheduler.destroyCalendar=function(A){if(!A&&this._def_count&&this._def_count.firstChild){if((new Date()).valueOf()-this._def_count._created.valueOf()>500){A=this._def_count.firstChild}}if(!A){return }A.onclick=null;A.innerHTML="";if(A.parentNode){A.parentNode.removeChild(A)}if(this._def_count){this._def_count.style.top="-1000px"}};scheduler.isCalendarVisible=function(){if(this._def_count&&parseInt(this._def_count.style.top)>0){return this._def_count}return false};scheduler.attachEvent("onTemplatesReady",function(){dhtmlxEvent(document.body,"click",function(){scheduler.destroyCalendar()})});scheduler.templates.calendar_time=scheduler.date.date_to_str("%d-%m-%Y");scheduler.form_blocks.calendar_time={render:function(){var C="<input class='dhx_readonly' type='text' readonly='true'>";var A=scheduler.config;var D=this.date.date_part(new Date());if(A.first_hour){D.setHours(A.first_hour)}C+=" <select>";for(var B=60*A.first_hour;B<60*A.last_hour;B+=this.config.time_step*1){var E=this.templates.time_picker(D);C+="<option value='"+B+"'>"+E+"</option>";D=this.date.add(D,this.config.time_step,"minute")}C+="</select>";return"<div style='height:30px; padding-top:0px; font-size:inherit;' class='dhx_cal_lsection'>"+C+"<span style='font-weight:normal; font-size:10pt;'> &nbsp;&ndash;&nbsp; </span>"+C+"</div>"},_init_once:function(B,A){B.onclick=function(){scheduler.renderCalendar({position:B,date:this._date,navigation:true,handler:function(C){B.value=scheduler.templates.calendar_time(C);B._date=new Date(C);scheduler.destroyCalendar()}})}},set_value:function(D,E,C){function A(G,F){scheduler.form_blocks.calendar_time._init_once(G,F);G.value=scheduler.templates.calendar_time(F);G._date=new Date(F)}var B=D.getElementsByTagName("input");A(B[0],C.start_date);A(B[1],C.end_date);scheduler.form_blocks.calendar_time._init_once=function(){};var B=D.getElementsByTagName("select");B[0].value=C.start_date.getHours()*60+C.start_date.getMinutes();B[1].value=C.end_date.getHours()*60+C.end_date.getMinutes()},get_value:function(B,A){s=B.getElementsByTagName("input");A.start_date=s[0]._date;A.end_date=s[1]._date;if(A.end_date<=A.start_date){A.end_date=scheduler.date.add(A.start_date,scheduler.config.time_step,"minute")}},focus:function(A){}};
