/**
 * @file
 * quartiers_de_demain behaviors.
 */
 (function (Drupal) {

  'use strict';

  Drupal.behaviors.quartiers_de_demain = {
    attach: function (context, settings) {
      console.log('It works!');
    }
  };
} (Drupal));





(function($, window) {


//// ancre dans texte au click paragraphe correspondant arrive en dessous du header 

    var adjustAnchor = function() {
        var $anchor = $('.sidebar_first_container'),
                fixedElementHeight = 500;
        if ($anchor.length > 0) {
            $('html, body').stop().animate({scrollTop: $anchor.offset().top - fixedElementHeight }, 0);
        }
    };

    $(window).on('hashchange', function() {
        adjustAnchor();
    });


////////////////////////  start script smooth apparition des textes /////////////////

// div.view-rows-wrapper:nth-child(3) > div:nth-child(2) > article:nth-child(1) > div:nth-child(3)
// html.js.sr body div.dialog-off-canvas-main-canvas div.layout-container.partenaires main div.layout-content div.content_container div.views-element-container div.js-view-dom-id-92e061b83776a5ae5f470b8d32637dba5a87d248e6f275adc7abe863e5c527c3.view div.view-rows-wrapper div.views-row article.node-type-partenaire div.field_body

  function scrollReaveal(){

    const nodes = {
      logo : document.querySelectorAll('#logo-animated-container'),
      chapeau :  document.querySelectorAll('.field_body:not(article.node-type-partenaire div.field_body)'),
      paragraph: document.querySelectorAll('.field_field_textes .paragraph--type--static-parts'),
      enjeux : document.querySelectorAll('.field_field_textes .paragraph--type--static-parts .enjeux'),
      // mapHome : document.querySelectorAll('.field_field_map_block #block-sitesmapblock'),
      // mapSite : document.querySelectorAll('#sites-map-container'),
      lienDoc : document.querySelectorAll('.field_field_documents'),
      lienURL : document.querySelectorAll('.field_field_liens_site, .field_field_liens'),
      // nodeProjet : document.querySelectorAll('.node-type-projet .field_field_infos, .btn-equipe-toggle, .field_field_nom_de_l_equipe, .node-type-projet .field_field_texte_partie_texte_projet, .node-type-projet .field_field_titre_partie_texte_projet, .node-type-projet .field_field_images_projet'),
    }

    const showUp = {
        origin: 'bottom',
        delay: 100,
        duration: 1000,
        distance: '50px',
        easing: 'cubic-bezier(0.5, 0, 0, 1)'
    }

    const Show = {
      delay: 100,
      duration: 600,
      easing: 'cubic-bezier(0.5, 0, 0, 1)'
    }

    console.log(nodes);

    ScrollReveal().reveal(nodes.logo, Show);
    ScrollReveal().reveal(nodes.chapeau, showUp);
    ScrollReveal().reveal(nodes.paragraph, showUp);
    ScrollReveal().reveal(nodes.enjeux, showUp);
    // ScrollReveal().reveal(nodes.mapHome, showUp);
    // ScrollReveal().reveal(nodes.mapSite, showUp);
    ScrollReveal().reveal(nodes.lienDoc, showUp);
    ScrollReveal().reveal(nodes.lienURL, showUp);
    // ScrollReveal().reveal(nodes.nodeProjet, showUp);

  }


  $( document ).ready(function() {
    scrollReaveal();
  });

////////////////////////  end script smooth apparition des textes /////////////////




//////////// start slideshow images home  ////////////////////////// 
$(document).ready(function(){
  let diapohome = $('.config_pages--type--diaporama-home .diaporama');

  if (diapohome.length) {
      // Initialisation de Slick
      diapohome.slick({
          slidesToShow: 1,
          dots: false,
          arrows: false,
          // centerMode: true,
          adaptiveHeight: false,
          autoplay: true,  // Activer l'autoplay
          autoplaySpeed: 4000,  // Changement de slide toutes les 4 secondes
          // infinite: true,
          pauseOnHover: false,  // Ne pas arrêter l'autoplay lors du survol
          pauseOnFocus: false,
          responsive: [
              {
                  breakpoint: 810,
                  settings: {
                      slidesToShow: 1,
                      adaptiveHeight: false,
                      arrows: false,
                      draggable: true,
                      centerMode: false,
                  }
              }]
      });

}

////////////  end slideshow images home  ////////////////////////// 


//////////// start slideshow /actualites  ////////////////////////// 

    // Vérifier si on N'EST PAS sur la page #home
    if (!$("#page-node").length) {
        let actuview2 = $('.content-wrapper-actu .field_field_images .actu-diaporama');

        if (actuview2.length > 0) {
            actuview2.slick({
                slidesToShow: 1,
                dots: false,
                arrows: true,
                adaptiveHeight: false,
                autoplay: false,
                responsive: [
                    {
                        breakpoint: 810,
                        settings: {
                            slidesToShow: 1,
                            adaptiveHeight: false,
                            arrows: true,
                            draggable: true,
                            autoplay: false,
                        }
                    }
                ]
            });
            console.log('Slick activé sur les actualités');
            console.log('Slick activé sur 1 actu');
        }
    // } else {
        // console.log('Slick désactivé sur la page Home');
    }
});
////////////  end slideshow /actualites  ////////////////////////// 





//////////////////// start wrapper views-row  lessites /////////////////////////
document.addEventListener("DOMContentLoaded", function() {
// Sélectionne le conteneur principal avec l'ID 'lessites'
const container = document.getElementById("lessites");

// Vérifie si le conteneur existe pour éviter toute erreur sur d'autres pages
if (container) {
  // Sélectionne l'élément 'view' à l'intérieur de '.views-element-container'
  const viewContainer = container.querySelector(".views-element-container .view");

  // Vérifie si 'viewContainer' existe pour éviter les erreurs
  if (viewContainer) {
    // Crée une div englobante pour tous les éléments 'views-row'
    const wrapperDiv = document.createElement("div");
    wrapperDiv.classList.add("views-row-wrapper"); // ajoute une classe pour faciliter le style CSS

    // Déplace tous les éléments 'views-row' dans la nouvelle div
    const viewsRows = viewContainer.querySelectorAll(".views-row");
    viewsRows.forEach(row => wrapperDiv.appendChild(row));

    // Ajoute la div englobante dans le 'viewContainer'
    viewContainer.appendChild(wrapperDiv);
  }
}
});
//////////////////// end wrapper views-row  lessites /////////////////////////


////////////////////  start div infos site  ////////////////////////

if (document.body.classList.contains('node-type-site')) {
const blockRegion = document.querySelector('.block-region-second');
const fieldClasses = [
    '.field_field_region',
    '.field_field_nom_du_qpv_nb_d_hab',
    '.field_field_departement_s',
    '.field_field_programme_de_l_etat',
    '.field_field_porteur_s_de_site',
    '.field_field_nom_de_la_commune_nb_d_hab'
];

// Sélectionne les div parents de chacun des champs listés
const elementsToWrap = [];
fieldClasses.forEach(className => {
    const fieldElement = blockRegion.querySelector(className);
    if (fieldElement) {
        // Ajoute le parent du champ au tableau si trouvé
        elementsToWrap.push(fieldElement.parentElement);
    }
});

if (elementsToWrap.length > 0) {
    const infosContainer = document.createElement('div');
    infosContainer.className = 'infos';

    // Insère le conteneur `.infos` avant le premier élément ciblé
    const firstElement = elementsToWrap[0];
    blockRegion.insertBefore(infosContainer, firstElement);

    // Déplace chaque élément dans le conteneur `.infos`
    elementsToWrap.forEach(element => infosContainer.appendChild(element));
}
}
////////////////////  end div infos site  ////////////////////////


////////////////////  start div infos actualité  ////////////////////////
$(document).ready(function () {
  // Vérifier si .layout-container A l'ID #page-node (et non un élément enfant)
  if ($(".layout-container").attr("id") === "page-node") {
      $("article.node-type-actualite").each(function () {
          let article = $(this);
          let dateField = article.find(".field_field_date");
          let typeField = article.find(".field_field_type_d_actualite");
          let siteField = article.find(".field_field_site");

          

          // Vérifier si les deux éléments existent
          if (dateField.length > 0 || typeField.length > 0) {
              // Vérifier si l'encapsulation n'existe pas déjà
              if (article.find(".infos-actu").length === 0) {
                  // Créer un conteneur et y insérer les éléments
                  let infosActu = $("<div>").addClass("infos-actu").append(dateField, typeField, siteField);
                  
                  // Ajouter ce conteneur après les champs existants
                  article.append(infosActu);
              }
          }
      });
  }
});
////////////////////  end div infos actualité  ////////////////////////

//////////////////////////////////////////////////////////////////
document.addEventListener("DOMContentLoaded", function() {
// Sélectionner les éléments à déplacer
const documentsField = document.querySelector(".field_field_documents");
const liensSiteField = document.querySelector(".field_field_liens_site");

// Sélectionner la destination
const thirdRegion = document.querySelector(".block-region-third > div");

// Créer une nouvelle div pour englober les éléments déplacés
const wrapperDiv = document.createElement("div");
wrapperDiv.classList.add("documents-liens-wrapper");

// Déplacer les éléments dans la nouvelle div
if (documentsField && liensSiteField && thirdRegion) {
    wrapperDiv.appendChild(documentsField);
    wrapperDiv.appendChild(liensSiteField);

    // Ajouter la nouvelle div dans la destination
    thirdRegion.appendChild(wrapperDiv);
}
});
document.addEventListener("DOMContentLoaded", function() {
// Sélectionner les éléments pertinents
const documentsLiensWrapper = document.querySelector(".documents-liens-wrapper");
const blockRegionThird = document.querySelector(".block-region-third");

// Vérifier que les éléments existent avant de les manipuler
if (documentsLiensWrapper && blockRegionThird) {
    // Déplacer .documents-liens-wrapper en dehors du div contenant les boutons prev/next
    blockRegionThird.appendChild(documentsLiensWrapper);
}
});



/////////////////// start langswitcher position responsive//////////////////////
document.addEventListener("DOMContentLoaded", function () {
// Fonction pour déplacer le bloc en fonction de la taille de l'écran
function moveLanguageSwitcher() {
  const languageSwitcher = document.getElementById("block-quartiers-de-demain-selecteurdelangue");
  const navContainer = document.querySelector(".header_nav_container");

  if (window.innerWidth <= 810) { // Si écran téléphone
    if (languageSwitcher && navContainer && !navContainer.contains(languageSwitcher)) {
      navContainer.appendChild(languageSwitcher); // Déplace le bloc dans header_nav_container
    }
  } else { // Si écran non téléphone
    const headerRightContainer = document.querySelector(".header_right_container");
    if (languageSwitcher && headerRightContainer && !headerRightContainer.contains(languageSwitcher)) {
      headerRightContainer.appendChild(languageSwitcher); // Remet le bloc dans sa position initiale
    }
  }
}

// Déclencher au chargement et au redimensionnement
moveLanguageSwitcher();
window.addEventListener("resize", moveLanguageSwitcher);
});
/////////////////// end langswitcher position responsive///////////////////////////////////////////////////////////


$(document).ready(function () {


/////////////////// start voir plus...  actualite dans /actualites & /home ////////////////////

  if ($("#actualites" ).length > 0 || $("#home").length > 0)  {
    $(".node-type-actualite").each(function () {
      let article = $(this);
  
      let body = article.find(".field_body");
      let links = article.find(".field_field_liens");
  
      body.hide();
      links.hide();
  
      let toggleButton = $("<button>")
          .addClass("toggle-actualite")
          .insertAfter(article);
  
      // Fonction de toggle (à utiliser partout)
      function toggleActu() {
          body.slideToggle();
          links.slideToggle();
          toggleButton.toggleClass("open");
      }
  
      // Clic sur le bouton
      toggleButton.on("click", function (e) {
          e.stopPropagation();
          toggleActu();
      });
  
      // Clic sur le node entier sauf liens
      article.on("click", function (e) {
          if ($(e.target).closest("a").length) {
              return;
          }
          toggleActu();
      });
  
      // 👉 Clic aussi sur le H2
      article.find("h2").on("click", function (e) {
          e.stopPropagation();
          toggleActu();
      });
  });
  
    // slimselect
    // duplicated due to embeded view (archives)
    let actu_type_select = new SlimSelect({
      select: '#edit-field-type-d-actualite-target-id--2',
      settings:{
        placeholderText: 'choisir',
        searchPlaceholder: 'choisir'
      }
    })
    let actu_type_select2 = new SlimSelect({
      select: '#edit-field-type-d-actualite-target-id--3',
      settings:{
        placeholderText: 'choisir',
        searchPlaceholder: 'choisir'
      }
    })
    let actu_site_select = new SlimSelect({
      select: '#edit-field-site-target-id-verf--2',
      settings:{
        placeholderText: 'choisir',
        searchPlaceholder: 'choisir'
      }
    })
    let actu_site_select2 = new SlimSelect({
      select: '#edit-field-site-target-id-verf--3',
      settings:{
        placeholderText: 'choisir',
        searchPlaceholder: 'choisir'
      }
    })
  }

///////////////////  end voir plus...  actualite dans /actualites & /home ////////////////////



//////////////start toggle partenaire //////////////////

  $(".node-type-partenaire").each(function () {
    let article = $(this);

    let body = article.find(".field_body");
    let links = article.find(".field_field_lien");

    body.hide();
    links.hide();

    let toggleButton = $("<button>")
      .addClass("toggle-partenaire")
      .appendTo(article);

    toggleButton.on("click", function () {
      body.slideToggle();
      links.slideToggle();
      $(this).toggleClass("open");
    });
  });
});

//////////////start toggle partenaire //////////////////



////////////// start toggle page node projet //////////////////

document.addEventListener('DOMContentLoaded', function () {

  const photo = document.querySelector('.field_field_equipe_photo');
  const pres  = document.querySelector('.field_field_equipe_presentation');
  const isEnglish = window.location.pathname.startsWith('/en/');

  const openText = isEnglish
    ? "LEARN MORE ABOUT THE TEAM"
    : "EN SAVOIR PLUS SUR L'ÉQUIPE";

  const closeText = isEnglish
    ? "CLOSE THE TEAM PRESENTATION"
    : "FERMER LA PRÉSENTATION DE L'ÉQUIPE";

  if (!photo || !pres) return;

  // Forcer l'état FERMÉ au chargement
  photo.classList.remove('is-open');
  pres.classList.remove('is-open');

  // 1. Créer un wrapper autour de photo + présentation
  const panel = document.createElement('div');
  panel.className = 'equipe-panel';

  // Insérer le panel avant la photo, puis y déplacer photo + pres
  photo.parentNode.insertBefore(panel, photo);
  panel.appendChild(photo);
  panel.appendChild(pres);

  // 2. Préparer le panel pour l'animation
  panel.style.overflow = 'hidden';
  panel.style.maxHeight = '0px';

  // 3. Création du bouton
  const btn = document.createElement('button');
  btn.className = 'btn-equipe-toggle';
  btn.textContent = openText;
  // btn.textContent = "EN SAVOIR PLUS SUR L'ÉQUIPE";
  btn.setAttribute('aria-expanded', 'false');

  // Insertion du bouton juste après le panel (et plus après "pres")
  panel.insertAdjacentElement('afterend', btn);

  // Ligne de séparation après le bouton
  const separator = document.createElement('div');
  separator.className = 'equipe-separator';
  btn.insertAdjacentElement('afterend', separator);

  // --- Fonctions ouverture / fermeture ---

  function openPanel() {
    panel.classList.add('is-open');
    photo.classList.add('is-open');
    pres.classList.add('is-open');

    const fullHeight = panel.scrollHeight; // inclut photo + texte
    panel.style.maxHeight = fullHeight + 'px';

    btn.textContent = closeText;
    // btn.textContent = "FERMER LA PRÉSENTATION DE L'ÉQUIPE";
    btn.setAttribute('aria-expanded', 'true');
  }

  function closePanel() {
    const fullHeight = panel.scrollHeight;
    panel.style.maxHeight = fullHeight + 'px';

    requestAnimationFrame(() => {
      panel.style.maxHeight = '0px';
      panel.classList.remove('is-open');
      photo.classList.remove('is-open');
      pres.classList.remove('is-open');
    });

    btn.textContent = openText;
    // btn.textContent = "EN SAVOIR PLUS SUR L'ÉQUIPE";
    btn.setAttribute('aria-expanded', 'false');
  }

  // --- Toggle bouton ---
  btn.addEventListener('click', function () {
    const isOpen = btn.getAttribute('aria-expanded') === 'true';
    if (isOpen) {
      closePanel();
    } else {
      openPanel();
    }
  });

});

//////////////end toggle page node projet //////////////////






})(jQuery, window);


