static private tcGridView SetPlayerListPageColumns(tcGridView acGridView, teSubPageType aeType)
        {
            int lnCol = 0;

            acGridView.AutoGenerateColumns = false;
            acGridView.PageSize            = 30;

            acGridView.Columns.Add(CreateBoundField("Rank", "Rank", true));
            acGridView.Columns[lnCol].HeaderStyle.HorizontalAlign = HorizontalAlign.Center;
            acGridView.Columns[lnCol].ItemStyle.HorizontalAlign   = HorizontalAlign.Center;
            acGridView.Columns[lnCol].SortExpression = "Rank";
            acGridView.Columns[lnCol++].HeaderText   = "Rank";

            if (aeType != teSubPageType.eePlayerListCountry)
            {
                acGridView.Columns.Add(CreatePlayerNameField());
                acGridView.Columns[lnCol].SortExpression = "Player";
                acGridView.Columns[lnCol++].HeaderText   = "Player";
            }
            else if (aeType == teSubPageType.eePlayerListCountry)
            {
                acGridView.Columns.Add(CreateCountryNameField());
                acGridView.Columns[lnCol].HeaderText       = "Country";
                acGridView.Columns[lnCol++].SortExpression = "Country";

                acGridView.Columns.Add(CreateBoundField("Players", "Players", true));
                acGridView.Columns[lnCol].HeaderStyle.HorizontalAlign = HorizontalAlign.Center;
                acGridView.Columns[lnCol].ItemStyle.HorizontalAlign   = HorizontalAlign.Center;
                acGridView.Columns[lnCol].SortExpression = "Players";
                acGridView.Columns[lnCol++].HeaderText   = "Players";
            }

            if (aeType == teSubPageType.eePlayerListCountry || aeType == teSubPageType.eePlayerListPlayer)
            {
                acGridView.Columns.Add(CreateBoundField("Records", "Records", true, true));
                acGridView.Columns[lnCol].SortExpression = "Records";
                acGridView.Columns[lnCol++].HeaderText   = "Nocheck<br/>Records";

                acGridView.Columns.Add(CreateBoundField("RecordsCp", "RecordsCp", true, true));
                acGridView.Columns[lnCol].SortExpression = "RecordsCp";
                acGridView.Columns[lnCol++].HeaderText   = "Checkpoint<br/>Records";
            }

            if (aeType == teSubPageType.eePlayerListTagRank)
            {
                acGridView.Columns.Add(CreateBoundField("round_wins", "round_wins", true, true));
                acGridView.Columns[lnCol].SortExpression = "round_wins";
                acGridView.Columns[lnCol++].HeaderText   = "Round<br/>Wins";

                acGridView.Columns.Add(CreateBoundField("rounds_played", "rounds_played", true, true));
                acGridView.Columns[lnCol].SortExpression = "rounds_played";
                acGridView.Columns[lnCol++].HeaderText   = "Rounds<br/>Played";

                acGridView.Columns.Add(CreateTagRoundWinPercentField());
                acGridView.Columns[lnCol].HeaderStyle.HorizontalAlign = HorizontalAlign.Center;
                acGridView.Columns[lnCol].ItemStyle.HorizontalAlign   = HorizontalAlign.Center;
                acGridView.Columns[lnCol].HeaderText       = "Win<br/>Rate";
                acGridView.Columns[lnCol++].SortExpression = "round_wins";

                acGridView.Columns.Add(CreateBoundField("match_wins", "match_wins", true, true));
                acGridView.Columns[lnCol].SortExpression = "match_wins";
                acGridView.Columns[lnCol++].HeaderText   = "Match<br/>Wins";

                acGridView.Columns.Add(CreateBoundField("tags", "tags", true, true));
                acGridView.Columns[lnCol].SortExpression = "tags";
                acGridView.Columns[lnCol++].HeaderText   = "Tags";

                acGridView.Columns.Add(CreateBoundField("ninja", "ninja", true, true));
                acGridView.Columns[lnCol].SortExpression = "ninja";
                acGridView.Columns[lnCol++].HeaderText   = "Ninja<br/>Tags";

                acGridView.Columns.Add(CreateBoundField("tagged", "tagged", true, true));
                acGridView.Columns[lnCol].SortExpression = "tagged";
                acGridView.Columns[lnCol++].HeaderText   = "Tagged";
            }

            if (aeType == teSubPageType.eePlayerListTagStats)
            {
                acGridView.Columns.Add(CreateBoundField("avg_tags_per_round", "avg_tags_per_round", true, true));
                acGridView.Columns[lnCol].SortExpression = "avg_tags_per_round";
                acGridView.Columns[lnCol++].HeaderText   = "Avg tags<br/>per round";

                acGridView.Columns.Add(CreateBoundField("avg_tagged_per_round", "avg_tagged_per_round", true, true));
                acGridView.Columns[lnCol].SortExpression = "avg_tagged_per_round";
                acGridView.Columns[lnCol++].HeaderText   = "Avg tagged<br/>per round";

                acGridView.Columns.Add(CreateBoundField("avg_powerup_per_round", "avg_powerup_per_round", true, true));
                acGridView.Columns[lnCol].SortExpression = "avg_powerup_per_round";
                acGridView.Columns[lnCol++].HeaderText   = "Avg powerups<br/>per round";

                //acGridView.Columns.Add(CreateBoundField("total_untagged_time", "total_untagged_time", true, true));
                //acGridView.Columns[lnCol].SortExpression = "total_untagged_time";
                //acGridView.Columns[lnCol++].HeaderText = "Total<br/>untagged<br/>time";

                acGridView.Columns.Add(CreateBoundField("round_most_untagged", "round_most_untagged", true, true));
                acGridView.Columns[lnCol].SortExpression = "round_most_untagged";
                acGridView.Columns[lnCol++].HeaderText   = "Most untagged<br/> time in a round";

                acGridView.Columns.Add(CreateBoundField("round_most_powerup", "round_most_powerup", true, true));
                acGridView.Columns[lnCol].SortExpression = "round_most_powerup";
                acGridView.Columns[lnCol++].HeaderText   = "Most<br/>powerups<br/>per round";
            }

            acGridView.AllowSorting = true;
            acGridView.AllowPaging  = true;

            return(acGridView);
        }
        static private tcGridView SetWrPageColumns(tcGridView acGridView, teSubPageType aeType)
        {
            int lnCol = 0;

            acGridView.AutoGenerateColumns = false;
            acGridView.AllowSorting        = true;
            acGridView.AllowPaging         = false;

            if (aeType != teSubPageType.eeWrPageAll)
            {
                acGridView.Columns.Add(CreateBoundField("Rank", "Rank", true, true));
                acGridView.Columns[lnCol].HeaderText       = "Current<br/>Rank";
                acGridView.Columns[lnCol++].SortExpression = "Rank";
            }

            if (aeType == teSubPageType.eeWrPageAll)
            {
                acGridView.Columns.Add(CreateHyperLinkField(new string[] { "Map" }, "Map", "~/map.aspx?id={0}"));
                acGridView.Columns[lnCol].HeaderText       = "Map";
                acGridView.Columns[lnCol++].SortExpression = "Map";

                acGridView.Columns.Add(CreateHyperLinkField(new string[] { "CourseID" }, "Course", "~/course.aspx?id={0}"));
                acGridView.Columns[lnCol].HeaderText       = "Course";
                acGridView.Columns[lnCol++].SortExpression = "Course";
            }

            if (aeType != teSubPageType.eeWrPageCountry)
            {
                acGridView.Columns.Add(CreatePlayerNameField());
                acGridView.Columns[lnCol].SortExpression = "Player";
                acGridView.Columns[lnCol++].HeaderText   = "Player";
            }
            else
            {
                acGridView.Columns.Add(CreateCountryNameField());
                acGridView.Columns[lnCol].HeaderText       = "Country";
                acGridView.Columns[lnCol++].SortExpression = "Country";
            }

            if (aeType == teSubPageType.eeWrPageAll)
            {
                acGridView.Columns.Add(CreateBoundField("Time", "Time", true));
                acGridView.Columns[lnCol].HeaderText       = "Time";
                acGridView.Columns[lnCol++].SortExpression = "Time";

                acGridView.Columns.Add(CreateBoundField("Date", "Date", true));
                acGridView.Columns[lnCol].HeaderText       = "Date";
                acGridView.Columns[lnCol++].SortExpression = "Date";
            }

            if (aeType != teSubPageType.eeWrPageAll)
            {
                acGridView.Columns.Add(CreateBoundField("CurrentWR", "CurrentWR", true, true));
                acGridView.Columns[lnCol].HeaderText       = "Current<br/>World Records";
                acGridView.Columns[lnCol++].SortExpression = "CurrentWR";

                acGridView.Columns.Add(CreateBoundField("TotalWR", "TotalWR", true, true));
                acGridView.Columns[lnCol].HeaderText       = "Lifetime<br/>World Records";
                acGridView.Columns[lnCol++].SortExpression = "TotalWR";

                acGridView.Columns.Add(CreateBoundField("TotalCourses", "TotalCourses", true, true));
                acGridView.Columns[lnCol].HeaderText       = "Unique<br/>Courses";
                acGridView.Columns[lnCol++].SortExpression = "TotalCourses";
            }

            return(acGridView);
        }
        static private tcGridView SetPlayerPageColumns(tcGridView acGridView, teSubPageType aeType)
        {
            int lnCol = 0;

            acGridView.AutoGenerateColumns = false;
            acGridView.AllowSorting        = true;
            acGridView.AllowPaging         = false;

            acGridView.Columns.Add(CreateHyperLinkField(new string[] { "Map" }, "Map", "~/map.aspx?id={0}"));
            acGridView.Columns[lnCol].HeaderText       = "Map";
            acGridView.Columns[lnCol++].SortExpression = "Map";

            acGridView.Columns.Add(CreateHyperLinkField(new string[] { "CourseID" }, "Course", "~/course.aspx?id={0}"));
            acGridView.Columns[lnCol].HeaderText       = "Course";
            acGridView.Columns[lnCol++].SortExpression = "Course";

            if (aeType != teSubPageType.eePlayerPageIncomplete)
            {
                acGridView.Columns.Add(CreateBoundField("Time", "Time", true));
                acGridView.Columns[lnCol].HeaderText       = "Time";
                acGridView.Columns[lnCol++].SortExpression = "Time";

                if (aeType == teSubPageType.eePlayerPageCp)
                {
                    acGridView.Columns.Add(CreateBoundField("Cp", "Cp", true));
                    acGridView.Columns[lnCol].HeaderText       = "Checks";
                    acGridView.Columns[lnCol++].SortExpression = "Cp";

                    acGridView.Columns.Add(CreateBoundField("Teles", "Teles", true));
                    acGridView.Columns[lnCol].HeaderText       = "Teles";
                    acGridView.Columns[lnCol++].SortExpression = "Teles";
                }

                if (aeType != teSubPageType.eePlayerPageWr)
                {
                    acGridView.Columns.Add(CreateRankField());
                    acGridView.Columns[lnCol].HeaderText                  = "Rank";
                    acGridView.Columns[lnCol].HeaderStyle.Width           = 64;
                    acGridView.Columns[lnCol].HeaderStyle.HorizontalAlign = HorizontalAlign.Center;
                    acGridView.Columns[lnCol].ItemStyle.HorizontalAlign   = HorizontalAlign.Center;
                    acGridView.Columns[lnCol++].SortExpression            = "rank";

                    acGridView.Columns.Add(CreateBoundField("Server", "Server", true));
                    acGridView.Columns[lnCol].HeaderText        = "Server";
                    acGridView.Columns[lnCol].HeaderStyle.Width = 256;
                    acGridView.Columns[lnCol].ItemStyle.Width   = 256;
                    acGridView.Columns[lnCol++].SortExpression  = "Server";
                }

                if (aeType == teSubPageType.eePlayerPageWr)
                {
                    acGridView.Columns.Add(CreateBoundField("Date", "Date", true));
                    acGridView.Columns[lnCol].HeaderText       = "Date";
                    acGridView.Columns[lnCol++].SortExpression = "Date";

                    acGridView.Columns.Add(CreateBoundField("Status", "Status", true));
                    acGridView.Columns[lnCol].HeaderText       = "Status";
                    acGridView.Columns[lnCol++].SortExpression = "Status";
                }
            }
            else
            {
                acGridView.AllowPaging = true;
                acGridView.PageSize    = 30;
            }

            return(acGridView);
        }
 public tcGridViewType(teGridViewType aeType, teSubPageType aeSub)
 {
     meType = aeType;
     meSub  = aeSub;
 }
        static private tcGridView SetMapListPageColumns(tcGridView acGridView, teSubPageType aeType)
        {
            int lnCol = 0;

            acGridView.AutoGenerateColumns = false;

            acGridView.Columns.Add(CreateHyperLinkField(new string[] { "Map" }, "Map", "~/map.aspx?id={0}"));
            acGridView.Columns[lnCol].SortExpression = "Map";
            acGridView.Columns[lnCol++].HeaderText   = "Map";

            if (aeType == teSubPageType.eeMapsListMaps)
            {
                acGridView.Columns.Add(CreateBoundField("Courses", "Courses", true, true));
                acGridView.Columns[lnCol].SortExpression = "Courses";
                acGridView.Columns[lnCol++].HeaderText   = "Courses";

                acGridView.Columns.Add(CreateBoundField("ServerRuns", "ServerRuns", true, true));
                acGridView.Columns[lnCol].SortExpression = "ServerRuns";
                acGridView.Columns[lnCol++].HeaderText   = "Server<br/>Runs";
            }
            else if (aeType == teSubPageType.eeMapsListCourses)
            {
                acGridView.Columns.Add(CreateHyperLinkField(new string[] { "CourseID" }, "Course", "~/course.aspx?id={0}"));
                acGridView.Columns[lnCol].HeaderText       = "Course";
                acGridView.Columns[lnCol++].SortExpression = "Course";
            }
            else if (aeType == teSubPageType.eeMapsListTag)
            {
                acGridView.Columns.Add(CreateBoundField("ServerRuns", "ServerRuns", true, true));
                acGridView.Columns[lnCol].SortExpression = "ServerRuns";
                acGridView.Columns[lnCol++].HeaderText   = "Server Runs";

                acGridView.Columns.Add(CreateBoundField("Added", "Added", true, true));
                acGridView.Columns[lnCol].SortExpression = "Added";
                acGridView.Columns[lnCol++].HeaderText   = "Date Added";
            }

            if (aeType != teSubPageType.eeMapsListTag)
            {
                acGridView.Columns.Add(CreateBoundField("CourseCompletions", "CourseCompletions", true, true));
                acGridView.Columns[lnCol].SortExpression = "CourseCompletions";
                acGridView.Columns[lnCol++].HeaderText   = "Course<br/>Completions";

                acGridView.Columns.Add(CreateBoundField("NocheckPlayers", "NocheckPlayers", true, true));
                acGridView.Columns[lnCol].SortExpression = "NocheckPlayers";
                acGridView.Columns[lnCol++].HeaderText   = "Nocheck<br/>Players";

                acGridView.Columns.Add(CreateBoundField("CpPlayers", "CpPlayers", true, true));
                acGridView.Columns[lnCol].SortExpression = "CpPlayers";
                acGridView.Columns[lnCol++].HeaderText   = "Checkpoint<br/>Players";

                acGridView.Columns.Add(CreateBoundField("WR", "WR", true, true));
                acGridView.Columns[lnCol].SortExpression = "WR";
                acGridView.Columns[lnCol++].HeaderText   = "World<br/>Records";

                acGridView.Columns.Add(CreateBoundField("Added", "Added", true, true));
                acGridView.Columns[lnCol].SortExpression = "Added";
                acGridView.Columns[lnCol++].HeaderText   = "Date<br/>Added";
            }

            acGridView.AllowSorting = true;
            acGridView.AllowPaging  = false;

            return(acGridView);
        }
        static private tcGridView SetPlayerListPageColumns(tcGridView acGridView, teSubPageType aeType)
        {
            int lnCol = 0;
            acGridView.AutoGenerateColumns = false;
            acGridView.PageSize = 30;

            acGridView.Columns.Add(CreateBoundField("Rank", "Rank", true));
            acGridView.Columns[lnCol].HeaderStyle.HorizontalAlign = HorizontalAlign.Center;
            acGridView.Columns[lnCol].ItemStyle.HorizontalAlign = HorizontalAlign.Center;
            acGridView.Columns[lnCol].SortExpression = "Rank";
            acGridView.Columns[lnCol++].HeaderText = "Rank";

            if (aeType != teSubPageType.eePlayerListCountry)
            {
                acGridView.Columns.Add(CreatePlayerNameField());
                acGridView.Columns[lnCol].SortExpression = "Player";
                acGridView.Columns[lnCol++].HeaderText = "Player";
            }
            else if (aeType == teSubPageType.eePlayerListCountry)
            {
                acGridView.Columns.Add(CreateCountryNameField());
                acGridView.Columns[lnCol].HeaderText = "Country";
                acGridView.Columns[lnCol++].SortExpression = "Country";

                acGridView.Columns.Add(CreateBoundField("Players", "Players", true));
                acGridView.Columns[lnCol].HeaderStyle.HorizontalAlign = HorizontalAlign.Center;
                acGridView.Columns[lnCol].ItemStyle.HorizontalAlign = HorizontalAlign.Center;
                acGridView.Columns[lnCol].SortExpression = "Players";
                acGridView.Columns[lnCol++].HeaderText = "Players";
            }

            if (aeType == teSubPageType.eePlayerListCountry || aeType == teSubPageType.eePlayerListPlayer)
            {
                acGridView.Columns.Add(CreateBoundField("Records", "Records", true, true));
                acGridView.Columns[lnCol].SortExpression = "Records";
                acGridView.Columns[lnCol++].HeaderText = "Nocheck<br/>Records";

                acGridView.Columns.Add(CreateBoundField("RecordsCp", "RecordsCp", true, true));
                acGridView.Columns[lnCol].SortExpression = "RecordsCp";
                acGridView.Columns[lnCol++].HeaderText = "Checkpoint<br/>Records";
            }

            if (aeType == teSubPageType.eePlayerListTagRank)
            {
                acGridView.Columns.Add(CreateBoundField("round_wins", "round_wins", true, true));
                acGridView.Columns[lnCol].SortExpression = "round_wins";
                acGridView.Columns[lnCol++].HeaderText = "Round<br/>Wins";

                acGridView.Columns.Add(CreateBoundField("rounds_played", "rounds_played", true, true));
                acGridView.Columns[lnCol].SortExpression = "rounds_played";
                acGridView.Columns[lnCol++].HeaderText = "Rounds<br/>Played";

                acGridView.Columns.Add(CreateTagRoundWinPercentField());
                acGridView.Columns[lnCol].HeaderStyle.HorizontalAlign = HorizontalAlign.Center;
                acGridView.Columns[lnCol].ItemStyle.HorizontalAlign = HorizontalAlign.Center;
                acGridView.Columns[lnCol].HeaderText = "Win<br/>Rate";
                acGridView.Columns[lnCol++].SortExpression = "round_wins";
                
                acGridView.Columns.Add(CreateBoundField("match_wins", "match_wins", true, true));
                acGridView.Columns[lnCol].SortExpression = "match_wins";
                acGridView.Columns[lnCol++].HeaderText = "Match<br/>Wins";

                acGridView.Columns.Add(CreateBoundField("tags", "tags", true, true));
                acGridView.Columns[lnCol].SortExpression = "tags";
                acGridView.Columns[lnCol++].HeaderText = "Tags";

                acGridView.Columns.Add(CreateBoundField("ninja", "ninja", true, true));
                acGridView.Columns[lnCol].SortExpression = "ninja";
                acGridView.Columns[lnCol++].HeaderText = "Ninja<br/>Tags";

                acGridView.Columns.Add(CreateBoundField("tagged", "tagged", true, true));
                acGridView.Columns[lnCol].SortExpression = "tagged";
                acGridView.Columns[lnCol++].HeaderText = "Tagged";
            }

            if (aeType == teSubPageType.eePlayerListTagStats)
            {
                acGridView.Columns.Add(CreateBoundField("avg_tags_per_round", "avg_tags_per_round", true, true));
                acGridView.Columns[lnCol].SortExpression = "avg_tags_per_round";
                acGridView.Columns[lnCol++].HeaderText = "Avg tags<br/>per round";

                acGridView.Columns.Add(CreateBoundField("avg_tagged_per_round", "avg_tagged_per_round", true, true));
                acGridView.Columns[lnCol].SortExpression = "avg_tagged_per_round";
                acGridView.Columns[lnCol++].HeaderText = "Avg tagged<br/>per round";

                acGridView.Columns.Add(CreateBoundField("avg_powerup_per_round", "avg_powerup_per_round", true, true));
                acGridView.Columns[lnCol].SortExpression = "avg_powerup_per_round";
                acGridView.Columns[lnCol++].HeaderText = "Avg powerups<br/>per round";

                //acGridView.Columns.Add(CreateBoundField("total_untagged_time", "total_untagged_time", true, true));
                //acGridView.Columns[lnCol].SortExpression = "total_untagged_time";
                //acGridView.Columns[lnCol++].HeaderText = "Total<br/>untagged<br/>time";

                acGridView.Columns.Add(CreateBoundField("round_most_untagged", "round_most_untagged", true, true));
                acGridView.Columns[lnCol].SortExpression = "round_most_untagged";
                acGridView.Columns[lnCol++].HeaderText = "Most untagged<br/> time in a round";

                acGridView.Columns.Add(CreateBoundField("round_most_powerup", "round_most_powerup", true, true));
                acGridView.Columns[lnCol].SortExpression = "round_most_powerup";
                acGridView.Columns[lnCol++].HeaderText = "Most<br/>powerups<br/>per round";
            }
                        
            acGridView.AllowSorting = true;
            acGridView.AllowPaging = true;

            return acGridView;
        }
        static private tcGridView SetMapPageColumns(tcGridView acGridView, bool aePaging, teSubPageType aeType)
        {
            int lnCol = 0;

            acGridView.AutoGenerateColumns = false;
            acGridView.PageSize            = 30;

            acGridView.AllowSorting = true;
            acGridView.AllowPaging  = aePaging;

            acGridView.Columns.Add(CreateBoundField("Rank", "Rank", true, true, false, 50));
            acGridView.Columns[lnCol].HeaderText       = "Rank";
            acGridView.Columns[lnCol++].SortExpression = "Rank";

            acGridView.Columns.Add(CreatePlayerNameField());
            acGridView.Columns[lnCol].HeaderText        = "Player";
            acGridView.Columns[lnCol].HeaderStyle.Width = 256;
            acGridView.Columns[lnCol].ItemStyle.Width   = 256;
            acGridView.Columns[lnCol++].SortExpression  = "Player";

            acGridView.Columns.Add(CreateBoundField("Player", "Player", false));
            acGridView.Columns[lnCol].HeaderText       = "Player";
            acGridView.Columns[lnCol++].SortExpression = "Player";

            acGridView.Columns.Add(CreateBoundField("SteamID", "SteamID", false));
            acGridView.Columns[lnCol].HeaderText       = "SteamID";
            acGridView.Columns[lnCol++].SortExpression = "SteamID";

            acGridView.Columns.Add(CreateBoundField("Time", "Time", true));
            acGridView.Columns[lnCol].HeaderText       = "Time";
            acGridView.Columns[lnCol++].SortExpression = "Time";

            if (aeType == teSubPageType.eeMapPageCheck)
            {
                acGridView.Columns.Add(CreateBoundField("Checks", "Checks", true, true));
                acGridView.Columns[lnCol].HeaderText        = "Checks";
                acGridView.Columns[lnCol].HeaderStyle.Width = 64;
                acGridView.Columns[lnCol++].SortExpression  = "Checks";

                acGridView.Columns.Add(CreateBoundField("Teles", "Teles", true, true));
                acGridView.Columns[lnCol].HeaderText        = "Teles";
                acGridView.Columns[lnCol].HeaderStyle.Width = 64;
                acGridView.Columns[lnCol++].SortExpression  = "Teles";
            }

            if (aeType != teSubPageType.eeMapPageWr)
            {
                acGridView.Columns.Add(CreateBoundField("Server", "Server", true));
                acGridView.Columns[lnCol].HeaderText        = "Server";
                acGridView.Columns[lnCol].HeaderStyle.Width = 256;
                acGridView.Columns[lnCol].ItemStyle.Width   = 256;
                acGridView.Columns[lnCol++].SortExpression  = "Server";
            }
            else
            {
                acGridView.Columns.Add(CreateBoundField("Date", "Date", true));
                acGridView.Columns[lnCol].HeaderText       = "Date";
                acGridView.Columns[lnCol++].SortExpression = "Date";
            }

            return(acGridView);
        }
        static private tcGridView SetPlayerPageColumns(tcGridView acGridView, teSubPageType aeType)
        {
            int lnCol = 0;
            acGridView.AutoGenerateColumns = false;
            acGridView.AllowSorting = true;
            acGridView.AllowPaging = false;

            acGridView.Columns.Add(CreateHyperLinkField(new string[] { "Map" }, "Map", "~/map.aspx?id={0}"));
            acGridView.Columns[lnCol].HeaderText = "Map";
            acGridView.Columns[lnCol++].SortExpression = "Map";

            acGridView.Columns.Add(CreateHyperLinkField(new string[] { "CourseID" }, "Course", "~/course.aspx?id={0}"));
            acGridView.Columns[lnCol].HeaderText = "Course";
            acGridView.Columns[lnCol++].SortExpression = "Course";

            if (aeType != teSubPageType.eePlayerPageIncomplete)
            {
                acGridView.Columns.Add(CreateBoundField("Time", "Time", true));
                acGridView.Columns[lnCol].HeaderText = "Time";
                acGridView.Columns[lnCol++].SortExpression = "Time";

                if (aeType == teSubPageType.eePlayerPageCp)
                {
                    acGridView.Columns.Add(CreateBoundField("Cp", "Cp", true));
                    acGridView.Columns[lnCol].HeaderText = "Checks";
                    acGridView.Columns[lnCol++].SortExpression = "Cp";

                    acGridView.Columns.Add(CreateBoundField("Teles", "Teles", true));
                    acGridView.Columns[lnCol].HeaderText = "Teles";
                    acGridView.Columns[lnCol++].SortExpression = "Teles";
                }

                if (aeType != teSubPageType.eePlayerPageWr)
                {
                    acGridView.Columns.Add(CreateRankField());
                    acGridView.Columns[lnCol].HeaderText = "Rank";
                    acGridView.Columns[lnCol].HeaderStyle.Width = 64;
                    acGridView.Columns[lnCol].HeaderStyle.HorizontalAlign = HorizontalAlign.Center;
                    acGridView.Columns[lnCol].ItemStyle.HorizontalAlign = HorizontalAlign.Center;
                    acGridView.Columns[lnCol++].SortExpression = "rank";

                    acGridView.Columns.Add(CreateBoundField("Server", "Server", true));
                    acGridView.Columns[lnCol].HeaderText = "Server";
                    acGridView.Columns[lnCol].HeaderStyle.Width = 256;
                    acGridView.Columns[lnCol].ItemStyle.Width = 256;
                    acGridView.Columns[lnCol++].SortExpression = "Server";
                }

                if (aeType == teSubPageType.eePlayerPageWr)
                {
                    acGridView.Columns.Add(CreateBoundField("Date", "Date", true));
                    acGridView.Columns[lnCol].HeaderText = "Date";
                    acGridView.Columns[lnCol++].SortExpression = "Date";

                    acGridView.Columns.Add(CreateBoundField("Status", "Status", true));
                    acGridView.Columns[lnCol].HeaderText = "Status";
                    acGridView.Columns[lnCol++].SortExpression = "Status";
                }
            }
            else
            {
                acGridView.AllowPaging = true;
                acGridView.PageSize = 30;
            }

            return acGridView;
        }
        static private tcGridView SetWrPageColumns(tcGridView acGridView, teSubPageType aeType)
        {
            int lnCol = 0;
            acGridView.AutoGenerateColumns = false;
            acGridView.AllowSorting = true;
            acGridView.AllowPaging = false;

            if (aeType != teSubPageType.eeWrPageAll)
            {
                acGridView.Columns.Add(CreateBoundField("Rank", "Rank", true,true));
                acGridView.Columns[lnCol].HeaderText = "Current<br/>Rank";
                acGridView.Columns[lnCol++].SortExpression = "Rank";
            }

            if (aeType == teSubPageType.eeWrPageAll)
            {
                acGridView.Columns.Add(CreateHyperLinkField(new string[] { "Map" }, "Map", "~/map.aspx?id={0}"));
                acGridView.Columns[lnCol].HeaderText = "Map";
                acGridView.Columns[lnCol++].SortExpression = "Map";

                acGridView.Columns.Add(CreateHyperLinkField(new string[] { "CourseID" }, "Course", "~/course.aspx?id={0}"));
                acGridView.Columns[lnCol].HeaderText = "Course";
                acGridView.Columns[lnCol++].SortExpression = "Course";
            }

            if (aeType != teSubPageType.eeWrPageCountry)
            {
                acGridView.Columns.Add(CreatePlayerNameField());
                acGridView.Columns[lnCol].SortExpression = "Player";
                acGridView.Columns[lnCol++].HeaderText = "Player";
            }
            else
            {
                acGridView.Columns.Add(CreateCountryNameField());
                acGridView.Columns[lnCol].HeaderText = "Country";
                acGridView.Columns[lnCol++].SortExpression = "Country";
            }

            if (aeType == teSubPageType.eeWrPageAll)
            {
                acGridView.Columns.Add(CreateBoundField("Time", "Time", true));
                acGridView.Columns[lnCol].HeaderText = "Time";
                acGridView.Columns[lnCol++].SortExpression = "Time";

                acGridView.Columns.Add(CreateBoundField("Date", "Date", true));
                acGridView.Columns[lnCol].HeaderText = "Date";
                acGridView.Columns[lnCol++].SortExpression = "Date";
            }

            if (aeType != teSubPageType.eeWrPageAll)
            {
                acGridView.Columns.Add(CreateBoundField("CurrentWR", "CurrentWR", true,true));
                acGridView.Columns[lnCol].HeaderText = "Current<br/>World Records";
                acGridView.Columns[lnCol++].SortExpression = "CurrentWR";

                acGridView.Columns.Add(CreateBoundField("TotalWR", "TotalWR", true,true));
                acGridView.Columns[lnCol].HeaderText = "Lifetime<br/>World Records";
                acGridView.Columns[lnCol++].SortExpression = "TotalWR";

                acGridView.Columns.Add(CreateBoundField("TotalCourses", "TotalCourses", true,true));
                acGridView.Columns[lnCol].HeaderText = "Unique<br/>Courses";
                acGridView.Columns[lnCol++].SortExpression = "TotalCourses";
            }

            return acGridView;
        }
        static private tcGridView SetMapListPageColumns(tcGridView acGridView, teSubPageType aeType)
        {
            int lnCol = 0;

            acGridView.AutoGenerateColumns = false;

            acGridView.Columns.Add(CreateHyperLinkField(new string[] {"Map"}, "Map", "~/map.aspx?id={0}"));
            acGridView.Columns[lnCol].SortExpression = "Map";
            acGridView.Columns[lnCol++].HeaderText = "Map";

            if (aeType == teSubPageType.eeMapsListMaps)
            {
                acGridView.Columns.Add(CreateBoundField("Courses", "Courses", true, true));
                acGridView.Columns[lnCol].SortExpression = "Courses";
                acGridView.Columns[lnCol++].HeaderText = "Courses";

                acGridView.Columns.Add(CreateBoundField("ServerRuns", "ServerRuns", true, true));
                acGridView.Columns[lnCol].SortExpression = "ServerRuns";
                acGridView.Columns[lnCol++].HeaderText = "Server<br/>Runs";
            }
            else if (aeType == teSubPageType.eeMapsListCourses)
            {
                acGridView.Columns.Add(CreateHyperLinkField(new string[] { "CourseID" }, "Course", "~/course.aspx?id={0}"));
                acGridView.Columns[lnCol].HeaderText = "Course";
                acGridView.Columns[lnCol++].SortExpression = "Course";
            }
            else if (aeType == teSubPageType.eeMapsListTag)
            {
                acGridView.Columns.Add(CreateBoundField("ServerRuns", "ServerRuns", true, true));
                acGridView.Columns[lnCol].SortExpression = "ServerRuns";
                acGridView.Columns[lnCol++].HeaderText = "Server Runs";

                acGridView.Columns.Add(CreateBoundField("Added", "Added", true, true));
                acGridView.Columns[lnCol].SortExpression = "Added";
                acGridView.Columns[lnCol++].HeaderText = "Date Added";
            }

            if (aeType != teSubPageType.eeMapsListTag)
            {
                acGridView.Columns.Add(CreateBoundField("CourseCompletions", "CourseCompletions", true, true));
                acGridView.Columns[lnCol].SortExpression = "CourseCompletions";
                acGridView.Columns[lnCol++].HeaderText = "Course<br/>Completions";

                acGridView.Columns.Add(CreateBoundField("NocheckPlayers", "NocheckPlayers", true, true));
                acGridView.Columns[lnCol].SortExpression = "NocheckPlayers";
                acGridView.Columns[lnCol++].HeaderText = "Nocheck<br/>Players";

                acGridView.Columns.Add(CreateBoundField("CpPlayers", "CpPlayers", true, true));
                acGridView.Columns[lnCol].SortExpression = "CpPlayers";
                acGridView.Columns[lnCol++].HeaderText = "Checkpoint<br/>Players";

                acGridView.Columns.Add(CreateBoundField("WR", "WR", true, true));
                acGridView.Columns[lnCol].SortExpression = "WR";
                acGridView.Columns[lnCol++].HeaderText = "World<br/>Records";

                acGridView.Columns.Add(CreateBoundField("Added", "Added", true, true));
                acGridView.Columns[lnCol].SortExpression = "Added";
                acGridView.Columns[lnCol++].HeaderText = "Date<br/>Added";
            }

            acGridView.AllowSorting = true;
            acGridView.AllowPaging = false;

            return acGridView;
        }
 public tcGridViewType(teGridViewType aeType, teSubPageType aeSub)
 {
     meType = aeType;
     meSub = aeSub;
 }
        static private tcGridView SetMapPageColumns(tcGridView acGridView, bool aePaging, teSubPageType aeType)
        {
            int lnCol = 0;

            acGridView.AutoGenerateColumns = false;
            acGridView.PageSize = 30;

            acGridView.AllowSorting = true;
            acGridView.AllowPaging = aePaging;

            acGridView.Columns.Add(CreateBoundField("Rank", "Rank", true,true,false,50));
            acGridView.Columns[lnCol].HeaderText = "Rank";
            acGridView.Columns[lnCol++].SortExpression = "Rank";

            acGridView.Columns.Add(CreatePlayerNameField());
            acGridView.Columns[lnCol].HeaderText = "Player";
            acGridView.Columns[lnCol].HeaderStyle.Width = 256;
            acGridView.Columns[lnCol].ItemStyle.Width = 256;
            acGridView.Columns[lnCol++].SortExpression = "Player";

            acGridView.Columns.Add(CreateBoundField("Player", "Player", false));
            acGridView.Columns[lnCol].HeaderText = "Player";
            acGridView.Columns[lnCol++].SortExpression = "Player";

            acGridView.Columns.Add(CreateBoundField("SteamID", "SteamID", false));
            acGridView.Columns[lnCol].HeaderText = "SteamID";
            acGridView.Columns[lnCol++].SortExpression = "SteamID";

            acGridView.Columns.Add(CreateBoundField("Time", "Time", true));
            acGridView.Columns[lnCol].HeaderText = "Time";
            acGridView.Columns[lnCol++].SortExpression = "Time";

            if (aeType == teSubPageType.eeMapPageCheck)
            {
                acGridView.Columns.Add(CreateBoundField("Checks", "Checks", true,true));
                acGridView.Columns[lnCol].HeaderText = "Checks";
                acGridView.Columns[lnCol].HeaderStyle.Width = 64;
                acGridView.Columns[lnCol++].SortExpression = "Checks";

                acGridView.Columns.Add(CreateBoundField("Teles", "Teles", true,true));
                acGridView.Columns[lnCol].HeaderText = "Teles";
                acGridView.Columns[lnCol].HeaderStyle.Width = 64;
                acGridView.Columns[lnCol++].SortExpression = "Teles";
            }

            if (aeType != teSubPageType.eeMapPageWr)
            {
                acGridView.Columns.Add(CreateBoundField("Server", "Server", true));
                acGridView.Columns[lnCol].HeaderText = "Server";
                acGridView.Columns[lnCol].HeaderStyle.Width = 256;
                acGridView.Columns[lnCol].ItemStyle.Width = 256;
                acGridView.Columns[lnCol++].SortExpression = "Server";
            }
            else
            {
                acGridView.Columns.Add(CreateBoundField("Date", "Date", true));
                acGridView.Columns[lnCol].HeaderText = "Date";
                acGridView.Columns[lnCol++].SortExpression = "Date";
            }
            
            return acGridView;
        }