Type.registerNamespace("Telerik.Web.UI.Scheduler.Views.Month");
(function(k,l,m,n){var p=60000;
var i=p*60;
var o=i*24;
var j=o*7;
n.ModelBase=function(a){this._owner=a;
this._settings=this._owner.get_monthViewSettings()
};
n.ModelBase.prototype={get_visibleRangeStart:function(){var e=this._owner.get_selectedDate();
var d=m.DateHelper.getFirstDayOfMonth(e);
var a=m.DateHelper.getStartOfWeek(d,this._owner.get_firstDayOfWeek());
var b=m.DateHelper.getEndOfWeek(a,this._owner.get_firstDayOfWeek(),this.get_weekLength());
var c;
if(b.getMonth()==e.getMonth()){c=a
}else{c=m.DateTime.add(a,7*o)
}return c
},get_visibleRangeEnd:function(){var a=m.DateHelper.getLastDayOfMonth(this._owner.get_selectedDate());
return m.DateHelper.getEndOfWeek(a,this._owner.get_firstDayOfWeek(),this.get_weekLength())
},get_nextPeriodDate:function(){var a=this._owner.get_selectedDate();
return new Date(a.getFullYear(),a.getMonth(),32)
},get_previousPeriodDate:function(){var a=this._owner.get_selectedDate();
return new Date(a.getFullYear(),a.getMonth(),0)
},get_weekLength:function(){return m.DateHelper.getWeekLength(this._owner.get_selectedDate(),this._owner.get_firstDayOfWeek(),this._owner.get_lastDayOfWeek())
},get_headerDateFormat:function(){return this._settings.headerDateFormat||"MMM, yyyy"
},get_dayHeaderDateFormat:function(){return this._settings.dayHeaderDateFormat||"dd"
},get_firstDayHeaderDateFormat:function(){return this._settings.firstDayHeaderDateFormat||"dd MMM"
},get_visibleAppointmentsPerDay:function(){return this._settings.visibleAppointmentsPerDay||2
},getDurationOfMovedAppointment:function(a){return a.get_duration()
}};
n.ModelBase.registerClass("Telerik.Web.UI.Scheduler.Views.Month.ModelBase");
n.Model=function(a){if(m.Rendering.HorizontalBlockCollection){this._allDayBlocks=new m.Rendering.HorizontalBlockCollection()
}n.Model.initializeBase(this,[a])
};
n.Model.prototype={initialize:function(){},addToBlocks:function(a){this._allDayBlocks.add(a)
},removeFromBlock:function(a){this._allDayBlocks.remove(a)
},getTimeSlotFromDomElement:function(c){var b=this._getRawIndexFromDomElement(c);
var a=this._getTimeFromDomElement(c);
return new n.TimeSlot(b,a,c)
},isVisible:function(a){return a._isInRange(this.get_visibleRangeStart(),this.get_visibleRangeEnd())
},_getTimeFromDomElement:function(a){var b=this._getRawIndexFromDomElement(a);
return this._getTimeFromIndex(b)
},_getTimeFromIndex:function(d){var c=this.get_visibleRangeStart();
var f=this.get_weekLength();
var e=Math.floor(d.dayIndex/f);
var a=d.dayIndex%f;
var b=(e*7)+a;
l.RadScheduler._incrementTime(c,24*b,0);
return c
},_getRawIndexFromDomElement:function(e){while(e&&(e.tagName.toUpperCase()!="TD")){e=e.parentNode
}if(e){var c=e.parentNode;
var a=c.cells.length;
var b=e.cellIndex;
var d=c.rowIndex;
return{dayIndex:(a*d)+b}
}return null
},getTimeSlotForAppointment:function(a){return this._getAllDayTimeSlotFromStartTime(a.get_start())
},_getAllDayTimeSlotFromStartTime:function(e){var c=m.DateTime.subtract(e,this.get_visibleRangeStart());
var d=Math.floor(c/j);
var f=c-(d*j);
var b=Math.floor(f/o);
var a=this._getTimeSlotDomElement(d,b);
return new n.TimeSlot({rowIndex:d,cellIndex:b},null,a)
},_getTimeSlotDomElement:function(b,c){var a=this._owner.get_element();
return k("div.rsTopWrap table.rsContentTable",a)[0].tBodies[0].rows[b].cells[c]
},_getRenderer:function(){if(!this._renderer){this._renderer=new l.Scheduler.Rendering.MonthViewRenderer(this)
}return this._renderer
}};
n.Model.registerClass("Telerik.Web.UI.Scheduler.Views.Month.Model",n.ModelBase);
n.TimeSlot=function(b,a,c){this._rawIndex=b;
this._startTime=a;
this._domElement=c
};
n.TimeSlot.prototype={get_index:function(){var a=this.get_rawIndex();
return String.format("{0}",a.dayIndex)
},get_rawIndex:function(){return this._rawIndex
},get_startTime:function(){return this._startTime
},get_endTime:function(){return m.DateTime.add(this.get_startTime(),this.get_duration())
},get_duration:function(){return this.get_durationInMinutes()*p
},get_durationInMinutes:function(){return 1440
},get_isAllDay:function(){return true
},get_domElement:function(){return this._domElement
}};
n.TimeSlot.registerClass("Telerik.Web.UI.Scheduler.Views.Month.TimeSlot",null,l.ISchedulerTimeSlot)
})($telerik.$,Telerik.Web.UI,Telerik.Web.UI.Scheduler,Telerik.Web.UI.Scheduler.Views.Month);
if(typeof(Sys)!=='undefined')Sys.Application.notifyScriptLoaded();