// source --> https://geneesleer.nl/wp-content/plugins/woo-cart-all-in-one/assets/js/sidebar-cart.js?ver=1.1.23 
(function ($) {
    'use strict';
    let wp_select, wp_subscribe, wc_block_cart_store_key,block_subscribe;
    let viwcaio_check_wc_cart_block = false,viwcaio_wc_block_cart_old = [],viwcaio_wc_block_cart_new=[], viwcaio_wc_block_cart = {};
    let originalFetch = window.fetch;
    window.fetch = async function(...args) {
        $('.vi-wcaio-sidebar-cart-wrap').find('.vi-wcaio-sidebar-cart-loading-wrap').removeClass('vi-wcaio-disabled');
        if (args[0] && typeof args[0] === 'string' && args[0].includes('/wc/store/v1/cart/update-item') && args[1] && args[1]?.body){
            let item = JSON.parse(args[1].body);
            if (item?.id && item?.key && !$('.vi-wcaio-sidebar-cart-pd-wrap[data-cart_item_key="'+ item.key +'"]').length){
                let tmp={"id":item.id,"quantity":1};
                args[1].body = JSON.stringify(tmp);
                args[0] = args[0].replace('/wc/store/v1/cart/update-item','/wc/store/v1/cart/add-item');
            }
        }
        let response = await originalFetch.apply(this, args);
        if (viwcaio_check_wc_cart_block === 'isset' && args[0] && typeof args[0] === 'string' && args[0].includes('/wc/store/v1/cart')) {
            let  clone = response.clone();
            clone.json().then(data => {
                viwcaio_wc_block_cart_new= data?.items;
                viwcaio_block_sidebar_cart_refresh(data);
            });
        }
        $('.vi-wcaio-sidebar-cart-wrap').find('.vi-wcaio-sidebar-cart-loading-wrap').addClass('vi-wcaio-disabled');
        return response;
    };
    $(document).ready(function () {
        setTimeout(function () {
            $(document).trigger('viwcaio_sidebar_cart_init');
        },100);
    });
    $(document).on('viwcaio_sidebar_cart_init',function () {
        if (!$('.vi-wcaio-sidebar-cart-wrap').length){
            setTimeout(function () {
                $(document).trigger('viwcaio_sidebar_cart_init');
            },100);
            return false;
        }
        if ($('.vi-wcaio-sidebar-cart-wrap:not(.vi-wcaio-sidebar-cart-wrap-init)').length) {
            $('.vi-wcaio-sidebar-cart-wrap:not(.vi-wcaio-sidebar-cart-wrap-init)').addClass('vi-wcaio-sidebar-cart-wrap-init');
            viwcaio_sidebar_cart_init();
        }
    });
    $(window).on('resize', function () {
        vi_wcaio_sc_design($('.vi-wcaio-sidebar-cart-content-wrap'));
    });

    function viwcaio_sidebar_cart_init() {
        vi_wcaio_sc_icon_toggle(true);
        $(document).on('mouseenter', '.vi-wcaio-sidebar-cart-icon-wrap', function () {
            if ($(this).hasClass('vi-wcaio-sidebar-cart-icon-wrap-click')) {
                $(this).removeClass('vi-wcaio-sidebar-cart-icon-wrap-mouseleave').addClass('vi-wcaio-sidebar-cart-icon-wrap-mouseenter');
            } else {
                vi_wcaio_sc_toggle('show');
            }
        }).on('mouseleave', '.vi-wcaio-sidebar-cart-icon-wrap', function () {
            if ($(this).hasClass('vi-wcaio-sidebar-cart-icon-wrap-mouseenter')) {
                $(this).removeClass('vi-wcaio-sidebar-cart-icon-wrap-mouseenter').addClass('vi-wcaio-sidebar-cart-icon-wrap-mouseleave');
            }
        }).on('click', '.vi-wcaio-sidebar-cart-icon-wrap', function () {
            if ($(this).hasClass('vi-wcaio-sidebar-cart-icon-wrap-click')) {
                vi_wcaio_sc_toggle('show');
            }
        });
        $(document).on('click', '.vi-wcaio-sidebar-cart-overlay, .vi-wcaio-sidebar-cart-close-wrap', function () {
            if (!$(this).hasClass('vi-wcaio-not-hidden')) {
                vi_wcaio_sc_toggle('hide');
            }
        });
        $(document).on('click keydown', '.vi-wcaio-sidebar-cart-wrap.vi-wcaio-sidebar-cart-wrap-warning', function () {
            vi_wcaio_hide_message();
        });
        $('.vi-wcaio-sidebar-cart-footer-pd-wrap-wrap:not(.vi-wcaio-disabled):not(.vi-wcaio-slide-init)').each(function () {
            vi_wcaio_sc_flexslider($(this));
        });
        if (typeof viwcaio_sc_params === 'undefined') {
            return false;
        }
        viwcaio_sidebar_cart_update();
    }

    function viwcaio_sidebar_cart_update() {
        viwcaio_check_wc_cart_block = typeof wp !== "undefined" && wp?.data?.select && wp?.data?.subscribe  && typeof wc !== "undefined" && wc?.wcBlocksData?.CART_STORE_KEY;
        if (viwcaio_check_wc_cart_block){
            if (!block_subscribe){
                wp_select = wp.data.select;
                wp_subscribe = wp.data.subscribe;
                wc_block_cart_store_key = wc.wcBlocksData.CART_STORE_KEY ;
                block_subscribe = wp_subscribe(  viwcaio_block_sidebar_cart_refresh, wc_block_cart_store_key )
            }
        }else if ($(`[data-block-name="woocommerce/product-button"]`).length && $(`[data-wp-on--click="actions.addCartItem"]`).length){
            viwcaio_check_wc_cart_block='isset';
        }else {
            viwcaio_sidebar_cart_refresh(
                viwcaio_sc_params.wc_ajax_url.toString().replace('%%endpoint%%', 'viwcaio_get_cart_fragments'),
                {viwcaio_get_cart_fragments: 1, vicaio_nonce: viwcaio_sc_params.nonce}
            );
        }
        $(document).on('viwcaio_after_update_cart', function (e, data, just_refresh_session= false){
            let fragments = data.fragments ? data.fragments : data;
            if (fragments && data?.cart_hash && 'sessionStorage' in window && window.sessionStorage !== null && typeof viwcaio_sc_params !=="undefined" ) {
                let fragment_name = viwcaio_sc_params.fragment_name,
                    cart_hash_key = viwcaio_sc_params.cart_hash_key;
                sessionStorage.setItem(fragment_name, JSON.stringify(fragments));
                localStorage.setItem( cart_hash_key, data.cart_hash );
                sessionStorage.setItem( cart_hash_key, data.cart_hash  );
                if ( data.cart_hash ) {
                    sessionStorage.setItem( 'wc_cart_created', ( new Date() ).getTime() );
                }
                if (just_refresh_session){
                    return false;
                }
            }
            if (!fragments || !Object.keys(fragments).length) {
                $(document.body).trigger('wc_fragments_ajax_error');
                return false;
            }
            $.each(fragments, function (key, value) {
                $(key).replaceWith(value);
            });
            if ( typeof wc_cart_params !== 'undefined' ){
                if ($('[name="update_cart"]').length && $('[name="update_cart"]').closest('form').length){
                    let cart_form = $('[name="update_cart"]').closest('form'),
                        sidebar_pd = $('.vi-wcaio-sidebar-cart-products'),
                        update_items = 0;
                    sidebar_pd.find('.vi_wcaio_qty').each(function (k,v){
                        let name = $(v).attr('name').replace('viwcaio_','');
                        if (cart_form.find(`input[name="${name}"]`).val() != $(v).val()) {
                            update_items++;
                            cart_form.find(`input[name="${name}"]`).val($(v).val()).trigger('change');
                        }
                    });
                    if (update_items) {
                        $('[name="update_cart"]').removeAttr('disabled').trigger('click');
                    }
                }else {
                    //location.reload();
                }
            } else if ( typeof wc_checkout_params !== 'undefined' && ( typeof viwcaio_atc === "undefined" || !viwcaio_atc.length) ) {
                $(document.body).trigger("update_checkout");
            }
            $('.vi-wcaio-sidebar-cart-wrap').addClass('vi-wcaio-sidebar-cart-wrap-updated');
            $(document.body).trigger("wc_fragments_refreshed");
        });
        $(document).on('viwcaio_fragment_refresh', function (e,url='',data=''){
            if (typeof viwcaio_sc_params !== "undefined"){
                if (!url){
                    url = viwcaio_sc_params.wc_ajax_url.toString().replace('%%endpoint%%', 'viwcaio_get_cart_fragments');
                }
                if (!data){
                    data = {viwcaio_get_cart_fragments: 1, vicaio_nonce: viwcaio_sc_params.nonce};
                }
            }
            if (!url || !data){
                return false;
            }
            $.ajax({
                url: url,
                type: 'POST',
                data: data,
                beforeSend: function () {
                    $('.vi-wcaio-sidebar-cart-wrap').find('.vi-wcaio-sidebar-cart-loading-wrap').removeClass('vi-wcaio-disabled');
                },
                success: function (response) {
                    $(document).trigger('viwcaio_after_update_cart',[response]);
                },
                error: function (e) {
                    console.log(e)
                    $('.vi-wcaio-sidebar-cart-wrap').find('.vi-wcaio-sidebar-cart-loading-wrap').addClass('vi-wcaio-disabled');
                },
                complete: function() {
                    $('.vi-wcaio-sidebar-cart-wrap').find('.vi-wcaio-sidebar-cart-loading-wrap').addClass('vi-wcaio-disabled');
                }
            });
        });
        $(document.body).on('wc_fragments_refreshed wc_fragments_ajax_error', function () {
            if ($('.vi-wcaio-sidebar-cart-wrap-open-atc').length){
                $(document.body).trigger('viwcaio_sc_effect_after_atc', [$('.vi-wcaio-sidebar-cart-wrap-open-atc').removeClass('vi-wcaio-sidebar-cart-wrap-open-atc').data('effect_after_atc')]);
                return true;
            }
            $('.vi-wcaio-sidebar-cart-wrap').find('.vi-wcaio-sidebar-cart-loading-wrap').addClass('vi-wcaio-disabled');
            $('.vi-wcaio-sidebar-cart-wrap').removeClass('vi-wcaio-sidebar-cart-wrap-updated');
            vi_wcaio_sc_icon_may_be_toggle($('.vi-wcaio-sidebar-cart-wrap'));
            $('.vi-wcaio-sidebar-cart-footer-pd-wrap-wrap:not(.vi-wcaio-disabled):not(.vi-wcaio-slide-init)').each(function () {
                vi_wcaio_sc_flexslider($(this));
            });
        });
        $(document.body).on('vartable_global_add_finished', function (evt) {
            // Woocommerce Variations Table - Grid - Spyros Vlachopoulos v1.4.14
            if ($('.vi-wcaio-sidebar-cart-content-open').length) {
                return true;
            }
            let cart = $('.vi-wcaio-sidebar-cart-wrap');
            let effect_after_atc = cart.data('effect_after_atc'),
                fly_to_cart = cart.data('fly_to_cart');
            if (cart.find('.vi-wcaio-sidebar-cart.vi-wcaio-disabled').length) {
                vi_wcaio_sc_icon_may_be_toggle(cart, true, true);
                cart.find('.vi-wcaio-sidebar-cart').removeClass('vi-wcaio-disabled');
            } else if ($('.vi-wcaio-sidebar-cart-icon-wrap.vi-wcaio-sidebar-cart-icon-wrap-close').length) {
                vi_wcaio_sc_icon_may_be_toggle(cart, true, true);
                cart = $('.vi-wcaio-sidebar-cart-wrap');
            }
            if (!effect_after_atc && !fly_to_cart) {
                return true;
            }
            if (effect_after_atc === 'open') {
                cart.addClass('vi-wcaio-sidebar-cart-wrap-open-atc');
            }
        });
        $(document).on('click','[data-wp-on--click="actions.addCartItem"]',function (e){
            if (!$('[id="wp-script-module-data-@wordpress/interactivity"]').length){
                return;
            }
            viwcaio_wc_block_cart_old = JSON.parse($('[id="wp-script-module-data-@wordpress/interactivity"]').html())?.state?.woocommerce?.cart?.items;
            $(this).addClass('vicaio-wc-blocks_adding_to_cart');
        });
        $(document).on('vicaio-wc-blocks_added_to_cart', function () {
            if (!$('.vicaio-wc-blocks_adding_to_cart').length || !viwcaio_wc_block_cart_new.length || !viwcaio_wc_block_cart_old.length){
                return;
            }
            let product_id;
            for (let item of viwcaio_wc_block_cart_new) {
                if (!item?.key || !item?.id || !item?.quantity){
                    continue;
                }
                let has_item = false;
                for (let old_item of viwcaio_wc_block_cart_old) {
                    if (!old_item?.key || !old_item?.id || !old_item?.quantity){
                        break;
                    }
                    if (old_item.key === item.key && old_item.id === item.id ){
                        has_item = true;
                        if ( item.quantity > old_item.quantity) {
                            product_id = item.id;
                        }
                        break;
                    }
                }
                if (!has_item){
                    product_id = item.id;
                }
                if (product_id){
                    break;
                }
            }
            if (!product_id){
                return;
            }
            let $btn = $(`[data-product_id="${product_id}"] .vicaio-wc-blocks_adding_to_cart`);
            if (!$btn.length){
                $btn = $(`[data-product_id="${product_id}"].vicaio-wc-blocks_adding_to_cart`)
            }
            if (!$btn.length){
                return;
            }
            $btn.removeClass('vicaio-wc-blocks_adding_to_cart');
            $(document).trigger('viwcaio_added_to_cart',[$btn]);
            viwcaio_wc_block_cart_old = viwcaio_wc_block_cart_new;
        });
        $(document.body).on('added_to_cart', function (evt, fragments, cart_hash, btn) {
            $(document).trigger('viwcaio_added_to_cart',[btn,{
                fragments: fragments,
                cart_hash: cart_hash
            }]);
        });
        $(document).on('viwcaio_added_to_cart',function (e, btn,update_cart ){
            if (btn.hasClass('vi-wcaio-pd_plus-product-bt-atc') || btn.closest('.viwcuf-checkout-funnel-container-popup-init').length
                || $('.vi-wcaio-sidebar-cart-content-open').length) {
                return false;
            }
            if (update_cart && !btn.hasClass('vi-wcaio-product-bt-atc-loading') && typeof wc_cart_fragments_params === "undefined") {
                $(document).trigger('viwcaio_after_update_cart', [update_cart, true]);
            }
            let cart = $('.vi-wcaio-sidebar-cart-wrap');
            let effect_after_atc = cart.data('effect_after_atc'),
                fly_to_cart = cart.data('fly_to_cart');
            if (cart.find('.vi-wcaio-sidebar-cart.vi-wcaio-disabled').length) {
                vi_wcaio_sc_icon_may_be_toggle(cart, true, true);
                cart.find('.vi-wcaio-sidebar-cart').removeClass('vi-wcaio-disabled');
            } else if ($('.vi-wcaio-sidebar-cart-icon-wrap.vi-wcaio-sidebar-cart-icon-wrap-close').length) {
                vi_wcaio_sc_icon_may_be_toggle(cart, true, true);
                cart = $('.vi-wcaio-sidebar-cart-wrap');
            }
            if (!effect_after_atc && !fly_to_cart) {
                return false;
            }
            if ($('.vi-wcaio-sb-container-popup-show').length) {
                if (effect_after_atc === 'open') {
                    $(document.body).trigger('viwcaio_sc_effect_after_atc', [effect_after_atc]);
                }
                return false;
            }
            if (fly_to_cart) {
                let img_product = viwcaio_get_img_product(btn), sc_icon = $('.vi-wcaio-sidebar-cart-icon-wrap');
                if ($(img_product).length && sc_icon.length) {
                    img_product = $(img_product);
                    let img_product_wrap, img_product_t, img_top, img_left, img_width, img_height,
                        sc_icon_top = sc_icon.offset().top || cart.offset().top,
                        sc_icon_left = sc_icon.offset().left || cart.offset().left;
                    if (img_product.closest('.elementor-widget-wrap').length && !img_product.closest('.product').length &&
                        !img_product.closest('.elementor-widget-wrap').find('.product').length) {
                        img_product_t = img_product.closest('.elementor-widget-wrap');
                    } else {
                        if (img_product.closest('.woocommerce-product-gallery__wrapper').length) {
                            img_product_wrap = img_product.closest('.woocommerce-product-gallery__wrapper');
                        } else if (img_product.closest('.woocommerce-product-gallery__image').length) {
                            img_product_wrap = img_product.closest('.woocommerce-product-gallery__image');
                        }
                        if (img_product_wrap && img_product_wrap.length) {
                            if (img_product_wrap.find('.flex-active-slide').length) {
                                img_product_t = img_product_wrap.find('.flex-active-slide');
                            } else if (img_product_wrap.find('.slick-active').length) {
                                img_product_t = img_product_wrap.find('.slick-active');
                            } else if (img_product_wrap.find('.active').length) {
                                img_product_t = img_product_wrap.find('.active');
                            } else if (img_product_wrap.find('.swiper-slide-active').length) {
                                img_product_t = img_product_wrap.find('.swiper-slide-active');
                            }
                        }
                        if (!img_product_t || !$(img_product_t).length) {
                            img_product_t = img_product;
                        }
                        if (img_product_t.find('img').length) {
                            img_product_t = img_product_t.find('img').first();
                        }
                    }
                    img_top = img_product_t.offset().top;
                    img_left = img_product_t.offset().left;
                    img_width = img_product_t.width();
                    img_height = img_product_t.height();
                    $('.vi-wcaio-img-flying').remove();
                    $('body').append('<div class="vi-wcaio-img-flying"></div>');
                    let img_flying = $('div.vi-wcaio-img-flying');
                    img_product.clone().appendTo(img_flying);
                    img_flying.css({
                        'top': img_top + 'px',
                        'left': img_left + 'px',
                        'width': img_width + 'px',
                        'height': img_height + 'px'
                    }).fadeIn("slow");
                    img_flying.animate({
                        'width': (img_width * 0.6) + 'px',
                        'height': (img_height * 0.6) + 'px',
                        top: '+=' + (img_height * 0.2) + 'px',
                        left: '+=' + (img_width * 0.2) + 'px'
                    }, 400, 'swing', function () {
                        img_flying.animate({
                            top: sc_icon_top + 'px',
                            left: sc_icon_left + 'px',
                            height: '18px',
                            width: '25px'
                        }, 800, "swing", function () {
                            $('div.vi-wcaio-img-flying').fadeIn('fast', function () {
                                $('div.vi-wcaio-img-flying').remove();
                            });
                            $(document.body).trigger('viwcaio_sc_effect_after_atc', [effect_after_atc]);
                        });
                    });
                } else {
                    $(document.body).trigger('viwcaio_sc_effect_after_atc', [effect_after_atc]);
                }
            } else {
                $(document.body).trigger('viwcaio_sc_effect_after_atc', [effect_after_atc]);
            }
        });
        $(document.body).on('viwcaio_sc_effect_after_atc', function (event, cart, effect_after_atc) {
            switch (effect_after_atc) {
                case 'open':
                    vi_wcaio_sc_toggle('show');
                    break;
                case 'shake_horizontal':
                    cart.find('.vi-wcaio-sidebar-cart-icon-wrap').removeClass('vi-wcaio-sidebar-cart-icon-wrap-mouseleave vi-wcaio-sidebar-cart-icon-wrap-open').addClass('vi-wcaio-sidebar-cart-icon-wrap-effect-shake_horizontal');
                    setTimeout(function () {
                        cart.find('.vi-wcaio-sidebar-cart-icon-wrap').removeClass('vi-wcaio-sidebar-cart-icon-wrap-effect-shake_horizontal');
                    }, 1100);
                    break;
                case 'shake_vertical':
                    cart.find('.vi-wcaio-sidebar-cart-icon-wrap').removeClass('vi-wcaio-sidebar-cart-icon-wrap-mouseleave vi-wcaio-sidebar-cart-icon-wrap-open').addClass('vi-wcaio-sidebar-cart-icon-wrap-effect-shake_vertical');
                    setTimeout(function () {
                        cart.find('.vi-wcaio-sidebar-cart-icon-wrap').removeClass('vi-wcaio-sidebar-cart-icon-wrap-effect-shake_vertical');
                    }, 1100);
                    break;
            }
        })
        $(document.body).on('click', '.vi-wcaio-sidebar-cart-pd-remove-wrap a.vi-wcaio-sidebar-cart-pd-remove', function (e) {
            e.preventDefault();
            e.stopPropagation();
            let button = $(this);
            let wrap = button.closest('.vi-wcaio-sidebar-cart-wrap'),
                data = {
                    cart_item_key: button.data('cart_item_key'),
                    vicaio_nonce: viwcaio_sc_params.nonce
                };
            $.ajax({
                url: viwcaio_sc_params.wc_ajax_url.toString().replace('%%endpoint%%', 'viwcaio_remove_item'),
                type: 'POST',
                data: data,
                beforeSend: function () {
                    wrap.find(' .vi-wcaio-sidebar-cart-loading-wrap').removeClass('vi-wcaio-disabled');
                },
                success: function (response) {
                    if (!response || response.error) {
                        window.location.reload();
                        return false;
                    }
                    wrap.addClass('vi-wcaio-sidebar-cart-wrap-updated');
                    // $(document.body).trigger("wc_fragment_refresh");
                    $(document.body).trigger('removed_from_cart', [response.fragments, response.cart_hash, button]);
                    $(document).trigger('viwcaio_after_update_cart', [response]);
                },
                error: function () {
                    wrap.find('.vi-wcaio-sidebar-cart-loading-wrap').addClass('vi-wcaio-disabled');
                }
            });
        });
        $(document.body).on('click', '.vi-wcaio-sidebar-cart-pd-wrap .vi_wcaio_change_qty', function (e) {
            e.preventDefault();
            e.stopPropagation();
            let qty_input = $(this).closest('.vi-wcaio-sidebar-cart-pd-quantity').find('.vi_wcaio_qty');
            let val = parseFloat(qty_input.val()),
                step = parseFloat(qty_input.attr('step')),
                min = parseFloat(qty_input.attr('min')),
                max = parseFloat(qty_input.attr('max'));
            if ($(this).hasClass('vi_wcaio_plus')) {
                if (max === val) {
                    return false;
                }
                val += step;
            } else {
                if (min === val) {
                    return false;
                }
                val -= step;
            }
            qty_input.val(val).trigger('change');
        });
        $(document.body).on('change', '.vi-wcaio-sidebar-cart-pd-wrap input.vi_wcaio_qty', function (e) {
            e.preventDefault();
            e.stopPropagation();
            let val = parseFloat($(this).val()),
                min = parseFloat($(this).attr('min')),
                max = parseFloat($(this).attr('max'));
            if (min > val) {
                val = min;
            }
            if (val > max) {
                val = max;
            }
            $(this).val(val);
            $(this).addClass('vi_wcaio_qty_update').closest('.vi-wcaio-sidebar-cart-wrap').find('.vi-wcaio-sidebar-cart-bt-update').removeClass('vi-wcaio-disabled');
        });
        $(document.body).on('click', '.vi-wcaio-sidebar-cart-wrap .vi-wcaio-sidebar-cart-bt-update', function (e) {
            e.preventDefault();
            e.stopPropagation();
            let button = $(this);
            let wrap = button.closest('.vi-wcaio-sidebar-cart-wrap'), data;
            if (wrap.find('.vi_wcaio_qty_update').length) {
                data = wrap.find('.vi-wcaio-sidebar-cart-products input.vi_wcaio_qty_update').serialize();
            } else {
                data = wrap.find('.vi-wcaio-sidebar-cart-products input').serialize();
            }
            if (data.search('vicaio_nonce') === -1) {
                data += '&vicaio_nonce=' + viwcaio_sc_params.nonce;
            }
            $.ajax({
                url: viwcaio_sc_params.wc_ajax_url.toString().replace('%%endpoint%%', 'viwcaio_change_quantity'),
                type: 'POST',
                data: data,
                beforeSend: function () {
                    wrap.find(' .vi-wcaio-sidebar-cart-loading-wrap').removeClass('vi-wcaio-disabled');
                },
                success: function (response) {
                    if (!response || response.error) {
                        window.location.reload();
                        return false;
                    }
                    button.addClass('vi-wcaio-disabled');
                    $(document).trigger('viwcaio_after_update_cart',[response]);
                    // $(document.body).trigger("wc_fragment_refresh");
                    // vi_wcaio_sc_icon_may_be_toggle(wrap);
                },
                error: function () {
                    wrap.find('.vi_wcaio_qty_update').removeClass('vi_wcaio_qty_update');
                    wrap.find('.vi-wcaio-sidebar-cart-loading-wrap').addClass('vi-wcaio-disabled');
                }
            })
        });
        $(document.body).on('click', '.vi-wcaio-sidebar-cart-wrap .vi-wcaio-bt-coupon-code', function (e) {
            e.preventDefault();
            e.stopPropagation();
            let button = $(this);
            let wrap = button.closest('.vi-wcaio-sidebar-cart-wrap');
            let data = {
                vi_wcaio_coupon_code: wrap.find('.vi-wcaio-coupon-code').val() || '',
                vicaio_nonce: viwcaio_sc_params.nonce
            };
            $.ajax({
                url: viwcaio_sc_params.wc_ajax_url.toString().replace('%%endpoint%%', 'viwcaio_apply_coupon'),
                type: 'POST',
                data: data,
                beforeSend: function () {
                    wrap.find(' .vi-wcaio-sidebar-cart-loading-wrap').removeClass('vi-wcaio-disabled');
                },
                success: function (response) {
                    if (!response) {
                        window.location.reload();
                        return false;
                    }
                    if (response.message) {
                        vi_wcaio_show_message(response.message);
                    }
                    if (response.status && response.status === 'success') {
                        $(document.body).trigger("viwcaio_fragment_refresh");
                    }else {
                        wrap.find('.vi-wcaio-sidebar-cart-loading-wrap').addClass('vi-wcaio-disabled');
                    }
                },
                error: function () {
                    wrap.find('.vi-wcaio-sidebar-cart-loading-wrap').addClass('vi-wcaio-disabled');
                }
            })
        });
    }
    function viwcaio_sidebar_cart_is_refresh(){
        let options = $('.vi-wcaio-sidebar-cart-content-wrap').data('option')||{}, refresh=false;
        if (Object.keys(options).length && $('.vi-wcaio-sidebar-cart-wrap .vi-wcaio-sidebar-cart-pd-wrap').length){
            $.each(options,function (k,v){
                switch (k){
                    case 'sc_footer_cart_total':
                        if (!$('.vi-wcaio-sidebar-cart-footer-cart_total1-'+v).length){
                            refresh++;
                        }
                        break;
                    case 'sc_pd_price_style':
                        if (!$('.vi-wcaio-sidebar-cart-pd-price-'+v).length){
                            refresh++;
                        }
                        break;
                }
            });
        }
        return refresh;
    }
    function viwcaio_block_sidebar_cart_refresh(cart=null) {
        if (!cart) {
            cart = wp_select(wc_block_cart_store_key).getCartData();
        }
        viwcaio_wc_block_cart_new = cart?.items;
        $(document).trigger('vicaio-wc-blocks_added_to_cart');
        $(document).trigger('viwcaio_after_update_cart', [cart?.extensions?.vicaio_update]);
    }

    function viwcaio_sidebar_cart_refresh(url, data) {
        // Refresh when load page
        if ($('.vi-wcaio-sidebar-cart-wrap.vi-wcaio-sidebar-cart-wrap-init').length ) {
            if ($('.vi-wcaio-sidebar-cart-wrap:not(.vi-wcaio-sidebar-cart-wrap-fragments-load)').length) {
                if (viwcaio_sidebar_cart_is_refresh()){
                    setTimeout(function () {
                        $(document).trigger("viwcaio_fragment_refresh", [url, data]);
                    }, 100);
                    return false;
                }
                if (typeof wc_cart_fragments_params !== "undefined"){
                    $(document.body).on('wc_fragments_loaded',function (){
                        if ($('.vi-wcaio-sidebar-cart-wrap:not(.vi-wcaio-sidebar-cart-wrap-fragments-load)').length){
                            $('.vi-wcaio-sidebar-cart-wrap:not(.vi-wcaio-sidebar-cart-wrap-fragments-load)').addClass('vi-wcaio-sidebar-cart-wrap-fragments-load');
                            setTimeout(function () {
                                $(document).trigger("viwcaio_fragment_refresh", [url, data]);
                            }, 100);
                        }
                    });
                    return false;
                }
                $('.vi-wcaio-sidebar-cart-wrap:not(.vi-wcaio-sidebar-cart-wrap-fragments-load)').addClass('vi-wcaio-sidebar-cart-wrap-fragments-load');
                let $supports_html5_storage =  'sessionStorage' in window && window.sessionStorage !== null ;
                if (!$supports_html5_storage || typeof viwcaio_sc_params === "undefined"){
                    setTimeout(function () {
                        $(document).trigger("viwcaio_fragment_refresh", [url, data]);
                    }, 100);
                }
                let cart_hash    = sessionStorage.getItem( viwcaio_sc_params.cart_hash_key );
                // Refresh when storage changes in another tab
                $(window).on( 'storage onstorage', function ( e ) {
                    if (
                        cart_hash === e.originalEvent.key && localStorage.getItem( cart_hash ) !== sessionStorage.getItem( cart_hash )
                    ) {
                        setTimeout(function () {
                            $(document).trigger("viwcaio_fragment_refresh", [url, data]);
                        }, 100);
                    }
                });
                try {
                    let wc_fragments = JSON.parse( sessionStorage.getItem( viwcaio_sc_params.fragment_name ) ),
                        cookie_hash  = Cookies.get( 'woocommerce_cart_hash'),
                        cart_created = sessionStorage.getItem( 'wc_cart_created' ),
                        day_in_ms    = ( 24 * 60 * 60 * 1000 );
                    if ( cart_hash === null || cart_hash === undefined || cart_hash === '' ) {
                        cart_hash = '';
                    }
                    if ( cookie_hash === null || cookie_hash === undefined || cookie_hash === '' ) {
                        cookie_hash = '';
                    }

                    if ( cart_hash && ( cart_created === null || cart_created === undefined || cart_created === '' ) ) {
                        throw 'No cart_created';
                    }

                    if ( cart_created ) {
                        var cart_expiration = ( ( 1 * cart_created ) + day_in_ms ),
                            timestamp_now   = ( new Date() ).getTime();
                        if ( cart_expiration < timestamp_now ) {
                            throw 'Fragment expired';
                        }
                    }

                    if ( wc_fragments && wc_fragments['div.widget_shopping_cart_content'] && cart_hash === cookie_hash ) {
                        $.each( wc_fragments, function( key, value ) {
                            $( key ).replaceWith(value);
                        });
                    } else {
                        throw 'No fragment';
                    }

                } catch( err ) {
                    console.log(err)
                    setTimeout(function () {
                        $(document).trigger("viwcaio_fragment_refresh", [url, data]);
                    }, 100);
                }
            } else {
                $('.vi-wcaio-sidebar-cart-footer-pd-wrap-wrap:not(.vi-wcaio-disabled):not(.vi-wcaio-slide-init)').each(function () {
                    vi_wcaio_sc_flexslider($(this));
                });
            }
        }
    }

    function vi_wcaio_sc_toggle(action = '', new_effect = '') {
        let wrap = $('.vi-wcaio-sidebar-cart-content-wrap'),
            position = $('.vi-wcaio-sidebar-cart').data('position'),
            effect = $('.vi-wcaio-sidebar-cart').data('effect');
        if (action === 'hide' && wrap.hasClass('vi-wcaio-sidebar-cart-content-close')) {
            return false;
        }
        if (action === 'show' && wrap.hasClass('vi-wcaio-sidebar-cart-content-open')) {
            return false;
        }
        vi_wcaio_sc_design(wrap);
        let type = (position === 'top_left' || position === 'bottom_left') ? 'left' : 'right';
        if (action === 'start' && new_effect) {
            if (wrap.hasClass('vi-wcaio-sidebar-cart-content-close')) {
                wrap.removeClass('vi-wcaio-sidebar-cart-content-open vi-wcaio-sidebar-cart-content-open-' + effect + '-' + type);
                wrap.addClass('vi-wcaio-sidebar-cart-content-close vi-wcaio-sidebar-cart-content-close-' + new_effect + '-' + type);
            } else {
                wrap.addClass('vi-wcaio-sidebar-cart-content-open vi-wcaio-sidebar-cart-content-open-' + new_effect + '-' + type);
                wrap.removeClass('vi-wcaio-sidebar-cart-content-close vi-wcaio-sidebar-cart-content-close-' + effect + '-' + type);
            }
            $('.vi-wcaio-sidebar-cart').data('effect', new_effect);
            return false;
        }
        new_effect = new_effect ? new_effect : effect;
        let old_position = $('.vi-wcaio-sidebar-cart').data('old_position') || '';
        let old_type = old_position ? ((old_position === 'top_left' || old_position === 'bottom_left') ? 'left' : 'right') : type;
        let class_open = 'vi-wcaio-sidebar-cart-content-open vi-wcaio-sidebar-cart-content-open-' + new_effect + '-' + type,
            class_close = 'vi-wcaio-sidebar-cart-content-close vi-wcaio-sidebar-cart-content-close-' + new_effect + '-' + type,
            class_open_old = 'vi-wcaio-sidebar-cart-content-open vi-wcaio-sidebar-cart-content-open-' + effect + '-' + old_type,
            class_close_old = 'vi-wcaio-sidebar-cart-content-close vi-wcaio-sidebar-cart-content-close-' + effect + '-' + old_type + ' vi-wcaio-sidebar-cart-content-close-' + effect + '-' + type;
        if (wrap.hasClass('vi-wcaio-sidebar-cart-content-close')) {
            wrap.addClass(class_open).removeClass(class_close).removeClass(class_close_old);
            $('html').addClass('vi-wcaio-html-non-scroll');
            $('.vi-wcaio-sidebar-cart-overlay').removeClass('vi-wcaio-disabled');
            $('.vi-wcaio-sidebar-cart').data('effect', new_effect);
            vi_wcaio_sc_icon_toggle();
        } else {
            wrap.addClass(class_close).removeClass(class_open).removeClass(class_open_old);
            $('.vi-wcaio-sidebar-cart-overlay').addClass('vi-wcaio-disabled');
            $('html').removeClass('vi-wcaio-html-non-scroll');
            vi_wcaio_sc_icon_toggle(true);
        }
        $('.vi-wcaio-sidebar-cart').data('effect', new_effect);
    }

    function vi_wcaio_sc_icon_may_be_toggle(cart, show = false, added_to_cart = false) {
        $('.vi-wcaio-sidebar-cart-loading-wrap').addClass('vi-wcaio-disabled');
        if (show) {
            vi_wcaio_sc_icon_toggle(true, added_to_cart);
            return false;
        } else if (!cart) {
            vi_wcaio_sc_toggle('hide');
            vi_wcaio_sc_icon_toggle();
        }
        cart = $(cart);
        if (cart.length && (cart.data('empty_enable') || cart.find('.vi-wcaio-sidebar-cart-pd-wrap').length)) {
            if (cart.find('.vi-wcaio-sidebar-cart-pd-wrap').length) {
                $('.vi-wcaio-sidebar-cart-icon-wrap').removeClass('vi-wcaio-disabled');
            }
            return false;
        }
        vi_wcaio_sc_toggle('hide');
        $('.vi-wcaio-coupon-code').val('');
        vi_wcaio_sc_icon_toggle(true);
    }

    function vi_wcaio_sc_icon_toggle(show = false, added_to_cart = false) {
        if (show) {
            if (!added_to_cart && !$('.vi-wcaio-sidebar-cart-wrap').data('empty_enable') && !$('.vi-wcaio-sidebar-cart-wrap').find('.vi-wcaio-sidebar-cart-pd-wrap').length) {
                return false;
            }
            $('.vi-wcaio-sidebar-cart-icon-wrap').removeClass('vi-wcaio-disabled vi-wcaio-sidebar-cart-icon-wrap-close vi-wcaio-sidebar-cart-icon-wrap-mouseenter vi-wcaio-sidebar-cart-icon-wrap-mouseleave');
            $('.vi-wcaio-sidebar-cart-icon-wrap').addClass('vi-wcaio-sidebar-cart-icon-wrap-open');
        } else {
            $('.vi-wcaio-sidebar-cart-icon-wrap').addClass('vi-wcaio-sidebar-cart-icon-wrap-close');
            $('.vi-wcaio-sidebar-cart-icon-wrap').removeClass('vi-wcaio-sidebar-cart-icon-wrap-open vi-wcaio-sidebar-cart-icon-wrap-mouseenter vi-wcaio-sidebar-cart-icon-wrap-mouseleave');
        }
    }

    function viwcaio_get_img_product(btn) {
        let product = btn.closest('.vi-wcaio-sb-wrap'), img_product;//Sticky add to cart
        if (!product.length) {//Uncode
            product = btn.closest('.tmb-woocommerce');
        }
        if (!product.length) {
            product = btn.closest('.product');
        }
        if (!product.length) {
            product = btn.closest('.item-product');
        }
        if (!product.length) {//Milano
            product = btn.closest('.product-item');
        }
        if (!product.length) {//Infinite
            product = btn.closest('.gdlr-core-item-list');
        }
        if (!product.length) {//Zella
            product = btn.closest('.product-warp-item');
        }
        if (!product.length) {//WooCommerce Food plugin
            product = btn.closest('.item-grid');
        }
        if (!product.length) {
            product = btn.closest('.product__box');
        }
        if (!product.length) {
            product = btn.closest('.woo-entry-inner');
        }
        if (product.find('.vi-wcaio-sb-product-img').length) {
            img_product = product.find('.vi-wcaio-sb-product-img').first();
        } else if (product.find('.wp-post-image').length) {
            img_product = product.find('.wp-post-image').first();
        } else if (product.find('.attachment-shop_catalog').length) {//Authentic, //Zella ,Skudmart 1.0.6
            img_product = product.find('.attachment-shop_catalog').first();
        } else if (product.find('.gdlr-core-product-thumbnail').length) {//Infinite
            img_product = product.find('.gdlr-core-product-thumbnail').first();
        } else if (product.find('.woo-entry-image-main').length) {//ocean
            img_product = product.find('.woo-entry-image-main').first();
        } else if (product.find('.wp-post-image.vi-load').length) { //swatches demo
            img_product = product.find('.wp-post-image.vi-load').first();
        } else if (product.find('.attachment-woocommerce_thumbnail').length) {
            img_product = product.find('.attachment-woocommerce_thumbnail').first();
        }
        if (!img_product) {
            if (product && product.find('img')) {
                img_product = product.find('img').first();
            } else {
                img_product = false;
            }
        }
        return img_product;
    }

    function vi_wcaio_sc_design(wrap) {
        wrap = $(wrap);
        if (window.innerWidth < 782) {
            wrap.css({maxHeight: window.innerHeight});
        }
    }

    function vi_wcaio_sc_flexslider(wrap) {
        wrap = $(wrap);
        let rtl = false;
        if (wrap.closest('.vi-wcaio-sidebar-cart-rtl').length) {
            rtl = true;
        }
        wrap.find('img').each(function () {
            $(this).attr('src', $(this).data('src'));
        });
        wrap.addClass('vi-wcaio-slider-init');
        wrap.viwcaio_flexslider({
            namespace: 'vi-wcaio-slider-',
            selector: '.vi-wcaio-sidebar-cart-footer-pd-wrap .vi-wcaio-sidebar-cart-footer-pd',
            animation: 'slide',
            animationLoop: 1,
            itemWidth: 145,
            itemMargin: 10,
            controlNav: false,
            maxItems: window.outerWidth > 480 ? 2 : 1,
            reverse: rtl,
            rtl: rtl,
            move: 1,
            touch: true,
            slideshow: false,
        });
    }

    function vi_wcaio_show_message(message) {
        $('.vi-wcaio-sidebar-cart-wrap').removeClass('vi-wcaio-sidebar-cart-wrap-warning');
        if (!$('.vi-wcaio-warning-wrap').length) {
            $('body').append('<div class="vi-wcaio-warning-wrap vi-wcaio-warning-wrap-open"><div>' + message + '</div></div>');
        } else {
            $('.vi-wcaio-warning-wrap').removeClass('vi-wcaio-warning-wrap-close').addClass('vi-wcaio-warning-wrap-open');
            $('.vi-wcaio-warning-wrap > div').html(message);
        }
        setTimeout(function () {
            $('.vi-wcaio-sidebar-cart-wrap').addClass('vi-wcaio-sidebar-cart-wrap-warning');
        }, 1000);
        setTimeout(function () {
            vi_wcaio_hide_message();
        }, 15000);
    }

    function vi_wcaio_hide_message() {
        $('.vi-wcaio-sidebar-cart-wrap').removeClass('vi-wcaio-sidebar-cart-wrap-warning');
        $('.vi-wcaio-warning-wrap').addClass('vi-wcaio-warning-wrap-close').removeClass('vi-wcaio-warning-wrap-open');
    }
    window.viwcaio_sidebar_cart_is_refresh = viwcaio_sidebar_cart_is_refresh;
    window.vi_wcaio_sc_toggle = vi_wcaio_sc_toggle;
    window.vi_wcaio_sc_icon_may_be_toggle = vi_wcaio_sc_icon_may_be_toggle;
    window.vi_wcaio_sc_icon_toggle = vi_wcaio_sc_icon_toggle;
    window.vi_wcaio_sc_flexslider = vi_wcaio_sc_flexslider;
    window.vi_wcaio_show_message = vi_wcaio_show_message;
    window.vi_wcaio_hide_message = vi_wcaio_hide_message;
})(jQuery);
// source --> https://geneesleer.nl/wp-content/plugins/woo-cart-all-in-one/assets/js/flexslider.min.js?ver=1.1.23 
!function(v){var a=!0;v.viwcaio_flexslider=function(p,e){var m=v(p);"undefined"==typeof e.rtl&&"rtl"==v("html").attr("dir")&&(e.rtl=!0),m.vars=v.extend({},v.viwcaio_flexslider.defaults,e);var t,r=m.vars.namespace,f=window.navigator&&window.navigator.msPointerEnabled&&window.MSGesture,o=("ontouchstart"in window||f||window.DocumentTouch&&document instanceof DocumentTouch)&&m.vars.touch,l="click touchend MSPointerUp keyup",d="",g="vertical"===m.vars.direction,h=m.vars.reverse,S=0<m.vars.itemWidth,x="fade"===m.vars.animation,c=""!==m.vars.asNavFor,u={};v.data(p,"flexslider",m),u={init:function(){m.animating=!1,m.currentSlide=parseInt(m.vars.startAt||0,10),isNaN(m.currentSlide)&&(m.currentSlide=0),m.animatingTo=m.currentSlide,m.atEnd=0===m.currentSlide||m.currentSlide===m.last,m.containerSelector=m.vars.selector.substr(0,m.vars.selector.search(" ")),m.slides=v(m.vars.selector,m),m.container=v(m.containerSelector,m),m.count=m.slides.length,m.syncExists=0<v(m.vars.sync).length,"slide"===m.vars.animation&&(m.vars.animation="swing"),m.prop=g?"top":m.vars.rtl?"marginRight":"marginLeft",m.args={},m.manualPause=!1,m.stopped=!1,m.started=!1,m.startTimeout=null,m.transitions=!m.vars.video&&!x&&m.vars.useCSS&&function(){var e,t=document.createElement("div"),a=["perspectiveProperty","WebkitPerspective","MozPerspective","OPerspective","msPerspective"];for(e in a)if(t.style[a[e]]!==undefined)return m.pfx=a[e].replace("Perspective","").toLowerCase(),m.prop="-"+m.pfx+"-transform",!0;return!1}(),m.isFirefox=-1<navigator.userAgent.toLowerCase().indexOf("firefox"),(m.ensureAnimationEnd="")!==m.vars.controlsContainer&&(m.controlsContainer=0<v(m.vars.controlsContainer).length&&v(m.vars.controlsContainer)),""!==m.vars.manualControls&&(m.manualControls=0<v(m.vars.manualControls).length&&v(m.vars.manualControls)),""!==m.vars.customDirectionNav&&(m.customDirectionNav=2===v(m.vars.customDirectionNav).length&&v(m.vars.customDirectionNav)),m.vars.randomize&&(m.slides.sort(function(){return Math.round(Math.random())-.5}),m.container.empty().append(m.slides)),m.doMath(),m.setup("init"),m.vars.controlNav&&u.controlNav.setup(),m.vars.directionNav&&u.directionNav.setup(),m.vars.keyboard&&(1===v(m.containerSelector).length||m.vars.multipleKeyboard)&&v(document).on("keyup",function(e){var e=e.keyCode;m.animating||39!==e&&37!==e||(e=m.vars.rtl?37===e?m.getTarget("next"):39===e&&m.getTarget("prev"):39===e?m.getTarget("next"):37===e&&m.getTarget("prev"),m.flexAnimate(e,m.vars.pauseOnAction))}),m.vars.mousewheel&&m.on("mousewheel",function(e,t,a,n){e.preventDefault();t=t<0?m.getTarget("next"):m.getTarget("prev");m.flexAnimate(t,m.vars.pauseOnAction)}),m.vars.pausePlay&&u.pausePlay.setup(),m.vars.slideshow&&m.vars.pauseInvisible&&u.pauseInvisible.init(),m.vars.slideshow&&(m.vars.pauseOnHover&&m.on("mouseenter",function(){m.manualPlay||m.manualPause||m.pause()}).on("mouseleave",function(){m.manualPause||m.manualPlay||m.stopped||m.play()}),m.vars.pauseInvisible&&u.pauseInvisible.isHidden()||(0<m.vars.initDelay?m.startTimeout=setTimeout(m.play,m.vars.initDelay):m.play())),c&&u.asNav.setup(),o&&m.vars.touch&&u.touch(),x&&!m.vars.smoothHeight||v(window).on("resize orientationchange focus",u.resize),m.find("img").attr("draggable","false"),setTimeout(function(){m.vars.start(m)},200)},asNav:{setup:function(){m.asNav=!0,m.animatingTo=Math.floor(m.currentSlide/m.move),m.currentItem=m.currentSlide,m.slides.removeClass(r+"active-slide").eq(m.currentItem).addClass(r+"active-slide"),f?(p._slider=m).slides.each(function(){var e=this;e._gesture=new MSGesture,(e._gesture.target=e).addEventListener("MSPointerDown",function(e){e.preventDefault(),e.currentTarget._gesture&&e.currentTarget._gesture.addPointer(e.pointerId)},!1),e.addEventListener("MSGestureTap",function(e){e.preventDefault();var t=v(this),e=t.index();v(m.vars.asNavFor).data("flexslider").animating||t.hasClass("active")||(m.direction=m.currentItem<e?"next":"prev",m.flexAnimate(e,m.vars.pauseOnAction,!1,!0,!0))})}):m.slides.on(l,function(e){e.preventDefault();var t=v(this),a=t.index(),e=m.vars.rtl?-1*(t.offset().right-v(m).scrollLeft()):t.offset().left-v(m).scrollLeft();e<=0&&t.hasClass(r+"active-slide")?m.flexAnimate(m.getTarget("prev"),!0):v(m.vars.asNavFor).data("flexslider").animating||t.hasClass(r+"active-slide")||(m.direction=m.currentItem<a?"next":"prev",m.flexAnimate(a,m.vars.pauseOnAction,!1,!0,!0))})}},controlNav:{setup:function(){m.manualControls?u.controlNav.setupManual():u.controlNav.setupPaging()},setupPaging:function(){var e,t="thumbnails"===m.vars.controlNav?"control-thumbs":"control-paging",a=1;if(m.controlNavScaffold=v('<ol class="'+r+"control-nav "+r+t+'"></ol>'),1<m.pagingCount)for(var n=0;n<m.pagingCount;n++){var i=m.slides.eq(n);undefined===i.attr("data-thumb-alt")&&i.attr("data-thumb-alt",""),e=v("<a></a>").attr("href","#").text(a),"thumbnails"===m.vars.controlNav&&(e=v("<img/>",{onload:"this.width = this.naturalWidth; this.height = this.naturalHeight",src:i.attr("data-thumb"),alt:i.attr("alt")})),""!==i.attr("data-thumb-alt")&&e.attr("alt",i.attr("data-thumb-alt")),"thumbnails"!==m.vars.controlNav||!0!==m.vars.thumbCaptions||""!==(i=i.attr("data-thumbcaption"))&&undefined!==i&&(s=v("<span></span>").addClass(r+"caption").text(i),e.append(s));var s=v("<li>");e.appendTo(s),s.append("</li>"),m.controlNavScaffold.append(s),a++}(m.controlsContainer?v(m.controlsContainer):m).append(m.controlNavScaffold),u.controlNav.set(),u.controlNav.active(),m.controlNavScaffold.on(l,"a, img",function(e){var t,a;e.preventDefault(),""!==d&&d!==e.type||(t=v(this),a=m.controlNav.index(t),t.hasClass(r+"active")||(m.direction=a>m.currentSlide?"next":"prev",m.flexAnimate(a,m.vars.pauseOnAction))),""===d&&(d=e.type),u.setToClearWatchedEvent()})},setupManual:function(){m.controlNav=m.manualControls,u.controlNav.active(),m.controlNav.on(l,function(e){var t,a;e.preventDefault(),""!==d&&d!==e.type||(t=v(this),a=m.controlNav.index(t),t.hasClass(r+"active")||(a>m.currentSlide?m.direction="next":m.direction="prev",m.flexAnimate(a,m.vars.pauseOnAction))),""===d&&(d=e.type),u.setToClearWatchedEvent()})},set:function(){var e="thumbnails"===m.vars.controlNav?"img":"a";m.controlNav=v("."+r+"control-nav li "+e,m.controlsContainer||m)},active:function(){m.controlNav.removeClass(r+"active").eq(m.animatingTo).addClass(r+"active")},update:function(e,t){1<m.pagingCount&&"add"===e?m.controlNavScaffold.append(v('<li><a href="#">'+m.count+"</a></li>")):(1===m.pagingCount?m.controlNavScaffold.find("li"):m.controlNav.eq(t).closest("li")).remove(),u.controlNav.set(),1<m.pagingCount&&m.pagingCount!==m.controlNav.length?m.update(t,e):u.controlNav.active()}},directionNav:{setup:function(){var e=v('<ul class="'+r+'direction-nav"><li class="'+r+'nav-prev"><a class="'+r+'prev" href="#">'+m.vars.prevText+'</a></li><li class="'+r+'nav-next"><a class="'+r+'next" href="#">'+m.vars.nextText+"</a></li></ul>");m.customDirectionNav?m.directionNav=m.customDirectionNav:m.controlsContainer?(v(m.controlsContainer).append(e),m.directionNav=v("."+r+"direction-nav li a",m.controlsContainer)):(m.append(e),m.directionNav=v("."+r+"direction-nav li a",m)),u.directionNav.update(),m.directionNav.on(l,function(e){var t;e.preventDefault(),""!==d&&d!==e.type||(t=v(this).hasClass(r+"next")?m.getTarget("next"):m.getTarget("prev"),m.flexAnimate(t,m.vars.pauseOnAction)),""===d&&(d=e.type),u.setToClearWatchedEvent()})},update:function(){console.log("updating...");var e=r+"disabled";1===m.pagingCount?m.directionNav.addClass(e).attr("tabindex","-1"):m.vars.animationLoop?m.directionNav.removeClass(e).prop("tabindex","-1"):0===m.animatingTo?m.directionNav.removeClass(e).filter("."+r+"prev").addClass(e).attr("tabindex","-1"):m.animatingTo===m.last?m.directionNav.removeClass(e).filter("."+r+"next").addClass(e).attr("tabindex","-1"):m.directionNav.removeClass(e).prop("tabindex","-1")}},pausePlay:{setup:function(){var e=v('<div class="'+r+'pauseplay"><a href="#"></a></div>');m.controlsContainer?(m.controlsContainer.append(e),m.pausePlay=v("."+r+"pauseplay a",m.controlsContainer)):(m.append(e),m.pausePlay=v("."+r+"pauseplay a",m)),u.pausePlay.update(m.vars.slideshow?r+"pause":r+"play"),m.pausePlay.on(l,function(e){e.preventDefault(),""!==d&&d!==e.type||(v(this).hasClass(r+"pause")?(m.manualPause=!0,m.manualPlay=!1,m.pause()):(m.manualPause=!1,m.manualPlay=!0,m.play())),""===d&&(d=e.type),u.setToClearWatchedEvent()})},update:function(e){"play"===e?m.pausePlay.removeClass(r+"pause").addClass(r+"play").html(m.vars.playText):m.pausePlay.removeClass(r+"play").addClass(r+"pause").html(m.vars.pauseText)}},touch:function(){var n,i,s,r,o,l,d,c,u=!1,t=0,a=0,v=0;f?(p.style.msTouchAction="none",p._gesture=new MSGesture,(p._gesture.target=p).addEventListener("MSPointerDown",function(e){e.stopPropagation(),m.animating?e.preventDefault():(m.pause(),p._gesture.addPointer(e.pointerId),v=0,r=g?m.h:m.w,l=Number(new Date),s=S&&h&&m.animatingTo===m.last?0:S&&h?m.limit-(m.itemW+m.vars.itemMargin)*m.move*m.animatingTo:S&&m.currentSlide===m.last?m.limit:S?(m.itemW+m.vars.itemMargin)*m.move*m.currentSlide:h?(m.last-m.currentSlide+m.cloneOffset)*r:(m.currentSlide+m.cloneOffset)*r)},!1),p._slider=m,p.addEventListener("MSGestureChange",function(e){e.stopPropagation();var t,a,n=e.target._slider;n&&(t=-e.translationX,a=-e.translationY,v+=g?a:t,o=(n.vars.rtl?-1:1)*v,u=g?Math.abs(v)<Math.abs(-t):Math.abs(v)<Math.abs(-a),e.detail!==e.MSGESTURE_FLAG_INERTIA?(!u||500<Number(new Date)-l)&&(e.preventDefault(),!x&&n.transitions&&(n.vars.animationLoop||(o=v/(0===n.currentSlide&&v<0||n.currentSlide===n.last&&0<v?Math.abs(v)/r+2:1)),n.setProps(s+o,"setTouch"))):setImmediate(function(){p._gesture.stop()}))},!1),p.addEventListener("MSGestureEnd",function(e){e.stopPropagation();var t,a=e.target._slider;a&&(a.animatingTo!==a.currentSlide||u||null===o||(e=0<(t=h?-o:o)?a.getTarget("next"):a.getTarget("prev"),a.canAdvance(e)&&(Number(new Date)-l<550&&50<Math.abs(t)||Math.abs(t)>r/2)?a.flexAnimate(e,a.vars.pauseOnAction):x||a.flexAnimate(a.currentSlide,a.vars.pauseOnAction,!0)),s=o=i=n=null,v=0)},!1)):(d=function(e){t=e.touches[0].pageX,a=e.touches[0].pageY,o=g?n-a:(m.vars.rtl?-1:1)*(n-t);(!(u=g?Math.abs(o)<Math.abs(t-i):Math.abs(o)<Math.abs(a-i))||500<Number(new Date)-l)&&(e.preventDefault(),!x&&m.transitions&&(m.vars.animationLoop||(o/=0===m.currentSlide&&o<0||m.currentSlide===m.last&&0<o?Math.abs(o)/r+2:1),m.setProps(s+o,"setTouch")))},c=function(e){var t,a;p.removeEventListener("touchmove",d,!1),m.animatingTo!==m.currentSlide||u||null===o||(a=0<(t=h?-o:o)?m.getTarget("next"):m.getTarget("prev"),m.canAdvance(a)&&(Number(new Date)-l<550&&50<Math.abs(t)||Math.abs(t)>r/2)?m.flexAnimate(a,m.vars.pauseOnAction):x||m.flexAnimate(m.currentSlide,m.vars.pauseOnAction,!0)),p.removeEventListener("touchend",c,!1),s=o=i=n=null},p.addEventListener("touchstart",function(e){m.animating?e.preventDefault():!window.navigator.msPointerEnabled&&1!==e.touches.length||(m.pause(),r=g?m.h:m.w,l=Number(new Date),t=e.touches[0].pageX,a=e.touches[0].pageY,s=S&&h&&m.animatingTo===m.last?0:S&&h?m.limit-(m.itemW+m.vars.itemMargin)*m.move*m.animatingTo:S&&m.currentSlide===m.last?m.limit:S?(m.itemW+m.vars.itemMargin)*m.move*m.currentSlide:h?(m.last-m.currentSlide+m.cloneOffset)*r:(m.currentSlide+m.cloneOffset)*r,n=g?a:t,i=g?t:a,p.addEventListener("touchmove",d,!1),p.addEventListener("touchend",c,!1))},!1))},resize:function(){!m.animating&&m.is(":visible")&&(S||m.doMath(),x?u.smoothHeight():S?(m.slides.width(m.computedW),m.update(m.pagingCount),m.setProps()):g?(m.viewport.height(m.h),m.setProps(m.h,"setTotal")):(m.vars.smoothHeight&&u.smoothHeight(),m.newSlides.width(m.computedW),m.setProps(m.computedW,"setTotal")))},smoothHeight:function(e){var t;g&&!x||(t=x?m:m.viewport,e?t.animate({height:m.slides.eq(m.animatingTo).innerHeight()},e):t.innerHeight(m.slides.eq(m.animatingTo).innerHeight()))},sync:function(e){var t=v(m.vars.sync).data("flexslider"),a=m.animatingTo;switch(e){case"animate":t.flexAnimate(a,m.vars.pauseOnAction,!1,!0);break;case"play":t.playing||t.asNav||t.play();break;case"pause":t.pause()}},uniqueID:function(e){return e.filter("[id]").add(e.find("[id]")).each(function(){var e=v(this);e.attr("id",e.attr("id")+"_clone")}),e},pauseInvisible:{visProp:null,init:function(){var e=u.pauseInvisible.getHiddenProp();e&&(e=e.replace(/[H|h]idden/,"")+"visibilitychange",document.addEventListener(e,function(){u.pauseInvisible.isHidden()?m.startTimeout?clearTimeout(m.startTimeout):m.pause():!m.started&&0<m.vars.initDelay?setTimeout(m.play,m.vars.initDelay):m.play()}))},isHidden:function(){var e=u.pauseInvisible.getHiddenProp();return!!e&&document[e]},getHiddenProp:function(){var e=["webkit","moz","ms","o"];if("hidden"in document)return"hidden";for(var t=0;t<e.length;t++)if(e[t]+"Hidden"in document)return e[t]+"Hidden";return null}},setToClearWatchedEvent:function(){clearTimeout(t),t=setTimeout(function(){d=""},3e3)}},m.flexAnimate=function(e,t,a,n,i){if(m.vars.animationLoop||e===m.currentSlide||(m.direction=e>m.currentSlide?"next":"prev"),c&&1===m.pagingCount&&(m.direction=m.currentItem<e?"next":"prev"),!m.animating&&(m.canAdvance(e,i)||a)&&m.is(":visible")){if(c&&n){n=v(m.vars.asNavFor).data("flexslider");if(m.atEnd=0===e||e===m.count-1,n.flexAnimate(e,!0,!1,!0,i),m.direction=m.currentItem<e?"next":"prev",n.direction=m.direction,Math.ceil((e+1)/m.visible)-1===m.currentSlide||0===e)return m.currentItem=e,m.slides.removeClass(r+"active-slide").eq(e).addClass(r+"active-slide"),!1;m.currentItem=e,m.slides.removeClass(r+"active-slide").eq(e).addClass(r+"active-slide"),e=Math.floor(e/m.visible)}var s;m.animating=!0,m.animatingTo=e,t&&m.pause(),m.vars.before(m),m.syncExists&&!i&&u.sync("animate"),m.vars.controlNav&&u.controlNav.active(),S||m.slides.removeClass(r+"active-slide").eq(e).addClass(r+"active-slide"),m.atEnd=0===e||e===m.last,m.vars.directionNav&&u.directionNav.update(),e===m.last&&(m.vars.end(m),m.vars.animationLoop||m.pause()),x?o?(m.slides.eq(m.currentSlide).css({opacity:0,zIndex:1}),m.slides.eq(e).css({opacity:1,zIndex:2}),m.wrapup(s)):(m.slides.eq(m.currentSlide).css({zIndex:1}).animate({opacity:0},m.vars.animationSpeed,m.vars.easing),m.slides.eq(e).css({zIndex:2}).animate({opacity:1},m.vars.animationSpeed,m.vars.easing,m.wrapup)):(s=g?m.slides.filter(":first").height():m.computedW,e=S?(i=m.vars.itemMargin,(i=(m.itemW+i)*m.move*m.animatingTo)>m.limit&&1!==m.visible?m.limit:i):0===m.currentSlide&&e===m.count-1&&m.vars.animationLoop&&"next"!==m.direction?h?(m.count+m.cloneOffset)*s:0:m.currentSlide===m.last&&0===e&&m.vars.animationLoop&&"prev"!==m.direction?h?0:(m.count+1)*s:h?(m.count-1-e+m.cloneOffset)*s:(e+m.cloneOffset)*s,m.setProps(e,"",m.vars.animationSpeed),m.transitions?(m.vars.animationLoop&&m.atEnd||(m.animating=!1,m.currentSlide=m.animatingTo),m.container.off("webkitTransitionEnd transitionend"),m.container.on("webkitTransitionEnd transitionend",function(){clearTimeout(m.ensureAnimationEnd),m.wrapup(s)}),clearTimeout(m.ensureAnimationEnd),m.ensureAnimationEnd=setTimeout(function(){m.wrapup(s)},m.vars.animationSpeed+100)):m.container.animate(m.args,m.vars.animationSpeed,m.vars.easing,function(){m.wrapup(s)})),m.vars.smoothHeight&&u.smoothHeight(m.vars.animationSpeed)}},m.wrapup=function(e){x||S||(0===m.currentSlide&&m.animatingTo===m.last&&m.vars.animationLoop?m.setProps(e,"jumpEnd"):m.currentSlide===m.last&&0===m.animatingTo&&m.vars.animationLoop&&m.setProps(e,"jumpStart")),m.animating=!1,m.currentSlide=m.animatingTo,m.vars.after(m)},m.animateSlides=function(){!m.animating&&a&&m.flexAnimate(m.getTarget("next"))},m.pause=function(){clearInterval(m.animatedSlides),m.animatedSlides=null,m.playing=!1,m.vars.pausePlay&&u.pausePlay.update("play"),m.syncExists&&u.sync("pause")},m.play=function(){m.playing&&clearInterval(m.animatedSlides),m.animatedSlides=m.animatedSlides||setInterval(m.animateSlides,m.vars.slideshowSpeed),m.started=m.playing=!0,m.vars.pausePlay&&u.pausePlay.update("pause"),m.syncExists&&u.sync("play")},m.stop=function(){m.pause(),m.stopped=!0},m.canAdvance=function(e,t){var a=c?m.pagingCount-1:m.last;return!!t||(c&&m.currentItem===m.count-1&&0===e&&"prev"===m.direction||(!c||0!==m.currentItem||e!==m.pagingCount-1||"next"===m.direction)&&((e!==m.currentSlide||c)&&(!!m.vars.animationLoop||(!m.atEnd||0!==m.currentSlide||e!==a||"next"===m.direction)&&(!m.atEnd||m.currentSlide!==a||0!==e||"next"!==m.direction))))},m.getTarget=function(e){return"next"===(m.direction=e)?m.currentSlide===m.last?0:m.currentSlide+1:0===m.currentSlide?m.last:m.currentSlide-1},m.setProps=function(e,t,a){var n,i=(n=e||(m.itemW+m.vars.itemMargin)*m.move*m.animatingTo,function(){if(S)return"setTouch"===t?e:h&&m.animatingTo===m.last?0:h?m.limit-(m.itemW+m.vars.itemMargin)*m.move*m.animatingTo:m.animatingTo===m.last?m.limit:n;switch(t){case"setTotal":return h?(m.count-1-m.currentSlide+m.cloneOffset)*e:(m.currentSlide+m.cloneOffset)*e;case"setTouch":return e;case"jumpEnd":return h?e:m.count*e;case"jumpStart":return h?m.count*e:e;default:return e}}()*(m.vars.rtl?1:-1)+"px");m.transitions&&(i=g?"translate3d(0,"+i+",0)":"translate3d("+parseInt(i)+"px,0,0)",a=a!==undefined?a/1e3+"s":"0s",m.container.css("-"+m.pfx+"-transition-duration",a),m.container.css("transition-duration",a)),m.args[m.prop]=i,!m.transitions&&a!==undefined||m.container.css(m.args),m.container.css("transform",i)},m.setup=function(e){var t,a;x?(m.vars.rtl?m.slides.css({width:"100%","float":"right",marginLeft:"-100%",position:"relative"}):m.slides.css({width:"100%","float":"left",marginRight:"-100%",position:"relative"}),"init"===e&&(o?m.slides.css({opacity:0,display:"block",webkitTransition:"opacity "+m.vars.animationSpeed/1e3+"s ease",zIndex:1}).eq(m.currentSlide).css({opacity:1,zIndex:2}):0==m.vars.fadeFirstSlide?m.slides.css({opacity:0,display:"block",zIndex:1}).eq(m.currentSlide).css({zIndex:2}).css({opacity:1}):m.slides.css({opacity:0,display:"block",zIndex:1}).eq(m.currentSlide).css({zIndex:2}).animate({opacity:1},m.vars.animationSpeed,m.vars.easing)),m.vars.smoothHeight&&u.smoothHeight()):("init"===e&&(m.viewport=v('<div class="'+r+'viewport"></div>').css({overflow:"hidden",position:"relative"}).appendTo(m).append(m.container),m.cloneCount=0,m.cloneOffset=0,h&&(a=v.makeArray(m.slides).reverse(),m.slides=v(a),m.container.empty().append(m.slides))),m.vars.animationLoop&&!S&&(m.cloneCount=2,m.cloneOffset=1,"init"!==e&&m.container.find(".clone").remove(),m.container.append(u.uniqueID(m.slides.first().clone().addClass("clone")).attr("aria-hidden","true")).prepend(u.uniqueID(m.slides.last().clone().addClass("clone")).attr("aria-hidden","true"))),m.newSlides=v(m.vars.selector,m),t=h?m.count-1-m.currentSlide+m.cloneOffset:m.currentSlide+m.cloneOffset,g&&!S?(m.container.height(200*(m.count+m.cloneCount)+"%").css("position","absolute").width("100%"),setTimeout(function(){m.newSlides.css({display:"block"}),m.doMath(),m.viewport.height(m.h),m.setProps(t*m.h,"init")},"init"===e?100:0)):(m.container.width(200*(m.count+m.cloneCount)+"%"),m.setProps(t*m.computedW,"init"),setTimeout(function(){m.doMath(),m.vars.rtl?m.newSlides.css({width:m.computedW,marginRight:m.computedM,"float":"right",display:"block"}):m.newSlides.css({width:m.computedW,marginRight:m.computedM,"float":"left",display:"block"}),m.vars.smoothHeight&&u.smoothHeight()},"init"===e?100:0))),S||m.slides.removeClass(r+"active-slide").eq(m.currentSlide).addClass(r+"active-slide"),m.vars.init(m)},m.doMath=function(){var e=m.slides.first(),t=m.vars.itemMargin,a=m.vars.minItems,n=m.vars.maxItems;m.w=(m.viewport===undefined?m:m.viewport).width(),m.isFirefox&&(m.w=m.width()),m.h=e.height(),m.boxPadding=e.outerWidth()-e.width(),S?(m.itemT=m.vars.itemWidth+t,m.itemM=t,m.minW=a?a*m.itemT:m.w,m.maxW=n?n*m.itemT-t:m.w,m.itemW=m.minW>m.w?(m.w-t*(a-1))/a:m.maxW<m.w?(m.w-t*(n-1))/n:m.vars.itemWidth>m.w?m.w:m.vars.itemWidth,m.visible=Math.floor(m.w/m.itemW),m.move=0<m.vars.move&&m.vars.move<m.visible?m.vars.move:m.visible,m.pagingCount=Math.ceil((m.count-m.visible)/m.move+1),m.last=m.pagingCount-1,m.limit=1===m.pagingCount?0:m.vars.itemWidth>m.w?m.itemW*(m.count-1)+t*(m.count-1):(m.itemW+t)*m.count-m.w-t):(m.itemW=m.w,m.itemM=t,m.pagingCount=m.count,m.last=m.count-1),m.computedW=m.itemW-m.boxPadding,m.computedM=m.itemM},m.update=function(e,t){m.doMath(),S||(e<m.currentSlide?m.currentSlide+=1:e<=m.currentSlide&&0!==e&&--m.currentSlide,m.animatingTo=m.currentSlide),m.vars.controlNav&&!m.manualControls&&("add"===t&&!S||m.pagingCount>m.controlNav.length?u.controlNav.update("add"):("remove"===t&&!S||m.pagingCount<m.controlNav.length)&&(S&&m.currentSlide>m.last&&(--m.currentSlide,--m.animatingTo),u.controlNav.update("remove",m.last))),m.vars.directionNav&&u.directionNav.update()},m.addSlide=function(e,t){e=v(e);m.count+=1,m.last=m.count-1,g&&h?t!==undefined?m.slides.eq(m.count-t).after(e):m.container.prepend(e):t!==undefined?m.slides.eq(t).before(e):m.container.append(e),m.update(t,"add"),m.slides=v(m.vars.selector+":not(.clone)",m),m.setup(),m.vars.added(m)},m.removeSlide=function(e){var t=isNaN(e)?m.slides.index(v(e)):e;--m.count,m.last=m.count-1,(isNaN(e)?v(e,m.slides):g&&h?m.slides.eq(m.last):m.slides.eq(e)).remove(),m.doMath(),m.update(t,"remove"),m.slides=v(m.vars.selector+":not(.clone)",m),m.setup(),m.vars.removed(m)},u.init()},v(window).on("blur",function(e){a=!1}).on("focus",function(e){a=!0}),v.viwcaio_flexslider.defaults={namespace:"flex-",selector:".slides > li",animation:"fade",easing:"swing",direction:"horizontal",reverse:!1,animationLoop:!0,smoothHeight:!1,startAt:0,slideshow:!0,slideshowSpeed:7e3,animationSpeed:600,initDelay:0,randomize:!1,fadeFirstSlide:!0,thumbCaptions:!1,pauseOnAction:!0,pauseOnHover:!1,pauseInvisible:!0,useCSS:!0,touch:!0,video:!1,controlNav:!0,directionNav:!0,prevText:"Previous",nextText:"Next",keyboard:!0,multipleKeyboard:!1,mousewheel:!1,pausePlay:!1,pauseText:"Pause",playText:"Play",controlsContainer:"",manualControls:"",customDirectionNav:"",sync:"",asNavFor:"",itemWidth:0,itemMargin:0,minItems:1,maxItems:0,move:0,allowOneSlide:!0,isFirefox:!1,start:function(){},before:function(){},after:function(){},end:function(){},added:function(){},removed:function(){},init:function(){},rtl:!1},v.fn.viwcaio_flexslider=function(a){if("object"==typeof(a=a===undefined?{}:a))return this.each(function(){var e=v(this),t=a.selector||".slides > li",t=e.find(t);1===t.length&&!1===a.allowOneSlide||0===t.length?(t.fadeIn(400),a.start&&a.start(e)):e.data("flexslider")===undefined&&new v.viwcaio_flexslider(this,a)});var e=v(this).data("flexslider");switch(a){case"play":e.play();break;case"pause":e.pause();break;case"stop":e.stop();break;case"next":e.flexAnimate(e.getTarget("next"),!0);break;case"prev":case"previous":e.flexAnimate(e.getTarget("prev"),!0);break;default:"number"==typeof a&&e.flexAnimate(a,!0)}}}(jQuery);