(function($){
var total_updated=false;
$(document).ready(function(){
$('.pewc-select-box').each(function(index, element){
$(element).ddslick({
onSelected: function(selectedData){
var original=selectedData.original[0];
var index=selectedData.selectedIndex;
var value=selectedData.selectedData.value;
var box_id=$(original).attr('id');
var hidden_option_id=box_id.replace('_select_box', '') + '_' + index + '_hidden';
var price=$('#' + hidden_option_id).attr('data-option-cost');
var wrapper=$('#' + box_id).closest('.pewc-item')
.attr('data-selected-option-price', price)
.attr('data-value', value)
.attr('data-field-value', value);
var hidden_select=$('#' + box_id + '_' + index).closest('.pewc-item').find('.pewc-select-box-hidden').attr('data-selected-option-price', price).val(value);
var select_box_wrapper=$('body').find('.pewc-item-select-box .dd-container');
$('body').find('.dd-option label, .dd-selected label').each(function(){
$(this).next('small').addBack().wrapAll('<div class="dd-option-wrap"/>');
});
box_id=$('#' + box_id).closest('.pewc-item').attr('data-id');
$('body').find('#' + box_id).val(value).trigger('change');
var selected_option_price=$('#' + box_id).find('option:selected').attr('data-option-cost');
$(wrapper).attr('data-selected-option-price', selected_option_price);
$('body').find('#' + box_id).trigger('pewc_update_select_box');
$(wrapper).find('.dd-selected-description').text(pewc_wc_price(selected_option_price, true) );
pewc_update_total_js();
}});
});
$('.pewc-color-picker-field').each(function(index, element){
$(element).wpColorPicker({
defaultColor: $(element).data('color') ? $(element).data('color'):false,
change: function(event, ui){
$('body').trigger('pewc_trigger_calculations');
$(element).trigger('pewc_trigger_color_picker_change');
$(element).closest('.pewc-item').attr('data-field-value', ui.color.toString());
},
clear: function(){
$('body').trigger('pewc_trigger_calculations');
$(element).closest('.pewc-item').attr('data-field-value', '');
},
hide: !$(element).data('show'),
palettes: !!$(element).data('palettes'),
width: $(element).data('box-width') ? $(element).data('box-width'):255,
mode: 'hsv',
type: 'full',
slider: 'horizontal'
});
});
$('body').find('.dd-option label, .dd-selected label').each(function(){
$(this).next('small').addBack().wrapAll('<div class="dd-option-wrap"/>');
});
$('input.pewc-range-slider').each(function(){
if($(this).attr('value') > 0){
$(this).trigger('change');
}});
$('form.wp-block-add-to-cart-with-options .wc-block-components-quantity-selector').on('click', function(e){
$('body').trigger('pewc_force_update_total_js');
});
$('.products-quantities-independent .pewc-child-select-field').each(function(){
var number_field=$(this).closest('.child-product-wrapper').find('.pewc-child-quantity-field');
pewc_update_independent_quantity_input_max($(this), number_field);
});
});
$('.require-depends li:first input').on('change',function(){
if($(this).val()!=''){
$(this).closest('.pewc-group').addClass('show-required');
}else{
$(this).closest('.pewc-group').removeClass('show-required');
}});
$('.pewc-file-upload').on('change',function(){
readURL(this, $(this).attr('id'));
});
$('.pewc-remove-image').on('click',function(e){
e.preventDefault();
id=$(this).attr('data-id');
$('#'+id).val("");
$('#'+id+'-placeholder').css('display','none');
$('#'+id+'-placeholder img').attr('src', '#');
$('#'+id+'-wrapper').removeClass('image-loaded');
});
function readURL(input,id){
if(input.files&&input.files[0]){
var i=input.files.length;
var reader=new FileReader();
reader.onload=function (e){
$('#'+id+'-wrapper').addClass('image-loaded');
$('#'+id+'-placeholder').fadeIn();
$('#'+id+'-placeholder img').attr('src', e.target.result);
}
reader.readAsDataURL(input.files[0]);
}}
$('body').on('change input keyup','.pewc-has-maxchars input, .pewc-has-maxchars textarea',function(){
var maxchars=parseInt($(this).attr('data-maxchars'));
var str=$(this).val();
var str_ex_spaces=$(this).val();
if(pewc_vars.remove_spaces!='no'){
str_ex_spaces=str.replace(/\s/g, "");
var num_spaces=str.split(" ").length - 1;
maxchars +=parseInt(num_spaces);
}else{
str_ex_spaces=str;
}
var str_len=str_ex_spaces.length;
if(str_len>maxchars){
var new_str=str_ex_spaces.substring(0, maxchars);
$(this).val(new_str);
}});
$('body').on('change input', '.pewc-form-field', function(){
$form=$(this).closest('form');
add_on_images.update_add_on_image($(this), $form);
pewc_update_total_js();
if('yes'==pewc_vars.enable_character_counter){
pewc_update_text_field_counter($(this));
}});
$('body').on('change input', '.pewc-range-slider', function(){
$(this).closest('.pewc-item-field-wrapper').find('.pewc-range-value').text($(this).val());
$(this).closest('.pewc-item').attr('data-field-value', $(this).val());
});
function pewc_update_text_field_counters(){
$('.pewc-form-field').each(function(){
if($(this).closest('.pewc-item').hasClass('pewc-item-text')||$(this).closest('.pewc-item').hasClass('pewc-item-textarea')||$(this).closest('.pewc-item').hasClass('pewc-item-advanced-preview')){
pewc_update_text_field_counter($(this));
}});
}
function pewc_update_text_field_counter(field){
var wrapper=field.closest('.pewc-item');
if(! wrapper.hasClass('pewc-item-text')&&! wrapper.hasClass('pewc-item-textarea')&&! wrapper.hasClass('pewc-item-advanced-preview')){
return;
}
var val_length=field.val().length;
var field_id=field.attr('id').replace('_clone', '');
var current_count=field.closest('.pewc-item').find('.pewc-text-counter-container.' + field_id + ' .pewc-current-count');
current_count.html(val_length);
current_count.removeClass('error');
if(parseInt(field.attr('data-minchars')) > 0&&val_length < parseInt(field.attr('data-minchars')) ){
current_count.addClass('error');
}else if(parseInt(field.attr('data-maxchars')) > 0&&val_length > parseInt(field.attr('data-maxchars')) ){
current_count.addClass('error');
}}
$('body').on('click','.pewc-remove-image',function(){
$form=$(this).closest('form');
pewc_update_total_js();
});
$(document).on('hide_variation', function(event, variation, purchasable){
$('#pewc-product-price').val(0);
$('#pewc-product-price-original').val(0);
pewc_update_total_js();
$('.pewc-variation-dependent').each(function(){
if($(this).hasClass('active')){
$(this).removeClass('active');
if(pewc_vars.conditions_timer > 0){
if(pewc_vars.reset_fields=='yes'&&! $(this).hasClass('pewc-reset-me') ){
$(this).addClass('pewc-reset-me');
}
if($(this).hasClass('pewc-field-triggers-condition') ){
if($(this).find('input').length > 0){
$(this).find('input').trigger('change');
}else if($(this).find('select').length > 0){
$(this).find('select').trigger('change');
}}
if($(this).hasClass('pewc-calculation-trigger') ){
calculations.recalculate();
}}
$('body').trigger('pewc_field_visibility_updated', [ $(this).attr('data-id'), 'hide' ]);
}});
$('body').trigger('pewc_reset_fields');
});
$(document).on('show_variation', function(event, variation, purchasable){
$('#pewc_calc_set_price').attr('data-calc-set', 0);
pewc_update_total_js();
var var_price=variation.display_price;
$('#pewc_variation_price').val(var_price);
$('#pewc-product-price').val(var_price);
$('#pewc-product-price-original').val(var_price);
$('body').trigger('pewc_do_percentages');
$(this).find('.pewc-percentage.pewc-item-select select').each(function(){
pewc_update_select_percentage_field($(this), var_price);
});
$(this).find('.pewc-percentage.pewc-item-select-box').each(function(){
pewc_update_select_box_percentage_field($(this), var_price);
});
$(this).find('.pewc-percentage.pewc-item-image_swatch, .pewc-percentage.pewc-item-radio').each(function(){
pewc_update_radio_percentage_field($(this), var_price);
});
var variation_id=variation.variation_id;
$('.pewc-variation-dependent').each(function(){
var ids=$(this).attr('data-variations');
ids=ids.split(',');
ids=ids.map(function(x){
return parseInt(x, 10);
});
if(ids.indexOf(variation_id)!=-1){
$(this).addClass('active');
if(pewc_vars.reset_fields=='yes'&&pewc_vars.conditions_timer > 0){
$(this).removeClass('pewc-reset-me');
}
$('body').trigger('pewc_field_visibility_updated', [ $(this).attr('data-id'), 'show' ]);
}else{
$(this).removeClass('active');
if(pewc_vars.reset_fields=='yes'&&! $(this).hasClass('pewc-reset-me')&&pewc_vars.conditions_timer > 0){
$(this).addClass('pewc-reset-me');
}}
if(pewc_vars.conditions_timer > 0){
if($(this).hasClass('pewc-field-triggers-condition') ){
if($(this).find('input').length > 0){
$(this).find('input').trigger('change');
}else if($(this).find('select').length > 0){
$(this).find('select').trigger('change');
}}
if($(this).hasClass('pewc-calculation-trigger') ){
calculations.recalculate();
}}
});
$('#pewc_product_length').val(variation.dimensions['length']);
$('#pewc_product_width').val(variation.dimensions['width']);
$('#pewc_product_height').val(variation.dimensions['height']);
$('#pewc_product_weight').val(variation.weight);
$('body').trigger('pewc_trigger_calculations');
$('body').trigger('pewc_variations_updated');
$('body').trigger('pewc_reset_fields');
pewc_update_total_js();
});
$('body').on('pewc_do_percentages', function(){
$('.pewc-percentage').each(function(){
var var_price=$('#pewc-product-price').val();
var new_price=(var_price / 100) * parseFloat($(this).attr('data-percentage') );
if(isNaN(new_price) ){
new_price=0;
}
$(this).attr('data-price', new_price);
var new_price_html=pewc_wc_price(new_price.toFixed(pewc_vars.decimals));
$(this).find('.pewc-field-price').html(new_price_html);
if($(this).hasClass('pewc-item-checkbox') ){
var new_price_currency_only=pewc_wc_price(new_price.toFixed(pewc_vars.decimals), true);
$(this).find('.pewc-checkbox-price').html(new_price_currency_only);
return;
}
$(this).find('.pewc-option-has-percentage').each(function(){
var option_price=(var_price / 100) * $(this).attr('data-option-percentage');
$(this).attr('data-option-cost',option_price.toFixed(pewc_vars.decimals));
option_price=pewc_wc_price(option_price.toFixed(pewc_vars.decimals));
$(this).closest('.pewc-checkbox-form-label').find('.pewc-option-cost-label').html(option_price);
});
});
});
$('body.pewc-variable-product').on('update change', '.pewc-percentage.pewc-item-select select', function(e){
pewc_update_select_percentage_field($(this), $('#pewc_variation_price').val());
});
function pewc_update_select_percentage_field(select, var_price){
pewc_update_select_option_percentage(select, var_price);
$('body').trigger('pewc_trigger_calculations');
pewc_update_total_js();
}
function pewc_update_select_box_percentage_field(selectbox, var_price){
var select=$(selectbox).find('select');
pewc_update_select_option_percentage(select, var_price);
var box=$(selectbox).find('.dd-select');
var box_options=$(selectbox).find('.dd-options');
$(select).find('option').each(function(i, v){
var new_price=(var_price / 100) * $(this).attr('data-option-percentage');
var new_text=$(this).val() + pewc_vars.separator + pewc_wc_price(new_price.toFixed(pewc_vars.decimals), true);
var option=$(box_options).find('li').eq(i);
$(option).find('.dd-option-description').text(new_text);
});
var selected_price=$(select).children('option:selected').attr('data-option-cost');
selected_price=pewc_wc_price(selected_price, true);
$(selectbox).find('.dd-selected .dd-selected-description').text(selected_price);
$('body').trigger('pewc_trigger_calculations');
pewc_update_total_js();
}
function pewc_update_select_option_percentage(select, var_price){
var selected=$(select).children('option:selected');
var option_price=(var_price / 100) * $(selected).attr('data-option-percentage');
var item=$(select).closest('.pewc-item').attr('data-selected-option-price', option_price);
$(selected).attr('data-option-cost', option_price.toFixed(pewc_vars.decimals) );
option_price=pewc_wc_price(option_price.toFixed(pewc_vars.decimals) );
var data_price=$(select).closest('.pewc-item').attr('data-price');
if(isNaN(data_price) ){
$(select).closest('.pewc-item').attr('data-price', 0);
}
$(select).find('option').each(function(i, v){
var new_price=(var_price / 100) * $(this).attr('data-option-percentage');
$(this).attr('data-option-cost', new_price.toFixed(pewc_vars.decimals) );
if($(select).closest('.pewc-item').hasClass('pewc-hide-option-price')||$(this).hasClass('pewc-first-option') ){
return;
}
var new_text=$(this).val() + pewc_vars.separator + pewc_wc_price(new_price.toFixed(pewc_vars.decimals), true);
$(this).text(new_text);
});
}
function pewc_update_radio_percentage_field(field, var_price){
$(field).find('input').each(function(i, v){
var new_price=(var_price / 100) * $(this).attr('data-option-percentage');
$(this).attr('data-option-cost', new_price.toFixed(pewc_vars.decimals) );
var new_text=$(this).val() + pewc_vars.separator + pewc_wc_price(new_price.toFixed(pewc_vars.decimals), true);
$(this).closest('label').next().text(new_text);
if($(field).hasClass('pewc-hide-option-price') ){
return;
}
if(( $(field).hasClass('pewc-item-radio')||$(field).hasClass('pewc-item-image-swatch-checkbox') )&&$(field).hasClass('pewc-item-image_swatch') ){
$(this).closest('label').find('.pewc-radio-image-desc span').text(new_text);
}else if($(field).hasClass('pewc-item-radio') ){
$(this).closest('li').find('label span.pewc-radio-option-text').text(new_text);
}});
$('body').trigger('pewc_trigger_calculations');
pewc_update_total_js();
}
function pewc_update_total_js($update=0){
var flat_rate_total=0;
var product_price=parseFloat($('#pewc-product-price').val());
var orig_product_price=parseFloat($('#pewc-product-price-original').val());
var total_price=0;
var orig_total_price=0;
var added_price=0;
var repeatable_prices=0;
var field_value=[];
var field_label=[];
$('form.cart .pewc-form-field').each(function(){
added_price=0;
var field_wrapper=$(this).closest('.pewc-group');
$(field_wrapper).removeClass('pewc-active-field');
if(! $(field_wrapper).hasClass('pewc-variation-dependent')||($(field_wrapper).hasClass('pewc-variation-dependent')&&$(field_wrapper).hasClass('active') )){
var group_wrap=$(field_wrapper).closest('.pewc-group-wrap');
if(group_wrap.hasClass('pewc-group-hidden')&&! group_wrap.hasClass('pewc-group-always-include') ){
return;
}
if(! $(field_wrapper).hasClass('pewc-flatrate')){
if($(field_wrapper).hasClass('pewc-group-checkbox')&&! $(field_wrapper).hasClass('pewc-hidden-field')){
if($(field_wrapper).hasClass('pewc-per-unit-pricing')&&$(this).prop('checked')){
added_price=parseFloat($('#num_units_int').val()) * parseFloat($(field_wrapper).attr('data-price'));
$(field_wrapper).addClass('pewc-active-field');
}else if($(this).prop('checked')){
added_price=parseFloat($(field_wrapper).attr('data-price'));
$(field_wrapper).addClass('pewc-active-field');
}else{
$(field_wrapper).removeClass('pewc-active-field');
}}else if($(field_wrapper).hasClass('pewc-group-select')&&! $(field_wrapper).hasClass('pewc-hidden-field')){
if(! $(field_wrapper).hasClass('pewc-first-field-empty')||$(this).find(':selected').val()!=''){
$(field_wrapper).addClass('pewc-active-field');
$(field_wrapper).attr('data-field-value', $(this).find(':selected').val());
if($(field_wrapper).attr('data-option-price-visibility')!='value'){
added_price=parseFloat($(this).find(':selected').attr('data-option-cost'));
added_price +=parseFloat($(field_wrapper).attr('data-price'));
}}
}else if($(field_wrapper).hasClass('pewc-group-select-box')&&! $(field_wrapper).hasClass('pewc-hidden-field')){
if(! $(field_wrapper).hasClass('pewc-first-field-empty')||$(this).find(':selected').val()!=''){
$(field_wrapper).addClass('pewc-active-field');
$(field_wrapper).attr('data-field-value', $(this).find(':selected').val());
if($(field_wrapper).attr('data-option-price-visibility')!='value'){
added_price=parseFloat($(field_wrapper).attr('data-selected-option-price'));
added_price +=parseFloat($(field_wrapper).attr('data-price') );
}}
}else if($(this).val()&&! $(field_wrapper).hasClass('pewc-hidden-field')){
if($(field_wrapper).hasClass('pewc-per-character-pricing')&&($(field_wrapper).hasClass('pewc-item-text')||$(field_wrapper).hasClass('pewc-item-textarea')||$(field_wrapper).hasClass('pewc-item-advanced-preview') )){
var str_len=pewc_get_text_str_len($(this).val(), field_wrapper);
added_price=str_len * parseFloat($(field_wrapper).attr('data-price'));
}else if($(field_wrapper).hasClass('pewc-multiply-pricing') ){
var num_value=$(this).val();
added_price=num_value * parseFloat($(field_wrapper).attr('data-price'));
}else if($(field_wrapper).hasClass('pewc-group-name_price')){
added_price=parseFloat($(this).val());
}else{
added_price=parseFloat($(field_wrapper).attr('data-price'));
}
if($(field_wrapper).hasClass('pewc-item-number')&&$(field_wrapper).hasClass('pewc-per-unit-pricing') ){
added_price=parseFloat(added_price) * parseFloat($('#num_units_int').val());
}
if($(this).val()){
$(field_wrapper).addClass('pewc-active-field');
if($(this).hasClass('pewc-range-slider')&&$(this).attr('value')==''){
}else{
$(field_wrapper).attr('data-field-value', $(this).val());
}}
}else{
$(field_wrapper).attr('data-field-value', '');
}
if($(field_wrapper).hasClass('pewc-repeatable-field')&&! $(field_wrapper).hasClass('pewc-multiply-repeatable') ){
repeatable_prices +=added_price;
}else{
total_price +=added_price;
}
if(! isNaN(added_price) ){
$(field_wrapper).attr('data-field-price', added_price);
}}else{
if($(field_wrapper).hasClass('pewc-group-checkbox')&&! $(field_wrapper).hasClass('pewc-hidden-field')){
if($(field_wrapper).hasClass('pewc-per-unit-pricing')&&$(this).prop('checked')){
added_price=parseFloat($('#num_units_int').val()) * parseFloat($(field_wrapper).attr('data-price'));
$(field_wrapper).addClass('pewc-active-field');
}else if($(this).prop('checked')){
added_price=parseFloat($(field_wrapper).attr('data-price'));
$(field_wrapper).addClass('pewc-active-field');
}}else if(( $(field_wrapper).hasClass('pewc-group-select')||$(field_wrapper).hasClass('pewc-group-select-box'))&&! $(field_wrapper).hasClass('pewc-hidden-field')){
added_price=parseFloat($(this).find(':selected').attr('data-option-cost'));
added_price +=parseFloat($(field_wrapper).attr('data-price'));
$(field_wrapper).addClass('pewc-active-field');
}else if($(this).val()&&! $(field_wrapper).hasClass('pewc-hidden-field')){
if($(field_wrapper).hasClass('pewc-per-character-pricing')){
var str_len=pewc_get_text_str_len($(this).val(), field_wrapper);
added_price=str_len * parseFloat($(field_wrapper).attr('data-price'));
$(field_wrapper).addClass('pewc-active-field');
}else if($(field_wrapper).hasClass('pewc-multiply-pricing')){
var num_value=$(this).val();
added_price=num_value * parseFloat($(field_wrapper).attr('data-price'));
$(field_wrapper).addClass('pewc-active-field');
}else if($(field_wrapper).hasClass('pewc-group-name_price')){
added_price=parseFloat($(this).val());
}else{
added_price=parseFloat($(field_wrapper).attr('data-price'));
$(field_wrapper).addClass('pewc-active-field');
}}
flat_rate_total +=added_price;
$(field_wrapper).attr('data-field-price', added_price);
$(field_wrapper).attr('data-field-value', $(this).val());
}}
if($(field_wrapper).val()){
set_summary_panel_data($(field_wrapper), $(field_wrapper).val(), added_price);
}});
$('form.cart .pewc-item-radio, form.cart .pewc-item-image_swatch').each(function(){
var field_value=[];
if(! $(this).hasClass('pewc-variation-dependent')||($(this).hasClass('pewc-variation-dependent')&&$(this).hasClass('active') )){
var group_wrap=$(this).closest('.pewc-group-wrap');
if(! $(this).hasClass('pewc-hidden-field')&&! group_wrap.hasClass('pewc-group-hidden') ){
var checked_radio=$(this).find('input[type=radio]:checked');
if(checked_radio.attr('data-option-cost') ){
if($(this).attr('data-option-price-visibility')=='value'){
var selected_option_price=checked_radio.attr('data-option-cost');
$(this).attr('data-selected-option-price', selected_option_price);
}else if(! $(this).hasClass('pewc-flatrate') ){
added_price=parseFloat($(this).attr('data-price') );
var selected_option_price=checked_radio.attr('data-option-cost');
$(this).attr('data-selected-option-price', selected_option_price);
added_price +=parseFloat(selected_option_price);
if($(this).hasClass('pewc-repeatable-field')&&! $(this).hasClass('pewc-multiply-repeatable') ){
repeatable_prices +=added_price;
}else{
total_price +=added_price;
}}else{
flat_rate_total +=parseFloat($(this).attr('data-price') );
var selected_option_price=checked_radio.attr('data-option-cost');
$(this).attr('data-selected-option-price', selected_option_price);
flat_rate_total +=parseFloat(selected_option_price);
}}
if(checked_radio.val()){
set_summary_panel_data($(this), checked_radio.val(), added_price);
}else{
set_summary_panel_data($(this), '', 0);
$(this).removeClass('pewc-active-field');
}}
}});
$('form.cart .pewc-item-select').each(function(){
var selected_option_price=$(this).find('option:selected').attr('data-option-cost');
$(this).attr('data-selected-option-price', selected_option_price);
});
$('form.cart .pewc-item-checkbox_group').each(function(){
var field_value=[];
var selected_counter=0;
if(! $(this).hasClass('pewc-variation-dependent')||($(this).hasClass('pewc-variation-dependent')&&$(this).hasClass('active') )){
var checkbox_group_id=$(this).attr('data-id');
var checkbox_group_price=0;
var group_wrap=$(this).closest('.pewc-group-wrap');
if(! $(this).hasClass('pewc-hidden-field')&&! group_wrap.hasClass('pewc-group-hidden') ){
var checkbox_value=[];
if(! $(this).hasClass('pewc-flatrate')){
if($("input[name='" + checkbox_group_id + "[]']:checked").val()){
checkbox_group_price +=parseFloat($(this).attr('data-price'));
}
$('.'+checkbox_group_id).find($('input[type=checkbox]:checked')).each(function(){
checkbox_group_price +=parseFloat($(this).attr('data-option-cost'));
checkbox_value.push($(this).val());
selected_counter++;
});
total_price +=checkbox_group_price;
if($("input[name='" + checkbox_group_id + "[]']:checked").val()){
$(this).attr('data-field-price', checkbox_group_price);
$(this).addClass('pewc-active-field');
$(this).attr('data-field-value', checkbox_value.join(', ') );
}else{
$(this).attr('data-field-price', 0);
$(this).removeClass('pewc-active-field');
$(this).attr('data-field-value', '');
}}else{
if($("input[name='" + checkbox_group_id + "[]']:checked").val()){
flat_rate_total +=parseFloat($(this).attr('data-price'));
}
$('.'+checkbox_group_id).find($('input[type=checkbox]:checked')).each(function(){
flat_rate_total +=parseFloat($(this).attr('data-option-cost'));
checkbox_value.push($(this).val());
selected_counter++;
});
if(checkbox_value.length > 0){
$(this).attr('data-field-value', checkbox_value.join(', ') );
}else{
$(this).attr('data-field-value', '');
}}
}}
pewc_update_checkbox_field_counter($(this), selected_counter);
});
$('form.cart .pewc-item-image-swatch-checkbox').each(function(){
var field_value=[];
var selected_counter=0;
if(! $(this).hasClass('pewc-variation-dependent')||($(this).hasClass('pewc-variation-dependent')&&$(this).hasClass('active') )){
var checkbox_group_id=$(this).attr('data-id');
var checkbox_group_price=0;
var group_wrap=$(this).closest('.pewc-group-wrap');
if(! $(this).hasClass('pewc-hidden-field')&&! group_wrap.hasClass('pewc-group-hidden') ){
var field_value=[];
if(! $(this).hasClass('pewc-flatrate')){
if($("input[name='" + checkbox_group_id + "[]']:checked").val()){
checkbox_group_price +=parseFloat($(this).attr('data-price'));
}
$('.'+checkbox_group_id).find($('input[type=checkbox]:checked')).each(function(){
field_value.push($(this).val());
checkbox_group_price +=parseFloat($(this).attr('data-option-cost'));
selected_counter++;
});
total_price +=checkbox_group_price;
}else{
if($("input[name='" + checkbox_group_id + "[]']:checked").val()){
flat_rate_total +=parseFloat($(this).attr('data-price'));
}
$('.'+checkbox_group_id).find($('input[type=checkbox]:checked')).each(function(){
field_value.push($(this).val());
flat_rate_total +=parseFloat($(this).attr('data-option-cost'));
selected_counter++;
});
}}
if(field_value.length > 0){
set_summary_panel_data($(this), field_value.join(', '), checkbox_group_price);
}else{
$(this).removeClass('pewc-active-field');
set_summary_panel_data($(this), '', 0);
}}
pewc_update_checkbox_field_counter($(this), selected_counter);
});
var child_products_total=0;
$('form.cart .pewc-child-select-field').each(function(){
var field_wrapper=$(this).closest('.pewc-item');
var field_value=[];
var is_hidden=$(this).closest('.pewc-item').hasClass('pewc-hidden-field');
var is_dependent=($(this).closest('.pewc-item').hasClass('pewc-variation-dependent') )&&(! $(this).closest('.pewc-item').hasClass('active') );
if(! is_hidden&&! is_dependent){
if($(this).val()&&$(this).val()!=''){
field_value.push($(this).find(':selected').attr('data-field-value') );
var selected=$(this).find(':selected');
var child_product_price=selected.data('option-cost');
if(parseFloat(selected.attr('data-wcfad-price')) > 0){
child_product_price=parseFloat(selected.attr('data-wcfad-price'));
}
var qty=0;
if(child_product_price > 0){
var wrapper=$(this).closest('.child-product-wrapper');
var quantities=$(wrapper).data('products-quantities');
if(quantities=='linked'){
qty=pewc_get_quantity(qty, 'linked');
}else if(quantities=='independent'){
qty=$(wrapper).find('.pewc-child-quantity-field').val();
if(pewc_vars.multiply_independent=='yes' ){
var main_quantity=pewc_get_quantity();
qty=qty * parseFloat(main_quantity);
}}else if(quantities=='one-only'){
qty=pewc_get_quantity(1, 'one-only');
}}
child_products_total +=parseFloat(child_product_price) * parseFloat(qty);
if(field_value.length > 0){
$(this).closest('.pewc-item').attr('data-field-price', child_products_total);
set_summary_panel_data($(this).closest('.pewc-item'), field_value.join(', '), parseFloat(child_product_price) * parseFloat(qty) );
}else{
$(this).closest('.pewc-item').removeClass('pewc-active-field');
}}
}});
$('form.cart .pewc-radio-images-wrapper.child-product-wrapper').each(function(){
var field_value=[];
var is_hidden=$(this).closest('.pewc-item').hasClass('pewc-hidden-field');
var is_dependent=($(this).closest('.pewc-item').hasClass('pewc-variation-dependent') )&&(! $(this).closest('.pewc-item').hasClass('active') );
if(! is_hidden&&! is_dependent){
var quantities=$(this).data('products-quantities');
var checked_radio=$(this).find('.pewc-radio-form-field:checked');
var radio_val=checked_radio.val();
if(radio_val&&radio_val!=undefined){
var child_product_price=checked_radio.data('option-cost');
if(parseFloat(checked_radio.attr('data-wcfad-price')) > 0){
child_product_price=parseFloat(checked_radio.attr('data-wcfad-price'));
}
var qty=0;
if(quantities=='linked'){
qty=pewc_get_quantity(qty, 'linked');
}else if(quantities=='independent'){
qty=$(this).closest('.pewc-item-field-wrapper').find('.pewc-child-quantity-field').val();
if(pewc_vars.multiply_independent=='yes' ){
var main_quantity=pewc_get_quantity();
qty=qty * parseFloat(main_quantity);
}}else if(quantities=='one-only'){
qty=pewc_get_quantity(1, 'one-only');
}
child_products_total +=parseFloat(child_product_price) * parseFloat(qty);
if(child_products_total > 0||qty > 0){
$(this).closest('.pewc-item').attr('data-field-price', child_products_total);
set_summary_panel_data($(this).closest('.pewc-item'), checked_radio.attr('data-field-label'), parseFloat(child_product_price) * parseFloat(qty) );
}}else{
$(this).closest('.pewc-item').removeClass('pewc-active-field');
$(this).closest('.pewc-item')
.attr('data-field-price', 0)
.attr('data-field-value', '');
}}
});
$('form.cart .pewc-checkboxes-images-wrapper.child-product-wrapper, form.cart .pewc-components-wrapper.child-product-wrapper').each(function(){
var this_child_total=0;
var field_value=[];
var selected_counter=0;
var is_hidden=$(this).closest('.pewc-item').hasClass('pewc-hidden-field');
var is_dependent=($(this).closest('.pewc-item').hasClass('pewc-variation-dependent') )&&(! $(this).closest('.pewc-item').hasClass('active') );
if(! is_hidden&&! is_dependent){
var quantities=$(this).data('products-quantities');
$(this).closest('.pewc-item').removeClass('pewc-active-field');
$(this).find('.pewc-checkbox-form-field:checkbox:checked').each(function(){
field_value.push($(this).attr('data-field-label') );
var child_product_price=$(this).data('option-cost');
if(parseFloat($(this).attr('data-wcfad-price')) > 0){
child_product_price=parseFloat($(this).attr('data-wcfad-price'));
}
var qty=0;
if(quantities=='linked'){
qty=pewc_get_quantity(qty, 'linked');
selected_counter++;
}else if(quantities=='independent'){
qty=$(this).closest('.pewc-checkbox-wrapper').find('.pewc-child-quantity-field').val();
selected_counter +=parseInt(qty);
if(pewc_vars.multiply_independent=='yes' ){
var main_quantity=pewc_get_quantity();
qty=qty * parseFloat(main_quantity);
}}else if(quantities=='one-only'){
qty=pewc_get_quantity(1, 'one-only');
selected_counter++;
}
if(child_product_price > 0){
child_products_total +=parseFloat(child_product_price) * parseFloat(qty);
this_child_total +=parseFloat(child_product_price) * parseFloat(qty);
}});
if(field_value.length > 0){
$(this).closest('.pewc-item').attr('data-field-price', child_products_total);
set_summary_panel_data($(this).closest('.pewc-item'), field_value.join(', '), this_child_total);
}}
pewc_update_checkbox_field_counter($(this).closest('.pewc-item'), selected_counter);
});
$('form.cart .pewc-item-products-column').each(function(){
$(this).removeClass('pewc-active-field');
$(this).attr('data-field-price', 0);
$(this).attr('data-field-value', '');
pewc_update_checkbox_field_counter($(this), 0);
});
$('form.cart .pewc-column-wrapper .pewc-variable-child-product-wrapper.checked').each(function(){
var field_value=[];
var field_wrapper=$(this).closest('.pewc-item');
var parent_field_value=field_wrapper.attr('data-field-value');
if(parent_field_value!=0&&parent_field_value!=''){
field_value=parent_field_value.split(', ');
}
var parent_field_price=parseFloat(field_wrapper.attr('data-field-price'));
var selected_counter=parseInt(field_wrapper.attr('data-field-selected-counter') );
var is_hidden=field_wrapper.hasClass('pewc-hidden-field');
var is_dependent=(field_wrapper.hasClass('pewc-variation-dependent') )&&(! field_wrapper.hasClass('active') );
if(! is_hidden&&! is_dependent){
var quantities=$(this).closest('.pewc-column-wrapper').data('products-quantities');
field_wrapper.removeClass('pewc-active-field');
$(this).find('.pewc-variable-child-select').each(function(){
field_value.push($(this).find('option:selected').text());
var child_product_price=$(this).find(':selected').data('option-cost');
if(parseFloat($(this).find(':selected').attr('data-wcfad-price')) > 0){
child_product_price=parseFloat($(this).find(':selected').attr('data-wcfad-price'));
}
var qty=0;
if(quantities=='linked'){
qty=pewc_get_quantity(qty, 'linked');
selected_counter++;
}else if(quantities=='independent'){
qty=$(this).closest('.pewc-checkbox-image-wrapper').find('.pewc-child-quantity-field').val();
selected_counter +=parseInt(qty);
if(pewc_vars.multiply_independent=='yes' ){
var main_quantity=pewc_get_quantity();
qty=qty * parseFloat(main_quantity);
}}else if(quantities=='one-only'){
qty=pewc_get_quantity(1, 'one-only');
selected_counter++;
}
if(child_product_price > 0){
child_products_total +=parseFloat(child_product_price) * parseFloat(qty);
parent_field_price +=parseFloat(child_product_price) * parseFloat(qty);
}
if(field_value.length > 0){
field_wrapper.attr('data-field-price', parent_field_price);
set_summary_panel_data(field_wrapper, field_value.join(', '), parent_field_price);
}});
}
pewc_update_checkbox_field_counter(field_wrapper, selected_counter);
});
$('form.cart .pewc-column-wrapper .pewc-simple-child-product-wrapper.checked').each(function(){
var field_value=[];
var field_wrapper=$(this).closest('.pewc-item');
var parent_field_value=field_wrapper.attr('data-field-value');
if(parent_field_value!=0&&parent_field_value!=''){
field_value=parent_field_value.split(', ');
}
var parent_field_price=parseFloat(field_wrapper.attr('data-field-price'));
var selected_counter=parseInt(field_wrapper.attr('data-field-selected-counter') );
var is_hidden=field_wrapper.hasClass('pewc-hidden-field');
var is_dependent=(field_wrapper.hasClass('pewc-variation-dependent') )&&(! field_wrapper.hasClass('active') );
if(! is_hidden&&! is_dependent){
var quantities=$(this).closest('.pewc-column-wrapper').data('products-quantities');
field_wrapper.removeClass('pewc-active-field');
$(this).find('.pewc-checkbox-form-field').each(function(){
field_value.push($(this).attr('data-field-label') );
var child_product_price=$(this).data('option-cost');
if(parseFloat($(this).attr('data-wcfad-price')) > 0){
child_product_price=parseFloat($(this).attr('data-wcfad-price'));
}
var qty=0;
if(quantities=='linked'){
qty=pewc_get_quantity(qty, 'linked');
selected_counter++;
}else if(quantities=='independent'){
qty=$(this).closest('.pewc-simple-child-product-wrapper').find('.pewc-child-quantity-field').val();
selected_counter +=parseInt(qty);
if(pewc_vars.multiply_independent=='yes' ){
var main_quantity=pewc_get_quantity();
qty=qty * parseFloat(main_quantity);
}}else if(quantities=='one-only'){
qty=pewc_get_quantity(1, 'one-only');
selected_counter++;
}
if(child_product_price > 0){
child_products_total +=parseFloat(child_product_price) * parseFloat(qty);
parent_field_price +=parseFloat(child_product_price) * parseFloat(qty);
}
if(field_value.length > 0){
field_wrapper.attr('data-field-price', parent_field_price);
set_summary_panel_data(field_wrapper, field_value.join(', '), parent_field_price);
}});
}
pewc_update_checkbox_field_counter(field_wrapper, selected_counter);
});
$('form.cart .pewc-item-products-swatches').each(function(){
$(this).removeClass('pewc-active-field');
$(this).attr('data-field-price', 0);
$(this).attr('data-field-value', '');
});
$('form.cart .pewc-swatches-wrapper .pewc-child-variation-main').each(function(){
var field_value=[];
var parent_field_value=$(this).closest('.pewc-item').attr('data-field-value');
if(parent_field_value!=0&&parent_field_value!=''){
field_value=parent_field_value.split(', ');
}
var parent_field_price=parseFloat($(this).closest('.pewc-item').attr('data-field-price'));
var is_hidden=$(this).closest('.pewc-item').hasClass('pewc-hidden-field');
var is_dependent=($(this).closest('.pewc-item').hasClass('pewc-variation-dependent') )&&(! $(this).closest('.pewc-item').hasClass('active') );
if(! is_hidden&&! is_dependent){
var quantities=$(this).closest('.pewc-swatches-wrapper').data('products-quantities');
$(this).find('.pewc-child-name input').each(function(){
var child_product_price=parseFloat($(this).attr('data-option-cost') );
if(parseFloat($(this).attr('data-wcfad-price')) > 0){
child_product_price=parseFloat($(this).attr('data-wcfad-price'));
}
var qty=0;
if(child_product_price > 0&&$(this).is(':checked') ){
if(quantities=='linked'){
qty=pewc_get_quantity(qty, 'linked');
}else if(quantities=='independent'){
qty=$(this).closest('.pewc-child-variation-main').find('.pewc-child-quantity-field').val();
if(pewc_vars.multiply_independent=='yes' ){
var main_quantity=pewc_get_quantity();
qty=qty * parseFloat(main_quantity);
}}else if(quantities=='one-only'){
qty=pewc_get_quantity(1, 'one-only');
}}
if(qty < 1){
return;
}
field_value.push($(this).attr('data-field-label') );
child_products_total +=parseFloat(child_product_price) * parseFloat(qty);
parent_field_price +=parseFloat(child_product_price) * parseFloat(qty);
if(field_value.length > 0){
$(this).closest('.pewc-item').attr('data-field-price', parent_field_price);
set_summary_panel_data($(this).closest('.pewc-item'), field_value.join(', '), parent_field_price);
}});
}});
$('form.cart .grid-layout').each(function(){
var is_hidden=$(this).closest('.pewc-item').hasClass('pewc-hidden-field');
var is_hidden_group=$(this).closest('.pewc-group-wrap').hasClass('pewc-group-hidden');
var is_dependent=($(this).closest('.pewc-item').hasClass('pewc-variation-dependent') )&&(! $(this).closest('.pewc-item').hasClass('active') );
if(! is_hidden&&! is_hidden_group&&! is_dependent){
var child_product_price=parseFloat($(this).closest('.pewc-item').attr('data-price') );
child_products_total +=parseFloat(child_product_price);
}});
if(product_price < 0) product_price=0;
$('.pewc-summary-panel-group-row').addClass('pewc-summary-panel-field-row-inactive');
$('.pewc-group-wrap').not('.pewc-group-hidden').each(function(){
var group_id=$(this).attr('data-group-id');
$('.pewc-summary-panel-group-'+group_id).removeClass('pewc-summary-panel-field-row-inactive');
});
$('.pewc-summary-panel-field-row').addClass('pewc-summary-panel-field-row-inactive');
$('.pewc-active-field').not('.pewc-hidden-field, .pewc-hidden-calculation').each(function(){
var field_id=$(this).attr('data-field-id');
var field_type=$('.pewc-field-' + field_id).attr('data-field-type');
$('#pewc-summary-row-' + field_id).removeClass('pewc-summary-panel-field-row-inactive').addClass('pewc-field-' + field_type);
var field_price=parseFloat($(this).attr('data-field-price') );
if(field_price){
field_price=field_price.toFixed(pewc_vars.decimals);
}
var field_label=$(this).attr('data-field-label');
var field_value;
if($(this).attr('data-field-type')!='checkbox'){
field_value=$(this).attr('data-field-value');
}
$('#pewc-summary-row-' + field_id).find('.pewc-summary-panel-product-name').text(field_label);
$('#pewc-summary-row-' + field_id).find('.pewc-summary-panel-product-value').text(field_value);
$('#pewc-summary-row-' + field_id).find('.pewc-summary-panel-price').html(pewc_wc_price(field_price) );
});
var qty=1;
qty=pewc_get_quantity(qty, 'linked');
orig_total_price=total_price;
if(pewc_wcfad_apply_discount()){
total_price=pewc_wcfad.adjust_price(total_price);
if(repeatable_prices > 0){
repeatable_prices=pewc_wcfad.adjust_price(repeatable_prices);
}}
var subtotal=parseFloat(child_products_total) + parseFloat(total_price) + parseFloat(qty * product_price);
if(! isNaN(subtotal) ){
$('#pewc-summary-panel-subtotal').html(pewc_wc_price(subtotal.toFixed(pewc_vars.decimals)) );
}
var total_grid_variations=$('#pewc-grid-total-variations').val();
if(! pewc_is_booking_product()&&! pewc_wcbvp_variation_grid()){
var product_price=qty * product_price;
}
var grand_total=product_price;
var orig_grand_total=qty * orig_product_price;
base_price=product_price;
product_price=product_price.toFixed(pewc_vars.decimals);
product_price=pewc_wc_price(product_price);
product_price=add_price_suffix(product_price, base_price);
$('#pewc-per-product-total').html(product_price);
total_price=qty * total_price;
orig_total_price=qty * orig_total_price;
if(repeatable_prices > 0){
total_price +=repeatable_prices;
orig_total_price +=repeatable_prices;
}
if(total_grid_variations > 0){
total_price=total_grid_variations * total_price;
}
total_price +=child_products_total;
grand_total +=total_price;
orig_grand_total +=orig_total_price;
if(! isNaN(total_price) ){
var base_total_price=total_price;
total_price=total_price.toFixed(pewc_vars.decimals);
total_price=pewc_wc_price(total_price);
total_price=add_price_suffix(total_price, base_total_price);
$('#pewc-options-total').html(total_price);
}
if(flat_rate_total < 0) flat_rate_total=0;
base_flat_rate_total=flat_rate_total;
grand_total +=flat_rate_total;
flat_rate_total=flat_rate_total.toFixed(pewc_vars.decimals);
flat_rate_total=pewc_wc_price(flat_rate_total);
flat_rate_total=add_price_suffix(flat_rate_total, base_flat_rate_total);
$('#pewc-flat-rate-total').html(flat_rate_total);
if(( $('#pewc_calc_set_price').attr('data-calc-set')==1||$('input[name="pewc_calc_set_price"]').length > 1)&&$('.pewc-product-extra-groups-wrap .pewc-item-calculation').not('.pewc-hidden-field').length > 0){
if($('input[name="pewc_calc_set_price"]').length > 1){
var new_grand_total=0;
$('input[name="pewc_calc_set_price"]').each(function(){
if($(this).attr('data-calc-set')==1&&$(this).closest('.pewc-product-extra-groups-wrap').is(':visible') ){
new_grand_total=parseFloat($(this).closest('.pewc-product-extra-groups-wrap').find('input[name="pewc_calc_set_price"][data-calc-set="1"]').val());
}});
if(new_grand_total > 0){
grand_total=new_grand_total;
}}else{
grand_total=parseFloat($('#pewc_calc_set_price').val());
}
if($('form.cart .quantity .qty').length > 0){
if(pewc_wcfad_apply_discount()){
grand_total=pewc_wcfad.adjust_price(grand_total);
}
grand_total=grand_total * parseFloat($('form.cart .quantity .qty').val());
}}
if(! isNaN(grand_total) ){
if(isNaN(orig_grand_total)||orig_grand_total==grand_total){
orig_grand_total='';
}
var base_price=grand_total;
grand_total=grand_total.toFixed(pewc_vars.decimals);
grand_total=pewc_wc_price(grand_total);
if(pewc_vars.update_price=='yes'){
update_product_price(grand_total, base_price, orig_grand_total);
}
grand_total=add_price_suffix(grand_total, base_price);
$('#pewc-grand-total').html(grand_total);
if($('#pewc-grand-total_clone').length > 0){
$('#pewc-grand-total_clone').html(grand_total);
}}
if($update==0&&pewc_vars.conditions_timer < 1){
var interval=setTimeout(function(){
pewc_update_total_js(1);
if(! total_updated){
$('body').trigger('pewc_trigger_calculations');
total_updated=true;
}},
250);
}
$('body').trigger('pewc_after_update_total_js', [ base_total_price, base_price, grand_total ]);
}
function pewc_update_checkbox_field_counter(field_wrapper, counter){
var current_count=field_wrapper.attr('data-field-selected-counter');
if(current_count!=counter){
field_wrapper.attr('data-field-selected-counter', counter);
$('body').trigger('pewc_field_selected_counter_updated', [ field_wrapper, counter ]);
}}
function add_price_suffix(price, base_price){
if(pewc_vars.show_suffix=='yes'){
var price_suffix_setting=pewc_vars.price_suffix_setting;
if(price_suffix_setting.indexOf('{price_excluding_tax}') > -1){
var price_ex_tax=base_price *(pewc_vars.percent_exc_tax / 100);
suffix=price_suffix_setting.replace('{price_excluding_tax}', pewc_wc_price(price_ex_tax.toFixed(pewc_vars.decimals), false, false) );
}else if(price_suffix_setting.indexOf('{price_including_tax}') > -1){
var price_inc_tax=base_price *(pewc_vars.percent_inc_tax / 100);
suffix=price_suffix_setting.replace('{price_including_tax}', pewc_wc_price(price_inc_tax.toFixed(pewc_vars.decimals), false, false) );
}else{
suffix=pewc_vars.price_suffix;
}
price=price + ' <small class="woocommerce-price-suffix">' + suffix + '</small>';
}
return price;
}
function update_product_price(grand_total, base_price, orig_grand_total){
var price_suffix_setting=pewc_vars.price_suffix_setting;
var main_price=$('.pewc-main-price').not('.pewc-quickview-product-wrapper .pewc-main-price');
if(main_price.length > 1){
main_price.each(function(index, element){
if(index < 1){
$(this).addClass('pewc-main-main-price');
return false;
};});
main_price=$('.pewc-main-price.pewc-main-main-price');
}
var suffix=main_price.find('.woocommerce-price-suffix').html();
var label=main_price.find('.wcfad-rule-label').html();
var before=main_price.find('.pewc-label-before').html();
var after=main_price.find('.pewc-label-after').html();
var hide=main_price.find('.pewc-label-hidden');
var new_total='';
if(hide.length > 0){
new_total='<span class="pewc-label-hidden">' + hide.html() + '</span>';
}else{
if(before){
new_total +='<span class="pewc-label-before">' + before + ' </span>';
}
if(orig_grand_total!=''&&pewc_vars.disable_wcfad_label!='yes'){
orig_grand_total.toFixed(pewc_vars.decimals);
orig_grand_total=pewc_wc_price(orig_grand_total);
new_total +=' <s>' + orig_grand_total + '</s> ';
}
new_total +=grand_total;
if(after){
new_total +='<span class="pewc-label-after"> ' + after + '</span>';
}
if(suffix){
if(price_suffix_setting.indexOf('{price_excluding_tax}') > -1){
var price_ex_tax=base_price *(pewc_vars.percent_exc_tax / 100);
suffix=price_suffix_setting.replace('{price_excluding_tax}', pewc_wc_price(price_ex_tax.toFixed(pewc_vars.decimals), false, false) );
}else if(price_suffix_setting.indexOf('{price_including_tax}') > -1){
var price_inc_tax=base_price *(pewc_vars.percent_inc_tax / 100);
suffix=price_suffix_setting.replace('{price_including_tax}', pewc_wc_price(price_inc_tax.toFixed(pewc_vars.decimals), false, false) );
}
if(label&&suffix.indexOf('wcfad-rule-label') < 0){
suffix +='<br><span class="wcfad-rule-label">' + label + '</span>';
}
new_total +='&nbsp;<small class="woocommerce-price-suffix">' + suffix + '</small>';
}}
if(main_price.find('.wcfad-rule-label').length > 0&&new_total.indexOf('wcfad-rule-label')==-1){
var dpdr_label=main_price.find('.wcfad-rule-label');
new_total +='<br>' + dpdr_label[0].outerHTML;
}
main_price.html(new_total);
}
function set_summary_panel_data(field, value, added_price){
$(field).attr('data-field-value', value);
$(field).attr('data-field-price', added_price);
$(field).addClass('pewc-active-field');
}
function format_separator(num){
return num.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1,');
}
$('body').on('pewc_attach_form_cart_input_change', function(){
$('form.cart').on('keyup input change paste', 'input:not(.pewc-grid-quantity-field), select, textarea.pewc-has-field-price', function(){
pewc_update_total_js();
$('body').trigger('pewc_updated_total_js');
});
});
$('body').trigger('pewc_attach_form_cart_input_change');
var interval=setTimeout(function(){
pewc_update_total_js();
if('yes'==pewc_vars.enable_character_counter){
pewc_update_text_field_counters();
}},
250);
$('body').on('pewc_add_button_clicked', function(){
pewc_update_total_js();
});
$('body').on('pewc_force_update_total_js', function(){
pewc_update_total_js();
});
$('.pewc-groups-accordion h3').on('click',function(e){
var is_open=$(this).closest('.pewc-group-wrap').hasClass('group-active');
if($(this).closest('.pewc-group-wrap').hasClass('pewc-disabled-group')){
return;
}
if(pewc_vars.close_accordion=='yes'){
$('.pewc-group-wrap').removeClass('group-active');
}
if(! is_open||pewc_vars.close_accordion!='yes'){
$(this).closest('.pewc-group-wrap').toggleClass('group-active');
}});
if(pewc_vars.accordion_toggle=='open'){
$('.pewc-group-wrap').addClass('group-active');
}else if(pewc_vars.accordion_toggle=='closed'){
$('.pewc-group-wrap').removeClass('group-active');
}else{
$('.first-group').addClass('group-active');
}
$('.pewc-tab').on('click',function(e){
if($(this).hasClass('pewc-disabled-group')){
return;
}
e.preventDefault();
var tab_id=$(this).attr('data-group-id');
$('.pewc-tab').removeClass('active-tab tab-failed');
$('.pewc-group-js-validation-notice').hide();
$(this).addClass('active-tab');
$('.pewc-group-wrap').removeClass('group-active');
$('.pewc-group-wrap-'+tab_id).addClass('group-active');
});
$('.pewc-next-step-button').on('click',function(e){
e.preventDefault();
if($(this).hasClass('pewc-disabled-group')){
return;
}
var tab_id=$(this).attr('data-group-id');
var tab_index=$(this).closest('.pewc-group-wrap').attr('data-group-index');
var direction=$(this).attr('data-direction');
$('.pewc-tab').removeClass('active-tab tab-failed');
$('.pewc-group-js-validation-notice').hide();
if($('.pewc-group-wrap-' + tab_id).hasClass('pewc-group-hidden') ){
var total_tabs=$('.pewc-group-wrap').length;
if(direction=='next'){
for(var i=parseInt(tab_index) + 1; i < total_tabs; i++){
if(! $('.pewc-group-index-' + i).hasClass('pewc-group-hidden') ){
tab_id=$('.pewc-group-index-' + i).attr('data-group-id');
break;
}}
}else{
for(var i=parseInt(tab_index) - 1; i >=0; i--){
if(! $('.pewc-group-index-' + i).hasClass('pewc-group-hidden') ){
tab_id=$('.pewc-group-index-' + i).attr('data-group-id');
break;
}}
}}
$('#pewc-tab-' + tab_id).addClass('active-tab');
$('.pewc-group-wrap').removeClass('group-active');
$('.pewc-group-wrap-' + tab_id).addClass('group-active');
if(pewc_vars.steps_group_disable_scroll_to_top!='yes'){
if($('.pewc-steps-wrapper').length > 0){
$([document.documentElement, document.body]).animate({
scrollTop: $('.pewc-steps-wrapper').offset().top
}, 150);
}}
});
function pewc_get_text_str_len(str, wrapper){
var new_str, str_ex_spaces ;
var field=$(wrapper).find('.pewc-form-field');
if(pewc_vars.remove_spaces!='yes'){
str_ex_spaces=str.replace(/\s/g, "");
}else{
str_ex_spaces=str;
}
var str_len=str_ex_spaces.length;
if($(field).attr('data-alphanumeric')==1){
str_ex_spaces=str_ex_spaces.replace(/\W/g, '');
$(field).val(str_ex_spaces);
str_len=str_ex_spaces.length;
}
if($(field).attr('data-alphanumeric-charge')==1){
str_ex_spaces=str_ex_spaces.replace(/\W/g, '');
str_len=str_ex_spaces.length;
}
var freechars=$(field).attr('data-freechars');
str_len -=freechars;
str_len=Math.max(0,str_len);
return str_len;
}
function pewc_disable_child_product_quantities(){
$('.woocommerce-cart-form__cart-item.pewc-child-product').each(function(){
if(pewc_vars.disable_qty||pewc_vars.multiply_independent=='yes'){
$(this).find('.product-quantity input').attr('disabled',true);
}});
}
$('body').on('click', 'a.wfc-open-cart-button', function(e){
var timeout=setTimeout(
function(){
$('.wfc-cart-form__cart-item.pewc-child-product').each(function(){
if(pewc_vars.disable_qty||pewc_vars.multiply_independent=='yes'){
$(this).find('.product-quantity input').attr('disabled',true);
}});
},
250
);
});
if($('.woocommerce-cart-form__cart-item.pewc-child-product').length > 0){
pewc_disable_child_product_quantities();
$('body').on('updated_cart_totals', pewc_disable_child_product_quantities);
}
$('body').on('change','.products-quantities-independent .pewc-child-select-field',function(){
var number_field=$(this).closest('.child-product-wrapper').find('.pewc-child-quantity-field');
if($(this).val()!=''){
if($(number_field).val()==0){
$(number_field).val(1);
};}else{
$(number_field).val(0);
}
pewc_update_independent_quantity_input_max($(this), number_field);
});
function pewc_update_independent_quantity_input_max(select_field, number_field){
var available_stock=$(select_field).find(':selected').data('stock');
if(available_stock){
var number=$(number_field).attr('max', available_stock);
if($(number).val() > available_stock){
$(number_field).val(available_stock);
}}else{
$(number_field).removeAttr('max');
}}
$('body').on('change input keyup paste click','.products-quantities-independent .pewc-child-quantity-field',function(e){
e.stopPropagation();
if($(this).closest('.pewc-item').hasClass('pewc-item-products-select') ){
var selIndex=0;
if($(this).val() > 0){
var selField=$(this).closest('.pewc-item').find('select.pewc-child-select-field');
selIndex=selField.prop('selectedIndex');
if(selIndex < 1&&selField.val()==''){
$(this).closest('.pewc-item').find('select.pewc-child-select-field option').each(function(index, element){
if($(this).val()!=''&&selIndex < 1){
selIndex=index;
return;
}});
}}
$(this).closest('.pewc-item').find('select.pewc-child-select-field').prop('selectedIndex', selIndex);
}else{
if($(this).val() > 0){
var checkbox=$(this).closest('.pewc-checkbox-wrapper').find('input[type=checkbox]').prop('checked',true).trigger('change');
}else{
var checkbox=$(this).closest('.pewc-checkbox-wrapper').find('input[type=checkbox]').prop('checked',false).trigger('change');
}}
var available_stock=$(this).find(':selected').data('stock');
$('body').trigger('pewc_update_child_quantity', [ $(this).closest('.pewc-checkbox-wrapper').find('input[type=checkbox]') ]);
pewc_update_total_js();
});
$('body').on('change input keyup paste click', '.pewc-item-products-radio.pewc-item-products-independent .pewc-child-quantity-field, .pewc-item-products-radio-list.pewc-item-products-independent .pewc-child-quantity-field', function(e){
var item_field_wrapper=$(this).closest('.pewc-item-field-wrapper');
var pewc_item_wrapper=item_field_wrapper.closest('.pewc-item');
var radio_type='';
var number_checked=0;
if(pewc_item_wrapper.hasClass('pewc-item-products-radio') ){
radio_type='radio images';
number_checked=item_field_wrapper.find('.pewc-radio-images-wrapper .pewc-radio-image-wrapper.checked').length;
}else{
radio_type='radio list';
number_checked=item_field_wrapper.find('.pewc-radio-wrapper input.pewc-radio-form-field:checked').length;
}
var number_value=$(this).val();
if(number_value > 0&&number_checked < 1){
if(radio_type=='radio images'){
item_field_wrapper.find('.pewc-radio-images-wrapper .pewc-radio-image-wrapper').each(function(){
if(! $(this).hasClass('checked') ){
$(this).addClass('checked');
}
$(this).find('input.pewc-radio-form-field').prop('checked', true);
return false;
});
}else{
item_field_wrapper.find('.pewc-radio-list-wrapper .pewc-radio-wrapper input.pewc-radio-form-field').each(function(){
$(this).prop('checked', true);
return false;
});
}}else if(number_value < 1&&number_checked > 0){
if(radio_type=='radio images'){
item_field_wrapper.find('.pewc-radio-images-wrapper .pewc-radio-image-wrapper.checked').each(function(){
$(this).removeClass('checked');
$(this).find('input.pewc-radio-form-field').prop('checked', false);
});
}else{
item_field_wrapper.find('.pewc-radio-list-wrapper .pewc-radio-wrapper input.pewc-radio-form-field:checked').each(function(){
$(this).prop('checked', false);
});
}}
});
$('body').on('change input keyup paste','.pewc-item-products-independent.pewc-child-qty-target .pewc-child-quantity-field',function(){
var wrapper=$(this).closest('.pewc-item');
var triggered_by=$(wrapper).attr('data-child-qty-triggered-by');
var reverse_field_id=$('.pewc-field-' + triggered_by).attr('data-reverse-formula-field');
var reverse_formula=calculations.get_formula_by_id(reverse_field_id);
calc_field=$('.pewc-field-' + reverse_field_id);
calc_field_id=$(calc_field).attr('data-field-id');
price_wrapper=$(calc_field).find('.pewc-calculation-price-wrapper');
calc_field_id=$(calc_field).attr('data-field-id');
formula=$(price_wrapper).find('.pewc-data-formula').val();
fields=$(price_wrapper).find('.pewc-data-fields').val();
round=$(price_wrapper).find('.pewc-formula-round').val();
decimals=$(price_wrapper).find('.pewc-decimal-places').val();
if(fields){
fields=JSON.parse(fields);
}
var reverse_result=calculations.evaluate_formula(fields, reverse_formula, round, decimals, calc_field_id);
var source_field_id=$('.pewc-field-' + triggered_by).attr('data-reverse-input-field');
$('.pewc-field-' + source_field_id).find('input').val(reverse_result);
if($('.pewc-field-' + triggered_by).hasClass('pewc-quantity-overrides') ){
$(wrapper).addClass('pewc-quantity-updated');
}});
$('body').on('pewc_update_child_quantity', function(e, el){
var child_qty=$(el).closest('.pewc-checkbox-wrapper').find('input[type=number]').val();
if(child_qty > 0){
$(el).closest('.pewc-checkbox-image-wrapper').addClass('checked');
}else{
$(el).closest('.pewc-checkbox-image-wrapper').removeClass('checked');
}});
$('body').on('click', '.products-quantities-independent .pewc-checkbox-form-field', function(e){
if($(this).closest('.pewc-checkbox-images-wrapper').hasClass('pewc-force-quantity') ){
e.stopPropagation();
e.preventDefault();
return;
}
if($(this).is(':checked')){
var number=$(this).closest('.pewc-checkbox-wrapper').find('input[type=number]').val();
if(number==0){
var default_quantity=$(this).closest('.pewc-checkbox-wrapper').find('input[type=number]').attr('data-default-quantity');
if(default_quantity==undefined||pewc_vars.set_child_quantity_default!='yes'){
default_quantity=1;
}
$(this).closest('.pewc-checkbox-wrapper').find('input[type=number]').val(default_quantity);
}}else{
var number=$(this).closest('.pewc-checkbox-wrapper').find('input[type=number]').val(0);
}
e.stopPropagation();
});
$('body').on('click', '.products-quantities-linked .pewc-checkbox-form-field, .products-quantities-one-only .pewc-checkbox-form-field', function(e){
e.stopPropagation();
if($(this).is(':checked')){
$(this).closest('.pewc-checkbox-image-wrapper').addClass('checked');
}else{
$(this).closest('.pewc-checkbox-image-wrapper').removeClass('checked');
}});
$('body').on('change', '.pewc-text-swatch input', function(e){
var field_type=$(this).closest('.pewc-item').attr('data-field-type');
if(field_type=='radio'){
$(this).closest('ul').find('label').removeClass('active-swatch');
}
if($(this).prop('checked')==true){
$(this).closest('label').addClass('active-swatch');
}else{
$(this).closest('label').removeClass('active-swatch');
}});
$('body').on('click', '.pewc-radio-image-wrapper, .pewc-checkbox-image-wrapper', function(e){
var wrapper=$(this);
if($(wrapper).hasClass('pewc-checkbox-disabled') ){
return;
}
if($(wrapper).closest('.pewc-components-wrapper').hasClass('pewc-force-quantity') ){
return;
}
var radio;
var is_image_swatch_checkbox=$(wrapper).closest('.pewc-item').hasClass('pewc-item-image-swatch-checkbox');
var is_checkbox=$(wrapper).hasClass('pewc-checkbox-image-wrapper');
if(! is_image_swatch_checkbox&&! is_checkbox){
var checked=$(wrapper).find('.pewc-radio-form-field').prop('checked');
var group=$(wrapper).closest('.pewc-radio-images-wrapper').find('.pewc-radio-image-wrapper').removeClass('checked');
if(! checked){
$(wrapper).addClass('checked');
}
radio=$(wrapper).find('.pewc-radio-form-field').trigger('click');
}else{
if(is_checkbox){
e.preventDefault();
radio=$(wrapper).find('.pewc-checkbox-form-field');
$(wrapper).toggleClass('checked');
$(radio).trigger('click');
e.stopPropagation();
}else{
radio=$(wrapper).find('.pewc-radio-form-field');
var checked=$(radio).prop('checked');
$(wrapper).toggleClass('checked');
$(radio).prop('checked', ! checked).trigger('click');
}}
}).on('click', '.pewc-radio-image-wrapper .pewc-radio-form-field', function(e){
var is_image_swatch_checkbox=$(this).closest('.pewc-item').hasClass('pewc-item-image-swatch-checkbox');
if(! is_image_swatch_checkbox){
e.stopPropagation();
var checked=$(this).closest('.pewc-radio-image-wrapper').hasClass('checked');
if(! checked){
$(this).prop('checked', false).trigger('change');
pewc_update_total_js();
}}else{
e.stopPropagation();
$(this).closest('.pewc-radio-image-wrapper').toggleClass('checked');
}
$form=$(this).closest('form');
add_on_images.update_add_on_image($(this), $form);
});
$('body').on('click' , '.products-quantities-independent .pewc-radio-form-field', function(){
if($(this).is(':checked')){
var number_field=$(this).closest('.pewc-item-field-wrapper').find('input[type=number]');
var number=$(number_field).val();
if(number==0){
$(number_field).val(1);
}
if($(this).attr('data-stock') > 0){
$(number_field).attr('max', $(this).attr('data-stock'));
if($(number_field).val() > $(this).attr('data-stock')){
$(number_field).val($(this).attr('data-stock'));
}}
}else{
var number=$(this).closest('.pewc-item-field-wrapper').find('input[type=number]').val(0);
}});
function pewc_toggle_add_to_cart_button(eventType, disabled, caller){
var button=$('body').find('form.cart .single_add_to_cart_button');
var disable_class='pewc-disabled-by-'+caller;
if(button.length < 1) return;
if(disabled){
button.attr('disabled', true);
if(! button.hasClass(disable_class) ){
button.addClass(disable_class);
var button_text=pewc_vars.calculating_text;
if(caller==='upload'){
button_text=pewc_vars.uploading_text;
}
pewc_update_add_to_cart_button_text(button, button_text);
}}else{
button.removeClass(disable_class);
if(button.attr('class').indexOf('pewc-disabled-by')==-1){
button.attr('disabled', false);
pewc_update_add_to_cart_button_text(button, pewc_vars.default_add_to_cart_text);
}}
}
$('body').on('pewc_toggle_add_to_cart_button', pewc_toggle_add_to_cart_button);
function pewc_update_add_to_cart_button_text(button, button_text){
if(button.is('button') ){
button.text(button_text);
}else{
button.val(button_text);
}}
var calculations={
init: function(){
if(pewc_vars.calculations_timer > 0){
var interval=setInterval(
this.recalculate,
pewc_vars.calculations_timer
);
if(pewc_vars.disable_button_recalculate=='yes'){
$('body').on('keyup input change paste', 'form.cart .qty', this.disable_add_to_cart_button);
$('body').on('keyup input change paste', 'form.cart .pewc-item.pewc-calculation-trigger, .pewc-form-field.pewc-calculation-trigger, .pewc-field-triggers-condition .pewc-form-field, .pewc-field-triggers-condition .pewc-radio-form-field', this.disable_add_to_cart_button);
$('body').on('keyup input change paste', '.pewc-number-uploads', this.disable_add_to_cart_button);
$('body').on('pewc_trigger_calculations', this.disable_add_to_cart_button);
$('body').on('pewc_conditions_checked', this.disable_add_to_cart_button);
}}else{
$('body').on('keyup input change paste', 'form.cart .qty', this.recalculate);
$('body').on('keyup input change paste', 'form.cart .pewc-item.pewc-calculation-trigger, .pewc-form-field.pewc-calculation-trigger, .pewc-field-triggers-condition .pewc-form-field, .pewc-field-triggers-condition .pewc-radio-form-field', this.recalculate);
$('body').on('keyup input change paste', '.pewc-number-uploads', this.recalculate);
$('body').on('pewc_trigger_calculations', this.recalculate);
$('body').on('pewc_conditions_checked', this.recalculate);
}},
disable_add_to_cart_button: function(e){
var num_calcs=$('.pewc-product-extra-groups-wrap .pewc-item-calculation').not('.pewc-hidden-field').length;
if(parseFloat(num_calcs) < 1){
return;
}
pewc_toggle_add_to_cart_button(e, true, 'calculation_recalculate');
},
recalculate: function(e){
var num_calcs=parseInt($('.pewc-product-extra-groups-wrap .pewc-item-calculation').not('.pewc-hidden-field').length);
var num_formulas_in_field_prices=parseInt($('.pewc-product-extra-groups-wrap .pewc-field-price-has-formula').not('.pewc-hidden-field').length);
var num_formulas_in_option_prices=parseInt($('.pewc-product-extra-groups-wrap .pewc-field-option-price-has-formula').not('.pewc-hidden-field').length);
if(num_calcs < 1&&num_formulas_in_field_prices < 1&&num_formulas_in_option_prices < 1){
return;
}
var calc_field, price_wrapper, dimensions_wrapper, formula, tags, calc_formula, replace, calc_field_id, calc_value, prev_calc_value;
var calc_fields=[];
var update=0;
if(pewc_vars.calculations_timer > 0&&pewc_vars.disable_button_recalculate=='yes'){
var pewc_total_calc_price_start=$('#pewc_total_calc_price').val();
}
$('body').find('form.cart .pewc-item-calculation').not('.pewc-hidden-field').each(function(){
if($(this).hasClass('pewc-variation-dependent')&&! $(this).hasClass('active') ){
return;
}
var group=$(this).closest('.pewc-group-wrap');
if($(group).hasClass('pewc-group-hidden') ){
return;
}
var group_id=$(group).attr('data-group-id');
calc_field=$(this);
var field_id=$(calc_field).attr('data-id');
calc_field_id=$(calc_field).attr('data-field-id');
price_wrapper=$(calc_field).find('.pewc-calculation-price-wrapper');
formula=$(price_wrapper).find('.pewc-data-formula').val();
fields=$(price_wrapper).find('.pewc-data-fields').val();
tags=$(price_wrapper).find('.pewc-data-tag').val();
action=$(price_wrapper).find('.pewc-action').val();
round=$(price_wrapper).find('.pewc-formula-round').val();
decimals=$(price_wrapper).find('.pewc-decimal-places').val();
calc_value=$(price_wrapper).find('.pewc-calculation-value');
prev_calc_value=calc_value.val();
if(fields){
fields=JSON.parse(fields);
}
var result=calculations.evaluate_formula(fields, formula, round, decimals, calc_field_id);
if(result=='*'){
$(calc_field).closest('.pewc-item-calculation').attr('data-price', 0);
$(price_wrapper).find('span').html(pewc_vars.null_signifier);
calc_value.val(0);
if(prev_calc_value!=0){
calc_value.trigger('calculation_field_updated')
}
if(pewc_vars.disable_button_calcs=='yes'){
calc_fields.push(calc_field_id);
$('body').trigger('pewc_toggle_add_to_cart_button', [ true, 'calculation' ]);
}}else if(! result||! isNaN(result) ){
if(pewc_vars.disable_button_calcs=='yes'){
calc_fields=calc_fields.filter(function(item){
return item!==calc_field_id;
});
if(calc_fields.length < 1){
$('body').trigger('pewc_toggle_add_to_cart_button', [ false, 'calculation' ]);
}}
$(price_wrapper).find('span').html(result);
if(action=='cost'||action=='price'){
$(calc_field).closest('.pewc-item-calculation').attr('data-price', result);
$(price_wrapper).find('span').html(pewc_wc_price(result) );
}else if(action=='qty'){
$('form.cart').find('.quantity .qty').val(result).trigger('pewc_qty_changed');
}else if(action=='child-qty'){
var product_field_id=$(calc_field).closest('.pewc-item-calculation').find('.pewc-calculation-price-wrapper').attr('data-product-field-id');
var child_qty_product_id=$(calc_field).closest('.pewc-item-calculation').find('.pewc-calculation-price-wrapper').attr('data-child-product-id');
if(! $('.pewc-field-' + product_field_id).hasClass('pewc-quantity-updated') ){
$('.pewc-field-' + product_field_id).find('.pewc-child-quantity-field').val(result).trigger('pewc_update_child_quantity');
var group_name='pewc_group_' + group_id + '_' + product_field_id;
if($("input[name='" + group_name + "_child_product[]']:checked").length < 1){
$('#' + group_name + '_' + child_qty_product_id).prop('checked', true);
$('#' + group_name + '_' + child_qty_product_id).closest('.pewc-radio-image-wrapper').addClass('checked');
}}
}else if(! $(calc_field).hasClass('pewc-hidden-calculation') ){
var result_format=$(price_wrapper).find('.pewc-result-format').val();
if(result_format=='price'){
$(price_wrapper).find('span').html(pewc_wc_price(result) );
}else if(result_format=='price without currency'){
$(price_wrapper).find('span').html(pewc_wc_price_without_currency(result) );
}}
if(action=='price'){
$(calc_field).closest('.pewc-product-extra-groups-wrap').find('#pewc_calc_set_price').val(result).attr('data-calc-set', 1);
}
calc_value.val(result);
if(prev_calc_value!=result){
calc_value.trigger('calculation_field_updated');
calc_value.trigger('change');
}}else if(result&&isNaN(result)&&result!='error'){
allow_text_calcs_fields=pewc_vars.allow_text_calcs_fields;
if(pewc_vars.allow_text_calcs){
$(price_wrapper).find('span').html(result);
calc_value.val(result);
}else if(allow_text_calcs_fields.includes(parseInt(calc_field_id) )){
$(price_wrapper).find('span').html(result);
calc_value.val(result);
}}
update++;
});
if(num_formulas_in_field_prices > 0){
calculations.evaluate_field_prices();
}
if(num_formulas_in_option_prices > 0){
calculations.evaluate_option_prices();
}
if(update > 0){
update=0;
pewc_update_total_js();
}
if(pewc_vars.calculations_timer > 0&&pewc_vars.disable_button_recalculate=='yes'){
var pewc_total_calc_price_end=$('#pewc_total_calc_price').val();
var d=new Date();
var time=d.getTime();
if(pewc_total_calc_price_start!=pewc_total_calc_price_end){
$('body').trigger('pewc_toggle_add_to_cart_button', [ true, 'calculation_recalculate' ]);
$('#pewc_total_calc_price').attr('data-last-calc-time', time);
}else{
if(isNaN($('#pewc_total_calc_price').attr('data-last-calc-time')) ){
$('#pewc_total_calc_price').attr('data-last-calc-time', time);
}else{
var diff=parseFloat(time) - parseFloat($('#pewc_total_calc_price').attr('data-last-calc-time'));
if(isNaN(diff)||diff < pewc_vars.recalculate_waiting_time){
}else{
$('body').trigger('pewc_toggle_add_to_cart_button', [ false, 'calculation_recalculate' ]);
}}
}}
},
evaluate_look_up_table: function(calc_field_id){
var result=false;
if(pewc_look_up_fields==undefined) return false;
var look_up_field=pewc_look_up_fields[calc_field_id];
var table=look_up_field[0];
var x_field=look_up_field[1];
var y_field=look_up_field[2];
var x_value=this.get_field_value(x_field);
var y_value=this.get_field_value(y_field);
var tables=pewc_look_up_tables[table];
if(tables==undefined){
return false;
}
var x_axis=tables[x_value];
if(x_axis==undefined&&x_value&&x_value!=undefined){
if(this.exact_match(calc_field_id, 'x') ){
return '*';
}else{
x_value=calculations.find_nearest_index(x_value, tables);
x_axis=tables[x_value];
}}else if(x_axis==undefined&&x_value==0&&x_value!=undefined){
x_axis=tables[Object.keys(tables)[0]];
}
if(x_axis!=undefined){
var y_axis=tables[y_value];
if(y_value&&y_value!=undefined){
if(! this.exact_match(calc_field_id, 'y') ){
y_value=calculations.find_nearest_index(y_value, x_axis);
}}
if(y_value=='max'){
result=x_axis[Object.keys(x_axis)[Object.keys(x_axis).length - 1]];
}else{
result=x_axis[y_value];
}
if(this.exact_match(calc_field_id, 'y')&&result==undefined){
result='*';
}}else{
return false;
}
return result;
},
get_field_value: function(field_id){
var value=0;
if($('.pewc-field-' + field_id).find('input.pewc-number-field').length > 0){
return $('.pewc-field-' + field_id).find('input.pewc-number-field').val();
}else if($('.pewc-field-' + field_id).find('select').length > 0){
if(! isNaN($('.pewc-field-' + field_id).find('select option:selected').attr('value') )){
return $('.pewc-field-' + field_id).find('select option:selected').attr('value');
}else{
return $('.pewc-field-' + field_id).find('select option:selected').attr('data-option-cost');
}}else if($('.pewc-field-' + field_id).find('input.pewc-radio-form-field[type="radio"]:checked').length > 0){
return $('.pewc-field-' + field_id).find('input.pewc-radio-form-field[type="radio"]:checked').attr('data-option-cost');
}
return value;
},
find_nearest_index: function(value, axis){
var keys=Object.keys(axis);
keys.sort((a,b)=> a-b);
if(parseFloat(value) <=parseFloat(keys[0]) ){
return keys[0];
}
if(pewc_vars.set_initial_key=='yes'){
if(isNaN(keys[0])||keys[0]==''){
keys[0]=0;
}}
for(var i=0; i < keys.length; i++){
if(( parseFloat(value) > parseFloat(keys[i]) )&&keys[i+1]!=undefined&&(parseFloat(value) <=parseFloat(keys[i+1]) )){
return keys[i+1];
}}
if(keys[(keys.length) - 1]=='max'){
return 'max';
}
return keys[i];
},
exact_match: function(calc_field_id, axis){
if($('.pewc-item-calculation.pewc-field-' + calc_field_id).attr('data-exact-match-' + axis)=='yes'){
return true;
}else{
return false;
}},
evaluate_formula: function(fields, formula, round, decimals, calc_field_id){
var calc_formula=formula;
if(fields){
for(var i in fields){
if(fields[i].indexOf('_option_price') > -1){
var field_id=fields[i].replace('_option_price', '');
var o_price=parseFloat($('form.cart .pewc-field-' + field_id).attr('data-selected-option-price') );
if($('form.cart .pewc-field-' + field_id).length==0&&pewc_vars.zero_missing_field=='yes'){
o_price=0;
}
replace=new RegExp('{field_' + fields[i] + '}', 'g');
calc_formula=calc_formula.replace(replace, o_price);
}else if(fields[i].indexOf('_option_value') > -1){
var field_id=fields[i].replace('_option_value', '');
var o_value=parseFloat($('form.cart .pewc-field-' + field_id).attr('data-field-value'));
if(( $('form.cart .pewc-field-' + field_id).length==0&&pewc_vars.zero_missing_field=='yes')||isNaN(o_value) ){
o_value=0;
}
replace=new RegExp('{field_' + fields[i] + '}', 'g');
calc_formula=calc_formula.replace(replace, o_value);
}else if(fields[i].indexOf('_field_price') > -1){
var field_id=fields[i].replace('_field_price', '');
var f_price=parseFloat($('form.cart .pewc-field-' + field_id).attr('data-field-price') );
if($('form.cart .pewc-field-' + field_id).length==0&&pewc_vars.zero_missing_field=='yes'){
f_price=0;
}
replace=new RegExp('{field_' + fields[i] + '}', 'g');
calc_formula=calc_formula.replace(replace, f_price);
}else if(fields[i].indexOf('_number_uploads') > -1){
var field_id=fields[i].replace('_number_uploads', '');
var num_uploads=parseFloat($('form.cart .pewc-field-' + field_id).find('.pewc-number-uploads').val());
if($('form.cart .pewc-field-' + field_id).length==0&&pewc_vars.zero_missing_field=='yes'){
num_uploads=0;
}
replace=new RegExp('{field_' + fields[i] + '}', 'g');
calc_formula=calc_formula.replace(replace, num_uploads);
}else if(fields[i].indexOf('_pdf_count') > -1){
var field_id=fields[i].replace('_pdf_count', '');
var pdf_count=parseFloat($('#field_' + field_id + "_pdf_count").val());
replace=new RegExp('{field_' + fields[i] + '}', 'g');
calc_formula=calc_formula.replace(replace, pdf_count);
}else if(fields[i].indexOf('_weight') > -1){
var field_id=fields[i].replace('_weight', '');
var weight=$('form.cart .pewc-field-' + field_id).find('input:checked').closest('.pewc-radio-wrapper').attr('data-product-weight');
replace=new RegExp('{field_' + fields[i] + '}', 'g');
calc_formula=calc_formula.replace(replace, weight);
}else if(fields[i].indexOf('_length') > -1){
var field_id=fields[i].replace('_length', '');
var length=$('form.cart .pewc-field-' + field_id).find('input:checked').closest('.pewc-radio-wrapper').attr('data-product-length');
replace=new RegExp('{field_' + fields[i] + '}', 'g');
calc_formula=calc_formula.replace(replace, length);
}else if(fields[i].indexOf('_width') > -1){
var field_id=fields[i].replace('_width', '');
var width=$('form.cart .pewc-field-' + field_id).find('input:checked').closest('.pewc-radio-wrapper').attr('data-product-width');
replace=new RegExp('{field_' + fields[i] + '}', 'g');
calc_formula=calc_formula.replace(replace, width);
}else if(fields[i].indexOf('_height') > -1){
var field_id=fields[i].replace('_height', '');
var height=$('form.cart .pewc-field-' + field_id).find('input:checked').closest('.pewc-radio-wrapper').attr('data-product-height');
replace=new RegExp('{field_' + fields[i] + '}', 'g');
calc_formula=calc_formula.replace(replace, height);
}else if(fields[i].indexOf('_quantity') > -1){
var field_id=fields[i].replace('_quantity', '');
var quantity=$('form.cart .pewc-field-' + field_id).find('.pewc-independent-quantity-field').val();
replace=new RegExp('{field_' + fields[i] + '}', 'g');
calc_formula=calc_formula.replace(replace, quantity);
}else{
var f_val=parseFloat($('form.cart .pewc-number-field-' + fields[i]).val());
if(! f_val&&pewc_vars.zero_missing_field=='yes'){
f_val=0;
}
if(! isNaN(f_val) ){
if($('form.cart .pewc-field-' + fields[i]).length==0&&pewc_vars.zero_missing_field=='yes'){
f_val=0;
}
replace=new RegExp('{field_' + fields[i] + '}', 'g');
calc_formula=calc_formula.replace(replace, f_val);
}}
}}
if(formula===undefined){
console.log('formula not defined: ' + calc_field_id);
return false;
}
var product_price=parseFloat($('#pewc-product-price').val());
if(typeof pewc_wcfad!=='undefined'&&pewc_wcfad.reset_product_price(formula, calc_field_id) ){
product_price=parseFloat($('#pewc-product-price-original').val());
}
var quantity=parseFloat($('form.cart .quantity').find('.qty').val());
if(formula.includes("{look_up_table}") ){
calc_formula=calculations.evaluate_look_up_table(calc_field_id);
}
if(formula.includes("{product_weight}") ){
var product_weight=parseFloat($('#pewc_product_weight').val());
calc_formula=calc_formula.replace(/{product_weight}/g, parseFloat(product_weight) );
}
if(formula.includes("{product_height}") ){
var product_height=parseFloat($('#pewc_product_height').val());
calc_formula=calc_formula.replace(/{product_height}/g, parseFloat(product_height) );
}
if(formula.includes("{product_length}") ){
var product_length=parseFloat($('#pewc_product_length').val());
calc_formula=calc_formula.replace(/{product_length}/g, parseFloat(product_length) );
}
if(formula.includes("{product_width}") ){
var product_width=parseFloat($('#pewc_product_width').val());
calc_formula=calc_formula.replace(/{product_width}/g, parseFloat(product_width) );
}
if(formula.includes("{product_price}")&&product_price){
calc_formula=calc_formula.replace(/{product_price}/g, parseFloat(product_price) );
}
if(formula.includes("{quantity}")&&quantity){
calc_formula=calc_formula.replace(/{quantity}/g, parseFloat(quantity) );
}
if(formula.includes("{variable_1}")&&pewc_vars.variable_1){
calc_formula=calc_formula.replace(/{variable_1}/g, parseFloat(pewc_vars.variable_1) );
}
if(formula.includes("{variable_2}")&&pewc_vars.variable_2){
calc_formula=calc_formula.replace(/{variable_2}/g, parseFloat(pewc_vars.variable_2) );
}
if(formula.includes("{variable_3}")&&pewc_vars.variable_3){
calc_formula=calc_formula.replace(/{variable_3}/g, parseFloat(pewc_vars.variable_3) );
}
if(formula.includes("{calculated_booking_cost}") ){
var calculated_booking_cost=parseFloat($('#calculated_booking_cost').val());
calc_formula=calc_formula.replace(/{calculated_booking_cost}/g, parseFloat(calculated_booking_cost) );
}
if(formula.includes("{num_units_int}") ){
var num_units_int=parseFloat($('#num_units_int').val());
calc_formula=calc_formula.replace(/{num_units_int}/g, parseFloat(num_units_int) );
}
if(formula.includes("{num_bookings}") ){
var num_units_int=parseFloat($('#num_bookings').val());
calc_formula=calc_formula.replace(/{num_bookings}/g, parseFloat(num_units_int) );
}
if(formula.includes("{total_variations}") ){
var total_variations=parseFloat($('#wcbvp_total_variations').val());
calc_formula=calc_formula.replace(/{total_variations}/g, parseFloat(total_variations) );
}
if(formula.includes("{pa_") ){
var attribute=formula.replace("{", "");
var attribute=attribute.replace("}", "");
var attribute_data=pewc_vars.attribute_data;
calc_formula=parseFloat(attribute_data[attribute]);
}
if(pewc_vars.global_calc_vars){
var global_calc_vars=pewc_vars.global_calc_vars;
for(var key in global_calc_vars){
if(formula.includes("{" + key + "}") ){
var global_var="{" + key + "}";
var global_var_regex=new RegExp(global_var, 'g');
calc_formula=calc_formula.replace(global_var_regex, global_calc_vars[key]);
}}
}
if(typeof pewc_acf_fields!='undefined'){
for(var key in pewc_acf_fields){
if(formula.includes("{acf_" + key + "}") ){
var acf_field="{acf_" + key + "}";
var acf_field_regex=new RegExp(acf_field, 'g');
calc_formula=calc_formula.replace(acf_field_regex, pewc_acf_fields[key]);
}}
}
var result;
if(calc_formula=='*') return calc_formula;
if(pewc_vars.allow_text_calcs){
return calc_formula;
}
allow_text_calcs_fields=pewc_vars.allow_text_calcs_fields;
if(allow_text_calcs_fields.includes(parseInt(calc_field_id) )){
return calc_formula;
}
try {
result=math.eval(calc_formula);
if(round=='ceil'){
result=math.ceil(result);
}else if(round=='floor'){
result=math.floor(result);
}
if(pewc_vars.math_round=='yes'){
result=Math.round(result * 100) / 100;
}
return result.toFixed(parseFloat(decimals) );
} catch(err){
return 'error';
}},
get_formula_by_id: function(reverse_field_id){
var formula=$('.pewc-field-' + reverse_field_id).find('.pewc-data-formula').val();
return formula;
},
evaluate_field_prices: function(){
$('body').find('form.cart .pewc-field-price-has-formula').not('.pewc-hidden-field').each(function(){
if($(this).hasClass('pewc-variation-dependent')&&! $(this).hasClass('active') ){
return;
}
var group=$(this).closest('.pewc-group-wrap');
if($(group).hasClass('pewc-group-hidden') ){
return;
}
var group_id=$(group).attr('data-group-id');
var pewc_item=$(this);
var field_id=$(pewc_item).attr('data-id');
var data_field_id=$(pewc_item).attr('data-field-id');
var formula=$(pewc_item).attr('data-field-price-formula');
if(formula==undefined){
return;
}
var fields=$(pewc_item).attr('data-field-price-formula-fields');
var tags=$(pewc_item).attr('data-field-price-formula-tags');
var round=$(pewc_item).attr('data-field-price-formula-round');
var decimals=$(pewc_item).attr('data-field-price-formula-decimals');
if(fields){
fields=JSON.parse(fields);
}
var result=calculations.evaluate_formula(fields, formula, round, decimals, data_field_id);
if(isNaN(result) ){
result=0;
}
$(pewc_item).attr('data-price', result);
if('checkbox'===$(pewc_item).attr('data-field-type') ){
$(pewc_item).find('.pewc-checkbox-price').html(pewc_wc_price(result, true) );
}else{
$(pewc_item).find('.pewc-field-price').html(pewc_wc_price(result, true) );
}
$(pewc_item).find('input[name="' + field_id + '_field_price_calculated"]').val(result);
});
},
evaluate_option_prices: function(){
$('body').find('form.cart .pewc-field-option-price-has-formula').not('.pewc-hidden-field').each(function(){
if($(this).hasClass('pewc-variation-dependent')&&! $(this).hasClass('active') ){
return;
}
var group=$(this).closest('.pewc-group-wrap');
if($(group).hasClass('pewc-group-hidden') ){
return;
}
var group_id=$(group).attr('data-group-id');
var pewc_item=$(this);
var field_id=$(pewc_item).attr('data-id');
var data_field_id=$(pewc_item).attr('data-field-id');
var round=$(pewc_item).attr('data-field-price-formula-round');
var decimals=$(pewc_item).attr('data-field-price-formula-decimals');
$(this).find('.pewc-option-price-has-formula').each(function(){
var opt=$(this);
var formula=$(opt).attr('data-option-cost-formula');
if(formula==undefined){
return;
}
var fields=$(opt).attr('data-option-price-formula-fields');
var tags=$(opt).attr('data-option-price-formula-tags');
var index=$(opt).attr('data-option-index');
if(fields){
fields=JSON.parse(fields);
}
var result=calculations.evaluate_formula(fields, formula, round, decimals, data_field_id);
if(isNaN(result) ){
result=0;
}
if($(opt).attr('data-option-cost')==result&&'select'===$(pewc_item).attr('data-field-type') ){
return;
}
$(opt).attr('data-option-cost', result);
$(opt).closest('label').find('.pewc-option-cost-label').html(pewc_wc_price(result) );
if('select'===$(pewc_item).attr('data-field-type') ){
var new_text=$(opt).val() + pewc_vars.separator + pewc_wc_price(result, true);
$(this).text(new_text);
}else if('select-box'===$(pewc_item).attr('data-field-type') ){
var selectbox=$('#' + field_id + '_select_box');
if(selectbox.length > 0){
var optprice=0;
selectbox.find('.dd-option').each(function(index, element){
optprice=parseFloat($('input[name="' + field_id + '_option_' + index + '_price_calculated"]').val());
if(! isNaN(optprice) ){
$(element).find('.dd-option-description').html(pewc_wc_price(optprice, true) );
}});
var selected_value=$(pewc_item).find('.dd-selected-value').val();
var select_option_index=0;
select_option_index=$('select#' + field_id + ' option[value="' + selected_value.replace(/"/g, '\\"') + '"]').index();
optprice=parseFloat($('input[name="' + field_id + '_option_' + select_option_index + '_price_calculated"]').val());
if(! isNaN(optprice) ){
$(pewc_item).find('.dd-selected-description').html(pewc_wc_price(optprice, true) );
$(pewc_item).attr('data-selected-option-price', optprice);
}}
}
$(pewc_item).find('input[name="' + field_id  + '_option_' + index + '_price_calculated"]').val(result);
});
});
}}
calculations.init();
var hidden_groups={
init: function(){
$('body').on('pewc_conditions_checked', this.check_group_visibility);
},
check_group_visibility: function(){
$('body').find('.pewc-group-wrap').each(function(){
var all_hidden=true;
var group=$(this);
$(group).find('.pewc-item').each(function(){
if(! $(this).hasClass('pewc-hidden-field') ){
all_hidden=false;
}});
if(all_hidden){
$(group).addClass('pewc-hidden-group');
}else{
$(group).removeClass('pewc-hidden-group');
}});
}}
hidden_groups.init();
var summary_panel={
init: function(){
$('.pewc-form-field').on('change update keyup', this.update_panel);
},
update_panel: function(e){
var field_id=$(this).closest('.pewc-item').attr('data-field-id');
var field_value=$(this).val();
},
}
summary_panel.init();
var add_on_images={
init: function(){
var $product=$('form.cart').closest('.product'),
$product_gallery=$product.find(pewc_vars.product_gallery),
$gallery_nav=$product.find('.flex-control-nav'),
$gallery_img=$gallery_nav.find('li:eq(0) img'),
$product_img_wrap=$product_gallery.find(pewc_vars.product_img_wrap).eq(0),
$product_img=$product_img_wrap.find('img').eq(0),
$product_link=$product_img_wrap.find('a').eq(0);
if(add_on_images.replace_image()){
$product_img.attr('data-pewc-from-field', '');
$(document).ready(function(){
add_on_images.replace_main_with_default();
});
$('body').on('pewc_group_visibility_updated', function(e, id, action){
add_on_images.check_if_src_hidden($product_img);
});
$('body').on('pewc_field_visibility_updated', function(e, id, action){
var pewc_item=$('.pewc-item.' + id);
if(pewc_item.attr('data-field-value')!=''){
if(pewc_item.data('field-type')==='image_swatch'){
var field=pewc_item.find('input[name="' + id + '[]"]:checked')[0];
}else{
var field=pewc_item.find('input[name="' + id + '[]"]')[0];
}
var $form=pewc_item.closest('form');
add_on_images.update_add_on_image($(field), $form);
}});
}
$('.pewc-swatch-parent .pewc-radio-form-field').on('change', this.change_child);
$('.pewc-swatch-child .pewc-radio-form-field').on('change', this.sync_children);
},
replace_image: function(field){
if(pewc_vars.replace_image){
return pewc_vars.replace_image;
}else if(field){
if(field.hasClass('pewc-replace-main-image') ){
return true;
}}else{
if($(document).find('.pewc-replace-main-image').length > 0){
return true;
}}
return false;
},
save_original_src: function($product_img){
if($product_img.attr('data-pewc-old-src') ){
return;
}
$product_img.attr('data-pewc-old-src', $product_img.attr('src') );
if($product_img.attr('data-src') ){
$product_img.attr('data-pewc-old-data-src', $product_img.attr('data-src') );
}else{
$product_img.attr('data-pewc-old-data-src', '');
}
if($product_img.attr('srcset') ){
$product_img.attr('data-pewc-old-srcset', $product_img.attr('srcset') );
}else{
$product_img.attr('data-pewc-old-srcset', '');
}
if($product_img.attr('data-large_image') ){
$product_img.attr('data-pewc-old-data-large_image', $product_img.attr('data-large_image') );
}else{
$product_img.attr('data-pewc-old-data-large_image', '');
}
if($product_img.attr('data-large_image_width') ){
$product_img.attr('data-pewc-old-data-large_image_width', $product_img.attr('data-large_image_width') );
}else{
$product_img.attr('data-pewc-old-data-large_image_width', '');
}
if($product_img.attr('data-large_image_height') ){
$product_img.attr('data-pewc-old-data-large_image_height', $product_img.attr('data-large_image_height') );
}else{
$product_img.attr('data-pewc-old-data-large_image_height', '');
}
var zoomImg=$product_img.closest(pewc_vars.product_img_wrap).find(pewc_vars.product_img_zoom).eq(0);
if(zoomImg){
$product_img.attr('data-pewc-old-zoom', zoomImg.attr('src') );
}},
update_add_on_image: function(field, $form){
var field_wrapper=$(field).closest('.pewc-item');
var is_layered=$(field_wrapper).attr('data-field-layered');
if(! add_on_images.replace_image(field_wrapper)&&is_layered!='yes'){
return;
}
var field_type=$(field_wrapper).attr('data-field-type');
var $product=$form.closest('.product'),
$product_gallery=$product.find(pewc_vars.product_gallery),
$layer_parent=pewc_vars.layer_parent,
$gallery_nav=$product.find('.flex-control-nav'),
$gallery_img=$gallery_nav.find('li:eq(0) img'),
$product_img_wrap=$product_gallery.find(pewc_vars.product_img_wrap).eq(0),
$product_img=$product_img_wrap.find('img').eq(0),
$product_link=$product_img_wrap.find('a').eq(0);
if(! $(field_wrapper).hasClass('pewc-has-field-image')&&field_type!='image_swatch'&&field_type!='select-box'){
add_on_images.check_if_src_hidden($product_img);
return;
}
if($(field_wrapper).closest('.pewc-group-wrap').hasClass('pewc-group-hidden') ){
add_on_images.check_if_src_hidden($product_img);
return;
}
if(( $(field_wrapper).hasClass('pewc-variation-dependent')&&! $(field_wrapper).hasClass('active') )||$(field_wrapper).hasClass('pewc-hidden-field') ){
add_on_images.check_if_src_hidden($product_img);
return;
}
var add_on_image_wrapper;
var add_on_image_src;
var add_on_image_large_image, add_on_image_large_image_width, add_on_image_large_image_height;
var turn='off';
var add_on_image_field='', add_on_image_option='';
if(field_type=='checkbox'&&$(field).prop('checked')&&add_on_images.replace_image(field_wrapper)!='replace_image_swatch_only'){
turn='on';
add_on_image_wrapper=$(field_wrapper).find('.pewc-item-field-image-wrapper');
add_on_image_src=$(add_on_image_wrapper).attr('data-image-full-size');
add_on_image_srcset=add_on_image_src;
add_on_image_large_image=$(add_on_image_wrapper).attr('data-image-full-size');
add_on_image_large_image_width=$(add_on_image_wrapper).attr('data-large_image_width');
add_on_image_large_image_height=$(add_on_image_wrapper).attr('data-large_image_height');
add_on_image_field='pewc-add-on-image-' + $(field_wrapper).attr('data-field-id');
}
if(field_type=='image_swatch'){
add_on_image_wrapper=field.closest('.pewc-radio-image-wrapper');
if(add_on_image_wrapper.hasClass('checked') ){
add_on_image_src=add_on_image_wrapper.find('img').attr('data-src');
add_on_image_srcset=add_on_image_src;
add_on_image_large_image=add_on_image_wrapper.find('img').attr('data-large_image');
add_on_image_large_image_width=add_on_image_wrapper.find('img').attr('data-large_image_width');
add_on_image_large_image_height=add_on_image_wrapper.find('img').attr('data-large_image_height');
if(add_on_image_src!=undefined){
turn='on';
if($(field_wrapper).hasClass('pewc-item-radio') ){
$product_img.closest('.' + pewc_vars.layer_parent).removeClass(function(index, className){
return (className.match(/(^|\s)pewc\-add\-on\-image\-\S+/g)||[]).join(' ');
});
}
add_on_image_field='pewc-add-on-image-' + $(field_wrapper).attr('data-field-id');
add_on_image_option=add_on_image_field + '-' + $(field).attr('id').replace($(field_wrapper).attr('data-id') + '_', '');
}}
}else if(field_type=='select-box'&&add_on_images.replace_image(field_wrapper)!='replace_image_swatch_only'){
if(field_wrapper.find('input.dd-selected-value').val()!=''){
var src_image=field_wrapper.find('input.dd-selected-image-full');
if(src_image.length > 0){
add_on_image_src=src_image.val();
}else{
src_image=field_wrapper.find('img.dd-selected-image');
add_on_image_src=src_image.attr('src');
}
add_on_image_srcset=add_on_image_src;
add_on_image_large_image=add_on_image_src;
add_on_image_large_image_width=src_image.attr('data-imgsrc-width');
add_on_image_large_image_height=src_image.attr('data-imgsrc-height');
if(add_on_image_src!=undefined){
turn='on';
$product_img.closest('.' + pewc_vars.layer_parent).removeClass(function(index, className){
return (className.match(/(^|\s)pewc\-add\-on\-image\-\S+/g)||[]).join(' ');
});
add_on_image_field='pewc-add-on-image-' + $(field_wrapper).attr('data-field-id');
add_on_image_option=add_on_image_field + '-index-' + $(field_wrapper).find('select').prop('selectedIndex');
}}
}
if(is_layered=='yes'){
var field_id=$(field_wrapper).attr('data-field-id');
var layer_id='pewc-layer-' + field_id;
var layer_index=$(field_wrapper).attr('data-field-index');
var swatch_src=$(add_on_image_wrapper).find('img').attr('data-large_image');
if($(add_on_image_wrapper).find('img').attr('data-alt_image').length > 0){
swatch_src=$(add_on_image_wrapper).find('img').attr('data-alt_image');
}
if($('.' + layer_id).length===0&&$(add_on_image_wrapper).hasClass('checked') ){
var layer_image='<img class="pewc-layer-image" src="' + swatch_src + '">';
$($('.' + $layer_parent) ).append('<div class="pewc-image-layer ' + layer_id + '" style="z-index:' +(layer_index + 1) * 10 + '">' + layer_image + '</div>');
}else if($('.' + layer_id).length!==0&&$(add_on_image_wrapper).hasClass('checked') ){
$('.' + layer_id).find('img').attr('src', swatch_src);
}else if(! $(add_on_image_wrapper).hasClass('checked') ){
$('.' + layer_id).remove();
}
if(add_on_image_field!=''&&! $('.' + pewc_vars.layer_parent).hasClass(add_on_image_field) ){
$product_img.closest('.' + pewc_vars.layer_parent).addClass(add_on_image_field);
}
if(add_on_image_option!=''&&! $('.' + pewc_vars.layer_parent).hasClass(add_on_image_option) ){
$product_img.closest('.' + pewc_vars.layer_parent).addClass(add_on_image_option);
}}else if(add_on_image_src&&turn=='on'){
add_on_images.save_original_src($product_img);
$product_img.attr('data-pewc-from-field', $(field_wrapper).attr('data-id') );
$product_img.attr('src', add_on_image_src);
$product_img.attr('srcset', add_on_image_srcset);
$product_img.attr('data-src', add_on_image_src);
$product_img.attr('data-large_image', add_on_image_large_image);
$product_img.attr('data-large_image_width', add_on_image_large_image_width);
$product_img.attr('data-large_image_height', add_on_image_large_image_height);
var zoomImg=$product_img.closest(pewc_vars.product_img_wrap).find(pewc_vars.product_img_zoom).eq(0);
if(zoomImg){
zoomImg.attr('src', add_on_image_src);
}
if(add_on_image_field!=''&&! $('.' + pewc_vars.layer_parent).hasClass(add_on_image_field) ){
$product_img.closest('.' + pewc_vars.layer_parent).addClass(add_on_image_field);
}
if(add_on_image_option!=''&&! $('.' + pewc_vars.layer_parent).hasClass(add_on_image_option) ){
$product_img.closest('.' + pewc_vars.layer_parent).addClass(add_on_image_option);
}}else{
$product_img.closest('.' + pewc_vars.layer_parent).removeClass(function(index, className){
return (className.match (/(^|\s)pewc\-add\-on\-image\-\S+/g)||[]).join(' ');
});
add_on_images.replace_main_with_default($product_img, false);
}
if(pewc_vars.replace_image_focus=='yes'){
var control_list_selector='.' + pewc_vars.control_container + ' ' + pewc_vars.control_list;
$(control_list_selector).first().find(pewc_vars.control_element).trigger('click');
$('body').trigger('pewc_update_add_on_image_focus_on_main_image');
}},
change_child: function(e){
var parent_swatch=e.target;
var parent_index=$(parent_swatch).closest('.pewc-item').find('.pewc-radio-image-wrapper.checked input').attr('data-option-index');
if(! isNaN(parent_index) ){
$('.pewc-swatch-child').addClass('pewc-visibility-hidden');
$('.pewc-swatch-child-' + parent_index).removeClass('pewc-visibility-hidden');
var active_layer_id=$('.pewc-swatch-child-' + parent_index).attr('data-field-id');
var selected_input=$('.pewc-swatch-child').not('.pewc-visibility-hidden').closest('.pewc-item').find('.pewc-radio-image-wrapper.checked input');
var index=$(selected_input).attr('data-option-index');
$('.pewc-swatch-child-' + parent_index).find('.pewc-radio-image-wrapper.pewc-radio-form-field').prop('checked', false);
$('.pewc-layer-' + active_layer_id).show();
var child_swatch_ids=JSON.parse(pewc_vars.child_swatch_ids);
for(var i in child_swatch_ids){
if(child_swatch_ids[i]!=active_layer_id){
$('.pewc-layer-' + child_swatch_ids[i]).fadeOut(150);
}}
$('.pewc-swatch-child-' + parent_index).find('.pewc-radio-image-wrapper-' + index + ' input').addClass('here-' + parent_index + '-' + index).trigger('click');
$('.pewc-swatch-child-' + parent_index).find('.pewc-radio-image-wrapper-' + index + ' input').trigger('change');
}},
sync_children: function(e){
var parent_index=$('.pewc-swatch-parent').find('.pewc-radio-image-wrapper.checked input').attr('data-option-index');
var child_swatch=e.target;
var index=$(child_swatch).closest('.pewc-item').find('.pewc-radio-image-wrapper.checked input').attr('data-option-index');
if(! isNaN(index) ){
$('.pewc-swatch-child').find('.pewc-radio-image-wrapper').removeClass('checked');
$('.pewc-swatch-child').find('.pewc-radio-image-wrapper-' + index).addClass('checked').find('input');
var input=$('.pewc-swatch-child-' + parent_index).find('.pewc-radio-image-wrapper-' + index + ' input');
$('.pewc-swatch-child-' + parent_index).find('.pewc-radio-image-wrapper-' + index + ' input').trigger('click');
}},
check_if_src_hidden: function($product_img){
if($product_img.attr('data-pewc-from-field')!=''){
var pewc_from_field=$(".pewc-item."+$product_img.attr('data-pewc-from-field'));
if(pewc_from_field.hasClass('pewc-hidden-field')||pewc_from_field.closest('.pewc-group-wrap').hasClass('pewc-group-hidden')||(pewc_from_field.hasClass('pewc-variation-dependent')&&! pewc_from_field.hasClass('active') )){
add_on_images.replace_main_with_default($product_img);
}}
},
reset_main_image: function($product_img){
$product_img.attr('data-pewc-from-field', '');
$product_img.attr('src', $product_img.attr('data-pewc-old-src') );
$product_img.attr('srcset', $product_img.attr('data-pewc-old-srcset') );
$product_img.attr('data-src', $product_img.attr('data-pewc-old-data-src') );
$product_img.attr('data-large_image', $product_img.attr('data-pewc-old-data-large_image') );
$product_img.attr('data-large_image_width', $product_img.attr('data-pewc-old-data-large_image_width') );
$product_img.attr('data-large_image_height', $product_img.attr('data-pewc-old-data-large_image_height') );
var zoomImg=$product_img.closest(pewc_vars.product_img_wrap).find(pewc_vars.product_img_zoom).eq(0);
if(zoomImg){
zoomImg.attr('src', $product_img.attr('data-pewc-old-zoom') );
}},
replace_main_with_default: function($product_img='', is_layered=true){
var replace_fields=[ 'image_swatch', 'select-box', 'checkbox' ];
var replaced=false;
$('.pewc-item').each(function(index, element){
var layered_image=$(this).hasClass('pewc-layered-image');
if(! add_on_images.replace_image($(this))&&! layered_image){
return;
}
if(layered_image&&! is_layered){
return;
}
if(replaced&&! layered_image){
return;
}
if($(this).closest('.pewc-group-wrap').hasClass('pewc-group-hidden') ){
return;
}
if(( $(this).hasClass('pewc-variation-dependent')&&! $(this).hasClass('active') )||$(this).hasClass('pewc-hidden-field') ){
return;
}
if(replace_fields.indexOf($(this).attr('data-field-type') ) > -1&&$(this).attr('data-field-value')!=''){
var field_type=$(this).attr('data-field-type');
if(field_type=='image_swatch'){
$(this).find('.pewc-radio-form-field').each(function(index, element){
if($(this).is(':checked')&&(! replaced||layered_image) ){
if($(this).closest('.pewc-radio-image-wrapper').find('img').attr('data-src') ){
add_on_images.update_add_on_image($(this), $(this).closest('form') );
replaced=true;
return;
}}
});
}else if(field_type=='checkbox'){
if($(this).find('.pewc-form-field').is(':checked') ){
add_on_images.update_add_on_image($(this).find('.pewc-form-field'), $(this).closest('form') );
replaced=true;
return;
}}else if(field_type=='select-box'){
add_on_images.update_add_on_image($(this).find('select.pewc-form-field'), $(this).closest('form') );
replaced=true;
return;
}}
});
if(! replaced&&$product_img!=''){
add_on_images.reset_main_image($product_img);
}},
}
add_on_images.init();
var tooltips={
init: function(){
if(pewc_vars.enable_tooltips=='yes'&&! pewc_vars.dequeue_tooltips){
$('.tooltip').tooltipster({
theme: 'tooltipster-shadow',
side: 'right',
contentAsHTML: pewc_vars.contentAsHTML,
autoClose:pewc_vars.autoClose,
interactive:pewc_vars.interactive,
hideOnClick:pewc_vars.hideOnClick,
trigger:pewc_vars.trigger,
triggerOpen:pewc_vars.triggerOpen,
triggerClose: pewc_vars.triggerClose
}
);
}}
}
tooltips.init();
var quickview={
init: function(){
$('body').on('click', '.pewc-show-quickview', this.show_quickview);
$('body').on('click', '#pewc-quickview-background, .pewc-close-quickview', this.hide_quickview);
},
show_quickview: function(e){
e.stopPropagation();
if(pewc_vars.quickview=='yes'){
e.preventDefault();
$('body').addClass('pewc-quickview-active');
}
$('#pewc-quickview-' + $(this).closest('li.pewc-item').attr('data-id') + '_' + $(this).attr('data-child-product-id') ).css('left', '50%');
},
hide_quickview: function(e){
e.preventDefault();
$('body').removeClass('pewc-quickview-active');
$('.pewc-quickview-product-wrapper').css('left', '-5000px');
}}
quickview.init();
var check_time={
init: function(){
var today=new Date();
var loaded=$('.pewc-cl-wrapper').first().attr('data-today');
today.setHours(0,0,0,0);
if(today > loaded){
$('.pewc-cl-wrapper').addClass('disabled');
$('.pewc-cl-wrapper').find('.pewc-radio-form-field').prop('disabled', true);
}
check_time.check();
setInterval(
function(){
check_time.check();
},
5000
);
$('.pewc-cl-wrapper').find('input').on('change', this.update_date);
},
check: function(){
$('.pewc-cl-has-time').each(function(){
var hour=$(this).attr('data-hour');
var min=$(this).attr('data-minute');
if(! hour||! min){
return;
}
if(check_time.is_after(hour, min) ){
location.reload();
}});
},
is_after: function(hour, min){
let ms_today=Date.now() - new Date().setHours(0,0,0,0);
return ms_today > (hour*3.6e6 + min*6e4);
},
update_date: function(){
var field_id=$(this).closest('.pewc-item').attr('data-field-id');
var id=$(this).closest('.pewc-item').attr('data-id');
$('#pewc_cl_' + field_id).val($(this).attr('data-date') );
$('#pewc_cl_price_' + field_id).val($(this).closest('.pewc-item').attr('data-field-price') );
$('#pewc_cl_offset_' + id).val($(this).attr('data-offset') );
}}
check_time.init();
})(jQuery);
function pewc_wc_price_without_currency(price){
var price_settings={
decimal: pewc_vars.decimal_separator,
thousand: pewc_vars.thousand_separator,
precision: pewc_vars.decimals,
format: '%v'
};
if(pewc_vars.price_trim_zeros=='yes'&&price==parseInt(price) ){
price_settings.precision=0;
}
price=accounting.formatMoney(price, price_settings);
return price;
}
function pewc_wc_price(price, price_only=false, update_pewc_total_calc_price=true){
if(update_pewc_total_calc_price){
jQuery('#pewc_total_calc_price').val(price);
}
var currency_html='<span class="woocommerce-Price-currencySymbol">%s</span>';
var currency_format='';
if(price_only){
currency_html='%s';
}
if(pewc_vars.currency_pos=='left'){
currency_format=currency_html+'%v';
}else if(pewc_vars.currency_pos=='right'){
currency_format='%v'+currency_html;
}else if(pewc_vars.currency_pos=='left_space'){
currency_format=currency_html+' %v';
}else if(pewc_vars.currency_pos=='right_space'){
currency_format='%v '+currency_html;
}
var price_settings={
symbol: pewc_vars.currency_symbol,
decimal: pewc_vars.decimal_separator,
thousand: pewc_vars.thousand_separator,
precision: pewc_vars.decimals,
format: currency_format
};
if(pewc_vars.price_trim_zeros=='yes'&&price==parseInt(price) ){
price_settings.precision=0;
}
price=accounting.formatMoney(price, price_settings);
if(! price_only){
return '<span class="woocommerce-Price-amount amount"><bdi>' + price + '</bdi></span>';
}
return price;
}
function pewc_wcfad_apply_discount(){
return typeof pewc_wcfad!=='undefined'&&pewc_wcfad.apply_discount();
}
function pewc_is_booking_product(){
return(jQuery('#num_units_int').length > 0);
}
function pewc_get_quantity(qty=1, type=''){
if(pewc_wcbvp_variation_grid()){
qty=jQuery('#wcbvp_total_variations').val();
if(qty < 1) qty=1;
}else if(jQuery('form.cart .quantity .qty').val()&&'one-only'!==type){
qty=jQuery('form.cart .quantity .qty').val();
}else if(pewc_is_booking_product()){
qty=1;
if(jQuery('#num_bookings').length > 0&&! isNaN(jQuery('#num_bookings').val())&&'linked'===type){
qty=qty * jQuery('#num_bookings').val();
}}
return qty;
}
function pewc_wcbvp_variation_grid(){
return(jQuery('body').find('.wcbvp-grid-quantity-field').length > 0);
};