// source --> https://www.silviakelly.it/wp-content/plugins/woo-product-grid-list-design/js/wopgld-frontend.js?ver=1.0.8 
jQuery(document).ready(function($) {
    /*
     * Pagination
     */

    /*
     * Builds Pagination Links
     *
     * @param {int} current_page
     * @param {int} total_page
     * @param {int} gallery_id
     * @param {string} layout_type
     * @return {string}
     */
    function wopgld_build_pagination_html(current_page, total_page, post_id, layout_type, next_arrow, prev_arrow) {
        var pagination_html = '';
        if (current_page > 1) {
            pagination_html += '<li class="wopgld-previous-page-wrap"><a href="javascript:void(0);" class="wopgld-previous-page" data-total-page="' + total_page + '" data-layout-type="' + layout_type + '" data-post-id="' + post_id + '"  data-prev-arrow="' + prev_arrow + '" data-next-arrow="' + next_arrow + '">' + prev_arrow + '</a></li>';
        }
        var upper_limit = current_page + 2;
        var lower_limit = current_page - 2;
        if (upper_limit > total_page) {
            upper_limit = total_page;
        }

        if (lower_limit < 1) {
            lower_limit = 1;
        }
        if (upper_limit - lower_limit < 5 && upper_limit - 4 >= 1) {
            lower_limit = upper_limit - 4;
        }
        if (upper_limit < 5 && total_page >= 5) {
            upper_limit = 5;
        }

        for (var page_count = lower_limit; page_count <= upper_limit; page_count++) {
            var page_class = (current_page === page_count) ? 'wopgld-current-page wopgld-page-link' : 'wopgld-page-link';
            pagination_html += '<li><a href="javascript:void(0);" data-total-page="' + total_page + '" data-page-number="' + page_count + '" class="' + page_class + '" data-layout-type="' + layout_type + '" data-post-id="' + post_id + '" data-prev-arrow="' + prev_arrow + '" data-next-arrow="' + next_arrow + '">' + page_count + '</a></li>';
        }
        if (current_page < total_page) {
            pagination_html += '<li class="wopgld-next-page-wrap"><a href="javascript:void(0);" data-total-page="' + total_page + '" class="wopgld-next-page" data-layout-type="' + layout_type + '" data-post-id="' + post_id + '" data-prev-arrow="' + prev_arrow + '" data-next-arrow="' + next_arrow + '">' + next_arrow + '</a></li>';
        }
        return pagination_html;
    }

    $('body').on('click', '.wopgld-page-link', function() {
        var selector = $(this);
        selector.closest('.wopgld-pagination-block').find('.wopgld-page-link').removeClass('wopgld-current-page');
        $(this).addClass('wopgld-current-page');
        var layout_type = $(this).data('layout-type');
        var page_num = $(this).data('page-number');
        var post_id = $(this).data('post-id');
        var total_page = $(this).data('total-page');
        var next_arrow = $(this).data('next-arrow');
        var prev_arrow = $(this).data('prev-arrow');
        var current_filter = $(this).closest('.wopgld-main-product-wrapper').find('.wopgld-active-filter').data('filter-key');
        $.ajax({
            type: 'post',
            url: wopgld_frontend_js_params.ajax_url,
            data: {
                action: 'wopgld_pagination_action',
                _wpnonce: wopgld_frontend_js_params.ajax_nonce,
                layout_type: layout_type,
                page_num: page_num,
                total_page: total_page,
                post_id: post_id,
                next_arrow: next_arrow,
                prev_arrow: prev_arrow,
                current_filter: current_filter

            },
            beforeSend: function(xhr) {
                selector.closest('.wopgld-pagination-block').find('.wopgld-ajax-loader').show();
            },
            success: function(response) {
                selector.closest('.wopgld-pagination-block').find('.wopgld-ajax-loader').hide();
                selector.closest('.wopgld-main-product-wrapper').find('.wopgld-layout-' + layout_type + '-section').html(response);
                $('html, body').animate({
                    scrollTop: selector.closest('.wopgld-main-product-wrapper').find('.wopgld-layout-' + layout_type + '-section').offset().top - 200 //this will keep content positioned correctly, but you shouldn't need both a '+ 200' and '- 200' here. Adjust this value as needed.
                }, 900);
                var pagination_html = wopgld_build_pagination_html(page_num, total_page, post_id, layout_type, next_arrow, prev_arrow);
                selector.closest('.wopgld-main-product-wrapper').find('.wopgld-pagination-block ul').html(pagination_html);
                /*
                 * Add span to add to cart woocommerce
                 */
                $('.add_to_cart_button').each(function() {
                    var text = $(this).closest('.add_to_cart_button').html();
                    $(this).closest('.add_to_cart_button').html('<span class="wopgld-span">' + text + '</span>');
                });
                wopgld_slider_lightbox();

            }
        });
    });
    /**
     * Next Page Pagination
     *
     * @since 1.0.0
     */
    $('body').on('click', '.wopgld-next-page,.wopgld-previous-page', function() {
        var selector = $(this);
        var layout_type = $(this).data('layout-type');
        var post_id = $(this).data('post-id');
        var total_page = $(this).data('total-page');
        var current_page = $(this).closest('.wopgld-pagination-block').find('.wopgld-current-page').data('page-number');
        var next_page = parseInt(current_page) + 1;
        var previous_page = parseInt(current_page) - 1;
        var next_arrow = $(this).data('next-arrow');
        var prev_arrow = $(this).data('prev-arrow');
        var current_filter = $(this).closest('.wopgld-main-product-wrapper').find('.wopgld-active-filter').data('filter-key');

        if (selector.hasClass('wopgld-previous-page')) {
            current_page = previous_page;
        } else {
            current_page = next_page;
        }

        $.ajax({
            type: 'post',
            url: wopgld_frontend_js_params.ajax_url,
            data: {
                action: 'wopgld_pagination_action',
                _wpnonce: wopgld_frontend_js_params.ajax_nonce,
                layout_type: layout_type,
                page_num: current_page,
                post_id: post_id,
                current_filter: current_filter
            },
            beforeSend: function(xhr) {
                selector.closest('.wopgld-pagination-block').find('.wopgld-ajax-loader').show();
            },
            success: function(response) {
                selector.closest('.wopgld-pagination-block').find('.wopgld-ajax-loader').hide();
                selector.closest('.wopgld-main-product-wrapper').find('.wopgld-layout-' + layout_type + '-section').html(response);
                $('html, body').animate({
                    scrollTop: selector.closest('.wopgld-main-product-wrapper').find('.wopgld-layout-' + layout_type + '-section').offset().top - 200 //this will keep content positioned correctly, but you shouldn't need both a '+ 200' and '- 200' here. Adjust this value as needed.
                }, 900);
                var pagination_html = wopgld_build_pagination_html(current_page, total_page, post_id, layout_type, next_arrow, prev_arrow);
                selector.closest('.wopgld-main-product-wrapper').find('.wopgld-pagination-block ul').html(pagination_html);
                /*
                 * Add span to add to cart woocommerce
                 */
                $('.add_to_cart_button').each(function() {
                    var text = $(this).closest('.add_to_cart_button').html();
                    $(this).closest('.add_to_cart_button').html('<span class="wopgld-span">' + text + '</span>');
                });
                wopgld_slider_lightbox();
            }
        });
    });
    /**
     * Load More Action
     *
     * @since 1.0.0
     */
    $('body').on('click', '.wopgld-load-more-trigger', function() {
        var selector = $(this);
        // var masonary_id = selector.closest('.wopgld-masonry-wrapper').find('.wopgld-masonry-item-wrap').data('masonary-id');
        var layout_type = $(this).data('layout-type');
        var page_num = $(this).data('page-number');
        var post_id = $(this).data('post-id');
        var total_page = $(this).data('total-page');
        var next_page = parseInt(page_num) + 1;
        var current_filter = $(this).closest('.wopgld-main-product-wrapper').find('.wopgld-active-filter').data('filter-key');
        if (next_page <= total_page) {
            $.ajax({
                type: 'post',
                url: wopgld_frontend_js_params.ajax_url,
                data: {
                    action: 'wopgld_pagination_action',
                    _wpnonce: wopgld_frontend_js_params.ajax_nonce,
                    layout_type: layout_type,
                    page_num: next_page,
                    post_id: post_id,
                    current_filter: current_filter
                },
                beforeSend: function(xhr) {
                    selector.hide();
                    selector.closest('.wopgld-load-more-block').find('.wopgld-ajax-loader').show();
                },
                success: function(response) {
                    selector.data('page-number', next_page);
                    selector.closest('.wopgld-load-more-block').find('.wopgld-ajax-loader').hide();
                    selector.closest('.wopgld-main-product-wrapper').find('.wopgld-layout-' + layout_type + '-section').append(response);
                    if (next_page === total_page) {
                        selector.remove();
                    } else {

                        selector.show();
                    }
                    /*
                     * Add span to add to cart woocommerce
                     */
                    $('.add_to_cart_button').each(function() {
                        var text = $(this).closest('.add_to_cart_button').html();
                        $(this).closest('.add_to_cart_button').html('<span class="wopgld-span">' + text + '</span>');
                    });
                    wopgld_slider_lightbox();
                }
            });
        } else {
            selector.remove();
        }

    });
    /**
     *Infinite Scroll Action
     *
     * @since 1.0.0
     */
    var infinte_load = 0;
    $('body').on('click', '.wopgld-infinite-load-trigger', function() {
        var selector = $(this);
        var masonary_id = selector.closest('.wopgld-masonry-wrapper').find('.wopgld-masonry-item-wrap').data('masonary-id');
        var layout_type = $(this).data('layout-type');
        var page_num = $(this).data('page-number');
        var post_id = $(this).data('post-id');
        var total_page = $(this).data('total-page');
        var next_page = parseInt(page_num) + 1;
        var current_filter = $(this).closest('.wopgld-main-product-wrapper').find('.wopgld-active-filter').data('filter-key');
        if (next_page <= total_page) {
            $.ajax({
                type: 'post',
                url: wopgld_frontend_js_params.ajax_url,
                data: {
                    action: 'wopgld_pagination_action',
                    _wpnonce: wopgld_frontend_js_params.ajax_nonce,
                    layout_type: layout_type,
                    page_num: next_page,
                    post_id: post_id,
                    current_filter: current_filter
                },
                beforeSend: function(xhr) {
                    infinte_load = 1;
                    selector.hide();
                    selector.closest('.wopgld-infinite-load').find('.wopgld-infinite-loader').show();
                },
                success: function(response) {
                    infinte_load = 0;
                    selector.data('page-number', next_page);
                    selector.closest('.wopgld-infinite-load').find('.wopgld-infinite-loader').hide();
                    selector.closest('.wopgld-main-product-wrapper').find('.wopgld-layout-' + layout_type + '-section').append(response);
                    if (next_page === total_page) {
                        selector.remove();
                    } else {

                        selector.show();
                    }
                    /*
                     * Add span to add to cart woocommerce
                     */
                    $('.add_to_cart_button').each(function() {
                        var text = $(this).closest('.add_to_cart_button').html();
                        $(this).closest('.add_to_cart_button').html('<span class="wopgld-span">' + text + '</span>');
                    });
                    wopgld_slider_lightbox();
                }
            });
        } else {
            selector.remove();
        }
    });
    /**
     *  Infinte scroll Implementation
     * */

    $(window).scroll(function() {
        var top = ($('.wopgld-infinite-scroll-wrapper').offset() || {"top": NaN}).top;
        var nav = $('.wopgld-infinite-scroll-wrapper');
        if (!isNaN(top)) {
            if ($(window).scrollTop() >= nav.offset().top + nav.outerHeight() - window.innerHeight) {
                if (infinte_load === 0) {
                    $('.wopgld-infinite-load-trigger:first').trigger('click');
                }
            }
        }

    });

    /*
     * Filter template implementation
     */

    $('body').on('click', '.wopgld-filter-trigger', function() {
        var selector = $(this);
        var filter_key = selector.data('filter-key');
        var shortcode_id = selector.closest('.wopgld-main-product-wrapper').find('.wopgld-inner-main-container').data('shortcode_id');
        selector.closest('.wopgld-filter-wrap').find('.wopgld-filter-trigger').removeClass('wopgld-active-filter');
        selector.addClass('wopgld-active-filter');

        $.ajax({
            type: 'post',
            url: wopgld_frontend_js_params.ajax_url,
            data: {
                action: 'wopgld_filter_action',
                _wpnonce: wopgld_frontend_js_params.ajax_nonce,
                filter_key: filter_key,
                shortcode_id: shortcode_id
            },
            beforeSend: function(xhr) {
                selector.closest('.wopgld-filter-wrap').find('.wopgld-filter-tab-loader').show();
            },
            success: function(response) {
                selector.closest('.wopgld-filter-wrap').find('.wopgld-filter-tab-loader').hide();
                selector.closest('.wopgld-main-product-wrapper').find('.wopgld-inner-main-container').empty().html(response);
                $('.add_to_cart_button').each(function() {
                    var text = $(this).closest('.add_to_cart_button').html();
                    $(this).closest('.add_to_cart_button').html('<span class="wopgld-span">' + text + '</span>');
                });
                wopgld_slider_lightbox();
            }
        });

    });

    /*
     * Wishlist Functionality
     */
    $('body').on('click', '.add_to_wishlist', function() {
        $(this).closest('.wopgld-wishlist-wrap').find('.ajax-loading').removeAttr("style", "display: none !important");
        $(this).closest('.wopgld-wishlist-wrap').find('.wopgld-heart').removeClass("fa-heart-o");
    });
    /*
     * Add span to View Cart woocommerce
     */
    $('body').on('click', '.add_to_cart_button', function() {
        $(document).ajaxComplete(function() {
            $('.added_to_cart').each(function() {
                $('.added_to_cart').html('<span class="wopgld-span">View Cart</span>');
            });
        });
    });
    /*
     * Add span to add to cart woocommerce
     */
    $('.add_to_cart_button').each(function() {
        var text = $(this).closest('.add_to_cart_button').html();
        $(this).closest('.add_to_cart_button').html('<span class="wopgld-span">' + text + '</span>');
    });
    /*
     * Get Variable price option for EDD
     */

    $('body').on('change', '.wopgld-variable-price', function() {

        var price_id = $(this).val();
        var id = $(this).closest('.wopgld-price').find('.wopgld_price_options').data('id');
        var link = $(this).closest('.wopgld-price').find('.wopgld_price_options').data('link');
        $(this).closest('.wopgld-inner-wrap').find('.wopgld-edd-price').attr("href", '' + link + '?edd_action=add_to_cart&download_id=' + id + '&edd_options[price_id]=' + price_id + '');

    });
    /*
     * Lightbox function
     */
    function wopgld_slider_lightbox() {
        $(".wopgld-lightbox-image-wrapper").each(function() {
            var selector = $(this);
            var id = $(this).data('id');
            var next_text = '<i class="fa fa-angle-right" aria-hidden="true"></i>';
            var pre_text = '<i class="fa fa-angle-left" aria-hidden="true"></i>';
            wopgld_lightbox_slider[id] = $(this).bxSlider({
                auto: false,
                control: true,
                speed: 2000,
                pager: true,
                infiniteLoop: true,
                nextText: next_text,
                prevText: pre_text,
                mode: 'horizontal',
                pagerCustom: '#wopgld-pager-' + id,
                useCSS: false,
                onSlideBefore: function($slideElement, oldIndex, newIndex) {
                    selector.closest('.wopgld-each-thumb').find('.active').removeClass("active");
                    selector.closest('.wopgld-each-thumb').find('a[data-slide-index="' + newIndex + '"]').addClass("active");
                    var slider = wopgld_thumb_slider[id];
                    if (slider.getSlideCount() - newIndex >= count)
                        slider.goToSlide(newIndex);
                    else
                        slider.goToSlide(slider.getSlideCount() - count);
                }
            });
        });
        var count = 0;
        $(".wopgld-thumbnail-slider").each(function() {
            var id = $(this).data('id');
            var next_text = '<i class="fa fa-angle-right" aria-hidden="true"></i>';
            var pre_text = '<i class="fa fa-angle-left" aria-hidden="true"></i>';
            wopgld_thumb_slider[id] = $(this).bxSlider({
                minSlides: 1,
                maxSlides: 4,
                slideWidth: 100,
                slideMargin: 10,
                moveSlides: 1,
                auto: false,
                pager: false,
                infiniteLoop: true,
                nextText: next_text,
                prevText: pre_text
            });
        });
        /*
         * Scroll Configuration
         */

        $('.wopgld-lightbox-detail-wrap').mCustomScrollbar({
            theme: 'dark-3',
            mouseWheel: {enable: true},
            axis: 'y'
        });
    }
    /*
     * Scroll Configuration
     */

    $('.wopgld-lightbox-detail-wrap').mCustomScrollbar({
        theme: 'dark-3',
        mouseWheel: {enable: true},
        axis: 'y'
    });
    /*
     * Popup Images Gallery
     */

    $('body').on('click', '.wopgld-content-lightbox', function() {
        var layout = $(this).closest('.wopgld-main-product-wrapper').data('layout');
        $(this).closest('.wopgld-inner-wrap').find('.wopgld-lightbox-detail-wrap').fadeIn(500);
        $('.wopgld-inner-wrap').removeClass('wopgld-active-lightbox');
        $(this).closest('.wopgld-inner-wrap').addClass('wopgld-active-lightbox');
    });
    /*
     * Popup close
     *
     */
    $('body').on('click', '.wopgld-close-lightbox', function() {
        var layout = $('.wopgld-content-lightbox').closest('.wopgld-main-product-wrapper').data('layout');
        $('.wopgld-inner-wrap').removeClass('wopgld-active-lightbox');
    });
    /*
     * Lightbox Slider Images
     */
    var wopgld_lightbox_slider = [];
    var wopgld_thumb_slider = [];
    $(".wopgld-lightbox-image-wrapper").each(function() {
        var selector = $(this);
        var id = $(this).data('id');
        var next_text = '<i class="fa fa-angle-right" aria-hidden="true"></i>';
        var pre_text = '<i class="fa fa-angle-left" aria-hidden="true"></i>';
        wopgld_lightbox_slider[id] = $(this).bxSlider({
            auto: false,
            control: true,
            speed: 2000,
            pager: true,
            infiniteLoop: true,
            nextText: next_text,
            prevText: pre_text,
            mode: 'horizontal',
            pagerCustom: '#wopgld-pager-' + id,
            useCSS: false,
            onSlideBefore: function($slideElement, oldIndex, newIndex) {
                selector.closest('.wopgld-each-thumb').find('.active').removeClass("active");
                selector.closest('.wopgld-each-thumb').find('a[data-slide-index="' + newIndex + '"]').addClass("active");
                var slider = wopgld_thumb_slider[id];
                if (slider.getSlideCount() - newIndex >= count)
                    slider.goToSlide(newIndex);
                else
                    slider.goToSlide(slider.getSlideCount() - count);
            }
        });
    });
    var count = 0;
    $(".wopgld-thumbnail-slider").each(function() {
        var id = $(this).data('id');
        var next_text = '<i class="fa fa-angle-right" aria-hidden="true"></i>';
        var pre_text = '<i class="fa fa-angle-left" aria-hidden="true"></i>';
        wopgld_thumb_slider[id] = $(this).bxSlider({
            minSlides: 1,
            maxSlides: 4,
            slideWidth: 100,
            slideMargin: 10,
            moveSlides: 1,
            auto: false,
            pager: false,
            infiniteLoop: true,
            nextText: next_text,
            prevText: pre_text
        });
    });


    /*
     * WooCommerce Disable link for Variable Price functionality
     *
     */
    $('body').on('click', '.product_type_variable', function() {
        event.preventDefault();
        var selector = $(this);
        var post_id = selector.closest('.add_to_cart_button').data('product_id');
        $.ajax({
            url: wopgld_frontend_js_params.ajax_url,
            data: {
                post_id: post_id,
                _wpnonce: wopgld_frontend_js_params.ajax_nonce,
                action: 'wopgld_variable_attribute',
                beforeSend: function() {
                    $('.wopgld-lightbox-loader').show();
                }
            },
            type: "POST",
            success: function(response) {
                $('.wopgld-lightbox-loader').hide();
                $(".wopgld-attributes-container").html(response);
            },

            complete: function() {
                loadVariationScript();
            }

        });
        event.preventDefault();
    });
    $('body').on('click', '.product_type_variable', function() {
        event.preventDefault();
        var selector = $(this);
        var post_id = selector.closest('.product_type_variable').data('product_id');
        $.ajax({
            url: wopgld_frontend_js_params.ajax_url,
            data: {
                post_id: post_id,
                _wpnonce: wopgld_frontend_js_params.ajax_nonce,
                action: 'wopgld_variable_attribute',
                beforeSend: function() {
                    $('.wopgld-lightbox-loader').show();
                }
            },
            type: "POST",
            success: function(response) {
                $('.wopgld-lightbox-loader').hide();
                $(".wopgld-attributes-container").html(response);
            },

            complete: function() {
                loadVariationScript();
            }

        });
        event.preventDefault();
    });
    $('body').on('click', '.wopgld-close-variation', function() {
        $(this).closest('.wopgld-attributes-container').find('.wopgld-variation-container').fadeOut();
    });
    $('body').on('click', '.wopgld-share-container', function() {
        $(this).closest('.wopgld-detail-side-wrap').find('.wopgld-share-outer-wrap').animate({width: 'toggle'});
    });

    // Ajax add to cart
    $(document).on('click', '.variations_form .single_add_to_cart_button', function(e) {
        e.preventDefault();
        $variation_form = $(this).closest('.variations_form');
        var var_id = $variation_form.find('input[name=variation_id]').val();
        var product_id = $variation_form.find('input[name=product_id]').val();
        var quantity = $variation_form.find('input[name=quantity]').val();

        //attributes = [];
        $('.ajaxerrors').remove();
        var item = {},
                check = true;

        variations = $variation_form.find('select[name^=attribute]');

        /* Updated code to work with radio button - mantish - WC Variations Radio Buttons - 8manos */
        if (!variations.length) {
            variations = $variation_form.find('[name^=attribute]:checked');
        }

        /* Backup Code for getting input variable */
        if (!variations.length) {
            variations = $variation_form.find('input[name^=attribute]');
        }

        variations.each(function() {

            var $this = $(this),
                    attributeName = $this.attr('name'),
                    attributevalue = $this.val(),
                    index,
                    attributeTaxName;

            $this.removeClass('error');

            if (attributevalue.length === 0) {
                index = attributeName.lastIndexOf('_');
                attributeTaxName = attributeName.substring(index + 1);

                $this
                        //.css( 'border', '1px solid red' )
                        .addClass('required error')
                        //.addClass( 'barizi-class' )
                        .before('<div class="ajaxerrors"><p>Please select ' + attributeTaxName + '</p></div>')

                check = false;
            } else {
                item[attributeName] = attributevalue;
            }


        });

        if (!check) {
            return false;
        }

        var $thisbutton = $(this);

        if ($thisbutton.is('.variations_form .single_add_to_cart_button')) {

            $thisbutton.removeClass('added');
            $thisbutton.addClass('loading');

            var data = {
                action: 'woocommerce_add_to_cart_variable_rc',
                product_id: product_id,
                quantity: quantity,
                variation_id: var_id,
                variation: item
            };

            // Trigger event
            $('body').trigger('adding_to_cart', [$thisbutton, data]);

            // Ajax action
            $.post(wc_add_to_cart_params.ajax_url, data, function(response) {

                if (!response)
                    return;

                var this_page = window.location.toString();

                this_page = this_page.replace('add-to-cart', 'added-to-cart');

                if (response.error && response.product_url) {
                    window.location = response.product_url;
                    return;
                }

                if (wc_add_to_cart_params.cart_redirect_after_add === 'yes') {

                    window.location = wc_add_to_cart_params.cart_url;
                    return;

                } else {

                    $thisbutton.removeClass('loading');

                    var fragments = response.fragments;
                    var cart_hash = response.cart_hash;

                    // Block fragments class
                    if (fragments) {
                        $.each(fragments, function(key) {
                            $(key).addClass('updating');
                        });
                    }

                    // Block widgets and fragments
                    $('.shop_table.cart, .updating, .cart_totals').fadeTo('400', '0.6').block({
                        message: null,
                        overlayCSS: {
                            opacity: 0.6
                        }
                    });

                    // Changes button classes
                    $thisbutton.addClass('added');

                    // View cart text
                    if (!wc_add_to_cart_params.is_cart && $thisbutton.parent().find('.added_to_cart').size() === 0) {
                        $thisbutton.after(' <a href="' + wc_add_to_cart_params.cart_url + '" class="added_to_cart wc-forward" title="' +
                                wc_add_to_cart_params.i18n_view_cart + '">' + wc_add_to_cart_params.i18n_view_cart + '</a>');
                    }

                    // Replace fragments
                    if (fragments) {
                        $.each(fragments, function(key, value) {
                            $(key).replaceWith(value);
                        });
                    }

                    // Unblock
                    $('.widget_shopping_cart, .updating').stop(true).css('opacity', '1').unblock();

                    // Cart page elements
                    $('.shop_table.cart').load(this_page + ' .shop_table.cart:eq(0) > *', function() {

                        $('.shop_table.cart').stop(true).css('opacity', '1').unblock();

                        $(document.body).trigger('cart_page_refreshed');
                    });

                    $('.cart_totals').load(this_page + ' .cart_totals:eq(0) > *', function() {
                        $('.cart_totals').stop(true).css('opacity', '1').unblock();
                    });

                    // Trigger event so themes can refresh other areas
                    $(document.body).trigger('added_to_cart', [fragments, cart_hash, $thisbutton]);
                }
            });

            return false;

        } else {
            return true;
        }

    });

    function loadVariationScript() {
        var url = wopgld_object_name.templateUrl;
        $.getScript(url + '/assets/js/frontend/add-to-cart-variation.min.js');
        $.getScript(url + '/assets/js/frontend/add-to-cart-variation.js');
    }

    /*
     * List cantaloupe template
     */
    $('body').on('click', '.wopgld-buttons-collection-secondary', function() {
        $(this).closest('.wopgld-content-two-wrap').find('.wopgld-buttons-collection').toggleClass('wopgld-display-buttons');
        if ($('.wopgld-buttons-collection').hasClass('wopgld-display-buttons')) {
            var number_of_children = $(this).closest('.wopgld-content-two-wrap').find('.wopgld-buttons-collection-primary').children().length;
            if (number_of_children == 4) {
                var estimated_width = 160;
            } else {
                var estimated_width = ((number_of_children * 25) + ((number_of_children + 1) * 15));
            }
            $(this).closest('.wopgld-content-two-wrap').find('.wopgld-buttons-collection-primary').css("width", estimated_width);
        } else {
            $(this).closest('.wopgld-content-two-wrap').find('.wopgld-buttons-collection-primary').css('width', '0');
        }
    });
});