@model TopicModel
@if (Model.IsPasswordProtected)
{
<script asp-location="Footer">
    $(function () {
        $('#button-password-@Model.Id').on('click', function() {
            var postData = {
                id: $("#topic-@Model.Id").val(),
                password: $('#password-@Model.Id').val()
            };
            addAntiForgeryToken(postData);

            $.ajax({
                cache: false,
                type: "POST",
                url: "@Url.RouteUrl("TopicAuthenticate")",
                data: postData,
                dataType: "json",
                success: function (data, textStatus, jqXHR) {
                    if (data.Authenticated) {
                        $('#ph-topic-@Model.Id #ph-title-@Model.Id h2').html(data.Title);
                        if ($('#ph-topic-@Model.Id #ph-title-@Model.Id h2').text().length == 0) {
                            $('#ph-title-@Model.Id').hide();
                        }
                        $('#ph-topic-@Model.Id .topic-block-body').html(data.Body);
                        $('#ph-password-@Model.Id').hide();
                        $('#ph-topic-@Model.Id').show();
                        //we need to re-run the validation plugin after the content is loaded after successful authentication
                        $.validator.unobtrusive.parse('#ph-topic-@Model.Id');
                    } else {
                        $('#password-error-@Model.Id').text(data.Error).fadeIn("slow");
                        $('#ph-password-@Model.Id #password-@Model.Id').select().focus();
                    }
                }
            });
            return false;
        });
    });

    $(function () {
        $('#ph-topic-@Model.Id').hide();
        $('#ph-password-@Model.Id #password-@Model.Id').select().focus();
    });
</script>
    <div class="topic-password" id="ph-password-@Model.Id">
        <form asp-route="TopicAuthenticate" method="post" autocomplete="off">
            <input asp-for="Id" id="topic-@Model.Id" type="hidden" />
            <div class="enter-password-title">
                @T("Topic.EnterPassword")
            </div>
            <div class="enter-password-form">
                <input name="password" type="password" id="password-@(Model.Id)" />
                <button type="submit" id="button-password-@Model.Id" class="button-1 topic-password-button">@T("Topic.Button")</button>
            </div>
            <div class="password-error" id="password-error-@Model.Id" style="display: none;"></div>
        </form>
    </div>
    <div class="topic-html-content" id="ph-topic-@Model.Id">
        <div id="ph-title-@Model.Id">
            <div class="topic-html-content-title">
                <h2 class="topic-html-content-header">
                    @Model.Title</h2>
            </div>
        </div>
        <div class="topic-html-content-body">
            @Html.Raw(Model.Body)
        </div>
    </div>
}
else
{
    <div class="topic-html-content">
        @if (!string.IsNullOrEmpty(Model.Title))
        {
            <div class="topic-html-content-title panel-heading">
                <h1>
                    @Model.Title
                </h1>
            </div>
        }
        <div class="topic-html-content-body">
            @Html.Raw(Model.Body)
        </div>
    </div>
  
}