{
  "version": 3,
  "sources": ["/cdn/shop/t/23/assets/bt-libs.js?enable_js_minification=1"],
  "sourcesContent": ["var BT = {\r\n  selectors: {\r\n    sidebar : {\r\n      btn: '.bt-sidebar-btn',\r\n      box: '.bt-sidebar',\r\n      closeBtnCanvas: '.bt-sidebar__close',\r\n      closeSidebarBtn: '.close-menu-btn',\r\n      openClass: 'open-sidebar-canvas'\r\n    },\r\n    overlay: '.overlay',\r\n    slider : {\r\n      useTouchMobile: 'use-touch-mobile',\r\n      default: '.use-slider',\r\n      overFloatClasses: 'ov-slider-tb ov-slider-mb hide-in-loading'\r\n    },\r\n    desktopNav: {\r\n      topItem: '.nav__item',\r\n      parentItem: '.nav__item--parent',\r\n      dropdown: '.nav__item__dropdown',\r\n      parentNav: '.header__wrap'\r\n    },\r\n    verticalNav: {\r\n      topItem: '.nav__item--ver',\r\n      parentItem: '.nav__item--parent',\r\n      dropdown: '.nav__item__dropdown',\r\n      parentNav: '.main-nav--ver'\r\n    },\r\n    dropdown: {\r\n      wrap: \".bt-dropdown\",\r\n      trigger: \".bt-dropdown__trigger\",\r\n      content: \".bt-dropdown__content\"\r\n    },\r\n    productGroup: {\r\n      wrap: \".pg\",\r\n      option: \".pg__option\",\r\n      swatch: \".pg__option__values\",\r\n      optionValue: \".pg__option__value\",\r\n      mainImg: '.pg__main-image',\r\n      thumbs: '.pg__thumbs',\r\n      thumbsSmallClass: 'pg__thumbs--small',\r\n      thumbsLargeClass: '.pg__thumbs--large',\r\n      thumbsSlider: '.pg__thumbs--slider',\r\n      thumbsSliderVerticalClass: 'pg__thumbs--slider-vertical',\r\n      thumb: '.pg__thumb',\r\n      thumbLink: '.pg__thumb__link',\r\n      mains: '.pg__mains',\r\n      mainsSlider: '.pg__mains--slider',\r\n      main: '.pg__main',\r\n      mainLink: '.pg__main__link',\r\n      mainLinkModel: '.pg__main__link--model',\r\n      price: '.product-price',\r\n      cartBtn: '.add-cart-btn',\r\n      cartBtnState: '.add-cart-btn--state',\r\n      variantId: '.variant-id',\r\n      variantTitle: '.pg__variant-title',\r\n      loadingClass: 'loading-data',\r\n      groupData: '.group-data',\r\n      isGroupClass: 'is-group',\r\n      reCalcIndexClass: 're-calc-index',\r\n      imgZoom: '.cloudzoom',\r\n      countdown: '.pg__countdown-js',\r\n      syncUrl: '.pg__sync-url',\r\n      labelDeal: '.lb-item--sale',\r\n      labelPercent: '.lb__percent',\r\n      stickySmallPrice: '.sc__small-price',\r\n      singleProgress: '.product-single__progress',\r\n      stockText: '.pg__stock-text',\r\n      stockText1: '.pg__stock-text1',\r\n      stockText2: '.pg__stock-text2',\r\n      stockNumber: '.pg__stock-number--update',\r\n      video: '.pg__video',\r\n      videoYoutube: '.pg__video--youtube',\r\n      videoVimeo: '.pg__video--vimeo',\r\n      sku: '.pg__sku',\r\n      ignoreLightBoxClass: 'ignore-lightbox',\r\n      swatchOutStock: 'swatch__item--soldout',\r\n      storePickupWrap: '.store-availability-container',\r\n      storePickupInner: '.store-availability-inner',\r\n      storePickupBtn: '.store-availability-information__button',\r\n      storePickupModel: '#storePickupPopup',\r\n      storePickupProductTitle: '.store-availabilities-modal__product-title',\r\n      storePickupVariantTitle: '.store-availabilities-modal__variant-title'\r\n    },\r\n    cart: {\r\n      addBtn: '.add-cart-btn',\r\n      updateBtn: '.update-cart-btn',\r\n      header: '.header__cart',\r\n      headerTriggerDesktop: '.header__cart-trigger-desktop',\r\n      headerTriggerMobile: '.header__cart-trigger-mobile',\r\n      number: '.cart-number',\r\n      total: '.cart-total',\r\n      selectOptionClass: 'select-option',\r\n      qtyInput: '.cart__qty-input'\r\n    },\r\n    qtyBox: {\r\n      ctrlBtn: '.qty-box__ctrl',\r\n      decreaseBtnClass: 'qty-box__ctrl--descrease',\r\n      increaseBtnClass: 'qty-box__ctrl--increase',\r\n      inputSyncClass: 'qty-box__input--sync'\r\n    },\r\n    mediaBtn: '.button--media',\r\n    loadingAjaxClass: 'loading-ajax',\r\n    workingClass: 'working',\r\n    qvBtn: '.button--qv',\r\n    qvPopup: '#quickViewPopup',\r\n    selectOptionBtn: '.button--select-option',\r\n    selectOptionPopup: '#selectOptionPopup',\r\n    compare: {\r\n      popup: '#comparePopup',\r\n      btn: '.button--cp',\r\n      removeBtn: '.button-cp--remove',\r\n      variantId: '.variant-id--compare',\r\n      actionsRow: '.actions-row',\r\n      availabilityRow: '.availability-row',\r\n      bestPriceBadge: '.compare-popup__badge',\r\n      headerLink: '.header__link--compare',\r\n      number: '.compare-number'\r\n    },\r\n    wishlist: {\r\n      popup: '#wishlistPopup',\r\n      btn: '.button--wl',\r\n      btnWithText: '.button--wl-text',\r\n      btnText: '.wishlist-text',\r\n      removeBtn: '.button-wl--remove',\r\n      headerLink: '.header__link--wishlist',\r\n      number: '.wishlist-number'\r\n    },\r\n    waitingData: '.waiting-data', // ignore this element when init slider to wait the data is loaded.\r\n    waitingTabData: '.waiting-tab-data', // load data when the correspoding tab is opened.\r\n    waitingScrollData: '.waiting-scroll-data', // load data when element is visible in viewport.\r\n    loadMoreBtn: '.button--more',\r\n    loadingFull: '.loading-full',\r\n    cartMessage: '.cart-message',\r\n    cartModal: {\r\n      wrap: '#cartModal',\r\n      productImage: '.cart-response__image',\r\n      productName: '.cart-response__name',\r\n      variantTitle: '.cart-response__meta-variant-title-wrap',\r\n      variantProp: '.cart-response__meta-propeties',\r\n      price: '.cart-response__price .product-price__price',\r\n      linePrice: '.cart-response__line-price .product-price__price',\r\n      qty: '.cart-response__qty',\r\n      freeShippingText: '.cart-response__free-shipping__text',\r\n      freeShippingProgressBar: '.progress-bar--popup-cart'\r\n    },\r\n    notify: '.notify',\r\n    notifyClassTypes: 'alert-success alert-danger',\r\n    floatField: '.field--float-label',\r\n    floatFieldFirstFocus: '.first-focus',\r\n    /* Recommended products */\r\n    rp: {\r\n      wrap: '.rp',\r\n      item: '.rp__item',\r\n      minuteNumber: '.rp__minute-number',\r\n      closeBtn: '.rp__close'\r\n    },\r\n    /* Newsletter popup */\r\n    newsPopup: {\r\n      id: '#newsletterPopup',\r\n      checkbox: '#newsPopupHide'\r\n    },\r\n    newsTerms: {\r\n      form: '.newsletter-form',\r\n      input: '.news-terms-input',\r\n      error: '.news-terms-error'\r\n    },\r\n    /* Promotion */\r\n    promo: {\r\n      wrap: '.promo',\r\n      closeBtn: '.promo__close'\r\n    },\r\n    upsell: {\r\n      wrap: '.upsell-ele',\r\n      list: '.upsell-list'\r\n    },\r\n    related: {\r\n      wrap: '.related-ele',\r\n      list: '.related-list',\r\n    },\r\n    loadingNotFull: '.loading-not-full',\r\n    infiniteScroll: {\r\n      button: '.infinite-scroll',\r\n      wait: '.wait-infinite-scroll'\r\n    },\r\n    cartTerms: {\r\n      wrap: '.cart-terms',\r\n      popup: '#termsPopup',\r\n      checkbox: '.terms-check',\r\n      label: '.cart-terms__label',\r\n      checkoutBtn: '.checkout-btn',\r\n      paymentBtn: '.shopify-payment-button,.additional-checkout-buttons'\r\n    },\r\n    popupVideo: {\r\n      btn: '.video-thumbnail',\r\n      youtubeBtn: '.js-modal-btn--youtube',\r\n      vimeoBtn: '.js-modal-btn--vimeo'\r\n    },\r\n    searchFull: {\r\n      wrap: '.search-full',\r\n      trigger: '.search-full-trigger',\r\n      content: '.search-full__content',\r\n      input: '.search-full__input',\r\n      inputSync: '.search-full__input-sync',\r\n      loading: '.search-full__loading',\r\n      close: '.search-full__close-js',\r\n      tabTitle: '.search-full__tab-title',\r\n      tabList: '.search-full__tab-list',\r\n      tabContent: '.search-full__content__tab',\r\n      result: '.search-full__result',\r\n      loadedClass: 'loaded',\r\n      suggestProducts: '.search-full__suggest-products'\r\n    },\r\n    ajaxSnippet: '.load-ajax-snippet'\r\n  },\r\n  options: {\r\n    dropdown: {\r\n      duration: 150\r\n    },\r\n    sidebar: {\r\n      duration: 300,\r\n      openEvent: 'click',\r\n      closeEvent: 'click'\r\n    },\r\n    slider: {\r\n      slidesToShow: 4,\r\n      slidesToScroll: 1,\r\n      //asNavFor: wrap + ' .viewmore-main',\r\n      dots: false,\r\n      //centerMode: true,\r\n      focusOnSelect: false,\r\n      infinite: false,\r\n      swipe: true,\r\n      swipeToSlide: true,\r\n      rtl: rtl,\r\n      nextArrow: '<button aria-label=\"button\" class=\"slick-next button button--style2 button--circle lh1\"><span></span></button>',\r\n      prevArrow: '<button aria-label=\"button\" class=\"slick-prev button button--style2 button--circle lh1\"><span></span></button>',\r\n      responsive: [\r\n        {\r\n          breakpoint: 768,\r\n          settings: {\r\n            slidesToShow: 2\r\n          }\r\n        }\r\n      ]\r\n    },\r\n    productGroup: {\r\n      smallSlider: {\r\n        slidesToShow: 5,\r\n        slidesToScroll: 1,\r\n        swipeToSlide: true,\r\n        infinite: false,\r\n        focusOnSelect: true,\r\n        centerMode: false,\r\n        rtl: rtl,\r\n        nextArrow: '<button aria-label=\"button\" class=\"slick-next button button--style2 button--circle lh1 slick-box\"><span></span></button>',\r\n        prevArrow: '<button aria-label=\"button\" class=\"slick-prev button button--style2 button--circle lh1 slick-box\"><span></span></button>',\r\n        responsive: [\r\n          {\r\n            breakpoint: 992,\r\n            settings: {\r\n              vertical:false,\r\n              verticalSwiping:false,\r\n              slidesToShow: 5\r\n            }\r\n          }\r\n        ]\r\n      },\r\n      mainSlider: {\r\n        slidesToShow: 1,\r\n        slidesToScroll: 1,\r\n        //asNavFor: wrap + ' .viewmore-thumbs',\r\n        arrows: false,\r\n        fade: false,\r\n        infinite: false,\r\n        swipeToSlide: true,\r\n        arrows: true,\r\n        adaptiveHeight: true,\r\n        lazyLoad: 'ondemand',\r\n        rtl: rtl,\r\n        nextArrow: '<button aria-label=\"button\" class=\"slick-next button button--style2 button--circle lh1 slick-box\"><span></span></button>',\r\n        prevArrow: '<button aria-label=\"button\" class=\"slick-prev button button--style2 button--circle lh1 slick-box\"><span></span></button>',\r\n        responsive: [\r\n          {\r\n            breakpoint: 992,\r\n            settings: {\r\n              \"dots\":true,\r\n              \"arrows\":false\r\n            }\r\n          }\r\n        ]\r\n      }\r\n    },\r\n    windowScreen: {\r\n      desktop: 768,\r\n      mobile: 767\r\n    },\r\n    productZoom: {zoomSizeMode: 'image',autoInside:true, tintOpacity: 0, zoomPosition: 'inside'},\r\n    countdown: {\r\n      dealCountdownReg : '([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2})',\r\n      dealCountdownTpl : $('#bt_countdown_html').html()\r\n    },\r\n    compare: {\r\n      cookieName: 'bt-compare',\r\n      firstLoaded: false\r\n    },\r\n    wishlist: {\r\n      cookieName: 'bt-wishlist'\r\n    },\r\n    productNameHolder: 'product_title',\r\n    notifyDuration: 300,\r\n    notifyTimeout: 3000,\r\n    notifyClassTypes: {\r\n      success: 'success',\r\n      danger: 'danger'\r\n    },\r\n    rp: {\r\n      cookieName: 'rp_hide',\r\n      duration: 700\r\n    },\r\n    newsPopup: {\r\n      cookieName: 'hide_news_popup'\r\n    },\r\n    promo: {\r\n      cookieName: 'hide_promo'\r\n    },\r\n    cartTerms: {\r\n      cookieName: 'cart_terms'\r\n    },\r\n    newsTerms: {\r\n      cookieName: 'news_terms'\r\n    },\r\n    recentView: {\r\n      cookieName: 'recent_view_products'\r\n    },\r\n    desktopNav: {\r\n      view: 'navigation'\r\n    },\r\n    verticalNav: {\r\n      view: 'navigation-vertical'\r\n    }\r\n  },\r\n  data: {\r\n    productGroup: {},\r\n    outStockGroup: {},\r\n    updatingProductOptions: false,\r\n    productVideo: {\r\n      currentPlayer: null,\r\n      currentType: null,\r\n      loadYoutubeApi: false,\r\n      loadVimeoApi: false,\r\n      vimeoPlayers: {}\r\n    },\r\n    productGroupInfiniteScroll: {},\r\n    updateCartRequests: [],\r\n    favicon: null,\r\n    zoom: {\r\n      single: null,\r\n      quickView: null\r\n    },\r\n    rp: {\r\n      openTimeInterval: null\r\n    },\r\n    modalVideoWorking: false,\r\n    loadedSnippets: [],\r\n    thresholdMenu: 0,\r\n    stickyMenuObj: null,\r\n    resizeEventName: 'bt_resize_window',\r\n    scrollEventName: 'bt_scroll_window',\r\n    cacheWindowWidth: $(window).width(),\r\n    isTouchDevide: false,\r\n    thresholdMenuWithPromotion: 33,\r\n    sliderIndex: 0,\r\n    wishlist: {\r\n      loaded: false\r\n    },\r\n    cookieArray: {},\r\n    pageLoaded: false,\r\n    searchSuggestionCurrentType: 'product',\r\n    searchSuggestionCurrentAjaxRequest: null,\r\n    customColorCodes: null,\r\n    customColorCodesLoading: false,\r\n    customColorCodesStack: [],\r\n    initTopBar: false,\r\n    ajaxSetup: false\r\n  },\r\n\r\n  shuffleArray: function (d) {\r\n    for (var c = d.length - 1; c > 0; c--) {\r\n      var b = Math.floor(Math.random() * (c + 1));\r\n      var a = d[c];\r\n      d[c] = d[b];\r\n      d[b] = a;\r\n    }\r\n    return d;\r\n  },\r\n\r\n  /**\r\n   * Returns a random integer between min (inclusive) and max (inclusive)\r\n   * Using Math.round() will give you a non-uniform distribution!\r\n   */\r\n  getRandomInt: function(min, max) {\r\n    return Math.floor(Math.random() * (max - min + 1)) + min;\r\n  },\r\n\r\n  getCookie: function (name) {\r\n    try {\r\n      return $.cookie(name);\r\n    } catch(e) {\r\n    }\r\n  },\r\n\r\n  setCookie: function(name, value, expire) {\r\n    try {\r\n      var params = {path: '/'};\r\n      if(expire) {\r\n        params.expires = expire;\r\n      }\r\n      $.cookie(name, value, params);\r\n    } catch(e) {\r\n    }\r\n  },\r\n\r\n  stripScripts: function(s) {\r\n    var div = document.createElement('div');\r\n    div.innerHTML = s;\r\n    var scripts = div.getElementsByTagName('script');\r\n    var i = scripts.length;\r\n    while (i--) {\r\n      scripts[i].parentNode.removeChild(scripts[i]);\r\n    }\r\n    return div.innerHTML;\r\n  },\r\n\r\n  callAjax: function(url, type, data, dataType, cb, cbError) {\r\n    var ins = this;\r\n    return $.ajax({\r\n      type: type,\r\n      url: url,\r\n      data: data,\r\n      dataType: dataType,\r\n      error: function(xhr, textStatus, errorThrown) {\r\n        ins.hideLoadingFull();\r\n        if(xhr.responseJSON != undefined) {\r\n          if(xhr.responseJSON.description != undefined && xhr.responseJSON.description != null) {\r\n            ins.showNotify(xhr.responseJSON.description, ins.options.notifyClassTypes.danger);\r\n          } else if (xhr.responseJSON.message != undefined) {\r\n            ins.showNotify(xhr.responseJSON.message, ins.options.notifyClassTypes.danger);\r\n            //showNotifyMsg(xhr.responseJSON.message, 'error');\r\n          }\r\n        }\r\n        if(cbError) {\r\n          cbError();\r\n        }\r\n      },\r\n      success: function(response){\r\n        cb(response);\r\n      }\r\n    });\r\n  },\r\n\r\n  renderSectionByAjaxApi: function(sectionId, data, cb) {\r\n    var ajaxData = data;\r\n    ajaxData.section_id = sectionId;\r\n    this.callAjax(theme.rootUrl, 'get', ajaxData, null, cb);\r\n  },\r\n\r\n  requestUpdateCart: function(line, qty, cb, cbError){\r\n    $(this.data.updateCartRequests).each(function(index, xhr) {\r\n      if(xhr && xhr.readyState != 4){\r\n        xhr.abort();\r\n      }\r\n    });\r\n    this.data.updateCartRequests = [];\r\n    this.data.updateCartRequests.push(this.callAjax(theme.cartChangeUrl, 'POST', {line: line, quantity: qty}, 'json', function(cart) {\r\n      if(cb) {\r\n        cb(cart);\r\n      }\r\n    }, cbError));\r\n  },\r\n\r\n  requestEmptyCart: function(cb){\r\n    this.callAjax(theme.cartClearUrl, 'POST', {}, 'json', function(cart) {\r\n      if(cb) {\r\n        cb(cart);\r\n      }\r\n    });\r\n  },\r\n\r\n  resizeImage : function(t, r) {\r\n    try {\r\n        if (\"original\" == r) return t;\r\n        var e = t.match(/(.*\\/[\\w\\-\\_\\.]+)\\.(\\w{2,4})/);\r\n        return e[1] + \"_\" + r + \".\" + e[2]\r\n    } catch (r) {\r\n        return t\r\n    }\r\n  },\r\n\r\n  isInViewport : function(ele, windowEle) {\r\n      var elementTop = ele.offset().top;\r\n      var elementBottom = elementTop + ele.outerHeight();\r\n      var viewportTop = $(windowEle).scrollTop();\r\n      var viewportBottom = viewportTop + $(windowEle).height();\r\n      return elementBottom > viewportTop && elementTop < viewportBottom;\r\n  },\r\n\r\n  rteWrapTable: function(wrap) {\r\n    if(typeof wrap == 'string') {\r\n      wrap = $(wrap);\r\n    }\r\n    //\r\n    wrap.find('table').each(function() {\r\n      $(this).removeAttr('style').removeAttr('border').addClass('table table-bordered table-striped').wrap(\r\n        '<div class=\"table-responsive\"></div>'\r\n      );\r\n    });\r\n  },\r\n\r\n  rteWrapEmbed: function(wrap) {\r\n    if(typeof wrap == 'string') {\r\n      wrap = $(wrap);\r\n    }\r\n    wrap.find('.embed-responsive-item,iframe,embed,object,video').each(function() {\r\n      /*$(this).wrap(\r\n        '<div class=\"embed-responsive\"></div>'\r\n      );\r\n      this.src = this.src;*/\r\n      $(this).css('max-width','100%');\r\n    });\r\n  },\r\n\r\n  rteWrap: function(wrap) {\r\n    this.rteWrapTable(wrap);\r\n    this.rteWrapEmbed(wrap);\r\n  },\r\n\r\n  startLoadingBtn: function(btn) {\r\n    btn.find('i').addClass(this.selectors.loadingAjaxClass);\r\n  },\r\n\r\n  endLoadingBtn: function(btn) {\r\n    btn.find('i').removeClass(this.selectors.loadingAjaxClass);\r\n  },\r\n\r\n  showLoadingFull: function() {\r\n    if(!this.data.initTopBar) {\r\n      topbar.config(topbarConfig);\r\n      this.data.initTopBar = true;\r\n    }\r\n    topbar.show();\r\n  },\r\n\r\n  hideLoadingFull: function() {\r\n    topbar.hide();\r\n  },\r\n\r\n  getPriceHtml: function(price) {\r\n    return theme.Currency.formatMoney(price, theme.moneyFormat);\r\n  },\r\n\r\n  handleString: function(str) {\r\n    return str.toLowerCase().replace(/\\\"/g,'').replace(/\\'/g,'').replace(/[\\(,\\*,\\)]/g,'').replace(/  /g,' ').replace(/ /g,'-');\r\n  },\r\n\r\n  convertCurrencySilence: function(selector) {\r\n    BtCurrency.convertSilence(shopCurrency, BtCurrency.currentCurrency, selector);\r\n  },\r\n\r\n  callSnippetAjax: function(snippetName, cb) {\r\n    this.callAjax(theme.rootUrl, 'GET', {view: 'snippet', q: snippetName}, null, function(html) {\r\n      cb(html);\r\n    });\r\n  },\r\n\r\n  loadSnippetAjax: function(snippetName, cb, delay) {\r\n    if(this.data.loadedSnippets.indexOf(snippetName) > -1) {\r\n      cb();\r\n    } else {\r\n      var ins = this;\r\n      this.callSnippetAjax(snippetName, function(html) {\r\n        ins.data.loadedSnippets.push(snippetName);\r\n        if($('.snippet-error', html).length == 0) {\r\n          $('body').append(html);\r\n          setTimeout(function() {\r\n            cb();\r\n          }, (delay) ? delay : 300);\r\n        }\r\n      });\r\n    }\r\n  },\r\n\r\n  processSameId: function(htmlStr) {\r\n    var cloneIdElements = htmlStr.match(/data-clone-id=\\\"(.*?)\\\"/g);\r\n    if(cloneIdElements != null) {\r\n      $.each(cloneIdElements, function(index, value){\r\n        var strFind = value.replace(/data-clone-id=/g,'').replace(/\"/g,'');\r\n        var newId = 'clone-' + Math.floor(Math.random() * 100);\r\n        var regex = new RegExp( strFind, 'g' );\r\n        htmlStr = htmlStr.replace(regex, newId);\r\n      });\r\n    }\r\n    return htmlStr;\r\n  },\r\n\r\n  showPopup: function(id) {\r\n    var timeout = 0, ins = this, popupClass = id.replace('#','');\r\n    if($('.modal.in:not(.' + popupClass + ')').length > 0) {\r\n      $('.modal.in:not(.' + popupClass + ')').each(function() {\r\n        ins.hidePopup('#' + $(this).attr('id'));\r\n      });\r\n      timeout = 500;\r\n    }\r\n    setTimeout(function() {\r\n      $(id).modal('show');\r\n    }, timeout);\r\n  },\r\n\r\n  hidePopup: function(id) {\r\n    $(id).modal('hide');\r\n  },\r\n\r\n  showNotify: function(msg, type) {\r\n    var notify = $(this.selectors.notify), activeClass = 'active', ins = this;\r\n    notify.removeClass(this.selectors.notifyClassTypes);\r\n    notify.addClass('alert-' + type);\r\n    notify.html(msg);\r\n    if(notify.hasClass(activeClass)) {\r\n      if(this.data.notifyTimeout) {\r\n        clearTimeout(this.data.notifyTimeout);\r\n      }\r\n      this.hideNotify();\r\n    } else {\r\n      notify.slideDown(ins.options.notifyDuration, function() {\r\n        notify.addClass(activeClass);\r\n        ins.hideNotify();\r\n      }); \r\n    }\r\n  },\r\n\r\n  hideNotify: function() {\r\n    var notify = $(this.selectors.notify), activeClass = 'active', ins = this;\r\n    this.data.notifyTimeout = setTimeout(function() {\r\n      notify.slideUp(ins.options.notifyDuration, function() {\r\n        notify.removeClass(activeClass);\r\n      });\r\n    }, this.options.notifyTimeout);\r\n  },\r\n\r\n  runLoadingDropdownNavInAjax: function(wrap, type, cb) {\r\n    var dropdownSelector = this.selectors[type].dropdown;\r\n    var view = this.options[type].view;\r\n    this.callAjax(theme.searchUrl, 'get', {'view': view}, null, function(html){\r\n      $(wrap).find(dropdownSelector).each(function(){\r\n        var dropdownId = '#' + $(this).attr('id');\r\n        $(this).html($(dropdownId, html).html());\r\n      });\r\n      cb();\r\n    });\r\n  },\r\n\r\n  openMobileNav: function() {\r\n    $('.mobile-nav').find('.link-list__item__link.active').each(function() {\r\n      var link = $(this);\r\n      link.parents('.link-list__item__dropdown').each(function() {\r\n        var dropdown = $(this);\r\n        dropdown.show();\r\n        dropdown.parent('.link-list__item').addClass('open');\r\n      });\r\n    });\r\n  },\r\n\r\n  /* Mobile Navigation */\r\n  initMobileNavigation: function() {\r\n    var openClass = 'open', workingClass = this.selectors.workingClass;\r\n    function showSubmenu(item) {\r\n      if(item.hasClass(workingClass)) {\r\n        return;\r\n      }\r\n      item.addClass(workingClass);\r\n      item.children('.mobile-nav__children').fadeIn(300, function() {\r\n        item.removeClass(workingClass);\r\n      });\r\n    }\r\n    function hideSubmenu(item, cb) {\r\n      if(item.hasClass(workingClass)) {\r\n        return;\r\n      }\r\n      item.addClass(workingClass);\r\n      item.children('.mobile-nav__children').hide();\r\n      item.removeClass(workingClass);\r\n      if(cb) {\r\n        cb();\r\n      }\r\n    }\r\n    $(document).on('click', '.mobile-nav__arrow', function(e) {\r\n      e.preventDefault();\r\n      var arrow = $(this);\r\n      var parent = $(this).parents('.mobile-nav__item').first();\r\n      if(parent.hasClass(workingClass)) {\r\n        return;\r\n      }\r\n\r\n      if(!parent.hasClass(openClass)) {\r\n        parent.addClass(openClass);\r\n        showSubmenu(parent);\r\n        parent.siblings('.' + openClass).each(function() {\r\n          $(this).removeClass(openClass);\r\n          hideSubmenu($(this));\r\n        });\r\n      } else {\r\n        parent.removeClass(openClass);\r\n        hideSubmenu(parent);\r\n      }\r\n    });\r\n    // this.openMobileNav();\r\n  },\r\n\r\n  showDropdown: function(ele) {\r\n    var ins = this;\r\n    ele.find('.load-header-cart').each(function() {\r\n      $(this).removeClass('load-header-cart');\r\n      $(this).html(ins.processSameId($('#header-cart-canvas').html()));\r\n    });\r\n    ele.addClass('active');\r\n  },\r\n\r\n  hideDropdown: function(ele){\r\n    ele.removeClass('active');\r\n  },\r\n\r\n  initDropdown: function() {\r\n    var dropdownSelector = this.selectors.dropdown,\r\n      ins = this,\r\n      overlaySelector = this.selectors.overlay;\r\n      \r\n    $(document).on('mouseenter', dropdownSelector.wrap, function() {\r\n      if(!ins.data.isTouchDevide) {\r\n        ins.showDropdown($(this));\r\n      }\r\n    }).on('mouseleave', dropdownSelector.wrap, function(e) {\r\n      if(!ins.data.isTouchDevide && !$(e.target).is(':focus')) {\r\n        ins.hideDropdown($(this));\r\n      }\r\n    });\r\n    $(document).on('click', dropdownSelector.trigger, function(e) {\r\n      if(ins.data.isTouchDevide) {\r\n        e.preventDefault();\r\n        var parent = $(this).parents(dropdownSelector.wrap).first();\r\n        if(parent.hasClass('active')) {\r\n          ins.hideDropdown(parent);\r\n        } else {\r\n          var dataGroup = parent.attr('data-group');\r\n          if(dataGroup != undefined) {\r\n            $(dropdownSelector.wrap + '[data-group=\"' + dataGroup + '\"].active').removeClass('active');\r\n          }\r\n          ins.showDropdown(parent);\r\n        }\r\n      }\r\n    });\r\n    $(document).on('click', 'body', function(e) {\r\n      if($(e.target).parents(dropdownSelector.wrap).length == 0) {\r\n        if($(dropdownSelector.wrap + '.active').length > 0) {\r\n          $(dropdownSelector.wrap + '.active').removeClass('active');\r\n        }\r\n      }\r\n    });\r\n  },\r\n\r\n  getInputFloatSelector: function() {\r\n    var floatSelector = this.selectors.floatField;\r\n    return floatSelector + ' input[type=\"text\"],' \r\n      + floatSelector + ' input[type=\"password\"],'\r\n      + floatSelector + ' input[type=\"number\"],'\r\n      + floatSelector + ' input[type=\"email\"],'\r\n      + floatSelector + ' input[type=\"tel\"]';\r\n  },\r\n\r\n  initFloatField: function() {\r\n    var floatSelector = this.selectors.floatField, ins = this;\r\n    var inputSelector = this.getInputFloatSelector();\r\n    $(document).on('focus', inputSelector, function() {\r\n      $(this).parents(floatSelector).addClass('active focus');\r\n    });\r\n    $(document).on('blur', inputSelector, function() {\r\n      if($(this).val() == '') {\r\n        $(this).parents(floatSelector).removeClass('active');\r\n      }\r\n      $(this).parents(floatSelector).removeClass('focus');\r\n    });\r\n    if($(this.selectors.floatFieldFirstFocus).length > 0) {\r\n      $(this.selectors.floatFieldFirstFocus).parents(floatSelector).addClass('active focus');\r\n    }\r\n  },\r\n\r\n  detectAutoFields: function() {\r\n    var floatSelector = this.selectors.floatField;\r\n    var inputSelector = this.getInputFloatSelector();\r\n      $(inputSelector).each(function() {\r\n        try {\r\n          if($(this).val() != '' || $(this).is(\":-webkit-autofill\")) {\r\n            $(this).parents(floatSelector).addClass('active');\r\n          }\r\n        } catch(e) {\r\n          if($(this).val() != '') {\r\n            $(this).parents(floatSelector).addClass('active');\r\n          }\r\n        }\r\n    });\r\n  },\r\n\r\n  loadCssJsLib: function(libName, cb) {\r\n    if(theme.loadedLibs.indexOf(libName) > -1) {\r\n      if(cb) {\r\n        cb();\r\n      }\r\n    } else {\r\n      if(theme.libs[libName] != undefined) {\r\n        var cssLibs = theme.libs[libName].css, jsLib = theme.libs[libName].js, ins = this;\r\n        if(cssLibs != undefined && theme.loadedCssLibs.indexOf(libName) == -1) {\r\n          theme.loadedCssLibs.push(libName);\r\n          $.each(cssLibs, function(index, fileUrl) {\r\n            $('<link/>', {\r\n               rel: 'stylesheet',\r\n               type: 'text/css',\r\n               href: 'https:' + fileUrl\r\n            }).appendTo('head');\r\n          });\r\n        }\r\n        if(jsLib != undefined) {\r\n          if(theme.pendingJsLibs[libName] == undefined) {\r\n            theme.pendingJsLibs[libName] = [];\r\n            if(ins.data.ajaxSetup == false) {\r\n              $.ajaxSetup({\r\n                  cache: true\r\n              });\r\n              ins.data.ajaxSetup = true;\r\n            }\r\n            $.getScript(\r\n              'https:' + jsLib\r\n            ).then(function() {\r\n              theme.loadedLibs.push(libName);\r\n              if(cb) {\r\n                cb();  \r\n              }\r\n              $.each(theme.pendingJsLibs[libName], function(index, cbItem) {\r\n                cbItem();\r\n                delete theme.pendingJsLibs[libName][index];\r\n              });\r\n            });\r\n          } else {\r\n            if(cb) {\r\n              theme.pendingJsLibs[libName].push(cb);\r\n            }\r\n          }\r\n        } else {\r\n          theme.loadedLibs.push(libName);\r\n          if(cb) {\r\n            cb();\r\n          }\r\n        }\r\n      }\r\n    }\r\n  },\r\n\r\n  /* Sidebar */\r\n  initSidebar: function() {\r\n    var ins = this;\r\n    $(document).on(this.options.sidebar.openEvent, this.selectors.sidebar.btn, function(e) {\r\n      e.preventDefault();\r\n      e.stopPropagation();\r\n      var dataPlacement = $(this).attr('data-placement');\r\n      var dataPlacementMobile = $(this).attr('data-placement-mobile');\r\n      var direction = (ins.data.cacheWindowWidth >= 768) ? dataPlacement : (dataPlacementMobile == undefined ? dataPlacement : dataPlacementMobile);\r\n      var block = $(this).attr('data-target');\r\n      if(!$('body').hasClass(ins.selectors.sidebar.openClass)) {\r\n        ins.showSidebar(block, direction, ins.options.sidebar.duration);\r\n      }\r\n    });\r\n    this.initHideNavMobile(300);\r\n  },\r\n  initHideNavMobile: function(duration) {\r\n    var ins = this;\r\n    var triggerSelector = this.selectors.overlay + ',' + this.selectors.sidebar.closeBtnCanvas + ',' + this.selectors.sidebar.closeSidebarBtn;\r\n    $(document).on(ins.options.sidebar.closeEvent, triggerSelector, function(e) {\r\n      e.preventDefault();\r\n      e.stopPropagation();\r\n      if($('body').hasClass(ins.selectors.sidebar.openClass)) {\r\n        ins.hideSidebar(duration, $(ins.selectors.overlay).attr('data-block'));\r\n      }\r\n    });\r\n  },\r\n  showSidebar : function(block, direction, duration) {\r\n    var width = $(block).outerWidth();\r\n    //$('.wrap-all').css({'overflow-x': 'inherit'});\r\n    var dataShow = {}\r\n    $(block).removeAttr('style');\r\n    if(direction == 'left') {\r\n      dataShow.left = 0;\r\n      $(block).css({left: '-100%'});\r\n      $(block).css({right: 'auto'});\r\n    } else if(direction == 'right') {\r\n      dataShow.right = 0;\r\n      $(block).css({right: '-100%'});\r\n      $(block).css({left: 'auto'});\r\n    } else {\r\n      dataShow = 'slideDown';\r\n    }\r\n    $('body').trigger('beforeShowSidebar-' + block.replace('#',''));\r\n    var overlaySelector = this.selectors.overlay;\r\n    $(overlaySelector).attr('data-block', block);\r\n\r\n    var ins = this;\r\n    if(dataShow == 'slideDown') {\r\n      var ownCanvasOpenClass = ins.selectors.sidebar.openClass + '--' + $(block).attr('id');\r\n      $('body').addClass(ins.selectors.sidebar.openClass + ' ' + ownCanvasOpenClass);\r\n      $(block).slideDown(duration, function() {\r\n        $(overlaySelector).addClass(direction);\r\n      });\r\n    } else {\r\n      var ownCanvasOpenClass = ins.selectors.sidebar.openClass + '--' + $(block).attr('id');\r\n      $('body').addClass(ins.selectors.sidebar.openClass + ' ' + ownCanvasOpenClass);\r\n      $(block).animate(dataShow,{\r\n        duration: duration,\r\n        complete: function() {\r\n          $(overlaySelector).addClass(direction);\r\n        }\r\n      });\r\n    }\r\n    $(overlaySelector).fadeIn(ins.options.sidebar.duration);\r\n  },\r\n  hideSidebar: function(duration, block) {\r\n    var overlaySelector = this.selectors.overlay;\r\n    var direction = $(overlaySelector).hasClass('left') ? 'left' : ($(overlaySelector).hasClass('up') ? 'up' : 'right');  \r\n    var width = $(block).outerWidth();\r\n    var dataHide = {};//, dataCloseBtn = {opacity: 0, top: '-100px'};\r\n    if(direction == 'left') {\r\n      dataHide.left = '-100%';\r\n    } else if(direction == 'right') {\r\n      dataHide.right = '-100%';\r\n    } else {\r\n      dataHide = 'slideUp';\r\n    }\r\n    var ownCanvasOpenClass = this.selectors.sidebar.openClass + '--' + $(block).attr('id');\r\n    $('body').removeClass(this.selectors.sidebar.openClass + ' ' + ownCanvasOpenClass);\r\n    if(dataHide == 'slideUp') {\r\n      $(block).slideUp(duration, function() {\r\n        $(overlaySelector).removeClass(direction);\r\n        $(block).removeAttr('style');\r\n      });\r\n    } else {\r\n      $(block).animate(dataHide, {\r\n        duration: duration,\r\n        complete: function() {\r\n          $(overlaySelector).removeClass(direction);\r\n          $(block).removeAttr('style');\r\n        }\r\n      });\r\n    }\r\n    $(overlaySelector).fadeOut(duration);\r\n  },\r\n\r\n  initSlickSlider: function(ele, useEffect) {\r\n    var dataSlider = {};\r\n    $.extend(true, dataSlider, this.options.slider);\r\n    if(ele.attr('data-slider')) {\r\n      try {\r\n        dataSlider = $.extend(true, dataSlider, JSON.parse(ele.attr('data-slider')));\r\n      } catch(e) {\r\n        ele.addClass('failed');\r\n        dataSlider = this.options.slider;\r\n      }\r\n    }\r\n    if(useEffect) {\r\n      ele.off('beforeChange');\r\n      ele.off('afterSlideChange');\r\n      ele.on('beforeChange', function(event, slick, currentSlide, nextSlide) {\r\n        var $slider = slick.$slider;\r\n        var $currentSlide = $slider.find('.slick-current').addClass('animate-out');\r\n      });\r\n      ele.on('afterChange', function(event, slick, currentSlide) {\r\n        var $slider = slick.$slider;\r\n        var $allSlides = $slider.find('.slick-slide').removeClass('animate-out');\r\n      });\r\n    }\r\n    ele.slick(dataSlider);\r\n    var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\r\n    if(isSafari && ele.hasClass('need-refresh')) {\r\n      ele.slick('refresh');\r\n    }\r\n\r\n  },\r\n  initSliderEle: function(ele, useEffect) {\r\n    if(this.data.cacheWindowWidth >= this.options.windowScreen.desktop || !ele.hasClass(this.selectors.slider.useTouchMobile)) {\r\n      var parent = ele.parent();\r\n      parent.height(parent.height());\r\n      parent.css({'overflow': 'hidden'});\r\n      this.preInitSlider(ele);\r\n      this.initSlickSlider(ele, useEffect);\r\n      setTimeout(function() {\r\n        ele.parent().removeAttr('style');\r\n      }, 500);\r\n    } else {\r\n      this.preInitSlider(ele);\r\n    }\r\n  },\r\n  preInitSlider: function(wrap, includeHideClass) {\r\n    if(typeof wrap == 'string') {\r\n      wrap = $(wrap);\r\n    }\r\n    var classes = this.selectors.slider.overFloatClasses;\r\n    if(includeHideClass) {\r\n      classes += ' hide';\r\n    }\r\n    wrap.find('.' + classes.replace(/ /g,',.')).removeClass(classes);\r\n  },\r\n  triggerResizeSlider: function(ele) {\r\n    var ins = this;\r\n    if(ele.hasClass(ins.selectors.slider.useTouchMobile)) {\r\n      $(window).on(ins.data.resizeEventName, function() {\r\n        if(ins.data.cacheWindowWidth >= ins.options.windowScreen.desktop) {\r\n          if(!ele.hasClass('slick-initialized')) {\r\n            ins.initSlickSlider(ele);\r\n          }\r\n        } else {\r\n          if(ele.hasClass('slick-initialized') && ele.hasClass(ins.selectors.slider.useTouchMobile)) {\r\n            setTimeout(function() {\r\n              ele.slick('unslick');\r\n            }, 300);\r\n          }\r\n        }\r\n      });\r\n    }\r\n  },\r\n\r\n  getSliderSelector: function() {\r\n    return this.selectors.slider.default + ':not(' + this.selectors.waitingData + ')';\r\n  },\r\n\r\n  initSlider: function(wrap, wait, useEffect) {\r\n    var ins = this;\r\n    var sliderSelector = this.getSliderSelector(), touchMobileWrap = 'touch-mobile';\r\n    if(typeof wrap == 'string') {\r\n      wrap = $(wrap);\r\n    }\r\n    var sliders = wrap.find(sliderSelector);\r\n    if(!sliders.length) {\r\n      return;\r\n    }\r\n\r\n    if(this.data.cacheWindowWidth >= this.options.windowScreen.desktop || !wrap.hasClass(touchMobileWrap)) {\r\n      if(wait) {\r\n        var suffixEvent = 'init_slider_' + this.data.sliderIndex;\r\n        this.data.sliderIndex++;\r\n        this.initScrollingWindowTriggerOnce(wrap, suffixEvent,  -170, function() {\r\n          sliders.each(function() {\r\n            var ele = $(this);\r\n            ins.initSliderEle(ele, useEffect);\r\n            ins.triggerResizeSlider(ele);\r\n          });\r\n        });\r\n      } else {\r\n        sliders.each(function() {\r\n          var ele = $(this);\r\n          ins.initSliderEle(ele, useEffect);\r\n          ins.triggerResizeSlider(ele);\r\n        });\r\n      }\r\n    } else {\r\n      ins.preInitSlider(wrap);\r\n      sliders.each(function() {\r\n        var ele = $(this);\r\n        ins.triggerResizeSlider(ele);\r\n      });\r\n    }\r\n  },\r\n\r\n  destroySlider: function(wrap) {\r\n    if(typeof wrap == 'string') {\r\n      wrap = $(wrap);\r\n    }\r\n    var sliders = wrap.find(this.getSliderSelector());\r\n    if(!sliders.length) {\r\n      return;\r\n    }\r\n    sliders.each(function() {\r\n      var ele = $(this);\r\n      if(ele.hasClass('slick-initialized')) {\r\n        ele.slick('unslick');\r\n      }\r\n    });\r\n  },\r\n\r\n  refreshSliderInTabs: function() {\r\n    var ins = this;\r\n    $('a[data-toggle=\"tab\"]').on('shown.bs.tab', function (e) {\r\n      var windowWidth = ins.data.cacheWindowWidth;\r\n      var tabContent = $(e.target).attr('href');\r\n      var sliderSelector = ins.selectors.slider.default + ':not(' + ins.selectors.waitingData + ')';\r\n      if($(tabContent).find(sliderSelector).length > 0) {\r\n        $(tabContent).find(sliderSelector).each(function() {\r\n          var ele = $(this);\r\n          if(windowWidth >= ins.options.windowScreen.desktop) {\r\n            if(ele.hasClass('slick-initialized')) {\r\n              ele.slick('setPosition');\r\n            }\r\n          } else {\r\n            if(!ele.hasClass(ins.selectors.slider.useTouchMobile) && ele.hasClass('slick-initialized')) {\r\n              ele.slick('setPosition');\r\n            }\r\n          }\r\n        });\r\n      }\r\n    });\r\n  },\r\n\r\n  submitCartForm: function(form, btn, cb, cbError) {\r\n    var ins = this;\r\n    if(form.valid()) {\r\n      /*var progressWrap = btn.siblings('.progress');\r\n      var progressBar = progressWrap.find('.progress-bar');\r\n      if(progressWrap) {\r\n        progressWrap.removeClass('hide');\r\n      }*/\r\n      form.ajaxSubmit({\r\n        url: theme.cartAddUrl,\r\n        type: 'post',\r\n        dataType: 'json',\r\n        error: function(xhr, textStatus, errorThrown) {\r\n          if(xhr.responseJSON.description != undefined && xhr.responseJSON.description != null) {\r\n            ins.showNotify(xhr.responseJSON.description, ins.options.notifyClassTypes.danger);\r\n          } else if (xhr.responseJSON.message != undefined) {\r\n            ins.showNotify(xhr.responseJSON.message, ins.options.notifyClassTypes.danger);\r\n            //showNotifyMsg(xhr.responseJSON.message, 'error');\r\n          }\r\n          ins.endLoadingBtn(btn);\r\n          btn.removeClass(ins.selectors.workingClass);\r\n          //showNotifyMsg(xhr.responseJSON.description, 'error');\r\n          /*if(progressWrap) {\r\n            progressBar.width('0%').text('0%');\r\n            progressWrap.addClass('hide');\r\n          }*/\r\n        },\r\n        uploadProgress: function(event, position, total, percentComplete) {\r\n          /*if(progressWrap) {\r\n            progressBar.width(percentComplete + '%').text(percentComplete + '%');  \r\n          }*/\r\n        },\r\n        success: function(data, textStatus, jqXHR, $form) {\r\n          /*if(progressWrap) {\r\n            progressBar.width('0%').text('0%');\r\n            progressWrap.addClass('hide');\r\n          }*/\r\n          cb(data);\r\n        }\r\n      });\r\n    } else {\r\n      cbError();\r\n    }\r\n  },\r\n\r\n  updateFaviconBadge: function(number) {\r\n    if(!theme.favicon.enable || this.data.cacheWindowWidth < 768 || !number) {\r\n      return false;\r\n    }\r\n    if(this.data.favicon == null) {\r\n      this.data.favicon = new Favico({\r\n        animation:'slide',\r\n        position: theme.favicon.pos,\r\n        bgColor : theme.favicon.bkgColor,\r\n        textColor : theme.favicon.textColor,\r\n      });\r\n    }\r\n    number = parseInt(number);\r\n    if(number > 0) {\r\n      this.data.favicon.badge(number);\r\n    } else {\r\n      this.data.favicon.reset();\r\n    }\r\n  },\r\n\r\n  updateHeaderCartHtml: function(ignoreCartAction) {\r\n    if((theme.cartAction == 'redirect' || theme.cartAction == 'redirect_checkout' ) && ignoreCartAction == false) {\r\n      return;\r\n    }\r\n    var cartSelector = this.selectors.cart, ins = this;\r\n    new Promise(function(resolve, reject) {\r\n      ins.callAjax(theme.rootUrl, 'GET', {view: 'header_cart'}, null, function(response) {\r\n        var htmlHeaderCart, headerCartSelector;\r\n        htmlHeaderCart = $(cartSelector.header, response).html();\r\n        headerCartSelector = cartSelector.header;\r\n        $(headerCartSelector).each(function() {\r\n          $(this).html(ins.processSameId(htmlHeaderCart));\r\n        });\r\n        var number = $(cartSelector.number, response).html();\r\n        var total = $(cartSelector.total, response).html();\r\n        $(cartSelector.number).html(number);\r\n        $(cartSelector.total).html(total);\r\n        ins.updateFaviconBadge(number);\r\n        resolve(cartSelector.header);  \r\n      });\r\n    }).then(function(wrapper) {\r\n      if(wrapper != undefined) {\r\n        ins.convertCurrencySilence(wrapper + ' span.money');\r\n        $(document).trigger('ajaxCart.afterUpdateHeaderCartHtml');\r\n      }\r\n      ins.convertCurrencySilence(cartSelector.total + ' span.money');\r\n      ins.resetCartTerms();\r\n      $(document).trigger('ajaxCart.afterCartLoad');\r\n      // Not run below code on cart page\r\n      if (window.Shopify && Shopify.StorefrontExpressButtons != undefined && !$('body').hasClass('template-cart')) {\r\n        Shopify.StorefrontExpressButtons.initialize();\r\n      }\r\n    }, function(err) {\r\n      // console.log(err);\r\n    });\r\n  },\r\n\r\n  generateCartMessage: function(productTitle) {\r\n    return theme.strings.addCartMsg.replace(this.options.productNameHolder, '<strong>' + productTitle + '</strong>');\r\n  },\r\n\r\n  updateCartMessage: function(productTitle) {\r\n    $(this.selectors.cartMessage).removeClass('hide').html(this.generateCartMessage(productTitle));\r\n  },\r\n\r\n  showPopupCart: function(cartResponse, cb) {\r\n    var ins = this;\r\n    this.loadSnippetAjax('popup-cart', function() {\r\n      ins.loadUpsellInPopup(cartResponse.handle, cartResponse.title);\r\n      ins.updateCartMessage(cartResponse.title);\r\n      var selector = ins.selectors.cartModal;\r\n      // wrap: '#cartModal',\r\n      //   productImage: '.cart-response__image',\r\n      //   productName: '.cart-response__name',\r\n      //   variantTitle: '.cart-response__meta-variant-title',\r\n      //   variantProp: '.cart-response__meta-propeties',\r\n      //   price: '.cart-response__price',\r\n      //   qty: '.cart-response__qty'\r\n      $(selector.productImage).attr('href', cartResponse.url)\r\n        .attr('title', cartResponse.title)\r\n        .find('img')\r\n        .attr('src', ins.resizeImage(cartResponse.image, '360x'))\r\n        .attr('alt', cartResponse.title);\r\n      \r\n      $(selector.productName + ' > a').attr('title', cartResponse.title)\r\n        .attr('href', cartResponse.url)\r\n        .html(cartResponse.product_title);\r\n      \r\n      var variantTitle = $(selector.variantTitle);\r\n      variantTitle.html('');\r\n      if(cartResponse.variant_title != null) {\r\n        $(cartResponse.options_with_values).each(function(index, option) {\r\n          variantTitle.append('<span class=\"cart-response__meta-variant-title w100 db\">' + option.name + ': ' + option.value + '</span>');\r\n        });   \r\n      }\r\n\r\n      if(cartResponse.properties) {\r\n        var prop = $(selector.variantProp);\r\n        prop.removeClass('hide');\r\n        prop.html('');\r\n        $.each(cartResponse.properties, function( index, p ){\r\n          var pItem = $('<span class=\"gutter-ele-small-top w100 db cart__meta-text\"></span>')\r\n          pItem.append(index + ': ');\r\n          if(p.indexOf('/uploads/') > 0) {\r\n            pItem.append(p.split(\"/\").pop());\r\n          } else {\r\n            pItem.append(p);\r\n          }\r\n          prop.append(pItem);\r\n        });\r\n      } else {\r\n        $(selector.variantProp).addClass('hide');\r\n      }\r\n\r\n      $(selector.qty).html(cartResponse.quantity); \r\n      $(selector.price).html(ins.getPriceHtml(cartResponse.price)); \r\n      $(selector.linePrice).html(ins.getPriceHtml(cartResponse.line_price));\r\n      ins.resetCartTerms();\r\n      if(theme.enableFreeShipping) {\r\n        ins.callAjax(theme.cartJsonUrl, 'get', null, 'json', function(cartObj) {\r\n          var freeShippingPercent;\r\n          if(cartObj.total_price >= theme.freeShippingGoal) {\r\n            $(selector.freeShippingText).html(theme.freeShippingGoalText);\r\n            freeShippingPercent = 100;\r\n          } else {\r\n            var remain_amount = theme.freeShippingGoal - cartObj.total_price;\r\n            var remain_amount_html = '<strong>' + ins.getPriceHtml(remain_amount) + '</strong>';\r\n            $(selector.freeShippingText).html(theme.freeShippingProgressText.replace('[remain_amount]',remain_amount_html));\r\n            freeShippingPercent = Math.round((cartObj.total_price*100)/theme.freeShippingGoal);\r\n          }\r\n          $(selector.freeShippingProgressBar).attr('aria-valuenow',freeShippingPercent).css('width',freeShippingPercent + '%');\r\n          $(selector.freeShippingProgressBar + ' span').text(freeShippingPercent + '%');\r\n          BtCurrency.convertSilence(shopCurrency, BtCurrency.currentCurrency, selector.wrap + ' span.money');\r\n          ins.showPopup(selector.wrap);\r\n          cb();\r\n        });\r\n      } else {\r\n        BtCurrency.convertSilence(shopCurrency, BtCurrency.currentCurrency, selector.wrap + ' span.money');\r\n        ins.showPopup(selector.wrap);\r\n        cb();\r\n      }\r\n    });\r\n  },\r\n\r\n  enableCartTerms: function() {\r\n    $(this.selectors.cartTerms.checkbox).prop('checked', false);\r\n    $(this.selectors.cartTerms.checkoutBtn).addClass('disabled');\r\n    $(this.selectors.cartTerms.paymentBtn).addClass('disabled');\r\n  },\r\n\r\n  disableCartTerms: function() {\r\n    $(this.selectors.cartTerms.checkbox).prop('checked', true);\r\n    $(this.selectors.cartTerms.checkoutBtn).removeClass('disabled');\r\n    $(this.selectors.cartTerms.paymentBtn).removeClass('disabled');\r\n  },\r\n\r\n  resetCartTerms: function() {\r\n    if(this.agreeCartTerms()) {\r\n      this.disableCartTerms();\r\n    } else {\r\n      this.enableCartTerms();\r\n    }\r\n  },\r\n\r\n  showCartTermsErrorMsg: function(label) {\r\n    label.addClass('notify-terms');\r\n    if(label.siblings('.alert').length == 0) {\r\n      label.parent().append('<div class=\"alert alert-danger w100 distance-top-ele\" style=\"margin-bottom:0;display:none;\">' + theme.strings.cartTermsErrorMsg + '</div>');  \r\n    }\r\n    label.siblings('.alert').show(300);\r\n  },\r\n\r\n  hideCartTermsErrorMsg: function() {\r\n    var label = $(this.selectors.cartTerms.label);\r\n    label.removeClass('notify-terms');\r\n    label.siblings('.alert').hide(300);\r\n  },\r\n\r\n  initAgreeCartTems: function(){\r\n    if(!theme.cartTerms) {\r\n      return true;\r\n    }\r\n    var ins = this, cookieName = this.options.cartTerms.cookieName, selector = this.selectors.cartTerms;\r\n    this.resetCartTerms();\r\n    $(document).on('change', selector.checkbox, function(e) {\r\n      e.preventDefault();\r\n      if($(this).is(':checked')) {\r\n        ins.setCookie(cookieName, 1);\r\n        if($(this).hasClass('redirect')) {\r\n          window.location.href = '/checkout';\r\n        } else {\r\n          $(selector.checkbox).not(this).prop('checked', true);\r\n          $(selector.checkoutBtn).removeClass('disabled');\r\n          $(selector.paymentBtn).removeClass('disabled');\r\n          ins.hideCartTermsErrorMsg();\r\n        }\r\n      } else {\r\n        ins.setCookie(cookieName, null);\r\n        $(selector.checkbox).not(this).prop('checked', false);\r\n        $(selector.checkoutBtn).addClass('disabled');\r\n        $(selector.paymentBtn).addClass('disabled');\r\n      }\r\n    });\r\n    $(document).on('click', '.shopify-payment-button,' + selector.checkoutBtn, function(e) {\r\n      if($(this).hasClass('disabled')) {\r\n        e.preventDefault();\r\n        ins.showCartTermsErrorMsg($(this).parent().siblings(selector.wrap).find(selector.label).first());\r\n      } else {\r\n        if($(this).hasClass('checkout-btn--redirect')) {\r\n          window.location.href = theme.rootUrl + 'checkout';\r\n        }\r\n      }\r\n    });\r\n  },\r\n\r\n  agreeCartTerms: function() {\r\n    if(!theme.cartTerms) {\r\n      return true;\r\n    }\r\n    var cookieName = this.options.cartTerms.cookieName;\r\n    var cookie = this.getCookie(cookieName);\r\n    if(cookie == undefined || cookie == null || cookie == 'null') {\r\n      return false;\r\n    }\r\n    return true;\r\n  },\r\n\r\n  runCartAction: function(cartResponse, cb) {\r\n    if(theme.cartAction == 'redirect') {\r\n      window.location.href = theme.cartUrl;\r\n    } else if (theme.cartAction == 'redirect_checkout') {\r\n      if(this.agreeCartTerms()) {\r\n        window.location.href = '/checkout';\r\n      } else {\r\n        this.updateHeaderCartHtml(true);\r\n        var ins = this;\r\n        this.loadSnippetAjax('popup-terms', function() {\r\n          if($(ins.selectors.cartTerms.popup).length > 0) {\r\n            ins.showPopup(ins.selectors.cartTerms.popup);\r\n            cb();\r\n          }\r\n        });\r\n      }\r\n    } else if(theme.cartAction == 'popup') {\r\n      this.updateHeaderCartHtml(false);\r\n      this.showPopupCart(cartResponse, cb);\r\n    } else if(theme.cartAction == 'open_cart') {\r\n      this.updateHeaderCartHtml(false);\r\n      setTimeout(function() {\r\n        $('.cart-sidebar-trigger').trigger('click');\r\n        cb();\r\n      }, 300);\r\n    } else if(theme.cartAction == 'notify_msg') {\r\n      this.updateHeaderCartHtml(false);\r\n      this.showNotify(this.generateCartMessage(cartResponse.title), this.options.notifyClassTypes.success);\r\n      cb();\r\n    } else {\r\n      this.updateHeaderCartHtml(false);\r\n      cb();\r\n    }\r\n  },\r\n\r\n  initCartEvent: function () {\r\n    var ins = this, cartSelector = this.selectors.cart;\r\n    $(document).on('click', cartSelector.addBtn, function(e) {\r\n      e.preventDefault();\r\n      var btn = $(this);\r\n      if(btn.hasClass(ins.selectors.workingClass)) {\r\n        return;\r\n      }\r\n      // Add product to cart\r\n      var form = $(this).parents('form');\r\n\r\n      btn.addClass(ins.selectors.workingClass);\r\n      ins.startLoadingBtn(btn);\r\n      ins.submitCartForm(form, btn, function(response) {\r\n        ins.runCartAction(response, function() {\r\n          ins.endLoadingBtn(btn);\r\n          if((theme.cartAction == 'open_cart' || theme.cartAction == 'notify_msg') && btn.parents('.modal').length > 0) {\r\n            ins.hidePopup('#' + btn.parents('.modal').first().attr('id'));\r\n          }\r\n        });\r\n        btn.removeClass(ins.selectors.workingClass);\r\n      }, function() {\r\n        ins.endLoadingBtn(btn);\r\n        btn.removeClass(ins.selectors.workingClass);\r\n      });\r\n    });\r\n\r\n    $(document).on('click', cartSelector.updateBtn, function(e) {\r\n      e.preventDefault();\r\n      if($(this).hasClass(ins.selectors.workingClass)) {\r\n        return;\r\n      }\r\n      $(this).addClass(ins.selectors.workingClass);\r\n      if($(this).attr('data-toggle') == 'tooltip') {\r\n        $(this).tooltip('hide');\r\n        if($(this).hasClass('cart__remove')) {\r\n          $(this).removeAttr('data-toggle');\r\n        }\r\n      }\r\n      var line = $(this).attr('data-index');\r\n      var value = $(this).attr('data-value');\r\n      var i = $(this).find('i');\r\n      i.addClass(ins.selectors.loadingAjaxClass);\r\n      if(isNaN(value)) {\r\n        if($(value).length == 0) {\r\n          $(this).find('i').removeClass(ins.selectors.loadingAjaxClass);\r\n          $(this).removeClass(ins.selectors.workingClass);\r\n          return;\r\n        }\r\n        // value is selector to an input\r\n        value = $(value).val();\r\n      }\r\n      ins.requestUpdateCart(line, value, function() {\r\n        ins.updateHeaderCartHtml(true);\r\n      }, function() {\r\n        i.removeClass(ins.selectors.loadingAjaxClass);\r\n      });\r\n    });\r\n\r\n    $(document).on('change', cartSelector.qtyInput, function() {\r\n      var line = $(this).attr('data-line');\r\n      ins.showLoadingFull();\r\n      ins.requestUpdateCart(line, $(this).val(), function() {\r\n        ins.updateHeaderCartHtml(true);\r\n        ins.hideLoadingFull();\r\n      }, function() {\r\n        ins.hideLoadingFull();\r\n      });\r\n    });\r\n  },\r\n\r\n  hideSearchFull: function() {\r\n    $(this.selectors.searchFull.wrap).fadeOut();\r\n    $('body').removeClass('open-search-suggest');\r\n  },\r\n\r\n  renderSearchFullContent: function(html) {\r\n    var selector = this.selectors.searchFull;\r\n    this.data.searchSuggestionCurrentAjaxRequest = null;\r\n    $(selector.loading).removeClass(this.selectors.loadingAjaxClass);\r\n    $(selector.content + '__' + this.data.searchSuggestionCurrentType).addClass(selector.loadedClass);\r\n    var resultWrap = $(selector.content + '__' + this.data.searchSuggestionCurrentType + ' ' + selector.result);\r\n    resultWrap.html(html);\r\n    $(selector.suggestProducts).hide();\r\n    if(this.data.searchSuggestionCurrentType == 'product') {\r\n      this.convertCurrencySilence(resultWrap.find('span.money'));\r\n      this.initDealCountdown(resultWrap);\r\n      this.applyCustomColorSwatches(resultWrap);\r\n      this.reLoadReview(resultWrap);\r\n      this.popularAddedWishlistItems(resultWrap);\r\n    }\r\n  },\r\n\r\n  initSearchSuggestion: function () {\r\n    var selector = this.selectors.searchFull, workingClass = 'working', snippetName = 'search-full', promo = this.selectors.promo.wrap;\r\n    var ins = this;\r\n    var resetHeight = false, tempTerm = undefined;\r\n    function showSearchContent() {\r\n      $(selector.wrap).fadeIn();\r\n      $('body').addClass('open-search-suggest');\r\n    }\r\n    $(document).on('click', selector.trigger, function(e, term, hideSuggestProducts) {\r\n      e.preventDefault();\r\n      if(term != undefined) {\r\n        tempTerm = term;\r\n      }\r\n      if($(this).hasClass(workingClass)) {\r\n        return;\r\n      }\r\n      var btn = $(this);\r\n      btn.addClass(workingClass);\r\n      showSearchContent();\r\n      btn.removeClass(workingClass);\r\n      if(tempTerm != undefined) {\r\n        $(selector.input).val(tempTerm);\r\n        $(selector.input).trigger('change');\r\n        tempTerm = undefined;\r\n      }\r\n      $(selector.input).focus();\r\n    });\r\n    $(document).on('click', selector.close, function(e) {\r\n      e.preventDefault();\r\n      ins.hideSearchFull();\r\n    });\r\n    if(!theme.searchSuggest.enable) {\r\n      return;\r\n    }\r\n    var loadedClass = 'loaded';\r\n    var needResetLoaded = false;\r\n    var dataSearch = {options:{prefix:'last'}};\r\n    $(document).on('keyup change', selector.input, $.throttle(500, function(evt) {\r\n      var input = $(this);\r\n      var term = input.val(); \r\n      if (term.length >= 3 && term != input.attr('data-term')) {\r\n        if (ins.data.searchSuggestionCurrentAjaxRequest != null) {\r\n          ins.data.searchSuggestionCurrentAjaxRequest.abort();\r\n        }\r\n        var searchURL = theme.searchUrl + '?view=suggest&q=' + term + '&type=' + ins.data.searchSuggestionCurrentType;\r\n        $(selector.loading).addClass(ins.selectors.loadingAjaxClass);\r\n        input.attr('data-term', term);\r\n        needResetLoaded = true;\r\n        ins.data.searchSuggestionCurrentAjaxRequest = ins.callAjax(searchURL, 'get', dataSearch, null, function(html) {\r\n          $(selector.tabList).removeClass('hide');\r\n          $(selector.content).removeClass('hide');\r\n          $(selector.tabContent + ':not(.active)').removeClass(loadedClass);\r\n          needResetLoaded = false;\r\n          ins.renderSearchFullContent(html);\r\n          $(window).trigger('renderedSearchFullContent', [term]);\r\n        });\r\n      }\r\n    }));\r\n    $(document).on('keyup change', selector.inputSync, $.throttle(500, function(evt) {\r\n      var input = $(this);\r\n      var term = input.val();\r\n      if (term.length >= 3 && term != $(this).attr('term')) {\r\n        $(selector.inputSync).siblings('button').find('i').addClass(ins.selectors.loadingAjaxClass);\r\n        $(selector.trigger).trigger('click', [term, true]);\r\n      }\r\n    }));\r\n    $(window).on('renderedSearchFullContent', function(e, term) {\r\n      $(selector.inputSync).attr('term', term);\r\n      $(selector.inputSync).siblings('button').find('i').removeClass(ins.selectors.loadingAjaxClass);\r\n    });\r\n    $(document).on('shown.bs.tab', selector.tabTitle, function (e) {\r\n      var target = $(e.target);\r\n      var tabContent = $(target.attr('href'));\r\n      if(needResetLoaded) {\r\n        $(selector.tabContent + ':not(.active)').removeClass(loadedClass);\r\n        needResetLoaded = false;\r\n      }\r\n      ins.data.searchSuggestionCurrentType = target.attr('data-type');\r\n      if(!tabContent.hasClass(selector.loadedClass)) {\r\n        if (ins.data.searchSuggestionCurrentAjaxRequest != null) { \r\n          ins.data.searchSuggestionCurrentAjaxRequest.abort();\r\n          \r\n        };\r\n        var term = $(selector.input).val();\r\n        var url = theme.searchUrl + '?view=suggest&q=' + term + '&type=' + ins.data.searchSuggestionCurrentType;\r\n        ins.data.searchSuggestionCurrentAjaxRequest = ins.callAjax(url, 'get', dataSearch, null, function(html) {\r\n          ins.renderSearchFullContent(html);\r\n          $(window).trigger('renderedSearchFullContent', [term]);\r\n        });\r\n      }\r\n    });\r\n  },\r\n\r\n  loadUpsell: function(wrap) {\r\n    if(typeof wrap == 'undefined' || wrap.length == 0) {\r\n      return;\r\n    }\r\n    var ins = this, selector = this.selectors.upsell;\r\n    var productHandle = wrap.attr('data-handle');\r\n    var list = wrap.find(selector.list);\r\n    if(list.hasClass('slick-initialized')) {\r\n      list.slick('unslick');\r\n    }\r\n    list.html('');\r\n    list.siblings(this.selectors.loadingNotFull).show();\r\n    wrap.show();\r\n    var limit = upsellRandom ? 100 : parseInt(wrap.attr('data-limit'));\r\n    this.callAjax(theme.rootUrl + 'products/' + productHandle, 'GET', {view:'upsell_tags'}, null, function(responseTags) {\r\n      new Promise(function(resolve, reject) {\r\n        var upsellTags = $.parseJSON(responseTags.replace('<!-- BEGIN template -->','').replace('<!-- product.upsell_tags -->','').replace('<!-- END template -->','')), upsellList = [], upsellIds = [], index = 0;\r\n        var tagsLength = upsellTags.length;\r\n        if(tagsLength == 0) {\r\n          resolve([]);\r\n        }\r\n        var view = wrap.attr('data-slider') ? 'upsell_slider' : 'upsell';\r\n        $(upsellTags).each(function(indexTag, tag) {\r\n          ins.callAjax(theme.collectionAllUrl + '/' + tag, 'GET', {view:view}, null, function(responseUpsell) {\r\n            $('.product-item', responseUpsell).each(function() {\r\n              if(upsellIds.indexOf($(this).attr('data-id')) < 0 && $(this).attr('data-handle') != productHandle && index < limit) {\r\n                upsellList.push($(this).html());\r\n                upsellIds.push($(this).attr('data-id'));\r\n                index++;\r\n              }\r\n            });\r\n            \r\n            if(indexTag == tagsLength - 1) {\r\n              if(upsellRandom) {\r\n                upsellList = ins.shuffleArray(upsellList);\r\n              }\r\n              resolve(upsellList);\r\n            }\r\n          });  \r\n        });\r\n      }).then(function(upsellList) {\r\n        list.siblings(ins.selectors.loadingNotFull).hide();\r\n        if(upsellList.length > 0) {\r\n          var index = 0;\r\n          $(upsellList).each(function(i, value) {\r\n            if(index < limit) {\r\n              list.append(value);  \r\n            }\r\n            index++;\r\n          });\r\n          ins.convertCurrencySilence(list.find('span.money'));\r\n          ins.applyCustomColorSwatches(list);\r\n          ins.initSlider(wrap, false, false);\r\n          ins.popularAddedWishlistItems(wrap);\r\n        } else {\r\n          wrap.hide();\r\n        }\r\n      }, function(e) {\r\n        // console.log(e);\r\n      });\r\n    });\r\n  },\r\n\r\n  loadUpsellInPopup: function(productHandle, productTitle) {\r\n    var ins = this;\r\n    var upsellEle = $(this.selectors.cartModal.wrap + ' ' + this.selectors.upsell.wrap);\r\n    if(typeof upsellEle == 'undefined' || upsellEle.length == 0) {\r\n      return;\r\n    }\r\n    upsellEle.attr('data-handle', productHandle);\r\n    upsellEle.find('.upsell-title').html(theme.strings.upsellTitle.replace(this.options.productNameHolder, '<strong>' + productTitle + '</strong>'));\r\n    this.loadUpsell(upsellEle);\r\n  },\r\n\r\n  addRecommendationUrls: function(ele, urls) {\r\n    var qvBtn = this.selectors.qvBtn;\r\n    var hrefSelector = 'a.item__image,a.item__name,' + qvBtn;\r\n    ele.find('.item').each(function() {\r\n      var handle = $(this).attr('data-product-handle');\r\n      if(urls[handle]) {\r\n        $(this).find(hrefSelector).attr('href', urls[handle]);\r\n        $(this).find('.effect-hover__bkg').attr('onclick', \"window.location.href = '\" + urls[handle] + \"';\");\r\n      }\r\n    })\r\n  },\r\n\r\n  gotoSliderIndex: function(slider, index) {\r\n    slider.slick('slickGoTo', index, true);\r\n  },\r\n\r\n  getUnitPriceHtml: function(pg, variant) {\r\n    if(variant.unit_price_measurement != undefined) {\r\n      var html = '<span class=\"w100 gutter-ele' + (!pg.hasClass('product-single') ? '-small' : '') + '-top product-price__unit db\">';\r\n      html += this.getPriceHtml(variant.unit_price) + '<span class=\"product-price__unit__separator\">/</span><span class=\"product-price__unit__base\">'\r\n      + (variant.unit_price_measurement.reference_value != 1 ? variant.unit_price_measurement.reference_value : '') + variant.unit_price_measurement.reference_unit + '</span>';\r\n      html += '</span>';\r\n      return html;\r\n    }\r\n    return '';\r\n  },\r\n\r\n  getVariantPriceHtml: function(pg, variant) {\r\n    var priceHtml = '';\r\n    if(variant.compare_at_price > variant.price) {\r\n      priceHtml += '<span class=\"product-price__price\">' + this.getPriceHtml(variant.price) + '</span>';\r\n      priceHtml += '<s class=\"product-price__price product-price__sale\">' + this.getPriceHtml(variant.compare_at_price) + '</s>';\r\n    } else {\r\n      priceHtml += '<span class=\"product-price__price\">' + this.getPriceHtml(variant.price) + '</span>';\r\n    }\r\n    if(variant.available == false && pg.attr('data-ignore-sold-out-text') == undefined) {\r\n      priceHtml += '<span class=\"product-price__sold-out\">' + theme.strings.soldOut + '</span>';\r\n    }\r\n    priceHtml += this.getUnitPriceHtml(pg, variant);\r\n    return priceHtml;\r\n  },\r\n\r\n  initProductGroup: function() {\r\n    var selector = this.selectors.productGroup, options = this.options.productGroup, ins = this;\r\n    // Init small images slider\r\n    // this.initProductThumbsSlider();\r\n    // this.initProductMainSliderAndZoom();\r\n    \r\n    $(document).on('click change', selector.optionValue, function(e) {\r\n      e.preventDefault();\r\n      var btn = $(this);\r\n      var pg = btn.parents(selector.wrap).first();\r\n      var productHandle = pg.attr('data-product-handle');\r\n      if($(this).hasClass('disabled') \r\n        || ($(this).hasClass('selected') && ins.data.productGroup[productHandle] != undefined) \r\n        || (e.type == 'click' && e.target.nodeName == 'SELECT')) {\r\n        return;\r\n      }\r\n      new Promise(function(resolve, reject) {\r\n        ins.data.updatingProductOptions = true;\r\n        if(ins.data.productGroup[productHandle] == undefined) {\r\n          // Load product data\r\n          pg.addClass(selector.loadingClass);\r\n          ins.callAjax(theme.rootUrl + 'products/' + productHandle, 'get', {view: 'tjson'}, null, function(response) {\r\n            ins.data.productGroup[productHandle] = $.parseJSON(response.replace('<!-- BEGIN template -->','').replace('<!-- product.tjson -->','').replace('<!-- END template -->',''));\r\n            pg.removeClass(selector.loadingClass);\r\n            resolve();\r\n          });\r\n        } else {\r\n          resolve();\r\n        }\r\n      }).then(function() {\r\n        // Create current select\r\n        var currentOption = btn.parents(selector.option);\r\n        var currentOptionIndex = currentOption.attr('data-index');\r\n        var currentSelect = [];\r\n        var optionFormat = btn.prop(\"tagName\").toLowerCase();\r\n        pg.find(selector.option).each(function() {\r\n          var index = $(this).attr('data-index'), value;\r\n          if(index != currentOptionIndex) {\r\n            if($(this).hasClass('swatch')) {\r\n              value = $(this).find('.selected').attr('data-value');\r\n            } else {\r\n              value = $(this).find(selector.optionValue).val();\r\n            }\r\n          } else {\r\n            if(optionFormat == 'a') {\r\n              value = btn.attr('data-value');\r\n            } else {\r\n              value = btn.val();\r\n            }\r\n          }\r\n          currentSelect.push(value);\r\n          if($(this).hasClass(selector.isGroupClass)) {\r\n            pg.find(selector.groupData).attr('data-value', value);\r\n          }\r\n        });\r\n\r\n        // Find new variant base on current select\r\n        var optionSize = currentSelect.length,\r\n          newVariant,\r\n          newVariant1,\r\n          newVariant2,\r\n          newVariant3,\r\n          availableOption2 = [],\r\n          availableOption3 = [],\r\n          variantsMatchOption1 = [];\r\n          variantsMatchOption2 = [],\r\n          resetOutStockGroup = (ins.data.outStockGroup[productHandle] == undefined && !currentOption.hasClass('last')),\r\n          isLastOption = currentOption.hasClass('last');\r\n          if(resetOutStockGroup) {\r\n            ins.data.outStockGroup[productHandle] = [];\r\n          }\r\n        $.each(ins.data.productGroup[productHandle], function(variantId, variant) {\r\n          if(variant.options[0] == currentSelect[0]) {\r\n            if(newVariant == undefined) {\r\n              newVariant = variant;\r\n            }\r\n            if(newVariant1 == undefined && (variant.available || isLastOption)) {\r\n              newVariant1 = variant;\r\n            }\r\n            if(optionSize > 1) {\r\n              if(availableOption2.indexOf(variant.options[1]) == -1) {\r\n                availableOption2.push(variant.options[1]);\r\n              }\r\n              variantsMatchOption1.push(variant);\r\n              if(variant.options[1] == currentSelect[1]) {\r\n                if(newVariant2 == undefined && (variant.available || isLastOption)) {\r\n                  newVariant2 = variant;\r\n                }\r\n                variantsMatchOption2.push(variant);\r\n                if(optionSize > 2) {\r\n                  if(variant.options[2] == currentSelect[2] && newVariant3 == undefined && (variant.available || isLastOption)) {\r\n                    newVariant3 = variant;\r\n                  }\r\n                  availableOption3.push(variant.options[2]);\r\n                }\r\n              }\r\n            }\r\n          }\r\n          if(resetOutStockGroup && !variant.available) {\r\n            ins.data.outStockGroup[productHandle].push(variant.title);\r\n          }\r\n        });\r\n        if(!isLastOption) {\r\n          if(optionSize > 1 && availableOption2.indexOf(currentSelect[1]) == -1) {\r\n            variantsMatchOption2 = [];\r\n            availableOption3 = [];\r\n            if(pg.find(selector.option + '[data-index=\"1\"] .pg__option__values a').length > 0) {\r\n              pg.find(selector.option + '[data-index=\"1\"] .pg__option__values a').each(function() {\r\n                if(availableOption2.indexOf($(this).attr('data-value')) > -1) {\r\n                  currentSelect[1] = availableOption2[0];\r\n                  return;\r\n                }\r\n              });\r\n            } else if(pg.find(selector.option + '[data-index=\"1\"] .pg__option__value option').length > 0) {\r\n              pg.find(selector.option + '[data-index=\"1\"] .pg__option__value option').each(function() {\r\n                if(availableOption2.indexOf($(this).attr('value')) > -1) {\r\n                  currentSelect[1] = availableOption2[0];\r\n                  return;\r\n                }\r\n              });\r\n            }\r\n            $.each(variantsMatchOption1, function(index, variant) {\r\n              if(variant.options[0] == currentSelect[0] \r\n                && variant.options[1] == currentSelect[1]) {\r\n                if(newVariant2 == undefined && variant.available) {\r\n                  newVariant2 = variant;\r\n                }\r\n                variantsMatchOption2.push(variant);\r\n                if(optionSize > 2) {\r\n                  availableOption3.push(variant.options[2]);\r\n                }\r\n              }\r\n            });\r\n          }\r\n          if(optionSize > 2) {\r\n            if(availableOption3.indexOf(currentSelect[2]) == -1) {\r\n              if(pg.find(selector.option + '[data-index=\"2\"] .pg__option__values a').length > 0) {\r\n                pg.find(selector.option + '[data-index=\"2\"] .pg__option__values a').each(function() {\r\n                  if(availableOption2.indexOf($(this).attr('data-value')) > -1) {\r\n                    currentSelect[2] = availableOption3[0];\r\n                    return;\r\n                  }\r\n                });\r\n              } else if(pg.find(selector.option + '[data-index=\"2\"] .pg__option__value option').length > 0) {\r\n                pg.find(selector.option + '[data-index=\"2\"] .pg__option__value option').each(function() {\r\n                  if(availableOption2.indexOf($(this).attr('value')) > -1) {\r\n                    currentSelect[2] = availableOption3[0];\r\n                    return;\r\n                  }\r\n                });\r\n              }\r\n            }\r\n            $.each(variantsMatchOption2, function(index, variant) {\r\n              if(newVariant3 == undefined\r\n                  && variant.options[0] == currentSelect[0] \r\n                  && variant.options[1] == currentSelect[1]\r\n                  && variant.options[2] == currentSelect[2]\r\n                  && variant.available) {\r\n                newVariant3 = variant;\r\n              }\r\n            });\r\n          }\r\n        }\r\n        if(newVariant3 != undefined) {\r\n          newVariant = newVariant3;\r\n        } else if (newVariant2 != undefined) {\r\n          newVariant = newVariant2;\r\n        } else if(newVariant1 != undefined) {\r\n          newVariant = newVariant1;\r\n        }\r\n        ins.loadCssJsLib('product-global', function() {\r\n          ins.updateNewVariant(pg, newVariant, availableOption2, availableOption3, true, true, currentOption.hasClass('last'));\r\n          setTimeout(function(){\r\n            ins.data.updatingProductOptions = false;\r\n          }, 300);\r\n        });\r\n      }, function(err) {\r\n        setTimeout(function(){\r\n          ins.data.updatingProductOptions = false;\r\n        }, 300);\r\n        // console.log(err);\r\n      });\r\n    });\r\n    $(document).on('click', selector.storePickupBtn, function(e) {\r\n      e.preventDefault();\r\n      BT.showPopup(selector.storePickupModel);\r\n    });\r\n  },\r\n\r\n  initQtyBox: function() {\r\n    var selector = this.selectors.qtyBox;\r\n    $(document).on('click', selector.ctrlBtn, function(e) {\r\n      e.preventDefault();\r\n      var input = $(this).siblings('input').first();\r\n      var value = parseInt(input.val());\r\n      if($(this).hasClass(selector.decreaseBtnClass)) {\r\n        if(value > 1) {\r\n          input.val(value - 1);\r\n          if(input.hasClass(selector.inputSyncClass)) {\r\n            input.trigger('change');\r\n          }\r\n        }\r\n      } else {\r\n        input.val(value + 1);\r\n        if(input.hasClass(selector.inputSyncClass)) {\r\n          input.trigger('change');\r\n        }\r\n      }\r\n    });\r\n  },\r\n\r\n  runCountDown: function (ele, timeValue, pattern) {\r\n    var tplHour = (ele.attr('data-tpl-hour') != undefined) ? ($(ele.attr('data-tpl-hour')).html()) : theme.strings.countdownTplHour;\r\n    var tplDay = (ele.attr('data-tpl-day') != undefined) ? ($(ele.attr('data-tpl-day')).html()) : theme.strings.countdownTplDay;\r\n    var tplWeek = (ele.attr('data-tpl-week') != undefined) ? ($(ele.attr('data-tpl-week')).html()) : theme.strings.countdownTplWeek;\r\n\r\n    var ins = this;\r\n    ele.countdown(timeValue)\r\n    .on('update.countdown', function(event) {\r\n      var format = tplHour;\r\n      if(event.offset.totalDays > 0) {\r\n        format = tplDay;\r\n      }\r\n      if(event.offset.weeks > 0) {\r\n        format = tplWeek;\r\n      }\r\n      $(this).html(event.strftime(format));\r\n    })\r\n    .on('finish.countdown', function(event) {\r\n      var extend = parseInt(ele.attr('data-extend'));\r\n      if(pattern == 1 && extend != undefined && Number.isInteger(extend) && extend > 0) {\r\n        var productId = ele.data('product-id');\r\n        var cookieName = 'countdown_extend_' + productId;\r\n        var date = new Date();\r\n        var times = date.getTime() + extend*86400*1000;\r\n        ins.setCookie(cookieName, times, null);\r\n        date.setTime(times);\r\n        timeValue = date.getFullYear() + '/' + (date.getMonth() + 1) + '/' + date.getDate()\r\n          + ' ' + date.getHours() + ':' + date.getMinutes() + ':' + date.getSeconds();\r\n        ins.runCountDown(ele, timeValue, 1);\r\n      } else {\r\n        $(this).html(theme.strings.countdownExpiredMsg);\r\n        // .parent().addClass('disabled');\r\n        // $(this).parent().addClass('hide');\r\n      }\r\n    });\r\n  },\r\n\r\n  initReverseCountdown: function(ele, reverse, productId) {\r\n    var cookieName = 'countdown_reverse_' + productId, ins = this;\r\n    var cookieCountdown = this.getCookie(cookieName), times;\r\n    if(cookieCountdown == undefined || cookieCountdown == NaN || cookieCountdown == 'NaN' || cookieCountdown == 'null' || cookieCountdown == null) {\r\n      var timesText = reverse.split(':');\r\n      if(timesText.length == 4) {\r\n        var days = parseInt(timesText[0]);\r\n        var hours = parseInt(timesText[1]);\r\n        var minutes = parseInt(timesText[2]);\r\n        var seconds = parseInt(timesText[3]);\r\n        if(hours >= 0 && hours <= 23 && minutes >= 0 && minutes <= 59 && seconds >= 0 && seconds <= 59) {\r\n          var date = new Date();\r\n          times = date.getTime() + (days*86400 + hours*3600 + minutes*60 + seconds)*1000;\r\n        }\r\n      }\r\n      this.setCookie(cookieName, times, null);\r\n    } else {\r\n      times = parseInt(cookieCountdown);\r\n    }\r\n    if(times != undefined) {\r\n      var currentDate = new Date();\r\n      var currentTime = currentDate.getTime();\r\n      if(times <= currentTime - 30*60) {\r\n        times = null;\r\n        var timesText = reverse.split(':');\r\n        if(timesText.length == 4) {\r\n          var days = parseInt(timesText[0]);\r\n          var hours = parseInt(timesText[1]);\r\n          var minutes = parseInt(timesText[2]);\r\n          var seconds = parseInt(timesText[3]);\r\n          if(hours >= 0 && hours <= 23 && minutes >= 0 && minutes <= 59 && seconds >= 0 && seconds <= 59) {\r\n            times = currentTime + (days*86400 + hours*3600 + minutes*60 + seconds)*1000;\r\n          }\r\n        }\r\n        this.setCookie(cookieName, times, null);\r\n      }\r\n      if(times) {\r\n        currentDate.setTime(times);\r\n        var timeValue = currentDate.getFullYear() + '/' + (currentDate.getMonth() + 1) + '/' + currentDate.getDate()\r\n          + ' ' + currentDate.getHours() + ':' + currentDate.getMinutes() + ':' + currentDate.getSeconds();\r\n        this.runCountDown(ele, timeValue, 2);\r\n      }\r\n    }\r\n  },\r\n\r\n  initDealCountdown: function(wrap) {\r\n    if(typeof wrap == 'string') {\r\n      wrap = $(wrap);\r\n    }\r\n    var ins = this;\r\n    if(wrap.find(this.selectors.productGroup.countdown).length > 0) {\r\n      wrap.find(this.selectors.productGroup.countdown).each(function() {\r\n        var dataDeal = $(this).attr('data-timer');\r\n        var pattern1 = /^\\d{4}\\/\\d{2}\\/\\d{2} \\d{2}:\\d{2}:\\d{2}$/;\r\n        var pattern2 = /^\\d{1,2}:\\d{2}:\\d{2}:\\d{2}$/;\r\n\r\n        if(dataDeal != undefined && dataDeal != '') {\r\n          if(pattern1.test(dataDeal) == true) {\r\n            ins.runCountDown($(this), dataDeal, 1);  \r\n          } else if(pattern2.test(dataDeal)) {\r\n            var productId = $(this).data('product-id');\r\n            ins.initReverseCountdown($(this), dataDeal, productId);\r\n          }\r\n        } \r\n      });\r\n    }\r\n  },\r\n\r\n  destroyDealCountdown: function(wrap) {\r\n    if(typeof wrap == 'string') {\r\n      wrap = $(wrap);\r\n    }\r\n    if(wrap.find(this.selectors.productGroup.countdown).length > 0) {\r\n      wrap.find(this.selectors.productGroup.countdown).each(function() {\r\n        $(this).countdown(\"stop\");\r\n      });\r\n    }\r\n  },\r\n\r\n  reLoadReview: function (wrap) {\r\n    if(!theme.review.enable) {\r\n      return;\r\n    }\r\n    if(typeof wrap == 'string') {\r\n      wrap = $(wrap);\r\n    }\r\n    if(theme.review.app == 'product_review') {\r\n      if(typeof SPR != 'undefined' && typeof SPR.$ != 'undefined') {\r\n        return SPR.initDomEls(), SPR.loadBadges();\r\n      }\r\n    } else if(theme.review.app == 'yotpo') {\r\n      var api = new Yotpo.API(yotpo);\r\n      api.refreshWidgets();\r\n    }\r\n  },\r\n\r\n  runProgressBar: function(progressBar) {\r\n    if(progressBar.length > 0) {\r\n      progressBar.width(progressBar.data('width') + '%');\r\n    }\r\n  },\r\n\r\n  // Quick view popup\r\n  initQuickView: function() {\r\n    var ins = this, qvPopupSelector = this.selectors.qvPopup, workingClass = this.selectors.workingClass;\r\n    $(document).on('click', this.selectors.qvBtn, function(e) {\r\n      e.preventDefault();\r\n      if($(this).hasClass(workingClass)) {\r\n        return;\r\n      }\r\n      $(this).addClass(workingClass);\r\n      var url = $(this).attr('href'), btn = $(this);\r\n      ins.startLoadingBtn(btn);\r\n      ins.loadCssJsLib('quickViewPopup');\r\n        \r\n      ins.callAjax(url, 'GET', {view: 'quick_view'}, null, function(html) {\r\n        var jsonScript = $('.product-single-json', html);\r\n        if(jsonScript.length > 0) {\r\n          ins.data.productGroup[jsonScript.attr('data-handle')] = $.parseJSON(jsonScript.html());\r\n          ins.addProductRecentView(jsonScript.attr('data-handle'));\r\n        }\r\n        var qvContentEle = $(qvPopupSelector).find('.product-section-content');\r\n        qvContentEle.html(ins.stripScripts($('#shopify-section-product-template', html).html()));\r\n        if($('.model-json', html).length > 0) {\r\n          qvContentEle.append($('.model-json', html));\r\n        }\r\n        ins.showPopup(qvPopupSelector);\r\n        ins.convertCurrencySilence(qvPopupSelector + ' span.money');\r\n        ins.applyCustomColorSwatches(qvPopupSelector);\r\n        ins.endLoadingBtn(btn);\r\n        ins.rteWrap(qvPopupSelector + ' .rte');\r\n        btn.removeClass(workingClass);\r\n        ins.reLoadReview(qvPopupSelector);\r\n        ins.runProgressBar($(qvPopupSelector + ' .progress-bar'));\r\n        ins.popularAddedWishlistItems(qvPopupSelector);\r\n      });\r\n    });\r\n    $(document).on('show.bs.modal',qvPopupSelector, function () {\r\n      ins.loadCssJsLib('product-global', function() {\r\n        ins.init3dModel($(qvPopupSelector), $(qvPopupSelector + ' .model-json').attr('id').replace('ModelJson-',''));\r\n        setTimeout(function() {\r\n          ins.initProductThumbsSlider(qvPopupSelector);\r\n          ins.initProductMainSliderAndZoom(qvPopupSelector, 0, 0);\r\n        }, 500);\r\n      });\r\n      ins.initDealCountdown(qvPopupSelector);\r\n    });\r\n    $(document).on('hidden.bs.modal',qvPopupSelector, function () {\r\n      ins.destroyProductMainSliderAndZoom(qvPopupSelector);\r\n      ins.destroyProductThumbsSlider(qvPopupSelector);\r\n      ins.destroyDealCountdown(qvPopupSelector);\r\n    });\r\n  },\r\n\r\n  initSelectOption: function() {\r\n    var ins = this, selectOptionPopupSelector = this.selectors.selectOptionPopup, workingClass = this.selectors.workingClass;\r\n    $(document).on('click', this.selectors.selectOptionBtn, function(e) {\r\n      e.preventDefault();\r\n      if($(this).hasClass(workingClass)) {\r\n        return;\r\n      }\r\n      $(this).addClass(workingClass);\r\n      var url = $(this).attr('href'), btn = $(this);\r\n      ins.startLoadingBtn(btn);\r\n      ins.loadSnippetAjax('popup-select-option', function() {\r\n        ins.callAjax(url, 'GET', {view: 'select_option'}, null, function(html) {\r\n          var jsonScript = $('.product-single-json', html);\r\n          if(jsonScript.length > 0) {\r\n            ins.data.productGroup[jsonScript.attr('data-handle')] = $.parseJSON(jsonScript.html());\r\n          }\r\n          $(selectOptionPopupSelector).find('.product-section-content').html(ins.stripScripts(html));\r\n          ins.convertCurrencySilence(selectOptionPopupSelector + ' span.money');\r\n          ins.applyCustomColorSwatches(selectOptionPopupSelector);\r\n          ins.endLoadingBtn(btn);\r\n          ins.showPopup(selectOptionPopupSelector);\r\n          btn.removeClass(workingClass);\r\n        });\r\n      });\r\n    });\r\n  },\r\n\r\n  // Comparison popup\r\n  getCookieItemsValue: function(returnArr, cookieName) {\r\n    if(typeof this.data.cookieArray[cookieName] == 'undefined') {\r\n      var handleStr = this.getCookie(cookieName);\r\n      if(handleStr == undefined || handleStr == '') {\r\n        this.data.cookieArray[cookieName] = [];\r\n      } else {\r\n        this.data.cookieArray[cookieName] = handleStr.split(',');\r\n      }\r\n    }\r\n    if(returnArr) {\r\n      return this.data.cookieArray[cookieName];\r\n    }\r\n    return this.data.cookieArray[cookieName].join(',');\r\n  },\r\n\r\n  isProductExistInCookie: function(productHandle, cookieName) {\r\n    var items = this.getCookieItemsValue(true, cookieName);\r\n    return items.indexOf(productHandle) >= 0;\r\n  },\r\n\r\n  addProductToCookie: function(productHandle, cookieName) {\r\n    var items = this.getCookieItemsValue(true, cookieName);\r\n    if(items.indexOf(productHandle) < 0) {\r\n      items.push(productHandle);\r\n      this.data.cookieArray[cookieName] = items;\r\n      this.setCookie(cookieName, items.join(','), null);\r\n    }\r\n  },\r\n  \r\n  removeProductFromCookie: function(productHandle, cookieName) {\r\n    if(this.data.cookieArray[cookieName] != undefined && this.data.cookieArray[cookieName].indexOf(productHandle) >= 0) {\r\n      this.data.cookieArray[cookieName].splice(this.data.cookieArray[cookieName].indexOf(productHandle), 1);\r\n      this.setCookie(cookieName, this.data.cookieArray[cookieName].join(','), null);\r\n    }\r\n  },\r\n\r\n  loadCompare: function(cb) { \r\n    var ins = this;\r\n    this.loadCssJsLib('quickViewPopup');\r\n    this.callAjax(theme.rootUrl, 'GET', {view: 'compare', q: ins.getCookieItemsValue(false, ins.options.compare.cookieName)}, null, function(html) {\r\n      ins.loadSnippetAjax('popup-compare', function() {\r\n        var popupContent = $(ins.selectors.compare.popup).find('.compare-content');\r\n        popupContent.html(ins.stripScripts(html));\r\n        ins.rteWrap(ins.selectors.compare.popup + ' .rte');\r\n        ins.applyCustomColorSwatches(popupContent);\r\n        ins.convertCurrencySilence(popupContent.find('span.money'));\r\n        ins.findBestPriceInCompare();\r\n        ins.reLoadReview(popupContent);\r\n        ins.firstLoaded = true;\r\n        if(cb) {\r\n          cb();\r\n        }\r\n      });\r\n    });\r\n  },\r\n\r\n  findBestPriceInCompare: function() {\r\n    var selector = this.selectors.compare, ins = this;\r\n    var badges = $(selector.bestPriceBadge), index = -1, bestPrice = 0, popup = $(selector.popup);\r\n    if(badges.length > 0) {\r\n      badges.each(function() {\r\n        var badge = $(this);\r\n        var currentIndex = badge.parents('td').attr('data-index');\r\n        var available = !popup.find('td[data-index=\"' + currentIndex + '\"]' + selector.availabilityRow + ' ' + ins.selectors.productGroup.stockText).hasClass('soldout');\r\n        var price = parseFloat($(this).attr('data-price'));\r\n        if(available && (bestPrice == 0 || price < bestPrice)) {\r\n          bestPrice = price;\r\n          index = $(this).parents('td').attr('data-index');\r\n        }\r\n      });\r\n      badges.addClass('hide');\r\n      $(selector.popup + ' td[data-index=\"' + index + '\"] ' + selector.bestPriceBadge).removeClass('hide');\r\n    }\r\n  },\r\n\r\n  afterUpdatedVariantCompare: function(selectVariant) {\r\n    var selector = this.selectors.productGroup;\r\n    var index = selectVariant.attr('data-index'), pg = selectVariant.parents(selector.wrap), table = selectVariant.parents('table'), variantId = selectVariant.val();\r\n    var variants = this.data.productGroup[pg.attr('data-product-handle')];\r\n    if(variants != undefined) {\r\n      var newVariant = variants[variantId];\r\n      if(newVariant != undefined) {\r\n        // Update price\r\n        var priceCol = table.find('td[data-index=\"' + index + '\"] ' + selector.price);        \r\n        priceCol.html(this.getVariantPriceHtml(pg, newVariant));    \r\n        this.convertCurrencySilence(priceCol.find('span.money'));\r\n        priceCol.parent().find(this.selectors.compare.bestPriceBadge).attr('data-price', newVariant.price);\r\n        \r\n        // Update main image\r\n        if(newVariant.featured_media != null && newVariant.featured_media.src != null) {\r\n          var img = table.find('td[data-index=\"' + index + '\"] ' + selector.mainImg);\r\n          img.parent(':not(.not-loading)').addClass('loading');\r\n          img.attr('data-src', this.resizeImage(newVariant.featured_media.src, img.attr('data-image-size')).replace('_1x1.', '_{width}x.'));\r\n          img.addClass('lazyload');\r\n        }\r\n\r\n        // Update actions and availability row\r\n        var actionsRow = table.find('td[data-index=\"' + index + '\"]' + this.selectors.compare.actionsRow);\r\n        var availabilityRow = table.find('td[data-index=\"' + index + '\"]' + this.selectors.compare.availabilityRow);\r\n        var cartBtn = actionsRow.find(this.selectors.cart.addBtn);\r\n        if(newVariant.available) {\r\n          cartBtn.removeAttr('disabled');\r\n          cartBtn.removeClass('soldout');\r\n          cartBtn.attr('title', theme.strings.addToCart).tooltip('fixTitle');\r\n          cartBtn.find('span').text(theme.strings.addToCart);\r\n          availabilityRow.find(selector.stockText).text(theme.strings.instockText).removeClass('soldout');\r\n        } else {\r\n          cartBtn.attr('disabled', 'disabled');\r\n          cartBtn.addClass('soldout');\r\n          cartBtn.attr('title', theme.strings.soldOut).tooltip('fixTitle');\r\n          cartBtn.find('span').text(theme.strings.soldOut);\r\n          availabilityRow.find(selector.stockText).text(theme.strings.soldOut).addClass('soldout');\r\n        }\r\n        actionsRow.find(selector.variantId).val(variantId);\r\n\r\n        this.findBestPriceInCompare();\r\n      }\r\n    }\r\n  },\r\n\r\n  initCompareEvent: function() {\r\n    var ins = this, workingClass = 'working', selector = this.selectors.compare, cookieName = this.options.compare.cookieName;\r\n    $(selector.number).text(this.getCookieItemsValue(true, cookieName).length);\r\n    $(document).on('click', selector.btn, function(e) {\r\n      e.preventDefault();\r\n      var handle = $(this).attr('data-handle'), btn = $(this);\r\n      if(ins.isProductExistInCookie(handle, cookieName) && $(ins.selectors.compare.popup).find('table').length > 0) {\r\n        ins.showPopup(ins.selectors.compare.popup);\r\n      } else {\r\n        ins.addProductToCookie(handle, cookieName);\r\n        $(selector.number).text(ins.getCookieItemsValue(true, cookieName).length);\r\n        ins.startLoadingBtn(btn);\r\n        ins.loadCompare(function() {\r\n          ins.endLoadingBtn(btn);\r\n          ins.showPopup(ins.selectors.compare.popup);\r\n        });  \r\n      }\r\n    });\r\n\r\n    $(document).on('click', selector.removeBtn, function(e) {\r\n      e.preventDefault();\r\n      var handle = $(this).attr('data-handle');\r\n      ins.removeProductFromCookie(handle, cookieName);\r\n      $(selector.number).text(ins.getCookieItemsValue(true, cookieName).length);\r\n      ins.loadCompare();\r\n    });\r\n\r\n    $(document).on('click', selector.headerLink, function(e) {\r\n      e.preventDefault();\r\n      var btn = $(this);\r\n      if(btn.hasClass(workingClass)) {\r\n        return;\r\n      }\r\n      btn.addClass(workingClass);\r\n      if(ins.firstLoaded) {\r\n        ins.showPopup(ins.selectors.compare.popup);\r\n        btn.removeClass(workingClass);\r\n      } else {\r\n        ins.showLoadingFull();\r\n        ins.loadCompare(function() {\r\n          ins.hideLoadingFull();\r\n          ins.showPopup(ins.selectors.compare.popup);\r\n          btn.removeClass(workingClass);\r\n        });  \r\n      }\r\n    });\r\n    \r\n    $(document).on('change', selector.variantId, function(e) {\r\n      ins.afterUpdatedVariantCompare($(this));\r\n    });\r\n  },\r\n\r\n  loadDynamicProductsAjax: function(params, page, cb) {\r\n    var data = {\r\n      'view': 'dynamic_ajax',\r\n      'q': params,\r\n      'page': page\r\n    }\r\n    this.callAjax(theme.rootUrl, 'GET', data, null, cb);\r\n  },\r\n\r\n  addProductMetaData: function(wrap, inAjax) {\r\n    if(inAjax) {\r\n      this.convertCurrencySilence(wrap.find('span.money'));\r\n      this.reLoadReview(wrap);\r\n    }\r\n    this.initDealCountdown(wrap);\r\n    this.applyCustomColorSwatches(wrap);\r\n    this.popularAddedWishlistItems(wrap);\r\n  },\r\n\r\n  afterLoadDynamicProductsAjaxInTab: function(parent, html) {\r\n    var ins = this;\r\n    parent.removeClass(this.selectors.waitingData.replace('.',''));\r\n    parent.append($('.products', html).html());\r\n    \r\n    var loadMoreBtn = parent.siblings(this.selectors.loadMoreBtn);\r\n    if(loadMoreBtn.length > 0) {\r\n      loadMoreBtn.remove();\r\n    }\r\n    if($(this.selectors.loadMoreBtn, html).length > 0) {\r\n      parent.parent().append($(this.selectors.loadMoreBtn, html).get(0).outerHTML);\r\n    }\r\n  },\r\n\r\n  destroyInfiniteScroll: function(idSave) {\r\n    if(typeof this.data.productGroupInfiniteScroll[idSave] != 'undefined') {\r\n      $.each(this.data.productGroupInfiniteScroll[idSave], function(index, obj) {\r\n        obj.destroy();\r\n      });\r\n    }\r\n  },\r\n\r\n  initInfiniteScroll: function(wrap) {\r\n    if(typeof wrap == 'string') {\r\n      wrap = $(wrap);\r\n    }\r\n    if(wrap.find(this.selectors.infiniteScroll.button).length > 0) {\r\n      var ins = this;\r\n      this.loadCssJsLib('waypoint', function() {\r\n        ins.loadCssJsLib('infinite', function() {\r\n          wrap.find(ins.selectors.infiniteScroll.button).each(function() {\r\n            var dataIdSave = $(this).attr('data-id-save');\r\n            if(typeof ins.data.productGroupInfiniteScroll[dataIdSave] == 'undefined') {\r\n              ins.data.productGroupInfiniteScroll[dataIdSave] = [];\r\n            }\r\n            var element = $(this).siblings('.products').first();\r\n            var dataId = $(this).attr('data-id');\r\n            ins.data.productGroupInfiniteScroll[dataIdSave].push(new Waypoint.Infinite({\r\n              element: element,\r\n              items: '.grid__item',\r\n              more: dataId,\r\n              onAfterPageLoad: function($items) {\r\n                ins.applyCustomColorSwatches($items);\r\n                BtCurrency.convertSilence(shopCurrency, BtCurrency.currentCurrency, $items.find('span.money'));\r\n                ins.initDealCountdown($items);\r\n                ins.reLoadReview($items);\r\n              }\r\n            }));  \r\n          }); \r\n        });  \r\n      });\r\n    }\r\n  },\r\n\r\n  invertColor: function(hex, bw) {\r\n      if (hex.indexOf('#') === 0) {\r\n          hex = hex.slice(1);\r\n      }\r\n      // convert 3-digit hex to 6-digits.\r\n      if (hex.length === 3) {\r\n          hex = hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2];\r\n      }\r\n      if (hex.length !== 6) {\r\n        return false;\r\n      }\r\n      var r = parseInt(hex.slice(0, 2), 16),\r\n          g = parseInt(hex.slice(2, 4), 16),\r\n          b = parseInt(hex.slice(4, 6), 16);\r\n      if (bw) {\r\n          // http://stackoverflow.com/a/3943023/112731\r\n          return (r * 0.299 + g * 0.587 + b * 0.114) > 186\r\n              ? '#000000'\r\n              : '#FFFFFF';\r\n      }\r\n      // invert color components\r\n      r = (255 - r).toString(16);\r\n      g = (255 - g).toString(16);\r\n      b = (255 - b).toString(16);\r\n      // pad each with zeros and return\r\n      return \"#\" + this.padZero(r) + this.padZero(g) + this.padZero(b);\r\n  },\r\n\r\n  padZero: function(str, len) {\r\n    len = len || 2;\r\n    var zeros = new Array(len).join('0');\r\n    return (zeros + str).slice(-len);\r\n  },\r\n\r\n  loadCustomColorCodes: function(cb) {\r\n    if(this.data.customColorCodes != null || this.data.customColorCodesLoading) {\r\n      cb();\r\n    } else if(this.data.customColorCodesLoading == false) {\r\n      var ins = this;\r\n      this.data.customColorCodesLoading = true;\r\n      this.callAjax(theme.rootUrl, 'get', {view:'color_codes'}, null, function(response) {\r\n        ins.data.customColorCodes = $.parseJSON(response.replace('<!-- BEGIN template --><!-- index.color_codes -->','').replace('<!-- END template -->',''));\r\n        ins.data.customColorCodesLoading = false;\r\n        if(ins.data.customColorCodesStack.length > 0) {\r\n          $.each(ins.data.customColorCodesStack, function(index, value) {\r\n            ins.runCustomColorCodes(value);\r\n            delete ins.data.customColorCodesStack[index];\r\n          });\r\n        }\r\n        cb();\r\n      });\r\n    }\r\n  },\r\n\r\n  runCustomColorCodes: function(wrap) {\r\n    if(typeof wrap == 'string') {\r\n      wrap = $(wrap);\r\n    }\r\n    var ins = this;\r\n    wrap.find('.color-load:not(.color-loaded)').each(function() {\r\n      var colorTag = $(this).attr('data-color-tag');\r\n      if(colorTag != undefined) {\r\n        var swatchData = ins.data.customColorCodes[colorTag];\r\n        if(swatchData != undefined) {\r\n          if(swatchData.color != undefined) {\r\n            $(this).css('background-color', swatchData.color);\r\n            if(!$(this).hasClass('ignore-color-text')) {\r\n              var newColor = ins.invertColor(swatchData.color, true);\r\n              if(newColor) {\r\n                $(this).css('color', newColor);\r\n              }\r\n            }\r\n          }\r\n          if(swatchData.image != undefined) {\r\n            var imageUrl = ins.resizeImage(swatchData.image, '46x46_crop_center');\r\n            $(this).css('background-image', 'url(' + imageUrl + ')');\r\n          } \r\n        }\r\n      }\r\n      $(this).addClass('color-loaded');\r\n    });\r\n  },\r\n\r\n  applyCustomColorSwatches: function(wrap) {\r\n    var ins = this;\r\n    this.loadCustomColorCodes(function() {\r\n      if(ins.data.customColorCodesLoading) {\r\n        ins.data.customColorCodesStack.push(wrap);\r\n      } else {\r\n        ins.runCustomColorCodes(wrap);\r\n      }\r\n    });\r\n  },\r\n\r\n  initLoadMoreBtn: function() {\r\n    var ins = this;\r\n    $(document).on('click', this.selectors.loadMoreBtn, function(e) {\r\n      e.preventDefault();\r\n      var btn = $(this);\r\n      if(btn.hasClass(ins.selectors.workingClass)) {\r\n        return;\r\n      }\r\n      btn.addClass(ins.selectors.workingClass).prepend('<i class=\"' + ins.selectors.loadingAjaxClass + '\" style=\"margin-right: 5px;\"></i>');\r\n      var href = $(this).attr('data-href');\r\n      var parent = $(this).siblings('.grid');\r\n      if(href == undefined) {\r\n        ins.loadDynamicProductsAjax($(this).attr('data-ajax-params'), 2, function(html) {\r\n          ins.afterLoadDynamicProductsAjaxInTab(parent, html);\r\n          ins.addProductMetaData(parent, true);\r\n        });\r\n      } else {\r\n        ins.callAjax(href, 'GET', null, null, function(html) {\r\n          ins.afterLoadDynamicProductsAjaxInTab(parent, html);\r\n          ins.addProductMetaData(parent, true);\r\n        });\r\n      }\r\n    });\r\n  },\r\n\r\n  updateThresholdMenu: function(addtionalHeight) {\r\n    this.data.thresholdMenu += addtionalHeight;\r\n  },\r\n\r\n  calculateThresholdAndFixSticker: function() {\r\n    var height = this.data.stickyMenuObj.outerHeight();\r\n    this.data.thresholdMenu = this.data.stickyMenuObj.offset().top + height;\r\n    this.fixedHeightSticker(height);\r\n  },\r\n\r\n  updateStickyMenuObj: function(obj) {\r\n    if(obj.hasClass('use-sticky')) {\r\n      this.data.stickyMenuObj = obj;\r\n    } else {\r\n      this.data.stickyMenuObj = obj.parents('.use-sticky').first();\r\n    }\r\n  },\r\n\r\n  openStickyMenu: function() {\r\n    if($(window).scrollTop() > this.data.thresholdMenu) {\r\n      if(!this.data.stickyMenuObj.hasClass('active')) {\r\n        this.data.stickyMenuObj.addClass('active');\r\n      }\r\n    } else {\r\n      this.hideStickyMenu();\r\n    }\r\n  },\r\n\r\n  hideStickyMenu: function() {\r\n    if(this.data.stickyMenuObj.hasClass('active') && !$('body').hasClass('open-search-suggest')) {\r\n      this.data.stickyMenuObj.removeClass('active');\r\n    } \r\n  },\r\n\r\n  fixedHeightSticker: function(height) {\r\n    this.data.sticker.height(height);\r\n  },\r\n\r\n  initStickyMenu: function() {\r\n    /* FSC iPhone: disable the ORIGINAL sticky-header JavaScript on phones and tablets.\r\n       CSS-only overrides allowed .active to keep toggling, causing hide/show\r\n       elements, height recalculation and scroll jumps when direction changed.\r\n       Desktop sticky navigation remains unchanged. */\r\n    if(window.matchMedia && window.matchMedia('(max-width: 991px)').matches) {\r\n      $('.header-sticker__inner').removeClass('active');\r\n      $('.header-sticker').css('height', '');\r\n      this.initPromotion();\r\n      return;\r\n    }\r\n    if(!$('.use-sticky').length) {\r\n      this.initPromotion();\r\n      return;\r\n    }\r\n    var ins = this;\r\n    var obj = $('.use-sticky--desktop');\r\n    if(ins.data.cacheWindowWidth < 992) {\r\n      obj = $('.use-sticky--mobile');\r\n    }\r\n    this.data.sticker = $('.header-sticker');\r\n    this.data.stickyMenuObj = $('.header-sticker__inner')\r\n    // this.updateStickyMenuObj(obj);\r\n    this.calculateThresholdAndFixSticker();\r\n    this.initPromotion();\r\n    var timeout = 0;\r\n    var lastScrollTop = 0; \r\n    $(window).on(this.data.scrollEventName, function(e, direction) {\r\n      if(ins.data.pageLoaded && ins.data.updatingProductOptions == false) {\r\n        if(direction == 'down') {\r\n          ins.hideStickyMenu();\r\n        } else {\r\n          ins.openStickyMenu();\r\n        }\r\n      }\r\n    });\r\n    $(window).on(this.data.resizeEventName,function(e) {\r\n      // if(ins.data.cacheWindowWidth < 992) {\r\n      //   obj = $('.use-sticky--mobile').removeClass('active');\r\n      // } else {\r\n      //   obj = $('.use-sticky--desktop').removeClass('active');\r\n      //   obj = $('.use-sticky--desktop');\r\n      //   obj.parents('.use-sticky').removeClass('active');\r\n      // }\r\n      // ins.updateStickyMenuObj(obj);\r\n      ins.calculateThresholdAndFixSticker();\r\n    });\r\n  },\r\n\r\n  initRecommendedProducts: function() {\r\n    if(!theme.enableRecommendedProducts) {\r\n      return;\r\n    }\r\n    \r\n    setTimeout(function() {\r\n      var cookieName = this.options.rp.cookieName;\r\n      var cookie = this.getCookie(cookieName);\r\n      if(cookie != undefined) {\r\n        return;\r\n      }\r\n      this.loadCssJsLib('recommendedProducts');\r\n    }.bind(this), 8000);\r\n  },\r\n\r\n  initNewsTerms: function(wrap) {\r\n    if(!theme.newsTerms) {\r\n      return;\r\n    }\r\n    var form = $(wrap + ' ' + this.selectors.newsTerms.form);\r\n    var input = $(wrap + ' ' + this.selectors.newsTerms.input);\r\n    var error = $(wrap + ' ' + this.selectors.newsTerms.error);\r\n    var cookieName = this.options.newsTerms.cookieName;\r\n    var cookieValue = this.getCookie(cookieName);\r\n    var ins = this;\r\n    \r\n    form.unbind('submit');\r\n    input.unbind('change');\r\n    if(cookieValue == '1') {\r\n      input.attr('checked','checked');\r\n    }\r\n\r\n    input.on('change', function() {\r\n      if($(this).is(':checked')) {\r\n        ins.setCookie(cookieName, 1);\r\n        if(error.hasClass('working')) {\r\n          error.fadeOut();\r\n          error.removeClass('working');\r\n        }\r\n      } else {\r\n        ins.setCookie(cookieName, 0);\r\n      }\r\n    });\r\n\r\n    form.on('submit', function(e) {\r\n      if(!input.is(':checked')) {\r\n        e.preventDefault();\r\n        error.fadeIn();\r\n        error.addClass('working');\r\n      }\r\n    })\r\n  },\r\n\r\n  initNewsletterPopup: function() {\r\n    if(!theme.enableNewsPopup || location.hash.substr(1) == 'newsletter-popup-form') {\r\n      return;\r\n    }\r\n    setTimeout(function() {\r\n      if($('body').hasClass('modal-open') || $('body').hasClass('open-search-suggest')) {\r\n        return;\r\n      }\r\n      this.loadCssJsLib(\"newsletterPopup\");\r\n    }.bind(this), 8000);\r\n  },\r\n\r\n  initPromotion: function() {\r\n    var selector = this.selectors.promo, ins = this;\r\n    if($(selector.wrap).length > 0) {\r\n      var cookieName = this.options.promo.cookieName;\r\n      var cookie = this.getCookie(cookieName);\r\n      var hasStickyMenu = ($('.use-sticky').length > 0);\r\n      if(cookie == undefined || cookie == null || cookie == 'null') {\r\n        $(selector.wrap).slideDown(300, function() {\r\n          if(hasStickyMenu) {\r\n            if(ins.data.cacheWindowWidth >= 992) {\r\n              ins.updateThresholdMenu($(selector.wrap).outerHeight());\r\n            } else {\r\n              ins.updateThresholdMenu(ins.data.thresholdMenuWithPromotion);\r\n            }\r\n          }\r\n          $(selector.wrap).removeClass('close');\r\n        });\r\n      }\r\n      $(document).on('click touchend', selector.closeBtn, function(e) {\r\n        e.preventDefault();\r\n        $(selector.wrap).slideUp(300, function() {\r\n          if(hasStickyMenu) {\r\n            if(ins.data.cacheWindowWidth >= 992) {\r\n              ins.updateThresholdMenu($(selector.wrap).outerHeight()*(-1));\r\n            } else {\r\n              ins.updateThresholdMenu(ins.data.thresholdMenuWithPromotion*(-1));\r\n            }\r\n          }\r\n          $(selector.wrap).addClass('close');\r\n        });\r\n        ins.setCookie(cookieName, 1, 1);\r\n      });\r\n    }\r\n  },\r\n\r\n  initBackTopButton: function() {\r\n    var $backTop = $('#back-top');\r\n    if($backTop.length){\r\n      $(document).on('click touchend', '#back-top a', function() {\r\n        $('body,html').animate({\r\n          scrollTop: 0\r\n        }, 800);\r\n        return false;\r\n      });\r\n    }\r\n  },\r\n\r\n  initCookieConsent: function() {\r\n    if(!theme.enableCookieConsent) {\r\n      return;\r\n    }\r\n    var ins = this;\r\n    setTimeout(function() {\r\n      var cookieName = 'cookie_consent';\r\n      var cookie = ins.getCookie(cookieName);\r\n      if(cookie != undefined) {\r\n        return;\r\n      }\r\n      ins.loadSnippetAjax('cookie-consent', function() {\r\n        if($('.cookie_consent').length > 0) {\r\n          $('.cookie_consent').slideDown(300);\r\n          $(document).on('click', '.cookie_consent__close', function(e) {\r\n            e.preventDefault();\r\n            ins.setCookie(cookieName, 1);\r\n            $('.cookie_consent').slideUp(300);\r\n          });\r\n        }\r\n      });\r\n    }, 9000);\r\n  },\r\n\r\n  initPopupVideo: function() {\r\n    var ins = this, selector = this.selectors.popupVideo, videoSrc;\r\n    $(document).on('click', selector.btn, function(e) {\r\n      e.preventDefault();\r\n      if(ins.data.modalVideoWorking) {\r\n        return;\r\n      }\r\n      var btn = $(this);\r\n      new Promise(function(resolve, reject) {\r\n        ins.data.modalVideoWorking = true;\r\n        if(theme.loadedLibs.indexOf('modalvideo') > -1) {\r\n          resolve(btn);\r\n        } else {\r\n          ins.loadCssJsLib('modalvideo', function() {\r\n            $(selector.youtubeBtn).modalVideo();\r\n            $(selector.vimeoBtn).modalVideo({channel:'vimeo'});\r\n            resolve(btn);\r\n          });\r\n        }\r\n      }).then(function(btn) {\r\n        ins.data.modalVideoWorking = false;\r\n        var videoId = btn.attr('data-video-id');\r\n        var videoType = btn.attr('data-video-type');\r\n        if(videoType == 'youtube') {\r\n          $(selector.youtubeBtn).attr('data-video-id', videoId);\r\n          $(selector.youtubeBtn).trigger('click');\r\n        } else {\r\n          $(selector.vimeoBtn).attr('data-video-id', videoId);\r\n          $(selector.vimeoBtn).trigger('click');\r\n        }\r\n      }, function(err) {\r\n        // console.log(err);\r\n      });\r\n    });\r\n  },\r\n\r\n  loadWishlist: function(cb) { \r\n    var ins = this, selector = this.selectors.wishlist, cookieName = this.options.wishlist.cookieName;\r\n    var cookieValue = this.getCookieItemsValue(false, cookieName);\r\n    if(cookieValue == '' || cookieValue == undefined) {\r\n      this.loadSnippetAjax('popup-wishlist', function() {\r\n        var popupContent = $(selector.popup).find('.content');\r\n        ins.appendWishlistEmtptyStr(popupContent);\r\n        ins.data.wishlist.loaded = true;\r\n        if(cb) {\r\n          cb();\r\n        }\r\n      });\r\n    } else {\r\n      this.callAjax(theme.rootUrl, 'GET', {view: 'wishlist', q: cookieValue}, null, function(html) {\r\n        ins.loadSnippetAjax('popup-wishlist', function() {\r\n          var popupContent = $(selector.popup).find('.content');\r\n          popupContent.html(ins.stripScripts(html));\r\n          if(!popupContent.hasClass('grid')) {\r\n            popupContent.addClass('grid grid--medium')\r\n          }\r\n          ins.applyCustomColorSwatches(popupContent);\r\n          ins.convertCurrencySilence(popupContent.find('span.money'));\r\n          ins.reLoadReview(popupContent);\r\n          ins.data.wishlist.loaded = true;\r\n          if(cb) {\r\n            cb();\r\n          }\r\n        });\r\n      });\r\n    }\r\n  },\r\n\r\n  popularAddedWishlistItems: function(wrap){\r\n    if(!theme.enableWishlist){\r\n      return;\r\n    }\r\n    if(typeof wrap == 'string') {\r\n      wrap = $(wrap);\r\n    }\r\n    var selector = this.selectors.wishlist, cookieName = this.options.wishlist.cookieName, ins = this;\r\n    var btnSelector = '', btnWithTextSelector = '', textSelector = '';\r\n    var items = this.getCookieItemsValue(true, cookieName);\r\n    if(items.length > 0) {\r\n     $.each(items, function( index, value ) {\r\n        if(btnSelector != '') {\r\n          btnSelector += ',';\r\n          textSelector += ',';\r\n        }\r\n        btnSelector += selector.btn + '[data-handle=\"' + value + '\"]';\r\n        textSelector += selector.btnWithText + '[data-handle=\"' + value + '\"] ' + selector.btnText;\r\n      });\r\n    }\r\n    wrap.find(btnSelector).addClass('added').attr('title', theme.strings.addedWishlistTitle);\r\n    wrap.find(textSelector).text(theme.strings.addedWishlistTitle);\r\n  },\r\n\r\n  appendWishlistEmtptyStr: function(popupContent) {\r\n    popupContent.removeClass('grid grid--medium')\r\n    popupContent.html('<div class=\"alert alert-danger\"><span>' + theme.strings.wishlistEmpty +'</span></div>');\r\n  },\r\n\r\n  initWishlist: function() {\r\n    if(!theme.enableWishlist){\r\n      return;\r\n    }\r\n    var selector = this.selectors.wishlist, cookieName = this.options.wishlist.cookieName, ins = this;\r\n    var items = this.getCookieItemsValue(true, cookieName);\r\n    var workingClass = 'working';\r\n    this.popularAddedWishlistItems('body');\r\n    $(selector.number).text(items.length);\r\n    $(document).on('click', selector.btn, function(e){\r\n      e.preventDefault();\r\n      var handle = $(this).attr('data-handle'), btn = $(this);\r\n      if(ins.isProductExistInCookie(handle, cookieName)) {\r\n        ins.removeProductFromCookie(handle, cookieName);\r\n        $(selector.btn + '[data-handle=\"' + handle + '\"]').removeClass('added').attr('title', theme.strings.addWishlistTitle);\r\n        $(selector.btnWithText + '[data-handle=\"' + handle + '\"] ' + selector.btnText).text(theme.strings.addWishlistTitle);\r\n      } else {\r\n        ins.addProductToCookie(handle, cookieName);\r\n        $(selector.btn + '[data-handle=\"' + handle + '\"]').addClass('added').attr('title', theme.strings.addedWishlistTitle);\r\n        $(selector.btnWithText + '[data-handle=\"' + handle + '\"] ' + selector.btnText).text(theme.strings.addedWishlistTitle);\r\n      }\r\n      $(selector.btn + '[data-handle=\"' + handle + '\"][data-toggle=\"tooltip\"]').tooltip('fixTitle');\r\n      if($(this).attr('data-toggle') == 'tooltip') {\r\n        $(this).tooltip('show');\r\n      }\r\n      $(selector.number).text(ins.getCookieItemsValue(true, cookieName).length);\r\n      ins.data.wishlist.loaded = false;\r\n      $(selector.headerLink + ' i').addClass(ins.selectors.ringClass);\r\n    });\r\n\r\n    $(document).on('click', selector.removeBtn, function(e) {\r\n      e.preventDefault();\r\n      var handle = $(this).attr('data-handle');\r\n      ins.removeProductFromCookie(handle, cookieName);\r\n      $(selector.number).text(ins.getCookieItemsValue(true, cookieName).length);\r\n      $(selector.btn + '[data-handle=\"' + handle + '\"]').removeClass('added').attr('title', theme.strings.addWishlistTitle);\r\n      $(selector.btn + '[data-handle=\"' + handle + '\"][data-toggle=\"tooltip\"]').tooltip('fixTitle');\r\n      $(selector.btnWithText + '[data-handle=\"' + handle + '\"] ' + selector.btnText).text(theme.strings.addWishlistTitle);\r\n      if($(this).attr('data-toggle') == 'tooltip') {\r\n        $(this).tooltip('hide');\r\n      }\r\n      $(selector.popup + ' .item[data-product-handle=\"' + handle + '\"]').remove();\r\n      if($(selector.popup).find('.item').length == 0) {\r\n        var popupContent = $(selector.popup).find('.content');\r\n        ins.appendWishlistEmtptyStr(popupContent);\r\n      }\r\n    });\r\n\r\n    $(document).on('click', selector.headerLink, function(e) {\r\n      e.preventDefault();\r\n      var btn = $(this);\r\n      if(btn.hasClass(workingClass)) {\r\n        return;\r\n      }\r\n      btn.addClass(workingClass);\r\n      if(ins.data.wishlist.loaded) {\r\n        ins.showPopup(selector.popup);\r\n        btn.removeClass(workingClass);\r\n      } else {\r\n        ins.showLoadingFull();\r\n        ins.loadWishlist(function() {\r\n          ins.hideLoadingFull();\r\n          ins.showPopup(selector.popup);\r\n          btn.removeClass(workingClass);\r\n        });  \r\n      }\r\n    });\r\n  },\r\n\r\n  initExpandTrigger: function() {\r\n    var workingClass = 'working';\r\n    $(document).on('click touchend', '.expand-trigger', function(e) {\r\n      e.preventDefault();\r\n      if($(this).hasClass('working')) {\r\n        return;\r\n      }\r\n      var btn = $(this);\r\n      btn.addClass('working');\r\n      var effect = \"slideDown\";\r\n      if(btn.hasClass('open')) {\r\n        effect = \"slideUp\";\r\n      }\r\n      btn.toggleClass('open');\r\n      if(effect == 'slideDown') {\r\n        btn.siblings('.expand-content').slideDown(300, function() {\r\n          btn.removeClass(workingClass);\r\n        });\r\n      } else {\r\n        btn.siblings('.expand-content').slideUp(300, function() {\r\n          btn.removeClass(workingClass);\r\n        });\r\n      }\r\n    });\r\n  },\r\n\r\n  initResizeWindowTrigger: function() {\r\n    this.data.cacheWindowWidth = $(window).width();\r\n    var ins = this;\r\n    $(window).resize($.debounce( 250, function(e) {\r\n      var wwidth = $(window).width();\r\n      if(ins.data.cacheWindowWidth!==wwidth){\r\n        ins.data.cacheWindowWidth = $(window).width();\r\n        $(window).trigger(ins.data.resizeEventName);\r\n      }\r\n    }));\r\n  },\r\n\r\n  initScrollingWindow: function() {\r\n    var lastScrollTop = 0, ins = this;\r\n    $(window).scroll($.throttle(100, function(e) {\r\n      var st = window.pageYOffset || document.documentElement.scrollTop; // Credits: \"https://github.com/qeremy/so/blob/master/so.dom.js#L426\"\r\n      if (st > lastScrollTop){\r\n        $(window).trigger(ins.data.scrollEventName, ['down']);\r\n      } else {\r\n        $(window).trigger(ins.data.scrollEventName, ['up']);\r\n      }\r\n      lastScrollTop = st <= 0 ? 0 : st;\r\n    }));\r\n    $(window).on(this.data.resizeEventName,function(e) {\r\n      var st = window.pageYOffset || document.documentElement.scrollTop;\r\n      lastScrollTop = st <= 0 ? 0 : st;  \r\n    });\r\n  },\r\n\r\n  initScrollingWindowTriggerOnce: function(ele, suffixEvent, additionalOffset, cb) {\r\n    additionalOffset = (additionalOffset != undefined) ? additionalOffset : 0;\r\n    var offset = ele.offset().top + additionalOffset;\r\n    if(window.pageYOffset + window.innerHeight > offset) {\r\n      cb();\r\n    } else {\r\n      var ins = this, runCb = false, event = 'scroll.' + suffixEvent, resizeEvent = this.data.resizeEventName + '.scroll_' + suffixEvent;\r\n      $(window).on(event, $.throttle( 250, function(e) {\r\n        if(window.pageYOffset + window.innerHeight > offset) {\r\n          $(window).off(event);\r\n          $(window).off(resizeEvent);\r\n          if(!runCb) {\r\n            runCb = true;\r\n            cb();\r\n          }\r\n        }\r\n      }));\r\n      $(window).on(resizeEvent , function() {\r\n        if(runCb) {\r\n          $(window).off(resizeEvent);\r\n          return;\r\n        }\r\n        setTimeout(function() {\r\n          offset = ele.offset().top + additionalOffset;\r\n          if(window.pageYOffset + window.innerHeight > offset) {\r\n            $(window).off(event);\r\n            $(window).off(resizeEvent);\r\n            if(!runCb) {\r\n              runCb = true;\r\n              cb();\r\n            }\r\n          }\r\n        }, 300);\r\n      });\r\n    }\r\n  },\r\n\r\n  destroyScrollingWindowTriggerOnce: function(suffixEvent) {\r\n    $(window).off('scroll.' + suffixEvent);\r\n    $(window).off(this.data.resizeEventName + '.scroll_' + suffixEvent);\r\n  },\r\n\r\n  renderColumnsAjaxLoading: function(wrap, limit) {\r\n    var template = '<div class=\"pcol__item item dib w100 gutter-ele-bottom\"><div class=\"flex flex-wrap flex-align-space-between\"><div class=\"pcol__item__left col-xs-4 no-gutter--left\"><div class=\"item__image img-container loading\" style=\"padding-top:130%;\"></div></div><div class=\"pcol__item__right col-xs-8 no-gutter\"><span class=\"db w100 loading\" style=\"height:20px;\"></span><div class=\"gutter-ele-top\"><span class=\"db w100 loading\" style=\"height:20px;\"></span></div><div class=\"gutter-ele-top\"><span class=\"db w100 loading\" style=\"height:20px;\"></span></div></div></div></div>';\r\n    var items = '';\r\n    var i = 0;\r\n    for(i; i < limit; i++) {\r\n      items += template;\r\n    }\r\n    wrap.html(items);\r\n  },\r\n\r\n  loadProductColumnsAjax: function($container) {\r\n    var workingClass = 'working', ins = this;\r\n    if($container.hasClass('load-product-columns-ajax')) {\r\n      this.loadCssJsLib('waypoint', function() {\r\n        var wp = $container.waypoint(function(direction) {\r\n          if($container.hasClass(workingClass)) {\r\n            return;\r\n          }\r\n          wp[0].destroy();\r\n          $container.addClass(workingClass);\r\n          // var parent = $(this.element).parent();\r\n          // var limit = parseInt(trigger.attr('data-limit'));\r\n          // ins.renderColumnsAjaxLoading(parent, limit);\r\n          // trigger.remove();\r\n          $container.find('.pcol__items').each(function() {\r\n            ins.renderColumnsAjaxLoading($(this), parseInt($(this).attr('data-limit')));\r\n          });\r\n          ins.renderSectionByAjaxApi($container.attr('data-section-id'), {view: 'ajax'}, function(htmlResponse) {\r\n            $container.find('.pcol__items').each(function() {\r\n              $(this).html($('#' + $(this).attr('id'), htmlResponse).html());\r\n              $(this).removeClass('waiting-data');\r\n            });\r\n            ins.addProductMetaData($container, true);\r\n            ins.initSlider($container, false, false);\r\n          });\r\n        }, {\r\n          triggerOnce: true,\r\n          offset: '100%'\r\n        });\r\n      });\r\n    }\r\n  },\r\n\r\n  addProductRecentView: function(productHandle) {\r\n    if(!theme.enableRecentView) {\r\n      return;\r\n    }\r\n    this.addProductToCookie(productHandle, this.options.recentView.cookieName);\r\n  },\r\n\r\n  loadRequireCss: function() {\r\n    if(theme.requireCss.length > 0) {\r\n      var ins = this;\r\n      $(theme.requireCss).each(function(index, value) {\r\n        ins.loadCssJsLib(value);\r\n      });\r\n    }\r\n  },\r\n\r\n  initProductCustomFields: function() {\r\n    $(document).on('change', '.pg__field__ele', function() {\r\n      console.log($(this).val());\r\n      var targetEle = $($(this).attr('data-target'));\r\n      if(targetEle.hasClass('pg__field__group-checkbox')) {\r\n        // Collect values\r\n        var values = [];\r\n        $(this).parents('.pg__field').find('.pg__field__ele').each(function() {\r\n          if($(this).is(':checked')) {\r\n            values.push($(this).val());\r\n          }\r\n        });\r\n        targetEle.val(values.join(', '));\r\n      } else {\r\n        if($(this).is(':checked')) {\r\n          targetEle.prop('checked', true);\r\n        } else {\r\n          targetEle.prop('checked', false);\r\n        }\r\n      }\r\n      targetEle.valid();\r\n    });\r\n    $(document).on('click', '.pg__field__radio', function() {\r\n      var targetEle = $($(this).attr('data-target'));\r\n      targetEle.val($(this).val());\r\n      targetEle.valid();\r\n    });\r\n  },\r\n  init: function() {\r\n    this.initFloatField();\r\n    this.initMobileNavigation();\r\n    this.initSearchSuggestion();\r\n    this.initResizeWindowTrigger();\r\n    this.initScrollingWindow();\r\n    this.initDropdown();\r\n    this.initProductGroup();\r\n    this.initCartEvent();\r\n    this.initQtyBox();\r\n    this.refreshSliderInTabs();\r\n    this.initQuickView();\r\n    this.initSelectOption();\r\n    this.initCompareEvent();\r\n    this.initWishlist();\r\n    this.initLoadMoreBtn();\r\n    this.initRecommendedProducts();\r\n    this.initNewsletterPopup();\r\n    this.initCookieConsent();\r\n    this.initExpandTrigger();\r\n    $('body').tooltip({selector: '[data-toggle=\"tooltip\"]', trigger: 'hover', container: 'body'}); \r\n    setTimeout(function() {\r\n      this.updateFaviconBadge(theme.cartNumber);\r\n      this.initBackTopButton();\r\n      this.initAgreeCartTems();\r\n      this.initPopupVideo();\r\n      this.initProductCustomFields();\r\n    }.bind(this), 500);\r\n    if(theme.disableCopy) {\r\n      document.addEventListener('contextmenu', function(event){ event.preventDefault(); }); \r\n    }\r\n    $(document).one('touchstart', function() {\r\n      this.data.isTouchDevide = true;\r\n    }.bind(this));\r\n  }\r\n};\r\n\r\n$(window).on('load', function() {\r\n  BT.detectAutoFields();\r\n  BT.initSidebar();\r\n  setTimeout(function() {\r\n    BT.data.pageLoaded = true;\r\n  }, 500);\r\n  BT.initStickyMenu();\r\n  /*setTimeout(function() {\r\n    window.lazySizesConfig.expand = 370;\r\n    window.lazySizes.init();\r\n  }, 5000);*/\r\n});"],
  "mappings": "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",
  "names": ["btn"]
}
