(function () {
	function adminAvatarSvg() {
		return '<svg xmlns="http://www.w3.org/2000/svg" class="icon text-white" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M12 3a12 12 0 0 0 8.5 3a12 12 0 0 1 -8.5 15a12 12 0 0 1 -8.5 -15a12 12 0 0 0 8.5 -3" /></svg>';
	}
	function userAvatarSvg() {
		return '<svg xmlns="http://www.w3.org/2000/svg" class="icon" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M8 7a4 4 0 1 0 8 0a4 4 0 0 0 -8 0" /><path d="M6 21v-2a4 4 0 0 1 4 -4h4a4 4 0 0 1 4 4v2" /></svg>';
	}
	var nav = document.getElementById("navbar-user");
	if (!nav) return;
	var link = document.getElementById("navbar-user-link");
	var avatar = document.getElementById("navbar-user-avatar");
	var nameEl = nav.querySelector(".navbar-user-name");
	var metaEl = nav.querySelector(".navbar-user-meta");
	if (!link || !avatar || !nameEl || !metaEl) return;
	function resetGuestAvatar() {
		avatar.classList.remove("bg-primary", "bg-teal", "text-white");
		avatar.classList.add("bg-secondary");
		avatar.innerHTML = userAvatarSvg();
	}
	function setFallbackAvatar(isAdmin) {
		avatar.classList.remove("bg-secondary");
		if (isAdmin) {
			avatar.classList.remove("bg-teal");
			avatar.classList.add("bg-primary", "text-white");
			avatar.innerHTML = adminAvatarSvg();
		} else {
			avatar.classList.remove("bg-primary", "text-white");
			avatar.classList.add("bg-teal");
			avatar.innerHTML = userAvatarSvg();
		}
	}
	function setGravatarAvatar(url, isAdmin) {
		avatar.classList.remove("bg-secondary", "bg-primary", "bg-teal", "text-white");
		var img = document.createElement("img");
		img.src = url;
		img.alt = "";
		img.width = 32;
		img.height = 32;
		img.onerror = function () {
			setFallbackAvatar(isAdmin);
		};
		avatar.replaceChildren(img);
	}
	fetch("/auth/status", { credentials: "same-origin" })
		.then(function (r) {
			return r.json();
		})
		.then(function (s) {
			if (!s.auth_enabled) {
				link.removeAttribute("href");
				link.setAttribute("aria-disabled", "true");
				link.classList.add("pe-none", "opacity-75");
				nameEl.textContent = "Guest";
				metaEl.textContent = "Sign-in not used";
				return;
			}
			link.classList.remove("pe-none", "opacity-75");
			link.removeAttribute("aria-disabled");
			if (s.username) {
				nav.setAttribute("data-logged-in", "true");
				link.href = "/user";
				nameEl.textContent = s.username;
				metaEl.textContent = "Signed in";
				var isAdmin = String(s.username).toLowerCase() === "admin";
				if (s.gravatar_url) {
					setGravatarAvatar(s.gravatar_url, isAdmin);
				} else {
					setFallbackAvatar(isAdmin);
				}
				return;
			}
			nav.setAttribute("data-logged-in", "false");
			link.href = "/login";
			nameEl.textContent = "Guest";
			metaEl.textContent = "Not signed in";
			resetGuestAvatar();
		})
		.catch(function () {
			link.href = "/login";
			resetGuestAvatar();
		});
})();