Type.registerNamespace("Telerik.Web.UI");
Type.registerNamespace("Telerik.Web.UI.Scheduler");
(function(){var c=$telerik.$;
var b=Telerik.Web.UI;
var f=Telerik.Web.UI.Scheduler;
var d=60000;
var a=d*60;
var g=a*24;
var e;
f.ResourceGroupedWeekModel=function(h,i,j){f.ResourceGroupedWeekModel.initializeBase(this,[h]);
this._weekModels=new Array();
this._resources=new b.SchedulerResourceCollection();
this._groupingResource=i;
this._isVertical=j;
if(f.Rendering.BlockCollection){this._blockCollection=new f.Rendering.BlockCollection();
}if(f.Rendering.HorizontalBlockCollection){this._allDayBlocks=new f.Rendering.HorizontalBlockCollection();
}};
f.ResourceGroupedWeekModel.prototype={initialize:function(){this._resources=this._owner.get_resources().getResourcesByType(this._groupingResource);
for(var h=0;
h<this._resources.get_count();
h++){this._weekModels[h]=this._createNestedModel();
}},getTimeSlotFromDomElement:function(k){var j=60*24;
var i=this._getRawIndexFromDomElement(k);
var m=this._getTimeFromDomElement(k);
var l=this._resources.getResource(i.modelIndex);
var h=(i.viewPartIndex==0)?j:this._owner.get_minutesPerRow();
return new f.ResourceGroupedWeekTimeSlot(i,m,h,l,k);
},getTimeSlotForAppointment:function(k){var m=this._getAppointmentModelIndex(k);
if(m==-1){return null;
}var i=k.get_duration()%g==0;
var l=i?0:1;
var p;
if(i){p=this._weekModels[0]._getAllDayTimeSlotIndices(k.get_start());
}else{p=this._weekModels[0]._getRegularTimeSlotIndices(k.get_start());
}p.viewPartIndex=l;
p.modelIndex=m;
var n=this._weekModels[0]._getTimeFromIndex(p);
var j=60*24;
var o=(p.viewPartIndex==0)?j:this._owner.get_minutesPerRow();
var h=this._getTimeSlotDomElement(l,p.rowIndex,p.cellIndex,m);
return new f.ResourceGroupedWeekTimeSlot(p,n,o,this._resources.getResource(m),h);
},isVisible:function(h){var i=f.ResourceGroupedWeekModel.callBaseMethod(this,"isVisible",[h]);
var j=this._getAppointmentModelIndex(h)!=-1;
return i&&j;
},_getAppointmentModelIndex:function(h){var j=-1;
var i=this;
h.get_resources().forEach(function(k){var l=i._resources.getResourceByTypeAndKey(k.get_type(),k.get_key());
if(l){j=Array.indexOf(i._resources._array,l);
}});
return j;
},_getTimeSlotForAppointmentPart:function(i){var j=this._getRegularTimeSlotIndices(i.start);
var k=this._getTimeSlotDomElement(1,j.rowIndex,j.cellIndex,i.modelIndex);
var h=this._resources[i.modelIndex];
return this._createTimeSlot(j,i.start,k,h);
},_createTimeSlot:function(i,m,h,l){var j=60*24;
var k=(i.viewPartIndex==0)?j:this._owner.get_minutesPerRow();
return new f.ResourceGroupedWeekTimeSlot(i,m,k,l,h);
},_getTimeSlotDomElement:function(i,l,j,k){if(k===e){return this._weekModels[0]._getTimeSlotDomElement(i,l,j);
}if(this._isVertical){var m=this._weekModels[0].get_slotsPerDay();
if(i==0){l+=k;
}if(this._owner.get_showAllDayRow()&&i>0){l+=k+1;
}l+=m*k;
var h=this._owner.get_element();
return c("div.rsTopWrap table.rsContentTable",h)[0].tBodies[0].rows[l].cells[j];
}j+=this.get_numberOfDays()*k;
return this._weekModels[0]._getTimeSlotDomElement(i,l,j);
},_getRegularTimeSlotIndices:function(h){return this._weekModels[0]._getRegularTimeSlotIndices(h);
},_getAllDayTimeSlotIndices:function(h){return this._weekModels[0]._getAllDayTimeSlotIndices(h);
},_getMaxAppointmentGrowth:function(i){if(this._isVertical){var h=this.getTimeSlotFromDomElement(i);
return(this.get_slotsPerDay()-h.get_rawIndex().rowIndex-1);
}else{return f.ResourceGroupedWeekModel.callBaseMethod(this,"_getMaxAppointmentGrowth",[i]);
}},_createNestedModel:function(){return new f.WeekModel(this._owner);
},_getRawIndexFromDomElement:function(j){while(j&&(j.tagName.toUpperCase()!="TD")){j=j.parentNode;
}var n=j.parentNode;
var m=n.parentNode;
var h=this._weekModels[0]._getRawIndexFromDomElement(j);
var l;
if(this._isVertical){var i=m.rows.length/this._resources.get_count();
l=Math.floor(h.rowIndex/i);
h.rowIndex=h.rowIndex-(l*i);
if(this._owner.get_showAllDayRow()&&h.viewPartIndex>0){h.rowIndex--;
}h.modelIndex=l;
}else{var k=n.cells.length/this._resources.get_count();
l=Math.floor(h.cellIndex/k);
h.cellIndex=h.cellIndex-(l*k);
h.modelIndex=l;
}return h;
},_getAllDayTimeSlotForAppointmentPart:function(i){var j=this._getAllDayTimeSlotIndices(i.start);
j.viewPartIndex=0;
var k=this._getTimeSlotDomElement(j.viewPartIndex,j.rowIndex,j.cellIndex,i.modelIndex);
var h=this._resources[i.modelIndex];
return this._createTimeSlot(j,i.start,k,h);
},_getAllDayTimeSlotFromStartTime:function(i,l){var n=this._getAllDayTimeSlotIndices(i);
n.viewPartIndex=0;
var m=this._getAppointmentModelIndex(l);
var h=this._getTimeSlotDomElement(n.viewPartIndex,n.rowIndex,n.cellIndex,m);
var k=null;
var j=this;
l.get_resources().forEach(function(o){if(!k){k=j._resources.getResourceByTypeAndKey(o.get_type(),o.get_key());
}});
return this._createTimeSlot(n,i,h,k);
},_getTimeFromDomElement:function(i){var h=this._getRawIndexFromDomElement(i);
return this._weekModels[0]._getTimeFromIndex(h);
},removeFromBlock:function(h){this._weekModels[h.modelIndex].removeFromBlock(h);
},addToBlocks:function(h){this._weekModels[h.modelIndex].addToBlocks(h);
},_getRenderer:function(){if(!this._renderer){this._renderer=new f.Rendering.ResourceGroupedWeekViewRenderer(this);
}return this._renderer;
}};
f.ResourceGroupedWeekModel.registerClass("Telerik.Web.UI.Scheduler.ResourceGroupedWeekModel",f.WeekModelBase);
f.ResourceGroupedWeekTimeSlot=function(j,i,k,h,l){this._resource=h;
f.ResourceGroupedWeekTimeSlot.initializeBase(this,[j,i,k,l]);
};
f.ResourceGroupedWeekTimeSlot.prototype={get_index:function(){var i=this.get_rawIndex();
var h=f.ResourceGroupedWeekTimeSlot.callBaseMethod(this,"get_index");
return String.format("{0}:{1}",i.modelIndex,h);
},get_resource:function(){return this._resource;
}};
f.ResourceGroupedWeekTimeSlot.registerClass("Telerik.Web.UI.Scheduler.ResourceGroupedWeekTimeSlot",f.WeekTimeSlot);
})();
if(typeof(Sys)!=='undefined')Sys.Application.notifyScriptLoaded();