summaryrefslogtreecommitdiffstats
path: root/codebase/ext
diff options
context:
space:
mode:
authorAlexKlimenkov <shurick.klimenkov@gmail.com>2015-04-29 22:07:09 +0300
committerAlexKlimenkov <shurick.klimenkov@gmail.com>2015-04-29 22:07:09 +0300
commit16f6e54edba096c0cdd789edc9fca85d312c2ebb (patch)
treec21979537b1e0c2fb9622f8e0cd9059bad8b9729 /codebase/ext
parentf56a0475d90af025e92ec4716ff4e5121992b4fe (diff)
downloadscheduler-16f6e54edba096c0cdd789edc9fca85d312c2ebb.zip
scheduler-16f6e54edba096c0cdd789edc9fca85d312c2ebb.tar.gz
scheduler-16f6e54edba096c0cdd789edc9fca85d312c2ebb.tar.bz2
[fix] version 4.3.1
Diffstat (limited to 'codebase/ext')
-rw-r--r--codebase/ext/dhtmlxscheduler_active_links.js8
-rw-r--r--codebase/ext/dhtmlxscheduler_agenda_view.js17
-rw-r--r--codebase/ext/dhtmlxscheduler_all_timed.js17
-rw-r--r--codebase/ext/dhtmlxscheduler_collision.js13
-rw-r--r--codebase/ext/dhtmlxscheduler_container_autoresize.js21
-rw-r--r--codebase/ext/dhtmlxscheduler_cookie.js10
-rw-r--r--codebase/ext/dhtmlxscheduler_editors.js18
-rw-r--r--codebase/ext/dhtmlxscheduler_expand.js11
-rw-r--r--codebase/ext/dhtmlxscheduler_html_templates.js5
-rw-r--r--codebase/ext/dhtmlxscheduler_key_nav.js13
-rw-r--r--codebase/ext/dhtmlxscheduler_layer.js47
-rw-r--r--codebase/ext/dhtmlxscheduler_limit.js72
-rw-r--r--codebase/ext/dhtmlxscheduler_map_view.js54
-rw-r--r--codebase/ext/dhtmlxscheduler_minical.js49
-rw-r--r--codebase/ext/dhtmlxscheduler_monthheight.js7
-rw-r--r--codebase/ext/dhtmlxscheduler_multiselect.js10
-rw-r--r--codebase/ext/dhtmlxscheduler_multisource.js5
-rw-r--r--codebase/ext/dhtmlxscheduler_mvc.js13
-rw-r--r--codebase/ext/dhtmlxscheduler_offline.js12
-rw-r--r--codebase/ext/dhtmlxscheduler_outerdrag.js10
-rw-r--r--codebase/ext/dhtmlxscheduler_pdf.js41
-rw-r--r--codebase/ext/dhtmlxscheduler_quick_info.js24
-rw-r--r--codebase/ext/dhtmlxscheduler_readonly.js15
-rw-r--r--codebase/ext/dhtmlxscheduler_recurring.js84
-rw-r--r--codebase/ext/dhtmlxscheduler_serialize.js13
-rw-r--r--codebase/ext/dhtmlxscheduler_tooltip.js20
-rw-r--r--codebase/ext/dhtmlxscheduler_url.js9
-rw-r--r--codebase/ext/dhtmlxscheduler_wp.js5
-rw-r--r--codebase/ext/dhtmlxscheduler_year_view.js42
29 files changed, 403 insertions, 262 deletions
diff --git a/codebase/ext/dhtmlxscheduler_active_links.js b/codebase/ext/dhtmlxscheduler_active_links.js
index 50ddf67..3e957e7 100644
--- a/codebase/ext/dhtmlxscheduler_active_links.js
+++ b/codebase/ext/dhtmlxscheduler_active_links.js
@@ -1,10 +1,12 @@
/*
-dhtmlxScheduler v.4.3.0 Stardard
+@license
+dhtmlxScheduler v.4.3.1
This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited.
(c) Dinamenta, UAB.
*/
-scheduler.config.active_link_view="day",scheduler._active_link_click=function(e){var t=e.target||event.srcElement,c=t.getAttribute("jump_to"),i=scheduler.date.str_to_date(scheduler.config.api_date);return c?(scheduler.setCurrentView(i(c),scheduler.config.active_link_view),e&&e.preventDefault&&e.preventDefault(),!1):void 0},scheduler.attachEvent("onTemplatesReady",function(){var e=function(e,t){t=t||e+"_scale_date",scheduler.templates["_active_links_old_"+t]||(scheduler.templates["_active_links_old_"+t]=scheduler.templates[t]);
-var c=scheduler.templates["_active_links_old_"+t],i=scheduler.date.date_to_str(scheduler.config.api_date);scheduler.templates[t]=function(e){return"<a jump_to='"+i(e)+"' href='#'>"+c(e)+"</a>"}};if(e("week"),e("","month_day"),this.matrix)for(var t in this.matrix)e(t);this._detachDomEvent(this._obj,"click",scheduler._active_link_click),dhtmlxEvent(this._obj,"click",scheduler._active_link_click)});
+scheduler.config.active_link_view="day",scheduler._active_link_click=function(e){var t=e.target||event.srcElement,i=t.getAttribute("jump_to"),s=scheduler.date.str_to_date(scheduler.config.api_date);return i?(scheduler.setCurrentView(s(i),scheduler.config.active_link_view),e&&e.preventDefault&&e.preventDefault(),!1):void 0},scheduler.attachEvent("onTemplatesReady",function(){var e=function(e,t){t=t||e+"_scale_date",scheduler.templates["_active_links_old_"+t]||(scheduler.templates["_active_links_old_"+t]=scheduler.templates[t]);
+
+var i=scheduler.templates["_active_links_old_"+t],s=scheduler.date.date_to_str(scheduler.config.api_date);scheduler.templates[t]=function(e){return"<a jump_to='"+s(e)+"' href='#'>"+i(e)+"</a>"}};if(e("week"),e("","month_day"),this.matrix)for(var t in this.matrix)e(t);this._detachDomEvent(this._obj,"click",scheduler._active_link_click),dhtmlxEvent(this._obj,"click",scheduler._active_link_click)});
//# sourceMappingURL=../sources/ext/dhtmlxscheduler_active_links.js.map \ No newline at end of file
diff --git a/codebase/ext/dhtmlxscheduler_agenda_view.js b/codebase/ext/dhtmlxscheduler_agenda_view.js
index d8382d3..fc635e7 100644
--- a/codebase/ext/dhtmlxscheduler_agenda_view.js
+++ b/codebase/ext/dhtmlxscheduler_agenda_view.js
@@ -1,14 +1,17 @@
/*
-dhtmlxScheduler v.4.3.0 Stardard
+@license
+dhtmlxScheduler v.4.3.1
This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited.
(c) Dinamenta, UAB.
*/
-scheduler.date.add_agenda=function(e){return scheduler.date.add(e,1,"year")},scheduler.templates.agenda_time=function(e,d,t){return t._timed?this.day_date(t.start_date,t.end_date,t)+" "+this.event_date(e):scheduler.templates.day_date(e)+" &ndash; "+scheduler.templates.day_date(d)},scheduler.templates.agenda_text=function(e,d,t){return t.text},scheduler.templates.agenda_date=function(){return""},scheduler.date.agenda_start=function(){return scheduler.date.date_part(scheduler._currentDate())},scheduler.attachEvent("onTemplatesReady",function(){function e(e){if(e){var d=scheduler.locale.labels;
-scheduler._els.dhx_cal_header[0].innerHTML="<div class='dhx_agenda_line'><div>"+d.date+"</div><span style='padding-left:25px'>"+d.description+"</span></div>",scheduler._table_view=!0,scheduler.set_sizes()}}function d(){var e=(scheduler._date,scheduler.get_visible_events());e.sort(function(e,d){return e.start_date>d.start_date?1:-1});for(var d="<div class='dhx_agenda_area'>",t=0;t<e.length;t++){var a=e[t],l=a.color?"background:"+a.color+";":"",s=a.textColor?"color:"+a.textColor+";":"",r=scheduler.templates.event_class(a.start_date,a.end_date,a);
-d+="<div class='dhx_agenda_line"+(r?" "+r:"")+"' event_id='"+a.id+"' style='"+s+l+(a._text_style||"")+"'><div class='dhx_agenda_event_time'>"+scheduler.templates.agenda_time(a.start_date,a.end_date,a)+"</div>",d+="<div class='dhx_event_icon icon_details'>&nbsp</div>",d+="<span>"+scheduler.templates.agenda_text(a.start_date,a.end_date,a)+"</span></div>"}d+="<div class='dhx_v_border'></div></div>",scheduler._els.dhx_cal_data[0].innerHTML=d,scheduler._els.dhx_cal_data[0].childNodes[0].scrollTop=scheduler._agendaScrollTop||0;
-var c=scheduler._els.dhx_cal_data[0].childNodes[0],_=c.childNodes[c.childNodes.length-1];_.style.height=c.offsetHeight<scheduler._els.dhx_cal_data[0].offsetHeight?"100%":c.offsetHeight+"px";var n=scheduler._els.dhx_cal_data[0].firstChild.childNodes;scheduler._els.dhx_cal_date[0].innerHTML=scheduler.templates.agenda_date(scheduler._min_date,scheduler._max_date,scheduler._mode),scheduler._rendered=[];for(var t=0;t<n.length-1;t++)scheduler._rendered[t]=n[t]}var t=scheduler.dblclick_dhx_cal_data;scheduler.dblclick_dhx_cal_data=function(){if("agenda"==this._mode)!this.config.readonly&&this.config.dblclick_create&&this.addEventNow();
-else if(t)return t.apply(this,arguments)},scheduler.attachEvent("onSchedulerResize",function(){return"agenda"==this._mode?(this.agenda_view(!0),!1):!0});var a=scheduler.render_data;scheduler.render_data=function(){return"agenda"!=this._mode?a.apply(this,arguments):void d()};var l=scheduler.render_view_data;scheduler.render_view_data=function(){return"agenda"==this._mode&&(scheduler._agendaScrollTop=scheduler._els.dhx_cal_data[0].childNodes[0].scrollTop,scheduler._els.dhx_cal_data[0].childNodes[0].scrollTop=0),l.apply(this,arguments)
-},scheduler.agenda_view=function(t){scheduler._min_date=scheduler.config.agenda_start||scheduler.date.agenda_start(scheduler._date),scheduler._max_date=scheduler.config.agenda_end||scheduler.date.add_agenda(scheduler._min_date,1),scheduler._table_view=!0,e(t),t&&d()}});
+scheduler.date.add_agenda=function(e){return scheduler.date.add(e,1,"year")},scheduler.templates.agenda_time=function(e,t,s){return s._timed?this.day_date(s.start_date,s.end_date,s)+" "+this.event_date(e):scheduler.templates.day_date(e)+" &ndash; "+scheduler.templates.day_date(t)},scheduler.templates.agenda_text=function(e,t,s){return s.text},scheduler.templates.agenda_date=function(){return""},scheduler.date.agenda_start=function(){return scheduler.date.date_part(scheduler._currentDate())},scheduler.attachEvent("onTemplatesReady",function(){
+function e(e){if(e){var t=scheduler.locale.labels;scheduler._els.dhx_cal_header[0].innerHTML="<div class='dhx_agenda_line'><div>"+t.date+"</div><span style='padding-left:25px'>"+t.description+"</span></div>",scheduler._table_view=!0,scheduler.set_sizes()}}function t(){var e=(scheduler._date,scheduler.get_visible_events());e.sort(function(e,t){return e.start_date>t.start_date?1:-1});for(var t="<div class='dhx_agenda_area'>",s=0;s<e.length;s++){var i=e[s],a=i.color?"background:"+i.color+";":"",r=i.textColor?"color:"+i.textColor+";":"",n=scheduler.templates.event_class(i.start_date,i.end_date,i);
+
+t+="<div class='dhx_agenda_line"+(n?" "+n:"")+"' event_id='"+i.id+"' style='"+r+a+(i._text_style||"")+"'><div class='dhx_agenda_event_time'>"+scheduler.templates.agenda_time(i.start_date,i.end_date,i)+"</div>",t+="<div class='dhx_event_icon icon_details'>&nbsp</div>",t+="<span>"+scheduler.templates.agenda_text(i.start_date,i.end_date,i)+"</span></div>"}t+="<div class='dhx_v_border'></div></div>",scheduler._els.dhx_cal_data[0].innerHTML=t,scheduler._els.dhx_cal_data[0].childNodes[0].scrollTop=scheduler._agendaScrollTop||0;
+
+var d=scheduler._els.dhx_cal_data[0].childNodes[0],o=d.childNodes[d.childNodes.length-1];o.style.height=d.offsetHeight<scheduler._els.dhx_cal_data[0].offsetHeight?"100%":d.offsetHeight+"px";var l=scheduler._els.dhx_cal_data[0].firstChild.childNodes;scheduler._els.dhx_cal_date[0].innerHTML=scheduler.templates.agenda_date(scheduler._min_date,scheduler._max_date,scheduler._mode),scheduler._rendered=[];for(var s=0;s<l.length-1;s++)scheduler._rendered[s]=l[s]}var s=scheduler.dblclick_dhx_cal_data;scheduler.dblclick_dhx_cal_data=function(){
+if("agenda"==this._mode)!this.config.readonly&&this.config.dblclick_create&&this.addEventNow();else if(s)return s.apply(this,arguments)},scheduler.attachEvent("onSchedulerResize",function(){return"agenda"==this._mode?(this.agenda_view(!0),!1):!0});var i=scheduler.render_data;scheduler.render_data=function(e){return"agenda"!=this._mode?i.apply(this,arguments):void t()};var a=scheduler.render_view_data;scheduler.render_view_data=function(){return"agenda"==this._mode&&(scheduler._agendaScrollTop=scheduler._els.dhx_cal_data[0].childNodes[0].scrollTop,
+scheduler._els.dhx_cal_data[0].childNodes[0].scrollTop=0),a.apply(this,arguments)},scheduler.agenda_view=function(s){scheduler._min_date=scheduler.config.agenda_start||scheduler.date.agenda_start(scheduler._date),scheduler._max_date=scheduler.config.agenda_end||scheduler.date.add_agenda(scheduler._min_date,1),scheduler._table_view=!0,e(s),s&&t()}});
//# sourceMappingURL=../sources/ext/dhtmlxscheduler_agenda_view.js.map \ No newline at end of file
diff --git a/codebase/ext/dhtmlxscheduler_all_timed.js b/codebase/ext/dhtmlxscheduler_all_timed.js
index 9f2c4ac..8fac02e 100644
--- a/codebase/ext/dhtmlxscheduler_all_timed.js
+++ b/codebase/ext/dhtmlxscheduler_all_timed.js
@@ -1,13 +1,18 @@
/*
-dhtmlxScheduler v.4.3.0 Stardard
+@license
+dhtmlxScheduler v.4.3.1
This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited.
(c) Dinamenta, UAB.
*/
-!function(){scheduler.config.all_timed="short";var e=function(e){return!((e.end_date-e.start_date)/36e5>=24)};scheduler._safe_copy=function(e){var t=null,s=null;return e.event_pid&&(t=scheduler.getEvent(e.event_pid)),t&&t.isPrototypeOf(e)?(s=scheduler._copy_event(e),delete s.event_length,delete s.event_pid,delete s.rec_pattern,delete s.rec_type):s=scheduler._lame_clone(e),s};var t=scheduler._pre_render_events_line;scheduler._pre_render_events_line=function(s,i){function a(e){var t=r(e.start_date);
-return+e.end_date>+t}function r(e){var t=scheduler.date.add(e,1,"day");return t=scheduler.date.date_part(t)}function n(e,t){var s=scheduler.date.date_part(new Date(e));return s.setHours(t),s}if(!this.config.all_timed)return t.call(this,s,i);for(var d=0;d<s.length;d++){var o=s[d];if(!o._timed)if("short"!=this.config.all_timed||e(o)){var l=this._safe_copy(o);l.start_date=new Date(l.start_date),a(o)?(l.end_date=r(l.start_date),24!=this.config.last_hour&&(l.end_date=n(l.start_date,this.config.last_hour))):l.end_date=new Date(o.end_date);
-var h=!1;l.start_date<this._max_date&&l.end_date>this._min_date&&l.start_date<l.end_date&&(s[d]=l,h=!0);var _=this._safe_copy(o);if(_.end_date=new Date(_.end_date),_.start_date=_.start_date<this._min_date?n(this._min_date,this.config.first_hour):n(r(o.start_date),this.config.first_hour),_.start_date<this._max_date&&_.start_date<_.end_date){if(!h){s[d--]=_;continue}s.splice(d+1,0,_)}}else s.splice(d--,1)}var c="move"==this._drag_mode?!1:i;return t.call(this,s,c)};var s=scheduler.get_visible_events;
-scheduler.get_visible_events=function(e){return this.config.all_timed&&this.config.multi_day?s.call(this,!1):s.call(this,e)},scheduler.attachEvent("onBeforeViewChange",function(e,t,s){return scheduler._allow_dnd="day"==s||"week"==s,!0}),scheduler._is_main_area_event=function(t){return!!(t._timed||this.config.all_timed===!0||"short"==this.config.all_timed&&e(t))};var i=scheduler.updateEvent;scheduler.updateEvent=function(e){var t,s=scheduler.config.all_timed&&!(scheduler.isOneDayEvent(scheduler._events[e])||scheduler.getState().drag_id);
-s&&(t=scheduler.config.update_render,scheduler.config.update_render=!0),i.apply(scheduler,arguments),s&&(scheduler.config.update_render=t)}}();
+!function(){scheduler.config.all_timed="short";var e=function(e){return!((e.end_date-e.start_date)/36e5>=24)};scheduler._safe_copy=function(e){var t=null,a=null;return e.event_pid&&(t=scheduler.getEvent(e.event_pid)),t&&t.isPrototypeOf(e)?(a=scheduler._copy_event(e),delete a.event_length,delete a.event_pid,delete a.rec_pattern,delete a.rec_type):a=scheduler._lame_clone(e),a};var t=scheduler._pre_render_events_line;scheduler._pre_render_events_line=function(a,i){function n(e){var t=r(e.start_date);
+
+return+e.end_date>+t}function r(e){var t=scheduler.date.add(e,1,"day");return t=scheduler.date.date_part(t)}function l(e,t){var a=scheduler.date.date_part(new Date(e));return a.setHours(t),a}if(!this.config.all_timed)return t.call(this,a,i);for(var d=0;d<a.length;d++){var o=a[d];if(!o._timed)if("short"!=this.config.all_timed||e(o)){var s=this._safe_copy(o);s.start_date=new Date(s.start_date),n(o)?(s.end_date=r(s.start_date),24!=this.config.last_hour&&(s.end_date=l(s.start_date,this.config.last_hour))):s.end_date=new Date(o.end_date);
+
+var _=!1;s.start_date<this._max_date&&s.end_date>this._min_date&&s.start_date<s.end_date&&(a[d]=s,_=!0);var c=this._safe_copy(o);if(c.end_date=new Date(c.end_date),c.start_date<this._min_date?c.start_date=l(this._min_date,this.config.first_hour):c.start_date=l(r(o.start_date),this.config.first_hour),c.start_date<this._max_date&&c.start_date<c.end_date){if(!_){a[d--]=c;continue}a.splice(d+1,0,c)}}else a.splice(d--,1)}var u="move"==this._drag_mode?!1:i;return t.call(this,a,u)};var a=scheduler.get_visible_events;
+
+scheduler.get_visible_events=function(e){return this.config.all_timed&&this.config.multi_day?a.call(this,!1):a.call(this,e)},scheduler.attachEvent("onBeforeViewChange",function(e,t,a,i){return scheduler._allow_dnd="day"==a||"week"==a,!0}),scheduler._is_main_area_event=function(t){return!!(t._timed||this.config.all_timed===!0||"short"==this.config.all_timed&&e(t))};var i=scheduler.updateEvent;scheduler.updateEvent=function(e){var t,a=scheduler.config.all_timed&&!(scheduler.isOneDayEvent(scheduler._events[e])||scheduler.getState().drag_id);
+
+a&&(t=scheduler.config.update_render,scheduler.config.update_render=!0),i.apply(scheduler,arguments),a&&(scheduler.config.update_render=t)}}();
//# sourceMappingURL=../sources/ext/dhtmlxscheduler_all_timed.js.map \ No newline at end of file
diff --git a/codebase/ext/dhtmlxscheduler_collision.js b/codebase/ext/dhtmlxscheduler_collision.js
index ca5cd65..056a4f9 100644
--- a/codebase/ext/dhtmlxscheduler_collision.js
+++ b/codebase/ext/dhtmlxscheduler_collision.js
@@ -1,12 +1,15 @@
/*
-dhtmlxScheduler v.4.3.0 Stardard
+@license
+dhtmlxScheduler v.4.3.1
This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited.
(c) Dinamenta, UAB.
*/
-!function(){function e(e){var s=scheduler._get_section_view();s&&e&&(t=scheduler.getEvent(e)[scheduler._get_section_property()])}var t,s;scheduler.config.collision_limit=1,scheduler.attachEvent("onBeforeDrag",function(t){return e(t),!0}),scheduler.attachEvent("onBeforeLightbox",function(t){var i=scheduler.getEvent(t);return s=[i.start_date,i.end_date],e(t),!0}),scheduler.attachEvent("onEventChanged",function(e){if(!e||!scheduler.getEvent(e))return!0;var t=scheduler.getEvent(e);if(!scheduler.checkCollision(t)){if(!s)return!1;
-t.start_date=s[0],t.end_date=s[1],t._timed=this.isOneDayEvent(t)}return!0}),scheduler.attachEvent("onBeforeEventChanged",function(e){return scheduler.checkCollision(e)}),scheduler.attachEvent("onEventAdded",function(e,t){var s=scheduler.checkCollision(t);s||scheduler.deleteEvent(e)}),scheduler.attachEvent("onEventSave",function(e,t){if(t=scheduler._lame_clone(t),t.id=e,!t.start_date||!t.end_date){var s=scheduler.getEvent(e);t.start_date=new Date(s.start_date),t.end_date=new Date(s.end_date)}return t.rec_type&&scheduler._roll_back_dates(t),scheduler.checkCollision(t)
-}),scheduler._check_sections_collision=function(e,t){var s=scheduler._get_section_property();return e[s]==t[s]&&e.id!=t.id?!0:!1},scheduler.checkCollision=function(e){var s=[],i=scheduler.config.collision_limit;if(e.rec_type)for(var a=scheduler.getRecDates(e),n=0;n<a.length;n++)for(var r=scheduler.getEvents(a[n].start_date,a[n].end_date),d=0;d<r.length;d++)(r[d].event_pid||r[d].id)!=e.id&&s.push(r[d]);else{s=scheduler.getEvents(e.start_date,e.end_date);for(var o=0;o<s.length;o++)if(s[o].id==e.id){s.splice(o,1);
-break}}var l=scheduler._get_section_view(),h=scheduler._get_section_property(),_=!0;if(l){for(var c=0,o=0;o<s.length;o++)s[o].id!=e.id&&this._check_sections_collision(s[o],e)&&c++;c>=i&&(_=!1)}else s.length>=i&&(_=!1);if(!_){var u=!scheduler.callEvent("onEventCollision",[e,s]);return u||(e[h]=t||e[h]),u}return _}}();
+!function(){function e(e){var a=scheduler._get_section_view();a&&e&&(t=scheduler.getEvent(e)[scheduler._get_section_property()])}var t,a;scheduler.config.collision_limit=1,scheduler.attachEvent("onBeforeDrag",function(t){return e(t),!0}),scheduler.attachEvent("onBeforeLightbox",function(t){var i=scheduler.getEvent(t);return a=[i.start_date,i.end_date],e(t),!0}),scheduler.attachEvent("onEventChanged",function(e){if(!e||!scheduler.getEvent(e))return!0;var t=scheduler.getEvent(e);if(!scheduler.checkCollision(t)){
+if(!a)return!1;t.start_date=a[0],t.end_date=a[1],t._timed=this.isOneDayEvent(t)}return!0}),scheduler.attachEvent("onBeforeEventChanged",function(e,t,a){return scheduler.checkCollision(e)}),scheduler.attachEvent("onEventAdded",function(e,t){var a=scheduler.checkCollision(t);a||scheduler.deleteEvent(e)}),scheduler.attachEvent("onEventSave",function(e,t,a){if(t=scheduler._lame_clone(t),t.id=e,!t.start_date||!t.end_date){var i=scheduler.getEvent(e);t.start_date=new Date(i.start_date),t.end_date=new Date(i.end_date);
+
+}return t.rec_type&&scheduler._roll_back_dates(t),scheduler.checkCollision(t)}),scheduler._check_sections_collision=function(e,t){var a=scheduler._get_section_property();return e[a]==t[a]&&e.id!=t.id?!0:!1},scheduler.checkCollision=function(e){var a=[],i=scheduler.config.collision_limit;if(e.rec_type)for(var n=scheduler.getRecDates(e),r=0;r<n.length;r++)for(var l=scheduler.getEvents(n[r].start_date,n[r].end_date),d=0;d<l.length;d++)(l[d].event_pid||l[d].id)!=e.id&&a.push(l[d]);else{a=scheduler.getEvents(e.start_date,e.end_date);
+
+for(var o=0;o<a.length;o++)if(a[o].id==e.id){a.splice(o,1);break}}var s=scheduler._get_section_view(),_=scheduler._get_section_property(),c=!0;if(s){for(var u=0,o=0;o<a.length;o++)a[o].id!=e.id&&this._check_sections_collision(a[o],e)&&u++;u>=i&&(c=!1)}else a.length>=i&&(c=!1);if(!c){var h=!scheduler.callEvent("onEventCollision",[e,a]);return h||(e[_]=t||e[_]),h}return c}}();
//# sourceMappingURL=../sources/ext/dhtmlxscheduler_collision.js.map \ No newline at end of file
diff --git a/codebase/ext/dhtmlxscheduler_container_autoresize.js b/codebase/ext/dhtmlxscheduler_container_autoresize.js
index 705338b..af278ee 100644
--- a/codebase/ext/dhtmlxscheduler_container_autoresize.js
+++ b/codebase/ext/dhtmlxscheduler_container_autoresize.js
@@ -1,15 +1,20 @@
/*
-dhtmlxScheduler v.4.3.0 Stardard
+@license
+dhtmlxScheduler v.4.3.1
This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited.
(c) Dinamenta, UAB.
*/
-!function(){scheduler.config.container_autoresize=!0,scheduler.config.month_day_min_height=90;var e=scheduler._pre_render_events,t=!0;scheduler._pre_render_events=function(s,i){if(!scheduler.config.container_autoresize||!t)return e.apply(this,arguments);var a=this.xy.bar_height,n=this._colsS.heights,r=this._colsS.heights=[0,0,0,0,0,0,0],d=this._els.dhx_cal_data[0];if(s=this._table_view?this._pre_render_events_table(s,i):this._pre_render_events_line(s,i),this._table_view)if(i)this._colsS.heights=n;
-else{var l=d.firstChild;if(l.rows){for(var o=0;o<l.rows.length;o++){if(r[o]++,r[o]*a>this._colsS.height-this.xy.month_head_height){var h=l.rows[o].cells,_=this._colsS.height-this.xy.month_head_height;1*this.config.max_month_events!==this.config.max_month_events||r[o]<=this.config.max_month_events?_=r[o]*a:(this.config.max_month_events+1)*a>this._colsS.height-this.xy.month_head_height&&(_=(this.config.max_month_events+1)*a);for(var c=0;c<h.length;c++)h[c].childNodes[1].style.height=_+"px";r[o]=(r[o-1]||0)+h[0].offsetHeight
-}r[o]=(r[o-1]||0)+l.rows[o].cells[0].offsetHeight}r.unshift(0),l.parentNode.offsetHeight<l.parentNode.scrollHeight&&!l._h_fix}else if(s.length||"visible"!=this._els.dhx_multi_day[0].style.visibility||(r[0]=-1),s.length||-1==r[0]){var u=(l.parentNode.childNodes,(r[0]+1)*a+1+"px");d.style.top=this._els.dhx_cal_navline[0].offsetHeight+this._els.dhx_cal_header[0].offsetHeight+parseInt(u,10)+"px",d.style.height=this._obj.offsetHeight-parseInt(d.style.top,10)-(this.xy.margin_top||0)+"px";var g=this._els.dhx_multi_day[0];
-g.style.height=u,g.style.visibility=-1==r[0]?"hidden":"visible",g=this._els.dhx_multi_day[1],g.style.height=u,g.style.visibility=-1==r[0]?"hidden":"visible",g.className=r[0]?"dhx_multi_day_icon":"dhx_multi_day_icon_small",this._dy_shift=(r[0]+1)*a,r[0]=0}}return s};var s=["dhx_cal_navline","dhx_cal_header","dhx_multi_day","dhx_cal_data"],i=function(e){for(var t=0,i=0;i<s.length;i++){var a=s[i],n=scheduler._els[a]?scheduler._els[a][0]:null,r=0;switch(a){case"dhx_cal_navline":case"dhx_cal_header":r=parseInt(n.style.height,10);
-break;case"dhx_multi_day":r=n?n.offsetHeight:0,1==r&&(r=0);break;case"dhx_cal_data":r=Math.max(n.offsetHeight-1,n.scrollHeight);var d=scheduler.getState().mode;if("month"==d){if(scheduler.config.month_day_min_height&&!e){var l=n.getElementsByTagName("tr").length;r=l*scheduler.config.month_day_min_height}e&&(n.style.height=r+"px")}if(scheduler.matrix&&scheduler.matrix[d])if(e)r+=2,n.style.height=r+"px";else{r=2;for(var o=scheduler.matrix[d],h=o.y_unit,_=0;_<h.length;_++)r+=h[_].children?o.folder_dy||o.dy:o.dy
-}("day"==d||"week"==d)&&(r+=2)}t+=r}scheduler._obj.style.height=t+"px",e||scheduler.updateView()},a=function(){if(!scheduler.config.container_autoresize||!t)return!0;var e=scheduler.getState().mode;i(),(scheduler.matrix&&scheduler.matrix[e]||"month"==e)&&window.setTimeout(function(){i(!0)},1)};scheduler.attachEvent("onViewChange",a),scheduler.attachEvent("onXLE",a),scheduler.attachEvent("onEventChanged",a),scheduler.attachEvent("onEventCreated",a),scheduler.attachEvent("onEventAdded",a),scheduler.attachEvent("onEventDeleted",a),scheduler.attachEvent("onAfterSchedulerResize",a),scheduler.attachEvent("onClearAll",a),scheduler.attachEvent("onBeforeExpand",function(){return t=!1,!0
-}),scheduler.attachEvent("onBeforeCollapse",function(){return t=!0,!0})}();
+!function(){scheduler.config.container_autoresize=!0,scheduler.config.month_day_min_height=90;var e=scheduler._pre_render_events,t=!0;scheduler._pre_render_events=function(a,i){if(!scheduler.config.container_autoresize||!t)return e.apply(this,arguments);var n=this.xy.bar_height,l=this._colsS.heights,r=this._colsS.heights=[0,0,0,0,0,0,0],d=this._els.dhx_cal_data[0];if(a=this._table_view?this._pre_render_events_table(a,i):this._pre_render_events_line(a,i),this._table_view)if(i)this._colsS.heights=l;
+else{var o=d.firstChild;if(o.rows){for(var s=0;s<o.rows.length;s++){if(r[s]++,r[s]*n>this._colsS.height-this.xy.month_head_height){var _=o.rows[s].cells,c=this._colsS.height-this.xy.month_head_height;1*this.config.max_month_events!==this.config.max_month_events||r[s]<=this.config.max_month_events?c=r[s]*n:(this.config.max_month_events+1)*n>this._colsS.height-this.xy.month_head_height&&(c=(this.config.max_month_events+1)*n);for(var u=0;u<_.length;u++)_[u].childNodes[1].style.height=c+"px";r[s]=(r[s-1]||0)+_[0].offsetHeight;
+
+}r[s]=(r[s-1]||0)+o.rows[s].cells[0].offsetHeight}r.unshift(0),o.parentNode.offsetHeight<o.parentNode.scrollHeight&&!o._h_fix}else if(a.length||"visible"!=this._els.dhx_multi_day[0].style.visibility||(r[0]=-1),a.length||-1==r[0]){var h=(o.parentNode.childNodes,(r[0]+1)*n+1+"px");d.style.top=this._els.dhx_cal_navline[0].offsetHeight+this._els.dhx_cal_header[0].offsetHeight+parseInt(h,10)+"px",d.style.height=this._obj.offsetHeight-parseInt(d.style.top,10)-(this.xy.margin_top||0)+"px";var p=this._els.dhx_multi_day[0];
+
+p.style.height=h,p.style.visibility=-1==r[0]?"hidden":"visible",p=this._els.dhx_multi_day[1],p.style.height=h,p.style.visibility=-1==r[0]?"hidden":"visible",p.className=r[0]?"dhx_multi_day_icon":"dhx_multi_day_icon_small",this._dy_shift=(r[0]+1)*n,r[0]=0}}return a};var a=["dhx_cal_navline","dhx_cal_header","dhx_multi_day","dhx_cal_data"],i=function(e){for(var t=0,i=0;i<a.length;i++){var n=a[i],l=scheduler._els[n]?scheduler._els[n][0]:null,r=0;switch(n){case"dhx_cal_navline":case"dhx_cal_header":r=parseInt(l.style.height,10);
+
+break;case"dhx_multi_day":r=l?l.offsetHeight:0,1==r&&(r=0);break;case"dhx_cal_data":var d=scheduler.getState().mode;if(r=l.childNodes[1]&&"month"!=d?l.childNodes[1].offsetHeight:Math.max(l.offsetHeight-1,l.scrollHeight),"month"==d){if(scheduler.config.month_day_min_height&&!e){var o=l.getElementsByTagName("tr").length;r=o*scheduler.config.month_day_min_height}e&&(l.style.height=r+"px")}if(scheduler.matrix&&scheduler.matrix[d])if(e)r+=2,l.style.height=r+"px";else{r=2;for(var s=scheduler.matrix[d],_=s.y_unit,c=0;c<_.length;c++)r+=_[c].children?s.folder_dy||s.dy:s.dy;
+
+}("day"==d||"week"==d)&&(r+=2)}t+=r}scheduler._obj.style.height=t+"px",e||scheduler.updateView()},n=function(){if(!scheduler.config.container_autoresize||!t)return!0;var e=scheduler.getState().mode;i(),(scheduler.matrix&&scheduler.matrix[e]||"month"==e)&&window.setTimeout(function(){i(!0)},1)};scheduler.attachEvent("onViewChange",n),scheduler.attachEvent("onXLE",n),scheduler.attachEvent("onEventChanged",n),scheduler.attachEvent("onEventCreated",n),scheduler.attachEvent("onEventAdded",n),scheduler.attachEvent("onEventDeleted",n),
+scheduler.attachEvent("onAfterSchedulerResize",n),scheduler.attachEvent("onClearAll",n),scheduler.attachEvent("onBeforeExpand",function(){return t=!1,!0}),scheduler.attachEvent("onBeforeCollapse",function(){return t=!0,!0})}();
//# sourceMappingURL=../sources/ext/dhtmlxscheduler_container_autoresize.js.map \ No newline at end of file
diff --git a/codebase/ext/dhtmlxscheduler_cookie.js b/codebase/ext/dhtmlxscheduler_cookie.js
index a383d6c..b0bfb40 100644
--- a/codebase/ext/dhtmlxscheduler_cookie.js
+++ b/codebase/ext/dhtmlxscheduler_cookie.js
@@ -1,11 +1,13 @@
/*
-dhtmlxScheduler v.4.3.0 Stardard
+@license
+dhtmlxScheduler v.4.3.1
This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited.
(c) Dinamenta, UAB.
*/
-!function(){function e(e,t,s){var i=e+"="+s+(t?"; "+t:"");document.cookie=i}function t(e){var t=e+"=";if(document.cookie.length>0){var s=document.cookie.indexOf(t);if(-1!=s){s+=t.length;var i=document.cookie.indexOf(";",s);return-1==i&&(i=document.cookie.length),document.cookie.substring(s,i)}}return""}var s=!0;scheduler.attachEvent("onBeforeViewChange",function(i,a,n,r){if(s&&scheduler._get_url_nav){var d=scheduler._get_url_nav();(d.date||d.mode||d.event)&&(s=!1)}if(s){s=!1;var l=t("scheduler_settings");
-if(l){scheduler._min_date||(scheduler._min_date=r),l=unescape(l).split("@"),l[0]=this.templates.xml_date(l[0]);var o=this.isViewExists(l[1])?l[1]:n,h=isNaN(+l[0])?r:l[0];return window.setTimeout(function(){scheduler.setCurrentView(h,o)},1),!1}}var _=escape(this.templates.xml_format(r||a)+"@"+(n||i));return e("scheduler_settings","expires=Sun, 31 Jan 9999 22:00:00 GMT",_),!0});var i=scheduler._load;scheduler._load=function(){var e=arguments;if(!scheduler._date&&scheduler._load_mode){var t=this;window.setTimeout(function(){i.apply(t,e)
-},1)}else i.apply(this,e)}}();
+!function(){function e(e,t,a){var i=e+"="+a+(t?"; "+t:"");document.cookie=i}function t(e){var t=e+"=";if(document.cookie.length>0){var a=document.cookie.indexOf(t);if(-1!=a){a+=t.length;var i=document.cookie.indexOf(";",a);return-1==i&&(i=document.cookie.length),document.cookie.substring(a,i)}}return""}var a=!0;scheduler.attachEvent("onBeforeViewChange",function(i,n,l,r){if(a&&scheduler._get_url_nav){var d=scheduler._get_url_nav();(d.date||d.mode||d.event)&&(a=!1)}if(a){a=!1;var o=t("scheduler_settings");
+
+if(o){scheduler._min_date||(scheduler._min_date=r),o=unescape(o).split("@"),o[0]=this.templates.xml_date(o[0]);var s=this.isViewExists(o[1])?o[1]:l,_=isNaN(+o[0])?r:o[0];return window.setTimeout(function(){scheduler.setCurrentView(_,s)},1),!1}}var c=escape(this.templates.xml_format(r||n)+"@"+(l||i));return e("scheduler_settings","expires=Sun, 31 Jan 9999 22:00:00 GMT",c),!0});var i=scheduler._load;scheduler._load=function(){var e=arguments;if(!scheduler._date&&scheduler._load_mode){var t=this;window.setTimeout(function(){
+i.apply(t,e)},1)}else i.apply(this,e)}}();
//# sourceMappingURL=../sources/ext/dhtmlxscheduler_cookie.js.map \ No newline at end of file
diff --git a/codebase/ext/dhtmlxscheduler_editors.js b/codebase/ext/dhtmlxscheduler_editors.js
index 615dc79..b41ccde 100644
--- a/codebase/ext/dhtmlxscheduler_editors.js
+++ b/codebase/ext/dhtmlxscheduler_editors.js
@@ -1,14 +1,18 @@
/*
-dhtmlxScheduler v.4.3.0 Stardard
+@license
+dhtmlxScheduler v.4.3.1
This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited.
(c) Dinamenta, UAB.
*/
-scheduler.form_blocks.combo={render:function(e){e.cached_options||(e.cached_options={});var t="";return t+="<div class='"+e.type+"' style='height:"+(e.height||20)+"px;' ></div>"},set_value:function(e,t,s,i){!function(){function t(){if(e._combo&&e._combo.DOMParent){var t=e._combo;t.unload?t.unload():t.destructor&&t.destructor(),t.DOMParent=t.DOMelem=null}}t();var s=scheduler.attachEvent("onAfterLightbox",function(){t(),scheduler.detachEvent(s)})}(),window.dhx_globalImgPath=i.image_path||"/",e._combo=new dhtmlXCombo(e,i.name,e.offsetWidth-8),i.onchange&&e._combo.attachEvent("onChange",i.onchange),i.options_height&&e._combo.setOptionHeight(i.options_height);
-var a=e._combo;if(a.enableFilteringMode(i.filtering,i.script_path||null,!!i.cache),i.script_path){var r=s[i.map_to];r?i.cached_options[r]?(a.addOption(r,i.cached_options[r]),a.disable(1),a.selectOption(0),a.disable(0)):dhtmlxAjax.get(i.script_path+"?id="+r+"&uid="+scheduler.uid(),function(e){var t=e.doXPath("//option")[0],s=t.childNodes[0].nodeValue;i.cached_options[r]=s,a.addOption(r,s),a.disable(1),a.selectOption(0),a.disable(0)}):a.setComboValue("")}else{for(var n=[],d=0;d<i.options.length;d++){var l=i.options[d],o=[l.key,l.label,l.css];
-n.push(o)}if(a.addOption(n),s[i.map_to]){var h=a.getIndexByValue(s[i.map_to]);a.selectOption(h)}}},get_value:function(e,t,s){var i=e._combo.getSelectedValue();return s.script_path&&(s.cached_options[i]=e._combo.getSelectedText()),i},focus:function(){}},scheduler.form_blocks.radio={render:function(e){var t="";t+="<div class='dhx_cal_ltext dhx_cal_radio' style='height:"+e.height+"px;' >";for(var s=0;s<e.options.length;s++){var i=scheduler.uid();t+="<input id='"+i+"' type='radio' name='"+e.name+"' value='"+e.options[s].key+"'><label for='"+i+"'> "+e.options[s].label+"</label>",e.vertical&&(t+="<br/>")
-}return t+="</div>"},set_value:function(e,t,s,i){for(var a=e.getElementsByTagName("input"),r=0;r<a.length;r++){a[r].checked=!1;var n=s[i.map_to]||t;a[r].value==n&&(a[r].checked=!0)}},get_value:function(e){for(var t=e.getElementsByTagName("input"),s=0;s<t.length;s++)if(t[s].checked)return t[s].value},focus:function(){}},scheduler.form_blocks.checkbox={render:function(e){return scheduler.config.wide_form?'<div class="dhx_cal_wide_checkbox" '+(e.height?"style='height:"+e.height+"px;'":"")+"></div>":""
-},set_value:function(e,t,s,i){e=document.getElementById(i.id);var a=scheduler.uid(),r="undefined"!=typeof i.checked_value?t==i.checked_value:!!t;e.className+=" dhx_cal_checkbox";var n="<input id='"+a+"' type='checkbox' value='true' name='"+i.name+"'"+(r?"checked='true'":"")+"'>",d="<label for='"+a+"'>"+(scheduler.locale.labels["section_"+i.name]||i.name)+"</label>";if(scheduler.config.wide_form?(e.innerHTML=d,e.nextSibling.innerHTML=n):e.innerHTML=n+d,i.handler){var l=e.getElementsByTagName("input")[0];
-l.onclick=i.handler}},get_value:function(e,t,s){e=document.getElementById(s.id);var i=e.getElementsByTagName("input")[0];return i||(i=e.nextSibling.getElementsByTagName("input")[0]),i.checked?s.checked_value||!0:s.unchecked_value||!1},focus:function(){}};
+scheduler.form_blocks.combo={render:function(e){e.cached_options||(e.cached_options={});var t="";return t+="<div class='"+e.type+"' style='height:"+(e.height||20)+"px;' ></div>"},set_value:function(e,t,a,i){!function(){function t(){if(e._combo&&e._combo.DOMParent){var t=e._combo;t.unload?t.unload():t.destructor&&t.destructor(),t.DOMParent=t.DOMelem=null}}t();var a=scheduler.attachEvent("onAfterLightbox",function(){t(),scheduler.detachEvent(a)})}(),window.dhx_globalImgPath=i.image_path||"/",e._combo=new dhtmlXCombo(e,i.name,e.offsetWidth-8),
+i.onchange&&e._combo.attachEvent("onChange",i.onchange),i.options_height&&e._combo.setOptionHeight(i.options_height);var n=e._combo;if(n.enableFilteringMode(i.filtering,i.script_path||null,!!i.cache),i.script_path){var r=a[i.map_to];r?i.cached_options[r]?(n.addOption(r,i.cached_options[r]),n.disable(1),n.selectOption(0),n.disable(0)):dhtmlxAjax.get(i.script_path+"?id="+r+"&uid="+scheduler.uid(),function(e){var t=e.doXPath("//option")[0],a=t.childNodes[0].nodeValue;i.cached_options[r]=a,n.addOption(r,a),
+n.disable(1),n.selectOption(0),n.disable(0)}):n.setComboValue("")}else{for(var l=[],d=0;d<i.options.length;d++){var o=i.options[d],s=[o.key,o.label,o.css];l.push(s)}if(n.addOption(l),a[i.map_to]){var _=n.getIndexByValue(a[i.map_to]);n.selectOption(_)}}},get_value:function(e,t,a){var i=e._combo.getSelectedValue();return a.script_path&&(a.cached_options[i]=e._combo.getSelectedText()),i},focus:function(e){}},scheduler.form_blocks.radio={render:function(e){var t="";t+="<div class='dhx_cal_ltext dhx_cal_radio' style='height:"+e.height+"px;' >";
+
+for(var a=0;a<e.options.length;a++){var i=scheduler.uid();t+="<input id='"+i+"' type='radio' name='"+e.name+"' value='"+e.options[a].key+"'><label for='"+i+"'> "+e.options[a].label+"</label>",e.vertical&&(t+="<br/>")}return t+="</div>"},set_value:function(e,t,a,i){for(var n=e.getElementsByTagName("input"),r=0;r<n.length;r++){n[r].checked=!1;var l=a[i.map_to]||t;n[r].value==l&&(n[r].checked=!0)}},get_value:function(e,t,a){for(var i=e.getElementsByTagName("input"),n=0;n<i.length;n++)if(i[n].checked)return i[n].value;
+
+},focus:function(e){}},scheduler.form_blocks.checkbox={render:function(e){return scheduler.config.wide_form?'<div class="dhx_cal_wide_checkbox" '+(e.height?"style='height:"+e.height+"px;'":"")+"></div>":""},set_value:function(e,t,a,i){e=document.getElementById(i.id);var n=scheduler.uid(),r="undefined"!=typeof i.checked_value?t==i.checked_value:!!t;e.className+=" dhx_cal_checkbox";var l="<input id='"+n+"' type='checkbox' value='true' name='"+i.name+"'"+(r?"checked='true'":"")+"'>",d="<label for='"+n+"'>"+(scheduler.locale.labels["section_"+i.name]||i.name)+"</label>";
+
+if(scheduler.config.wide_form?(e.innerHTML=d,e.nextSibling.innerHTML=l):e.innerHTML=l+d,i.handler){var o=e.getElementsByTagName("input")[0];o.onclick=i.handler}},get_value:function(e,t,a){e=document.getElementById(a.id);var i=e.getElementsByTagName("input")[0];return i||(i=e.nextSibling.getElementsByTagName("input")[0]),i.checked?a.checked_value||!0:a.unchecked_value||!1},focus:function(e){}};
//# sourceMappingURL=../sources/ext/dhtmlxscheduler_editors.js.map \ No newline at end of file
diff --git a/codebase/ext/dhtmlxscheduler_expand.js b/codebase/ext/dhtmlxscheduler_expand.js
index 00b849c..bf92001 100644
--- a/codebase/ext/dhtmlxscheduler_expand.js
+++ b/codebase/ext/dhtmlxscheduler_expand.js
@@ -1,12 +1,13 @@
/*
-dhtmlxScheduler v.4.3.0 Stardard
+@license
+dhtmlxScheduler v.4.3.1
This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited.
(c) Dinamenta, UAB.
*/
-scheduler.expand=function(){if(scheduler.callEvent("onBeforeExpand",[])){var e=scheduler._obj;do e._position=e.style.position||"",e.style.position="static";while((e=e.parentNode)&&e.style);e=scheduler._obj,e.style.position="absolute",e._width=e.style.width,e._height=e.style.height,e.style.width=e.style.height="100%",e.style.top=e.style.left="0px";var t=document.body;t.scrollTop=0,t=t.parentNode,t&&(t.scrollTop=0),document.body._overflow=document.body.style.overflow||"",document.body.style.overflow="hidden",scheduler._maximize(),scheduler.callEvent("onExpand",[])
-}},scheduler.collapse=function(){if(scheduler.callEvent("onBeforeCollapse",[])){var e=scheduler._obj;do e.style.position=e._position;while((e=e.parentNode)&&e.style);e=scheduler._obj,e.style.width=e._width,e.style.height=e._height,document.body.style.overflow=document.body._overflow,scheduler._maximize(),scheduler.callEvent("onCollapse",[])}},scheduler.attachEvent("onTemplatesReady",function(){var e=document.createElement("DIV");e.className="dhx_expand_icon",scheduler.toggleIcon=e,scheduler._obj.appendChild(e),e.onclick=function(){scheduler.expanded?scheduler.collapse():scheduler.expand()
-}}),scheduler._maximize=function(){this.expanded=!this.expanded,this.toggleIcon.style.backgroundPosition="0 "+(this.expanded?"0":"18")+"px";for(var e=["left","top"],t=0;t<e.length;t++){var s=(scheduler.xy["margin_"+e[t]],scheduler["_prev_margin_"+e[t]]);scheduler.xy["margin_"+e[t]]?(scheduler["_prev_margin_"+e[t]]=scheduler.xy["margin_"+e[t]],scheduler.xy["margin_"+e[t]]=0):s&&(scheduler.xy["margin_"+e[t]]=scheduler["_prev_margin_"+e[t]],delete scheduler["_prev_margin_"+e[t]])}scheduler.callEvent("onSchedulerResize",[])&&(scheduler.update_view(),scheduler.callEvent("onAfterSchedulerResize"))
-};
+scheduler.expand=function(){if(scheduler.callEvent("onBeforeExpand",[])){var e=scheduler._obj;do e._position=e.style.position||"",e.style.position="static";while((e=e.parentNode)&&e.style);e=scheduler._obj,e.style.position="absolute",e._width=e.style.width,e._height=e.style.height,e.style.width=e.style.height="100%",e.style.top=e.style.left="0px";var t=document.body;t.scrollTop=0,t=t.parentNode,t&&(t.scrollTop=0),document.body._overflow=document.body.style.overflow||"",document.body.style.overflow="hidden",
+scheduler._maximize(),scheduler.callEvent("onExpand",[])}},scheduler.collapse=function(){if(scheduler.callEvent("onBeforeCollapse",[])){var e=scheduler._obj;do e.style.position=e._position;while((e=e.parentNode)&&e.style);e=scheduler._obj,e.style.width=e._width,e.style.height=e._height,document.body.style.overflow=document.body._overflow,scheduler._maximize(),scheduler.callEvent("onCollapse",[])}},scheduler.attachEvent("onTemplatesReady",function(){var e=document.createElement("DIV");e.className="dhx_expand_icon",
+scheduler.toggleIcon=e,scheduler._obj.appendChild(e),e.onclick=function(){scheduler.expanded?scheduler.collapse():scheduler.expand()}}),scheduler._maximize=function(){this.expanded=!this.expanded,this.toggleIcon.style.backgroundPosition="0 "+(this.expanded?"0":"18")+"px";for(var e=["left","top"],t=0;t<e.length;t++){var a=(scheduler.xy["margin_"+e[t]],scheduler["_prev_margin_"+e[t]]);scheduler.xy["margin_"+e[t]]?(scheduler["_prev_margin_"+e[t]]=scheduler.xy["margin_"+e[t]],scheduler.xy["margin_"+e[t]]=0):a&&(scheduler.xy["margin_"+e[t]]=scheduler["_prev_margin_"+e[t]],
+delete scheduler["_prev_margin_"+e[t]])}scheduler.callEvent("onSchedulerResize",[])&&(scheduler.update_view(),scheduler.callEvent("onAfterSchedulerResize"))};
//# sourceMappingURL=../sources/ext/dhtmlxscheduler_expand.js.map \ No newline at end of file
diff --git a/codebase/ext/dhtmlxscheduler_html_templates.js b/codebase/ext/dhtmlxscheduler_html_templates.js
index 46fb7c3..c9298d7 100644
--- a/codebase/ext/dhtmlxscheduler_html_templates.js
+++ b/codebase/ext/dhtmlxscheduler_html_templates.js
@@ -1,9 +1,10 @@
/*
-dhtmlxScheduler v.4.3.0 Stardard
+@license
+dhtmlxScheduler v.4.3.1
This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited.
(c) Dinamenta, UAB.
*/
-scheduler.attachEvent("onTemplatesReady",function(){for(var e=document.body.getElementsByTagName("DIV"),t=0;t<e.length;t++){var s=e[t].className||"";if(s=s.split(":"),2==s.length&&"template"==s[0]){var r='return "'+(e[t].innerHTML||"").replace(/\"/g,'\\"').replace(/[\n\r]+/g,"")+'";';r=unescape(r).replace(/\{event\.([a-z]+)\}/g,function(e,t){return'"+ev.'+t+'+"'}),scheduler.templates[s[1]]=Function("start","end","ev",r),e[t].style.display="none"}}});
+scheduler.attachEvent("onTemplatesReady",function(){for(var e=document.body.getElementsByTagName("DIV"),t=0;t<e.length;t++){var a=e[t].className||"";if(a=a.split(":"),2==a.length&&"template"==a[0]){var i='return "'+(e[t].innerHTML||"").replace(/\"/g,'\\"').replace(/[\n\r]+/g,"")+'";';i=unescape(i).replace(/\{event\.([a-z]+)\}/g,function(e,t){return'"+ev.'+t+'+"'}),scheduler.templates[a[1]]=Function("start","end","ev",i),e[t].style.display="none"}}});
//# sourceMappingURL=../sources/ext/dhtmlxscheduler_html_templates.js.map \ No newline at end of file
diff --git a/codebase/ext/dhtmlxscheduler_key_nav.js b/codebase/ext/dhtmlxscheduler_key_nav.js
index e67d811..f81bb20 100644
--- a/codebase/ext/dhtmlxscheduler_key_nav.js
+++ b/codebase/ext/dhtmlxscheduler_key_nav.js
@@ -1,12 +1,15 @@
/*
-dhtmlxScheduler v.4.3.0 Stardard
+@license
+dhtmlxScheduler v.4.3.1
This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited.
(c) Dinamenta, UAB.
*/
-scheduler._temp_key_scope=function(){function e(e){delete e.rec_type,delete e.rec_pattern,delete e.event_pid,delete e.event_length}scheduler.config.key_nav=!0;var t,s,r=null;scheduler.attachEvent("onMouseMove",function(e,r){t=scheduler.getActionData(r).date,s=scheduler.getActionData(r).section}),scheduler._make_pasted_event=function(r){var i=r.end_date-r.start_date,a=scheduler._lame_copy({},r);if(e(a),a.start_date=new Date(t),a.end_date=new Date(a.start_date.valueOf()+i),s){var n=scheduler._get_section_property();
-a[n]=scheduler.config.multisection?r[n]:s}return a},scheduler._do_paste=function(e,t,s){scheduler.addEvent(t),scheduler.callEvent("onEventPasted",[e,t,s])},scheduler._is_key_nav_active=function(){return this._is_initialized()&&!this._is_lightbox_open()&&this.config.key_nav?!0:!1},dhtmlxEvent(document,_isOpera?"keypress":"keydown",function(e){if(!scheduler._is_key_nav_active())return!0;if(e=e||event,37==e.keyCode||39==e.keyCode){e.cancelBubble=!0;var t=scheduler.date.add(scheduler._date,37==e.keyCode?-1:1,scheduler._mode);
-return scheduler.setCurrentView(t),!0}var s=scheduler._select_id;if(e.ctrlKey&&67==e.keyCode)return s&&(scheduler._buffer_id=s,r=!0,scheduler.callEvent("onEventCopied",[scheduler.getEvent(s)])),!0;if(e.ctrlKey&&88==e.keyCode&&s){r=!1,scheduler._buffer_id=s;var i=scheduler.getEvent(s);scheduler.updateEvent(i.id),scheduler.callEvent("onEventCut",[i])}if(e.ctrlKey&&86==e.keyCode){var i=scheduler.getEvent(scheduler._buffer_id);if(i){var a=scheduler._make_pasted_event(i);if(r)a.id=scheduler.uid(),scheduler._do_paste(r,a,i);
-else{var n=scheduler.callEvent("onBeforeEventChanged",[a,e,!1,i]);n&&(scheduler._do_paste(r,a,i),r=!0)}}return!0}})},scheduler._temp_key_scope();
+scheduler._temp_key_scope=function(){function e(e){delete e.rec_type,delete e.rec_pattern,delete e.event_pid,delete e.event_length}scheduler.config.key_nav=!0;var t,a,i=null;scheduler.attachEvent("onMouseMove",function(e,i){t=scheduler.getActionData(i).date,a=scheduler.getActionData(i).section}),scheduler._make_pasted_event=function(i){var n=i.end_date-i.start_date,r=scheduler._lame_copy({},i);if(e(r),r.start_date=new Date(t),r.end_date=new Date(r.start_date.valueOf()+n),a){var l=scheduler._get_section_property();
+
+scheduler.config.multisection?r[l]=i[l]:r[l]=a}return r},scheduler._do_paste=function(e,t,a){scheduler.addEvent(t),scheduler.callEvent("onEventPasted",[e,t,a])},scheduler._is_key_nav_active=function(){return this._is_initialized()&&!this._is_lightbox_open()&&this.config.key_nav?!0:!1},dhtmlxEvent(document,_isOpera?"keypress":"keydown",function(e){if(!scheduler._is_key_nav_active())return!0;if(e=e||event,37==e.keyCode||39==e.keyCode){e.cancelBubble=!0;var t=scheduler.date.add(scheduler._date,37==e.keyCode?-1:1,scheduler._mode);
+
+return scheduler.setCurrentView(t),!0}var a=scheduler._select_id;if(e.ctrlKey&&67==e.keyCode)return a&&(scheduler._buffer_id=a,i=!0,scheduler.callEvent("onEventCopied",[scheduler.getEvent(a)])),!0;if(e.ctrlKey&&88==e.keyCode&&a){i=!1,scheduler._buffer_id=a;var n=scheduler.getEvent(a);scheduler.updateEvent(n.id),scheduler.callEvent("onEventCut",[n])}if(e.ctrlKey&&86==e.keyCode){var n=scheduler.getEvent(scheduler._buffer_id);if(n){var r=scheduler._make_pasted_event(n);if(i)r.id=scheduler.uid(),scheduler._do_paste(i,r,n);
+else{var l=scheduler.callEvent("onBeforeEventChanged",[r,e,!1,n]);l&&(scheduler._do_paste(i,r,n),i=!0)}}return!0}})},scheduler._temp_key_scope();
//# sourceMappingURL=../sources/ext/dhtmlxscheduler_key_nav.js.map \ No newline at end of file
diff --git a/codebase/ext/dhtmlxscheduler_layer.js b/codebase/ext/dhtmlxscheduler_layer.js
index f859085..e01f7b0 100644
--- a/codebase/ext/dhtmlxscheduler_layer.js
+++ b/codebase/ext/dhtmlxscheduler_layer.js
@@ -1,26 +1,37 @@
/*
-dhtmlxScheduler v.4.3.0 Stardard
+@license
+dhtmlxScheduler v.4.3.1
This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited.
(c) Dinamenta, UAB.
*/
scheduler.attachEvent("onTemplatesReady",function(){this.layers.sort(function(e,t){return e.zIndex-t.zIndex}),scheduler._dp_init=function(e){e._methods=["_set_event_text_style","","changeEventId","deleteEvent"],this.attachEvent("onEventAdded",function(t){!this._loading&&this.validId(t)&&this.getEvent(t)&&this.getEvent(t).layer==e.layer&&e.setUpdated(t,!0,"inserted")}),this.attachEvent("onBeforeEventDelete",function(t){if(this.getEvent(t)&&this.getEvent(t).layer==e.layer){if(!this.validId(t))return;
-var s=e.getState(t);return"inserted"==s||this._new_event?(e.setUpdated(t,!1),!0):"deleted"==s?!1:"true_deleted"==s?!0:(e.setUpdated(t,!0,"deleted"),!1)}return!0}),this.attachEvent("onEventChanged",function(t){!this._loading&&this.validId(t)&&this.getEvent(t)&&this.getEvent(t).layer==e.layer&&e.setUpdated(t,!0,"updated")}),e._getRowData=function(e){var t=this.obj.getEvent(e),s={};for(var r in t)0!==r.indexOf("_")&&(s[r]=t[r]&&t[r].getUTCFullYear?this.obj.templates.xml_format(t[r]):t[r]);return s},e._clearUpdateFlag=function(){},e.attachEvent("insertCallback",scheduler._update_callback),e.attachEvent("updateCallback",scheduler._update_callback),e.attachEvent("deleteCallback",function(e,t){this.obj.setUserData(t,this.action_param,"true_deleted"),this.obj.deleteEvent(t)
-})},function(){var e=function(t){if(null===t||"object"!=typeof t)return t;var s=new t.constructor;for(var r in t)s[r]=e(t[r]);return s};scheduler._dataprocessors=[],scheduler._layers_zindex={};for(var t=0;t<scheduler.layers.length;t++){if(scheduler.config["lightbox_"+scheduler.layers[t].name]={},scheduler.config["lightbox_"+scheduler.layers[t].name].sections=e(scheduler.config.lightbox.sections),scheduler._layers_zindex[scheduler.layers[t].name]=scheduler.config.inital_layer_zindex||5+3*t,scheduler.layers[t].url){var s=new dataProcessor(scheduler.layers[t].url);
-s.layer=scheduler.layers[t].name,scheduler._dataprocessors.push(s),scheduler._dataprocessors[t].init(scheduler)}scheduler.layers[t].isDefault&&(scheduler.defaultLayer=scheduler.layers[t].name)}}(),scheduler.showLayer=function(e){this.toggleLayer(e,!0)},scheduler.hideLayer=function(e){this.toggleLayer(e,!1)},scheduler.toggleLayer=function(e,t){var s=this.getLayer(e);s.visible="undefined"!=typeof t?!!t:!s.visible,this.setCurrentView(this._date,this._mode)},scheduler.getLayer=function(e){var t,s;"string"==typeof e&&(s=e),"object"==typeof e&&(s=e.layer);
-for(var r=0;r<scheduler.layers.length;r++)scheduler.layers[r].name==s&&(t=scheduler.layers[r]);return t},scheduler.attachEvent("onBeforeLightbox",function(e){var t=this.getEvent(e);return this.config.lightbox.sections=this.config["lightbox_"+t.layer].sections,scheduler.resetLightbox(),!0}),scheduler.attachEvent("onClick",function(e){var t=scheduler.getEvent(e);return!scheduler.getLayer(t.layer).noMenu}),scheduler.attachEvent("onEventCollision",function(e,t){var s=this.getLayer(e);if(!s.checkCollision)return!1;
-for(var r=0,i=0;i<t.length;i++)t[i].layer==s.name&&t[i].id!=e.id&&r++;return r>=scheduler.config.collision_limit}),scheduler.addEvent=function(e,t,s,r,i){var a=e;1!=arguments.length&&(a=i||{},a.start_date=e,a.end_date=t,a.text=s,a.id=r,a.layer=this.defaultLayer),a.id=a.id||scheduler.uid(),a.text=a.text||"","string"==typeof a.start_date&&(a.start_date=this.templates.api_date(a.start_date)),"string"==typeof a.end_date&&(a.end_date=this.templates.api_date(a.end_date)),a._timed=this.isOneDayEvent(a);
-var n=!this._events[a.id];this._events[a.id]=a,this.event_updated(a),this._loading||this.callEvent(n?"onEventAdded":"onEventChanged",[a.id,a])},this._evs_layer={};for(var e=0;e<this.layers.length;e++)this._evs_layer[this.layers[e].name]=[];scheduler.addEventNow=function(e,t,s){var r={};"object"==typeof e&&(r=e,e=null);var i=6e4*(this.config.event_duration||this.config.time_step);e||(e=Math.round(scheduler._currentDate().valueOf()/i)*i);var a=new Date(e);if(!t){var n=this.config.first_hour;n>a.getHours()&&(a.setHours(n),e=a.valueOf()),t=e+i
-}r.start_date=r.start_date||a,r.end_date=r.end_date||new Date(t),r.text=r.text||this.locale.labels.new_event,r.id=this._drag_id=this.uid(),r.layer=this.defaultLayer,this._drag_mode="new-size",this._loading=!0,this.addEvent(r),this.callEvent("onEventCreated",[this._drag_id,s]),this._loading=!1,this._drag_event={},this._on_mouse_up(s)},scheduler._t_render_view_data=function(e){if(this.config.multi_day&&!this._table_view){for(var t=[],s=[],r=0;r<e.length;r++)e[r]._timed?t.push(e[r]):s.push(e[r]);this._table_view=!0,this.render_data(s),this._table_view=!1,this.render_data(t)
-}else this.render_data(e)},scheduler.render_view_data=function(){if(this._not_render)return void(this._render_wait=!0);this._render_wait=!1,this.clear_view(),this._evs_layer={};for(var e=0;e<this.layers.length;e++)this._evs_layer[this.layers[e].name]=[];for(var t=this.get_visible_events(),e=0;e<t.length;e++)this._evs_layer[t[e].layer]&&this._evs_layer[t[e].layer].push(t[e]);if("month"==this._mode){for(var s=[],e=0;e<this.layers.length;e++)this.layers[e].visible&&(s=s.concat(this._evs_layer[this.layers[e].name]));
-this._t_render_view_data(s)}else for(var e=0;e<this.layers.length;e++)if(this.layers[e].visible){var r=this._evs_layer[this.layers[e].name];this._t_render_view_data(r)}},scheduler._render_v_bar=function(e,t,s,r,i,a,n,d,l){var o=e.id;-1==n.indexOf("<div class=")&&(n=scheduler.templates["event_header_"+e.layer]?scheduler.templates["event_header_"+e.layer](e.start_date,e.end_date,e):n),-1==d.indexOf("<div class=")&&(d=scheduler.templates["event_text_"+e.layer]?scheduler.templates["event_text_"+e.layer](e.start_date,e.end_date,e):d);
-var h=document.createElement("DIV"),_="dhx_cal_event",c=scheduler.templates["event_class_"+e.layer]?scheduler.templates["event_class_"+e.layer](e.start_date,e.end_date,e):scheduler.templates.event_class(e.start_date,e.end_date,e);c&&(_=_+" "+c);var u='<div event_id="'+o+'" class="'+_+'" style="position:absolute; top:'+s+"px; left:"+t+"px; width:"+(r-4)+"px; height:"+i+"px;"+(a||"")+'">';return u+='<div class="dhx_header" style=" width:'+(r-6)+'px;" >&nbsp;</div>',u+='<div class="dhx_title">'+n+"</div>",u+='<div class="dhx_body" style=" width:'+(r-(this._quirks?4:14))+"px; height:"+(i-(this._quirks?20:30))+'px;">'+d+"</div>",u+='<div class="dhx_footer" style=" width:'+(r-8)+"px;"+(l?" margin-top:-1px;":"")+'" ></div></div>',h.innerHTML=u,h.style.zIndex=100,h.firstChild
-},scheduler.render_event_bar=function(e){var t=this._els.dhx_cal_data[0],s=this._colsS[e._sday],r=this._colsS[e._eday];r==s&&(r=this._colsS[e._eday+1]);var i=this.xy.bar_height,a=this._colsS.heights[e._sweek]+(this._colsS.height?this.xy.month_scale_height+2:2)+e._sorder*i,n=document.createElement("DIV"),d=e._timed?"dhx_cal_event_clear":"dhx_cal_event_line",l=scheduler.templates["event_class_"+e.layer]?scheduler.templates["event_class_"+e.layer](e.start_date,e.end_date,e):scheduler.templates.event_class(e.start_date,e.end_date,e);
-l&&(d=d+" "+l);var o='<div event_id="'+e.id+'" class="'+d+'" style="position:absolute; top:'+a+"px; left:"+s+"px; width:"+(r-s-15)+"px;"+(e._text_style||"")+'">';e._timed&&(o+=scheduler.templates["event_bar_date_"+e.layer]?scheduler.templates["event_bar_date_"+e.layer](e.start_date,e.end_date,e):scheduler.templates.event_bar_date(e.start_date,e.end_date,e)),o+=scheduler.templates["event_bar_text_"+e.layer]?scheduler.templates["event_bar_text_"+e.layer](e.start_date,e.end_date,e):scheduler.templates.event_bar_text(e.start_date,e.end_date,e)+"</div>)",o+="</div>",n.innerHTML=o,this._rendered.push(n.firstChild),t.appendChild(n.firstChild)
-},scheduler.render_event=function(e){var t=scheduler.xy.menu_width;if(scheduler.getLayer(e.layer).noMenu&&(t=0),!(e._sday<0)){var s=scheduler.locate_holder(e._sday);if(s){var r=60*e.start_date.getHours()+e.start_date.getMinutes(),i=60*e.end_date.getHours()+e.end_date.getMinutes()||60*scheduler.config.last_hour,a=Math.round((60*r*1e3-60*this.config.first_hour*60*1e3)*this.config.hour_size_px/36e5)%(24*this.config.hour_size_px)+1,n=Math.max(scheduler.xy.min_event_height,(i-r)*this.config.hour_size_px/60)+1,d=Math.floor((s.clientWidth-t)/e._count),l=e._sorder*d+1;
-e._inner||(d*=e._count-e._sorder);var o=this._render_v_bar(e.id,t+l,a,d,n,e._text_style,scheduler.templates.event_header(e.start_date,e.end_date,e),scheduler.templates.event_text(e.start_date,e.end_date,e));if(this._rendered.push(o),s.appendChild(o),l=l+parseInt(s.style.left,10)+t,a+=this._dy_shift,o.style.zIndex=this._layers_zindex[e.layer],this._edit_id==e.id){o.style.zIndex=parseInt(o.style.zIndex)+1;var h=o.style.zIndex;d=Math.max(d-4,scheduler.xy.editor_width);var o=document.createElement("DIV");
-o.setAttribute("event_id",e.id),this.set_xy(o,d,n-20,l,a+14),o.className="dhx_cal_editor",o.style.zIndex=h;var _=document.createElement("DIV");this.set_xy(_,d-6,n-26),_.style.cssText+=";margin:2px 2px 2px 2px;overflow:hidden;",_.style.zIndex=h,o.appendChild(_),this._els.dhx_cal_data[0].appendChild(o),this._rendered.push(o),_.innerHTML="<textarea class='dhx_cal_editor'>"+e.text+"</textarea>",this._quirks7&&(_.firstChild.style.height=n-12+"px"),this._editor=_.firstChild,this._editor.onkeypress=function(e){if((e||event).shiftKey)return!0;
-var t=(e||event).keyCode;t==scheduler.keys.edit_save&&scheduler.editStop(!0),t==scheduler.keys.edit_cancel&&scheduler.editStop(!1)},this._editor.onselectstart=function(e){return(e||event).cancelBubble=!0,!0},_.firstChild.focus(),this._els.dhx_cal_data[0].scrollLeft=0,_.firstChild.select()}if(this._select_id==e.id){o.style.zIndex=parseInt(o.style.zIndex)+1;for(var c=this.config["icons_"+(this._edit_id==e.id?"edit":"select")],u="",v=0;v<c.length;v++)u+="<div class='dhx_menu_icon "+c[v]+"' title='"+this.locale.labels[c[v]]+"'></div>";
-var g=this._render_v_bar(e.id,l-t+1,a,t,20*c.length+26,"","<div class='dhx_menu_head'></div>",u,!0);g.style.left=l-t+1,g.style.zIndex=o.style.zIndex,this._els.dhx_cal_data[0].appendChild(g),this._rendered.push(g)}}}},scheduler.filter_agenda=function(e,t){var s=scheduler.getLayer(t.layer);return s&&s.visible}});
+
+var a=e.getState(t);return"inserted"==a||this._new_event?(e.setUpdated(t,!1),!0):"deleted"==a?!1:"true_deleted"==a?!0:(e.setUpdated(t,!0,"deleted"),!1)}return!0}),this.attachEvent("onEventChanged",function(t){!this._loading&&this.validId(t)&&this.getEvent(t)&&this.getEvent(t).layer==e.layer&&e.setUpdated(t,!0,"updated")}),e._getRowData=function(e,t){var a=this.obj.getEvent(e),i={};for(var n in a)0!==n.indexOf("_")&&(a[n]&&a[n].getUTCFullYear?i[n]=this.obj.templates.xml_format(a[n]):i[n]=a[n]);return i;
+
+},e._clearUpdateFlag=function(){},e.attachEvent("insertCallback",scheduler._update_callback),e.attachEvent("updateCallback",scheduler._update_callback),e.attachEvent("deleteCallback",function(e,t){this.obj.setUserData(t,this.action_param,"true_deleted"),this.obj.deleteEvent(t)})},function(){var e=function(t){if(null===t||"object"!=typeof t)return t;var a=new t.constructor;for(var i in t)a[i]=e(t[i]);return a};scheduler._dataprocessors=[],scheduler._layers_zindex={};for(var t=0;t<scheduler.layers.length;t++){
+if(scheduler.config["lightbox_"+scheduler.layers[t].name]={},scheduler.config["lightbox_"+scheduler.layers[t].name].sections=e(scheduler.config.lightbox.sections),scheduler._layers_zindex[scheduler.layers[t].name]=scheduler.config.inital_layer_zindex||5+3*t,scheduler.layers[t].url){var a=new dataProcessor(scheduler.layers[t].url);a.layer=scheduler.layers[t].name,scheduler._dataprocessors.push(a),scheduler._dataprocessors[t].init(scheduler)}scheduler.layers[t].isDefault&&(scheduler.defaultLayer=scheduler.layers[t].name);
+
+}}(),scheduler.showLayer=function(e){this.toggleLayer(e,!0)},scheduler.hideLayer=function(e){this.toggleLayer(e,!1)},scheduler.toggleLayer=function(e,t){var a=this.getLayer(e);"undefined"!=typeof t?a.visible=!!t:a.visible=!a.visible,this.setCurrentView(this._date,this._mode)},scheduler.getLayer=function(e){var t,a;"string"==typeof e&&(a=e),"object"==typeof e&&(a=e.layer);for(var i=0;i<scheduler.layers.length;i++)scheduler.layers[i].name==a&&(t=scheduler.layers[i]);return t},scheduler.attachEvent("onBeforeLightbox",function(e){
+var t=this.getEvent(e);return this.config.lightbox.sections=this.config["lightbox_"+t.layer].sections,scheduler.resetLightbox(),!0}),scheduler.attachEvent("onClick",function(e,t){var a=scheduler.getEvent(e);return!scheduler.getLayer(a.layer).noMenu}),scheduler.attachEvent("onEventCollision",function(e,t){var a=this.getLayer(e);if(!a.checkCollision)return!1;for(var i=0,n=0;n<t.length;n++)t[n].layer==a.name&&t[n].id!=e.id&&i++;return i>=scheduler.config.collision_limit}),scheduler.addEvent=function(e,t,a,i,n){
+var r=e;1!=arguments.length&&(r=n||{},r.start_date=e,r.end_date=t,r.text=a,r.id=i,r.layer=this.defaultLayer),r.id=r.id||scheduler.uid(),r.text=r.text||"","string"==typeof r.start_date&&(r.start_date=this.templates.api_date(r.start_date)),"string"==typeof r.end_date&&(r.end_date=this.templates.api_date(r.end_date)),r._timed=this.isOneDayEvent(r);var l=!this._events[r.id];this._events[r.id]=r,this.event_updated(r),this._loading||this.callEvent(l?"onEventAdded":"onEventChanged",[r.id,r])},this._evs_layer={};
+
+for(var e=0;e<this.layers.length;e++)this._evs_layer[this.layers[e].name]=[];scheduler.addEventNow=function(e,t,a){var i={};"object"==typeof e&&(i=e,e=null);var n=6e4*(this.config.event_duration||this.config.time_step);e||(e=Math.round(scheduler._currentDate().valueOf()/n)*n);var r=new Date(e);if(!t){var l=this.config.first_hour;l>r.getHours()&&(r.setHours(l),e=r.valueOf()),t=e+n}i.start_date=i.start_date||r,i.end_date=i.end_date||new Date(t),i.text=i.text||this.locale.labels.new_event,i.id=this._drag_id=this.uid(),
+i.layer=this.defaultLayer,this._drag_mode="new-size",this._loading=!0,this.addEvent(i),this.callEvent("onEventCreated",[this._drag_id,a]),this._loading=!1,this._drag_event={},this._on_mouse_up(a)},scheduler._t_render_view_data=function(e){if(this.config.multi_day&&!this._table_view){for(var t=[],a=[],i=0;i<e.length;i++)e[i]._timed?t.push(e[i]):a.push(e[i]);this._table_view=!0,this.render_data(a),this._table_view=!1,this.render_data(t)}else this.render_data(e)},scheduler.render_view_data=function(){
+if(this._not_render)return void(this._render_wait=!0);this._render_wait=!1,this.clear_view(),this._evs_layer={};for(var e=0;e<this.layers.length;e++)this._evs_layer[this.layers[e].name]=[];for(var t=this.get_visible_events(),e=0;e<t.length;e++)this._evs_layer[t[e].layer]&&this._evs_layer[t[e].layer].push(t[e]);if("month"==this._mode){for(var a=[],e=0;e<this.layers.length;e++)this.layers[e].visible&&(a=a.concat(this._evs_layer[this.layers[e].name]));this._t_render_view_data(a)}else for(var e=0;e<this.layers.length;e++)if(this.layers[e].visible){
+var i=this._evs_layer[this.layers[e].name];this._t_render_view_data(i)}},scheduler._render_v_bar=function(e,t,a,i,n,r,l,d,s){var o=e.id;-1==l.indexOf("<div class=")&&(l=scheduler.templates["event_header_"+e.layer]?scheduler.templates["event_header_"+e.layer](e.start_date,e.end_date,e):l),-1==d.indexOf("<div class=")&&(d=scheduler.templates["event_text_"+e.layer]?scheduler.templates["event_text_"+e.layer](e.start_date,e.end_date,e):d);var _=document.createElement("DIV"),c="dhx_cal_event",u=scheduler.templates["event_class_"+e.layer]?scheduler.templates["event_class_"+e.layer](e.start_date,e.end_date,e):scheduler.templates.event_class(e.start_date,e.end_date,e);
+
+u&&(c=c+" "+u);var h='<div event_id="'+o+'" class="'+c+'" style="position:absolute; top:'+a+"px; left:"+t+"px; width:"+(i-4)+"px; height:"+n+"px;"+(r||"")+'">';return h+='<div class="dhx_header" style=" width:'+(i-6)+'px;" >&nbsp;</div>',h+='<div class="dhx_title">'+l+"</div>",h+='<div class="dhx_body" style=" width:'+(i-(this._quirks?4:14))+"px; height:"+(n-(this._quirks?20:30))+'px;">'+d+"</div>",h+='<div class="dhx_footer" style=" width:'+(i-8)+"px;"+(s?" margin-top:-1px;":"")+'" ></div></div>',
+_.innerHTML=h,_.style.zIndex=100,_.firstChild},scheduler.render_event_bar=function(e){var t=this._els.dhx_cal_data[0],a=this._colsS[e._sday],i=this._colsS[e._eday];i==a&&(i=this._colsS[e._eday+1]);var n=this.xy.bar_height,r=this._colsS.heights[e._sweek]+(this._colsS.height?this.xy.month_scale_height+2:2)+e._sorder*n,l=document.createElement("DIV"),d=e._timed?"dhx_cal_event_clear":"dhx_cal_event_line",s=scheduler.templates["event_class_"+e.layer]?scheduler.templates["event_class_"+e.layer](e.start_date,e.end_date,e):scheduler.templates.event_class(e.start_date,e.end_date,e);
+
+s&&(d=d+" "+s);var o='<div event_id="'+e.id+'" class="'+d+'" style="position:absolute; top:'+r+"px; left:"+a+"px; width:"+(i-a-15)+"px;"+(e._text_style||"")+'">';e._timed&&(o+=scheduler.templates["event_bar_date_"+e.layer]?scheduler.templates["event_bar_date_"+e.layer](e.start_date,e.end_date,e):scheduler.templates.event_bar_date(e.start_date,e.end_date,e)),o+=scheduler.templates["event_bar_text_"+e.layer]?scheduler.templates["event_bar_text_"+e.layer](e.start_date,e.end_date,e):scheduler.templates.event_bar_text(e.start_date,e.end_date,e)+"</div>)",
+o+="</div>",l.innerHTML=o,this._rendered.push(l.firstChild),t.appendChild(l.firstChild)},scheduler.render_event=function(e){var t=scheduler.xy.menu_width;if(scheduler.getLayer(e.layer).noMenu&&(t=0),!(e._sday<0)){var a=scheduler.locate_holder(e._sday);if(a){var i=60*e.start_date.getHours()+e.start_date.getMinutes(),n=60*e.end_date.getHours()+e.end_date.getMinutes()||60*scheduler.config.last_hour,r=Math.round((60*i*1e3-60*this.config.first_hour*60*1e3)*this.config.hour_size_px/36e5)%(24*this.config.hour_size_px)+1,l=Math.max(scheduler.xy.min_event_height,(n-i)*this.config.hour_size_px/60)+1,d=Math.floor((a.clientWidth-t)/e._count),s=e._sorder*d+1;
+
+e._inner||(d*=e._count-e._sorder);var o=this._render_v_bar(e.id,t+s,r,d,l,e._text_style,scheduler.templates.event_header(e.start_date,e.end_date,e),scheduler.templates.event_text(e.start_date,e.end_date,e));if(this._rendered.push(o),a.appendChild(o),s=s+parseInt(a.style.left,10)+t,r+=this._dy_shift,o.style.zIndex=this._layers_zindex[e.layer],this._edit_id==e.id){o.style.zIndex=parseInt(o.style.zIndex)+1;var _=o.style.zIndex;d=Math.max(d-4,scheduler.xy.editor_width);var o=document.createElement("DIV");
+
+o.setAttribute("event_id",e.id),this.set_xy(o,d,l-20,s,r+14),o.className="dhx_cal_editor",o.style.zIndex=_;var c=document.createElement("DIV");this.set_xy(c,d-6,l-26),c.style.cssText+=";margin:2px 2px 2px 2px;overflow:hidden;",c.style.zIndex=_,o.appendChild(c),this._els.dhx_cal_data[0].appendChild(o),this._rendered.push(o),c.innerHTML="<textarea class='dhx_cal_editor'>"+e.text+"</textarea>",this._quirks7&&(c.firstChild.style.height=l-12+"px"),this._editor=c.firstChild,this._editor.onkeypress=function(e){
+if((e||event).shiftKey)return!0;var t=(e||event).keyCode;t==scheduler.keys.edit_save&&scheduler.editStop(!0),t==scheduler.keys.edit_cancel&&scheduler.editStop(!1)},this._editor.onselectstart=function(e){return(e||event).cancelBubble=!0,!0},c.firstChild.focus(),this._els.dhx_cal_data[0].scrollLeft=0,c.firstChild.select()}if(this._select_id==e.id){o.style.zIndex=parseInt(o.style.zIndex)+1;for(var u=this.config["icons_"+(this._edit_id==e.id?"edit":"select")],h="",p=0;p<u.length;p++)h+="<div class='dhx_menu_icon "+u[p]+"' title='"+this.locale.labels[u[p]]+"'></div>";
+
+var v=this._render_v_bar(e.id,s-t+1,r,t,20*u.length+26,"","<div class='dhx_menu_head'></div>",h,!0);v.style.left=s-t+1,v.style.zIndex=o.style.zIndex,this._els.dhx_cal_data[0].appendChild(v),this._rendered.push(v)}}}},scheduler.filter_agenda=function(e,t){var a=scheduler.getLayer(t.layer);return a&&a.visible}});
//# sourceMappingURL=../sources/ext/dhtmlxscheduler_layer.js.map \ No newline at end of file
diff --git a/codebase/ext/dhtmlxscheduler_limit.js b/codebase/ext/dhtmlxscheduler_limit.js
index a249926..772e1ba 100644
--- a/codebase/ext/dhtmlxscheduler_limit.js
+++ b/codebase/ext/dhtmlxscheduler_limit.js
@@ -1,36 +1,50 @@
/*
-dhtmlxScheduler v.4.3.0 Stardard
+@license
+dhtmlxScheduler v.4.3.1
This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited.
(c) Dinamenta, UAB.
*/
-scheduler.config.limit_start=null,scheduler.config.limit_end=null,scheduler.config.limit_view=!1,scheduler.config.check_limits=!0,scheduler.config.mark_now=!0,scheduler.config.display_marked_timespans=!0,scheduler._temp_limit_scope=function(){function e(e,t,s,r,a){var i=scheduler,n=[],d={_props:"map_to",matrix:"y_property"};for(var l in d){var o=d[l];if(i[l])for(var _ in i[l]){var h=i[l][_],c=h[o];e[c]&&(n=i._add_timespan_zones(n,scheduler._get_blocked_zones(t[_],e[c],s,r,a)))}}return n=i._add_timespan_zones(n,scheduler._get_blocked_zones(t,"global",s,r,a))
-}var t=null,s="dhx_time_block",r="default",a=function(e,t,s){return t instanceof Date&&s instanceof Date?(e.start_date=t,e.end_date=s):(e.days=t,e.zones=s),e},i=function(e,t,r){var i="object"==typeof e?e:{days:e};return i.type=s,i.css="",t&&(r&&(i.sections=r),i=a(i,e,t)),i};scheduler.blockTime=function(e,t,s){var r=i(e,t,s);return scheduler.addMarkedTimespan(r)},scheduler.unblockTime=function(e,t,s){t=t||"fullday";var r=i(e,t,s);return scheduler.deleteMarkedTimespan(r)},scheduler.attachEvent("onBeforeViewChange",function(e,t,s,r){function a(e,t){var s=scheduler.config.limit_start,r=scheduler.config.limit_end,a=scheduler.date.add(e,1,t);
-return e.valueOf()>r.valueOf()||a<=s.valueOf()}return scheduler.config.limit_view&&(r=r||t,s=s||e,a(r,s)&&t.valueOf()!=r.valueOf())?(setTimeout(function(){var e=a(t,s)?scheduler.config.limit_start:t;scheduler.setCurrentView(a(e,s)?null:e,s)},1),!1):!0}),scheduler.checkInMarkedTimespan=function(t,s,a){s=s||r;for(var i=!0,n=new Date(t.start_date.valueOf()),d=scheduler.date.add(n,1,"day"),l=scheduler._marked_timespans;n<t.end_date;n=scheduler.date.date_part(d),d=scheduler.date.add(n,1,"day")){var o=+scheduler.date.date_part(new Date(n)),_=n.getDay(),h=e(t,l,_,o,s);
-if(h)for(var c=0;c<h.length;c+=2){var u=scheduler._get_zone_minutes(n),v=t.end_date>d||t.end_date.getDate()!=n.getDate()?1440:scheduler._get_zone_minutes(t.end_date),f=h[c],g=h[c+1];if(v>f&&g>u&&(i="function"==typeof a?a(t,u,v,f,g):!1,!i))break}}return!i};var n=scheduler.checkLimitViolation=function(e){if(!e)return!0;if(!scheduler.config.check_limits)return!0;var t=scheduler,r=t.config,a=[];if(e.rec_type)for(var i=scheduler.getRecDates(e),n=0;n<i.length;n++){var d=scheduler._copy_event(e);scheduler._lame_copy(d,i[n]),a.push(d)
-}else a=[e];for(var l=!0,o=0;o<a.length;o++){var _=!0,d=a[o];d._timed=scheduler.isOneDayEvent(d),_=r.limit_start&&r.limit_end?d.start_date.valueOf()>=r.limit_start.valueOf()&&d.end_date.valueOf()<=r.limit_end.valueOf():!0,_&&(_=!scheduler.checkInMarkedTimespan(d,s,function(e,s,r,a,i){var n=!0;return i>=s&&s>=a&&((1440==i||i>r)&&(n=!1),e._timed&&t._drag_id&&"new-size"==t._drag_mode?(e.start_date.setHours(0),e.start_date.setMinutes(i)):n=!1),(r>=a&&i>r||a>s&&r>i)&&(e._timed&&t._drag_id&&"new-size"==t._drag_mode?(e.end_date.setHours(0),e.end_date.setMinutes(a)):n=!1),n
-})),_||(_=t.checkEvent("onLimitViolation")?t.callEvent("onLimitViolation",[d.id,d]):_),l=l&&_}return l||(t._drag_id=null,t._drag_mode=null),l};scheduler._get_blocked_zones=function(e,t,s,r,a){var i=[];if(e&&e[t])for(var n=e[t],d=this._get_relevant_blocked_zones(s,r,n,a),l=0;l<d.length;l++)i=this._add_timespan_zones(i,d[l].zones);return i},scheduler._get_relevant_blocked_zones=function(e,t,s,r){var a=s[t]&&s[t][r]?s[t][r]:s[e]&&s[e][r]?s[e][r]:[];return a},scheduler.attachEvent("onMouseDown",function(e){return!(e==s)
-}),scheduler.attachEvent("onBeforeDrag",function(e){return e?n(scheduler.getEvent(e)):!0}),scheduler.attachEvent("onClick",function(e){return n(scheduler.getEvent(e))}),scheduler.attachEvent("onBeforeLightbox",function(e){var s=scheduler.getEvent(e);return t=[s.start_date,s.end_date],n(s)}),scheduler.attachEvent("onEventSave",function(e,t){if(!t.start_date||!t.end_date){var s=scheduler.getEvent(e);t.start_date=new Date(s.start_date),t.end_date=new Date(s.end_date)}if(t.rec_type){var r=scheduler._lame_clone(t);
-return scheduler._roll_back_dates(r),n(r)}return n(t)}),scheduler.attachEvent("onEventAdded",function(e){if(!e)return!0;var t=scheduler.getEvent(e);return!n(t)&&scheduler.config.limit_start&&scheduler.config.limit_end&&(t.start_date<scheduler.config.limit_start&&(t.start_date=new Date(scheduler.config.limit_start)),t.start_date.valueOf()>=scheduler.config.limit_end.valueOf()&&(t.start_date=this.date.add(scheduler.config.limit_end,-1,"day")),t.end_date<scheduler.config.limit_start&&(t.end_date=new Date(scheduler.config.limit_start)),t.end_date.valueOf()>=scheduler.config.limit_end.valueOf()&&(t.end_date=this.date.add(scheduler.config.limit_end,-1,"day")),t.start_date.valueOf()>=t.end_date.valueOf()&&(t.end_date=this.date.add(t.start_date,this.config.event_duration||this.config.time_step,"minute")),t._timed=this.isOneDayEvent(t)),!0
-}),scheduler.attachEvent("onEventChanged",function(e){if(!e)return!0;var s=scheduler.getEvent(e);if(!n(s)){if(!t)return!1;s.start_date=t[0],s.end_date=t[1],s._timed=this.isOneDayEvent(s)}return!0}),scheduler.attachEvent("onBeforeEventChanged",function(e){return n(e)}),scheduler.attachEvent("onBeforeEventCreated",function(e){var t=scheduler.getActionData(e).date,s={_timed:!0,start_date:t,end_date:scheduler.date.add(t,scheduler.config.time_step,"minute")};return n(s)}),scheduler.attachEvent("onViewChange",function(){scheduler._mark_now()
-}),scheduler.attachEvent("onSchedulerResize",function(){return window.setTimeout(function(){scheduler._mark_now()},1),!0}),scheduler.attachEvent("onTemplatesReady",function(){scheduler._mark_now_timer=window.setInterval(function(){scheduler._is_initialized()&&scheduler._mark_now()},6e4)}),scheduler._mark_now=function(e){var t="dhx_now_time";this._els[t]||(this._els[t]=[]);var s=scheduler._currentDate(),r=this.config;if(scheduler._remove_mark_now(),!e&&r.mark_now&&s<this._max_date&&s>this._min_date&&s.getHours()>=r.first_hour&&s.getHours()<r.last_hour){var a=this.locate_holder_day(s);
-this._els[t]=scheduler._append_mark_now(a,s)}},scheduler._append_mark_now=function(e,t){var s="dhx_now_time",r=scheduler._get_zone_minutes(t),a={zones:[r,r+1],css:s,type:s};if(!this._table_view){if(this._props&&this._props[this._mode]){for(var i=this._props[this._mode],n=i.options.length,d=e*n,l=(e+1)*n,o=(this._els.dhx_cal_data[0].childNodes,[]),_=d;l>_;_++){var h=_;a.days=h;var c=scheduler._render_marked_timespan(a,null,h)[0];o.push(c)}return o}return a.days=e,scheduler._render_marked_timespan(a,null,e)
-}return"month"==this._mode?(a.days=+scheduler.date.date_part(t),scheduler._render_marked_timespan(a,null,null)):void 0},scheduler._remove_mark_now=function(){for(var e="dhx_now_time",t=this._els[e],s=0;s<t.length;s++){var r=t[s],a=r.parentNode;a&&a.removeChild(r)}this._els[e]=[]},scheduler._marked_timespans={global:{}},scheduler._get_zone_minutes=function(e){return 60*e.getHours()+e.getMinutes()},scheduler._prepare_timespan_options=function(e){var t=[],s=[];if("fullweek"==e.days&&(e.days=[0,1,2,3,4,5,6]),e.days instanceof Array){for(var a=e.days.slice(),i=0;i<a.length;i++){var n=scheduler._lame_clone(e);
-n.days=a[i],t.push.apply(t,scheduler._prepare_timespan_options(n))}return t}if(!e||!(e.start_date&&e.end_date&&e.end_date>e.start_date||void 0!==e.days&&e.zones))return t;var d=0,l=1440;"fullday"==e.zones&&(e.zones=[d,l]),e.zones&&e.invert_zones&&(e.zones=scheduler.invertZones(e.zones)),e.id=scheduler.uid(),e.css=e.css||"",e.type=e.type||r;var o=e.sections;if(o){for(var _ in o)if(o.hasOwnProperty(_)){var h=o[_];h instanceof Array||(h=[h]);for(var i=0;i<h.length;i++){var c=scheduler._lame_copy({},e);
-c.sections={},c.sections[_]=h[i],s.push(c)}}}else s.push(e);for(var u=0;u<s.length;u++){var v=s[u],f=v.start_date,g=v.end_date;if(f&&g)for(var m=scheduler.date.date_part(new Date(f)),p=scheduler.date.add(m,1,"day");g>m;){var c=scheduler._lame_copy({},v);delete c.start_date,delete c.end_date,c.days=m.valueOf();var x=f>m?scheduler._get_zone_minutes(f):d,y=g>p||g.getDate()!=m.getDate()?l:scheduler._get_zone_minutes(g);c.zones=[x,y],t.push(c),m=p,p=scheduler.date.add(p,1,"day")}else v.days instanceof Date&&(v.days=scheduler.date.date_part(v.days).valueOf()),v.zones=e.zones.slice(),t.push(v)
-}return t},scheduler._get_dates_by_index=function(e,t,s){var r=[];t=scheduler.date.date_part(new Date(t||scheduler._min_date)),s=new Date(s||scheduler._max_date);for(var a=t.getDay(),i=e-a>=0?e-a:7-t.getDay()+e,n=scheduler.date.add(t,i,"day");s>n;n=scheduler.date.add(n,1,"week"))r.push(n);return r},scheduler._get_css_classes_by_config=function(e){var t=[];return e.type==s&&(t.push(s),e.css&&t.push(s+"_reset")),t.push("dhx_marked_timespan",e.css),t.join(" ")},scheduler._get_block_by_config=function(e){var t=document.createElement("DIV");
-return e.html&&("string"==typeof e.html?t.innerHTML=e.html:t.appendChild(e.html)),t},scheduler._render_marked_timespan=function(e,t,s){var r=[],a=scheduler.config,i=this._min_date,n=this._max_date,d=!1;if(!a.display_marked_timespans)return r;if(!s&&0!==s){if(e.days<7)s=e.days;else{var l=new Date(e.days);if(d=+l,!(+n>+l&&+l>=+i))return r;s=l.getDay()}var o=i.getDay();o>s?s=7-(o-s):s-=o}var _=e.zones,h=scheduler._get_css_classes_by_config(e);if(scheduler._table_view&&"month"==scheduler._mode){var c=[],u=[];
-if(t)c.push(t),u.push(s);else{u=d?[d]:scheduler._get_dates_by_index(s);for(var v=0;v<u.length;v++)c.push(this._scales[u[v]])}for(var v=0;v<c.length;v++){t=c[v],s=u[v];var f=Math.floor((this._correct_shift(s,1)-i.valueOf())/(864e5*this._cols.length)),g=this.locate_holder_day(s,!1)%this._cols.length;if(!this._ignores[g]){var m=scheduler._get_block_by_config(e),p=Math.max(t.offsetHeight-1,0),x=Math.max(t.offsetWidth-1,0),y=this._colsS[g],b=this._colsS.heights[f]+(this._colsS.height?this.xy.month_scale_height+2:2)-1;
-m.className=h,m.style.top=b+"px",m.style.lineHeight=m.style.height=p+"px";for(var w=0;w<_.length;w+=2){var E=_[v],D=_[v+1];if(E>=D)return[];var k=m.cloneNode(!0);k.style.left=y+Math.round(E/1440*x)+"px",k.style.width=Math.round((D-E)/1440*x)+"px",t.appendChild(k),r.push(k)}}}}else{var M=s;if(this._ignores[this.locate_holder_day(s,!1)])return r;if(this._props&&this._props[this._mode]&&e.sections&&e.sections[this._mode]){var N=this._props[this._mode];M=N.order[e.sections[this._mode]];var O=N.order[e.sections[this._mode]];
-if(N.days>1){var L=N.options.length;M=M*L+O}else M=O,N.size&&M>N.position+N.size&&(M=0)}t=t?t:scheduler.locate_holder(M);for(var v=0;v<_.length;v+=2){var E=Math.max(_[v],60*a.first_hour),D=Math.min(_[v+1],60*a.last_hour);if(E>=D){if(v+2<_.length)continue;return[]}var k=scheduler._get_block_by_config(e);k.className=h;var C=24*this.config.hour_size_px+1,T=36e5;k.style.top=Math.round((60*E*1e3-this.config.first_hour*T)*this.config.hour_size_px/T)%C+"px",k.style.lineHeight=k.style.height=Math.max(Math.round(60*(D-E)*1e3*this.config.hour_size_px/T)%C,1)+"px",t.appendChild(k),r.push(k)
-}}return r},scheduler.markTimespan=function(e){var t=scheduler._prepare_timespan_options(e);if(t.length){for(var s=[],r=0;r<t.length;r++){var a=t[r],i=scheduler._render_marked_timespan(a,null,null);i.length&&s.push.apply(s,i)}return s}},scheduler.unmarkTimespan=function(e){if(e)for(var t=0;t<e.length;t++){var s=e[t];s.parentNode&&s.parentNode.removeChild(s)}},scheduler._marked_timespans_ids={},scheduler.addMarkedTimespan=function(e){var t=scheduler._prepare_timespan_options(e),s="global";if(t.length){var r=t[0].id,a=scheduler._marked_timespans,i=scheduler._marked_timespans_ids;
-i[r]||(i[r]=[]);for(var n=0;n<t.length;n++){var d=t[n],l=d.days,o=(d.zones,d.css,d.sections),_=d.type;if(d.id=r,o){for(var h in o)if(o.hasOwnProperty(h)){a[h]||(a[h]={});var c=o[h],u=a[h];u[c]||(u[c]={}),u[c][l]||(u[c][l]={}),u[c][l][_]||(u[c][l][_]=[],scheduler._marked_timespans_types||(scheduler._marked_timespans_types={}),scheduler._marked_timespans_types[_]||(scheduler._marked_timespans_types[_]=!0));var v=u[c][l][_];d._array=v,v.push(d),i[r].push(d)}}else{a[s][l]||(a[s][l]={}),a[s][l][_]||(a[s][l][_]=[]),scheduler._marked_timespans_types||(scheduler._marked_timespans_types={}),scheduler._marked_timespans_types[_]||(scheduler._marked_timespans_types[_]=!0);
-var v=a[s][l][_];d._array=v,v.push(d),i[r].push(d)}}return r}},scheduler._add_timespan_zones=function(e,t){var s=e.slice();if(t=t.slice(),!s.length)return t;for(var r=0;r<s.length;r+=2)for(var a=s[r],i=s[r+1],n=r+2==s.length,d=0;d<t.length;d+=2){var l=t[d],o=t[d+1];if(o>i&&i>=l||a>l&&o>=a)s[r]=Math.min(a,l),s[r+1]=Math.max(i,o),r-=2;else{if(!n)continue;var _=a>l?0:2;s.splice(r+_,0,l,o)}t.splice(d--,2);break}return s},scheduler._subtract_timespan_zones=function(e,t){for(var s=e.slice(),r=0;r<s.length;r+=2)for(var a=s[r],i=s[r+1],n=0;n<t.length;n+=2){var d=t[n],l=t[n+1];
-if(l>a&&i>d){var o=!1;a>=d&&l>=i&&s.splice(r,2),d>a&&(s.splice(r,2,a,d),o=!0),i>l&&s.splice(o?r+2:r,o?0:2,l,i),r-=2;break}}return s},scheduler.invertZones=function(e){return scheduler._subtract_timespan_zones([0,1440],e.slice())},scheduler._delete_marked_timespan_by_id=function(e){var t=scheduler._marked_timespans_ids[e];if(t)for(var s=0;s<t.length;s++)for(var r=t[s],a=r._array,i=0;i<a.length;i++)if(a[i]==r){a.splice(i,1);break}},scheduler._delete_marked_timespan_by_config=function(e){var t=scheduler._marked_timespans,s=e.sections,a=e.days,i=e.type||r,n=[];
-if(s){for(var d in s)if(s.hasOwnProperty(d)&&t[d]){var l=s[d];t[d][l]&&t[d][l][a]&&t[d][l][a][i]&&(n=t[d][l][a][i])}}else t.global[a]&&t.global[a][i]&&(n=t.global[a][i]);for(var o=0;o<n.length;o++){var _=n[o],h=scheduler._subtract_timespan_zones(_.zones,e.zones);if(h.length)_.zones=h;else{n.splice(o,1),o--;for(var c=scheduler._marked_timespans_ids[_.id],u=0;u<c.length;u++)if(c[u]==_){c.splice(u,1);break}}}for(var o in scheduler._marked_timespans.timeline)for(var v in scheduler._marked_timespans.timeline[o])for(var u in scheduler._marked_timespans.timeline[o][v])u===i&&delete scheduler._marked_timespans.timeline[o][v][u]
-},scheduler.deleteMarkedTimespan=function(e){if(arguments.length||(scheduler._marked_timespans={global:{}},scheduler._marked_timespans_ids={},scheduler._marked_timespans_types={}),"object"!=typeof e)scheduler._delete_marked_timespan_by_id(e);else{e.start_date&&e.end_date||(e.days||(e.days="fullweek"),e.zones||(e.zones="fullday"));var t=[];if(e.type)t.push(e.type);else for(var s in scheduler._marked_timespans_types)t.push(s);for(var r=scheduler._prepare_timespan_options(e),a=0;a<r.length;a++)for(var i=r[a],n=0;n<t.length;n++){var d=scheduler._lame_clone(i);
-d.type=t[n],scheduler._delete_marked_timespan_by_config(d)}}},scheduler._get_types_to_render=function(e,t){var s=e?e:{};for(var r in t||{})t.hasOwnProperty(r)&&(s[r]=t[r]);return s},scheduler._get_configs_to_render=function(e){var t=[];for(var s in e)e.hasOwnProperty(s)&&t.push.apply(t,e[s]);return t},scheduler.attachEvent("onScaleAdd",function(e,t){if(!scheduler._table_view||"month"==scheduler._mode){var s=t.getDay(),r=t.valueOf(),a=this._mode,i=scheduler._marked_timespans,n=[];if(this._props&&this._props[a]){var d=this._props[a],l=d.options,o=scheduler._get_unit_index(d,t),_=l[o];
-if(d.days>1){var h=864e5,c=Math.floor((t-scheduler._min_date)/h);t=scheduler.date.add(scheduler._min_date,Math.floor(c/l.length),"day"),t=scheduler.date.date_part(t)}else t=scheduler.date.date_part(new Date(this._date));if(s=t.getDay(),r=t.valueOf(),i[a]&&i[a][_.key]){var u=i[a][_.key],v=scheduler._get_types_to_render(u[s],u[r]);n.push.apply(n,scheduler._get_configs_to_render(v))}}var f=i.global,g=f[r]||f[s];n.push.apply(n,scheduler._get_configs_to_render(g));for(var m=0;m<n.length;m++)scheduler._render_marked_timespan(n[m],e,t)
-}}),scheduler.dblclick_dhx_marked_timespan=function(e,t){scheduler.config.dblclick_create||scheduler.callEvent("onScaleDblClick",[scheduler.getActionData(e).date,t,e]),scheduler.addEventNow(scheduler.getActionData(e).date,null,e)}},scheduler._temp_limit_scope();
+scheduler.config.limit_start=null,scheduler.config.limit_end=null,scheduler.config.limit_view=!1,scheduler.config.check_limits=!0,scheduler.config.mark_now=!0,scheduler.config.display_marked_timespans=!0,scheduler._temp_limit_scope=function(){function e(e,t,a,r,i){var n=scheduler,l=[],d={_props:"map_to",matrix:"y_property"};for(var s in d){var o=d[s];if(n[s])for(var _ in n[s]){var c=n[s][_],u=c[o];e[u]&&(l=n._add_timespan_zones(l,scheduler._get_blocked_zones(t[_],e[u],a,r,i)))}}return l=n._add_timespan_zones(l,scheduler._get_blocked_zones(t,"global",a,r,i));
+
+}var t=null,a="dhx_time_block",r="default",i=function(e,t,a){return t instanceof Date&&a instanceof Date?(e.start_date=t,e.end_date=a):(e.days=t,e.zones=a),e},n=function(e,t,r){var n="object"==typeof e?e:{days:e};return n.type=a,n.css="",t&&(r&&(n.sections=r),n=i(n,e,t)),n};scheduler.blockTime=function(e,t,a){var r=n(e,t,a);return scheduler.addMarkedTimespan(r)},scheduler.unblockTime=function(e,t,a){t=t||"fullday";var r=n(e,t,a);return scheduler.deleteMarkedTimespan(r)},scheduler.attachEvent("onBeforeViewChange",function(e,t,a,r){
+function i(e,t){var a=scheduler.config.limit_start,r=scheduler.config.limit_end,i=scheduler.date.add(e,1,t);return e.valueOf()>r.valueOf()||i<=a.valueOf()}return scheduler.config.limit_view&&(r=r||t,a=a||e,i(r,a)&&t.valueOf()!=r.valueOf())?(setTimeout(function(){var e=i(t,a)?scheduler.config.limit_start:t;scheduler.setCurrentView(i(e,a)?null:e,a)},1),!1):!0}),scheduler.checkInMarkedTimespan=function(t,a,i){a=a||r;for(var n=!0,l=new Date(t.start_date.valueOf()),d=scheduler.date.add(l,1,"day"),s=scheduler._marked_timespans;l<t.end_date;l=scheduler.date.date_part(d),
+d=scheduler.date.add(l,1,"day")){var o=+scheduler.date.date_part(new Date(l)),_=l.getDay(),c=e(t,s,_,o,a);if(c)for(var u=0;u<c.length;u+=2){var h=scheduler._get_zone_minutes(l),p=t.end_date>d||t.end_date.getDate()!=l.getDate()?1440:scheduler._get_zone_minutes(t.end_date),v=c[u],m=c[u+1];if(p>v&&m>h&&(n="function"==typeof i?i(t,h,p,v,m):!1,!n))break}}return!n};var l=scheduler.checkLimitViolation=function(e){if(!e)return!0;if(!scheduler.config.check_limits)return!0;var t=scheduler,r=t.config,i=[];if(e.rec_type)for(var n=scheduler.getRecDates(e),l=0;l<n.length;l++){
+var d=scheduler._copy_event(e);scheduler._lame_copy(d,n[l]),i.push(d)}else i=[e];for(var s=!0,o=0;o<i.length;o++){var _=!0,d=i[o];d._timed=scheduler.isOneDayEvent(d),_=r.limit_start&&r.limit_end?d.start_date.valueOf()>=r.limit_start.valueOf()&&d.end_date.valueOf()<=r.limit_end.valueOf():!0,_&&(_=!scheduler.checkInMarkedTimespan(d,a,function(e,a,r,i,n){var l=!0;return n>=a&&a>=i&&((1440==n||n>r)&&(l=!1),e._timed&&t._drag_id&&"new-size"==t._drag_mode?(e.start_date.setHours(0),e.start_date.setMinutes(n)):l=!1),
+(r>=i&&n>r||i>a&&r>n)&&(e._timed&&t._drag_id&&"new-size"==t._drag_mode?(e.end_date.setHours(0),e.end_date.setMinutes(i)):l=!1),l})),_||(_=t.checkEvent("onLimitViolation")?t.callEvent("onLimitViolation",[d.id,d]):_),s=s&&_}return s||(t._drag_id=null,t._drag_mode=null),s};scheduler._get_blocked_zones=function(e,t,a,r,i){var n=[];if(e&&e[t])for(var l=e[t],d=this._get_relevant_blocked_zones(a,r,l,i),s=0;s<d.length;s++)n=this._add_timespan_zones(n,d[s].zones);return n},scheduler._get_relevant_blocked_zones=function(e,t,a,r){
+var i=a[t]&&a[t][r]?a[t][r]:a[e]&&a[e][r]?a[e][r]:[];return i},scheduler.attachEvent("onMouseDown",function(e){return!(e==a)}),scheduler.attachEvent("onBeforeDrag",function(e){return e?l(scheduler.getEvent(e)):!0}),scheduler.attachEvent("onClick",function(e,t){return l(scheduler.getEvent(e))}),scheduler.attachEvent("onBeforeLightbox",function(e){var a=scheduler.getEvent(e);return t=[a.start_date,a.end_date],l(a)}),scheduler.attachEvent("onEventSave",function(e,t,a){if(!t.start_date||!t.end_date){
+var r=scheduler.getEvent(e);t.start_date=new Date(r.start_date),t.end_date=new Date(r.end_date)}if(t.rec_type){var i=scheduler._lame_clone(t);return scheduler._roll_back_dates(i),l(i)}return l(t)}),scheduler.attachEvent("onEventAdded",function(e){if(!e)return!0;var t=scheduler.getEvent(e);return!l(t)&&scheduler.config.limit_start&&scheduler.config.limit_end&&(t.start_date<scheduler.config.limit_start&&(t.start_date=new Date(scheduler.config.limit_start)),t.start_date.valueOf()>=scheduler.config.limit_end.valueOf()&&(t.start_date=this.date.add(scheduler.config.limit_end,-1,"day")),
+t.end_date<scheduler.config.limit_start&&(t.end_date=new Date(scheduler.config.limit_start)),t.end_date.valueOf()>=scheduler.config.limit_end.valueOf()&&(t.end_date=this.date.add(scheduler.config.limit_end,-1,"day")),t.start_date.valueOf()>=t.end_date.valueOf()&&(t.end_date=this.date.add(t.start_date,this.config.event_duration||this.config.time_step,"minute")),t._timed=this.isOneDayEvent(t)),!0}),scheduler.attachEvent("onEventChanged",function(e){if(!e)return!0;var a=scheduler.getEvent(e);if(!l(a)){
+if(!t)return!1;a.start_date=t[0],a.end_date=t[1],a._timed=this.isOneDayEvent(a)}return!0}),scheduler.attachEvent("onBeforeEventChanged",function(e,t,a){return l(e)}),scheduler.attachEvent("onBeforeEventCreated",function(e){var t=scheduler.getActionData(e).date,a={_timed:!0,start_date:t,end_date:scheduler.date.add(t,scheduler.config.time_step,"minute")};return l(a)}),scheduler.attachEvent("onViewChange",function(){scheduler._mark_now()}),scheduler.attachEvent("onSchedulerResize",function(){return window.setTimeout(function(){
+scheduler._mark_now()},1),!0}),scheduler.attachEvent("onTemplatesReady",function(){scheduler._mark_now_timer=window.setInterval(function(){scheduler._is_initialized()&&scheduler._mark_now()},6e4)}),scheduler._mark_now=function(e){var t="dhx_now_time";this._els[t]||(this._els[t]=[]);var a=scheduler._currentDate(),r=this.config;if(scheduler._remove_mark_now(),!e&&r.mark_now&&a<this._max_date&&a>this._min_date&&a.getHours()>=r.first_hour&&a.getHours()<r.last_hour){var i=this.locate_holder_day(a);this._els[t]=scheduler._append_mark_now(i,a);
+
+}},scheduler._append_mark_now=function(e,t){var a="dhx_now_time",r=scheduler._get_zone_minutes(t),i={zones:[r,r+1],css:a,type:a};if(!this._table_view){if(this._props&&this._props[this._mode]){for(var n=this._props[this._mode],l=n.size||n.options.length,d=e*l,s=(e+1)*l,o=(this._els.dhx_cal_data[0].childNodes,[]),_=d;s>_;_++){var c=_;i.days=c;var u=scheduler._render_marked_timespan(i,null,c)[0];o.push(u)}return o}return i.days=e,scheduler._render_marked_timespan(i,null,e)}return"month"==this._mode?(i.days=+scheduler.date.date_part(t),
+scheduler._render_marked_timespan(i,null,null)):void 0},scheduler._remove_mark_now=function(){for(var e="dhx_now_time",t=this._els[e],a=0;a<t.length;a++){var r=t[a],i=r.parentNode;i&&i.removeChild(r)}this._els[e]=[]},scheduler._marked_timespans={global:{}},scheduler._get_zone_minutes=function(e){return 60*e.getHours()+e.getMinutes()},scheduler._prepare_timespan_options=function(e){var t=[],a=[];if("fullweek"==e.days&&(e.days=[0,1,2,3,4,5,6]),e.days instanceof Array){for(var i=e.days.slice(),n=0;n<i.length;n++){
+var l=scheduler._lame_clone(e);l.days=i[n],t.push.apply(t,scheduler._prepare_timespan_options(l))}return t}if(!e||!(e.start_date&&e.end_date&&e.end_date>e.start_date||void 0!==e.days&&e.zones))return t;var d=0,s=1440;"fullday"==e.zones&&(e.zones=[d,s]),e.zones&&e.invert_zones&&(e.zones=scheduler.invertZones(e.zones)),e.id=scheduler.uid(),e.css=e.css||"",e.type=e.type||r;var o=e.sections;if(o){for(var _ in o)if(o.hasOwnProperty(_)){var c=o[_];c instanceof Array||(c=[c]);for(var n=0;n<c.length;n++){
+var u=scheduler._lame_copy({},e);u.sections={},u.sections[_]=c[n],a.push(u)}}}else a.push(e);for(var h=0;h<a.length;h++){var p=a[h],v=p.start_date,m=p.end_date;if(v&&m)for(var g=scheduler.date.date_part(new Date(v)),b=scheduler.date.add(g,1,"day");m>g;){var u=scheduler._lame_copy({},p);delete u.start_date,delete u.end_date,u.days=g.valueOf();var y=v>g?scheduler._get_zone_minutes(v):d,f=m>b||m.getDate()!=g.getDate()?s:scheduler._get_zone_minutes(m);u.zones=[y,f],t.push(u),g=b,b=scheduler.date.add(b,1,"day");
+
+}else p.days instanceof Date&&(p.days=scheduler.date.date_part(p.days).valueOf()),p.zones=e.zones.slice(),t.push(p)}return t},scheduler._get_dates_by_index=function(e,t,a){var r=[];t=scheduler.date.date_part(new Date(t||scheduler._min_date)),a=new Date(a||scheduler._max_date);for(var i=t.getDay(),n=e-i>=0?e-i:7-t.getDay()+e,l=scheduler.date.add(t,n,"day");a>l;l=scheduler.date.add(l,1,"week"))r.push(l);return r},scheduler._get_css_classes_by_config=function(e){var t=[];return e.type==a&&(t.push(a),
+e.css&&t.push(a+"_reset")),t.push("dhx_marked_timespan",e.css),t.join(" ")},scheduler._get_block_by_config=function(e){var t=document.createElement("DIV");return e.html&&("string"==typeof e.html?t.innerHTML=e.html:t.appendChild(e.html)),t},scheduler._render_marked_timespan=function(e,t,a){var r=[],i=scheduler.config,n=this._min_date,l=this._max_date,d=!1;if(!i.display_marked_timespans)return r;if(!a&&0!==a){if(e.days<7)a=e.days;else{var s=new Date(e.days);if(d=+s,!(+l>+s&&+s>=+n))return r;a=s.getDay();
+
+}var o=n.getDay();o>a?a=7-(o-a):a-=o}var _=e.zones,c=scheduler._get_css_classes_by_config(e);if(scheduler._table_view&&"month"==scheduler._mode){var u=[],h=[];if(t)u.push(t),h.push(a);else{h=d?[d]:scheduler._get_dates_by_index(a);for(var p=0;p<h.length;p++)u.push(this._scales[h[p]])}for(var p=0;p<u.length;p++){t=u[p],a=h[p];var v=Math.floor((this._correct_shift(a,1)-n.valueOf())/(864e5*this._cols.length)),m=this.locate_holder_day(a,!1)%this._cols.length;if(!this._ignores[m]){var g=scheduler._get_block_by_config(e),b=Math.max(t.offsetHeight-1,0),y=Math.max(t.offsetWidth-1,0),f=this._colsS[m],x=this._colsS.heights[v]+(this._colsS.height?this.xy.month_scale_height+2:2)-1;
+
+g.className=c,g.style.top=x+"px",g.style.lineHeight=g.style.height=b+"px";for(var k=0;k<_.length;k+=2){var w=_[p],D=_[p+1];if(w>=D)return[];var E=g.cloneNode(!0);E.style.left=f+Math.round(w/1440*y)+"px",E.style.width=Math.round((D-w)/1440*y)+"px",t.appendChild(E),r.push(E)}}}}else{var M=a;if(this._ignores[this.locate_holder_day(a,!1)])return r;if(this._props&&this._props[this._mode]&&e.sections&&e.sections[this._mode]){var S=this._props[this._mode];M=S.order[e.sections[this._mode]];var O=S.order[e.sections[this._mode]];
+
+if(S.days>1){var N=S.size||S.options.length;M=M*N+O}else M=O,S.size&&M>S.position+S.size&&(M=0)}t=t?t:scheduler.locate_holder(M);for(var p=0;p<_.length;p+=2){var w=Math.max(_[p],60*i.first_hour),D=Math.min(_[p+1],60*i.last_hour);if(w>=D){if(p+2<_.length)continue;return[]}var E=scheduler._get_block_by_config(e);E.className=c;var L=24*this.config.hour_size_px+1,A=36e5;E.style.top=Math.round((60*w*1e3-this.config.first_hour*A)*this.config.hour_size_px/A)%L+"px",E.style.lineHeight=E.style.height=Math.max(Math.round(60*(D-w)*1e3*this.config.hour_size_px/A)%L,1)+"px",
+t.appendChild(E),r.push(E)}}return r},scheduler.markTimespan=function(e){var t=[],a=!1;this._els.dhx_cal_data||(scheduler.get_elements(),a=!0);var r=this._els.dhx_cal_data[0],i=scheduler._marked_timespans_ids,n=scheduler._marked_timespans_types,l=scheduler._marked_timespans;scheduler.deleteMarkedTimespan(),scheduler.addMarkedTimespan(e);for(var d=new Date(scheduler._min_date),s=0,o=r.childNodes.length;o>s;s++){var _=r.childNodes[s];_.firstChild&&(_.firstChild.className||"").indexOf("dhx_scale_hour")>-1||(t.push.apply(t,scheduler._on_scale_add_marker(_,d)),
+d=scheduler.date.add(d,1,"day"))}return a&&(scheduler._els=[]),scheduler._marked_timespans_ids=i,scheduler._marked_timespans_types=n,scheduler._marked_timespans=l,t},scheduler.unmarkTimespan=function(e){if(e)for(var t=0;t<e.length;t++){var a=e[t];a.parentNode&&a.parentNode.removeChild(a)}},scheduler._marked_timespans_ids={},scheduler.addMarkedTimespan=function(e){var t=scheduler._prepare_timespan_options(e),a="global";if(t.length){var r=t[0].id,i=scheduler._marked_timespans,n=scheduler._marked_timespans_ids;
+
+n[r]||(n[r]=[]);for(var l=0;l<t.length;l++){var d=t[l],s=d.days,o=(d.zones,d.css,d.sections),_=d.type;if(d.id=r,o){for(var c in o)if(o.hasOwnProperty(c)){i[c]||(i[c]={});var u=o[c],h=i[c];h[u]||(h[u]={}),h[u][s]||(h[u][s]={}),h[u][s][_]||(h[u][s][_]=[],scheduler._marked_timespans_types||(scheduler._marked_timespans_types={}),scheduler._marked_timespans_types[_]||(scheduler._marked_timespans_types[_]=!0));var p=h[u][s][_];d._array=p,p.push(d),n[r].push(d)}}else{i[a][s]||(i[a][s]={}),i[a][s][_]||(i[a][s][_]=[]),
+scheduler._marked_timespans_types||(scheduler._marked_timespans_types={}),scheduler._marked_timespans_types[_]||(scheduler._marked_timespans_types[_]=!0);var p=i[a][s][_];d._array=p,p.push(d),n[r].push(d)}}return r}},scheduler._add_timespan_zones=function(e,t){var a=e.slice();if(t=t.slice(),!a.length)return t;for(var r=0;r<a.length;r+=2)for(var i=a[r],n=a[r+1],l=r+2==a.length,d=0;d<t.length;d+=2){var s=t[d],o=t[d+1];if(o>n&&n>=s||i>s&&o>=i)a[r]=Math.min(i,s),a[r+1]=Math.max(n,o),r-=2;else{if(!l)continue;
+
+var _=i>s?0:2;a.splice(r+_,0,s,o)}t.splice(d--,2);break}return a},scheduler._subtract_timespan_zones=function(e,t){for(var a=e.slice(),r=0;r<a.length;r+=2)for(var i=a[r],n=a[r+1],l=0;l<t.length;l+=2){var d=t[l],s=t[l+1];if(s>i&&n>d){var o=!1;i>=d&&s>=n&&a.splice(r,2),d>i&&(a.splice(r,2,i,d),o=!0),n>s&&a.splice(o?r+2:r,o?0:2,s,n),r-=2;break}}return a},scheduler.invertZones=function(e){return scheduler._subtract_timespan_zones([0,1440],e.slice())},scheduler._delete_marked_timespan_by_id=function(e){
+var t=scheduler._marked_timespans_ids[e];if(t)for(var a=0;a<t.length;a++)for(var r=t[a],i=r._array,n=0;n<i.length;n++)if(i[n]==r){i.splice(n,1);break}},scheduler._delete_marked_timespan_by_config=function(e){var t=scheduler._marked_timespans,a=e.sections,i=e.days,n=e.type||r,l=[];if(a){for(var d in a)if(a.hasOwnProperty(d)&&t[d]){var s=a[d];t[d][s]&&t[d][s][i]&&t[d][s][i][n]&&(l=t[d][s][i][n])}}else t.global[i]&&t.global[i][n]&&(l=t.global[i][n]);for(var o=0;o<l.length;o++){var _=l[o],c=scheduler._subtract_timespan_zones(_.zones,e.zones);
+
+if(c.length)_.zones=c;else{l.splice(o,1),o--;for(var u=scheduler._marked_timespans_ids[_.id],h=0;h<u.length;h++)if(u[h]==_){u.splice(h,1);break}}}for(var o in scheduler._marked_timespans.timeline)for(var p in scheduler._marked_timespans.timeline[o])for(var h in scheduler._marked_timespans.timeline[o][p])h===n&&delete scheduler._marked_timespans.timeline[o][p][h]},scheduler.deleteMarkedTimespan=function(e){if(arguments.length||(scheduler._marked_timespans={global:{}},scheduler._marked_timespans_ids={},
+scheduler._marked_timespans_types={}),"object"!=typeof e)scheduler._delete_marked_timespan_by_id(e);else{e.start_date&&e.end_date||(e.days||(e.days="fullweek"),e.zones||(e.zones="fullday"));var t=[];if(e.type)t.push(e.type);else for(var a in scheduler._marked_timespans_types)t.push(a);for(var r=scheduler._prepare_timespan_options(e),i=0;i<r.length;i++)for(var n=r[i],l=0;l<t.length;l++){var d=scheduler._lame_clone(n);d.type=t[l],scheduler._delete_marked_timespan_by_config(d)}}},scheduler._get_types_to_render=function(e,t){
+var a=e?e:{};for(var r in t||{})t.hasOwnProperty(r)&&(a[r]=t[r]);return a},scheduler._get_configs_to_render=function(e){var t=[];for(var a in e)e.hasOwnProperty(a)&&t.push.apply(t,e[a]);return t},scheduler._on_scale_add_marker=function(e,t){if(!scheduler._table_view||"month"==scheduler._mode){var a=t.getDay(),r=t.valueOf(),i=this._mode,n=scheduler._marked_timespans,l=[],d=[];if(this._props&&this._props[i]){var s=this._props[i],o=s.options,_=scheduler._get_unit_index(s,t),c=o[_];if(s.days>1){var u=864e5,h=Math.floor((t-scheduler._min_date)/u);
+
+t=scheduler.date.add(scheduler._min_date,Math.floor(h/o.length),"day"),t=scheduler.date.date_part(t)}else t=scheduler.date.date_part(new Date(this._date));if(a=t.getDay(),r=t.valueOf(),n[i]&&n[i][c.key]){var p=n[i][c.key],v=scheduler._get_types_to_render(p[a],p[r]);l.push.apply(l,scheduler._get_configs_to_render(v))}}var m=n.global,g=m[r]||m[a];l.push.apply(l,scheduler._get_configs_to_render(g));for(var b=0;b<l.length;b++)d.push.apply(d,scheduler._render_marked_timespan(l[b],e,t));return d}},scheduler.attachEvent("onScaleAdd",scheduler._on_scale_add_marker),
+scheduler.dblclick_dhx_marked_timespan=function(e,t){scheduler.config.dblclick_create||scheduler.callEvent("onScaleDblClick",[scheduler.getActionData(e).date,t,e]),scheduler.addEventNow(scheduler.getActionData(e).date,null,e)}},scheduler._temp_limit_scope();
//# sourceMappingURL=../sources/ext/dhtmlxscheduler_limit.js.map \ No newline at end of file
diff --git a/codebase/ext/dhtmlxscheduler_map_view.js b/codebase/ext/dhtmlxscheduler_map_view.js
index 8c307c7..ab7d018 100644
--- a/codebase/ext/dhtmlxscheduler_map_view.js
+++ b/codebase/ext/dhtmlxscheduler_map_view.js
@@ -1,28 +1,40 @@
/*
-dhtmlxScheduler v.4.3.0 Stardard
+@license
+dhtmlxScheduler v.4.3.1
This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited.
(c) Dinamenta, UAB.
*/
-scheduler.xy.map_date_width=188,scheduler.xy.map_description_width=400,scheduler.config.map_resolve_event_location=!0,scheduler.config.map_resolve_user_location=!0,scheduler.config.map_initial_position=new google.maps.LatLng(48.724,8.215),scheduler.config.map_error_position=new google.maps.LatLng(15,15),scheduler.config.map_infowindow_max_width=300,scheduler.config.map_type=google.maps.MapTypeId.ROADMAP,scheduler.config.map_zoom_after_resolve=15,scheduler.locale.labels.marker_geo_success="It seems you are here.",scheduler.locale.labels.marker_geo_fail="Sorry, could not get your current position using geolocation.",scheduler.templates.marker_date=scheduler.date.date_to_str("%Y-%m-%d %H:%i"),scheduler.templates.marker_text=function(e,t,s){return"<div><b>"+s.text+"</b><br/><br/>"+(s.event_location||"")+"<br/><br/>"+scheduler.templates.marker_date(e)+" - "+scheduler.templates.marker_date(t)+"</div>"
-},scheduler.dblclick_dhx_map_area=function(){!this.config.readonly&&this.config.dblclick_create&&this.addEventNow({start_date:scheduler._date,end_date:scheduler.date.add(scheduler._date,scheduler.config.time_step,"minute")})},scheduler.templates.map_time=function(e,t,s){return s._timed?this.day_date(s.start_date,s.end_date,s)+" "+this.event_date(e):scheduler.templates.day_date(e)+" &ndash; "+scheduler.templates.day_date(t)},scheduler.templates.map_text=function(e,t,s){return s.text},scheduler.date.map_start=function(e){return e
-},scheduler.date.add_map=function(e){return new Date(e.valueOf())},scheduler.templates.map_date=function(){return""},scheduler._latLngUpdate=!1,scheduler.attachEvent("onSchedulerReady",function(){function e(e){if(e){var t=scheduler.locale.labels;scheduler._els.dhx_cal_header[0].innerHTML="<div class='dhx_map_line' style='width: "+(scheduler.xy.map_date_width+scheduler.xy.map_description_width+2)+"px;' ><div class='headline_date' style='width: "+scheduler.xy.map_date_width+"px;'>"+t.date+"</div><div class='headline_description' style='width: "+scheduler.xy.map_description_width+"px;'>"+t.description+"</div></div>",scheduler._table_view=!0,scheduler.set_sizes()
-}}function t(){scheduler._selected_event_id=null,scheduler.map._infowindow.close();var e=scheduler.map._markers;for(var t in e)e.hasOwnProperty(t)&&(e[t].setMap(null),delete scheduler.map._markers[t],scheduler.map._infowindows_content[t]&&delete scheduler.map._infowindows_content[t])}function s(){var e=scheduler.get_visible_events();e.sort(function(e,t){return e.start_date.valueOf()==t.start_date.valueOf()?e.id>t.id?1:-1:e.start_date>t.start_date?1:-1});for(var t="<div class='dhx_map_area'>",s=0;s<e.length;s++){var r=e[s],a=r.id==scheduler._selected_event_id?"dhx_map_line highlight":"dhx_map_line",d=r.color?"background:"+r.color+";":"",i=r.textColor?"color:"+r.textColor+";":"";
-t+="<div class='"+a+"' event_id='"+r.id+"' style='"+d+i+(r._text_style||"")+" width: "+(scheduler.xy.map_date_width+scheduler.xy.map_description_width+2)+"px;'><div style='width: "+scheduler.xy.map_date_width+"px;' >"+scheduler.templates.map_time(r.start_date,r.end_date,r)+"</div>",t+="<div class='dhx_event_icon icon_details'>&nbsp</div>",t+="<div class='line_description' style='width:"+(scheduler.xy.map_description_width-25)+"px;'>"+scheduler.templates.map_text(r.start_date,r.end_date,r)+"</div></div>"
-}t+="<div class='dhx_v_border' style='left: "+(scheduler.xy.map_date_width-2)+"px;'></div><div class='dhx_v_border_description'></div></div>",scheduler._els.dhx_cal_data[0].scrollTop=0,scheduler._els.dhx_cal_data[0].innerHTML=t,scheduler._els.dhx_cal_data[0].style.width=scheduler.xy.map_date_width+scheduler.xy.map_description_width+1+"px";var n=scheduler._els.dhx_cal_data[0].firstChild.childNodes;scheduler._els.dhx_cal_date[0].innerHTML=scheduler.templates[scheduler._mode+"_date"](scheduler._min_date,scheduler._max_date,scheduler._mode),scheduler._rendered=[];
-for(var s=0;s<n.length-2;s++)scheduler._rendered[s]=n[s]}function r(e){var t=document.getElementById(e),s=scheduler._y-scheduler.xy.nav_height;0>s&&(s=0);var r=scheduler._x-scheduler.xy.map_date_width-scheduler.xy.map_description_width-1;0>r&&(r=0),t.style.height=s+"px",t.style.width=r+"px",t.style.marginLeft=scheduler.xy.map_date_width+scheduler.xy.map_description_width+1+"px",t.style.marginTop=scheduler.xy.nav_height+2+"px"}scheduler._isMapPositionSet=!1;var a=document.createElement("div");a.className="dhx_map",a.id="dhx_gmap",a.style.dispay="none";
-var d=scheduler._obj;d.appendChild(a),scheduler._els.dhx_gmap=[],scheduler._els.dhx_gmap.push(a),r("dhx_gmap");var i={zoom:scheduler.config.map_inital_zoom||10,center:scheduler.config.map_initial_position,mapTypeId:scheduler.config.map_type||google.maps.MapTypeId.ROADMAP},n=new google.maps.Map(document.getElementById("dhx_gmap"),i);n.disableDefaultUI=!1,n.disableDoubleClickZoom=!scheduler.config.readonly,google.maps.event.addListener(n,"dblclick",function(e){if(!scheduler.config.readonly&&scheduler.config.dblclick_create){var t=e.latLng;
-geocoder.geocode({latLng:t},function(e,s){s==google.maps.GeocoderStatus.OK&&(t=e[0].geometry.location,scheduler.addEventNow({lat:t.lat(),lng:t.lng(),event_location:e[0].formatted_address,start_date:scheduler._date,end_date:scheduler.date.add(scheduler._date,scheduler.config.time_step,"minute")}))})}});var l={content:""};scheduler.config.map_infowindow_max_width&&(l.maxWidth=scheduler.config.map_infowindow_max_width),scheduler.map={_points:[],_markers:[],_infowindow:new google.maps.InfoWindow(l),_infowindows_content:[],_initialization_count:-1,_obj:n},geocoder=new google.maps.Geocoder,scheduler.config.map_resolve_user_location&&navigator.geolocation&&(scheduler._isMapPositionSet||navigator.geolocation.getCurrentPosition(function(e){var t=new google.maps.LatLng(e.coords.latitude,e.coords.longitude);
-n.setCenter(t),n.setZoom(scheduler.config.map_zoom_after_resolve||10),scheduler.map._infowindow.setContent(scheduler.locale.labels.marker_geo_success),scheduler.map._infowindow.position=n.getCenter(),scheduler.map._infowindow.open(n),scheduler._isMapPositionSet=!0},function(){scheduler.map._infowindow.setContent(scheduler.locale.labels.marker_geo_fail),scheduler.map._infowindow.setPosition(n.getCenter()),scheduler.map._infowindow.open(n),scheduler._isMapPositionSet=!0})),google.maps.event.addListener(n,"resize",function(){a.style.zIndex="5",n.setZoom(n.getZoom())
-}),google.maps.event.addListener(n,"tilesloaded",function(){a.style.zIndex="5"}),a.style.display="none",scheduler.attachEvent("onSchedulerResize",function(){return"map"==this._mode?(this.map_view(!0),!1):!0});var o=scheduler.render_data;scheduler.render_data=function(){if("map"!=this._mode)return o.apply(this,arguments);s();for(var e=scheduler.get_visible_events(),t=0;t<e.length;t++)scheduler.map._markers[e[t].id]||h(e[t],!1,!1)},scheduler.map_view=function(a){scheduler.map._initialization_count++;
-var d,i=scheduler._els.dhx_gmap[0];if(scheduler._els.dhx_cal_data[0].style.width=scheduler.xy.map_date_width+scheduler.xy.map_description_width+1+"px",scheduler._min_date=scheduler.config.map_start||scheduler._currentDate(),scheduler._max_date=scheduler.config.map_end||scheduler.date.add(scheduler._currentDate(),1,"year"),scheduler._table_view=!0,e(a),a){t(),s(),i.style.display="block",r("dhx_gmap"),d=scheduler.map._obj.getCenter();for(var n=scheduler.get_visible_events(),l=0;l<n.length;l++)scheduler.map._markers[n[l].id]||h(n[l])
-}else i.style.display="none";google.maps.event.trigger(scheduler.map._obj,"resize"),0===scheduler.map._initialization_count&&d&&scheduler.map._obj.setCenter(d),scheduler._selected_event_id&&_(scheduler._selected_event_id)};var _=function(e){scheduler.map._obj.setCenter(scheduler.map._points[e]),scheduler.callEvent("onClick",[e])},h=function(e,t,s){var r=scheduler.config.map_error_position;e.lat&&e.lng&&(r=new google.maps.LatLng(e.lat,e.lng));var a=scheduler.templates.marker_text(e.start_date,e.end_date,e);
-scheduler._new_event||(scheduler.map._infowindows_content[e.id]=a,scheduler.map._markers[e.id]&&scheduler.map._markers[e.id].setMap(null),scheduler.map._markers[e.id]=new google.maps.Marker({position:r,map:scheduler.map._obj}),google.maps.event.addListener(scheduler.map._markers[e.id],"click",function(){scheduler.map._infowindow.setContent(scheduler.map._infowindows_content[e.id]),scheduler.map._infowindow.open(scheduler.map._obj,scheduler.map._markers[e.id]),scheduler._selected_event_id=e.id,scheduler.render_data()
-}),scheduler.map._points[e.id]=r,t&&scheduler.map._obj.setCenter(scheduler.map._points[e.id]),s&&scheduler.callEvent("onClick",[e.id]))};scheduler.attachEvent("onClick",function(e){if("map"==this._mode){scheduler._selected_event_id=e;for(var t=0;t<scheduler._rendered.length;t++)scheduler._rendered[t].className="dhx_map_line",scheduler._rendered[t].getAttribute("event_id")==e&&(scheduler._rendered[t].className+=" highlight");scheduler.map._points[e]&&scheduler.map._markers[e]&&(scheduler.map._obj.setCenter(scheduler.map._points[e]),google.maps.event.trigger(scheduler.map._markers[e],"click"))
-}return!0});var c=function(e){e.event_location&&geocoder?geocoder.geocode({address:e.event_location,language:scheduler.uid().toString()},function(t,s){var r={};s!=google.maps.GeocoderStatus.OK?(r=scheduler.callEvent("onLocationError",[e.id]),r&&r!==!0||(r=scheduler.config.map_error_position)):r=t[0].geometry.location,e.lat=r.lat(),e.lng=r.lng(),scheduler._selected_event_id=e.id,scheduler._latLngUpdate=!0,scheduler.callEvent("onEventChanged",[e.id,e]),h(e,!0,!0)}):h(e,!0,!0)},u=function(e){e.event_location&&geocoder&&geocoder.geocode({address:e.event_location,language:scheduler.uid().toString()},function(t,s){var r={};
-s!=google.maps.GeocoderStatus.OK?(r=scheduler.callEvent("onLocationError",[e.id]),r&&r!==!0||(r=scheduler.config.map_error_position)):r=t[0].geometry.location,e.lat=r.lat(),e.lng=r.lng(),scheduler._latLngUpdate=!0,scheduler.callEvent("onEventChanged",[e.id,e])})},v=function(e,t,s,r){setTimeout(function(){var r=e.apply(t,s);return e=t=s=null,r},r||1)};scheduler.attachEvent("onEventChanged",function(e){if(this._latLngUpdate)this._latLngUpdate=!1;else{var t=scheduler.getEvent(e);t.start_date<scheduler._min_date&&t.end_date>scheduler._min_date||t.start_date<scheduler._max_date&&t.end_date>scheduler._max_date||t.start_date.valueOf()>=scheduler._min_date&&t.end_date.valueOf()<=scheduler._max_date?(scheduler.map._markers[e]&&scheduler.map._markers[e].setMap(null),c(t)):(scheduler._selected_event_id=null,scheduler.map._infowindow.close(),scheduler.map._markers[e]&&scheduler.map._markers[e].setMap(null))
-}return!0}),scheduler.attachEvent("onEventIdChange",function(e,t){var s=scheduler.getEvent(t);return(s.start_date<scheduler._min_date&&s.end_date>scheduler._min_date||s.start_date<scheduler._max_date&&s.end_date>scheduler._max_date||s.start_date.valueOf()>=scheduler._min_date&&s.end_date.valueOf()<=scheduler._max_date)&&(scheduler.map._markers[e]&&(scheduler.map._markers[e].setMap(null),delete scheduler.map._markers[e]),scheduler.map._infowindows_content[e]&&delete scheduler.map._infowindows_content[e],c(s)),!0
-}),scheduler.attachEvent("onEventAdded",function(e,t){return scheduler._dataprocessor||(t.start_date<scheduler._min_date&&t.end_date>scheduler._min_date||t.start_date<scheduler._max_date&&t.end_date>scheduler._max_date||t.start_date.valueOf()>=scheduler._min_date&&t.end_date.valueOf()<=scheduler._max_date)&&(scheduler.map._markers[e]&&scheduler.map._markers[e].setMap(null),c(t)),!0}),scheduler.attachEvent("onBeforeEventDelete",function(e){return scheduler.map._markers[e]&&scheduler.map._markers[e].setMap(null),scheduler._selected_event_id=null,scheduler.map._infowindow.close(),!0
-}),scheduler._event_resolve_delay=1500,scheduler.attachEvent("onEventLoading",function(e){return scheduler.config.map_resolve_event_location&&e.event_location&&!e.lat&&!e.lng&&(scheduler._event_resolve_delay+=1500,v(u,this,[e],scheduler._event_resolve_delay)),!0}),scheduler.attachEvent("onEventCancel",function(e,t){return t&&(scheduler.map._markers[e]&&scheduler.map._markers[e].setMap(null),scheduler.map._infowindow.close()),!0})});
+scheduler.xy.map_date_width=188,scheduler.xy.map_description_width=400,scheduler.config.map_resolve_event_location=!0,scheduler.config.map_resolve_user_location=!0,scheduler.config.map_initial_position=new google.maps.LatLng(48.724,8.215),scheduler.config.map_error_position=new google.maps.LatLng(15,15),scheduler.config.map_infowindow_max_width=300,scheduler.config.map_type=google.maps.MapTypeId.ROADMAP,scheduler.config.map_zoom_after_resolve=15,scheduler.locale.labels.marker_geo_success="It seems you are here.",
+scheduler.locale.labels.marker_geo_fail="Sorry, could not get your current position using geolocation.",scheduler.templates.marker_date=scheduler.date.date_to_str("%Y-%m-%d %H:%i"),scheduler.templates.marker_text=function(e,t,a){return"<div><b>"+a.text+"</b><br/><br/>"+(a.event_location||"")+"<br/><br/>"+scheduler.templates.marker_date(e)+" - "+scheduler.templates.marker_date(t)+"</div>"},scheduler.dblclick_dhx_map_area=function(){!this.config.readonly&&this.config.dblclick_create&&this.addEventNow({
+start_date:scheduler._date,end_date:scheduler.date.add(scheduler._date,scheduler.config.time_step,"minute")})},scheduler.templates.map_time=function(e,t,a){return a._timed?this.day_date(a.start_date,a.end_date,a)+" "+this.event_date(e):scheduler.templates.day_date(e)+" &ndash; "+scheduler.templates.day_date(t)},scheduler.templates.map_text=function(e,t,a){return a.text},scheduler.date.map_start=function(e){return e},scheduler.date.add_map=function(e,t,a){return new Date(e.valueOf())},scheduler.templates.map_date=function(e,t,a){
+return""},scheduler._latLngUpdate=!1,scheduler.attachEvent("onSchedulerReady",function(){function e(e){if(e){var t=scheduler.locale.labels;scheduler._els.dhx_cal_header[0].innerHTML="<div class='dhx_map_line' style='width: "+(scheduler.xy.map_date_width+scheduler.xy.map_description_width+2)+"px;' ><div class='headline_date' style='width: "+scheduler.xy.map_date_width+"px;'>"+t.date+"</div><div class='headline_description' style='width: "+scheduler.xy.map_description_width+"px;'>"+t.description+"</div></div>",
+scheduler._table_view=!0,scheduler.set_sizes()}}function t(){scheduler._selected_event_id=null,scheduler.map._infowindow.close();var e=scheduler.map._markers;for(var t in e)e.hasOwnProperty(t)&&(e[t].setMap(null),delete scheduler.map._markers[t],scheduler.map._infowindows_content[t]&&delete scheduler.map._infowindows_content[t])}function a(){var e=scheduler.get_visible_events();e.sort(function(e,t){return e.start_date.valueOf()==t.start_date.valueOf()?e.id>t.id?1:-1:e.start_date>t.start_date?1:-1;
+
+});for(var t="<div class='dhx_map_area'>",a=0;a<e.length;a++){var r=e[a],n=r.id==scheduler._selected_event_id?"dhx_map_line highlight":"dhx_map_line",i=r.color?"background:"+r.color+";":"",l=r.textColor?"color:"+r.textColor+";":"";t+="<div class='"+n+"' event_id='"+r.id+"' style='"+i+l+(r._text_style||"")+" width: "+(scheduler.xy.map_date_width+scheduler.xy.map_description_width+2)+"px;'><div style='width: "+scheduler.xy.map_date_width+"px;' >"+scheduler.templates.map_time(r.start_date,r.end_date,r)+"</div>",
+t+="<div class='dhx_event_icon icon_details'>&nbsp</div>",t+="<div class='line_description' style='width:"+(scheduler.xy.map_description_width-25)+"px;'>"+scheduler.templates.map_text(r.start_date,r.end_date,r)+"</div></div>"}t+="<div class='dhx_v_border' style='left: "+(scheduler.xy.map_date_width-2)+"px;'></div><div class='dhx_v_border_description'></div></div>",scheduler._els.dhx_cal_data[0].scrollTop=0,scheduler._els.dhx_cal_data[0].innerHTML=t,scheduler._els.dhx_cal_data[0].style.width=scheduler.xy.map_date_width+scheduler.xy.map_description_width+1+"px";
+
+var d=scheduler._els.dhx_cal_data[0].firstChild.childNodes;scheduler._els.dhx_cal_date[0].innerHTML=scheduler.templates[scheduler._mode+"_date"](scheduler._min_date,scheduler._max_date,scheduler._mode),scheduler._rendered=[];for(var a=0;a<d.length-2;a++)scheduler._rendered[a]=d[a]}function r(e){var t=document.getElementById(e),a=scheduler._y-scheduler.xy.nav_height;0>a&&(a=0);var r=scheduler._x-scheduler.xy.map_date_width-scheduler.xy.map_description_width-1;0>r&&(r=0),t.style.height=a+"px",t.style.width=r+"px",
+t.style.marginLeft=scheduler.xy.map_date_width+scheduler.xy.map_description_width+1+"px",t.style.marginTop=scheduler.xy.nav_height+2+"px"}scheduler._isMapPositionSet=!1;var n=document.createElement("div");n.className="dhx_map",n.id="dhx_gmap",n.style.dispay="none";var i=scheduler._obj;i.appendChild(n),scheduler._els.dhx_gmap=[],scheduler._els.dhx_gmap.push(n),r("dhx_gmap");var l={zoom:scheduler.config.map_inital_zoom||10,center:scheduler.config.map_initial_position,mapTypeId:scheduler.config.map_type||google.maps.MapTypeId.ROADMAP
+},d=new google.maps.Map(document.getElementById("dhx_gmap"),l);d.disableDefaultUI=!1,d.disableDoubleClickZoom=!scheduler.config.readonly,google.maps.event.addListener(d,"dblclick",function(e){if(!scheduler.config.readonly&&scheduler.config.dblclick_create){var t=e.latLng;geocoder.geocode({latLng:t},function(e,a){a==google.maps.GeocoderStatus.OK&&(t=e[0].geometry.location,scheduler.addEventNow({lat:t.lat(),lng:t.lng(),event_location:e[0].formatted_address,start_date:scheduler._date,end_date:scheduler.date.add(scheduler._date,scheduler.config.time_step,"minute")
+}))})}});var s={content:""};scheduler.config.map_infowindow_max_width&&(s.maxWidth=scheduler.config.map_infowindow_max_width),scheduler.map={_points:[],_markers:[],_infowindow:new google.maps.InfoWindow(s),_infowindows_content:[],_initialization_count:-1,_obj:d},geocoder=new google.maps.Geocoder,scheduler.config.map_resolve_user_location&&navigator.geolocation&&(scheduler._isMapPositionSet||navigator.geolocation.getCurrentPosition(function(e){var t=new google.maps.LatLng(e.coords.latitude,e.coords.longitude);
+
+d.setCenter(t),d.setZoom(scheduler.config.map_zoom_after_resolve||10),scheduler.map._infowindow.setContent(scheduler.locale.labels.marker_geo_success),scheduler.map._infowindow.position=d.getCenter(),scheduler.map._infowindow.open(d),scheduler._isMapPositionSet=!0},function(){scheduler.map._infowindow.setContent(scheduler.locale.labels.marker_geo_fail),scheduler.map._infowindow.setPosition(d.getCenter()),scheduler.map._infowindow.open(d),scheduler._isMapPositionSet=!0})),google.maps.event.addListener(d,"resize",function(e){
+n.style.zIndex="5",d.setZoom(d.getZoom())}),google.maps.event.addListener(d,"tilesloaded",function(e){n.style.zIndex="5"}),n.style.display="none",scheduler.attachEvent("onSchedulerResize",function(){return"map"==this._mode?(this.map_view(!0),!1):!0});var o=scheduler.render_data;scheduler.render_data=function(e,t){if("map"!=this._mode)return o.apply(this,arguments);a();for(var r=scheduler.get_visible_events(),n=0;n<r.length;n++)scheduler.map._markers[r[n].id]||c(r[n],!1,!1)},scheduler.map_view=function(n){
+scheduler.map._initialization_count++;var i,l=scheduler._els.dhx_gmap[0];if(scheduler._els.dhx_cal_data[0].style.width=scheduler.xy.map_date_width+scheduler.xy.map_description_width+1+"px",scheduler._min_date=scheduler.config.map_start||scheduler._currentDate(),scheduler._max_date=scheduler.config.map_end||scheduler.date.add(scheduler._currentDate(),1,"year"),scheduler._table_view=!0,e(n),n){t(),a(),l.style.display="block",r("dhx_gmap"),i=scheduler.map._obj.getCenter();for(var d=scheduler.get_visible_events(),s=0;s<d.length;s++)scheduler.map._markers[d[s].id]||c(d[s]);
+
+}else l.style.display="none";google.maps.event.trigger(scheduler.map._obj,"resize"),0===scheduler.map._initialization_count&&i&&scheduler.map._obj.setCenter(i),scheduler._selected_event_id&&_(scheduler._selected_event_id)};var _=function(e){scheduler.map._obj.setCenter(scheduler.map._points[e]),scheduler.callEvent("onClick",[e])},c=function(e,t,a){var r=scheduler.config.map_error_position;e.lat&&e.lng&&(r=new google.maps.LatLng(e.lat,e.lng));var n=scheduler.templates.marker_text(e.start_date,e.end_date,e);
+
+scheduler._new_event||(scheduler.map._infowindows_content[e.id]=n,scheduler.map._markers[e.id]&&scheduler.map._markers[e.id].setMap(null),scheduler.map._markers[e.id]=new google.maps.Marker({position:r,map:scheduler.map._obj}),google.maps.event.addListener(scheduler.map._markers[e.id],"click",function(){scheduler.map._infowindow.setContent(scheduler.map._infowindows_content[e.id]),scheduler.map._infowindow.open(scheduler.map._obj,scheduler.map._markers[e.id]),scheduler._selected_event_id=e.id,scheduler.render_data();
+
+}),scheduler.map._points[e.id]=r,t&&scheduler.map._obj.setCenter(scheduler.map._points[e.id]),a&&scheduler.callEvent("onClick",[e.id]))};scheduler.attachEvent("onClick",function(e,t){if("map"==this._mode){scheduler._selected_event_id=e;for(var a=0;a<scheduler._rendered.length;a++)scheduler._rendered[a].className="dhx_map_line",scheduler._rendered[a].getAttribute("event_id")==e&&(scheduler._rendered[a].className+=" highlight");scheduler.map._points[e]&&scheduler.map._markers[e]&&(scheduler.map._obj.setCenter(scheduler.map._points[e]),
+google.maps.event.trigger(scheduler.map._markers[e],"click"))}return!0});var u=function(e){e.event_location&&geocoder?geocoder.geocode({address:e.event_location,language:scheduler.uid().toString()},function(t,a){var r={};a!=google.maps.GeocoderStatus.OK?(r=scheduler.callEvent("onLocationError",[e.id]),r&&r!==!0||(r=scheduler.config.map_error_position)):r=t[0].geometry.location,e.lat=r.lat(),e.lng=r.lng(),scheduler._selected_event_id=e.id,scheduler._latLngUpdate=!0,scheduler.callEvent("onEventChanged",[e.id,e]),
+c(e,!0,!0)}):c(e,!0,!0)},h=function(e){e.event_location&&geocoder&&geocoder.geocode({address:e.event_location,language:scheduler.uid().toString()},function(t,a){var r={};a!=google.maps.GeocoderStatus.OK?(r=scheduler.callEvent("onLocationError",[e.id]),r&&r!==!0||(r=scheduler.config.map_error_position)):r=t[0].geometry.location,e.lat=r.lat(),e.lng=r.lng(),scheduler._latLngUpdate=!0,scheduler.callEvent("onEventChanged",[e.id,e])})},p=function(e,t,a,r){setTimeout(function(){var r=e.apply(t,a);return e=t=a=null,
+r},r||1)};scheduler.attachEvent("onEventChanged",function(e,t){if(this._latLngUpdate)this._latLngUpdate=!1;else{var a=scheduler.getEvent(e);a.start_date<scheduler._min_date&&a.end_date>scheduler._min_date||a.start_date<scheduler._max_date&&a.end_date>scheduler._max_date||a.start_date.valueOf()>=scheduler._min_date&&a.end_date.valueOf()<=scheduler._max_date?(scheduler.map._markers[e]&&scheduler.map._markers[e].setMap(null),u(a)):(scheduler._selected_event_id=null,scheduler.map._infowindow.close(),
+scheduler.map._markers[e]&&scheduler.map._markers[e].setMap(null))}return!0}),scheduler.attachEvent("onEventIdChange",function(e,t){var a=scheduler.getEvent(t);return(a.start_date<scheduler._min_date&&a.end_date>scheduler._min_date||a.start_date<scheduler._max_date&&a.end_date>scheduler._max_date||a.start_date.valueOf()>=scheduler._min_date&&a.end_date.valueOf()<=scheduler._max_date)&&(scheduler.map._markers[e]&&(scheduler.map._markers[e].setMap(null),delete scheduler.map._markers[e]),scheduler.map._infowindows_content[e]&&delete scheduler.map._infowindows_content[e],
+u(a)),!0}),scheduler.attachEvent("onEventAdded",function(e,t){return scheduler._dataprocessor||(t.start_date<scheduler._min_date&&t.end_date>scheduler._min_date||t.start_date<scheduler._max_date&&t.end_date>scheduler._max_date||t.start_date.valueOf()>=scheduler._min_date&&t.end_date.valueOf()<=scheduler._max_date)&&(scheduler.map._markers[e]&&scheduler.map._markers[e].setMap(null),u(t)),!0}),scheduler.attachEvent("onBeforeEventDelete",function(e,t){return scheduler.map._markers[e]&&scheduler.map._markers[e].setMap(null),
+scheduler._selected_event_id=null,scheduler.map._infowindow.close(),!0}),scheduler._event_resolve_delay=1500,scheduler.attachEvent("onEventLoading",function(e){return scheduler.config.map_resolve_event_location&&e.event_location&&!e.lat&&!e.lng&&(scheduler._event_resolve_delay+=1500,p(h,this,[e],scheduler._event_resolve_delay)),!0}),scheduler.attachEvent("onEventCancel",function(e,t){return t&&(scheduler.map._markers[e]&&scheduler.map._markers[e].setMap(null),scheduler.map._infowindow.close()),!0;
+
+})});
//# sourceMappingURL=../sources/ext/dhtmlxscheduler_map_view.js.map \ No newline at end of file
diff --git a/codebase/ext/dhtmlxscheduler_minical.js b/codebase/ext/dhtmlxscheduler_minical.js
index f456d65..8730a02 100644
--- a/codebase/ext/dhtmlxscheduler_minical.js
+++ b/codebase/ext/dhtmlxscheduler_minical.js
@@ -1,26 +1,37 @@
/*
-dhtmlxScheduler v.4.3.0 Stardard
+@license
+dhtmlxScheduler v.4.3.1
This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited.
(c) Dinamenta, UAB.
*/
-scheduler.templates.calendar_month=scheduler.date.date_to_str("%F %Y"),scheduler.templates.calendar_scale_date=scheduler.date.date_to_str("%D"),scheduler.templates.calendar_date=scheduler.date.date_to_str("%d"),scheduler.config.minicalendar={mark_events:!0},scheduler._synced_minicalendars=[],scheduler.renderCalendar=function(e,t,a){var s=null,r=e.date||scheduler._currentDate();if("string"==typeof r&&(r=this.templates.api_date(r)),t)s=this._render_calendar(t.parentNode,r,e,t),scheduler.unmarkCalendar(s);
-else{var d=e.container,n=e.position;if("string"==typeof d&&(d=document.getElementById(d)),"string"==typeof n&&(n=document.getElementById(n)),n&&"undefined"==typeof n.left){var i=getOffset(n);n={top:i.top+n.offsetHeight,left:i.left}}d||(d=scheduler._get_def_cont(n)),s=this._render_calendar(d,r,e),s.onclick=function(e){e=e||event;var t=e.target||e.srcElement;if(-1!=t.className.indexOf("dhx_month_head")){var a=t.parentNode.className;if(-1==a.indexOf("dhx_after")&&-1==a.indexOf("dhx_before")){var s=scheduler.templates.xml_date(this.getAttribute("date"));
-s.setDate(parseInt(t.innerHTML,10)),scheduler.unmarkCalendar(this),scheduler.markCalendar(this,s,"dhx_calendar_click"),this._last_date=s,this.conf.handler&&this.conf.handler.call(scheduler,s,this)}}}}if(scheduler.config.minicalendar.mark_events)for(var l=scheduler.date.month_start(r),o=scheduler.date.add(l,1,"month"),_=this.getEvents(l,o),h=this["filter_"+this._mode],c=0;c<_.length;c++){var u=_[c];if(!h||h(u.id,u)){var v=u.start_date;for(v.valueOf()<l.valueOf()&&(v=l),v=scheduler.date.date_part(new Date(v.valueOf()));v<u.end_date&&(this.markCalendar(s,v,"dhx_year_event"),v=this.date.add(v,1,"day"),!(v.valueOf()>=o.valueOf())););}}return this._markCalendarCurrentDate(s),s.conf=e,e.sync&&!a&&this._synced_minicalendars.push(s),s.conf._on_xle_handler||(s.conf._on_xle_handler=scheduler.attachEvent("onXLE",function(){scheduler.updateCalendar(s,s.conf.date)
-})),s},scheduler._get_def_cont=function(e){return this._def_count||(this._def_count=document.createElement("DIV"),this._def_count.className="dhx_minical_popup",this._def_count.onclick=function(e){(e||event).cancelBubble=!0},document.body.appendChild(this._def_count)),this._def_count.style.left=e.left+"px",this._def_count.style.top=e.top+"px",this._def_count._created=new Date,this._def_count},scheduler._locateCalendar=function(e,t){if("string"==typeof t&&(t=scheduler.templates.api_date(t)),+t>+e._max_date||+t<+e._min_date)return null;
-for(var a=e.childNodes[2].childNodes[0],s=0,r=new Date(e._min_date);+this.date.add(r,1,"week")<=+t;)r=this.date.add(r,1,"week"),s++;var d=scheduler.config.start_on_monday,n=(t.getDay()||(d?7:0))-(d?1:0);return a.rows[s].cells[n].firstChild},scheduler.markCalendar=function(e,t,a){var s=this._locateCalendar(e,t);s&&(s.className+=" "+a)},scheduler.unmarkCalendar=function(e,t,a){if(t=t||e._last_date,a=a||"dhx_calendar_click",t){var s=this._locateCalendar(e,t);s&&(s.className=(s.className||"").replace(RegExp(a,"g")))
-}},scheduler._week_template=function(e){for(var t=e||250,a=0,s=document.createElement("div"),r=this.date.week_start(scheduler._currentDate()),d=0;7>d;d++)this._cols[d]=Math.floor(t/(7-d)),this._render_x_header(d,a,r,s),r=this.date.add(r,1,"day"),t-=this._cols[d],a+=this._cols[d];return s.lastChild.className+=" dhx_scale_bar_last",s},scheduler.updateCalendar=function(e,t){e.conf.date=t,this.renderCalendar(e.conf,e,!0)},scheduler._mini_cal_arrows=["&nbsp","&nbsp"],scheduler._render_calendar=function(e,t,a,s){var r=scheduler.templates,d=this._cols;
-this._cols=[];var n=this._mode;this._mode="calendar";var i=this._colsS;this._colsS={height:0};var l=new Date(this._min_date),o=new Date(this._max_date),_=new Date(scheduler._date),h=r.month_day,c=this._ignores_detected;this._ignores_detected=0,r.month_day=r.calendar_date,t=this.date.month_start(t);var u,v=this._week_template(e.offsetWidth-1-this.config.minicalendar.padding);if(s?u=s:(u=document.createElement("DIV"),u.className="dhx_cal_container dhx_mini_calendar"),u.setAttribute("date",this.templates.xml_format(t)),u.innerHTML="<div class='dhx_year_month'></div><div class='dhx_year_week'>"+v.innerHTML+"</div><div class='dhx_year_body'></div>",u.childNodes[0].innerHTML=this.templates.calendar_month(t),a.navigation)for(var f=function(e,t){var a=scheduler.date.add(e._date,t,"month");
-scheduler.updateCalendar(e,a),scheduler._date.getMonth()==e._date.getMonth()&&scheduler._date.getFullYear()==e._date.getFullYear()&&scheduler._markCalendarCurrentDate(e)},g=["dhx_cal_prev_button","dhx_cal_next_button"],m=["left:1px;top:2px;position:absolute;","left:auto; right:1px;top:2px;position:absolute;"],p=[-1,1],x=function(e){return function(){if(a.sync)for(var t=scheduler._synced_minicalendars,s=0;s<t.length;s++)f(t[s],e);else f(u,e)}},y=0;2>y;y++){var b=document.createElement("DIV");b.className=g[y],b.style.cssText=m[y],b.innerHTML=this._mini_cal_arrows[y],u.firstChild.appendChild(b),b.onclick=x(p[y])
-}u._date=new Date(t),u.week_start=(t.getDay()-(this.config.start_on_monday?1:0)+7)%7;var w=u._min_date=this.date.week_start(t);u._max_date=this.date.add(u._min_date,6,"week"),this._reset_month_scale(u.childNodes[2],t,w);for(var E=u.childNodes[2].firstChild.rows,D=E.length;6>D;D++){var k=E[E.length-1];E[0].parentNode.appendChild(k.cloneNode(!0));var M=parseInt(k.childNodes[k.childNodes.length-1].childNodes[0].innerHTML);M=10>M?M:0;for(var N=0;N<E[D].childNodes.length;N++)E[D].childNodes[N].className="dhx_after",E[D].childNodes[N].childNodes[0].innerHTML=scheduler.date.to_fixed(++M)
-}return s||e.appendChild(u),u.childNodes[1].style.height=u.childNodes[1].childNodes[0].offsetHeight-1+"px",this._cols=d,this._mode=n,this._colsS=i,this._min_date=l,this._max_date=o,scheduler._date=_,r.month_day=h,this._ignores_detected=c,u},scheduler.destroyCalendar=function(e,t){!e&&this._def_count&&this._def_count.firstChild&&(t||(new Date).valueOf()-this._def_count._created.valueOf()>500)&&(e=this._def_count.firstChild),e&&(e.onclick=null,e.innerHTML="",e.parentNode&&e.parentNode.removeChild(e),this._def_count&&(this._def_count.style.top="-1000px"),e.conf&&e.conf._on_xle_handler&&scheduler.detachEvent(e.conf._on_xle_handler))
-},scheduler.isCalendarVisible=function(){return this._def_count&&parseInt(this._def_count.style.top,10)>0?this._def_count:!1},scheduler._attach_minical_events=function(){dhtmlxEvent(document.body,"click",function(){scheduler.destroyCalendar()}),scheduler._attach_minical_events=function(){}},scheduler.attachEvent("onTemplatesReady",function(){scheduler._attach_minical_events()}),scheduler.templates.calendar_time=scheduler.date.date_to_str("%d-%m-%Y"),scheduler.form_blocks.calendar_time={render:function(){var e="<input class='dhx_readonly' type='text' readonly='true'>",t=scheduler.config,a=this.date.date_part(scheduler._currentDate()),s=1440,r=0;
-t.limit_time_select&&(r=60*t.first_hour,s=60*t.last_hour+1),a.setHours(r/60),e+=" <select>";for(var d=r;s>d;d+=1*this.config.time_step){var n=this.templates.time_picker(a);e+="<option value='"+d+"'>"+n+"</option>",a=this.date.add(a,this.config.time_step,"minute")}e+="</select>";scheduler.config.full_day;return"<div style='height:30px;padding-top:0; font-size:inherit;' class='dhx_section_time'>"+e+"<span style='font-weight:normal; font-size:10pt;'> &nbsp;&ndash;&nbsp; </span>"+e+"</div>"},set_value:function(e,t,a){function s(e,t,a){l(e,t,a),e.value=scheduler.templates.calendar_time(t),e._date=scheduler.date.date_part(new Date(t))
-}var r,d,n=e.getElementsByTagName("input"),i=e.getElementsByTagName("select"),l=function(e,t,a){e.onclick=function(){scheduler.destroyCalendar(null,!0),scheduler.renderCalendar({position:e,date:new Date(this._date),navigation:!0,handler:function(t){e.value=scheduler.templates.calendar_time(t),e._date=new Date(t),scheduler.destroyCalendar(),scheduler.config.event_duration&&scheduler.config.auto_end_date&&0===a&&c()}})}};if(scheduler.config.full_day){if(!e._full_day){var o="<label class='dhx_fullday'><input type='checkbox' name='full_day' value='true'> "+scheduler.locale.labels.full_day+"&nbsp;</label></input>";
-scheduler.config.wide_form||(o=e.previousSibling.innerHTML+o),e.previousSibling.innerHTML=o,e._full_day=!0}var _=e.previousSibling.getElementsByTagName("input")[0],h=0===scheduler.date.time_part(a.start_date)&&0===scheduler.date.time_part(a.end_date);_.checked=h,i[0].disabled=_.checked,i[1].disabled=_.checked,_.onclick=function(){if(_.checked===!0){var t={};scheduler.form_blocks.calendar_time.get_value(e,t),r=scheduler.date.date_part(t.start_date),d=scheduler.date.date_part(t.end_date),(+d==+r||+d>=+r&&(0!==a.end_date.getHours()||0!==a.end_date.getMinutes()))&&(d=scheduler.date.add(d,1,"day"))
-}var l=r||a.start_date,o=d||a.end_date;s(n[0],l),s(n[1],o),i[0].value=60*l.getHours()+l.getMinutes(),i[1].value=60*o.getHours()+o.getMinutes(),i[0].disabled=_.checked,i[1].disabled=_.checked}}if(scheduler.config.event_duration&&scheduler.config.auto_end_date){var c=function(){r=scheduler.date.add(n[0]._date,i[0].value,"minute"),d=new Date(r.getTime()+60*scheduler.config.event_duration*1e3),n[1].value=scheduler.templates.calendar_time(d),n[1]._date=scheduler.date.date_part(new Date(d)),i[1].value=60*d.getHours()+d.getMinutes()
-};i[0].onchange=c}s(n[0],a.start_date,0),s(n[1],a.end_date,1),l=function(){},i[0].value=60*a.start_date.getHours()+a.start_date.getMinutes(),i[1].value=60*a.end_date.getHours()+a.end_date.getMinutes()},get_value:function(e,t){var a=e.getElementsByTagName("input"),s=e.getElementsByTagName("select");return t.start_date=scheduler.date.add(a[0]._date,s[0].value,"minute"),t.end_date=scheduler.date.add(a[1]._date,s[1].value,"minute"),t.end_date<=t.start_date&&(t.end_date=scheduler.date.add(t.start_date,scheduler.config.time_step,"minute")),{start_date:new Date(t.start_date),end_date:new Date(t.end_date)}
-},focus:function(){}},scheduler.linkCalendar=function(e,t){var a=function(){var a=scheduler._date,s=new Date(a.valueOf());return t&&(s=t(s)),s.setDate(1),scheduler.updateCalendar(e,s),!0};scheduler.attachEvent("onViewChange",a),scheduler.attachEvent("onXLE",a),scheduler.attachEvent("onEventAdded",a),scheduler.attachEvent("onEventChanged",a),scheduler.attachEvent("onAfterEventDelete",a),a()},scheduler._markCalendarCurrentDate=function(e){var t=scheduler._date,a=scheduler._mode,s=scheduler.date.month_start(new Date(e._date)),r=scheduler.date.add(s,1,"month");
-if("day"==a||this._props&&this._props[a])s.valueOf()<=t.valueOf()&&r>t&&scheduler.markCalendar(e,t,"dhx_calendar_click");else if("week"==a)for(var d=scheduler.date.week_start(new Date(t.valueOf())),n=0;7>n;n++)s.valueOf()<=d.valueOf()&&r>d&&scheduler.markCalendar(e,d,"dhx_calendar_click"),d=scheduler.date.add(d,1,"day")},scheduler.attachEvent("onEventCancel",function(){scheduler.destroyCalendar(null,!0)});
+scheduler.templates.calendar_month=scheduler.date.date_to_str("%F %Y"),scheduler.templates.calendar_scale_date=scheduler.date.date_to_str("%D"),scheduler.templates.calendar_date=scheduler.date.date_to_str("%d"),scheduler.config.minicalendar={mark_events:!0},scheduler._synced_minicalendars=[],scheduler.renderCalendar=function(e,t,a){var r=null,n=e.date||scheduler._currentDate();if("string"==typeof n&&(n=this.templates.api_date(n)),t)r=this._render_calendar(t.parentNode,n,e,t),scheduler.unmarkCalendar(r);
+else{var i=e.container,d=e.position;if("string"==typeof i&&(i=document.getElementById(i)),"string"==typeof d&&(d=document.getElementById(d)),d&&"undefined"==typeof d.left){var l=getOffset(d);d={top:l.top+d.offsetHeight,left:l.left}}i||(i=scheduler._get_def_cont(d)),r=this._render_calendar(i,n,e),r.onclick=function(e){e=e||event;var t=e.target||e.srcElement;if(-1!=t.className.indexOf("dhx_month_head")){var a=t.parentNode.className;if(-1==a.indexOf("dhx_after")&&-1==a.indexOf("dhx_before")){var r=scheduler.templates.xml_date(this.getAttribute("date"));
+
+r.setDate(parseInt(t.innerHTML,10)),scheduler.unmarkCalendar(this),scheduler.markCalendar(this,r,"dhx_calendar_click"),this._last_date=r,this.conf.handler&&this.conf.handler.call(scheduler,r,this)}}}}if(scheduler.config.minicalendar.mark_events)for(var s=scheduler.date.month_start(n),o=scheduler.date.add(s,1,"month"),_=this.getEvents(s,o),c=this["filter_"+this._mode],u=0;u<_.length;u++){var h=_[u];if(!c||c(h.id,h)){var p=h.start_date;for(p.valueOf()<s.valueOf()&&(p=s),p=scheduler.date.date_part(new Date(p.valueOf()));p<h.end_date&&(this.markCalendar(r,p,"dhx_year_event"),
+p=this.date.add(p,1,"day"),!(p.valueOf()>=o.valueOf())););}}return this._markCalendarCurrentDate(r),r.conf=e,e.sync&&!a&&this._synced_minicalendars.push(r),r.conf._on_xle_handler||(r.conf._on_xle_handler=scheduler.attachEvent("onXLE",function(){scheduler.updateCalendar(r,r.conf.date)})),r},scheduler._get_def_cont=function(e){return this._def_count||(this._def_count=document.createElement("DIV"),this._def_count.className="dhx_minical_popup",this._def_count.onclick=function(e){(e||event).cancelBubble=!0;
+
+},document.body.appendChild(this._def_count)),this._def_count.style.left=e.left+"px",this._def_count.style.top=e.top+"px",this._def_count._created=new Date,this._def_count},scheduler._locateCalendar=function(e,t){if("string"==typeof t&&(t=scheduler.templates.api_date(t)),+t>+e._max_date||+t<+e._min_date)return null;for(var a=e.childNodes[2].childNodes[0],r=0,n=new Date(e._min_date);+this.date.add(n,1,"week")<=+t;)n=this.date.add(n,1,"week"),r++;var i=scheduler.config.start_on_monday,d=(t.getDay()||(i?7:0))-(i?1:0);
+
+return a.rows[r].cells[d].firstChild},scheduler.markCalendar=function(e,t,a){var r=this._locateCalendar(e,t);r&&(r.className+=" "+a)},scheduler.unmarkCalendar=function(e,t,a){if(t=t||e._last_date,a=a||"dhx_calendar_click",t){var r=this._locateCalendar(e,t);r&&(r.className=(r.className||"").replace(RegExp(a,"g")))}},scheduler._week_template=function(e){for(var t=e||250,a=0,r=document.createElement("div"),n=this.date.week_start(scheduler._currentDate()),i=0;7>i;i++)this._cols[i]=Math.floor(t/(7-i)),
+this._render_x_header(i,a,n,r),n=this.date.add(n,1,"day"),t-=this._cols[i],a+=this._cols[i];return r.lastChild.className+=" dhx_scale_bar_last",r},scheduler.updateCalendar=function(e,t){e.conf.date=t,this.renderCalendar(e.conf,e,!0)},scheduler._mini_cal_arrows=["&nbsp","&nbsp"],scheduler._render_calendar=function(e,t,a,r){var n=scheduler.templates,i=this._cols;this._cols=[];var d=this._mode;this._mode="calendar";var l=this._colsS;this._colsS={height:0};var s=new Date(this._min_date),o=new Date(this._max_date),_=new Date(scheduler._date),c=n.month_day,u=this._ignores_detected;
+
+this._ignores_detected=0,n.month_day=n.calendar_date,t=this.date.month_start(t);var h,p=this._week_template(e.offsetWidth-1-this.config.minicalendar.padding);if(r?h=r:(h=document.createElement("DIV"),h.className="dhx_cal_container dhx_mini_calendar"),h.setAttribute("date",this.templates.xml_format(t)),h.innerHTML="<div class='dhx_year_month'></div><div class='dhx_year_week'>"+p.innerHTML+"</div><div class='dhx_year_body'></div>",h.childNodes[0].innerHTML=this.templates.calendar_month(t),a.navigation)for(var v=function(e,t){
+var a=scheduler.date.add(e._date,t,"month");scheduler.updateCalendar(e,a),scheduler._date.getMonth()==e._date.getMonth()&&scheduler._date.getFullYear()==e._date.getFullYear()&&scheduler._markCalendarCurrentDate(e)},m=["dhx_cal_prev_button","dhx_cal_next_button"],g=["left:1px;top:2px;position:absolute;","left:auto; right:1px;top:2px;position:absolute;"],b=[-1,1],f=function(e){return function(){if(a.sync)for(var t=scheduler._synced_minicalendars,r=0;r<t.length;r++)v(t[r],e);else v(h,e)}},y=0;2>y;y++){
+var x=document.createElement("DIV");x.className=m[y],x.style.cssText=g[y],x.innerHTML=this._mini_cal_arrows[y],h.firstChild.appendChild(x),x.onclick=f(b[y])}h._date=new Date(t),h.week_start=(t.getDay()-(this.config.start_on_monday?1:0)+7)%7;var k=h._min_date=this.date.week_start(t);h._max_date=this.date.add(h._min_date,6,"week"),this._reset_month_scale(h.childNodes[2],t,k);for(var w=h.childNodes[2].firstChild.rows,D=w.length;6>D;D++){var E=w[w.length-1];w[0].parentNode.appendChild(E.cloneNode(!0));
+
+var M=parseInt(E.childNodes[E.childNodes.length-1].childNodes[0].innerHTML);M=10>M?M:0;for(var S=0;S<w[D].childNodes.length;S++)w[D].childNodes[S].className="dhx_after",w[D].childNodes[S].childNodes[0].innerHTML=scheduler.date.to_fixed(++M)}return r||e.appendChild(h),h.childNodes[1].style.height=h.childNodes[1].childNodes[0].offsetHeight-1+"px",this._cols=i,this._mode=d,this._colsS=l,this._min_date=s,this._max_date=o,scheduler._date=_,n.month_day=c,this._ignores_detected=u,h},scheduler.destroyCalendar=function(e,t){
+!e&&this._def_count&&this._def_count.firstChild&&(t||(new Date).valueOf()-this._def_count._created.valueOf()>500)&&(e=this._def_count.firstChild),e&&(e.onclick=null,e.innerHTML="",e.parentNode&&e.parentNode.removeChild(e),this._def_count&&(this._def_count.style.top="-1000px"),e.conf&&e.conf._on_xle_handler&&scheduler.detachEvent(e.conf._on_xle_handler))},scheduler.isCalendarVisible=function(){return this._def_count&&parseInt(this._def_count.style.top,10)>0?this._def_count:!1},scheduler._attach_minical_events=function(){
+dhtmlxEvent(document.body,"click",function(){scheduler.destroyCalendar()}),scheduler._attach_minical_events=function(){}},scheduler.attachEvent("onTemplatesReady",function(){scheduler._attach_minical_events()}),scheduler.templates.calendar_time=scheduler.date.date_to_str("%d-%m-%Y"),scheduler.form_blocks.calendar_time={render:function(){var e="<input class='dhx_readonly' type='text' readonly='true'>",t=scheduler.config,a=this.date.date_part(scheduler._currentDate()),r=1440,n=0;t.limit_time_select&&(n=60*t.first_hour,
+r=60*t.last_hour+1),a.setHours(n/60),e+=" <select>";for(var i=n;r>i;i+=1*this.config.time_step){var d=this.templates.time_picker(a);e+="<option value='"+i+"'>"+d+"</option>",a=this.date.add(a,this.config.time_step,"minute")}e+="</select>";scheduler.config.full_day;return"<div style='height:30px;padding-top:0; font-size:inherit;' class='dhx_section_time'>"+e+"<span style='font-weight:normal; font-size:10pt;'> &nbsp;&ndash;&nbsp; </span>"+e+"</div>"},set_value:function(e,t,a){function r(e,t,a){s(e,t,a),
+e.value=scheduler.templates.calendar_time(t),e._date=scheduler.date.date_part(new Date(t))}var n,i,d=e.getElementsByTagName("input"),l=e.getElementsByTagName("select"),s=function(e,t,a){e.onclick=function(){scheduler.destroyCalendar(null,!0),scheduler.renderCalendar({position:e,date:new Date(this._date),navigation:!0,handler:function(t){e.value=scheduler.templates.calendar_time(t),e._date=new Date(t),scheduler.destroyCalendar(),scheduler.config.event_duration&&scheduler.config.auto_end_date&&0===a&&u();
+
+}})}};if(scheduler.config.full_day){if(!e._full_day){var o="<label class='dhx_fullday'><input type='checkbox' name='full_day' value='true'> "+scheduler.locale.labels.full_day+"&nbsp;</label></input>";scheduler.config.wide_form||(o=e.previousSibling.innerHTML+o),e.previousSibling.innerHTML=o,e._full_day=!0}var _=e.previousSibling.getElementsByTagName("input")[0],c=0===scheduler.date.time_part(a.start_date)&&0===scheduler.date.time_part(a.end_date);_.checked=c,l[0].disabled=_.checked,l[1].disabled=_.checked,
+_.onclick=function(){if(_.checked===!0){var t={};scheduler.form_blocks.calendar_time.get_value(e,t),n=scheduler.date.date_part(t.start_date),i=scheduler.date.date_part(t.end_date),(+i==+n||+i>=+n&&(0!==a.end_date.getHours()||0!==a.end_date.getMinutes()))&&(i=scheduler.date.add(i,1,"day"))}var s=n||a.start_date,o=i||a.end_date;r(d[0],s),r(d[1],o),l[0].value=60*s.getHours()+s.getMinutes(),l[1].value=60*o.getHours()+o.getMinutes(),l[0].disabled=_.checked,l[1].disabled=_.checked}}if(scheduler.config.event_duration&&scheduler.config.auto_end_date){
+var u=function(){n=scheduler.date.add(d[0]._date,l[0].value,"minute"),i=new Date(n.getTime()+60*scheduler.config.event_duration*1e3),d[1].value=scheduler.templates.calendar_time(i),d[1]._date=scheduler.date.date_part(new Date(i)),l[1].value=60*i.getHours()+i.getMinutes()};l[0].onchange=u}r(d[0],a.start_date,0),r(d[1],a.end_date,1),s=function(){},l[0].value=60*a.start_date.getHours()+a.start_date.getMinutes(),l[1].value=60*a.end_date.getHours()+a.end_date.getMinutes()},get_value:function(e,t){var a=e.getElementsByTagName("input"),r=e.getElementsByTagName("select");
+
+return t.start_date=scheduler.date.add(a[0]._date,r[0].value,"minute"),t.end_date=scheduler.date.add(a[1]._date,r[1].value,"minute"),t.end_date<=t.start_date&&(t.end_date=scheduler.date.add(t.start_date,scheduler.config.time_step,"minute")),{start_date:new Date(t.start_date),end_date:new Date(t.end_date)}},focus:function(e){}},scheduler.linkCalendar=function(e,t){var a=function(){var a=scheduler._date,r=new Date(a.valueOf());return t&&(r=t(r)),r.setDate(1),scheduler.updateCalendar(e,r),!0};scheduler.attachEvent("onViewChange",a),
+scheduler.attachEvent("onXLE",a),scheduler.attachEvent("onEventAdded",a),scheduler.attachEvent("onEventChanged",a),scheduler.attachEvent("onAfterEventDelete",a),a()},scheduler._markCalendarCurrentDate=function(e){var t=scheduler._date,a=scheduler._mode,r=scheduler.date.month_start(new Date(e._date)),n=scheduler.date.add(r,1,"month");if("day"==a||this._props&&this._props[a])r.valueOf()<=t.valueOf()&&n>t&&scheduler.markCalendar(e,t,"dhx_calendar_click");else if("week"==a)for(var i=scheduler.date.week_start(new Date(t.valueOf())),d=0;7>d;d++)r.valueOf()<=i.valueOf()&&n>i&&scheduler.markCalendar(e,i,"dhx_calendar_click"),
+i=scheduler.date.add(i,1,"day")},scheduler.attachEvent("onEventCancel",function(){scheduler.destroyCalendar(null,!0)});
//# sourceMappingURL=../sources/ext/dhtmlxscheduler_minical.js.map \ No newline at end of file
diff --git a/codebase/ext/dhtmlxscheduler_monthheight.js b/codebase/ext/dhtmlxscheduler_monthheight.js
index 0b388cd..ce33da3 100644
--- a/codebase/ext/dhtmlxscheduler_monthheight.js
+++ b/codebase/ext/dhtmlxscheduler_monthheight.js
@@ -1,10 +1,11 @@
/*
-dhtmlxScheduler v.4.3.0 Stardard
+@license
+dhtmlxScheduler v.4.3.1
This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited.
(c) Dinamenta, UAB.
*/
-scheduler.attachEvent("onTemplatesReady",function(){scheduler.xy.scroll_width=0;var e=scheduler.render_view_data;scheduler.render_view_data=function(){var t=this._els.dhx_cal_data[0];t.firstChild._h_fix=!0,e.apply(scheduler,arguments);var a=parseInt(t.style.height);t.style.height="1px",t.style.height=t.scrollHeight+"px",this._obj.style.height=this._obj.clientHeight+t.scrollHeight-a+"px"};var t=scheduler._reset_month_scale;scheduler._reset_month_scale=function(e,a,s){var r={clientHeight:100};t.apply(scheduler,[r,a,s]),e.innerHTML=r.innerHTML
-}});
+scheduler.attachEvent("onTemplatesReady",function(){scheduler.xy.scroll_width=0;var e=scheduler.render_view_data;scheduler.render_view_data=function(){var t=this._els.dhx_cal_data[0];t.firstChild._h_fix=!0,e.apply(scheduler,arguments);var a=parseInt(t.style.height);t.style.height="1px",t.style.height=t.scrollHeight+"px",this._obj.style.height=this._obj.clientHeight+t.scrollHeight-a+"px"};var t=scheduler._reset_month_scale;scheduler._reset_month_scale=function(e,a,r){var n={clientHeight:100};t.apply(scheduler,[n,a,r]),
+e.innerHTML=n.innerHTML}});
//# sourceMappingURL=../sources/ext/dhtmlxscheduler_monthheight.js.map \ No newline at end of file
diff --git a/codebase/ext/dhtmlxscheduler_multiselect.js b/codebase/ext/dhtmlxscheduler_multiselect.js
index 917ea11..0b3c0d2 100644
--- a/codebase/ext/dhtmlxscheduler_multiselect.js
+++ b/codebase/ext/dhtmlxscheduler_multiselect.js
@@ -1,11 +1,13 @@
/*
-dhtmlxScheduler v.4.3.0 Stardard
+@license
+dhtmlxScheduler v.4.3.1
This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited.
(c) Dinamenta, UAB.
*/
-scheduler.form_blocks.multiselect={render:function(e){for(var t="<div class='dhx_multi_select_"+e.name+"' style='overflow: auto; height: "+e.height+"px; position: relative;' >",s=0;s<e.options.length;s++)t+="<label><input type='checkbox' value='"+e.options[s].key+"'/>"+e.options[s].label+"</label>",convertStringToBoolean(e.vertical)&&(t+="<br/>");return t+="</div>"},set_value:function(e,t,s,r){function a(t){for(var s=e.getElementsByTagName("input"),r=0;r<s.length;r++)s[r].checked=!!t[s[r].value]}for(var n=e.getElementsByTagName("input"),d=0;d<n.length;d++)n[d].checked=!1;
-var i={};if(s[r.map_to]){for(var l=(s[r.map_to]+"").split(","),d=0;d<l.length;d++)i[l[d]]=!0;a(i)}else{if(scheduler._new_event||!r.script_url)return;var o=document.createElement("div");o.className="dhx_loading",o.style.cssText="position: absolute; top: 40%; left: 40%;",e.appendChild(o),dhtmlxAjax.get(r.script_url+"?dhx_crosslink_"+r.map_to+"="+s.id+"&uid="+scheduler.uid(),function(t){for(var s=t.doXPath("//data/item"),n={},d=0;d<s.length;d++)n[s[d].getAttribute(r.map_to)]=!0;a(n),e.removeChild(o)
-})}},get_value:function(e){for(var t=[],s=e.getElementsByTagName("input"),r=0;r<s.length;r++)s[r].checked&&t.push(s[r].value);return t.join(",")},focus:function(){}};
+scheduler.form_blocks.multiselect={render:function(e){for(var t="<div class='dhx_multi_select_"+e.name+"' style='overflow: auto; height: "+e.height+"px; position: relative;' >",a=0;a<e.options.length;a++)t+="<label><input type='checkbox' value='"+e.options[a].key+"'/>"+e.options[a].label+"</label>",convertStringToBoolean(e.vertical)&&(t+="<br/>");return t+="</div>"},set_value:function(e,t,a,r){function n(t){for(var a=e.getElementsByTagName("input"),r=0;r<a.length;r++)a[r].checked=!!t[a[r].value]}
+for(var i=e.getElementsByTagName("input"),d=0;d<i.length;d++)i[d].checked=!1;var l={};if(a[r.map_to]){for(var s=(a[r.map_to]+"").split(","),d=0;d<s.length;d++)l[s[d]]=!0;n(l)}else{if(scheduler._new_event||!r.script_url)return;var o=document.createElement("div");o.className="dhx_loading",o.style.cssText="position: absolute; top: 40%; left: 40%;",e.appendChild(o),dhtmlxAjax.get(r.script_url+"?dhx_crosslink_"+r.map_to+"="+a.id+"&uid="+scheduler.uid(),function(t){for(var a=t.doXPath("//data/item"),i={},d=0;d<a.length;d++)i[a[d].getAttribute(r.map_to)]=!0;
+
+n(i),e.removeChild(o)})}},get_value:function(e,t,a){for(var r=[],n=e.getElementsByTagName("input"),i=0;i<n.length;i++)n[i].checked&&r.push(n[i].value);return r.join(",")},focus:function(e){}};
//# sourceMappingURL=../sources/ext/dhtmlxscheduler_multiselect.js.map \ No newline at end of file
diff --git a/codebase/ext/dhtmlxscheduler_multisource.js b/codebase/ext/dhtmlxscheduler_multisource.js
index 03baf2b..f10cead 100644
--- a/codebase/ext/dhtmlxscheduler_multisource.js
+++ b/codebase/ext/dhtmlxscheduler_multisource.js
@@ -1,9 +1,10 @@
/*
-dhtmlxScheduler v.4.3.0 Stardard
+@license
+dhtmlxScheduler v.4.3.1
This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited.
(c) Dinamenta, UAB.
*/
-!function(){function e(e){var t=function(){};return t.prototype=e,t}var t=scheduler._load;scheduler._load=function(s,r){if(s=s||this._load_url,"object"==typeof s)for(var a=e(this._loaded),n=0;n<s.length;n++)this._loaded=new a,t.call(this,s[n],r);else t.apply(this,arguments)}}();
+!function(){function e(e){var t=function(){};return t.prototype=e,t}var t=scheduler._load;scheduler._load=function(a,r){if(a=a||this._load_url,"object"==typeof a)for(var n=e(this._loaded),i=0;i<a.length;i++)this._loaded=new n,t.call(this,a[i],r);else t.apply(this,arguments)}}();
//# sourceMappingURL=../sources/ext/dhtmlxscheduler_multisource.js.map \ No newline at end of file
diff --git a/codebase/ext/dhtmlxscheduler_mvc.js b/codebase/ext/dhtmlxscheduler_mvc.js
index 9cea230..3bfc2d4 100644
--- a/codebase/ext/dhtmlxscheduler_mvc.js
+++ b/codebase/ext/dhtmlxscheduler_mvc.js
@@ -1,12 +1,15 @@
/*
-dhtmlxScheduler v.4.3.0 Stardard
+@license
+dhtmlxScheduler v.4.3.1
This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited.
(c) Dinamenta, UAB.
*/
-!function(){function e(e){var t={};for(var s in e)0!==s.indexOf("_")&&(t[s]=e[s]);return d.use_id||delete t.id,t}function t(){clearTimeout(n),n=setTimeout(function(){scheduler.updateView()},1)}function s(e){e._loading=!0,e._not_render=!0,e.callEvent("onXLS",[])}function r(e){e._not_render=!1,e._render_wait&&e.render_view_data(),e._loading=!1,e.callEvent("onXLE",[])}function a(e){return d.use_id?e.id:e.cid}var n,d={use_id:!1};scheduler.backbone=function(n,i){function l(){o.length&&(scheduler.parse(o,"json"),o=[])
-}i&&(d=i),n.bind("change",function(e){var s=a(e),r=scheduler._events[s]=e.toJSON();r.id=s,scheduler._init_event(r),t()}),n.bind("remove",function(e){var t=a(e);scheduler._events[t]&&scheduler.deleteEvent(t)});var o=[];n.bind("add",function(e){var t=a(e);if(!scheduler._events[t]){var s=e.toJSON();s.id=t,scheduler._init_event(s),o.push(s),1==o.length&&setTimeout(l,1)}}),n.bind("request",function(e){e instanceof Backbone.Collection&&s(scheduler)}),n.bind("sync",function(e){e instanceof Backbone.Collection&&r(scheduler)
-}),n.bind("error",function(e){e instanceof Backbone.Collection&&r(scheduler)}),scheduler.attachEvent("onEventCreated",function(e){var t=new n.model(scheduler.getEvent(e));return scheduler._events[e]=t.toJSON(),scheduler._events[e].id=e,!0}),scheduler.attachEvent("onEventAdded",function(t){if(!n.get(t)){var s=e(scheduler.getEvent(t)),r=new n.model(s),d=a(r);d!=t&&this.changeEventId(t,d),n.add(r),n.trigger("scheduler:add",r)}return!0}),scheduler.attachEvent("onEventChanged",function(t){var s=n.get(t),r=e(scheduler.getEvent(t));
-return s.set(r),n.trigger("scheduler:change",s),!0}),scheduler.attachEvent("onEventDeleted",function(e){var t=n.get(e);return t&&(n.trigger("scheduler:remove",t),n.remove(e)),!0})}}();
+!function(){function e(e){var t={};for(var a in e)0!==a.indexOf("_")&&(t[a]=e[a]);return d.use_id||delete t.id,t}function t(){clearTimeout(i),i=setTimeout(function(){scheduler.updateView()},1)}function a(e){e._loading=!0,e._not_render=!0,e.callEvent("onXLS",[])}function r(e){e._not_render=!1,e._render_wait&&e.render_view_data(),e._loading=!1,e.callEvent("onXLE",[])}function n(e){return d.use_id?e.id:e.cid}var i,d={use_id:!1};scheduler.backbone=function(i,l){function s(){o.length&&(scheduler.parse(o,"json"),
+o=[])}l&&(d=l),i.bind("change",function(e,a){var r=n(e),i=scheduler._events[r]=e.toJSON();i.id=r,scheduler._init_event(i),t()}),i.bind("remove",function(e,t){var a=n(e);scheduler._events[a]&&scheduler.deleteEvent(a)});var o=[];i.bind("add",function(e,t){var a=n(e);if(!scheduler._events[a]){var r=e.toJSON();r.id=a,scheduler._init_event(r),o.push(r),1==o.length&&setTimeout(s,1)}}),i.bind("request",function(e){e instanceof Backbone.Collection&&a(scheduler)}),i.bind("sync",function(e){e instanceof Backbone.Collection&&r(scheduler);
+
+}),i.bind("error",function(e){e instanceof Backbone.Collection&&r(scheduler)}),scheduler.attachEvent("onEventCreated",function(e){var t=new i.model(scheduler.getEvent(e));return scheduler._events[e]=t.toJSON(),scheduler._events[e].id=e,!0}),scheduler.attachEvent("onEventAdded",function(t){if(!i.get(t)){var a=e(scheduler.getEvent(t)),r=new i.model(a),d=n(r);d!=t&&this.changeEventId(t,d),i.add(r),i.trigger("scheduler:add",r)}return!0}),scheduler.attachEvent("onEventChanged",function(t){var a=i.get(t),r=e(scheduler.getEvent(t));
+
+return a.set(r),i.trigger("scheduler:change",a),!0}),scheduler.attachEvent("onEventDeleted",function(e){var t=i.get(e);return t&&(i.trigger("scheduler:remove",t),i.remove(e)),!0})}}();
//# sourceMappingURL=../sources/ext/dhtmlxscheduler_mvc.js.map \ No newline at end of file
diff --git a/codebase/ext/dhtmlxscheduler_offline.js b/codebase/ext/dhtmlxscheduler_offline.js
index 587dbf7..7732743 100644
--- a/codebase/ext/dhtmlxscheduler_offline.js
+++ b/codebase/ext/dhtmlxscheduler_offline.js
@@ -1,12 +1,16 @@
/*
-dhtmlxScheduler v.4.3.0 Stardard
+@license
+dhtmlxScheduler v.4.3.1
This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited.
(c) Dinamenta, UAB.
*/
-scheduler.load=function(e,t){var s;return"string"==typeof t&&(this._process=t,s=t,t=arguments[2]),this._load_url=e,this._after_call=t,e.$proxy?void e.load(this,"string"==typeof s?s:null):void this._load(e,this._date)},scheduler._dp_init_backup=scheduler._dp_init,scheduler._dp_init=function(e){e._sendData=function(e,t){if(e){if(!this.callEvent("onBeforeDataSending",t?[t,this.getState(t),e]:[null,null,e]))return!1;if(t&&(this._in_progress[t]=(new Date).valueOf()),this.serverProcessor.$proxy){var s="POST"!=this._tMode?"get":"post",r=[];
-for(var a in e)r.push({id:a,data:e[a],operation:this.getState(a)});return void this.serverProcessor._send(r,s,this)}var n=new dtmlXMLLoaderObject(this.afterUpdate,this,!0),i=this.serverProcessor+(this._user?getUrlSymbol(this.serverProcessor)+["dhx_user="+this._user,"dhx_version="+this.obj.getUserData(0,"version")].join("&"):"");"POST"!=this._tMode?n.loadXML(i+(-1!=i.indexOf("?")?"&":"?")+this.serialize(e,t)):n.loadXML(i,!0,this.serialize(e,t)),this._waitMode++}},e._updatesToParams=function(e){for(var t={},s=0;s<e.length;s++)t[e[s].id]=e[s].data;
-return this.serialize(t)},e._processResult=function(e,t,s){if(200==s.status)t=new dtmlXMLLoaderObject(function(){},this,!0),t.loadXMLString(e),t.xmlDoc=s,this.afterUpdate(this,null,null,null,t);else for(var r in this._in_progress){var a=this.getState(r);this.afterUpdateCallback(r,r,a,null)}},this._dp_init_backup(e)},window.dataProcessor&&(dataProcessor.prototype.init=function(e){this.init_original(e),e._dataprocessor=this,this.setTransactionMode("POST",!0),this.serverProcessor.$proxy||(this.serverProcessor+=(-1!=this.serverProcessor.indexOf("?")?"&":"?")+"editing=true")
+scheduler.load=function(e,t){var a;return"string"==typeof t&&(this._process=t,a=t,t=arguments[2]),this._load_url=e,this._after_call=t,e.$proxy?void e.load(this,"string"==typeof a?a:null):void this._load(e,this._date)},scheduler._dp_init_backup=scheduler._dp_init,scheduler._dp_init=function(e){e._sendData=function(e,t){if(e){if(!this.callEvent("onBeforeDataSending",t?[t,this.getState(t),e]:[null,null,e]))return!1;if(t&&(this._in_progress[t]=(new Date).valueOf()),this.serverProcessor.$proxy){var a="POST"!=this._tMode?"get":"post",r=[];
+
+for(var n in e)r.push({id:n,data:e[n],operation:this.getState(n)});return void this.serverProcessor._send(r,a,this)}var i=new dtmlXMLLoaderObject(this.afterUpdate,this,!0),d=this.serverProcessor+(this._user?getUrlSymbol(this.serverProcessor)+["dhx_user="+this._user,"dhx_version="+this.obj.getUserData(0,"version")].join("&"):"");"POST"!=this._tMode?i.loadXML(d+(-1!=d.indexOf("?")?"&":"?")+this.serialize(e,t)):i.loadXML(d,!0,this.serialize(e,t)),this._waitMode++}},e._updatesToParams=function(e){for(var t={},a=0;a<e.length;a++)t[e[a].id]=e[a].data;
+
+return this.serialize(t)},e._processResult=function(e,t,a){if(200==a.status)t=new dtmlXMLLoaderObject(function(){},this,!0),t.loadXMLString(e),t.xmlDoc=a,this.afterUpdate(this,null,null,null,t);else for(var r in this._in_progress){var n=this.getState(r);this.afterUpdateCallback(r,r,n,null)}},this._dp_init_backup(e)},window.dataProcessor&&(dataProcessor.prototype.init=function(e){this.init_original(e),e._dataprocessor=this,this.setTransactionMode("POST",!0),this.serverProcessor.$proxy||(this.serverProcessor+=(-1!=this.serverProcessor.indexOf("?")?"&":"?")+"editing=true");
+
});
//# sourceMappingURL=../sources/ext/dhtmlxscheduler_offline.js.map \ No newline at end of file
diff --git a/codebase/ext/dhtmlxscheduler_outerdrag.js b/codebase/ext/dhtmlxscheduler_outerdrag.js
index bf4cc82..b1d16e2 100644
--- a/codebase/ext/dhtmlxscheduler_outerdrag.js
+++ b/codebase/ext/dhtmlxscheduler_outerdrag.js
@@ -1,11 +1,13 @@
/*
-dhtmlxScheduler v.4.3.0 Stardard
+@license
+dhtmlxScheduler v.4.3.1
This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited.
(c) Dinamenta, UAB.
*/
-scheduler.attachEvent("onTemplatesReady",function(){var e,t=new dhtmlDragAndDropObject,r=t.stopDrag;t.stopDrag=function(t){return e=t||event,r.apply(this,arguments)},t.addDragLanding(scheduler._els.dhx_cal_data[0],{_drag:function(t,r,s,a){if(!scheduler.checkEvent("onBeforeExternalDragIn")||scheduler.callEvent("onBeforeExternalDragIn",[t,r,s,a,e])){var n=scheduler.attachEvent("onEventCreated",function(r){scheduler.callEvent("onExternalDragIn",[r,t,e])||(this._drag_mode=this._drag_id=null,this.deleteEvent(r))
-}),i=scheduler.getActionData(e),d={start_date:new Date(i.date)};if(scheduler.matrix&&scheduler.matrix[scheduler._mode]){var l=scheduler.matrix[scheduler._mode];d[l.y_property]=i.section;var o=scheduler._locate_cell_timeline(e);d.start_date=l._trace_x[o.x],d.end_date=scheduler.date.add(d.start_date,l.x_step,l.x_unit)}scheduler._props&&scheduler._props[scheduler._mode]&&(d[scheduler._props[scheduler._mode].map_to]=i.section),scheduler.addEventNow(d),scheduler.detachEvent(n)}},_dragIn:function(e){return e
-},_dragOut:function(){return this}})});
+scheduler.attachEvent("onTemplatesReady",function(){var e,t=new dhtmlDragAndDropObject,a=t.stopDrag;t.stopDrag=function(t){return e=t||event,a.apply(this,arguments)},t.addDragLanding(scheduler._els.dhx_cal_data[0],{_drag:function(t,a,r,n){if(!scheduler.checkEvent("onBeforeExternalDragIn")||scheduler.callEvent("onBeforeExternalDragIn",[t,a,r,n,e])){var i=scheduler.attachEvent("onEventCreated",function(a){scheduler.callEvent("onExternalDragIn",[a,t,e])||(this._drag_mode=this._drag_id=null,this.deleteEvent(a));
+
+}),d=scheduler.getActionData(e),l={start_date:new Date(d.date)};if(scheduler.matrix&&scheduler.matrix[scheduler._mode]){var s=scheduler.matrix[scheduler._mode];l[s.y_property]=d.section;var o=scheduler._locate_cell_timeline(e);l.start_date=s._trace_x[o.x],l.end_date=scheduler.date.add(l.start_date,s.x_step,s.x_unit)}scheduler._props&&scheduler._props[scheduler._mode]&&(l[scheduler._props[scheduler._mode].map_to]=d.section),scheduler.addEventNow(l),scheduler.detachEvent(i)}},_dragIn:function(e,t){
+return e},_dragOut:function(e){return this}})});
//# sourceMappingURL=../sources/ext/dhtmlxscheduler_outerdrag.js.map \ No newline at end of file
diff --git a/codebase/ext/dhtmlxscheduler_pdf.js b/codebase/ext/dhtmlxscheduler_pdf.js
index 59c8a41..0ade92f 100644
--- a/codebase/ext/dhtmlxscheduler_pdf.js
+++ b/codebase/ext/dhtmlxscheduler_pdf.js
@@ -1,23 +1,32 @@
/*
-dhtmlxScheduler v.4.3.0 Stardard
+@license
+dhtmlxScheduler v.4.3.1
This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited.
(c) Dinamenta, UAB.
*/
-!function(){function e(e){return e.replace(y,"\n").replace(p,"")}function t(e,t){e=parseFloat(e),t=parseFloat(t),isNaN(t)||(e-=t);var r=s(e);return e=e-r.width+r.cols*g,isNaN(e)?"auto":100*e/g}function r(e,t,r){e=parseFloat(e),t=parseFloat(t),!isNaN(t)&&r&&(e-=t);var a=s(e);return e=e-a.width+a.cols*g,isNaN(e)?"auto":100*e/(g-(isNaN(t)?0:t))}function s(e){for(var t=0,r=scheduler._els.dhx_cal_header[0].childNodes,s=r[1]?r[1].childNodes:r[0].childNodes,a=0;a<s.length;a++){var n=s[a].style?s[a]:s[a].parentNode,d=parseFloat(n.style.width);
-if(!(e>d))break;e-=d+1,t+=d+1}return{width:t,cols:a}}function a(e){return e=parseFloat(e),isNaN(e)?"auto":100*e/m}function n(e,t){return(window.getComputedStyle?window.getComputedStyle(e,null)[t]:e.currentStyle?e.currentStyle[t]:null)||""}function d(e,t){for(var r=parseInt(e.style.left,10),s=0;s<scheduler._cols.length;s++)if(r-=scheduler._cols[s],0>r)return s;return t}function i(e,t){for(var r=parseInt(e.style.top,10),s=0;s<scheduler._colsS.heights.length;s++)if(scheduler._colsS.heights[s]>r)return s;
-return t}function l(e){return e?"<"+e+">":""}function o(e){return e?"</"+e+">":""}function _(e,t,r,s){var a="<"+e+" profile='"+t+"'";return r&&(a+=" header='"+r+"'"),s&&(a+=" footer='"+s+"'"),a+=">"}function h(){var t="",r=scheduler._mode;if(scheduler.matrix&&scheduler.matrix[scheduler._mode]&&(r="cell"==scheduler.matrix[scheduler._mode].render?"matrix":"timeline"),t+="<scale mode='"+r+"' today='"+scheduler._els.dhx_cal_date[0].innerHTML+"'>","week_agenda"==scheduler._mode)for(var s=scheduler._els.dhx_cal_data[0].getElementsByTagName("DIV"),a=0;a<s.length;a++)"dhx_wa_scale_bar"==s[a].className&&(t+="<column>"+e(s[a].innerHTML)+"</column>");
-else if("agenda"==scheduler._mode||"map"==scheduler._mode){var s=scheduler._els.dhx_cal_header[0].childNodes[0].childNodes;t+="<column>"+e(s[0].innerHTML)+"</column><column>"+e(s[1].innerHTML)+"</column>"}else if("year"==scheduler._mode)for(var s=scheduler._els.dhx_cal_data[0].childNodes,a=0;a<s.length;a++)t+="<month label='"+e(s[a].childNodes[0].innerHTML)+"'>",t+=u(s[a].childNodes[1].childNodes),t+=c(s[a].childNodes[2]),t+="</month>";else{t+="<x>";var s=scheduler._els.dhx_cal_header[0].childNodes;
-t+=u(s),t+="</x>";var n=scheduler._els.dhx_cal_data[0];if(scheduler.matrix&&scheduler.matrix[scheduler._mode]){t+="<y>";for(var a=0;a<n.firstChild.rows.length;a++){var d=n.firstChild.rows[a];t+="<row><![CDATA["+e(d.cells[0].innerHTML)+"]]></row>"}t+="</y>",m=n.firstChild.rows[0].cells[0].offsetHeight}else if("TABLE"==n.firstChild.tagName)t+=c(n);else{for(n=n.childNodes[n.childNodes.length-1];-1==n.className.indexOf("dhx_scale_holder");)n=n.previousSibling;n=n.childNodes,t+="<y>";for(var a=0;a<n.length;a++)t+="\n<row><![CDATA["+e(n[a].innerHTML)+"]]></row>";
-t+="</y>",m=n[0].offsetHeight}}return t+="</scale>"}function c(t){for(var r="",s=t.firstChild.rows,a=0;a<s.length;a++){for(var n=[],d=0;d<s[a].cells.length;d++)n.push(s[a].cells[d].firstChild.innerHTML);r+="\n<row height='"+t.firstChild.rows[a].cells[0].offsetHeight+"'><![CDATA["+e(n.join("|"))+"]]></row>",m=t.firstChild.rows[0].cells[0].offsetHeight}return r}function u(t){var r,s="";scheduler.matrix&&scheduler.matrix[scheduler._mode]&&(scheduler.matrix[scheduler._mode].second_scale&&(r=t[1].childNodes),t=t[0].childNodes);
-for(var a=0;a<t.length;a++)s+="\n<column><![CDATA["+e(t[a].innerHTML)+"]]></column>";if(g=t[0].offsetWidth,r)for(var n=0,d=t[0].offsetWidth,i=1,a=0;a<r.length;a++)s+="\n<column second_scale='"+i+"'><![CDATA["+e(r[a].innerHTML)+"]]></column>",n+=r[a].offsetWidth,n>=d&&(d+=t[i]?t[i].offsetWidth:0,i++),g=r[0].offsetWidth;return s}function f(s){var l="",o=scheduler._rendered,_=scheduler.matrix&&scheduler.matrix[scheduler._mode];if("agenda"==scheduler._mode||"map"==scheduler._mode)for(var h=0;h<o.length;h++)l+="<event><head><![CDATA["+e(o[h].childNodes[0].innerHTML)+"]]></head><body><![CDATA["+e(o[h].childNodes[2].innerHTML)+"]]></body></event>";
-else if("week_agenda"==scheduler._mode)for(var h=0;h<o.length;h++)l+="<event day='"+o[h].parentNode.getAttribute("day")+"'><body>"+e(o[h].innerHTML)+"</body></event>";else if("year"==scheduler._mode)for(var o=scheduler.get_visible_events(),h=0;h<o.length;h++){var c=o[h].start_date;for(c.valueOf()<scheduler._min_date.valueOf()&&(c=scheduler._min_date);c<o[h].end_date;){var u=c.getMonth()+12*(c.getFullYear()-scheduler._min_date.getFullYear())-scheduler.week_starts._month,f=scheduler.week_starts[u]+c.getDate()-1,v=s?n(scheduler._get_year_cell(c),"color"):"",g=s?n(scheduler._get_year_cell(c),"backgroundColor"):"";
-if(l+="<event day='"+f%7+"' week='"+Math.floor(f/7)+"' month='"+u+"' backgroundColor='"+g+"' color='"+v+"'></event>",c=scheduler.date.add(c,1,"day"),c.valueOf()>=scheduler._max_date.valueOf())break}}else if(_&&"cell"==_.render)for(var o=scheduler._els.dhx_cal_data[0].getElementsByTagName("TD"),h=0;h<o.length;h++){var v=s?n(o[h],"color"):"",g=s?n(o[h],"backgroundColor"):"";l+="\n<event><body backgroundColor='"+g+"' color='"+v+"'><![CDATA["+e(o[h].innerHTML)+"]]></body></event>"}else for(var h=0;h<o.length;h++){var p,y;
-if(scheduler.matrix&&scheduler.matrix[scheduler._mode])p=t(o[h].style.left),y=t(o[h].offsetWidth)-1;else{var x=scheduler.config.use_select_menu_space?0:26;p=r(o[h].style.left,x,!0),y=r(o[h].style.width,x)-1}if(!isNaN(1*y)){var b=a(o[h].style.top),w=a(o[h].style.height),E=o[h].className.split(" ")[0].replace("dhx_cal_","");if("dhx_tooltip_line"!==E){var k=scheduler.getEvent(o[h].getAttribute("event_id"));if(k){var f=k._sday,D=k._sweek,M=k._length||0;if("month"==scheduler._mode)w=parseInt(o[h].offsetHeight,10),b=parseInt(o[h].style.top,10)-scheduler.xy.month_head_height,f=d(o[h],f),D=i(o[h],D);
-else if(scheduler.matrix&&scheduler.matrix[scheduler._mode]){f=0;var N=o[h].parentNode.parentNode.parentNode;D=N.rowIndex;var C=m;m=o[h].parentNode.offsetHeight,b=a(o[h].style.top),b-=.2*b,m=C}else{if(o[h].parentNode==scheduler._els.dhx_cal_data[0])continue;var L=scheduler._els.dhx_cal_data[0].childNodes[0],O=parseFloat(-1!=L.className.indexOf("dhx_scale_holder")?L.style.left:0);p+=t(o[h].parentNode.style.left,O)}if(l+="\n<event week='"+D+"' day='"+f+"' type='"+E+"' x='"+p+"' y='"+b+"' width='"+y+"' height='"+w+"' len='"+M+"'>","event"==E){l+="<header><![CDATA["+e(o[h].childNodes[1].innerHTML)+"]]></header>";
-var v=s?n(o[h].childNodes[2],"color"):"",g=s?n(o[h].childNodes[2],"backgroundColor"):"";l+="<body backgroundColor='"+g+"' color='"+v+"'><![CDATA["+e(o[h].childNodes[2].innerHTML)+"]]></body>"}else{var v=s?n(o[h],"color"):"",g=s?n(o[h],"backgroundColor"):"";l+="<body backgroundColor='"+g+"' color='"+v+"'><![CDATA["+e(o[h].innerHTML)+"]]></body>"}l+="</event>"}}}}return l}function v(e,t,r,s,a,n,d){var i=!1;"fullcolor"==a&&(i=!0,a="color"),a=a||"color";var c=scheduler.uid(),u=document.createElement("div");
-u.style.display="none",document.body.appendChild(u),u.innerHTML='<form id="'+c+'" method="post" target="_blank" action="'+s+'" accept-charset="utf-8" enctype="application/x-www-form-urlencoded"><input type="hidden" name="mycoolxmlbody"/> </form>';var v="";if(e){var g=scheduler._date,m=scheduler._mode;t=scheduler.date[r+"_start"](t),t=scheduler.date["get_"+r+"_end"]?scheduler.date["get_"+r+"_end"](t):scheduler.date.add(t,1,r),v=_("pages",a,n,d);for(var p=new Date(e);+t>+p;p=scheduler.date.add(p,1,r))scheduler.setCurrentView(p,r),v+=l("page")+h().replace("–","-")+f(i)+o("page");
-v+=o("pages"),scheduler.setCurrentView(g,m)}else v=_("data",a,n,d)+h().replace("–","-")+f(i)+o("data");document.getElementById(c).firstChild.value=encodeURIComponent(v),document.getElementById(c).submit(),u.parentNode.removeChild(u)}var g,m,p=new RegExp("<[^>]*>","g"),y=new RegExp("<br[^>]*>","g");scheduler.toPDF=function(e,t,r,s){return v.apply(this,[null,null,null,e,t,r,s])},scheduler.toPDFRange=function(e,t){return"string"==typeof e&&(e=scheduler.templates.api_date(e),t=scheduler.templates.api_date(t)),v.apply(this,arguments)
-}}();
+!function(){function e(e){return e.replace(f,"\n").replace(b,"")}function t(e,t){e=parseFloat(e),t=parseFloat(t),isNaN(t)||(e-=t);var a=r(e);return e=e-a.width+a.cols*m,isNaN(e)?"auto":100*e/m}function a(e,t,a){e=parseFloat(e),t=parseFloat(t),!isNaN(t)&&a&&(e-=t);var n=r(e);return e=e-n.width+n.cols*m,isNaN(e)?"auto":100*e/(m-(isNaN(t)?0:t))}function r(e){for(var t=0,a=scheduler._els.dhx_cal_header[0].childNodes,r=a[1]?a[1].childNodes:a[0].childNodes,n=0;n<r.length;n++){var i=r[n].style?r[n]:r[n].parentNode,d=parseFloat(i.style.width);
+
+if(!(e>d))break;e-=d+1,t+=d+1}return{width:t,cols:n}}function n(e){return e=parseFloat(e),isNaN(e)?"auto":100*e/g}function i(e,t){return(window.getComputedStyle?window.getComputedStyle(e,null)[t]:e.currentStyle?e.currentStyle[t]:null)||""}function d(e,t){for(var a=parseInt(e.style.left,10),r=0;r<scheduler._cols.length;r++)if(a-=scheduler._cols[r],0>a)return r;return t}function l(e,t){for(var a=parseInt(e.style.top,10),r=0;r<scheduler._colsS.heights.length;r++)if(scheduler._colsS.heights[r]>a)return r;
+
+return t}function s(e){return e?"<"+e+">":""}function o(e){return e?"</"+e+">":""}function _(e,t,a,r){var n="<"+e+" profile='"+t+"'";return a&&(n+=" header='"+a+"'"),r&&(n+=" footer='"+r+"'"),n+=">"}function c(){var t="",a=scheduler._mode;if(scheduler.matrix&&scheduler.matrix[scheduler._mode]&&(a="cell"==scheduler.matrix[scheduler._mode].render?"matrix":"timeline"),t+="<scale mode='"+a+"' today='"+scheduler._els.dhx_cal_date[0].innerHTML+"'>","week_agenda"==scheduler._mode)for(var r=scheduler._els.dhx_cal_data[0].getElementsByTagName("DIV"),n=0;n<r.length;n++)"dhx_wa_scale_bar"==r[n].className&&(t+="<column>"+e(r[n].innerHTML)+"</column>");
+else if("agenda"==scheduler._mode||"map"==scheduler._mode){var r=scheduler._els.dhx_cal_header[0].childNodes[0].childNodes;t+="<column>"+e(r[0].innerHTML)+"</column><column>"+e(r[1].innerHTML)+"</column>"}else if("year"==scheduler._mode)for(var r=scheduler._els.dhx_cal_data[0].childNodes,n=0;n<r.length;n++)t+="<month label='"+e(r[n].childNodes[0].innerHTML)+"'>",t+=h(r[n].childNodes[1].childNodes),t+=u(r[n].childNodes[2]),t+="</month>";else{t+="<x>";var r=scheduler._els.dhx_cal_header[0].childNodes;
+
+t+=h(r),t+="</x>";var i=scheduler._els.dhx_cal_data[0];if(scheduler.matrix&&scheduler.matrix[scheduler._mode]){t+="<y>";for(var n=0;n<i.firstChild.rows.length;n++){var d=i.firstChild.rows[n];t+="<row><![CDATA["+e(d.cells[0].innerHTML)+"]]></row>"}t+="</y>",g=i.firstChild.rows[0].cells[0].offsetHeight}else if("TABLE"==i.firstChild.tagName)t+=u(i);else{for(i=i.childNodes[i.childNodes.length-1];-1==i.className.indexOf("dhx_scale_holder");)i=i.previousSibling;i=i.childNodes,t+="<y>";for(var n=0;n<i.length;n++)t+="\n<row><![CDATA["+e(i[n].innerHTML)+"]]></row>";
+
+t+="</y>",g=i[0].offsetHeight}}return t+="</scale>"}function u(t){for(var a="",r=t.firstChild.rows,n=0;n<r.length;n++){for(var i=[],d=0;d<r[n].cells.length;d++)i.push(r[n].cells[d].firstChild.innerHTML);a+="\n<row height='"+t.firstChild.rows[n].cells[0].offsetHeight+"'><![CDATA["+e(i.join("|"))+"]]></row>",g=t.firstChild.rows[0].cells[0].offsetHeight}return a}function h(t){var a,r="";scheduler.matrix&&scheduler.matrix[scheduler._mode]&&(scheduler.matrix[scheduler._mode].second_scale&&(a=t[1].childNodes),
+t=t[0].childNodes);for(var n=0;n<t.length;n++)r+="\n<column><![CDATA["+e(t[n].innerHTML)+"]]></column>";if(m=t[0].offsetWidth,a)for(var i=0,d=t[0].offsetWidth,l=1,n=0;n<a.length;n++)r+="\n<column second_scale='"+l+"'><![CDATA["+e(a[n].innerHTML)+"]]></column>",i+=a[n].offsetWidth,i>=d&&(d+=t[l]?t[l].offsetWidth:0,l++),m=a[0].offsetWidth;return r}function p(r){var s="",o=scheduler._rendered,_=scheduler.matrix&&scheduler.matrix[scheduler._mode];if("agenda"==scheduler._mode||"map"==scheduler._mode)for(var c=0;c<o.length;c++)s+="<event><head><![CDATA["+e(o[c].childNodes[0].innerHTML)+"]]></head><body><![CDATA["+e(o[c].childNodes[2].innerHTML)+"]]></body></event>";
+else if("week_agenda"==scheduler._mode)for(var c=0;c<o.length;c++)s+="<event day='"+o[c].parentNode.getAttribute("day")+"'><body>"+e(o[c].innerHTML)+"</body></event>";else if("year"==scheduler._mode)for(var o=scheduler.get_visible_events(),c=0;c<o.length;c++){var u=o[c].start_date;for(u.valueOf()<scheduler._min_date.valueOf()&&(u=scheduler._min_date);u<o[c].end_date;){var h=u.getMonth()+12*(u.getFullYear()-scheduler._min_date.getFullYear())-scheduler.week_starts._month,p=scheduler.week_starts[h]+u.getDate()-1,v=r?i(scheduler._get_year_cell(u),"color"):"",m=r?i(scheduler._get_year_cell(u),"backgroundColor"):"";
+
+if(s+="<event day='"+p%7+"' week='"+Math.floor(p/7)+"' month='"+h+"' backgroundColor='"+m+"' color='"+v+"'></event>",u=scheduler.date.add(u,1,"day"),u.valueOf()>=scheduler._max_date.valueOf())break}}else if(_&&"cell"==_.render)for(var o=scheduler._els.dhx_cal_data[0].getElementsByTagName("TD"),c=0;c<o.length;c++){var v=r?i(o[c],"color"):"",m=r?i(o[c],"backgroundColor"):"";s+="\n<event><body backgroundColor='"+m+"' color='"+v+"'><![CDATA["+e(o[c].innerHTML)+"]]></body></event>"}else for(var c=0;c<o.length;c++){
+var b,f;if(scheduler.matrix&&scheduler.matrix[scheduler._mode])b=t(o[c].style.left),f=t(o[c].offsetWidth)-1;else{var y=scheduler.config.use_select_menu_space?0:26;b=a(o[c].style.left,y,!0),f=a(o[c].style.width,y)-1}if(!isNaN(1*f)){var x=n(o[c].style.top),k=n(o[c].style.height),w=o[c].className.split(" ")[0].replace("dhx_cal_","");if("dhx_tooltip_line"!==w){var D=scheduler.getEvent(o[c].getAttribute("event_id"));if(D){var p=D._sday,E=D._sweek,M=D._length||0;if("month"==scheduler._mode)k=parseInt(o[c].offsetHeight,10),
+x=parseInt(o[c].style.top,10)-scheduler.xy.month_head_height,p=d(o[c],p),E=l(o[c],E);else if(scheduler.matrix&&scheduler.matrix[scheduler._mode]){p=0;var S=o[c].parentNode.parentNode.parentNode;E=S.rowIndex;var N=g;g=o[c].parentNode.offsetHeight,x=n(o[c].style.top),x-=.2*x,g=N}else{if(o[c].parentNode==scheduler._els.dhx_cal_data[0])continue;var O=scheduler._els.dhx_cal_data[0].childNodes[0],T=parseFloat(-1!=O.className.indexOf("dhx_scale_holder")?O.style.left:0);b+=t(o[c].parentNode.style.left,T);
+
+}if(s+="\n<event week='"+E+"' day='"+p+"' type='"+w+"' x='"+b+"' y='"+x+"' width='"+f+"' height='"+k+"' len='"+M+"'>","event"==w){s+="<header><![CDATA["+e(o[c].childNodes[1].innerHTML)+"]]></header>";var v=r?i(o[c].childNodes[2],"color"):"",m=r?i(o[c].childNodes[2],"backgroundColor"):"";s+="<body backgroundColor='"+m+"' color='"+v+"'><![CDATA["+e(o[c].childNodes[2].innerHTML)+"]]></body>"}else{var v=r?i(o[c],"color"):"",m=r?i(o[c],"backgroundColor"):"";s+="<body backgroundColor='"+m+"' color='"+v+"'><![CDATA["+e(o[c].innerHTML)+"]]></body>";
+
+}s+="</event>"}}}}return s}function v(e,t,a,r,n,i,d){var l=!1;"fullcolor"==n&&(l=!0,n="color"),n=n||"color";var u=scheduler.uid(),h=document.createElement("div");h.style.display="none",document.body.appendChild(h),h.innerHTML='<form id="'+u+'" method="post" target="_blank" action="'+r+'" accept-charset="utf-8" enctype="application/x-www-form-urlencoded"><input type="hidden" name="mycoolxmlbody"/> </form>';var v="";if(e){var m=scheduler._date,g=scheduler._mode;t=scheduler.date[a+"_start"](t),t=scheduler.date["get_"+a+"_end"]?scheduler.date["get_"+a+"_end"](t):scheduler.date.add(t,1,a),
+v=_("pages",n,i,d);for(var b=new Date(e);+t>+b;b=scheduler.date.add(b,1,a))scheduler.setCurrentView(b,a),v+=s("page")+c().replace("–","-")+p(l)+o("page");v+=o("pages"),scheduler.setCurrentView(m,g)}else v=_("data",n,i,d)+c().replace("–","-")+p(l)+o("data");document.getElementById(u).firstChild.value=encodeURIComponent(v),document.getElementById(u).submit(),h.parentNode.removeChild(h)}var m,g,b=new RegExp("<[^>]*>","g"),f=new RegExp("<br[^>]*>","g");scheduler.toPDF=function(e,t,a,r){return v.apply(this,[null,null,null,e,t,a,r]);
+
+},scheduler.toPDFRange=function(e,t,a,r,n,i,d){return"string"==typeof e&&(e=scheduler.templates.api_date(e),t=scheduler.templates.api_date(t)),v.apply(this,arguments)}}();
//# sourceMappingURL=../sources/ext/dhtmlxscheduler_pdf.js.map \ No newline at end of file
diff --git a/codebase/ext/dhtmlxscheduler_quick_info.js b/codebase/ext/dhtmlxscheduler_quick_info.js
index 1ab52cf..015ce84 100644
--- a/codebase/ext/dhtmlxscheduler_quick_info.js
+++ b/codebase/ext/dhtmlxscheduler_quick_info.js
@@ -1,17 +1,21 @@
/*
-dhtmlxScheduler v.4.3.0 Stardard
+@license
+dhtmlxScheduler v.4.3.1
This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited.
(c) Dinamenta, UAB.
*/
-scheduler.config.icons_select=["icon_details","icon_delete"],scheduler.config.details_on_create=!0,scheduler.config.show_quick_info=!0,scheduler.xy.menu_width=0,scheduler.attachEvent("onClick",function(e){return scheduler.showQuickInfo(e),!0}),function(){for(var e=["onEmptyClick","onViewChange","onLightbox","onBeforeEventDelete","onBeforeDrag"],t=function(){return scheduler._hideQuickInfo(),!0},r=0;r<e.length;r++)scheduler.attachEvent(e[r],t)}(),scheduler.templates.quick_info_title=function(e,t,r){return r.text.substr(0,50)
-},scheduler.templates.quick_info_content=function(e,t,r){return r.details||r.text},scheduler.templates.quick_info_date=function(e,t,r){return scheduler.isOneDayEvent(r)?scheduler.templates.day_date(e,t,r)+" "+scheduler.templates.event_header(e,t,r):scheduler.templates.week_date(e,t,r)},scheduler.showQuickInfo=function(e){if(e!=this._quick_info_box_id&&this.config.show_quick_info){this.hideQuickInfo(!0);var t=this._get_event_counter_part(e);t&&(this._quick_info_box=this._init_quick_info(t),this._fill_quick_data(e),this._show_quick_info(t))
-}},scheduler._hideQuickInfo=function(){scheduler.hideQuickInfo()},scheduler.hideQuickInfo=function(e){var t=this._quick_info_box;if(this._quick_info_box_id=0,t&&t.parentNode){var r=t._offsetWidth;if(scheduler.config.quick_info_detached)return t.parentNode.removeChild(t);"auto"==t.style.right?t.style.left=-r+"px":t.style.right=-r+"px",e&&t.parentNode.removeChild(t)}},dhtmlxEvent(window,"keydown",function(e){27==e.keyCode&&scheduler.hideQuickInfo()}),scheduler._show_quick_info=function(e){var t=scheduler._quick_info_box;
-scheduler._obj.appendChild(t);var r=t.offsetWidth,s=t.offsetHeight;scheduler.config.quick_info_detached?(t.style.left=e.left-e.dx*(r-e.width)+"px",t.style.top=e.top-(e.dy?s:-e.height)+"px"):(t.style.top=this.xy.scale_height+this.xy.nav_height+20+"px",1==e.dx?(t.style.right="auto",t.style.left=-r+"px",setTimeout(function(){t.style.left="-10px"},1)):(t.style.left="auto",t.style.right=-r+"px",setTimeout(function(){t.style.right="-10px"},1)),t.className=t.className.replace("dhx_qi_left","").replace("dhx_qi_right","")+" dhx_qi_"+(1==e?"left":"right"))
-},scheduler.attachEvent("onTemplatesReady",function(){if(scheduler.hideQuickInfo(),this._quick_info_box){var e=this._quick_info_box;e.parentNode&&e.parentNode.removeChild(e),this._quick_info_box=null}}),scheduler._quick_info_onscroll_handler=function(){scheduler.hideQuickInfo()},scheduler._init_quick_info=function(){if(!this._quick_info_box){var e=scheduler.xy,t=this._quick_info_box=document.createElement("div");t.className="dhx_cal_quick_info",scheduler.$testmode&&(t.className+=" dhx_no_animate");
-var r='<div class="dhx_cal_qi_title" style="height:'+e.quick_info_title+'px"><div class="dhx_cal_qi_tcontent"></div><div class="dhx_cal_qi_tdate"></div></div><div class="dhx_cal_qi_content"></div>';r+='<div class="dhx_cal_qi_controls" style="height:'+e.quick_info_buttons+'px">';for(var s=scheduler.config.icons_select,a=0;a<s.length;a++)r+='<div class="dhx_qi_big_icon '+s[a]+'" title="'+scheduler.locale.labels[s[a]]+"\"><div class='dhx_menu_icon "+s[a]+"'></div><div>"+scheduler.locale.labels[s[a]]+"</div></div>";
-r+="</div>",t.innerHTML=r,dhtmlxEvent(t,"click",function(e){e=e||event,scheduler._qi_button_click(e.target||e.srcElement)}),scheduler.config.quick_info_detached&&(scheduler._detachDomEvent(scheduler._els.dhx_cal_data[0],"scroll",scheduler._quick_info_onscroll_handler),dhtmlxEvent(scheduler._els.dhx_cal_data[0],"scroll",scheduler._quick_info_onscroll_handler))}return this._quick_info_box},scheduler._qi_button_click=function(e){var t=scheduler._quick_info_box;if(e&&e!=t){var r=e.className;if(-1!=r.indexOf("_icon")){var s=scheduler._quick_info_box_id;
-scheduler._click.buttons[r.split(" ")[1].replace("icon_","")](s)}else scheduler._qi_button_click(e.parentNode)}},scheduler._get_event_counter_part=function(e){for(var t=scheduler.getRenderedEvent(e),r=0,s=0,a=t;a&&a!=scheduler._obj;)r+=a.offsetLeft,s+=a.offsetTop-a.scrollTop,a=a.offsetParent;if(a){var n=r+t.offsetWidth/2>scheduler._x/2?1:0,d=s+t.offsetHeight/2>scheduler._y/2?1:0;return{left:r,top:s,dx:n,dy:d,width:t.offsetWidth,height:t.offsetHeight}}return 0},scheduler._fill_quick_data=function(e){var t=scheduler.getEvent(e),r=scheduler._quick_info_box;
-scheduler._quick_info_box_id=e;var s=r.firstChild.firstChild;s.innerHTML=scheduler.templates.quick_info_title(t.start_date,t.end_date,t);var a=s.nextSibling;a.innerHTML=scheduler.templates.quick_info_date(t.start_date,t.end_date,t);var n=r.firstChild.nextSibling;n.innerHTML=scheduler.templates.quick_info_content(t.start_date,t.end_date,t)};
+scheduler.config.icons_select=["icon_details","icon_delete"],scheduler.config.details_on_create=!0,scheduler.config.show_quick_info=!0,scheduler.xy.menu_width=0,scheduler.attachEvent("onClick",function(e){return scheduler.showQuickInfo(e),!0}),function(){for(var e=["onEmptyClick","onViewChange","onLightbox","onBeforeEventDelete","onBeforeDrag"],t=function(){return scheduler._hideQuickInfo(),!0},a=0;a<e.length;a++)scheduler.attachEvent(e[a],t)}(),scheduler.templates.quick_info_title=function(e,t,a){
+return a.text.substr(0,50)},scheduler.templates.quick_info_content=function(e,t,a){return a.details||a.text},scheduler.templates.quick_info_date=function(e,t,a){return scheduler.isOneDayEvent(a)?scheduler.templates.day_date(e,t,a)+" "+scheduler.templates.event_header(e,t,a):scheduler.templates.week_date(e,t,a)},scheduler.showQuickInfo=function(e){if(e!=this._quick_info_box_id&&this.config.show_quick_info){this.hideQuickInfo(!0);var t=this._get_event_counter_part(e);t&&(this._quick_info_box=this._init_quick_info(t),
+this._fill_quick_data(e),this._show_quick_info(t))}},scheduler._hideQuickInfo=function(){scheduler.hideQuickInfo()},scheduler.hideQuickInfo=function(e){var t=this._quick_info_box;if(this._quick_info_box_id=0,t&&t.parentNode){var a=t._offsetWidth;if(scheduler.config.quick_info_detached)return t.parentNode.removeChild(t);"auto"==t.style.right?t.style.left=-a+"px":t.style.right=-a+"px",e&&t.parentNode.removeChild(t)}},dhtmlxEvent(window,"keydown",function(e){27==e.keyCode&&scheduler.hideQuickInfo()}),
+scheduler._show_quick_info=function(e){var t=scheduler._quick_info_box;scheduler._obj.appendChild(t);var a=t.offsetWidth,r=t.offsetHeight;scheduler.config.quick_info_detached?(t.style.left=e.left-e.dx*(a-e.width)+"px",t.style.top=e.top-(e.dy?r:-e.height)+"px"):(t.style.top=this.xy.scale_height+this.xy.nav_height+20+"px",1==e.dx?(t.style.right="auto",t.style.left=-a+"px",setTimeout(function(){t.style.left="-10px"},1)):(t.style.left="auto",t.style.right=-a+"px",setTimeout(function(){t.style.right="-10px";
+
+},1)),t.className=t.className.replace("dhx_qi_left","").replace("dhx_qi_right","")+" dhx_qi_"+(1==e?"left":"right"))},scheduler.attachEvent("onTemplatesReady",function(){if(scheduler.hideQuickInfo(),this._quick_info_box){var e=this._quick_info_box;e.parentNode&&e.parentNode.removeChild(e),this._quick_info_box=null}}),scheduler._quick_info_onscroll_handler=function(e){scheduler.hideQuickInfo()},scheduler._init_quick_info=function(){if(!this._quick_info_box){var e=scheduler.xy,t=this._quick_info_box=document.createElement("div");
+
+t.className="dhx_cal_quick_info",scheduler.$testmode&&(t.className+=" dhx_no_animate");var a='<div class="dhx_cal_qi_title" style="height:'+e.quick_info_title+'px"><div class="dhx_cal_qi_tcontent"></div><div class="dhx_cal_qi_tdate"></div></div><div class="dhx_cal_qi_content"></div>';a+='<div class="dhx_cal_qi_controls" style="height:'+e.quick_info_buttons+'px">';for(var r=scheduler.config.icons_select,n=0;n<r.length;n++)a+='<div class="dhx_qi_big_icon '+r[n]+'" title="'+scheduler.locale.labels[r[n]]+"\"><div class='dhx_menu_icon "+r[n]+"'></div><div>"+scheduler.locale.labels[r[n]]+"</div></div>";
+
+a+="</div>",t.innerHTML=a,dhtmlxEvent(t,"click",function(e){e=e||event,scheduler._qi_button_click(e.target||e.srcElement)}),scheduler.config.quick_info_detached&&(scheduler._detachDomEvent(scheduler._els.dhx_cal_data[0],"scroll",scheduler._quick_info_onscroll_handler),dhtmlxEvent(scheduler._els.dhx_cal_data[0],"scroll",scheduler._quick_info_onscroll_handler))}return this._quick_info_box},scheduler._qi_button_click=function(e){var t=scheduler._quick_info_box;if(e&&e!=t){var a=e.className;if(-1!=a.indexOf("_icon")){
+var r=scheduler._quick_info_box_id;scheduler._click.buttons[a.split(" ")[1].replace("icon_","")](r)}else scheduler._qi_button_click(e.parentNode)}},scheduler._get_event_counter_part=function(e){for(var t=scheduler.getRenderedEvent(e),a=0,r=0,n=t;n&&n!=scheduler._obj;)a+=n.offsetLeft,r+=n.offsetTop-n.scrollTop,n=n.offsetParent;if(n){var i=a+t.offsetWidth/2>scheduler._x/2?1:0,d=r+t.offsetHeight/2>scheduler._y/2?1:0;return{left:a,top:r,dx:i,dy:d,width:t.offsetWidth,height:t.offsetHeight}}return 0},scheduler._fill_quick_data=function(e){
+var t=scheduler.getEvent(e),a=scheduler._quick_info_box;scheduler._quick_info_box_id=e;var r=a.firstChild.firstChild;r.innerHTML=scheduler.templates.quick_info_title(t.start_date,t.end_date,t);var n=r.nextSibling;n.innerHTML=scheduler.templates.quick_info_date(t.start_date,t.end_date,t);var i=a.firstChild.nextSibling;i.innerHTML=scheduler.templates.quick_info_content(t.start_date,t.end_date,t)};
//# sourceMappingURL=../sources/ext/dhtmlxscheduler_quick_info.js.map \ No newline at end of file
diff --git a/codebase/ext/dhtmlxscheduler_readonly.js b/codebase/ext/dhtmlxscheduler_readonly.js
index c935152..1f198dd 100644
--- a/codebase/ext/dhtmlxscheduler_readonly.js
+++ b/codebase/ext/dhtmlxscheduler_readonly.js
@@ -1,13 +1,16 @@
/*
-dhtmlxScheduler v.4.3.0 Stardard
+@license
+dhtmlxScheduler v.4.3.1
This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited.
(c) Dinamenta, UAB.
*/
-scheduler.attachEvent("onTemplatesReady",function(){function e(e,t,r,s){for(var a=t.getElementsByTagName(e),n=r.getElementsByTagName(e),i=n.length-1;i>=0;i--){var r=n[i];if(s){var d=document.createElement("SPAN");d.className="dhx_text_disabled",d.innerHTML=s(a[i]),r.parentNode.insertBefore(d,r),r.parentNode.removeChild(r)}else r.disabled=!0,t.checked&&(r.checked=!0)}}var t=scheduler.config.lightbox.sections.slice(),r=scheduler.config.buttons_left.slice(),s=scheduler.config.buttons_right.slice();scheduler.attachEvent("onBeforeLightbox",function(e){if(this.config.readonly_form||this.getEvent(e).readonly){this.config.readonly_active=!0;
-for(var a=0;a<this.config.lightbox.sections.length;a++)this.config.lightbox.sections[a].focus=!1}else this.config.readonly_active=!1,scheduler.config.lightbox.sections=t.slice(),scheduler.config.buttons_left=r.slice(),scheduler.config.buttons_right=s.slice();var n=this.config.lightbox.sections;if(this.config.readonly_active){for(var a=0;a<n.length;a++)if("recurring"==n[a].type){this.config.readonly_active&&n.splice(a,1);break}for(var i=["dhx_delete_btn","dhx_save_btn"],d=[scheduler.config.buttons_left,scheduler.config.buttons_right],a=0;a<i.length;a++)for(var l=i[a],o=0;o<d.length;o++){for(var _=d[o],h=-1,c=0;c<_.length;c++)if(_[c]==l){h=c;
-break}-1!=h&&_.splice(h,1)}}return this.resetLightbox(),!0});var a=scheduler._fill_lightbox;scheduler._fill_lightbox=function(){var t=this.getLightbox();this.config.readonly_active&&(t.style.visibility="hidden",t.style.display="block");var r=a.apply(this,arguments);if(this.config.readonly_active&&(t.style.visibility="",t.style.display="none"),this.config.readonly_active){var s=this.getLightbox(),i=this._lightbox_r=s.cloneNode(!0);i.id=scheduler.uid(),e("textarea",s,i,function(e){return e.value}),e("input",s,i,!1),e("select",s,i,function(e){return e.options.length?e.options[Math.max(e.selectedIndex||0,0)].text:""
-}),s.parentNode.insertBefore(i,s),n.call(this,i),scheduler._lightbox&&scheduler._lightbox.parentNode.removeChild(scheduler._lightbox),this._lightbox=i,scheduler.config.drag_lightbox&&(i.firstChild.onmousedown=scheduler._ready_to_dnd),this.setLightboxSize(),i.onclick=function(e){var t=e?e.target:event.srcElement;if(t.className||(t=t.previousSibling),t&&t.className)switch(t.className){case"dhx_cancel_btn":scheduler.callEvent("onEventCancel",[scheduler._lightbox_id]),scheduler._edit_stop_event(scheduler.getEvent(scheduler._lightbox_id),!1),scheduler.hide_lightbox()
-}}}return r};var n=scheduler.showCover;scheduler.showCover=function(){this.config.readonly_active||n.apply(this,arguments)};var i=scheduler.hide_lightbox;scheduler.hide_lightbox=function(){return this._lightbox_r&&(this._lightbox_r.parentNode.removeChild(this._lightbox_r),this._lightbox_r=this._lightbox=null),i.apply(this,arguments)}});
+scheduler.attachEvent("onTemplatesReady",function(){function e(e,t,a,r){for(var n=t.getElementsByTagName(e),i=a.getElementsByTagName(e),l=i.length-1;l>=0;l--){var a=i[l];if(r){var d=document.createElement("SPAN");d.className="dhx_text_disabled",d.innerHTML=r(n[l]),a.parentNode.insertBefore(d,a),a.parentNode.removeChild(a)}else a.disabled=!0,t.checked&&(a.checked=!0)}}var t=scheduler.config.lightbox.sections.slice(),a=scheduler.config.buttons_left.slice(),r=scheduler.config.buttons_right.slice();scheduler.attachEvent("onBeforeLightbox",function(e){
+if(this.config.readonly_form||this.getEvent(e).readonly){this.config.readonly_active=!0;for(var n=0;n<this.config.lightbox.sections.length;n++)this.config.lightbox.sections[n].focus=!1}else this.config.readonly_active=!1,scheduler.config.lightbox.sections=t.slice(),scheduler.config.buttons_left=a.slice(),scheduler.config.buttons_right=r.slice();var i=this.config.lightbox.sections;if(this.config.readonly_active){for(var n=0;n<i.length;n++)if("recurring"==i[n].type){this.config.readonly_active&&i.splice(n,1);
+
+break}for(var l=["dhx_delete_btn","dhx_save_btn"],d=[scheduler.config.buttons_left,scheduler.config.buttons_right],n=0;n<l.length;n++)for(var s=l[n],o=0;o<d.length;o++){for(var _=d[o],c=-1,u=0;u<_.length;u++)if(_[u]==s){c=u;break}-1!=c&&_.splice(c,1)}}return this.resetLightbox(),!0});var n=scheduler._fill_lightbox;scheduler._fill_lightbox=function(){var t=this.getLightbox();this.config.readonly_active&&(t.style.visibility="hidden",t.style.display="block");var a=n.apply(this,arguments);if(this.config.readonly_active&&(t.style.visibility="",
+t.style.display="none"),this.config.readonly_active){var r=this.getLightbox(),l=this._lightbox_r=r.cloneNode(!0);l.id=scheduler.uid(),e("textarea",r,l,function(e){return e.value}),e("input",r,l,!1),e("select",r,l,function(e){return e.options.length?e.options[Math.max(e.selectedIndex||0,0)].text:""}),r.parentNode.insertBefore(l,r),i.call(this,l),scheduler._lightbox&&scheduler._lightbox.parentNode.removeChild(scheduler._lightbox),this._lightbox=l,scheduler.config.drag_lightbox&&(l.firstChild.onmousedown=scheduler._ready_to_dnd),
+this.setLightboxSize(),l.onclick=function(e){var t=e?e.target:event.srcElement;if(t.className||(t=t.previousSibling),t&&t.className)switch(t.className){case"dhx_cancel_btn":scheduler.callEvent("onEventCancel",[scheduler._lightbox_id]),scheduler._edit_stop_event(scheduler.getEvent(scheduler._lightbox_id),!1),scheduler.hide_lightbox()}}}return a};var i=scheduler.showCover;scheduler.showCover=function(){this.config.readonly_active||i.apply(this,arguments)};var l=scheduler.hide_lightbox;scheduler.hide_lightbox=function(){
+return this._lightbox_r&&(this._lightbox_r.parentNode.removeChild(this._lightbox_r),this._lightbox_r=this._lightbox=null),l.apply(this,arguments)}});
//# sourceMappingURL=../sources/ext/dhtmlxscheduler_readonly.js.map \ No newline at end of file
diff --git a/codebase/ext/dhtmlxscheduler_recurring.js b/codebase/ext/dhtmlxscheduler_recurring.js
index 54003f6..432b9d7 100644
--- a/codebase/ext/dhtmlxscheduler_recurring.js
+++ b/codebase/ext/dhtmlxscheduler_recurring.js
@@ -1,41 +1,59 @@
/*
-dhtmlxScheduler v.4.3.0 Stardard
+@license
+dhtmlxScheduler v.4.3.1
This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited.
(c) Dinamenta, UAB.
*/
-scheduler.config.occurrence_timestamp_in_utc=!1,scheduler.config.recurring_workdays=[1,2,3,4,5],scheduler.form_blocks.recurring={_get_node:function(e){return"string"==typeof e&&(e=document.getElementById(e)),"none"==e.style.display&&(e.style.display=""),e},_outer_html:function(e){function t(e){var t,r=document.createElement("div");return r.appendChild(e.cloneNode(!0)),t=r.innerHTML,r=null,t}return e.outerHTML||t(e)},render:function(e){if(e.form){var t=scheduler.form_blocks.recurring,r=t._get_node(e.form);
-return t._outer_html(r)}return scheduler.__recurring_template},_ds:{},_get_form_node:function(e,t,r){var a=e[t];if(!a)return null;if(a.nodeName)return a;if(a.length)for(var s=0;s<a.length;s++)if(a[s].value==r)return a[s]},_get_node_value:function(e,t,r){var a=e[t];if(!a)return"";if(a.length){if(r){for(var s=[],n=0;n<a.length;n++)a[n].checked&&s.push(a[n].value);return s}for(var n=0;n<a.length;n++)if(a[n].checked)return a[n].value}return a.value?r?[a.value]:a.value:void 0},_set_node_value:function(e,t,r){var a=e[t];
-if(a)if(a.name==t)a.value=r;else if(a.length)for(var s="object"==typeof r,n=0;n<a.length;n++)(s||a[n].value==r)&&(a[n].checked=s?!!r[a[n].value]:!!r)},_init_set_value:function(e,t,r){function a(e){for(var t=0;t<e.length;t++){var r=e[t];if(r.name)if(g[r.name])if(g[r.name].nodeType){var a=g[r.name];g[r.name]=[a,r]}else g[r.name].push(r);else g[r.name]=r}}function s(){m("dhx_repeat_day").style.display="none",m("dhx_repeat_week").style.display="none",m("dhx_repeat_month").style.display="none",m("dhx_repeat_year").style.display="none",m("dhx_repeat_"+this.value).style.display="block",scheduler.setLightboxSize()
-}function n(e){var t=[_(g,"repeat")];for(y[t[0]](t,e);t.length<5;)t.push("");var r="",a=i(g);if("no"==a)e.end=new Date(9999,1,1),r="no";else if("date_of_end"==a)e.end=u(_(g,"date_of_end"));else{scheduler.transpose_type(t.join("_")),r=Math.max(1,_(g,"occurences_count"));var s=0;e.end=scheduler.date.add(new Date(e.start),r+s,t.join("_"))}return t.join("_")+"#"+r}function i(e){var t=e.end;if(t.length){for(var r=0;r<t.length;r++)if(t[r].checked)return t[r].value&&"on"!=t[r].value?t[r].value:r?2==r?"date_of_end":"occurences_count":"no"
-}else if(t.value)return t.value;return"no"}function d(e,t){var r=e.end;if(r.length){var a=!!r[0].value;if(a)for(var s=0;s<r.length;s++)r[s].value==t&&(r[s].checked=!0);else{var n=0;switch(t){case"no":n=0;break;case"date_of_end":n=2;break;default:n=1}r[n].checked=!0}}else r.value=t}function l(e,t){var r=scheduler.form_blocks.recurring._set_node_value,a=e.split("#");switch(e=a[0].split("_"),x[e[0]](e,t),a[1]){case"no":d(g,"no");break;case"":d(g,"date_of_end");var s=t.end;scheduler.config.include_end_by&&(s=scheduler.date.add(s,-1,"day")),r(g,"date_of_end",v(s));
-break;default:d(g,"occurences_count"),r(g,"occurences_count",a[1])}r(g,"repeat",e[0]);var n=scheduler.form_blocks.recurring._get_form_node(g,"repeat",e[0]);"SELECT"==n.nodeName&&n.onchange?n.onchange():n.onclick&&n.onclick()}var o=scheduler.form_blocks.recurring,_=o._get_node_value,c=o._set_node_value;scheduler.form_blocks.recurring._ds={start:r.start_date,end:r._end_date};var h=scheduler.date.str_to_date(scheduler.config.repeat_date),u=function(e){var t=h(e);return scheduler.config.include_end_by&&(t=scheduler.date.add(t,1,"day")),t
-},v=scheduler.date.date_to_str(scheduler.config.repeat_date),f=e.getElementsByTagName("FORM")[0],g={};if(a(f.getElementsByTagName("INPUT")),a(f.getElementsByTagName("SELECT")),!scheduler.config.repeat_date_of_end){var p=scheduler.date.date_to_str(scheduler.config.repeat_date);scheduler.config.repeat_date_of_end=p(scheduler.date.add(scheduler._currentDate(),30,"day"))}c(g,"date_of_end",scheduler.config.repeat_date_of_end);var m=function(e){return document.getElementById(e)||{style:{}}};scheduler.form_blocks.recurring._get_repeat_code=n;
-var y={month:function(e,t){var r=scheduler.form_blocks.recurring._get_node_value;"d"==r(g,"month_type")?(e.push(Math.max(1,r(g,"month_count"))),t.start.setDate(r(g,"month_day"))):(e.push(Math.max(1,r(g,"month_count2"))),e.push(r(g,"month_day2")),e.push(Math.max(1,r(g,"month_week2"))),scheduler.config.repeat_precise||t.start.setDate(1)),t._start=!0},week:function(e,t){var r=scheduler.form_blocks.recurring._get_node_value;e.push(Math.max(1,r(g,"week_count"))),e.push(""),e.push("");for(var a=[],s=r(g,"week_day",!0),n=t.start.getDay(),i=!1,d=0;d<s.length;d++)a.push(s[d]),i=i||s[d]==n;
-a.length||(a.push(n),i=!0),a.sort(),scheduler.config.repeat_precise?i||(scheduler.transpose_day_week(t.start,a,1,7),t._start=!0):(t.start=scheduler.date.week_start(t.start),t._start=!0),e.push(a.join(","))},day:function(e){var t=scheduler.form_blocks.recurring._get_node_value;"d"==t(g,"day_type")?e.push(Math.max(1,t(g,"day_count"))):(e.push("week"),e.push(1),e.push(""),e.push(""),e.push(scheduler.config.recurring_workdays.join(",")),e.splice(0,1))},year:function(e,t){var r=scheduler.form_blocks.recurring._get_node_value;
-"d"==r(g,"year_type")?(e.push("1"),t.start.setMonth(0),t.start.setDate(r(g,"year_day")),t.start.setMonth(r(g,"year_month"))):(e.push("1"),e.push(r(g,"year_day2")),e.push(r(g,"year_week2")),t.start.setDate(1),t.start.setMonth(r(g,"year_month2"))),t._start=!0}},x={week:function(e){var t=scheduler.form_blocks.recurring._set_node_value;t(g,"week_count",e[1]);for(var r=e[4].split(","),a={},s=0;s<r.length;s++)a[r[s]]=!0;t(g,"week_day",a)},month:function(e,t){var r=scheduler.form_blocks.recurring._set_node_value;
-""===e[2]?(r(g,"month_type","d"),r(g,"month_count",e[1]),r(g,"month_day",t.start.getDate())):(r(g,"month_type","w"),r(g,"month_count2",e[1]),r(g,"month_week2",e[3]),r(g,"month_day2",e[2]))},day:function(e){var t=scheduler.form_blocks.recurring._set_node_value;t(g,"day_type","d"),t(g,"day_count",e[1])},year:function(e,t){var r=scheduler.form_blocks.recurring._set_node_value;""===e[2]?(r(g,"year_type","d"),r(g,"year_day",t.start.getDate()),r(g,"year_month",t.start.getMonth())):(r(g,"year_type","w"),r(g,"year_week2",e[3]),r(g,"year_day2",e[2]),r(g,"year_month2",t.start.getMonth()))
-}};scheduler.form_blocks.recurring._set_repeat_code=l;for(var b=0;b<f.elements.length;b++){var w=f.elements[b];switch(w.name){case"repeat":"SELECT"==w.nodeName?w.onchange=s:w.onclick=s}}scheduler._lightbox._rec_init_done=!0},set_value:function(e,t,r){var a=scheduler.form_blocks.recurring;scheduler._lightbox._rec_init_done||a._init_set_value(e,t,r),e.open=!r.rec_type,e.blocked=this._is_modified_occurence(r)?!0:!1;var s=a._ds;s.start=r.start_date,s.end=r._end_date,a.button_click(0,e.previousSibling.firstChild.firstChild,e,e),t&&a._set_repeat_code(t,s)
-},get_value:function(e,t){if(e.open){var r=scheduler.form_blocks.recurring._ds,a={};this.formSection("time").getValue(a),r.start=a.start_date,t.rec_type=scheduler.form_blocks.recurring._get_repeat_code(r),r._start?(t.start_date=new Date(r.start),t._start_date=new Date(r.start),r._start=!1):t._start_date=null,t._end_date=r.end,t.rec_pattern=t.rec_type.split("#")[0]}else t.rec_type=t.rec_pattern="",t._end_date=t.end_date;return t.rec_type},_get_button:function(){var e=scheduler.formSection("recurring").header;
-return e.firstChild.firstChild},_get_form:function(){return scheduler.formSection("recurring").node},open:function(){var e=scheduler.form_blocks.recurring,t=e._get_form();t.open||e._toggle_block()},close:function(){var e=scheduler.form_blocks.recurring,t=e._get_form();t.open&&e._toggle_block()},_toggle_block:function(){var e=scheduler.form_blocks.recurring,t=e._get_form(),r=e._get_button();t.open||t.blocked?(t.style.height="0px",r&&(r.style.backgroundPosition="-5px 20px",r.nextSibling.innerHTML=scheduler.locale.labels.button_recurring)):(t.style.height="auto",r&&(r.style.backgroundPosition="-5px 0px",r.nextSibling.innerHTML=scheduler.locale.labels.button_recurring_open)),t.open=!t.open,scheduler.setLightboxSize()
-},focus:function(){},button_click:function(){scheduler.form_blocks.recurring._toggle_block()}},scheduler._rec_markers={},scheduler._rec_markers_pull={},scheduler._add_rec_marker=function(e,t){e._pid_time=t,this._rec_markers[e.id]=e,this._rec_markers_pull[e.event_pid]||(this._rec_markers_pull[e.event_pid]={}),this._rec_markers_pull[e.event_pid][t]=e},scheduler._get_rec_marker=function(e,t){var r=this._rec_markers_pull[t];return r?r[e]:null},scheduler._get_rec_markers=function(e){return this._rec_markers_pull[e]||[]
-},scheduler._rec_temp=[],function(){var e=scheduler.addEvent;scheduler.addEvent=function(){var t=e.apply(this,arguments);if(t){var r=scheduler.getEvent(t);this._is_modified_occurence(r)&&scheduler._add_rec_marker(r,1e3*r.event_length),r.rec_type&&(r.rec_pattern=r.rec_type.split("#")[0])}return t}}(),scheduler.attachEvent("onEventIdChange",function(e,t){if(!this._ignore_call){this._ignore_call=!0,scheduler._rec_markers[e]&&(scheduler._rec_markers[t]=scheduler._rec_markers[e],delete scheduler._rec_markers[e]);
-for(var r=0;r<this._rec_temp.length;r++){var a=this._rec_temp[r];a.event_pid==e&&(a.event_pid=t,this.changeEventId(a.id,t+"#"+a.id.split("#")[1]))}delete this._ignore_call}}),scheduler.attachEvent("onConfirmedBeforeEventDelete",function(e){var t=this.getEvent(e);if(this._is_virtual_event(e)||this._is_modified_occurence(t)&&t.rec_type&&"none"!=t.rec_type){e=e.split("#");var r=this.uid(),a=e[1]?e[1]:t._pid_time/1e3,s=this._copy_event(t);s.id=r,s.event_pid=t.event_pid||e[0];var n=a;s.event_length=n,s.rec_type=s.rec_pattern="none",this.addEvent(s),this._add_rec_marker(s,1e3*n)
-}else{t.rec_type&&this._lightbox_id&&this._roll_back_dates(t);var i=this._get_rec_markers(e);for(var d in i)i.hasOwnProperty(d)&&(e=i[d].id,this.getEvent(e)&&this.deleteEvent(e,!0))}return!0}),scheduler.attachEvent("onEventDeleted",function(e,t){!this._is_virtual_event(e)&&this._is_modified_occurence(t)&&(scheduler._events[e]||(t.rec_type=t.rec_pattern="none",this.setEvent(e,t)))}),scheduler.attachEvent("onEventChanged",function(e){if(this._loading)return!0;var t=this.getEvent(e);if(this._is_virtual_event(e)){var e=e.split("#"),r=this.uid();
-this._not_render=!0;var a=this._copy_event(t);a.id=r,a.event_pid=e[0];var s=e[1];a.event_length=s,a.rec_type=a.rec_pattern="",this._add_rec_marker(a,1e3*s),this.addEvent(a),this._not_render=!1}else{t.rec_type&&this._lightbox_id&&this._roll_back_dates(t);var n=this._get_rec_markers(e);for(var i in n)n.hasOwnProperty(i)&&(delete this._rec_markers[n[i].id],this.deleteEvent(n[i].id,!0));delete this._rec_markers_pull[e];for(var d=!1,l=0;l<this._rendered.length;l++)this._rendered[l].getAttribute("event_id")==e&&(d=!0);
-d||(this._select_id=null)}return!0}),scheduler.attachEvent("onEventAdded",function(e){if(!this._loading){var t=this.getEvent(e);t.rec_type&&!t.event_length&&this._roll_back_dates(t)}return!0}),scheduler.attachEvent("onEventSave",function(e,t){var r=this.getEvent(e);return r.rec_type||!t.rec_type||this._is_virtual_event(e)||(this._select_id=null),!0}),scheduler.attachEvent("onEventCreated",function(e){var t=this.getEvent(e);return t.rec_type||(t.rec_type=t.rec_pattern=t.event_length=t.event_pid=""),!0
-}),scheduler.attachEvent("onEventCancel",function(e){var t=this.getEvent(e);t.rec_type&&(this._roll_back_dates(t),this.render_view_data())}),scheduler._roll_back_dates=function(e){e.event_length=(e.end_date.valueOf()-e.start_date.valueOf())/1e3,e.end_date=e._end_date,e._start_date&&(e.start_date.setMonth(0),e.start_date.setDate(e._start_date.getDate()),e.start_date.setMonth(e._start_date.getMonth()),e.start_date.setFullYear(e._start_date.getFullYear()))},scheduler._is_virtual_event=function(e){return-1!=e.toString().indexOf("#")
-},scheduler._is_modified_occurence=function(e){return e.event_pid&&"0"!=e.event_pid},scheduler._validId=function(e){return!this._is_virtual_event(e)},scheduler.showLightbox_rec=scheduler.showLightbox,scheduler.showLightbox=function(e){var t=this.locale,r=scheduler.config.lightbox_recurring,a=this.getEvent(e),s=a.event_pid,n=this._is_virtual_event(e);n&&(s=e.split("#")[0]);var i=function(e){var t=scheduler.getEvent(e);return t._end_date=t.end_date,t.end_date=new Date(t.start_date.valueOf()+1e3*t.event_length),scheduler.showLightbox_rec(e)
-};if((s||1*s===0)&&a.rec_type)return i(e);if(!s||"0"===s||!t.labels.confirm_recurring||"instance"==r||"series"==r&&!n)return this.showLightbox_rec(e);if("ask"==r){var d=this;dhtmlx.modalbox({text:t.labels.confirm_recurring,title:t.labels.title_confirm_recurring,width:"500px",position:"middle",buttons:[t.labels.button_edit_series,t.labels.button_edit_occurrence,t.labels.icon_cancel],callback:function(t){switch(+t){case 0:return i(s);case 1:return d.showLightbox_rec(e);case 2:return}}})}else i(s)},scheduler.get_visible_events_rec=scheduler.get_visible_events,scheduler.get_visible_events=function(e){for(var t=0;t<this._rec_temp.length;t++)delete this._events[this._rec_temp[t].id];
-this._rec_temp=[];for(var r=this.get_visible_events_rec(e),a=[],t=0;t<r.length;t++)r[t].rec_type?"none"!=r[t].rec_pattern&&this.repeat_date(r[t],a):a.push(r[t]);return a},function(){var e=scheduler.isOneDayEvent;scheduler.isOneDayEvent=function(t){return t.rec_type?!0:e.call(this,t)};var t=scheduler.updateEvent;scheduler.updateEvent=function(e){var r=scheduler.getEvent(e);r&&r.rec_type&&(r.rec_pattern=(r.rec_type||"").split("#")[0]),r&&r.rec_type&&!this._is_virtual_event(e)?scheduler.update_view():t.call(this,e)
-}}(),scheduler.transponse_size={day:1,week:7,month:1,year:12},scheduler.date.day_week=function(e,t,r){e.setDate(1),r=7*(r-1);var a=e.getDay(),s=1*t+r-a+1;e.setDate(r>=s?s+7:s)},scheduler.transpose_day_week=function(e,t,r,a,s){for(var n=(e.getDay()||(scheduler.config.start_on_monday?7:0))-r,i=0;i<t.length;i++)if(t[i]>n)return e.setDate(e.getDate()+1*t[i]-n-(a?r:s));this.transpose_day_week(e,t,r+a,null,r)},scheduler.transpose_type=function(e){var t="transpose_"+e;if(!this.date[t]){var r=e.split("_"),a=864e5,s="add_"+e,n=this.transponse_size[r[0]]*r[1];
-if("day"==r[0]||"week"==r[0]){var i=null;if(r[4]&&(i=r[4].split(","),scheduler.config.start_on_monday)){for(var d=0;d<i.length;d++)i[d]=1*i[d]||7;i.sort()}this.date[t]=function(e,t){var r=Math.floor((t.valueOf()-e.valueOf())/(a*n));r>0&&e.setDate(e.getDate()+r*n),i&&scheduler.transpose_day_week(e,i,1,n)},this.date[s]=function(e,t){var r=new Date(e.valueOf());if(i)for(var a=0;t>a;a++)scheduler.transpose_day_week(r,i,0,n);else r.setDate(r.getDate()+t*n);return r}}else("month"==r[0]||"year"==r[0])&&(this.date[t]=function(e,t){var a=Math.ceil((12*t.getFullYear()+1*t.getMonth()-(12*e.getFullYear()+1*e.getMonth()))/n);
-a>=0&&e.setMonth(e.getMonth()+a*n),r[3]&&scheduler.date.day_week(e,r[2],r[3])},this.date[s]=function(e,t){var a=new Date(e.valueOf());return a.setMonth(a.getMonth()+t*n),r[3]&&scheduler.date.day_week(a,r[2],r[3]),a})}},scheduler.repeat_date=function(e,t,r,a,s){a=a||this._min_date,s=s||this._max_date;var n=new Date(e.start_date.valueOf());for(!e.rec_pattern&&e.rec_type&&(e.rec_pattern=e.rec_type.split("#")[0]),this.transpose_type(e.rec_pattern),scheduler.date["transpose_"+e.rec_pattern](n,a);n<e.start_date||scheduler._fix_daylight_saving_date(n,a,e,n,new Date(n.valueOf()+1e3*e.event_length)).valueOf()<=a.valueOf()||n.valueOf()+1e3*e.event_length<=a.valueOf();)n=this.date.add(n,1,e.rec_pattern);
-for(;s>n&&n<e.end_date;){var i=scheduler.config.occurrence_timestamp_in_utc?Date.UTC(n.getFullYear(),n.getMonth(),n.getDate(),n.getHours(),n.getMinutes(),n.getSeconds()):n.valueOf(),d=this._get_rec_marker(i,e.id);if(d)r&&t.push(d);else{var l=new Date(n.valueOf()+1e3*e.event_length),o=this._copy_event(e);if(o.text=e.text,o.start_date=n,o.event_pid=e.id,o.id=e.id+"#"+Math.ceil(i/1e3),o.end_date=l,o.end_date=scheduler._fix_daylight_saving_date(o.start_date,o.end_date,e,n,o.end_date),o._timed=this.isOneDayEvent(o),!o._timed&&!this._table_view&&!this.config.multi_day)return;
-t.push(o),r||(this._events[o.id]=o,this._rec_temp.push(o))}n=this.date.add(n,1,e.rec_pattern)}},scheduler._fix_daylight_saving_date=function(e,t,r,a,s){var n=e.getTimezoneOffset()-t.getTimezoneOffset();return new Date(n?n>0?a.valueOf()+1e3*r.event_length-60*n*1e3:t.valueOf()-60*n*1e3:s.valueOf())},scheduler.getRecDates=function(e,t){var r="object"==typeof e?e:scheduler.getEvent(e),a=0,s=[];t=t||100;var n=new Date(r.start_date.valueOf()),i=new Date(n.valueOf());if(!r.rec_type)return[{start_date:r.start_date,end_date:r.end_date}];
-if("none"==r.rec_type)return[];for(this.transpose_type(r.rec_pattern),scheduler.date["transpose_"+r.rec_pattern](n,i);n<r.start_date||n.valueOf()+1e3*r.event_length<=i.valueOf();)n=this.date.add(n,1,r.rec_pattern);for(;n<r.end_date;){var d=this._get_rec_marker(n.valueOf(),r.id),l=!0;if(d)"none"==d.rec_type?l=!1:s.push({start_date:d.start_date,end_date:d.end_date});else{var o=new Date(n),_=new Date(n.valueOf()+1e3*r.event_length);_=scheduler._fix_daylight_saving_date(o,_,r,n,_),s.push({start_date:o,end_date:_})
-}if(n=this.date.add(n,1,r.rec_pattern),l&&(a++,a==t))break}return s},scheduler.getEvents=function(e,t){var r=[];for(var a in this._events){var s=this._events[a];if(s&&s.start_date<t&&s.end_date>e)if(s.rec_pattern){if("none"==s.rec_pattern)continue;var n=[];this.repeat_date(s,n,!0,e,t);for(var i=0;i<n.length;i++)!n[i].rec_pattern&&n[i].start_date<t&&n[i].end_date>e&&!this._rec_markers[n[i].id]&&r.push(n[i])}else this._is_virtual_event(s.id)||r.push(s)}return r},scheduler.config.repeat_date="%m.%d.%Y",scheduler.config.lightbox.sections=[{name:"description",height:130,map_to:"text",type:"textarea",focus:!0},{name:"recurring",type:"recurring",map_to:"rec_type",button:"recurring"},{name:"time",height:72,type:"time",map_to:"auto"}],scheduler._copy_dummy=function(){var e=new Date(this.start_date),t=new Date(this.end_date);
-this.start_date=e,this.end_date=t,this.event_length=this.event_pid=this.rec_pattern=this.rec_type=null},scheduler.config.include_end_by=!1,scheduler.config.lightbox_recurring="ask",scheduler.attachEvent("onClearAll",function(){scheduler._rec_markers={},scheduler._rec_markers_pull={},scheduler._rec_temp=[]}),scheduler.__recurring_template='<div class="dhx_form_repeat"> <form> <div class="dhx_repeat_left"> <label><input class="dhx_repeat_radio" type="radio" name="repeat" value="day" />Daily</label><br /> <label><input class="dhx_repeat_radio" type="radio" name="repeat" value="week"/>Weekly</label><br /> <label><input class="dhx_repeat_radio" type="radio" name="repeat" value="month" checked />Monthly</label><br /> <label><input class="dhx_repeat_radio" type="radio" name="repeat" value="year" />Yearly</label> </div> <div class="dhx_repeat_divider"></div> <div class="dhx_repeat_center"> <div style="display:none;" id="dhx_repeat_day"> <label><input class="dhx_repeat_radio" type="radio" name="day_type" value="d"/>Every</label><input class="dhx_repeat_text" type="text" name="day_count" value="1" />day<br /> <label><input class="dhx_repeat_radio" type="radio" name="day_type" checked value="w"/>Every workday</label> </div> <div style="display:none;" id="dhx_repeat_week"> Repeat every<input class="dhx_repeat_text" type="text" name="week_count" value="1" />week next days:<br /> <table class="dhx_repeat_days"> <tr> <td> <label><input class="dhx_repeat_checkbox" type="checkbox" name="week_day" value="1" />Monday</label><br /> <label><input class="dhx_repeat_checkbox" type="checkbox" name="week_day" value="4" />Thursday</label> </td> <td> <label><input class="dhx_repeat_checkbox" type="checkbox" name="week_day" value="2" />Tuesday</label><br /> <label><input class="dhx_repeat_checkbox" type="checkbox" name="week_day" value="5" />Friday</label> </td> <td> <label><input class="dhx_repeat_checkbox" type="checkbox" name="week_day" value="3" />Wednesday</label><br /> <label><input class="dhx_repeat_checkbox" type="checkbox" name="week_day" value="6" />Saturday</label> </td> <td> <label><input class="dhx_repeat_checkbox" type="checkbox" name="week_day" value="0" />Sunday</label><br /><br /> </td> </tr> </table> </div> <div id="dhx_repeat_month"> <label><input class="dhx_repeat_radio" type="radio" name="month_type" value="d"/>Repeat</label><input class="dhx_repeat_text" type="text" name="month_day" value="1" />day every<input class="dhx_repeat_text" type="text" name="month_count" value="1" />month<br /> <label><input class="dhx_repeat_radio" type="radio" name="month_type" checked value="w"/>On</label><input class="dhx_repeat_text" type="text" name="month_week2" value="1" /><select name="month_day2"><option value="1" selected >Monday<option value="2">Tuesday<option value="3">Wednesday<option value="4">Thursday<option value="5">Friday<option value="6">Saturday<option value="0">Sunday</select>every<input class="dhx_repeat_text" type="text" name="month_count2" value="1" />month<br /> </div> <div style="display:none;" id="dhx_repeat_year"> <label><input class="dhx_repeat_radio" type="radio" name="year_type" value="d"/>Every</label><input class="dhx_repeat_text" type="text" name="year_day" value="1" />day<select name="year_month"><option value="0" selected >January<option value="1">February<option value="2">March<option value="3">April<option value="4">May<option value="5">June<option value="6">July<option value="7">August<option value="8">September<option value="9">October<option value="10">November<option value="11">December</select>month<br /> <label><input class="dhx_repeat_radio" type="radio" name="year_type" checked value="w"/>On</label><input class="dhx_repeat_text" type="text" name="year_week2" value="1" /><select name="year_day2"><option value="1" selected >Monday<option value="2">Tuesday<option value="3">Wednesday<option value="4">Thursday<option value="5">Friday<option value="6">Saturday<option value="7">Sunday</select>of<select name="year_month2"><option value="0" selected >January<option value="1">February<option value="2">March<option value="3">April<option value="4">May<option value="5">June<option value="6">July<option value="7">August<option value="8">September<option value="9">October<option value="10">November<option value="11">December</select><br /> </div> </div> <div class="dhx_repeat_divider"></div> <div class="dhx_repeat_right"> <label><input class="dhx_repeat_radio" type="radio" name="end" checked/>No end date</label><br /> <label><input class="dhx_repeat_radio" type="radio" name="end" />After</label><input class="dhx_repeat_text" type="text" name="occurences_count" value="1" />occurrences<br /> <label><input class="dhx_repeat_radio" type="radio" name="end" />End by</label><input class="dhx_repeat_date" type="text" name="date_of_end" value="'+scheduler.config.repeat_date_of_end+'" /><br /> </div> </form> </div> <div style="clear:both"> </div>';
+scheduler.config.occurrence_timestamp_in_utc=!1,scheduler.config.recurring_workdays=[1,2,3,4,5],scheduler.form_blocks.recurring={_get_node:function(e){return"string"==typeof e&&(e=document.getElementById(e)),"none"==e.style.display&&(e.style.display=""),e},_outer_html:function(e){function t(e){var t,a=document.createElement("div");return a.appendChild(e.cloneNode(!0)),t=a.innerHTML,a=null,t}return e.outerHTML||t(e)},render:function(e){if(e.form){var t=scheduler.form_blocks.recurring,a=t._get_node(e.form),r=t._outer_html(a);
+
+return a.style.display="none",r}return scheduler.__recurring_template},_ds:{},_get_form_node:function(e,t,a){var r=e[t];if(!r)return null;if(r.nodeName)return r;if(r.length)for(var n=0;n<r.length;n++)if(r[n].value==a)return r[n]},_get_node_value:function(e,t,a){var r=e[t];if(!r)return"";if(r.length){if(a){for(var n=[],i=0;i<r.length;i++)r[i].checked&&n.push(r[i].value);return n}for(var i=0;i<r.length;i++)if(r[i].checked)return r[i].value}return r.value?a?[r.value]:r.value:void 0},_set_node_value:function(e,t,a){
+var r=e[t];if(r)if(r.name==t)r.value=a;else if(r.length)for(var n="object"==typeof a,i=0;i<r.length;i++)(n||r[i].value==a)&&(r[i].checked=n?!!a[r[i].value]:!!a)},_init_set_value:function(e,t,a){function r(e){for(var t=0;t<e.length;t++){var a=e[t];if(a.name)if(m[a.name])if(m[a.name].nodeType){var r=m[a.name];m[a.name]=[r,a]}else m[a.name].push(a);else m[a.name]=a}}function n(){f("dhx_repeat_day").style.display="none",f("dhx_repeat_week").style.display="none",f("dhx_repeat_month").style.display="none",
+f("dhx_repeat_year").style.display="none",f("dhx_repeat_"+this.value).style.display="block",scheduler.setLightboxSize()}function i(e){var t=[_(m,"repeat")];for(b[t[0]](t,e);t.length<5;)t.push("");var a="",r=l(m);if("no"==r)e.end=new Date(9999,1,1),a="no";else if("date_of_end"==r)e.end=h(_(m,"date_of_end"));else{scheduler.transpose_type(t.join("_")),a=Math.max(1,_(m,"occurences_count"));var n=0;e.end=scheduler.date.add(new Date(e.start),a+n,t.join("_"))}return t.join("_")+"#"+a}function l(e){var t=e.end;
+
+if(t.length){for(var a=0;a<t.length;a++)if(t[a].checked)return t[a].value&&"on"!=t[a].value?t[a].value:a?2==a?"date_of_end":"occurences_count":"no"}else if(t.value)return t.value;return"no"}function d(e,t){var a=e.end;if(a.length){var r=!!a[0].value&&"on"!=a[0].value;if(r)for(var n=0;n<a.length;n++)a[n].value==t&&(a[n].checked=!0);else{var i=0;switch(t){case"no":i=0;break;case"date_of_end":i=2;break;default:i=1}a[i].checked=!0}}else a.value=t}function s(e,t){var a=scheduler.form_blocks.recurring._set_node_value,r=e.split("#");
+
+switch(e=r[0].split("_"),y[e[0]](e,t),r[1]){case"no":d(m,"no");break;case"":d(m,"date_of_end");var n=t.end;scheduler.config.include_end_by&&(n=scheduler.date.add(n,-1,"day")),a(m,"date_of_end",p(n));break;default:d(m,"occurences_count"),a(m,"occurences_count",r[1])}a(m,"repeat",e[0]);var i=scheduler.form_blocks.recurring._get_form_node(m,"repeat",e[0]);"SELECT"==i.nodeName&&i.onchange?i.onchange():i.onclick&&i.onclick()}var o=scheduler.form_blocks.recurring,_=o._get_node_value,c=o._set_node_value;
+
+scheduler.form_blocks.recurring._ds={start:a.start_date,end:a._end_date};var u=scheduler.date.str_to_date(scheduler.config.repeat_date),h=function(e){var t=u(e);return scheduler.config.include_end_by&&(t=scheduler.date.add(t,1,"day")),t},p=scheduler.date.date_to_str(scheduler.config.repeat_date),v=e.getElementsByTagName("FORM")[0],m={};if(r(v.getElementsByTagName("INPUT")),r(v.getElementsByTagName("SELECT")),!scheduler.config.repeat_date_of_end){var g=scheduler.date.date_to_str(scheduler.config.repeat_date);
+
+scheduler.config.repeat_date_of_end=g(scheduler.date.add(scheduler._currentDate(),30,"day"))}c(m,"date_of_end",scheduler.config.repeat_date_of_end);var f=function(e){return document.getElementById(e)||{style:{}}};scheduler.form_blocks.recurring._get_repeat_code=i;var b={month:function(e,t){var a=scheduler.form_blocks.recurring._get_node_value;"d"==a(m,"month_type")?(e.push(Math.max(1,a(m,"month_count"))),t.start.setDate(a(m,"month_day"))):(e.push(Math.max(1,a(m,"month_count2"))),e.push(a(m,"month_day2")),
+e.push(Math.max(1,a(m,"month_week2"))),scheduler.config.repeat_precise||t.start.setDate(1)),t._start=!0},week:function(e,t){var a=scheduler.form_blocks.recurring._get_node_value;e.push(Math.max(1,a(m,"week_count"))),e.push(""),e.push("");for(var r=[],n=a(m,"week_day",!0),i=t.start.getDay(),l=!1,d=0;d<n.length;d++)r.push(n[d]),l=l||n[d]==i;r.length||(r.push(i),l=!0),r.sort(),scheduler.config.repeat_precise?l||(scheduler.transpose_day_week(t.start,r,1,7),t._start=!0):(t.start=scheduler.date.week_start(t.start),
+t._start=!0),e.push(r.join(","))},day:function(e){var t=scheduler.form_blocks.recurring._get_node_value;"d"==t(m,"day_type")?e.push(Math.max(1,t(m,"day_count"))):(e.push("week"),e.push(1),e.push(""),e.push(""),e.push(scheduler.config.recurring_workdays.join(",")),e.splice(0,1))},year:function(e,t){var a=scheduler.form_blocks.recurring._get_node_value;"d"==a(m,"year_type")?(e.push("1"),t.start.setMonth(0),t.start.setDate(a(m,"year_day")),t.start.setMonth(a(m,"year_month"))):(e.push("1"),e.push(a(m,"year_day2")),
+e.push(a(m,"year_week2")),t.start.setDate(1),t.start.setMonth(a(m,"year_month2"))),t._start=!0}},y={week:function(e,t){var a=scheduler.form_blocks.recurring._set_node_value;a(m,"week_count",e[1]);for(var r=e[4].split(","),n={},i=0;i<r.length;i++)n[r[i]]=!0;a(m,"week_day",n)},month:function(e,t){var a=scheduler.form_blocks.recurring._set_node_value;""===e[2]?(a(m,"month_type","d"),a(m,"month_count",e[1]),a(m,"month_day",t.start.getDate())):(a(m,"month_type","w"),a(m,"month_count2",e[1]),a(m,"month_week2",e[3]),
+a(m,"month_day2",e[2]))},day:function(e,t){var a=scheduler.form_blocks.recurring._set_node_value;a(m,"day_type","d"),a(m,"day_count",e[1])},year:function(e,t){var a=scheduler.form_blocks.recurring._set_node_value;""===e[2]?(a(m,"year_type","d"),a(m,"year_day",t.start.getDate()),a(m,"year_month",t.start.getMonth())):(a(m,"year_type","w"),a(m,"year_week2",e[3]),a(m,"year_day2",e[2]),a(m,"year_month2",t.start.getMonth()))}};scheduler.form_blocks.recurring._set_repeat_code=s;for(var x=0;x<v.elements.length;x++){
+var k=v.elements[x];switch(k.name){case"repeat":"SELECT"==k.nodeName?k.onchange=n:k.onclick=n}}scheduler._lightbox._rec_init_done=!0},set_value:function(e,t,a){var r=scheduler.form_blocks.recurring;scheduler._lightbox._rec_init_done||r._init_set_value(e,t,a),e.open=!a.rec_type,this._is_modified_occurence(a)?e.blocked=!0:e.blocked=!1;var n=r._ds;n.start=a.start_date,n.end=a._end_date,r.button_click(0,e.previousSibling.firstChild.firstChild,e,e),t&&r._set_repeat_code(t,n)},get_value:function(e,t){if(e.open){
+var a=scheduler.form_blocks.recurring._ds,r={};this.formSection("time").getValue(r),a.start=r.start_date,t.rec_type=scheduler.form_blocks.recurring._get_repeat_code(a),a._start?(t.start_date=new Date(a.start),t._start_date=new Date(a.start),a._start=!1):t._start_date=null,t._end_date=a.end,t.rec_pattern=t.rec_type.split("#")[0]}else t.rec_type=t.rec_pattern="",t._end_date=t.end_date;return t.rec_type},_get_button:function(){var e=scheduler.formSection("recurring").header;return e.firstChild.firstChild;
+
+},_get_form:function(){return scheduler.formSection("recurring").node},open:function(){var e=scheduler.form_blocks.recurring,t=e._get_form();t.open||e._toggle_block()},close:function(){var e=scheduler.form_blocks.recurring,t=e._get_form();t.open&&e._toggle_block()},_toggle_block:function(){var e=scheduler.form_blocks.recurring,t=e._get_form(),a=e._get_button();t.open||t.blocked?(t.style.height="0px",a&&(a.style.backgroundPosition="-5px 20px",a.nextSibling.innerHTML=scheduler.locale.labels.button_recurring)):(t.style.height="auto",
+a&&(a.style.backgroundPosition="-5px 0px",a.nextSibling.innerHTML=scheduler.locale.labels.button_recurring_open)),t.open=!t.open,scheduler.setLightboxSize()},focus:function(e){},button_click:function(e,t,a,r){scheduler.form_blocks.recurring._toggle_block()}},scheduler._rec_markers={},scheduler._rec_markers_pull={},scheduler._add_rec_marker=function(e,t){e._pid_time=t,this._rec_markers[e.id]=e,this._rec_markers_pull[e.event_pid]||(this._rec_markers_pull[e.event_pid]={}),this._rec_markers_pull[e.event_pid][t]=e;
+
+},scheduler._get_rec_marker=function(e,t){var a=this._rec_markers_pull[t];return a?a[e]:null},scheduler._get_rec_markers=function(e){return this._rec_markers_pull[e]||[]},scheduler._rec_temp=[],function(){var e=scheduler.addEvent;scheduler.addEvent=function(t,a,r,n,i){var l=e.apply(this,arguments);if(l){var d=scheduler.getEvent(l);this._is_modified_occurence(d)&&scheduler._add_rec_marker(d,1e3*d.event_length),d.rec_type&&(d.rec_pattern=d.rec_type.split("#")[0])}return l}}(),scheduler.attachEvent("onEventIdChange",function(e,t){
+if(!this._ignore_call){this._ignore_call=!0,scheduler._rec_markers[e]&&(scheduler._rec_markers[t]=scheduler._rec_markers[e],delete scheduler._rec_markers[e]);for(var a=0;a<this._rec_temp.length;a++){var r=this._rec_temp[a];r.event_pid==e&&(r.event_pid=t,this.changeEventId(r.id,t+"#"+r.id.split("#")[1]))}delete this._ignore_call}}),scheduler.attachEvent("onConfirmedBeforeEventDelete",function(e){var t=this.getEvent(e);if(this._is_virtual_event(e)||this._is_modified_occurence(t)&&t.rec_type&&"none"!=t.rec_type){
+e=e.split("#");var a=this.uid(),r=e[1]?e[1]:t._pid_time/1e3,n=this._copy_event(t);n.id=a,n.event_pid=t.event_pid||e[0];var i=r;n.event_length=i,n.rec_type=n.rec_pattern="none",this.addEvent(n),this._add_rec_marker(n,1e3*i)}else{t.rec_type&&this._lightbox_id&&this._roll_back_dates(t);var l=this._get_rec_markers(e);for(var d in l)l.hasOwnProperty(d)&&(e=l[d].id,this.getEvent(e)&&this.deleteEvent(e,!0))}return!0}),scheduler.attachEvent("onEventDeleted",function(e,t){!this._is_virtual_event(e)&&this._is_modified_occurence(t)&&(scheduler._events[e]||(t.rec_type=t.rec_pattern="none",
+this.setEvent(e,t)))}),scheduler.attachEvent("onEventChanged",function(e){if(this._loading)return!0;var t=this.getEvent(e);if(this._is_virtual_event(e)){var e=e.split("#"),a=this.uid();this._not_render=!0;var r=this._copy_event(t);r.id=a,r.event_pid=e[0];var n=e[1];r.event_length=n,r.rec_type=r.rec_pattern="",this._add_rec_marker(r,1e3*n),this.addEvent(r),this._not_render=!1}else{t.rec_type&&this._lightbox_id&&this._roll_back_dates(t);var i=this._get_rec_markers(e);for(var l in i)i.hasOwnProperty(l)&&(delete this._rec_markers[i[l].id],
+this.deleteEvent(i[l].id,!0));delete this._rec_markers_pull[e];for(var d=!1,s=0;s<this._rendered.length;s++)this._rendered[s].getAttribute("event_id")==e&&(d=!0);d||(this._select_id=null)}return!0}),scheduler.attachEvent("onEventAdded",function(e){if(!this._loading){var t=this.getEvent(e);t.rec_type&&!t.event_length&&this._roll_back_dates(t)}return!0}),scheduler.attachEvent("onEventSave",function(e,t,a){var r=this.getEvent(e);return r.rec_type||!t.rec_type||this._is_virtual_event(e)||(this._select_id=null),
+!0}),scheduler.attachEvent("onEventCreated",function(e){var t=this.getEvent(e);return t.rec_type||(t.rec_type=t.rec_pattern=t.event_length=t.event_pid=""),!0}),scheduler.attachEvent("onEventCancel",function(e){var t=this.getEvent(e);t.rec_type&&(this._roll_back_dates(t),this.render_view_data())}),scheduler._roll_back_dates=function(e){e.event_length=(e.end_date.valueOf()-e.start_date.valueOf())/1e3,e.end_date=e._end_date,e._start_date&&(e.start_date.setMonth(0),e.start_date.setDate(e._start_date.getDate()),
+e.start_date.setMonth(e._start_date.getMonth()),e.start_date.setFullYear(e._start_date.getFullYear()))},scheduler._is_virtual_event=function(e){return-1!=e.toString().indexOf("#")},scheduler._is_modified_occurence=function(e){return e.event_pid&&"0"!=e.event_pid},scheduler._validId=function(e){return!this._is_virtual_event(e)},scheduler.showLightbox_rec=scheduler.showLightbox,scheduler.showLightbox=function(e){var t=this.locale,a=scheduler.config.lightbox_recurring,r=this.getEvent(e),n=r.event_pid,i=this._is_virtual_event(e);
+
+i&&(n=e.split("#")[0]);var l=function(e){var t=scheduler.getEvent(e);return t._end_date=t.end_date,t.end_date=new Date(t.start_date.valueOf()+1e3*t.event_length),scheduler.showLightbox_rec(e)};if((n||1*n===0)&&r.rec_type)return l(e);if(!n||"0"===n||!t.labels.confirm_recurring||"instance"==a||"series"==a&&!i)return this.showLightbox_rec(e);if("ask"==a){var d=this;dhtmlx.modalbox({text:t.labels.confirm_recurring,title:t.labels.title_confirm_recurring,width:"500px",position:"middle",buttons:[t.labels.button_edit_series,t.labels.button_edit_occurrence,t.labels.icon_cancel],
+callback:function(t){switch(+t){case 0:return l(n);case 1:return d.showLightbox_rec(e);case 2:return}}})}else l(n)},scheduler.get_visible_events_rec=scheduler.get_visible_events,scheduler.get_visible_events=function(e){for(var t=0;t<this._rec_temp.length;t++)delete this._events[this._rec_temp[t].id];this._rec_temp=[];for(var a=this.get_visible_events_rec(e),r=[],t=0;t<a.length;t++)a[t].rec_type?"none"!=a[t].rec_pattern&&this.repeat_date(a[t],r):r.push(a[t]);return r},function(){var e=scheduler.isOneDayEvent;
+
+scheduler.isOneDayEvent=function(t){return t.rec_type?!0:e.call(this,t)};var t=scheduler.updateEvent;scheduler.updateEvent=function(e){var a=scheduler.getEvent(e);a&&a.rec_type&&(a.rec_pattern=(a.rec_type||"").split("#")[0]),a&&a.rec_type&&!this._is_virtual_event(e)?scheduler.update_view():t.call(this,e)}}(),scheduler.transponse_size={day:1,week:7,month:1,year:12},scheduler.date.day_week=function(e,t,a){e.setDate(1),a=7*(a-1);var r=e.getDay(),n=1*t+a-r+1;e.setDate(a>=n?n+7:n)},scheduler.transpose_day_week=function(e,t,a,r,n){
+for(var i=(e.getDay()||(scheduler.config.start_on_monday?7:0))-a,l=0;l<t.length;l++)if(t[l]>i)return e.setDate(e.getDate()+1*t[l]-i-(r?a:n));this.transpose_day_week(e,t,a+r,null,a)},scheduler.transpose_type=function(e){var t="transpose_"+e;if(!this.date[t]){var a=e.split("_"),r=864e5,n="add_"+e,i=this.transponse_size[a[0]]*a[1];if("day"==a[0]||"week"==a[0]){var l=null;if(a[4]&&(l=a[4].split(","),scheduler.config.start_on_monday)){for(var d=0;d<l.length;d++)l[d]=1*l[d]||7;l.sort()}this.date[t]=function(e,t){
+var a=Math.floor((t.valueOf()-e.valueOf())/(r*i));a>0&&e.setDate(e.getDate()+a*i),l&&scheduler.transpose_day_week(e,l,1,i)},this.date[n]=function(e,t){var a=new Date(e.valueOf());if(l)for(var r=0;t>r;r++)scheduler.transpose_day_week(a,l,0,i);else a.setDate(a.getDate()+t*i);return a}}else("month"==a[0]||"year"==a[0])&&(this.date[t]=function(e,t){var r=Math.ceil((12*t.getFullYear()+1*t.getMonth()-(12*e.getFullYear()+1*e.getMonth()))/i);r>=0&&e.setMonth(e.getMonth()+r*i),a[3]&&scheduler.date.day_week(e,a[2],a[3]);
+
+},this.date[n]=function(e,t){var r=new Date(e.valueOf());return r.setMonth(r.getMonth()+t*i),a[3]&&scheduler.date.day_week(r,a[2],a[3]),r})}},scheduler.repeat_date=function(e,t,a,r,n){r=r||this._min_date,n=n||this._max_date;var i=new Date(e.start_date.valueOf());for(!e.rec_pattern&&e.rec_type&&(e.rec_pattern=e.rec_type.split("#")[0]),this.transpose_type(e.rec_pattern),scheduler.date["transpose_"+e.rec_pattern](i,r);i<e.start_date||scheduler._fix_daylight_saving_date(i,r,e,i,new Date(i.valueOf()+1e3*e.event_length)).valueOf()<=r.valueOf()||i.valueOf()+1e3*e.event_length<=r.valueOf();)i=this.date.add(i,1,e.rec_pattern);
+
+for(;n>i&&i<e.end_date;){var l=scheduler.config.occurrence_timestamp_in_utc?Date.UTC(i.getFullYear(),i.getMonth(),i.getDate(),i.getHours(),i.getMinutes(),i.getSeconds()):i.valueOf(),d=this._get_rec_marker(l,e.id);if(d)a&&t.push(d);else{var s=new Date(i.valueOf()+1e3*e.event_length),o=this._copy_event(e);if(o.text=e.text,o.start_date=i,o.event_pid=e.id,o.id=e.id+"#"+Math.ceil(l/1e3),o.end_date=s,o.end_date=scheduler._fix_daylight_saving_date(o.start_date,o.end_date,e,i,o.end_date),o._timed=this.isOneDayEvent(o),
+!o._timed&&!this._table_view&&!this.config.multi_day)return;t.push(o),a||(this._events[o.id]=o,this._rec_temp.push(o))}i=this.date.add(i,1,e.rec_pattern)}},scheduler._fix_daylight_saving_date=function(e,t,a,r,n){var i=e.getTimezoneOffset()-t.getTimezoneOffset();return new Date(i?i>0?r.valueOf()+1e3*a.event_length-60*i*1e3:t.valueOf()-60*i*1e3:n.valueOf())},scheduler.getRecDates=function(e,t){var a="object"==typeof e?e:scheduler.getEvent(e),r=0,n=[];t=t||100;var i=new Date(a.start_date.valueOf()),l=new Date(i.valueOf());
+
+if(!a.rec_type)return[{start_date:a.start_date,end_date:a.end_date}];if("none"==a.rec_type)return[];for(this.transpose_type(a.rec_pattern),scheduler.date["transpose_"+a.rec_pattern](i,l);i<a.start_date||i.valueOf()+1e3*a.event_length<=l.valueOf();)i=this.date.add(i,1,a.rec_pattern);for(;i<a.end_date;){var d=this._get_rec_marker(i.valueOf(),a.id),s=!0;if(d)"none"==d.rec_type?s=!1:n.push({start_date:d.start_date,end_date:d.end_date});else{var o=new Date(i),_=new Date(i.valueOf()+1e3*a.event_length);
+
+_=scheduler._fix_daylight_saving_date(o,_,a,i,_),n.push({start_date:o,end_date:_})}if(i=this.date.add(i,1,a.rec_pattern),s&&(r++,r==t))break}return n},scheduler.getEvents=function(e,t){var a=[];for(var r in this._events){var n=this._events[r];if(n&&n.start_date<t&&n.end_date>e)if(n.rec_pattern){if("none"==n.rec_pattern)continue;var i=[];this.repeat_date(n,i,!0,e,t);for(var l=0;l<i.length;l++)!i[l].rec_pattern&&i[l].start_date<t&&i[l].end_date>e&&!this._rec_markers[i[l].id]&&a.push(i[l])}else this._is_virtual_event(n.id)||a.push(n);
+
+}return a},scheduler.config.repeat_date="%m.%d.%Y",scheduler.config.lightbox.sections=[{name:"description",height:130,map_to:"text",type:"textarea",focus:!0},{name:"recurring",type:"recurring",map_to:"rec_type",button:"recurring"},{name:"time",height:72,type:"time",map_to:"auto"}],scheduler._copy_dummy=function(e){var t=new Date(this.start_date),a=new Date(this.end_date);this.start_date=t,this.end_date=a,this.event_length=this.event_pid=this.rec_pattern=this.rec_type=null},scheduler.config.include_end_by=!1,
+scheduler.config.lightbox_recurring="ask",scheduler.attachEvent("onClearAll",function(){scheduler._rec_markers={},scheduler._rec_markers_pull={},scheduler._rec_temp=[]}),scheduler.__recurring_template='<div class="dhx_form_repeat"> <form> <div class="dhx_repeat_left"> <label><input class="dhx_repeat_radio" type="radio" name="repeat" value="day" />Daily</label><br /> <label><input class="dhx_repeat_radio" type="radio" name="repeat" value="week"/>Weekly</label><br /> <label><input class="dhx_repeat_radio" type="radio" name="repeat" value="month" checked />Monthly</label><br /> <label><input class="dhx_repeat_radio" type="radio" name="repeat" value="year" />Yearly</label> </div> <div class="dhx_repeat_divider"></div> <div class="dhx_repeat_center"> <div style="display:none;" id="dhx_repeat_day"> <label><input class="dhx_repeat_radio" type="radio" name="day_type" value="d"/>Every</label><input class="dhx_repeat_text" type="text" name="day_count" value="1" />day<br /> <label><input class="dhx_repeat_radio" type="radio" name="day_type" checked value="w"/>Every workday</label> </div> <div style="display:none;" id="dhx_repeat_week"> Repeat every<input class="dhx_repeat_text" type="text" name="week_count" value="1" />week next days:<br /> <table class="dhx_repeat_days"> <tr> <td> <label><input class="dhx_repeat_checkbox" type="checkbox" name="week_day" value="1" />Monday</label><br /> <label><input class="dhx_repeat_checkbox" type="checkbox" name="week_day" value="4" />Thursday</label> </td> <td> <label><input class="dhx_repeat_checkbox" type="checkbox" name="week_day" value="2" />Tuesday</label><br /> <label><input class="dhx_repeat_checkbox" type="checkbox" name="week_day" value="5" />Friday</label> </td> <td> <label><input class="dhx_repeat_checkbox" type="checkbox" name="week_day" value="3" />Wednesday</label><br /> <label><input class="dhx_repeat_checkbox" type="checkbox" name="week_day" value="6" />Saturday</label> </td> <td> <label><input class="dhx_repeat_checkbox" type="checkbox" name="week_day" value="0" />Sunday</label><br /><br /> </td> </tr> </table> </div> <div id="dhx_repeat_month"> <label><input class="dhx_repeat_radio" type="radio" name="month_type" value="d"/>Repeat</label><input class="dhx_repeat_text" type="text" name="month_day" value="1" />day every<input class="dhx_repeat_text" type="text" name="month_count" value="1" />month<br /> <label><input class="dhx_repeat_radio" type="radio" name="month_type" checked value="w"/>On</label><input class="dhx_repeat_text" type="text" name="month_week2" value="1" /><select name="month_day2"><option value="1" selected >Monday<option value="2">Tuesday<option value="3">Wednesday<option value="4">Thursday<option value="5">Friday<option value="6">Saturday<option value="0">Sunday</select>every<input class="dhx_repeat_text" type="text" name="month_count2" value="1" />month<br /> </div> <div style="display:none;" id="dhx_repeat_year"> <label><input class="dhx_repeat_radio" type="radio" name="year_type" value="d"/>Every</label><input class="dhx_repeat_text" type="text" name="year_day" value="1" />day<select name="year_month"><option value="0" selected >January<option value="1">February<option value="2">March<option value="3">April<option value="4">May<option value="5">June<option value="6">July<option value="7">August<option value="8">September<option value="9">October<option value="10">November<option value="11">December</select>month<br /> <label><input class="dhx_repeat_radio" type="radio" name="year_type" checked value="w"/>On</label><input class="dhx_repeat_text" type="text" name="year_week2" value="1" /><select name="year_day2"><option value="1" selected >Monday<option value="2">Tuesday<option value="3">Wednesday<option value="4">Thursday<option value="5">Friday<option value="6">Saturday<option value="7">Sunday</select>of<select name="year_month2"><option value="0" selected >January<option value="1">February<option value="2">March<option value="3">April<option value="4">May<option value="5">June<option value="6">July<option value="7">August<option value="8">September<option value="9">October<option value="10">November<option value="11">December</select><br /> </div> </div> <div class="dhx_repeat_divider"></div> <div class="dhx_repeat_right"> <label><input class="dhx_repeat_radio" type="radio" name="end" checked/>No end date</label><br /> <label><input class="dhx_repeat_radio" type="radio" name="end" />After</label><input class="dhx_repeat_text" type="text" name="occurences_count" value="1" />occurrences<br /> <label><input class="dhx_repeat_radio" type="radio" name="end" />End by</label><input class="dhx_repeat_date" type="text" name="date_of_end" value="'+scheduler.config.repeat_date_of_end+'" /><br /> </div> </form> </div> <div style="clear:both"> </div>';
//# sourceMappingURL=../sources/ext/dhtmlxscheduler_recurring.js.map \ No newline at end of file
diff --git a/codebase/ext/dhtmlxscheduler_serialize.js b/codebase/ext/dhtmlxscheduler_serialize.js
index 196e978..b12aa96 100644
--- a/codebase/ext/dhtmlxscheduler_serialize.js
+++ b/codebase/ext/dhtmlxscheduler_serialize.js
@@ -1,12 +1,15 @@
/*
-dhtmlxScheduler v.4.3.0 Stardard
+@license
+dhtmlxScheduler v.4.3.1
This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited.
(c) Dinamenta, UAB.
*/
-scheduler._get_serializable_data=function(){var e={};for(var t in this._events){var r=this._events[t];-1==r.id.toString().indexOf("#")&&(e[r.id]=r)}return e},scheduler.data_attributes=function(){var e=[],t=scheduler.templates.xml_format,r=this._get_serializable_data();for(var a in r){var s=r[a];for(var n in s)"_"!=n.substr(0,1)&&e.push([n,"start_date"==n||"end_date"==n?t:null]);break}return e},scheduler.toXML=function(e){var t=[],r=this.data_attributes(),a=this._get_serializable_data();for(var s in a){var n=a[s];
-t.push("<event>");for(var i=0;i<r.length;i++)t.push("<"+r[i][0]+"><![CDATA["+(r[i][1]?r[i][1](n[r[i][0]]):n[r[i][0]])+"]]></"+r[i][0]+">");t.push("</event>")}return(e||"")+"<data>"+t.join("\n")+"</data>"},scheduler._serialize_json_value=function(e){return null===e||"boolean"==typeof e?e=""+e:(e||0===e||(e=""),e='"'+e.toString().replace(/\n/g,"").replace(/\\/g,"\\\\").replace(/\"/g,'\\"')+'"'),e},scheduler.toJSON=function(){var e=[],t="",r=this.data_attributes(),a=this._get_serializable_data();for(var s in a){for(var n=a[s],i=[],d=0;d<r.length;d++)t=r[d][1]?r[d][1](n[r[d][0]]):n[r[d][0]],i.push(' "'+r[d][0]+'": '+this._serialize_json_value(t));
-e.push("{"+i.join(",")+"}")}return"["+e.join(",\n")+"]"},scheduler.toICal=function(e){var t="BEGIN:VCALENDAR\nVERSION:2.0\nPRODID:-//dhtmlXScheduler//NONSGML v2.2//EN\nDESCRIPTION:",r="END:VCALENDAR",a=scheduler.date.date_to_str("%Y%m%dT%H%i%s"),s=scheduler.date.date_to_str("%Y%m%d"),n=[],i=this._get_serializable_data();for(var d in i){var l=i[d];n.push("BEGIN:VEVENT"),n.push(l._timed&&(l.start_date.getHours()||l.start_date.getMinutes())?"DTSTART:"+a(l.start_date):"DTSTART:"+s(l.start_date)),n.push(l._timed&&(l.end_date.getHours()||l.end_date.getMinutes())?"DTEND:"+a(l.end_date):"DTEND:"+s(l.end_date)),n.push("SUMMARY:"+l.text),n.push("END:VEVENT")
-}return t+(e||"")+"\n"+n.join("\n")+"\n"+r};
+scheduler._get_serializable_data=function(){var e={};for(var t in this._events){var a=this._events[t];-1==a.id.toString().indexOf("#")&&(e[a.id]=a)}return e},scheduler.data_attributes=function(){var e=[],t=scheduler.templates.xml_format,a=this._get_serializable_data();for(var r in a){var n=a[r];for(var i in n)"_"!=i.substr(0,1)&&e.push([i,"start_date"==i||"end_date"==i?t:null]);break}return e},scheduler.toXML=function(e){var t=[],a=this.data_attributes(),r=this._get_serializable_data();for(var n in r){
+var i=r[n];t.push("<event>");for(var l=0;l<a.length;l++)t.push("<"+a[l][0]+"><![CDATA["+(a[l][1]?a[l][1](i[a[l][0]]):i[a[l][0]])+"]]></"+a[l][0]+">");t.push("</event>")}return(e||"")+"<data>"+t.join("\n")+"</data>"},scheduler._serialize_json_value=function(e){return null===e||"boolean"==typeof e?e=""+e:(e||0===e||(e=""),e='"'+e.toString().replace(/\n/g,"").replace(/\\/g,"\\\\").replace(/\"/g,'\\"')+'"'),e},scheduler.toJSON=function(){var e=[],t="",a=this.data_attributes(),r=this._get_serializable_data();
+
+for(var n in r){for(var i=r[n],l=[],d=0;d<a.length;d++)t=a[d][1]?a[d][1](i[a[d][0]]):i[a[d][0]],l.push(' "'+a[d][0]+'": '+this._serialize_json_value(t));e.push("{"+l.join(",")+"}")}return"["+e.join(",\n")+"]"},scheduler.toICal=function(e){var t="BEGIN:VCALENDAR\nVERSION:2.0\nPRODID:-//dhtmlXScheduler//NONSGML v2.2//EN\nDESCRIPTION:",a="END:VCALENDAR",r=scheduler.date.date_to_str("%Y%m%dT%H%i%s"),n=scheduler.date.date_to_str("%Y%m%d"),i=[],l=this._get_serializable_data();for(var d in l){var s=l[d];
+
+i.push("BEGIN:VEVENT"),i.push(s._timed&&(s.start_date.getHours()||s.start_date.getMinutes())?"DTSTART:"+r(s.start_date):"DTSTART:"+n(s.start_date)),i.push(s._timed&&(s.end_date.getHours()||s.end_date.getMinutes())?"DTEND:"+r(s.end_date):"DTEND:"+n(s.end_date)),i.push("SUMMARY:"+s.text),i.push("END:VEVENT")}return t+(e||"")+"\n"+i.join("\n")+"\n"+a};
//# sourceMappingURL=../sources/ext/dhtmlxscheduler_serialize.js.map \ No newline at end of file
diff --git a/codebase/ext/dhtmlxscheduler_tooltip.js b/codebase/ext/dhtmlxscheduler_tooltip.js
index ac385d4..45adc3a 100644
--- a/codebase/ext/dhtmlxscheduler_tooltip.js
+++ b/codebase/ext/dhtmlxscheduler_tooltip.js
@@ -1,15 +1,21 @@
/*
-dhtmlxScheduler v.4.3.0 Stardard
+@license
+dhtmlxScheduler v.4.3.1
This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited.
(c) Dinamenta, UAB.
*/
-window.dhtmlXTooltip=scheduler.dhtmlXTooltip=window.dhtmlxTooltip={},dhtmlXTooltip.config={className:"dhtmlXTooltip tooltip",timeout_to_display:50,timeout_to_hide:50,delta_x:15,delta_y:-20},dhtmlXTooltip.tooltip=document.createElement("div"),dhtmlXTooltip.tooltip.className=dhtmlXTooltip.config.className,dhtmlXTooltip.show=function(e,t){if(!scheduler.config.touch||scheduler.config.touch_tooltip){var r=dhtmlXTooltip,s=this.tooltip,a=s.style;r.tooltip.className=r.config.className;var n=this.position(e),i=e.target||e.srcElement;
-if(!this.isTooltip(i)){var d=n.x+(r.config.delta_x||0),l=n.y-(r.config.delta_y||0);a.visibility="hidden",a.removeAttribute?(a.removeAttribute("right"),a.removeAttribute("bottom")):(a.removeProperty("right"),a.removeProperty("bottom")),a.left="0",a.top="0",this.tooltip.innerHTML=t,document.body.appendChild(this.tooltip);var _=this.tooltip.offsetWidth,o=this.tooltip.offsetHeight;document.body.offsetWidth-d-_<0?(a.removeAttribute?a.removeAttribute("left"):a.removeProperty("left"),a.right=document.body.offsetWidth-d+2*(r.config.delta_x||0)+"px"):a.left=0>d?n.x+Math.abs(r.config.delta_x||0)+"px":d+"px",document.body.offsetHeight-l-o<0?(a.removeAttribute?a.removeAttribute("top"):a.removeProperty("top"),a.bottom=document.body.offsetHeight-l-2*(r.config.delta_y||0)+"px"):a.top=0>l?n.y+Math.abs(r.config.delta_y||0)+"px":l+"px",a.visibility="visible",this.tooltip.onmouseleave=function(e){e=e||window.event;
-for(var t=scheduler.dhtmlXTooltip,r=e.relatedTarget;r!=scheduler._obj&&r;)r=r.parentNode;r!=scheduler._obj&&t.delay(t.hide,t,[],t.config.timeout_to_hide)},scheduler.callEvent("onTooltipDisplayed",[this.tooltip,this.tooltip.event_id])}}},dhtmlXTooltip._clearTimeout=function(){this.tooltip._timeout_id&&window.clearTimeout(this.tooltip._timeout_id)},dhtmlXTooltip.hide=function(){if(this.tooltip.parentNode){var e=this.tooltip.event_id;this.tooltip.event_id=null,this.tooltip.onmouseleave=null,this.tooltip.parentNode.removeChild(this.tooltip),scheduler.callEvent("onAfterTooltip",[e])
-}this._clearTimeout()},dhtmlXTooltip.delay=function(e,t,r,s){this._clearTimeout(),this.tooltip._timeout_id=setTimeout(function(){var s=e.apply(t,r);return e=t=r=null,s},s||this.config.timeout_to_display)},dhtmlXTooltip.isTooltip=function(e){var t=!1;for("dhtmlXTooltip"==e.className.split(" ")[0];e&&!t;)t=e.className==this.tooltip.className,e=e.parentNode;return t},dhtmlXTooltip.position=function(e){if(e=e||window.event,e.pageX||e.pageY)return{x:e.pageX,y:e.pageY};var t=window._isIE&&"BackCompat"!=document.compatMode?document.documentElement:document.body;
-return{x:e.clientX+t.scrollLeft-t.clientLeft,y:e.clientY+t.scrollTop-t.clientTop}},scheduler.attachEvent("onMouseMove",function(e,t){var r=window.event||t,s=r.target||r.srcElement,a=dhtmlXTooltip,n=a.isTooltip(s),i=a.isTooltipTarget&&a.isTooltipTarget(s);if(e||n||i){var d;if(e||a.tooltip.event_id){var l=scheduler.getEvent(e)||scheduler.getEvent(a.tooltip.event_id);if(!l)return;if(a.tooltip.event_id=l.id,d=scheduler.templates.tooltip_text(l.start_date,l.end_date,l),!d)return a.hide()}i&&(d="");var _;
-if(_isIE){_={pageX:void 0,pageY:void 0,clientX:void 0,clientY:void 0,target:void 0,srcElement:void 0};for(var o in _)_[o]=r[o]}if(!scheduler.callEvent("onBeforeTooltip",[e])||!d)return;a.delay(a.show,a,[_||r,d])}else a.delay(a.hide,a,[],a.config.timeout_to_hide)}),scheduler.attachEvent("onBeforeDrag",function(){return dhtmlXTooltip.hide(),!0}),scheduler.attachEvent("onEventDeleted",function(){return dhtmlXTooltip.hide(),!0}),scheduler.templates.tooltip_date_format=scheduler.date.date_to_str("%Y-%m-%d %H:%i"),scheduler.templates.tooltip_text=function(e,t,r){return"<b>Event:</b> "+r.text+"<br/><b>Start date:</b> "+scheduler.templates.tooltip_date_format(e)+"<br/><b>End date:</b> "+scheduler.templates.tooltip_date_format(t)
+window.dhtmlXTooltip=scheduler.dhtmlXTooltip=window.dhtmlxTooltip={},dhtmlXTooltip.config={className:"dhtmlXTooltip tooltip",timeout_to_display:50,timeout_to_hide:50,delta_x:15,delta_y:-20},dhtmlXTooltip.tooltip=document.createElement("div"),dhtmlXTooltip.tooltip.className=dhtmlXTooltip.config.className,dhtmlXTooltip.show=function(e,t){if(!scheduler.config.touch||scheduler.config.touch_tooltip){var a=dhtmlXTooltip,r=this.tooltip,n=r.style;a.tooltip.className=a.config.className;var i=this.position(e),l=e.target||e.srcElement;
+
+if(!this.isTooltip(l)){var d=i.x+(a.config.delta_x||0),s=i.y-(a.config.delta_y||0);n.visibility="hidden",n.removeAttribute?(n.removeAttribute("right"),n.removeAttribute("bottom")):(n.removeProperty("right"),n.removeProperty("bottom")),n.left="0",n.top="0",this.tooltip.innerHTML=t,document.body.appendChild(this.tooltip);var o=this.tooltip.offsetWidth,_=this.tooltip.offsetHeight;document.body.offsetWidth-d-o<0?(n.removeAttribute?n.removeAttribute("left"):n.removeProperty("left"),n.right=document.body.offsetWidth-d+2*(a.config.delta_x||0)+"px"):0>d?n.left=i.x+Math.abs(a.config.delta_x||0)+"px":n.left=d+"px",
+document.body.offsetHeight-s-_<0?(n.removeAttribute?n.removeAttribute("top"):n.removeProperty("top"),n.bottom=document.body.offsetHeight-s-2*(a.config.delta_y||0)+"px"):0>s?n.top=i.y+Math.abs(a.config.delta_y||0)+"px":n.top=s+"px",n.visibility="visible",this.tooltip.onmouseleave=function(e){e=e||window.event;for(var t=scheduler.dhtmlXTooltip,a=e.relatedTarget;a!=scheduler._obj&&a;)a=a.parentNode;a!=scheduler._obj&&t.delay(t.hide,t,[],t.config.timeout_to_hide)},scheduler.callEvent("onTooltipDisplayed",[this.tooltip,this.tooltip.event_id]);
+
+}}},dhtmlXTooltip._clearTimeout=function(){this.tooltip._timeout_id&&window.clearTimeout(this.tooltip._timeout_id)},dhtmlXTooltip.hide=function(){if(this.tooltip.parentNode){var e=this.tooltip.event_id;this.tooltip.event_id=null,this.tooltip.onmouseleave=null,this.tooltip.parentNode.removeChild(this.tooltip),scheduler.callEvent("onAfterTooltip",[e])}this._clearTimeout()},dhtmlXTooltip.delay=function(e,t,a,r){this._clearTimeout(),this.tooltip._timeout_id=setTimeout(function(){var r=e.apply(t,a);return e=t=a=null,
+r},r||this.config.timeout_to_display)},dhtmlXTooltip.isTooltip=function(e){var t=!1;for("dhtmlXTooltip"==e.className.split(" ")[0];e&&!t;)t=e.className==this.tooltip.className,e=e.parentNode;return t},dhtmlXTooltip.position=function(e){if(e=e||window.event,e.pageX||e.pageY)return{x:e.pageX,y:e.pageY};var t=window._isIE&&"BackCompat"!=document.compatMode?document.documentElement:document.body;return{x:e.clientX+t.scrollLeft-t.clientLeft,y:e.clientY+t.scrollTop-t.clientTop}},scheduler.attachEvent("onMouseMove",function(e,t){
+var a=window.event||t,r=a.target||a.srcElement,n=dhtmlXTooltip,i=n.isTooltip(r),l=n.isTooltipTarget&&n.isTooltipTarget(r);if(e||i||l){var d;if(e||n.tooltip.event_id){var s=scheduler.getEvent(e)||scheduler.getEvent(n.tooltip.event_id);if(!s)return;if(n.tooltip.event_id=s.id,d=scheduler.templates.tooltip_text(s.start_date,s.end_date,s),!d)return n.hide()}l&&(d="");var o;if(_isIE){o={pageX:void 0,pageY:void 0,clientX:void 0,clientY:void 0,target:void 0,srcElement:void 0};for(var _ in o)o[_]=a[_]}if(!scheduler.callEvent("onBeforeTooltip",[e])||!d)return;
+
+n.delay(n.show,n,[o||a,d])}else n.delay(n.hide,n,[],n.config.timeout_to_hide)}),scheduler.attachEvent("onBeforeDrag",function(){return dhtmlXTooltip.hide(),!0}),scheduler.attachEvent("onEventDeleted",function(){return dhtmlXTooltip.hide(),!0}),scheduler.templates.tooltip_date_format=scheduler.date.date_to_str("%Y-%m-%d %H:%i"),scheduler.templates.tooltip_text=function(e,t,a){return"<b>Event:</b> "+a.text+"<br/><b>Start date:</b> "+scheduler.templates.tooltip_date_format(e)+"<br/><b>End date:</b> "+scheduler.templates.tooltip_date_format(t);
+
};
//# sourceMappingURL=../sources/ext/dhtmlxscheduler_tooltip.js.map \ No newline at end of file
diff --git a/codebase/ext/dhtmlxscheduler_url.js b/codebase/ext/dhtmlxscheduler_url.js
index 72610bf..844ef58 100644
--- a/codebase/ext/dhtmlxscheduler_url.js
+++ b/codebase/ext/dhtmlxscheduler_url.js
@@ -1,11 +1,12 @@
/*
-dhtmlxScheduler v.4.3.0 Stardard
+@license
+dhtmlxScheduler v.4.3.1
This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited.
(c) Dinamenta, UAB.
*/
-scheduler._get_url_nav=function(){for(var e={},t=(document.location.hash||"").replace("#","").split(","),r=0;r<t.length;r++){var s=t[r].split("=");2==s.length&&(e[s[0]]=s[1])}return e},scheduler.attachEvent("onTemplatesReady",function(){function e(e){a=e,scheduler.getEvent(e)&&scheduler.showEvent(e)}var t=!0,r=scheduler.date.str_to_date("%Y-%m-%d"),s=scheduler.date.date_to_str("%Y-%m-%d"),a=scheduler._get_url_nav().event||null;scheduler.attachEvent("onAfterEventDisplay",function(){return a=null,!0
-}),scheduler.attachEvent("onBeforeViewChange",function(n,i,d,l){if(t){t=!1;var _=scheduler._get_url_nav();if(_.event)try{if(scheduler.getEvent(_.event))return e(_.event),!1;var o=scheduler.attachEvent("onXLE",function(){e(_.event),scheduler.detachEvent(o)})}catch(c){}if(_.date||_.mode){try{this.setCurrentView(_.date?r(_.date):null,_.mode||null)}catch(c){this.setCurrentView(_.date?r(_.date):null,d)}return!1}}var h=["date="+s(l||i),"mode="+(d||n)];a&&h.push("event="+a);var u="#"+h.join(",");return document.location.hash=u,!0
-})});
+scheduler._get_url_nav=function(){for(var e={},t=(document.location.hash||"").replace("#","").split(","),a=0;a<t.length;a++){var r=t[a].split("=");2==r.length&&(e[r[0]]=r[1])}return e},scheduler.attachEvent("onTemplatesReady",function(){function e(e){n=e,scheduler.getEvent(e)&&scheduler.showEvent(e)}var t=!0,a=scheduler.date.str_to_date("%Y-%m-%d"),r=scheduler.date.date_to_str("%Y-%m-%d"),n=scheduler._get_url_nav().event||null;scheduler.attachEvent("onAfterEventDisplay",function(e){return n=null,
+!0}),scheduler.attachEvent("onBeforeViewChange",function(i,l,d,s){if(t){t=!1;var o=scheduler._get_url_nav();if(o.event)try{if(scheduler.getEvent(o.event))return e(o.event),!1;var _=scheduler.attachEvent("onXLE",function(){e(o.event),scheduler.detachEvent(_)})}catch(c){}if(o.date||o.mode){try{this.setCurrentView(o.date?a(o.date):null,o.mode||null)}catch(c){this.setCurrentView(o.date?a(o.date):null,d)}return!1}}var h=["date="+r(s||l),"mode="+(d||i)];n&&h.push("event="+n);var u="#"+h.join(",");return document.location.hash=u,
+!0})});
//# sourceMappingURL=../sources/ext/dhtmlxscheduler_url.js.map \ No newline at end of file
diff --git a/codebase/ext/dhtmlxscheduler_wp.js b/codebase/ext/dhtmlxscheduler_wp.js
index b544fab..ed109a2 100644
--- a/codebase/ext/dhtmlxscheduler_wp.js
+++ b/codebase/ext/dhtmlxscheduler_wp.js
@@ -1,9 +1,10 @@
/*
-dhtmlxScheduler v.4.3.0 Stardard
+@license
+dhtmlxScheduler v.4.3.1
This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited.
(c) Dinamenta, UAB.
*/
-scheduler.attachEvent("onLightBox",function(){if(this._cover)try{this._cover.style.height=this.expanded?"100%":(document.body.parentNode||document.body).scrollHeight+"px"}catch(e){}}),scheduler.form_blocks.select.set_value=function(e,t){("undefined"==typeof t||""===t)&&(t=(e.firstChild.options[0]||{}).value),e.firstChild.value=t||""};
+scheduler.attachEvent("onLightBox",function(){if(this._cover)try{this._cover.style.height=this.expanded?"100%":(document.body.parentNode||document.body).scrollHeight+"px"}catch(e){}}),scheduler.form_blocks.select.set_value=function(e,t,a){("undefined"==typeof t||""===t)&&(t=(e.firstChild.options[0]||{}).value),e.firstChild.value=t||""};
//# sourceMappingURL=../sources/ext/dhtmlxscheduler_wp.js.map \ No newline at end of file
diff --git a/codebase/ext/dhtmlxscheduler_year_view.js b/codebase/ext/dhtmlxscheduler_year_view.js
index 66ede16..e5b1b99 100644
--- a/codebase/ext/dhtmlxscheduler_year_view.js
+++ b/codebase/ext/dhtmlxscheduler_year_view.js
@@ -1,25 +1,31 @@
/*
-dhtmlxScheduler v.4.3.0 Stardard
+@license
+dhtmlxScheduler v.4.3.1
This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited.
(c) Dinamenta, UAB.
*/
-scheduler.config.year_x=4,scheduler.config.year_y=3,scheduler.xy.year_top=0,scheduler.templates.year_date=function(e){return scheduler.date.date_to_str(scheduler.locale.labels.year_tab+" %Y")(e)},scheduler.templates.year_month=scheduler.date.date_to_str("%F"),scheduler.templates.year_scale_date=scheduler.date.date_to_str("%D"),scheduler.templates.year_tooltip=function(e,t,r){return r.text},function(){var e=function(){return"year"==scheduler._mode};scheduler.dblclick_dhx_month_head=function(t){if(e()){var r=t.target||t.srcElement;
-if(-1!=r.parentNode.className.indexOf("dhx_before")||-1!=r.parentNode.className.indexOf("dhx_after"))return!1;var s=this.templates.xml_date(r.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.getAttribute("date"));s.setDate(parseInt(r.innerHTML,10));var a=this.date.add(s,1,"day");!this.config.readonly&&this.config.dblclick_create&&this.addEventNow(s.valueOf(),a.valueOf(),t)}};var t=scheduler.changeEventId;scheduler.changeEventId=function(){t.apply(this,arguments),e()&&this.year_view(!0)
-};var r=scheduler.render_data,s=scheduler.date.date_to_str("%Y/%m/%d"),a=scheduler.date.str_to_date("%Y/%m/%d");scheduler.render_data=function(t){if(!e())return r.apply(this,arguments);for(var s=0;s<t.length;s++)this._year_render_event(t[s])};var d=scheduler.clear_view;scheduler.clear_view=function(){if(!e())return d.apply(this,arguments);var t=scheduler._year_marked_cells,r=null;for(var s in t)t.hasOwnProperty(s)&&(r=t[s],r.className="dhx_month_head",r.setAttribute("date",""));scheduler._year_marked_cells={}
-},scheduler._hideToolTip=function(){this._tooltip&&(this._tooltip.style.display="none",this._tooltip.date=new Date(9999,1,1))},scheduler._showToolTip=function(e,t,r,s){if(this._tooltip){if(this._tooltip.date.valueOf()==e.valueOf())return;this._tooltip.innerHTML=""}else{var a=this._tooltip=document.createElement("DIV");a.className="dhx_year_tooltip",document.body.appendChild(a),a.onclick=scheduler._click.dhx_cal_data}for(var d=this.getEvents(e,this.date.add(e,1,"day")),n="",i=0;i<d.length;i++){var l=d[i];
-if(this.filter_event(l.id,l)){var _=l.color?"background:"+l.color+";":"",o=l.textColor?"color:"+l.textColor+";":"";n+="<div class='dhx_tooltip_line' style='"+_+o+"' event_id='"+d[i].id+"'>",n+="<div class='dhx_tooltip_date' style='"+_+o+"'>"+(d[i]._timed?this.templates.event_date(d[i].start_date):"")+"</div>",n+="<div class='dhx_event_icon icon_details'>&nbsp;</div>",n+=this.templates.year_tooltip(d[i].start_date,d[i].end_date,d[i])+"</div>"}}this._tooltip.style.display="",this._tooltip.style.top="0px",this._tooltip.style.left=document.body.offsetWidth-t.left-this._tooltip.offsetWidth<0?t.left-this._tooltip.offsetWidth+"px":t.left+s.offsetWidth+"px",this._tooltip.date=e,this._tooltip.innerHTML=n,this._tooltip.style.top=document.body.offsetHeight-t.top-this._tooltip.offsetHeight<0?t.top-this._tooltip.offsetHeight+s.offsetHeight+"px":t.top+"px"
-},scheduler._year_view_tooltip_handler=function(t){if(e()){var t=t||event,r=t.target||t.srcElement;"a"==r.tagName.toLowerCase()&&(r=r.parentNode),-1!=(r.className||"").indexOf("dhx_year_event")?scheduler._showToolTip(a(r.getAttribute("date")),getOffset(r),t,r):scheduler._hideToolTip()}},scheduler._init_year_tooltip=function(){scheduler._detachDomEvent(scheduler._els.dhx_cal_data[0],"mouseover",scheduler._year_view_tooltip_handler),dhtmlxEvent(scheduler._els.dhx_cal_data[0],"mouseover",scheduler._year_view_tooltip_handler)
-},scheduler.attachEvent("onSchedulerResize",function(){return e()?(this.year_view(!0),!1):!0}),scheduler._get_year_cell=function(e){var t=e.getMonth()+12*(e.getFullYear()-this._min_date.getFullYear())-this.week_starts._month,r=this._els.dhx_cal_data[0].childNodes[t],e=this.week_starts[t]+e.getDate()-1;return r.childNodes[2].firstChild.rows[Math.floor(e/7)].cells[e%7].firstChild},scheduler._year_marked_cells={},scheduler._mark_year_date=function(e,t){var r=s(e),a=this._get_year_cell(e),d=this.templates.event_class(t.start_date,t.end_date,t);
-scheduler._year_marked_cells[r]||(a.className="dhx_month_head dhx_year_event",a.setAttribute("date",r),scheduler._year_marked_cells[r]=a),a.className+=d?" "+d:""},scheduler._unmark_year_date=function(e){this._get_year_cell(e).className="dhx_month_head"},scheduler._year_render_event=function(e){var t=e.start_date;for(t=t.valueOf()<this._min_date.valueOf()?this._min_date:this.date.date_part(new Date(t));t<e.end_date;)if(this._mark_year_date(t,e),t=this.date.add(t,1,"day"),t.valueOf()>=this._max_date.valueOf())return
-},scheduler.year_view=function(e){var t;if(e&&(t=scheduler.xy.scale_height,scheduler.xy.scale_height=-1),scheduler._els.dhx_cal_header[0].style.display=e?"none":"",scheduler.set_sizes(),e&&(scheduler.xy.scale_height=t),scheduler._table_view=e,!this._load_mode||!this._load())if(e){if(scheduler._init_year_tooltip(),scheduler._reset_year_scale(),scheduler._load_mode&&scheduler._load())return void(scheduler._render_wait=!0);scheduler.render_view_data()}else scheduler._hideToolTip()},scheduler._reset_year_scale=function(){this._cols=[],this._colsS={};
-var e=[],t=this._els.dhx_cal_data[0],r=this.config;t.scrollTop=0,t.innerHTML="";var s=Math.floor(parseInt(t.style.width)/r.year_x),a=Math.floor((parseInt(t.style.height)-scheduler.xy.year_top)/r.year_y);190>a&&(a=190,s=Math.floor((parseInt(t.style.width)-scheduler.xy.scroll_width)/r.year_x));for(var d=s-11,n=0,i=document.createElement("div"),l=this.date.week_start(scheduler._currentDate()),_=0;7>_;_++)this._cols[_]=Math.floor(d/(7-_)),this._render_x_header(_,n,l,i),l=this.date.add(l,1,"day"),d-=this._cols[_],n+=this._cols[_];
-i.lastChild.className+=" dhx_scale_bar_last";for(var o=this.date[this._mode+"_start"](this.date.copy(this._date)),c=o,h=null,_=0;_<r.year_y;_++)for(var u=0;u<r.year_x;u++){h=document.createElement("DIV"),h.style.cssText="position:absolute;",h.setAttribute("date",this.templates.xml_format(o)),h.innerHTML="<div class='dhx_year_month'></div><div class='dhx_year_week'>"+i.innerHTML+"</div><div class='dhx_year_body'></div>",h.childNodes[0].innerHTML=this.templates.year_month(o);for(var v=this.date.week_start(o),f=this._reset_month_scale(h.childNodes[2],o,v),p=h.childNodes[2].firstChild.rows,g=p.length;6>g;g++){p[0].parentNode.appendChild(p[0].cloneNode(!0));
-for(var m=0,y=p[g].childNodes.length;y>m;m++)p[g].childNodes[m].className="dhx_after",p[g].childNodes[m].firstChild.innerHTML=scheduler.templates.month_day(f),f=scheduler.date.add(f,1,"day")}t.appendChild(h),h.childNodes[1].style.height=h.childNodes[1].childNodes[0].offsetHeight+"px";var x=Math.round((a-190)/2);h.style.marginTop=x+"px",this.set_xy(h,s-10,a-x-10,s*u+5,a*_+5+scheduler.xy.year_top),e[_*r.year_x+u]=(o.getDay()-(this.config.start_on_monday?1:0)+7)%7,o=this.date.add(o,1,"month")}this._els.dhx_cal_date[0].innerHTML=this.templates[this._mode+"_date"](c,o,this._mode),this.week_starts=e,e._month=c.getMonth(),this._min_date=c,this._max_date=o
-};var n=scheduler.getActionData;scheduler.getActionData=function(t){if(!e())return n.apply(scheduler,arguments);var r=t?t.target:event.srcElement,s=scheduler._get_year_month_date(r),a=scheduler._get_year_month_cell(r),d=scheduler._get_year_day_indexes(a);return d&&s?(s=scheduler.date.add(s,d.week,"week"),s=scheduler.date.add(s,d.day,"day")):s=null,{date:s,section:null}},scheduler._get_year_day_indexes=function(e){var t=scheduler._get_year_el_node(e,this._locate_year_month_table);if(!t)return null;
-for(var r=0,s=0,r=0,a=t.rows.length;a>r;r++){for(var d=t.rows[r].getElementsByTagName("td"),s=0,n=d.length;n>s&&d[s]!=e;s++);if(n>s)break}return a>r?{day:s,week:r}:null},scheduler._get_year_month_date=function(e){var e=scheduler._get_year_el_node(e,scheduler._locate_year_month_root);if(!e)return null;var t=e.getAttribute("date");return t?scheduler.date.week_start(scheduler.templates.xml_date(t)):null},scheduler._locate_year_month_day=function(e){return e.className&&-1!=e.className.indexOf("dhx_year_event")&&e.hasAttribute&&e.hasAttribute("date")
-};var i=scheduler._locate_event;scheduler._locate_event=function(e){var t=i.apply(scheduler,arguments);if(!t){var r=scheduler._get_year_el_node(e,scheduler._locate_year_month_day);if(!r||!r.hasAttribute("date"))return null;var s=scheduler.templates.xml_date(r.getAttribute("date")),a=scheduler.getEvents(s,scheduler.date.add(s,1,"day"));if(!a.length)return null;t=a[0].id}return t},scheduler._locate_year_month_cell=function(e){return"td"==e.nodeName.toLowerCase()},scheduler._locate_year_month_table=function(e){return"table"==e.nodeName.toLowerCase()
-},scheduler._locate_year_month_root=function(e){return e.hasAttribute&&e.hasAttribute("date")},scheduler._get_year_month_cell=function(e){return this._get_year_el_node(e,this._locate_year_month_cell)},scheduler._get_year_month_table=function(e){return this._get_year_el_node(e,this._locate_year_month_table)},scheduler._get_year_month_root=function(e){return this._get_year_el_node(this._get_year_month_table(e),this._locate_year_month_root)},scheduler._get_year_el_node=function(e,t){for(;e&&!t(e);)e=e.parentNode;
-return e}}();
+scheduler.config.year_x=4,scheduler.config.year_y=3,scheduler.xy.year_top=0,scheduler.templates.year_date=function(e){return scheduler.date.date_to_str(scheduler.locale.labels.year_tab+" %Y")(e)},scheduler.templates.year_month=scheduler.date.date_to_str("%F"),scheduler.templates.year_scale_date=scheduler.date.date_to_str("%D"),scheduler.templates.year_tooltip=function(e,t,a){return a.text},function(){var e=function(){return"year"==scheduler._mode};scheduler.dblclick_dhx_month_head=function(t){if(e()){
+var a=t.target||t.srcElement;if(-1!=a.parentNode.className.indexOf("dhx_before")||-1!=a.parentNode.className.indexOf("dhx_after"))return!1;var r=this.templates.xml_date(a.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.getAttribute("date"));r.setDate(parseInt(a.innerHTML,10));var n=this.date.add(r,1,"day");!this.config.readonly&&this.config.dblclick_create&&this.addEventNow(r.valueOf(),n.valueOf(),t)}};var t=scheduler.changeEventId;scheduler.changeEventId=function(){t.apply(this,arguments),
+e()&&this.year_view(!0)};var a=scheduler.render_data,r=scheduler.date.date_to_str("%Y/%m/%d"),n=scheduler.date.str_to_date("%Y/%m/%d");scheduler.render_data=function(t){if(!e())return a.apply(this,arguments);for(var r=0;r<t.length;r++)this._year_render_event(t[r])};var d=scheduler.clear_view;scheduler.clear_view=function(){if(!e())return d.apply(this,arguments);var t=scheduler._year_marked_cells,a=null;for(var r in t)t.hasOwnProperty(r)&&(a=t[r],a.className="dhx_month_head",a.setAttribute("date",""));
+
+scheduler._year_marked_cells={}},scheduler._hideToolTip=function(){this._tooltip&&(this._tooltip.style.display="none",this._tooltip.date=new Date(9999,1,1))},scheduler._showToolTip=function(e,t,a,r){if(this._tooltip){if(this._tooltip.date.valueOf()==e.valueOf())return;this._tooltip.innerHTML=""}else{var n=this._tooltip=document.createElement("DIV");n.className="dhx_year_tooltip",document.body.appendChild(n),n.onclick=scheduler._click.dhx_cal_data}for(var d=this.getEvents(e,this.date.add(e,1,"day")),l="",i=0;i<d.length;i++){
+var s=d[i];if(this.filter_event(s.id,s)){var o=s.color?"background:"+s.color+";":"",_=s.textColor?"color:"+s.textColor+";":"";l+="<div class='dhx_tooltip_line' style='"+o+_+"' event_id='"+d[i].id+"'>",l+="<div class='dhx_tooltip_date' style='"+o+_+"'>"+(d[i]._timed?this.templates.event_date(d[i].start_date):"")+"</div>",l+="<div class='dhx_event_icon icon_details'>&nbsp;</div>",l+=this.templates.year_tooltip(d[i].start_date,d[i].end_date,d[i])+"</div>"}}this._tooltip.style.display="",this._tooltip.style.top="0px",
+document.body.offsetWidth-t.left-this._tooltip.offsetWidth<0?this._tooltip.style.left=t.left-this._tooltip.offsetWidth+"px":this._tooltip.style.left=t.left+r.offsetWidth+"px",this._tooltip.date=e,this._tooltip.innerHTML=l,document.body.offsetHeight-t.top-this._tooltip.offsetHeight<0?this._tooltip.style.top=t.top-this._tooltip.offsetHeight+r.offsetHeight+"px":this._tooltip.style.top=t.top+"px"},scheduler._year_view_tooltip_handler=function(t){if(e()){var t=t||event,a=t.target||t.srcElement;"a"==a.tagName.toLowerCase()&&(a=a.parentNode),
+-1!=(a.className||"").indexOf("dhx_year_event")?scheduler._showToolTip(n(a.getAttribute("date")),getOffset(a),t,a):scheduler._hideToolTip()}},scheduler._init_year_tooltip=function(){scheduler._detachDomEvent(scheduler._els.dhx_cal_data[0],"mouseover",scheduler._year_view_tooltip_handler),dhtmlxEvent(scheduler._els.dhx_cal_data[0],"mouseover",scheduler._year_view_tooltip_handler)},scheduler.attachEvent("onSchedulerResize",function(){return e()?(this.year_view(!0),!1):!0}),scheduler._get_year_cell=function(e){
+var t=e.getMonth()+12*(e.getFullYear()-this._min_date.getFullYear())-this.week_starts._month,a=this._els.dhx_cal_data[0].childNodes[t],e=this.week_starts[t]+e.getDate()-1;return a.childNodes[2].firstChild.rows[Math.floor(e/7)].cells[e%7].firstChild},scheduler._year_marked_cells={},scheduler._mark_year_date=function(e,t){var a=r(e),n=this._get_year_cell(e),d=this.templates.event_class(t.start_date,t.end_date,t);scheduler._year_marked_cells[a]||(n.className="dhx_month_head dhx_year_event",n.setAttribute("date",a),
+scheduler._year_marked_cells[a]=n),n.className+=d?" "+d:""},scheduler._unmark_year_date=function(e){this._get_year_cell(e).className="dhx_month_head"},scheduler._year_render_event=function(e){var t=e.start_date;for(t=t.valueOf()<this._min_date.valueOf()?this._min_date:this.date.date_part(new Date(t));t<e.end_date;)if(this._mark_year_date(t,e),t=this.date.add(t,1,"day"),t.valueOf()>=this._max_date.valueOf())return},scheduler.year_view=function(e){var t;if(e&&(t=scheduler.xy.scale_height,scheduler.xy.scale_height=-1),
+scheduler._els.dhx_cal_header[0].style.display=e?"none":"",scheduler.set_sizes(),e&&(scheduler.xy.scale_height=t),scheduler._table_view=e,!this._load_mode||!this._load())if(e){if(scheduler._init_year_tooltip(),scheduler._reset_year_scale(),scheduler._load_mode&&scheduler._load())return void(scheduler._render_wait=!0);scheduler.render_view_data()}else scheduler._hideToolTip()},scheduler._reset_year_scale=function(){this._cols=[],this._colsS={};var e=[],t=this._els.dhx_cal_data[0],a=this.config;t.scrollTop=0,
+t.innerHTML="";var r=Math.floor(parseInt(t.style.width)/a.year_x),n=Math.floor((parseInt(t.style.height)-scheduler.xy.year_top)/a.year_y);190>n&&(n=190,r=Math.floor((parseInt(t.style.width)-scheduler.xy.scroll_width)/a.year_x));for(var d=r-11,l=0,i=document.createElement("div"),s=this.date.week_start(scheduler._currentDate()),o=0;7>o;o++)this._cols[o]=Math.floor(d/(7-o)),this._render_x_header(o,l,s,i),s=this.date.add(s,1,"day"),d-=this._cols[o],l+=this._cols[o];i.lastChild.className+=" dhx_scale_bar_last";
+
+for(var _=this.date[this._mode+"_start"](this.date.copy(this._date)),c=_,h=null,o=0;o<a.year_y;o++)for(var u=0;u<a.year_x;u++){h=document.createElement("DIV"),h.style.cssText="position:absolute;",h.setAttribute("date",this.templates.xml_format(_)),h.innerHTML="<div class='dhx_year_month'></div><div class='dhx_year_week'>"+i.innerHTML+"</div><div class='dhx_year_body'></div>",h.childNodes[0].innerHTML=this.templates.year_month(_);for(var p=this.date.week_start(_),v=this._reset_month_scale(h.childNodes[2],_,p),m=h.childNodes[2].firstChild.rows,g=m.length;6>g;g++){
+m[0].parentNode.appendChild(m[0].cloneNode(!0));for(var f=0,y=m[g].childNodes.length;y>f;f++)m[g].childNodes[f].className="dhx_after",m[g].childNodes[f].firstChild.innerHTML=scheduler.templates.month_day(v),v=scheduler.date.add(v,1,"day")}t.appendChild(h),h.childNodes[1].style.height=h.childNodes[1].childNodes[0].offsetHeight+"px";var b=Math.round((n-190)/2);h.style.marginTop=b+"px",this.set_xy(h,r-10,n-b-10,r*u+5,n*o+5+scheduler.xy.year_top),e[o*a.year_x+u]=(_.getDay()-(this.config.start_on_monday?1:0)+7)%7,
+_=this.date.add(_,1,"month")}this._els.dhx_cal_date[0].innerHTML=this.templates[this._mode+"_date"](c,_,this._mode),this.week_starts=e,e._month=c.getMonth(),this._min_date=c,this._max_date=_};var l=scheduler.getActionData;scheduler.getActionData=function(t){if(!e())return l.apply(scheduler,arguments);var a=t?t.target:event.srcElement,r=scheduler._get_year_month_date(a),n=scheduler._get_year_month_cell(a),d=scheduler._get_year_day_indexes(n);return d&&r?(r=scheduler.date.add(r,d.week,"week"),r=scheduler.date.add(r,d.day,"day")):r=null,
+{date:r,section:null}},scheduler._get_year_day_indexes=function(e){var t=scheduler._get_year_el_node(e,this._locate_year_month_table);if(!t)return null;for(var a=0,r=0,a=0,n=t.rows.length;n>a;a++){for(var d=t.rows[a].getElementsByTagName("td"),r=0,l=d.length;l>r&&d[r]!=e;r++);if(l>r)break}return n>a?{day:r,week:a}:null},scheduler._get_year_month_date=function(e){var e=scheduler._get_year_el_node(e,scheduler._locate_year_month_root);if(!e)return null;var t=e.getAttribute("date");return t?scheduler.date.week_start(scheduler.templates.xml_date(t)):null;
+
+},scheduler._locate_year_month_day=function(e){return e.className&&-1!=e.className.indexOf("dhx_year_event")&&e.hasAttribute&&e.hasAttribute("date")};var i=scheduler._locate_event;scheduler._locate_event=function(e){var t=i.apply(scheduler,arguments);if(!t){var a=scheduler._get_year_el_node(e,scheduler._locate_year_month_day);if(!a||!a.hasAttribute("date"))return null;var r=scheduler.templates.xml_date(a.getAttribute("date")),n=scheduler.getEvents(r,scheduler.date.add(r,1,"day"));if(!n.length)return null;
+
+t=n[0].id}return t},scheduler._locate_year_month_cell=function(e){return"td"==e.nodeName.toLowerCase()},scheduler._locate_year_month_table=function(e){return"table"==e.nodeName.toLowerCase()},scheduler._locate_year_month_root=function(e){return e.hasAttribute&&e.hasAttribute("date")},scheduler._get_year_month_cell=function(e){return this._get_year_el_node(e,this._locate_year_month_cell)},scheduler._get_year_month_table=function(e){return this._get_year_el_node(e,this._locate_year_month_table)},scheduler._get_year_month_root=function(e){
+return this._get_year_el_node(this._get_year_month_table(e),this._locate_year_month_root)},scheduler._get_year_el_node=function(e,t){for(;e&&!t(e);)e=e.parentNode;return e}}();
//# sourceMappingURL=../sources/ext/dhtmlxscheduler_year_view.js.map \ No newline at end of file