<script>
  function copyProductKey(btn) {
    const input = document.getElementById('inputProductKey');
    const productKey = (input && (input.value || input.textContent) || '').trim();
    const copyBtn = btn || document.getElementById('btnCopyProductKey');

    if (!productKey) {
      alert('Nessun product key da copiare.');
      return;
    }

    function onSuccess() {
      if (!copyBtn) {
        return;
      }
      const icon = copyBtn.querySelector('i');
      if (!icon) {
        return;
      }
      const prevClass = icon.className;
      icon.className = 'bx bx-check';
      copyBtn.classList.remove('btn-outline-primary');
      copyBtn.classList.add('btn-success');
      copyBtn.setAttribute('title', 'Copiato!');
      setTimeout(function () {
        icon.className = prevClass;
        copyBtn.classList.remove('btn-success');
        copyBtn.classList.add('btn-outline-primary');
        copyBtn.setAttribute('title', 'Copia negli appunti');
      }, 2000);
    }

    function fallbackCopy() {
      if (!input) {
        return false;
      }
      input.removeAttribute('readonly');
      input.removeAttribute('disabled');
      input.focus();
      input.select();
      input.setSelectionRange(0, productKey.length);
      const ok = document.execCommand('copy');
      input.setAttribute('readonly', 'readonly');
      return ok;
    }

    if (navigator.clipboard && window.isSecureContext) {
      navigator.clipboard.writeText(productKey).then(onSuccess).catch(function () {
        if (fallbackCopy()) {
          onSuccess();
        } else {
          alert('Errore nella copia. Seleziona il testo e usa Ctrl+C.');
        }
      });
      return;
    }

    if (fallbackCopy()) {
      onSuccess();
    } else {
      alert('Copia non supportata. Seleziona il testo nel campo e usa Ctrl+C.');
    }
  }
</script>
