/**
 * DO CLOUD - Custom JavaScript
 * - Botón Login en header
 * - Integración Zammad Feedback Form (carga diferida)
 */

(function() {
  'use strict';

  // Esperar a que el DOM esté listo
  document.addEventListener('DOMContentLoaded', initCustomFeatures);

  function initCustomFeatures() {
    fixLogoLink();
    addLoginButton();
    // Cargar Zammad después de la carga inicial (mejora LCP)
    if ('requestIdleCallback' in window) {
      requestIdleCallback(loadZammadForm);
    } else {
      setTimeout(loadZammadForm, 2000);
    }
  }

  /**
   * Asegura que el logo siempre enlace al home
   */
  function fixLogoLink() {
    var logoLink = document.querySelector('.logo-link');
    if (logoLink) {
      logoLink.href = '/';
    }
  }

  /**
   * Añade el botón de Login al header
   */
  function addLoginButton() {
    var header = document.querySelector('.sidebar-header');
    if (!header) return;

    var loginBtn = document.createElement('a');
    loginBtn.href = 'https://icsmanager.docloud.es/ics1';
    loginBtn.className = 'header-login-btn';
    loginBtn.innerHTML = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z"/></svg>Login';
    loginBtn.setAttribute('rel', 'noopener');
    loginBtn.setAttribute('title', 'Acceder al panel de cliente');

    header.appendChild(loginBtn);
  }

  /**
   * Carga jQuery y Zammad Form
   */
  function loadZammadForm() {
    // Crear botón de feedback
    var feedbackBtn = document.createElement('button');
    feedbackBtn.id = 'zammad-feedback-form';
    feedbackBtn.textContent = 'Contactar';
    document.body.appendChild(feedbackBtn);

    // Cargar jQuery si no existe
    if (typeof jQuery === 'undefined') {
      var jqueryScript = document.createElement('script');
      jqueryScript.src = 'https://code.jquery.com/jquery-3.6.0.min.js';
      jqueryScript.onload = loadZammadScript;
      document.head.appendChild(jqueryScript);
    } else {
      loadZammadScript();
    }
  }

  /**
   * Carga el script de Zammad y inicializa el formulario
   */
  function loadZammadScript() {
    var zammadScript = document.createElement('script');
    zammadScript.id = 'zammad_form_script';
    zammadScript.src = 'https://soporte.tecnico.com.es/assets/form/form.js';
    zammadScript.onload = initZammadForm;
    document.head.appendChild(zammadScript);
  }

  /**
   * Inicializa el formulario de Zammad
   */
  function initZammadForm() {
    if (typeof jQuery !== 'undefined' && jQuery.fn.ZammadForm) {
      jQuery('#zammad-feedback-form').ZammadForm({
        messageTitle: 'Contacto con Soporte',
        messageSubmit: 'Enviar',
        messageThankYou: 'Gracias por su consulta (#%s). Nos pondremos en contacto con usted lo antes posible.',
        modal: true
      });
    }
  }

})();
