public override void RenderInEditMode(HtmlTextWriter writer, CmsPage page, int identifier, CmsLanguage langToRenderFor, string[] paramList)
        {
            // CmsContext.setCurrentCultureInfo(langToRenderFor);
            EventCalendarDb db = new EventCalendarDb();

            EventCalendarDb.EventCalendarDetailsData entity = db.fetchDetailsData(page, identifier, langToRenderFor, true);

            string controlId = "eventDetails_" + page.ID.ToString() + "_" + identifier.ToString() + "_" + langToRenderFor.shortCode;

            addCssAndScriptForDateTimePicker(page);
            addScriptForDateTimePickerRender(page, controlId);

            string action = PageUtils.getFromForm(controlId + "_action", "");

            if (String.Compare(action, "saveNewValues", true) == 0)
            {
                entity.Description   = PageUtils.getFromForm(controlId + "_description", entity.Description);
                entity.CategoryId    = PageUtils.getFromForm(controlId + "_categoryId", entity.CategoryId);
                entity.StartDateTime = PageUtils.getFromForm(controlId + "_startDateTime", entity.StartDateTime);
                entity.EndDateTime   = PageUtils.getFromForm(controlId + "_endDateTime", entity.EndDateTime);
                db.updateDetailsData(page, identifier, langToRenderFor, entity);
            }

            List <EventCalendarDb.EventCalendarCategoryData> categoryList = db.fetchCategoryList(langToRenderFor);
            NameValueCollection collection = new NameValueCollection();

            foreach (EventCalendarDb.EventCalendarCategoryData c in categoryList)
            {
                collection.Add(c.CategoryId.ToString(), c.Title);
            }

            // ------- START RENDERING
            StringBuilder html = new StringBuilder();

            html.Append("<table border=\"0\">");
            html.Append("<tr valign=\"top\">");
            html.Append("<td>" + getDescriptionText(langToRenderFor) + ":</td>");
            html.Append("<td>" + PageUtils.getTextAreaHtml(controlId + "_description", controlId + "_description", entity.Description, 30, 4) + "</td>");
            html.Append("</tr>");
            html.Append("<tr valign=\"top\">");
            html.Append("<td>" + getCategoryText(langToRenderFor) + ":</td>");
            html.Append("<td>");
            string categoryDropDown = "CategoryDropDown";

            html.Append(PageUtils.getDropDownHtml(controlId + "_categoryId", controlId + "_categoryId", collection, entity.CategoryId.ToString(), "", categoryDropDown + "_" + langToRenderFor.shortCode));

            try
            {
                CmsPage editCategoryPage = CmsContext.getPageByPath(CmsConfig.getConfigValue("EditCalendarCategoryPagePath", "/_admin/EventCalendarCategory"));
                html.Append(" <a href=\"" + editCategoryPage.getUrl(langToRenderFor) + "\" onclick=\"window.open(this.href,'" + categoryDropDown + "','resizable=1,scrollbars=1,width=800,height=400'); return false;\">(edit)</a>");
            }
            catch (Exception ex)
            {
                html.Append(" <span>Cannot setup Edit Category Link: " + ex.Message + "</span>");
            }

            html.Append("</td>");
            html.Append("</tr>");
            html.Append("<tr valign=\"top\">");
            html.Append("<td>" + getStartDateTimeText(langToRenderFor) + ":</td>");
            html.Append("<td>" + PageUtils.getInputTextHtml(controlId + "_startDateTime", controlId + "_startDateTime", entity.StartDateTime.ToString("yyyy-MM-dd, h:mm tt"), 20, 20) + "</td>");
            html.Append("</tr>");
            html.Append("<tr valign=\"top\">");
            html.Append("<td>" + getEndDateTimeText(langToRenderFor) + ":</td>");
            html.Append("<td>" + PageUtils.getInputTextHtml(controlId + "_endDateTime", controlId + "_endDateTime", entity.EndDateTime.ToString("yyyy-MM-dd, h:mm tt"), 20, 20) + "</td>");
            html.Append("</tr>");
            html.Append("</table>");

            html.Append(PageUtils.getHiddenInputHtml(controlId + "_action", "saveNewValues"));

            writer.WriteLine(html.ToString());
        }