public void StoreCategories()
        {
            SelectedCategory.Clear();
            var lstCategories = new ArrayList();

            if (Settings.Enablecategories == EventModuleSettings.DisplayCategories.SingleSelect)
            {
                lstCategories.Add(ddlCategories.SelectedValue);
            }
            else
            {
                if (ddlCategories.CheckedItems.Count > 0 && ddlCategories.CheckedItems.Count != ddlCategories.Items.Count)
                {
                    foreach (var item in ddlCategories.CheckedItems)
                    {
                        lstCategories.Add(item.Value);
                    }
                }
                else
                {
                    lstCategories.Add("-1");
                }
            }
            SelectedCategory = lstCategories;
        }
        private void Page_Load(object sender, EventArgs e)
        {
            try
            {
                // Add the external Validation.js to the Page
                const string csname = "ExtValidationScriptFile";
                var          cstype = MethodBase.GetCurrentMethod().GetType();
                var          cstext = "<script src=\"" + ResolveUrl("~/DesktopModules/Events/Scripts/Validation.js") +
                                      "\" type=\"text/javascript\"></script>";
                if (!Page.ClientScript.IsClientScriptBlockRegistered(csname))
                {
                    Page.ClientScript.RegisterClientScriptBlock(cstype, csname, cstext, false);
                }

                ddlCategories.EmptyMessage = Localization.GetString("NoCategories", LocalResourceFile);
                ddlCategories.Localization.AllItemsCheckedString =
                    Localization.GetString("AllCategories", LocalResourceFile);
                ddlCategories.Localization.CheckAllString =
                    Localization.GetString("SelectAllCategories", LocalResourceFile);
                if (Settings.Enablecategories == EventModuleSettings.DisplayCategories.SingleSelect)
                {
                    ddlCategories.CheckBoxes = false;
                }

                if (!Page.IsPostBack)
                {
                    //Bind DDL
                    var ctrlEventCategories = new EventCategoryController();
                    var lstCategories       = ctrlEventCategories.EventsCategoryList(PortalId);

                    var arrCategories = new ArrayList();
                    if (Settings.Restrictcategories)
                    {
                        foreach (EventCategoryInfo dbCategory in lstCategories)
                        {
                            foreach (int category in Settings.ModuleCategoryIDs)
                            {
                                if (dbCategory.Category == category)
                                {
                                    arrCategories.Add(dbCategory);
                                }
                            }
                        }
                    }
                    else
                    {
                        arrCategories.AddRange(lstCategories);
                    }

                    if (lstCategories.Count == 0)
                    {
                        Visible = false;
                        SelectedCategory.Clear();
                        return;
                    }

                    //Restrict categories by events in time frame.
                    if (Settings.RestrictCategoriesToTimeFrame)
                    {
                        //Only for list view.
                        var whichView = string.Empty;
                        if (!(Request.QueryString["mctl"] == null) && ModuleId ==
                            Convert.ToInt32(Request.QueryString["ModuleID"]))
                        {
                            if (Request["mctl"].EndsWith(".ascx"))
                            {
                                whichView = Request["mctl"];
                            }
                            else
                            {
                                whichView = Request["mctl"] + ".ascx";
                            }
                        }
                        if (whichView.Length == 0)
                        {
                            if (!ReferenceEquals(
                                    Request.Cookies.Get("DNNEvents" + Convert.ToString(ModuleId)), null))
                            {
                                whichView = Request.Cookies.Get("DNNEvents" + Convert.ToString(ModuleId)).Value;
                            }
                            else
                            {
                                whichView = Settings.DefaultView;
                            }
                        }

                        if (whichView == "EventList.ascx" || whichView == "EventRpt.ascx")
                        {
                            var objEventInfoHelper =
                                new EventInfoHelper(ModuleId, TabId, PortalId, Settings);
                            var lstEvents = default(ArrayList);

                            var getSubEvents = Settings.MasterEvent;
                            var numDays      = Settings.EventsListEventDays;
                            var displayDate  = default(DateTime);
                            var startDate    = default(DateTime);
                            var endDate      = default(DateTime);
                            if (Settings.ListViewUseTime)
                            {
                                displayDate = DisplayNow();
                            }
                            else
                            {
                                displayDate = DisplayNow().Date;
                            }
                            if (Settings.EventsListSelectType == "DAYS")
                            {
                                startDate = displayDate.AddDays(Settings.EventsListBeforeDays * -1);
                                endDate   = displayDate.AddDays(Settings.EventsListAfterDays * 1);
                            }
                            else
                            {
                                startDate = displayDate;
                                endDate   = displayDate.AddDays(numDays);
                            }

                            lstEvents = objEventInfoHelper.GetEvents(startDate, endDate, getSubEvents,
                                                                     new ArrayList(Convert.ToInt32(new[] { "-1" })),
                                                                     new ArrayList(Convert.ToInt32(new[] { "-1" })), -1,
                                                                     -1);

                            var eventCategoryIds = new ArrayList();
                            foreach (EventInfo lstEvent in lstEvents)
                            {
                                eventCategoryIds.Add(lstEvent.Category);
                            }
                            foreach (EventCategoryInfo lstCategory in lstCategories)
                            {
                                if (!eventCategoryIds.Contains(lstCategory.Category))
                                {
                                    arrCategories.Remove(lstCategory);
                                }
                            }
                        }
                    }

                    //Bind categories.
                    ddlCategories.DataSource = arrCategories;
                    ddlCategories.DataBind();

                    if (Settings.Enablecategories == EventModuleSettings.DisplayCategories.SingleSelect)
                    {
                        ddlCategories.Items.Insert(
                            0,
                            new RadComboBoxItem(Localization.GetString("AllCategories", LocalResourceFile),
                                                "-1"));
                        ddlCategories.SelectedIndex = 0;
                    }
                    ddlCategories.OnClientDropDownClosed =
                        "function() { btnUpdateClick('" + btnUpdate.UniqueID + "','" +
                        ddlCategories.ClientID + "');}";
                    ddlCategories.OnClientLoad = "function() { storeText('" + ddlCategories.ClientID + "');}";
                    if (Settings.Enablecategories == EventModuleSettings.DisplayCategories.SingleSelect)
                    {
                        foreach (int category in SelectedCategory)
                        {
                            ddlCategories.SelectedIndex =
                                ddlCategories.FindItemByValue(category.ToString()).Index;
                            break;
                        }
                    }
                    else
                    {
                        foreach (var category in SelectedCategory)
                        {
                            foreach (RadComboBoxItem item in ddlCategories.Items)
                            {
                                if (item.Value == category.ToString())
                                {
                                    item.Checked = true;
                                }
                            }
                        }

                        if (Convert.ToInt32(SelectedCategory[0]) == -1)
                        {
                            foreach (RadComboBoxItem item in ddlCategories.Items)
                            {
                                item.Checked = true;
                            }
                        }
                    }
                }
            }
            catch (Exception)
            {
                //ProcessModuleLoadException(Me, exc)
            }
        }