@using SharedLibraryCore.Configuration
@using System.Text.RegularExpressions
@model WebfrontCore.ViewModels.CommunityInfo
@{
    IEnumerable<KeyValuePair<(string, long), string[]>> allRules = new[] { new KeyValuePair<(string, long), string[]>((ViewBag.Localization["WEBFRONT_ABOUT_GLOBAL_RULES"], 0), Model.GlobalRules) };
    var serverRules = Model.ServerRules?.Where(server => server.Value != null && server.Value.Any()).ToList();
    if (serverRules?.Any() ?? false)
    {
        allRules = allRules.Union(serverRules);
    }
}

<div class="content text-wrap mt-20">
    @if (Model.CommunityInformation.EnableBanner)
    {
        <img class="img-fluid mb-20" style="max-height: 250px" src="images/community/banner.png" alt="@Model.CommunityInformation.Name"/>
    }

    @if (!string.IsNullOrWhiteSpace(Model.CommunityInformation.Name))
    {
        <h2 class="content-title">
            <color-code value="@Model.CommunityInformation.Name"></color-code>
        </h2>
    }


    <div class="card m-0 rounded">
        @if (!string.IsNullOrWhiteSpace(Model.CommunityInformation.Description))
        {
            <h5 class="text-primary mt-0">@ViewBag.Localization["WEBFRONT_ABOUT_TITLE"]</h5>
            <div class="text-md-justify">
                <color-code value="@Model.CommunityInformation.Description"></color-code>
            </div>
            <div class="mt-10">
                @foreach (var social in Model.CommunityInformation.SocialAccounts ?? Array.Empty<SocialAccountConfiguration>())
                {
                    <div>
                        <a href="@social.Url" target="_blank" title="@social.Title" class="d-flex no-decoration">
                            @if (!string.IsNullOrWhiteSpace(social.IconId))
                            {
                                <i class="oi @social.IconId mr-5" style="width: 1.6rem;"></i>
                            }
                            else if (!string.IsNullOrWhiteSpace(social.IconUrl))
                            {
                                var url = Uri.TryCreate(social.IconUrl, UriKind.Absolute, out var parsedUrl)
                                    ? parsedUrl.AbsoluteUri
                                    : $"images/community/{social.IconUrl}";
                                <img class="img-fluid mr-5" style="width: 1.6rem; fill: white" src="@url" alt="@social.Title"/>
                            }
                            <div class="ml-1">@social.Title</div>
                        </a>
                    </div>
                }
            </div>
        }

    </div>

    @if (allRules.Any(rule => rule.Value.Any()))
    {
        <h2 class="content-title mt-20">@ViewBag.Localization["WEBFRONT_ABOUT_COMMUNITY_GUIDELINES"]</h2>
    }

    <div class="card m-0 rounded">
        @foreach (var ((serverName, id), rules) in allRules)
        {
            if (!rules.Any())
            {
                continue;
            }

            var start = 1;
            <h5 class="text-primary mt-0 mb-0">
                <color-code value="@serverName"></color-code>
            </h5>
            @foreach (var rule in rules)
            {
                <div class="rule">
                    @if (!rule.StartsWith("#") && !Regex.IsMatch(rule.StripColors(), @"^(Rule ?#?)?\d+(.|\))"))
                    {
                        <span>@start.</span>
                    }
                    <span class="text-muted">
                        <color-code value="@rule"></color-code>
                    </span>
                </div>
                start++;
            }
            <div class="mb-20"></div>
        }
    </div>
</div>
