private void RenderRowHeader(HtmlTextWriter output, CalendarDay calendarDay, string bgColor)
        {
            var height = calendarDay.MaxColumns() * Configuration.EventHeight - 1;

            if (!calendarDay.IsRoom)
            {
                output.AddStyleAttribute("width", Configuration.RowHeaderWidth - 1 + "px");
                output.AddStyleAttribute("border-right", "1px solid " + Configuration.BorderColor);
                output.AddStyleAttribute("border-left", "1px solid " + Configuration.BorderColor);
                output.AddStyleAttribute("border-bottom", "1px solid " + Configuration.BorderColor);
                output.AddStyleAttribute("background-color", bgColor);
                output.AddStyleAttribute("font-family", Configuration.HeaderFontFamily);
                output.AddStyleAttribute("font-size", Configuration.HeaderFontSize);
                output.AddStyleAttribute("color", Configuration.HeaderFontColor);
            }
            else
            {
                output.AddStyleAttribute("width", Configuration.RowHeaderWidth - 1 + "px");
                output.AddStyleAttribute("border-right", "1px solid " + Configuration.BorderColor);
                output.AddStyleAttribute("border-left", "2px solid " + Configuration.RoomHeaderBorderColor);
                output.AddStyleAttribute("border-bottom", "1px solid " + Configuration.BorderColor);
                output.AddStyleAttribute("background-color", bgColor);
                output.AddStyleAttribute("font-family", Configuration.HeaderFontFamily);
                output.AddStyleAttribute("font-size", Configuration.RoomHeaderHeaderFontSize);
                output.AddStyleAttribute("color", Configuration.RoomHeaderFontColor);
            }

            output.RenderBeginTag("td");

            output.Write("<div unselectable='on' style='margin-left:4px; height:" + height + "px; line-height:" + height + "px; overflow:hidden;'>");
            output.Write(calendarDay.ResourceName);
            output.Write("</div>");

            output.RenderEndTag();
        }
        private void RenderEvents(CalendarDay calendarDay, HtmlTextWriter output)
        {
            if (calendarDay.Events.Count != 0)
            {
                output.AddStyleAttribute("position", "relative");
                output.AddStyleAttribute("height", calendarDay.MaxColumns() * Configuration.EventHeight - 1 + "px");
                output.AddStyleAttribute("overflow", "none");
                output.AddAttribute("unselectable", "on");
                output.RenderBeginTag("div");

                foreach (var ep in calendarDay.Events.Where(ep => ep.Start.Hour <= Configuration.BusinessEndsHour))
                {
                    RenderEvent(calendarDay, ep, output);
                }

                output.RenderEndTag();
            }
        }
        private void RenderRowCells(HtmlTextWriter output, CalendarDay calendarDay, string bgColor)
        {
            output.AddStyleAttribute("width", "1px");
            output.AddStyleAttribute("border-bottom", "1px solid black");
            output.AddStyleAttribute("background-color", GetCellColor(calendarDay.StartDate));
            output.AddStyleAttribute("valign", "top");
            output.AddStyleAttribute("unselectable", "on");
            output.RenderBeginTag("td");

            RenderEvents(calendarDay, output);

            output.RenderEndTag();

            var cellsToRender = GetVisibleEnd.Hour + 1;

            if (Configuration.NonBusinessHours == NonBusinessHoursBehavior.Show)
            {
                cellsToRender = CellCount;
            }

            for (var i = GetVisibleStart.Hour; i < cellsToRender; i++)
            {
                var thisCellWidth = Configuration.CellWidth;
                if (i == GetVisibleStart.Hour)
                {
                    thisCellWidth = Configuration.CellWidth - 1;
                }

                if (i == cellsToRender - 1)
                {
                    output.AddStyleAttribute("border-right", "1px solid " + Configuration.BorderColor);
                }

                output.AddStyleAttribute("border-bottom", "1px solid " + Configuration.BorderColor);
                output.AddStyleAttribute("width", thisCellWidth + "px");
                output.AddStyleAttribute("background-color", bgColor);

                output.RenderBeginTag("td");
                output.Write("<div unselectable='on' style='display:block; width:" + (thisCellWidth - 1) + "px; height:" +
                             (calendarDay.MaxColumns() * Configuration.EventHeight - 1) + "px; border-right: 1px solid " + Configuration.HourBorderColor +
                             ";' >&nbsp;</div>");
                output.RenderEndTag();
            }
        }