<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">slq.plugins.create( "prod", {
		
		_private_: {
			objectType: "_prod",
			wFC: true,
			defaults: {
				
			}
		}
		
	}, [], {
		
		init: function() {
			
			var prod_elem = this,
				prod_elem_jQ = $(prod_elem)[0].jQ,
				prod_elem_id = prod_elem_jQ.attr('id'),
				prod_plugin_object = slq.plugins.prod[ prod_elem_id ],
				prod_img_jQ = $('.prodImgList', prod_elem_jQ);
			if (prod_elem_id != 'prodSheet' &amp;&amp; prod_elem_id != 'giftCard') {
				// [SET] - imgIndex
				if( typeof(prod_plugin_object.params.types) != 'undefined' &amp;&amp; typeof(prod_plugin_object.params.extensions) != 'undefined' ) {	
					prod_plugin_object.imgIndex = prod_plugin_object.params.types[0];
					for (i = 0; i &lt; prod_plugin_object.params.types.length; i++) {
			            img_type = prod_plugin_object.params.types[i];
			            if (img_type == 'front') prod_plugin_object.imgIndex = i;
			        }
				}
				// [DTP]
				if( slq.vars.isDesktop ) {
					// [ACT] - [mouseenter] - onroll img
					prod_elem_jQ.off('mouseenter').on('mouseenter', function () {
						if( typeof(prod_plugin_object.params.types) != 'undefined' &amp;&amp; typeof(prod_plugin_object.params.extensions) != 'undefined' ) {
							// [DISPLAY ON] - Onroll img
							var url = prod_img_jQ.attr("src"),
								currentType = typeof (prod_elem.params.types) != 'undefined' ? prod_elem.params.types[prod_elem.imgIndex] : '',
								currentExtension = typeof (prod_elem.params.extensions) != 'undefined' ? prod_elem.params.extensions[prod_elem.imgIndex] : '',
								imgTypes = typeof (prod_elem.params.types) != 'undefined' ? prod_elem.params.types : '',
								img_url = prod_img_jQ.attr('src'),
								firstType = prod_elem.params.types[prod_elem.imgIndex],
								prod_img_index_list = $('.img_index_list', prod_elem_jQ);
							if ( $.inArray('onroll', imgTypes) != -1 &amp;&amp; currentType == firstType &amp;&amp; typeof (url) != 'undefined') {
								// Get index position in types array
								var onroll_array_index = $.inArray('onroll', prod_elem.params.types);
								// Set imgIndex with onroll index 
								prod_plugin_object.imgIndex = onroll_array_index;
								// Add class
								prod_img_jQ.addClass('onRoll');
								// Change img src
								$('.product-image', prod_elem_jQ).addClass('loading');

								if( typeof(currentExtension) != 'undefined' &amp;&amp; currentExtension != '' ) {
									var newSrc = img_url.replace("-" + currentType + "-", "-" + prod_elem.params.types[prod_elem.imgIndex] + "-"),
										newSrc = newSrc.replace(currentExtension.replace(/\s/g, ''), prod_elem.params.extensions[ prod_elem.imgIndex ].replace(/\s/g, ''));
								}
								else {
									var newSrc = img_url.replace("-" + currentType + "-", "-" + prod_elem.params.types[ prod_elem.imgIndex ] + "-");
								}
								prod_img_jQ.attr("src", newSrc).off('load').on('load', function(){
									$('.product-image', prod_elem_jQ).removeClass('loading');
									$('[data-index]', prod_img_index_list).removeClass('selected');
									$('[data-index="' + prod_plugin_object.imgIndex + '"]', prod_img_index_list).addClass('selected');
								});
							}
						}
					// [ACT] - [mouseleave] - onroll img
					}).off('mouseleave').on('mouseleave', function() {
						if( typeof(prod_plugin_object.params.types) != 'undefined' &amp;&amp; typeof(prod_plugin_object.params.extensions) != 'undefined' ) {
							// [DISPLAY OFF] - Reset img
							var img_url = prod_img_jQ.attr('src'),
								currentType = prod_plugin_object.params.types[ prod_plugin_object.imgIndex ],
								currentExtension = prod_plugin_object.params.extensions[ prod_plugin_object.imgIndex ];
							prod_plugin_object.change_img_src( 'reset', prod_elem , prod_elem_id, currentType, currentExtension, img_url );
						}
					});
				}
				/* [ACT] - [click] - Prev / Next */
				$('.prev, .next', prod_elem_jQ).off('click').on('click', function(e) {
					e.preventDefault();
					var img_url = prod_img_jQ.attr('src'),
						currentType = prod_plugin_object.params.types[ prod_plugin_object.imgIndex ],
						currentExtension = prod_plugin_object.params.extensions[ prod_plugin_object.imgIndex ];
					if( $(this).hasClass('next') ) {
						prod_plugin_object.change_img_src( 'next', prod_elem, prod_elem_id, currentType, currentExtension, img_url );
					}
					else {
						prod_plugin_object.change_img_src( 'prev', prod_elem, prod_elem_id, currentType, currentExtension, img_url );
					}
					
				});
				// [TAB][MOB]
				if( slq.vars.isTablet || slq.vars.isMobile ) {
					/* [ACT] - [swipe] - Prev / Next */
					prod_elem_jQ.swipe( {
						// PREV
						swipeRight: function(event, direction) {
							var img_url = prod_img_jQ.attr('src'),
								currentType = prod_plugin_object.params.types[ prod_plugin_object.imgIndex ],
								currentExtension = prod_plugin_object.params.extensions[ prod_plugin_object.imgIndex ];
							prod_plugin_object.change_img_src( 'prev', prod_elem, prod_elem_id, currentType, currentExtension, img_url );
						
					    },
					    // NEXT
					    swipeLeft: function(event, direction) {
					    	var img_url = prod_img_jQ.attr('src'),
								currentType = prod_plugin_object.params.types[ prod_plugin_object.imgIndex ],
								currentExtension = prod_plugin_object.params.extensions[ prod_plugin_object.imgIndex ];
							prod_plugin_object.change_img_src( 'next', prod_elem, prod_elem_id, currentType, currentExtension, img_url );
					    }
					});
				}
			}
		},
		/* Manage prod img gallery (mouseover, next, prev) */
		change_img_src: function( way, prod_elem, prodID, currentType, currentExtension, img_url ) {
			var prod_elem_jQ = $(prod_elem)[0].jQ,
				prod_elem_id = prod_elem_jQ.attr('id'),
				prod_plugin_object = slq.plugins.prod[ prod_elem_id ],
				prod_img_index_list = $('.img_index_list', prod_elem_jQ);
			// Next
			if( way == 'next' ) {
				if( prod_plugin_object.imgIndex == prod_plugin_object.params.types.length-1 ) {
					prod_plugin_object.imgIndex = 0;
				} 
				else {
					if( $('.prodImgList', prod_elem_jQ).hasClass('onRoll') ) {
						// Set currentType to 'onroll'
						currentType = 'onroll';
						// Get index position in array's types
						var onroll_array_index = $.inArray('onroll', prod_elem.params.types);
						// Set imgIndex with onroll index 
						prod_plugin_object.imgIndex = onroll_array_index;
						// Remove class
						$('.prodImgList', prod_elem_jQ).removeClass('onRoll');
					}
					prod_plugin_object.imgIndex = prod_plugin_object.imgIndex += 1;
				}
			}
			// Prev
			else if( way == 'prev' ) {
				if( prod_plugin_object.imgIndex == 0 ) {
					prod_plugin_object.imgIndex = prod_plugin_object.params.types.length-1;
				}
				else {
					if( $('.prodImgList', prod_elem_jQ).hasClass('onRoll') ) {
						// Set currentType to 'onroll'
						currentType = 'onroll';
						// Get index position in array's types
						var onroll_array_index = $.inArray('onroll', prod_elem.params.types);
						// Set imgIndex with onroll index 
						prod_plugin_object.imgIndex = onroll_array_index;
						// Remove class
						$('.prodImgList', prod_elem_jQ).removeClass('onRoll');
					}
					prod_plugin_object.imgIndex = prod_plugin_object.imgIndex -= 1;
				}
			}
			else if( way == 'reset' ) {
				prod_plugin_object.imgIndex = 0;
				$('.prodImgList', prod_elem_jQ).removeClass('onRoll');
				$('.product-image', prod_elem_jQ).removeClass('loading');
			}

			if( typeof(currentExtension) != 'undefined' &amp;&amp; currentExtension != '' ) {
				var newSrc = img_url.replace("-" + currentType + "-", "-" + prod_plugin_object.params.types[ prod_plugin_object.imgIndex ] + "-"),
					newSrc = newSrc.replace(currentExtension.replace(/\s/g, ''), prod_plugin_object.params.extensions[ prod_plugin_object.imgIndex ].replace(/\s/g, ''));
			}
			else {
				var newSrc = img_url.replace("-" + currentType + "-", "-" + prod_plugin_object.params.types[ prod_plugin_object.imgIndex ] + "-");
			}

			if( way != 'reset' ) {
				$('.product-image', prod_elem_jQ).addClass('loading');
			}
			$(".prodImgList", prod_elem_jQ).attr("src", newSrc).off('load').on('load', function(){
				if( way != 'reset' ) {
					$('.product-image', prod_elem_jQ).removeClass('loading');
				}
				$('[data-index]', prod_img_index_list).removeClass('selected');
				$('[data-index="' + prod_plugin_object.imgIndex + '"]', prod_img_index_list).addClass('selected');
			});
		},
		/* Tous les attributs sauf le dernier */
		setAttr: function (data, btn) {
			
		    $(".btnAdd").removeClass("hide");
		    $(".btnWL").removeClass("vhidden");

		    if (btn.parent().hasClass('colors_list')) {                
		        $('.colors_list &gt; li').removeClass('selected');
		        btn.addClass('selected');
				
				var qbuy_extend = "";
				if( $("#lightbox:visible").length &gt; 0 ) var qbuy_extend = "&amp;qbuy=true";
				slq.ajax.get(slq.vars.pagesURL + "fiche/photos.cfm?imgColor&amp;cID=" + data.colorID + "&amp;pID=" + data.prodID + qbuy_extend );
		    }

		    var parent = btn.parent().attr('id');
            var nextElmt = btn.parents('.attributs').next()

            $(".dropdown-menu", nextElmt).find('li').removeClass("selected").addClass("hidden");
            
		    var optIds = btn.attr('data-attrFils').split(',');
		    var detId = btn.attr('data-attdetid');
			
		    for (i = 0; i &lt; optIds.length; i++) {
		        if (nextElmt.hasClass('attr') || (typeof detId == "undefined" || detId == ""))
		            $('li[data-attdetid="' + optIds[i] + '"]', nextElmt).removeClass('hidden')
		        else $('li[data-attdetid="' + optIds[i] + '"][data-cid="' + detId + '"]', nextElmt).removeClass('hidden')
		    }
			
		    if (nextElmt.hasClass('attr')) nextElmt.find("li").not('.hidden').first().trigger("click");
		    if ($(".attribs .lastAttr li").not('.hidden').length &gt;= 1) $(".attribs .lastAttr li").not('.hidden').first().trigger("click");

		},
		/* Dernier attribut */
		setLastAttr: function (data, btn) {
		    var btnAdd = $(".inf .btnAdd"),
				btnWL = $(".btnWL");
		    /* MAJ visuel WL */
		    if( typeof(btn) != 'undefined' ) {
			    if (btn.hasClass('swiper-slide-duplicate')) { /* Si je clique sur un clone du slider */
			        var id = btn.attr('id'),
	                    isWl = $('#' + id).not('.swiper-slide-duplicate').attr('data-inWL')
			        if (typeof (isWl) != 'undefined') { /* je vérifie la valeur du slide d'origine et si la couleur est dans les favoris je le rajoute sur le slide dupliqué */
			            btn.attr("data-inwl", isWl)
			            if (isWl) $(".prod.prod_" + data.prodID + " .btnWL").removeClass('far').addClass("added_WL fa");
			        }
			    }
			    if( typeof(btn.attr("data-inwl")) != "undefined" &amp;&amp; btn.attr("data-inwl") == "true" ) {
			        $(".prod.prod_" + data.prodID + " .btnWL").removeClass('far').addClass("added_WL fa");
			    } else {  /* Si je clique sur un slide d'origine qui n'est pas dans les favoris je vérifies si le slide dupliqué a été ajouté au favoris */
			        var id = btn.attr('id'),
	                    	isWl = $('#' + id + '.swiper-slide-duplicate').attr('data-inWL');
			        if (typeof (isWl) != 'undefined' &amp;&amp; isWl) {
			            btn.attr("data-inwl", isWl);
			            $(".prod.prod_" + data.prodID + " .btnWL").removeClass('far').addClass("added_WL fa");
			        }
			        else $(".prod.prod_" + data.prodID + " .btnWL").addClass('far').removeClass("added_WL fa");
			    }
			}
			
		    /* Hors quickbuy */
		    if ($("#lightbox.quickBuy:visible").length == 0) {
		        $(".btnWL").removeClass("off").tooltip("destroy").removeClass("error-tooltip");
		    }
		    /* MAJ reference Fiche technique */
		    $(".ref").html(data.reference); 
		    /* MAJ des descriptions */
		    $(".desc1").html( $("#desc1-" + data.optionID).html() );
		    $("[id^=desc2-]").addClass('hide');
		    $("#desc2-" + data.optionID).removeClass('hide');
		    $(".desc2_short h3").html( $("#desc2_short-" + data.optionID).html() );
		    $("[id^=desc3-]").addClass('hide');
		    $("#desc3-" + data.optionID).removeClass('hide');
		    $("[id^=desc4-]").addClass('hide');
		    $("#desc4-" + data.optionID).removeClass('hide');
			
		    /* MAJ Informations additionnelles */
			/* No stock reminder on US/JP */ 
			var no_stock_reminder_countries = ['US','JP'];
			if( no_stock_reminder_countries.includes(slq.vars.payssite) ) {
				if( data.dispo_state &lt;= 0 || data.stock &lt;= 0 ) {
					$('.inf .dispo').removeClass().addClass('dispo dispo_' + data.dispo_state);
					$('.inf .dispo .info').html(data.dispo_text);
				}
				else {
					$('.inf .dispo').removeClass().addClass('dispo');
					$('.inf .dispo .info').html('');
				}
			}
			else if( typeof(data.dispo_state) != 'undefined' ){
				$('.inf .dispo').removeClass().addClass('dispo dispo_' + data.dispo_state);
				$('.inf .dispo .info').html(data.dispo_text);
			}

		    $(".additional_infos .liv .info").html(data.liv_text);
		    $(".additional_infos .delais .info").html(data.delais_text);
		    if( parseFloat(data.cashback) &gt; 0 ) {
		    	$(".additional_infos .cashback .info").html( data.cashback_txt.replace("{currency}", slq.vars.currency) );
		    	$(".additional_infos .cashback").removeClass("hide");
		    } else $(".additional_infos .cashback").addClass("hide")
			
		    $('.inf .btnAdd').removeClass("off").tooltip("destroy").removeClass("error-tooltip");
		    
			/* Display bouton Alerte stock + text "Out of stock" */
		    if (eval(data.isAlert) == 1 || eval(data.is_available_soon) == 1) {
		        btnAdd.addClass("hide");
		        if( eval(data.isAlert) == 1 ) {
		        	$(".inf .stock_reminder, .inf .indispo").removeClass("hide");
		        	$('.inf .dispo, .inf .quantity, .inf .engraving').addClass('hide');
		        }
		        if( eval(data.is_available_soon) == 1 ) {
		        	$(".inf .stock_reminder, .inf .available_soon_lbl").removeClass("hide");
		        	$('.inf .indispo, .inf .dispo, .inf .quantity, .inf .engraving').addClass('hide');
		        }
		    } else {
		        btnAdd.removeClass("hide");
		        $(".inf .stock_reminder, .inf .indispo").addClass("hide");
				$('.inf .dispo, .inf .quantity, .inf .engraving').removeClass('hide');
		    }
		    
			/* Gallerie photos */
		    if( typeof(btn) != 'undefined' ) {
				if (btn.parent().hasClass('hasPic') &amp;&amp; data.colorID != $(".lastAttr li.selected").attr("data-attdetid") ) {
					var qbuy_extend = "";
					if( $("#lightbox:visible").length &gt; 0 ) var qbuy_extend = "&amp;qbuy=true";
					slq.ajax.get(slq.vars.pagesURL + "fiche/photos.cfm?imgColor&amp;cID=" + data.colorID + "&amp;pID=" + data.prodID + qbuy_extend );
				}
			    if (btn.parent().hasClass('hasPic')) {
			        $(".hasPic &gt; li").removeClass("selected");
				} else {
			        $(".attribs li").removeClass("selected");
				}
				btn.addClass('selected')
			}
			/* Mise à jour du prix avec les informations de la première taille en stock */
		    if( typeof data.old_price == "undefined" || data.old_price == "" ) data.old_price = 0;
			$(".price", this.jQ )[ data.price == data.old_price || data.old_price == 0 ? "removeClass" : "addClass" ]("promo");
			
			$(".inf .price .best", this.jQ).html(data.price_form);
			$(".inf .price .old", this.jQ).html(data.old_price_form);
			
			if(data.affiche_pourcentage &gt; 0 &amp;&amp; data.gain &gt; 0) {
				$(".inf .price .discount", this.jQ).html('-' + data.gain + '%').removeClass('hide');
			}
			else {
				$(".inf .price .discount", this.jQ).addClass('hide').html('');
			}
			
			/* Mise à jour des quantités */
			var tmp_qty_selected = ($("[name='qty']").val() != "") ? $("[name='qty']").val() : 1;
			// Vente à seuil
			if( data.is_vente_a_seuil == 1 ) {
				var qty_selected = ( tmp_qty_selected &gt; data.stock ) ? "1" : tmp_qty_selected;
			}
			// Vente non à seuil
			else {
				var qty_selected = tmp_qty_selected;
			}
			$("[name='qty']").val(qty_selected);
		    
			updata_eresa_infos();

			if (typeof (nostojs) != 'undefined') {
			    nostojs(api =&gt; {
			        api.defaultSession()
                      .viewProduct('' + data.code_ean + '')
                      .setPlacements([])
                      .load()
                      .then(data =&gt; {
                          console.log(data.recommendations);
                      })
			    });
			}

		},		
		/* Ajout au panier */
		addToCart: function( data, btn ) {
			
			var btn = $(".inf .btnAdd"),
				tmpTitle = btn.attr("title");
				
			/* Si aucune taille n'est sélectionnée on affiche une erreur */
			if ($(".attribs").length &gt; 0 &amp;&amp;
                ($(".attribs .lastAttr li").not('.hidden').length &gt; 0 &amp;&amp; !$(".attribs .lastAttr li").not('.hidden').hasClass("selected"))
				|| ($(".attribs .lastAttr .dropdown-menu li").length &gt; 0 &amp;&amp; !$(".attribs .lastAttr .dropdown-menu li").not('.hidden').hasClass("selected"))) {
				
			    $(".attribs .lastAttr").addClass("error");
				btn.addClass("error-tooltip").tooltip().attr("data-original-title", slq.labels.errorSize).addClass("off").tooltip("show");

			} else {

			    if (jQuery(".attribs").length &gt; 0) {
					
				    if ($('.lastAttr [data-cid="' + $('input[name="currentColorID"]').val() + '"][id^="o-"].selected').length &gt; 0) {
				        $.extend( slq.plugins.prod["prodSheet"].params, eval("(" + $('.lastAttr [data-cid="' + $('input[name="currentColorID"]').val() + '"][id^="o-"].selected').attr("data-params") + ")") );
				    } else if( $('.lastAttr [id^="o-"].selected').length &gt; 0) {
				    	$.extend( slq.plugins.prod["prodSheet"].params, eval("(" + $('.lastAttr [id^="o-"].selected').attr("data-params") + ")") );
				    }
				    var qty = 0;
				    $("[name='qty']").each( function(){
				    	if( $(this).val() &gt; qty ) qty = $(this).val(); 
				    });
					slq.plugins.prod["prodSheet"].params.qty = qty;
					
					if( jQuery("#listGaranties").length &gt; 0 )
						slq.plugins.crt.addOption( jQuery.extend( slq.plugins.prod["prodSheet"].params, { 
								URLVars: { garantie_id: jQuery('input[name="listGaranties"]').val() }
								}));
				    else
					    slq.plugins.crt.addOption(slq.plugins.prod["prodSheet"].params);
						
				} else {
					if( jQuery("#listGaranties").length &gt; 0 )
						slq.plugins.crt.addOption( jQuery.extend( slq.plugins.prod["prodSheet"].params, { 
								URLVars: { garantie_id: jQuery('input[name="listGaranties"]').val() }
								}));
					else {
						slq.plugins.prod["prodSheet"].params.qty = $("[name='qty']").val();
						slq.plugins.crt.addOption( slq.plugins.prod[ "prodSheet" ].params );
					}
						
			    }
			}
			
		},
		
		setKitAttr: function (data, btn) {

		    $(".btnAdd").removeClass("hide");
		    $(".btnWL").removeClass("vhidden");

        	if (btn.parent().hasClass('hasProdPic'))
        	    slq.ajax.get(slq.vars.pagesURL + "fiche/photos.cfm?imgColor&amp;cID=" + data.attDetID + "&amp;produit_id=" + data.prodID + "&amp;kitID=" + data.kitId + "&amp;compoKitId=" + data.compoId + "&amp;" + slq.utils.createUUID(true));

		    jQuery('input[name="currentattDetID"]').val(data.attDetID);

		    var parent = btn.parent().attr('id');
		    var nextElmt = btn.parents('.attributs').next()

		    jQuery(".dropdown-menu", nextElmt).find('li').removeClass("selected");
		    jQuery(".dropdown-menu", nextElmt).find('li').addClass("hidden");

		    var optIds = btn.attr('data-attrFils').split(',');
		    var detId = btn.attr('data-attdetid');

		    for (i = 0; i &lt; optIds.length; i++) {
		        if (nextElmt.hasClass('attr') || (typeof detId == "undefined" || detId == ""))
		            $('li[data-attdetid="' + optIds[i] + '"]', nextElmt).removeClass('hidden')
		        else if (optIds[i] == "" &amp;&amp; typeof detId != "undefined" &amp;&amp; detId != "")
		            $('li[data-cid="' + detId + '"]', nextElmt).removeClass('hidden')
		        else
		            $('li[data-attdetid="' + optIds[i] + '"][data-cid="' + detId + '"]', nextElmt).removeClass('hidden')
		    }
		    if (nextElmt.hasClass('attr')) {
		        if (nextElmt.find("li").not('.hidden').length &gt; nextElmt.find("li.noStock").not('.hidden').length)
		            nextElmt.find("li").not('.hidden').not('.noStock').first().trigger("click");
		        else nextElmt.find("li").not('.hidden').first().trigger("click");
		    }
		    if ($(".lastAttr li", nextElmt).not('.hidden').length &gt;= 1) {
		        if ($(".lastAttr li", nextElmt).not('.hidden').length &gt; $(".lastAttr li.noStock", nextElmt).not('.hidden').length)
		            $(".lastAttr li", nextElmt).not('.hidden').not('.noStock').first().trigger("click");
		        else $(".lastAttr li", nextElmt).not('.hidden').first().trigger("click");
		    }


		},

		setLastKitAttr: function (data, btn) {
		    var btnAdd = $(".inf .btnAddKit"),
               btnResa = $("#eReservation"),
               btnWL = $(".btnWL");
		    var stockDispo = new Array();
		    
		    var prodStockMax = eval(data.stock) / eval(data.qty);
		    $('#kitProd_' + data.prodID + '_' + data.compoId).attr('data-stockMax', prodStockMax)
		    if (prodStockMax &lt; 1 &amp;&amp; eval(data.alert) == 0) $('#kitProd_' + data.prodID + '_' + data.compoId).attr('data-stockMax', 20)

		    if ((eval(data.stock) &lt;= 0 &amp;&amp; eval(data.alert) == 1) || (prodStockMax &lt; 1 &amp;&amp; eval(data.alert) == 1)) {
		        $('#kitProd_' + data.prodID + '_' + data.compoId).attr('data-stock', '0')
		        $('#noStock_' + data.prodID + '_' + data.compoId).removeClass("hide");
		        if ($('#kitProd_' + data.prodID + '_' + data.compoId).find('.kit_prod_check input').length &gt; 0
                    &amp;&amp; $('#kitProd_' + data.prodID + '_' + data.compoId + ' .kit_prod_check input').prop('checked') == true)
		            $('#kitProd_' + data.prodID + '_' + data.compoId + ' .kit_prod_check input').addClass('noStockChecked')
		    }
		    else {
		        $('#kitProd_' + data.prodID + '_' + data.compoId).removeAttr('data-stock')
		        $('#noStock_' + data.prodID + '_' + data.compoId).addClass("hide");
		        if ($('#kitProd_' + data.prodID + '_' + data.compoId).find('.kit_prod_check .noStockChecked').length &gt; 0) $('#kitProd_' + data.prodID + '_' + data.compoId + ' .noStockChecked').removeClass('noStockChecked')
		    }

		    if ($('.kit_prod[data-stock="0"]').length &gt; 0 &amp;&amp; $('.btnReminder.hide').length &gt; 0) {
		        indispo = false;
		        $('.kit_prod[data-stock="0"]').each(function () {
		            var prodLine = $(this)
		            if (!prodLine.hasClass('isOpt') &amp;&amp; !prodLine.hasClass('isAlt')) indispo = true;
		            else if (prodLine.hasClass('isOpt') &amp;&amp; prodLine.find('input.noStockChecked').length &gt; 0 &amp;&amp; prodLine.find('input.noStockChecked').prop('checked') == true) indispo = true;
		            else if (prodLine.hasClass('isAlt') &amp;&amp; prodLine.find('input.noStockChecked').length &gt; 0 &amp;&amp; prodLine.find('input.noStockChecked').prop('checked') == true) indispo = true;
		        })
		        if (indispo) {
		            btnAdd.addClass("hide");
		            $('.actions .btn-group').addClass("hide");
		            $('#noStock').removeClass("hide");
		        } else {
		            btnAdd.removeClass("hide");
		            $('.actions .btn-group').removeClass("hide");
		            $('.actions #alerteStock').remove()
		            $('#noStock').addClass("hide");
		        }
		    } else {
		        btnAdd.removeClass("hide");
		        $('.actions .btn-group').removeClass("hide");
		        $('.actions #alerteStock').remove()
		        $('#noStock').addClass("hide");
		    }

		    /* Gallerie photos */
		    if (btn.parent().hasClass('hasProdPic'))
		        slq.ajax.get(slq.vars.pagesURL + "fiche/photos.cfm?imgColor&amp;cID=" + data.attDetID + "&amp;pID=" + data.prodID + "&amp;kitID=" + data.kitId + "&amp;compoKitId=" + data.compoId + "&amp;" + slq.utils.createUUID(true));

		    $('.kit_prod').each(function () {
		        var prodLine = $(this)
		        if ((!prodLine.hasClass('isOpt') &amp;&amp; !prodLine.hasClass('isAlt'))
		            || (prodLine.hasClass('isOpt') &amp;&amp; prodLine.find('input:checked').length &gt; 0) 
		            || (prodLine.hasClass('isAlt') &amp;&amp; prodLine.find('input:checked').length &gt; 0))
		            stockDispo.push($(this).attr('data-stockMax'))  
		    })

		    var stockMax = Math.min.apply(Math, stockDispo);
		    var qty_selected = ($("[name='qty']").val() != "") ? $("[name='qty']").val() : 1
		    $("#qty").empty();
		    for (qty = 1; qty &lt;= stockMax; qty++) {
		        var selected = (qty_selected == qty) ? "class='selected'" : "";
		        $("#qty").append("&lt;li " + selected + " data-value='" + qty + "'&gt;" + qty + "&lt;/li&gt;");
		    }
		    initSelect();
		    $("#qty .selected").trigger("click");

		    if (typeof (nostojs) != 'undefined') {
		        nostojs(api =&gt; {
		            api.defaultSession()
                      .viewProduct('' + data.code_ean + '')
                      .setPlacements([])
                      .load()
                      .then(data =&gt; {
                          console.log(data.recommendations);
                      })
		        });
		    }

		},
		
		/* Ajout du Kit au panier */
		addKitToCart: function( data, btn ) {
			
			var btn = $(".inf .btnAddKit"),
				tmpTitle = btn.attr("title");
			
			/*Liste des produits obligatoires*/
			var opt_obl = "";
			/*Liste options alternatifs sélectionnées*/
			var opt_alt = "";
			/*Liste options optionnelles sélectionnées*/
			var opt_opt = "";
			
			jQuery('ul[name="kit_obl"] li.selected').not(".hide").each(function(i,el){

				if (opt_obl != '') opt_obl += ','; 
				opt_obl += jQuery(el).attr("data-codeean");
			});

			jQuery('input[name="kit_obl_noAttr"]').each(function (i, el) {

			    if (opt_obl != '') opt_obl += ',';
			    opt_obl += jQuery(el).attr("data-codeean");
			});

			
			jQuery('ul[name="kit_alt"] li.selected').not(".hide").each(function(i,el){
				
				if (jQuery("#kit_alt_"+jQuery(el).attr("data-pID")).prop("checked"))
				{
					if (opt_alt != '') opt_alt += ','; 
					opt_alt += jQuery(el).attr("data-codeean");
				}
			
			});

			jQuery('input[name="kit_alt_noAttr"]').each(function (i, el) {
			    if (jQuery("#kit_alt_" + jQuery(el).attr("data-pID")).prop("checked")) {
			        if (opt_alt != '') opt_alt += ',';
			        opt_alt += jQuery(el).attr("data-codeean");
			    }
			});

			jQuery('input[name="kit_opt_noAttr"]').each(function (i, el) {
			    if (jQuery("#kit_opt_" + jQuery(el).attr("data-pID")).prop("checked")) {
			        if (opt_opt != '') opt_opt += ',';
			        opt_opt += jQuery(el).attr("data-codeean");
			    }
			});
			
			jQuery('ul[name="kit_opt"] li.selected').not(".hide").each(function(i,el){
				
				if (jQuery("#kit_opt_"+jQuery(el).attr("data-pID")).prop("checked"))
				{
					if (opt_opt != '') opt_opt += ','; 
					opt_opt += jQuery(el).attr("data-codeean");
				}
			});
			
			slq.ajax.post( 	slq.vars.pagesURL + "ajax/panier.cfm?formAction=add", 
							null, 
							jQuery("#kit"), 
							{	"produit_id": slq.plugins.prod[ "prodSheet" ].params.prodID,
								"code_ean": slq.plugins.prod[ "prodSheet" ].params.code_ean,
								"quantite_souhaitee":typeof ($("[name='qty']")) != 'undefined' ? $("[name='qty']").val() : 1,
								"optObl" : opt_obl,
								"optAlt" : opt_alt,
								"optOpt" : opt_opt
							});
			

			
		},
		
		/* Ajout à la wishlist */
		addToWishlist: function( data, btn ) {
			
		    /* Si aucune taille n'est sélectionnée on affiche une erreur */
		    if (jQuery(".attribs .lastAttr").length &gt; 0 &amp;&amp; !jQuery(".attribs .lastAttr li").not('.hidden').hasClass("selected")) {
				
			    $(".attribs .lastAttr").addClass("error");
				$(".btnWL").addClass("error-tooltip").tooltip().attr("data-original-title", slq.labels.errorSize).addClass("off").tooltip("show");
				
			} else {
				
				slq.plugins.wl.add( jQuery.extend( slq.plugins.prod[ "prodSheet" ].params, {
					URLVars: {
							nom_produit: jQuery("[name='pNomURL']").val()
						}
				}) );
			
			}
		},
		/* Ajout au stock reminder */
		add_stock_reminder: function( data, btn ) {
			slq.ajax.get( slq.vars.pagesURL + "ajax/alerte_stock.cfm?action=add&amp;code_ean=" + data.code_ean + "&amp;colorID=" + data.colorID + "&amp;pID=" + data.prodID + "&amp;prod_name=" + data.name );
		},
		/* Partager par email */
		sendMail: function( data, btn ) {
			console.log(slq.plugins.prod[ "prodSheet" ].params)
			slq.plugins.wl.sendMail( (function() {
                var inf = [];
				inf.push( slq.plugins.prod[ "prodSheet" ].params );
                return inf;
            }()));
		},
		
		/* ???? */
		updQte: function (data, btn) {
			
			var btnAdd = $(".inf .btnAdd"),
				tmpTitle = btnAdd.attr("title");
			if (slq.plugins.prod["prodSheet"].params.optionID == 0)
			    jQuery.extend(slq.plugins.prod["prodSheet"].params, eval("(" + $('.lastAttr li:first-child').not('.hidden').attr("data-params") + ")"));
			/* Si aucune taille n'est sélectionnée on affiche une erreur */
			if ($(".attribs").length &gt; 0 &amp;&amp; ($(".attribs .dropdown-menu li").not('.hidden').length &gt; 0 &amp;&amp; !$(".attribs .dropdown-menu li").not('.hidden').hasClass("selected"))) {
				btnAdd.addClass("error-tooltip").tooltip().attr("data-original-title", slq.labels.errorSize).addClass("off").tooltip("show");
			} else {
			    if (btn.is("input")) {
					btn.off("keyup").on("keyup", function(e) {
					    if ((e.keyCode &gt;= 48 &amp;&amp; e.keyCode &lt;= 57) || (e.keyCode &gt;= 96 &amp;&amp; e.keyCode &lt;= 105) || (e.keyCode == 8) ) {
					        var qteMax = slq.plugins.ctrl[btn.attr('id')].data.qteMax					        
					        if (btn.val() == 0) btn.val(1)
					        if (btn.val() &gt;= qteMax) {
					            btn.val(qteMax)
					            $('#qtyMaxMessage').show('slow')
					        } else { $('#qtyMaxMessage').hide('slow') }
					        $('.fa-refresh').css('display', 'block')
							setTimeout( function() {
							    slq.ajax.post(slq.vars.pagesURL + "ajax/calcul_unite_stockage.cfm?produit_id=" + slq.plugins.prod["prodSheet"].params.prodID + "&amp;option=" + slq.plugins.prod["prodSheet"].params.optionID + "&amp;quantite_select=" + btn.val() + "&amp;quantite_input=" + btn.val() + "&amp;qteMax=" + qteMax + "&amp;choixCalcul=" + slq.plugins.prod["prodSheet"].params.choixCalcul);
							}, 700);
						} 
					});
			    } else {
			        $('.fa-refresh').css('display', 'block')
			        var qteMax = slq.plugins.ctrl["q"].data.qteMax
			        if (slq.plugins.ctrl[btn.attr('id')].data.qty == qteMax) $('#qtyMaxMessage').show('slow')
			        else $('#qtyMaxMessage').hide('slow')
			        slq.ajax.post(slq.vars.pagesURL + "ajax/calcul_unite_stockage.cfm?produit_id=" + slq.plugins.prod["prodSheet"].params.prodID + "&amp;option=" + slq.plugins.prod["prodSheet"].params.optionID + "&amp;quantite_select=" + slq.plugins.prod["prodSheet"].params.qty + "&amp;quantite_input=" + $("[name='quantiteStockUnite']").val() + "&amp;qteMax=" + slq.plugins.ctrl["q"].data.qteMax + "&amp;choixCalcul=" + slq.plugins.prod["prodSheet"].params.choixCalcul);
				}
					
		    }
		} 
	}
	
);

/* Callback de ajax/attributs.cfm */
slq.page.callback.getOptions = function() {        
    
    // Initialisation des attributs dans le plugin "prod"
    $("#prodSheet .attribs [data-params]").each(function(){
    	slq.plugins.add( $(this) );
    });
    initSelect();
    
    if( $("#attribs_json_vars").length &gt; 0 ) {
	    if ($("#prodSheet .attribs .swiper-container").length &gt; 0) {
		    $("#prodSheet .attribs .swiper-container").each(function (i) {
				initSwiper(this);
		    });
		}
		// MAJ des informations de la fiche dans le plugin "prod" avec les données de l'attribut en cours (au chargement de la page)
	    $.extend( slq.plugins.prod["prodSheet"].params, eval("(" + $('.lastAttr [id^="o-"].selected').attr("data-params") + ")"));
		// MAJ des paramètres des attributs provenant du JSON (pour affichage)
		slq.utils.script.handler( JSON.parse( $("#attribs_json_vars").html() ), "#prodSheet", false );
		
		// Désactivation du click sur les attributs désactivés
		$(".btn-group").find(".dropdown-menu li.disabled").off("click").on("click", function (e) {
			e.preventDefault();
		});
		
	    if ($(".lastAttr li").length == 1) $(".attribs .pic").addClass("noColorSlide");
	    $(".lastAttr .selected").trigger("click");
	    $(".attribs").css({ visibility: "visible", height: "auto" });
    } else {
		slq.plugins.prod['prodSheet'].setLastAttr( slq.plugins.prod["prodSheet"].params );
    }
    /* Ajout à la WL après login */
	if( window.location.href.indexOf("add_wish") != -1 ) {
		if( window.location.href.indexOf("option_id") != -1 ) {
			var url = new URL(window.location.href),
				option_id = url.searchParams.get("option_id");
			$(".lastAttr li").removeClass("selected");
			$("#o-" + option_id).attr("data-inWL","true").trigger("click");
		}
		$(".btnWL").trigger("click");
	}

}

var checkPictoUrl = function (url, callback) {
    var picto = new Image();
    picto.onerror = function () {
        callback();
    };
    picto.src = url;
};

/* Callback gallerie */
function callback_slideGallery(device) {
	if( $("#lightbox:visible").length &gt; 0 ) $("#zoom").attr("title","").on("click", function(e){ e.preventDefault(); });
	else {
		setTimeout( function(){
			if( device == "mob" ) {
				initSwiper("#gal_mob");
			} else {
				if ($(".MagicScroll:visible").length &gt; 0) MagicScroll.refresh();
				MagicZoom.start("zoom");
			}
		}, 50)
	}
}

/* Callback de ajax/kit_attributs.cfm */
slq.page.callback.getKitOptions = function (kitId) {
    var firstInit = true;
    var parent = $('[data-kit_prod_id="' + kitId + '"]');

    setTimeout(function () {

        // Initialisation des attributs dans le plugin "prod"
        $("#kitProd_"+kitId+" .attribs [data-params]").each(function () {
            slq.plugins.add($(this));
        });

        initSelect();

        // MAJ des informations de la fiche dans le plugin "prod" avec les données de l'attribut en cours (au chargement de la page)
        $.extend(slq.plugins.prod["kitProd_"+kitId+""].params, eval("(" + $('.lastAttr [id^="o-"].selected').attr("data-params") + ")"));
        // MAJ des paramètres des attributs provenant du JSON (pour affichage)
        if ($("#attribs_json_vars").length &gt; 0) slq.utils.script.handler(JSON.parse($("#attribs_json_vars").html()), "#kitProd_"+kitId, false);


        if ($(".attribs .attributs", parent).length &gt;= 1) {
            if ($(".attribs .attributs li.selected", parent).length &gt;= 1) $(".attribs .attributs li.selected", parent).trigger("click")
            else $(".attribs .attributs:first li", parent).first().trigger("click");              
        } else {
            if ($(".lastAttr .selected", parent).length &gt;= 1) $(".lastAttr .selected", parent).trigger("click")
            else $(".lastAttr li", parent).first().trigger("click")
        }

        $(".attribs", parent).css({ visibility: "visible", height: "auto" });
        
        
        var noStock = false;
        if ($('[id*="noStock_"].hide').length &lt; $('[id*="noStock_"]').length) {
            $('[id*="noStock_"]').not('.hide').each(function () {
                var elemLine = $(this).parents('.kit_prod');
                if (!elemLine.hasClass('isOpt') &amp;&amp; !elemLine.hasClass('isAlt')) {
                    noStock = true;
                } else if (elemLine.hasClass('isOpt') &amp;&amp; elemLine.find('.kit_prod_check input[name^="kit_opt"]').prop('checked')) {
                    noStock = true;
                    elemLine.find('.kit_prod_check input[name^="kit_opt"]').addClass('noStockChecked')
                } else if (elemLine.hasClass('isAlt') &amp;&amp; elemLine.find('.kit_prod_check input[name^="kit_alt"]').prop('checked')) {
                    noStock = true;
                    elemLine.find('.kit_prod_check input[name^="kit_alt"]').addClass('noStockChecked')
                }

            })
            if (!noStock) {
                $(".inf .btnAddKit").removeClass("hide");
                $('.actions .btn-group').removeClass("hide");
                $('.actions #alerteStock').remove()
                $('#noStock').addClass("hide");
            }
            else {
                $(".inf .btnAddKit").addClass("hide");
                $('.actions .btn-group').addClass("hide");
                $('#noStock').removeClass("hide");
            }

        }

    }, 700);
    
}

/* E-reservation SLQ */
function updata_eresa_infos() {
	
	var current_prod_gencod = slq.plugins.prod["prodSheet"].params.gencod,
		current_prod_code_fab = slq.plugins.prod["prodSheet"].params.code_fabricant,
		current_prod_name= slq.plugins.prod["prodSheet"].params.name,
		current_prod_img = slq.plugins.prod["prodSheet"].params.prod_img,
		current_prod_price = slq.plugins.prod["prodSheet"].params.price,
		current_prod_old_price = ( Number(slq.plugins.prod["prodSheet"].params.old_price) &gt; 0 ) ? slq.plugins.prod["prodSheet"].params.old_price : "",
		current_prod_color = "",//$(".inf .colors .selected").attr("data-libelle"),
		current_prod_size = "",//( $(".inf .sizes .selected:visible").length &gt; 0 ) ? $(".inf .sizes .selected").attr("data-value") : "",
		current_prod_prod_id = slq.plugins.prod["prodSheet"].params.prodID,
		current_prod_color_id = "";//slq.plugins.prod["prodSheet"].params.colorID;
	
	/*
	if( current_prod_color != "" &amp;&amp; current_prod_size != "" ) var current_prod_name = current_prod_name + " (couleur: " + current_prod_color + ", taille: " + current_prod_size + ")";
	else if( current_prod_color != "" &amp;&amp; current_prod_size == "" ) var current_prod_name = current_prod_name + " (couleur: " + current_prod_color + ")";
	else if( current_prod_color == "" &amp;&amp; current_prod_size != "" ) var current_prod_name = current_prod_name + " (taille: " + current_prod_size + ")";
	*/
 	$("[data-eresa_slq-gencod]")
 	.attr("data-eresa_slq-gencod", current_prod_gencod)
 	.attr("data-eresa_slq-code_fab", current_prod_code_fab)
 	.attr("data-eresa_slq-name", current_prod_name)
 	.attr("data-eresa_slq-img", current_prod_img)
 	.attr("data-eresa_slq-price", current_prod_price)
 	.attr("data-eresa_slq-old_price", current_prod_old_price)
 	.attr("data-eresa_slq-size", current_prod_size)
 	.attr("data-eresa_slq-prod_id", current_prod_prod_id)
 	.attr("data-eresa_slq-color_id", current_prod_color_id);
}</pre></body></html>