PageSourceSearch

https://www.compteur-energie.com/mag/_starter/js/starter.js

js compteur-energie.com collected 2026-10-09 00:31:11 UTC 47,504 bytes, 1,277 lines download raw bytes

1/* ------------------------------- */
2/*  =     Paramètres               */
3/* ------------------------------- */
4
5var
6
7/*  = --- Général ---------------- */
8
9version_fontawesome       = 'r', // ['' (classique) | 'l' (light) | 'r' (regular) | 's' (solid) | 'b' (brands)]
10activer_entete_gauche     = false,
11activer_entete_fixe       = {
12    'extra_en-tete': false,
13    'en-tete'      : true
14},
15limite_entete_fixe        = 250, // [(int){px}]
16minimum_champ_recherche   = 3, // [(int)]
17activer_liens_sf          = false,
18limite_retour_haut        = 1000, // [(int){px} - 0 pour désactiver]
19vitesse_retour_haut       = 1000, // [(int){ms}]
20alignement_sliders        = 'c', // ['g' (gauche) | 'd' (droite) | 'c' (centre)]
21nombre_colonnes           = { // [(int)1-4]
22    accueil  : {
23        produits: 4,
24        autres  : 3
25    },
26    liste    : {
27        produits: 4,
28        autres  : 3
29    },
30    recherche: {
31        produits: 4,
32        autres  : 4
33    },
34    fiche    : {
35        produits: 4,
36        autres  : 3
37    }
38},
39texte_bouton_achat_liste  = { // [(string) | http://fontawesome.io/cheatsheet/]
40    fr: '',
41    en: ''
42},
43texte_bouton_detail_liste = { // [(string) | http://fontawesome.io/cheatsheet/]
44    fr: '',
45    en: ''
46},
47activer_animations        = true,
48// https://github.com/michalsnik/aos/blob/master/README.md
49parametres_animations     = {
50    effect  : 'fade-up',
51    duration: 1000
52},
53texte_bouton_texte_plus_ouvrir = 'Lire la suite',
54texte_bouton_texte_plus_fermer = 'Fermer',
55
56/*  = --- Accueil ---------------- */
57
58activer_titres   = true,
59activer_chapeaux = true,
60alignement_page  = 'c', // ['g' (gauche) | 'd' (droite) | 'c' (centre)]
61activer_onglets  = {
62    produits: true,
63    autres  : false,
64    pages   : true
65},
66pages_isolees    = [
67    'societe.htm',
68    'marques.htm'
69],
70
71/*  = --- Liste ------------------ */
72
73affichage_filtres              = 'v', // ['p' (pop-in) | 'h' (horizontal) | 'v' (vertical)]
74activer_filtres_fixes          = true,
75// http://tobiasahlin.com/spinkit/
76motif_chargement_filtres       = 'folding-cube', // ['rotating-plane' | 'double-bounce' | 'wave' | 'wandering-cubes' | 'pulse' | 'chasing-dots' | 'three-bounce' | 'circle' | 'cube-grid' | 'fading-circle' | 'folding-cube']
77texte_bouton_filtres           = {
78    fr: 'Filtres',
79    en: 'Filters'
80},
81texte_bouton_appliquer_filtres = {
82    fr: 'Appliquer les filtres',
83    en: 'Apply filters'
84},
85activer_affichage_colonnes     = false,
86
87/*  = --- Fiche ------------------ */
88
89alignement_image          = 'g', // ['g' (gauche) | 'd' (droite)]
90texte_option_indisponible = { // + Vérifier état : "Texte option indisponible" (CSS).
91    fr: 'indisponible',
92    en: 'unavailable'
93},
94texte_bouton_achat_fiche  = { // [(string) | http://fontawesome.io/cheatsheet/]
95    fr: 'Ajouter au panier',
96    en: 'Add to cart'
97};
98
99/*  = --- Recherche -------------- */
100
101/* ------------------------------- */
102/*  =     Librairies               */
103/* ------------------------------- */
104
105var
106
107/*  = --- AOS -------------------- */
108// https://github.com/michalsnik/aos
109
110aos_css = 'https://cdnjs.cloudflare.com/ajax/libs/aos/2.1.1/aos.css',
111aos_js  = 'https://cdnjs.cloudflare.com/ajax/libs/aos/2.1.1/aos.js',
112
113/*  = --- jQuery UI Touch Punch -- */
114// https://github.com/furf/jquery-ui-touch-punch
115
116jqueryui_touch_punch_js = 'https://cdnjs.cloudflare.com/ajax/libs/jqueryui-touch-punch/0.2.3/jquery.ui.touch-punch.min.js',
117
118/*  = --- SpinKit ---------------- */
119// https://github.com/tobiasahlin/SpinKit
120
121spinkit_css  = 'https://cdnjs.cloudflare.com/ajax/libs/spinkit/1.2.5/spinkit.min.css',
122spinkit_html = {
123    'rotating-plane' : '<div class="sk-rotating-plane"></div>',
124    'double-bounce'  : '<div class="sk-double-bounce"><div class="sk-child sk-double-bounce1"></div><div class="sk-child sk-double-bounce2"></div></div>',
125    'wave'           : '<div class="sk-wave"><div class="sk-rect sk-rect1"></div><div class="sk-rect sk-rect2"></div><div class="sk-rect sk-rect3"></div><div class="sk-rect sk-rect4"></div><div class="sk-rect sk-rect5"></div></div>',
126    'wandering-cubes': '<div class="sk-wandering-cubes"><div class="sk-cube sk-cube1"></div><div class="sk-cube sk-cube2"></div></div>',
127    'pulse'          : '<div class="sk-spinner sk-spinner-pulse"></div>',
128    'chasing-dots'   : '<div class="sk-chasing-dots">
128<div class="sk-child sk-dot1"></div><div class="sk-child sk-dot2"></div></div>',
129    'three-bounce'   : '<div class="sk-three-bounce"><div class="sk-child sk-bounce1"></div><div class="sk-child sk-bounce2"></div><div class="sk-child sk-bounce3"></div></div>',
130    'circle'         : '<div class="sk-circle"><div class="sk-circle1 sk-child"></div><div class="sk-circle2 sk-child"></div><div class="sk-circle3 sk-child"></div><div class="sk-circle4 sk-child"></div><div class="sk-circle5 sk-child"></div><div class="sk-circle6 sk-child"></div><div class="sk-circle7 sk-child"></div><div class="sk-circle8 sk-child"></div><div class="sk-circle9 sk-child"></div><div class="sk-circle10 sk-child"></div><div class="sk-circle11 sk-child"></div><div class="sk-circle12 sk-child"></div></div>',
131    'cube-grid'      : '<div class="sk-cube-grid"><div class="sk-cube sk-cube1"></div><div class="sk-cube sk-cube2"></div><div class="sk-cube sk-cube3"></div><div class="sk-cube sk-cube4"></div><div class="sk-cube sk-cube5"></div><div class="sk-cube sk-cube6"></div><div class="sk-cube sk-cube7"></div><div class="sk-cube sk-cube8"></div><div class="sk-cube sk-cube9"></div></div>',
132    'fading-circle'  : '<div class="sk-fading-circle"><div class="sk-circle1 sk-circle"></div><div class="sk-circle2 sk-circle"></div><div class="sk-circle3 sk-circle"></div><div class="sk-circle4 sk-circle"></div><div class="sk-circle5 sk-circle"></div><div class="sk-circle6 sk-circle"></div><div class="sk-circle7 sk-circle"></div><div class="sk-circle8 sk-circle"></div><div class="sk-circle9 sk-circle"></div><div class="sk-circle10 sk-circle"></div><div class="sk-circle11 sk-circle"></div><div class="sk-circle12 sk-circle"></div></div>',
133    'folding-cube'   : '<div class="sk-folding-cube"><div class="sk-cube1 sk-cube"></div><div class="sk-cube2 sk-cube"></div><div class="sk-cube4 sk-cube"></div><div class="sk-cube3 sk-cube"></div></div>'
134};
135
136/* ------------------------------- */
137/*  =     Traitement               */
138/* ------------------------------- */
139
140var
141temporisation = 2000,
142langue = 'fr',
143page = '',
144classe_btn_icone = 'btn_icone',
145body = $('body'),
146menu_accordeon_actif = false,
147hauteur_entete = 0,
148nombre_colonnes_max = 4,
149classe_onglets = 'onglets',
150classe_contenu_onglets = 'contenu_onglets',
151tri = null,
152filtres = null,
153position_filtres_min = 0,
154position_filtres_max = 0,
155basculer_filtres = false,
156hauteur_filtres = 0,
157chargement_filtres = null;
158
159$(window).load(function() {
160
161    function gerer_bouton_achat_fiche() {
162        var bouton_achat_fiche = $('#feature .btn_buy');
163
164        if(bouton_achat_fiche.length != 0) {
165            var texte_bouton_achat = (texte_bouton_achat_fiche[langue] !== undefined) ?
166                texte_bouton_achat_fiche[langue] : texte_bouton_achat_fiche;
167            if(trim(texte_bouton_achat) != '') {
168                if(texte_bouton_achat.length == 1)
169                    bouton_achat_fiche
170                        .addClass(classe_btn_icone)
171                        .attr('title', bouton_achat_fiche.val());
172
173                bouton_achat_fiche.val(texte_bouton_achat);
174            }
175
176            bouton_achat_fiche
177                .removeAttr('tabindex')
178                .click(function() {
179                    gerer_achat();
180                });
181        }
182    }
183
184    function gerer_options() {
185        $('#option_contener select, #option_contener .pdt_select').closest('.option').addClass('select');
186
187        $('#option_contener select > .zerostock').each(function() {
188            var texte_option = (texte_option_indisponible[langue] !== undefined) ?
189                texte_option_indisponible[langue] : texte_option_indisponible;
190            $(this).text($(this).text() + ' (' + texte_option + ')');
191        });
192    }
193
194    function gerer_galerie_zoom() {
195        var zoom = $('#image > .popup_zoom');
196
197        if(zoom.length > 1) {
198            $('<a class="prev" href="#" title="Voir précédent"><i class="fa fa-chevron-left"></i></a><a class="next" href="#" title="Voir suivant"><i class="fa fa-chevron-right"></i></a>')
199                .prependTo('.popup_zoom')
200                .click(function(e) {
201                    var
202                    zoom_actuel     = $(this).parent(),
203                    zoom_precedents = zoom_actuel.prevAll('.popup_zoom'),
204                    zoom_suivants   = zoom_actuel.nextAll('.popup_zoom'),
205                    prochain_zoom   = null;
206
207                    if($(this).hasClass('prev'))
208                        prochain_zoom = (zoom_precedents.length != 0) ? zoom_precedents.first() : zoom_suivants.last(
208);
209                    else
210                        prochain_zoom = (zoom_suivants.length != 0) ? zoom_suivants.first() : zoom_precedents.last();
211
212                    var image_prochain_zoom = prochain_zoom.children('#image_zoom');
213                    image_prochain_zoom.children('img').attr('src', image_prochain_zoom.children('input[id^="pid_"]').val());
214                    zoom_actuel.css('display', 'none');
215                    prochain_zoom.css('display', 'inline');
216
217                    e.preventDefault();
218                });
219
220            $('#image .btn_zoom')
221                .removeAttr('onclick')
222                .click(function(e) {
223                    $(this).parents('.popup_zoom').eq(0).css('display', 'none');
224                    e.preventDefault();
225                });
226        }
227    }
228
229    function gerer_vues_supplementaires() {
230        var selection_vue = $('#image > .pd07 > a');
231
232        if(selection_vue.length != 0) {
233            selection_vue.attr('href', '#').click(function(e) {
234                $(this)
235                    .addClass('actif')
236                    .siblings().removeClass('actif');
237
238                e.preventDefault();
239            }).eq(0).click();
240
241            var numero_vue_actuelle = 0;
242            $('#img1, #image > .zvc').click(function(e) {
243                numero_vue_actuelle = $(this).index('.zvc') + 1;
244
245                if(numero_vue_actuelle < selection_vue.length - 1)
246                    selection_vue.eq(numero_vue_actuelle + 1).click();
247                else
248                    selection_vue.eq(0).click();
249
250                e.preventDefault();
251            });
252
253            selection_vue
254                .wrapAll('<span></span>')
255                .wrapAll('<span class="items"></span>')
256                .closest('.pd07')
257                .prepend('<a class="prev" title="Voir précédent"><i class="fa fa-chevron-up"></i></a>')
258                .append('<a class="next" title="Voir suivant"><i class="fa fa-chevron-down"></i></a>')
259                .scrollable({
260                    speed: 250,
261                    vertical: true
262                })
263                .children('span').eq(0).remove();
264
265            body.addClass('vues_supplementaires');
266        }
267    }
268
269    function gerer_page_fiche() {
270        gerer_vues_supplementaires();
271        gerer_galerie_zoom();
272        gerer_options();
273        gerer_bouton_achat_fiche();
274
275        if(alignement_image == 'g' || alignement_image == 'd')
276            body.addClass('alignement_image_' + alignement_image);
277
278        $('#feature > .reappro, #Annuler, #LinkSend').click(function(e) {
279            e.preventDefault();
280        });
281
282        body.addClass('zoom personnalisation quantite bouton_achat_fiche demande_reassort');
283    }
284
285    function gerer_affichage() {
286        if(activer_affichage_colonnes) {
287            var affichage = $('<select id="displayby"></select>').change(function() {
288                gerer_nombre_colonnes(false, $(this).val());
289            });
290
291            $('<option value="0" selected="selected">Nombre de colonnes</option>').appendTo(affichage);
292            for(i=1; i<=nombre_colonnes_max; i++)
293                $('<option value="' + i + '">' + i + '</option>').appendTo(affichage);
294
295            affichage
296                .wrap('<div class="display-by"></div>').parent()
297                .prependTo('#list_contener');
298        }
299    }
300
301    function gerer_pagination() {
302        $('#pagination a').click(function() {
303            retablir_page_liste();
304        });
305    }
306
307    function gerer_chargement_filtres() {
308        if(typeof spinkit_html[motif_chargement_filtres] !== 'undefined') {
309            chargement_filtres =
310                $(spinkit_html[motif_chargement_filtres])
311                    .wrap('<div id="chargement_filtres"><div></div></div>')
312                    .parent().parent().appendTo(body);
313
314            if($('link[href="' + spinkit_css + '"]').length == 0)
315                $('<link rel="stylesheet" href="' + spinkit_css + '" media="all">').appendTo('head');
316        }
317    }
318
319    function changer_etat_filtres(etat) {
320        if(basculer_filtres) {
321            var bloc_filtres = null;
322            var titre_filtre = null;
323
324            filtres.find('.ff_crit_bloc').each(function() {
325                bloc_filtres = $(this);
326
327                titre_filtre = bloc_filtres.children('.ff_crit_title');
328                if(etat == true)
329                    titre_filtre.removeClass('ff_crit_title_close').addClass('ff_crit_title_open');
330                else
331                    titre_filtre.removeClass('ff_crit_title_open').addClass('ff_crit_title_close');
332
333                titre_filtre.siblings().css('display', (etat) ? '' : 'none');
334            });
335
336            if(etat == true)
337                hauteur_filtres = filtres.height();
338        }
339    }
340
341    function gerer_filtres_fixes(initialiser) {
342        if(!initialiser)
343            filtres.removeClass('scroll scroll_max').css('top', '');
344
345        position_filtres_min = filtres.offset().top;
346
347        if(affichage_filtres == 'v') {
348            position_filtres_max = $('#list_contener').offset().top + $('#list_contener').height();
349            if(hauteur_entete != 0)
350                position_filtres_max -= hauteur_entete;
351        }
352
353        if(initialiser) {
354            if(affichage_filtres == 'h') {
355                hauteur_filtres = filtres.height();
356
357                $(window).scroll(function() {
358                    if($(this).scrollTop() > position_filtres_min) {
359                        filtres.addClass('scroll').css('top', hauteur_entete);
360                        basculer_filtres = true;
361                        changer_etat_filtres(false);
362                        $('#list_contener').css('padding-top', hauteur_filtres);
363                    }
364                    else {
365                        filtres.removeClass('scroll').css('top', '');
366                        changer_etat_filtres(true);
367                        basculer_filtres = false;
368                        $('#list_contener').css('padding-top', '');
369                    }
370                });
371            }
372            else if(affichage_filtres == 'v')
373                $(window).scroll(function() {
374                    var scroll = $(this).scrollTop() + filtres.find('#ff_center').height();
375
376                    if($(this).scrollTop() > position_filtres_min && scroll < position_filtres_max)
377                        filtres
378                            .removeClass('scroll_max')
379                            .addClass('scroll')
380                            .css('top', hauteur_entete);
381                    else {
382                        filtres.removeClass('scroll').css('top', '');
383                        if(scroll > position_filtres_max)
384                            filtres.addClass('scroll_max');
385                    }
386                });
387        }
388        else
389            $(window).scroll();
390    }
391
392    function gerer_filtres(initialiser) {
393        if(initialiser) {
394            filtres = $('#ff_container');
395
396            filtres.find('.ff_reset > a').click(retablir_page_liste);
397            filtres.find('.ff_chk').change(retablir_page_liste);
398            filtres.find('#ff_slider_range_price').on('slidestop', retablir_page_liste);
399            if(activer_filtres_fixes && affichage_filtres == 'v')
400                filtres.find('.ff_crit_title').click(function() {gerer_filtres_fixes(false);});
401
402            var texte_bouton = (texte_bouton_appliquer_filtres[langue] !== undefined) ?
403                texte_bouton_appliquer_filtres[langue] : texte_bouton_appliquer_filtres;
404            if (trim(texte_bouton) != '') {
405                $('<a class="btn tiny-w100" href="#">' + texte_bouton + '</a>')
406                    .click(function (e) {
407                        filtres.removeClass('actif');
408                        e.preventDefault();
409                    })
410                    .wrap('<p id="fermer_filtres" class="clear"></p>').parent()
411                    .appendTo(filtres.find('#ff_center'));
412            }
413
414            if(affichage_filtres == 'p' || affichage_filtres == 'h' || affichage_filtres == 'v')
415                body.addClass('filtres_' + affichage_filtres);
416        }
417
418        var classe_bouton = 'filter-by';
419        var bouton = null;
420
421        if ($('.' + classe_bouton).length != 0)
422            bouton = $('.'.classe_bouton);
423        else {
424            var texte_bouton = (texte_bouton_filtres[langue] !== undefined) ?
425                texte_bouton_filtres[langue] : texte_bouton_filtres;
426            if (trim(texte_bouton) != '') {
427                bouton = $('<a id="filterby" class="btn" href="#' + filtres.attr('id') + '" title="Ouvrir les filtres">' + texte_bouton + '</a>').click(function(e) {
428                    $($(this).attr('href')).addClass('actif');
429                    e.preventDefault();
430                }).wrap($('<div></div>')
431                    .addClass(classe_bouton)).parent();
432            }
433        }
434
435        if(tri != null && tri.length != 0) bouton.insertAfter(tri);
436        else bouton.prependTo('#list_contener');
437
438        filtres.prependTo('#list_contener');
439
440        if(activer_filtres_fixes && (affichage_filtres == 'h' || affichage_filtres == 'v'))
441            gerer_filtres_fixes(initialiser);
442    }
443
444    function gerer_tri(initialiser) {
445        tri = $('#list_contener > .sort-by');
446
447        if(tri.length != 0) {
448            var label_tri = tri.children('label');
449            tri.find('option').eq(0).text(label_tri.text());
450
451            if(filtres != null && filtres.length != 0)
452                tri.children('#sortby').change(retablir_page_liste);
453
454            if(initialiser) body.addClass('tri');
455        }
456    }
457
458    function retablir_page_liste() {
459        filtres.appendTo('#ff_container_temp');
460
461        if(chargement_filtres != null && chargement_filtres.length != 0)
462            chargement_filtres.addClass('actif');
463
464        setTimeout(function() {
465            retour_haut();
466
467            gerer_tri(false);
468            gerer_filtres(false);
469            gerer_affichage();
470            gerer_sliders();
471            gerer_quantites();
472            gerer_boutons_liste();
473            gerer_texte_plus();
474            correctif_colonnes_liste();
475            gerer_pagination();
476
477            if(chargement_filtres != null && chargement_filtres.length != 0)
478                chargement_filtres.removeClass('actif');
479        }, temporisation);
480    }
481
482    function gerer_page_liste() {
483        gerer_tri(true);
484
485        if($('#work.list_filter_facet').length != 0) {
486            /*
487            $.getScript(jqueryui_touch_punch_js).fail(function() {
488                if($('#ff_crit_price').length != 0)
489                    $('#ff_crit_price').addClass('invisible');
490            });
491
492            var jquery_ui_touch_punch = document.createElement('script');
493            jquery_ui_touch_punch.src = jqueryui_touch_punch_js;
494            var jquery_ui = document.querySelector('script[src$="http://js.static-store.com/scripts/jquery/jquery-ui-1.8.24.custom.min.js"]');
495            if(jquery_ui != null)
496                jquery_ui.parentNode.insertBefore(jquery_ui_touch_punch, jquery_ui.nextSibling);
497            */
498
499            gerer_filtres(true);
500            gerer_chargement_filtres();
501        }
502
503        gerer_affichage();
504    }
505
506    function gerer_liens() {
507        var lien = null;
508        var titre_lien = '';
509
510        $('.list_content[class*="url"] > a').each(function() {
511            lien = $(this);
512            titre_lien = lien.children().attr('alt');
513
514            if(trim(titre_lien) != '')
515                $('<span class="primary"><a href="' + lien.attr('href') + '">' + titre_lien + '</a></span>
515').appendTo(lien);
516        });
517    }
518
519    function gerer_chapeaux() {
520        var chapeau = null;
521
522        $('td[id^="tc_"] > .header').each(function() {
523            chapeau = $(this);
524
525            if(trim(chapeau.text()) == '' || !activer_chapeaux)
526                chapeau.remove();
527        });
528    }
529
530    function gerer_titres() {
531        var titre = null;
532
533        $('tr[id^="tl_"]:not(.' + classe_onglets + '):not(.' + classe_contenu_onglets + ')').each(function() {
534            titre = $(this).find('h2').eq(0);
535
536            if(trim(titre.text()) == '' || !activer_titres)
537                titre.remove();
538        });
539    }
540
541    function gerer_onglets() {
542        var
543        listes_elts = null,
544        zone_elts = null,
545        onglets = null,
546        elts = null,
547        titre_elts = null;
548
549        for(var type_elts in activer_onglets) {
550            switch(type_elts) {
551                case 'produits' :
552                    listes_elts = $('td:has(> .list_content[class*="pdt"])');
553                    break;
554                case 'autres' :
555                    listes_elts = $('.list_content:not([class*="pdt"])').parent();
556                    break;
557                case 'pages' :
558                    listes_elts = $('td:has(> .btn_pos)').filter(function() {
559                        titre_elts = $(this).find('a').eq(0).attr('href').split('/');
560                        titre_elts = titre_elts[titre_elts.length - 1];
561                        if($.inArray(titre_elts, pages_isolees) == -1)
562                            return true;
563                    });
564                    break;
565            }
566
567            if(activer_onglets[type_elts] && listes_elts != null && listes_elts.length > 1) {
568                zone_elts = $(listes_elts[0]).parent().addClass(classe_contenu_onglets).addClass(type_elts);
569                onglets = $('<td></td>');
570
571                listes_elts.each(function() {
572                    elts = $(this);
573                    titre_elts = elts.children('h2').eq(0);
574
575                    if(trim(titre_elts.text()) == '')
576                        titre_elts.html('Ajouter titre <i class="fa fa-exclamation-triangle"></i>');
577                    titre_elts
578                        .addClass('medium-inbl large-inbl')
579                        .appendTo(onglets);
580
581                    elts.appendTo(zone_elts);
582                });
583
584                onglets
585                    .appendTo($('<tr></tr>')
586                        .addClass(classe_onglets)
587                        .addClass(type_elts)
588                        .insertBefore(zone_elts)
589                    ).tabs(zone_elts.children(), {
590                        current: 'actif',
591                        effect: 'fade',
592                        tabs: 'h2'
593                    });
594            }
595        }
596    }
597
598    function gerer_page_accueil() {
599        gerer_onglets();
600        gerer_titres();
601        gerer_chapeaux();
602        gerer_liens();
603
604        if(alignement_page == 'g' || alignement_page == 'd' || alignement_page == 'c')
605            body.addClass('alignement_page_' + alignement_page);
606    }
607
608    function gerer_texte_plus() {
609        var texte_plus = $('#texte_plus');
610        var btn_texte_plus = $('#btn_texte_plus');
611
612        if(texte_plus.length != 0 && btn_texte_plus.length != 0) {
613            texte_plus.addClass('invisible');
614            btn_texte_plus
615                .val(texte_bouton_texte_plus_ouvrir)
616                .click(function() {
617                    texte_plus.toggleClass('invisible');
618
619                    if($(this).val() == texte_bouton_texte_plus_ouvrir)
620                        $(this).val(texte_bouton_texte_plus_fermer);
621                    else
622                        $(this).val(texte_bouton_texte_plus_ouvrir);
623                });
624        }
625    }
626
627    function gerer_animations() {
628        if(activer_animations && typeof AOS === 'undefined')
629            $.getScript(aos_js).done(function() {
630                if($('link[href="' + aos_css + '"]').length == 0)
631                    $('<link rel="stylesheet" href="' + aos_css + '" media="all">').appendTo('head');
632
633                $('#list .uneven, #list .pair').attr('data-aos', parametres_animations['effect']);
634
635                AOS.init(parametres_animations);
636            });
637    }
638
639    function gerer_achat() {
640        var panier = $('#comand .basket > a');
641
642        panier.addClass('actif');
643
644        setTimeout(function() {
645            panier.removeClass('actif');
646
647            if(page == 'fiche') {
648                var onglet_panier = $('#content_popup_bsk_onglet');
649
650                if(onglet_panier.find('.list_content').length != 0) {
651                    onglet_panier.children('.content_popup_bsk_onglet').attr('id', 'list');
652                    onglet_panier.closest('.sf_pop').addClass('produits_associes');
653                }
654                onglet_panier.find('.btn_buy').click(function() {
655                    gerer_achat();
656                });
657            }
658        }, temporisation / 2);
659
660        gerer_compteur_panier(false);
661    }
662
663    function gerer_boutons_liste() {
664        var bouton = null;
665
666        var boutons_achat = $('.btn_buy:not(#btn_basket_buy)');
667        if(boutons_achat.length != 0) {
668            var texte_bouton_achat = (texte_bouton_achat_liste[langue] !== undefined) ?
669                texte_bouton_achat_liste[langue] : texte_bouton_achat_liste;
670            if(trim(texte_bouton_achat) != '')
671                boutons_achat.each(function() {
672                    bouton = $(this);
673                    if(texte_bouton_achat.length == 1)
674                        bouton
675                            .addClass(classe_btn_icone)
676                            .attr('title', bouton.val());
677                    bouton.val(texte_bouton_achat)
678                });
679            boutons_achat.click(function() {
680                gerer_achat();
681            });
682        }
683
684        var texte_bouton_detail = (texte_bouton_detail_liste[langue] !== undefined) ?
685            texte_bouton_detail_liste[langue] : texte_bouton_detail_liste;
686        if(trim(texte_bouton_detail) != '')
687            $('.btn_detail').each(function() {
688                bouton = $(this);
689                if(texte_bouton_detail.length == 1)
690                    bouton
691                        .addClass(classe_btn_icone)
692                        .attr('title', bouton.val());
693                bouton.val(texte_bouton_detail);
694            });
695
696        if(!body.hasClass('boutons_liste'))
697            body.addClass('boutons_liste');
698    }
699
700    function gerer_quantites() {
701        $('.bnt_quantity:not([type="hidden"])').each(function() {
702            var quantite = $(this);
703            var quantite_min = quantite.val();
704            console.log(quantite_min);
705
706            quantite
707                .prop('type', 'number')
708                .removeAttr('tabindex')
709                .attr({
710                    min     : quantite_min,
711                    required: 'required'
712                })
713                .change(function() {
714                    if(quantite.val() <= quantite_min) {
715                        quantite.siblings('.btn_less').attr('disabled', 'disabled');
716                        quantite.val(quantite_min);
717                    }
718                    else
719                        quantite.siblings('.btn_less').removeAttr('disabled');
720                })
721                .change()
722                .siblings().click(function() {
723                    quantite.change();
724                });
725        });
726    }
727
728    function correctif_colonnes_liste() {
729        var elt = null;
730        var classe_elt = '';
731
732        $('.list_content').each(function() {
733            elt = $(this);
734
735            if(page == 'recherche' && elt.children('.price_pos').length != 0)
736                elt.addClass('pdt');
737
738            classe_elt = elt.attr('class').replace('list_content', '');
739
740            elt.parent().addClass(classe_elt);
741        });
742    }
743
744    function gerer_nombre_colonnes(initialiser, colonnes) {
745        if(colonnes === undefined)
746            colonnes = 0;
747
748        if(typeof nombre_colonnes[page] !== 'undefined') {
749            var type_page = nombre_colonnes[page];
750
751            if(!initialiser)
752                body.removeClass(function(index, className) {
753                    return (className.match (/(^|\s)colonnes_\S+/g) || []).join(' ');
754                });
755
756            for(var type_liste in type_page) {
757                if(initialiser)
758                    colonnes = type_page[type_liste];
759
760                if(colonnes >= 1 && colonnes <= nombre_colonnes_max) {
761                    body.addClass('colonnes_' + type_liste + '_' + colonnes);
762                    if(initialiser && page != 'accueil') correctif_colonnes_liste();
763                }
764            }
765        }
766    }
767
768    function gerer_sliders() {
769        var
770        slider = null,
771        item_slider = null,
772        ref_slider= null,
773        ratio = 0,
774        slide = null,
775        texte_slide = '',
776        lien_slide = null;
777
778        $('.scrollable').each(function() {
779            slider = $(this);
780
781            if(slider.attr('id') != 'slider_cross_selling') {
782                item_slider = slider.find('img').eq(0);
783                ref_slider = item_slider;
784            }
785            else {
786                item_slider = slider.find('.item').eq(0);
787                ref_slider = slider;
788            }
789            if(item_slider.length != 0) {
790                ratio = item_slider.outerHeight() * 100 / ref_slider.width();
791                slider.css('padding-top', ratio + '%');
792            }
793
794            slider.find('.item_text').children().each(function() {
795                slide = $(this);
796                texte_slide = trim(slide.text());
797
798                if(texte_slide != '') {
799                    if(texte_slide.toLowerCase().indexOf('g|') == 0) slide.addClass('g');
800                    else if(texte_slide.toLowerCase().indexOf('d|') == 0) slide.addClass('d');
801
802                    texte_slide = texte_slide.substring(texte_slide.indexOf('|') + 1);
803                    slide
804                        .html(texte_slide)
805                        .closest('.item').find('img').attr('alt', '');
806                }
807
808                lien_slide = slide.closest('.item').find('a');
809                if(lien_slide.length != 0)
810                    lien_slide.clone().empty().appendTo(lien_slide.parent());
811            });
812
813            if(typeof slider.data('scrollable') === 'undefined') {
814                if(!slider.is('[id]'))
815                    slider.attr('id', Math.round(new Date().getTime() + Math.random() * 100));
816
817                createSlider('#' + slider.attr('id'));
818            }
819
820            if(slider.children('.slidetabs').length != 0)
821                slider.find('.slidetabs > a')
822                    .attr('href', '#')
823                    .eq(0).addClass('current');
824        });
825
826        if(alignement_sliders == 'g' || alignement_sliders == 'd' || alignement_sliders == 'c')
827            body.addClass('alignement_sliders_' + alignement_sliders);
828    }
829
830    function retour_haut() {
831        var position = 0;
832
833        if(page == 'liste') {
834            position = $('#list_contener').offset().top;
835            if(hauteur_entete != 0)
836                position -= hauteur_entete;
837        }
838
839        $('html, body').animate({
840            scrollTop: position
841        }, (!isNaN(vitesse_retour_haut)) ? vitesse_retour_haut : 1000);
842    }
843
844    function gerer_retour_haut() {
845        if(!isNaN(limite_retour_haut) && limite_retour_haut > 0) {
846            var bouton =
847                $('<a id="retour_haut" class="btn" href="#" title="Retour en haut"><i class="fa fa-arrow-up"></i></a>')
848                    .appendTo('#master')
849                    .click(function(e) {
850                        retour_haut();
851                        e.preventDefault();
852                    });
853
854            $(window).scroll(function() {
855                if($(this).scrollTop() > limite_retour_haut)
856                    bouton.addClass('actif');
857                else
858                    bouton.removeClass('actif');
859            }).scroll();
860        }
861    }
862
863    function gerer_liens_sf() {
864        var liens_sf = $('#link_contener');
865
866        if(liens_sf.length != 0)
867            if(activer_liens_sf)
868                body.addClass('liens_sf');
869            else
870                liens_sf.remove();
871    }
872
873    function gerer_arguments(arguments) {
874        var
875        elt = null,
876        texte_elt = '',
877        image_elt = null,
878        longueur_elt = 0,
879        icone_elt = '';
880
881        arguments.find('a').each(function() {
882            elt = $(this);
883            image_elt = elt.children('img');
884            texte_elt = '';
885
886            if(image_elt.length != 0)
887                texte_elt = image_elt.attr('alt');
888            else
889                texte_elt = elt.text();
890
891            texte_elt = trim(texte_elt).split(/\s*\|\s*/);
892            longueur_elt = texte_elt.length;
893
894            if(longueur_elt - 1 >= 0)
895                elt.text(texte_elt[longueur_elt - 1]);
896            if(longueur_elt - 2 >= 0)
897                $('<span>' + texte_elt[longueur_elt - 2] + '</span>').prependTo(elt);
898            if(longueur_elt - 3 >= 0) {
899                icone_elt = texte_elt[longueur_elt - 3].toLowerCase();
900                if(icone_elt.indexOf('fal') != -1 || icone_elt.indexOf('far') != -1 || icone_elt.indexOf('fas') != -1 || icone_elt.indexOf('fab') != -1)
901                    $('<i class="' + icone_elt + '"></i>').prependTo(elt);
902                else
903                    $('<i class="fa' + version_fontawesome + ' ' + icone_elt + '"></i>').prependTo(elt);
904            }
905
906            if(image_elt.length != 0)
907                image_elt.prependTo(elt);
908        });
909
910        body.addClass('arguments');
911    }
912
913    function gerer_extra_entete(extra_entete) {
914        var
915        elt = null,
916        texte_elt = '',
917        icone_elt = '';
918
919        extra_entete.find('a').each(function() {
920            elt = $(this);
921            texte_elt = trim(elt.text()).split(/\s*\|\s*/);
922
923            if(texte_elt.length > 1) {
924                elt.text(' ' + texte_elt[1]);
925                icone_elt = texte_elt[0].toLowerCase();
926                if(icone_elt.indexOf('fal') != -1 || icone_elt.indexOf('far') != -1 || icone_elt.indexOf('fas') != -1 || icone_elt.indexOf('fab') != -1)
927                    $('<i class="' + icone_elt + '"></i>').prependTo(elt);
928                else
929                    $('<i class="fa ' + icone_elt + '"></i>').prependTo(elt);
930            }
931        });
932
933        body.addClass('extra_en-tete');
934
935        if(trim($('#logo p').text()) != '')
936            body.addClass('slogan');
937    }
938
939    function gerer_colonne_droite() {
940        var colonne_droite = $('#right_contener');
941
942        if(colonne_droite.length != 0) {
943            var colonne = null;
944
945            colonne_droite.children().each(function() {
946                colonne = $(this);
947
948                if(colonne.find('li').length != 0) {
949                    colonne.children('h2').remove();
950
951                    switch(colonne.attr('id')) {
952                        case 'sup_1' :
953                            gerer_extra_entete(colonne);
954                            break;
955                        case 'inf_1' :
956                            gerer_arguments(colonne);
957                            break;
958                        case 'inf_2' :
959                            colonne.appendTo('#footer_contener');
960                            break;
961                    }
962                }
963                else colonne.remove();
964            });
965        }
966    }
967
968    function gerer_recherche() {
969        var recherche = $('#search');
970
971        if(recherche.length != 0) {
972            var
973            formulaire = recherche.parent(),
974            titre = recherche.children('h2'),
975            champ = recherche.find('#ctx_search'),
976            message_erreur = 'Veuillez saisir au moins ' + minimum_champ_recherche + ' caractères.';
977
978            formulaire
979                .removeAttr('onsubmit')
980                .submit(function(e) {
981                    if(trim(champ.val()).length < minimum_champ_recherche) {
982                        alert(message_erreur);
983                        e.preventDefault();
984                    }
985                });
986
987            champ
988                .prop('type', 'search')
989                .attr({
990                    autocapitalize: 'none',
991                    autocomplete  : 'off',
992                    autocorrect   : 'off',
993                    maxlength     : 20,
994                    pattern       : '.{' + minimum_champ_recherche + ',}',
995                    placeholder   : trim(titre.text()),
996                    spellcheck    : 'false',
997                    required      : 'required',
998                    title         : message_erreur
999                });
1000
1001            recherche.find('.btn_short')
1002                .prop('type', 'submit')
1003                .removeAttr('onclick');
1004
1005            titre.remove();
1006        }
1007    }
1008
1009    function gerer_colonne_gauche() {
1010        $('#left_contener > div:not(#ff_container)').remove();
1011
1012        gerer_recherche();
1013    }
1014
1015    function gerer_menu_accordeon(menus_accordeon, etat) {
1016        if(etat)
1017            menus_accordeon.bind('click', function(e) {
1018                var menu_actuel = $(this);
1019                menus_accordeon.not('[title="' + menu_actuel.attr('title') + '"]').removeClass('actif');
1020                menu_actuel.toggleClass('actif');
1021                e.preventDefault();
1022            });
1023        else
1024            menus_accordeon
1025                .removeClass('actif')
1026                .unbind('click');
1027
1028        menu_accordeon_actif = !menu_accordeon_actif;
1029    }
1030
1031    function gerer_menu() {
1032        var menu = $('#navig');
1033
1034        $('<a id="ouvrir_menu" class="gestion_menu" href="#master" title="Ouvrir le menu"><i class="fa fa-bars"></i><span>Menu</span></a>').appendTo('#top');
1035        $('<a id="fermer_menu" class="gestion_menu" href="#" title="Fermer le menu"><i class="fa fa-window-close"></i><span>Fermer</span></a>').prependTo(menu);
1036
1037        var menu_large = (menu.find('.smenu_column').length != 0) ? true : false;
1038        if(menu_large)
1039            body.addClass('menu_large');
1040        else
1041            body.addClass('menu_simple');
1042
1043        var menus_accordeon = menu.find('.smenu:has(*)').siblings();
1044        if(menus_accordeon.length != 0) {
1045            menus_accordeon.toggleClass('accordeon');
1046
1047            $(window).resize(function() {
1048                var message = window.getComputedStyle(document.body, ':before').getPropertyValue('content');
1049                var menu_accordeon = (message.indexOf('menu_accordeon') >= 0) ? true : false;
1050
1051                if(menu_accordeon && !menu_accordeon_actif)
1052                    gerer_menu_accordeon(menus_accordeon, true);
1053                else if(!menu_accordeon && menu_accordeon_actif)
1054                    gerer_menu_accordeon(menus_accordeon, false);
1055            }).resize();
1056        }
1057    }
1058
1059    function gerer_compteur_panier(initialiser) {
1060        var compteur_panier = $('#numit_basket');
1061
1062        if(compteur_panier.length != 0)
1063            setTimeout(function() {
1064                if(trim(compteur_panier.text()) == 0)
1065                    compteur_panier.closest('#item_basket').addClass('invisible');
1066                else
1067                    compteur_panier.closest('#item_basket').removeClass('invisible');
1068            }, temporisation);
1069
1070        if(initialiser) body.addClass('panier');
1071    }
1072
1073    function gerer_entete_fixe() {
1074        var initialiser = true;
1075        var hauteur_entete_fixe = 0;
1076
1077        if(isNaN(limite_entete_fixe))
1078            limite_entete_fixe = $('.work_margin').offset().top;
1079
1080        $(window).scroll(function() {
1081            var elt = null;
1082            var classe_elt = '';
1083
1084            for(var type_elt in activer_entete_fixe) {
1085                switch(type_elt) {
1086                    case 'extra_en-tete' :
1087                        elt = $('#sup_1');
1088                        break;
1089                    case 'en-tete' :
1090                        elt = $('#top');
1091                        break;
1092                }
1093
1094                if(activer_entete_fixe[type_elt] && elt != null && elt.length != 0) {
1095                    if(initialiser) {
1096                        if(type_elt != 'extra_en-tete')
1097                            hauteur_entete_fixe += elt.outerHeight(true);
1098                        hauteur_entete += elt.outerHeight();
1099                    }
1100
1101                    classe_elt = type_elt + '_fixe';
1102
1103                    if($(this).scrollTop() > limite_entete_fixe) {
1104                        body.addClass(classe_elt);
1105                        if(!initialiser)
1106                            body.css('padding-top', hauteur_entete_fixe);
1107                    }
1108                    else {
1109                        body.removeClass(classe_elt)
1110                        if(!initialiser)
1111                            body.css('padding-top', '');
1112                    }
1113                }
1114            }
1115        }).scroll();
1116
1117        initialiser = false;
1118
1119        $(window).scroll();
1120    }
1121
1122    function gerer_entete() {
1123        if(activer_entete_gauche)
1124            body.addClass('en-tete_g');
1125
1126        gerer_entete_fixe();
1127        gerer_compteur_panier(true);
1128    }
1129
1130    function gerer_newsletter() {
1131        var id_site = $('div[data-id-site]');
1132        var newsletter = $('#newsletter');
1133
1134        if(id_site.length != 0 && newsletter.length != 0) {
1135            id_site = id_site.data('id-site');
1136
1137            if(!isNaN(id_site)) {
1138                var
1139                formulaire = null,
1140                champ = null,
1141                bouton = null,
1142                texte_champ = (trim(newsletter.children('h2').text()).length != 0) ?
1143                    trim(newsletter.children('h2').text()) : ' ',
1144                texte_bouton = (trim(newsletter.children('p').text()).length != 0) ?
1145                    trim(newsletter.children('p').text()) : 'Ok';
1146
1147                $('form.newsletter').each(function() {
1148                    formulaire = $(this);
1149
1150                    if(!formulaire.is('[action]'))
1151                        formulaire.attr('action', '#');
1152
1153                    formulaire.submit(function(e) {
1154                        if(checkAcceptCGV())
1155                            subscribeNewsletter(id_site);
1156                        e.preventDefault();
1157                    });
1158
1159                    champ = (formulaire.find('input[type="email"], input[type="text"]').length != 0) ?
1160                        formulaire.find('input[type="email"], input[type="text"]').eq(0) :
1161                        $('<input />').appendTo(formulaire);
1162
1163                    if(!champ.is('#mail_newsletter'))
1164                        champ.attr('id', 'mail_newsletter');
1165                    if(!champ.is('[type="email"]'))
1166                        champ.prop('type', 'email');
1167                    if(!champ.is('[autocapitalize]'))
1168                        champ.attr('autocapitalize', 'none');
1169                    if(!champ.is('[autocomplete]'))
1170                        champ.attr('autocomplete', 'email');
1171                    if(!champ.is('[autocorrect]'))
1172                        champ.attr('autocorrect', 'off');
1173                    if(!champ.is('[required]'))
1174                        champ.attr('required', 'required');
1175                    if(!champ.is('[spellcheck]'))
1176                        champ.attr('spellcheck', 'false');
1177
1178                    if(!champ.is('[placeholder]'))
1179                        if(formulaire.is('[data-texte-champ]'))
1180                            champ.attr('placeholder', formulaire.data('texte-champ'));
1181                        else
1182                            champ.attr('placeholder', texte_champ);
1183
1184                    bouton = (formulaire.find('input[type="submit"]').length != 0) ?
1185                        formulaire.find('input[type="submit"]').eq(0) :
1186                        $('<input type="submit"></input>').appendTo(formulaire);
1187
1188                    if(trim(bouton.val()) == '')
1189                        if(formulaire.is('[data-texte-bouton]'))
1190                            bouton.val(formulaire.data('texte-bouton'));
1191                        else
1192                            bouton.val(texte_bouton);
1193
1194                    if(trim(bouton.val()).length == 1) {
1195                        bouton.addClass(classe_btn_icone)
1196                        if(!bouton.is('[title]'))
1197                            bouton.attr('title', 'Ok');
1198                    }
1199
1200                    var id_checkbox_rgpd = 'ckb_accept_cgv';
1201                    checkbox_rgpd = (formulaire.find('#' + id_checkbox_rgpd).length != 0) ?
1202                        formulaire.find('#' + id_checkbox_rgpd).eq(0) :
1203                        $('<p><input id="' + id_checkbox_rgpd + '" type="checkbox" /> <small>Vous affirmez avoir pris connaissance de notre <a href="#" onclick="winopen(\'' + window.location.origin + '/mag/fr/help_06.php\', \'Politique de confidentialité\', 800, 600); return false;">politique de confidentialité</a>. Vous disposez d\'un droit d\'accès, de rectification et d\'opposition.</small></p>').appendTo(formulaire);
1204                });
1205
1206                body.addClass('newsletter_ok');
1207            }
1208
1209            newsletter.remove();
1210        }
1211    }
1212
1213    function determiner_version_fontawesome() {
1214        if(version_fontawesome != 'l' &&
1215           version_fontawesome != 'r' &&
1216           version_fontawesome != 's' &&
1217           version_fontawesome != 'b')
1218            version_fontawesome = '';
1219        else
1220            classe_btn_icone += '_' + version_fontawesome;
1221    }
1222
1223    function determiner_page() {
1224        var contenu_principal = $('#work');
1225
1226        if(contenu_principal.length != 0)
1227            if(contenu_principal.hasClass('work_home'))
1228                page = 'accueil';
1229            else if(contenu_principal.is('[class^="list_"]'))
1230                page = 'liste';
1231            else if(contenu_principal.is('[class^="prod_"]'))
1232                page = 'fiche';
1233            else if(contenu_principal.parent('#formulaire_search').length != 0)
1234                page = 'recherche';
1235    }
1236
1237    function determiner_langue() {
1238        if($('html').attr('lang') !== 'undefined')
1239            langue = $('html').attr('lang');
1240    }
1241
1242    function initialiser() {
1243        determiner_langue();
1244        determiner_page();
1245        determiner_version_fontawesome();
1246
1247        gerer_newsletter();
1248        gerer_entete();
1249        gerer_menu();
1250        gerer_colonne_gauche();
1251        gerer_colonne_droite();
1252        gerer_liens_sf();
1253        gerer_retour_haut();
1254        setTimeout(gerer_sliders, 1000);
1255        gerer_nombre_colonnes(true);
1256        //gerer_quantites();
1257        gerer_boutons_liste();
1258        gerer_animations();
1259        gerer_texte_plus();
1260
1261        if(page == 'accueil')
1262            gerer_page_accueil();
1263
1264        if(page == 'liste')
1265            gerer_page_liste();
1266
1267        if(page == 'fiche')
1268            gerer_page_fiche();
1269
1270        if(page == 'recherche') {
1271
1272        }
1273    }
1274
1275    initialiser();
1276
1277});

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.