/* dhtmlxScheduler v.4.2.0 Stardard 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.multisection = true; scheduler.config.multisection_shift_all = true; scheduler.config.section_delemiter = ","; scheduler.attachEvent("onSchedulerReady", function(){ var old_unit = scheduler._update_unit_section; scheduler._update_unit_section = function(action){ return scheduler._update_sections(action, old_unit); }; var old_timeline = scheduler._update_timeline_section; scheduler._update_timeline_section =function(action){ return scheduler._update_sections(action, old_timeline); }; scheduler.isMultisectionEvent = function(ev){ if(ev && this._get_multisection_view()){ var units = this._get_event_sections(ev); return (units.length > 1); } return false; }; scheduler._get_event_sections = function(event){ var mapping = this._get_section_property(); var units = event[mapping] || ""; return this._parse_event_sections(units); }; scheduler._parse_event_sections = function(value){ if(value instanceof Array){ return value; }else{ return value.toString().split(scheduler.config.section_delemiter); } }; scheduler._register_copies_array = function(evs){ for(var i=0; i < evs.length; i++) this._register_copy(evs[i]); }; scheduler._register_copy = function(copy){ if(!this._multisection_copies[copy.id]){ this._multisection_copies[copy.id] = {}; } var section = copy[this._get_section_property()]; var evs = this._multisection_copies[copy.id]; if(!evs[section]){ evs[section] = copy; } }; scheduler._get_copied_event = function(event_id, section){ if(!this._multisection_copies[event_id]) return null; if(this._multisection_copies[event_id][section]) return this._multisection_copies[event_id][section]; var parts = this._multisection_copies[event_id]; //multisection event has not been rendered in this section, need retrieve state of one of rendered events if(scheduler._drag_event && scheduler._drag_event._orig_section && parts[scheduler._drag_event._orig_section]){ return parts[scheduler._drag_event._orig_section]; }else{ var min_sorder = Infinity, ev = null; for(var i in parts){ if(parts[i]._sorder < min_sorder){ ev = parts[i]; min_sorder = parts[i]._sorder; } } return ev; } }; scheduler._clear_copied_events = function(){ this._multisection_copies = {}; }; scheduler._clear_copied_events(); scheduler._split_events = function(evs) { var stack = []; var pr = this._get_multisection_view(); var mapping = this._get_section_property(); if(pr) { for (var i=0; i 1) { for (var j=0; j