/*
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