{
  "version": 3,
  "sources": ["/cdn/shop/t/3/assets/halo.js?enable_js_minification=1"],
  "sourcesContent": ["(function ($) {\r\n    var body = $('body'),\r\n        doc = $(document),\r\n        html = $('html'),\r\n        win = $(window),\r\n        wrapperOverlaySlt = '.wrapper-overlay',\r\n        iconNav,\r\n        dropdownCart,\r\n        miniProductList;\r\n\r\n    var sidebarCart = $('#sidebar-cart'),\r\n        btnRemove = sidebarCart.find('.btn-remove'),\r\n        sidebarCartNoItems = sidebarCart.find('.cart-empty'),\r\n        sidebarCartHasItems = sidebarCart.find('.mini-products-list'),\r\n        sidebarCartFooter = sidebarCart.find('.cart-footer');\r\n\r\n    var wishListsArr = localStorage.getItem('items') ? JSON.parse(localStorage.getItem('items')) : [];\r\n    var compareArr = localStorage.getItem('compareArr') ? JSON.parse(localStorage.getItem('compareArr')) : [];\r\n\r\n    localStorage.setItem('items', JSON.stringify(wishListsArr));\r\n    localStorage.setItem('compareArr', JSON.stringify(compareArr));\r\n\r\n    if (wishListsArr.length) {\r\n        wishListsArr = JSON.parse(localStorage.getItem('items'));\r\n    };\r\n\r\n    if (compareArr.length) {\r\n        compareArr = JSON.parse(localStorage.getItem('compareArr'));\r\n    };\r\n\r\n    doc.ready(function () {\r\n        iconNav = $('[data-menu-mb-toogle]'),\r\n        dropdownCart = $('#dropdown-cart'),\r\n        miniProductList = dropdownCart.find('.mini-products-list');\r\n\r\n        doc.ajaxStart(function () {\r\n            ella.isAjaxLoading = true;\r\n        });\r\n\r\n        doc.ajaxStop(function () {\r\n            ella.isAjaxLoading = false;\r\n        });\r\n\r\n        ella.init();\r\n    });\r\n\r\n    var winWidth = win.innerWidth();\r\n\r\n    win.off('resize.initMenuMobile').on('resize.initMenuMobile', function() {\r\n        var resizeTimerId;\r\n\r\n        clearTimeout(resizeTimerId);\r\n\r\n        resizeTimerId = setTimeout(function() {\r\n            var curWinWidth = win.innerWidth();\r\n\r\n            if ((curWinWidth < 1200 && winWidth >= 1200) || (curWinWidth >= 1200 && winWidth < 1200)) {\r\n                ella.showHideMenuMobile();\r\n                ella.initToggleMuiltiLangCurrency();\r\n                ella.addTextMuiltiOptionActive($('#lang-switcher'), $('#lang-switcher [data-value].active'), $('[data-language-label]'));\r\n                ella.addTextMuiltiOptionActive($('#currencies'), $('#currencies [data-currency].active'), $('[data-currency-label]'));\r\n                ella.initDropdownColFooter();\r\n                ella.dropdownCart();\r\n                ella.dropdownCustomer();\r\n\r\n                ella.stickyFixedTopMenu();\r\n            };\r\n            winWidth = curWinWidth;\r\n        }, 0);\r\n    });\r\n\r\n    if (!$('#shopify-section-collection-template-supermarket').length) {\r\n        win.on('resize', function () {\r\n            ella.setActiveViewModeMediaQuery();\r\n        });\r\n    }\r\n\r\n    var ella = {\r\n        ellaTimeout: null,\r\n        isSidebarAjaxClick: false,\r\n        isAjaxLoading: false,\r\n        init: function () {\r\n            this.closeHeaderTop();\r\n            this.showHideMenuMobile();\r\n            this.closeAllOnMobile();\r\n            this.initToggleGlobe();\r\n            this.initToggleMuiltiLangCurrency();\r\n            this.addTextMuiltiOptionActive($('#lang-switcher'), $('#lang-switcher [data-value].active'), $('[data-language-label]'));\r\n            this.addTextMuiltiOptionActive($('#currencies'), $('#currencies [data-currency].active'), $('[data-currency-label]'));\r\n            this.initDropdownColFooter();\r\n            this.initScrollTop();\r\n            this.dropdownCart();\r\n            this.initColorSwatchGrid();\r\n            this.initQuickshop();\r\n            this.dropdownCustomer();\r\n            this.initNewsLetterPopup();\r\n            this.initPromoPopup();\r\n            this.addEventShowOptions();\r\n            this.changeQuantityAddToCart();\r\n            this.initAddToCart();\r\n            this.editCart();\r\n            this.beforeYouLeave();\r\n            this.initFreeShippingMessage();\r\n            this._videoPopup();\r\n            // this._addonShareAPI();\r\n            this.initProductReview();\r\n            this.showPopupShare();\r\n            this.copyText();\r\n            this.showPopupStoreAvailability();\r\n            this.fixSiteHeaderHeight();\r\n            if(!body.hasClass('template-index') && !body.hasClass('template-page')) {\r\n                this.initGroupedAddToCart();\r\n                this.initSliderFeaturedProducts();\r\n            }\r\n            if($('[data-lookbook-icon]').length) {\r\n                this.addEventLookbookModal();\r\n            }\r\n\r\n            if($('[data-countdown]').length) {\r\n                this.initCountdown();\r\n            }\r\n\r\n            this.initCountdownNormal();\r\n            this.checkbox_checkout();\r\n            this.checkbox_submit();\r\n            if(body.hasClass('template-page')) {\r\n                this.collectionProduct();\r\n                this.CollectionMenu();\r\n            }\r\n            if($('[data-menu-tab]').length) {\r\n                this._multiHomepage();\r\n            }else {\r\n                this.menu_ajax();\r\n            }\r\n            this.loaderScript();\r\n\r\n            if(body.hasClass('template-index') || body.hasClass('template-page')) {\r\n                this.initInfiniteScrollingHomepage();\r\n                if($('[data-home-product-tabs]').length) {\r\n                    this.clickedActiveProductTabs();\r\n                }\r\n                if($('[data-scroll-down]').length) {\r\n                    this.handleScrollDown();\r\n                }\r\n                this.loaderProductCard();\r\n            }\r\n\r\n            if(body.hasClass('template-collection') || body.hasClass('template-search')) {\r\n                this.historyAdapter();\r\n                this.initInfiniteScrolling();\r\n                this.initPaginationPage();\r\n                this.initCompareIcons();\r\n                this.doAddOrRemoveCompare();\r\n                this.initCompareSelected();\r\n            }\r\n\r\n            if(body.hasClass('template-collection') || body.hasClass('template-product')) {\r\n                this.loadJsonProductcard();\r\n            }\r\n\r\n            if(body.hasClass('template-collection')) {\r\n                this.filterToolbar();\r\n                this.filterSidebar();\r\n                this.toggleVariantsForExpressOrder();\r\n                this.initExpressOrderAddToCart();\r\n                this.hide_filter();\r\n                this.stickySidebar();\r\n                this.initSidebar();\r\n                this.subCollectionSlider();\r\n                this._showmore_html();\r\n            }\r\n\r\n            this.initOpenSidebar();\r\n            this.closeSidebar();\r\n            this.initChangeQuantityButtonEvent();\r\n            this.initQuantityInputChangeEvent();\r\n            this.removeCartItem();\r\n\r\n            this.initQuickView();\r\n            this.stickyFixedTopMenu();\r\n            this.openSearchForm();\r\n\r\n            if(body.hasClass('template-product') ) {\r\n                this.initCustomerViewProductShop();\r\n                this.initProductMoreview($('[data-more-view-product] .product-img-box'));\r\n                this.initZoom();\r\n                this.initSoldOutProductShop();\r\n                this.productPageInitProductTabs();\r\n                this.changeSwatch('#add-to-cart-form .swatch :radio');\r\n                this.initStickyForProductFullWidth();\r\n                this.initStickyAddToCart();\r\n                this.wrapTable();\r\n                this._addonCompareColorPopup();\r\n                if($('.frequently-bought-together-block').length > 0){\r\n                    this.initBundleProducts();\r\n                }\r\n                this.productRecomendation();\r\n                this.appendProductRecomendation();\r\n                this.notifyinStock();\r\n                this.initDropdownSubCategoriesAtSidebar();\r\n                if ($('.product-template-slider').length){\r\n                    this._notifySoldoutSlider();\r\n                }\r\n            }\r\n\r\n            if( body.hasClass('template-cart') ){\r\n                this.checkBundleProducts();\r\n                this._cartCountDown();\r\n                this._giftCard();\r\n            }\r\n            this.initWishListIcons();\r\n            this.doAddOrRemoveWishlish();\r\n\r\n            if(body.hasClass('template-page') && $('.wishlist-page').length) {\r\n                this.initWishLists();\r\n            };\r\n\r\n            if (win.innerWidth() < 1025) {\r\n               this.initToggleSubMenuMobile();\r\n            }\r\n        },\r\n\r\n        fixSiteHeaderHeight: function(){\r\n\r\n            // Function to avoid an external script (probably stickyit) to add unwanted height to site-header\r\n\r\n            var element = document.querySelector('.site-header');\r\n\r\n            var observer = new MutationObserver(function(mutations) {\r\n                mutations.forEach(function(mutation) {\r\n                  if (mutation.type === \"attributes\") {\r\n                    var style = element.getAttribute('style');\r\n                    if(style != null){\r\n                        element.removeAttribute('style');\r\n                    }\r\n\r\n                  }\r\n                });\r\n            });\r\n\r\n            observer.observe(element, {\r\n                attributes: true //configure it to listen to attribute changes\r\n            });\r\n        },\r\n\r\n        showPopupStoreAvailability: function() {\r\n\r\n            body.off('click.button_store', '.store-availability-information__button').on('click.button_store', '.store-availability-information__button', function (e) {\r\n                body.addClass('show_store_availability');\r\n            });\r\n\r\n            body.off('click.close_store', '.store-availabilities-modal__close').on('click.close_store', '.store-availabilities-modal__close', function (e) {\r\n                body.removeClass('show_store_availability');\r\n            });\r\n\r\n            body.on('click', function (event) {\r\n                if(($(event.target).closest('.store-availabilities-modal').length === 0) && ($(event.target).closest('.store-availability-information__button').length === 0)){\r\n                    // e.preventDefault();\r\n                    body.removeClass('show_store_availability');\r\n                }\r\n            });\r\n\r\n        },\r\n\r\n        showPopupShare: function() {\r\n            $('.icon-share').click(function() {\r\n                $('.wrapper-social-popup').addClass('active');\r\n            });\r\n\r\n            body.on('click', function (event) {\r\n                if(($(event.target).closest('.wrapper-social-popup').length === 0) && ($(event.target).closest('.icon-share').length === 0)){\r\n                    $('.wrapper-social-popup').removeClass('active');\r\n                }\r\n            });\r\n\r\n            $('.wrapper-social-popup .title-close svg').on('click', function (event) {\r\n                $('.wrapper-social-popup').removeClass('active');\r\n            });\r\n\r\n        },\r\n\r\n        copyText: function() {\r\n            var check_copy = false;\r\n            body.off('click.copyText', '.social-garment-link').on('click.copyText', '.social-garment-link', function (e) {\r\n                if(check_copy == false) {\r\n                    var copyText = $(this).find('.txt_copy');\r\n                    copyText.select();\r\n                    document.execCommand(\"Copy\");\r\n                    copyText.val('Link copied');\r\n                    check_copy = true;\r\n                }\r\n            });\r\n        },\r\n\r\n        notifyinStock: function() {\r\n            $(\"#soldOut-button\").click(function() {\r\n                if ($.cookie('soldOut') != 'closed') {\r\n                    $.cookie('soldOut', 'closed', {expires: 1, path:'/'});\r\n                }\r\n            });\r\n\r\n            $(\"#ask_an_expert .actions .btn\").click(function() {\r\n                $.cookie('soldOut', '', {expires: -1, path:'/'});\r\n\r\n            });\r\n        },\r\n\r\n        sliderMegaMenu: function(){\r\n          if($('.featuredProductCarousel').length){\r\n            $('.featuredProductCarousel').slick({\r\n                infinite: false,\r\n                slidesToShow: 4,\r\n                slidesToScroll: 4,\r\n                dots: false,\r\n                arrows: true,\r\n                autoplay: false,\r\n                get nextArrow() {\r\n                    if ((window.layout_style == 'layout_style_1170') || (window.layout_style == 'layout_style_flower')) {\r\n                        return this.nextArrow = '<button type=\"button\" class=\"slick-next\"><svg viewBox=\"0 0 50 50\"><path d=\"M 11.957031 13.988281 C 11.699219 14.003906 11.457031 14.117188 11.28125 14.308594 L 1.015625 25 L 11.28125 35.691406 C 11.527344 35.953125 11.894531 36.0625 12.242188 35.976563 C 12.589844 35.890625 12.867188 35.625 12.964844 35.28125 C 13.066406 34.933594 12.972656 34.5625 12.71875 34.308594 L 4.746094 26 L 48 26 C 48.359375 26.003906 48.695313 25.816406 48.878906 25.503906 C 49.058594 25.191406 49.058594 24.808594 48.878906 24.496094 C 48.695313 24.183594 48.359375 23.996094 48 24 L 4.746094 24 L 12.71875 15.691406 C 13.011719 15.398438 13.09375 14.957031 12.921875 14.582031 C 12.753906 14.203125 12.371094 13.96875 11.957031 13.988281 Z\"></path></svg></button>';\r\n                    } else {\r\n                        return this.nextArrow = '<button type=\"button\" class=\"slick-next\"><svg viewBox=\"0 0 478.448 478.448\" class=\"icon icon-chevron-right\" id=\"icon-chevron-right\"><g><g><polygon points=\"131.659,0 100.494,32.035 313.804,239.232 100.494,446.373 131.65,478.448 377.954,239.232\"></polygon></g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g></svg></button>';\r\n                    }\r\n                },\r\n                get prevArrow() {\r\n                    if ((window.layout_style == 'layout_style_1170') || (window.layout_style == 'layout_style_flower')) {\r\n                        return this.prevArrow = '<button type=\"button\" class=\"slick-prev\"><svg viewBox=\"0 0 50 50\"><path d=\"M 11.957031 13.988281 C 11.699219 14.003906 11.457031 14.117188 11.28125 14.308594 L 1.015625 25 L 11.28125 35.691406 C 11.527344 35.953125 11.894531 36.0625 12.242188 35.976563 C 12.589844 35.890625 12.867188 35.625 12.964844 35.28125 C 13.066406 34.933594 12.972656 34.5625 12.71875 34.308594 L 4.746094 26 L 48 26 C 48.359375 26.003906 48.695313 25.816406 48.878906 25.503906 C 49.058594 25.191406 49.058594 24.808594 48.878906 24.496094 C 48.695313 24.183594 48.359375 23.996094 48 24 L 4.746094 24 L 12.71875 15.691406 C 13.011719 15.398438 13.09375 14.957031 12.921875 14.582031 C 12.753906 14.203125 12.371094 13.96875 11.957031 13.988281 Z\"></path></svg></button>';\r\n                    } else {\r\n                        return this.prevArrow = '<button type=\"button\" class=\"slick-prev\"><svg viewBox=\"0 0 370.814 370.814\" class=\"icon icon-chevron-left\" id=\"icon-chevron-left\"><g><g><polygon points=\"292.92,24.848 268.781,0 77.895,185.401 268.781,370.814 292.92,345.961 127.638,185.401\"></polygon></g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g></svg></button>';\r\n                    }\r\n                },\r\n                speed : 1000,\r\n                responsive: [\r\n                   {\r\n                    breakpoint: 1450,\r\n                    settings: {\r\n                      slidesToShow: 4,\r\n                      slidesToScroll: 4,\r\n                      dots: false,\r\n                      arrows: true,\r\n                    }\r\n                  },\r\n                  {\r\n                    breakpoint: 1281,\r\n                    settings: {\r\n                      slidesToShow: 4,\r\n                      slidesToScroll: 4,\r\n                      dots: false,\r\n                      arrows: true,\r\n                    }\r\n                  },\r\n                  {\r\n                    breakpoint: 1025,\r\n                    settings: {\r\n                      slidesToShow: 2,\r\n                      slidesToScroll: 2,\r\n                      dots: true,\r\n                      arrows: false,\r\n                    }\r\n                  },\r\n                  {\r\n                    breakpoint: 992,\r\n                    settings: {\r\n                      slidesToShow: 2,\r\n                      slidesToScroll: 2,\r\n                      dots: true,\r\n                      arrows: false,\r\n                    }\r\n                  },\r\n                  {\r\n                    breakpoint: 768,\r\n                    settings: {\r\n                      slidesToShow: 2,\r\n                      slidesToScroll: 2,\r\n                      dots: true,\r\n                      arrows: false,\r\n                    }\r\n                  },\r\n                  {\r\n                    breakpoint: 370,\r\n                    settings: {\r\n                      slidesToShow: 2,\r\n                      slidesToScroll: 2,\r\n                      dots: true,\r\n                      arrows: false,\r\n                    }\r\n                  }\r\n                ]\r\n            });\r\n          }\r\n        },\r\n\r\n        subCollectionSlider: function(){\r\n            if($('[data-slider-sub-collection]').length){\r\n                $('[data-slider-sub-collection]').slick({\r\n                    infinite: false,\r\n                    slidesToShow: 8,\r\n                    slidesToScroll: 8,\r\n                    dots: false,\r\n                    arrows: true,\r\n                    autoplay: false,\r\n                    get nextArrow() {\r\n                        if ((window.layout_style == 'layout_style_1170') || (window.layout_style == 'layout_style_flower')) {\r\n                            return this.nextArrow = '<button type=\"button\" class=\"slick-next\"><svg viewBox=\"0 0 50 50\"><path d=\"M 11.957031 13.988281 C 11.699219 14.003906 11.457031 14.117188 11.28125 14.308594 L 1.015625 25 L 11.28125 35.691406 C 11.527344 35.953125 11.894531 36.0625 12.242188 35.976563 C 12.589844 35.890625 12.867188 35.625 12.964844 35.28125 C 13.066406 34.933594 12.972656 34.5625 12.71875 34.308594 L 4.746094 26 L 48 26 C 48.359375 26.003906 48.695313 25.816406 48.878906 25.503906 C 49.058594 25.191406 49.058594 24.808594 48.878906 24.496094 C 48.695313 24.183594 48.359375 23.996094 48 24 L 4.746094 24 L 12.71875 15.691406 C 13.011719 15.398438 13.09375 14.957031 12.921875 14.582031 C 12.753906 14.203125 12.371094 13.96875 11.957031 13.988281 Z\"></path></svg></button>';\r\n                        } else {\r\n                            return this.nextArrow = '<button type=\"button\" class=\"slick-next\"><svg viewBox=\"0 0 478.448 478.448\" class=\"icon icon-chevron-right\" id=\"icon-chevron-right\"><g><g><polygon points=\"131.659,0 100.494,32.035 313.804,239.232 100.494,446.373 131.65,478.448 377.954,239.232\"></polygon></g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g></svg></button>';\r\n                        }\r\n                    },\r\n                    get prevArrow() {\r\n                        if ((window.layout_style == 'layout_style_1170') || (window.layout_style == 'layout_style_flower')) {\r\n                            return this.prevArrow = '<button type=\"button\" class=\"slick-prev\"><svg viewBox=\"0 0 50 50\"><path d=\"M 11.957031 13.988281 C 11.699219 14.003906 11.457031 14.117188 11.28125 14.308594 L 1.015625 25 L 11.28125 35.691406 C 11.527344 35.953125 11.894531 36.0625 12.242188 35.976563 C 12.589844 35.890625 12.867188 35.625 12.964844 35.28125 C 13.066406 34.933594 12.972656 34.5625 12.71875 34.308594 L 4.746094 26 L 48 26 C 48.359375 26.003906 48.695313 25.816406 48.878906 25.503906 C 49.058594 25.191406 49.058594 24.808594 48.878906 24.496094 C 48.695313 24.183594 48.359375 23.996094 48 24 L 4.746094 24 L 12.71875 15.691406 C 13.011719 15.398438 13.09375 14.957031 12.921875 14.582031 C 12.753906 14.203125 12.371094 13.96875 11.957031 13.988281 Z\"></path></svg></button>';\r\n                        } else {\r\n                            return this.prevArrow = '<button type=\"button\" class=\"slick-prev\"><svg viewBox=\"0 0 370.814 370.814\" class=\"icon icon-chevron-left\" id=\"icon-chevron-left\"><g><g><polygon points=\"292.92,24.848 268.781,0 77.895,185.401 268.781,370.814 292.92,345.961 127.638,185.401\"></polygon></g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g></svg></button>';\r\n                        }\r\n                    },\r\n                    speed : 1000,\r\n                    responsive: [\r\n                       {\r\n                        breakpoint: 1450,\r\n                        settings: {\r\n                          slidesToShow: 6,\r\n                          slidesToScroll: 6\r\n                        }\r\n                      },\r\n                      {\r\n                        breakpoint: 1281,\r\n                        settings: {\r\n                          slidesToShow: 5,\r\n                          slidesToScroll: 5\r\n                        }\r\n                      },\r\n                      {\r\n                        breakpoint: 1025,\r\n                        settings: {\r\n                          slidesToShow: 4,\r\n                          slidesToScroll: 4,\r\n                          dots: true,\r\n                          arrows: false,\r\n                        }\r\n                      },\r\n                      {\r\n                        breakpoint: 992,\r\n                        settings: {\r\n                          slidesToShow: 4,\r\n                          slidesToScroll: 4,\r\n                          dots: true,\r\n                          arrows: false,\r\n                        }\r\n                      },\r\n                      {\r\n                        breakpoint: 768,\r\n                        settings: {\r\n                          slidesToShow: 3,\r\n                          slidesToScroll: 3,\r\n                          dots: true,\r\n                          arrows: false,\r\n                        }\r\n                      },\r\n                      {\r\n                        breakpoint: 370,\r\n                        settings: {\r\n                          slidesToShow: 2,\r\n                          slidesToScroll: 2,\r\n                          dots: true,\r\n                          arrows: false,\r\n                        }\r\n                      }\r\n                    ]\r\n                });\r\n            }\r\n        },\r\n\r\n        productCartslider: function(){\r\n          if($('[data-product-cart-slider]').length && !$('[data-product-cart-slider]').hasClass('slick-slider')){\r\n            $('[data-product-cart-slider]').slick({\r\n                infinite: false,\r\n                slidesToShow: 1,\r\n                slidesToScroll: 1,\r\n                get arrows() {\r\n                    if (window.layout_style == 'layout_style_fullwidth') {\r\n                        return this.arrows = true\r\n\r\n                    } else {\r\n                        return this.arrows = false\r\n                    }\r\n                },\r\n                get dots() {\r\n                    if (window.layout_style == 'layout_style_fullwidth') {\r\n                        return this.dots = false\r\n\r\n                    } else {\r\n                        return this.dots = true\r\n                    }\r\n                },\r\n                autoplay: false,\r\n                get nextArrow() {\r\n                    if ((window.layout_style == 'layout_style_1170') || (window.layout_style == 'layout_style_flower')) {\r\n                        return this.nextArrow = '<button type=\"button\" class=\"slick-next\"><svg viewBox=\"0 0 50 50\"><path d=\"M 11.957031 13.988281 C 11.699219 14.003906 11.457031 14.117188 11.28125 14.308594 L 1.015625 25 L 11.28125 35.691406 C 11.527344 35.953125 11.894531 36.0625 12.242188 35.976563 C 12.589844 35.890625 12.867188 35.625 12.964844 35.28125 C 13.066406 34.933594 12.972656 34.5625 12.71875 34.308594 L 4.746094 26 L 48 26 C 48.359375 26.003906 48.695313 25.816406 48.878906 25.503906 C 49.058594 25.191406 49.058594 24.808594 48.878906 24.496094 C 48.695313 24.183594 48.359375 23.996094 48 24 L 4.746094 24 L 12.71875 15.691406 C 13.011719 15.398438 13.09375 14.957031 12.921875 14.582031 C 12.753906 14.203125 12.371094 13.96875 11.957031 13.988281 Z\"></path></svg></button>';\r\n                    } else if ((window.layout_style == 'layout_style_fullwidth') || (window.layout_style == 'layout_style_suppermarket')){\r\n                        return this.nextArrow = '<button type=\"button\" class=\"slick-next\"><svg viewBox=\"0 0 478.448 478.448\" class=\"icon icon-chevron-right\" id=\"icon-chevron-right\"><g><g><polygon points=\"131.659,0 100.494,32.035 313.804,239.232 100.494,446.373 131.65,478.448 377.954,239.232\"></polygon></g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g></svg></button>';\r\n                    }\r\n                    else {\r\n                        return this.nextArrow = '<button type=\"button\" class=\"slick-next\"><i class=\"fa fa-angle-right\"></i></button>';\r\n                    }\r\n                },\r\n                get prevArrow() {\r\n                    if ((window.layout_style == 'layout_style_1170') || (window.layout_style == 'layout_style_flower')) {\r\n                        return this.prevArrow = '<button type=\"button\" class=\"slick-prev\"><svg viewBox=\"0 0 50 50\"><path d=\"M 11.957031 13.988281 C 11.699219 14.003906 11.457031 14.117188 11.28125 14.308594 L 1.015625 25 L 11.28125 35.691406 C 11.527344 35.953125 11.894531 36.0625 12.242188 35.976563 C 12.589844 35.890625 12.867188 35.625 12.964844 35.28125 C 13.066406 34.933594 12.972656 34.5625 12.71875 34.308594 L 4.746094 26 L 48 26 C 48.359375 26.003906 48.695313 25.816406 48.878906 25.503906 C 49.058594 25.191406 49.058594 24.808594 48.878906 24.496094 C 48.695313 24.183594 48.359375 23.996094 48 24 L 4.746094 24 L 12.71875 15.691406 C 13.011719 15.398438 13.09375 14.957031 12.921875 14.582031 C 12.753906 14.203125 12.371094 13.96875 11.957031 13.988281 Z\"></path></svg></button>';\r\n                    } else if ((window.layout_style == 'layout_style_fullwidth') || (window.layout_style == 'layout_style_suppermarket')){\r\n                        return this.prevArrow = '<button type=\"button\" class=\"slick-prev\"><svg viewBox=\"0 0 370.814 370.814\" class=\"icon icon-chevron-left\" id=\"icon-chevron-left\"><g><g><polygon points=\"292.92,24.848 268.781,0 77.895,185.401 268.781,370.814 292.92,345.961 127.638,185.401\"></polygon></g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g></svg></button>';\r\n                    }\r\n                    else {\r\n                        return this.prevArrow = '<button type=\"button\" class=\"slick-prev\"><i class=\"fa fa-angle-left\"></i></button>';\r\n                    }\r\n                },\r\n                speed : 1000,\r\n            });\r\n          }\r\n        },\r\n\r\n        closeHeaderTop: function () {\r\n            var headerTopEml = $('.header-top'),\r\n                closeHeaderTopElm = headerTopEml.find('[data-close-header-top]');\r\n\r\n            // if (closeHeaderTopElm.length && closeHeaderTopElm.is(':visible')) {\r\n                if ($.cookie('headerTop') == 'closed') {\r\n                    headerTopEml.remove();\r\n                } else {\r\n                    headerTopEml.removeClass('hide');\r\n                };\r\n\r\n                closeHeaderTopElm.off('click.closeHeaderTop').on('click.closeHeaderTop', function (e) {\r\n                    e.preventDefault();\r\n                    e.stopPropagation();\r\n\r\n                    headerTopEml.remove();\r\n                    $.cookie('headerTop', 'closed', {\r\n                        expires: 1,\r\n                        path: '/'\r\n                    });\r\n                });\r\n            // };\r\n        },\r\n\r\n        showHideMenuMobile: function () {\r\n            if (iconNav.length && iconNav.is(':visible')) {\r\n                iconNav.off('click.showMenuMobile').on('click.showMenuMobile', function (e) {\r\n                    e.preventDefault();\r\n                    e.stopPropagation();\r\n\r\n                    html.toggleClass('translate-overlay');\r\n                    $('.close-menu-mb').toggleClass('menu-open');\r\n\r\n                    $('.main-menu.jas-mb-style').css({\r\n                        \"overflow\": \"\"\r\n                    });\r\n                    $('.site-nav').find('[data-toggle-menu-mb]').parent().next('.sub-menu-mobile').removeClass('sub-menu-open');\r\n                })\r\n            };\r\n        },\r\n\r\n        closeAllOnMobile: function () {\r\n            body.off('click.close', wrapperOverlaySlt).on('click.close', wrapperOverlaySlt, function (e) {\r\n                e.preventDefault();\r\n                e.stopPropagation();\r\n\r\n                html.removeClass('translate-overlay cart-show customer-show sidebar-open options-show');\r\n                $('.close-menu-mb').removeClass('menu-open');\r\n                body.removeClass('show_store_availability');\r\n\r\n                $('.main-menu.jas-mb-style').css({\r\n                    \"overflow\": \"\"\r\n                });\r\n                $('.site-nav').find('[data-toggle-menu-mb]').parent().next('.sub-menu-mobile').removeClass('sub-menu-open');\r\n\r\n                if ($('body').hasClass('open_beforeYouLeave') &&\r\n                    ($(e.target).closest('#before-you-leave').length === 0)  &&\r\n                    ($(e.target).closest('.search-form-wrapper').length === 0) ) {\r\n                    $('body').removeClass('open_beforeYouLeave');\r\n                }\r\n\r\n                html.removeClass('search-open');\r\n            });\r\n        },\r\n\r\n        initToggleGlobe: function () {\r\n            var $item_globe = $('.wrapper-icon');\r\n            $item_globe.on('click', function (e) {\r\n\r\n                $(this).parent().toggleClass('active');\r\n\r\n                $('.lang-currency-groups').fadeToggle(200);\r\n\r\n                ella.initToggleMuiltiLangCurrency();\r\n\r\n            });\r\n\r\n            body.on('click', function (e) {\r\n                if(($('.item-location').hasClass('active')) && ($(e.target).closest('.item-location').length === 0)){\r\n                    e.preventDefault();\r\n                    $('.item-location').removeClass('active');\r\n                    $('.lang-currency-groups').slideUp(400);\r\n                }\r\n            });\r\n\r\n        },\r\n\r\n        initToggleMuiltiLangCurrency: function () {\r\n            var langCurrencyGroups = $('.lang-currency-groups'),\r\n                dropdownGroup = langCurrencyGroups.find('.btn-group'),\r\n                dropdownLabel = dropdownGroup.find('.dropdown-label');\r\n\r\n            if($('.lang-currency-groups-8').length) {\r\n                $(document).on('click', '.lang-currency-groups-8', function(e) {\r\n                    $('.lang-currency-groups-8').toggleClass('show');\r\n                });\r\n                // $(document).on('click', '.lang-currency-groups-8 .dropdown-menu .dropdown-item', function(e) {\r\n                //     $('.lang-currency-groups-8').removeClass('show');\r\n                // });\r\n                $(document).on('click', function(e) {\r\n                    var slideshow = $('.home-slideshow .slide-action');\r\n                    if ($('.lang-currency-groups-8 ').hasClass('show') && !slideshow.has(e.target).length && ($(event.target).closest('.lang-currency-groups-8 ').length === 0)) {\r\n                        $('.lang-currency-groups-8 ').removeClass('show');\r\n                    }\r\n                });\r\n            } else {\r\n                if (dropdownLabel.length && dropdownLabel.is(':visible')) {\r\n                    dropdownLabel.off('click.toggleMuiltiOption').on('click.toggleMuiltiOption', function (e) {\r\n                        e.preventDefault();\r\n                        e.stopPropagation();\r\n\r\n                        var selfNextDropdown = $(this).next();\r\n\r\n                        if (!selfNextDropdown.is(':visible')) {\r\n                            dropdownLabel.next('.dropdown-menu').hide();\r\n                            selfNextDropdown.slideDown(300);\r\n                        } else {\r\n                            selfNextDropdown.slideUp(300);\r\n                        }\r\n                    });\r\n\r\n                    ella.hideMuiltiLangCurrency();\r\n                } else {\r\n                    dropdownLabel.next('.dropdown-menu').css({\r\n                        'display': ''\r\n                    });\r\n                };\r\n            }\r\n\r\n\r\n        },\r\n\r\n        hideMuiltiLangCurrency: function () {\r\n            doc.off('click.hideMuiltiLangCurrency').on('click.hideMuiltiLangCurrency', function (e) {\r\n                var muiltiDropdown = $('.lang-currency-groups .dropdown-menu');\r\n\r\n                if (!muiltiDropdown.is(e.target) && !muiltiDropdown.has(e.target).length) {\r\n                    muiltiDropdown.slideUp(300);\r\n                }\r\n            });\r\n        },\r\n\r\n        addTextMuiltiOptionActive: function (SltId, dataSlt, label) {\r\n            if (label.length) {\r\n                var item = dataSlt.html();\r\n\r\n                SltId.prev(label).html(item);\r\n            };\r\n        },\r\n\r\n        initInfiniteScrollingHomepage: function () {\r\n          var newArrivalsProduct = $('[data-new-arrivals-product]');\r\n\r\n          newArrivalsProduct.each(function () {\r\n            var self = $(this);\r\n            var infiniteScrolling = self.find('.infinite-scrolling-homepage');\r\n            var infiniteScrollingLinkSlt = self.find('.infinite-scrolling-homepage a');\r\n\r\n\r\n            if (infiniteScrolling.length) {\r\n              infiniteScrollingLinkSlt.off('click.showMoreProduct').on('click.showMoreProduct', function (e) {\r\n                if (!$(this).hasClass('view-all-collection')) {\r\n                    e.preventDefault();\r\n                    e.stopPropagation();\r\n                    if($(this).hasClass('ajax-loading') )\r\n                      return false;\r\n                    $(this).addClass('ajax-loading');\r\n                    var url = $(this).attr('data-collection'),\r\n                        limit = $(this).attr('data-limit'),\r\n                        totalProduct = $(this).attr('data-total-products'),\r\n                        page = parseInt($(this).attr('data-page'));\r\n\r\n                    if (!$(this).hasClass('disabled')) {\r\n                      ella.doAjaxInfiniteScrollingGetContentSection(totalProduct,url,limit,page,e,self);\r\n                    };\r\n                }\r\n              });\r\n            }\r\n          });\r\n\r\n        },\r\n\r\n        doAjaxInfiniteScrollingGetContentSection(totalProduct,url,limit,page,e,self) {\r\n          $.ajax({\r\n            type: \"get\",\r\n            url: window.router + '/collections/' + url,\r\n            cache: false,\r\n            data: {\r\n              view: 'sorting',\r\n              constraint: 'limit=' + limit + '+page=' + page\r\n            },\r\n\r\n            beforeSend: function () {\r\n              ella.showLoading();\r\n            },\r\n            success: function (data) {\r\n\r\n                self.find('.products-grid').append(data);\r\n                var length = self.find('.products-grid').find('.grid-item').length;\r\n                if( $(data).length == limit && length < 50){\r\n                    $(e.currentTarget).attr('data-page', page + 1);\r\n                }\r\n                else{\r\n                    if (totalProduct > 50) {\r\n                        $(e.currentTarget).text(window.inventory_text.view_all_collection).attr('href',window.router + '/collections/' + url).addClass('view-all-collection');\r\n                    } else {\r\n                        $(e.currentTarget).remove();\r\n                    }\r\n                }\r\n\r\n                if (ella.checkNeedToConvertCurrency()) {\r\n                    Currency.convertAll(window.shop_currency, $('#currencies .active').attr('data-currency'), 'span.money', 'money_format');\r\n                };\r\n                if ($('.shopify-product-reviews-badge').length && $('.spr-badge').length) {\r\n                    return window.SPR.registerCallbacks(), window.SPR.initRatingHandler(), window.SPR.initDomEls(), window.SPR.loadProducts(), window.SPR.loadBadges();\r\n                };\r\n                $('[data-toggle=\"tooltip\"]').tooltip();\r\n\r\n            },\r\n            complete: function () {\r\n              ella.hideLoading();\r\n              $(e.currentTarget).removeClass('ajax-loading');\r\n            }\r\n          });\r\n        },\r\n\r\n        initSliderFeaturedProducts: function () {\r\n            var featuredProduct = $('[data-featured-products]');\r\n\r\n            featuredProduct.each(function () {\r\n                var self = $(this),\r\n                    productGrid = self.find('.products-grid'),\r\n                    gridItemWidth = productGrid.data('row'),\r\n                    hasRightSidebar = $('.halo-product-content .pro-page [data-has-right-sidebar]');\r\n\r\n                if(productGrid.not('.slick-initialized')) {\r\n                    productGrid.slick({\r\n                        get slidesToShow() {\r\n                            if (hasRightSidebar.length) {\r\n                                return this.slidesToShow = 5;\r\n                            } else {\r\n                                return this.slidesToShow = productGrid.data('row');\r\n                            }\r\n                        },\r\n\r\n                        get vertical() {\r\n                            if(productGrid.hasClass('verticle') && $('.relate-verticle').length) {\r\n                                return this.vertical = true;\r\n                            }else {\r\n                                return this.vertical = false;\r\n                            }\r\n                        },\r\n\r\n                        get slidesToScroll() {\r\n                            if(productGrid.hasClass('verticle')) {\r\n                                return this.slidesToScroll = 1;\r\n                            }else {\r\n                                return this.slidesToScroll = productGrid.data('row');\r\n                            }\r\n                        },\r\n\r\n                        speed: 1000,\r\n                        infinite: false,\r\n\r\n                        get dots() {\r\n                            if(self.hasClass('has-banner')) {\r\n                                return this.dots = true;\r\n                            }else {\r\n                                if(window.product_style == 'supermarket') {\r\n                                    return this.dots = true;\r\n                                } else {\r\n                                    return this.dots = false;\r\n                                }\r\n                            };\r\n                        },\r\n                        get nextArrow() {\r\n                            if ((window.layout_style == 'layout_style_1170') || (window.layout_style == 'layout_style_flower')) {\r\n                                return this.nextArrow = '<button type=\"button\" class=\"slick-next\"><svg viewBox=\"0 0 50 50\"><path d=\"M 11.957031 13.988281 C 11.699219 14.003906 11.457031 14.117188 11.28125 14.308594 L 1.015625 25 L 11.28125 35.691406 C 11.527344 35.953125 11.894531 36.0625 12.242188 35.976563 C 12.589844 35.890625 12.867188 35.625 12.964844 35.28125 C 13.066406 34.933594 12.972656 34.5625 12.71875 34.308594 L 4.746094 26 L 48 26 C 48.359375 26.003906 48.695313 25.816406 48.878906 25.503906 C 49.058594 25.191406 49.058594 24.808594 48.878906 24.496094 C 48.695313 24.183594 48.359375 23.996094 48 24 L 4.746094 24 L 12.71875 15.691406 C 13.011719 15.398438 13.09375 14.957031 12.921875 14.582031 C 12.753906 14.203125 12.371094 13.96875 11.957031 13.988281 Z\"></path></svg></button>';\r\n                            } else if ((window.layout_style == 'layout_style_fullwidth') || (window.layout_style == 'layout_style_suppermarket')){\r\n                                return this.nextArrow = '<button type=\"button\" class=\"slick-next\"><svg viewBox=\"0 0 478.448 478.448\" class=\"icon icon-chevron-right\" id=\"icon-chevron-right\"><g><g><polygon points=\"131.659,0 100.494,32.035 313.804,239.232 100.494,446.373 131.65,478.448 377.954,239.232\"></polygon></g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g></svg></button>';\r\n                            }\r\n                            else {\r\n                                return this.nextArrow = '<button type=\"button\" class=\"slick-next\"><i class=\"fa fa-angle-right\"></i></button>';\r\n                            }\r\n                        },\r\n                        get prevArrow() {\r\n                            if ((window.layout_style == 'layout_style_1170') || (window.layout_style == 'layout_style_flower')) {\r\n                                return this.prevArrow = '<button type=\"button\" class=\"slick-prev\"><svg viewBox=\"0 0 50 50\"><path d=\"M 11.957031 13.988281 C 11.699219 14.003906 11.457031 14.117188 11.28125 14.308594 L 1.015625 25 L 11.28125 35.691406 C 11.527344 35.953125 11.894531 36.0625 12.242188 35.976563 C 12.589844 35.890625 12.867188 35.625 12.964844 35.28125 C 13.066406 34.933594 12.972656 34.5625 12.71875 34.308594 L 4.746094 26 L 48 26 C 48.359375 26.003906 48.695313 25.816406 48.878906 25.503906 C 49.058594 25.191406 49.058594 24.808594 48.878906 24.496094 C 48.695313 24.183594 48.359375 23.996094 48 24 L 4.746094 24 L 12.71875 15.691406 C 13.011719 15.398438 13.09375 14.957031 12.921875 14.582031 C 12.753906 14.203125 12.371094 13.96875 11.957031 13.988281 Z\"></path></svg></button>';\r\n                            } else if ((window.layout_style == 'layout_style_fullwidth') || (window.layout_style == 'layout_style_suppermarket')){\r\n                                return this.prevArrow = '<button type=\"button\" class=\"slick-prev\"><svg viewBox=\"0 0 370.814 370.814\" class=\"icon icon-chevron-left\" id=\"icon-chevron-left\"><g><g><polygon points=\"292.92,24.848 268.781,0 77.895,185.401 268.781,370.814 292.92,345.961 127.638,185.401\"></polygon></g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g></svg></button>';\r\n                            }\r\n                            else {\r\n                                return this.prevArrow = '<button type=\"button\" class=\"slick-prev\"><i class=\"fa fa-angle-left\"></i></button>';\r\n                            }\r\n                        },\r\n                        responsive: [\r\n                            {\r\n                                breakpoint: 1400,\r\n                                settings: {\r\n                                    get slidesToShow() {\r\n                                        if(self.hasClass('has-banner')) {\r\n                                            return this.slidesToShow = 3;\r\n                                        }else {\r\n                                            if(gridItemWidth > 5) {\r\n                                                return this.slidesToShow = 5;\r\n                                            }\r\n                                            else {\r\n                                                if(window.product_style == 'supermarket') {\r\n                                                    return this.slidesToShow = 4;\r\n                                                } else {\r\n                                                    return this.slidesToShow = 2;\r\n                                                }\r\n                                            }\r\n                                        }\r\n                                    },\r\n                                    get slidesToScroll() {\r\n                                        if (self.hasClass('has-banner')) {\r\n                                            return this.slidesToScroll = 3;\r\n                                        }else {\r\n                                            if(productGrid.hasClass('verticle')) {\r\n                                                return this.slidesToScroll = 1;\r\n                                            }else {\r\n                                                if(gridItemWidth >= 4) {\r\n                                                    return this.slidesToScroll = 4;\r\n                                                }else if(gridItemWidth = 3) {\r\n                                                    return this.slidesToScroll = 3;\r\n                                                }else {\r\n                                                    return this.slidesToScroll = 2;\r\n                                                }\r\n                                            }\r\n                                        };\r\n                                    }\r\n                                }\r\n                            },\r\n                            {\r\n                                breakpoint: 1200,\r\n                                settings: {\r\n                                    dots: true,\r\n                                    arrows: false,\r\n                                    vertical: false,\r\n                                    get slidesToShow() {\r\n                                        if(self.hasClass('has-banner')) {\r\n                                            return this.slidesToShow = 2;\r\n                                        }else {\r\n                                            if(gridItemWidth >= 4) {\r\n                                                return this.slidesToShow = 4;\r\n                                            }else if(gridItemWidth = 3) {\r\n                                                return this.slidesToShow = 3\r\n                                            }else {\r\n                                                return this.slidesToShow = 2\r\n                                            }\r\n                                        }\r\n                                    },\r\n                                    get slidesToScroll() {\r\n                                        if (self.hasClass('has-banner')) {\r\n                                            return this.slidesToScroll = 2;\r\n                                        }else {\r\n                                            if(gridItemWidth >= 4) {\r\n                                                return this.slidesToScroll = 4;\r\n                                            }else if(gridItemWidth = 3) {\r\n                                                return this.slidesToScroll = 3\r\n                                            }else {\r\n                                                return this.slidesToScroll = 2\r\n                                            }\r\n                                        };\r\n                                    }\r\n                                }\r\n                            },\r\n                            {\r\n                                breakpoint: 992,\r\n                                settings: {\r\n                                    dots: true,\r\n                                    arrows: false,\r\n                                    vertical: false,\r\n                                    get slidesToShow() {\r\n                                        if(gridItemWidth >= 3) {\r\n                                            return this.slidesToShow = 3;\r\n                                        }else {\r\n                                            return this.slidesToShow = 2\r\n                                        }\r\n                                    },\r\n                                    get slidesToScroll() {\r\n                                        if(gridItemWidth >= 3) {\r\n                                            return this.slidesToScroll = 3;\r\n                                        }else {\r\n                                            return this.slidesToScroll = 2\r\n                                        }\r\n                                    }\r\n                                }\r\n                            },\r\n                            {\r\n                                breakpoint: 768,\r\n                                settings: {\r\n                                    slidesToShow: 2,\r\n                                    slidesToScroll: 2,\r\n                                    arrows: false,\r\n                                    vertical: false,\r\n                                    dots: true\r\n                                }\r\n                            }\r\n                        ]\r\n                    });\r\n                };\r\n            });\r\n        },\r\n\r\n        loaderProductCard: function () {\r\n            var isAjaxLoading = false;\r\n            $(document).ajaxStart(function () {\r\n                isAjaxLoading = true;\r\n            });\r\n\r\n            $(document).ajaxStop(function () {\r\n                isAjaxLoading = false;\r\n            });\r\n            var element = $('[data-loader-product]');\r\n            var load = function(){\r\n                element.each(function(){\r\n                    var top = this.getBoundingClientRect().top;\r\n                    var self = $(this);\r\n                    if (!self.hasClass('ajax-loaded')) {\r\n                        var url = self.data('collection'),\r\n                            limit = self.data('limit'),\r\n                            grid = self.data('grid'),\r\n                            layout = self.data('layout'),\r\n                            sectionId = self.attr('sectionId');\r\n                        if (top < window.innerHeight && top < 400) {\r\n                            $.ajax({\r\n                                type: \"get\",\r\n                                url: window.router + '/collections/' + url,\r\n                                cache: false,\r\n                                data: {\r\n                                    view: 'list_product',\r\n                                    constraint: 'limit=' + limit + '+layout=' + layout + '+grid=' + grid + '+sectionId=' + sectionId\r\n                                },\r\n                                beforeSend: function () {\r\n                                    self.addClass('ajax-loaded');\r\n                                },\r\n                                success: function (data) {\r\n                                    if (url != '') {\r\n                                        self.find('.products-grid').html(data);\r\n                                    }\r\n                                    $('[data-toggle=\"tooltip\"]').tooltip();\r\n                                },\r\n                                complete: function () {\r\n                                    if (self.attr('data-featured-products') == undefined) {\r\n                                        return;\r\n                                    }\r\n                                    if (layout == 'carousel') {\r\n                                        var productGrid = self.find('.products-grid'),\r\n                                            gridItemWidth = productGrid.data('row'),\r\n                                            hasRightSidebar = $('.halo-product-content .pro-page [data-has-right-sidebar]');\r\n                                        if (window.innerWidth < 1200) {\r\n                                            self.on(\"afterChange\", function(event, slick) {\r\n                                                var isElementVisible = function($el, threshold) {\r\n                                                  var rect = $el[0].getBoundingClientRect();\r\n                                                  var windowHeight = window.innerHeight || document.documentElement.clientHeight;\r\n                                                  threshold = threshold ? threshold : 0;\r\n\r\n                                                  return (\r\n                                                    rect.bottom >= (0 - (threshold / 1.5)) &&\r\n                                                    rect.right >= 0 &&\r\n                                                    rect.top <= (windowHeight + threshold) &&\r\n                                                    rect.left <= (window.innerWidth || document.documentElement.clientWidth)\r\n                                                  );\r\n                                                };\r\n\r\n                                                $('.product-item[data-product-id]').each(function(i, el){\r\n                                                  var self = $(this);\r\n                                                  if(isElementVisible($(el), -100)) {\r\n                                                    var $product = $(this);\r\n                                                    if( !$product[0].hasAttribute('data-json-product') ) {\r\n                                                      if( $product.hasClass('json-loading') )\r\n                                                        return;\r\n                                                      $product.addClass('json-loading');\r\n                                                      var handle = $product.find('.product-title').attr('href');\r\n\r\n                                                      var xhr = $.ajax({\r\n                                                        type: 'GET',\r\n                                                        url: handle,\r\n                                                        data: {\r\n                                                          view: 'get_json'\r\n                                                        },\r\n                                                        cache: false,\r\n                                                        dataType: 'html',\r\n                                                        success: function (data) {\r\n                                                          var json = JSON.parse(data);\r\n                                                          $product.attr('data-json-product', JSON.stringify(json));\r\n                                                        },\r\n                                                        complete: function () {\r\n                                                          $product.removeClass('json-loading');\r\n                                                        }\r\n                                                      });\r\n                                                    }\r\n                                                  }\r\n                                                });\r\n                                            });\r\n                                        }\r\n                                        if(productGrid.not('.slick-initialized')) {\r\n                                            productGrid.slick({\r\n                                                get slidesToShow() {\r\n                                                    if (hasRightSidebar.length) {\r\n                                                        return this.slidesToShow = 5;\r\n                                                    } else {\r\n                                                        return this.slidesToShow = productGrid.data('row');\r\n                                                    }\r\n                                                },\r\n\r\n                                                get vertical() {\r\n                                                    if(productGrid.hasClass('verticle')) {\r\n                                                        return this.vertical = true;\r\n                                                    }else {\r\n                                                        return this.vertical = false;\r\n                                                    }\r\n                                                },\r\n\r\n                                                get slidesToScroll() {\r\n                                                    if(productGrid.hasClass('verticle')) {\r\n                                                        return this.slidesToScroll = 1;\r\n                                                    }else {\r\n                                                        return this.slidesToScroll = productGrid.data('row');\r\n                                                    }\r\n                                                },\r\n\r\n                                                speed: 1000,\r\n                                                infinite: false,\r\n\r\n                                                get dots() {\r\n                                                    if((self.hasClass('has-banner')) || (window.layout_style == 'layout_style_suppermarket')){\r\n                                                        return this.dots = true;\r\n                                                    }else {\r\n                                                        return this.dots = false;\r\n                                                    };\r\n                                                },\r\n                                                get nextArrow() {\r\n                                                    if ((window.layout_style == 'layout_style_1170') || (window.layout_style == 'layout_style_flower')) {\r\n                                                        return this.nextArrow = '<button type=\"button\" class=\"slick-next\"><svg viewBox=\"0 0 50 50\"><path d=\"M 11.957031 13.988281 C 11.699219 14.003906 11.457031 14.117188 11.28125 14.308594 L 1.015625 25 L 11.28125 35.691406 C 11.527344 35.953125 11.894531 36.0625 12.242188 35.976563 C 12.589844 35.890625 12.867188 35.625 12.964844 35.28125 C 13.066406 34.933594 12.972656 34.5625 12.71875 34.308594 L 4.746094 26 L 48 26 C 48.359375 26.003906 48.695313 25.816406 48.878906 25.503906 C 49.058594 25.191406 49.058594 24.808594 48.878906 24.496094 C 48.695313 24.183594 48.359375 23.996094 48 24 L 4.746094 24 L 12.71875 15.691406 C 13.011719 15.398438 13.09375 14.957031 12.921875 14.582031 C 12.753906 14.203125 12.371094 13.96875 11.957031 13.988281 Z\"></path></svg></button>';\r\n                                                    } else if ((window.layout_style == 'layout_style_fullwidth') || (window.layout_style == 'layout_style_suppermarket')){\r\n                                                        return this.nextArrow = '<button type=\"button\" class=\"slick-next\"><svg viewBox=\"0 0 478.448 478.448\" class=\"icon icon-chevron-right\" id=\"icon-chevron-right\"><g><g><polygon points=\"131.659,0 100.494,32.035 313.804,239.232 100.494,446.373 131.65,478.448 377.954,239.232\"></polygon></g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g></svg></button>';\r\n                                                    }\r\n                                                    else {\r\n                                                        return this.nextArrow = '<button type=\"button\" class=\"slick-next\"><i class=\"fa fa-angle-right\"></i></button>';\r\n                                                    }\r\n                                                },\r\n                                                get prevArrow() {\r\n                                                    if ((window.layout_style == 'layout_style_1170') || (window.layout_style == 'layout_style_flower')) {\r\n                                                        return this.prevArrow = '<button type=\"button\" class=\"slick-prev\"><svg viewBox=\"0 0 50 50\"><path d=\"M 11.957031 13.988281 C 11.699219 14.003906 11.457031 14.117188 11.28125 14.308594 L 1.015625 25 L 11.28125 35.691406 C 11.527344 35.953125 11.894531 36.0625 12.242188 35.976563 C 12.589844 35.890625 12.867188 35.625 12.964844 35.28125 C 13.066406 34.933594 12.972656 34.5625 12.71875 34.308594 L 4.746094 26 L 48 26 C 48.359375 26.003906 48.695313 25.816406 48.878906 25.503906 C 49.058594 25.191406 49.058594 24.808594 48.878906 24.496094 C 48.695313 24.183594 48.359375 23.996094 48 24 L 4.746094 24 L 12.71875 15.691406 C 13.011719 15.398438 13.09375 14.957031 12.921875 14.582031 C 12.753906 14.203125 12.371094 13.96875 11.957031 13.988281 Z\"></path></svg></button>';\r\n                                                    } else if ((window.layout_style == 'layout_style_fullwidth') || (window.layout_style == 'layout_style_suppermarket')){\r\n                                                        return this.prevArrow = '<button type=\"button\" class=\"slick-prev\"><svg viewBox=\"0 0 370.814 370.814\" class=\"icon icon-chevron-left\" id=\"icon-chevron-left\"><g><g><polygon points=\"292.92,24.848 268.781,0 77.895,185.401 268.781,370.814 292.92,345.961 127.638,185.401\"></polygon></g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g></svg></button>';\r\n                                                    }\r\n                                                    else {\r\n                                                        return this.prevArrow = '<button type=\"button\" class=\"slick-prev\"><i class=\"fa fa-angle-left\"></i></button>';\r\n                                                    }\r\n                                                },\r\n                                                responsive: [\r\n                                                    {\r\n                                                        breakpoint: 1400,\r\n                                                        settings: {\r\n                                                            get slidesToShow() {\r\n                                                                if(self.hasClass('has-banner')) {\r\n                                                                    if(self.hasClass('layout_style_4')) {\r\n                                                                        return this.slidesToShow = 2;\r\n                                                                    } else {\r\n                                                                        return this.slidesToShow = 3;\r\n                                                                    }\r\n                                                                }else {\r\n                                                                    if(gridItemWidth > 5) {\r\n                                                                        return this.slidesToShow = 5;\r\n                                                                    }\r\n                                                                    else {\r\n                                                                        return this.slidesToShow = productGrid.data('row');\r\n                                                                    }\r\n                                                                }\r\n                                                            },\r\n                                                            get slidesToScroll() {\r\n                                                                if (self.hasClass('has-banner')) {\r\n                                                                    return this.slidesToScroll = 3;\r\n                                                                }else {\r\n                                                                    if(productGrid.hasClass('verticle')) {\r\n                                                                        return this.slidesToScroll = 1;\r\n                                                                    }else {\r\n                                                                        if(gridItemWidth >= 4) {\r\n                                                                            return this.slidesToScroll = 4;\r\n                                                                        }else if(gridItemWidth = 3) {\r\n                                                                            return this.slidesToScroll = 3;\r\n                                                                        }else {\r\n                                                                            return this.slidesToScroll = 2;\r\n                                                                        }\r\n                                                                    }\r\n                                                                };\r\n                                                            }\r\n                                                        }\r\n                                                    },\r\n                                                    {\r\n                                                        breakpoint: 1200,\r\n                                                        settings: {\r\n                                                            dots: true,\r\n                                                            arrows: false,\r\n                                                            vertical: false,\r\n                                                            get slidesToShow() {\r\n                                                                if(self.hasClass('has-banner')) {\r\n                                                                    return this.slidesToShow = 2;\r\n                                                                }else {\r\n                                                                    if(gridItemWidth >= 4) {\r\n                                                                        return this.slidesToShow = 4;\r\n                                                                    }else if(gridItemWidth = 3) {\r\n                                                                        return this.slidesToShow = 3\r\n                                                                    }else {\r\n                                                                        return this.slidesToShow = 2\r\n                                                                    }\r\n                                                                }\r\n                                                            },\r\n                                                            get slidesToScroll() {\r\n                                                                if (self.hasClass('has-banner')) {\r\n                                                                    return this.slidesToScroll = 2;\r\n                                                                }else {\r\n                                                                    if(gridItemWidth >= 4) {\r\n                                                                        return this.slidesToScroll = 4;\r\n                                                                    }else if(gridItemWidth = 3) {\r\n                                                                        return this.slidesToScroll = 3\r\n                                                                    }else {\r\n                                                                        return this.slidesToScroll = 2\r\n                                                                    }\r\n                                                                };\r\n                                                            }\r\n                                                        }\r\n                                                    },\r\n                                                    {\r\n                                                        breakpoint: 992,\r\n                                                        settings: {\r\n                                                            dots: true,\r\n                                                            arrows: false,\r\n                                                            vertical: false,\r\n                                                            get slidesToShow() {\r\n                                                                if(gridItemWidth >= 3) {\r\n                                                                    if(self.hasClass('layout_style_5')) {\r\n                                                                        return this.slidesToShow = 2;\r\n                                                                    } else {\r\n                                                                        return this.slidesToShow = 3;\r\n                                                                    }\r\n                                                                }else {\r\n                                                                    return this.slidesToShow = 2\r\n                                                                }\r\n                                                            },\r\n                                                            get slidesToScroll() {\r\n                                                                if(gridItemWidth >= 3) {\r\n                                                                    if(self.hasClass('layout_style_5')) {\r\n                                                                        return this.slidesToScroll = 2;\r\n                                                                    } else {\r\n                                                                        return this.slidesToScroll = 3;\r\n                                                                    }\r\n                                                                }else {\r\n                                                                    return this.slidesToScroll = 2\r\n                                                                }\r\n                                                            }\r\n                                                        }\r\n                                                    },\r\n                                                    {\r\n                                                        breakpoint: 768,\r\n                                                        settings: {\r\n                                                            slidesToShow: 2,\r\n                                                            slidesToScroll: 2,\r\n                                                            arrows: false,\r\n                                                            vertical: false,\r\n                                                            dots: true\r\n                                                        }\r\n                                                    }\r\n                                                ]\r\n                                            });\r\n                                        };\r\n                                    }\r\n\r\n                                    if (ella.checkNeedToConvertCurrency()) {\r\n                                        Currency.convertAll(window.shop_currency, $('#currencies .active').attr('data-currency'), 'span.money', 'money_format');\r\n                                    };\r\n                                    if ($('.shopify-product-reviews-badge').length && $('.spr-badge').length) {\r\n                                        return window.SPR.registerCallbacks(), window.SPR.initRatingHandler(), window.SPR.initDomEls(), window.SPR.loadProducts(), window.SPR.loadBadges();\r\n                                    };\r\n                                }\r\n                            });\r\n                        }\r\n                    }\r\n                })\r\n            }\r\n            window.addEventListener('load', function loaderPostload() {\r\n                load();\r\n                window.addEventListener('scroll', load);\r\n            });\r\n        },\r\n\r\n        collectionProduct: function() {\r\n            var collectionSlider = $('[data-collection-product] .products-grid');\r\n\r\n            collectionSlider.each(function () {\r\n                var self = $(this);\r\n\r\n                if (self.not('.slick-initialized')) {\r\n                    self.slick({\r\n                        rows: 2,\r\n                        slidesToShow: 2,\r\n                        infinite: false,\r\n                        dots: true,\r\n                        speed: 800,\r\n                        arrows: false,\r\n                        responsive: [{\r\n                                breakpoint: 1200,\r\n                                settings: {\r\n                                    slidesPerRow: 1,\r\n                                    slidesToShow: 2,\r\n                                    rows: 2,\r\n                                }\r\n                            },\r\n                            {\r\n                                breakpoint: 992,\r\n                                settings: {\r\n                                    slidesPerRow: 1,\r\n                                    slidesToShow: 2,\r\n                                    rows: 2,\r\n                                }\r\n                            },\r\n                            {\r\n                                breakpoint: 768,\r\n                                settings: {\r\n                                    slidesPerRow: 1,\r\n                                    slidesToShow: 2,\r\n                                    dots: true,\r\n                                    rows: 2,\r\n                                }\r\n                            }\r\n                        ]\r\n                    });\r\n                }\r\n            });\r\n        },\r\n\r\n        CollectionMenu: function() {\r\n            var brandsSlider = $('[data-collection-menu-slider]');\r\n\r\n            brandsSlider.each(function () {\r\n                var self = $(this);\r\n\r\n                if (self.not('.slick-initialized')) {\r\n                    self.slick({\r\n                        slidesToShow: self.data('rows'),\r\n                        slidesToScroll: 1,\r\n                        dots: false,\r\n                        infinite: false,\r\n                        speed: 800,\r\n                        get nextArrow() {\r\n                            if ((window.layout_style == 'layout_style_1170') || (window.layout_style == 'layout_style_flower')) {\r\n                                return this.nextArrow = '<button type=\"button\" class=\"slick-next\"><svg viewBox=\"0 0 50 50\"><path d=\"M 11.957031 13.988281 C 11.699219 14.003906 11.457031 14.117188 11.28125 14.308594 L 1.015625 25 L 11.28125 35.691406 C 11.527344 35.953125 11.894531 36.0625 12.242188 35.976563 C 12.589844 35.890625 12.867188 35.625 12.964844 35.28125 C 13.066406 34.933594 12.972656 34.5625 12.71875 34.308594 L 4.746094 26 L 48 26 C 48.359375 26.003906 48.695313 25.816406 48.878906 25.503906 C 49.058594 25.191406 49.058594 24.808594 48.878906 24.496094 C 48.695313 24.183594 48.359375 23.996094 48 24 L 4.746094 24 L 12.71875 15.691406 C 13.011719 15.398438 13.09375 14.957031 12.921875 14.582031 C 12.753906 14.203125 12.371094 13.96875 11.957031 13.988281 Z\"></path></svg></button>';\r\n                            } else if ((window.layout_style == 'layout_style_fullwidth') || (window.layout_style == 'layout_style_suppermarket')){\r\n                                return this.nextArrow = '<button type=\"button\" class=\"slick-next\"><svg viewBox=\"0 0 478.448 478.448\" class=\"icon icon-chevron-right\" id=\"icon-chevron-right\"><g><g><polygon points=\"131.659,0 100.494,32.035 313.804,239.232 100.494,446.373 131.65,478.448 377.954,239.232\"></polygon></g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g></svg></button>';\r\n                            }\r\n                            else {\r\n                                return this.nextArrow = '<button type=\"button\" class=\"slick-next\"><i class=\"fa fa-angle-right\"></i></button>';\r\n                            }\r\n                        },\r\n                        get prevArrow() {\r\n                            if ((window.layout_style == 'layout_style_1170') || (window.layout_style == 'layout_style_flower')) {\r\n                                return this.prevArrow = '<button type=\"button\" class=\"slick-prev\"><svg viewBox=\"0 0 50 50\"><path d=\"M 11.957031 13.988281 C 11.699219 14.003906 11.457031 14.117188 11.28125 14.308594 L 1.015625 25 L 11.28125 35.691406 C 11.527344 35.953125 11.894531 36.0625 12.242188 35.976563 C 12.589844 35.890625 12.867188 35.625 12.964844 35.28125 C 13.066406 34.933594 12.972656 34.5625 12.71875 34.308594 L 4.746094 26 L 48 26 C 48.359375 26.003906 48.695313 25.816406 48.878906 25.503906 C 49.058594 25.191406 49.058594 24.808594 48.878906 24.496094 C 48.695313 24.183594 48.359375 23.996094 48 24 L 4.746094 24 L 12.71875 15.691406 C 13.011719 15.398438 13.09375 14.957031 12.921875 14.582031 C 12.753906 14.203125 12.371094 13.96875 11.957031 13.988281 Z\"></path></svg></button>';\r\n                            } else if ((window.layout_style == 'layout_style_fullwidth') || (window.layout_style == 'layout_style_suppermarket')){\r\n                                return this.prevArrow = '<button type=\"button\" class=\"slick-prev\"><svg viewBox=\"0 0 370.814 370.814\" class=\"icon icon-chevron-left\" id=\"icon-chevron-left\"><g><g><polygon points=\"292.92,24.848 268.781,0 77.895,185.401 268.781,370.814 292.92,345.961 127.638,185.401\"></polygon></g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g></svg></button>';\r\n                            }\r\n                            else {\r\n                                return this.prevArrow = '<button type=\"button\" class=\"slick-prev\"><i class=\"fa fa-angle-left\"></i></button>';\r\n                            }\r\n                        },\r\n                        responsive: [{\r\n                                breakpoint: 1200,\r\n                                settings: {\r\n                                    slidesToShow: 6,\r\n                                    slidesToScroll: 6,\r\n                                }\r\n                            },\r\n                            {\r\n                                breakpoint: 992,\r\n                                settings: {\r\n                                    slidesToShow: 5,\r\n                                    slidesToScroll: 5,\r\n                                }\r\n                            },\r\n                            {\r\n                                breakpoint: 768,\r\n                                settings: {\r\n                                    slidesToShow: 4,\r\n                                    slidesToScroll: 4,\r\n                                }\r\n                            },\r\n                            {\r\n                                breakpoint: 480,\r\n                                settings: {\r\n                                    slidesToShow: 3,\r\n                                    slidesToScroll: 3,\r\n                                }\r\n                            }\r\n                        ]\r\n                    });\r\n                }\r\n            });\r\n        },\r\n\r\n        initDropdownColFooter: function () {\r\n            var footerTitle = $('.site-footer .dropdow-mb');\r\n\r\n            if (window.innerWidth < 768) {\r\n                if (footerTitle.length) {\r\n                    footerTitle.off('click.slideToggle').on('click.slideToggle', function () {\r\n                        $(this).next().slideToggle();\r\n                        $(this).toggleClass('open');\r\n                    });\r\n                }\r\n            } else {\r\n                footerTitle.next().css({\r\n                    \"display\": \"\"\r\n                });\r\n            }\r\n        },\r\n\r\n        initScrollTop: function () {\r\n            var backToTop = $('#back-top');\r\n\r\n            win.scroll(function () {\r\n                if ($(this).scrollTop() > 220) {\r\n                    backToTop.fadeIn(400);\r\n                } else {\r\n                    backToTop.fadeOut(400);\r\n                };\r\n            });\r\n\r\n            backToTop.off('click.scrollTop').on('click.scrollTop', function (e) {\r\n                e.preventDefault();\r\n                e.stopPropagation();\r\n\r\n                $('html, body').animate({\r\n                    scrollTop: 0\r\n                }, 400);\r\n                return false;\r\n            });\r\n        },\r\n\r\n        dropdownCustomer: function () {\r\n            this.initDropdownCustomerTranslate($('[data-user-mobile-toggle]'), 'customer-show');\r\n            this.initDropdownCustomerTranslate($('.header-05 .customer-links'), 'customer-show');\r\n\r\n            if (window.innerWidth >= 1200) {\r\n                this.initDropdownCustomerTranslate($('[data-user-pc-translate]'), 'customer-show');\r\n            };\r\n\r\n            this.closeDropdownCustomerTranslate();\r\n            this.initDropdownCustomer();\r\n        },\r\n\r\n        initDropdownCustomerTranslate: function (iconUser, sltShowUser) {\r\n            if (iconUser.length && iconUser.is(':visible')) {\r\n                iconUser.off('click.dropdownCustomerMobile').on('click.dropdownCustomerMobile', function (e) {\r\n                    e.preventDefault();\r\n                    e.stopPropagation();\r\n\r\n                    html.addClass(sltShowUser);\r\n                });\r\n            };\r\n        },\r\n\r\n        closeTranslate: function (closeElm, classRemove) {\r\n            if ($(closeElm).length) {\r\n                body.off('click.closeCustomer', closeElm).on('click.closeCustomer', closeElm, function (e) {\r\n                    e.preventDefault();\r\n                    e.stopPropagation();\r\n\r\n                    html.removeClass(classRemove);\r\n                });\r\n            };\r\n        },\r\n\r\n        closeDropdownCustomerTranslate: function () {\r\n            ella.closeTranslate('#dropdown-customer .close-customer', 'customer-show');\r\n        },\r\n\r\n        appendCustomerForPCHeaderDefault: function () {\r\n            var customerLink = $('.header-default .header-panel-bt .customer-links'),\r\n                dropdowCustomer = $('#dropdown-customer');\r\n\r\n            if (window.innerWidth >= 1200) {\r\n                dropdowCustomer.appendTo(customerLink);\r\n            } else {\r\n                dropdowCustomer.appendTo(body);\r\n            }\r\n        },\r\n\r\n        appendCustomerForPCHeader05: function () {\r\n            var customerLink = $('.header-05 .header-panel-bt .customer-links'),\r\n                dropdowCustomer = $('#dropdown-customer');\r\n            dropdowCustomer.appendTo(body);\r\n        },\r\n\r\n        appendCustomerForPCHeader07: function () {\r\n            var customerLink = $('.header-07 .header-panel-bt .customer-links'),\r\n                dropdowCustomer = $('#dropdown-customer');\r\n            dropdowCustomer.appendTo(body);\r\n        },\r\n\r\n        doDropdownCustomerPCHeaderDefault: function () {\r\n            var customerLoginLink = $('[data-dropdown-user]');\r\n\r\n            if(window.innerWidth >= 1200) {\r\n                customerLoginLink.off('click.toogleCustomer').on('click.toogleCustomer', function (e) {\r\n                    e.preventDefault();\r\n                    e.stopPropagation();\r\n\r\n                    $(this).siblings('#dropdown-customer').slideToggle();\r\n                });\r\n\r\n            }\r\n        },\r\n\r\n        doDropdownCustomerPCHeader05: function () {\r\n            var customerLoginLink = $('[data-dropdown-user]');\r\n\r\n            customerLoginLink.off('click.toogleCustomer').on('click.toogleCustomer', function (e) {\r\n                e.preventDefault();\r\n                e.stopPropagation();\r\n\r\n                $(this).siblings('#dropdown-customer').slideToggle();\r\n            });\r\n        },\r\n\r\n        doDropdownCustomerPCHeader07: function () {\r\n            var customerLoginLink = $('[data-dropdown-user]');\r\n\r\n            customerLoginLink.off('click.toogleCustomer').on('click.toogleCustomer', function (e) {\r\n                e.preventDefault();\r\n                e.stopPropagation();\r\n\r\n                $(this).siblings('#dropdown-customer').slideToggle();\r\n            });\r\n        },\r\n\r\n        initDropdownCustomer: function () {\r\n            var siteHeader = $('.site-header');\r\n\r\n            if (siteHeader.hasClass('header-default')) {\r\n                this.appendCustomerForPCHeaderDefault();\r\n                this.doDropdownCustomerPCHeaderDefault();\r\n            }\r\n            if (siteHeader.hasClass('header-05')) {\r\n                this.appendCustomerForPCHeader05();\r\n                this.doDropdownCustomerPCHeader05();\r\n            }\r\n            if (siteHeader.hasClass('header-07')) {\r\n                this.appendCustomerForPCHeader07();\r\n                this.doDropdownCustomerPCHeader07();\r\n            }\r\n\r\n        },\r\n\r\n        dropdownCart: function () {\r\n            this.closeDropdownCartTranslate();\r\n            this.initDropdownCartMobile();\r\n            this.initDropdownCartDesktop();\r\n            this.checkItemsInDropdownCart();\r\n            this.removeItemDropdownCart();\r\n        },\r\n\r\n        appendDropdownCartForMobile: function () {\r\n            var wrapperTopCart = $('.wrapper-top-cart');\r\n\r\n            if (window.innerWidth < 1200) {\r\n                dropdownCart.appendTo(body);\r\n            } else {\r\n                dropdownCart.appendTo(wrapperTopCart);\r\n            }\r\n        },\r\n\r\n        closeDropdownCartTranslate: function () {\r\n            ella.closeTranslate('#dropdown-cart .close-cart', 'cart-show', '#reload_page');\r\n        },\r\n\r\n        initDropdownCartMobile: function () {\r\n            var headerMb = $('.header-mb, [data-cart-header-parallax], [data-cart-header-02], [data-cart-header-04], [data-cart-header-05], [data-cart-header-supermarket], [data-cart-sidebar]'),\r\n                cartIcon = headerMb.find('[data-cart-toggle]');\r\n\r\n                if ($('body.template-cart').length) {\r\n                    cartIcon.off('click.toogleDropdownCart').on('click.toogleDropdownCart', function (e) {\r\n                        e.preventDefault();\r\n                        e.stopPropagation();\r\n\r\n                        $([document.documentElement, document.body]).animate({\r\n                            scrollTop: $(\".wrapper-cart-template\").offset().top - $('.main-menu').outerHeight()\r\n                        }, 500);\r\n                    });\r\n                } else {\r\n                    cartIcon.off('click.initDropdownCartMobile').on('click.initDropdownCartMobile', function (e) {\r\n                        e.preventDefault();\r\n                        e.stopPropagation();\r\n\r\n                        html.toggleClass('cart-show');\r\n\r\n                        ella.productCartslider();\r\n                    });\r\n                }\r\n        },\r\n\r\n        initDropdownCartDesktop: function () {\r\n            var siteHeader = $('.site-header');\r\n\r\n            if (siteHeader.hasClass('header-default-cart')) {\r\n                ella.appendDropdownCartForMobile();\r\n                ella.initDropdownCartForHeaderDefault();\r\n            }\r\n        },\r\n\r\n        addEventShowOptions: function() {\r\n            var optionsIconSlt = '[data-show-options]';\r\n\r\n            doc.off('click.showOptions', optionsIconSlt).on('click.showOptions', optionsIconSlt, function(e) {\r\n                e.preventDefault();\r\n                e.stopPropagation();\r\n\r\n                html.toggleClass('options-show');\r\n            });\r\n\r\n            ella.closeTranslate('.lang-currency-groups .close-option', 'options-show');\r\n        },\r\n\r\n        initDropdownCartForHeaderDefault: function () {\r\n            var wrapperTopCart = $('.wrapper-top-cart'),\r\n                cartIcon = wrapperTopCart.find('[data-cart-toggle]');\r\n\r\n            if (cartIcon.length && cartIcon.is(':visible')) {\r\n                if ($('body.template-cart').length) {\r\n\r\n                    cartIcon.off('click.toogleDropdownCart').on('click.toogleDropdownCart', function (e) {\r\n                        e.preventDefault();\r\n                        e.stopPropagation();\r\n\r\n                        $([document.documentElement, document.body]).animate({\r\n                            scrollTop: $(\".wrapper-cart-template\").offset().top - $('.main-menu').outerHeight()\r\n                        }, 1000);\r\n                    });\r\n                } else {\r\n                    if (window.dropdowncart_type == 'click') {\r\n                        cartIcon.off('click.toogleDropdownCart').on('click.toogleDropdownCart', function (e) {\r\n                            e.preventDefault();\r\n                            e.stopPropagation();\r\n\r\n                            wrapperTopCart.toggleClass('is-open');\r\n                            dropdownCart.slideToggle();\r\n                        });\r\n                    } else {\r\n                        cartIcon.hover(function () {\r\n                            var customer = $('#dropdown-customer');\r\n\r\n                            if (customer.is(':visible')) {\r\n                                customer.hide();\r\n                            };\r\n\r\n                            if (!wrapperTopCart.hasClass('is-open')) {\r\n                                wrapperTopCart.addClass('is-open');\r\n                                dropdownCart.slideDown();\r\n                            }\r\n                        });\r\n\r\n                        wrapperTopCart.mouseleave(function () {\r\n                            if (wrapperTopCart.hasClass('is-open')) {\r\n                                wrapperTopCart.removeClass('is-open');\r\n                                dropdownCart.slideUp();\r\n                            };\r\n                        });\r\n                    }\r\n                }\r\n\r\n            } else {\r\n                dropdownCart.css(\"display\", \"\");\r\n            }\r\n        },\r\n\r\n        checkItemsInDropdownCart: function () {\r\n            var cartNoItems = dropdownCart.find('.no-items'),\r\n                cartHasItems = dropdownCart.find('.has-items');\r\n\r\n\r\n\r\n            if (miniProductList.children().length) {\r\n                cartHasItems.show();\r\n                cartNoItems.hide();\r\n\r\n                sidebarCartNoItems.hide();\r\n                sidebarCartHasItems.show();\r\n                sidebarCartFooter.show();\r\n            } else {\r\n                cartHasItems.hide();\r\n                cartNoItems.show();\r\n\r\n                sidebarCartNoItems.show();\r\n                sidebarCartHasItems.hide();\r\n                sidebarCartFooter.hide();\r\n            };\r\n        },\r\n\r\n        removeItemDropdownCart: function (cart) {\r\n            var btnRemove = dropdownCart.find('.btn-remove');\r\n            var btnUpdate = dropdownCart.find('.item-quantity');\r\n\r\n            btnRemove.off('click.removeCartItem').on('click.removeCartItem', function (e) {\r\n                e.preventDefault();\r\n                e.stopPropagation();\r\n\r\n                var productId = $(this).parents('.item').attr('id');\r\n                productId = productId.match(/\\d+/g);\r\n\r\n                Shopify.removeItem(productId, function (cart) {\r\n                    $(\"#cart-item-\"+productId).remove();\r\n                    $(\"#sidebar-cart-item-\"+productId).remove();\r\n                    ella.doUpdateDropdownCart(cart);\r\n                    ella.checkBundleProducts();\r\n                });\r\n            });\r\n            btnUpdate.off('change.addCartItem').on('change.addCartItem', function (e) {\r\n                e.preventDefault();\r\n                e.stopPropagation();\r\n                var btn = $(this);\r\n                var id = btn.closest(\"[data-product-id]\").data(\"product-id\");\r\n                var quantity = parseInt(btn.val());\r\n                $(this).parents('.item').addClass('cur--change');\r\n                ella.doAjaxUpdatePopupCart(quantity, id);\r\n            });\r\n        },\r\n\r\n        updateDropdownCart: function () {\r\n            Shopify.getCart(function (cart) {\r\n                ella.doUpdateDropdownCart(cart);\r\n            });\r\n        },\r\n\r\n        doUpdateDropdownCart: function (cart) {\r\n            var template = '<li class=\"item\" id=\"cart-item-{ID}\" data-product-id=\"{ID}\"><a href=\"{URL}\" class=\"product-image\"><img src=\"{IMAGE}\" alt=\"{TITLE}\"></a><div class=\"product-details\"><a class=\"product-name\" href=\"{URL}\">{TITLE}</a><div class=\"option\"><small>{VARIANT}</small><a href=\"JavaScript:void(0);\" class=\"product-details__edit\" data-cart-edit aria-label=\"link\" data-url=\"{URL}&view=cart_edit\" data-id=\"{ID}\" data-quantity=\"{QUANTITY}\"><svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"#000000\" viewBox=\"0 0 48 48\" width=\"144px\" height=\"144px\"><path d=\"M 10.5 6 C 7.468 6 5 8.468 5 11.5 L 5 36 C 5 39.309 7.691 42 11 42 L 22.605469 42 C 22.858469 41.042 23.225516 39.759 23.728516 38 L 11 38 C 9.897 38 9 37.103 9 36 L 9 16 L 39 16 L 39 22.521484 C 39.427 22.340484 39.8615 22.188422 40.3125 22.107422 C 40.7065 22.036422 41.102859 21.992953 41.505859 22.001953 C 42.015859 22.001953 42.515 22.067641 43 22.181641 L 43 11.5 C 43 8.468 40.532 6 37.5 6 L 10.5 6 z M 13.5 20 A 1.50015 1.50015 0 1 0 13.5 23 L 15.5 23 A 1.50015 1.50015 0 1 0 15.5 20 L 13.5 20 z M 21.5 20 C 20.672 20 20 20.671 20 21.5 C 20 22.329 20.672 23 21.5 23 L 34.5 23 C 35.328 23 36 22.329 36 21.5 C 36 20.671 35.328 20 34.5 20 L 21.5 20 z M 41.498047 24 C 41.224047 24.001 40.946969 24.025172 40.667969 24.076172 C 39.783969 24.235172 38.939563 24.696156 38.226562 25.410156 L 26.427734 37.208984 C 26.070734 37.565984 25.807969 38.011141 25.667969 38.494141 L 24.097656 43.974609 C 24.025656 44.164609 23.993 44.365406 24 44.566406 C 24.013 44.929406 24.155594 45.288406 24.433594 45.566406 C 24.710594 45.843406 25.067688 45.986 25.429688 46 C 25.630688 46.007 25.834391 45.975344 26.025391 45.902344 L 31.505859 44.332031 C 31.988859 44.192031 32.431062 43.930266 32.789062 43.572266 L 44.589844 31.773438 C 45.303844 31.060437 45.764828 30.216031 45.923828 29.332031 C 45.973828 29.053031 45.997047 28.775953 45.998047 28.501953 C 46.001047 27.307953 45.540687 26.179312 44.679688 25.320312 C 43.820687 24.460313 42.692047 23.998 41.498047 24 z M 13.5 26 A 1.50015 1.50015 0 1 0 13.5 29 L 15.5 29 A 1.50015 1.50015 0 1 0 15.5 26 L 13.5 26 z M 21.5 26 C 20.672 26 20 26.671 20 27.5 C 20 28.329 20.672 29 21.5 29 L 31.808594 29 L 34.779297 26.027344 C 34.688297 26.010344 34.596 26 34.5 26 L 21.5 26 z M 13.5 32 A 1.50015 1.50015 0 1 0 13.5 35 L 15.5 35 A 1.50015 1.50015 0 1 0 15.5 32 L 13.5 32 z M 21.5 32 C 20.672 32 20 32.671 20 33.5 C 20 34.329 20.672 35 21.5 35 L 25.808594 35 L 28.808594 32 L 21.5 32 z\"/></svg></a></div><div class=\"cart-collateral\"><span class=\"price\">{PRICE}</span></div><div class=\"quantity\"><input class=\"item-quantity\" name=\"quantity\" id=\"updates_{ID}\" data-qtt-id1=\"quantity_{ID}\" value=\"{QUANTITY}\" type=\"number\" /><span class=\"error-message-input\"></span></div></div><a href=\"javascript:void(0)\" title=\"Remove This Item\" class=\"btn-remove\"><svg aria-hidden=\"true\" data-prefix=\"fal\" data-icon=\"times\" role=\"img\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\" class=\"svg-inline--fa fa-times fa-w-10 fa-2x\"><path fill=\"currentColor\" d=\"M193.94 256L296.5 153.44l21.15-21.15c3.12-3.12 3.12-8.19 0-11.31l-22.63-22.63c-3.12-3.12-8.19-3.12-11.31 0L160 222.06 36.29 98.34c-3.12-3.12-8.19-3.12-11.31 0L2.34 120.97c-3.12 3.12-3.12 8.19 0 11.31L126.06 256 2.34 379.71c-3.12 3.12-3.12 8.19 0 11.31l22.63 22.63c3.12 3.12 8.19 3.12 11.31 0L160 289.94 262.56 392.5l21.15 21.15c3.12 3.12 8.19 3.12 11.31 0l22.63-22.63c3.12-3.12 3.12-8.19 0-11.31L193.94 256z\" class=\"\"></path></svg></a></li>';\r\n\r\n            $('[data-cart-count]').text(cart.item_count);\r\n            $('.wrapper-cartCount').show();\r\n            dropdownCart.find('.summary .price').html(Shopify.formatMoney(cart.total_price, window.money_format));\r\n            $('#sidebar-cart').find('.cart-footer .notranslate').html(Shopify.formatMoney(cart.total_price, window.money_format));\r\n\r\n            if (cart.item_count > 0) {\r\n                var item_id = $('.item.cur--change').data('product-id');\r\n                var line_item = parseInt($('.item.cur--change').find('input[name=\"quantity\"]').data('line'));\r\n                var quantity = parseInt($('.item.cur--change').find('input[name=\"quantity\"]').val());\r\n                for (var i = 0; i < cart.items.length; i++) {\r\n                    var item = template;\r\n                    var cur_id = cart.items[i].id;\r\n                    var arr = [];\r\n\r\n                    if (i == 0) {\r\n                        miniProductList.html('');\r\n                    }\r\n\r\n                    item = item.replace(/\\{ID\\}/g, cart.items[i].id);\r\n                    item = item.replace(/\\{URL\\}/g, cart.items[i].url);\r\n                    item = item.replace(/\\{TITLE\\}/g, ella.translateText(cart.items[i].product_title));\r\n                    item = item.replace(/\\{VARIANT\\}/g, cart.items[i].variant_title || '');\r\n                    item = item.replace(/\\{QUANTITY\\}/g, cart.items[i].quantity);\r\n                    item = item.replace(/\\{IMAGE\\}/g, Shopify.resizeImage(cart.items[i].image, '160x'));\r\n                    // if (cart.cart_level_discount_applications.length > 0) {\r\n                    //   item = item.replace(/\\{PRICE\\}/g, Shopify.formatMoney(cart.items[i].discounted_price, window.money_format));\r\n                    // } else {\r\n                      item = item.replace(/\\{PRICE\\}/g, Shopify.formatMoney(cart.items[i].price, window.money_format));\r\n                    // }\r\n                    miniProductList.append(item);\r\n\r\n                    if (quantity > line_item && line_item > 0 ) {\r\n                        $('#dropdown-cart [data-product-id=\"' + item_id + '\"]').find('.error-message-input').html('<i class=\"fa fa-exclamation-circle\"></i>' + window.inventory_text.warning_quantity + ': ' + line_item);\r\n                    } else {\r\n                        $('#dropdown-cart [data-product-id=\"' + item_id + '\"]').find('.error-message-input').text('');\r\n                    }\r\n\r\n                    $.ajax({\r\n                        url: \"/products/\" + cart.items[i].handle + \"?view=cart_edit\",\r\n                        success: function(data){\r\n                            var json = $(data).find('.get_script_content').data('array_json');\r\n                            arr = json.filter(function(cur){\r\n                                return parseInt(cur.id) === cur_id\r\n                            });\r\n                            if (arr.length) {\r\n                                $('#dropdown-cart [data-product-id=\"' + cur_id + '\"]').find('[name=\"quantity\"]').attr('data-line', arr[0].value);\r\n                            }\r\n                        }\r\n                    });\r\n\r\n                    if (cart.cart_level_discount_applications.length > 0 && $('[data-cart-discount-wrapper]').length) {\r\n                        var cartDiscounts = cart.cart_level_discount_applications;\r\n                        var title = cartDiscounts[0].title;\r\n                        var total_discount = cartDiscounts[0].total_allocated_amount;\r\n                        $('[data-cart-discount-wrapper]').show();\r\n                        $('[data-cart-discount-title]').text(title);\r\n                        $('[data-cart-discount-amount]').html(Shopify.formatMoney(total_discount, window.money_format))\r\n                    } else {\r\n                        $('[data-cart-discount-wrapper]').hide();\r\n                    }\r\n                }\r\n                $('.cart-sidebar-products').show();\r\n                ella.removeItemDropdownCart(cart);\r\n\r\n                if (ella.checkNeedToConvertCurrency()) {\r\n                    Currency.convertAll(window.shop_currency, $('#currencies .active').attr('data-currency'), '#sidebar-cart span.money', 'money_format');\r\n                    Currency.convertAll(window.shop_currency, $('#currencies .active').attr('data-currency'), '#dropdown-cart span.money', 'money_format');\r\n                }\r\n            } else {\r\n                $('.cart-sidebar-products').hide();\r\n                $('.wrapper-cartCount').hide();\r\n            }\r\n            ella.initFreeShippingMessage();\r\n            ella.editCart();\r\n            ella.checkItemsInDropdownCart();\r\n        },\r\n\r\n        translateText: function (str) {\r\n            if (!window.multi_lang || str.indexOf(\"|\") < 0)\r\n                return str;\r\n\r\n            if (window.multi_lang) {\r\n                var textArr = str.split(\"|\");\r\n\r\n                if (translator.isLang2())\r\n                    return textArr[1];\r\n                return textArr[0];\r\n            };\r\n        },\r\n\r\n        checkNeedToConvertCurrency: function () {\r\n            return (window.show_multiple_currencies && Currency.currentCurrency != shopCurrency) || window.show_auto_currency;\r\n        },\r\n\r\n        loadJsonProductcard: function () {\r\n            if (window.innerWidth > 1024) {\r\n                $(document).off('mouseover', '.product-item[data-product-id]').on('mouseover', '.product-item[data-product-id]', function(e) {\r\n                    e.preventDefault();\r\n                    var $product = $(this);\r\n\r\n                    if( !$product[0].hasAttribute('data-json-product') ) {\r\n                        if( $product.hasClass('json-loading') )\r\n                            return;\r\n                        $product.addClass('json-loading');\r\n                        var handle = $product.find('.product-title').attr('href');\r\n\r\n                        var xhr = $.ajax({\r\n                            type: 'GET',\r\n                            url: handle,\r\n                            data: {\r\n                                view: 'get_json'\r\n                            },\r\n                            cache: false,\r\n                            dataType: 'html',\r\n                            success: function (data) {\r\n                                var json = JSON.parse(data);\r\n                                $product.attr('data-json-product', JSON.stringify(json));\r\n                            },\r\n                            complete: function () {\r\n                                $product.removeClass('json-loading');\r\n                            }\r\n                        });\r\n                    }\r\n                })\r\n            } else {\r\n                var isElementVisible = function($el, threshold) {\r\n                  var rect = $el[0].getBoundingClientRect();\r\n                  var windowHeight = window.innerHeight || document.documentElement.clientHeight;\r\n                  threshold = threshold ? threshold : 0;\r\n\r\n                  return (\r\n                    rect.bottom >= (0 - (threshold / 1.5)) &&\r\n                    rect.right >= 0 &&\r\n                    rect.top <= (windowHeight + threshold) &&\r\n                    rect.left <= (window.innerWidth || document.documentElement.clientWidth)\r\n                  );\r\n                };\r\n\r\n                $(window).scroll(function () {\r\n                    $('.product-item[data-product-id]').each(function(i, el){\r\n                      var self = $(this);\r\n                      if(isElementVisible($(el), - 100)) {\r\n                        var $product = $(this);\r\n                        if( !$product[0].hasAttribute('data-json-product') ) {\r\n                            if( $product.hasClass('json-loading') )\r\n                                return;\r\n                            $product.addClass('json-loading');\r\n                            var handle = $product.find('.product-title').attr('href');\r\n\r\n                            var xhr = $.ajax({\r\n                                type: 'GET',\r\n                                url: handle,\r\n                                data: {\r\n                                    view: 'get_json'\r\n                                },\r\n                                cache: false,\r\n                                dataType: 'html',\r\n                                success: function (data) {\r\n                                    var json = JSON.parse(data);\r\n                                    $product.attr('data-json-product', JSON.stringify(json));\r\n                                },\r\n                                complete: function () {\r\n                                    $product.removeClass('json-loading');\r\n                                }\r\n                            });\r\n                        }\r\n                      }\r\n                    });\r\n                });\r\n            }\r\n        },\r\n\r\n        changeSwatchQs: function () {\r\n            $('.selector-wrapper :radio').on('change', function(e){\r\n                var _self = $(this);\r\n                var productItem = $(this).parents('.product-item');\r\n                var productItemLayout = $(this).parents('.action');\r\n                var get_json = productItem.data('json-product');\r\n                var variantList = get_json.variants;\r\n                var option_color = productItem.find('.option-color').data('option-position');\r\n                var optionIdx = _self.closest('[data-option-index]').data('option-index');\r\n                var swatches = productItemLayout.find('.swatch-element');\r\n                var thisVal = _self.val();\r\n                var selectedVariant;\r\n                // debugger;\r\n                var productInput = productItemLayout.find('[name=id]');\r\n                var selectedSwatchOpt1 = productItemLayout.find('.selector-wrapper-1').find('input:checked').val();\r\n                var selectedSwatchOpt2 = productItemLayout.find('.selector-wrapper-2').find('input:checked').val();\r\n                var selectedSwatchOpt3 = productItemLayout.find('.selector-wrapper-3').find('input:checked').val();\r\n                swatches.removeClass('soldout');\r\n                swatches.find(':radio').prop('disabled',false);\r\n                switch (optionIdx){\r\n                    case 0:\r\n\r\n                        var availableVariants = variantList.find(function(variant){\r\n                            if (option_color == 1) {\r\n                                return variant.option2 == thisVal && variant.option1 == selectedSwatchOpt2;\r\n                            } else {\r\n                              if (option_color == 2) {\r\n                                return variant.option3 == thisVal && variant.option1 == selectedSwatchOpt2;\r\n                              } else {\r\n                                return variant.option1 == thisVal && variant.option2 == selectedSwatchOpt2;\r\n                              }\r\n                            }\r\n                        })\r\n\r\n                        if(availableVariants != undefined){\r\n                            selectedVariant =  availableVariants;\r\n                        }else{\r\n                             // variant was sold out, so auto select other available variant\r\n                            var altAvailableVariants = variantList.find(function(variant){\r\n                                if (option_color == 1) {\r\n                                    return variant.option2 == thisVal;\r\n                                } else {\r\n                                    if (option_color == 2) {\r\n                                      return variant.option3 == thisVal;\r\n                                    } else {\r\n                                      return variant.option1 == thisVal;\r\n                                    }\r\n                                }\r\n                            })\r\n                            selectedVariant =  altAvailableVariants;\r\n                        };\r\n                        break;\r\n                    case 1:\r\n\r\n                        var availableVariants = variantList.find(function(variant){\r\n                            if (option_color == 1) {\r\n                                return variant.option2 == selectedSwatchOpt1 && variant.option1 == thisVal && variant.option3 == selectedSwatchOpt3;\r\n                            } else {\r\n                                if (option_color == 2) {\r\n                                  return variant.option3 == selectedSwatchOpt1 && variant.option1 == thisVal && variant.option2 == selectedSwatchOpt3;\r\n                                } else {\r\n                                  return variant.option1 == selectedSwatchOpt1 && variant.option2 == thisVal && variant.option3 == selectedSwatchOpt3;\r\n                                }\r\n                            }\r\n\r\n                        })\r\n                        if(availableVariants != undefined){\r\n                            selectedVariant =  availableVariants;\r\n                        } else {\r\n                            var altAvailableVariants = variantList.find(function(variant){\r\n                                if (option_color == 1) {\r\n                                return variant.option2 == selectedSwatchOpt1 && variant.option1 == thisVal;\r\n                            } else {\r\n                                if (option_color == 2) {\r\n                                  return variant.option3 == selectedSwatchOpt1 && variant.option1 == thisVal;\r\n                                } else {\r\n                                  return variant.option1 == selectedSwatchOpt1 && variant.option2 == thisVal;\r\n                                }\r\n                            }\r\n                            })\r\n                            selectedVariant =  altAvailableVariants;\r\n                        };\r\n                        break;\r\n                    case 2:\r\n                        var availableVariants = variantList.find(function(variant){\r\n\r\n                            if (option_color == 1) {\r\n                                return variant.option2 == selectedSwatchOpt1 && variant.option1 == selectedSwatchOpt2 && variant.option3 == thisVal;\r\n                            } else {\r\n                                if (option_color == 2) {\r\n                                  return variant.option3 == selectedSwatchOpt1 && variant.option1 == selectedSwatchOpt2 && variant.option2 == thisVal;\r\n                                } else {\r\n                                  return variant.option1 == selectedSwatchOpt1 && variant.option2 == selectedSwatchOpt2 && variant.option3 == thisVal;\r\n                                }\r\n\r\n                            }\r\n                        })\r\n                        if(availableVariants != undefined){\r\n                           selectedVariant =  availableVariants;\r\n                        }\r\n                        break;\r\n                }\r\n                if (selectedVariant == undefined) return;\r\n                productInput.val(selectedVariant.id);\r\n                var value = $(this).val();\r\n                if (selectedVariant.compare_at_price > selectedVariant.price) {\r\n                    productItemLayout.find('[data-compare-price-grid]').html(Shopify.formatMoney(selectedVariant.compare_at_price, window.money_format));\r\n                } else {\r\n                    productItemLayout.find('[data-compare-price-grid]').html('');\r\n                }\r\n                productItemLayout.find('[data-price-grid]').html(Shopify.formatMoney(selectedVariant.price, window.money_format));\r\n                $(this).parents('.selector-wrapper').find('.form-label span').text(value);\r\n                ella.checkStatusSwatchQs(productItem,productItemLayout);\r\n            });\r\n\r\n            $('.product-card__variant--popup--content select.single-option-selector').on('change', function(){\r\n                var _self = $(this);\r\n                var productItem = $(this).parents('.product-item');\r\n                var productItemLayout = $(this).parents('.action');\r\n                var get_json = productItem.data('json-product');\r\n                var variantList = get_json.variants;\r\n                var option_color = productItem.find('.option-color').data('option-position');\r\n                var optionIdx = _self.data('option');\r\n                var swatches = productItem.find('.swatch-element');\r\n                var thisVal = _self.val();\r\n                var selectedVariant;\r\n                var productInput = productItemLayout.find('[name=id]');\r\n                var selectedSwatchOpt1 = productItemLayout.find('[data-option=\"option1\"]').val();\r\n                var selectedSwatchOpt2 = productItemLayout.find('[data-option=\"option2\"]').val();\r\n                var selectedSwatchOpt3 = productItemLayout.find('[data-option=\"option3\"]').val();\r\n                switch (optionIdx){\r\n                    case 'option1':\r\n                        var availableVariants = variantList.find(function(variant){\r\n                            return variant.option1 == thisVal && variant.option2 == selectedSwatchOpt2 && variant.available;\r\n                        })\r\n                        if(availableVariants != undefined){\r\n                            selectedVariant =  availableVariants;\r\n                        }else{\r\n                             // variant was sold out, so auto select other available variant\r\n                            var altAvailableVariants = variantList.find(function(variant){\r\n                                return variant.option1 == thisVal && variant.available;\r\n                            })\r\n                            selectedVariant =  altAvailableVariants;\r\n                        };\r\n                        break;\r\n                    case 'option2':\r\n                        var availableVariants = variantList.find(function(variant){\r\n                            return variant.option1 == selectedSwatchOpt1 && variant.option2 == thisVal && variant.available;\r\n                        })\r\n                        if(availableVariants != undefined){\r\n                            selectedVariant =  availableVariants;\r\n                        };\r\n                        break;\r\n                    case 'option3':\r\n                        var availableVariants = variantList.find(function(variant){\r\n                            return variant.option1 == selectedSwatchOpt1 && variant.option2 == selectedSwatchOpt2 && variant.option3 == thisVal && variant.available;\r\n                        })\r\n                        if(availableVariants != undefined){\r\n                           selectedVariant =  availableVariants;\r\n                        };\r\n                        break;\r\n                }\r\n                if (selectedVariant != undefined) {\r\n                    productInput.val(selectedVariant.id);\r\n                }\r\n\r\n                var value = $(this).val();\r\n                $(this).parents('.selector-wrapper').find('.form-label span').text(value);\r\n\r\n                ella.checkStatusSwatchQs(productItem,productItemLayout);\r\n\r\n                // if (selectedVariant.featured_image) {\r\n                //     productItem.find('#product-featured-image').attr('src', selectedVariant.featured_image.src);\r\n                // }\r\n\r\n            })\r\n        },\r\n\r\n        checkStatusSwatchQs: function (productItem,productItemLayout) {\r\n            if (window.use_color_swatch) {\r\n                var get_json = productItem.data('json-product');\r\n                var variantList = get_json.variants;\r\n                var options = productItem.find('[data-option-index]');\r\n                var option_color = productItem.find('.option-color').data('option-position');\r\n                if (productItemLayout == undefined) {\r\n                    productItemLayout = productItem;\r\n                }\r\n                var selectedSwatchOpt1 = productItemLayout.find('[data-option-index=\"0\"]').find('input:checked').val();\r\n                var selectedSwatchOpt2 = productItemLayout.find('[data-option-index=\"1\"]').find('input:checked').val();\r\n                var selectedSwatchOpt3 = productItemLayout.find('[data-option-index=\"2\"]').find('input:checked').val();\r\n\r\n                options.each(function(){\r\n                    var optionIndex = $(this).data('option-index');\r\n                    var swatch = $(this).find('.swatch-element');\r\n                    switch (optionIndex) {\r\n                        case 0:\r\n                        // loop through all swatchs in option 1 anh filter sold out swatch\r\n                        swatch.each(function(){\r\n                            var swatchVal = $(this).data('value');\r\n                            var opt1Soldout = variantList.find(function(variant){\r\n                                if (option_color == 1) {\r\n                                    return variant.option2 == swatchVal && variant.available;\r\n                                } else {\r\n                                    if (option_color == 2) {\r\n                                      return variant.option3 == swatchVal && variant.available;\r\n                                    } else {\r\n                                      return variant.option1 == swatchVal && variant.available;\r\n                                    }\r\n\r\n                                }\r\n                            });\r\n                            var optionUnavailable = variantList.find(function(variant){\r\n                                if (option_color == 1) {\r\n                                    return variant.option2 == swatchVal;\r\n                                } else {\r\n                                    if (option_color == 2) {\r\n                                      return variant.option3 == swatchVal;\r\n                                    } else {\r\n                                      return variant.option1 == swatchVal;\r\n                                    }\r\n\r\n                                }\r\n                            });\r\n                            if(opt1Soldout == undefined){\r\n                                if (optionUnavailable == undefined) {\r\n                                    $(this).addClass('unavailable');\r\n                                    $(this).removeClass('soldout');\r\n                                    $(this).removeClass('available');\r\n                                    $(this).find(':radio').prop('checked',false);\r\n                                } else {\r\n                                    $(this).addClass('soldout');\r\n                                    $(this).removeClass('unavailable');\r\n                                    $(this).removeClass('available');\r\n                                    $(this).find(':radio').prop('disabled',false);\r\n                                    productItemLayout.find('[data-btn-addtocart]').addClass('unavailable').attr('disable');\r\n                                }\r\n                            } else {\r\n                                $(this).removeClass('soldout');\r\n                                $(this).removeClass('unavailable');\r\n                                $(this).addClass('available');\r\n                                $(this).find(':radio').prop('disabled',false);\r\n                                productItemLayout.find('[data-btn-addtocart]').removeClass('unavailable').removeAttr('disable');\r\n                            }\r\n                        })\r\n                        break;\r\n                        case 1:\r\n                        swatch.each(function(){\r\n                            var swatchVal = $(this).data('value');\r\n                            var opt1Soldout = variantList.find(function(variant){\r\n                                if (option_color == 1) {\r\n                                    return variant.option2 == selectedSwatchOpt1 && variant.option1 == swatchVal && variant.available;\r\n                                } else {\r\n                                    if (option_color == 2) {\r\n                                      return variant.option3 == selectedSwatchOpt1 && variant.option1 == swatchVal && variant.available;\r\n                                    } else {\r\n                                      return variant.option1 == selectedSwatchOpt1 && variant.option2 == swatchVal && variant.available;\r\n                                    }\r\n\r\n                                }\r\n                            });\r\n                            var optionUnavailable = variantList.find(function(variant){\r\n                                if (option_color == 1) {\r\n                                    return variant.option2 == selectedSwatchOpt1 && variant.option1 == swatchVal;\r\n                                } else {\r\n                                    if (option_color == 2) {\r\n                                      return variant.option3 == selectedSwatchOpt1 && variant.option1 == swatchVal;\r\n                                    } else {\r\n                                      return variant.option1 == selectedSwatchOpt1 && variant.option2 == swatchVal;\r\n                                    }\r\n\r\n                                }\r\n                            });\r\n                            if(opt1Soldout == undefined){\r\n                                if (optionUnavailable == undefined) {\r\n                                    $(this).addClass('unavailable');\r\n                                    $(this).removeClass('soldout');\r\n                                    $(this).removeClass('available');\r\n                                    $(this).find(':radio').prop('checked',false);\r\n                                } else {\r\n                                    $(this).addClass('soldout');\r\n                                    $(this).removeClass('unavailable');\r\n                                    $(this).removeClass('available');\r\n                                    $(this).find(':radio').prop('disabled',false);\r\n                                    // $(this).find(':radio').prop('checked',true);\r\n                                    productItemLayout.find('[data-btn-addtocart]').addClass('unavailable').attr('disable');\r\n                                }\r\n                            } else {\r\n                                $(this).removeClass('soldout');\r\n                                $(this).removeClass('unavailable');\r\n                                $(this).addClass('available');\r\n                                $(this).find(':radio').prop('disabled',false);\r\n                                productItemLayout.find('[data-btn-addtocart]').removeClass('unavailable').removeAttr('disable');\r\n                            }\r\n\r\n                        })\r\n                        break;\r\n                        case 2:\r\n                        // loop through all swatchs in option 3 anh filter sold out swatch\r\n                        swatch.each(function(){\r\n                            var swatchVal = $(this).data('value');\r\n                            var opt1Soldout = variantList.find(function(variant){\r\n                                if (option_color == 1) {\r\n                                    return variant.option2 == selectedSwatchOpt1 && variant.option1 == selectedSwatchOpt2 && variant.option3 == swatchVal && variant.available;\r\n                                } else {\r\n                                    if (option_color == 2) {\r\n                                      return variant.option3 == selectedSwatchOpt1 && variant.option1 == selectedSwatchOpt2 && variant.option2 == swatchVal && variant.available;\r\n                                    } else {\r\n                                      return variant.option1 == selectedSwatchOpt1 && variant.option2 == selectedSwatchOpt2 && variant.option3 == swatchVal && variant.available;\r\n                                    }\r\n\r\n                                }\r\n\r\n                            });\r\n                            var optionUnavailable = variantList.find(function(variant){\r\n                                if (option_color == 1) {\r\n                                    return variant.option2 == selectedSwatchOpt1 && variant.option1 == selectedSwatchOpt2 && variant.option3 == swatchVal;\r\n                                } else {\r\n                                    if (option_color == 2) {\r\n                                      return variant.option3 == selectedSwatchOpt1 && variant.option1 == selectedSwatchOpt2 && variant.option2 == swatchVal;\r\n                                    } else {\r\n                                      return variant.option1 == selectedSwatchOpt1 && variant.option2 == selectedSwatchOpt2 && variant.option3 == swatchVal;\r\n                                    }\r\n\r\n                                }\r\n                            });\r\n                            if(opt1Soldout == undefined){\r\n                                if (optionUnavailable == undefined) {\r\n                                    $(this).addClass('unavailable');\r\n                                    $(this).removeClass('soldout');\r\n                                    $(this).removeClass('available');\r\n                                    $(this).find(':radio').prop('checked',false);\r\n                                } else {\r\n                                    $(this).addClass('soldout');\r\n                                    $(this).removeClass('unavailable');\r\n                                    $(this).removeClass('available');\r\n                                    $(this).find(':radio').prop('disabled',false);\r\n                                    // $(this).find(':radio').prop('checked',true);\r\n                                    productItemLayout.find('[data-btn-addtocart]').addClass('unavailable').attr('disable');\r\n                                }\r\n                            } else {\r\n                                $(this).removeClass('soldout');\r\n                                $(this).removeClass('unavailable');\r\n                                $(this).addClass('available');\r\n                                $(this).find(':radio').prop('disabled',false);\r\n                                productItemLayout.find('[data-btn-addtocart]').removeClass('unavailable').removeAttr('disable');\r\n                            }\r\n                        })\r\n                        break;\r\n                    }\r\n                });\r\n                if (productItemLayout.find('.swatch-element.soldout').find('input:checked').length) {\r\n                    productItemLayout.find('[data-btn-addtocart]').addClass('disabled').attr('disabled', true);\r\n                } else {\r\n                    productItemLayout.find('[data-btn-addtocart]').removeClass('disabled').removeAttr('disabled');\r\n                }\r\n                productItemLayout.find('.selector-wrapper:not(.option-color)').each(function(){\r\n                    if ($(this).find('.swatch-element').find('input:checked').length < 1) {\r\n                        if ($(this).find('.swatch-element.available').length) {\r\n                            $(this).find('.swatch-element.available').eq('0').find('label').trigger('click');\r\n                        } else {\r\n                            $(this).find('.swatch-element.soldout').eq('0').find('label').trigger('click');\r\n                        }\r\n                    }\r\n                });\r\n            } else {\r\n\r\n                var get_json = productItem.data('json-product');\r\n                var variantList = get_json.variants;\r\n                var options = productItem.find('.product-card__variant--popup--content [data-option]');\r\n                var option_color = productItem.find('.option-color').data('option-position');\r\n                var selectedSwatchOpt1 = productItemLayout.find('.product-card__variant--popup--content [data-option=\"option1\"]').val();\r\n                var selectedSwatchOpt2 = productItemLayout.find('.product-card__variant--popup--content [data-option=\"option2\"]').val();\r\n                var selectedSwatchOpt3 = productItemLayout.find('.product-card__variant--popup--content [data-option=\"option3\"]').val();\r\n\r\n                options.each(function(){\r\n                    var optionIndex = $(this).data('option-index');\r\n                    var swatch = $(this).find('option');\r\n                    switch (optionIndex) {\r\n                        case 0:\r\n                        // loop through all swatchs in option 1 anh filter sold out swatch\r\n                        swatch.each(function(){\r\n                            var swatchVal = $(this).val();\r\n                            var opt1Soldout = variantList.find(function(variant){\r\n\r\n                                // if (option_color == 1) {\r\n                                //     return variant.option2 == swatchVal && variant.available;\r\n                                // } else {\r\n                                    return variant.option1 == swatchVal && variant.available;\r\n                                // }\r\n                            });\r\n                            if(opt1Soldout == undefined){\r\n                                var optionUnavailable = variantList.find(function(variant){\r\n                                    return variant.option1 == swatchVal;\r\n                                });\r\n                                if (optionUnavailable == undefined) {\r\n                                    $(this).addClass('unavailable');\r\n                                    $(this).removeClass('soldOut');\r\n                                    $(this).attr('disabled','disabled');\r\n                                } else {\r\n                                    $(this).addClass('soldOut');\r\n                                    $(this).removeClass('unavailable');\r\n                                    $(this).removeAttr('disabled','disabled');\r\n                                }\r\n                            } else {\r\n                                $(this).removeAttr('disabled','disabled');\r\n                                $(this).removeClass('soldOut');\r\n                                $(this).removeClass('unavailable');\r\n                            }\r\n                        })\r\n                        break;\r\n                        case 1:\r\n                        // loop through all swatchs in option 2 anh filter sold out swatch\r\n                        swatch.each(function(){\r\n                            var swatchVal = $(this).val();\r\n                            var opt1Soldout = variantList.find(function(variant){\r\n                              return variant.option1 == selectedSwatchOpt1 && variant.option2 == swatchVal && variant.available;\r\n                            });\r\n                            if(opt1Soldout == undefined){\r\n                                var optionUnavailable = variantList.find(function(variant){\r\n                                    return variant.option1 == selectedSwatchOpt1 && variant.option2 == swatchVal;\r\n                                });\r\n                                if (optionUnavailable == undefined) {\r\n                                    $(this).addClass('unavailable');\r\n                                    $(this).removeClass('soldOut');\r\n                                    $(this).attr('disabled','disabled');\r\n                                } else {\r\n                                    $(this).addClass('soldOut');\r\n                                    $(this).removeClass('unavailable');\r\n                                    $(this).removeAttr('disabled','disabled');\r\n                                }\r\n                            } else {\r\n                                $(this).removeAttr('disabled','disabled');\r\n                                $(this).removeClass('soldOut');\r\n                                $(this).removeClass('unavailable');\r\n                            }\r\n\r\n                        })\r\n                        break;\r\n                        case 2:\r\n                        // loop through all swatchs in option 3 anh filter sold out swatch\r\n                        swatch.each(function(){\r\n                            var swatchVal = $(this).val();\r\n                            var opt1Soldout = variantList.find(function(variant){\r\n                                return variant.option1 == selectedSwatchOpt1 && variant.option2 == selectedSwatchOpt2 && variant.option3 == swatchVal && variant.available;\r\n                            });\r\n                            if(opt1Soldout == undefined){\r\n                                var optionUnavailable = variantList.find(function(variant){\r\n                                    return variant.option1 == selectedSwatchOpt1 && variant.option2 == selectedSwatchOpt2 && variant.option3 == swatchVal;\r\n                                });\r\n                                if (optionUnavailable == undefined) {\r\n                                    $(this).addClass('unavailable');\r\n                                    $(this).removeClass('soldOut');\r\n                                    $(this).attr('disabled','disabled');\r\n                                } else {\r\n                                    $(this).addClass('soldOut');\r\n                                    $(this).removeClass('unavailable');\r\n                                    $(this).removeAttr('disabled','disabled');\r\n                                }\r\n                            } else {\r\n                                $(this).removeAttr('disabled','disabled');\r\n                                $(this).removeClass('soldOut');\r\n                                $(this).removeClass('unavailable');\r\n                            }\r\n                        })\r\n                        break;\r\n                    }\r\n                });\r\n                if (productItemLayout.find('.product-card__variant--popup--content .single-option-selector').find('option.soldOut:selected').length) {\r\n                    productItemLayout.find('[data-btn-addtocart]').addClass('disabled').attr('disabled', true);\r\n                } else {\r\n                    productItemLayout.find('[data-btn-addtocart]').removeClass('disabled').removeAttr('disabled');\r\n                }\r\n            }\r\n        },\r\n\r\n        initQuickshop: function () {\r\n            var btnQuickshop = '[data-init-quickshop]';\r\n            var cancelQuickshop = '[data-cancel-swatch-qs]';\r\n\r\n            body.off('click.quickshop').on('click.quickshop', btnQuickshop, function (e) {\r\n                e.preventDefault();\r\n                e.stopPropagation();\r\n                var _self = $(this),\r\n                    productItem = _self.parents('.product-item'),\r\n                    productItemLayout = _self.parents('.action');\r\n                var option_color = productItem.find('.option-color');\r\n\r\n                _self.parents('.action').addClass('show-popup-qs');\r\n\r\n                ella.changeSwatchQs();\r\n                var get_json = productItem.data('json-product');\r\n\r\n                ella.checkStatusSwatchQs(productItem,productItemLayout);\r\n\r\n                _self.parents('.action').find('.selector-wrapper:not(.option-color)').each(function(){\r\n                    $(this).find('.swatch-element:not(.soldout):not(.unavailable)').eq('0').find('label').trigger('click');\r\n                })\r\n\r\n                ella.stickySidebar();\r\n\r\n\r\n            });\r\n\r\n            body.off('click.cancelquickshop').on('click.cancelquickshop', cancelQuickshop, function () {\r\n                $(this).parents('.action').removeClass('show-popup-qs');\r\n            });\r\n        },\r\n\r\n        initColorSwatchGrid: function () {\r\n            var itemSwatchSlt = '.item-swatch li label';\r\n\r\n            body.off('click.toggleClass').on('click.toggleClass', itemSwatchSlt, function () {\r\n                $(this).parents('.inner-top').find('.action').removeClass('show-popup-qs');\r\n                var self = $(this),\r\n                    title = self.attr('title').replace(/^\\s+|\\s+$/g, ''),\r\n                    productItemElm = self.closest('.grid-item'),\r\n                    sidebarWidgetProduct = productItemElm.closest('.sidebar-widget-product');\r\n\r\n                self.parents('.item-swatch').find('li label').removeClass('active');\r\n                self.addClass('active');\r\n                var get_json = $(this).parents('.product-item').data('json-product');\r\n                var list_cur_media = [];\r\n\r\n                (productItemElm.find('.product-title').hasClass('change-text')) ?\r\n                productItemElm.find('.product-title').find('[data-change-title]').text(' - ' + title) :\r\n                productItemElm.find('.product-title').addClass('change-text').append('<span data-change-title> - ' + title + '</span>');\r\n\r\n                if (self.data('with-one-option') != undefined) {\r\n                    var quantity = self.data('quantity');\r\n                    productItemElm.find('[name=\"id\"]').val(self.data('with-one-option'));\r\n                    if (quantity > 0) {\r\n                        productItemElm.find('[data-btn-addtocart]').removeClass('disabled').removeAttr('disabled');\r\n                    } else {\r\n                        productItemElm.find('[data-btn-addtocart]').addClass('disabled').attr('disabled', 'disabled');\r\n                    }\r\n                } else {\r\n                    if (get_json != undefined) {\r\n                        ella.checkStatusSwatchQs($(this).parents('.product-item'));\r\n                    }\r\n//                     productItemElm.find('[data-value=\"' + title + '\"]').find('label').trigger('click');\r\n                    if ($('.template-collection').length) {\r\n                        if ($(this).parents('.product-collection').hasClass('products-list')) {\r\n                         productItemElm.find('.product-details').find('[data-value=\"' + title + '\"]').find('label').trigger('click');\r\n                        } else {\r\n                            productItemElm.find('.action:eq(0)').find('[data-value=\"' + title + '\"]').find('label').trigger('click');\r\n                        }\r\n                    } else {\r\n                        productItemElm.find('[data-value=\"' + title + '\"]').find('label').trigger('click');\r\n                    }\r\n                }\r\n\r\n                if (get_json != undefined) {\r\n                    var list_cur_media = get_json.media.filter(function(cur) {\r\n                        return cur.alt === title;\r\n                    });\r\n                }\r\n\r\n                if (list_cur_media.length > 0 && window.color_swatch_style == 'variant_grouped') {\r\n                    if (list_cur_media.length > 1) {\r\n                        var length = 2;\r\n                    } else {\r\n                        var length = list_cur_media.length\r\n                    }\r\n                    for (var i = 0; i < length; i ++) {\r\n                        productItemElm.find('picture[data-index=\"' + i + '\"] > *').attr('srcset', list_cur_media[i].src);\r\n                    }\r\n                } else {\r\n                    var newImage = self.data('img');\r\n                    if (sidebarWidgetProduct.length) {\r\n                        newImage = newImage.replace('800x', 'large');\r\n                    }\r\n                    if (newImage) {\r\n                        productItemElm.find('.product-grid-image > picture > *, .product-grid-image > img').attr({\r\n                            \"srcset\": newImage\r\n                        });\r\n                        return false;\r\n                    }\r\n                }\r\n\r\n            });\r\n            body.off('click.showmore').on('click.showmore', '.item-swatch-more a', function () {\r\n            // $('.item-swatch-more a').off('click').on('click', function() {\r\n                $(this).parents('.item-swatch').toggleClass('show--more');\r\n                ($(this).parents('.item-swatch').hasClass('show--more')) ? $(this).children().text('-') : $(this).children().text('+');\r\n            });\r\n        },\r\n\r\n        showLoading: function () {\r\n            $('.loading-modal').show();\r\n        },\r\n\r\n        hideLoading: function () {\r\n            $('.loading-modal').hide();\r\n        },\r\n\r\n        showModal: function (selector) {\r\n            $(selector).fadeIn(500);\r\n\r\n            ella.ellaTimeout = setTimeout(function () {\r\n                $(selector).fadeOut(500);\r\n            }, 5000);\r\n        },\r\n\r\n        translateBlock: function (blockSelector) {\r\n            if (window.multi_lang && translator.isLang2()) {\r\n                translator.doTranslate(blockSelector);\r\n            }\r\n        },\r\n\r\n        closeLookbookModal: function () {\r\n            $('.ajax-lookbook-modal').fadeOut(500);\r\n        },\r\n\r\n        addEventLookbookModal: function () {\r\n            body.off('click.addEvenLookbookModal touchstart.addEvenLookbookModal', '[data-lookbook-icon]').on('click.addEvenLookbookModal touchstart.addEvenLookbookModal', '[data-lookbook-icon]', function (e) {\r\n                e.preventDefault();\r\n                e.stopPropagation();\r\n\r\n                var handle = $(this).data('handle'),\r\n                    position = $(this);\r\n\r\n                ella.doAjaxAddLookbookModal(handle, position);\r\n\r\n                doc.off('click.closeLookbookModal').on('click.closeLookbookModal', '[data-close-lookbook-modal], .ajax-lookbook-modal .overlay', function () {\r\n                    ella.closeLookbookModal();\r\n                    return false;\r\n                });\r\n            });\r\n        },\r\n\r\n        doAjaxAddLookbookModal: function (handle, position) {\r\n            var offSet = $(position).offset(),\r\n                top = offSet.top,\r\n                left = offSet.left,\r\n                iconWidth = position.innerWidth(),\r\n                innerLookbookModal = $('.ajax-lookbook-modal').innerWidth(),\r\n                str3 = iconWidth + \"px\",\r\n                str4 = innerLookbookModal + \"px\",\r\n                newtop,\r\n                newleft;\r\n\r\n            if (window.innerWidth > 767) {\r\n                if (left > (innerLookbookModal + 31)) {\r\n                    newleft = \"calc(\" + left + \"px\" + \" - \" + str4 + \" + \" + \"2px\" + \")\";\r\n                } else {\r\n                    newleft = \"calc(\" + left + \"px\" + \" + \" + str3 + \" - \" + \"2px\" + \")\";\r\n                }\r\n\r\n                newtop = top - (innerLookbookModal / 2) + \"px\";\r\n            } else {\r\n                newleft = 0;\r\n                newtop = top - 30 + \"px\";\r\n            };\r\n\r\n            if (ella.isAjaxLoading) return;\r\n\r\n            $.ajax({\r\n                type: \"get\",\r\n                url: window.router + '/products/' + handle + '?view=json',\r\n\r\n                success: function (data) {\r\n                    $('.ajax-lookbook-modal').css({\r\n                        'left': newleft,\r\n                        'top': newtop\r\n                    });\r\n\r\n                    $('.ajax-lookbook-modal .lookbook-content').html(data);\r\n\r\n                    ella.translateBlock('.lookbook-content');\r\n                    $('.ajax-lookbook-modal').fadeIn(500);\r\n                },\r\n\r\n                error: function (xhr, text) {\r\n                    $('.ajax-error-message').text($.parseJSON(xhr.responseText).description);\r\n\r\n                    ella.showModal('.ajax-error-modal');\r\n                }\r\n            });\r\n        },\r\n\r\n        clickedActiveProductTabs: function () {\r\n            var productTabsSection = $('[data-home-product-tabs]');\r\n\r\n            productTabsSection.each(function () {\r\n                var self = $(this),\r\n                    listTabs = self.find('.list-product-tabs'),\r\n                    tabLink = listTabs.find('[data-product-tabTop]'),\r\n                    tabContent = self.find('[data-product-TabContent]');\r\n\r\n                var linkActive = self.find('.list-product-tabs .tab-links.active'),\r\n                    activeTab = self.find('.product-tabs-content .tab-content.active');\r\n\r\n                ella.doAjaxProductTabs(linkActive.data('href'), activeTab.find('.loading'), activeTab.find('.products-grid'), self.attr('sectionid'));\r\n\r\n                tabLink.off('click').on('click', function (e) {\r\n                    e.preventDefault();\r\n                    e.stopPropagation();\r\n\r\n                    if($(this).hasClass('active')) {\r\n                        return;\r\n                    }\r\n\r\n                    if (!$(this).hasClass('active')) {\r\n                        var curTab = $(this),\r\n                            curTabContent = $(curTab.data('target'));\r\n\r\n                        tabLink.removeClass('active');\r\n                        tabContent.removeClass('active');\r\n\r\n                        if (!curTabContent.find('.products-grid').hasClass('slick-initialized')) {\r\n                            ella.doAjaxProductTabs(curTab.data('href'), curTabContent.find('.loading'), curTabContent.find('.products-grid'), self.attr('sectionid'));\r\n                        }\r\n\r\n                        curTab.addClass('active');\r\n                        curTabContent.addClass('active');\r\n                    };\r\n                });\r\n            });\r\n        },\r\n\r\n        doAjaxProductTabs: function (handle, loadingElm, curTabContent, sectionId) {\r\n            // if (ella.isAjaxLoading) return;\r\n            var productTabsSection = $('[data-home-product-tabs]');\r\n\r\n            $.ajax({\r\n                type: \"get\",\r\n                url: handle,\r\n                data: {\r\n                    constraint: 'sectionId=' + sectionId\r\n                },\r\n\r\n                beforeSend: function () {\r\n                    loadingElm.text('Loading ... please wait ...');\r\n                },\r\n\r\n                success: function (data) {\r\n                    loadingElm.hide();\r\n\r\n                    if (handle == '/collections/?view=json') {\r\n                        loadingElm.text('Please link to collections').show();\r\n                    } else {\r\n                        curTabContent.html($(data).find('.grid-items').html());\r\n\r\n                        if (!curTabContent.hasClass('slick-initialized')) {\r\n                            ella.initProductTabsSlider(curTabContent.parent());\r\n                        };\r\n\r\n                        if (ella.checkNeedToConvertCurrency()) {\r\n                            Currency.convertAll(window.shop_currency, $('#currencies .active').attr('data-currency'), 'span.money', 'money_format');\r\n                        };\r\n\r\n                        ella.translateBlock('[data-home-product-tabs]');\r\n                        ella.initColorSwatchGrid();\r\n                        ella.initWishListIcons();\r\n\r\n                        ella.ellaTimeout = setTimeout(function () {\r\n                            if ($('.shopify-product-reviews-badge').length && $('.spr-badge').length) {\r\n                                return window.SPR.registerCallbacks(), window.SPR.initRatingHandler(), window.SPR.initDomEls(), window.SPR.loadProducts(), window.SPR.loadBadges();\r\n                            };\r\n                        }, 1000);\r\n                    };\r\n                    $('[data-toggle=\"tooltip\"]').tooltip();\r\n                },\r\n\r\n                error: function (xhr, text) {\r\n                    loadingElm.text('Sorry, there are no products in this collection').show();\r\n                }\r\n            });\r\n        },\r\n\r\n        initProductTabsSlider: function (slt) {\r\n            slt.each(function () {\r\n                var self = $(this),\r\n                    productGrid = self.find('.products-grid'),\r\n                    gridItemWidth = productGrid.data('row');\r\n\r\n                if (productGrid.not('.slick-initialized') && productGrid.find('.grid-item').length) {\r\n                    productGrid.slick({\r\n                        slidesToShow: productGrid.data('row'),\r\n                        slidesToScroll: productGrid.data('row'),\r\n                        dots: false,\r\n                        infinite: false,\r\n                        speed: 1000,\r\n                        get nextArrow() {\r\n                            if ((window.layout_style == 'layout_style_1170') || (window.layout_style == 'layout_style_flower')) {\r\n                                return this.nextArrow = '<button type=\"button\" class=\"slick-next\"><svg viewBox=\"0 0 50 50\"><path d=\"M 11.957031 13.988281 C 11.699219 14.003906 11.457031 14.117188 11.28125 14.308594 L 1.015625 25 L 11.28125 35.691406 C 11.527344 35.953125 11.894531 36.0625 12.242188 35.976563 C 12.589844 35.890625 12.867188 35.625 12.964844 35.28125 C 13.066406 34.933594 12.972656 34.5625 12.71875 34.308594 L 4.746094 26 L 48 26 C 48.359375 26.003906 48.695313 25.816406 48.878906 25.503906 C 49.058594 25.191406 49.058594 24.808594 48.878906 24.496094 C 48.695313 24.183594 48.359375 23.996094 48 24 L 4.746094 24 L 12.71875 15.691406 C 13.011719 15.398438 13.09375 14.957031 12.921875 14.582031 C 12.753906 14.203125 12.371094 13.96875 11.957031 13.988281 Z\"></path></svg></button>';\r\n                            } else if ((window.layout_style == 'layout_style_fullwidth') || (window.layout_style == 'layout_style_suppermarket')){\r\n                                return this.nextArrow = '<button type=\"button\" class=\"slick-next\"><svg viewBox=\"0 0 478.448 478.448\" class=\"icon icon-chevron-right\" id=\"icon-chevron-right\"><g><g><polygon points=\"131.659,0 100.494,32.035 313.804,239.232 100.494,446.373 131.65,478.448 377.954,239.232\"></polygon></g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g></svg></button>';\r\n                            }\r\n                            else {\r\n                                return this.nextArrow = '<button type=\"button\" class=\"slick-next\"><i class=\"fa fa-angle-right\"></i></button>';\r\n                            }\r\n                        },\r\n                        get prevArrow() {\r\n                            if ((window.layout_style == 'layout_style_1170') || (window.layout_style == 'layout_style_flower')) {\r\n                                return this.prevArrow = '<button type=\"button\" class=\"slick-prev\"><svg viewBox=\"0 0 50 50\"><path d=\"M 11.957031 13.988281 C 11.699219 14.003906 11.457031 14.117188 11.28125 14.308594 L 1.015625 25 L 11.28125 35.691406 C 11.527344 35.953125 11.894531 36.0625 12.242188 35.976563 C 12.589844 35.890625 12.867188 35.625 12.964844 35.28125 C 13.066406 34.933594 12.972656 34.5625 12.71875 34.308594 L 4.746094 26 L 48 26 C 48.359375 26.003906 48.695313 25.816406 48.878906 25.503906 C 49.058594 25.191406 49.058594 24.808594 48.878906 24.496094 C 48.695313 24.183594 48.359375 23.996094 48 24 L 4.746094 24 L 12.71875 15.691406 C 13.011719 15.398438 13.09375 14.957031 12.921875 14.582031 C 12.753906 14.203125 12.371094 13.96875 11.957031 13.988281 Z\"></path></svg></button>';\r\n                            } else if ((window.layout_style == 'layout_style_fullwidth') || (window.layout_style == 'layout_style_suppermarket')){\r\n                                return this.prevArrow = '<button type=\"button\" class=\"slick-prev\"><svg viewBox=\"0 0 370.814 370.814\" class=\"icon icon-chevron-left\" id=\"icon-chevron-left\"><g><g><polygon points=\"292.92,24.848 268.781,0 77.895,185.401 268.781,370.814 292.92,345.961 127.638,185.401\"></polygon></g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g></svg></button>';\r\n                            }\r\n                            else {\r\n                                return this.prevArrow = '<button type=\"button\" class=\"slick-prev\"><i class=\"fa fa-angle-left\"></i></button>';\r\n                            }\r\n                        },\r\n                        responsive: [\r\n                            {\r\n                                breakpoint: 1200,\r\n                                settings: {\r\n                                    dots: true,\r\n                                    arrows: false,\r\n                                    get slidesToShow() {\r\n                                        if(self.hasClass('sections-has-banner')) {\r\n                                            return this.slidesToShow = 2;\r\n                                        }else {\r\n                                            if(gridItemWidth >= 4) {\r\n                                                return this.slidesToShow = 4;\r\n                                            }else if(gridItemWidth = 3) {\r\n                                                return this.slidesToShow = 3\r\n                                            }else {\r\n                                                return this.slidesToShow = 2\r\n                                            }\r\n                                        }\r\n                                    },\r\n                                    get slidesToScroll() {\r\n                                        if (self.hasClass('sections-has-banner')) {\r\n                                            return this.slidesToScroll = 2;\r\n                                        }else {\r\n                                            if(gridItemWidth >= 4) {\r\n                                                return this.slidesToScroll = 4;\r\n                                            }else if(gridItemWidth = 3) {\r\n                                                return this.slidesToScroll = 3\r\n                                            }else {\r\n                                                return this.slidesToScroll = 2\r\n                                            }\r\n                                        };\r\n                                    }\r\n                                }\r\n                            },\r\n                            {\r\n                                breakpoint: 992,\r\n                                settings: {\r\n                                    dots: true,\r\n                                    arrows: false,\r\n                                    get slidesToShow() {\r\n                                        if(self.hasClass('sections-has-banner')) {\r\n                                            return this.slidesToShow = 2;\r\n                                        }else {\r\n                                            if (gridItemWidth >= 3) {\r\n                                                return this.slidesToShow = 3;\r\n                                            } else {\r\n                                                this.slidesToShow = 2\r\n                                            }\r\n                                        }\r\n                                    },\r\n                                    get slidesToScroll() {\r\n                                        if (self.hasClass('sections-has-banner')) {\r\n                                            return this.slidesToScroll = 2;\r\n                                        }else {\r\n                                            if(gridItemWidth >= 3) {\r\n                                                return this.slidesToScroll = 3;\r\n                                            }else {\r\n                                                return this.slidesToScroll = 2\r\n                                            }\r\n                                        };\r\n                                    }\r\n                                }\r\n                            },\r\n                            {\r\n                                breakpoint: 768,\r\n                                settings: {\r\n                                    slidesToShow: 2,\r\n                                    slidesToScroll: 2,\r\n                                    arrows: false,\r\n                                    dots: true\r\n                                }\r\n                            }\r\n                        ]\r\n                    });\r\n                }\r\n            });\r\n        },\r\n\r\n        initProductReview: function () {\r\n            setInterval(function(){\r\n                if (!$('.spr-reviews').hasClass('slick-initialized') && $('.product-template-skin-1').length) {\r\n                    if (!$('.spr-reviews').find('.spr-review').length) {\r\n                        return;\r\n                    }\r\n                    var self = $('.spr-reviews');\r\n                    self.slick({\r\n                        slidesToShow: 2,\r\n                        slidesToScroll: 1,\r\n                        get arrows() {\r\n                            if (window.layout_style == 'layout_style_fullwidth') {\r\n                                return this.arrows = true\r\n\r\n                            } else {\r\n                                return this.arrows = false\r\n                            }\r\n                        },\r\n                        get dots() {\r\n                            if (window.layout_style == 'layout_style_fullwidth') {\r\n                                return this.dots = false\r\n\r\n                            } else {\r\n                                return this.dots = true\r\n                            }\r\n                        },\r\n                        infinite: true,\r\n                        speed: 1000,\r\n                        get centerMode() {\r\n                            if (window.layout_style == 'layout_style_flower') {\r\n                                return this.centerMode = false\r\n\r\n                            } else {\r\n                                return this.centerMode = true\r\n                            }\r\n                        },\r\n                        centerPadding: '20%',\r\n                        get nextArrow() {\r\n                            if ((window.layout_style == 'layout_style_1170') || (window.layout_style == 'layout_style_flower')) {\r\n                                return this.nextArrow = '<button type=\"button\" class=\"slick-next\"><svg viewBox=\"0 0 50 50\"><path d=\"M 11.957031 13.988281 C 11.699219 14.003906 11.457031 14.117188 11.28125 14.308594 L 1.015625 25 L 11.28125 35.691406 C 11.527344 35.953125 11.894531 36.0625 12.242188 35.976563 C 12.589844 35.890625 12.867188 35.625 12.964844 35.28125 C 13.066406 34.933594 12.972656 34.5625 12.71875 34.308594 L 4.746094 26 L 48 26 C 48.359375 26.003906 48.695313 25.816406 48.878906 25.503906 C 49.058594 25.191406 49.058594 24.808594 48.878906 24.496094 C 48.695313 24.183594 48.359375 23.996094 48 24 L 4.746094 24 L 12.71875 15.691406 C 13.011719 15.398438 13.09375 14.957031 12.921875 14.582031 C 12.753906 14.203125 12.371094 13.96875 11.957031 13.988281 Z\"></path></svg></button>';\r\n                            } else if ((window.layout_style == 'layout_style_fullwidth') || (window.layout_style == 'layout_style_suppermarket')){\r\n                                return this.nextArrow = '<button type=\"button\" class=\"slick-next\"><svg viewBox=\"0 0 478.448 478.448\" class=\"icon icon-chevron-right\" id=\"icon-chevron-right\"><g><g><polygon points=\"131.659,0 100.494,32.035 313.804,239.232 100.494,446.373 131.65,478.448 377.954,239.232\"></polygon></g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g></svg></button>';\r\n                            }\r\n                            else {\r\n                                return this.nextArrow = '<button type=\"button\" class=\"slick-next\"><i class=\"fa fa-angle-right\"></i></button>';\r\n                            }\r\n                        },\r\n                        get prevArrow() {\r\n                            if ((window.layout_style == 'layout_style_1170') || (window.layout_style == 'layout_style_flower')) {\r\n                                return this.prevArrow = '<button type=\"button\" class=\"slick-prev\"><svg viewBox=\"0 0 50 50\"><path d=\"M 11.957031 13.988281 C 11.699219 14.003906 11.457031 14.117188 11.28125 14.308594 L 1.015625 25 L 11.28125 35.691406 C 11.527344 35.953125 11.894531 36.0625 12.242188 35.976563 C 12.589844 35.890625 12.867188 35.625 12.964844 35.28125 C 13.066406 34.933594 12.972656 34.5625 12.71875 34.308594 L 4.746094 26 L 48 26 C 48.359375 26.003906 48.695313 25.816406 48.878906 25.503906 C 49.058594 25.191406 49.058594 24.808594 48.878906 24.496094 C 48.695313 24.183594 48.359375 23.996094 48 24 L 4.746094 24 L 12.71875 15.691406 C 13.011719 15.398438 13.09375 14.957031 12.921875 14.582031 C 12.753906 14.203125 12.371094 13.96875 11.957031 13.988281 Z\"></path></svg></button>';\r\n                            } else if ((window.layout_style == 'layout_style_fullwidth') || (window.layout_style == 'layout_style_suppermarket')){\r\n                                return this.prevArrow = '<button type=\"button\" class=\"slick-prev\"><svg viewBox=\"0 0 370.814 370.814\" class=\"icon icon-chevron-left\" id=\"icon-chevron-left\"><g><g><polygon points=\"292.92,24.848 268.781,0 77.895,185.401 268.781,370.814 292.92,345.961 127.638,185.401\"></polygon></g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g></svg></button>';\r\n                            }\r\n                            else {\r\n                                return this.prevArrow = '<button type=\"button\" class=\"slick-prev\"><i class=\"fa fa-angle-left\"></i></button>';\r\n                            }\r\n                        },\r\n                        responsive: [\r\n                            {\r\n                                breakpoint: 1200,\r\n                                settings: {\r\n                                    slidesToShow: 2\r\n                                }\r\n                            },\r\n                            {\r\n                                breakpoint: 992,\r\n                                settings: {\r\n                                    slidesToShow: 1\r\n                                }\r\n                            },\r\n                            {\r\n                                breakpoint: 480,\r\n                                settings: {\r\n                                    slidesToShow: 1,\r\n                                    centerMode: false,\r\n                                }\r\n                            }\r\n                        ]\r\n                    });\r\n                    self.find('.spr-review').each(function(){\r\n                        $(this).find('.spr-review-header-byline').appendTo($(this).find('.spr-review-footer'));\r\n                        self.find('.spr-pagination').remove();\r\n                    })\r\n                }\r\n            })\r\n\r\n        },\r\n\r\n        initCountdown: function () {\r\n            var countdownElm = $('[data-countdown]');\r\n\r\n            countdownElm.each(function () {\r\n                var self = $(this),\r\n                    countdownValue = self.data('countdown-value');\r\n\r\n                self.countdown(countdownValue, function (event) {\r\n                    $(this).html(event.strftime('' +\r\n                        '<div class=\"clock-item\"><span class=\"num\">%D</span><span>' + window.inventory_text.days + '</span></div>' +\r\n                        '<div class=\"clock-item\"><span class=\"num\">%H</span><span>' + window.inventory_text.hours + '</span></div>' +\r\n                        '<div class=\"clock-item\"><span class=\"num\">%M</span><span>' + window.inventory_text.mins + '</span></div>' +\r\n                        '<div class=\"clock-item\"><span class=\"num\">%S</span><span>' + window.inventory_text.secs + '</span></div>'));\r\n                });\r\n            });\r\n        },\r\n\r\n        initCountdownNormal: function () {\r\n            var countdownElm = $('[data-countdown-normal]');\r\n\r\n            countdownElm.each(function () {\r\n                var self = $(this),\r\n                    countdownValue = self.data('countdown-value');\r\n\r\n                if(self.hasClass('countdown-suppermarket')) {\r\n                    self.countdown(countdownValue, function (event) {\r\n                        $(this).html(event.strftime('' +\r\n                            '<div class=\"clock-item\"><span class=\"num\">%D</span><span>d</span></div>' +\r\n                            '<div class=\"clock-item\"><span class=\"num\">%H</span>&nbsp;:</div>' +\r\n                            '<div class=\"clock-item\"><span class=\"num\">%M</span>&nbsp;:</div>' +\r\n                            '<div class=\"clock-item\"><span class=\"num\">%S</span></div>'));\r\n                    });\r\n                }\r\n                else if(window.product_style == 'supermarket') {\r\n                    self.countdown(countdownValue, function (event) {\r\n                        $(this).html(event.strftime('' +\r\n                            '<div class=\"clock-item\"><span class=\"num\">%D</span><span> days</span></div>' +\r\n                            '<div class=\"clock-item\"><span class=\"num\">%H</span>&nbsp;:</div>' +\r\n                            '<div class=\"clock-item\"><span class=\"num\">%M</span>&nbsp;:</div>' +\r\n                            '<div class=\"clock-item\"><span class=\"num\">%S</span></div>'));\r\n                    });\r\n                }\r\n                else {\r\n                    self.countdown(countdownValue, function (event) {\r\n                        $(this).html(event.strftime('' +\r\n                            '<div class=\"clock-item\"><span class=\"num\">%D</span><span>D</span>:</div>' +\r\n                            '<div class=\"clock-item\"><span class=\"num\">%H</span><span>H</span>:</div>' +\r\n                            '<div class=\"clock-item\"><span class=\"num\">%M</span><span>M</span>:</div>' +\r\n                            '<div class=\"clock-item\"><span class=\"num\">%S</span><span>S</span></div>'));\r\n                    });\r\n                }\r\n            });\r\n        },\r\n\r\n        initToggleSubMenuMobile: function () {\r\n            var mainMenu = $('.main-menu.jas-mb-style'),\r\n                siteNav = $('.site-nav'),\r\n                iconDropdown = siteNav.find('[data-toggle-menu-mb]');\r\n\r\n            iconDropdown.off('click.dropdownMenu').on('click.dropdownMenu', function (e) {\r\n                e.preventDefault();\r\n                e.stopPropagation();\r\n\r\n                var curParent = $(this).parent(),\r\n                    curMenu = curParent.next('.sub-menu-mobile');\r\n\r\n                if ($('.header-bottom .header-mb').is(':visible')) {\r\n                    if (curMenu.hasClass('sub-menu-open')) {\r\n                        curMenu.removeClass('sub-menu-open');\r\n                    } else {\r\n                        curMenu.addClass('sub-menu-open').css({\r\n                            \"overflow\": \"\"\r\n                        });\r\n                        mainMenu.animate({\r\n                            scrollTop: 0\r\n                        }, 0);\r\n                        mainMenu.css({\r\n                            \"overflow\": \"hidden\"\r\n                        });\r\n                    };\r\n                }\r\n\r\n            });\r\n\r\n            ella.linkClickToggleSubMenuMobile(mainMenu);\r\n        },\r\n\r\n        linkClickToggleSubMenuMobile: function (mainMenu) {\r\n            var menuMobile = $('.site-nav .dropdown'),\r\n                iconDropdown = menuMobile.find('[data-toggle-menu-mb]'),\r\n                menuMobileLabel = $('.sub-menu-mobile .menu-mb-title');\r\n\r\n            if (iconDropdown.length) {\r\n                body.off('click.current').on('click.current', '.site-nav .dropdown', function (e) {\r\n                    e.stopPropagation();\r\n\r\n                    if ($('.header-bottom .header-mb').is(':visible')) {\r\n                        $(this).children('.sub-menu-mobile').addClass('sub-menu-open').css({\r\n                            \"overflow\": \"\"\r\n                        });\r\n                        mainMenu.animate({\r\n                            scrollTop: 0\r\n                        }, 0);\r\n                        if (window.innerWidth < 1200) {\r\n                          mainMenu.css({\r\n                              \"overflow\": \"hidden\"\r\n                          });\r\n                        }\r\n                    }\r\n                });\r\n\r\n                menuMobile.find('.menu__moblie').on('click', function (e) {\r\n                    e.stopPropagation();\r\n                });\r\n\r\n                body.off('click.closeMenu').on('click.closeMenu', '.sub-menu-mobile .menu-mb-title', function (e) {\r\n                    e.preventDefault();\r\n                    e.stopPropagation();\r\n\r\n                    if($(this).parent().hasClass('bg')) {\r\n                        $(this).parent().parent().removeClass('sub-menu-open');\r\n                    }else {\r\n                        $(this).parent().removeClass('sub-menu-open');\r\n                    };\r\n\r\n                    if (!$(this).closest('.menu-lv-2').length) {\r\n                        mainMenu.css({\r\n                            \"overflow\": \"\"\r\n                        });\r\n                    };\r\n                })\r\n            };\r\n        },\r\n\r\n        openEmailModalWindow: function (newsletterWrapper) {\r\n            newsletterWrapper.fadeIn(1000);\r\n        },\r\n\r\n        closeEmailModalWindow: function (newsletterWrapper,expire) {\r\n            newsletterWrapper.fadeOut(1000);\r\n            var inputChecked = newsletterWrapper.find('input[name=\"dismiss\"]').prop('checked');\r\n            if (inputChecked || !newsletterWrapper.find('input[name=\"dismiss\"]').length)\r\n                $.cookie('emailSubcribeModal', 'closed', {\r\n                    expires: expire,\r\n                    path: '/'\r\n                });\r\n        },\r\n\r\n        closePromoModalWindow: function (newsletterWrapper,expire) {\r\n            newsletterWrapper.fadeOut(1000);\r\n            var inputChecked = newsletterWrapper.find('input[name=\"dismiss\"]').prop('checked');\r\n            if (inputChecked || !newsletterWrapper.find('input[name=\"dismiss\"]').length)\r\n                $.cookie('promoModal', 'closed', {\r\n                    expires: expire,\r\n                    path: '/'\r\n                });\r\n        },\r\n\r\n        initPromoPopup: function () {\r\n            if (window.promo_popup) {\r\n\r\n                var promoModalWrapper = $('[data-promo-modal]'),\r\n                    closeWindow = promoModalWrapper.find('.close-window'),\r\n                    delay = promoModalWrapper.data('delay'),\r\n                    pagesDelay = promoModalWrapper.data('pagesDelay'),\r\n                    expire = promoModalWrapper.data('expire'),\r\n                    modalContent = promoModalWrapper.find('.halo-modal-content'),\r\n                    promoCounter = sessionStorage.getItem('promoCounter') || 0 ;\r\n                    lastPageView = sessionStorage.getItem('lastPageView');\r\n\r\n                    // Counter only increment when visiting a different page (avoid increment on refresh page)\r\n                    sessionStorage.setItem('lastPageView', window.location.href);\r\n                    if(window.location.href != lastPageView){\r\n                        sessionStorage.setItem('promoCounter', parseInt(promoCounter) + 1 );\r\n                    }\r\n\r\n                    var promoCounterUpdated = parseInt(sessionStorage.getItem('promoCounter'));\r\n\r\n                    console.log(`${promoCounterUpdated} / ${pagesDelay}`)\r\n\r\n                    var showPromo = (promoCounterUpdated == pagesDelay);\r\n\r\n                if ($.cookie('promoModal') != 'closed' && showPromo) {\r\n                    ella.ellaTimeout = setTimeout(function () {\r\n                        ella.openEmailModalWindow(promoModalWrapper);\r\n                    }, delay);\r\n                };\r\n\r\n                closeWindow.click(function (e) {\r\n                    e.preventDefault();\r\n\r\n                    ella.closePromoModalWindow(promoModalWrapper,expire);\r\n                });\r\n\r\n                promoModalWrapper.on('click', function (e) {\r\n                    if (!modalContent.is(e.target) && !modalContent.has(e.target).length) {\r\n                        ella.closePromoModalWindow(promoModalWrapper,expire);\r\n                    };\r\n                });\r\n\r\n            };\r\n        },\r\n\r\n        initNewsLetterPopup: function () {\r\n            if (window.newsletter_popup) {\r\n                var newsletterWrapper = $('[data-newsletter]'),\r\n                    closeWindow = newsletterWrapper.find('.close-window'),\r\n                    delay = newsletterWrapper.data('delay'),\r\n                    expire = newsletterWrapper.data('expire'),\r\n                    modalContent = newsletterWrapper.find('.halo-modal-content');\r\n\r\n                if ($.cookie('emailSubcribeModal') != 'closed' && window.hidden_newsletter == false) {\r\n                    ella.ellaTimeout = setTimeout(function () {\r\n                        ella.openEmailModalWindow(newsletterWrapper);\r\n                    }, delay);\r\n                };\r\n\r\n                if ($('[data-toolbar-newsletter]').length) {\r\n                    $('[data-modal-newsletter]').on('click', function(){\r\n                        ella.openEmailModalWindow(newsletterWrapper);\r\n                    })\r\n                }\r\n\r\n                closeWindow.click(function (e) {\r\n                    e.preventDefault();\r\n\r\n                    ella.closeEmailModalWindow(newsletterWrapper,expire);\r\n                });\r\n\r\n                newsletterWrapper.on('click', function (e) {\r\n                    if (!modalContent.is(e.target) && !modalContent.has(e.target).length) {\r\n                        ella.closeEmailModalWindow(newsletterWrapper,expire);\r\n                    };\r\n                });\r\n\r\n                $('#mc_embed_signup form').submit(function () {\r\n                    if ($('#mc_embed_signup .email').val() != '') {\r\n                        ella.closeEmailModalWindow(newsletterWrapper,expire);\r\n                    };\r\n                });\r\n            };\r\n        },\r\n\r\n        initSidebarProductSlider: function () {\r\n            var sidebarWidgetProduct = $('[data-sidebar-product]');\r\n\r\n            sidebarWidgetProduct.each(function () {\r\n                var self = $(this),\r\n                    productGrid = self.find('.products-grid');\r\n\r\n                if (productGrid.not('.slick-initialized')) {\r\n                    productGrid.slick({\r\n                        slidesToShow: 1,\r\n                        slidesToScroll: 1,\r\n                        infinite: false,\r\n                        speed: 800,\r\n                        get dots() {\r\n                            if ((window.layout_style == 'layout_style_1170') || (window.layout_style == 'layout_style_flower') || (window.layout_style == 'layout_style_suppermarket')) {\r\n                                return this.dots = true;\r\n                            } else {\r\n                                return this.dots = false;\r\n                            }\r\n                        },\r\n                        get arrows() {\r\n                            if (window.layout_style == 'layout_style_suppermarket') {\r\n                                return this.arrows = false\r\n\r\n                            } else {\r\n                                return this.arrows = true\r\n                            }\r\n                        },\r\n                        get nextArrow() {\r\n                            if ((window.layout_style == 'layout_style_1170') || (window.layout_style == 'layout_style_flower')) {\r\n                                return this.nextArrow = '<button type=\"button\" class=\"slick-next\"><svg viewBox=\"0 0 50 50\"><path d=\"M 11.957031 13.988281 C 11.699219 14.003906 11.457031 14.117188 11.28125 14.308594 L 1.015625 25 L 11.28125 35.691406 C 11.527344 35.953125 11.894531 36.0625 12.242188 35.976563 C 12.589844 35.890625 12.867188 35.625 12.964844 35.28125 C 13.066406 34.933594 12.972656 34.5625 12.71875 34.308594 L 4.746094 26 L 48 26 C 48.359375 26.003906 48.695313 25.816406 48.878906 25.503906 C 49.058594 25.191406 49.058594 24.808594 48.878906 24.496094 C 48.695313 24.183594 48.359375 23.996094 48 24 L 4.746094 24 L 12.71875 15.691406 C 13.011719 15.398438 13.09375 14.957031 12.921875 14.582031 C 12.753906 14.203125 12.371094 13.96875 11.957031 13.988281 Z\"></path></svg></button>';\r\n                            } else if ((window.layout_style == 'layout_style_fullwidth') || (window.layout_style == 'layout_style_suppermarket')){\r\n                                return this.nextArrow = '<button type=\"button\" class=\"slick-next\"><svg viewBox=\"0 0 478.448 478.448\" class=\"icon icon-chevron-right\" id=\"icon-chevron-right\"><g><g><polygon points=\"131.659,0 100.494,32.035 313.804,239.232 100.494,446.373 131.65,478.448 377.954,239.232\"></polygon></g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g></svg></button>';\r\n                            }\r\n                            else {\r\n                                return this.nextArrow = '<button type=\"button\" class=\"slick-next\"><i class=\"fa fa-angle-right\"></i></button>';\r\n                            }\r\n                        },\r\n                        get prevArrow() {\r\n                            if ((window.layout_style == 'layout_style_1170') || (window.layout_style == 'layout_style_flower')) {\r\n                                return this.prevArrow = '<button type=\"button\" class=\"slick-prev\"><svg viewBox=\"0 0 50 50\"><path d=\"M 11.957031 13.988281 C 11.699219 14.003906 11.457031 14.117188 11.28125 14.308594 L 1.015625 25 L 11.28125 35.691406 C 11.527344 35.953125 11.894531 36.0625 12.242188 35.976563 C 12.589844 35.890625 12.867188 35.625 12.964844 35.28125 C 13.066406 34.933594 12.972656 34.5625 12.71875 34.308594 L 4.746094 26 L 48 26 C 48.359375 26.003906 48.695313 25.816406 48.878906 25.503906 C 49.058594 25.191406 49.058594 24.808594 48.878906 24.496094 C 48.695313 24.183594 48.359375 23.996094 48 24 L 4.746094 24 L 12.71875 15.691406 C 13.011719 15.398438 13.09375 14.957031 12.921875 14.582031 C 12.753906 14.203125 12.371094 13.96875 11.957031 13.988281 Z\"></path></svg></button>';\r\n                            } else if ((window.layout_style == 'layout_style_fullwidth') || (window.layout_style == 'layout_style_suppermarket')){\r\n                                return this.prevArrow = '<button type=\"button\" class=\"slick-prev\"><svg viewBox=\"0 0 370.814 370.814\" class=\"icon icon-chevron-left\" id=\"icon-chevron-left\"><g><g><polygon points=\"292.92,24.848 268.781,0 77.895,185.401 268.781,370.814 292.92,345.961 127.638,185.401\"></polygon></g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g></svg></button>';\r\n                            }\r\n                            else {\r\n                                return this.prevArrow = '<button type=\"button\" class=\"slick-prev\"><i class=\"fa fa-angle-left\"></i></button>';\r\n                            }\r\n                        },\r\n                    });\r\n                }\r\n            });\r\n        },\r\n\r\n        initOpenSidebar: function () {\r\n            var sidebarLabelSlt = '.sidebar-label',\r\n                sidebarLabelElm = $(sidebarLabelSlt);\r\n\r\n            if (sidebarLabelElm.length) {\r\n                body.off('click.openSidebar').on('click.openSidebar', sidebarLabelSlt, function () {\r\n                    html.addClass('sidebar-open');\r\n                })\r\n            }\r\n        },\r\n\r\n        closeSidebar: function () {\r\n            ella.closeTranslate('.sidebar .close-sidebar', 'sidebar-open');\r\n        },\r\n\r\n        initSidebar: function () {\r\n            this.initSidebarProductSlider();\r\n            this.initOpenSidebar();\r\n            this.closeSidebar();\r\n            this.initDropdownSubCategoriesAtSidebar();\r\n            this.initToggleWidgetTitleSidebarFilter();\r\n        },\r\n\r\n        initDropdownSubCategoriesAtSidebar: function () {\r\n            var iconDropdownSlt = '.sidebar-links li.dropdown';\r\n            var linkDropdownSlt = '.sidebar-links li.dropdown a';\r\n\r\n            body.off('click.toggleSubCategories').on('click.toggleSubCategories', iconDropdownSlt, function (e) {\r\n                e.stopPropagation();\r\n\r\n                var self = $(this),\r\n                    dropdown = self.find('> .dropdown-cat');\r\n\r\n                if (self.hasClass('open')) {\r\n                    self.removeClass('open');\r\n                    dropdown.slideUp();\r\n                } else {\r\n                    self.addClass('open');\r\n                    dropdown.slideDown();\r\n                };\r\n            })\r\n\r\n            body.off('click.linktoCollection').on('click.linktoCollection', linkDropdownSlt, function (e) {\r\n                e.stopPropagation();\r\n            })\r\n        },\r\n\r\n        historyAdapter: function () {\r\n            var collTpl = $('[data-section-type=\"collection-template\"]');\r\n\r\n            if (collTpl.length) {\r\n                History.Adapter.bind(window, 'statechange', function () {\r\n                    var State = History.getState();\r\n\r\n                    if (!ella.isSidebarAjaxClick) {\r\n                        ella.queryParams();\r\n\r\n                        var newurl = ella.ajaxCreateUrl();\r\n\r\n                        ella.doAjaxToolbarGetContent(newurl);\r\n                        ella.doAjaxSidebarGetContent(newurl);\r\n                    }\r\n\r\n                    ella.isSidebarAjaxClick = false;\r\n                });\r\n            };\r\n        },\r\n\r\n        queryParams: function () {\r\n            Shopify.queryParams = {};\r\n\r\n            if (location.search.length) {\r\n                for (var aKeyValue, i = 0, aCouples = location.search.substr(1).split('&'); i < aCouples.length; i++) {\r\n                    aKeyValue = aCouples[i].split('=');\r\n\r\n                    if (aKeyValue.length > 1) {\r\n                        Shopify.queryParams[decodeURIComponent(aKeyValue[0])] = decodeURIComponent(aKeyValue[1]);\r\n                    }\r\n                }\r\n            };\r\n        },\r\n\r\n        filterAjaxClick: function (baseLink) {\r\n            delete Shopify.queryParams.page;\r\n\r\n            var newurl = ella.ajaxCreateUrl(baseLink);\r\n\r\n            ella.isSidebarAjaxClick = true;\r\n\r\n            History.pushState({\r\n                param: Shopify.queryParams\r\n            }, newurl, newurl);\r\n        },\r\n\r\n        ajaxCreateUrl: function (baseLink) {\r\n            var newQuery = $.param(Shopify.queryParams).replace(/%2B/g, '+');\r\n\r\n            if (baseLink) {\r\n                if (newQuery != \"\")\r\n                    return baseLink + \"?\" + newQuery;\r\n                else\r\n                    return baseLink;\r\n            }\r\n            return location.pathname + \"?\" + newQuery;\r\n        },\r\n\r\n        filterToolbar: function () {\r\n            this.queryParams();\r\n            this.setTextForSortbyFilter();\r\n            this.setTextForLimitedFilter();\r\n            this.ajaxFilterSortby();\r\n            this.ajaxFilterLimit();\r\n            this.addEventViewModeLayout();\r\n        },\r\n\r\n        setTextForSortbyFilter: function () {\r\n            var filterSortby = $('[data-sortby]'),\r\n                labelTab = filterSortby.find('.label-tab'),\r\n                labelText = labelTab.find('.label-text'),\r\n                sortbyLinkActive = labelTab.next().find('li.active'),\r\n                text = sortbyLinkActive.text();\r\n\r\n            labelText.text(text);\r\n\r\n            if (Shopify.queryParams.sort_by) {\r\n                var sortBy = Shopify.queryParams.sort_by,\r\n                    sortByLinkActive = filterSortby.find('span[data-href=\"' + sortBy + '\"]'),\r\n                    sortByText = sortByLinkActive.text();\r\n\r\n                labelText.text(sortByText);\r\n                labelTab.next().find('li').removeClass('active');\r\n                sortByLinkActive.parent().addClass('active');\r\n            };\r\n        },\r\n\r\n        setTextForLimitedFilter: function () {\r\n            var filterLimited = $('[data-limited-view]'),\r\n                labelTab = filterLimited.find('.label-tab'),\r\n                labelText = labelTab.find('.label-text'),\r\n                limitedLinkActive = labelTab.next().find('li.active'),\r\n                text = limitedLinkActive.text();\r\n\r\n            labelText.text(text);\r\n\r\n            if (filterLimited.length) {\r\n                var limited = filterLimited.find('li.active span').data('value'),\r\n                    limitedActive = filterLimited.find('span[data-value=\"' + limited + '\"]'),\r\n                    limitedText = limitedActive.text();\r\n\r\n                labelText.text(limitedText);\r\n                labelTab.next().find('li').removeClass('active');\r\n                limitedActive.parent().addClass('active');\r\n            };\r\n        },\r\n\r\n        ajaxFilterSortby: function () {\r\n            var sortbyFilterSlt = '[data-sortby] li span',\r\n                sortbyFilter = $(sortbyFilterSlt);\r\n\r\n            body.off('click.sortBy', sortbyFilterSlt).on('click.sortBy', sortbyFilterSlt, function (e) {\r\n                e.preventDefault();\r\n                e.stopPropagation();\r\n\r\n                var self = $(this),\r\n                    parent = self.parent();\r\n\r\n                if (!parent.hasClass('active')) {\r\n                    Shopify.queryParams.sort_by = $(this).attr('data-href');\r\n\r\n                    ella.filterAjaxClick();\r\n\r\n                    var newurl = ella.ajaxCreateUrl();\r\n\r\n                    ella.doAjaxToolbarGetContent(newurl);\r\n                };\r\n\r\n                sortbyFilter.closest('.dropdown-menu').prev().trigger('click');\r\n            });\r\n        },\r\n\r\n        ajaxFilterLimit: function () {\r\n            var limitFilterSlt = '[data-limited-view] li span',\r\n                limitFilter = $(limitFilterSlt);\r\n\r\n            body.off('click.sortBy', limitFilterSlt).on('click.sortBy', limitFilterSlt, function (e) {\r\n                e.preventDefault();\r\n                e.stopPropagation();\r\n\r\n                var self = $(this),\r\n                    parent = self.parent();\r\n\r\n                if (!parent.hasClass('active')) {\r\n                    var dataValue = self.data('value'),\r\n                        value = \"\" + dataValue + \"\";\r\n\r\n                    $('[data-limited-view] .label-tab .label-text').text(value);\r\n\r\n                    ella.doAjaxLimitGetContent(value);\r\n                };\r\n\r\n                limitFilter.closest('.dropdown-menu').prev().trigger('click');\r\n            });\r\n        },\r\n\r\n        doAjaxLimitGetContent: function (value) {\r\n            if (ella.isAjaxLoading) return;\r\n\r\n            $.ajax({\r\n                type: \"Post\",\r\n                url: '/cart.js',\r\n                data: {\r\n                    \"attributes[pagination]\": value\r\n                },\r\n\r\n                success: function (data) {\r\n                    window.location.reload();\r\n                },\r\n\r\n                error: function (xhr, text) {\r\n                    $('.ajax-error-message').text($.parseJSON(xhr.responseText).description);\r\n                    ella.showModal('.ajax-error-modal');\r\n                },\r\n                dataType: 'json'\r\n            });\r\n        },\r\n\r\n        doAjaxToolbarGetContent: function (newurl) {\r\n            if (ella.isAjaxLoading) return;\r\n\r\n            $.ajax({\r\n                type: \"get\",\r\n                url: newurl,\r\n\r\n                beforeSend: function () {\r\n                    ella.showLoading();\r\n                },\r\n\r\n                success: function (data) {\r\n                    ella.ajaxMapData(data);\r\n                    ella.initColorSwatchGrid();\r\n                    ella.setTextForSortbyFilter();\r\n\r\n                    ella.initSidebarProductSlider();\r\n                    ella.initCountdownNormal();\r\n                },\r\n\r\n                error: function (xhr, text) {\r\n                    $('.ajax-error-message').text($.parseJSON(xhr.responseText).description);\r\n                    ella.showModal('.ajax-error-modal');\r\n                },\r\n\r\n                complete: function () {\r\n                    ella.hideLoading();\r\n                }\r\n            });\r\n        },\r\n\r\n        filterSidebar: function () {\r\n            this.queryParams();\r\n            this.ajaxFilterTags();\r\n            this.ajaxFilterClearTags();\r\n            this.ajaxFilterClearAll();\r\n        },\r\n\r\n        ajaxFilterTags: function () {\r\n            body.off('click.filterTags').on('click.filterTags', '.sidebar-tags .list-tags a, .sidebar-tags .list-tags label, .refined .selected-tag', function (e) {\r\n                e.preventDefault();\r\n                e.stopPropagation();\r\n\r\n                var newTags = [];\r\n\r\n                if (Shopify.queryParams.constraint) {\r\n                    newTags = Shopify.queryParams.constraint.split('+');\r\n                };\r\n\r\n                //one selection or multi selection\r\n                if (!window.enable_sidebar_multiple_choice && !$(this).prev().is(':checked')) {\r\n                    //remove other selection first\r\n                    var otherTag = $(this).closest('.sidebar-tags, .refined-widgets').find('input:checked');\r\n\r\n                    if (otherTag.length) {\r\n                        var tagName = otherTag.val();\r\n\r\n                        if (tagName) {\r\n                            var tagPos = newTags.indexOf(tagName);\r\n\r\n                            if (tagPos >= 0) {\r\n                                //remove tag\r\n                                newTags.splice(tagPos, 1);\r\n                            }\r\n                        }\r\n                    };\r\n                };\r\n\r\n                var tagName = $(this).prev().val();\r\n\r\n                if (tagName) {\r\n                    var tagPos = newTags.indexOf(tagName);\r\n\r\n                    if (tagPos >= 0) {\r\n                        newTags.splice(tagPos, 1);\r\n                    } else {\r\n                        newTags.push(tagName);\r\n                    };\r\n                };\r\n\r\n                if (newTags.length) {\r\n                    Shopify.queryParams.constraint = newTags.join('+');\r\n                } else {\r\n                    delete Shopify.queryParams.constraint;\r\n                };\r\n\r\n                ella.filterAjaxClick();\r\n\r\n                var newurl = ella.ajaxCreateUrl();\r\n\r\n                ella.doAjaxSidebarGetContent(newurl);\r\n            });\r\n        },\r\n\r\n        ajaxFilterClearTags: function () {\r\n            var sidebarTag = $('.sidebar-tags');\r\n\r\n            sidebarTag.each(function () {\r\n                var sidebarTag = $(this);\r\n\r\n                if (sidebarTag.find('input:checked').length) {\r\n                    //has active tag\r\n                    sidebarTag.find('.clear').show().click(function (e) {\r\n                        e.preventDefault();\r\n                        e.stopPropagation();\r\n\r\n                        var currentTags = [];\r\n\r\n                        if (Shopify.queryParams.constraint) {\r\n                            currentTags = Shopify.queryParams.constraint.split('+');\r\n                        };\r\n\r\n                        sidebarTag.find(\"input:checked\").each(function () {\r\n                            var selectedTag = $(this);\r\n                            var tagName = selectedTag.val();\r\n\r\n                            if (tagName) {\r\n                                var tagPos = currentTags.indexOf(tagName);\r\n                                if (tagPos >= 0) {\r\n                                    //remove tag\r\n                                    currentTags.splice(tagPos, 1);\r\n                                };\r\n                            };\r\n                        });\r\n\r\n                        if (currentTags.length) {\r\n                            Shopify.queryParams.constraint = currentTags.join('+');\r\n                        } else {\r\n                            delete Shopify.queryParams.constraint;\r\n                        };\r\n\r\n                        ella.filterAjaxClick();\r\n\r\n                        var newurl = ella.ajaxCreateUrl();\r\n\r\n                        ella.doAjaxSidebarGetContent(newurl);\r\n                    });\r\n                }\r\n            });\r\n        },\r\n\r\n        ajaxFilterClearAll: function () {\r\n            var clearAllSlt = '.refined-widgets a.clear-all';\r\n            var clearAllElm = $(clearAllSlt);\r\n\r\n            body.off('click.clearAllTags', clearAllSlt).on('click.clearAllTags', clearAllSlt, function (e) {\r\n                e.preventDefault();\r\n                e.stopPropagation();\r\n\r\n                delete Shopify.queryParams.constraint;\r\n\r\n                ella.filterAjaxClick();\r\n\r\n                var newurl = ella.ajaxCreateUrl();\r\n\r\n                ella.doAjaxSidebarGetContent(newurl);\r\n            });\r\n        },\r\n\r\n        doAjaxSidebarGetContent: function (newurl) {\r\n            if (ella.isAjaxLoading) return;\r\n\r\n            $.ajax({\r\n                type: \"get\",\r\n                url: newurl,\r\n\r\n                beforeSend: function () {\r\n                    ella.showLoading();\r\n                },\r\n\r\n                success: function (data) {\r\n                    ella.ajaxMapData(data);\r\n                    ella.initColorSwatchGrid();\r\n                    ella.ajaxFilterClearTags();\r\n\r\n                    ella.initSidebarProductSlider();\r\n                    ella.initCountdownNormal();\r\n                    $('[data-toggle=\"tooltip\"]').tooltip();\r\n                },\r\n\r\n                error: function (xhr, text) {\r\n                    $('.ajax-error-message').text($.parseJSON(xhr.responseText).description);\r\n                    ella.showModal('.ajax-error-modal');\r\n                },\r\n\r\n                complete: function () {\r\n                    ella.hideLoading();\r\n                }\r\n            });\r\n        },\r\n\r\n        ajaxMapData: function (data) {\r\n            var curCollTemplate = $('.collection-template'),\r\n                curBreadcrumb = curCollTemplate.find('.breadcrumb'),\r\n                curBreadcrumb2 = curCollTemplate.find('.column-left .breadcrumb'),\r\n                curSidebar = curCollTemplate.find('.sidebar'),\r\n                curCollHeader = curCollTemplate.find('.collection-header'),\r\n                curProColl = curCollTemplate.find('.product-collection'),\r\n                curPadding = curCollTemplate.find('.padding'),\r\n                curToolbar = curCollTemplate.find('.append--toolbar'),\r\n\r\n                newCollTemplate = $(data).find('.collection-template'),\r\n                newBreadcrumb = newCollTemplate.find('.breadcrumb'),\r\n                newBreadcrumb2 = newCollTemplate.find('.column-left .breadcrumb'),\r\n                newSidebar = newCollTemplate.find('.sidebar'),\r\n                newCollHeader = newCollTemplate.find('.collection-header'),\r\n                newProColl = newCollTemplate.find('.product-collection'),\r\n                newPadding = newCollTemplate.find('.padding');\r\n\r\n            if(window.category_style == 'supermarket') {\r\n                curBreadcrumb2.replaceWith(newBreadcrumb2);\r\n            } else {\r\n                curBreadcrumb.replaceWith(newBreadcrumb);\r\n            }\r\n\r\n            curSidebar.replaceWith(newSidebar);\r\n            curCollHeader.replaceWith(newCollHeader);\r\n            curProColl.replaceWith(newProColl);\r\n\r\n            if (curPadding.length > 0) {\r\n                curPadding.replaceWith(newPadding);\r\n            } else {\r\n                if(curCollTemplate.find('.col-main').length) {\r\n                    curCollTemplate.find('.col-main').append(newPadding);\r\n                } else {\r\n                    curCollTemplate.find('.col-no-sidebar').append(newPadding);\r\n                }\r\n\r\n            };\r\n\r\n            if (curToolbar.length > 0 && curToolbar.html() != '') {\r\n                $('.sidebar .append--toolbar').replaceWith(curToolbar);\r\n            }\r\n\r\n            ella.translateBlock('.collection-template');\r\n\r\n            ella.hide_filter();\r\n\r\n            ella.initWishListIcons();\r\n\r\n            ella.subCollectionSlider();\r\n\r\n            if ($('[data-view-as]').length) {\r\n                ella.viewModeLayout();\r\n            };\r\n\r\n            if (ella.checkNeedToConvertCurrency()) {\r\n                Currency.convertAll(window.shop_currency, $('#currencies .active').attr('data-currency'), 'span.money', 'money_format');\r\n            };\r\n\r\n            if ($('.shopify-product-reviews-badge').length && $('.spr-badge').length) {\r\n                return window.SPR.registerCallbacks(), window.SPR.initRatingHandler(), window.SPR.initDomEls(), window.SPR.loadProducts(), window.SPR.loadBadges();\r\n            };\r\n        },\r\n\r\n        initToggleWidgetTitleSidebarFilter: function () {\r\n            var widgetTitleSlt = '[data-has-collapse] .widget-title';\r\n            var sidebarLabelDesktop = '.sidebar-label-desktop';\r\n            var viewMore = '[data-list-filter]';\r\n\r\n            body.off('click.toggleWidgetContent').on('click.toggleWidgetContent', widgetTitleSlt, function () {\r\n                $(this).toggleClass('open');\r\n                $(this).next().slideToggle();\r\n            });\r\n\r\n            var widgetTitleSltCollNoSidebar = '[data-has-collapse-no-sidebar] .widget-title';\r\n            var wrapper =  $('.toolbar');\r\n\r\n            if(win.innerWidth() < 1200) {\r\n                body.off('click.toggleWidgetContent2').on('click.toggleWidgetContent2', widgetTitleSltCollNoSidebar, function () {\r\n                    $(this).toggleClass('open');\r\n                    $(this).next().slideToggle();\r\n                });\r\n                if (win.innerWidth() < 992) {\r\n                    $('.filters-toolbar__sortby').insertAfter('.column-left .sidebar-label');\r\n                } else {\r\n                    $('.filters-toolbar__sortby').appendTo('.toolbar .column-right');\r\n                }\r\n                var h_wrapper = wrapper.outerHeight() + 30;\r\n                var top = wrapper.offset().top;\r\n                $(window).scroll(function () {\r\n                    var h = $('.sticky-wrapper.is-sticky').outerHeight();\r\n                    if ($(this).scrollTop() > top) {\r\n                        $('[data-section-type=\"collection-template\"]').css('padding-top', h_wrapper);\r\n                        wrapper.addClass(\"toolbar-fix\");\r\n                        wrapper.css('top', h);\r\n                    }\r\n                    else {\r\n                        $('[data-section-type=\"collection-template\"]').css('padding-top', 0);\r\n                        wrapper.removeClass(\"toolbar-fix\");\r\n                        wrapper.css('top', 0);\r\n                    }\r\n                });\r\n            } else {\r\n                $('.filters-toolbar__sortby').appendTo('.toolbar .column-right');\r\n                $('[data-section-type=\"collection-template\"]').css('padding-top', 0);\r\n                wrapper.removeClass(\"toolbar-fix\");\r\n                wrapper.css('top', 0);\r\n                if ($('.collection-template-skin-1').length) {\r\n                    $('.toolbar').appendTo('.appendTo-toolbar .container');\r\n                    body.off('click.toggleSidebar').on('click.toggleSidebar', sidebarLabelDesktop, function () {\r\n                        $(this).parents('.halo-collection-content').toggleClass('remove-sidebar');\r\n                    });\r\n                }\r\n                if ($('.toolbar').length && !$('.toolbar').hasClass('different-toolbar')) {\r\n                    $('.toolbar').appendTo('.append--toolbar');\r\n                }\r\n            };\r\n\r\n            win.resize(function(){\r\n                if(win.innerWidth() < 1200) {\r\n                    body.off('click.toggleWidgetContent2').on('click.toggleWidgetContent2', widgetTitleSltCollNoSidebar, function () {\r\n                        $(this).toggleClass('open');\r\n                        $(this).next().slideToggle();\r\n                    });\r\n                    if (win.innerWidth() < 992) {\r\n                        $('.filters-toolbar__sortby').insertAfter('.column-left .sidebar-label');\r\n                    } else {\r\n                        $('.filters-toolbar__sortby').appendTo('.toolbar .column-right');\r\n                    }\r\n\r\n                    var h_wrapper = wrapper.outerHeight() + 30;\r\n                    var top = wrapper.offset().top;\r\n                    $(window).scroll(function () {\r\n                        var h = $('.sticky-wrapper.is-sticky').outerHeight();\r\n                        if ($(this).scrollTop() > top) {\r\n                            $('[data-section-type=\"collection-template\"]').css('padding-top', h_wrapper);\r\n                            wrapper.addClass(\"toolbar-fix\");\r\n                            wrapper.css('top', h);\r\n                        }\r\n                        else {\r\n                            $('[data-section-type=\"collection-template\"]').css('padding-top', 0);\r\n                            wrapper.removeClass(\"toolbar-fix\");\r\n                            wrapper.css('top', 0);\r\n                        }\r\n                    });\r\n                } else {\r\n                    $('.filters-toolbar__sortby').appendTo('.toolbar .column-right');\r\n                    $('[data-section-type=\"collection-template\"]').css('padding-top', 0);\r\n                    wrapper.removeClass(\"toolbar-fix\");\r\n                    wrapper.css('top', 0);\r\n                    $(window).scroll(function () {\r\n                        wrapper.removeClass(\"toolbar-fix\");\r\n                    });\r\n                    if ($('.collection-template-skin-1').length) {\r\n                        $('.toolbar').appendTo('.appendTo-toolbar .container');\r\n                        body.off('click.toggleSidebar').on('click.toggleSidebar', sidebarLabelDesktop, function () {\r\n                            $(this).parents('.halo-collection-content').toggleClass('remove-sidebar');\r\n                        });\r\n                    }\r\n                    if ($('.toolbar').length && !$('.toolbar').hasClass('different-toolbar')) {\r\n                        $('.toolbar').appendTo('.append--toolbar');\r\n                    }\r\n                };\r\n            })\r\n\r\n            body.off('click.viewMoreFilter').on('click.viewMoreFilter', viewMore, function () {\r\n                var last = $(this).parents('.list-tags').find('.last');\r\n                if ($(this).parents('.list-tags').hasClass('show-all')) {\r\n                    last.hide();\r\n                    $(this).text(window.inventory_text.view_more);\r\n                } else {\r\n                    last.show();\r\n                    $(this).text(window.inventory_text.view_less);\r\n                }\r\n                $(this).parents('.list-tags').toggleClass('show-all');\r\n            });\r\n\r\n        },\r\n\r\n        initInfiniteScrolling: function () {\r\n            var infiniteScrolling = $('.infinite-scrolling');\r\n            var infiniteScrollingLinkSlt = '.infinite-scrolling a';\r\n\r\n            if (infiniteScrolling.length) {\r\n\r\n                body.off('click.initInfiniteScrolling', infiniteScrollingLinkSlt).on('click.initInfiniteScrolling', infiniteScrollingLinkSlt, function (e) {\r\n                    e.preventDefault();\r\n                    e.stopPropagation();\r\n\r\n                    if (!$(this).hasClass('disabled')) {\r\n                        var url = $(this).data('href');\r\n\r\n                        ella.doAjaxInfiniteScrollingGetContent(url);\r\n\r\n                    };\r\n\r\n\r\n                });\r\n\r\n                if (window.infinity_scroll_feature) {\r\n                    $(window).scroll(function () {\r\n                        if (ella.isAjaxLoading) return;\r\n\r\n                        var collectionTplElm = $('[data-section-type=\"collection-template\"]');\r\n\r\n                        if (!collectionTplElm.length) {\r\n                            collectionTplElm = $('[data-search-page]');\r\n                        };\r\n\r\n                        var collectionTop = collectionTplElm.offset().top;\r\n                        var collectionHeight = collectionTplElm.outerHeight();\r\n                        var posTop = collectionTop + collectionHeight - $(window).height();\r\n\r\n                        if ($(this).scrollTop() > posTop && $(this).scrollTop() < (posTop + 200)) {\r\n                            var button = $(infiniteScrollingLinkSlt);\r\n\r\n                            if (button.length && !button.hasClass('disabled')) {\r\n                                var url = button.data('href');\r\n\r\n                                ella.doAjaxInfiniteScrollingGetContent(url);\r\n                            };\r\n                        };\r\n                    });\r\n                };\r\n            }\r\n        },\r\n\r\n        doAjaxInfiniteScrollingGetContent: function (url) {\r\n            if (ella.isAjaxLoading) return;\r\n\r\n            $.ajax({\r\n                type: \"get\",\r\n                url: url,\r\n\r\n                beforeSend: function () {\r\n                    ella.showLoading();\r\n                },\r\n\r\n                success: function (data) {\r\n                    ella.ajaxInfiniteScrollingMapData(data);\r\n                    ella.initColorSwatchGrid();\r\n                    if ($('[data-view-as]').length) {\r\n                        ella.viewModeLayout();\r\n                    };\r\n                    ella.initCountdownNormal();\r\n                    ella.stickySidebar();\r\n                    $('[data-toggle=\"tooltip\"]').tooltip();\r\n                },\r\n\r\n                error: function (xhr, text) {\r\n                    $('.ajax-error-message').text($.parseJSON(xhr.responseText).description);\r\n                    ella.showModal('.ajax-error-modal');\r\n                },\r\n\r\n                complete: function () {\r\n                    ella.hideLoading();\r\n                    var number_count = 0;\r\n                    var number_label_new = $('.product-collection .grid-item .product-label').data('label-new-number');\r\n                     $('.product-collection .grid-item').each(function(index){\r\n                        if($(this).find('.new-label').length){\r\n                            number_count ++;\r\n                        }\r\n                        if(number_count > number_label_new){\r\n                            $(this).find('.new-label').hide();\r\n                            $(this).find('.new-label+br').hide();\r\n                        }\r\n                    });\r\n                }\r\n            });\r\n        },\r\n\r\n        ajaxInfiniteScrollingMapData: function (data) {\r\n            var collectionTemplate = $('.collection-template'),\r\n                currentProductColl = collectionTemplate.find('.product-collection'),\r\n                currentProductCount = collectionTemplate.find('.padding'),\r\n                newCollectionTemplate = $(data).find('.collection-template'),\r\n                newProductColl = newCollectionTemplate.find('.product-collection'),\r\n                newProductCount = newCollectionTemplate.find('.padding'),\r\n                newProductItem = newProductColl.children('.grid-item').not('.banner-img');\r\n\r\n            var showMoreButton = $('.infinite-scrolling a');\r\n            currentProductCount.replaceWith(newProductCount);\r\n\r\n            if (newProductColl.length) {\r\n                currentProductColl.append(newProductItem);\r\n\r\n                if ($('.collection-template .product-collection[data-layout]').length) {\r\n                    ella.ellaTimeout = setTimeout(function () {\r\n                        currentProductColl.isotope('appended', newProductItem).isotope('layout');\r\n                    }, 700);\r\n                }\r\n\r\n                ella.translateBlock('.product-collection');\r\n\r\n                if (ella.checkNeedToConvertCurrency()) {\r\n                    Currency.convertAll(window.shop_currency, $('#currencies .active').attr('data-currency'), 'span.money', 'money_format');\r\n                };\r\n\r\n                if ($('.shopify-product-reviews-badge').length && $('.spr-badge').length) {\r\n                    return window.SPR.registerCallbacks(), window.SPR.initRatingHandler(), window.SPR.initDomEls(), window.SPR.loadProducts(), window.SPR.loadBadges();\r\n                };\r\n            };\r\n\r\n        },\r\n\r\n        addEventViewModeLayout: function () {\r\n            if (!$('#shopify-section-collection-template-supermarket').length) {\r\n                ella.setActiveViewModeMediaQuery();\r\n            }\r\n\r\n            body.on('click', '.view-mode .icon-mode', function (e) {\r\n                e.preventDefault();\r\n\r\n                var self = $(this),\r\n                    col = self.data('col'),\r\n                    parents = self.closest('[data-view-as]');\r\n\r\n                if (!self.hasClass('active')) {\r\n                    parents.find('.icon-mode').removeClass('active');\r\n                    self.addClass('active');\r\n\r\n                    ella.viewModeLayout();\r\n\r\n                    if (window.innerWidth > 767) {\r\n                        $('.product-collection').find('img').removeClass('lazyautosizes ls-is-cached lazyloaded').addClass('lazyload');\r\n                    }\r\n                };\r\n\r\n            });\r\n        },\r\n\r\n        viewModeLayout: function () {\r\n            var viewMode = $('[data-view-as]'),\r\n                viewModeActive = viewMode.find('.icon-mode.active'),\r\n                col = viewModeActive.data('col'),\r\n                products = $('.collection-template .product-collection'),\r\n                gridItem = products.find('.grid-item'),\r\n                strClass = 'col-12 col-6 col-md-4 col-lg-3 col5',\r\n                gridClass = 'grid-2 grid-3 grid-4 grid-5 products-grid products-list';\r\n\r\n            switch (col) {\r\n                case 1:\r\n                    if(gridItem.hasClass('grid-item-mansory')) {\r\n                        products.removeClass(gridClass).addClass('products-list');\r\n                    } else {\r\n                        products.removeClass('products-grid').addClass('products-list');\r\n                    }\r\n\r\n                    gridItem.removeClass(strClass).addClass('col-12');\r\n                    break;\r\n\r\n                default:\r\n                    switch (col) {\r\n                        case 2:\r\n                            if(gridItem.hasClass('grid-item-mansory')) {\r\n                                products.removeClass(gridClass).addClass('products-grid');\r\n                            } else {\r\n                                products.removeClass('products-list').addClass('products-grid');\r\n                            }\r\n                            gridItem.removeClass(strClass).addClass('col-6');\r\n                            break;\r\n\r\n                        case 3:\r\n                            if(gridItem.hasClass('grid-item-mansory')) {\r\n                                products.removeClass(gridClass).addClass('products-grid');\r\n                            } else {\r\n                                products.removeClass('products-list').addClass('products-grid');\r\n                            }\r\n                            gridItem.removeClass(strClass).addClass('col-6 col-md-4');\r\n                            break;\r\n\r\n                        case 4:\r\n                            if(gridItem.hasClass('grid-item-mansory')) {\r\n                                products.removeClass(gridClass).addClass('products-grid');\r\n                            } else {\r\n                                products.removeClass('products-list').addClass('products-grid');\r\n                            }\r\n                            gridItem.removeClass(strClass).addClass('col-6 col-md-4 col-lg-3');\r\n                            break;\r\n\r\n                        case 5:\r\n                            if(gridItem.hasClass('grid-item-mansory')) {\r\n                                products.removeClass(gridClass).addClass('products-grid');\r\n                            } else {\r\n                                products.removeClass('products-list').addClass('products-grid');\r\n                            }\r\n                            gridItem.removeClass(strClass).addClass('col-6 col-md-4 col-lg-3 col5');\r\n                            break;\r\n                    }\r\n            };\r\n        },\r\n\r\n        setActiveViewModeMediaQuery: function () {\r\n            var viewMode = $('[data-view-as]'),\r\n                viewModeActive = viewMode.find('.icon-mode.active'),\r\n                col = viewModeActive.data('col'),\r\n                windowWidth = window.innerWidth;\r\n\r\n            if (windowWidth < 768) {\r\n                if (col === 3 || col == 4 || col == 5) {\r\n                    viewModeActive.removeClass('active');\r\n                    $('[data-col=\"2\"]').addClass('active');\r\n                }\r\n            } else if (windowWidth < 992 && windowWidth >= 768) {\r\n                if (col == 4 || col == 5) {\r\n                    viewModeActive.removeClass('active');\r\n                    $('[data-col=\"3\"]').addClass('active');\r\n                }\r\n            } else if (windowWidth < 1200 && windowWidth >= 992) {\r\n                if (col == 5) {\r\n                    viewModeActive.removeClass('active');\r\n                    $('[data-col=\"4\"]').addClass('active');\r\n                }\r\n            }\r\n\r\n            if (viewMode.length) {\r\n                ella.viewModeLayout();\r\n            }\r\n        },\r\n\r\n        initPaginationPage: function () {\r\n            var paginationSlt = '.pagination-page a';\r\n\r\n            body.off('click', paginationSlt).on('click', paginationSlt, function (e) {\r\n                if(Shopify.queryParams){\r\n                    e.preventDefault();\r\n\r\n                var page = $(this).attr('href').match(/page=\\d+/g);\r\n\r\n                if (page) {\r\n                    Shopify.queryParams.page = parseInt(page[0].match(/\\d+/g));\r\n\r\n                    if (Shopify.queryParams.page) {\r\n                        var newurl = ella.ajaxCreateUrl();\r\n\r\n                        ella.isSidebarAjaxClick = true;\r\n\r\n                        History.pushState({\r\n                            param: Shopify.queryParams\r\n                        }, newurl, newurl);\r\n\r\n                        ella.doAjaxToolbarGetContent(newurl);\r\n\r\n                        var elm = $('[data-section-type=\"collection-template\"]');\r\n\r\n                        if (!elm.length) {\r\n                            elm = $('[data-search-page]');\r\n                        }\r\n\r\n                        var top = elm.offset().top;\r\n\r\n                        $('body,html').animate({\r\n                            scrollTop: top\r\n                        }, 600);\r\n                    };\r\n                };\r\n                }\r\n\r\n\r\n            });\r\n        },\r\n\r\n        changeSwatchEditCart: function() {\r\n            $('[data-template-cart-edit] .swatch :radio').on('change', function(e){\r\n                var _self = $(this);\r\n                var productItem = $(this).parents('.product-edit');\r\n                var handle = productItem.data('product-handle');\r\n                var src_img = $(this).data('image');\r\n                var productId = productItem.data('cart-edit-id');\r\n                var variantList = window.productVariants[productId];\r\n                var optionIdx = _self.closest('[data-option-index]').data('option-index');\r\n                var swatches = productItem.find('.swatch-element');\r\n                var thisVal = _self.val();\r\n                var selectedVariant;\r\n                var productInput = productItem.find('[name=id]');\r\n                var selectedSwatchOpt1 = productItem.find('[data-option-index=\"0\"]').find('input:checked').val();\r\n                var selectedSwatchOpt2 = productItem.find('[data-option-index=\"1\"]').find('input:checked').val();\r\n                var selectedSwatchOpt3 = productItem.find('[data-option-index=\"2\"]').find('input:checked').val();\r\n                swatches.removeClass('soldout');\r\n                swatches.find(':radio').prop('disabled',false);\r\n                switch (optionIdx){\r\n                    case 0:\r\n                        var availableVariants = variantList.find(function(variant){\r\n                            return variant.option1 == thisVal && variant.option2 == selectedSwatchOpt2 && variant.available;\r\n                        })\r\n                        // console.log(selectedSwatchOpt2);\r\n\r\n                        if(availableVariants != undefined){\r\n                            selectedVariant =  availableVariants;\r\n                        }else{\r\n                             // variant was sold out, so auto select other available variant\r\n                            var altAvailableVariants = variantList.find(function(variant){\r\n                                return variant.option1 == thisVal && variant.available;\r\n                            })\r\n                            selectedVariant =  altAvailableVariants;\r\n                        };\r\n                        break;\r\n                    case 1:\r\n                        var availableVariants = variantList.find(function(variant){\r\n                            return variant.option1 == selectedSwatchOpt1 && variant.option2 == thisVal && variant.available;\r\n                        })\r\n                        if(availableVariants != undefined){\r\n                            selectedVariant =  availableVariants;\r\n                        };\r\n                        break;\r\n                    case 2:\r\n                        var availableVariants = variantList.find(function(variant){\r\n                            return variant.option1 == selectedSwatchOpt1 && variant.option2 == selectedSwatchOpt2 && variant.option3 == thisVal && variant.available;\r\n                        })\r\n                        if(availableVariants != undefined){\r\n                           selectedVariant =  availableVariants;\r\n                        }else{\r\n                            // Something went wrong, if correct, never meet this\r\n                            console.log('Bundle Error: variant was soldout, on option selection #3')\r\n                        };\r\n                        break;\r\n                }\r\n                productInput.val(selectedVariant.id);\r\n\r\n                productItem.find('.option').text(selectedVariant.public_title);\r\n\r\n                productItem.find('.price').html(Shopify.formatMoney(selectedVariant.price, window.money_format));\r\n\r\n                if (selectedVariant.compare_at_price > selectedVariant.price) {\r\n                    productItem.find('.prices').addClass('special-price');\r\n                    productItem.find('.compare-price').html(Shopify.formatMoney(selectedVariant.compare_at_price, window.money_format)).show();\r\n                }\r\n                else {\r\n                    productItem.find('.compare-price').hide();\r\n                    productItem.find('.prices').removeClass('special-price');\r\n                }\r\n\r\n                if (ella.checkNeedToConvertCurrency()) {\r\n                    Currency.convertAll(window.shop_currency, $('#currencies .active').attr('data-currency'), 'span.money', 'money_format');\r\n                }\r\n\r\n                ella.disableSoldoutSwatchEdit(productItem);\r\n\r\n                if (selectedVariant.featured_image) {\r\n                    productItem.find('#product-featured-image').attr('src', selectedVariant.featured_image.src);\r\n                }\r\n                var value = $(this).val();\r\n                $(this).parents('.swatch').find('[data-header-option]').text(value);\r\n\r\n                $.ajax({\r\n                    url: \"/products/\" + handle + \"?view=cart_edit\",\r\n                    success: function(data){\r\n                        var json = $(data).find('.get_script_content').data('array_json');\r\n                        var arr = json.filter(function(cur){\r\n                            return parseInt(cur.id) === selectedVariant.id\r\n                        });\r\n                        productItem.find('[name=\"quantity\"]').attr('data-line', arr[0].value);\r\n                    }\r\n                });\r\n                $('.error-message-input').text('');\r\n            });\r\n\r\n            $('[data-template-cart-edit] .single-option-selector').on('change', function(){\r\n                var _self = $(this);\r\n                var productItem = $(this).parents('.product-edit');\r\n                var handle = productItem.data('product-handle');\r\n                var productId = productItem.data('cart-edit-id');\r\n                var variantList = window.productVariants[productId];\r\n                var optionIdx = _self.data('option');\r\n                var thisVal = _self.val();\r\n                var selectedVariant;\r\n                var productInput = productItem.find('[name=id]');\r\n                var selectedSwatchOpt1 = productItem.find('[data-option=\"option1\"]').val();\r\n                var selectedSwatchOpt2 = productItem.find('[data-option=\"option2\"]').val();\r\n                var selectedSwatchOpt3 = productItem.find('[data-option=\"option3\"]').val();\r\n                switch (optionIdx){\r\n                    case 'option1':\r\n                        var availableVariants = variantList.find(function(variant){\r\n                            return variant.option1 == thisVal && variant.option2 == selectedSwatchOpt2 && variant.available;\r\n                        })\r\n                        if(availableVariants != undefined){\r\n                            selectedVariant =  availableVariants;\r\n                        }else{\r\n                             // variant was sold out, so auto select other available variant\r\n                            var altAvailableVariants = variantList.find(function(variant){\r\n                                return variant.option1 == thisVal && variant.available;\r\n                            })\r\n                            selectedVariant =  altAvailableVariants;\r\n                        };\r\n                        break;\r\n                    case 'option2':\r\n                        var availableVariants = variantList.find(function(variant){\r\n                            return variant.option1 == selectedSwatchOpt1 && variant.option2 == thisVal && variant.available;\r\n                        })\r\n                        if(availableVariants != undefined){\r\n                            selectedVariant =  availableVariants;\r\n                        };\r\n                        break;\r\n                    case 'option3':\r\n                        var availableVariants = variantList.find(function(variant){\r\n                            return variant.option1 == selectedSwatchOpt1 && variant.option2 == selectedSwatchOpt2 && variant.option3 == thisVal && variant.available;\r\n                        })\r\n                        if(availableVariants != undefined){\r\n                           selectedVariant =  availableVariants;\r\n                        };\r\n                        break;\r\n                }\r\n                productInput.val(selectedVariant.id);\r\n\r\n\r\n\r\n                productItem.find('.price').html(Shopify.formatMoney(selectedVariant.price, window.money_format));\r\n\r\n                if (selectedVariant.compare_at_price > selectedVariant.price) {\r\n                    productItem.find('.prices').addClass('special-price');\r\n                    productItem.find('.compare-price').html(Shopify.formatMoney(selectedVariant.compare_at_price, window.money_format)).show();\r\n                }\r\n                else {\r\n                    productItem.find('.compare-price').hide();\r\n                    productItem.find('.prices').removeClass('special-price');\r\n                }\r\n\r\n                if (ella.checkNeedToConvertCurrency()) {\r\n                    Currency.convertAll(window.shop_currency, $('#currencies .active').attr('data-currency'), 'span.money', 'money_format');\r\n                }\r\n\r\n                productItem.find('.option').text(selectedVariant.public_title);\r\n\r\n                if (selectedVariant.featured_image) {\r\n                    productItem.find('#product-featured-image').attr('src', selectedVariant.featured_image.src);\r\n                }\r\n\r\n                $.ajax({\r\n                    url: \"/products/\" + handle + \"?view=cart_edit\",\r\n                    success: function(data){\r\n                        var json = $(data).find('.get_script_content').data('array_json');\r\n                        var arr = json.filter(function(cur){\r\n                            return parseInt(cur.id) === selectedVariant.id\r\n                        });\r\n                        productItem.find('[name=\"quantity\"]').attr('data-line', arr[0].value);\r\n                    }\r\n                });\r\n                $('.error-message-input').text('');\r\n            })\r\n        },\r\n\r\n        editCart: function() {\r\n            if (ella.isAjaxLoading) return;\r\n            body.off('click.editcart').on('click.editcart', '[data-cart-edit]', function (e) {\r\n                var url = $(this).data('url'),\r\n                    idVariant = $(this).data('id'),\r\n                    quantity = $(this).data('quantity');\r\n                $.ajax({\r\n                    type: \"get\",\r\n                    url: url,\r\n                    cache: false,\r\n                    dataType: 'html',\r\n                    beforeSend: function() {\r\n                        ella.showLoading();\r\n                        html.css({\r\n                            \"overflow\": \"hidden\"\r\n                        });\r\n                    },\r\n                    success: function(data) {\r\n                        var cartEditTemplate = $('[data-cart-edit-modal]'),\r\n                            modalContent = cartEditTemplate.find('.halo-modal-body');\r\n                        modalContent.html(data);\r\n                        $('#product-edit').find('input[name=\"quantity\"]').val(quantity);\r\n                        setTimeout(function () {\r\n                            ella.translateBlock('[data-template-cart-edit]');\r\n                            ella.updateCartEdit(idVariant);\r\n                            ella.addMoreCart();\r\n                            ella.closeSuccessModal();\r\n                            ella.changeSwatchEditCart();\r\n\r\n                        }, 500);\r\n                        $('.product-edit .swatch').each(function(){\r\n                            var value = $(this).find('input:checked').val();\r\n                            $(this).find('[data-header-option]').text(value);\r\n                        });\r\n                        ella.hideLoading();\r\n                        cartEditTemplate.fadeIn(600);\r\n                    },\r\n                    error: function(xhr, text) {\r\n                        ella.hideLoading();\r\n                    }\r\n                });\r\n\r\n            })\r\n        },\r\n\r\n        addMoreCart: function(){\r\n            var addMore = $('[data-addmore]');\r\n            var removeItem = '[data-remove-cart]';\r\n            $(addMore).off('click').on('click', function(e){\r\n                e.preventDefault();\r\n                e.stopPropagation();\r\n                $('.error-message-input').text('');\r\n                var first = $('.product-edit:eq(1)').clone();\r\n                var length = $('.product-edit').length;\r\n\r\n                first[0].id = 'product-edit-' + length;\r\n\r\n                $(first).find('.swatch-element').each(function(){\r\n                    var option_1 = $(this).find('[name=\"option-0\"]').attr('id'),\r\n                        option_2 = $(this).find('[name=\"option-1\"]').attr('id'),\r\n                        option_3 = $(this).find('[name=\"option-2\"]').attr('id');\r\n                    $(this).find('[name=\"option-0\"]').attr('name', 'list-' + length + '-option-0').attr('id', 'list-' + length + '-' + option_1);\r\n                    $(this).find('[name=\"option-1\"]').attr('name', 'list-' + length + '-option-1').attr('id', 'list-' + length + '-' + option_2);\r\n                    $(this).find('[name=\"option-2\"]').attr('name', 'list-' + length + '-option-2').attr('id', 'list-' + length + '-' + option_3);\r\n\r\n                    $(this).find('[data-label=\"swatch-edit-cart-0\"]').attr('for', 'list-' + length + '-' + option_1);\r\n                    $(this).find('[data-label=\"swatch-edit-cart-1\"]').attr('for', 'list-' + length + '-' + option_2);\r\n                    $(this).find('[data-label=\"swatch-edit-cart-2\"]').attr('for', 'list-' + length + '-' + option_3);\r\n                });\r\n\r\n                $(first).insertBefore('[data-template-cart-edit] form .cart-meta--action');\r\n\r\n                $('#product-edit-' + length).find('input[name=\"quantity\"]').val(1);\r\n\r\n                $('#product-edit-' + length + ' .swatch').each(function(){\r\n                    var value = $(this).find('input:checked').val();\r\n                    $(this).find('[data-header-option]').text(value);\r\n                });\r\n\r\n                ella.changeSwatchEditCart();\r\n\r\n                if (window.use_color_swatch == false) {\r\n                    Shopify.linkOptionSelectors(window._json, '#product-edit-' + length, true);\r\n                }\r\n            });\r\n            body.off('click.removeItemCart', removeItem).on('click.removeItemCart', removeItem, function (e) {\r\n                $(this).parents('.product-edit').remove();\r\n            })\r\n        },\r\n\r\n        updateCartEdit: function(idVariant) {\r\n\r\n            var btnAddToCartSlt = $('[data-update-cart-edit]');\r\n            $(btnAddToCartSlt).off('click').on('click', function(e){\r\n                e.preventDefault();\r\n                e.stopPropagation();\r\n\r\n                var self = $(this);\r\n\r\n                if (self.attr('disabled') !== \"disabled\") {\r\n                    var sectionsProduct = self.closest('[data-template-cart-edit]');\r\n\r\n                    var form = sectionsProduct.find('form'),\r\n                        groupedProduct = form.find('.product-edit');\r\n\r\n                    var ajax_calls  = [],\r\n                        ajax_caller = function(data) {\r\n                            return $.ajax(data);\r\n                        }\r\n                    var check = false;\r\n                    groupedProduct.not('.first').each(function() {\r\n                        var variantId = $(this).find('[name=\"id\"]').val(),\r\n                        quantity = parseInt($(this).find('input[name=\"quantity\"]').val()),\r\n                        line = parseInt($(this).find('input[name=\"quantity\"]').data('line'));\r\n\r\n                        if (quantity > line && line > 0) {\r\n                            check = true;\r\n                            $(this).find('.error-message-input').html('<i class=\"fa fa-exclamation-circle\"></i>' + window.inventory_text.warning_quantity + ': ' + line);\r\n                        } else {\r\n                            $(this).find('.error-message-input').text('');\r\n                        }\r\n                    });\r\n\r\n                    if (check == false) {\r\n                        groupedProduct.each(function() {\r\n                            var variantId = $(this).find('[name=\"id\"]').val(),\r\n                            quantity = parseInt($(this).find('input[name=\"quantity\"]').val()),\r\n                            line = parseInt($(this).find('input[name=\"quantity\"]').data('line'));\r\n\r\n                            var url = '';\r\n                            if (quantity < 1) {\r\n                                url = window.router + '/cart/change.js';\r\n                            } else {\r\n                                url = window.router + '/cart/add.js';\r\n                            }\r\n                            if (line < quantity && line > 0) {\r\n                                quantity = line;\r\n\r\n                            }\r\n\r\n                            ajax_calls.push(ajax_caller({\r\n                                type: \"post\",\r\n                                url: url,\r\n                                data: 'quantity=' + quantity + '&id=' + variantId,\r\n                                dataType: 'json',\r\n                                async: false\r\n                            }));\r\n                        });\r\n\r\n                        if(ajax_calls.length) {\r\n                            $.when.apply(this, ajax_calls).done(function(e) {\r\n                                ella.updateDropdownCart();\r\n                                if (body.hasClass('template-cart')) {\r\n                                    // window.location.reload();\r\n                                    ella.loadAjaxCart();\r\n                                } else {\r\n                                    $('[data-cart-edit-modal] .close-modal').trigger('click');\r\n                                }\r\n                            });\r\n                        }\r\n                        ella.getPopupShoppingCart(false,undefined);\r\n                    }\r\n                };\r\n            });\r\n        },\r\n\r\n        disableSoldoutSwatchEdit: function(productItem){\r\n            var productId = productItem.data('cart-edit-id');\r\n            var variantList = window.productVariants[productId];\r\n            var options = productItem.find('[data-option-index]');\r\n            var selectedSwatchOpt1 = productItem.find('[data-option-index=\"0\"]').find('input:checked').val();\r\n            var selectedSwatchOpt2 = productItem.find('[data-option-index=\"1\"]').find('input:checked').val();\r\n            var selectedSwatchOpt3 = productItem.find('[data-option-index=\"2\"]').find('input:checked').val();\r\n\r\n            options.each(function(){\r\n                var optionIndex = $(this).data('option-index');\r\n                var swatch = $(this).find('.swatch-element');\r\n                switch (optionIndex) {\r\n                    case 0:\r\n                    // loop through all swatchs in option 1 anh filter sold out swatch\r\n                    swatch.each(function(){\r\n                        var swatchVal = $(this).data('value');\r\n                        var opt1Soldout = variantList.find(function(variant){\r\n                            return variant.option1 == swatchVal && variant.available;\r\n                        });\r\n                        if(opt1Soldout == undefined){\r\n                            $(this).addClass('soldout');\r\n                            $(this).find(':radio').prop('disabled',true);\r\n                        } else {\r\n                            $(this).removeClass('soldout');\r\n                            $(this).find(':radio').prop('disabled',false);\r\n                        }\r\n                    })\r\n                    break;\r\n                    case 1:\r\n                    // loop through all swatchs in option 2 anh filter sold out swatch\r\n                    swatch.each(function(){\r\n                        var swatchVal = $(this).data('value');\r\n                        var opt1Soldout = variantList.find(function(variant){\r\n                            return variant.option1 == selectedSwatchOpt1 && variant.option2 == swatchVal && variant.available;\r\n                        });\r\n                        if(opt1Soldout == undefined){\r\n                            $(this).addClass('soldout');\r\n                            $(this).find(':radio').prop('disabled',true);\r\n                        } else {\r\n                            $(this).removeClass('soldout');\r\n                            $(this).find(':radio').prop('disabled',false);\r\n                        }\r\n\r\n                    })\r\n                    break;\r\n                    case 2:\r\n                    // loop through all swatchs in option 3 anh filter sold out swatch\r\n                    swatch.each(function(){\r\n                        var swatchVal = $(this).data('value');\r\n                        var opt1Soldout = variantList.find(function(variant){\r\n                            return variant.option1 == selectedSwatchOpt1 && variant.option2 == selectedSwatchOpt2 && variant.option3 == swatchVal && variant.available;\r\n                        });\r\n                        if(opt1Soldout == undefined){\r\n                            $(this).addClass('soldout');\r\n                            $(this).find(':radio').prop('disabled',true);\r\n                        } else {\r\n                            $(this).removeClass('soldout');\r\n                            $(this).find(':radio').prop('disabled',false);\r\n                        }\r\n                    })\r\n                    break;\r\n                }\r\n            });\r\n\r\n            if (productItem.find('[data-option-index=\"1\"]').find('input:checked').parents('.swatch-element').hasClass('soldout')) {\r\n                productItem.find('[data-option-index=\"1\"]').find('.available:not(.soldout)').eq('0').find('label').trigger('click');\r\n                productItem.find('[data-option-index=\"1\"]').find('.available:not(.soldout)').eq('0').find('input').prop('checked',true);\r\n            }\r\n        },\r\n\r\n        changeQuantityAddToCart: function () {\r\n            var buttonSlt = '[data-minus-quantity], [data-plus-quantity]',\r\n                buttonElm = $(buttonSlt),\r\n                inputQ = $('.update-cart--template');\r\n\r\n            doc.on('click', buttonSlt, function (e) {\r\n                e.preventDefault();\r\n                e.stopPropagation();\r\n\r\n                var self = $(this),\r\n                    input = self.siblings('input[name=\"quantity\"]').length > 0 ? self.siblings('input[name=\"quantity\"]') : self.siblings('input[name=\"group_quantity\"]');\r\n\r\n\r\n                var id = self.closest(\"[data-item-id]\").data(\"item-id\");\r\n                if (input.length < 1) {\r\n                    input = self.siblings('input[name=\"updates[]\"]');\r\n                }\r\n                var val = parseInt(input.val());\r\n                switch (true) {\r\n                    case (self.hasClass('plus')):\r\n                        {\r\n                            val +=1;\r\n                            break;\r\n                        }\r\n                    case (self.hasClass('minus') && val > 0):\r\n                        {\r\n                            val -=1;\r\n                            break;\r\n                        }\r\n                }\r\n                input.val(val);\r\n                self.parent().find('[type=\"number\"]').trigger('change');\r\n            });\r\n            inputQ.on('change', function(){\r\n                var self = $(this);\r\n                var productItem = self.parents('.cart-product-item'),\r\n                    line = self.data('line'),\r\n                    val = self.val(),\r\n                    productId = $(productItem).data('item-id');\r\n                var Price = productItem.find('.price');\r\n\r\n                if (line < val) {\r\n                    self.parent().css('border-color', 'red');\r\n                } else {\r\n                    self.parent().css('border-color', '#cdcdcd');\r\n                    ella.doAjaxUpdateCart(productId, val, line, Price, productItem);\r\n                }\r\n            });\r\n\r\n            $('.cart-form .remove ').on('click', function(event) {\r\n                event.preventDefault();\r\n                var productItem = $(this).parents('.cart-product-item'),\r\n                    productId = $(productItem).data('item-id');\r\n\r\n                Shopify.removeItem(productId, function(cart) {\r\n                    ella.doUpdateDropdownCart(cart);\r\n                    ella.initFreeShippingMessage();\r\n\r\n                    $(productItem).remove();\r\n\r\n                    $('.total .price').html(Shopify.formatMoney(cart.total_price, window.money_format));\r\n\r\n                    if (ella.checkNeedToConvertCurrency()) {\r\n                        Currency.convertAll(window.shop_currency, $('#currencies .active').attr('data-currency'), 'span.money', 'money_format');\r\n                    }\r\n\r\n                    if ($('#gift-wrapping').length && productId == $('#gift-wrapping').data('gift-id')) {\r\n                        $('#is-a-gift').show();\r\n                    }\r\n\r\n                    if ($('.cart_items ul li').children().length > 0) {\r\n                        $('.no-item-cart').hide();\r\n                        $('.wrapper-cart-template').show();\r\n                    } else {\r\n                        $('.wrapper-cart-template').hide();\r\n                        $('.no-item-cart').show();\r\n                    }\r\n                });\r\n            });\r\n        },\r\n\r\n        initFreeShippingMessage: function () {\r\n            jQuery.getJSON('/cart.js', function(cart){\r\n                ella.FreeShippingMessage(cart);\r\n            });\r\n        },\r\n\r\n        FreeShippingMessage: function (cart) {\r\n            var freeshipEligible = 0;\r\n\r\n            var freeshipText = window.free_shipping_text.free_shipping_message_1;\r\n            var freeshipText2 = window.free_shipping_text.free_shipping_message_2;\r\n            var freeshipText3 = window.free_shipping_text.free_shipping_message_3;\r\n            var freeshipText4 = window.free_shipping_text.free_shipping_message_4;\r\n            var extraPrice = 0;\r\n            var shipVal = window.free_shipping_text.free_shipping_1;\r\n            //\r\n            var color1 = window.free_shipping_color1;\r\n            var color2 = window.free_shipping_color2;\r\n            var color3 = window.free_shipping_color3;\r\n\r\n            var freeshipPrice = parseInt(window.free_shipping_price);\r\n\r\n            if (window.multi_lang && translator.isLang2()) {\r\n                freeshipText = window.lang2.cart.general.free_shipping_message_1;\r\n                freeshipText2 = window.lang2.cart.general.free_shipping_message_2;\r\n                freeshipText3 = window.lang2.cart.general.free_shipping_message_3;\r\n                shipVal = window.lang2.cart.general.free_shipping_1;\r\n            }\r\n\r\n            var cartTotalPrice =  parseInt(cart.total_price) / 100;\r\n            var freeshipBar = Math.round((cartTotalPrice * 100)/freeshipPrice) ;\r\n\r\n            if (cartTotalPrice >= freeshipPrice) {\r\n                freeshipEligible = 1;\r\n            } else {\r\n                extraPrice = parseInt(freeshipPrice - cartTotalPrice);\r\n                freeshipText = freeshipText2 + ' ' + Shopify.formatMoney(extraPrice * 100, window.money_format) + ' ' + freeshipText3 + '<b>  ' + freeshipText4 + ' </b>';\r\n                shipVal = window.free_shipping_text.free_shipping_2;\r\n            }\r\n\r\n            if(freeshipBar >= 100 ){\r\n                freeshipBar = 100;\r\n            }\r\n\r\n            if(freeshipBar == 0){\r\n                ella.checkItemsInDropdownCart();\r\n            }\r\n\r\n            var color = color3;\r\n            if(freeshipBar <= 30 ) {\r\n                color = color1;\r\n            }\r\n            else if( freeshipBar <= 60) {\r\n                color = color2;\r\n            }\r\n            else if( freeshipBar == 100 ){\r\n\r\n            }\r\n\r\n            var progress = '<div class=\"progress_shipping\" role=\"progressbar\" style=\"height: 15px; margin-top: 10px; margin-bottom: 10px;background-color: #e1dfd6;-webkit-box-shadow: inset 0 1px 2px rgba(0,0,0,.1);box-shadow: inset 0 1px 2px rgba(0,0,0,.1);\">\\\r\n            <div class=\"progress-meter\" style=\"position: relative;display: block;height: 100%;background-color: '+color+';text-align: center; line-height: 15px;color: #ffffff;width: '+freeshipBar+'%; -webkit-animation: 2s linear 0s normal none infinite running progress-bar-stripes;animation: 2s linear 0s normal none infinite running progress-bar-stripes;background-image: -webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image: linear-gradient(45deg,rgba(255,255,255,.15) 25%,rgba(0,0,0,0) 25%,rgba(0,0,0,0) 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,rgba(0,0,0,0) 75%,rgba(0,0,0,0)); background-size: 40px 40px; transition: 0.9s linear; transition-property: width, background-color;\">'+freeshipBar+'%</div>\\\r\n            </div>';\r\n\r\n            $('.free_shipping_progress').html(progress);\r\n\r\n            $('.free_shipping_massage1').html(freeshipText);\r\n            $('#dropdown-cart .summary .free_shipping .text').html(shipVal);\r\n\r\n            if (ella.checkNeedToConvertCurrency()) {\r\n              Currency.convertAll(window.shop_currency, $('#currencies .active').attr('data-currency'), 'span.money', 'money_format');\r\n            }\r\n        },\r\n\r\n        doAjaxUpdateCart: function(productId, quantity, cartButton, Price, productItem){\r\n            var checkInv = $(cartButton).data('line'),\r\n                price = parseFloat( Price.data('price') )*quantity,\r\n                price2 = parseFloat( Price.data('price') )*checkInv;\r\n\r\n            $.ajax({\r\n                type: \"post\",\r\n                url: \"/cart/change.js\",\r\n                data: 'quantity=' + quantity + '&id=' + productId,\r\n                dataType: 'json',\r\n                beforeSend: function() {\r\n                    ella.showLoading();\r\n                },\r\n                success: function(cart) {\r\n                    if(quantity == 0){\r\n                        productItem.remove();\r\n                    }\r\n\r\n                    if (cart.item_count < 1) {\r\n                        $('.wrapper-cart-template').hide();\r\n                        $('.no-item-cart').show();\r\n                    }\r\n\r\n                    Price.html(Shopify.formatMoney(price, window.money_format));\r\n                    $('.total .price').html(Shopify.formatMoney(cart.total_price, window.money_format));\r\n\r\n                    ella.updateDropdownCart();\r\n                    ella.initFreeShippingMessage();\r\n                    ella.hideLoading();\r\n\r\n                    if (cart.cart_level_discount_applications.length > 0 && $('[data-cart-discount-wrapper]').length) {\r\n                        var cartDiscounts = cart.cart_level_discount_applications;\r\n                        var title = cartDiscounts[0].title;\r\n                        var total_discount = cartDiscounts[0].total_allocated_amount;\r\n                        console.log(total_discount);\r\n                        $('[data-cart-discount-wrapper]').show();\r\n                        $('[data-cart-discount-title]').text(title);\r\n                        $('[data-cart-discount-amount]').html(Shopify.formatMoney(total_discount, window.money_format))\r\n                    } else {\r\n                        $('[data-cart-discount-wrapper]').hide();\r\n                    }\r\n\r\n                },\r\n                error: function(xhr) {\r\n                    ella.hideLoading();\r\n                }\r\n            });\r\n        },\r\n\r\n        toggleVariantsForExpressOrder: function () {\r\n            var toggleVariant = '[data-toggle-variant]';\r\n\r\n            doc.on('click', toggleVariant, function (e) {\r\n                e.preventDefault();\r\n                e.stopPropagation();\r\n\r\n                var self = $(this),\r\n                    curVariants = self.data('target');\r\n\r\n                if(self.hasClass('show-options-btn')) {\r\n                    self.text(window.inventory_text.hide_options);\r\n                    $(curVariants).slideDown(700, function () {\r\n                        self.addClass('hide-options-btn').removeClass('show-options-btn');\r\n                    });\r\n                }\r\n                else {\r\n                    self.text(window.inventory_text.show_options);\r\n                    $(curVariants).slideUp(700, function () {\r\n                        self.addClass('show-options-btn').removeClass('hide-options-btn');\r\n                    });\r\n                };\r\n            })\r\n        },\r\n\r\n        initExpressOrderAddToCart: function() {\r\n            var addToCartSlt = '[data-express-addtocart]';\r\n\r\n            doc.off('click.addToCartExpress', addToCartSlt).on('click.addToCartExpress', addToCartSlt, function (e) {\r\n                e.preventDefault();\r\n\r\n                var self = $(this);\r\n\r\n                if (self.attr('disabled') != 'disabled') {\r\n                    var productItem = self.closest('.product-item');\r\n\r\n                    if(productItem.length == 0) {\r\n                        productItem = self.closest('.col-options');\r\n                    }\r\n\r\n                    var form = productItem.find('form');\r\n                    var variant_id = form.find('select[name=id]').val();\r\n\r\n                    if (!variant_id) {\r\n                        variant_id = form.find('input[name=id]').val();\r\n                    };\r\n\r\n                    var quantityElm = productItem.find('input[name=quantity]');\r\n\r\n                    if(quantityElm.length == 0) {\r\n                        quantityElm = productItem.siblings('.col-qtt').find('input[name=quantity]');\r\n                    }\r\n\r\n                    var quantity = quantityElm.val();\r\n                    if (!quantity) {\r\n                        quantity = 1;\r\n                    };\r\n\r\n                    if(parseInt(quantity) !== 0) {\r\n                        if (window.ajax_cart == 'none') {\r\n                            form.submit();\r\n                        } else {\r\n                            ella.expressAjaxAddToCart(variant_id, quantity, self, form);\r\n                            form.next('.feedback-text').show();\r\n                        }\r\n                    }\r\n                    else {\r\n                        form.next('.feedback-text').text('Quantity cannot be blank').show();\r\n                    }\r\n                }\r\n                return false;\r\n            });\r\n        },\r\n\r\n        expressAjaxAddToCart: function(variant_id, quantity, cartBtn, form) {\r\n            $.ajax({\r\n                type: \"post\",\r\n                url: \"/cart/add.js\",\r\n                data: 'quantity=' + quantity + '&id=' + variant_id,\r\n                dataType: 'json',\r\n\r\n                beforeSend: function() {\r\n                    window.setTimeout(function() {\r\n                        cartBtn.text(window.inventory_text.adding +\"...\");\r\n                    }, 100);\r\n                },\r\n\r\n                success: function(msg) {\r\n                    window.setTimeout(function() {\r\n                        cartBtn.text(window.inventory_text.thank_you);\r\n                    }, 600);\r\n                    window.setTimeout(function() {\r\n                        cartBtn.text(window.inventory_text.add_more + \"...\");\r\n                    }, 1000);\r\n\r\n                    ella.updateDropdownCart();\r\n\r\n                    cartBtn.addClass('add_more');\r\n                    form.next('.feedback-text').text(window.inventory_text.cart_feedback);\r\n                },\r\n\r\n                error: function(xhr, text) {\r\n                    $('.ajax-error-message').text($.parseJSON(xhr.responseText).description);\r\n                    ella.showModal('.ajax-error-modal');\r\n                    window.setTimeout(function() {\r\n                        cartBtn.text(window.inventory_text.add_to_cart);\r\n                    }, 400);\r\n                }\r\n            });\r\n        },\r\n\r\n        initAddToCart: function () {\r\n            var btnAddToCartSlt = '[data-btn-addToCart]';\r\n\r\n            doc.off('click.addToCart', btnAddToCartSlt).on('click.addToCart', btnAddToCartSlt, function (e) {\r\n                e.preventDefault();\r\n                e.stopPropagation();\r\n                var self = $(this);\r\n                var thisForm = $(self.data('form-id'));\r\n\r\n                var data = thisForm.serialize();\r\n\r\n                if (self.attr('disabled') !== \"disabled\") {\r\n                    var productItem = self.closest('.product-item');\r\n\r\n                    if (productItem.length < 1) {\r\n                        var sectionsProduct = self.closest('[data-section-type=\"product\"]');\r\n\r\n                        if (!sectionsProduct.length) {\r\n                            sectionsProduct = self.closest('.quickview-tpl');\r\n                        }\r\n\r\n                        productItem = sectionsProduct.find('.product-shop');\r\n                    };\r\n\r\n                    var form = self.closest('form'),\r\n                        handle = productItem.find('.product-grid-image').data('collections-related') || sectionsProduct.data('collections-related');\r\n\r\n                    switch (window.ajax_cart) {\r\n                        case \"none\":\r\n                            form.submit();\r\n                            break;\r\n\r\n                        case \"normal\":\r\n                            var title = productItem.find('.product-title').html();\r\n                            var image = productItem.find('.product-grid-image img').attr('data-srcset');\r\n\r\n                            if(!image) {\r\n                                image = productItem.siblings('.product-photos').find('.slick-current img[id|=\"product-featured-image\"]').attr('src') || productItem.siblings('.product-photos').find('.slick-current img[id|=\"qv-product-featured-image\"]').attr('src');\r\n                            }\r\n\r\n                            ella.doAjaxAddToCartNormal(data, title, image);\r\n                            $('[data-compare-modal]').hide();\r\n                            break;\r\n\r\n                        case \"upsell\":\r\n                            ella.doAjaxAddToCart(data, handle);\r\n                            $('[data-compare-modal]').hide();\r\n                            break;\r\n                    };\r\n\r\n                }\r\n                return false;\r\n            });\r\n\r\n            ella.closeSuccessModal();\r\n        },\r\n\r\n        initGroupedAddToCart: function() {\r\n            var btnAddToCartSlt = '[data-grouped-addToCart]';\r\n\r\n            ella.changeVariantSelectOption();\r\n\r\n            doc.off('click.GroupedAddToCart', btnAddToCartSlt).on('click.GroupedAddToCart', btnAddToCartSlt, function (e) {\r\n                e.preventDefault();\r\n                e.stopPropagation();\r\n\r\n                var self = $(this);\r\n                var formData = $(self.data('form-id'));\r\n                var data = formData.serialize();\r\n\r\n                if (self.attr('disabled') !== \"disabled\") {\r\n                    var sectionsProduct = self.closest('[data-section-type=\"product\"]'),\r\n                        productItem = sectionsProduct.find('.product-shop');\r\n\r\n                    var form = productItem.find('form[action=\"/cart/add\"]'),\r\n                        handle = sectionsProduct.data('collections-related'),\r\n                        groupedProduct = form.find('.grouped-product');\r\n\r\n                    Shopify.queue = [];\r\n\r\n                    groupedProduct.each(function() {\r\n                        variantId = $(this).find('input[type=hidden]').attr('value'),\r\n                        quantity = parseInt($(this).find('input[name=group_quantity]').val());\r\n\r\n                        if(quantity > 0 && variantId !== '') {\r\n                            Shopify.queue.push( {\r\n                                variantId: variantId,\r\n                                quantity: parseInt(quantity, 10) || 0\r\n                            });\r\n                        };\r\n                    });\r\n\r\n                    Shopify.moveAlong = function() {\r\n                        if (Shopify.queue.length) {\r\n                            var request = Shopify.queue.shift();\r\n\r\n                            Shopify.addItem(request.variantId, request.quantity, Shopify.moveAlong);\r\n                        }\r\n\r\n                        else {\r\n\r\n                            switch (window.ajax_cart) {\r\n                                case \"none\":\r\n                                  form.submit();\r\n                                  break;\r\n\r\n                                case \"normal\":\r\n                                    var title = productItem.find('.product-title').html();\r\n                                    var image = productItem.find('.product-grid-image img').attr('src');\r\n\r\n                                    if(!image) {\r\n                                        image = productItem.siblings('.product-photos').find('.slick-current img[id|=\"product-featured-image\"]').attr('src') || productItem.siblings('.product-photos').find('.slick-current img[id|=\"qv-product-featured-image\"]').attr('src');\r\n                                    }\r\n                                    ella.doAjaxAddToCartNormal(data, title, image);\r\n                                    break;\r\n\r\n                                case \"upsell\":\r\n                                    ella.doAjaxAddToCart(data, handle);\r\n                                    break;\r\n                            };\r\n                            return false;\r\n                        };\r\n                    }\r\n\r\n                    Shopify.moveAlong();\r\n                };\r\n            });\r\n\r\n            ella.closeSuccessModal();\r\n        },\r\n\r\n        changeVariantSelectOption: function() {\r\n            var selectSlt = '[data-select-change-variant]';\r\n\r\n            doc.on('change', selectSlt, function() {\r\n                var value = $(this).val(),\r\n                    dataImg = $(this).find('option:selected').data('img'),\r\n                    dataPrice = $(this).find('option:selected').data('price'),\r\n                    parent = $(this).closest('.grouped-product');\r\n\r\n                parent.find('input[type=hidden]').val(value);\r\n                parent.find('.product-img img').attr({ src: dataImg });\r\n                parent.find('[data-price-change]').html(Shopify.formatMoney(dataPrice, window.money_format));\r\n\r\n                if (ella.checkNeedToConvertCurrency()) {\r\n                    Currency.convertAll(window.shop_currency, $('#currencies .active').attr('data-currency'), '.grouped-product span.money', 'money_format');\r\n                }\r\n            });\r\n        },\r\n\r\n        closeSuccessModal: function () {\r\n            var ajaxCartModal = $('[data-ajax-cart-success], [data-quickview-modal], [data-compare-modal], [data-compare-message-modal]'),\r\n                editCart = $('[data-cart-edit-modal]'),\r\n                closeWindow = ajaxCartModal.find('.close-modal, .continue-shopping'),\r\n                modalContent = ajaxCartModal.find('.halo-modal-content'),\r\n                closeEdit = editCart.find('.close-modal'),\r\n                modalContentEdit = editCart.find('.halo-modal-content');\r\n\r\n            closeWindow.click(function (e) {\r\n                e.preventDefault();\r\n                ajaxCartModal.fadeOut(500, function () {\r\n                    html.removeClass('halo-modal-open');\r\n                    html.css({\r\n                        \"overflow\": \"\"\r\n                    });\r\n\r\n                    // if (body.hasClass('template-cart')) {\r\n                    //     $([document.documentElement, document.body]).animate({\r\n                    //         scrollTop: $(\".wrapper-cart-template\").offset().top - $('.main-menu').outerHeight()\r\n                    //     }, 500);\r\n                    // }\r\n\r\n                });\r\n            });\r\n\r\n            ajaxCartModal.on('click', function (e) {\r\n                if (!modalContent.is(e.target) && !modalContent.has(e.target).length) {\r\n                    ajaxCartModal.fadeOut(500, function () {\r\n                        html.removeClass('halo-modal-open');\r\n                        html.css({\r\n                            \"overflow\": \"\"\r\n                        });\r\n\r\n                        // if (body.hasClass('template-cart')) {\r\n                        //     $([document.documentElement, document.body]).animate({\r\n                        //         scrollTop: $(\".wrapper-cart-template\").offset().top - $('.main-menu').outerHeight()\r\n                        //     }, 500);\r\n                        // }\r\n\r\n                    });\r\n                };\r\n            });\r\n            closeEdit.on('click', function (e) {\r\n                e.preventDefault();\r\n                editCart.fadeOut(500, function () {\r\n                    html.removeClass('halo-modal-open');\r\n                    html.css({\r\n                        \"overflow\": \"\"\r\n                    });\r\n                });\r\n            });\r\n\r\n            editCart.on('click', function (e) {\r\n                if (!modalContentEdit.is(e.target) && !modalContentEdit.has(e.target).length) {\r\n                    editCart.fadeOut(500, function () {\r\n                        html.removeClass('halo-modal-open');\r\n                        html.css({\r\n                            \"overflow\": \"\"\r\n                        });\r\n                    });\r\n                };\r\n            });\r\n        },\r\n\r\n        doAjaxAddToCartNormal: function(data, title, image) {\r\n            $.ajax({\r\n                type: \"POST\",\r\n                url: \"/cart/add.js\",\r\n                data: data,\r\n                dataType: \"json\",\r\n\r\n                beforeSend: function () {\r\n                    ella.showLoading();\r\n                },\r\n\r\n                success: function () {\r\n                    var ajaxCartModal = $('[data-ajax-cart-success]'),\r\n                        modalContent = ajaxCartModal.find('.cart-modal-content');\r\n\r\n                    modalContent.find('.ajax-product-title').html(ella.translateText(title));\r\n                    modalContent.find('.ajax-product-image').attr('src', image);\r\n                    modalContent.find('.message-added-cart').show();\r\n\r\n                    ajaxCartModal.fadeIn(600, function () {\r\n                        // html.addClass('halo-modal-open');\r\n\r\n                        if ($('[data-quickview-modal]').is(':visible')) {\r\n                            $('[data-quickview-modal]').hide();\r\n                        }\r\n\r\n                        ella.closeLookbookModal();\r\n                    });\r\n                    ella.updateDropdownCart();\r\n                    if ($('.template-cart').length) {\r\n                        ella.loadAjaxCart();\r\n                    }\r\n                },\r\n\r\n                error: function (xhr) {\r\n                    $('.ajax-error-message').text($.parseJSON(xhr.responseText).description);\r\n                    ella.showModal('.ajax-error-modal');\r\n                },\r\n\r\n                complete: function () {\r\n                    ella.hideLoading();\r\n                }\r\n            });\r\n        },\r\n\r\n        doAjaxAddToCart: function (data, handle,nojax) {\r\n            $.ajax({\r\n                type: \"POST\",\r\n                url: \"/cart/add.js\",\r\n                data: data,\r\n                dataType: \"json\",\r\n                async: false,\r\n                beforeSend: function () {\r\n                    ella.showLoading();\r\n                },\r\n\r\n                success: function (data) {\r\n                  if(!nojax){\r\n                    ella.getPopupShoppingCart(true,handle);\r\n\r\n                  }else{\r\n\r\n                    var discount_code = \"FBT-BUNDLE-\"+ meta.product.id;\r\n                    ella.apply_discount( discount_code );\r\n                    window.location.href = '/cart';\r\n                    ella.showloading();\r\n\r\n                  }\r\n                  if ($('.template-cart').length) {\r\n                    ella.loadAjaxCart();\r\n                  }\r\n                },\r\n\r\n                error: function (xhr) {\r\n                    $('.ajax-error-message').text($.parseJSON(xhr.responseText).description);\r\n                    ella.showModal('.ajax-error-modal');\r\n                },\r\n\r\n                complete: function () {\r\n                    ella.hideLoading();\r\n                }\r\n            });\r\n        },\r\n\r\n        getPopupShoppingCart: function (shouldShowModel, handle) {\r\n\r\n            var ajaxCartModal = $('[data-ajax-cart-success]'),\r\n                modalContent = ajaxCartModal.find('.cart-popup-content'),\r\n                collUpsell = ajaxCartModal.find('.cart-popup-coll-related');\r\n\r\n            $.get(window.router + \"/cart?view=json\", function (data) {\r\n                modalContent.html(data);\r\n                if (handle != undefined) {\r\n                  var _handle = handle.split('/collections')[0];\r\n                  var _handle1 = _handle + '/collections/?view=related';\r\n                  if (shouldShowModel) {\r\n                    if (handle != _handle1) {\r\n                      collUpsell.load('' + handle + '');\r\n                    } else {\r\n                      collUpsell.load(_handle + '/collections/all?view=related');\r\n                    };\r\n                    $( document ).ajaxComplete(function( event, xhr, settings ) {\r\n                      if ( settings.url === \"/collections/all?view=related\" || settings.url === '' + handle + '') {\r\n                        try{\r\n                          if (ella.checkNeedToConvertCurrency()) {\r\n                            Currency.convertAll(window.shop_currency, $('#currencies .active').attr('data-currency'), '[data-ajax-cart-success] span.money', 'money_format');\r\n                          }\r\n                        }\r\n                        catch(e){\r\n                          console.log(e)\r\n                        }\r\n                      }\r\n                    });\r\n                  }\r\n                }\r\n            }).always(function () {\r\n                ella.updateDropdownCart();\r\n\r\n                ella.ellaTimeout = setTimeout(function () {\r\n                    ella.translateBlock('[data-ajax-cart-success]');\r\n\r\n                    if ($('.shopify-product-reviews-badge').length && $('.spr-badge').length) {\r\n                        return window.SPR.registerCallbacks(), window.SPR.initRatingHandler(), window.SPR.initDomEls(), window.SPR.loadProducts(), window.SPR.loadBadges();\r\n                    };\r\n                }, 1000);\r\n\r\n                if (ella.checkNeedToConvertCurrency()) {\r\n                    Currency.convertAll(window.shop_currency, $('#currencies .active').attr('data-currency'), '[data-ajax-cart-success] span.money', 'money_format');\r\n                }\r\n\r\n                if (shouldShowModel) {\r\n                    ajaxCartModal.fadeIn(600, function () {\r\n                        // html.addClass('halo-modal-open');\r\n\r\n                        if ($('[data-quickview-modal]').is(':visible')) {\r\n                            $('[data-quickview-modal]').hide();\r\n                        }\r\n\r\n                        ella.closeLookbookModal();\r\n                    });\r\n                }\r\n            });\r\n        },\r\n\r\n        loadAjaxCart: function () {\r\n            $.get(window.router + \"/cart\", function (data) {\r\n                var curCartTemplate = $('.cart-template'),\r\n                    curCartlist = curCartTemplate.find('.cart-list'),\r\n                    curDiscount = curCartTemplate.find('[data-cart-discount-wrapper]'),\r\n                    curTotalTop = curCartTemplate.find('.groued-info .total'),\r\n                    curTotalBottom = curCartTemplate.find('.grouped-bottom .total'),\r\n                    curGift = curCartTemplate.find('#is-a-gift'),\r\n\r\n                    newCartTemplate = $(data).find('.cart-template'),\r\n                    newCartlist = newCartTemplate.find('.cart-list'),\r\n                    newDiscount = newCartTemplate.find('[data-cart-discount-wrapper]'),\r\n                    newTotalTop = newCartTemplate.find('.groued-info .total'),\r\n                    newTotalBottom = newCartTemplate.find('.grouped-bottom .total'),\r\n                    newGift = newCartTemplate.find('#is-a-gift');\r\n\r\n                curCartlist.replaceWith(newCartlist);\r\n                curDiscount.replaceWith(newDiscount);\r\n                curTotalTop.replaceWith(newTotalTop);\r\n                curTotalBottom.replaceWith(newTotalBottom);\r\n                curGift.replaceWith(newGift);\r\n            }).always(function () {\r\n                ella.changeQuantityAddToCart();\r\n                ella.initFreeShippingMessage();\r\n                ella._giftCard();\r\n                ella.ellaTimeout = setTimeout(function () {\r\n                    if ($('.shopify-product-reviews-badge').length && $('.spr-badge').length) {\r\n                        return window.SPR.registerCallbacks(), window.SPR.initRatingHandler(), window.SPR.initDomEls(), window.SPR.loadProducts(), window.SPR.loadBadges();\r\n                    };\r\n                }, 1000);\r\n\r\n                if (ella.checkNeedToConvertCurrency()) {\r\n                    Currency.convertAll(window.shop_currency, $('#currencies .active').attr('data-currency'), '[data-ajax-cart-success] span.money', 'money_format');\r\n                }\r\n            });\r\n        },\r\n\r\n        doAjaxUpdatePopupCart: function (quantity, id) {\r\n            $.ajax({\r\n                type: 'POST',\r\n                url: '/cart/change.js',\r\n                data: {\r\n                    id: id,\r\n                    quantity: quantity\r\n                },\r\n                dataType: 'json',\r\n\r\n                beforeSend: function () {\r\n                    ella.showLoading();\r\n                },\r\n\r\n                success: function (result) {\r\n                    ella.getPopupShoppingCart(false);\r\n                    ella.checkBundleProducts();\r\n\r\n                    if (result.cart_level_discount_applications.length > 0 && $('[data-cart-discount-wrapper]').length) {\r\n                        var cartDiscounts = result.cart_level_discount_applications;\r\n                        var title = cartDiscounts[0].title;\r\n                        var total_discount = cartDiscounts[0].total_allocated_amount;\r\n                        $('[data-cart-discount-wrapper]').show();\r\n                        $('[data-cart-discount-title]').text(title);\r\n                        $('[data-cart-discount-amount]').html(Shopify.formatMoney(total_discount, window.money_format))\r\n                    } else {\r\n                        $('[data-cart-discount-wrapper]').hide();\r\n                    }\r\n                },\r\n\r\n                error: function (xhr) {\r\n                    $('.ajax-error-message').text($.parseJSON(xhr.responseText).description);\r\n                    ella.showModal('.ajax-error-modal');\r\n                },\r\n\r\n                complete: function () {\r\n                    ella.hideLoading();\r\n                }\r\n            });\r\n        },\r\n\r\n        initChangeQuantityButtonEvent: function () {\r\n            var buttonSlt = '[data-minus-quantity-cart], [data-plus-quantity-cart]',\r\n                buttonElm = $(buttonSlt);\r\n\r\n            doc.off('click.updateCart').on('click.updateCart', buttonSlt, function (e) {\r\n                e.preventDefault();\r\n                e.stopPropagation();\r\n\r\n                var btn = $(this);\r\n                var id = btn.closest(\"[data-product-id]\").data(\"product-id\");\r\n                var quantity = parseInt(btn.siblings('input[name=\"quantity\"]').val());\r\n\r\n                if (btn.hasClass('plus')) {\r\n                    quantity += 1;\r\n                } else {\r\n                    quantity -= 1;\r\n                };\r\n\r\n                ella.doAjaxUpdatePopupCart(quantity, id);\r\n\r\n            });\r\n        },\r\n\r\n        initQuantityInputChangeEvent: function () {\r\n            var quantityIptSlt = '[data-quantity-input]';\r\n\r\n            doc.on('change', quantityIptSlt, function () {\r\n                var id = $(this).closest(\"[data-product-id]\").data(\"product-id\"),\r\n                    quantity = parseInt($(this).val());\r\n\r\n                ella.doAjaxUpdatePopupCart(quantity, id);\r\n            });\r\n        },\r\n\r\n        removeCartItem: function () {\r\n            var removeSlt = '.cart-remove';\r\n\r\n            doc.on('click', removeSlt, function (e) {\r\n                e.preventDefault();\r\n                e.stopPropagation();\r\n\r\n                var id = $(this).closest(\"[data-product-id]\").data(\"product-id\");\r\n\r\n                ella.doAjaxUpdatePopupCart(0, id);\r\n            });\r\n        },\r\n\r\n        initSoldOutProductShop: function () {\r\n            var soldProduct = $('.product-shop [data-soldOut-product]');\r\n\r\n            if (soldProduct.length) {\r\n                soldProduct.each(function () {\r\n                    var self = $(this);\r\n\r\n                    var items = self.data('items').toString().split(\",\"),\r\n                        hours = self.data('hours').toString().split(\",\"),\r\n                        i = Math.floor(Math.random() * items.length),\r\n                        j = Math.floor(Math.random() * hours.length);\r\n\r\n                    self.find('.items-count').text(items[i]);\r\n                    self.find('.hours-num').text(hours[j]);\r\n                });\r\n            }\r\n        },\r\n\r\n        initCustomerViewProductShop: function () {\r\n            var customerView = $('.product-shop [data-customer-view]');\r\n\r\n            if (customerView.length) {\r\n                customerView.each(function () {\r\n                    var self = $(this);\r\n\r\n                    // setInterval(function () {\r\n                        var views = self.data('customer-view').split(\",\"),\r\n                            i = Math.floor(Math.random() * views.length);\r\n\r\n                        self.find('label').text(views[i]);\r\n                    // }, 5000);\r\n                });\r\n            }\r\n        },\r\n\r\n        initProductMoreview: function (productMoreview) {\r\n            var sliderFor = productMoreview.find('.slider-for'),\r\n                sliderNav = productMoreview.find('.slider-nav'),\r\n                vertical = sliderNav.data('vertical');\r\n\r\n            // // POST commands to YouTube or Vimeo API\r\n            // function postMessageToPlayer(player, command) {\r\n            //     if (player == null || command == null) return;\r\n            //     player.contentWindow.postMessage(JSON.stringify(command), \"*\");\r\n            // }\r\n\r\n            // sliderFor.on(\"afterChange\", function(event, slick) {\r\n            //     if (sliderFor.find('.slick-current').find('iframe').length){\r\n            //         var player = sliderFor.find('iframe').get(0);\r\n            //         console.log(player);\r\n            //         postMessageToPlayer(player, {\r\n            //          \"event\": \"command\",\r\n            //          \"func\": \"pauseVideo\"\r\n            //         });\r\n\r\n            //         // player.pause();\r\n            //     }\r\n            //     if (sliderFor.find('.slick-current').find('video').length){\r\n            //         var video = sliderFor.find('video').get(0);\r\n            //         console.log(video);\r\n            //         video.pause();\r\n            //     }\r\n\r\n            // });\r\n\r\n            if (!sliderFor.hasClass('slick-initialized') && !sliderNav.hasClass('slick-initialized')) {\r\n                sliderFor.slick({\r\n                    slidesToShow: 1,\r\n                    slidesToScroll: 1,\r\n                    fade: true,\r\n                    asNavFor: sliderNav,\r\n                  \tdraggable: false,\r\n                    adaptiveHeight:false,\r\n                    get arrows() {\r\n                        if (window.product_style == 'skin_1') {\r\n                            return this.arrows = true;\r\n                        } else {\r\n                            return this.arrows = false;\r\n                        }\r\n                    },\r\n                    get nextArrow() {\r\n                        if ((window.layout_style == 'layout_style_1170') || (window.layout_style == 'layout_style_flower')) {\r\n                            return this.nextArrow = '<button type=\"button\" class=\"slick-next\"><svg viewBox=\"0 0 50 50\"><path d=\"M 11.957031 13.988281 C 11.699219 14.003906 11.457031 14.117188 11.28125 14.308594 L 1.015625 25 L 11.28125 35.691406 C 11.527344 35.953125 11.894531 36.0625 12.242188 35.976563 C 12.589844 35.890625 12.867188 35.625 12.964844 35.28125 C 13.066406 34.933594 12.972656 34.5625 12.71875 34.308594 L 4.746094 26 L 48 26 C 48.359375 26.003906 48.695313 25.816406 48.878906 25.503906 C 49.058594 25.191406 49.058594 24.808594 48.878906 24.496094 C 48.695313 24.183594 48.359375 23.996094 48 24 L 4.746094 24 L 12.71875 15.691406 C 13.011719 15.398438 13.09375 14.957031 12.921875 14.582031 C 12.753906 14.203125 12.371094 13.96875 11.957031 13.988281 Z\"></path></svg></button>';\r\n                        } else if ((window.layout_style == 'layout_style_fullwidth') || (window.layout_style == 'layout_style_suppermarket')){\r\n                            return this.nextArrow = '<button type=\"button\" class=\"slick-next\"><svg viewBox=\"0 0 478.448 478.448\" class=\"icon icon-chevron-right\" id=\"icon-chevron-right\"><g><g><polygon points=\"131.659,0 100.494,32.035 313.804,239.232 100.494,446.373 131.65,478.448 377.954,239.232\"></polygon></g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g></svg></button>';\r\n                        }\r\n                        else {\r\n                            return this.nextArrow = '<button type=\"button\" class=\"slick-next\"><i class=\"fa fa-angle-right\"></i></button>';\r\n                        }\r\n                    },\r\n                    get prevArrow() {\r\n                        if ((window.layout_style == 'layout_style_1170') || (window.layout_style == 'layout_style_flower')) {\r\n                            return this.prevArrow = '<button type=\"button\" class=\"slick-prev\"><svg viewBox=\"0 0 50 50\"><path d=\"M 11.957031 13.988281 C 11.699219 14.003906 11.457031 14.117188 11.28125 14.308594 L 1.015625 25 L 11.28125 35.691406 C 11.527344 35.953125 11.894531 36.0625 12.242188 35.976563 C 12.589844 35.890625 12.867188 35.625 12.964844 35.28125 C 13.066406 34.933594 12.972656 34.5625 12.71875 34.308594 L 4.746094 26 L 48 26 C 48.359375 26.003906 48.695313 25.816406 48.878906 25.503906 C 49.058594 25.191406 49.058594 24.808594 48.878906 24.496094 C 48.695313 24.183594 48.359375 23.996094 48 24 L 4.746094 24 L 12.71875 15.691406 C 13.011719 15.398438 13.09375 14.957031 12.921875 14.582031 C 12.753906 14.203125 12.371094 13.96875 11.957031 13.988281 Z\"></path></svg></button>';\r\n                        } else if ((window.layout_style == 'layout_style_fullwidth') || (window.layout_style == 'layout_style_suppermarket')){\r\n                            return this.prevArrow = '<button type=\"button\" class=\"slick-prev\"><svg viewBox=\"0 0 370.814 370.814\" class=\"icon icon-chevron-left\" id=\"icon-chevron-left\"><g><g><polygon points=\"292.92,24.848 268.781,0 77.895,185.401 268.781,370.814 292.92,345.961 127.638,185.401\"></polygon></g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g></svg></button>';\r\n                        }\r\n                        else {\r\n                            return this.prevArrow = '<button type=\"button\" class=\"slick-prev\"><i class=\"fa fa-angle-left\"></i></button>';\r\n                        }\r\n                    },\r\n                });\r\n\r\n                sliderNav.slick({\r\n                    infinite: true,\r\n                    slidesToShow: sliderNav.data('rows'),\r\n                    vertical: vertical,\r\n                    slidesToScroll: 1,\r\n                    asNavFor: sliderFor,\r\n                    focusOnSelect: true,\r\n                    get nextArrow() {\r\n                        if ((window.layout_style == 'layout_style_1170') || (window.layout_style == 'layout_style_flower')) {\r\n                            return this.nextArrow = '<button type=\"button\" class=\"slick-next\"><svg viewBox=\"0 0 50 50\"><path d=\"M 11.957031 13.988281 C 11.699219 14.003906 11.457031 14.117188 11.28125 14.308594 L 1.015625 25 L 11.28125 35.691406 C 11.527344 35.953125 11.894531 36.0625 12.242188 35.976563 C 12.589844 35.890625 12.867188 35.625 12.964844 35.28125 C 13.066406 34.933594 12.972656 34.5625 12.71875 34.308594 L 4.746094 26 L 48 26 C 48.359375 26.003906 48.695313 25.816406 48.878906 25.503906 C 49.058594 25.191406 49.058594 24.808594 48.878906 24.496094 C 48.695313 24.183594 48.359375 23.996094 48 24 L 4.746094 24 L 12.71875 15.691406 C 13.011719 15.398438 13.09375 14.957031 12.921875 14.582031 C 12.753906 14.203125 12.371094 13.96875 11.957031 13.988281 Z\"></path></svg></button>';\r\n                        } else if ((window.layout_style == 'layout_style_fullwidth') || (window.layout_style == 'layout_style_suppermarket')){\r\n                            return this.nextArrow = '<button type=\"button\" class=\"slick-next\"><svg viewBox=\"0 0 478.448 478.448\" class=\"icon icon-chevron-right\" id=\"icon-chevron-right\"><g><g><polygon points=\"131.659,0 100.494,32.035 313.804,239.232 100.494,446.373 131.65,478.448 377.954,239.232\"></polygon></g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g></svg></button>';\r\n                        }\r\n                        else {\r\n                            return this.nextArrow = '<button type=\"button\" class=\"slick-next\"><i class=\"fa fa-angle-right\"></i></button>';\r\n                        }\r\n                    },\r\n                    get prevArrow() {\r\n                        if ((window.layout_style == 'layout_style_1170') || (window.layout_style == 'layout_style_flower')) {\r\n                            return this.prevArrow = '<button type=\"button\" class=\"slick-prev\"><svg viewBox=\"0 0 50 50\"><path d=\"M 11.957031 13.988281 C 11.699219 14.003906 11.457031 14.117188 11.28125 14.308594 L 1.015625 25 L 11.28125 35.691406 C 11.527344 35.953125 11.894531 36.0625 12.242188 35.976563 C 12.589844 35.890625 12.867188 35.625 12.964844 35.28125 C 13.066406 34.933594 12.972656 34.5625 12.71875 34.308594 L 4.746094 26 L 48 26 C 48.359375 26.003906 48.695313 25.816406 48.878906 25.503906 C 49.058594 25.191406 49.058594 24.808594 48.878906 24.496094 C 48.695313 24.183594 48.359375 23.996094 48 24 L 4.746094 24 L 12.71875 15.691406 C 13.011719 15.398438 13.09375 14.957031 12.921875 14.582031 C 12.753906 14.203125 12.371094 13.96875 11.957031 13.988281 Z\"></path></svg></button>';\r\n                        } else if ((window.layout_style == 'layout_style_fullwidth') || (window.layout_style == 'layout_style_suppermarket')){\r\n                            return this.prevArrow = '<button type=\"button\" class=\"slick-prev\"><svg viewBox=\"0 0 370.814 370.814\" class=\"icon icon-chevron-left\" id=\"icon-chevron-left\"><g><g><polygon points=\"292.92,24.848 268.781,0 77.895,185.401 268.781,370.814 292.92,345.961 127.638,185.401\"></polygon></g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g></svg></button>';\r\n                        }\r\n                        else {\r\n                            return this.prevArrow = '<button type=\"button\" class=\"slick-prev\"><i class=\"fa fa-angle-left\"></i></button>';\r\n                        }\r\n                    },\r\n                    responsive: [{\r\n                            breakpoint: 1200,\r\n                            settings: {\r\n                                get dots() {\r\n                                    if (vertical == true) {\r\n                                        return dots = true;\r\n                                    }\r\n                                },\r\n                            }\r\n                        },\r\n                        {\r\n                            breakpoint: 992,\r\n                            settings: {\r\n                                slidesToShow: 4,\r\n                                slidesToScroll: 1,\r\n                                get dots() {\r\n                                    if (vertical == true) {\r\n                                        return dots = true;\r\n                                    }\r\n                                },\r\n                            }\r\n                        },\r\n                        {\r\n                            breakpoint: 768,\r\n                            settings: {\r\n                                slidesToShow: 4,\r\n                                slidesToScroll: 1,\r\n                                get dots() {\r\n                                    if (vertical == true) {\r\n                                        return dots = true;\r\n                                    }\r\n                                },\r\n                            }\r\n                        },\r\n                        {\r\n                            breakpoint: 360,\r\n                            settings: {\r\n                                slidesToShow: 3,\r\n                                slidesToScroll: 1,\r\n                                get dots() {\r\n                                    if (vertical == true) {\r\n                                        return dots = true;\r\n                                    }\r\n                                },\r\n                            }\r\n                        }\r\n                    ]\r\n                });\r\n            };\r\n\r\n            if(window.color_swatch_style === \"variant_grouped\" && window.use_color_swatch) {\r\n                var swatch = productMoreview.closest('[data-more-view-product]').siblings('.product-shop').find('.swatch'),\r\n                    swatchColor = swatch.find('.swatch-element.color'),\r\n                    inputChecked = swatchColor.find(':radio:checked');\r\n\r\n                if(inputChecked.length) {\r\n                    var className = inputChecked.data('filter');\r\n\r\n                    if(className !== undefined) {\r\n                        sliderNav.slick('slickUnfilter');\r\n                        sliderFor.slick('slickUnfilter');\r\n\r\n                        if(sliderNav.find(className).length && sliderFor.find(className).length) {\r\n                            sliderNav.slick('slickFilter', className).slick('refresh');\r\n                            sliderFor.slick('slickFilter', className).slick('refresh');\r\n                        }\r\n                    };\r\n                };\r\n            };\r\n\r\n        },\r\n\r\n        changeSwatch: function (swatchSlt) {\r\n            doc.on('change', swatchSlt, function () {\r\n                var className = $(this).data('filter');\r\n                var optionIndex = $(this).closest('.swatch').attr('data-option-index');\r\n                var optionValue = $(this).val();\r\n\r\n                $(this)\r\n                    .closest('form')\r\n                    .find('.single-option-selector')\r\n                    .eq(optionIndex)\r\n                    .val(optionValue)\r\n                    .trigger('change');\r\n\r\n              \tif (className == undefined) {\r\n                  if ($('input[data-filter]').is(':checked')) {\r\n                    var checked = $('input[data-filter]:checked').data('filter');\r\n                    className = checked;\r\n                  }\r\n                }\r\n\r\n                if(window.color_swatch_style === \"variant_grouped\" && window.use_color_swatch && className !== undefined) {\r\n                    var productShop = $(swatchSlt).closest('.product-shop');\r\n\r\n                    if(productShop.closest('.product-slider').length) {\r\n                        var productImgs = productShop.closest('.product-slider').find('[data-moreview-product-slider]'),\r\n                            sliderFor = productImgs.find('.slider-for');\r\n\r\n                        sliderFor.slick('slickUnfilter');\r\n\r\n                        if(sliderFor.find(className).length) {\r\n                            sliderFor.slick('slickFilter', className).slick('refresh');\r\n                        }\r\n                      \tella.initZoom();\r\n                    }else {\r\n                        var productImgs = productShop.prev('[data-more-view-product]');\r\n\r\n                        if(productImgs.length) {\r\n                            var sliderNav = productImgs.find('.slider-nav'),\r\n                                sliderFor = productImgs.find('.slider-for');\r\n\r\n                            sliderNav.slick('slickUnfilter');\r\n                            sliderFor.slick('slickUnfilter');\r\n\r\n                            if(sliderNav.find(className).length && sliderFor.find(className).length) {\r\n                                sliderNav.slick('slickFilter', className).slick('refresh');\r\n                                sliderFor.slick('slickFilter', className).slick('refresh');\r\n                            }\r\n                        }\r\n                      \tella.initZoom();\r\n                    }\r\n\r\n                }\r\n            });\r\n        },\r\n\r\n        productPageInitProductTabs: function () {\r\n            var listTabs = $('.tabs__product-page'),\r\n                tabLink = listTabs.find('[data-tapTop]'),\r\n                tabContent = listTabs.find('[data-TabContent]');\r\n\r\n            if (($('.product-template-skin-1').length) || ($('.product-template-supermarket').length)) {\r\n                listTabs = $('.product-review');\r\n            }\r\n\r\n            tabLink.off('click').on('click', function (e) {\r\n                e.preventDefault();\r\n                e.stopPropagation();\r\n\r\n                var curTab = $(this),\r\n                    curTabContent = $(curTab.data('target')),\r\n                    ulElm = curTab.closest('.list-tabs');\r\n\r\n                if (ulElm.length) {\r\n                    if (!$(this).hasClass('active')) {\r\n                        tabLink.removeClass('active');\r\n                        tabContent.removeClass('active');\r\n\r\n                        curTab.addClass('active');\r\n                        ulElm.next().find(curTab.data('target')).addClass('active');\r\n                    }\r\n                } else {\r\n                    if($('.product-template-full-width').length) {\r\n                        if (!$(this).hasClass('active')) {\r\n                            curTab.addClass('active');\r\n\r\n                            curTabContent.show(0, function() {\r\n                                $(document.body).trigger(\"sticky_kit:recalc\");\r\n                            });\r\n                        } else {\r\n                            curTab.removeClass('active');\r\n\r\n                            curTabContent.hide(0, function() {\r\n                                $(document.body).trigger(\"sticky_kit:recalc\");\r\n                            });\r\n                        };\r\n                    } else if($('.has-sticky-product-img').length) {\r\n                        if (!$(this).hasClass('active')) {\r\n                            curTab.addClass('active');\r\n                            curTabContent.show();\r\n                        } else {\r\n                            curTab.removeClass('active');\r\n                            curTabContent.hide();\r\n                        };\r\n                    } else {\r\n                        if (!$(this).hasClass('active')) {\r\n                            curTab.addClass('active');\r\n                            curTabContent.slideDown();\r\n                        } else {\r\n                            curTab.removeClass('active');\r\n                            curTabContent.slideUp();\r\n                        };\r\n                    }\r\n\r\n                };\r\n            });\r\n\r\n            var sprBadge = '.product-shop .spr-badge',\r\n                btnReviewSlt = '.product-template-full-width .spr-summary-actions-newreview';\r\n\r\n            doc.on('click.triggerTabsReviews', sprBadge, function () {\r\n                if (listTabs.length) {\r\n                    $('html,body').animate({\r\n                        scrollTop: listTabs.offset().top\r\n                    }, 400);\r\n\r\n                    if ((!$('.product-template-skin-1').length) || (!$('.product-template-supermarket').length)) {\r\n                      var activeTab = listTabs.find('[data-target=\"#collapse-tab2\"]');\r\n                      if (!activeTab.hasClass('active')) {\r\n                          activeTab.trigger('click');\r\n                      }\r\n                    }\r\n                };\r\n            });\r\n\r\n            if($('.product-template-full-width').length) {\r\n                doc.on('click', btnReviewSlt, function() {\r\n                    $(document.body).trigger(\"sticky_kit:recalc\");\r\n                });\r\n            };\r\n        },\r\n\r\n        initStickyForProductFullWidth: function() {\r\n            var productTplFullWidth = $('.product-template-full-width'),\r\n                winWidth = win.innerWidth(),\r\n                stickyElm1 = productTplFullWidth.find('[data-sticky-1]'),\r\n                stickyElm2 = productTplFullWidth.find('[data-sticky-2]'),\r\n                stickyElm3 = productTplFullWidth.find('[data-sticky-3]'),\r\n\r\n                stickyResizeTimerId,\r\n\r\n            destroySticky = function() {\r\n                stickyElm1.trigger(\"sticky_kit:detach\");\r\n                stickyElm3.trigger(\"sticky_kit:detach\");\r\n                stickyElm2.trigger(\"sticky_kit:detach\");\r\n            },\r\n\r\n            initSticky = function() {\r\n                stickyElm1.stick_in_parent({\r\n                    offset_top: 70,\r\n                    inner_scrolling: false,\r\n                });\r\n                stickyElm3.stick_in_parent({\r\n                    offset_top: 68\r\n                });\r\n                stickyElm2.stick_in_parent({\r\n                    offset_top: 50\r\n                }).on('sticky_kit:bottom', function() {\r\n                        stickyElm2.addClass('sticky-on-bottom');\r\n                    })\r\n                    .on('sticky_kit:unbottom', function() {\r\n                        stickyElm2.removeClass('sticky-on-bottom')\r\n                    });\r\n            };\r\n\r\n            if(productTplFullWidth.length) {\r\n                if (winWidth >= 1200) {\r\n                    initSticky();\r\n                }\r\n\r\n                win.off('resize.sticky').on('resize.sticky', function() {\r\n                    clearTimeout(stickyResizeTimerId);\r\n\r\n                    stickyResizeTimerId = setTimeout(function() {\r\n                        var curWinWidth = win.innerWidth();\r\n\r\n                        if (curWinWidth < 1200 && winWidth >= 1200) {\r\n                            destroySticky();\r\n                        }\r\n                        else if(curWinWidth >= 1200 && winWidth < 1200) {\r\n                            initSticky();\r\n                        }\r\n\r\n                        winWidth = curWinWidth;\r\n                    }, 0);\r\n                });\r\n            };\r\n        },\r\n\r\n        initQuickView: function () {\r\n            body.off('click.initQuickView', '.quickview-button').on('click.initQuickView', '.quickview-button', function (e) {\r\n                e.preventDefault();\r\n                e.stopPropagation();\r\n\r\n                var href = $(this).attr('id');\r\n\r\n                ella.doAjaxShowQuickView(href);\r\n\r\n                ella.closeSuccessModal();\r\n            });\r\n        },\r\n\r\n        doAjaxShowQuickView: function (href) {\r\n            if (ella.isAjaxLoading) return;\r\n\r\n            $.ajax({\r\n                type: \"get\",\r\n                url: window.router + '/products/' + href + '?view=quickview',\r\n\r\n                beforeSend: function () {\r\n                    ella.showLoading();\r\n\r\n                    html.css({\r\n                        \"overflow\": \"hidden\"\r\n                    });\r\n                },\r\n\r\n                success: function (data) {\r\n                    var quickviewModal = $('[data-quickview-modal]'),\r\n                        modalContent = quickviewModal.find('.halo-modal-body');\r\n\r\n                    modalContent.html(data);\r\n\r\n                    setTimeout(function () {\r\n                        ella.translateBlock('[data-quickview-modal]');\r\n                        ella.initProductMoreview($('[data-more-view-product-qv] .product-img-box'));\r\n                        ella.initSoldOutProductShop();\r\n                        ella.initCustomerViewProductShop();\r\n                        ella.changeSwatch('.quickview-tpl .swatch :radio');\r\n                        ella.initCountdownNormal();\r\n                        ella.initZoom();\r\n                        ella.setAddedForWishlistIcon(href);\r\n\r\n                        $.getScript(\"https://s7.addthis.com/js/300/addthis_widget.js#pubid=ra-595b0ea2fb9c5869\")\r\n                            .done(function() {\r\n                                if(typeof addthis !== 'undefined') {\r\n                                    addthis.init();\r\n                                    addthis.layers.refresh();\r\n                                }\r\n                            })\r\n\r\n                        if ($('.shopify-product-reviews-badge').length && $('.spr-badge').length) {\r\n                            return window.SPR.registerCallbacks(), window.SPR.initRatingHandler(), window.SPR.initDomEls(), window.SPR.loadProducts(), window.SPR.loadBadges();\r\n                        };\r\n                    }, 500);\r\n\r\n                    ella.hideLoading();\r\n\r\n                    quickviewModal.fadeIn(600, function () {\r\n                        // html.addClass('halo-modal-open');\r\n\r\n                        if ($('[data-ajax-cart-success]').is(':visible')) {\r\n                            $('[data-ajax-cart-success]').hide();\r\n                        }\r\n                    });\r\n                },\r\n\r\n                error: function (xhr, text) {\r\n                    $('.ajax-error-message').text($.parseJSON(xhr.responseText).description);\r\n                    ella.hideLoading();\r\n                    ella.showModal('.ajax-error-modal');\r\n                }\r\n            });\r\n        },\r\n\r\n        initZoom: function () {\r\n            var zoomElm = $('.product-img-box [data-zoom]');\r\n\r\n            if (win.width() >= 1200) {\r\n                zoomElm.zoom();\r\n            } else {\r\n                zoomElm.trigger('zoom.destroy');\r\n            };\r\n        },\r\n\r\n        openSearchForm: function () {\r\n            var iconSearchSlt = '[data-search-mobile-toggle]',\r\n                wrapperHeader = $('.wrapper-header'),\r\n                formSearch = wrapperHeader.find('.search-form');\r\n\r\n            doc.off('click.toggleSearch', iconSearchSlt).on('click.toggleSearch', iconSearchSlt, function(e) {\r\n                e.preventDefault();\r\n                e.stopPropagation();\r\n                html.addClass('search-open');\r\n                var self = $(this);\r\n                var url = self.data('url');\r\n                var limit = self.data('limit');\r\n                var grid = self.data('limit');\r\n\r\n                $.ajax({\r\n                    type: \"get\",\r\n                    url: window.router + '/collections/' + url,\r\n                    cache: false,\r\n                    data: {\r\n                        view: 'list_product',\r\n                        constraint: 'limit=' + limit + '+grid=' + grid + '+sectionId=search-form-product'\r\n                    },\r\n                    beforeSend: function () {\r\n                        self.addClass('ajax-loaded');\r\n                    },\r\n                    success: function (data) {\r\n                        if (url != '') {\r\n                            $('.search__products').find('.products-grid').html(data);\r\n                        }\r\n                        $('[data-toggle=\"tooltip\"]').tooltip();\r\n                    },\r\n                    complete: function () {\r\n                        if (ella.checkNeedToConvertCurrency()) {\r\n                            Currency.convertAll(window.shop_currency, $('#currencies .active').attr('data-currency'), 'span.money', 'money_format');\r\n                        };\r\n                        if ($('.shopify-product-reviews-badge').length && $('.spr-badge').length) {\r\n                            return window.SPR.registerCallbacks(), window.SPR.initRatingHandler(), window.SPR.initDomEls(), window.SPR.loadProducts(), window.SPR.loadBadges();\r\n                        };\r\n                    }\r\n                });\r\n            });\r\n\r\n\r\n            doc.off('click.hideSearch').on('click.hideSearch', function (e) {\r\n                var searchForm = $('.wrapper-header .search-form .search-bar');\r\n                var searchProduct = $('.wrapper-header .header-search__product');\r\n                var searchTrending = $('.wrapper-header .header-search__trending');\r\n                var overlay = $('.wrapper-overlay');\r\n                var iconSearchSlt = $('[data-search-mobile-toggle]');\r\n                var slideshow = $('.home-slideshow .slide-action');\r\n\r\n                if (!searchForm.is(e.target) && !iconSearchSlt.is(e.target) && !slideshow.has(e.target).length && !searchForm.has(e.target).length && !searchProduct.has(e.target).length && !searchTrending.has(e.target).length && !overlay.has(e.target).length) {\r\n                    html.removeClass('search-open');\r\n                    $('.quickSearchResultsWrap').hide();\r\n                }\r\n\r\n            });\r\n        },\r\n\r\n        stickyFixedTopMenu: function() {\r\n\r\n            if(window.fixtop_menu) {\r\n                if(window.innerWidth >= 1200) {\r\n                    $('[data-sticky-mb]').unstick();\r\n\r\n                    setTimeout(\r\n                        function() {\r\n\r\n                            $('[data-sticky-pc]').sticky({\r\n                                zIndex: 4\r\n                            });\r\n\r\n                            $('[data-sticky-pc]').on('sticky-start', function() {\r\n                                body.addClass('has_sticky');\r\n                            });\r\n\r\n                            $('[data-sticky-pc]').on('sticky-end', function() {\r\n                                body.removeClass('has_sticky');\r\n                            });\r\n                        }, 100\r\n                    );\r\n                } else {\r\n                    $('[data-sticky-pc]').unstick();\r\n\r\n                    setTimeout(\r\n                        function() {\r\n\r\n                            $('[data-sticky-mb]').sticky({\r\n                                zIndex: 4\r\n                            });\r\n                        }, 100\r\n                    );\r\n                };\r\n            }\r\n        },\r\n\r\n        handleScrollDown: function() {\r\n            var iconSrollDownSlt = '[data-scroll-down]',\r\n                iconSrollDown = $(iconSrollDownSlt);\r\n\r\n            iconSrollDown.each(function() {\r\n                var self = $(this);\r\n                var target = self.closest('.shopify-section').next('.shopify-section').attr('id');\r\n\r\n                self.attr('href', '#'+ target +'');\r\n\r\n                doc.off('click.handleScrollDown', iconSrollDownSlt).on('click.handleScrollDown', iconSrollDownSlt, function(e) {\r\n                    e.preventDefault();\r\n\r\n                    var scroll = $(this.getAttribute('href'));\r\n\r\n                    if( scroll.length ) {\r\n                        $('html, body').stop().animate({\r\n                            scrollTop: scroll.offset().top\r\n                        }, 500);\r\n                    };\r\n                });\r\n            });\r\n        },\r\n\r\n        initStickyAddToCart: function() {\r\n            var blockSticky = $('[data-sticky-add-to-cart]'),\r\n                sltVariantActive = blockSticky.find('.pr-active'),\r\n                variantElm = blockSticky.find('.pr-swatch');\r\n\r\n            if(blockSticky.length) {\r\n                var showHideVariantsOptions = function() {\r\n                    sltVariantActive.off('click.showListVariant').on('click.showListVariant', function(e) {\r\n                        e.preventDefault();\r\n\r\n                        blockSticky.toggleClass('open-sticky');\r\n                    });\r\n\r\n                    doc.off('click.hideVariantsOption').on('click.hideVariantsOption', function(e) {\r\n                        if (!sltVariantActive.is(e.target) && sltVariantActive.has(e.target).length === 0){\r\n                            blockSticky.removeClass('open-sticky');\r\n                        };\r\n                    })\r\n                };\r\n\r\n                var handleActiveVariant = function() {\r\n                    variantElm.off('click.activeVar').on('click.activeVar', function(e) {\r\n                        var self = $(this),\r\n                            text = self.text(),\r\n                            value = self.data('value'),\r\n                            newImage = self.data('img');\r\n\r\n                        variantElm.removeClass('active');\r\n                        self.addClass('active');\r\n                        blockSticky.toggleClass('open-sticky');\r\n\r\n                        blockSticky.find('.action input[type=hidden]').val(value);\r\n                        sltVariantActive.attr('data-value', value).text(text);\r\n\r\n                        var swatchNameValue = $('#add-to-cart-form [data-value-sticky=\"'+value+'\"]');\r\n\r\n                        swatchNameValue.each(function() {\r\n                            var slt = $(this).data('value');\r\n\r\n                            $('[data-value=\"'+slt+'\"]').closest('.swatch').find('#'+slt+'').click();\r\n                        });\r\n\r\n                        if(self.hasClass('sold-out')) {\r\n                            blockSticky.find('.sticky-add-to-cart').val(window.inventory_text.sold_out).addClass('disabled').attr('disabled', 'disabled');\r\n                        }else {\r\n                            blockSticky.find('.sticky-add-to-cart').removeClass('disabled').removeAttr('disabled').val(window.inventory_text.add_to_cart);\r\n                        };\r\n\r\n                        $('.pr-img img').attr({ src: newImage });\r\n\r\n                        return false;\r\n                    });\r\n                };\r\n\r\n                var stickyAddToCart = function() {\r\n                    doc.on('click', '[data-sticky-btn-addToCart]', function(e) {\r\n                        e.preventDefault();\r\n\r\n                        if($('#add-to-cart-form [data-btn-addToCart]').length) {\r\n                            $('#add-to-cart-form [data-btn-addToCart]').click();\r\n                        } else if($('#add-to-cart-form [data-grouped-addToCart]').length) {\r\n                            $('#add-to-cart-form [data-grouped-addToCart]').click();\r\n                        };\r\n\r\n                        return false;\r\n                    });\r\n                };\r\n\r\n                var activeVariantSelected = function() {\r\n                    var optionSelected = $('#product-selectors option:selected'),\r\n                        value = optionSelected.val(),\r\n                        stickyActive = blockSticky.find('.pr-swatch[data-value=\"'+value+'\"]'),\r\n                        stickyText = stickyActive.html();\r\n\r\n                    sltVariantActive.html(stickyText);\r\n                    stickyActive.addClass('active');\r\n\r\n                    var str = stickyActive.data('img');\r\n\r\n                    $('.pr-img img').attr({ src: str });\r\n\r\n                    $(\".swatch .swatch-element\").each(function(e) {\r\n                        var idVariant = $(this).find('input:radio').attr('id');\r\n\r\n                        $('.swatch input.text[data-value=\"'+idVariant+'\"]').appendTo($(this));\r\n                    });\r\n\r\n                    $('.selector-wrapper').change(function() {\r\n                        var n = $(\"#product-selectors\").val();\r\n\r\n                        $('.sticky_form .pr-selectors li').each(function(e) {\r\n                            var t = $(this).find('a').data('value');\r\n\r\n                            if(t == n){\r\n                                $(this).find('a').addClass('active')\r\n                            } else{\r\n                                $(this).find('a').removeClass('active')\r\n                            }\r\n                        });\r\n\r\n                        $(\"#product-selectors\").change(function() {\r\n                            var str = \"\";\r\n\r\n                            $(\"#product-selectors option:selected\").each(function() {\r\n                                str += $(this).data('imge');\r\n                            });\r\n\r\n                            $('.pr-img img').attr({ src: str });\r\n                        }).trigger(\"change\");\r\n\r\n                        if(variantElm.hasClass('active')) {\r\n                            var h = $('.sticky_form .pr-swatch.active').html();\r\n\r\n                            $('.sticky_form .action input[type=hidden]').val(n);\r\n                            sltVariantActive.html(h);\r\n                            sltVariantActive.attr('data-value', n);\r\n                        };\r\n                    });\r\n                };\r\n\r\n                var offSetTop = $('#add-to-cart-form .groups-btn').offset().top;\r\n\r\n                $(window).scroll(function () {\r\n                    var scrollTop = $(this).scrollTop();\r\n\r\n                    if (scrollTop > offSetTop) {\r\n                        body.addClass('show_sticky');\r\n                    }\r\n                    else {\r\n                        body.removeClass('show_sticky');\r\n                    }\r\n                });\r\n\r\n                showHideVariantsOptions();\r\n                handleActiveVariant();\r\n                stickyAddToCart();\r\n                activeVariantSelected();\r\n            };\r\n        },\r\n\r\n        createWishListTplItem: function(ProductHandle) {\r\n            var wishListCotainer = $('[data-wishlist-container]');\r\n\r\n            jQuery.getJSON(window.router + '/products/'+ProductHandle+'.js', function(product) {\r\n                var productHTML = '',\r\n                    price_min = Shopify.formatMoney(product.price_min, window.money_format);\r\n\r\n                productHTML += '<div class=\"grid-item\" data-wishlist-added=\"wishlist-'+product.id+'\">';\r\n                productHTML += '<div class=\"inner product-item\" data-product-id=\"product-'+product.handle+'\">';\r\n                productHTML += '<div class=\"column col-img\"><div class=\"product-image\">';\r\n                productHTML +='<a href=\"'+product.url+'\" class=\"product-grid-image\" data-collections-related=\"/collections/all?view=related\">';\r\n                if (product.featured_image) {\r\n                    productHTML += '<img src=\"'+product.featured_image+'\" alt=\"'+product.featured_image.alt+'\">';\r\n                }\r\n                productHTML += '</a></div></div>';\r\n                productHTML += '<div class=\"column col-prod\">';\r\n                productHTML += '<a class=\"product-title\" href=\"'+product.url+'\" title=\"'+product.title+'\">'+product.title+'</a>';\r\n                productHTML += '<div class=\"product-vendor\">';\r\n                productHTML += '<a href=\"' + window.router + '/collections/vendors?q='+product.vendor+'\" title=\"'+product.vendor+'\">'+product.vendor+'</a></div></div>';\r\n                productHTML += '<div class=\"column col-price text-center\"><div class=\"price-box\">'+ price_min +'</div></div>';\r\n                productHTML += '<div class=\"column col-options text-center\">';\r\n                productHTML += '<form action=\"/cart/add\" method=\"post\" class=\"variants\" id=\"wishlist-product-form-' + product.id +'\" data-id=\"product-actions-'+product.id+'\" enctype=\"multipart/form-data\">';\r\n\r\n                if (product.available) {\r\n                    if (product.variants.length == 1) {\r\n                        productHTML += '<button data-btn-addToCart class=\"btn add-to-cart-btn\" data-form-id=\"#wishlist-product-form-' + product.id +'\" type=\"submit\">'+window.inventory_text.add_to_cart+'</button><input type=\"hidden\" name=\"id\" value=\"'+ product.variants[0].id +'\" />';\r\n                    }\r\n                    if (product.variants.length > 1){\r\n                        productHTML += '<a class=\"btn\" title=\"'+product.title+'\" href=\"' + product.url +'\">'+window.inventory_text.select_options+'</a>';\r\n                    }\r\n                } else {\r\n                    productHTML += '<button class=\"btn add-to-cart-btn\" type=\"submit\" disabled=\"disabled\">'+window.inventory_text.unavailable+'</button>';\r\n                }\r\n\r\n                productHTML += '</form></div>';\r\n                productHTML += '<div class=\"column col-remove text-center\"><a class=\"whislist-added\" href=\"#\" data-product-handle=\"'+ product.handle +'\" data-icon-wishlist data-id=\"'+ product.id +'\"><svg class=\"closemnu\" version=\"1.1\" id=\"Capa_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" viewBox=\"0 0 357 357\" xml:space=\"preserve\"><g><g><polygon points=\"357,35.7 321.3,0 178.5,142.8 35.7,0 0,35.7 142.8,178.5 0,321.3 35.7,357 178.5,214.2 321.3,357 357,321.3 214.2,178.5\"></polygon></g></g></svg></a></div>';\r\n                productHTML += '</div></div>';\r\n\r\n                wishListCotainer.append(productHTML);\r\n                var regex = /(<([^>]+)>)/ig;\r\n                var href = $('.wrapper-wishlist a.share').attr(\"href\");\r\n                href += encodeURIComponent( product.title + '\\nPrice: ' + price_min.replace(regex, \"\") + '\\nLink: ' + window.location.protocol + '//' + window.location.hostname + product.url +'\\n\\n');\r\n                $('.wrapper-wishlist a.share').attr(\"href\", href );\r\n            });\r\n        },\r\n\r\n        initWishListPagging: function() {\r\n            var data = JSON.parse(localStorage.getItem('items'));\r\n\r\n            var wlpaggingContainer = $('#wishlist-paginate');\r\n            var paggingTpl = '<li class=\"text disabled prev\"><a href=\"#\" title=\"'+window.inventory_text.previous+'\"><i class=\"fa fa-angle-left\" aria-hidden=\"true\"></i><span>'+window.inventory_text.previous+'</span></a></li>';\r\n            var wishListCotainer = $('[data-wishlist-container]');\r\n\r\n            wlpaggingContainer.children().remove();\r\n\r\n            var totalPages = Math.ceil(data.length / 3);\r\n\r\n            if (totalPages <= 1) {\r\n                wishListCotainer.children().show();\r\n                return;\r\n            }\r\n\r\n            for (var i = 0; i < totalPages; i++) {\r\n                var pageNum = i + 1;\r\n                if (i === 0) paggingTpl += '<li class=\"active\"><a data-page=\"' + pageNum + '\" href=\"'+ pageNum +'\" title=\"'+ pageNum +'\">' + pageNum + '</a></li>'\r\n                else paggingTpl += '<li><a data-page=\"' + pageNum + '\" href=\"'+ pageNum +'\" title=\"'+ pageNum +'\">' + pageNum + '</a></li>'\r\n            }\r\n\r\n            paggingTpl += '<li class=\"text next\"><a href=\"#\" title=\"'+window.inventory_text.next+'\"><span>'+window.inventory_text.next+'</span><i class=\"fa fa-angle-right\" aria-hidden=\"true\"></i></a></li>';\r\n\r\n            wlpaggingContainer.append(paggingTpl);\r\n\r\n            wishListCotainer.children().each(function(idx, elm) {\r\n                if (idx >= 0 && idx < 3) {\r\n                    $(elm).show();\r\n                }\r\n                else {\r\n                    $(elm).hide();\r\n                }\r\n            });\r\n\r\n            wlpaggingContainer.off('click.wl-pagging').on('click.wl-pagging', 'li a', function(e) {\r\n                e.preventDefault();\r\n\r\n                var isPrev = $(this).parent().hasClass('prev');\r\n                var isNext = $(this).parent().hasClass('next');\r\n                var pageNumber = $(this).data('page');\r\n\r\n                if (isPrev) {\r\n                    var curPage = parseInt($(this).parent().siblings('.active').children().data('page'));\r\n                    pageNumber = curPage - 1;\r\n                }\r\n\r\n                if (isNext) {\r\n                    var curPage = parseInt($(this).parent().siblings('.active').children().data('page'));\r\n                    pageNumber = curPage + 1;\r\n                }\r\n\r\n                wishListCotainer.children().each(function(idx, elm) {\r\n                    if (idx >= (pageNumber - 1) * 3 && idx < pageNumber * 3) {\r\n                        $(elm).show();\r\n                    }\r\n                    else {\r\n                        $(elm).hide();\r\n                    }\r\n                });\r\n\r\n                if (pageNumber === 1) {\r\n                    wlpaggingContainer.find('.prev').addClass('disabled');\r\n                    wlpaggingContainer.find('.next').removeClass('disabled');\r\n                }\r\n                else if (pageNumber === totalPages) {\r\n                    wlpaggingContainer.find('.next').addClass('disabled');\r\n                    wlpaggingContainer.find('.prev').removeClass('disabled');\r\n                }\r\n                else {\r\n                    wlpaggingContainer.find('.prev').removeClass('disabled');\r\n                    wlpaggingContainer.find('.next').removeClass('disabled');\r\n                }\r\n\r\n                $(this).parent().siblings('.active').removeClass('active');\r\n                wlpaggingContainer.find('[data-page=\"' + pageNumber + '\"]').parent().addClass('active');\r\n\r\n            });\r\n        },\r\n\r\n        initWishLists: function() {\r\n            if (typeof(Storage) !== 'undefined') {\r\n                var data = JSON.parse(localStorage.getItem('items'));\r\n\r\n                if (data.length <= 0) {\r\n                    return;\r\n                }\r\n\r\n                data.forEach(function(item) {\r\n                    ella.createWishListTplItem(item);\r\n                });\r\n\r\n                this.initWishListPagging();\r\n                this.translateBlock('.wishlist-page');\r\n\r\n            } else {\r\n                alert('Sorry! No web storage support..');\r\n            }\r\n        },\r\n\r\n        setAddedForWishlistIcon: function(ProductHandle) {\r\n            var wishlistElm = $('[data-product-handle=\"'+ ProductHandle +'\"]'),\r\n                idxArr = wishListsArr.indexOf(ProductHandle);\r\n\r\n            if(idxArr >= 0) {\r\n                wishlistElm.addClass('whislist-added');\r\n                if($('.style_product_grid_3').length) {\r\n                    wishlistElm.find('.wishlist-text').text(window.inventory_text.remove_wishlist_1);\r\n                } else {\r\n                    wishlistElm.find('.wishlist-text').text(window.inventory_text.remove_wishlist);\r\n                }\r\n            }\r\n            else {\r\n                wishlistElm.removeClass('whislist-added');\r\n                if($('.style_product_grid_3').length) {\r\n                    wishlistElm.find('.wishlist-text').text(window.inventory_text.add_wishlist_1);\r\n                } else {\r\n                    wishlistElm.find('.wishlist-text').text(window.inventory_text.add_wishlist);\r\n                }\r\n            };\r\n        },\r\n\r\n        doAddOrRemoveWishlish: function() {\r\n            var iconWishListsSlt = '[data-icon-wishlist]';\r\n\r\n            doc.off('click.addOrRemoveWishlist', iconWishListsSlt).on('click.addOrRemoveWishlist', iconWishListsSlt, function(e) {\r\n                e.preventDefault();\r\n\r\n                var self = $(this),\r\n                    productId = self.data('id'),\r\n                    ProductHandle = self.data('product-handle'),\r\n                    idxArr = wishListsArr.indexOf(ProductHandle);\r\n\r\n                if(!self.hasClass('whislist-added')) {\r\n                    self.addClass('whislist-added');\r\n                    if($('.style_product_grid_3').length) {\r\n                        self.find('.wishlist-text').text(window.inventory_text.remove_wishlist_1);\r\n                    } else {\r\n                        self.find('.wishlist-text').text(window.inventory_text.remove_wishlist);\r\n                    }\r\n\r\n                    if($('[data-wishlist-container]').length) {\r\n                        ella.createWishListTplItem(ProductHandle);\r\n                    };\r\n\r\n                    wishListsArr.push(ProductHandle);\r\n                    localStorage.setItem('items', JSON.stringify(wishListsArr));\r\n                } else {\r\n                    self.removeClass('whislist-added');\r\n                    if($('.style_product_grid_3').length) {\r\n                        self.find('.wishlist-text').text(window.inventory_text.add_wishlist_1);\r\n                    } else {\r\n                        self.find('.wishlist-text').text(window.inventory_text.add_wishlist);\r\n                    }\r\n\r\n                    if($('[data-wishlist-added=\"wishlist-'+productId+'\"]').length) {\r\n                        $('[data-wishlist-added=\"wishlist-'+productId+'\"]').remove();\r\n                    }\r\n\r\n                    wishListsArr.splice(idxArr, 1);\r\n                    localStorage.setItem('items', JSON.stringify(wishListsArr));\r\n\r\n                    if($('[data-wishlist-container]').length) {\r\n                        ella.initWishListPagging();\r\n                    };\r\n                };\r\n\r\n                ella.setAddedForWishlistIcon(ProductHandle);\r\n            });\r\n        },\r\n\r\n        initWishListIcons: function() {\r\n            var wishListItems = localStorage.getItem('items') ? JSON.parse(localStorage.getItem('items')) : [];\r\n\r\n            if (!wishListItems.length) {\r\n                return;\r\n            }\r\n\r\n            for (var i = 0; i < wishListItems.length; i++) {\r\n                var icon = $('[data-product-handle=\"'+ wishListItems[i] +'\"]');\r\n                icon.addClass('whislist-added');\r\n\r\n                if($('.style_product_grid_3').length) {\r\n                    icon.find('.wishlist-text').text(window.inventory_text.remove_wishlist_1);\r\n                } else {\r\n                    icon.find('.wishlist-text').text(window.inventory_text.remove_wishlist);\r\n                }\r\n\r\n\r\n            };\r\n        },\r\n\r\n        setAddedForCompareIcon: function(ProductHandle) {\r\n            var compareElm = $('[data-compare-product-handle=\"'+ ProductHandle +'\"]'),\r\n                idxArr = compareArr.indexOf(ProductHandle),\r\n                compareCountNum = $('[data-compare-count]');\r\n\r\n                compareItems = localStorage.getItem('compareArr') ? JSON.parse(localStorage.getItem('compareArr')) : [];\r\n                totalProduct = Math.ceil(compareItems.length);\r\n\r\n            if(idxArr >= 0) {\r\n                compareElm.addClass('compare-added');\r\n                compareElm.find('[data-change-text-compare]').text(window.inventory_text.remove_compare);\r\n            }\r\n            else {\r\n                compareElm.removeClass('compare-added');\r\n                compareElm.find('[data-change-text-compare]').text(window.inventory_text.add_compare);\r\n            };\r\n\r\n            if ($('.l'))\r\n\r\n            compareCountNum.text(totalProduct);\r\n\r\n            if(totalProduct >=2){\r\n                $('.compare-link').addClass('open');\r\n            }else{\r\n                $('.compare-link').removeClass('open');\r\n            }\r\n        },\r\n\r\n        doAddOrRemoveCompare: function() {\r\n            var iconCompare = '[data-icon-compare]';\r\n\r\n            doc.off('click.doAddOrRemoveCompare', iconCompare).on('click.doAddOrRemoveCompare', iconCompare, function(e) {\r\n                e.preventDefault();\r\n\r\n                var self = $(this),\r\n                    productId = self.data('id'),\r\n                    ProductHandle = self.data('compare-product-handle'),\r\n                    idxArr = compareArr.indexOf(ProductHandle);\r\n                if(!self.hasClass('compare-added')) {\r\n                    // self.find('.compare-text').text(window.inventory_text.remove_compare);\r\n\r\n\r\n                    compareArr.push(ProductHandle);\r\n                    localStorage.setItem('compareArr', JSON.stringify(compareArr));\r\n\r\n                    ella.createCompareItem(ProductHandle);\r\n                    self.addClass('compare-added');\r\n\r\n                } else {\r\n                    self.removeClass('compare-added');\r\n                    // self.find('.compare-text').text(window.inventory_text.add_to_compare);\r\n                    if($('[data-compare-added=\"compare-'+productId+'\"]').length) {\r\n                        $('[data-compare-added=\"compare-'+productId+'\"]').remove();\r\n                    }\r\n\r\n                    compareArr.splice(idxArr, 1);\r\n                    localStorage.setItem('compareArr', JSON.stringify(compareArr));\r\n                };\r\n\r\n                ella.setAddedForCompareIcon(ProductHandle);\r\n            });\r\n        },\r\n\r\n        initCompareIcons: function() {\r\n\r\n            var compareCountNum = $('[data-compare-count]');\r\n\r\n                totalProduct = Math.ceil(compareArr.length);\r\n                compareCountNum.text(totalProduct);\r\n\r\n            if (!compareArr.length) {\r\n                return;\r\n            } else {\r\n\r\n                for (var i = 0; i < compareArr.length; i++) {\r\n                    var icon = $('[data-compare-product-handle=\"'+ compareArr[i] +'\"]');\r\n                    icon.addClass('compare-added');\r\n                    // icon.find('.compare-text').text(window.inventory_text.remove_compare);\r\n                };\r\n\r\n                if (typeof(Storage) !== 'undefined') {\r\n\r\n                    if (compareArr.length <= 0) {\r\n                        return;\r\n                    }\r\n\r\n                    setTimeout(function() {\r\n                        compareArr.forEach(function(item) {\r\n                            ella.createCompareItem(item);\r\n                            ella.setAddedForCompareIcon(item);\r\n                        });\r\n                    },1500);\r\n\r\n\r\n                } else {\r\n                    alert('Sorry! No web storage support..');\r\n                }\r\n\r\n            }\r\n        },\r\n\r\n        initCompareSelected: function() {\r\n            var iconCompareSelected = '[data-compare-selected]';\r\n                compareModal = $('[data-compare-modal]');\r\n                compareModalProduct = compareModal.find('.product-grid');\r\n                compareModalMessage = $('[data-compare-message-modal]');\r\n\r\n            doc.off('click.compareSelected', iconCompareSelected).on('click.compareSelected', iconCompareSelected, function(e) {\r\n                e.preventDefault();\r\n                e.stopPropagation();\r\n\r\n                if (typeof(Storage) !== 'undefined') {\r\n\r\n                    if (compareArr.length <= 1) {\r\n                        compareModalMessage.find('.halo-modal-body').text(window.inventory_text.message_compare);\r\n                        compareModalMessage.fadeIn(500, function () {\r\n                            html.addClass('halo-modal-open');\r\n                        });\r\n\r\n                        body.addClass('has-popup');\r\n\r\n                    } else {\r\n                        compareArr.forEach(function(item) {\r\n                            ella.removeCompareItem(item);\r\n                        });\r\n\r\n                        compareModal.fadeIn(600, function () {\r\n                            html.addClass('halo-modal-open');\r\n                        });\r\n\r\n                        ella.removeAllCompareItem();\r\n                    }\r\n\r\n                } else {\r\n                    alert('Sorry! No web storage support..');\r\n                }\r\n\r\n                ella.closeSuccessModal();\r\n                ella.translateBlock('.ajax-compare');\r\n                ella.translateBlock('.compare-message-modal');\r\n            });\r\n        },\r\n\r\n        createCompareItem: function(ProductHandle) {\r\n            var compareProduct = $('[data-compare-modal]').find('.halo-modal-body .compare-content .product-grid'),\r\n                compareRating = $('[data-compare-modal]').find('.halo-modal-body .compare-content .rating'),\r\n                compareDescription = $('[data-compare-modal]').find('.halo-modal-body .compare-content .description'),\r\n                compareCollection = $('[data-compare-modal]').find('.halo-modal-body .compare-content .collection'),\r\n                compareAvailability = $('[data-compare-modal]').find('.halo-modal-body .compare-content .availability'),\r\n                compareProductType = $('[data-compare-modal]').find('.halo-modal-body .compare-content .product-type'),\r\n\r\n                compareSKU = $('[data-compare-modal]').find('.halo-modal-body .compare-content .product-sku'),\r\n                compareOption1 = $('[data-compare-modal]').find('.option1'),\r\n                compareOption2 = $('[data-compare-modal]').find('.option2'),\r\n                compareOption3 = $('[data-compare-modal]').find('.option3');\r\n\r\n\r\n            jQuery.getJSON('/products/'+ProductHandle+'.js', function(product) {\r\n                var productHTML = '',\r\n                    priceHTML = '',\r\n                    productLabelHTML = '',\r\n                    ratingHTML = '',\r\n                    descriptionHTML = '',\r\n                    collectionHTML = '',\r\n                    availabilityHTML = '',\r\n                    productTypeHTML = '',\r\n                    skuHTML = '',\r\n                    optionValueHTML = '',\r\n                    optionValueHTML2 = '',\r\n                    price_min = Shopify.formatMoney(product.price_min, window.money_format);\r\n\r\n                var productIDCompare = product.id;\r\n\r\n               // Rating\r\n               var rating = '<span class=\"shopify-product-reviews-badge\" data-id=\"'+productIDCompare+'\"></span>';\r\n               // Description\r\n               var desc =  product.description.substring(0,100) + '...',\r\n               domparser = new DOMParser(),\r\n               descriptionHTML = domparser.parseFromString(desc, \"text/html\");\r\n               // Label\r\n               var labelSale = (( product.compare_at_price - product.price )/ product.compare_at_price) * 100,\r\n               arrayTags = product.tags,\r\n               percentDiscount = Math.floor(labelSale);\r\n\r\n\r\n\r\n                // Option\r\n            var productOptions = product.options;\r\n\r\n            $.each(productOptions, function(index, opt) {\r\n                var optPosition = opt.position,\r\n                    optName = opt.name.toLowerCase(),\r\n                    optValue = opt.values,\r\n                    optValueText = '';\r\n\r\n                optValue.forEach(function(value, index) {\r\n                    if (value) {\r\n                        if (index > 0) {\r\n                            optValueText += ', '\r\n                        }\r\n                        optValueText += value;\r\n                    }\r\n                })\r\n\r\n                optionValueHTML2 += '<div class=\"col-xl-3\" data-compare-added=\"compare-'+product.id+'\">-</div>';\r\n\r\n                if (optValueText == '' || optValueText == 'Default Title') {\r\n                    optionValueHTML += '<div class=\"col-xl-3\" data-compare-added=\"compare-'+product.id+'\">-</div>';\r\n                } else {\r\n                    optionValueHTML += '<div class=\"col-xl-3\" data-compare-added=\"compare-'+product.id+'\">'+optValueText+'</div>';\r\n                }\r\n\r\n                var optionOneValue = window.option_ptoduct1,\r\n                    optionTwoValue = window.option_ptoduct2;\r\n                    optionThreeValue = window.option_ptoduct3;\r\n                if (optPosition == 1) {\r\n                    if (optName == optionOneValue) {\r\n                        compareOption1.append(optionValueHTML);\r\n                        compareOption2.append(optionValueHTML2);\r\n                        compareOption3.append(optionValueHTML2);\r\n                    } else if (optName == optionTwoValue) {\r\n                        compareOption1.append(optionValueHTML2);\r\n                        compareOption2.append(optionValueHTML);\r\n                        compareOption3.append(optionValueHTML2);\r\n                    } else if (optName == 'title') {\r\n                        compareOption1.append(optionValueHTML2);\r\n                        compareOption2.append(optionValueHTML2);\r\n                        compareOption3.append(optionValueHTML2);\r\n                    } else {\r\n                        compareOption1.append(optionValueHTML2);\r\n                        compareOption2.append(optionValueHTML2);\r\n                        compareOption3.append(optionValueHTML);\r\n                    }\r\n                }\r\n                if (optPosition == 2) {\r\n                    if (optName == optionOneValue) {\r\n                        compareOption1.find('[data-compare-added=\"compare-'+product.id+'\"]').html(optValueText);\r\n                    } else  if (optName == optionTwoValue) {\r\n                        compareOption2.find('[data-compare-added=\"compare-'+product.id+'\"]').html(optValueText);\r\n                    } else {\r\n                        compareOption3.find('[data-compare-added=\"compare-'+product.id+'\"]').html(optValueText);\r\n                    }\r\n                }\r\n                if (optPosition == 3) {\r\n                    if (optName == optionOneValue) {\r\n                        compareOption1.find('[data-compare-added=\"compare-'+product.id+'\"]').html(optValueText);\r\n                    } else  if (optName == optionTwoValue) {\r\n                        compareOption2.find('[data-compare-added=\"compare-'+product.id+'\"]').html(optValueText);\r\n                    } else {\r\n                        compareOption3.find('[data-compare-added=\"compare-'+product.id+'\"]').html(optValueText);\r\n                    }\r\n                }\r\n            });\r\n\r\n\r\n                if (rating == '' || rating == undefined) {\r\n                    ratingHTML += '<div class=\"col-xl-3\" data-compare-added=\"compare-'+product.id+'\"></div>';\r\n                } else {\r\n                    ratingHTML += '<div class=\"col-xl-3\" data-compare-added=\"compare-'+product.id+'\">'+rating+'</div>';\r\n                }\r\n                compareRating.append(ratingHTML);\r\n\r\n\r\n               if (desc == '' || desc == undefined ) {\r\n                    descriptionHTML += '<div class=\"col-xl-3\" data-compare-added=\"compare-'+product.id+'\">-</div>';\r\n\r\n               } else {\r\n                    descriptionHTML += '<div class=\"col-xl-3\" data-compare-added=\"compare-'+product.id+'\">'+desc+'</div>';\r\n               }\r\n               compareDescription.append(descriptionHTML);\r\n\r\n\r\n               var sku = product.variants;\r\n\r\n               if (sku.length > 1) {\r\n                    $.each( sku, function( key, value ) {\r\n                        if(key == 0){\r\n                            skuValue = value.sku;\r\n                            if(skuValue == \"\"){\r\n                               skuValueHTML = '<div class=\"col-xl-3\" data-compare-added=\"compare-'+product.id+'\">-</div>';\r\n                               skuHTML += skuValueHTML;\r\n                            }\r\n                            else{\r\n                                skuValueHTML = '<div class=\"col-xl-3\" data-compare-added=\"compare-'+product.id+'\">'+skuValue+'</div>';\r\n                                skuHTML += skuValueHTML;\r\n                            }\r\n                        }\r\n                    });\r\n               } else {\r\n                skuHTML += '<div class=\"col-xl-3\" data-compare-added=\"compare-'+product.id+'\">-</div>';\r\n               }\r\n\r\n               compareSKU.append(skuHTML);\r\n\r\n\r\n\r\n                productHTML += '<div class=\"grid-item col-xl-3 product-item\" data-compare-added=\"compare-'+product.id+'\">';\r\n                productHTML += '<div class=\"inner\" data-product-id=\"product-'+product.handle+'\"><div class=\"inner-top\"';\r\n                productHTML += '<div class=\"product-top\"><div class=\"product-image\">';\r\n                productHTML +='<a href=\"'+product.url+'\" class=\"product-grid-image\" data-collections-related=\"/collections/all?view=related\">';\r\n                if (product.featured_image) {\r\n                    productHTML += '<img src=\"'+product.featured_image+'\" alt=\"'+product.featured_image.alt+'\">';\r\n                }\r\n                productHTML += '</a></div>';\r\n                productHTML += '<div class=\"product-label\">';\r\n                if(product.compare_at_price > product.price){\r\n                    if(window.label_sale == 'label_sale'){\r\n                        productHTML += '<strong class=\"label sale-label\">'+ window.inventory_text.salelabel +' </strong>';\r\n                        productHTML += '<br>';\r\n                    }else{\r\n                        productHTML += '<strong class=\"label sale-label\">- '+percentDiscount+'% </strong>';\r\n                        productHTML += '<br>';\r\n                    }\r\n                }\r\n                if (product.available == false) {\r\n                    productHTML += '<strong class=\"label sold-out-label\">'+ window.inventory_text.soldoutlabel +' </strong>';\r\n                    productHTML += '<br>';\r\n                }\r\n\r\n                arrayTags.forEach(function(element){\r\n                    if(element == 'new'){\r\n                      productHTML += '<strong class=\"label new-label\">'+ window.inventory_text.newlabel +' </strong>';\r\n                      productHTML += '<br>';\r\n                    }\r\n                    if(element == 'Custom Label'){\r\n                      productHTML += '<strong class=\"label custom-label\">'+ window.inventory_text.customlabel +' </strong>';\r\n                      productHTML += '<br>';\r\n                    }\r\n                    if(element == 'bundle') {\r\n                      productHTML += '<strong class=\"label bundle-label\">'+ window.inventory_text.bundlelabel +' </strong>';\r\n                      productHTML += '<br>';\r\n                    }\r\n                })\r\n\r\n                productHTML += '</div></div></div>';\r\n                productHTML += '<div class=\"product-bottom\">';\r\n                productHTML += '<div class=\"product-vendor\">';\r\n                productHTML += '<a href=\"/collections/vendors?q='+product.vendor+'\" title=\"'+product.vendor+'\">'+product.vendor+'</a></div>';\r\n                productHTML += '<a class=\"product-title\" href=\"'+product.url+'\" title=\"'+product.title+'\">'+product.title+'</a>';\r\n                productHTML += '<div class=\"column col-price text-center\"><div class=\"price-box\">';\r\n                if(product.compare_at_price > product.price){\r\n                  productHTML += '<span class=\"price-sale\">';\r\n                    productHTML += '<span class=\"old-price\">' + Shopify.formatMoney(product.variants[0].compare_at_price  , window.money_format) + '</span>';\r\n                    productHTML += '<span class=\"price special-price\" itemprop=\"price\"> '+ Shopify.formatMoney(product.price, window.money_format)+'</span>';\r\n                    productHTML +='</span>';\r\n                }else{\r\n                    productHTML += '<span> '+ Shopify.formatMoney(product.price, window.money_format)+'</span>';\r\n                }\r\n                productHTML += '</div></div>';\r\n\r\n                productHTML += '<div class=\"column col-options text-center\">';\r\n                productHTML += '<form action=\"/cart/add\" method=\"post\" class=\"variants\" id=\"-'+product.id+'\" data-id=\"product-actions-'+product.id+'\" enctype=\"multipart/form-data\">';\r\n\r\n                if (product.available) {\r\n                    if (product.variants.length == 1) {\r\n                        productHTML += '<button data-btn-addToCart class=\"btn add-to-cart-btn\" type=\"submit\" data-form-id=\"#-'+product.id+'\" >'+window.inventory_text.add_to_cart+'</button><input type=\"hidden\" name=\"id\" value=\"'+ product.variants[0].id +'\" />';\r\n                    }\r\n                    if (product.variants.length > 1){\r\n                        productHTML += '<a class=\"btn\" title=\"'+product.title+'\" href=\"'+product.url +'\">'+window.inventory_text.select_options+'</a>';\r\n                    }\r\n                    availabilityHTML += '<div class=\"col-xl-3 in-stock\" data-compare-added=\"compare-'+product.id+'\">'+window.inventory_text.in_stock+'</div>';\r\n                } else {\r\n                    productHTML += '<button data-btn-addToCart class=\"btn add-to-cart-btn\" type=\"submit\" disabled=\"disabled\">'+window.inventory_text.unavailable+'</button>';\r\n                    availabilityHTML += '<div class=\"col-xl-3 unavailable\" data-compare-added=\"compare-'+product.id+'\">'+window.inventory_text.unavailable+'</div>';\r\n                }\r\n\r\n                productHTML += '</form></div>';\r\n                productHTML += '<div class=\"column col-remove text-center\"><a class=\"compare-added\" href=\"#\" data-icon-compare-added data-compare-product-handle=\"'+ product.handle +'\" data-id=\"'+ product.id +'\">'+window.inventory_text.remove+'</a></div></div>';\r\n\r\n                productHTML += '</div></div></div>';\r\n\r\n                compareProduct.append(productHTML);\r\n\r\n                productTypeHTML += '<div class=\"col-xl-3\" data-compare-added=\"compare-'+product.id+'\">'+product.type+'</div>';\r\n\r\n                compareAvailability.append(availabilityHTML);\r\n                compareProductType.append(productTypeHTML);\r\n                if ($(\".spr-badge\").length > 0) {\r\n                  return window.SPR.registerCallbacks(), window.SPR.initRatingHandler(), window.SPR.initDomEls(), window.SPR.loadProducts(), window.SPR.loadBadges();\r\n                }\r\n            });\r\n        },\r\n\r\n        removeCompareItem: function(ProductHandle) {\r\n            var iconCompareRemove = '[data-icon-compare-added]';\r\n\r\n            doc.off('click.removeCompareItem', iconCompareRemove).on('click.removeCompareItem', iconCompareRemove, function(e) {\r\n                e.preventDefault();\r\n                e.stopPropagation();\r\n\r\n                var self = $(this),\r\n                    productId = self.data('id'),\r\n                    ProductHandle = self.data('compare-product-handle'),\r\n                    idxArr = compareArr.indexOf(ProductHandle);\r\n\r\n                if($('[data-compare-added=\"compare-'+productId+'\"]').length) {\r\n                    $('[data-compare-added=\"compare-'+productId+'\"]').remove();\r\n\r\n                }\r\n\r\n                compareArr.splice(idxArr, 1);\r\n                localStorage.setItem('compareArr', JSON.stringify(compareArr));\r\n\r\n                ella.setAddedForCompareIcon(ProductHandle);\r\n            });\r\n        },\r\n\r\n        removeAllCompareItem: function(ProductHandle) {\r\n            var compareRemoveAll = '[data-compare-remove-all]';\r\n                compareCountNum = $('[data-compare-count]');\r\n                compareElm = $('[data-icon-compare]');\r\n\r\n            doc.off('click.removeAllCompareItem', compareRemoveAll).on('click.removeAllCompareItem', compareRemoveAll, function(e) {\r\n                e.preventDefault();\r\n                e.stopPropagation();\r\n\r\n                 $('[data-compare-added]').remove();\r\n\r\n                 compareArr.splice(0,compareArr.length);\r\n                 localStorage.setItem('compareArr', JSON.stringify(compareArr));\r\n\r\n                 if (compareElm.hasClass('compare-added')) {\r\n                    compareElm.removeClass('compare-added');\r\n                    // compareElm.find('.compare-text').text(window.inventory_text.add_compare);\r\n                 }\r\n\r\n                 $('.compare-link').removeClass('open');\r\n\r\n                 totalProduct = Math.ceil(compareArr.length);\r\n                 compareCountNum.text(totalProduct);\r\n            })\r\n        },\r\n\r\n        wrapTable: function(){\r\n            var table = $('.tab-content').find('table');\r\n            if(table.length){\r\n                table.each(function(){\r\n                    $(this).wrap('<div class=\"table-wrapper\"></div>')\r\n                })\r\n            }\r\n        },\r\n\r\n        initBundleProducts: function() {\r\n\r\n            var btnAddToCartSlt = '[data-bundle-addToCart]',\r\n                bundleImagesSlide = $('[data-bundle-images-slider]'),\r\n                btnToggleOptionsSlt = '.fbt-toogle-options',\r\n                bundlePrice = $('.products-grouped-action .bundle-price'),\r\n                bundleCheckbox = '.bundle-checkbox';\r\n\r\n            var replaceDiscountRate = function(){\r\n                if(bundlePrice.length > 0){\r\n                    var discountRate = bundlePrice.data('discount-rate')*100;\r\n                    var discountText = $('.products-grouped-action .discount-text span');\r\n                    if(discountText.length > 0){\r\n                        discountText.each(function(){\r\n                            $(this).text($(this).text().replace('[discount]',discountRate)).parent().show();\r\n                        })\r\n                    }\r\n\r\n                }\r\n            }\r\n\r\n            var bundleSlider = function() {\r\n                if(bundleImagesSlide.length && bundleImagesSlide.not('.slick-initialized')) {\r\n                    if ((window.layout_style == 'layout_style_1170') || (window.layout_style == 'layout_style_fullwidth') || (window.layout_style == 'layout_style_flower') || (window.layout_style == 'layout_style_suppermarket')) {\r\n                        if(window.product_style == 'skin_1') {\r\n                            var images = 3;\r\n                        } else if(window.product_style == 'supermarket') {\r\n                            var images = 4;\r\n                        } else {\r\n                            var images = bundleImagesSlide.data('rows');\r\n                        }\r\n                    } else {\r\n                        var images = bundleImagesSlide.data('rows');\r\n                    }\r\n\r\n                    bundleImagesSlide.slick({\r\n                        get slidesToShow() {\r\n                            if(images >= 5) {\r\n                                return this.slidesToShow = 5;\r\n                            }\r\n                            else {\r\n                                return this.slidesToShow = images;\r\n                            }\r\n                        },\r\n                        slidesToScroll: 1,\r\n                        dots: false,\r\n                        infinite: false,\r\n                        speed: 800,\r\n                        get nextArrow() {\r\n                            if ((window.layout_style == 'layout_style_1170') || (window.layout_style == 'layout_style_flower')) {\r\n                                return this.nextArrow = '<button type=\"button\" class=\"slick-next\"><svg viewBox=\"0 0 50 50\"><path d=\"M 11.957031 13.988281 C 11.699219 14.003906 11.457031 14.117188 11.28125 14.308594 L 1.015625 25 L 11.28125 35.691406 C 11.527344 35.953125 11.894531 36.0625 12.242188 35.976563 C 12.589844 35.890625 12.867188 35.625 12.964844 35.28125 C 13.066406 34.933594 12.972656 34.5625 12.71875 34.308594 L 4.746094 26 L 48 26 C 48.359375 26.003906 48.695313 25.816406 48.878906 25.503906 C 49.058594 25.191406 49.058594 24.808594 48.878906 24.496094 C 48.695313 24.183594 48.359375 23.996094 48 24 L 4.746094 24 L 12.71875 15.691406 C 13.011719 15.398438 13.09375 14.957031 12.921875 14.582031 C 12.753906 14.203125 12.371094 13.96875 11.957031 13.988281 Z\"></path></svg></button>';\r\n                            } else if ((window.layout_style == 'layout_style_fullwidth') || (window.layout_style == 'layout_style_suppermarket')){\r\n                                return this.nextArrow = '<button type=\"button\" class=\"slick-next\"><svg viewBox=\"0 0 478.448 478.448\" class=\"icon icon-chevron-right\" id=\"icon-chevron-right\"><g><g><polygon points=\"131.659,0 100.494,32.035 313.804,239.232 100.494,446.373 131.65,478.448 377.954,239.232\"></polygon></g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g></svg></button>';\r\n                            }\r\n                            else {\r\n                                return this.nextArrow = '<button type=\"button\" class=\"slick-next\"><i class=\"fa fa-angle-right\"></i></button>';\r\n                            }\r\n                        },\r\n                        get prevArrow() {\r\n                            if ((window.layout_style == 'layout_style_1170') || (window.layout_style == 'layout_style_flower')) {\r\n                                return this.prevArrow = '<button type=\"button\" class=\"slick-prev\"><svg viewBox=\"0 0 50 50\"><path d=\"M 11.957031 13.988281 C 11.699219 14.003906 11.457031 14.117188 11.28125 14.308594 L 1.015625 25 L 11.28125 35.691406 C 11.527344 35.953125 11.894531 36.0625 12.242188 35.976563 C 12.589844 35.890625 12.867188 35.625 12.964844 35.28125 C 13.066406 34.933594 12.972656 34.5625 12.71875 34.308594 L 4.746094 26 L 48 26 C 48.359375 26.003906 48.695313 25.816406 48.878906 25.503906 C 49.058594 25.191406 49.058594 24.808594 48.878906 24.496094 C 48.695313 24.183594 48.359375 23.996094 48 24 L 4.746094 24 L 12.71875 15.691406 C 13.011719 15.398438 13.09375 14.957031 12.921875 14.582031 C 12.753906 14.203125 12.371094 13.96875 11.957031 13.988281 Z\"></path></svg></button>';\r\n                            } else if ((window.layout_style == 'layout_style_fullwidth') || (window.layout_style == 'layout_style_suppermarket')){\r\n                                return this.prevArrow = '<button type=\"button\" class=\"slick-prev\"><svg viewBox=\"0 0 370.814 370.814\" class=\"icon icon-chevron-left\" id=\"icon-chevron-left\"><g><g><polygon points=\"292.92,24.848 268.781,0 77.895,185.401 268.781,370.814 292.92,345.961 127.638,185.401\"></polygon></g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g></svg></button>';\r\n                            }\r\n                            else {\r\n                                return this.prevArrow = '<button type=\"button\" class=\"slick-prev\"><i class=\"fa fa-angle-left\"></i></button>';\r\n                            }\r\n                        },\r\n                        responsive: [\r\n                            {\r\n                                breakpoint: 1025,\r\n                                settings: {\r\n                                    get slidesToShow() {\r\n                                        if (window.layout_style == 'layout_style_suppermarket') {\r\n                                            return this.slidesToShow = 3;\r\n                                        }\r\n                                    },\r\n                                }\r\n                            },\r\n                            {\r\n                                breakpoint: 992,\r\n                                settings: {\r\n                                    get slidesToShow() {\r\n                                        if (window.layout_style == 'layout_style_suppermarket') {\r\n                                            return this.slidesToShow = 2;\r\n                                        } else {\r\n                                            if(images >= 4) {\r\n                                                return this.slidesToShow = 4;\r\n                                            }\r\n                                            else {\r\n                                                return this.slidesToShow = images;\r\n                                            }\r\n                                        }\r\n                                    },\r\n                                }\r\n                            },\r\n                            {\r\n                                breakpoint: 480,\r\n                                settings: {\r\n                                    get slidesToShow() {\r\n                                        if ((window.layout_style == 'layout_style_1170') || (window.layout_style == 'layout_style_fullwidth') || (window.layout_style == 'layout_style_suppermarket')) {\r\n                                            return this.slidesToShow = 2;\r\n                                        } else {\r\n                                            if(images > 3) {\r\n                                                return this.slidesToShow = 3;\r\n                                            }\r\n                                            else {\r\n                                                return this.slidesToShow = images;\r\n                                            }\r\n                                        }\r\n\r\n                                    }\r\n                                }\r\n                            }\r\n                        ]\r\n                    });\r\n                }\r\n            };\r\n\r\n            var toggleVariantOptions = function() {\r\n                body.off('click.toggleVariantOptions', btnToggleOptionsSlt).on('click.toggleVariantOptions', btnToggleOptionsSlt, function(e) {\r\n                    e.preventDefault();\r\n\r\n                    $(this).next().slideToggle();\r\n                })\r\n            };\r\n\r\n            var toggleVariantOptions_layout_1170 = function() {\r\n                body.off('click.toggleVariantOptions', btnToggleOptionsSlt).on('click.toggleVariantOptions', btnToggleOptionsSlt, function(e) {\r\n                    e.preventDefault();\r\n                    var id = $(this).data('product-id');\r\n                    $('body').addClass('show_bundle_variant');\r\n                    $(this).parents('.fbt-product-item').find('.product-options').prependTo('.product-review_variant');\r\n                    $('.product-review_variant').find('[data-fbt-pro-id=' + id + ']').show();\r\n                    disableSoldoutSwatchBundle($('[data-fbt-pro-id=' + id + ']'));\r\n                });\r\n\r\n                $(document).off('click', '.close-options, .overplay_bundle').on('click', '.close-options, .overplay_bundle', function(e) {\r\n                    e.preventDefault();\r\n                    $('body').removeClass('show_bundle_variant');\r\n                    $('.product-review_variant .product-options').hide();\r\n                })\r\n            };\r\n\r\n            var handleCheckedProduct = function() {\r\n                // check all checkbox on loadpage\r\n                $('.fbt-checkbox input').prop('checked',true);\r\n\r\n                body.off('click.checkedProduct', bundleCheckbox).on('click.checkedProduct', bundleCheckbox, function(e) {\r\n                    e.preventDefault();\r\n\r\n                    var self = $(this),\r\n                        ipt = self.prev(),\r\n                        dataId = self.closest('.fbt-product-item').data('bundle-product-id');\r\n\r\n                    if(!ipt.prop('checked')) {\r\n                        ipt.prop('checked', true);\r\n                        $('[data-bundle-product-id=\"'+ dataId +'\"]').addClass('isChecked');\r\n                    } else {\r\n                        ipt.prop('checked', false);\r\n\r\n                        $('[data-bundle-product-id=\"'+ dataId +'\"]').removeClass('isChecked');\r\n                    };\r\n                    updateTotalPrice();\r\n                })\r\n            };\r\n\r\n            var initSelectedSwatch = function() {\r\n                $('.fbt-product-item').each(function() {\r\n                    var self = $(this);\r\n                    var productId = self.data('bundle-product-id');\r\n                    var selectedVariantId = $(this).find('[name=\"group_id\"]').val();\r\n                    var productOpts = self.find('.swatch');\r\n                    var variantArr = window.productVariants[productId];\r\n\r\n                    if (!variantArr) {\r\n                        return;\r\n                    }\r\n                    // Get selected variant\r\n                    var selectedVariant = variantArr.find(function(variant){\r\n                        return variant.id == selectedVariantId\r\n                    });\r\n\r\n                    // Check selected swatch\r\n                    productOpts.each(function(index){\r\n                        var optionIndex = 'option' + (index + 1);\r\n                        var selectedSwatch = $(this).find('.swatch-element[data-value=\"'+selectedVariant[optionIndex]+'\"]');\r\n\r\n                        selectedSwatch.find('input').prop('checked', true);\r\n                    })\r\n\r\n                });\r\n\r\n            }\r\n\r\n            var updateTotalPrice = function() {\r\n                var bundleProItem = $('.fbt-product-item.isChecked');\r\n                var bundlePrice = $('.products-grouped-action .bundle-price');\r\n                var oldPrice = $('.products-grouped-action .old-price');\r\n                var discountRate = bundlePrice.data('discount-rate');\r\n                var totalPrice = 0;\r\n                var checkedProductLength = $('.fbt-product-item.isChecked').length;\r\n                var maxProduct = $('.fbt-product-item').length;\r\n\r\n                bundleProItem.each(function() {\r\n                    var selectElm = $(this).find('select[name=group_id]'),\r\n                        inputElm = $(this).find('input[name=group_id]');\r\n\r\n                    if(selectElm.length) {\r\n                        var price = selectElm.find(':selected').data('price');\r\n                    } else {\r\n                      if (inputElm.length) {\r\n                        var price = $(this).find('input[name=group_id]').data('price');\r\n                      } else {\r\n                        var price = $(this).find('input[name=id]').data('price');\r\n                      }\r\n                    }\r\n\r\n                    if(price) {\r\n                        totalPrice += price;\r\n\r\n                        if(bundlePrice.length > 0 && oldPrice.length > 0){\r\n                            oldPrice.html(Shopify.formatMoney(totalPrice, window.money_format));\r\n                            bundlePrice.html(Shopify.formatMoney(totalPrice*(1 - discountRate), window.money_format));\r\n                             if(checkedProductLength == maxProduct){\r\n                                window.bundleMatch = true;\r\n                                bundlePrice.show();\r\n                                oldPrice.show();\r\n                                $('.products-grouped-action .price').hide();\r\n                            }else{\r\n                                window.bundleMatch = false;\r\n                                bundlePrice.hide();\r\n                                oldPrice.hide();\r\n                                $('.products-grouped-action .price').show();\r\n                            }\r\n                        }\r\n\r\n                        $('.products-grouped-action .total .price').html(Shopify.formatMoney(totalPrice, window.money_format));\r\n\r\n\r\n                    };\r\n                })\r\n                if (ella.checkNeedToConvertCurrency()) {\r\n                  Currency.convertAll(window.shop_currency, $('#currencies .active').attr('data-currency'), 'span.money', 'money_format');\r\n                }\r\n            };\r\n\r\n            var disableSoldoutSwatchAllBundles = function(){\r\n                var productItem = $('.fbt-product-item');\r\n                productItem.each(function(){\r\n                    var self = $(this);\r\n                    disableSoldoutSwatchBundle(self);\r\n                })\r\n                // var productItem = $('.product-review_variant').find('[data-fbt-pro-id]');\r\n\r\n                // disableSoldoutSwatchBundle(productItem);\r\n            };\r\n\r\n            var disableSoldoutSwatchBundle = function(productItem){\r\n                var productId = productItem.data('bundle-product-id');\r\n                if (productId == undefined) {\r\n                  productId = productItem.data('fbt-pro-id');\r\n                }\r\n                // var productId = productItem.find('[data-popup-bundle-product-id]').data('popup-bundle-product-id');\r\n                var variantList = window.productVariants[productId];\r\n                var options = productItem.find('[data-option-idx]');\r\n                var selectedSwatchOpt1 = productItem.find('[data-option-idx=\"0\"]').find('input:checked').val();\r\n                var selectedSwatchOpt2 = productItem.find('[data-option-idx=\"1\"]').find('input:checked').val();\r\n                var selectedSwatchOpt3 = productItem.find('[data-option-idx=\"2\"]').find('input:checked').val();\r\n\r\n                options.each(function(){\r\n                    var optionIndex = $(this).data('option-idx');\r\n                    var swatch = $(this).find('.swatch-element');\r\n                    switch (optionIndex) {\r\n                        case 0:\r\n                        // loop through all swatchs in option 1 anh filter sold out swatch\r\n                        swatch.each(function(){\r\n                            var swatchVal = $(this).data('value');\r\n                            var opt1Soldout = variantList.find(function(variant){\r\n                                return variant.option1 == swatchVal && variant.available;\r\n                            });\r\n                            if(opt1Soldout == undefined){\r\n                                $(this).addClass('soldout');\r\n                                $(this).find(':radio').prop('disabled',true);\r\n                            }\r\n                        })\r\n                        break;\r\n                        case 1:\r\n                        // loop through all swatchs in option 2 anh filter sold out swatch\r\n                        swatch.each(function(){\r\n                            var swatchVal = $(this).data('value');\r\n                            var opt1Soldout = variantList.find(function(variant){\r\n                                return variant.option1 == selectedSwatchOpt1 && variant.option2 == swatchVal && variant.available;\r\n                            });\r\n                            if(opt1Soldout == undefined){\r\n                                $(this).addClass('soldout');\r\n                                $(this).find(':radio').prop('disabled',true);\r\n                            }\r\n                        })\r\n                        break;\r\n                        case 2:\r\n                        // loop through all swatchs in option 3 anh filter sold out swatch\r\n                        swatch.each(function(){\r\n                            var swatchVal = $(this).data('value');\r\n                            var opt1Soldout = variantList.find(function(variant){\r\n                                return variant.option1 == selectedSwatchOpt1 && variant.option2 == selectedSwatchOpt2 && variant.option3 == swatchVal && variant.available;\r\n                            });\r\n                            if(opt1Soldout == undefined){\r\n                                $(this).addClass('soldout');\r\n                                $(this).find(':radio').prop('disabled',true);\r\n                            }\r\n                        })\r\n                        break;\r\n                    }\r\n                });\r\n            };\r\n\r\n            var changeSwatchProductBundle = function() {\r\n                var swatchSlt = '.fbt-product-item .swatch :radio, .product-review_variant .swatch :radio';\r\n\r\n                doc.off('change.changeBundleSwatch', swatchSlt).on('change.changeBundleSwatch', swatchSlt, function(e) {\r\n                    var self = $(this);\r\n                    if (self.prop('checked')) {\r\n                        var productItem = $(this).closest('[data-fbt-pro-id]');\r\n                        var productId = $(this).parent().data('popup-bundle-product-id');\r\n                        var variantList = window.productVariants[productId];\r\n                        var optionIdx = self.closest('[data-option-idx]').data('option-idx');\r\n                        var swatches = productItem.find('.swatch-element');\r\n                        var thisVal = self.val();\r\n                        var selectedVariant;\r\n                        var fbtPrice = $('[data-bundle-product-id=\"' + productId + '\"]').find('.fbt-prices'),\r\n                            priceSale = fbtPrice.find('.price-sale'),\r\n                            productPrice = fbtPrice.find('[data-fbt-price-change]');\r\n                        var productInput = $('[data-bundle-product-id=\"' + productId + '\"]').find('[name=group_id]');\r\n                        // Get selected swatches\r\n                        var selectedSwatchOpt1 = productItem.find('[data-option-idx=\"0\"]').find('input:checked').val();\r\n                        var selectedSwatchOpt2 = productItem.find('[data-option-idx=\"1\"]').find('input:checked').val();\r\n                        var selectedSwatchOpt3 = productItem.find('[data-option-idx=\"2\"]').find('input:checked').val();\r\n                        // Re-active all swatches\r\n                        swatches.removeClass('soldout');\r\n                        swatches.find(':radio').prop('disabled',false);\r\n                        // Auto get first available variant\r\n                        switch (optionIdx){\r\n                            case 0:\r\n                                var availableVariants = variantList.find(function(variant){\r\n                                    return variant.option1 == thisVal && variant.option2 == selectedSwatchOpt2 && variant.available;\r\n                                })\r\n                                if(availableVariants != undefined){\r\n                                    selectedVariant =  availableVariants;\r\n                                }else{\r\n                                     // variant was sold out, so auto select other available variant\r\n                                    var altAvailableVariants = variantList.find(function(variant){\r\n                                        return variant.option1 == thisVal && variant.available;\r\n                                    })\r\n                                    selectedVariant =  altAvailableVariants;\r\n                                };\r\n                                break;\r\n                            case 1:\r\n                                var availableVariants = variantList.find(function(variant){\r\n                                    return variant.option1 == selectedSwatchOpt1 && variant.option2 == thisVal && variant.available;\r\n                                })\r\n                                if(availableVariants != undefined){\r\n                                    selectedVariant =  availableVariants;\r\n                                }else{\r\n                                    // Something went wrong, if correct, never meet this\r\n                                    console.log('Bundle Error: variant was soldout, on option selection #2')\r\n                                };\r\n                                break;\r\n                            case 2:\r\n                                var availableVariants = variantList.find(function(variant){\r\n                                    return variant.option1 == selectedSwatchOpt1 && variant.option2 == selectedSwatchOpt2 && variant.option3 == thisVal && variant.available;\r\n                                })\r\n                                if(availableVariants != undefined){\r\n                                   selectedVariant =  availableVariants;\r\n                                }else{\r\n                                    // Something went wrong, if correct, never meet this\r\n                                    console.log('Bundle Error: variant was soldout, on option selection #3')\r\n                                };\r\n                                break;\r\n                        }\r\n\r\n                        productInput.val(selectedVariant.id);\r\n\r\n                        // Check new swatch input\r\n                        initSelectedSwatch();\r\n                        // Disable sold out swatches base on new checked inputs\r\n                        disableSoldoutSwatchBundle(productItem);\r\n\r\n                        // Do select callback function\r\n                         productPrice.html(Shopify.formatMoney(selectedVariant.price, window.money_format));\r\n\r\n                         // change variant id of main product for adding to cart\r\n                         productItem.find('input[name=id][type=hidden]').val(selectedVariant.id)\r\n\r\n                            if (selectedVariant.compare_at_price > selectedVariant.price) {\r\n                                priceSale.find('[data-fbt-price-change]').addClass('special-price');\r\n                                priceSale.find('.old-price').html(Shopify.formatMoney(selectedVariant.compare_at_price, window.money_format)).show();\r\n                            }\r\n                            else {\r\n                                priceSale.find('.old-price').hide();\r\n                                priceSale.find('[data-fbt-price-change]').removeClass('special-price');\r\n                            }\r\n\r\n                            productItem.find('select').val(selectedVariant.id).trigger('change');\r\n\r\n                            updateTotalPrice();\r\n\r\n                            if (ella.checkNeedToConvertCurrency()) {\r\n                                Currency.convertAll(window.shop_currency, $('#currencies .active').attr('data-currency'), 'span.money', 'money_format');\r\n                            }\r\n\r\n                            // Change product image\r\n                            var newImage = productInput.find('option:selected',this).attr('data-image');\r\n                            if(newImage != undefined){\r\n                                var productImage = $('.fbt-image-item[data-bundle-product-id=\"'+productId+'\"]').find('img');\r\n                                productImage.attr('src',newImage)\r\n                            }\r\n\r\n                            $(this).parents('.product-options').find('.swatch').each(function(){\r\n                              if ($(this).find('input:checked').parents('.swatch-element').hasClass('soldout')) {\r\n                                $(this).find('.swatch-element').not('.soldout').find('input').prop('checked', true);\r\n                              }\r\n                              $(this).find('[data-option-select]').text($(this).find('input:checked').val());\r\n                            })\r\n\r\n                    }\r\n                });\r\n            };\r\n\r\n\r\n\r\n            var initBundleAddToCart = function() {\r\n\r\n                doc.off('click.bundleAddToCart', btnAddToCartSlt).on('click.bundleAddToCart', btnAddToCartSlt, function(e) {\r\n                    e.preventDefault();\r\n\r\n                    var self = $(this),\r\n                        form = self.closest('form'),\r\n                        curPro = form.find('[data-collections-related]'),\r\n                        handle = curPro.data('collections-related'),\r\n                        bundleProduct = form.find('[data-grouped-product-item].isChecked'),\r\n                        title = $('h1.product-title').text(),\r\n                        image = $('[id^=\"product-featured-image\"]').first().attr('src');\r\n\r\n                    if(self.attr('disabled') !== \"disabled\") {\r\n                        ella.showLoading();\r\n                        Shopify.queue = [];\r\n                        var i = 0;\r\n                        bundleProduct.each(function() {\r\n                            var variantId = $(this).find('[name=group_id]').val();\r\n\r\n                            if(variantId) {\r\n                                Shopify.queue.push( {\r\n                                    variantId: variantId,\r\n                                    quantity: 1\r\n                                });\r\n\r\n                            };\r\n                        });\r\n\r\n                        Shopify.moveAlong = function() {\r\n                            if (Shopify.queue.length) {\r\n                                var request = Shopify.queue.shift();\r\n                                ella.showLoading();\r\n                                Shopify.addItem(request.variantId, request.quantity, Shopify.moveAlong);\r\n                                ella.ellaTimeout = setTimeout(function(){\r\n                                    ella.hideLoading();\r\n                                },5000)\r\n                            }\r\n                            else {\r\n                                ella.hideLoading();\r\n                                var variant_id = curPro.find('[name=id]').val();\r\n                                var formData = $(self.data('form-id'));\r\n                                var data = formData.serialize();\r\n                                var quantity = 1;\r\n                                switch (window.ajax_cart) {\r\n                                    case \"none\":\r\n                                      form.submit();\r\n                                      break;\r\n\r\n                                    case \"normal\":\r\n                                    \tform.submit();\r\n                                        break;\r\n\r\n                                    case \"upsell\":\r\n                                    \tform.submit();\r\n                                        break;\r\n                                };\r\n\r\n                                // add discount code first\r\n                                try{\r\n                                    var discount_code = \"FBT-BUNDLE-\"+ meta.product.id;\r\n                                    ella.apply_discount( discount_code );\r\n                                }\r\n                                catch(e){\r\n                                    console.log(e)\r\n                                }\r\n                                return false;\r\n                            };\r\n                        }\r\n\r\n                        Shopify.moveAlong();\r\n\r\n                    }\r\n\r\n                });\r\n\r\n\r\n            };\r\n            replaceDiscountRate();\r\n            bundleSlider();\r\n            if(($('.layout_style_1170 ').length) || ($('.layout_style_fullwidth.product_layout_skin_1').length) || ($('.layout_style_flower.product_layout_skin_1').length) || ($('.layout_style_suppermarket.product_layout_supermarket').length) ){\r\n                toggleVariantOptions_layout_1170();\r\n            } else {\r\n                toggleVariantOptions();\r\n            }\r\n            handleCheckedProduct();\r\n            initSelectedSwatch();\r\n            if(!$('.layout_style_1170 ').length){\r\n                disableSoldoutSwatchAllBundles();\r\n            }\r\n            changeSwatchProductBundle();\r\n            updateTotalPrice();\r\n            initBundleAddToCart();\r\n        },\r\n        apply_discount: function( discount_code ){\r\n            if(window.bundleMatch){\r\n                $.ajax({\r\n                    url: \"/discount/\" + discount_code + \"?redirect=/cart\",\r\n                    success: function(response){\r\n                      window.location.href = '/discount/' + discount_code + '?redirect=/cart';\r\n                      console.log('Discount code added');\r\n                    }\r\n                });\r\n            }\r\n        },\r\n        checkBundleProducts: function() {\r\n          var discount_code = $.cookie('discount_code');\r\n          if( discount_code != \"\" && discount_code != null ){\r\n            var mainProduct = discount_code.replace('FBT-BUNDLE-', '');\r\n            if( mainProduct != '')\r\n                getShoppingCart();\r\n          }\r\n\r\n            function getShoppingCart () {\r\n\r\n                if( $('ul.cart-list li').length > 0 ) {\r\n                var check = false;\r\n                var cart = [];\r\n                $('ul.cart-list li').each(function(i, el) {\r\n                  var product_id = $(el).data('product_id');\r\n                  if( product_id == mainProduct){\r\n                    check = true;\r\n                  }\r\n                  if(cart.indexOf( product_id ) == -1)\r\n                    cart.push( product_id );\r\n                });\r\n\r\n                if( check == true ){\r\n                  $.ajax({\r\n                    url: \"/collections/bundle-\" + mainProduct + \"?view=bundle-json\",\r\n                    success: function(response){\r\n                      var myBundle = JSON.parse(response);\r\n                      if(cart.length >= myBundle.results.length) {\r\n                        checkProductInCart(cart, myBundle.results);\r\n                      }\r\n                      else\r\n                        remove_discount();\r\n                    }\r\n                  });\r\n                }\r\n                else\r\n                  remove_discount();\r\n              }\r\n          }\r\n\r\n          function checkProductInCart(cart, collection){\r\n            var i = 0;\r\n            collection.forEach(function(el) {\r\n              if(cart.indexOf(el.id) != -1) {\r\n                i++;\r\n              }\r\n            });\r\n            if( i != collection.length)\r\n              remove_discount();\r\n          }\r\n\r\n          function remove_discount(){\r\n            $.ajax({\r\n              url: \"/checkout?discount=%20\",\r\n              success: function(response){\r\n                // $.cookie('discount_code', '');\r\n                console.log('Discount code removed')\r\n              }\r\n            });\r\n          }\r\n        },\r\n\r\n        hide_filter: function(){\r\n          $(\".sidebar-tags .widget-content ul\").each(function() {\r\n            if ($(this).children('li').length > 0) {\r\n              $(this).parents('.sidebar-tags').show();\r\n            } else {\r\n              $(this).parents('.sidebar-tags').hide();\r\n            }\r\n          });\r\n        },\r\n\r\n        stickySidebar: function(){\r\n            // if ($('.collection-template-default').length || $('.collection-template-skin-1').length){\r\n            //     var h_main = $('[data-section-type=\"collection-template\"]').outerHeight() - 100,\r\n            //         h_sidedbar = $('.sidebar').outerHeight();\r\n            //     if (window.innerWidth > 1200 && h_sidedbar < h_main) {\r\n            //         var sidebar = new StickySidebar('.sidebar', {\r\n            //             bottomSpacing: 20,\r\n            //             topSpacing: 60,\r\n            //             containerSelector: false\r\n            //         });\r\n            //     }\r\n            // }\r\n        },\r\n\r\n        productRecomendation: function() {\r\n          var $container = $('.js-product-recomendation');\r\n          var productId = $container.data('productId');\r\n          var template = $container.data('template');\r\n          var sectionId = $container.data('sectionId');\r\n          var limit = $container.data('limit');\r\n          var productRecommendationsUrlAndContainerClass =\r\n              window.router + '/recommendations/products?&section_id='+ sectionId +'&limit=' + limit + '&product_id=' + productId + ' .product-recommendations';\r\n          $container.parent().load(productRecommendationsUrlAndContainerClass, function(){\r\n            $('[data-toggle=\"tooltip\"]').tooltip();\r\n            if (template != '') {\r\n              $('.js-product-recomendation .products-grid').addClass('verticle');\r\n            }\r\n            ella.initSliderFeaturedProducts();\r\n            ella.translateBlock('#product-recommendations');\r\n            if ($('.shopify-product-reviews-badge').length && $('.spr-badge').length) {\r\n                return window.SPR.registerCallbacks(), window.SPR.initRatingHandler(), window.SPR.initDomEls(), window.SPR.loadProducts(), window.SPR.loadBadges();\r\n            };\r\n          });\r\n        },\r\n\r\n        appendProductRecomendation: function(){\r\n          var ProductRecomendation = $('#product-recommendations'),\r\n              appenRecomendation = $('.template-product .product .product_bottom');\r\n              appenRecomendation1 = $('.template-product .product .product_bottom .relate-verticle');\r\n              appenRecomendation2 = $('.template-product .product .relate-verticle').find('[data-sticky-3]');\r\n              ProductRecomendation.appendTo(appenRecomendation);\r\n              ProductRecomendation.appendTo(appenRecomendation1);\r\n              ProductRecomendation.appendTo(appenRecomendation2);\r\n\r\n\r\n        },\r\n\r\n        checkbox_checkout: function(){\r\n            var inputWrapper = $('.checkbox-group label');\r\n\r\n            var checkBox = $('.checkbox-group input[type=\"checkbox\"]');\r\n\r\n            setTimeout(function(){\r\n              checkBox.each(function(){\r\n                if ($(this).is(':checked')) {\r\n                  $(this).parent().parent().find('.btn-checkout').removeClass('show');\r\n                } else {\r\n                  $(this).parent().parent().find('.btn-checkout').addClass('show');\r\n                }\r\n              });\r\n            },300);\r\n\r\n            inputWrapper.off('click').on('click', function (e) {\r\n              var inputTrigger= $(this).parent().find('.conditions'),\r\n                  divAddClassbtn = $(this).parent().parent().find('.btn-checkout');\r\n\r\n              if (!inputTrigger.is(':checked')) {\r\n                divAddClassbtn.removeClass('show');\r\n                inputTrigger.prop('checked', true);\r\n              } else {\r\n                divAddClassbtn.addClass('show');\r\n                inputTrigger.prop('checked', false);\r\n              }\r\n\r\n            });\r\n        },\r\n\r\n        menu_ajax: function() {\r\n            if (!$('.site-nav').length)\r\n              return;\r\n            if (win.innerWidth() < 1025) {\r\n                var chk = false;\r\n                window.addEventListener('load', function(){ // on page load\r\n                    document.body.addEventListener('touchstart', function(e){\r\n                        if (chk == false) {\r\n                            chk = true;\r\n                            $.ajax({\r\n                                url: window.router + '/search?view=mega',\r\n                                beforeSend: function () {\r\n                                    // theme.HaloAddOn.loadingPopup();\r\n                                },\r\n                                success: function (data) {\r\n                                    var curMega = $('.site-nav'),\r\n                                        newMega = $(data).find('.site-nav');\r\n                                        if ($('.wrapper_header_supermarket:not(.wrapper_header_08)').length && $('.vertical-menu').length){\r\n                                            curMega = $('.horizontal-menu .nav-bar');\r\n                                            newMega = $(data).find('.horizontal-menu .nav-bar');\r\n                                        }\r\n                                        $(curMega).replaceWith(newMega);\r\n                                    ella.initToggleSubMenuMobile();\r\n                                    ella.sliderMegaMenu();\r\n                                },\r\n\r\n                                error: function (xhr, text) {\r\n                                    alert($.parseJSON(xhr.responseText).description);\r\n                                },\r\n\r\n                                complete: function () {\r\n                                    // theme.HaloAddOn.removeLoadingPopup();\r\n                                }\r\n                            })\r\n                        }\r\n                    }, false)\r\n                }, false);\r\n                $('[data-menu-mb-toogle]').on('click', function(event) {\r\n                    if (chk == false) {\r\n                        chk = true;\r\n                        $.ajax({\r\n                            url: window.router + '/search?view=mega',\r\n                            beforeSend: function () {\r\n                                // theme.HaloAddOn.loadingPopup();\r\n                            },\r\n                            success: function (data) {\r\n                                var curMega = $('.site-nav'),\r\n                                    newMega = $(data).find('.site-nav');\r\n                                    if ($('.wrapper_header_supermarket:not(.wrapper_header_08)').length && $('.vertical-menu').length){\r\n                                        curMega = $('.horizontal-menu .nav-bar');\r\n                                        newMega = $(data).find('.horizontal-menu .nav-bar');\r\n                                    }\r\n                                    $(curMega).replaceWith(newMega);\r\n                                    console.log(data);\r\n                              ella.initToggleSubMenuMobile();\r\n                              ella.sliderMegaMenu();\r\n                            },\r\n\r\n                            error: function (xhr, text) {\r\n                                alert($.parseJSON(xhr.responseText).description);\r\n                            },\r\n\r\n                            complete: function () {\r\n                                // theme.HaloAddOn.removeLoadingPopup();\r\n                            }\r\n                        })\r\n                    }\r\n                })\r\n            } else {\r\n                var chk = false;\r\n                // $('#site-nav, body').on('mouseleave').on('mouseenter', function(){\r\n                doc.mousemove(function(){\r\n                    if (chk == false) {\r\n                        chk = true;\r\n                        $.ajax({\r\n                            url: window.router + '/search?view=mega',\r\n                            beforeSend: function () {\r\n                                // theme.HaloAddOn.loadingPopup();\r\n                            },\r\n                            success: function (data) {\r\n                                var curMega = $('.site-nav'),\r\n                                    newMega = $(data).find('.site-nav');\r\n                                    if ($('.wrapper_header_supermarket:not(.wrapper_header_08)').length && $('.vertical-menu').length){\r\n                                        curMega = $('.mb-area');\r\n                                        newMega = $(data).find('.mb-area');\r\n                                    }\r\n                                    curMega.replaceWith(newMega);\r\n                                    setTimeout(function(){\r\n                                        ella.sliderMegaMenu();\r\n                                    },1000);\r\n                                ella.initToggleSubMenuMobile();\r\n                            },\r\n\r\n                            error: function (xhr, text) {\r\n                                alert($.parseJSON(xhr.responseText).description);\r\n                            },\r\n\r\n                            complete: function () {\r\n                                // theme.HaloAddOn.removeLoadingPopup();\r\n                                if ($('[data-masonry]').length) {\r\n                                    $('.site-nav-dropdown [data-masonry]').masonry({\r\n                                        columnWidth: '.grid-sizer',\r\n                                        itemSelector: '[data-gridItem]',\r\n                                        horizontalOrder: true\r\n                                    });\r\n                                }\r\n                            }\r\n                        })\r\n                    }\r\n                });\r\n            }\r\n        },\r\n\r\n        loaderScript: function() {\r\n            var load = function(){\r\n                var script = $('[data-loader-script]');\r\n                if (script.length) {\r\n                    script.each(function(){\r\n                        var _this = $(this),\r\n                            link = _this.data('loader-script'),\r\n                            top = this.getBoundingClientRect().top;\r\n                        if (!_this.hasClass('is-load')) {\r\n                            if (top < window.innerHeight + 100) {\r\n                                ella.buildScript(link);\r\n                                $('[data-loader-script=\"' + link + '\"]').addClass('is-load');\r\n                            }\r\n                        }\r\n                    })\r\n                }\r\n            }\r\n            window.addEventListener('load', function loaderPostload() {\r\n                load();\r\n                window.addEventListener('scroll', load);\r\n            });\r\n        },\r\n\r\n        buildScript: function(name) {\r\n            var loadScript = document.createElement(\"script\");\r\n            loadScript.src = name;\r\n            document.body.appendChild(loadScript);\r\n        },\r\n\r\n        beforeYouLeave: function() {\r\n            var $beforeYouLeave = '#before-you-leave',\r\n                $beforeYouLeave_close = $($beforeYouLeave).find('.close'),\r\n                $beforeYouLeave_close2 = $($beforeYouLeave).find('.before-you-leave__bg #reload_page'),\r\n                $beforeYouLeave_search = $($beforeYouLeave).find('.search'),\r\n                $beforeYouLeave_time = $($beforeYouLeave).find('.before-you-leave__wrapper').data('time');\r\n\r\n            if (!$($beforeYouLeave).length) {\r\n                return;\r\n            }\r\n\r\n            var idleTime = 0;\r\n\r\n            $(document).ready(function () {\r\n                var idleInterval = setInterval(timerIncrement, $beforeYouLeave_time);\r\n            });\r\n\r\n            $(document)\r\n            .on('mousemove', resetTimer)\r\n            .on('keydown', resetTimer)\r\n            .on('scroll', resetTimer);\r\n\r\n            function timerIncrement() {\r\n                idleTime = idleTime + 1;\r\n                if (idleTime >= 1 && !$('body.open_beforeYouLeave').length ) {\r\n                    $('body').addClass('open_beforeYouLeave');\r\n                }\r\n                $(window).unbind('click');\r\n            }\r\n\r\n            function resetTimer() {\r\n                idleTime = 0;\r\n            }\r\n\r\n            $beforeYouLeave_close2.on('click', function(event) {\r\n                event.preventDefault();\r\n                $('body').removeClass('open_beforeYouLeave');\r\n            });\r\n\r\n            $beforeYouLeave_close.on('click', function(event) {\r\n                event.preventDefault();\r\n                $('body').removeClass('open_beforeYouLeave');\r\n            });\r\n        },\r\n\r\n        modal_open: function(modal, name) {\r\n            var classes = {\r\n                open: 'open_' + name,\r\n                openClass: 'modal--is-active'\r\n            };\r\n\r\n            $(modal).fadeIn('fast');\r\n            $(modal).addClass(classes.openClass);\r\n            $('body').addClass(classes.open);\r\n        },\r\n\r\n        modal_close: function(modal, name) {\r\n            var classes = {\r\n                open: 'open_' + name,\r\n                openClass: 'modal--is-active'\r\n            };\r\n\r\n            $(modal).fadeOut('fast');\r\n            $(modal).removeClass(classes.openClass);\r\n            $('body').removeClass(classes.open);\r\n        },\r\n\r\n        _addonShareAPI: function() {\r\n            // $('.share-button').click(function(){\r\n                const title = $('.share_toolbox').attr('title');\r\n                const url = $('.share_toolbox').data('href');\r\n                if (navigator.share) {\r\n                    navigator.share({\r\n                    title: title,\r\n                    url: url\r\n                }).then(() => {\r\n                    console.log('Thank for sharing!');\r\n                })\r\n                .cath(console.error);\r\n                } else {\r\n                    $('.share_toolbox .txt_copy').val(url);\r\n                    $('.share_toolbox .button').attr('data-url',url).attr('data-title',title);\r\n                    $('.share_toolbox .modal-title-text').text(title);\r\n                };\r\n            // });\r\n            $('.close-button').click(function(){\r\n                $('.share-modal').removeClass('show-share');\r\n                $('.pen-url').removeClass('share-success');\r\n            });\r\n\r\n            $('.copy-link').click(function(){\r\n                var copyText = $(this).prev('.txt_copy');\r\n                $('.pen-url').addClass('share-success');\r\n                copyText.select();\r\n                document.execCommand(\"copy\");\r\n            });\r\n        },\r\n\r\n        _addonCompareColorPopup: function() {\r\n            if(!$('.compareColor-link').length) {\r\n                return;\r\n            }\r\n\r\n            $(document).on('click', '.compareColor-link', function(event) {\r\n                event.preventDefault();\r\n                var $compareColorModal = '#compareColor-modal',\r\n                    $Close = $($compareColorModal).find('.close'),\r\n                    $compareColorModalContent = $($compareColorModal).find('.modal-content');\r\n\r\n                if (!$($compareColorModal).length) {\r\n                    return;\r\n                }\r\n\r\n                $($compareColorModal).addClass('modal--is-active').fadeIn('fast');\r\n\r\n                $Close.on('click', function (event) {\r\n                    event.preventDefault();\r\n                    $($compareColorModal).removeClass('modal--is-active').fadeOut('fast');\r\n                });\r\n\r\n                $($compareColorModal).on('click', function (event) {\r\n                    if (($($compareColorModal).hasClass('modal--is-active')) && ($(event.target).closest($compareColorModalContent).length === 0)){\r\n                        event.preventDefault();\r\n                        $($compareColorModal).removeClass('modal--is-active').fadeOut('fast');\r\n                    }\r\n                });\r\n            })\r\n\r\n            $(document).on('click', '.compareColor-swatch label', function(event) {\r\n                event.preventDefault();\r\n\r\n                $('.compareColor-swatch label').removeClass('disabled2')\r\n\r\n                var self = $(this),\r\n                    $ipt = self.prev(),\r\n                    $image = self.data('image');\r\n                    $value = self.data('value');\r\n                    $value2 = self.html();\r\n                    $limit = 0;\r\n\r\n                if(!$ipt.prop('checked')) {\r\n                    $ipt.prop('checked', true);\r\n                    self.parents('#compareColor-modal').find('.show-img').append('<div class=\"item text-center ' + $value + '\"><img srcset=\"' + $image + '\" alt=\"\" /><p>' + $value2 + '</p></div>');\r\n                    $limit = $('#compareColor-modal .show-img .item').length;\r\n                } else {\r\n                    $ipt.prop('checked', false);\r\n                    self.parents('#compareColor-modal').find('.show-img ' + '.' + $value).remove();\r\n                    $limit = $('#compareColor-modal .show-img .item').length;\r\n                };\r\n\r\n\r\n                if ($limit < 5 ) {\r\n                    $('.compareColor-swatch label').removeClass('disabled2')\r\n                } else {\r\n                    $('.compareColor-swatch label').addClass('disabled2')\r\n                }\r\n            });\r\n        },\r\n\r\n        _cartCountDown: function() {\r\n            if (!$('.cart__count_down').length)\r\n                return;\r\n\r\n            var timer,\r\n                elCountDown = $('.cart__count_down .count_down'),\r\n                minute = elCountDown.data('time');\r\n\r\n            function startTimer(duration, display) {\r\n                timer = duration;\r\n                var minutes, seconds;\r\n                setInterval(function() {\r\n                    minutes = parseInt(timer / 60, 10)\r\n                    seconds = parseInt(timer % 60, 10);\r\n\r\n                    minutes = minutes < 10 ? \"0\" + minutes : minutes;\r\n                    seconds = seconds < 10 ? \"0\" + seconds : seconds;\r\n\r\n                    display.textContent = minutes + \":\" + seconds;\r\n\r\n                    if (--timer < 0) {\r\n                        timer = duration;\r\n                    }\r\n                }, 1000);\r\n            }\r\n\r\n            function resetTimer() {\r\n                timer = 60 * minute;\r\n            }\r\n\r\n            $( document ).ready(function() {\r\n                fiveMinutes = 60 * minute,\r\n                display = document.querySelector('#time');\r\n                startTimer(fiveMinutes, display);\r\n            })\r\n        },\r\n\r\n        _videoPopup: function (){\r\n            if ($(\".video-open-popup \").length) {\r\n            } else {return}\r\n            $('.video-open-popup a').off('click').on('click',function(){\r\n                var video_id = $(this).attr('data-id'),\r\n                    video_src = $(this).attr('data-src'),\r\n                    modal = $('[data-popup-video]');\r\n\r\n                    const $content = '<div class=\"fluid-width-video-wrapper\"><iframe\\\r\n                                        id=\"player\"\\\r\n                                        type=\"text/html\"\\\r\n                                        width=\"100%\"\\\r\n                                        frameborder=\"0\"\\\r\n                                        webkitAllowFullScreen\\\r\n                                        mozallowfullscreen\\\r\n                                        allowFullScreen\\\r\n                                        src=\"https://www.youtube.com/embed/'+video_src+'?autoplay=1&mute=1\"\\\r\n                                        data-video-player>\\\r\n                                    </iframe></div>';\r\n                modal.find('.halo-modal-body').html($content);\r\n\r\n                modal.fadeIn(600, function () {\r\n                    if ($('[data-ajax-cart-success]').is(':visible')) {\r\n                        $('[data-ajax-cart-success]').hide();\r\n                    }\r\n                });\r\n            });\r\n\r\n            $('[data-popup-video], [data-popup-video] .close-modal').on('click', function (e) {\r\n                var modalContent = $('[data-popup-video] .halo-modal-body');\r\n                if (!modalContent.is(e.target) && !modalContent.has(e.target).length) {\r\n                    $('[data-popup-video]').fadeOut(500, function () {\r\n                        $('[data-popup-video] iframe').remove();\r\n                        html.removeClass('halo-modal-open');\r\n                        html.css({\r\n                            \"overflow\": \"\"\r\n                        });\r\n                    });\r\n                };\r\n            });\r\n        },\r\n\r\n        _multiHomepage: function (){\r\n            $('[data-menu-tab] li').on('click', function(){\r\n                var active = $(this).data('load-page');\r\n                var href= $(this).attr('href');\r\n                $.cookie('page-url', active, {\r\n                    expires: 1,\r\n                    path: '/'\r\n                });\r\n            });\r\n\r\n            var canonical = $('[canonical-shop-url]').attr('canonical-shop-url');\r\n            if (document.URL != canonical) {\r\n                $('[data-load-page=' + $.cookie('page-url') + ']').addClass('active').siblings().removeClass('active');\r\n            }\r\n            var active = $('[data-menu-tab] li.active').data('load-page');\r\n            $.ajax({\r\n                url: window.router + '/search?type=product&q=' + active + '&view=mega',\r\n                beforeSend: function () {\r\n                    // theme.HaloAddOn.loadingPopup();\r\n                },\r\n                success: function (data) {\r\n                    // console.log(data);\r\n                    var curMega = $('.site-nav'),\r\n                        newMega = $(data).find('.site-nav');\r\n                        if ($('.wrapper_header_supermarket:not(.wrapper_header_08)').length){\r\n                            curMega = $('.mb-area');\r\n                            newMega = $(data).find('.mb-area');\r\n                        }\r\n                        curMega.replaceWith(newMega);\r\n                    ella.initToggleSubMenuMobile();\r\n\r\n                },\r\n\r\n                error: function (xhr, text) {\r\n                    alert($.parseJSON(xhr.responseText).description);\r\n                },\r\n\r\n                complete: function () {\r\n                    doc.mousemove(function(){\r\n                        if(!$('.featuredProductCarousel').hasClass('slick-initialized')) {\r\n                            ella.sliderMegaMenu();\r\n                        }\r\n                    });\r\n                    if ($('[data-masonry]').length) {\r\n                        $('.site-nav-dropdown [data-masonry]').masonry({\r\n                            columnWidth: '.grid-sizer',\r\n                            itemSelector: '[data-gridItem]',\r\n                            horizontalOrder: true\r\n                        });\r\n                    }\r\n                }\r\n            })\r\n        },\r\n\r\n        checkbox_submit: function (){\r\n            var check_submit = $('.newsletter-des #check_newsletter');\r\n            var check = false;\r\n            check_submit.off('click').on('click', function(e){\r\n                if ($(this).is(':checked')) {\r\n                    $('.footer-newsletter .block-content').find('.btn').addClass('show');\r\n                } else {\r\n                    check = true;\r\n                    $('.footer-newsletter .block-content').find('.btn').removeClass('show');\r\n                }\r\n            });\r\n            $(\".footer-newsletter .input-group-field\").keypress(function(e){\r\n                if(e.keyCode==13 && check == false)\r\n                    e.preventDefault();\r\n            });\r\n        },\r\n\r\n        _notifySoldoutSlider: function(){\r\n            $('a#soldOut-button1').off('click').on('click', function(e){\r\n                e.preventDefault();\r\n                var value = $(this).prev().val();\r\n                $('#nofify_sold-out').find('#contactFormEmail').val(value);\r\n                $('#soldOut-button').trigger('click');\r\n            })\r\n        },\r\n\r\n        _showmore_html: function() {\r\n            var wrapper = $('#collection-des');\r\n            var height = wrapper.outerHeight();\r\n            if (height > 70) {\r\n                var btn = '<a class=\"btn-showmore\" data-toggle=\"collapse\" href=\"#collapseSummary\" aria-expanded=\"false\" aria-controls=\"collapseSummary\"><span>' + window.inventory_text.show_more + '</span></a>';\r\n                wrapper.append(btn);\r\n                $('.btn-showmore').on('click',function(){\r\n                    if ($(this).parents('#collection-des').hasClass('show-more')) {\r\n                        $(this).parents('#collection-des').removeClass('show-more');\r\n                        $(this).find('span').text(window.inventory_text.show_more)\r\n                    } else {\r\n                        $(this).parents('#collection-des').addClass('show-more');\r\n                        $(this).find('span').text(window.inventory_text.show_less)\r\n                    }\r\n                })\r\n            }\r\n        },\r\n\r\n        _giftCard: function() {\r\n            Shopify.Cart = Shopify.Cart || {};\r\n            Shopify.Cart.GiftWrap = {};\r\n            Shopify.Cart.GiftWrap.set = function(id) {\r\n              var headers = new Headers({ 'Content-Type': 'application/json' });\r\n              var request = {\r\n                method: 'POST',\r\n                headers: headers,\r\n                body: '{ \"updates\": { \"'+id+'\": \"1\" } }'\r\n              };\r\n              fetch('/cart/update.js', request)\r\n              .then(function() {\r\n                ella.loadAjaxCart();\r\n              });\r\n            }\r\n            $('#gift-wrapping').off('click').on('click', function(){\r\n                $(this).find('.icon-loader').show();\r\n                Shopify.Cart.GiftWrap.set($(this).data('gift-id'));\r\n            });\r\n\r\n        }\r\n    };\r\n\r\n})(jQuery);\r\n"],
  "mappings": "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",
  "names": ["event", "totalProduct", "self", "btnRemove", "cart", "quantity", "sidebarTag", "h_wrapper", "top", "variantId", "e", "data", "winWidth", "iconSearchSlt", "str", "compareElm", "compareCountNum", "index", "ProductHandle", "bundlePrice", "display", "active"]
}
