﻿Type.registerNamespace("Telerik.Web.UI.Scheduler");
(function(d,b,g){var e=60000;
var a=e*60;
var h=a*24;
var c=8*a;
var i=18*a;
var f=4;
b.Scheduler.WeekModelBase=function(j){this._owner=j;
this._settings=this._owner.get_weekViewSettings();
this._defaultHeaderDateFormat="d";
this._defaultColumnHeaderDateFormat="ddd, d";
};
b.Scheduler.WeekModelBase.prototype={get_visibleRangeStart:function(){var k=this._owner;
var j=g.DateHelper.getStartOfWeek(k.get_selectedDate(),k.get_firstDayOfWeek());
if(!k.get_showAllDayRow()){j=g.DateTime.add(j,this.get_effectiveDayStartTime());
}return j;
},get_visibleRangeEnd:function(){var k=this._owner;
var j=g.DateHelper.getEndOfWeek(k.get_selectedDate(),k.get_firstDayOfWeek(),this.get_numberOfDays()-1);
if(!k.get_showAllDayRow()){j=g.DateTime.add(j,this.get_effectiveDayEndTime());
}else{j=g.DateTime.add(j,h);
}return j;
},get_numberOfDays:function(){var j=this._owner;
return g.DateHelper.getWeekLength(j.get_selectedDate(),j.get_firstDayOfWeek(),j.get_lastDayOfWeek());
},get_dayStartTime:function(){if(!this._settings){return c;
}return this._settings.dayStartTime||c;
},get_dayEndTime:function(){if(!this._settings){return i;
}return this._settings.dayEndTime||i;
},get_effectiveDayStartTime:function(){return this._owner.get_showFullTime()?0:this.get_dayStartTime();
},get_effectiveDayEndTime:function(){var k=this._owner.get_showFullTime()?h:this.get_dayEndTime();
var j=k-this.get_effectiveDayStartTime();
var n=j/e;
var l=this._owner.get_minutesPerRow();
var m=Math.round(Math.ceil(n/l));
return this.get_effectiveDayStartTime()+(m*l*e);
},get_slotsPerDay:function(){var j=(this.get_effectiveDayEndTime()-this.get_effectiveDayStartTime())/e;
return j/this._owner.get_minutesPerRow();
},get_nextPeriodDate:function(){return g.DateTime.add(this._owner.get_selectedDate(),(7*h));
},get_previousPeriodDate:function(){return g.DateTime.add(this._owner.get_selectedDate(),-(7*h));
},get_headerDateFormat:function(){if(!this._settings){return this._defaultHeaderDateFormat;
}return this._settings.headerDateFormat||this._defaultHeaderDateFormat;
},get_columnHeaderDateFormat:function(){if(!this._settings){return this._defaultColumnHeaderDateFormat;
}return this._settings.columnHeaderDateFormat||this._defaultColumnHeaderDateFormat;
},updateResizingAppointmentSize:function(k,l){var j=k.parentNode.parentNode;
var n=j.offsetHeight;
var m=l.parentNode.rowIndex-j.parentNode.rowIndex;
m=Math.min(m,this._getMaxAppointmentGrowth(j));
var o=Math.max(1,(m+1))*n;
var p=parseInt(k.style.paddingBottom);
p=isNaN(p)?0:p;
o-=p;
if($telerik.isIE&&$telerik.quirksMode){o-=$telerik.getBorderBox(j).vertical*2;
}o-=f;
k.style.height=o+"px";
d(".rsAptOut, .rsAptMid, .rsAptIn, .rsAptContent",k).css("height",o+"px");
},isVisible:function(j){return this._isInsideVisibleRange(j);
},_isInsideVisibleRange:function(n){var m=g.DateTime.getDate(this.get_visibleRangeStart());
for(var k=0,l=this.get_numberOfDays();
k<l;
k++){var j=g.DateTime.add(m,h*k);
var o=g.DateTime.add(j,this.get_effectiveDayEndTime());
j=g.DateTime.add(j,this.get_effectiveDayStartTime());
if(n._isInRange(j,o)){return true;
}}return false;
},_getFirstDayStart:function(){var j=g.DateHelper.getStartOfWeek(this._owner.get_selectedDate(),this._owner.get_firstDayOfWeek());
return new g.DateTime(g.DateTime.getDate(j)).add(this.get_effectiveDayStartTime()).toDate();
},getDurationOfMovedAppointment:function(n,j,m){var l=m.get_isAllDay();
var o=j.get_isAllDay();
var k=n.get_duration();
if(l&&!o){k=m.get_duration();
}if(o&&!l){k=this._owner.get_minutesPerRow()*this._owner.get_numberOfHoveredRows()*e;
}return k;
},_getMaxAppointmentGrowth:function(j){return j.parentNode.parentNode.rows.length;
},getDurationOfInsertedAppointment:function(j){if(j.get_isAllDay()){return j.get_duration();
}else{return j.get_duration()*this._owner.get_numberOfHoveredRows();
}}};
b.Scheduler.WeekModelBase.registerClass("Telerik.Web.UI.Scheduler.WeekModelBase",null,b.ISchedulerModel);
b.Scheduler.WeekModel=function(j){b.Scheduler.WeekModel.initializeBase(this,[j]);
if(g.Rendering.BlockCollection){this._blockCollection=new g.Rendering.BlockCollection();
}if(g.Rendering.HorizontalBlockCollection){this._allDayBlocks=new g.Rendering.HorizontalBlockCollection();
}};
b.Scheduler.WeekModel.prototype={initialize:function(){},getTimeSlotFromDomElement:function(n){var l=60*24;
var m=this._getRawIndexFromDomElement(n);
var k=this._getTimeFromDomElement(n);
var j=(m.viewPartIndex==0)?l:this._owner.get_minutesPerRow();
return new b.Scheduler.WeekTimeSlot(m,k,j,n);
},_getTimeFromDomElement:function(k){var j=this._getRawIndexFromDomElement(k);
return this._getTimeFromIndex(j);
},_getTimeFromIndex:function(j){var l;
if(j.viewPartIndex==0){l=g.DateHelper.getStartOfWeek(this._owner.get_selectedDate(),this._owner.get_firstDayOfWeek());
}else{l=this._getFirstDayStart();
}var k=j.rowIndex*this._owner.get_minutesPerRow();
return new g.DateTime(l).add(j.cellIndex*h).add(k*e).toDate();
},_getRawIndexFromDomElement:function(k){while(k&&k.tagName.toUpperCase()!="TD"&&k.tagName.toUpperCase()!="TH"){k=k.parentNode;
}if(k){var l=k.cellIndex;
var n=k.parentNode.rowIndex;
var o=k.parentNode;
var m=Sys.UI.DomElement.containsCssClass(o,"rsAllDayRow");
var j=m?0:1;
return{cellIndex:l,rowIndex:n,viewPartIndex:j};
}return null;
},getTimeSlotForAppointment:function(m){var j=m._isAllDay()&&this._owner.get_showAllDayRow();
var l=j?0:1;
var o;
if(j){o=this._getAllDayTimeSlotIndices(m.get_start());
}else{o=this._getRegularTimeSlotIndices(m.get_start());
}o.viewPartIndex=l;
var k=this._getTimeSlotDomElement(l,o.rowIndex,o.cellIndex);
var n=this._getTimeFromIndex(o);
return this._createTimeSlot(o,n,k);
},_createTimeSlot:function(l,k,m){var n=60*24;
var j=(l.viewPartIndex==0)?n:this._owner.get_minutesPerRow();
return new b.Scheduler.WeekTimeSlot(l,k,j,m);
},_getAllDayTimeSlotIndices:function(n){var l=this.get_visibleRangeStart();
var j=new g.DateTime(n).subtract(l);
var m=Math.max(0,Math.round(j/h));
var k=0;
return{rowIndex:k,cellIndex:m};
},_getAllDayTimeSlotForAppointmentPart:function(j){var k=this._getAllDayTimeSlotIndices(j.start);
k.viewPartIndex=0;
var l=this._getTimeSlotDomElement(k.viewPartIndex,k.rowIndex,k.cellIndex);
return this._createTimeSlot(k,j.start,l);
},_getTimeSlotForAppointmentPart:function(j){var m=j.start;
var k=this._getRegularTimeSlotIndices(m);
var l=this._getTimeSlotDomElement(1,k.rowIndex,k.cellIndex);
return this._createTimeSlot(k,m,l);
},_getRegularTimeSlotIndices:function(j){var o=this._getFirstDayStart();
var m=new g.DateTime(j).subtract(o);
var k=Math.max(0,Math.floor(m/h));
var l=m-(k*h);
var n=Math.max(0,Math.floor(l/(this._owner.get_minutesPerRow()*e)));
return{rowIndex:n,cellIndex:k};
},_getTimeSlotDomElement:function(k,j,l){var m=this._owner.get_element();
if(k==0){return d("div.rsTopWrap .rsAllDayRow",m).children()[l];
}return d("div.rsTopWrap table.rsContentTable",m)[0].tBodies[0].rows[j].cells[l];
},removeFromBlock:function(j){this._allDayBlocks.remove(j);
this._blockCollection.remove(j);
},addToBlocks:function(j){if(j.isAllDay){this._allDayBlocks.add(j);
}else{this._blockCollection.add(j);
}},_getRenderer:function(){if(!this._renderer){this._renderer=new b.Scheduler.Rendering.WeekViewRenderer(this);
}return this._renderer;
}};
b.Scheduler.WeekModel.registerClass("Telerik.Web.UI.Scheduler.WeekModel",b.Scheduler.WeekModelBase);
b.Scheduler.WeekTimeSlot=function(l,k,j,m){this._rawIndex=l;
this._startTime=k;
this._durationInMinutes=j;
this._domElement=m;
};
b.Scheduler.WeekTimeSlot.prototype={get_index:function(){var j=this.get_rawIndex();
return String.format("{0}:{1}:{2}",j.viewPartIndex,j.rowIndex,j.cellIndex);
},get_rawIndex:function(){return this._rawIndex;
},get_startTime:function(){return this._startTime;
},get_endTime:function(){return g.DateTime.add(this.get_startTime(),this.get_duration());
},get_duration:function(){return this.get_durationInMinutes()*e;
},get_durationInMinutes:function(){return this._durationInMinutes;
},get_isAllDay:function(){return this.get_rawIndex().viewPartIndex==0;
},get_domElement:function(){return this._domElement;
}};
b.Scheduler.WeekTimeSlot.registerClass("Telerik.Web.UI.Scheduler.WeekTimeSlot",null,b.ISchedulerTimeSlot);
})($telerik.$,Telerik.Web.UI,Telerik.Web.UI.Scheduler);

if(typeof(Sys)!=='undefined')Sys.Application.notifyScriptLoaded();