PageSourceSearch

https://spvm.qc.ca/js/menu.js?v=1.0.9228.18321

js spvm.qc.ca collected 2026-10-02 03:43:35 UTC 8,953 bytes, 237 lines download raw bytes

1$(document).ready(function () {
2
3    if ($("#contenu-home").length) {
4        $("#conteneurGlobal").addClass("new-homepage");
5    }
6    /************************************* MOBILE MENU ****************************************/
7    $("#mobile-menu-button").click(function (e) {
8        e.preventDefault();
9        $("#menu").toggleClass("active");
10        $("#mobile-menu-button").toggleClass("active");
11        $("body").toggleClass("mobile-menu-active");
12    });
13
14    /************************************* DROP DOWN MENU *************************************/
15
16    $('.itemMenu').click(function () {
17
18        /* vérifie si */
19        if ($(this).find('div.sousMenu').length !== 0) {
20            /* ouvre et ferme sous-menu courant */
21            $(this).children('.sousMenu').css('zIndex', '100'); /* on met le sous-menu par dessus tous */
22            $(this).children('.sousMenu').slideToggle(300);
23            $(this).toggleClass('SousMenuOuvert');
24
25            /* gère le "overlay" noir par dessus le contenu + cache le scroll + ajuste padding */
26            if ($(this).hasClass('SousMenuOuvert')) {
27                $('#overlayPourMenu').fadeIn(250, 'swing');
28            } else {
29                $('#overlayPourMenu').fadeOut(300);
30            };
31
32            /* ferme autes sous-menus si ouverts */
33            if ($('.itemMenu').not(this).hasClass('SousMenuOuvert')) {
34                $('.itemMenu').not(this).removeClass('SousMenuOuvert');
35                $('.itemMenu').not(this).children('.sousMenu').css('zIndex', '5'); /* on remet le sous-menu à zIndex 5 */
36                $('.itemMenu').not(this).children('.sousMenu').slideUp(300);
37                $('#bg_sm1, #bg_sm3, #bg_sm6').slideUp(300);
38            };
39        }
40
41    });
42
43    /* Ferme sous-menu si click n'importe où dans html **SAUF** #menuPrincipal et .sousMenu + div's de background sous-menu*/
44    $('html').click(function () {
45        $('.itemMenu').removeClass('SousMenuOuvert');
46        $('.sousMenu').slideUp(300);
47        $('#bg_sm1, #bg_sm3, #bg_sm6').slideUp(300);
48        $('#overlayPourMenu').fadeOut(300);
49    });
50
51    $('#menuPrincipal, .sousMenu, #bg_sm1, #bg_sm3, #bg_sm6').click(function (event) {
52        event.stopPropagation();
53    });
54
55    /************************************************* WATERMARK **********************************************/
56
57    /************************************************************************ 
58	!! IMPORTANT : 	MÊME SCRIPT EST UTILISÉ POUR TOUS LES WATERMARKS
59	*************************************************************************/
60
61    $('.hasWatermark').each(function () {
62        var watermarkRech = $(this).attr('title');
63        $(this).val(watermarkRech).addClass('watermark');
64        $(this).blur(function () {
65            if ($(this).val().length == 0) {
66                $(this).val(watermarkRech).addClass('watermark');
67            }
68        });
69        $(this).focus(function () {
70            if ($(this).val() == watermarkRech) {
71                $(this).val('').removeClass('watermark');
72            }
73        });
74
75    });
76
77    /****************************** RECHERCHE SOUS-MENU 1 ***************************/
78
79    /* Fonction pour calculer position du curseur dans input */
80    $.fn.selectRange = function (start, end) {
81        if (!end) end = start;
82        return this.each(function () {
83            if (this.setSelectionRange) {
84                this.focus();
85                this.setSelectionRange(start, end);
86            } else if (this.createTextRange) {
87                var range = this.createTextRange();
88                range.collapse(true);
89                range.moveEnd('character', end);
90                range.moveStart('character', start);
91                range.select();
92            }
93        });
94    };
95
96    var watermarkSousMenu = $('.inputRechercheSousMenu').attr('title');
97
98    /* focus sur input de recherche lors du click dans le 1er item du menu */
99    $('.itemMenu:first').click(function () {
100        $('.inputRechercheSousMenu').selectRange(0); // met curseur à la bonne place
101        $('#bg_sm1').slideToggle(300);
102
103        if ($(this).hasClass('SousMenuOuvert')) {
104            $('.inputRechercheSousMenu').val(watermarkSousMenu);
105            $('.inputRechercheSousMenu').selectRange(0);
106        };
107    });
108
109    /* ajoute class 'watermark' au input de recherche */
110    $('.inputRechercheSousMenu').val(watermarkSousMenu);
111
112    /* lorsque input perd focus, s'il est vide, ajoute watermark */
113    $('.inputRechercheSousMenu').blur(function () {
114        if ($(this).val().length == 0) {
115            $(this).val(watermarkSousMenu);
116        }
117    });
118
119    /* enleve watermark lors du click + vide value du input*/
120    $('.inputRechercheSousMenu').click(function () {
121        if ($(this).val() == watermarkSousMenu) {
122            $(this).val('');
123        }
124    });
125
126    /* Vide champ recherche " on key down " */
127    $('.inputRechercheSousMenu').on("keydown", function () {
128        if ($(this).val() == watermarkSousMenu) {
129            $(this).val('');
130        };
131    });
132
133    /* Remet watermark si input recherche est vide " on key up " */
134    $('.inputRechercheSousMenu').on("keyup", function () {
135        if ($(this).val().length == 0) {
136            $(this).val(watermarkSousMenu);
137            $('.inputRechercheSousMenu').selectRange(0);
138        };
139    });
140
141    /***************************** POLICE DE QUARTIER ********************************/
142
143    $('#pdqItemMenu').click(function () {
144        $('#bg_sm3').slideToggle(300);
145    });
146
147    /**** Chosen (script pour liste deroulante) ***/
148    $(".chosen-select").chosen({ disable_search: true });
149
150
151    /***************************** iFrame ********************************/
152
153    $('iframe[src*=youtube]').parent().css({ "display":"block", "width": "100%", "height": "0", "padding-top": "56.25%", "position":"relative"});
154
155
156
157    /***************************** EMPLOI ET CARRIÈRES ********************************/
158
159	//$('#emploiCarrieresItemMenu').click(function () {
160 //       $('#bg_sm6').slideToggle(300);
161 //   });
162
163	$(".section-onglets_onglet").on("click", function () {
164		if (!$(this).hasClass("-active")) {
165			id = $(this).data("tab");
166			$(".section-onglets_onglet.-active").removeClass("-active");
167			$(".section-onglets_tab.-active").removeClass("-active");
168			$(this).addClass("-active");
169			$("#" + id).addClass("-active");
170			if (window.disparuSlider) {
171				window.disparuSlider.redrawSlider();
172			}
173			if (window.wantedSlider) {
174				window.wantedSlider.redrawSlider();
175			}
176			if (window.victPotSlider) {
177				window.victPotSlider.redrawSlider();
178			}
179			if (window.meurtresNonResolusV2Slider) {
180				window.meurtresNonResolusV2Slider.redrawSlider();
181			}
182
183		}
184	});
185
186
187//end of ready handler
188});
189
190/************************************************* TRI ALPHABÉTIQUE CATÉGORIES EN *********************************************/
191
192$(document).ready(function () {
193    // Trier uniquement si on est sur la version anglaise
194    if ($('body').data('lang') === 'en') {
195        var $columns = $('#columns');
196        
197        if ($columns.length > 0) {
198            // 1. Trier les catégories (.pin)
199            var $pins = $columns.find('.pin').sort(function (a, b) {
200                return $(a).find('h2').text().localeCompare($(b).find('h2').text());
201            });
202            
203            // 2. Trier les fiches (li) à l'intérieur de chaque catégorie
204            $pins.each(function () {
205                var $ul = $(this).find('ul');
206                var $items = $ul.find('li').sort(function (a, b) {
207                    return $(a).find('a').text().trim().localeCompare($(b).find('a').text().trim());
208                });
209                $ul.html($items);
210            });
211            
212            // 3. Réinjecter les catégories triées
213            $columns.html($pins);
214        }
215    }
216    
217    // Fix pour Meurtres non résolus - corriger fil d'Ariane et masquer date seulement sur les fiches
218    if (window.location.pathname.toLowerCase().indexOf('nonresolus') > -1) {
219        // Vérifier si c'est une fiche (URL se termine par un nombre)
220        var path = window.location.pathname;
221        var isFiche = /\/\d+$/.test(path);
222        
223        // Masquer la date SEULEMENT sur les fiches individuelles
224        if (isFiche) {
225            $('p.date').hide();
226        }
227        
228        // Corriger le fil d'Ariane
229        $('.filArianne a').each(function() {
230            var $span = $(this).find('span');
231            if ($span.length && $span.text().toLowerCase().indexOf('victimes potentielles') > -1) {
232                $span.text('Meurtres non résolus');
233                $(this).attr('href', '/fr/PersonnesRecherchees/NonResolus');
234            }
235        });
236    }
237});

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.