function BasicEventRenderer() { var t = this; // exports t.renderEvents = renderEvents; t.rerenderEvents = rerenderEvents; t.clearEvents = clearEvents; t.bindDaySeg = bindDaySeg; // imports DayEventRenderer.call(t); var opt = t.opt; var trigger = t.trigger; var reportEvents = t.reportEvents; var clearEventData = t.clearEventData; var eventElementHandlers = t.eventElementHandlers; var showEvents = t.showEvents; var hideEvents = t.hideEvents; var eventDrop = t.eventDrop; var getDaySegmentContainer = t.getDaySegmentContainer; var getHoverListener = t.getHoverListener; var renderDayOverlay = t.renderDayOverlay; var clearOverlays = t.clearOverlays; var getRowCnt = t.getRowCnt; var getColCnt = t.getColCnt; var renderDaySegs = t.renderDaySegs; var resizableDayEvent = t.resizableDayEvent; // locals var cachedEvents=[]; /* Rendering --------------------------------------------------------------------*/ function renderEvents(events) { reportEvents(cachedEvents = events); renderDaySegs(compileSegs(events)); } function rerenderEvents(modifiedEventId) { clearEvents(); renderDaySegs(compileSegs(cachedEvents), modifiedEventId); } function clearEvents() { clearEventData(); getDaySegmentContainer().empty(); } function compileSegs(events) { var rowCnt = getRowCnt(), colCnt = getColCnt(), d1 = cloneDate(t.visStart), d2 = addDays(cloneDate(d1), colCnt), visEventsEnds = $.map(events, exclEndDay), i, row, j, level, k, seg, segs=[]; for (i=0; i