(function() {
    // Set up shop for logo interaction.
    var logo = document.querySelector("#logo");
    var logoQuotes = [
        "Hey there! :3",
        "Just dancing in this void for at least 659 hours, how about you?",
        "How's it going, man?",
        "Having ourselves a party, yeh?",
        "Why, hello there.",
        "!!!",
        "!?! That's an interrabang."
    ];

    logo.addEventListener("mouseenter", (event) => {
        const randomItem = Math.floor(Math.random() * logoQuotes.length);
        event.target.dataset.tooltip = logoQuotes[randomItem];
    });

    // Set up shop for QoL code listing features.
    var codeListings = document.querySelectorAll("main .listingblock > .content, main .literalblock > .content");

    for (elem of codeListings) {
        var parent = elem.parentElement;

        var fullscreenButton = document.createElement("button");
        fullscreenButton.classList.add("listingblock__fullscreen-btn");
        fullscreenButton.ariaLabel = "{{ T "fullscreenButtonAriaLabel" }}";
        fullscreenButton.title = "{{ T "fullscreenButtonLabel" }}";
        fullscreenButton.ariaDescription = "{{ T "fullscreenButtonDescription" }}";
        fullscreenButton.innerHTML = `{{- partial "components/heroicon.html" (dict "id" "arrows-pointing-out") | safeHTML }}`;

        fullscreenButton.addEventListener("click", (event) => {
            const { target } = event;
            const parent = target.closest(".listingblock") || target.closest(".literalblock");
            if (!document.fullscreenElement) {
                parent.requestFullscreen();
            } else if (document.exitFullscreen) {
                document.exitFullscreen();
            }
        });

        var copyButton = document.createElement("button");
        copyButton.classList.add("listingblock__copy-btn");
        copyButton.ariaLabel = "{{ T "copyButtonAriaLabel" }}";
        copyButton.title = "{{ T "copyButtonLabel" }}";
        copyButton.ariaDescription = "{{ T "copyButtonDescription" }}";
        copyButton.innerHTML = `{{- partial "components/heroicon.html" (dict "id" "clipboard") }}`;

        copyButton.addEventListener("click", (event) => {
            const { target } = event;
            const parent = target.closest(".listingblock");
            const codeListing = parent.querySelector(".content");
            navigator.clipboard.writeText(codeListing.textContent.trim());
        });

        var buttonRow = document.createElement("div");
        buttonRow.classList.add("listingblock__btn-row");

        if (parent.classList.contains("listingblock")) {
            buttonRow.appendChild(copyButton);
        }

        buttonRow.appendChild(fullscreenButton);
        parent.appendChild(buttonRow);
    }
})();
