﻿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 d=this._owner.get_selectedDate();
var c=m.DateHelper.getFirstDayOfMonth(d);
var e=m.DateHelper.getStartOfWeek(c,this._owner.get_firstDayOfWeek());
var a=m.DateHelper.getEndOfWeek(e,this._owner.get_firstDayOfWeek(),this.get_weekLength());
var b;
if(a.getMonth()==d.getMonth()){b=e
}else{b=m.DateTime.add(e,7*o)
}return b
},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(b){var a=this.get_visibleRangeStart();
var d=this.get_weekLength();
var c=Math.floor(b.dayIndex/d);
var e=b.dayIndex%d;
var f=(c*7)+e;
l.RadScheduler._incrementTime(a,24*f,0);
return a
},_getRawIndexFromDomElement:function(d){while(d&&(d.tagName.toUpperCase()!="TD")){d=d.parentNode
}if(d){var b=d.parentNode;
var e=b.cells.length;
var a=d.cellIndex;
var c=b.rowIndex;
return{dayIndex:(e*c)+a}
}return null
},getTimeSlotForAppointment:function(a){return this._getAllDayTimeSlotFromStartTime(a.get_start())
},_getAllDayTimeSlotFromStartTime:function(c){var a=m.DateTime.subtract(c,this.get_visibleRangeStart());
var b=Math.floor(a/j);
var d=a-(b*j);
var f=Math.floor(d/o);
var e=this._getTimeSlotDomElement(b,f);
return new n.TimeSlot({rowIndex:b,cellIndex:f},null,e)
},_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();