{"version":3,"sources":["Vendor/Bootstrap/tab.js","Plugins/bootstrap-tabcollapse.js","product-range.js"],"names":["$","Plugin","option","this","each","$this","data","Tab","element","VERSION","TRANSITION_DURATION","prototype","show","$ul","closest","selector","attr","replace","parent","hasClass","$previous","find","hideEvent","Event","relatedTarget","showEvent","trigger","isDefaultPrevented","$target","activate","type","container","callback","next","$active","removeClass","end","addClass","transition","offsetWidth","length","support","one","emulateTransitionEnd","old","fn","tab","Constructor","noConflict","clickHandler","e","preventDefault","call","document","on","jQuery","define","TabCollapse","el","options","$tabs","_accordionVisible","_initAccordion","_checkStateOnResize","that","setTimeout","checkState","DEFAULTS","accordionClass","tabsClass","accordionTemplate","heading","groupId","parentId","active","is","showTabs","$accordion","showAccordion","view","$panelHeadings","detach","$panelHeading","$parentLi","$oldHeading","_panelHeadingToTabHeading","siblings","append","first","$panelBodies","$panelBody","$tabPane","contents","html","updateLinks","$tabContents","getTabContentElement","$el","href","data-toggle","data-toggle-was","data-parent","tabContentSelector","$headings","$heading","_createAccordionGroup","$selector","_tabHeadingToPanelHeading","window","resize","clearTimeout","_resizeTimeout","randomString","result","possible","i","charAt","Math","floor","random","srcId","accordionId","after","tabSelector","$panel","tabCollapse","extend","Swiper","helpers","$document","ready","showProducts","swiper","$swiperPagination","smallScreen","init","autoplay","constants","swiperInterval","pagination","paginationClickable","slidesPerView","destroy","checkScreenWidth","Settings","isMobileWidth","$productRangeProducts","removeAttr","initProductRange","$firstPanel","bindEvents","$window","debounce","initCarousel","productBannerSwiper","productBannerSwiperContainer","nextButton","prevButton","productBannerPagination","$productRangeTabs","$panelGroup","productBannerCarousel"],"mappings":"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ACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC7JA,AD8JA;AC7JA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AChPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"product-range.js","sourcesContent":["/* ========================================================================\r\n * Bootstrap: tab.js v3.3.7\r\n * http://getbootstrap.com/javascript/#tabs\r\n * ========================================================================\r\n * Copyright 2011-2016 Twitter, Inc.\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\r\n * ======================================================================== */\r\n\r\n\r\n+function ($) {\r\n 'use strict';\r\n\r\n // TAB CLASS DEFINITION\r\n // ====================\r\n\r\n var Tab = function (element) {\r\n // jscs:disable requireDollarBeforejQueryAssignment\r\n this.element = $(element)\r\n // jscs:enable requireDollarBeforejQueryAssignment\r\n }\r\n\r\n Tab.VERSION = '3.3.7'\r\n\r\n Tab.TRANSITION_DURATION = 150\r\n\r\n Tab.prototype.show = function () {\r\n var $this = this.element\r\n var $ul = $this.closest('ul:not(.dropdown-menu)')\r\n var selector = $this.data('target')\r\n\r\n if (!selector) {\r\n selector = $this.attr('href')\r\n selector = selector && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\r\n }\r\n\r\n if ($this.parent('li').hasClass('active')) return\r\n\r\n var $previous = $ul.find('.active:last a')\r\n var hideEvent = $.Event('hide.bs.tab', {\r\n relatedTarget: $this[0]\r\n })\r\n var showEvent = $.Event('show.bs.tab', {\r\n relatedTarget: $previous[0]\r\n })\r\n\r\n $previous.trigger(hideEvent)\r\n $this.trigger(showEvent)\r\n\r\n if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) return\r\n\r\n var $target = $(selector)\r\n\r\n this.activate($this.closest('li'), $ul)\r\n this.activate($target, $target.parent(), function () {\r\n $previous.trigger({\r\n type: 'hidden.bs.tab',\r\n relatedTarget: $this[0]\r\n })\r\n $this.trigger({\r\n type: 'shown.bs.tab',\r\n relatedTarget: $previous[0]\r\n })\r\n })\r\n }\r\n\r\n Tab.prototype.activate = function (element, container, callback) {\r\n var $active = container.find('> .active')\r\n var transition = callback\r\n && $.support.transition\r\n && ($active.length && $active.hasClass('fade') || !!container.find('> .fade').length)\r\n\r\n function next() {\r\n $active\r\n .removeClass('active')\r\n .find('> .dropdown-menu > .active')\r\n .removeClass('active')\r\n .end()\r\n .find('[data-toggle=\"tab\"]')\r\n .attr('aria-expanded', false)\r\n\r\n element\r\n .addClass('active')\r\n .find('[data-toggle=\"tab\"]')\r\n .attr('aria-expanded', true)\r\n\r\n if (transition) {\r\n element[0].offsetWidth // reflow for transition\r\n element.addClass('in')\r\n } else {\r\n element.removeClass('fade')\r\n }\r\n\r\n if (element.parent('.dropdown-menu').length) {\r\n element\r\n .closest('li.dropdown')\r\n .addClass('active')\r\n .end()\r\n .find('[data-toggle=\"tab\"]')\r\n .attr('aria-expanded', true)\r\n }\r\n\r\n callback && callback()\r\n }\r\n\r\n $active.length && transition ?\r\n $active\r\n .one('bsTransitionEnd', next)\r\n .emulateTransitionEnd(Tab.TRANSITION_DURATION) :\r\n next()\r\n\r\n $active.removeClass('in')\r\n }\r\n\r\n\r\n // TAB PLUGIN DEFINITION\r\n // =====================\r\n\r\n function Plugin(option) {\r\n return this.each(function () {\r\n var $this = $(this)\r\n var data = $this.data('bs.tab')\r\n\r\n if (!data) $this.data('bs.tab', (data = new Tab(this)))\r\n if (typeof option == 'string') data[option]()\r\n })\r\n }\r\n\r\n var old = $.fn.tab\r\n\r\n $.fn.tab = Plugin\r\n $.fn.tab.Constructor = Tab\r\n\r\n\r\n // TAB NO CONFLICT\r\n // ===============\r\n\r\n $.fn.tab.noConflict = function () {\r\n $.fn.tab = old\r\n return this\r\n }\r\n\r\n\r\n // TAB DATA-API\r\n // ============\r\n\r\n var clickHandler = function (e) {\r\n e.preventDefault()\r\n Plugin.call($(this), 'show')\r\n }\r\n\r\n $(document)\r\n .on('click.bs.tab.data-api', '[data-toggle=\"tab\"]', clickHandler)\r\n .on('click.bs.tab.data-api', '[data-toggle=\"pill\"]', clickHandler)\r\n\r\n}(jQuery);\r\n\ndefine(\"bootstrap-tab\", [\"jquery\"], function(){});\n\n","!function ($) {\r\n\r\n\t\"use strict\";\r\n\r\n\t// TABCOLLAPSE CLASS DEFINITION\r\n\t// ======================\r\n\r\n\tvar TabCollapse = function (el, options) {\r\n\t\tthis.options = options;\r\n\t\tthis.$tabs = $(el);\r\n\r\n\t\tthis._accordionVisible = false; //content is attached to tabs at first\r\n\t\tthis._initAccordion();\r\n\t\tthis._checkStateOnResize();\r\n\r\n\r\n\t\t// checkState() has gone to setTimeout for making it possible to attach listeners to\r\n\t\t// shown-accordion.bs.tabcollapse event on page load.\r\n\t\t// See https://github.com/flatlogic/bootstrap-tabcollapse/issues/23\r\n\t\tvar that = this;\r\n\t\tsetTimeout(function() {\r\n\t\t\tthat.checkState();\r\n\t\t}, 0);\r\n\t};\r\n\r\n\tTabCollapse.DEFAULTS = {\r\n\t\taccordionClass: 'visible-xs',\r\n\t\ttabsClass: 'hidden-xs',\r\n\t\taccordionTemplate: function(heading, groupId, parentId, active) {\r\n\t\t\treturn '
' +\r\n\t\t\t\t'
' +\r\n\t\t\t\t'

' +\r\n\t\t\t\t'

' +\r\n\t\t\t\t'
' +\r\n\t\t\t\t'
' +\r\n\t\t\t\t'
' +\r\n\t\t\t\t'
' +\r\n\t\t\t\t'
' +\r\n\t\t\t\t'
'\r\n\r\n\t\t}\r\n\t};\r\n\r\n\tTabCollapse.prototype.checkState = function(){\r\n\t\tif (this.$tabs.is(':visible') && this._accordionVisible){\r\n\t\t\tthis.showTabs();\r\n\t\t\tthis._accordionVisible = false;\r\n\t\t} else if (this.$accordion.is(':visible') && !this._accordionVisible){\r\n\t\t\tthis.showAccordion();\r\n\t\t\tthis._accordionVisible = true;\r\n\t\t}\r\n\t};\r\n\r\n\tTabCollapse.prototype.showTabs = function(){\r\n\t\tvar view = this;\r\n\t\tthis.$tabs.trigger($.Event('show-tabs.bs.tabcollapse'));\r\n\r\n\t\tvar $panelHeadings = this.$accordion.find('.js-tabcollapse-panel-heading').detach();\r\n\r\n\t\t$panelHeadings.each(function() {\r\n\t\t\tvar $panelHeading = $(this),\r\n\t\t\t\t$parentLi = $panelHeading.data('bs.tabcollapse.parentLi');\r\n\r\n\t\t\tvar $oldHeading = view._panelHeadingToTabHeading($panelHeading);\r\n\r\n\t\t\t$parentLi.removeClass('active');\r\n\t\t\tif ($parentLi.parent().hasClass('dropdown-menu') && !$parentLi.siblings('li').hasClass('active')) {\r\n\t\t\t\t$parentLi.parent().parent().removeClass('active');\r\n\t\t\t}\r\n\r\n\t\t\tif (!$oldHeading.hasClass('collapsed')) {\r\n\t\t\t\t$parentLi.addClass('active');\r\n\t\t\t\tif ($parentLi.parent().hasClass('dropdown-menu')) {\r\n\t\t\t\t\t$parentLi.parent().parent().addClass('active');\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\t$oldHeading.removeClass('collapsed');\r\n\t\t\t}\r\n\r\n\t\t\t$parentLi.append($panelHeading);\r\n\t\t});\r\n\r\n\t\tif (!$('li').hasClass('active')) {\r\n\t\t\t$('li').first().addClass('active')\r\n\t\t}\r\n\r\n\t\tvar $panelBodies = this.$accordion.find('.js-tabcollapse-panel-body');\r\n\t\t$panelBodies.each(function(){\r\n\t\t\tvar $panelBody = $(this),\r\n\t\t\t\t$tabPane = $panelBody.data('bs.tabcollapse.tabpane');\r\n\t\t\t$tabPane.append($panelBody.contents().detach());\r\n\t\t});\r\n\t\tthis.$accordion.html('');\r\n\r\n\t\tif(this.options.updateLinks) {\r\n\t\t\tvar $tabContents = this.getTabContentElement();\r\n\t\t\t$tabContents.find('[data-toggle-was=\"tab\"], [data-toggle-was=\"pill\"]').each(function() {\r\n\t\t\t\tvar $el = $(this);\r\n\t\t\t\tvar href = $el.attr('href').replace(/-collapse$/g, '');\r\n\t\t\t\t$el.attr({\r\n\t\t\t\t\t'data-toggle': $el.attr('data-toggle-was'),\r\n\t\t\t\t\t'data-toggle-was': '',\r\n\t\t\t\t\t'data-parent': '',\r\n\t\t\t\t\thref: href\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tthis.$tabs.trigger($.Event('shown-tabs.bs.tabcollapse'));\r\n\t};\r\n\r\n\tTabCollapse.prototype.getTabContentElement = function(){\r\n\t\tvar $tabContents = $(this.options.tabContentSelector);\r\n\t\tif($tabContents.length === 0) {\r\n\t\t\t$tabContents = this.$tabs.siblings('.tab-content');\r\n\t\t}\r\n\t\treturn $tabContents;\r\n\t};\r\n\r\n\tTabCollapse.prototype.showAccordion = function(){\r\n\t\tthis.$tabs.trigger($.Event('show-accordion.bs.tabcollapse'));\r\n\r\n\t\tvar $headings = this.$tabs.find('li:not(.dropdown) [data-toggle=\"tab\"], li:not(.dropdown) [data-toggle=\"pill\"]'),\r\n\t\t\tview = this;\r\n\t\t$headings.each(function(){\r\n\t\t\tvar $heading = $(this),\r\n\t\t\t\t$parentLi = $heading.parent();\r\n\t\t\t$heading.data('bs.tabcollapse.parentLi', $parentLi);\r\n\t\t\tview.$accordion.append(view._createAccordionGroup(view.$accordion.attr('id'), $heading.detach()));\r\n\t\t});\r\n\r\n\t\tif(this.options.updateLinks) {\r\n\t\t\tvar parentId = this.$accordion.attr('id');\r\n\t\t\tvar $selector = this.$accordion.find('.js-tabcollapse-panel-body');\r\n\t\t\t$selector.find('[data-toggle=\"tab\"], [data-toggle=\"pill\"]').each(function() {\r\n\t\t\t\tvar $el = $(this);\r\n\t\t\t\tvar href = $el.attr('href') + '-collapse';\r\n\t\t\t\t$el.attr({\r\n\t\t\t\t\t'data-toggle-was': $el.attr('data-toggle'),\r\n\t\t\t\t\t'data-toggle': 'collapse',\r\n\t\t\t\t\t'data-parent': '#' + parentId,\r\n\t\t\t\t\thref: href\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tthis.$tabs.trigger($.Event('shown-accordion.bs.tabcollapse'));\r\n\t};\r\n\r\n\tTabCollapse.prototype._panelHeadingToTabHeading = function($heading) {\r\n\t\tvar href = $heading.attr('href').replace(/-collapse$/g, '');\r\n\t\t$heading.attr({\r\n\t\t\t'data-toggle': 'tab',\r\n\t\t\t'href': href,\r\n\t\t\t'data-parent': ''\r\n\t\t});\r\n\t\treturn $heading;\r\n\t};\r\n\r\n\tTabCollapse.prototype._tabHeadingToPanelHeading = function($heading, groupId, parentId, active) {\r\n\t\t$heading.addClass('js-tabcollapse-panel-heading ' + (active ? '' : 'collapsed'));\r\n\t\t$heading.attr({\r\n\t\t\t'data-toggle': 'collapse',\r\n\t\t\t'data-parent': '#' + parentId,\r\n\t\t\t'href': '#' + groupId\r\n\t\t});\r\n\t\treturn $heading;\r\n\t};\r\n\r\n\tTabCollapse.prototype._checkStateOnResize = function(){\r\n\t\tvar view = this;\r\n\t\t$(window).resize(function(){\r\n\t\t\tclearTimeout(view._resizeTimeout);\r\n\t\t\tview._resizeTimeout = setTimeout(function(){\r\n\t\t\t\tview.checkState();\r\n\t\t\t}, 100);\r\n\t\t});\r\n\t};\r\n\r\n\r\n\tTabCollapse.prototype._initAccordion = function(){\r\n\t\tvar randomString = function() {\r\n\t\t\tvar result = \"\",\r\n\t\t\t\tpossible = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\";\r\n\t\t\tfor( var i=0; i < 5; i++ ) {\r\n\t\t\t\tresult += possible.charAt(Math.floor(Math.random() * possible.length));\r\n\t\t\t}\r\n\t\t\treturn result;\r\n\t\t};\r\n\r\n\t\tvar srcId = this.$tabs.attr('id'),\r\n\t\t\taccordionId = (srcId ? srcId : randomString()) + '-accordion';\r\n\r\n\t\tthis.$accordion = $('
');\r\n\t\tthis.$tabs.after(this.$accordion);\r\n\t\tthis.$tabs.addClass(this.options.tabsClass);\r\n\t\tthis.getTabContentElement().addClass(this.options.tabsClass);\r\n\t};\r\n\r\n\tTabCollapse.prototype._createAccordionGroup = function(parentId, $heading){\r\n\t\tvar tabSelector = $heading.attr('data-target'),\r\n\t\t\tactive = $heading.data('bs.tabcollapse.parentLi').is('.active');\r\n\r\n\t\tif (!tabSelector) {\r\n\t\t\ttabSelector = $heading.attr('href');\r\n\t\t\ttabSelector = tabSelector && tabSelector.replace(/.*(?=#[^\\s]*$)/, ''); //strip for ie7\r\n\t\t}\r\n\r\n\t\tvar $tabPane = $(tabSelector),\r\n\t\t\tgroupId = $tabPane.attr('id') + '-collapse',\r\n\t\t\t$panel = $(this.options.accordionTemplate($heading, groupId, parentId, active));\r\n\t\t$panel.find('.panel-heading > .panel-title').append(this._tabHeadingToPanelHeading($heading, groupId, parentId, active));\r\n\t\t$panel.find('.panel-body').append($tabPane.contents().detach())\r\n\t\t\t.data('bs.tabcollapse.tabpane', $tabPane);\r\n\r\n\t\treturn $panel;\r\n\t};\r\n\r\n\r\n\r\n\t// TABCOLLAPSE PLUGIN DEFINITION\r\n\t// =======================\r\n\r\n\t$.fn.tabCollapse = function (option) {\r\n\t\treturn this.each(function () {\r\n\t\t\tvar $this = $(this);\r\n\t\t\tvar data = $this.data('bs.tabcollapse');\r\n\t\t\tvar options = $.extend({}, TabCollapse.DEFAULTS, $this.data(), typeof option === 'object' && option);\r\n\r\n\t\t\tif (!data) $this.data('bs.tabcollapse', new TabCollapse(this, options));\r\n\t\t});\r\n\t};\r\n\r\n\t$.fn.tabCollapse.Constructor = TabCollapse;\r\n\r\n\r\n}(window.jQuery);\r\n\ndefine(\"bootstrap-tab-collapse\", [\"jquery\"], function(){});\n\n","define('product-range',[\r\n\t'jquery',\r\n\t'swiper',\r\n\t'helpers',\r\n\t'bootstrap-tab',\r\n\t'bootstrap-tab-collapse'\r\n], function ($, Swiper, helpers) {\r\n\t\"use strict\";\r\n\r\n\thelpers.$document.ready(function () {\r\n\r\n\t\tvar Settings = {\r\n\t\t\tisMobileWidth: false,\r\n\t\t\t$panelGroup: $('.product-range-products').find('.panel-group'),\r\n\t\t\tproductBannerCarousel: $('.product-banner--carousel'),\r\n\t\t\tproductBannerSwiper: null,\r\n\t\t\t$productRangeProducts: $('.product-range-products'),\r\n\t\t\t$productRangeTabs: $('#productRangeTabs')\r\n\t\t};\r\n\r\n\t\tSettings.productBannerSwiperContainer = Settings.productBannerCarousel.find('.swiper-container');\r\n\t\tSettings.productBannerPagination = Settings.productBannerCarousel.find('.swiper-pagination');\r\n\r\n\t\t/***\r\n\t\t * Handler for showing products in the Range section.\r\n\t\t */\r\n\t\tfunction showProducts() {\r\n\t\t\tvar $this,\r\n\t\t\t\tswiper,\r\n\t\t\t\t$swiperPagination;\r\n\r\n\t\t\t$this = $(this);\r\n\r\n\t\t\t// Get specific instance of swiper for this range of products, if it exists.\r\n\t\t\tswiper = $this.find('.swiper-container')[0].swiper;\r\n\r\n\t\t\tif (helpers.smallScreen()) {\r\n\t\t\t\t// We're on mobile so init a carousel if necessary, or restart an existing one.\r\n\t\t\t\tif (!swiper) {\r\n\t\t\t\t\t$swiperPagination = $this.find('.swiper-pagination');\r\n\t\t\t\t\tswiper = new Swiper($this.find('.swiper-container'), {\r\n\t\t\t\t\t\tautoplay: helpers.constants.swiperInterval,\r\n\t\t\t\t\t\tpagination: $swiperPagination,\r\n\t\t\t\t\t\tpaginationClickable: true,\r\n\t\t\t\t\t\tslidesPerView: 1\r\n\t\t\t\t\t});\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// An instance of a swiper is present but needs to be reinitialised so it starts playing again\r\n\t\t\t\t\t// after it was hidden.\r\n\t\t\t\t\tswiper.init();\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\t// We're on desktop, so remove swiper functionality.\r\n\t\t\t\tif (swiper) {\r\n\t\t\t\t\tswiper.destroy(false, false);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction checkScreenWidth() {\r\n\t\t\tif (helpers.smallScreen()) {\r\n\t\t\t\tif (!Settings.isMobileWidth) {\r\n\t\t\t\t\t// We've just transitioned from desktop to mobile\r\n\t\t\t\t\tSettings.$productRangeProducts.find('.swiper-container').each(function () {\r\n\t\t\t\t\t\tvar $this = $(this);\r\n\t\t\t\t\t\tvar swiper = this.swiper;\r\n\t\t\t\t\t\tif (!swiper) {\r\n\t\t\t\t\t\t\tvar $swiperPagination = $this.find('.swiper-pagination');\r\n\t\t\t\t\t\t\tswiper = new Swiper($this.find('.swiper-container'), {\r\n\t\t\t\t\t\t\t\tautoplay: helpers.constants.swiperInterval,\r\n\t\t\t\t\t\t\t\tpagination: $swiperPagination,\r\n\t\t\t\t\t\t\t\tpaginationClickable: true,\r\n\t\t\t\t\t\t\t\tslidesPerView: 1\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t// An instance of a swiper is present but needs to be reinitialised so it starts playing again\r\n\t\t\t\t\t\t\t// after it was hidden.\r\n\t\t\t\t\t\t\tswiper.init();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\tSettings.isMobileWidth = true;\r\n\t\t\t} else {\r\n\t\t\t\tif (Settings.isMobileWidth) {\r\n\t\t\t\t\t// Just transitioned from mobile to desktop, so destroy swipers.\r\n\t\t\t\t\tSettings.$productRangeProducts.find('.swiper-container').each(function () {\r\n\t\t\t\t\t\tvar swiper = this.swiper;\r\n\t\t\t\t\t\tif (swiper) {\r\n\t\t\t\t\t\t\tswiper.destroy(false, false);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\t// Remove style attribute added by Swiper when on mobile, otherwise content will be\r\n\t\t\t\t\t// placed off the page.\r\n\t\t\t\t\tSettings.$productRangeProducts.find('.swiper-wrapper').removeAttr('style');\r\n\t\t\t\t\tSettings.isMobileWidth = false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t/***\r\n\t\t * Set initial values, and show first panel if desktop/tablet width.\r\n\t\t */\r\n\t\tfunction initProductRange() {\r\n\t\t\tif (helpers.smallScreen()) {\r\n\r\n\t\t\t\t// Collapse first panel manually.\r\n\t\t\t\tsetTimeout(function(){\r\n\t\t\t\t\tvar $firstPanel = Settings.$productRangeProducts.find('.panel').first();\r\n\t\t\t\t\t$firstPanel.find('.js-tabcollapse-panel-heading').addClass('collapsed');\r\n\t\t\t\t\t$firstPanel.find('.panel-collapse').removeClass('in');\r\n\t\t\t\t}, 100);\r\n\r\n\t\t\t\tSettings.isMobileWidth = true;\r\n\t\t\t} else {\r\n\t\t\t\tSettings.isMobileWidth = false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction bindEvents() {\r\n\t\t\thelpers.$window.on('resize', helpers.debounce(checkScreenWidth, 50));\r\n\t\t\tSettings.$productRangeProducts.on('shown.bs.collapse', '.panel-collapse', showProducts);\r\n\t\t}\r\n\r\n\t\tfunction initCarousel() {\r\n\t\t\tSettings.productBannerSwiper = new Swiper(Settings.productBannerSwiperContainer, {\r\n\t\t\t\tautoplay: helpers.constants.swiperInterval,\r\n\t\t\t\tnextButton: '.swiper-button-next',\r\n\t\t\t\tprevButton: '.swiper-button-prev',\r\n\t\t\t\tpagination: Settings.productBannerPagination,\r\n\t\t\t\tpaginationClickable: true,\r\n\t\t\t\tslidesPerView: 1\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tfunction init() {\r\n\t\t\tbindEvents();\r\n\t\t\tSettings.$productRangeTabs.tabCollapse();\r\n\t\t\tinitCarousel();\r\n\t\t\tinitProductRange();\r\n\t\t}\r\n\r\n\t\tinit();\r\n\r\n\t});\r\n\r\n});\r\n\n"]}