/**
 * @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) { 
    $(document).ready(function () {
        /////////////// start class à view-rows-ressources ////////
        $(".view-rows-wrapper").each(function () {
            let h3Container = $(this).prev("h3").find("div[class^='type-']");
            let classToAdd = h3Container.attr("class"); // Récupère la classe complète (ex: "type-Documentation")
      
            if (classToAdd) {
                $(this).addClass(classToAdd); // Ajoute cette classe à .view-rows-wrapper
            }
        });
        ////////////////// end class à view-rows-wrapper ////////////////




        /////////////////// start voir plus...  ressources ////////////////////


        // Vérifier si on est sur la page avec l'ID #ressources
        if ($("#ressources").length > 0) {
        $(".view-rows-wrapper").each(function () {
            let container = $(this); // Cible uniquement cette section
            let items = container.find(".views-row"); // Les éléments à afficher progressivement
            let visibleCount = 4; // Nombre d'éléments visibles au départ (par défaut)

            // Récupérer la classe `type-XXX`
            let typeClass = container.attr("class").split(" ").find(cls => cls.startsWith("type-"));
            let typeName = typeClass ? typeClass.replace("type-", "").replace(/-/g, " ") : "contenu"; // Nettoyer le nom

            // >>> Exception : tout afficher pour type-Galerie-photos (pas de bouton)
            if (typeClass && typeClass.toLowerCase() === "type-mission-photo") {
                items.show(); // aucun masquage
                return;       // on sort : pas de "voir plus"
            }

            // Ajuster le nombre d'éléments visibles en fonction du type
            if (typeClass && (typeClass === "type-podcast" || typeClass.toLowerCase() === "type-vidéo" || typeClass.toLowerCase() === "type-les-webinaires-quartiers-de-demain")) {
                visibleCount = 2; // Pour Podcast et Vidéo
            } else if (typeClass === "type-kit-de-communication") {
                visibleCount = 1; // Pour Kit de Communication
            }

            // Si le nombre total d'éléments est inférieur ou égal à la limite, ne pas ajouter le bouton
            if (items.length <= visibleCount) {
                return; // Sortir de la boucle
            }

            // Ajouter le bouton dynamiquement après chaque `.view-rows-wrapper`
            let button = $("<button>")
                .addClass("voir-plus")
                .text("Voir plus de " + typeName)
                .insertAfter(container);

            // Cacher tous les éléments sauf ceux définis par `visibleCount`
            items.hide().slice(0, visibleCount).show();

            // Action sur le bouton
            button.on("click", function () {
                let hiddenItems = container.find(".views-row:hidden").slice(0, 4); // Prochains éléments à afficher

                if ($(this).text().includes("Voir plus")) {
                    hiddenItems.slideDown(); // Afficher avec un effet de glissement

                    if (container.find(".views-row:hidden").length === 0) {
                        $(this).text("Voir moins de " + typeName); // Changer le texte du bouton si tout est affiché
                    }
                } else {
                    container.find(".views-row").slice(visibleCount).slideUp(); // Replier les éléments
                    $(this).text("Voir plus de " + typeName); // Revenir à l'état initial
                }
            });
        });


        // slimselect
        let ressource_type_select = new SlimSelect({
        select: '#edit-field-type-de-ressource-target-id--2',
        settings:{
            placeholderText: 'choisir',
            searchPlaceholder: 'choisir'
        }
        })
        let ressource_motscles_select = new SlimSelect({
        select: '#edit-field-mots-clefs-target-id--2',
        settings:{
            placeholderText: 'choisir',
            searchPlaceholder: 'choisir'
        }
        })
        let ressource_sites_select = new SlimSelect({
        select: '#edit-field-site-target-id-verf--2',
        settings:{
            placeholderText: 'choisir',
            searchPlaceholder: 'choisir'
        }
        })
        // console.log(('sites_select'), sites_select);

        }

        ///////////////////  end voir plus...  ressources ////////////////////

        ///////////////////////// start ressource img clicable mission photo //////////////////////
        $('.view-rows-wrapper.type-Mission-photo .views-row').each(function () {
            var $row = $(this);

            // Lien cible : d'abord le titre, sinon "Voir la gallerie photo"
            var $link = $row.find('.views-field-views-conditional-field-1 a, .views-field-views-conditional-field a').first();

            // L'image
            var $img = $row.find('.views-field-field-images img').first();

            if ($link.length && $img.length && !$img.data('missionPhotoBound')) {
            console.log('→ Bind click sur image pour', $link.attr('href'));

            $img.css('cursor', 'pointer');
            $img.on('click', function () {
                window.location.href = $link.attr('href');
            });

            // éviter de binder plusieurs fois (si AJAX / re-init)
            $img.data('missionPhotoBound', true);
            }
        });
        ///////////////////////// end ressource img clicable mission photo //////////////////////

    });



  

})(jQuery, window);  