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.