PageSourceSearch

https://icom.museum/wp-content/themes/icom/newp_script.js?ver=7.1.2

js icom.museum collected 2026-09-24 07:31:00 UTC 6,725 bytes, 150 lines download raw bytes

1jQuery(document).ready(function($) {
2        // Obtenir la valeur de l'attribut lang de la balise html
3    var htmlLang = $('html').attr('lang');
4
5    // Définir la locale de moment.js en fonction de la langue
6    switch (htmlLang) {
7        case 'fr-FR':
8            moment.locale('fr');
9            break;
10        case 'en-US':
11            moment.locale('en');
12            break;
13        case 'es-ES':
14            moment.locale('es');
15            break;
16        default:
17            moment.locale('en'); // Langue par défaut si non spécifiée ou non reconnue
18    }
19    $('.mec-calendar-table').on('click', '.mec-calendar-day', function() {
20        var selectedDate = $(this).attr('data-mec-cell');
21        console.log('Selected Date:', selectedDate);
22
23        $('.mec-event-article').hide();
24
25        $('.mec-event-article').each(function() {
26            var eventDateText = $(this).find('.mec-event-time').text();
27            console.log('Event Date Text:', eventDateText);
28
29            if(eventDateText.includes('-')) {
30                var parts = eventDateText.split('-');
31                var monthYear = parts[1].substring(parts[1].indexOf(',') + 1).trim(); // Extrait "2024" de "23, 2024"
32                var startDate, endDate;
33
34                if (parts[1].trim().match(/^\d{2},/)) {
35                    // C'est une période dans le même mois (exemple: "March 20 - 23, 2024")
36                    var month = parts[0].trim().split(' ')[0]; // Extrait "March"
37                    startDate = moment(parts[0].trim() + ", " + monthYear, "MMMM DD, YYYY");
38                    endDate = moment(month + " " + parts[1].trim(), "MMMM DD, YYYY");
39                } else {
40                    // Période sur plusieurs mois (exemple: "February 05 - March 30, 2024")
41                    startDate = moment(parts[0].trim(), "MMMM DD, YYYY");
42                    endDate = moment(parts[1].trim(), "MMMM DD, YYYY");
43                }
44
45                console.log('Start Date:', startDate.format('YYYYMMDD'));
46                console.log('End Date:', endDate.format('YYYYMMDD'));
47
48                var currentDate = startDate;
49                while (currentDate <= endDate) {
50                    var formattedCurrentDate = currentDate.format('YYYYMMDD');
51                    console.log('Checking Date:', formattedCurrentDate);
52                    if (formattedCurrentDate === selectedDate) {
53                        $(this).show();
54                        break;
55                    }
56                    currentDate.add(1, 'days');
57                }
58            } else {
59                var formattedEventDate = moment(eventDateText, "MMMM DD, YYYY").format('YYYYMMDD');
60                console.log('Formatted Single Event Date:', formattedEventDate);
61
62                if (formattedEventDate === selectedDate) {
63                    $(this).show();
64                }
65            }
66        });
67    });
68});
69jQuery(document).ready(function($) {
70    $('.mec-calendar-table').on('click', '.mec-calendar-day', function() {
71        // Votre logique existante ici...
72
73        // Vérifier si l'utilisateur est sur un appareil mobile
74        if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) {
75            // Calculer la position de la section cible et soustraire 50px pour ajuster le défilement
76            var scrollToPosition = $('.mec-calendar-events-side').offset().top - 50;
77
78            // Animer le défilement vers la position ajustée
79            $('html, body').animate({
80                scrollTop: scrollToPosition
81            }, 800); // 800 ms pour l'animation du défilement
82        }
83    });
84});
85jQuery(document).ready(function($) {
86    // Fonction pour ajouter les boutons
87    function addCalendarButtons() {
88        $('.mec-event-article').each(function() {
89            // Assurez-vous de ne pas ajouter de boutons en double
90            if ($(this).find('add-to-calendar-button').length === 0) {
91                var eventTimeText = $(this).find('.mec-event-time').text();
92                var startDate, endDate;
93                var titre = $(this).find('.mec-event-title').text();
94                
95                if (!eventTimeText.includes('-')) {
96                    startDate = moment(eventTimeText, "MMMM D, YYYY").format('YYYY-MM-DD');
97                    endDate = startDate;
98                } else {
99                    var parts = eventTimeText.split('-');
100                    var startText = parts[0].trim();
101                    var endText = parts[1].trim();
102                    var year = endText.substring(endText.lastIndexOf(',') + 1).trim();
103
104                    if (parts[1].trim().match(/^\d{2},/)) {
105                        var month = startText.split(' ')[0];
106                        startDate = moment(startText + ", " + year, "MMMM DD, YYYY").format('YYYY-MM-DD');
107                        endDate = moment(month + " " + endText, "MMMM DD, YYYY").format('YYYY-MM-DD');
108                    } else {
109                        startDate = moment(startText + ", " + year, "MMMM DD, YYYY").format('YYYY-MM-DD');
110                        endDate = moment(endText, "MMMM DD, YYYY").format('YYYY-MM-DD');
111                    }
112                }
113
114                var addToCalendarButton = `<add-to-calendar-button 
115                      name="${titre}" 
116                    options="'Apple','Google','iCal','Outlook.com','Yahoo','MicrosoftTeams','Microsoft365'"
117                    location="World Wide Web" 
118                    startDate="${startDate}" 
119                    endDate="${endDate}" 
120                    timeZone="America/Los_Angeles">
121                </add-to-calendar-button>`;
122
123                $(this).append(addToCalendarButton);
124            }
125        });
126    }
127
128    // Initial exécution pour capturer les éléments déjà présents
129    addCalendarButtons();
130
131    // Observer les mutations dans le conteneur de l'agenda
132    var observer = new MutationObserver(function(mutations) {
133        mutations.forEach(function(mutation) {
134            if (mutation.type === "childList") {
135                addCalendarButtons();
136            }
137        });
138    });
139
140    // Configuration de l'observateur : observer l'ajout de nouveaux enfants et les changements dans les sous-arbres
141    var config = { childList: true, subtree: true };
142
143    // Cible à observer : remplacer '#id_de_votre_container_agenda' par l'ID réel du conteneur de votre agenda
144    var target = document.querySelector('#mec_skin_5415');
145
146    // Démarrer l'observation
147    if (target) {
148        observer.observe(target, config);
149    }
150});

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.