/* VerIQ result page logic */
(function () {
"use strict";
var $ = function (id) { return document.getElementById(id); };
function showError(msg) {
$("errorArea").textContent = msg;
$("errorArea").style.display = "";
$("loading").style.display = "none";
}
var m = window.location.pathname.match(/^\/result\/([A-Za-z0-9]{8})$/);
if (!m) { showError("Invalid result link."); return; }
var rid = m[1];
fetch("/api/result/" + rid).then(function (r) {
if (!r.ok) return r.json().then(function (e) { throw new Error(e.detail || r.status); });
return r.json();
}).then(function (d) {
$("loading").style.display = "none";
$("resultArea").style.display = "";
$("iqScore").textContent = d.iq;
var pct = d.percentile;
$("percentileLine").textContent =
"higher than " + pct + "% of test takers" +
(d.calibrated === false ? " ยท preliminary calibration" : "");
var badges = $("badges");
badges.innerHTML = "";
var b1 = document.createElement("span");
b1.className = "badge " + (d.signature_valid ? "ok" : "bad");
b1.textContent = d.signature_valid ? "signature valid" : "SIGNATURE INVALID";
badges.appendChild(b1);
if (d.flagged) {
var bf = document.createElement("span");
bf.className = "badge warn";
bf.textContent = "flagged: implausible timing";
badges.appendChild(bf);
}
var b2 = document.createElement("span");
b2.className = "badge";
b2.textContent = "bank v" + d.bank_version;
badges.appendChild(b2);
var b3 = document.createElement("span");
b3.className = "badge";
b3.textContent = d.completed_at;
badges.appendChild(b3);
var cats = $("cats");
cats.innerHTML = "";
var order = ["numeric", "matrix", "verbal", "spatial"];
order.forEach(function (k) {
var c = (d.categories || {})[k];
if (!c) return;
var row = document.createElement("div");
row.className = "catrow";
var name = document.createElement("span");
name.className = "name";
name.textContent = k;
var bar = document.createElement("span");
bar.className = "bar";
var fill = document.createElement("span");
fill.style.display = "block";
fill.style.height = "100%";
fill.style.width = Math.round(100 * c.correct / c.total) + "%";
fill.style.background = "var(--accent2)";
bar.appendChild(fill);
var val = document.createElement("span");
val.className = "val";
val.textContent = c.correct + "/" + c.total;
row.appendChild(name); row.appendChild(bar); row.appendChild(val);
cats.appendChild(row);
});
var link = window.location.origin + "/v/" + rid;
$("verifyLink").value = link;
$("copyBtn").addEventListener("click", function () {
var inp = $("verifyLink");
inp.select();
try { document.execCommand("copy"); } catch (e) {}
if (navigator.clipboard) navigator.clipboard.writeText(link);
$("copyBtn").textContent = "Copied โ";
setTimeout(function () { $("copyBtn").textContent = "Copy"; }, 1500);
});
var msg = "My VerIQ score: " + d.iq +
" (higher than " + pct + "%). Verify it: " + link;
$("shareX").href = "https://twitter.com/intent/tweet?text=" +
encodeURIComponent(msg);
$("shareTg").href = "https://t.me/share/url?url=" +
encodeURIComponent(link) + "&text=" +
encodeURIComponent("My VerIQ score: " + d.iq + " โ verify it yourself");
}).catch(function (e) {
showError("Could not load result: " + e.message);
});
})();