(function(){
var __webpack_exports__={};
;
(function ($, window, document, undefined){
var GermanizedVariationForm=function ($form){
var self=this;
self.params=wc_gzd_add_to_cart_variation_params;
self.$form=$form;
self.$wrapper=$form.closest(self.params.wrapper);
self.$product=$form.closest('.product');
self.variationData=$form.data('product_variations');
self.$singleVariation=$form.find('.single_variation');
self.$singleVariationWrap=$form.find('.single_variation_wrap');
self.$resetVariations=$form.find('.reset_variations');
self.$button=$form.find('.single_add_to_cart_button');
self.$form.addClass('has-gzd-variation-form');
self.$form.off('.wc-gzd-variation-form');
if(self.$wrapper.length <=0){
self.$wrapper=self.$product;
}
self.showOrHideTabs(self);
var $priceElement=self.getPriceElement(self);
self.isBlockLayout=self.$wrapper.find('.wp-block-woocommerce-product-price').length > 0;
self.replacePrice=self.$wrapper.hasClass('bundled_product') ? false:self.params.replace_price;
if($priceElement.length <=0){
self.replacePrice=false;
}
$form.on('click.wc-gzd-variation-form', '.reset_variations', {
GermanizedvariationForm: self
}, self.onReset);
$form.on('reset_data.wc-gzd-variation-form', {
GermanizedvariationForm: self
}, self.onReset);
$form.on('show_variation.wc-gzd-variation-form', {
GermanizedvariationForm: self
}, self.onShowVariation);
if(self.replacePrice){
self.$form.addClass('wc-gzd-replace-price');
}
self.$wrapper.find('' + '.woocommerce-product-attributes-item--food_description, ' + '.woocommerce-product-attributes-item--alcohol_content, ' + '.woocommerce-product-attributes-item--net_filling_quantity, ' + '.woocommerce-product-attributes-item--drained_weight, ' + '.woocommerce-product-attributes-item--food_place_of_origin, ' + '.woocommerce-product-attributes-item--nutri_score, ' + '.woocommerce-product-attributes-item--food_distributor').each(function (){
var $tr=$(this);
if($tr.find('.woocommerce-product-attributes-item__value').is(':empty')||$tr.find('.woocommerce-product-attributes-item__value .wc-gzd-additional-info-placeholder').is(':empty')){
$tr.attr('aria-hidden', 'true').addClass('wc-gzd-additional-info-placeholder');
}});
};
GermanizedVariationForm.prototype.showOrHideTabs=function (self, has_product_safety_information=undefined){
var $defaultWrapper=$('body').hasClass('type-product') ? $('body'):self.$product;
has_product_safety_information=undefined===has_product_safety_information ? $defaultWrapper.hasClass('has-product-safety-information'):has_product_safety_information;
if(has_product_safety_information){
self.$product.find('.product_safety_tab').show().css('display', 'inline-block');
}else{
self.$product.find('.product_safety_tab').hide();
}};
GermanizedVariationForm.prototype.getPriceElement=function (self){
var $wrapper=self.$wrapper;
return $wrapper.find(self.params.price_selector + ':not(.price-unit):visible').not('.variations_form .single_variation .price').first();
};
GermanizedVariationForm.prototype.onReset=function (event){
var form=event.data.GermanizedvariationForm,
$wrapper=form.$wrapper;
$wrapper.find('.variation_gzd_modified').each(function (){
$(this).wc_gzd_reset_content();
});
$wrapper.find('.variation_gzd_modified').remove();
form.showOrHideTabs(form);
event.data.GermanizedvariationForm.$form.trigger('germanized_reset_data');
};
GermanizedVariationForm.prototype.getElementOrBlock=function (self, element, innerElement){
var $wrapper=self.$wrapper;
var blockSearch='.wp-block-woocommerce-gzd-product-' + element + '[data-is-descendent-of-single-product-template]';
if($wrapper.find(blockSearch).length > 0){
return $wrapper.find(blockSearch + ' ' + innerElement);
}else{
return $wrapper.find(innerElement);
}};
GermanizedVariationForm.prototype.onUpdate=function (event){
setTimeout(function (){
if(typeof event.data==='undefined'||!event.data.hasOwnProperty('GermanizedvariationForm')){
return;
}else if(typeof event.data.GermanizedvariationForm==='undefined'){
return;
}
if(event.data.GermanizedvariationForm.$button.is('[disabled]')||event.data.GermanizedvariationForm.$button.hasClass('disabled')){
event.data.GermanizedvariationForm.onReset(event);
}}, 250);
};
GermanizedVariationForm.prototype.onShowVariation=function (event, variation, purchasable){
var form=event.data.GermanizedvariationForm,
$wrapper=form.$wrapper,
hasCustomPrice=variation.hasOwnProperty('price_html')&&variation.price_html!=='',
hasDisplayPrice=variation.hasOwnProperty('display_price')&&variation.display_price!=='';
if(hasCustomPrice&&form.replacePrice){
var $priceElement=form.getPriceElement(form);
form.$singleVariation.find('.price').hide();
$priceElement.wc_gzd_set_content(variation.price_html);
$priceElement.find('.price').contents().unwrap();
}
form.getElementOrBlock(form, 'delivery-time', '.delivery-time-info').wc_gzd_set_content(variation.delivery_time);
form.getElementOrBlock(form, 'defect-description', '.defect-description').wc_gzd_set_content(variation.defect_description);
form.getElementOrBlock(form, 'tax-info', '.tax-info').wc_gzd_set_content(hasDisplayPrice ? variation.tax_info:'');
form.getElementOrBlock(form, 'manufacturer', '.manufacturer').wc_gzd_set_content(variation.manufacturer);
form.getElementOrBlock(form, 'manufacturer-heading', '.wc-gzd-product-manufacturer-heading').wc_gzd_set_content(variation.manufacturer_heading);
form.getElementOrBlock(form, 'product_safety_attachments', '.product-safety-attachments').wc_gzd_set_content(variation.product_safety_attachments);
form.getElementOrBlock(form, 'product-safety-attachments-heading', '.wc-gzd-product-safety-attachments-heading').wc_gzd_set_content(variation.product_safety_attachments_heading);
form.getElementOrBlock(form, 'safety_instructions', '.safety-instructions').wc_gzd_set_content(variation.safety_instructions);
form.getElementOrBlock(form, 'safety-instructions-heading', '.wc-gzd-product-safety-instructions-heading').wc_gzd_set_content(variation.safety_instructions_heading);
form.getElementOrBlock(form, 'power_supply', '.wc-gzd-power-supply').wc_gzd_set_content(variation.power_supply);
form.getElementOrBlock(form, 'deposit', '.deposit-amount').wc_gzd_set_content(hasDisplayPrice ? variation.deposit_amount:'');
form.getElementOrBlock(form, 'deposit-packaging-type', '.deposit-packaging-type').wc_gzd_set_content(hasDisplayPrice ? variation.deposit_packaging_type:'');
form.getElementOrBlock(form, 'food-description', '.wc-gzd-food-description').wc_gzd_set_content(variation.food_description);
form.getElementOrBlock(form, 'nutri-score', '.wc-gzd-nutri-score').wc_gzd_set_content(variation.nutri_score);
form.getElementOrBlock(form, 'food-distributor', '.wc-gzd-food-distributor').wc_gzd_set_content(variation.food_distributor);
form.getElementOrBlock(form, 'food-place-of-origin', '.wc-gzd-food-place-of-origin').wc_gzd_set_content(variation.food_place_of_origin);
form.getElementOrBlock(form, 'net-filling-quantity', '.wc-gzd-net-filling-quantity').wc_gzd_set_content(variation.net_filling_quantity);
form.getElementOrBlock(form, 'drained-weight', '.wc-gzd-drained-weight').wc_gzd_set_content(variation.drained_weight);
form.getElementOrBlock(form, 'alcohol-content', '.wc-gzd-alcohol-content').wc_gzd_set_content('no'===variation.includes_alcohol ? '':variation.alcohol_content);
form.getElementOrBlock(form, 'nutrients', '.wc-gzd-nutrients').wc_gzd_set_content(variation.nutrients);
form.getElementOrBlock(form, 'nutrients-heading', '.wc-gzd-nutrients-heading').wc_gzd_set_content(variation.nutrients_heading);
form.getElementOrBlock(form, 'ingredients', '.wc-gzd-ingredients').wc_gzd_set_content(variation.ingredients);
form.getElementOrBlock(form, 'ingredients-heading', '.wc-gzd-ingredients-heading').wc_gzd_set_content(variation.ingredients_heading);
form.getElementOrBlock(form, 'allergenic', '.wc-gzd-allergenic').wc_gzd_set_content(variation.allergenic);
form.getElementOrBlock(form, 'allergenic-heading', '.wc-gzd-allergenic-heading').wc_gzd_set_content(variation.allergenic_heading);
form.getElementOrBlock(form, 'shipping-costs-info', '.shipping-costs-info').wc_gzd_set_content(hasDisplayPrice ? variation.shipping_costs_info:'');
form.getElementOrBlock(form, 'unit-price', '.price-unit').wc_gzd_set_content(hasDisplayPrice ? variation.unit_price:'');
form.getElementOrBlock(form, 'unit-product', '.product-units').wc_gzd_set_content(hasDisplayPrice ? variation.product_units:'');
form.showOrHideTabs(form, variation.has_product_safety_information);
form.$form.trigger('germanized_variation_data', variation, $wrapper);
};
$.fn.wc_germanized_variation_form=function (){
new GermanizedVariationForm(this);
return this;
};
$.fn.wc_gzd_set_content=function (content){
var $this=this.not('.wc-gzd-additional-info-loop');
content=undefined===content ? '':content;
if(undefined===$this.attr('data-o_content')){
$this.attr('data-o_content', $this.html());
}
$this.html(content);
$this.addClass('variation_modified variation_gzd_modified').attr('aria-hidden', 'false').removeClass('wc-gzd-additional-info-placeholder').show();
if($this.is(':empty')){
$this.attr('aria-hidden', 'true').hide();
if($this.parents('.wp-block-woocommerce-gzd-product-price-label').length > 0){
$this.parents('.wp-block-woocommerce-gzd-product-price-label').attr('aria-hidden', 'true').addClass('wp-block-woocommerce-gzd-product-is-empty');
}
if($this.parents('.woocommerce-product-attributes-item').length > 0){
$this.parents('.woocommerce-product-attributes-item').attr('aria-hidden', 'true').hide();
}}else{
if($this.parents('.wp-block-woocommerce-gzd-product-price-label').length > 0){
$this.parents('.wp-block-woocommerce-gzd-product-price-label').attr('aria-hidden', 'false').removeClass('wp-block-woocommerce-gzd-product-is-empty');
}
if($this.parents('.woocommerce-product-attributes-item').length > 0){
$this.parents('.woocommerce-product-attributes-item').attr('aria-hidden', 'false').show();
}}
};
$.fn.wc_gzd_reset_content=function (){
var $this=this.not('.wc-gzd-additional-info-loop');
if(undefined!==$this.attr('data-o_content')){
$this.html($this.attr('data-o_content'));
$this.removeClass('variation_modified variation_gzd_modified').show();
}
if($this.is(':empty')){
$this.addClass('wc-gzd-additional-info-placeholder').attr('aria-hidden', 'true').hide();
if($this.parents('.wp-block-woocommerce-gzd-product-price-label').length > 0){
$this.parents('.wp-block-woocommerce-gzd-product-price-label').addClass('wp-block-woocommerce-gzd-product-is-empty').attr('aria-hidden', 'true');
}
if($this.parents('.woocommerce-product-attributes-item').length > 0){
$this.parents('.woocommerce-product-attributes-item').hide();
}}else{
if($this.parents('.wp-block-woocommerce-gzd-product-price-label').length > 0){
$this.parents('.wp-block-woocommerce-gzd-product-price-label').removeClass('wp-block-woocommerce-gzd-product-is-empty').attr('aria-hidden', 'false');
}
if($this.parents('.woocommerce-product-attributes-item').length > 0){
$this.parents('.woocommerce-product-attributes-item').show();
}}
};
$(function (){
if(typeof wc_gzd_add_to_cart_variation_params!=='undefined'){
$('.variations_form').each(function (){
$(this).wc_germanized_variation_form();
});
$(document.body).on('wc_variation_form', function (e, variationForm){
var $form;
if(typeof variationForm==='undefined'){
$form=$(e.target);
}else{
$form=$(variationForm.$form);
}
if($form.length > 0){
if(!$form.hasClass('has-gzd-variation-form')){
$form.wc_germanized_variation_form();
$form.trigger('check_variations');
}}
});
}});
})(jQuery, window, document);
((window.germanized=window.germanized||{})["static"]=window.germanized["static"]||{})["add-to-cart-variation"]=__webpack_exports__;
})()
;
!function(t,e){"object"==typeof module&&module.exports?module.exports=e():t.EvEmitter=e()}("undefined"!=typeof window?window:this,(function(){function t(){}let e=t.prototype;return e.on=function(t,e){if(!t||!e)return this;let i=this._events=this._events||{},s=i[t]=i[t]||[];return s.includes(e)||s.push(e),this},e.once=function(t,e){if(!t||!e)return this;this.on(t,e);let i=this._onceEvents=this._onceEvents||{};return(i[t]=i[t]||{})[e]=!0,this},e.off=function(t,e){let i=this._events&&this._events[t];if(!i||!i.length)return this;let s=i.indexOf(e);return-1!=s&&i.splice(s,1),this},e.emitEvent=function(t,e){let i=this._events&&this._events[t];if(!i||!i.length)return this;i=i.slice(0),e=e||[];let s=this._onceEvents&&this._onceEvents[t];for(let n of i){s&&s[n]&&(this.off(t,n),delete s[n]),n.apply(this,e)}return this},e.allOff=function(){return delete this._events,delete this._onceEvents,this},t})),
function(t,e){"object"==typeof module&&module.exports?module.exports=e(t,require("ev-emitter")):t.imagesLoaded=e(t,t.EvEmitter)}("undefined"!=typeof window?window:this,(function(t,e){let i=t.jQuery,s=t.console;function n(t,e,o){if(!(this instanceof n))return new n(t,e,o);let r=t;var h;("string"==typeof t&&(r=document.querySelectorAll(t)),r)?(this.elements=(h=r,Array.isArray(h)?h:"object"==typeof h&&"number"==typeof h.length?[...h]:[h]),this.options={},"function"==typeof e?o=e:Object.assign(this.options,e),o&&this.on("always",o),this.getImages(),i&&(this.jqDeferred=new i.Deferred),setTimeout(this.check.bind(this))):s.error(`Bad element for imagesLoaded ${r||t}`)}n.prototype=Object.create(e.prototype),n.prototype.getImages=function(){this.images=[],this.elements.forEach(this.addElementImages,this)};const o=[1,9,11];n.prototype.addElementImages=function(t){"IMG"===t.nodeName&&this.addImage(t),!0===this.options.background&&this.addElementBackgroundImages(t);let{nodeType:e}=t;if(!e||!o.includes(e))return;let i=t.querySelectorAll("img");for(let t of i)this.addImage(t);if("string"==typeof this.options.background){let e=t.querySelectorAll(this.options.background);for(let t of e)this.addElementBackgroundImages(t)}};const r=/url\((['"])?(.*?)\1\)/gi;function h(t){this.img=t}function d(t,e){this.url=t,this.element=e,this.img=new Image}return n.prototype.addElementBackgroundImages=function(t){let e=getComputedStyle(t);if(!e)return;let i=r.exec(e.backgroundImage);for(;null!==i;){let s=i&&i[2];s&&this.addBackground(s,t),i=r.exec(e.backgroundImage)}},n.prototype.addImage=function(t){let e=new h(t);this.images.push(e)},n.prototype.addBackground=function(t,e){let i=new d(t,e);this.images.push(i)},n.prototype.check=function(){if(this.progressedCount=0,this.hasAnyBroken=!1,!this.images.length)return void this.complete();let t=(t,e,i)=>{setTimeout((()=>{this.progress(t,e,i)}))};this.images.forEach((function(e){e.once("progress",t),e.check()}))},n.prototype.progress=function(t,e,i){this.progressedCount++,this.hasAnyBroken=this.hasAnyBroken||!t.isLoaded,this.emitEvent("progress",[this,t,e]),this.jqDeferred&&this.jqDeferred.notify&&this.jqDeferred.notify(this,t),this.progressedCount===this.images.length&&this.complete(),this.options.debug&&s&&s.log(`progress: ${i}`,t,e)},n.prototype.complete=function(){let t=this.hasAnyBroken?"fail":"done";if(this.isComplete=!0,this.emitEvent(t,[this]),this.emitEvent("always",[this]),this.jqDeferred){let t=this.hasAnyBroken?"reject":"resolve";this.jqDeferred[t](this)}},h.prototype=Object.create(e.prototype),h.prototype.check=function(){this.getIsImageComplete()?this.confirm(0!==this.img.naturalWidth,"naturalWidth"):(this.proxyImage=new Image,this.img.crossOrigin&&(this.proxyImage.crossOrigin=this.img.crossOrigin),this.proxyImage.addEventListener("load",this),this.proxyImage.addEventListener("error",this),this.img.addEventListener("load",this),this.img.addEventListener("error",this),this.proxyImage.src=this.img.currentSrc||this.img.src)},h.prototype.getIsImageComplete=function(){return this.img.complete&&this.img.naturalWidth},h.prototype.confirm=function(t,e){this.isLoaded=t;let{parentNode:i}=this.img,s="PICTURE"===i.nodeName?i:this.img;this.emitEvent("progress",[this,s,e])},h.prototype.handleEvent=function(t){let e="on"+t.type;this[e]&&this[e](t)},h.prototype.onload=function(){this.confirm(!0,"onload"),this.unbindEvents()},h.prototype.onerror=function(){this.confirm(!1,"onerror"),this.unbindEvents()},h.prototype.unbindEvents=function(){this.proxyImage.removeEventListener("load",this),this.proxyImage.removeEventListener("error",this),this.img.removeEventListener("load",this),this.img.removeEventListener("error",this)},d.prototype=Object.create(h.prototype),d.prototype.check=function(){this.img.addEventListener("load",this),this.img.addEventListener("error",this),this.img.src=this.url,this.getIsImageComplete()&&(this.confirm(0!==this.img.naturalWidth,"naturalWidth"),this.unbindEvents())},d.prototype.unbindEvents=function(){this.img.removeEventListener("load",this),this.img.removeEventListener("error",this)},d.prototype.confirm=function(t,e){this.isLoaded=t,this.emitEvent("progress",[this,this.element,e])},n.makeJQueryPlugin=function(e){(e=e||t.jQuery)&&(i=e,i.fn.imagesLoaded=function(t,e){return new n(this,t,e).jqDeferred.promise(i(this))})},n.makeJQueryPlugin(),n}));
(function($){
"use strict";
var Utils={
get_single_variation_from_attribute: function(variation, attribute, attribute_value){
if(variation){
for (var attr_name in variation){
if(attr_name==='attributes'&&variation.hasOwnProperty(attr_name)){
var variation_attr=variation[attr_name];
var attribute_name='attribute_' + attribute;
if(variation_attr.hasOwnProperty(attribute_name)&&variation_attr[attribute_name]===attribute_value){
return variation;
}}
}}
return false;
},
get_url_parameter: function(key){
var url=window.location.search.substring(1);
var url_variables=url.split('&');
var param_key;
var i;
for (i=0; i < url_variables.length; i++){
param_key=url_variables[i].split('=');
if(param_key[0]===key){
return param_key[1]===undefined ? true:decodeURIComponent(param_key[1]);
}}
return false;
}}
var Single_Product={
has_variation_changed: false,
doing_clear: false,
first_load: true,
variable_add_to_cart: function(){
if(window.wc_add_to_cart_params!=undefined&&window.UncodeWCParameters!=undefined&&UncodeWCParameters.variations_ajax_add_to_cart==='1'){
$('form.variations_form').on('submit', function(e){
var form=$(this);
var product_wrapper=form.closest('.tmb-woocommerce')
var is_loop=false;
if(product_wrapper.length===0){
product_wrapper=form.closest('.product-type-variable');
if(product_wrapper.length===0){
return;
}}else{
is_loop=true;
}
e.preventDefault();
var form_button=form.find('.single_add_to_cart_button');
var form_data=form.serialize();
form_data +='&action=uncode_ajax_add_to_cart';
if(form_button.val()){
form_data +='&add-to-cart=' + form_button.val();
}
form_button.removeClass('added', 'added-error');
form_button.addClass('loading');
if(is_loop){
var loop_button=product_wrapper.find('.add_to_cart_button').not(':button');
loop_button.removeClass('added', 'added-error');
loop_button.addClass('loading');
}
$.ajax({
url:wc_add_to_cart_params.ajax_url,
data:form_data,
method:'POST',
success:function(response){
if(!response){
return;
}
if(UncodeWCParameters.redirect_after_add==='1'){
window.location=UncodeWCParameters.cart_url;
}else{
form_button.removeClass('loading');
if(is_loop){
loop_button.removeClass('loading');
}
if(fragments){
$.each(fragments, function(key){
$(key).addClass('updating');
});
}
if(fragments){
$.each(fragments, function(key, value){
$(key).replaceWith(value);
});
}
var fragments=response.fragments;
var cart_hash=response.cart_hash;
var notices_wrapper=$('.woocommerce-notices-wrapper');
if(notices_wrapper.length > 0){
notices_wrapper.empty();
}
if(response.notices.indexOf('error') > 0){
if(notices_wrapper.length > 0){
notices_wrapper.append(response.notices);
}
form_button.addClass('added-error');
if(is_loop){
loop_button.addClass('added-error');
}}else{
form_button.addClass('added');
if(is_loop){
loop_button.addClass('added');
}
$(document.body).trigger('added_to_cart', [
fragments,
cart_hash,
form_button
]);
}}
},
error: function(){
if(SiteParameters.enable_debug==true){
console.log('There was an error when adding the product to the cart');
}}
});
});
}},
update_variation_gallery: function(event, variation, form, gallery_params, clear){
if(clear&&!Single_Product.has_variation_changed){
var form=$(event.target);
$('.product-gallery-placeholder').removeClass('product-gallery-placeholder');
$(window).trigger('uncode_wc_variation_gallery_loaded');
form.removeClass('is-updating-gallery');
return;
}
if(clear&&Single_Product.doing_clear){
form.removeClass('is-updating-gallery');
return;
}
if(clear){
Single_Product.doing_clear=true;
}
if(!clear){
Single_Product.doing_clear=false;
}
var quick_view_container=form.closest('.quick-view-container');
var old_gallery=quick_view_container.length > 0 ? quick_view_container.find('.uncode-single-product-gallery'):$('.uncode-single-product-gallery');
old_gallery.addClass('product-gallery-placeholder');
var product_id=form.attr('data-product_id');
var parent_gallery=old_gallery.parent();
$.ajax({
url: UncodeWCParameters.ajax_url,
data: {
action: 'uncode_get_variation_gallery',
variation: typeof variation!=='undefined' ? variation:0,
product_id: product_id,
clear: clear,
gallery_params: gallery_params,
is_quick_view: quick_view_container.length > 0 ? true:false,
},
type: 'post',
success: function(response){
if(!response){
form.removeClass('is-updating-gallery');
return;
}
if(response.data&&response.data.html){
var new_gallery=$(response.data.html);
if(new_gallery.length > 0){
new_gallery.addClass('hidden');
parent_gallery.append(new_gallery);
var appended_gallery=parent_gallery.find('.uncode-single-product-gallery');
appended_gallery.imagesLoaded().done(function(instance){
var main_gallery=appended_gallery.find('.woocommerce-product-gallery');
appended_gallery.removeClass('hidden');
$('.product-gallery-placeholder').removeClass('product-gallery-placeholder');
$(window).trigger('uncode_wc_variation_gallery_loaded');
old_gallery.remove();
if(typeof UNCODE_WC.product_gallery!=='undefined'){
UNCODE_WC.product_gallery(main_gallery);
main_gallery.css('opacity', '1');
}
if(typeof UNCODE.adaptive!=='undefined'){
UNCODE.adaptive();
}
if(typeof UNCODE.lightbox!=='undefined'&&!SiteParameters.lbox_enhanced){
UNCODE.lightbox();
}else if(typeof UNCODE.lightgallery!=='undefined'&&SiteParameters.lbox_enhanced){
UNCODE.lightgallery();
}
form.removeClass('is-updating-gallery');
});
}else{
form.removeClass('is-updating-gallery');
}
Single_Product.has_variation_changed=true;
UNCODE.stickyElements();
}},
error: function(){
form.removeClass('is-updating-gallery');
if(SiteParameters.enable_debug==true){
console.log('There was an error retrieving the variation gallery');
}}
});
},
variation_gallery: function(){
if(!$('body').hasClass('uncode-default-product-gallery')){
$('form.variations_form').each(function(){
var form=$(this);
var product_div=form.closest('div.woocommerce-product-gallery--with-variation-gallery');
if(product_div.length > 0){
var original_values=form.find('select').serialize();
var gallery_params=product_div.find('.woocommerce-product-gallery.images').data('gallery-options');
var default_images=gallery_params.default_images;
var original_images=default_images;
form
.on('found_variation.wc-variation-form', function(event, variation){
if(!form.hasClass('is-updating-gallery')){
form.addClass('is-updating-gallery');
var new_values=form.find('select').serialize();
var new_images=[];
if(variation.image_id){
new_images.push(variation.image_id);
}
if(variation.variation_gallery){
for (var variation_gallery_id in variation.variation_gallery){
new_images.push(variation.variation_gallery[variation_gallery_id]);
}}
var has_new_images=Single_Product.has_new_images(original_images, new_images);
if(new_values!=original_values||Single_Product.first_load){
original_values=new_values;
Single_Product.first_load=false;
if(has_new_images){
Single_Product.update_variation_gallery(event, variation, form, gallery_params, false);
original_images=new_images;
}else{
$('.product-gallery-placeholder').removeClass('product-gallery-placeholder');
$(window).trigger('uncode_wc_variation_gallery_loaded');
form.removeClass('is-updating-gallery');
}}else{
form.removeClass('is-updating-gallery');
}}
})
.on('reset_image', function(event, variation){
Single_Product.update_variation_gallery(event, variation, form, gallery_params, true);
original_images=default_images;
});
}});
}},
has_new_images: function(original_images, new_images){
if(!original_images instanceof Array){
return true;
}
if(!new_images instanceof Array){
return true;
}
if(original_images.length!==new_images.length){
return true;
}
for (var i=0; i < original_images.length; i++){
if(new_images.indexOf(original_images[i]) < 0){
return true;
}}
return false;
}}
var Loop_Variations={
init_forms: function(){
$('form.variations_form').each(function(){
var form=$(this);
var tmb_wrapper=form.closest('.tmb-woocommerce');
if(tmb_wrapper.length===0){
return;
}
var form_button=form.find('.single_add_to_cart_button');
var button_to_connect=tmb_wrapper.find('.add_to_cart_button').not(':button');
button_to_connect.on('click', function(e){
e.preventDefault();
form_button.trigger('click');
});
var product_img=tmb_wrapper.find('img[class*=wp-image], .uncode-picture-image').last();
var picture_el=product_img.closest('picture');
var source_el=picture_el.find('source');
var bg_el=tmb_wrapper.find('div.t-background-cover').last();
var prices=tmb_wrapper.find('span.price');
prices=prices.filter(function(){
if($(this).closest('.t-entry-variations').length > 0){
return false;
}
return true;
});
var original_price=prices.last().clone();
var original_price_value=original_price.children();
var stock=tmb_wrapper.find('.t-entry-stock');
var original_stock=stock.clone();
var original_stock_value=original_stock.children();
var title=tmb_wrapper.find('.t-entry-title');
var original_title=title.clone();
var original_title_value=original_title.html();
var url=tmb_wrapper.find('.t-entry-visual-cont > a').attr('href');
form
.on('hide_variation', function(){
button_to_connect.find('.add_to_cart_text').html(UncodeWCParameters.i18n_variation_add_to_cart_text);
Loop_Variations.reset_variation_price(prices, original_price_value);
Loop_Variations.reset_variation_stock(stock, original_stock_value);
Loop_Variations.reset_variation_title(title, original_title_value);
Loop_Variations.reset_product_urls(tmb_wrapper, url);
})
.on('show_variation', function(event, variation, purchasable){
if(purchasable){
button_to_connect.find('.add_to_cart_text').html(UncodeWCParameters.i18n_add_to_cart_text);
}else{
button_to_connect.find('.add_to_cart_text').html(UncodeWCParameters.i18n_variation_add_to_cart_text);
}
Loop_Variations.update_variation_price(prices, original_price_value, variation);
Loop_Variations.update_variation_stock(stock, original_stock_value, variation);
Loop_Variations.update_variation_title(title, original_title_value, variation);
Loop_Variations.update_product_urls(tmb_wrapper, variation);
})
.on('found_variation', function (event, variation){
Loop_Variations.update_variation_image(product_img, bg_el, picture_el, source_el, variation);
})
.on('reset_image', function(event, variation){
Loop_Variations.update_variation_image(product_img, bg_el, picture_el, source_el, false);
});
});
},
init_single_attributes: function(){
$('.single-attribute-selector').each(function(){
var selector=$(this);
var tmb_wrapper=selector.closest('.tmb-woocommerce');
var selector_type='';
if(tmb_wrapper.length===0){
return;
}
var select_attr=selector.find('select');
if(select_attr.length > 0){
var selected_attr=select_attr.val();
selector_type='select';
}else{
var swatches=selector.find('.swatch');
var active_swatch=selector.find('.swatch--active');
if(swatches.length > 0){
selector_type='swatch';
}}
var product_img=tmb_wrapper.find('img[class*=wp-image], .uncode-picture-image').last();
var picture_el=product_img.closest('picture');
var source_el=picture_el.find('source');
var bg_el=tmb_wrapper.find('div.t-background-cover').last();
var prices=tmb_wrapper.find('span.price');
prices=prices.filter(function(){
if($(this).closest('.t-entry-variations').length > 0){
return false;
}
return true;
});
var original_price=prices.last().clone();
var original_price_value=original_price.children();
var stock=tmb_wrapper.find('.t-entry-stock');
var original_stock=stock.clone();
var original_stock_value=original_stock.children();
var title=tmb_wrapper.find('.t-entry-title');
var original_title=title.clone();
var original_title_value=original_title.html();
var url=tmb_wrapper.find('.t-entry-visual-cont > a').attr('href');
if(SiteParameters.dynamic_srcset_active==='1'){
if(picture_el.length > 0){
picture_el.on('srcset-done', function(){
if(!picture_el.hasClass('adaptive-fixed')){
if(selector_type==='select'&&selected_attr){
Loop_Variations.init_single_select_variation(tmb_wrapper, select_attr, selected_attr, product_img, bg_el, picture_el, source_el, prices, original_price_value, stock, original_stock_value, title, original_title_value, url);
}else if(selector_type==='swatch'&&active_swatch.length > 0){
Loop_Variations.init_single_swatch_variation(tmb_wrapper, selector, active_swatch, product_img, bg_el, picture_el, source_el, prices, original_price_value, stock, original_stock_value, title, original_title_value, url);
}
picture_el.addClass('adaptive-fixed');
}});
}else{
product_img.on('srcset-done', function(){
if(!product_img.hasClass('adaptive-fixed')){
if(selector_type==='select'&&selected_attr){
Loop_Variations.init_single_select_variation(tmb_wrapper, select_attr, selected_attr, product_img, bg_el, picture_el, source_el, prices, original_price_value, stock, original_stock_value, title, original_title_value, url);
}else if(selector_type==='swatch'&&active_swatch.length > 0){
Loop_Variations.init_single_swatch_variation(tmb_wrapper, selector, active_swatch, product_img, bg_el, picture_el, source_el, prices, original_price_value, stock, original_stock_value, title, original_title_value, url);
}
product_img.addClass('adaptive-fixed');
}});
}}else if(SiteParameters.uncode_adaptive_async==='1'){
if(bg_el.length > 0){
bg_el.on('async-done', function(){
if(!bg_el.hasClass('adaptive-fixed')){
if(selector_type==='select'&&selected_attr){
Loop_Variations.init_single_select_variation(tmb_wrapper, select_attr, selected_attr, product_img, bg_el, picture_el, source_el, prices, original_price_value, stock, original_stock_value, title, original_title_value, url);
}else if(selector_type==='swatch'&&active_swatch.length > 0){
Loop_Variations.init_single_swatch_variation(tmb_wrapper, selector, active_swatch, product_img, bg_el, picture_el, source_el, prices, original_price_value, stock, original_stock_value, title, original_title_value, url);
}
bg_el.addClass('adaptive-fixed');
}});
}else if(product_img.length > 0){
product_img.on('async-done', function(){
if(!product_img.hasClass('adaptive-fixed')){
if(selector_type==='select'&&selected_attr){
Loop_Variations.init_single_select_variation(tmb_wrapper, select_attr, selected_attr, product_img, bg_el, picture_el, source_el, prices, original_price_value, stock, original_stock_value, title, original_title_value, url);
}else if(selector_type==='swatch'&&active_swatch.length > 0){
Loop_Variations.init_single_swatch_variation(tmb_wrapper, selector, active_swatch, product_img, bg_el, picture_el, source_el, prices, original_price_value, stock, original_stock_value, title, original_title_value, url);
}
product_img.addClass('adaptive-fixed');
}});
}}else{
if(selector_type==='select'&&selected_attr){
Loop_Variations.init_single_select_variation(tmb_wrapper, select_attr, selected_attr, product_img, bg_el, picture_el, source_el, prices, original_price_value, stock, original_stock_value, title, original_title_value, url);
}else if(selector_type==='swatch'&&active_swatch.length > 0){
Loop_Variations.init_single_swatch_variation(tmb_wrapper, selector, active_swatch, product_img, bg_el, picture_el, source_el, prices, original_price_value, stock, original_stock_value, title, original_title_value, url);
}}
if(selector_type==='select'){
select_attr.on('change', function(){
var selected_attr=$(this).val();
Loop_Variations.init_single_select_variation(tmb_wrapper, select_attr, selected_attr, product_img, bg_el, picture_el, source_el, prices, original_price_value, stock, original_stock_value, title, original_title_value, url);
});
}
if(selector_type==='swatch'){
if(selector.hasClass('single-attribute-selector--hover')&&!('ontouchstart' in window)){
swatches.on('mouseenter', function(){
var active_swatch=$(this);
Loop_Variations.set_single_swatch_variation(tmb_wrapper, swatches, selector, active_swatch, product_img, bg_el, picture_el, source_el, prices, original_price_value, stock, original_stock_value, title, original_title_value, url);
}).on('click', function(e, from){
if(!(undefined!==from&&from==='select_active_attributes')){
window.location=$(this).attr('data-variation-link');
}});
}else{
swatches.on('click', function(){
var active_swatch=$(this);
Loop_Variations.set_single_swatch_variation(tmb_wrapper, swatches, selector, active_swatch, product_img, bg_el, picture_el, source_el, prices, original_price_value, stock, original_stock_value, title, original_title_value, url);
});
}}
});
},
init_single_select_variation: function(wrapper, select, selected_attr, product_img, bg_el, picture_el, source_el, prices, original_price_value, stock, original_stock_value, title, original_title_value, original_url){
var option=select.find("option[value='" + selected_attr + "']");
var variation=option.data('variation');
var attribute=select.attr('id');
var found_variation=Utils.get_single_variation_from_attribute(variation, attribute, selected_attr);
if(found_variation){
Loop_Variations.update_variation_image(product_img, bg_el, picture_el, source_el, found_variation);
Loop_Variations.update_variation_price(prices, original_price_value, found_variation);
Loop_Variations.update_variation_stock(stock, original_stock_value, found_variation);
Loop_Variations.update_variation_title(title, original_title_value, found_variation);
Loop_Variations.update_product_urls(wrapper, found_variation);
}else{
Loop_Variations.update_variation_image(product_img, bg_el, picture_el, source_el, false);
Loop_Variations.reset_variation_price(prices, original_price_value);
Loop_Variations.reset_variation_stock(stock, original_stock_value);
Loop_Variations.reset_variation_title(title, original_title_value);
Loop_Variations.reset_product_urls(wrapper, original_url);
}},
init_single_swatch_variation: function(wrapper, selector, active_swatch, product_img, bg_el, picture_el, source_el, prices, original_price_value, stock, original_stock_value, title, original_title_value, original_url){
var variation=active_swatch.data('variation');
var attribute=selector.find('.swatches-select').data('swatch-id');
var attribute_value=active_swatch.data('swatch-value');
var found_variation=Utils.get_single_variation_from_attribute(variation, attribute, attribute_value);
if(found_variation){
Loop_Variations.update_variation_image(product_img, bg_el, picture_el, source_el, found_variation);
Loop_Variations.update_variation_price(prices, original_price_value, found_variation);
Loop_Variations.update_variation_stock(stock, original_stock_value, found_variation);
Loop_Variations.update_variation_title(title, original_title_value, found_variation);
Loop_Variations.update_product_urls(wrapper, found_variation);
}else{
Loop_Variations.update_variation_image(product_img, bg_el, picture_el, source_el, false);
Loop_Variations.reset_variation_price(prices, original_price_value);
Loop_Variations.reset_variation_stock(stock, original_stock_value);
Loop_Variations.reset_variation_title(title, original_title_value);
Loop_Variations.reset_product_urls(wrapper, original_url);
}},
set_single_swatch_variation: function(wrapper, swatches, selector, active_swatch, product_img, bg_el, picture_el, source_el, prices, original_price_value, stock, original_stock_value, title, original_title_value, original_url){
swatches.removeClass('swatch--active');
active_swatch.addClass('swatch--active');
Loop_Variations.init_single_swatch_variation(wrapper, selector, active_swatch, product_img, bg_el, picture_el, source_el, prices, original_price_value, stock, original_stock_value, title, original_title_value, original_url);
},
update_variation_price: function(prices, original_price, variation){
var new_price=variation&&variation.price_html&&prices.length > 0 ? $(variation.price_html).children():original_price;
prices.html(new_price);
},
reset_variation_price: function(prices, original_price){
prices.html(original_price);
},
update_variation_stock: function(stock, original_stock, variation){
var new_stock=variation&&variation.availability_html&&stock.length > 0 ? $(variation.availability_html):original_stock;
if(new_stock.hasClass('in-stock')){
stock.addClass('t-entry-stock--in-stock');
}else{
stock.removeClass('t-entry-stock--in-stock');
}
stock.html(new_stock);
},
reset_variation_stock: function(stock, original_stock){
if(original_stock.hasClass('in-stock')){
stock.addClass('t-entry-stock--in-stock');
}else{
stock.removeClass('t-entry-stock--in-stock');
}
stock.html(original_stock);
},
update_variation_title: function(title, original_title, variation){
if(title.length > 0){
if(title.closest('.tmb').find('.t-entry-variations').hasClass('single-attribute-selector--dynamic-title')){
var new_title=variation&&variation.variation_name&&title.length > 0 ? variation.variation_name:original_title;
var price=title.find('.price');
title.text(new_title);
if(price.length > 0){
title.append(price);
}}
}},
reset_variation_title: function(title, original_title){
if(title.length > 0){
if(title.closest('.tmb').find('.t-entry-variations').hasClass('single-attribute-selector--dynamic-title')){
title.html(original_title);
}}
},
update_product_urls: function(wrapper, variation){
if(variation.variation_selected_url){
var links=wrapper.find('a').not('.t-entry-category a').not('.t-entry-attribute-image__link');
var quick_view_button=wrapper.find('.quick-view-button');
links.attr('href', variation.variation_selected_url);
quick_view_button.attr('data-post-url', variation.variation_selected_url);
}},
reset_product_urls: function(wrapper, original_url){
var links=wrapper.find('a').not('.t-entry-category a').not('.t-entry-attribute-image__link');
var quick_view_button=wrapper.find('.quick-view-button');
links.attr('href', original_url);
quick_view_button.attr('data-post-url', original_url);
},
update_variation_image: function(img, bg, picture, source, variation){
var is_bg=bg.length > 0 ? true:false;
var is_picture=picture.length > 0 ? true:false;
var variations_imgs='';
if(is_bg){
variations_imgs=bg.data('product_variations');
}else if(is_picture){
variations_imgs=picture.data('product_variations');
}else{
variations_imgs=img.data('product_variations');
}
if(variations_imgs&&variation&&variation.image_id&&variation.image){
for (var variations_img_key in variations_imgs){
var variations_img=variations_imgs[variations_img_key];
if(parseInt(variations_img_key, 10)===variation.image_id){
if(is_bg){
Loop_Variations.update_bg_attributes(bg, variations_img, variation);
}else if(is_picture){
Loop_Variations.update_picture_attributes(img, picture, source, variations_img, variation)
}else{
Loop_Variations.update_img_attributes(img, variations_img, variation);
}}
}}else{
if(is_bg){
Loop_Variations.reset_variation_bg(bg);
}else if(is_picture){
Loop_Variations.reset_variation_picture(img, picture, source);
}else{
Loop_Variations.reset_variation_img(img);
}}
},
set_variation_attr: function(el, attr, value){
if(undefined===el.attr('data-o_' + attr)){
el.attr('data-o_' + attr, (!el.attr(attr)) ? '':el.attr(attr));
}
if(false===value){
el.removeAttr(attr);
}else{
el.attr(attr, value);
}},
reset_variation_attr: function(el, attr, value){
if(undefined!==el.attr('data-o_' + attr)){
el.attr(attr, el.attr('data-o_' + attr));
}},
update_img_attributes: function(img, variations_img, variation){
if(SiteParameters.dynamic_srcset_active==='1'){
img.removeClass('srcset-sizes-done');
img.addClass('srcset-async');
}else if(SiteParameters.uncode_adaptive_async==='1'){
img.removeClass('async-done');
img.removeClass('adaptive-fetching');
img.addClass('adaptive-async');
}
Loop_Variations.set_variation_attr(img, 'src', variations_img.src);
Loop_Variations.set_variation_attr(img, 'alt', variation.image.alt);
Loop_Variations.set_variation_attr(img, 'width', variations_img.width);
Loop_Variations.set_variation_attr(img, 'height', variations_img.height);
Loop_Variations.set_variation_attr(img, 'srcset', variations_img.srcset);
Loop_Variations.set_variation_attr(img, 'data-uniqueid', variations_img.uniqueid);
Loop_Variations.set_variation_attr(img, 'data-guid', variations_img.guid);
Loop_Variations.set_variation_attr(img, 'data-path', variations_img.path);
Loop_Variations.set_variation_attr(img, 'data-no-bp', variations_img.no_bp);
Loop_Variations.set_variation_attr(img, 'data-bp', variations_img.bp);
Loop_Variations.set_variation_attr(img, 'data-width', variations_img.orig_w);
Loop_Variations.set_variation_attr(img, 'data-height', variations_img.orig_h);
Loop_Variations.set_variation_attr(img, 'data-singlew', variations_img.singlew);
Loop_Variations.set_variation_attr(img, 'data-singleh', variations_img.singleh);
if(SiteParameters.dynamic_srcset_active==='1'){
UNCODE.adaptive_srcset(img.closest('.tmb'));
}else if(SiteParameters.uncode_adaptive_async==='1'){
UNCODE.adaptive();
}},
reset_variation_img: function(img){
Loop_Variations.reset_variation_attr(img, 'src');
Loop_Variations.reset_variation_attr(img, 'srcset');
Loop_Variations.reset_variation_attr(img, 'alt');
Loop_Variations.reset_variation_attr(img, 'width');
Loop_Variations.reset_variation_attr(img, 'height');
Loop_Variations.reset_variation_attr(img, 'data-uniqueid');
Loop_Variations.reset_variation_attr(img, 'data-guid');
Loop_Variations.reset_variation_attr(img, 'data-path');
Loop_Variations.reset_variation_attr(img, 'data-no-bp');
Loop_Variations.reset_variation_attr(img, 'data-bp');
Loop_Variations.reset_variation_attr(img, 'data-width');
Loop_Variations.reset_variation_attr(img, 'data-height');
Loop_Variations.reset_variation_attr(img, 'data-singlew');
Loop_Variations.reset_variation_attr(img, 'data-singleh');
},
update_picture_attributes: function(img, picture, source, variations_img, variation){
if(SiteParameters.dynamic_srcset_active==='1'){
picture.addClass('srcset-async');
source.removeClass('srcset-sizes-done');
}
Loop_Variations.set_variation_attr(img, 'src', variations_img.src);
Loop_Variations.set_variation_attr(source, 'srcset', variations_img.srcset);
Loop_Variations.set_variation_attr(img, 'alt', variation.image.alt);
Loop_Variations.set_variation_attr(img, 'width', variations_img.width);
Loop_Variations.set_variation_attr(img, 'height', variations_img.height);
Loop_Variations.set_variation_attr(picture, 'data-uniqueid', variations_img.uniqueid);
Loop_Variations.set_variation_attr(picture, 'data-guid', variations_img.guid);
Loop_Variations.set_variation_attr(picture, 'data-path', variations_img.path);
Loop_Variations.set_variation_attr(picture, 'data-no-bp', variations_img.no_bp);
Loop_Variations.set_variation_attr(picture, 'data-bp', variations_img.bp);
Loop_Variations.set_variation_attr(picture, 'data-width', variations_img.orig_w);
Loop_Variations.set_variation_attr(picture, 'data-height', variations_img.orig_h);
if(SiteParameters.dynamic_srcset_active==='1'){
UNCODE.adaptive_srcset(img.closest('.tmb'));
}},
reset_variation_picture: function(img, picture, source){
Loop_Variations.reset_variation_attr(img, 'src');
Loop_Variations.reset_variation_attr(source, 'srcset');
Loop_Variations.reset_variation_attr(img, 'alt');
Loop_Variations.reset_variation_attr(img, 'width');
Loop_Variations.reset_variation_attr(img, 'height');
Loop_Variations.reset_variation_attr(picture, 'data-uniqueid');
Loop_Variations.reset_variation_attr(picture, 'data-guid');
Loop_Variations.reset_variation_attr(picture, 'data-path');
Loop_Variations.reset_variation_attr(picture, 'data-no-bp');
Loop_Variations.reset_variation_attr(picture, 'data-bp');
Loop_Variations.reset_variation_attr(picture, 'data-width');
Loop_Variations.reset_variation_attr(picture, 'data-height');
},
update_bg_attributes: function(bg, variations_img, variation){
if(SiteParameters.uncode_adaptive_async==='1'){
bg.removeClass('async-done');
bg.addClass('adaptive-async');
}
var new_style="background-image:url('" + variations_img.src + "')";
Loop_Variations.set_variation_attr(bg, 'style', new_style);
Loop_Variations.set_variation_attr(bg, 'data-uniqueid', variations_img.uniqueid);
Loop_Variations.set_variation_attr(bg, 'data-guid', variations_img.guid);
Loop_Variations.set_variation_attr(bg, 'data-path', variations_img.path);
Loop_Variations.set_variation_attr(bg, 'data-width', variations_img['data-width']);
Loop_Variations.set_variation_attr(bg, 'data-height', variations_img['data-height']);
Loop_Variations.set_variation_attr(bg, 'data-singlew', variations_img.singlew);
Loop_Variations.set_variation_attr(bg, 'data-singleh', variations_img.singleh);
if(SiteParameters.uncode_adaptive_async==='1'){
UNCODE.adaptive();
}},
reset_variation_bg: function(bg){
Loop_Variations.reset_variation_attr(bg, 'style');
Loop_Variations.reset_variation_attr(bg, 'data-uniqueid');
Loop_Variations.reset_variation_attr(bg, 'data-guid');
Loop_Variations.reset_variation_attr(bg, 'data-path');
Loop_Variations.reset_variation_attr(bg, 'data-width');
Loop_Variations.reset_variation_attr(bg, 'data-height');
Loop_Variations.reset_variation_attr(bg, 'data-singlew');
Loop_Variations.reset_variation_attr(bg, 'data-singleh');
},
select_active_attributes: function(){
$('.single-attribute-selector').each(function(){
var selector=$(this);
var tmb_wrapper=selector.closest('.tmb-woocommerce');
var selector_type='';
if(tmb_wrapper.length===0){
return;
}
var select_attr=selector.find('select');
if(select_attr.length > 0){
var selected_attr=select_attr.val();
selector_type='select';
}else{
var swatches=selector.find('.swatch');
var active_swatch=selector.find('.swatch--active');
if(swatches.length > 0){
selector_type='swatch';
}}
if(selector_type==='select'){
var attribute=select_attr.attr('data-attribute_name');
var filter_attribute_key=UncodeWCParameters.pa_filter_prefix + attribute.replace('attribute_pa_', '');
var selected_atts=Utils.get_url_parameter(filter_attribute_key);
if(typeof selected_atts==='string'){
var selected_atts_arr=selected_atts.split(',');
var selected_att=false;
if(selected_atts_arr){
selected_att=selected_atts_arr[selected_atts_arr.length - 1];
}
if(selected_att){
select_attr.find('option').each(function(){
var _this=$(this);
var _val=_this.val();
if(_val===selected_att){
select_attr.val(_val).trigger('change');
return false;
}})
}}
}
if(selector_type==='swatch'){
var attribute=selector.find('.swatches-select').attr('data-swatch-id');
var filter_attribute_key=UncodeWCParameters.pa_filter_prefix + attribute.replace('pa_', '');
var selected_atts=Utils.get_url_parameter(filter_attribute_key);
if(typeof selected_atts==='string'){
var selected_atts_arr=selected_atts.split(',');
var selected_att=false;
if(selected_atts_arr){
selected_att=selected_atts_arr[selected_atts_arr.length - 1];
}
if(selected_att){
swatches.each(function(){
var _this=$(this);
if(_this.attr('data-swatch-value')===selected_att){
if(selector.hasClass('single-attribute-selector--hover')&&!('ontouchstart' in window)){
_this.trigger('mouseenter', 'select_active_attributes');
}else{
_this.trigger('click', 'select_active_attributes');
}
return false;
}})
}}
}});
}}
$(document).ready(function(){
Single_Product.variable_add_to_cart();
Single_Product.variation_gallery();
Loop_Variations.init_forms();
Loop_Variations.init_single_attributes();
Loop_Variations.select_active_attributes();
});
$(document).on('uncode-quick-view-loaded', function(){
Single_Product.has_variation_changed=false;
Single_Product.doing_clear=false;
Single_Product.first_load=true;
Single_Product.variable_add_to_cart();
Single_Product.variation_gallery();
Loop_Variations.init_forms();
Loop_Variations.init_single_attributes();
});
$(document).on('uncode-ajax-filtered more-items-loaded', function(){
Loop_Variations.init_forms();
Loop_Variations.init_single_attributes();
Loop_Variations.select_active_attributes();
var product_wrapper=$('.single-product');
if(product_wrapper.length===0){
Single_Product.variable_add_to_cart();
$('.variations_form').each(function (){
$(this).wc_variation_form();
});
}});
})(jQuery);
(function($){
"use strict";
function find_select(variation_form, id){
var selects=variation_form.find('select');
var select=false;
selects.each(function(){
var _this=$(this);
if(_this.attr('id').toLowerCase()==encodeURIComponent(id).toLowerCase()){
select=_this;
return true;
}});
return select;
}
function find_swatch(swatch_selector, value){
var swatches=swatch_selector.find('.swatch');
var swatch=false;
swatches.each(function(){
var _this=$(this);
if(_this.attr('data-swatch-value')==value){
swatch=_this;
return true;
}});
return swatch;
}
function init_general_swatches(){
var variation_forms=$('.variations_form');
variation_forms.each(function(){
var variation_form=$(this);
if(variation_form.data('swatches')){
return;
}
variation_form.data('swatches', true);
variation_form.on('click', '.swatches-select > .swatch', function(){
var _this=$(this);
var value=_this.data('swatch-value');
var id=_this.parent().data('swatch-id');
var title=_this.data('swatch-title');
if(variation_form.hasClass('is-updating-gallery')){
return;
}
reset_general_swatches(variation_form);
if(_this.hasClass('swatch--active')){
return;
}
if(_this.hasClass('swatch--disabled')){
return;
}
if(window.UncodeWCParameters!=undefined&&window.UncodeWCParameters.swatches_use_custom_find==='1'){
var select=find_select(variation_form, id);
select.val(value).trigger('change');
}else{
variation_form.find('select#' + id).val(value).trigger('change');
}
_this.parent().find('.swatch--active').removeClass('swatch--active');
_this.addClass('swatch--active');
reset_general_swatches(variation_form);
})
.on('woocommerce_update_variation_values', function(){
reset_general_swatches(variation_form);
})
.on('click', '.reset_variations', function(){
variation_form.find('.swatch--active').removeClass('swatch--active');
})
});
}
function reset_general_swatches(variation_form){
if(variation_form.data('product_variations')===false){
return;
}
var has_hidden_swatch=false;
variation_form.find('.variations select').each(function(){
var select=$(this);
var swatch_selector=select.parent().find('.swatches-select');
var options=select.html();
options=$(options);
swatch_selector.find('> .swatch').removeClass('swatch--enabled').addClass('swatch--disabled');
options.each(function(){
var value=$(this).val();
if($(this).hasClass('enabled')){
if(window.UncodeWCParameters!=undefined&&window.UncodeWCParameters.swatches_use_custom_find==='1'){
var swatch=find_swatch(swatch_selector, value);
if(swatch){
swatch.removeClass('swatch--disabled').addClass('swatch--enabled');
}}else{
swatch_selector.find('.swatch[data-swatch-value="' + value + '"]').removeClass('swatch--disabled').addClass('swatch--enabled');
}}else{
if(window.UncodeWCParameters!=undefined&&window.UncodeWCParameters.swatches_use_custom_find==='1'){
var swatch=find_swatch(swatch_selector, value);
if(swatch){
swatch.removeClass('swatch--disabled').addClass('swatch--enabled');
}}else{
swatch_selector.find('.swatch[data-swatch-value="' + value + '"]').addClass('swatch--disabled').removeClass('swatch--enabled');
}}
});
var hidden_swatches=swatch_selector.find('> .swatch--active.hidden');
if(hidden_swatches.length > 0){
hidden_swatches.remove();
has_hidden_swatch=true;
}});
if(has_hidden_swatch){
$('.swatch--active').removeClass('swatch--active');
}}
function init_more_swacthes_link(){
var more_link=$('.swatches-more-link');
more_link.on('click', function(){
var link=$(this).data('link');
if(link){
window.location=link;
}});
}
init_more_swacthes_link();
init_general_swatches();
$(document).on('uncode-quick-view-loaded more-items-loaded', function(){
init_more_swacthes_link();
init_general_swatches();
});
$(document).on('uncode-ajax-filtered', function(){
init_general_swatches();
});
})(jQuery);