PageSourceSearch

https://www.kauffer.eu/js/starter_light.js

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

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.