$("#blog-archive-button").on("click", function () {
    let archive = $('#blog-archive');
    archive.toggle();
    $(this).html((archive.is(":visible") ? "Hide" : "Show") + " archived posts");
});

$(".blog-cat-button").on("click", function () {
    let tag = $(this).attr("id");
    openCategory(tag);
    history.replaceState(null, null, `#blog-${tag}`);
});

let category = window.location.hash.match(/#blog-(.+)/);
openCategory(category && decodeURI(category[1]));

function openCategory(name) {
    // if there are no tags that match our name, we display featured
    if (!name || $(`#blog-${name}`).length <= 0)
        name = "featured";
    let all = name == "all";

    // toggle post visibilites
    $(".blog-entry").each(function () {
        let e = $(this);
        if (all || e.hasClass(`blog-tag-${name}`)) {
            e.show();
        } else {
            e.hide();
        }
    });
    // show or hide "no archived posts" text
    $("#no-archived-posts").attr("hidden", all || $("#blog-archive").children(`.blog-tag-${name}`).length > 0);
    // disable the shown category's button
    $(`.blog-cat-button`).each(function () {
        $(this).attr("disabled", $(this).attr("id") == name);
    });
}