(function () {
  "use strict";

  if (location.pathname.indexOf("/pl/webinar/show") < 0) return;

  // Фильтрация админов/стаффа НЕ нужна: cron-классификатор всё равно
  // джойнит с funnel_events — учитываются только зарегистрированные
  // в воронке пользователи. Лишние записи в webinar_attendance безвредны.

  var u = window.currentUser || {};
  var wid = new URLSearchParams(location.search).get("id");
  if (!u.id || !u.email || !wid) {
    try { console.log("[LB-WBN] missing fields", { u: u, wid: wid }); } catch (e) {}
    return;
  }

  var endpoint = "https://blog.sadko-academy.ru/api/funnel/heartbeat";

  function send(kind) {
    var body = {
      kind: kind,
      webinarId: wid,
      gcUserId: u.id,
      email: u.email,
      ts: new Date().toISOString()
    };
    try {
      if (kind === "unload" && navigator.sendBeacon) {
        navigator.sendBeacon(endpoint, new Blob([JSON.stringify(body)], { type: "application/json" }));
      } else {
        fetch(endpoint, {
          method: "POST",
          headers: { "Content-Type": "application/json" },
          body: JSON.stringify(body),
          keepalive: true,
          mode: "cors"
        });
      }
    } catch (e) {}
  }

  send("open");
  var beat = setInterval(function () { send("beat"); }, 60000);
  window.addEventListener("beforeunload", function () {
    clearInterval(beat);
    send("unload");
  });

  try { console.log("[LB-WBN] tracking started", { webinarId: wid, gcUserId: u.id }); } catch (e) {}
})();
