// Confirmarea scurta de dupa o salvare: window.toast('Salvat').
//
// Pentru ceva ce a mers prost: window.toast(mesaj, 'eroare') — aceeasi casetuta,
// dar cu o bara rosie in stanga. Fara ea, un esec afisat aici ar arata exact ca o
// reusita, iar caseta asta e pentru lucruri care NU opresc omul din lucru (unde
// eroarea chiar blocheaza, se foloseste caseta .ma-alert din formular).
//
// Nu e componenta React si nu are nevoie sa fie montata de nimeni in layout —
// tocmai ca sa poata fi chemata din orice fereastra, inclusiv din una care
// tocmai se inchide si isi demonteaza propriul arbore.
//
// Foloseste clasa .toast din styles.css, scrisa demult si nefolosita pana acum.

(function () {
  const DURATA_MS = 3200;

  window.toast = function (text, tip) {
    let el = window._maToastEl;
    // isConnected, nu doar existenta: daca cineva goleste body-ul, refacem elementul.
    if (!el || !el.isConnected) {
      el = document.createElement('div');
      el.className = 'toast';
      // status + polite: cititorul de ecran anunta confirmarea fara sa intrerupa
      // ce citea omul in acel moment.
      el.setAttribute('role', 'status');
      el.setAttribute('aria-live', 'polite');
      document.body.appendChild(el);
      window._maToastEl = el;
    }

    el.textContent = text == null ? '' : String(text);
    // Rosul e scris direct, nu prin var(--alert-err): toastul traieste in <body>,
    // in afara lui .media-admin-shell, unde tokenul nu ajunge.
    el.style.borderLeft = tip === 'eroare' ? '3px solid #FF5A5A' : '';
    el.setAttribute('role', tip === 'eroare' ? 'alert' : 'status');

    // Un singur element reutilizat: doua salvari la rand nu trebuie sa dea doua
    // casete suprapuse pe aceeasi pozitie fixa, ci un singur text reimprospatat.
    clearTimeout(window._maToastT);
    el.classList.add('show');
    window._maToastT = setTimeout(function () {
      el.classList.remove('show');
    }, DURATA_MS);
  };
})();
