void WriteDay (DateTime date, HtmlTextWriter writer, bool enabled)
{
TableItemStyle style = new TableItemStyle ();
TableCell cell = new TableCell ();
CalendarDay day = new CalendarDay (date,
IsWeekEnd (date.DayOfWeek),
date == TodaysDate, SelectedDates.Contains (date),
GetGlobalCalendar ().GetMonth (DisplayDate) != GetGlobalCalendar ().GetMonth (date),
date.Day.ToString ());
day.IsSelectable = SelectionMode != CalendarSelectionMode.None;
cell.HorizontalAlign = HorizontalAlign.Center;
cell.Width = Unit.Percentage (GetCellWidth ());
LiteralControl lit = new LiteralControl (day.DayNumberText);
cell.Controls.Add (lit);
OnDayRender (cell, day);
if (dayStyle != null && !dayStyle.IsEmpty) {
style.CopyFrom (dayStyle);
}
if (day.IsWeekend && weekendDayStyle != null && !weekendDayStyle.IsEmpty) {
style.CopyFrom (weekendDayStyle);
}
if (day.IsToday && todayDayStyle != null && !todayDayStyle.IsEmpty) {
style.CopyFrom (todayDayStyle);
}
if (day.IsOtherMonth && otherMonthDayStyle != null && !otherMonthDayStyle.IsEmpty) {
style.CopyFrom (otherMonthDayStyle);
}
if (enabled && day.IsSelected) {
style.BackColor = Color.Silver;
style.ForeColor = Color.White;
if (selectedDayStyle != null && !selectedDayStyle.IsEmpty) {
style.CopyFrom (selectedDayStyle);
}
}
cell.ApplyStyle (style);
lit.Text = BuildLink (GetDaysFromZenith (date).ToString (), day.DayNumberText,
cell.ForeColor, enabled && day.IsSelectable);
cell.RenderControl (writer);
}