protected override void OnPreRender(EventArgs e)
    {
        CuplexLib.User user = Session["User"] as CuplexLib.User;
        if (user == null || !user.IsAdmin)
        {
            return;
        }

        AdminPagePanel.Visible = true;
        registerScripts();
        if (!IsPostBack)
        {
            FromDateTextBox.Text  = DateHandler.ToDateString(DateTime.Today.AddDays(-3));
            UntilDateTextBox.Text = DateHandler.ToDateString(DateTime.Today);
            loadDataList();
        }

        base.OnPreRender(e);
    }
    protected void AddLinkButton_Clicked(object sender, EventArgs e)
    {
        CuplexLib.User user = Session["User"] as CuplexLib.User;
        LinkDateTextBox.Text = DateHandler.ToDateString(DateTime.Today);
        LinkTimeTextBox.Text = DateHandler.ToTimeString(DateTime.Now);
        LinkCategoryDropdownList.DataValueField = "CategoryRef";
        LinkCategoryDropdownList.DataTextField  = "CategoryName";
        LinkCategoryDropdownList.DataSource     = Category.GetCategoryList();
        LinkCategoryDropdownList.DataBind();

        LinkUserDropDownList.Items.Clear();
        LinkUserDropDownList.Items.Add(new ListItem("null", "0"));
        LinkUserDropDownList.Items.Add(new ListItem(user.UserName, user.UserRef.ToString()));
        LinkUserDropDownList.SelectedIndex = 1;

        LinkNameTextBox.Text   = "";
        LinkUrlTextBox.Text    = "";
        LinkClicksTextBox.Text = "0";
        LinkRatingTextBox.Text = "0";

        this.ViewState["EditLinkRef"] = 0;
        EditLinkPanel.Visible         = true;
        base.ShowModalBackground();
    }
    protected void EditButton_Clicked(object sender, EventArgs e)
    {
        CuplexLib.User user = Session["User"] as CuplexLib.User;
        if (SelectedView == ViewMode.LinkSuggestion)
        {
            List <int> linkSuggestionRefList = GetPostCollection("SuggestionCheckBox");
            if (linkSuggestionRefList.Count > 0)
            {
                LinkSuggestion linkSuggestion = LinkSuggestion.GetOne(linkSuggestionRefList[0]);
                if (linkSuggestion == null)
                {
                    return;
                }

                LinkSuggestionDescriptionTextBox.Text = linkSuggestion.Description;
                LinkSuggestionUrlTextBox.Text         = linkSuggestion.LinkUrl;

                LinkSuggestionCategoryDropdownList.DataValueField = "CategoryRef";
                LinkSuggestionCategoryDropdownList.DataTextField  = "CategoryName";
                LinkSuggestionCategoryDropdownList.DataSource     = Category.GetCategoryList();
                LinkSuggestionCategoryDropdownList.DataBind();

                try { LinkSuggestionCategoryDropdownList.SelectedValue = linkSuggestion.CategoryRef.ToString(); }
                catch { }

                this.ViewState["EditLinkSuggestionRef"] = linkSuggestion.LinkSuggestionRef;
                EditLinkSuggestionPanel.Visible         = true;
                base.ShowModalBackground();
            }
        }
        else if (SelectedView == ViewMode.LinkAdministration)
        {
            List <int> selectedLinkRefRefList = GetPostCollection("LinkSelectionCheckBox");
            if (selectedLinkRefRefList.Count > 0)
            {
                Link link = Link.GetOne(selectedLinkRefRefList[0]);
                if (link == null)
                {
                    return;
                }

                LinkDateTextBox.Text = DateHandler.ToDateString(link.LinkDate);
                LinkTimeTextBox.Text = DateHandler.ToTimeString(link.LinkDate);
                LinkNameTextBox.Text = link.LinkName;

                LinkCategoryDropdownList.DataValueField = "CategoryRef";
                LinkCategoryDropdownList.DataTextField  = "CategoryName";
                LinkCategoryDropdownList.DataSource     = Category.GetCategoryList();
                LinkCategoryDropdownList.DataBind();

                try { LinkCategoryDropdownList.SelectedValue = link.CategoryRef.ToString(); }
                catch { }

                LinkUserDropDownList.Items.Clear();
                LinkUserDropDownList.Items.Add(new ListItem("null", "0"));

                if (link.UserRef != user.UserRef)
                {
                    LinkUserDropDownList.Items.Add(new ListItem(user.UserName, user.UserRef.ToString()));
                }

                if (link.UserRef != null)
                {
                    LinkUserDropDownList.Items.Add(new ListItem(link.UserName, link.UserRef.Value.ToString()));
                    LinkUserDropDownList.SelectedValue = link.UserRef.Value.ToString();
                }

                LinkUrlTextBox.Text    = link.LinkUrl;
                LinkClicksTextBox.Text = link.Clicks.ToString();
                LinkRatingTextBox.Text = Math.Round(link.Rating, 2).ToString();

                this.ViewState["EditLinkRef"] = link.LinkRef;
                EditLinkPanel.Visible         = true;
                base.ShowModalBackground();
            }
        }
    }
    protected override void OnPreRender(EventArgs e)
    {
        CuplexLib.User user         = HttpContext.Current.Session["User"] as CuplexLib.User;
        Table          contentTable = new Table();

        contentTable.CellPadding = 0;
        contentTable.CellSpacing = 0;
        contentTable.CssClass    = "contentList";
        TableHeaderRow  thr = new TableHeaderRow();
        TableHeaderCell thc = new TableHeaderCell();

        thc.ColumnSpan = 3;
        if (IsDisplayingSearchResult)
        {
            thc.Text = "Sökresultat för: " + SearchString;
        }
        else
        {
            thc.Text = Utils.GetResourceText("WeekDay" + (int)LinkDataListDate.DayOfWeek) + " " + DateHandler.ToDateString(LinkDataListDate);
        }
        thr.Cells.Add(thc);
        contentTable.Rows.Add(thr);
        int    rowCnt  = 0;
        string baseUrl = cms.Current.GetRootPath;

        foreach (LinkDataItem linkDataItem in linkDataItemList)
        {
            TableRow  tr = new TableRow();
            TableCell td = new TableCell();

            //Column1
            HtmlGenericControl theLink = new HtmlGenericControl("a");
            theLink.InnerHtml = HttpContext.Current.Server.HtmlEncode(linkDataItem.LinkName);
            theLink.Attributes.Add("href", baseUrl + "go/" + linkDataItem.LinkRef);
            theLink.Attributes.Add("target", "_blank");


            Table innerTable = new Table();
            innerTable.CellSpacing = 0;
            innerTable.CellPadding = 0;

            TableRow  innerTableRow  = new TableRow();
            TableCell innerTableCell = new TableCell();
            innerTableCell.ColumnSpan = 3;

            innerTableCell.CssClass = "link";
            innerTableCell.Controls.Add(theLink);
            innerTableRow.Cells.Add(innerTableCell);
            innerTable.Rows.Add(innerTableRow);

            innerTableRow           = new TableRow();
            innerTableCell          = new TableCell();
            innerTableCell.CssClass = "innerTableCell";
            innerTableCell.Text     = "Kategori: " + linkDataItem.Category;
            innerTableRow.Cells.Add(innerTableCell);

            innerTableCell          = new TableCell();
            innerTableCell.CssClass = "innerTableCell";
            innerTableCell.Text     = "Klick: " + linkDataItem.Clicks;
            innerTableRow.Cells.Add(innerTableCell);

            innerTableCell          = new TableCell();
            innerTableCell.CssClass = "innerTableCell";
            innerTableCell.Text     = "Tipsare: " + linkDataItem.UserName;
            innerTableRow.Cells.Add(innerTableCell);

            TableRow  subTableRow  = new TableRow();
            TableCell subTableCell = new TableCell();
            Table     subTable     = new Table();
            subTable.CellPadding = 0;
            subTable.CellSpacing = 0;
            subTable.Style.Add(HtmlTextWriterStyle.Margin, "0");
            subTable.Rows.Add(innerTableRow);

            subTableCell.Controls.Add(subTable);
            subTableRow.Cells.Add(subTableCell);


            innerTable.Rows.Add(subTableRow);

            td.Controls.Add(innerTable);
            tr.Cells.Add(td);

            //Column2
            td = new TableCell();
            //td.Text = "Betyg här!";
            StarVotingControl votingControl = new StarVotingControl();
            votingControl.LinkRef  = linkDataItem.LinkRef;
            votingControl.Rating   = linkDataItem.Rating;
            votingControl.HasVoted = linkDataItem.HasVoted;
            if (user != null)
            {
                votingControl.UserRef = user.UserRef;
            }
            td.Controls.Add(votingControl);

            td.CssClass = "votingTd";
            tr.Cells.Add(td);

            //Column3
            td          = new TableCell();
            td.CssClass = "rightColumn commentTd";
            HtmlGenericControl commentLink = new HtmlGenericControl("a");
            commentLink.Attributes.Add("class", "commentLink");
            commentLink.Attributes.Add("href", "#");
            if (user != null)
            {
                commentLink.Attributes.Add("onclick", "javascript:ShowPopup('" + cms.Current.GetRootPath + "Comment.aspx?linkId=" + linkDataItem.LinkRef + "',530,440);return false;");
            }
            else
            {
                commentLink.Attributes.Add("onclick", "javascript:ShowPopup('" + cms.Current.GetRootPath + "Comment.aspx?linkId=" + linkDataItem.LinkRef + "',530,315);return false;");
            }
            commentLink.InnerHtml = linkDataItem.NumberOfComments.ToString() + " inlägg";
            td.Controls.Add(commentLink);

            tr.Cells.Add(td);

            if (rowCnt % 2 == 1)
            {
                tr.CssClass = "listRow";
            }
            else
            {
                tr.CssClass = "listRowAlt";
            }

            rowCnt++;
            contentTable.Rows.Add(tr);
        }

        this.CssClass = "contentWrapper dropShadowSoft";
        this.Controls.Add(contentTable);
        base.OnPreRender(e);
    }
    public void CreateLinkTable(int linkRef)
    {
        List <Comment> commentList = Comment.GetCommentListForLink(linkRef);

        Table commentTable = new Table();

        commentTable.CellPadding = 0;
        commentTable.CellSpacing = 0;
        commentTable.CssClass    = "CommentTable";
        TableRow  tr = new TableRow();
        TableCell td = new TableCell();

        foreach (Comment c in commentList)
        {
            Panel headerPanel = new Panel();
            HtmlGenericControl commentText = new HtmlGenericControl("div");
            Label dateLabel     = new Label();
            Label userNameLabel = new Label();

            userNameLabel.Text     = c.UserName;
            userNameLabel.CssClass = "commentUser";
            dateLabel.Text         = DateHandler.ToDateString(c.CommentDate) + " " + DateHandler.ToTimeString(c.CommentDate);
            dateLabel.CssClass     = "commentDate";

            commentText.InnerHtml = c.CommentText;

            headerPanel.Controls.Add(userNameLabel);
            headerPanel.Controls.Add(dateLabel);

            td.Controls.Add(headerPanel);
            tr.Cells.Add(td);
            commentTable.Rows.Add(tr);

            tr = new TableRow();
            td = new TableCell();
            td.Controls.Add(commentText);
            tr.Cells.Add(td);
            commentTable.Rows.Add(tr);

            Panel dividerPanel = new Panel();
            dividerPanel.CssClass = "divider";
            tr = new TableRow();
            td = new TableCell();
            td.Controls.Add(dividerPanel);
            tr.Cells.Add(td);
            commentTable.Rows.Add(tr);
        }

        if (commentTable.Rows.Count > 0)
        {
            commentTable.Rows.Remove(commentTable.Rows[commentTable.Rows.Count - 1]);
        }
        else
        {
            Panel fillPanel = new Panel();
            Label fillLabel = new Label();
            fillLabel.Text = "&nbsp;";
            fillPanel.Controls.Add(fillLabel);

            td.Controls.Add(fillPanel);
            tr.Cells.Add(td);
            commentTable.Rows.Add(tr);
        }

        Panel tableWrapper = new Panel();

        tableWrapper.CssClass = "CommentTableWrapper";
        tableWrapper.Controls.Add(commentTable);

        CommentPanel.Controls.Add(tableWrapper);
    }