(function($){"use strict";$(document).on('machicSinglePageInit',function(){machicThemeModule.variationform();});machicThemeModule.variationform=function(){var VariationForm=function($form){var self=this;self.$form=$form;self.$attributeFields=$form.find('.variations select');self.$singleVariation=$form.find('.single_variation');self.$singleVariationWrap=$form.find('.single_variation_wrap');self.$resetVariations=$form.find('.reset_variations');self.$product=$form.closest('.product');self.variationData=$form.data('product_variations');self.useAjax=false===self.variationData;self.xhr=false;self.loading=true;self.$singleVariationWrap.show();self.$form.off('.wc-variation-form');self.getChosenAttributes=self.getChosenAttributes.bind(self);self.findMatchingVariations=self.findMatchingVariations.bind(self);self.isMatch=self.isMatch.bind(self);self.toggleResetLink=self.toggleResetLink.bind(self);$form.on('click.wc-variation-form','.reset_variations',{variationForm:self},self.onReset);$form.on('reload_product_variations',{variationForm:self},self.onReload);$form.on('hide_variation',{variationForm:self},self.onHide);$form.on('show_variation',{variationForm:self},self.onShow);$form.on('click','.single_add_to_cart_button',{variationForm:self},self.onAddToCart);$form.on('reset_data',{variationForm:self},self.onResetDisplayedVariation);$form.on('reset_image',{variationForm:self},self.onResetImage);$form.on('change.wc-variation-form','.variations select',{variationForm:self},self.onChange);$form.on('found_variation.wc-variation-form',{variationForm:self},self.onFoundVariation);$form.on('check_variations.wc-variation-form',{variationForm:self},self.onFindVariation);$form.on('update_variation_values.wc-variation-form',{variationForm:self},self.onUpdateAttributes);setTimeout(function(){$form.trigger('check_variations');$form.trigger('wc_variation_form',self);self.loading=false;},100);};VariationForm.prototype.onReset=function(event){event.preventDefault();event.data.variationForm.$attributeFields.val('').trigger('change');event.data.variationForm.$form.trigger('reset_data');};VariationForm.prototype.onReload=function(event){var form=event.data.variationForm;form.variationData=form.$form.data('product_variations');form.useAjax=false===form.variationData;form.$form.trigger('check_variations');};VariationForm.prototype.onHide=function(event){event.preventDefault();event.data.variationForm.$form.find('.single_add_to_cart_button').removeClass('wc-variation-is-unavailable').addClass('disabled wc-variation-selection-needed');event.data.variationForm.$form.find('.woocommerce-variation-add-to-cart').removeClass('woocommerce-variation-add-to-cart-enabled').addClass('woocommerce-variation-add-to-cart-disabled');};VariationForm.prototype.onShow=function(event,variation,purchasable){event.preventDefault();if(purchasable){event.data.variationForm.$form.find('.single_add_to_cart_button').removeClass('disabled wc-variation-selection-needed wc-variation-is-unavailable');event.data.variationForm.$form.find('.woocommerce-variation-add-to-cart').removeClass('woocommerce-variation-add-to-cart-disabled').addClass('woocommerce-variation-add-to-cart-enabled');}else{event.data.variationForm.$form.find('.single_add_to_cart_button').removeClass('wc-variation-selection-needed').addClass('disabled wc-variation-is-unavailable');event.data.variationForm.$form.find('.woocommerce-variation-add-to-cart').removeClass('woocommerce-variation-add-to-cart-enabled').addClass('woocommerce-variation-add-to-cart-disabled');} if(wp.mediaelement){event.data.variationForm.$form.find('.wp-audio-shortcode, .wp-video-shortcode').not('.mejs-container').filter(function(){return!$(this).parent().hasClass('mejs-mediaelement');}).mediaelementplayer(wp.mediaelement.settings);}};VariationForm.prototype.onAddToCart=function(event){if($(this).is('.disabled')){event.preventDefault();if($(this).is('.wc-variation-is-unavailable')){window.alert(wc_add_to_cart_variation_params.i18n_unavailable_text);}else if($(this).is('.wc-variation-selection-needed')){window.alert(wc_add_to_cart_variation_params.i18n_make_a_selection_text);}}};VariationForm.prototype.onResetDisplayedVariation=function(event){var form=event.data.variationForm;form.$product.find('.product_meta').find('.sku').wc_reset_content();form.$product.find('.product_weight, .woocommerce-product-attributes-item--weight .woocommerce-product-attributes-item__value').wc_reset_content();form.$product.find('.product_dimensions, .woocommerce-product-attributes-item--dimensions .woocommerce-product-attributes-item__value').wc_reset_content();form.$form.trigger('reset_image');form.$singleVariation.slideUp(200).trigger('hide_variation');};VariationForm.prototype.onResetImage=function(event){event.data.variationForm.$form.wc_variations_image_update(false);};VariationForm.prototype.onFindVariation=function(event,chosenAttributes){var form=event.data.variationForm,attributes='undefined'!==typeof chosenAttributes?chosenAttributes:form.getChosenAttributes(),currentAttributes=attributes.data;if(attributes.count&&attributes.count===attributes.chosenCount){if(form.useAjax){if(form.xhr){form.xhr.abort();} form.$form.block({message:null,overlayCSS:{background:'#fff',opacity:0.6}});currentAttributes.product_id=parseInt(form.$form.data('product_id'),10);currentAttributes.custom_data=form.$form.data('custom_data');form.xhr=$.ajax({url:wc_add_to_cart_variation_params.wc_ajax_url.toString().replace('%%endpoint%%','get_variation'),type:'POST',data:currentAttributes,success:function(variation){if(variation){form.$form.trigger('found_variation',[variation]);}else{form.$form.trigger('reset_data');attributes.chosenCount=0;if(!form.loading){form.$form.find('.single_variation').after('
'+ wc_add_to_cart_variation_params.i18n_no_matching_variations_text+'
');form.$form.find('.wc-no-matching-variations').slideDown(200);}}},complete:function(){form.$form.unblock();}});}else{form.$form.trigger('update_variation_values');var matching_variations=form.findMatchingVariations(form.variationData,currentAttributes),variation=matching_variations.shift();if(variation){form.$form.trigger('found_variation',[variation]);}else{form.$form.trigger('reset_data');attributes.chosenCount=0;if(!form.loading){form.$form.find('.single_variation').after(''+ wc_add_to_cart_variation_params.i18n_no_matching_variations_text+'
');form.$form.find('.wc-no-matching-variations').slideDown(200);}}}}else{form.$form.trigger('update_variation_values');form.$form.trigger('reset_data');} form.toggleResetLink(attributes.chosenCount>0);};VariationForm.prototype.onFoundVariation=function(event,variation){var form=event.data.variationForm,$sku=form.$product.find('.product_meta').find('.sku'),$weight=form.$product.find('.product_weight, .woocommerce-product-attributes-item--weight .woocommerce-product-attributes-item__value'),$dimensions=form.$product.find('.product_dimensions, .woocommerce-product-attributes-item--dimensions .woocommerce-product-attributes-item__value'),$qty=form.$singleVariationWrap.find('.quantity'),purchasable=true,variation_id='',template=false,$template_html='';if(variation.sku){$sku.wc_set_content(variation.sku);}else{$sku.wc_reset_content();} if(variation.weight){$weight.wc_set_content(variation.weight_html);}else{$weight.wc_reset_content();} if(variation.dimensions){$dimensions.wc_set_content($.parseHTML(variation.dimensions_html)[0].data);}else{$dimensions.wc_reset_content();} form.$form.wc_variations_image_update(variation);if(!variation.variation_is_visible){template=wp_template('unavailable-variation-template');}else{template=wp_template('variation-template');variation_id=variation.variation_id;} $template_html=template({variation:variation});$template_html=$template_html.replace('/**/','');form.$singleVariation.html($template_html);form.$form.find('input[name="variation_id"], input.variation_id').val(variation.variation_id).trigger('change');if(variation.is_sold_individually==='yes'){$qty.find('input.qty').val('1').attr('min','1').attr('max','').trigger('change');$qty.hide();}else{var $qty_input=$qty.find('input.qty'),qty_val=parseFloat($qty_input.val());if(isNaN(qty_val)){qty_val=variation.min_qty;}else{qty_val=qty_val>parseFloat(variation.max_qty)?variation.max_qty:qty_val;qty_val=qty_val