{"version":3,"sources":["webpack:///./node_modules/core-js/modules/es6.regexp.flags.js","webpack:///./node_modules/nespresso-components/swiper/Swiper.vue","webpack:///node_modules/nespresso-components/swiper/Swiper.vue","webpack:///./node_modules/nespresso-components/swiper/Swiper.vue?95fc","webpack:///./node_modules/nespresso-components/swiper/Swiper.vue?d2b0","webpack:///./node_modules/nespresso-components/swiper/Swiper.vue?1f7b","webpack:///./node_modules/nespresso-components/swiper/swiper.core.js","webpack:///./node_modules/core-js/modules/es6.regexp.to-string.js"],"names":["flags","f","RegExp","prototype","configurable","get","render","_vm","this","_c","_self","staticClass","attrs","_uid","_t","ref","isDiv","staticRenderFns","name","props","options","type","Object","Boolean","default","mounted","mount","swiper","nextTick","assign","refineClasses","virtualTranslate","isTouch","Swiper","$refs","container","$nextTick","methods","overwritedOptions","pagination","paginationBulletRender","index","className","nextButton","prevButton","scrollbar","onSetTranslate","css","wrapper","translate","updated","update","beforeDestroy","destroy","component","$","params","defaults","direction","touchEventsTarget","initialSlide","speed","autoplay","autoplayDisableOnInteraction","autoplayStopOnLast","iOSEdgeSwipeDetection","iOSEdgeSwipeThreshold","freeMode","freeModeMomentum","freeModeMomentumRatio","freeModeMomentumBounce","freeModeMomentumBounceRatio","freeModeMomentumVelocityRatio","freeModeSticky","freeModeMinimumVelocity","autoHeight","setWrapperSize","effect","coverflow","rotate","stretch","depth","modifier","slideShadows","flip","limitRotation","cube","shadow","shadowOffset","shadowScale","fade","crossFade","parallax","zoom","zoomMax","zoomMin","zoomToggle","scrollbarHide","scrollbarDraggable","scrollbarSnapOnRelease","keyboardControl","mousewheelControl","mousewheelReleaseOnEdges","mousewheelInvert","mousewheelForceToAxis","mousewheelSensitivity","mousewheelEventsTarged","hashnav","hashnavWatchState","history","replaceState","breakpoints","undefined","spaceBetween","slidesPerView","slidesPerColumn","slidesPerColumnFill","slidesPerGroup","centeredSlides","slidesOffsetBefore","slidesOffsetAfter","roundLengths","touchRatio","touchAngle","simulateTouch","shortSwipes","longSwipes","longSwipesRatio","longSwipesMs","followFinger","onlyExternal","threshold","touchMoveStopPropagation","touchReleaseOnEdges","uniqueNavElements","paginationElement","paginationClickable","paginationHide","paginationProgressRender","paginationFractionRender","paginationCustomRender","paginationType","resistance","resistanceRatio","watchSlidesProgress","watchSlidesVisibility","grabCursor","preventClicks","preventClicksPropagation","slideToClickedSlide","lazyLoading","lazyLoadingInPrevNext","lazyLoadingInPrevNextAmount","lazyLoadingOnTransitionStart","preloadImages","updateOnImagesReady","loop","loopAdditionalSlides","loopedSlides","control","controlInverse","controlBy","normalizeSlideIndex","allowSwipeToPrev","allowSwipeToNext","swipeHandler","noSwiping","noSwipingClass","passiveListeners","containerModifierClass","slideClass","slideActiveClass","slideDuplicateActiveClass","slideVisibleClass","slideDuplicateClass","slideNextClass","slideDuplicateNextClass","slidePrevClass","slideDuplicatePrevClass","wrapperClass","bulletClass","bulletActiveClass","buttonDisabledClass","paginationCurrentClass","paginationTotalClass","paginationHiddenClass","paginationProgressbarClass","paginationClickableClass","paginationModifierClass","lazyLoadingClass","lazyStatusLoadingClass","lazyStatusLoadedClass","lazyPreloaderClass","notificationClass","preloaderClass","zoomContainerClass","observer","observeParents","a11y","prevSlideMessage","nextSlideMessage","firstSlideMessage","lastSlideMessage","paginationBulletMessage","runCallbacksOnInit","initialVirtualTranslate","originalParams","param","nodeType","window","document","Dom7","jQuery","deepParam","def","deepDef","s","classNames","Zepto","currentBreakpoint","getActiveBreakpoint","point","breakpoint","points","hasOwnProperty","push","sort","a","b","parseInt","i","length","innerWidth","setBreakpoint","breakPointsParams","needsReLoop","destroyLoop","reLoop","swipers","each","data","support","flexbox","indexOf","transforms3d","touch","children","paginationContainer","find","addClass","isHorizontal","rtl","dir","toLowerCase","wrongRTL","device","android","join","progress","velocity","lockSwipeToNext","unsetGrabCursor","lockSwipeToPrev","lockSwipes","unlockSwipeToNext","setGrabCursor","unlockSwipeToPrev","unlockSwipes","moving","style","cursor","imagesToLoad","imagesLoaded","loadImage","imgElement","src","srcset","sizes","checkForComplete","callback","image","onReady","complete","Image","onload","onerror","_onReady","emit","currentSrc","getAttribute","autoplayTimeoutId","autoplaying","autoplayPaused","startAutoplay","stopAutoplay","internal","clearTimeout","pauseAutoplay","transitionEnd","minTranslate","snapGrid","maxTranslate","updateAutoHeight","activeSlides","newHeight","Math","ceil","activeIndex","slides","eq","height","offsetHeight","updateContainerSize","width","clientWidth","clientHeight","size","updateSlidesSize","slidesGrid","slidesSizesGrid","slidePosition","prevSlideSize","slidesNumberEvenToRows","slideSize","parseFloat","replace","virtualSize","marginLeft","marginTop","marginRight","marginBottom","floor","max","newSlidesGrid","slidesPerRow","numFullColumns","newSlideOrderIndex","column","row","slide","attr","outerWidth","outerHeight","round","swiperSlideSize","abs","updateSlidesOffset","swiperSlideOffset","offsetLeft","offsetTop","currentSlidesPerView","j","spv","breakLoop","updateSlidesProgress","offsetCenter","removeClass","slideProgress","slideBefore","slideAfter","isVisible","updateProgress","translatesDiff","wasBeginning","isBeginning","wasEnd","isEnd","updateActiveIndex","newActiveIndex","snapIndex","previousIndex","updateClasses","updateRealIndex","realIndex","activeSlide","hasClass","nextSlide","next","prevSlide","prev","current","total","bullets","text","scale","scaleX","scaleY","transform","transition","html","disable","enable","updatePagination","paginationHTML","numberOfBullets","initPagination","updateTranslate","newTranslate","translated","set","controller","spline","forceSetTranslate","slideTo","min","setWrapperTranslate","onResize","forceUpdatePagination","onBeforeResize","slideChangedBySlideTo","lazy","load","onAfterResize","touchEventsDesktop","start","move","end","navigator","pointerEnabled","msPointerEnabled","touchEvents","initEvents","detach","actionDom","action","target","moveCapture","nested","browser","ie","onTouchStart","onTouchMove","onTouchEnd","passiveListener","passive","capture","ios","onClickNext","onEnterKey","onClickPrev","onClickIndex","attachEvents","detachEvents","allowClick","e","preventDefault","animating","stopPropagation","stopImmediatePropagation","slideNext","slidePrev","updateClickedSlide","findElementInEvent","slideFound","clickedSlide","clickedIndex","slideToIndex","fixLoop","setTimeout","isTouched","isMoved","allowTouchCallbacks","touchStartTime","isScrolling","currentTranslate","startTranslate","allowThresholdMove","clickTimeout","allowMomentumBounce","isTouchEvent","startMoving","formElements","lastClickTime","Date","now","velocities","plugin","touches","startX","startY","currentX","currentY","diff","originalEvent","which","targetTouches","pageX","pageY","swipeDirection","is","activeElement","blur","preventedByNestedSwiper","atan2","PI","getWrapperTranslate","setWrapperTransition","trigger","disableParentSwiper","pow","position","time","getTime","currentPos","touchEndTime","timeDiff","toggleClass","lastMoveEvent","pop","velocityEvent","distance","momentumDuration","momentumDistance","newPosition","afterBouncePosition","doBounce","bounceAmount","slideReset","onTransitionStart","onTransitionEnd","stopIndex","groupSize","ratio","_slideTo","slideIndex","runCallbacks","lteIE9","setHistory","setHash","clientLeft","_slideNext","_slidePrev","disableTouchControl","enableTouchControl","duration","byController","effects","setTransition","x","y","z","setTranslate","getTranslate","el","axis","matrix","curTransform","curStyle","transformMatrix","getComputedStyle","WebKitCSSMatrix","webkitTransform","split","map","MozTransform","OTransform","MsTransform","msTransform","getPropertyValue","toString","m41","m42","observers","initObservers","containerParents","parents","initObserver","childList","attributes","disconnectObservers","disconnect","createLoop","remove","prependSlides","appendSlides","append","cloneNode","prepend","removeAttr","updatePosition","oldIndex","newIndex","appendSlide","prependSlide","removeSlide","slidesIndexes","indexToRemove","removeAllSlides","offset","tx","ty","slideOpacity","opacity","eventTriggered","triggerEvents","rotateY","rotateX","zIndex","shadowBefore","shadowAfter","cubeShadow","wrapperRotate","slideAngle","tz","shadowAngle","multiplier","sin","cos","scale1","scale2","zFactor","isSafari","isUiWebView","center","slideOffset","offsetMultiplier","translateZ","translateY","translateX","slideTransform","ws","perspectiveOrigin","_plugins","plugins","p","callPlugins","eventName","arguments","emitterEventListeners","on","handler","normalizeEventName","off","splice","once","_handler","init","enableDraggable","initialImageLoaded","enableKeyboardControl","enableMousewheelControl","hashnavReplaceState","cleanupStyles","track","drag","deleteInstance","disableDraggable","disableKeyboardControl","disableMousewheelControl","removeEventListener","setHistoryPopState","autoplayDelay","selector","found","_el","ObserverFunc","MutationObserver","WebkitMutationObserver","mutations","forEach","mutation","observe","characterData","toUpperCase","substring","ua","userAgent","test","isArray","arr","apply","ieTouch","msMaxTouchPoints","maxTouchPoints","div","createElement","innerHTML","getElementsByTagName","match","ipad","ipod","iphone","Modernizr","DocumentTouch","csstransforms3d","styles","supportsPassive","opts","defineProperty","addEventListener","gestures","domLib","_this","context","els","tempParent","trim","toCreate","childNodes","querySelectorAll","getElementById","classes","classList","add","contains","toggle","value","setAttribute","attrName","removeAttribute","key","dom7ElementDataStorage","dataKey","elStyle","webkitTransitionDuration","MsTransitionDuration","msTransitionDuration","MozTransitionDuration","OTransitionDuration","transitionDuration","targetSelector","listener","handleLiveEvent","call","k","events","dom7LiveListeners","liveListener","dom","proxy","eventData","evt","CustomEvent","detail","bubbles","cancelable","createEvent","initEvent","dispatchEvent","fireCallBack","includeMargins","offsetWidth","innerHeight","box","getBoundingClientRect","body","clientTop","scrollTop","pageYOffset","scrollLeft","pageXOffset","top","left","prop","textContent","compareWith","matches","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","child","previousSibling","returnIndex","newChild","tempDiv","firstChild","appendChild","insertBefore","before","parentNode","insertAfter","after","nextSibling","nextElementSibling","nextAll","nextEls","previousElementSibling","prevAll","prevEls","parent","unique","foundElements","removeChild","toAdd","fn","swiperDomPlugins","addLibraryPlugin","lib","firstInstance","anObject","$flags","DESCRIPTORS","TO_STRING","$toString","define","source","R","concat"],"mappings":"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","file":"js/Swiper.js","sourcesContent":["// 21.2.5.3 get RegExp.prototype.flags()\nif (require('./_descriptors') && /./g.flags != 'g') require('./_object-dp').f(RegExp.prototype, 'flags', {\n  configurable: true,\n  get: require('./_flags')\n});\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"v_swiper\",attrs:{\"id\":'v_swiper_id_' + _vm._uid}},[_vm._t(\"button-prev\"),_c('div',{staticClass:\"v_swiperOverflow\"},[_c('div',{ref:\"container\",staticClass:\"swiper-container\"},[_vm._t(\"parallax-bg\"),(_vm.isDiv)?_c('div',{ref:\"wrapper\",staticClass:\"swiper-wrapper\"},[_vm._t(\"default\")],2):_c('ul',{ref:\"wrapper\",staticClass:\"swiper-wrapper\"},[_vm._t(\"default\")],2)],2)]),_vm._t(\"button-next\"),_vm._t(\"pagination\"),_vm._t(\"scrollbar\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<style lang=\"sass\">\n    @import swiper\n</style>\n\n<template>\n    <div class=\"v_swiper\" :id=\"'v_swiper_id_' + _uid\">\n        <slot name=\"button-prev\"></slot>\n        <div class=\"v_swiperOverflow\">\n            <div class=\"swiper-container\" ref=\"container\">\n                <slot name=\"parallax-bg\"></slot>\n                <div v-if=\"isDiv\" class=\"swiper-wrapper\" ref=\"wrapper\">\n                    <slot></slot>\n                </div>\n                <ul v-else class=\"swiper-wrapper\" ref=\"wrapper\">\n                    <slot></slot>\n                </ul>\n            </div>\n        </div>\n        <slot name=\"button-next\"></slot>\n        <slot name=\"pagination\"></slot>\n        <slot name=\"scrollbar\"></slot>\n    </div>\n</template>\n\n<script>\nimport { css } from 'gaspard'\nimport Swiper from './swiper.core'\nimport isTouch from 'nespresso-library/src/utils/isTouch'\n\nexport default {\n    name: 'swiper',\n    props: {\n        options: {\n            type: Object\n        },\n        isDiv: {\n            type: Boolean,\n            default: false\n        }\n    },\n    mounted() {\n        const mount = () => {\n            if (!this.swiper) {\n                delete this.options.nextTick\n                let options = Object.assign({}, this.options, this.refineClasses())\n                options.virtualTranslate = isTouch // For addToCart with QS on Touch Devices\n                this.swiper = new Swiper(this.$refs.container, options)\n            }\n        }\n\n        this.options.nextTick ? this.$nextTick(mount) : mount()\n    },\n    methods: {\n        refineClasses () {\n            let overwritedOptions = {}\n            if (this.options) {\n                if (this.options.pagination) {\n                    overwritedOptions.pagination = `#v_swiper_id_${this._uid} ${this.options.pagination}`\n                    if (!this.options.paginationBulletRender) {\n                        this.options.paginationBulletRender = (swiper, index, className) => {\n                            return '<div><span class=\"' + className + '\">' + (index + 1) + '</span></div>'\n                        }\n                    }\n                }\n                if (this.options.nextButton) {\n                    overwritedOptions.nextButton = `#v_swiper_id_${this._uid} ${this.options.nextButton}`\n                }\n                if (this.options.prevButton) {\n                    overwritedOptions.prevButton = `#v_swiper_id_${this._uid} ${this.options.prevButton}`\n                }\n                if (this.options.scrollbar) {\n                    overwritedOptions.scrollbar = `#v_swiper_id_${this._uid} ${this.options.scrollbar}`\n                }\n                if (this.options.virtualTranslate) {\n                    this.options.onSetTranslate = (swiper) => {\n                        css(this.$refs.wrapper, 'left', swiper.translate + 'px')\n                    }\n                }\n            }\n            return overwritedOptions\n        }\n    },\n    updated(){\n        if (this.swiper) {\n            this.swiper.update()\n        }\n    },\n    beforeDestroy() {\n        if (this.swiper) {\n            this.swiper.destroy()\n            delete this.swiper\n        }\n    }\n}\n</script>\n","import mod from \"-!../../cache-loader/dist/cjs.js??ref--12-0!../../thread-loader/dist/cjs.js!../../babel-loader/lib/index.js!../../cache-loader/dist/cjs.js??ref--0-0!../../vue-loader/lib/index.js??vue-loader-options!./Swiper.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../cache-loader/dist/cjs.js??ref--12-0!../../thread-loader/dist/cjs.js!../../babel-loader/lib/index.js!../../cache-loader/dist/cjs.js??ref--0-0!../../vue-loader/lib/index.js??vue-loader-options!./Swiper.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Swiper.vue?vue&type=template&id=6ec9b3c8&\"\nimport script from \"./Swiper.vue?vue&type=script&lang=js&\"\nexport * from \"./Swiper.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Swiper.vue?vue&type=style&index=0&id=6ec9b3c8&prod&lang=sass&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","export * from \"-!../../mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../css-loader/index.js??ref--9-oneOf-1-1!../../vue-loader/lib/loaders/stylePostLoader.js!../../postcss-loader/src/index.js??ref--9-oneOf-1-2!../../sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../style-resources-loader/lib/index.js??ref--9-oneOf-1-4!../../cache-loader/dist/cjs.js??ref--0-0!../../vue-loader/lib/index.js??vue-loader-options!./Swiper.vue?vue&type=style&index=0&id=6ec9b3c8&prod&lang=sass&\"","/**\n * Swiper 3.4.2 - Custom Build\n * Most modern mobile touch slider and framework with hardware accelerated transitions\n *\n * Included modules: effects\n *\n * http://www.idangero.us/swiper/\n *\n * Copyright 2017, Vladimir Kharlampidi\n * The iDangero.us\n * http://www.idangero.us/\n *\n * Licensed under MIT\n *\n * Released on: June 23, 2017\n */\n(function () {\n    'use strict';\n    var $;\n\n    /*===========================\n    Swiper\n    ===========================*/\n    var Swiper = function (container, params) {\n        if (!(this instanceof Swiper)) return new Swiper(container, params);\n\n\n        var defaults = {\n            direction: 'horizontal',\n            touchEventsTarget: 'container',\n            initialSlide: 0,\n            speed: 300,\n            // autoplay\n            autoplay: false,\n            autoplayDisableOnInteraction: true,\n            autoplayStopOnLast: false,\n            // To support iOS's swipe-to-go-back gesture (when being used in-app, with UIWebView).\n            iOSEdgeSwipeDetection: false,\n            iOSEdgeSwipeThreshold: 20,\n            // Free mode\n            freeMode: false,\n            freeModeMomentum: true,\n            freeModeMomentumRatio: 1,\n            freeModeMomentumBounce: true,\n            freeModeMomentumBounceRatio: 1,\n            freeModeMomentumVelocityRatio: 1,\n            freeModeSticky: false,\n            freeModeMinimumVelocity: 0.02,\n            // Autoheight\n            autoHeight: false,\n            // Set wrapper width\n            setWrapperSize: false,\n            // Virtual Translate\n            virtualTranslate: false,\n            // Effects\n            effect: 'slide', // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n            coverflow: {\n                rotate: 50,\n                stretch: 0,\n                depth: 100,\n                modifier: 1,\n                slideShadows : true\n            },\n            flip: {\n                slideShadows : true,\n                limitRotation: true\n            },\n            cube: {\n                slideShadows: true,\n                shadow: true,\n                shadowOffset: 20,\n                shadowScale: 0.94\n            },\n            fade: {\n                crossFade: false\n            },\n            // Parallax\n            parallax: false,\n            // Zoom\n            zoom: false,\n            zoomMax: 3,\n            zoomMin: 1,\n            zoomToggle: true,\n            // Scrollbar\n            scrollbar: null,\n            scrollbarHide: true,\n            scrollbarDraggable: false,\n            scrollbarSnapOnRelease: false,\n            // Keyboard Mousewheel\n            keyboardControl: false,\n            mousewheelControl: false,\n            mousewheelReleaseOnEdges: false,\n            mousewheelInvert: false,\n            mousewheelForceToAxis: false,\n            mousewheelSensitivity: 1,\n            mousewheelEventsTarged: 'container',\n            // Hash Navigation\n            hashnav: false,\n            hashnavWatchState: false,\n            // History\n            history: false,\n            // Commong Nav State\n            replaceState: false,\n            // Breakpoints\n            breakpoints: undefined,\n            // Slides grid\n            spaceBetween: 0,\n            slidesPerView: 1,\n            slidesPerColumn: 1,\n            slidesPerColumnFill: 'column',\n            slidesPerGroup: 1,\n            centeredSlides: false,\n            slidesOffsetBefore: 0, // in px\n            slidesOffsetAfter: 0, // in px\n            // Round length\n            roundLengths: false,\n            // Touches\n            touchRatio: 1,\n            touchAngle: 45,\n            simulateTouch: true,\n            shortSwipes: true,\n            longSwipes: true,\n            longSwipesRatio: 0.5,\n            longSwipesMs: 300,\n            followFinger: true,\n            onlyExternal: false,\n            threshold: 0,\n            touchMoveStopPropagation: true,\n            touchReleaseOnEdges: false,\n            // Unique Navigation Elements\n            uniqueNavElements: true,\n            // Pagination\n            pagination: null,\n            paginationElement: 'span',\n            paginationClickable: false,\n            paginationHide: false,\n            paginationBulletRender: null,\n            paginationProgressRender: null,\n            paginationFractionRender: null,\n            paginationCustomRender: null,\n            paginationType: 'bullets', // 'bullets' or 'progress' or 'fraction' or 'custom'\n            // Resistance\n            resistance: true,\n            resistanceRatio: 0.85,\n            // Next/prev buttons\n            nextButton: null,\n            prevButton: null,\n            // Progress\n            watchSlidesProgress: false,\n            watchSlidesVisibility: false,\n            // Cursor\n            grabCursor: false,\n            // Clicks\n            preventClicks: true,\n            preventClicksPropagation: true,\n            slideToClickedSlide: false,\n            // Lazy Loading\n            lazyLoading: false,\n            lazyLoadingInPrevNext: false,\n            lazyLoadingInPrevNextAmount: 1,\n            lazyLoadingOnTransitionStart: false,\n            // Images\n            preloadImages: true,\n            updateOnImagesReady: true,\n            // loop\n            loop: false,\n            loopAdditionalSlides: 0,\n            loopedSlides: null,\n            // Control\n            control: undefined,\n            controlInverse: false,\n            controlBy: 'slide', //or 'container'\n            normalizeSlideIndex: true,\n            // Swiping/no swiping\n            allowSwipeToPrev: true,\n            allowSwipeToNext: true,\n            swipeHandler: null, //'.swipe-handler',\n            noSwiping: true,\n            noSwipingClass: 'swiper-no-swiping',\n            // Passive Listeners\n            passiveListeners: true,\n            // NS\n            containerModifierClass: 'swiper-container-', // NEW\n            slideClass: 'swiper-slide',\n            slideActiveClass: 'swiper-slide-active',\n            slideDuplicateActiveClass: 'swiper-slide-duplicate-active',\n            slideVisibleClass: 'swiper-slide-visible',\n            slideDuplicateClass: 'swiper-slide-duplicate',\n            slideNextClass: 'swiper-slide-next',\n            slideDuplicateNextClass: 'swiper-slide-duplicate-next',\n            slidePrevClass: 'swiper-slide-prev',\n            slideDuplicatePrevClass: 'swiper-slide-duplicate-prev',\n            wrapperClass: 'swiper-wrapper',\n            bulletClass: 'swiper-pagination-bullet',\n            bulletActiveClass: 'swiper-pagination-bullet-active',\n            buttonDisabledClass: 'swiper-button-disabled',\n            paginationCurrentClass: 'swiper-pagination-current',\n            paginationTotalClass: 'swiper-pagination-total',\n            paginationHiddenClass: 'swiper-pagination-hidden',\n            paginationProgressbarClass: 'swiper-pagination-progressbar',\n            paginationClickableClass: 'swiper-pagination-clickable', // NEW\n            paginationModifierClass: 'swiper-pagination-', // NEW\n            lazyLoadingClass: 'swiper-lazy',\n            lazyStatusLoadingClass: 'swiper-lazy-loading',\n            lazyStatusLoadedClass: 'swiper-lazy-loaded',\n            lazyPreloaderClass: 'swiper-lazy-preloader',\n            notificationClass: 'swiper-notification',\n            preloaderClass: 'preloader',\n            zoomContainerClass: 'swiper-zoom-container',\n\n            // Observer\n            observer: false,\n            observeParents: false,\n            // Accessibility\n            a11y: false,\n            prevSlideMessage: 'Previous slide',\n            nextSlideMessage: 'Next slide',\n            firstSlideMessage: 'This is the first slide',\n            lastSlideMessage: 'This is the last slide',\n            paginationBulletMessage: 'Go to slide {{index}}',\n            // Callbacks\n            runCallbacksOnInit: true\n            /*\n            Callbacks:\n            onInit: function (swiper)\n            onDestroy: function (swiper)\n            onBeforeResize: function (swiper)\n            onAfterResize: function (swiper)\n            onClick: function (swiper, e)\n            onTap: function (swiper, e)\n            onDoubleTap: function (swiper, e)\n            onSliderMove: function (swiper, e)\n            onSlideChangeStart: function (swiper)\n            onSlideChangeEnd: function (swiper)\n            onTransitionStart: function (swiper)\n            onTransitionEnd: function (swiper)\n            onImagesReady: function (swiper)\n            onProgress: function (swiper, progress)\n            onTouchStart: function (swiper, e)\n            onTouchMove: function (swiper, e)\n            onTouchMoveOpposite: function (swiper, e)\n            onTouchEnd: function (swiper, e)\n            onReachBeginning: function (swiper)\n            onReachEnd: function (swiper)\n            onSetTransition: function (swiper, duration)\n            onSetTranslate: function (swiper, translate)\n            onAutoplayStart: function (swiper)\n            onAutoplayStop: function (swiper),\n            onLazyImageLoad: function (swiper, slide, image)\n            onLazyImageReady: function (swiper, slide, image)\n            onKeyPress: function (swiper, keyCode)\n            */\n\n        };\n        var initialVirtualTranslate = params && params.virtualTranslate;\n\n        params = params || {};\n        var originalParams = {};\n        for (var param in params) {\n            if (typeof params[param] === 'object' && params[param] !== null && !(params[param].nodeType || params[param] === window || params[param] === document || (typeof Dom7 !== 'undefined' && params[param] instanceof Dom7) || (typeof jQuery !== 'undefined' && params[param] instanceof jQuery))) {\n                originalParams[param] = {};\n                for (var deepParam in params[param]) {\n                    originalParams[param][deepParam] = params[param][deepParam];\n                }\n            }\n            else {\n                originalParams[param] = params[param];\n            }\n        }\n        for (var def in defaults) {\n            if (typeof params[def] === 'undefined') {\n                params[def] = defaults[def];\n            }\n            else if (typeof params[def] === 'object') {\n                for (var deepDef in defaults[def]) {\n                    if (typeof params[def][deepDef] === 'undefined') {\n                        params[def][deepDef] = defaults[def][deepDef];\n                    }\n                }\n            }\n        }\n\n        // Swiper\n        var s = this;\n\n        // Params\n        s.params = params;\n        s.originalParams = originalParams;\n\n        // Classname\n        s.classNames = [];\n        /*=========================\n          Dom Library and plugins\n          ===========================*/\n        if (typeof $ !== 'undefined' && typeof Dom7 !== 'undefined'){\n            $ = Dom7;\n        }\n        if (typeof $ === 'undefined') {\n            if (typeof Dom7 === 'undefined') {\n                $ = window.Dom7 || window.Zepto || window.jQuery;\n            }\n            else {\n                $ = Dom7;\n            }\n            if (!$) return;\n        }\n        // Export it to Swiper instance\n        s.$ = $;\n\n        /*=========================\n          Breakpoints\n          ===========================*/\n        s.currentBreakpoint = undefined;\n        s.getActiveBreakpoint = function () {\n            //Get breakpoint for window width\n            if (!s.params.breakpoints) return false;\n            var breakpoint = false;\n            var points = [], point;\n            for ( point in s.params.breakpoints ) {\n                if (s.params.breakpoints.hasOwnProperty(point)) {\n                    points.push(point);\n                }\n            }\n            points.sort(function (a, b) {\n                return parseInt(a, 10) > parseInt(b, 10);\n            });\n            for (var i = 0; i < points.length; i++) {\n                point = points[i];\n                if (point >= window.innerWidth && !breakpoint) {\n                    breakpoint = point;\n                }\n            }\n            return breakpoint || 'max';\n        };\n        s.setBreakpoint = function () {\n            //Set breakpoint for window width and update parameters\n            var breakpoint = s.getActiveBreakpoint();\n            if (breakpoint && s.currentBreakpoint !== breakpoint) {\n                var breakPointsParams = breakpoint in s.params.breakpoints ? s.params.breakpoints[breakpoint] : s.originalParams;\n                var needsReLoop = s.params.loop && (breakPointsParams.slidesPerView !== s.params.slidesPerView);\n                for ( var param in breakPointsParams ) {\n                    s.params[param] = breakPointsParams[param];\n                }\n                s.currentBreakpoint = breakpoint;\n                if(needsReLoop && s.destroyLoop) {\n                    s.reLoop(true);\n                }\n            }\n        };\n        // Set breakpoint on load\n        if (s.params.breakpoints) {\n            s.setBreakpoint();\n        }\n\n        /*=========================\n          Preparation - Define Container, Wrapper and Pagination\n          ===========================*/\n        s.container = $(container);\n        if (s.container.length === 0) return;\n        if (s.container.length > 1) {\n            var swipers = [];\n            s.container.each(function () {\n                var container = this;\n                swipers.push(new Swiper(this, params));\n            });\n            return swipers;\n        }\n\n        // Save instance in container HTML Element and in data\n        s.container[0].swiper = s;\n        s.container.data('swiper', s);\n\n        s.classNames.push(s.params.containerModifierClass + s.params.direction);\n\n        if (s.params.freeMode) {\n            s.classNames.push(s.params.containerModifierClass + 'free-mode');\n        }\n        if (!s.support.flexbox) {\n            s.classNames.push(s.params.containerModifierClass + 'no-flexbox');\n            s.params.slidesPerColumn = 1;\n        }\n        if (s.params.autoHeight) {\n            s.classNames.push(s.params.containerModifierClass + 'autoheight');\n        }\n        // Enable slides progress when required\n        if (s.params.parallax || s.params.watchSlidesVisibility) {\n            s.params.watchSlidesProgress = true;\n        }\n        // Max resistance when touchReleaseOnEdges\n        if (s.params.touchReleaseOnEdges) {\n            s.params.resistanceRatio = 0;\n        }\n        // Coverflow / 3D\n        if (['cube', 'coverflow', 'flip'].indexOf(s.params.effect) >= 0) {\n            if (s.support.transforms3d) {\n                s.params.watchSlidesProgress = true;\n                s.classNames.push(s.params.containerModifierClass + '3d');\n            }\n            else {\n                s.params.effect = 'slide';\n            }\n        }\n        if (s.params.effect !== 'slide') {\n            s.classNames.push(s.params.containerModifierClass + s.params.effect);\n        }\n        if (s.params.effect === 'cube') {\n            s.params.resistanceRatio = 0;\n            s.params.slidesPerView = 1;\n            s.params.slidesPerColumn = 1;\n            s.params.slidesPerGroup = 1;\n            s.params.centeredSlides = false;\n            s.params.spaceBetween = 0;\n            s.params.virtualTranslate = true;\n        }\n        if (s.params.effect === 'fade' || s.params.effect === 'flip') {\n            s.params.slidesPerView = 1;\n            s.params.slidesPerColumn = 1;\n            s.params.slidesPerGroup = 1;\n            s.params.watchSlidesProgress = true;\n            s.params.spaceBetween = 0;\n            if (typeof initialVirtualTranslate === 'undefined') {\n                s.params.virtualTranslate = true;\n            }\n        }\n\n        // Grab Cursor\n        if (s.params.grabCursor && s.support.touch) {\n            s.params.grabCursor = false;\n        }\n\n        // Wrapper\n        s.wrapper = s.container.children('.' + s.params.wrapperClass);\n\n        // Pagination\n        if (s.params.pagination) {\n            s.paginationContainer = $(s.params.pagination);\n            if (s.params.uniqueNavElements && typeof s.params.pagination === 'string' && s.paginationContainer.length > 1 && s.container.find(s.params.pagination).length === 1) {\n                s.paginationContainer = s.container.find(s.params.pagination);\n            }\n\n            if (s.params.paginationType === 'bullets' && s.params.paginationClickable) {\n                s.paginationContainer.addClass(s.params.paginationModifierClass + 'clickable');\n            }\n            else {\n                s.params.paginationClickable = false;\n            }\n            s.paginationContainer.addClass(s.params.paginationModifierClass + s.params.paginationType);\n        }\n        // Next/Prev Buttons\n        if (s.params.nextButton || s.params.prevButton) {\n            if (s.params.nextButton) {\n                s.nextButton = $(s.params.nextButton);\n                if (s.params.uniqueNavElements && typeof s.params.nextButton === 'string' && s.nextButton.length > 1 && s.container.find(s.params.nextButton).length === 1) {\n                    s.nextButton = s.container.find(s.params.nextButton);\n                }\n            }\n            if (s.params.prevButton) {\n                s.prevButton = $(s.params.prevButton);\n                if (s.params.uniqueNavElements && typeof s.params.prevButton === 'string' && s.prevButton.length > 1 && s.container.find(s.params.prevButton).length === 1) {\n                    s.prevButton = s.container.find(s.params.prevButton);\n                }\n            }\n        }\n\n        // Is Horizontal\n        s.isHorizontal = function () {\n            return s.params.direction === 'horizontal';\n        };\n        // s.isH = isH;\n\n        // RTL\n        s.rtl = s.isHorizontal() && (s.container[0].dir.toLowerCase() === 'rtl' || s.container.css('direction') === 'rtl');\n        if (s.rtl) {\n            s.classNames.push(s.params.containerModifierClass + 'rtl');\n        }\n\n        // Wrong RTL support\n        if (s.rtl) {\n            s.wrongRTL = s.wrapper.css('display') === '-webkit-box';\n        }\n\n        // Columns\n        if (s.params.slidesPerColumn > 1) {\n            s.classNames.push(s.params.containerModifierClass + 'multirow');\n        }\n\n        // Check for Android\n        if (s.device.android) {\n            s.classNames.push(s.params.containerModifierClass + 'android');\n        }\n\n        // Add classes\n        s.container.addClass(s.classNames.join(' '));\n\n        // Translate\n        s.translate = 0;\n\n        // Progress\n        s.progress = 0;\n\n        // Velocity\n        s.velocity = 0;\n\n        /*=========================\n          Locks, unlocks\n          ===========================*/\n        s.lockSwipeToNext = function () {\n            s.params.allowSwipeToNext = false;\n            if (s.params.allowSwipeToPrev === false && s.params.grabCursor) {\n                s.unsetGrabCursor();\n            }\n        };\n        s.lockSwipeToPrev = function () {\n            s.params.allowSwipeToPrev = false;\n            if (s.params.allowSwipeToNext === false && s.params.grabCursor) {\n                s.unsetGrabCursor();\n            }\n        };\n        s.lockSwipes = function () {\n            s.params.allowSwipeToNext = s.params.allowSwipeToPrev = false;\n            if (s.params.grabCursor) s.unsetGrabCursor();\n        };\n        s.unlockSwipeToNext = function () {\n            s.params.allowSwipeToNext = true;\n            if (s.params.allowSwipeToPrev === true && s.params.grabCursor) {\n                s.setGrabCursor();\n            }\n        };\n        s.unlockSwipeToPrev = function () {\n            s.params.allowSwipeToPrev = true;\n            if (s.params.allowSwipeToNext === true && s.params.grabCursor) {\n                s.setGrabCursor();\n            }\n        };\n        s.unlockSwipes = function () {\n            s.params.allowSwipeToNext = s.params.allowSwipeToPrev = true;\n            if (s.params.grabCursor) s.setGrabCursor();\n        };\n\n        /*=========================\n          Round helper\n          ===========================*/\n        function round(a) {\n            return Math.floor(a);\n        }\n        /*=========================\n          Set grab cursor\n          ===========================*/\n        s.setGrabCursor = function(moving) {\n            s.container[0].style.cursor = 'move';\n            s.container[0].style.cursor = moving ? '-webkit-grabbing' : '-webkit-grab';\n            s.container[0].style.cursor = moving ? '-moz-grabbin' : '-moz-grab';\n            s.container[0].style.cursor = moving ? 'grabbing': 'grab';\n        };\n        s.unsetGrabCursor = function () {\n            s.container[0].style.cursor = '';\n        };\n        if (s.params.grabCursor) {\n            s.setGrabCursor();\n        }\n        /*=========================\n          Update on Images Ready\n          ===========================*/\n        s.imagesToLoad = [];\n        s.imagesLoaded = 0;\n\n        s.loadImage = function (imgElement, src, srcset, sizes, checkForComplete, callback) {\n            var image;\n            function onReady () {\n                if (callback) callback();\n            }\n            if (!imgElement.complete || !checkForComplete) {\n                if (src) {\n                    image = new window.Image();\n                    image.onload = onReady;\n                    image.onerror = onReady;\n                    if (sizes) {\n                        image.sizes = sizes;\n                    }\n                    if (srcset) {\n                        image.srcset = srcset;\n                    }\n                    if (src) {\n                        image.src = src;\n                    }\n                } else {\n                    onReady();\n                }\n\n            } else {//image already loaded...\n                onReady();\n            }\n        };\n        s.preloadImages = function () {\n            s.imagesToLoad = s.container.find('img');\n            function _onReady() {\n                if (typeof s === 'undefined' || s === null || !s) return;\n                if (s.imagesLoaded !== undefined) s.imagesLoaded++;\n                if (s.imagesLoaded === s.imagesToLoad.length) {\n                    if (s.params.updateOnImagesReady) s.update();\n                    s.emit('onImagesReady', s);\n                }\n            }\n            for (var i = 0; i < s.imagesToLoad.length; i++) {\n                s.loadImage(s.imagesToLoad[i], (s.imagesToLoad[i].currentSrc || s.imagesToLoad[i].getAttribute('src')), (s.imagesToLoad[i].srcset || s.imagesToLoad[i].getAttribute('srcset')), s.imagesToLoad[i].sizes || s.imagesToLoad[i].getAttribute('sizes'), true, _onReady);\n            }\n        };\n\n        /*=========================\n          Autoplay\n          ===========================*/\n        s.autoplayTimeoutId = undefined;\n        s.autoplaying = false;\n        s.autoplayPaused = false;\n        function autoplay() {\n            var autoplayDelay = s.params.autoplay;\n            var activeSlide = s.slides.eq(s.activeIndex);\n            if (activeSlide.attr('data-swiper-autoplay')) {\n                autoplayDelay = activeSlide.attr('data-swiper-autoplay') || s.params.autoplay;\n            }\n            s.autoplayTimeoutId = setTimeout(function () {\n                if (s.params.loop) {\n                    s.fixLoop();\n                    s._slideNext();\n                    s.emit('onAutoplay', s);\n                }\n                else {\n                    if (!s.isEnd) {\n                        s._slideNext();\n                        s.emit('onAutoplay', s);\n                    }\n                    else {\n                        if (!params.autoplayStopOnLast) {\n                            s._slideTo(0);\n                            s.emit('onAutoplay', s);\n                        }\n                        else {\n                            s.stopAutoplay();\n                        }\n                    }\n                }\n            }, autoplayDelay);\n        }\n        s.startAutoplay = function () {\n            if (typeof s.autoplayTimeoutId !== 'undefined') return false;\n            if (!s.params.autoplay) return false;\n            if (s.autoplaying) return false;\n            s.autoplaying = true;\n            s.emit('onAutoplayStart', s);\n            autoplay();\n        };\n        s.stopAutoplay = function (internal) {\n            if (!s.autoplayTimeoutId) return;\n            if (s.autoplayTimeoutId) clearTimeout(s.autoplayTimeoutId);\n            s.autoplaying = false;\n            s.autoplayTimeoutId = undefined;\n            s.emit('onAutoplayStop', s);\n        };\n        s.pauseAutoplay = function (speed) {\n            if (s.autoplayPaused) return;\n            if (s.autoplayTimeoutId) clearTimeout(s.autoplayTimeoutId);\n            s.autoplayPaused = true;\n            if (speed === 0) {\n                s.autoplayPaused = false;\n                autoplay();\n            }\n            else {\n                s.wrapper.transitionEnd(function () {\n                    if (!s) return;\n                    s.autoplayPaused = false;\n                    if (!s.autoplaying) {\n                        s.stopAutoplay();\n                    }\n                    else {\n                        autoplay();\n                    }\n                });\n            }\n        };\n        /*=========================\n          Min/Max Translate\n          ===========================*/\n        s.minTranslate = function () {\n            return (-s.snapGrid[0]);\n        };\n        s.maxTranslate = function () {\n            return (-s.snapGrid[s.snapGrid.length - 1]);\n        };\n        /*=========================\n          Slider/slides sizes\n          ===========================*/\n        s.updateAutoHeight = function () {\n            var activeSlides = [];\n            var newHeight = 0;\n            var i;\n\n            // Find slides currently in view\n            if(s.params.slidesPerView !== 'auto' && s.params.slidesPerView > 1) {\n                for (i = 0; i < Math.ceil(s.params.slidesPerView); i++) {\n                    var index = s.activeIndex + i;\n                    if(index > s.slides.length) break;\n                    activeSlides.push(s.slides.eq(index)[0]);\n                }\n            } else {\n                activeSlides.push(s.slides.eq(s.activeIndex)[0]);\n            }\n\n            // Find new height from heighest slide in view\n            for (i = 0; i < activeSlides.length; i++) {\n                if (typeof activeSlides[i] !== 'undefined') {\n                    var height = activeSlides[i].offsetHeight;\n                    newHeight = height > newHeight ? height : newHeight;\n                }\n            }\n\n            // Update Height\n            if (newHeight) s.wrapper.css('height', newHeight + 'px');\n        };\n        s.updateContainerSize = function () {\n            var width, height;\n            if (typeof s.params.width !== 'undefined') {\n                width = s.params.width;\n            }\n            else {\n                width = s.container[0].clientWidth;\n            }\n            if (typeof s.params.height !== 'undefined') {\n                height = s.params.height;\n            }\n            else {\n                height = s.container[0].clientHeight;\n            }\n            if (width === 0 && s.isHorizontal() || height === 0 && !s.isHorizontal()) {\n                return;\n            }\n\n            //Subtract paddings\n            width = width - parseInt(s.container.css('padding-left'), 10) - parseInt(s.container.css('padding-right'), 10);\n            height = height - parseInt(s.container.css('padding-top'), 10) - parseInt(s.container.css('padding-bottom'), 10);\n\n            // Store values\n            s.width = width;\n            s.height = height;\n            s.size = s.isHorizontal() ? s.width : s.height;\n        };\n\n        s.updateSlidesSize = function () {\n            s.slides = s.wrapper.children('.' + s.params.slideClass);\n            s.snapGrid = [];\n            s.slidesGrid = [];\n            s.slidesSizesGrid = [];\n\n            var spaceBetween = s.params.spaceBetween,\n                slidePosition = -s.params.slidesOffsetBefore,\n                i,\n                prevSlideSize = 0,\n                index = 0;\n            if (typeof s.size === 'undefined') return;\n            if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n                spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * s.size;\n            }\n\n            s.virtualSize = -spaceBetween;\n            // reset margins\n            if (s.rtl) s.slides.css({marginLeft: '', marginTop: ''});\n            else s.slides.css({marginRight: '', marginBottom: ''});\n\n            var slidesNumberEvenToRows;\n            if (s.params.slidesPerColumn > 1) {\n                if (Math.floor(s.slides.length / s.params.slidesPerColumn) === s.slides.length / s.params.slidesPerColumn) {\n                    slidesNumberEvenToRows = s.slides.length;\n                }\n                else {\n                    slidesNumberEvenToRows = Math.ceil(s.slides.length / s.params.slidesPerColumn) * s.params.slidesPerColumn;\n                }\n                if (s.params.slidesPerView !== 'auto' && s.params.slidesPerColumnFill === 'row') {\n                    slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, s.params.slidesPerView * s.params.slidesPerColumn);\n                }\n            }\n\n            // Calc slides\n            var slideSize;\n            var slidesPerColumn = s.params.slidesPerColumn;\n            var slidesPerRow = slidesNumberEvenToRows / slidesPerColumn;\n            var numFullColumns = slidesPerRow - (s.params.slidesPerColumn * slidesPerRow - s.slides.length);\n            for (i = 0; i < s.slides.length; i++) {\n                slideSize = 0;\n                var slide = s.slides.eq(i);\n                if (s.params.slidesPerColumn > 1) {\n                    // Set slides order\n                    var newSlideOrderIndex;\n                    var column, row;\n                    if (s.params.slidesPerColumnFill === 'column') {\n                        column = Math.floor(i / slidesPerColumn);\n                        row = i - column * slidesPerColumn;\n                        if (column > numFullColumns || (column === numFullColumns && row === slidesPerColumn-1)) {\n                            if (++row >= slidesPerColumn) {\n                                row = 0;\n                                column++;\n                            }\n                        }\n                        newSlideOrderIndex = column + row * slidesNumberEvenToRows / slidesPerColumn;\n                        slide\n                            .css({\n                                '-webkit-box-ordinal-group': newSlideOrderIndex,\n                                '-moz-box-ordinal-group': newSlideOrderIndex,\n                                '-ms-flex-order': newSlideOrderIndex,\n                                '-webkit-order': newSlideOrderIndex,\n                                'order': newSlideOrderIndex\n                            });\n                    }\n                    else {\n                        row = Math.floor(i / slidesPerRow);\n                        column = i - row * slidesPerRow;\n                    }\n                    slide\n                        .css(\n                            'margin-' + (s.isHorizontal() ? 'top' : 'left'),\n                            (row !== 0 && s.params.spaceBetween) && (s.params.spaceBetween + 'px')\n                        )\n                        .attr('data-swiper-column', column)\n                        .attr('data-swiper-row', row);\n\n                }\n                if (slide.css('display') === 'none') continue;\n                if (s.params.slidesPerView === 'auto') {\n                    slideSize = s.isHorizontal() ? slide.outerWidth(true) : slide.outerHeight(true);\n                    if (s.params.roundLengths) slideSize = round(slideSize);\n                }\n                else {\n                    slideSize = (s.size - (s.params.slidesPerView - 1) * spaceBetween) / s.params.slidesPerView;\n                    if (s.params.roundLengths) slideSize = round(slideSize);\n\n                    if (s.isHorizontal()) {\n                        s.slides[i].style.width = slideSize + 'px';\n                    }\n                    else {\n                        s.slides[i].style.height = slideSize + 'px';\n                    }\n                }\n                s.slides[i].swiperSlideSize = slideSize;\n                s.slidesSizesGrid.push(slideSize);\n\n\n                if (s.params.centeredSlides) {\n                    slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\n                    if(prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - s.size / 2 - spaceBetween;\n                    if (i === 0) slidePosition = slidePosition - s.size / 2 - spaceBetween;\n                    if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n                    if ((index) % s.params.slidesPerGroup === 0) s.snapGrid.push(slidePosition);\n                    s.slidesGrid.push(slidePosition);\n                }\n                else {\n                    if ((index) % s.params.slidesPerGroup === 0) s.snapGrid.push(slidePosition);\n                    s.slidesGrid.push(slidePosition);\n                    slidePosition = slidePosition + slideSize + spaceBetween;\n                }\n\n                s.virtualSize += slideSize + spaceBetween;\n\n                prevSlideSize = slideSize;\n\n                index ++;\n            }\n            s.virtualSize = Math.max(s.virtualSize, s.size) + s.params.slidesOffsetAfter;\n            var newSlidesGrid;\n\n            if (\n                s.rtl && s.wrongRTL && (s.params.effect === 'slide' || s.params.effect === 'coverflow')) {\n                s.wrapper.css({width: s.virtualSize + s.params.spaceBetween + 'px'});\n            }\n            if (!s.support.flexbox || s.params.setWrapperSize) {\n                if (s.isHorizontal()) s.wrapper.css({width: s.virtualSize + s.params.spaceBetween + 'px'});\n                else s.wrapper.css({height: s.virtualSize + s.params.spaceBetween + 'px'});\n            }\n\n            if (s.params.slidesPerColumn > 1) {\n                s.virtualSize = (slideSize + s.params.spaceBetween) * slidesNumberEvenToRows;\n                s.virtualSize = Math.ceil(s.virtualSize / s.params.slidesPerColumn) - s.params.spaceBetween;\n                if (s.isHorizontal()) s.wrapper.css({width: s.virtualSize + s.params.spaceBetween + 'px'});\n                else s.wrapper.css({height: s.virtualSize + s.params.spaceBetween + 'px'});\n                if (s.params.centeredSlides) {\n                    newSlidesGrid = [];\n                    for (i = 0; i < s.snapGrid.length; i++) {\n                        if (s.snapGrid[i] < s.virtualSize + s.snapGrid[0]) newSlidesGrid.push(s.snapGrid[i]);\n                    }\n                    s.snapGrid = newSlidesGrid;\n                }\n            }\n\n            // Remove last grid elements depending on width\n            if (!s.params.centeredSlides) {\n                newSlidesGrid = [];\n                for (i = 0; i < s.snapGrid.length; i++) {\n                    if (s.snapGrid[i] <= s.virtualSize - s.size) {\n                        newSlidesGrid.push(s.snapGrid[i]);\n                    }\n                }\n                s.snapGrid = newSlidesGrid;\n                if (Math.floor(s.virtualSize - s.size) - Math.floor(s.snapGrid[s.snapGrid.length - 1]) > 1) {\n                    s.snapGrid.push(s.virtualSize - s.size);\n                }\n            }\n            if (s.snapGrid.length === 0) s.snapGrid = [0];\n\n            if (s.params.spaceBetween !== 0) {\n                if (s.isHorizontal()) {\n                    if (s.rtl) s.slides.css({marginLeft: spaceBetween + 'px'});\n                    else s.slides.css({marginRight: spaceBetween + 'px'});\n                }\n                else s.slides.css({marginBottom: spaceBetween + 'px'});\n            }\n            if (s.params.watchSlidesProgress) {\n                s.updateSlidesOffset();\n            }\n        };\n        s.updateSlidesOffset = function () {\n            for (var i = 0; i < s.slides.length; i++) {\n                s.slides[i].swiperSlideOffset = s.isHorizontal() ? s.slides[i].offsetLeft : s.slides[i].offsetTop;\n            }\n        };\n\n        /*=========================\n          Dynamic Slides Per View\n          ===========================*/\n        s.currentSlidesPerView = function () {\n            var spv = 1, i, j;\n            if (s.params.centeredSlides) {\n                var size = s.slides[s.activeIndex].swiperSlideSize;\n                var breakLoop;\n                for (i = s.activeIndex + 1; i < s.slides.length; i++) {\n                    if (s.slides[i] && !breakLoop) {\n                        size += s.slides[i].swiperSlideSize;\n                        spv ++;\n                        if (size > s.size) breakLoop = true;\n                    }\n                }\n                for (j = s.activeIndex - 1; j >= 0; j--) {\n                    if (s.slides[j] && !breakLoop) {\n                        size += s.slides[j].swiperSlideSize;\n                        spv ++;\n                        if (size > s.size) breakLoop = true;\n                    }\n                }\n            }\n            else {\n                for (i = s.activeIndex + 1; i < s.slides.length; i++) {\n                    if (s.slidesGrid[i] - s.slidesGrid[s.activeIndex] < s.size) {\n                        spv++;\n                    }\n                }\n            }\n            return spv;\n        };\n        /*=========================\n          Slider/slides progress\n          ===========================*/\n        s.updateSlidesProgress = function (translate) {\n            if (typeof translate === 'undefined') {\n                translate = s.translate || 0;\n            }\n            if (s.slides.length === 0) return;\n            if (typeof s.slides[0].swiperSlideOffset === 'undefined') s.updateSlidesOffset();\n\n            var offsetCenter = -translate;\n            if (s.rtl) offsetCenter = translate;\n\n            // Visible Slides\n            s.slides.removeClass(s.params.slideVisibleClass);\n            for (var i = 0; i < s.slides.length; i++) {\n                var slide = s.slides[i];\n                var slideProgress = (offsetCenter + (s.params.centeredSlides ? s.minTranslate() : 0) - slide.swiperSlideOffset) / (slide.swiperSlideSize + s.params.spaceBetween);\n                if (s.params.watchSlidesVisibility) {\n                    var slideBefore = -(offsetCenter - slide.swiperSlideOffset);\n                    var slideAfter = slideBefore + s.slidesSizesGrid[i];\n                    var isVisible =\n                        (slideBefore >= 0 && slideBefore < s.size) ||\n                        (slideAfter > 0 && slideAfter <= s.size) ||\n                        (slideBefore <= 0 && slideAfter >= s.size);\n                    if (isVisible) {\n                        s.slides.eq(i).addClass(s.params.slideVisibleClass);\n                    }\n                }\n                slide.progress = s.rtl ? -slideProgress : slideProgress;\n            }\n        };\n        s.updateProgress = function (translate) {\n            if (typeof translate === 'undefined') {\n                translate = s.translate || 0;\n            }\n            var translatesDiff = s.maxTranslate() - s.minTranslate();\n            var wasBeginning = s.isBeginning;\n            var wasEnd = s.isEnd;\n            if (translatesDiff === 0) {\n                s.progress = 0;\n                s.isBeginning = s.isEnd = true;\n            }\n            else {\n                s.progress = (translate - s.minTranslate()) / (translatesDiff);\n                s.isBeginning = s.progress <= 0;\n                s.isEnd = s.progress >= 1;\n            }\n            if (s.isBeginning && !wasBeginning) s.emit('onReachBeginning', s);\n            if (s.isEnd && !wasEnd) s.emit('onReachEnd', s);\n\n            if (s.params.watchSlidesProgress) s.updateSlidesProgress(translate);\n            s.emit('onProgress', s, s.progress);\n        };\n        s.updateActiveIndex = function () {\n            var translate = s.rtl ? s.translate : -s.translate;\n            var newActiveIndex, i, snapIndex;\n            for (i = 0; i < s.slidesGrid.length; i ++) {\n                if (typeof s.slidesGrid[i + 1] !== 'undefined') {\n                    if (translate >= s.slidesGrid[i] && translate < s.slidesGrid[i + 1] - (s.slidesGrid[i + 1] - s.slidesGrid[i]) / 2) {\n                        newActiveIndex = i;\n                    }\n                    else if (translate >= s.slidesGrid[i] && translate < s.slidesGrid[i + 1]) {\n                        newActiveIndex = i + 1;\n                    }\n                }\n                else {\n                    if (translate >= s.slidesGrid[i]) {\n                        newActiveIndex = i;\n                    }\n                }\n            }\n            // Normalize slideIndex\n            if(s.params.normalizeSlideIndex){\n                if (newActiveIndex < 0 || typeof newActiveIndex === 'undefined') newActiveIndex = 0;\n            }\n            // for (i = 0; i < s.slidesGrid.length; i++) {\n                // if (- translate >= s.slidesGrid[i]) {\n                    // newActiveIndex = i;\n                // }\n            // }\n            snapIndex = Math.floor(newActiveIndex / s.params.slidesPerGroup);\n            if (snapIndex >= s.snapGrid.length) snapIndex = s.snapGrid.length - 1;\n\n            if (newActiveIndex === s.activeIndex) {\n                return;\n            }\n            s.snapIndex = snapIndex;\n            s.previousIndex = s.activeIndex;\n            s.activeIndex = newActiveIndex;\n            s.updateClasses();\n            s.updateRealIndex();\n        };\n        s.updateRealIndex = function(){\n            s.realIndex = parseInt(s.slides.eq(s.activeIndex).attr('data-swiper-slide-index') || s.activeIndex, 10);\n        };\n\n        /*=========================\n          Classes\n          ===========================*/\n        s.updateClasses = function () {\n            s.slides.removeClass(s.params.slideActiveClass + ' ' + s.params.slideNextClass + ' ' + s.params.slidePrevClass + ' ' + s.params.slideDuplicateActiveClass + ' ' + s.params.slideDuplicateNextClass + ' ' + s.params.slideDuplicatePrevClass);\n            var activeSlide = s.slides.eq(s.activeIndex);\n            // Active classes\n            activeSlide.addClass(s.params.slideActiveClass);\n            if (params.loop) {\n                // Duplicate to all looped slides\n                if (activeSlide.hasClass(s.params.slideDuplicateClass)) {\n                    s.wrapper.children('.' + s.params.slideClass + ':not(.' + s.params.slideDuplicateClass + ')[data-swiper-slide-index=\"' + s.realIndex + '\"]').addClass(s.params.slideDuplicateActiveClass);\n                }\n                else {\n                    s.wrapper.children('.' + s.params.slideClass + '.' + s.params.slideDuplicateClass + '[data-swiper-slide-index=\"' + s.realIndex + '\"]').addClass(s.params.slideDuplicateActiveClass);\n                }\n            }\n            // Next Slide\n            var nextSlide = activeSlide.next('.' + s.params.slideClass).addClass(s.params.slideNextClass);\n            if (s.params.loop && nextSlide.length === 0) {\n                nextSlide = s.slides.eq(0);\n                nextSlide.addClass(s.params.slideNextClass);\n            }\n            // Prev Slide\n            var prevSlide = activeSlide.prev('.' + s.params.slideClass).addClass(s.params.slidePrevClass);\n            if (s.params.loop && prevSlide.length === 0) {\n                prevSlide = s.slides.eq(-1);\n                prevSlide.addClass(s.params.slidePrevClass);\n            }\n            if (params.loop) {\n                // Duplicate to all looped slides\n                if (nextSlide.hasClass(s.params.slideDuplicateClass)) {\n                    s.wrapper.children('.' + s.params.slideClass + ':not(.' + s.params.slideDuplicateClass + ')[data-swiper-slide-index=\"' + nextSlide.attr('data-swiper-slide-index') + '\"]').addClass(s.params.slideDuplicateNextClass);\n                }\n                else {\n                    s.wrapper.children('.' + s.params.slideClass + '.' + s.params.slideDuplicateClass + '[data-swiper-slide-index=\"' + nextSlide.attr('data-swiper-slide-index') + '\"]').addClass(s.params.slideDuplicateNextClass);\n                }\n                if (prevSlide.hasClass(s.params.slideDuplicateClass)) {\n                    s.wrapper.children('.' + s.params.slideClass + ':not(.' + s.params.slideDuplicateClass + ')[data-swiper-slide-index=\"' + prevSlide.attr('data-swiper-slide-index') + '\"]').addClass(s.params.slideDuplicatePrevClass);\n                }\n                else {\n                    s.wrapper.children('.' + s.params.slideClass + '.' + s.params.slideDuplicateClass + '[data-swiper-slide-index=\"' + prevSlide.attr('data-swiper-slide-index') + '\"]').addClass(s.params.slideDuplicatePrevClass);\n                }\n            }\n\n            // Pagination\n            if (s.paginationContainer && s.paginationContainer.length > 0) {\n                // Current/Total\n                var current,\n                    total = s.params.loop ? Math.ceil((s.slides.length - s.loopedSlides * 2) / s.params.slidesPerGroup) : s.snapGrid.length;\n                if (s.params.loop) {\n                    current = Math.ceil((s.activeIndex - s.loopedSlides)/s.params.slidesPerGroup);\n                    if (current > s.slides.length - 1 - s.loopedSlides * 2) {\n                        current = current - (s.slides.length - s.loopedSlides * 2);\n                    }\n                    if (current > total - 1) current = current - total;\n                    if (current < 0 && s.params.paginationType !== 'bullets') current = total + current;\n                }\n                else {\n                    if (typeof s.snapIndex !== 'undefined') {\n                        current = s.snapIndex;\n                    }\n                    else {\n                        current = s.activeIndex || 0;\n                    }\n                }\n                // Types\n                if (s.params.paginationType === 'bullets' && s.bullets && s.bullets.length > 0) {\n                    s.bullets.removeClass(s.params.bulletActiveClass);\n                    if (s.paginationContainer.length > 1) {\n                        s.bullets.each(function () {\n                            if ($(this).index() === current) $(this).addClass(s.params.bulletActiveClass);\n                        });\n                    }\n                    else {\n                        s.bullets.eq(current).addClass(s.params.bulletActiveClass);\n                    }\n                }\n                if (s.params.paginationType === 'fraction') {\n                    s.paginationContainer.find('.' + s.params.paginationCurrentClass).text(current + 1);\n                    s.paginationContainer.find('.' + s.params.paginationTotalClass).text(total);\n                }\n                if (s.params.paginationType === 'progress') {\n                    var scale = (current + 1) / total,\n                        scaleX = scale,\n                        scaleY = 1;\n                    if (!s.isHorizontal()) {\n                        scaleY = scale;\n                        scaleX = 1;\n                    }\n                    s.paginationContainer.find('.' + s.params.paginationProgressbarClass).transform('translate3d(0,0,0) scaleX(' + scaleX + ') scaleY(' + scaleY + ')').transition(s.params.speed);\n                }\n                if (s.params.paginationType === 'custom' && s.params.paginationCustomRender) {\n                    s.paginationContainer.html(s.params.paginationCustomRender(s, current + 1, total));\n                    s.emit('onPaginationRendered', s, s.paginationContainer[0]);\n                }\n            }\n\n            // Next/active buttons\n            if (!s.params.loop) {\n                if (s.params.prevButton && s.prevButton && s.prevButton.length > 0) {\n                    if (s.isBeginning) {\n                        s.prevButton.addClass(s.params.buttonDisabledClass);\n                        if (s.params.a11y && s.a11y) s.a11y.disable(s.prevButton);\n                    }\n                    else {\n                        s.prevButton.removeClass(s.params.buttonDisabledClass);\n                        if (s.params.a11y && s.a11y) s.a11y.enable(s.prevButton);\n                    }\n                }\n                if (s.params.nextButton && s.nextButton && s.nextButton.length > 0) {\n                    if (s.isEnd) {\n                        s.nextButton.addClass(s.params.buttonDisabledClass);\n                        if (s.params.a11y && s.a11y) s.a11y.disable(s.nextButton);\n                    }\n                    else {\n                        s.nextButton.removeClass(s.params.buttonDisabledClass);\n                        if (s.params.a11y && s.a11y) s.a11y.enable(s.nextButton);\n                    }\n                }\n            }\n        };\n\n        /*=========================\n          Pagination\n          ===========================*/\n        s.updatePagination = function () {\n            if (!s.params.pagination) return;\n            if (s.paginationContainer && s.paginationContainer.length > 0) {\n                var paginationHTML = '';\n                if (s.params.paginationType === 'bullets') {\n                    var numberOfBullets = s.params.loop ? Math.ceil((s.slides.length - s.loopedSlides * 2) / s.params.slidesPerGroup) : s.snapGrid.length;\n                    for (var i = 0; i < numberOfBullets; i++) {\n                        if (s.params.paginationBulletRender) {\n                            paginationHTML += s.params.paginationBulletRender(s, i, s.params.bulletClass);\n                        }\n                        else {\n                            paginationHTML += '<' + s.params.paginationElement+' class=\"' + s.params.bulletClass + '\"></' + s.params.paginationElement + '>';\n                        }\n                    }\n                    s.paginationContainer.html(paginationHTML);\n                    s.bullets = s.paginationContainer.find('.' + s.params.bulletClass);\n                    if (s.params.paginationClickable && s.params.a11y && s.a11y) {\n                        s.a11y.initPagination();\n                    }\n                }\n                if (s.params.paginationType === 'fraction') {\n                    if (s.params.paginationFractionRender) {\n                        paginationHTML = s.params.paginationFractionRender(s, s.params.paginationCurrentClass, s.params.paginationTotalClass);\n                    }\n                    else {\n                        paginationHTML =\n                            '<span class=\"' + s.params.paginationCurrentClass + '\"></span>' +\n                            ' / ' +\n                            '<span class=\"' + s.params.paginationTotalClass+'\"></span>';\n                    }\n                    s.paginationContainer.html(paginationHTML);\n                }\n                if (s.params.paginationType === 'progress') {\n                    if (s.params.paginationProgressRender) {\n                        paginationHTML = s.params.paginationProgressRender(s, s.params.paginationProgressbarClass);\n                    }\n                    else {\n                        paginationHTML = '<span class=\"' + s.params.paginationProgressbarClass + '\"></span>';\n                    }\n                    s.paginationContainer.html(paginationHTML);\n                }\n                if (s.params.paginationType !== 'custom') {\n                    s.emit('onPaginationRendered', s, s.paginationContainer[0]);\n                }\n            }\n        };\n        /*=========================\n          Common update method\n          ===========================*/\n        s.update = function (updateTranslate) {\n            if (!s) return;\n            s.updateContainerSize();\n            s.updateSlidesSize();\n            s.updateProgress();\n            s.updatePagination();\n            s.updateClasses();\n            if (s.params.scrollbar && s.scrollbar) {\n                s.scrollbar.set();\n            }\n            var newTranslate;\n            function forceSetTranslate() {\n                var translate = s.rtl ? -s.translate : s.translate;\n                newTranslate = Math.min(Math.max(s.translate, s.maxTranslate()), s.minTranslate());\n                s.setWrapperTranslate(newTranslate);\n                s.updateActiveIndex();\n                s.updateClasses();\n            }\n            if (updateTranslate) {\n                var translated;\n                if (s.controller && s.controller.spline) {\n                    s.controller.spline = undefined;\n                }\n                if (s.params.freeMode) {\n                    forceSetTranslate();\n                    if (s.params.autoHeight) {\n                        s.updateAutoHeight();\n                    }\n                }\n                else {\n                    if ((s.params.slidesPerView === 'auto' || s.params.slidesPerView > 1) && s.isEnd && !s.params.centeredSlides) {\n                        translated = s.slideTo(s.slides.length - 1, 0, false, true);\n                    }\n                    else {\n                        translated = s.slideTo(s.activeIndex, 0, false, true);\n                    }\n                    if (!translated) {\n                        forceSetTranslate();\n                    }\n                }\n            }\n            else if (s.params.autoHeight) {\n                s.updateAutoHeight();\n            }\n        };\n\n        /*=========================\n          Resize Handler\n          ===========================*/\n        s.onResize = function (forceUpdatePagination) {\n            if (s.params.onBeforeResize) s.params.onBeforeResize(s);\n            //Breakpoints\n            if (s.params.breakpoints) {\n                s.setBreakpoint();\n            }\n\n            // Disable locks on resize\n            var allowSwipeToPrev = s.params.allowSwipeToPrev;\n            var allowSwipeToNext = s.params.allowSwipeToNext;\n            s.params.allowSwipeToPrev = s.params.allowSwipeToNext = true;\n\n            s.updateContainerSize();\n            s.updateSlidesSize();\n            if (s.params.slidesPerView === 'auto' || s.params.freeMode || forceUpdatePagination) s.updatePagination();\n            if (s.params.scrollbar && s.scrollbar) {\n                s.scrollbar.set();\n            }\n            if (s.controller && s.controller.spline) {\n                s.controller.spline = undefined;\n            }\n            var slideChangedBySlideTo = false;\n            if (s.params.freeMode) {\n                var newTranslate = Math.min(Math.max(s.translate, s.maxTranslate()), s.minTranslate());\n                s.setWrapperTranslate(newTranslate);\n                s.updateActiveIndex();\n                s.updateClasses();\n\n                if (s.params.autoHeight) {\n                    s.updateAutoHeight();\n                }\n            }\n            else {\n                s.updateClasses();\n                if ((s.params.slidesPerView === 'auto' || s.params.slidesPerView > 1) && s.isEnd && !s.params.centeredSlides) {\n                    slideChangedBySlideTo = s.slideTo(s.slides.length - 1, 0, false, true);\n                }\n                else {\n                    slideChangedBySlideTo = s.slideTo(s.activeIndex, 0, false, true);\n                }\n            }\n            if (s.params.lazyLoading && !slideChangedBySlideTo && s.lazy) {\n                s.lazy.load();\n            }\n            // Return locks after resize\n            s.params.allowSwipeToPrev = allowSwipeToPrev;\n            s.params.allowSwipeToNext = allowSwipeToNext;\n            if (s.params.onAfterResize) s.params.onAfterResize(s);\n        };\n\n        /*=========================\n          Events\n          ===========================*/\n\n        //Define Touch Events\n        s.touchEventsDesktop = {start: 'mousedown', move: 'mousemove', end: 'mouseup'};\n        if (window.navigator.pointerEnabled) s.touchEventsDesktop = {start: 'pointerdown', move: 'pointermove', end: 'pointerup'};\n        else if (window.navigator.msPointerEnabled) s.touchEventsDesktop = {start: 'MSPointerDown', move: 'MSPointerMove', end: 'MSPointerUp'};\n        s.touchEvents = {\n            start : s.support.touch || !s.params.simulateTouch  ? 'touchstart' : s.touchEventsDesktop.start,\n            move : s.support.touch || !s.params.simulateTouch ? 'touchmove' : s.touchEventsDesktop.move,\n            end : s.support.touch || !s.params.simulateTouch ? 'touchend' : s.touchEventsDesktop.end\n        };\n\n\n        // WP8 Touch Events Fix\n        if (window.navigator.pointerEnabled || window.navigator.msPointerEnabled) {\n            (s.params.touchEventsTarget === 'container' ? s.container : s.wrapper).addClass('swiper-wp8-' + s.params.direction);\n        }\n\n        // Attach/detach events\n        s.initEvents = function (detach) {\n            var actionDom = detach ? 'off' : 'on';\n            var action = detach ? 'removeEventListener' : 'addEventListener';\n            var touchEventsTarget = s.params.touchEventsTarget === 'container' ? s.container[0] : s.wrapper[0];\n            var target = s.support.touch ? touchEventsTarget : document;\n\n            var moveCapture = s.params.nested ? true : false;\n\n            //Touch Events\n            if (s.browser.ie) {\n                touchEventsTarget[action](s.touchEvents.start, s.onTouchStart, false);\n                target[action](s.touchEvents.move, s.onTouchMove, moveCapture);\n                target[action](s.touchEvents.end, s.onTouchEnd, false);\n            }\n            else {\n                if (s.support.touch) {\n                    var passiveListener = s.touchEvents.start === 'touchstart' && s.support.passiveListener && s.params.passiveListeners ? {passive: true, capture: false} : false;\n                    touchEventsTarget[action](s.touchEvents.start, s.onTouchStart, passiveListener);\n                    touchEventsTarget[action](s.touchEvents.move, s.onTouchMove, moveCapture);\n                    touchEventsTarget[action](s.touchEvents.end, s.onTouchEnd, passiveListener);\n                }\n                if ((params.simulateTouch && !s.device.ios && !s.device.android) || (params.simulateTouch && !s.support.touch && s.device.ios)) {\n                    touchEventsTarget[action]('mousedown', s.onTouchStart, false);\n                    document[action]('mousemove', s.onTouchMove, moveCapture);\n                    document[action]('mouseup', s.onTouchEnd, false);\n                }\n            }\n            window[action]('resize', s.onResize);\n\n            // Next, Prev, Index\n            if (s.params.nextButton && s.nextButton && s.nextButton.length > 0) {\n                s.nextButton[actionDom]('click', s.onClickNext);\n                if (s.params.a11y && s.a11y) s.nextButton[actionDom]('keydown', s.a11y.onEnterKey);\n            }\n            if (s.params.prevButton && s.prevButton && s.prevButton.length > 0) {\n                s.prevButton[actionDom]('click', s.onClickPrev);\n                if (s.params.a11y && s.a11y) s.prevButton[actionDom]('keydown', s.a11y.onEnterKey);\n            }\n            if (s.params.pagination && s.params.paginationClickable) {\n                s.paginationContainer[actionDom]('click', '.' + s.params.bulletClass, s.onClickIndex);\n                if (s.params.a11y && s.a11y) s.paginationContainer[actionDom]('keydown', '.' + s.params.bulletClass, s.a11y.onEnterKey);\n            }\n\n            // Prevent Links Clicks\n            if (s.params.preventClicks || s.params.preventClicksPropagation) touchEventsTarget[action]('click', s.preventClicks, true);\n        };\n        s.attachEvents = function () {\n            s.initEvents();\n        };\n        s.detachEvents = function () {\n            s.initEvents(true);\n        };\n\n        /*=========================\n          Handle Clicks\n          ===========================*/\n        // Prevent Clicks\n        s.allowClick = true;\n        s.preventClicks = function (e) {\n            if (!s.allowClick) {\n                if (s.params.preventClicks) e.preventDefault();\n                if (s.params.preventClicksPropagation && s.animating) {\n                    e.stopPropagation();\n                    e.stopImmediatePropagation();\n                }\n            }\n        };\n        // Clicks\n        s.onClickNext = function (e) {\n            e.preventDefault();\n            if (s.isEnd && !s.params.loop) return;\n            s.slideNext();\n        };\n        s.onClickPrev = function (e) {\n            e.preventDefault();\n            if (s.isBeginning && !s.params.loop) return;\n            s.slidePrev();\n        };\n        s.onClickIndex = function (e) {\n            e.preventDefault();\n            var index = $(this).index() * s.params.slidesPerGroup;\n            if (s.params.loop) index = index + s.loopedSlides;\n            s.slideTo(index);\n        };\n\n        /*=========================\n          Handle Touches\n          ===========================*/\n        function findElementInEvent(e, selector) {\n            var el = $(e.target);\n            if (!el.is(selector)) {\n                if (typeof selector === 'string') {\n                    el = el.parents(selector);\n                }\n                else if (selector.nodeType) {\n                    var found;\n                    el.parents().each(function (index, _el) {\n                        if (_el === selector) found = selector;\n                    });\n                    if (!found) return undefined;\n                    else return selector;\n                }\n            }\n            if (el.length === 0) {\n                return undefined;\n            }\n            return el[0];\n        }\n        s.updateClickedSlide = function (e) {\n            var slide = findElementInEvent(e, '.' + s.params.slideClass);\n            var slideFound = false;\n            if (slide) {\n                for (var i = 0; i < s.slides.length; i++) {\n                    if (s.slides[i] === slide) slideFound = true;\n                }\n            }\n\n            if (slide && slideFound) {\n                s.clickedSlide = slide;\n                s.clickedIndex = $(slide).index();\n            }\n            else {\n                s.clickedSlide = undefined;\n                s.clickedIndex = undefined;\n                return;\n            }\n            if (s.params.slideToClickedSlide && s.clickedIndex !== undefined && s.clickedIndex !== s.activeIndex) {\n                var slideToIndex = s.clickedIndex,\n                    realIndex,\n                    duplicatedSlides,\n                    slidesPerView = s.params.slidesPerView === 'auto' ? s.currentSlidesPerView() : s.params.slidesPerView;\n                if (s.params.loop) {\n                    if (s.animating) return;\n                    realIndex = parseInt($(s.clickedSlide).attr('data-swiper-slide-index'), 10);\n                    if (s.params.centeredSlides) {\n                        if ((slideToIndex < s.loopedSlides - slidesPerView/2) || (slideToIndex > s.slides.length - s.loopedSlides + slidesPerView/2)) {\n                            s.fixLoop();\n                            slideToIndex = s.wrapper.children('.' + s.params.slideClass + '[data-swiper-slide-index=\"' + realIndex + '\"]:not(.' + s.params.slideDuplicateClass + ')').eq(0).index();\n                            setTimeout(function () {\n                                s.slideTo(slideToIndex);\n                            }, 0);\n                        }\n                        else {\n                            s.slideTo(slideToIndex);\n                        }\n                    }\n                    else {\n                        if (slideToIndex > s.slides.length - slidesPerView) {\n                            s.fixLoop();\n                            slideToIndex = s.wrapper.children('.' + s.params.slideClass + '[data-swiper-slide-index=\"' + realIndex + '\"]:not(.' + s.params.slideDuplicateClass + ')').eq(0).index();\n                            setTimeout(function () {\n                                s.slideTo(slideToIndex);\n                            }, 0);\n                        }\n                        else {\n                            s.slideTo(slideToIndex);\n                        }\n                    }\n                }\n                else {\n                    s.slideTo(slideToIndex);\n                }\n            }\n        };\n\n        var isTouched,\n            isMoved,\n            allowTouchCallbacks,\n            touchStartTime,\n            isScrolling,\n            currentTranslate,\n            startTranslate,\n            allowThresholdMove,\n            // Form elements to match\n            formElements = 'input, select, textarea, button, video',\n            // Last click time\n            lastClickTime = Date.now(), clickTimeout,\n            //Velocities\n            velocities = [],\n            allowMomentumBounce;\n\n        // Animating Flag\n        s.animating = false;\n\n        // Touches information\n        s.touches = {\n            startX: 0,\n            startY: 0,\n            currentX: 0,\n            currentY: 0,\n            diff: 0\n        };\n\n        // Touch handlers\n        var isTouchEvent, startMoving;\n        s.onTouchStart = function (e) {\n            if (e.originalEvent) e = e.originalEvent;\n            isTouchEvent = e.type === 'touchstart';\n            if (!isTouchEvent && 'which' in e && e.which === 3) return;\n            if (s.params.noSwiping && findElementInEvent(e, '.' + s.params.noSwipingClass)) {\n                s.allowClick = true;\n                return;\n            }\n            if (s.params.swipeHandler) {\n                if (!findElementInEvent(e, s.params.swipeHandler)) return;\n            }\n\n            var startX = s.touches.currentX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n            var startY = s.touches.currentY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n\n            // Do NOT start if iOS edge swipe is detected. Otherwise iOS app (UIWebView) cannot swipe-to-go-back anymore\n            if(s.device.ios && s.params.iOSEdgeSwipeDetection && startX <= s.params.iOSEdgeSwipeThreshold) {\n                return;\n            }\n\n            isTouched = true;\n            isMoved = false;\n            allowTouchCallbacks = true;\n            isScrolling = undefined;\n            startMoving = undefined;\n            s.touches.startX = startX;\n            s.touches.startY = startY;\n            touchStartTime = Date.now();\n            s.allowClick = true;\n            s.updateContainerSize();\n            s.swipeDirection = undefined;\n            if (s.params.threshold > 0) allowThresholdMove = false;\n            if (e.type !== 'touchstart') {\n                var preventDefault = true;\n                if ($(e.target).is(formElements)) preventDefault = false;\n                if (document.activeElement && $(document.activeElement).is(formElements)) {\n                    document.activeElement.blur();\n                }\n                if (preventDefault) {\n                    e.preventDefault();\n                }\n            }\n            s.emit('onTouchStart', s, e);\n        };\n\n        s.onTouchMove = function (e) {\n            if (e.originalEvent) e = e.originalEvent;\n            if (isTouchEvent && e.type === 'mousemove') return;\n            if (e.preventedByNestedSwiper) {\n                s.touches.startX = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;\n                s.touches.startY = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;\n                return;\n            }\n            if (s.params.onlyExternal) {\n                // isMoved = true;\n                s.allowClick = false;\n                if (isTouched) {\n                    s.touches.startX = s.touches.currentX = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;\n                    s.touches.startY = s.touches.currentY = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;\n                    touchStartTime = Date.now();\n                }\n                return;\n            }\n            if (isTouchEvent && s.params.touchReleaseOnEdges && !s.params.loop) {\n                if (!s.isHorizontal()) {\n                    // Vertical\n                    if (\n                        (s.touches.currentY < s.touches.startY && s.translate <= s.maxTranslate()) ||\n                        (s.touches.currentY > s.touches.startY && s.translate >= s.minTranslate())\n                        ) {\n                        return;\n                    }\n                }\n                else {\n                    if (\n                        (s.touches.currentX < s.touches.startX && s.translate <= s.maxTranslate()) ||\n                        (s.touches.currentX > s.touches.startX && s.translate >= s.minTranslate())\n                        ) {\n                        return;\n                    }\n                }\n            }\n            if (isTouchEvent && document.activeElement) {\n                if (e.target === document.activeElement && $(e.target).is(formElements)) {\n                    isMoved = true;\n                    s.allowClick = false;\n                    return;\n                }\n            }\n            if (allowTouchCallbacks) {\n                s.emit('onTouchMove', s, e);\n            }\n            if (e.targetTouches && e.targetTouches.length > 1) return;\n\n            s.touches.currentX = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;\n            s.touches.currentY = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;\n\n            if (typeof isScrolling === 'undefined') {\n                var touchAngle;\n                if (s.isHorizontal() && s.touches.currentY === s.touches.startY || !s.isHorizontal() && s.touches.currentX === s.touches.startX) {\n                    isScrolling = false;\n                }\n                else {\n                    touchAngle = Math.atan2(Math.abs(s.touches.currentY - s.touches.startY), Math.abs(s.touches.currentX - s.touches.startX)) * 180 / Math.PI;\n                    isScrolling = s.isHorizontal() ? touchAngle > s.params.touchAngle : (90 - touchAngle > s.params.touchAngle);\n                }\n            }\n            if (isScrolling) {\n                s.emit('onTouchMoveOpposite', s, e);\n            }\n            if (typeof startMoving === 'undefined') {\n                if (s.touches.currentX !== s.touches.startX || s.touches.currentY !== s.touches.startY) {\n                    startMoving = true;\n                }\n            }\n            if (!isTouched) return;\n            if (isScrolling)  {\n                isTouched = false;\n                return;\n            }\n            if (!startMoving) {\n                return;\n            }\n            s.allowClick = false;\n            s.emit('onSliderMove', s, e);\n            e.preventDefault();\n            if (s.params.touchMoveStopPropagation && !s.params.nested) {\n                e.stopPropagation();\n            }\n\n            if (!isMoved) {\n                if (params.loop) {\n                    s.fixLoop();\n                }\n                startTranslate = s.getWrapperTranslate();\n                s.setWrapperTransition(0);\n                if (s.animating) {\n                    s.wrapper.trigger('webkitTransitionEnd transitionend oTransitionEnd MSTransitionEnd msTransitionEnd');\n                }\n                if (s.params.autoplay && s.autoplaying) {\n                    if (s.params.autoplayDisableOnInteraction) {\n                        s.stopAutoplay();\n                    }\n                    else {\n                        s.pauseAutoplay();\n                    }\n                }\n                allowMomentumBounce = false;\n                //Grab Cursor\n                if (s.params.grabCursor && (s.params.allowSwipeToNext === true || s.params.allowSwipeToPrev === true)) {\n                    s.setGrabCursor(true);\n                }\n            }\n            isMoved = true;\n\n            var diff = s.touches.diff = s.isHorizontal() ? s.touches.currentX - s.touches.startX : s.touches.currentY - s.touches.startY;\n\n            diff = diff * s.params.touchRatio;\n            if (s.rtl) diff = -diff;\n\n            s.swipeDirection = diff > 0 ? 'prev' : 'next';\n            currentTranslate = diff + startTranslate;\n\n            var disableParentSwiper = true;\n            if ((diff > 0 && currentTranslate > s.minTranslate())) {\n                disableParentSwiper = false;\n                if (s.params.resistance) currentTranslate = s.minTranslate() - 1 + Math.pow(-s.minTranslate() + startTranslate + diff, s.params.resistanceRatio);\n            }\n            else if (diff < 0 && currentTranslate < s.maxTranslate()) {\n                disableParentSwiper = false;\n                if (s.params.resistance) currentTranslate = s.maxTranslate() + 1 - Math.pow(s.maxTranslate() - startTranslate - diff, s.params.resistanceRatio);\n            }\n\n            if (disableParentSwiper) {\n                e.preventedByNestedSwiper = true;\n            }\n\n            // Directions locks\n            if (!s.params.allowSwipeToNext && s.swipeDirection === 'next' && currentTranslate < startTranslate) {\n                currentTranslate = startTranslate;\n            }\n            if (!s.params.allowSwipeToPrev && s.swipeDirection === 'prev' && currentTranslate > startTranslate) {\n                currentTranslate = startTranslate;\n            }\n\n\n            // Threshold\n            if (s.params.threshold > 0) {\n                if (Math.abs(diff) > s.params.threshold || allowThresholdMove) {\n                    if (!allowThresholdMove) {\n                        allowThresholdMove = true;\n                        s.touches.startX = s.touches.currentX;\n                        s.touches.startY = s.touches.currentY;\n                        currentTranslate = startTranslate;\n                        s.touches.diff = s.isHorizontal() ? s.touches.currentX - s.touches.startX : s.touches.currentY - s.touches.startY;\n                        return;\n                    }\n                }\n                else {\n                    currentTranslate = startTranslate;\n                    return;\n                }\n            }\n\n            if (!s.params.followFinger) return;\n\n            // Update active index in free mode\n            if (s.params.freeMode || s.params.watchSlidesProgress) {\n                s.updateActiveIndex();\n            }\n            if (s.params.freeMode) {\n                //Velocity\n                if (velocities.length === 0) {\n                    velocities.push({\n                        position: s.touches[s.isHorizontal() ? 'startX' : 'startY'],\n                        time: touchStartTime\n                    });\n                }\n                velocities.push({\n                    position: s.touches[s.isHorizontal() ? 'currentX' : 'currentY'],\n                    time: (new window.Date()).getTime()\n                });\n            }\n            // Update progress\n            s.updateProgress(currentTranslate);\n            // Update translate\n            s.setWrapperTranslate(currentTranslate);\n        };\n        s.onTouchEnd = function (e) {\n            if (e.originalEvent) e = e.originalEvent;\n            if (allowTouchCallbacks) {\n                s.emit('onTouchEnd', s, e);\n            }\n            allowTouchCallbacks = false;\n            if (!isTouched) return;\n            //Return Grab Cursor\n            if (s.params.grabCursor && isMoved && isTouched  && (s.params.allowSwipeToNext === true || s.params.allowSwipeToPrev === true)) {\n                s.setGrabCursor(false);\n            }\n\n            // Time diff\n            var touchEndTime = Date.now();\n            var timeDiff = touchEndTime - touchStartTime;\n\n            // Tap, doubleTap, Click\n            if (s.allowClick) {\n                s.updateClickedSlide(e);\n                s.emit('onTap', s, e);\n                if (timeDiff < 300 && (touchEndTime - lastClickTime) > 300) {\n                    if (clickTimeout) clearTimeout(clickTimeout);\n                    clickTimeout = setTimeout(function () {\n                        if (!s) return;\n                        if (s.params.paginationHide && s.paginationContainer.length > 0 && !$(e.target).hasClass(s.params.bulletClass)) {\n                            s.paginationContainer.toggleClass(s.params.paginationHiddenClass);\n                        }\n                        s.emit('onClick', s, e);\n                    }, 300);\n\n                }\n                if (timeDiff < 300 && (touchEndTime - lastClickTime) < 300) {\n                    if (clickTimeout) clearTimeout(clickTimeout);\n                    s.emit('onDoubleTap', s, e);\n                }\n            }\n\n            lastClickTime = Date.now();\n            setTimeout(function () {\n                if (s) s.allowClick = true;\n            }, 0);\n\n            if (!isTouched || !isMoved || !s.swipeDirection || s.touches.diff === 0 || currentTranslate === startTranslate) {\n                isTouched = isMoved = false;\n                return;\n            }\n            isTouched = isMoved = false;\n\n            var currentPos;\n            if (s.params.followFinger) {\n                currentPos = s.rtl ? s.translate : -s.translate;\n            }\n            else {\n                currentPos = -currentTranslate;\n            }\n            if (s.params.freeMode) {\n                if (currentPos < -s.minTranslate()) {\n                    s.slideTo(s.activeIndex);\n                    return;\n                }\n                else if (currentPos > -s.maxTranslate()) {\n                    if (s.slides.length < s.snapGrid.length) {\n                        s.slideTo(s.snapGrid.length - 1);\n                    }\n                    else {\n                        s.slideTo(s.slides.length - 1);\n                    }\n                    return;\n                }\n\n                if (s.params.freeModeMomentum) {\n                    if (velocities.length > 1) {\n                        var lastMoveEvent = velocities.pop(), velocityEvent = velocities.pop();\n\n                        var distance = lastMoveEvent.position - velocityEvent.position;\n                        var time = lastMoveEvent.time - velocityEvent.time;\n                        s.velocity = distance / time;\n                        s.velocity = s.velocity / 2;\n                        if (Math.abs(s.velocity) < s.params.freeModeMinimumVelocity) {\n                            s.velocity = 0;\n                        }\n                        // this implies that the user stopped moving a finger then released.\n                        // There would be no events with distance zero, so the last event is stale.\n                        if (time > 150 || (new window.Date().getTime() - lastMoveEvent.time) > 300) {\n                            s.velocity = 0;\n                        }\n                    } else {\n                        s.velocity = 0;\n                    }\n                    s.velocity = s.velocity * s.params.freeModeMomentumVelocityRatio;\n\n                    velocities.length = 0;\n                    var momentumDuration = 1000 * s.params.freeModeMomentumRatio;\n                    var momentumDistance = s.velocity * momentumDuration;\n\n                    var newPosition = s.translate + momentumDistance;\n                    if (s.rtl) newPosition = - newPosition;\n                    var doBounce = false;\n                    var afterBouncePosition;\n                    var bounceAmount = Math.abs(s.velocity) * 20 * s.params.freeModeMomentumBounceRatio;\n                    if (newPosition < s.maxTranslate()) {\n                        if (s.params.freeModeMomentumBounce) {\n                            if (newPosition + s.maxTranslate() < -bounceAmount) {\n                                newPosition = s.maxTranslate() - bounceAmount;\n                            }\n                            afterBouncePosition = s.maxTranslate();\n                            doBounce = true;\n                            allowMomentumBounce = true;\n                        }\n                        else {\n                            newPosition = s.maxTranslate();\n                        }\n                    }\n                    else if (newPosition > s.minTranslate()) {\n                        if (s.params.freeModeMomentumBounce) {\n                            if (newPosition - s.minTranslate() > bounceAmount) {\n                                newPosition = s.minTranslate() + bounceAmount;\n                            }\n                            afterBouncePosition = s.minTranslate();\n                            doBounce = true;\n                            allowMomentumBounce = true;\n                        }\n                        else {\n                            newPosition = s.minTranslate();\n                        }\n                    }\n                    else if (s.params.freeModeSticky) {\n                        var j = 0,\n                            nextSlide;\n                        for (j = 0; j < s.snapGrid.length; j += 1) {\n                            if (s.snapGrid[j] > -newPosition) {\n                                nextSlide = j;\n                                break;\n                            }\n\n                        }\n                        if (Math.abs(s.snapGrid[nextSlide] - newPosition) < Math.abs(s.snapGrid[nextSlide - 1] - newPosition) || s.swipeDirection === 'next') {\n                            newPosition = s.snapGrid[nextSlide];\n                        } else {\n                            newPosition = s.snapGrid[nextSlide - 1];\n                        }\n                        if (!s.rtl) newPosition = - newPosition;\n                    }\n                    //Fix duration\n                    if (s.velocity !== 0) {\n                        if (s.rtl) {\n                            momentumDuration = Math.abs((-newPosition - s.translate) / s.velocity);\n                        }\n                        else {\n                            momentumDuration = Math.abs((newPosition - s.translate) / s.velocity);\n                        }\n                    }\n                    else if (s.params.freeModeSticky) {\n                        s.slideReset();\n                        return;\n                    }\n\n                    if (s.params.freeModeMomentumBounce && doBounce) {\n                        s.updateProgress(afterBouncePosition);\n                        s.setWrapperTransition(momentumDuration);\n                        s.setWrapperTranslate(newPosition);\n                        s.onTransitionStart();\n                        s.animating = true;\n                        s.wrapper.transitionEnd(function () {\n                            if (!s || !allowMomentumBounce) return;\n                            s.emit('onMomentumBounce', s);\n\n                            s.setWrapperTransition(s.params.speed);\n                            s.setWrapperTranslate(afterBouncePosition);\n                            s.wrapper.transitionEnd(function () {\n                                if (!s) return;\n                                s.onTransitionEnd();\n                            });\n                        });\n                    } else if (s.velocity) {\n                        s.updateProgress(newPosition);\n                        s.setWrapperTransition(momentumDuration);\n                        s.setWrapperTranslate(newPosition);\n                        s.onTransitionStart();\n                        if (!s.animating) {\n                            s.animating = true;\n                            s.wrapper.transitionEnd(function () {\n                                if (!s) return;\n                                s.onTransitionEnd();\n                            });\n                        }\n\n                    } else {\n                        s.updateProgress(newPosition);\n                    }\n\n                    s.updateActiveIndex();\n                }\n                if (!s.params.freeModeMomentum || timeDiff >= s.params.longSwipesMs) {\n                    s.updateProgress();\n                    s.updateActiveIndex();\n                }\n                return;\n            }\n\n            // Find current slide\n            var i, stopIndex = 0, groupSize = s.slidesSizesGrid[0];\n            for (i = 0; i < s.slidesGrid.length; i += s.params.slidesPerGroup) {\n                if (typeof s.slidesGrid[i + s.params.slidesPerGroup] !== 'undefined') {\n                    if (currentPos >= s.slidesGrid[i] && currentPos < s.slidesGrid[i + s.params.slidesPerGroup]) {\n                        stopIndex = i;\n                        groupSize = s.slidesGrid[i + s.params.slidesPerGroup] - s.slidesGrid[i];\n                    }\n                }\n                else {\n                    if (currentPos >= s.slidesGrid[i]) {\n                        stopIndex = i;\n                        groupSize = s.slidesGrid[s.slidesGrid.length - 1] - s.slidesGrid[s.slidesGrid.length - 2];\n                    }\n                }\n            }\n\n            // Find current slide size\n            var ratio = (currentPos - s.slidesGrid[stopIndex]) / groupSize;\n\n            if (timeDiff > s.params.longSwipesMs) {\n                // Long touches\n                if (!s.params.longSwipes) {\n                    s.slideTo(s.activeIndex);\n                    return;\n                }\n                if (s.swipeDirection === 'next') {\n                    if (ratio >= s.params.longSwipesRatio) s.slideTo(stopIndex + s.params.slidesPerGroup);\n                    else s.slideTo(stopIndex);\n\n                }\n                if (s.swipeDirection === 'prev') {\n                    if (ratio > (1 - s.params.longSwipesRatio)) s.slideTo(stopIndex + s.params.slidesPerGroup);\n                    else s.slideTo(stopIndex);\n                }\n            }\n            else {\n                // Short swipes\n                if (!s.params.shortSwipes) {\n                    s.slideTo(s.activeIndex);\n                    return;\n                }\n                if (s.swipeDirection === 'next') {\n                    s.slideTo(stopIndex + s.params.slidesPerGroup);\n\n                }\n                if (s.swipeDirection === 'prev') {\n                    s.slideTo(stopIndex);\n                }\n            }\n        };\n        /*=========================\n          Transitions\n          ===========================*/\n        s._slideTo = function (slideIndex, speed) {\n            return s.slideTo(slideIndex, speed, true, true);\n        };\n        s.slideTo = function (slideIndex, speed, runCallbacks, internal) {\n            if (typeof runCallbacks === 'undefined') runCallbacks = true;\n            if (typeof slideIndex === 'undefined') slideIndex = 0;\n            if (slideIndex < 0) slideIndex = 0;\n            s.snapIndex = Math.floor(slideIndex / s.params.slidesPerGroup);\n            if (s.snapIndex >= s.snapGrid.length) s.snapIndex = s.snapGrid.length - 1;\n\n            var translate = - s.snapGrid[s.snapIndex];\n            // Stop autoplay\n            if (s.params.autoplay && s.autoplaying) {\n                if (internal || !s.params.autoplayDisableOnInteraction) {\n                    s.pauseAutoplay(speed);\n                }\n                else {\n                    s.stopAutoplay();\n                }\n            }\n            // Update progress\n            s.updateProgress(translate);\n\n            // Normalize slideIndex\n            if(s.params.normalizeSlideIndex){\n                for (var i = 0; i < s.slidesGrid.length; i++) {\n                    if (- Math.floor(translate * 100) >= Math.floor(s.slidesGrid[i] * 100)) {\n                        slideIndex = i;\n                    }\n                }\n            }\n\n            // Directions locks\n            if (!s.params.allowSwipeToNext && translate < s.translate && translate < s.minTranslate()) {\n                return false;\n            }\n            if (!s.params.allowSwipeToPrev && translate > s.translate && translate > s.maxTranslate()) {\n                if ((s.activeIndex || 0) !== slideIndex ) return false;\n            }\n\n            // Update Index\n            if (typeof speed === 'undefined') speed = s.params.speed;\n            s.previousIndex = s.activeIndex || 0;\n            s.activeIndex = slideIndex;\n            s.updateRealIndex();\n            if ((s.rtl && -translate === s.translate) || (!s.rtl && translate === s.translate)) {\n                // Update Height\n                if (s.params.autoHeight) {\n                    s.updateAutoHeight();\n                }\n                s.updateClasses();\n                if (s.params.effect !== 'slide') {\n                    s.setWrapperTranslate(translate);\n                }\n                return false;\n            }\n            s.updateClasses();\n            s.onTransitionStart(runCallbacks);\n\n            if (speed === 0 || s.browser.lteIE9) {\n                s.setWrapperTranslate(translate);\n                s.setWrapperTransition(0);\n                s.onTransitionEnd(runCallbacks);\n            }\n            else {\n                s.setWrapperTranslate(translate);\n                s.setWrapperTransition(speed);\n                if (!s.animating) {\n                    s.animating = true;\n                    s.wrapper.transitionEnd(function () {\n                        if (!s) return;\n                        s.onTransitionEnd(runCallbacks);\n                    });\n                }\n\n            }\n\n            return true;\n        };\n\n        s.onTransitionStart = function (runCallbacks) {\n            if (typeof runCallbacks === 'undefined') runCallbacks = true;\n            if (s.params.autoHeight) {\n                s.updateAutoHeight();\n            }\n            if (s.lazy) s.lazy.onTransitionStart();\n            if (runCallbacks) {\n                s.emit('onTransitionStart', s);\n                if (s.activeIndex !== s.previousIndex) {\n                    s.emit('onSlideChangeStart', s);\n                    if (s.activeIndex > s.previousIndex) {\n                        s.emit('onSlideNextStart', s);\n                    }\n                    else {\n                        s.emit('onSlidePrevStart', s);\n                    }\n                }\n\n            }\n        };\n        s.onTransitionEnd = function (runCallbacks) {\n            s.animating = false;\n            s.setWrapperTransition(0);\n            if (typeof runCallbacks === 'undefined') runCallbacks = true;\n            if (s.lazy) s.lazy.onTransitionEnd();\n            if (runCallbacks) {\n                s.emit('onTransitionEnd', s);\n                if (s.activeIndex !== s.previousIndex) {\n                    s.emit('onSlideChangeEnd', s);\n                    if (s.activeIndex > s.previousIndex) {\n                        s.emit('onSlideNextEnd', s);\n                    }\n                    else {\n                        s.emit('onSlidePrevEnd', s);\n                    }\n                }\n            }\n            if (s.params.history && s.history) {\n                s.history.setHistory(s.params.history, s.activeIndex);\n            }\n            if (s.params.hashnav && s.hashnav) {\n                s.hashnav.setHash();\n            }\n\n        };\n        s.slideNext = function (runCallbacks, speed, internal) {\n            if (s.params.loop) {\n                if (s.animating) return false;\n                s.fixLoop();\n                var clientLeft = s.container[0].clientLeft;\n                return s.slideTo(s.activeIndex + s.params.slidesPerGroup, speed, runCallbacks, internal);\n            }\n            else return s.slideTo(s.activeIndex + s.params.slidesPerGroup, speed, runCallbacks, internal);\n        };\n        s._slideNext = function (speed) {\n            return s.slideNext(true, speed, true);\n        };\n        s.slidePrev = function (runCallbacks, speed, internal) {\n            if (s.params.loop) {\n                if (s.animating) return false;\n                s.fixLoop();\n                var clientLeft = s.container[0].clientLeft;\n                return s.slideTo(s.activeIndex - 1, speed, runCallbacks, internal);\n            }\n            else return s.slideTo(s.activeIndex - 1, speed, runCallbacks, internal);\n        };\n        s._slidePrev = function (speed) {\n            return s.slidePrev(true, speed, true);\n        };\n        s.slideReset = function (runCallbacks, speed, internal) {\n            return s.slideTo(s.activeIndex, speed, runCallbacks);\n        };\n\n        s.disableTouchControl = function () {\n            s.params.onlyExternal = true;\n            return true;\n        };\n        s.enableTouchControl = function () {\n            s.params.onlyExternal = false;\n            return true;\n        };\n\n        /*=========================\n          Translate/transition helpers\n          ===========================*/\n        s.setWrapperTransition = function (duration, byController) {\n            s.wrapper.transition(duration);\n            if (s.params.effect !== 'slide' && s.effects[s.params.effect]) {\n                s.effects[s.params.effect].setTransition(duration);\n            }\n            if (s.params.parallax && s.parallax) {\n                s.parallax.setTransition(duration);\n            }\n            if (s.params.scrollbar && s.scrollbar) {\n                s.scrollbar.setTransition(duration);\n            }\n            if (s.params.control && s.controller) {\n                s.controller.setTransition(duration, byController);\n            }\n            s.emit('onSetTransition', s, duration);\n        };\n        s.setWrapperTranslate = function (translate, updateActiveIndex, byController) {\n            var x = 0, y = 0, z = 0;\n            if (s.isHorizontal()) {\n                x = s.rtl ? -translate : translate;\n            }\n            else {\n                y = translate;\n            }\n\n            if (s.params.roundLengths) {\n                x = round(x);\n                y = round(y);\n            }\n\n            if (!s.params.virtualTranslate) {\n                if (s.support.transforms3d) s.wrapper.transform('translate3d(' + x + 'px, ' + y + 'px, ' + z + 'px)');\n                else s.wrapper.transform('translate(' + x + 'px, ' + y + 'px)');\n            }\n\n            s.translate = s.isHorizontal() ? x : y;\n\n            // Check if we need to update progress\n            var progress;\n            var translatesDiff = s.maxTranslate() - s.minTranslate();\n            if (translatesDiff === 0) {\n                progress = 0;\n            }\n            else {\n                progress = (translate - s.minTranslate()) / (translatesDiff);\n            }\n            if (progress !== s.progress) {\n                s.updateProgress(translate);\n            }\n\n            if (updateActiveIndex) s.updateActiveIndex();\n            if (s.params.effect !== 'slide' && s.effects[s.params.effect]) {\n                s.effects[s.params.effect].setTranslate(s.translate);\n            }\n            if (s.params.parallax && s.parallax) {\n                s.parallax.setTranslate(s.translate);\n            }\n            if (s.params.scrollbar && s.scrollbar) {\n                s.scrollbar.setTranslate(s.translate);\n            }\n            if (s.params.control && s.controller) {\n                s.controller.setTranslate(s.translate, byController);\n            }\n            s.emit('onSetTranslate', s, s.translate);\n        };\n\n        s.getTranslate = function (el, axis) {\n            var matrix, curTransform, curStyle, transformMatrix;\n\n            // automatic axis detection\n            if (typeof axis === 'undefined') {\n                axis = 'x';\n            }\n\n            if (s.params.virtualTranslate) {\n                return s.rtl ? -s.translate : s.translate;\n            }\n\n            curStyle = window.getComputedStyle(el, null);\n            if (window.WebKitCSSMatrix) {\n                curTransform = curStyle.transform || curStyle.webkitTransform;\n                if (curTransform.split(',').length > 6) {\n                    curTransform = curTransform.split(', ').map(function(a){\n                        return a.replace(',','.');\n                    }).join(', ');\n                }\n                // Some old versions of Webkit choke when 'none' is passed; pass\n                // empty string instead in this case\n                transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n            }\n            else {\n                transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform  || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n                matrix = transformMatrix.toString().split(',');\n            }\n\n            if (axis === 'x') {\n                //Latest Chrome and webkits Fix\n                if (window.WebKitCSSMatrix)\n                    curTransform = transformMatrix.m41;\n                //Crazy IE10 Matrix\n                else if (matrix.length === 16)\n                    curTransform = parseFloat(matrix[12]);\n                //Normal Browsers\n                else\n                    curTransform = parseFloat(matrix[4]);\n            }\n            if (axis === 'y') {\n                //Latest Chrome and webkits Fix\n                if (window.WebKitCSSMatrix)\n                    curTransform = transformMatrix.m42;\n                //Crazy IE10 Matrix\n                else if (matrix.length === 16)\n                    curTransform = parseFloat(matrix[13]);\n                //Normal Browsers\n                else\n                    curTransform = parseFloat(matrix[5]);\n            }\n            if (s.rtl && curTransform) curTransform = -curTransform;\n            return curTransform || 0;\n        };\n        s.getWrapperTranslate = function (axis) {\n            if (typeof axis === 'undefined') {\n                axis = s.isHorizontal() ? 'x' : 'y';\n            }\n            return s.getTranslate(s.wrapper[0], axis);\n        };\n\n        /*=========================\n          Observer\n          ===========================*/\n        s.observers = [];\n        function initObserver(target, options) {\n            options = options || {};\n            // create an observer instance\n            var ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n            var observer = new ObserverFunc(function (mutations) {\n                mutations.forEach(function (mutation) {\n                    s.onResize(true);\n                    s.emit('onObserverUpdate', s, mutation);\n                });\n            });\n\n            observer.observe(target, {\n                attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n                childList: typeof options.childList === 'undefined' ? true : options.childList,\n                characterData: typeof options.characterData === 'undefined' ? true : options.characterData\n            });\n\n            s.observers.push(observer);\n        }\n        s.initObservers = function () {\n            if (s.params.observeParents) {\n                var containerParents = s.container.parents();\n                for (var i = 0; i < containerParents.length; i++) {\n                    initObserver(containerParents[i]);\n                }\n            }\n\n            // Observe container\n            initObserver(s.container[0], {childList: false});\n\n            // Observe wrapper\n            initObserver(s.wrapper[0], {attributes: false});\n        };\n        s.disconnectObservers = function () {\n            for (var i = 0; i < s.observers.length; i++) {\n                s.observers[i].disconnect();\n            }\n            s.observers = [];\n        };\n        /*=========================\n          Loop\n          ===========================*/\n        // Create looped slides\n        s.createLoop = function () {\n            // Remove duplicated slides\n            s.wrapper.children('.' + s.params.slideClass + '.' + s.params.slideDuplicateClass).remove();\n\n            var slides = s.wrapper.children('.' + s.params.slideClass);\n\n            if(s.params.slidesPerView === 'auto' && !s.params.loopedSlides) s.params.loopedSlides = slides.length;\n\n            s.loopedSlides = parseInt(s.params.loopedSlides || s.params.slidesPerView, 10);\n            s.loopedSlides = s.loopedSlides + s.params.loopAdditionalSlides;\n            if (s.loopedSlides > slides.length) {\n                s.loopedSlides = slides.length;\n            }\n\n            var prependSlides = [], appendSlides = [], i;\n            slides.each(function (index, el) {\n                var slide = $(this);\n                if (index < s.loopedSlides) appendSlides.push(el);\n                if (index < slides.length && index >= slides.length - s.loopedSlides) prependSlides.push(el);\n                slide.attr('data-swiper-slide-index', index);\n            });\n            for (i = 0; i < appendSlides.length; i++) {\n                s.wrapper.append($(appendSlides[i].cloneNode(true)).addClass(s.params.slideDuplicateClass));\n            }\n            for (i = prependSlides.length - 1; i >= 0; i--) {\n                s.wrapper.prepend($(prependSlides[i].cloneNode(true)).addClass(s.params.slideDuplicateClass));\n            }\n        };\n        s.destroyLoop = function () {\n            s.wrapper.children('.' + s.params.slideClass + '.' + s.params.slideDuplicateClass).remove();\n            s.slides.removeAttr('data-swiper-slide-index');\n        };\n        s.reLoop = function (updatePosition) {\n            var oldIndex = s.activeIndex - s.loopedSlides;\n            s.destroyLoop();\n            s.createLoop();\n            s.updateSlidesSize();\n            if (updatePosition) {\n                s.slideTo(oldIndex + s.loopedSlides, 0, false);\n            }\n\n        };\n        s.fixLoop = function () {\n            var newIndex;\n            //Fix For Negative Oversliding\n            if (s.activeIndex < s.loopedSlides) {\n                newIndex = s.slides.length - s.loopedSlides * 3 + s.activeIndex;\n                newIndex = newIndex + s.loopedSlides;\n                s.slideTo(newIndex, 0, false, true);\n            }\n            //Fix For Positive Oversliding\n            else if ((s.params.slidesPerView === 'auto' && s.activeIndex >= s.loopedSlides * 2) || (s.activeIndex > s.slides.length - s.params.slidesPerView * 2)) {\n                newIndex = -s.slides.length + s.activeIndex + s.loopedSlides;\n                newIndex = newIndex + s.loopedSlides;\n                s.slideTo(newIndex, 0, false, true);\n            }\n        };\n        /*=========================\n          Append/Prepend/Remove Slides\n          ===========================*/\n        s.appendSlide = function (slides) {\n            if (s.params.loop) {\n                s.destroyLoop();\n            }\n            if (typeof slides === 'object' && slides.length) {\n                for (var i = 0; i < slides.length; i++) {\n                    if (slides[i]) s.wrapper.append(slides[i]);\n                }\n            }\n            else {\n                s.wrapper.append(slides);\n            }\n            if (s.params.loop) {\n                s.createLoop();\n            }\n            if (!(s.params.observer && s.support.observer)) {\n                s.update(true);\n            }\n        };\n        s.prependSlide = function (slides) {\n            if (s.params.loop) {\n                s.destroyLoop();\n            }\n            var newActiveIndex = s.activeIndex + 1;\n            if (typeof slides === 'object' && slides.length) {\n                for (var i = 0; i < slides.length; i++) {\n                    if (slides[i]) s.wrapper.prepend(slides[i]);\n                }\n                newActiveIndex = s.activeIndex + slides.length;\n            }\n            else {\n                s.wrapper.prepend(slides);\n            }\n            if (s.params.loop) {\n                s.createLoop();\n            }\n            if (!(s.params.observer && s.support.observer)) {\n                s.update(true);\n            }\n            s.slideTo(newActiveIndex, 0, false);\n        };\n        s.removeSlide = function (slidesIndexes) {\n            if (s.params.loop) {\n                s.destroyLoop();\n                s.slides = s.wrapper.children('.' + s.params.slideClass);\n            }\n            var newActiveIndex = s.activeIndex,\n                indexToRemove;\n            if (typeof slidesIndexes === 'object' && slidesIndexes.length) {\n                for (var i = 0; i < slidesIndexes.length; i++) {\n                    indexToRemove = slidesIndexes[i];\n                    if (s.slides[indexToRemove]) s.slides.eq(indexToRemove).remove();\n                    if (indexToRemove < newActiveIndex) newActiveIndex--;\n                }\n                newActiveIndex = Math.max(newActiveIndex, 0);\n            }\n            else {\n                indexToRemove = slidesIndexes;\n                if (s.slides[indexToRemove]) s.slides.eq(indexToRemove).remove();\n                if (indexToRemove < newActiveIndex) newActiveIndex--;\n                newActiveIndex = Math.max(newActiveIndex, 0);\n            }\n\n            if (s.params.loop) {\n                s.createLoop();\n            }\n\n            if (!(s.params.observer && s.support.observer)) {\n                s.update(true);\n            }\n            if (s.params.loop) {\n                s.slideTo(newActiveIndex + s.loopedSlides, 0, false);\n            }\n            else {\n                s.slideTo(newActiveIndex, 0, false);\n            }\n\n        };\n        s.removeAllSlides = function () {\n            var slidesIndexes = [];\n            for (var i = 0; i < s.slides.length; i++) {\n                slidesIndexes.push(i);\n            }\n            s.removeSlide(slidesIndexes);\n        };\n\n\n        /*=========================\n          Effects\n          ===========================*/\n        s.effects = {\n            fade: {\n                setTranslate: function () {\n                    for (var i = 0; i < s.slides.length; i++) {\n                        var slide = s.slides.eq(i);\n                        var offset = slide[0].swiperSlideOffset;\n                        var tx = -offset;\n                        if (!s.params.virtualTranslate) tx = tx - s.translate;\n                        var ty = 0;\n                        if (!s.isHorizontal()) {\n                            ty = tx;\n                            tx = 0;\n                        }\n                        var slideOpacity = s.params.fade.crossFade ?\n                                Math.max(1 - Math.abs(slide[0].progress), 0) :\n                                1 + Math.min(Math.max(slide[0].progress, -1), 0);\n                        slide\n                            .css({\n                                opacity: slideOpacity\n                            })\n                            .transform('translate3d(' + tx + 'px, ' + ty + 'px, 0px)');\n\n                    }\n\n                },\n                setTransition: function (duration) {\n                    s.slides.transition(duration);\n                    if (s.params.virtualTranslate && duration !== 0) {\n                        var eventTriggered = false;\n                        s.slides.transitionEnd(function () {\n                            if (eventTriggered) return;\n                            if (!s) return;\n                            eventTriggered = true;\n                            s.animating = false;\n                            var triggerEvents = ['webkitTransitionEnd', 'transitionend', 'oTransitionEnd', 'MSTransitionEnd', 'msTransitionEnd'];\n                            for (var i = 0; i < triggerEvents.length; i++) {\n                                s.wrapper.trigger(triggerEvents[i]);\n                            }\n                        });\n                    }\n                }\n            },\n            flip: {\n                setTranslate: function () {\n                    for (var i = 0; i < s.slides.length; i++) {\n                        var slide = s.slides.eq(i);\n                        var progress = slide[0].progress;\n                        if (s.params.flip.limitRotation) {\n                            progress = Math.max(Math.min(slide[0].progress, 1), -1);\n                        }\n                        var offset = slide[0].swiperSlideOffset;\n                        var rotate = -180 * progress,\n                            rotateY = rotate,\n                            rotateX = 0,\n                            tx = -offset,\n                            ty = 0;\n                        if (!s.isHorizontal()) {\n                            ty = tx;\n                            tx = 0;\n                            rotateX = -rotateY;\n                            rotateY = 0;\n                        }\n                        else if (s.rtl) {\n                            rotateY = -rotateY;\n                        }\n\n                        slide[0].style.zIndex = -Math.abs(Math.round(progress)) + s.slides.length;\n\n                        if (s.params.flip.slideShadows) {\n                            //Set shadows\n                            var shadowBefore = s.isHorizontal() ? slide.find('.swiper-slide-shadow-left') : slide.find('.swiper-slide-shadow-top');\n                            var shadowAfter = s.isHorizontal() ? slide.find('.swiper-slide-shadow-right') : slide.find('.swiper-slide-shadow-bottom');\n                            if (shadowBefore.length === 0) {\n                                shadowBefore = $('<div class=\"swiper-slide-shadow-' + (s.isHorizontal() ? 'left' : 'top') + '\"></div>');\n                                slide.append(shadowBefore);\n                            }\n                            if (shadowAfter.length === 0) {\n                                shadowAfter = $('<div class=\"swiper-slide-shadow-' + (s.isHorizontal() ? 'right' : 'bottom') + '\"></div>');\n                                slide.append(shadowAfter);\n                            }\n                            if (shadowBefore.length) shadowBefore[0].style.opacity = Math.max(-progress, 0);\n                            if (shadowAfter.length) shadowAfter[0].style.opacity = Math.max(progress, 0);\n                        }\n\n                        slide\n                            .transform('translate3d(' + tx + 'px, ' + ty + 'px, 0px) rotateX(' + rotateX + 'deg) rotateY(' + rotateY + 'deg)');\n                    }\n                },\n                setTransition: function (duration) {\n                    s.slides.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration);\n                    if (s.params.virtualTranslate && duration !== 0) {\n                        var eventTriggered = false;\n                        s.slides.eq(s.activeIndex).transitionEnd(function () {\n                            if (eventTriggered) return;\n                            if (!s) return;\n                            if (!$(this).hasClass(s.params.slideActiveClass)) return;\n                            eventTriggered = true;\n                            s.animating = false;\n                            var triggerEvents = ['webkitTransitionEnd', 'transitionend', 'oTransitionEnd', 'MSTransitionEnd', 'msTransitionEnd'];\n                            for (var i = 0; i < triggerEvents.length; i++) {\n                                s.wrapper.trigger(triggerEvents[i]);\n                            }\n                        });\n                    }\n                }\n            },\n            cube: {\n                setTranslate: function () {\n                    var wrapperRotate = 0, cubeShadow;\n                    if (s.params.cube.shadow) {\n                        if (s.isHorizontal()) {\n                            cubeShadow = s.wrapper.find('.swiper-cube-shadow');\n                            if (cubeShadow.length === 0) {\n                                cubeShadow = $('<div class=\"swiper-cube-shadow\"></div>');\n                                s.wrapper.append(cubeShadow);\n                            }\n                            cubeShadow.css({height: s.width + 'px'});\n                        }\n                        else {\n                            cubeShadow = s.container.find('.swiper-cube-shadow');\n                            if (cubeShadow.length === 0) {\n                                cubeShadow = $('<div class=\"swiper-cube-shadow\"></div>');\n                                s.container.append(cubeShadow);\n                            }\n                        }\n                    }\n                    for (var i = 0; i < s.slides.length; i++) {\n                        var slide = s.slides.eq(i);\n                        var slideAngle = i * 90;\n                        var round = Math.floor(slideAngle / 360);\n                        if (s.rtl) {\n                            slideAngle = -slideAngle;\n                            round = Math.floor(-slideAngle / 360);\n                        }\n                        var progress = Math.max(Math.min(slide[0].progress, 1), -1);\n                        var tx = 0, ty = 0, tz = 0;\n                        if (i % 4 === 0) {\n                            tx = - round * 4 * s.size;\n                            tz = 0;\n                        }\n                        else if ((i - 1) % 4 === 0) {\n                            tx = 0;\n                            tz = - round * 4 * s.size;\n                        }\n                        else if ((i - 2) % 4 === 0) {\n                            tx = s.size + round * 4 * s.size;\n                            tz = s.size;\n                        }\n                        else if ((i - 3) % 4 === 0) {\n                            tx = - s.size;\n                            tz = 3 * s.size + s.size * 4 * round;\n                        }\n                        if (s.rtl) {\n                            tx = -tx;\n                        }\n\n                        if (!s.isHorizontal()) {\n                            ty = tx;\n                            tx = 0;\n                        }\n\n                        var transform = 'rotateX(' + (s.isHorizontal() ? 0 : -slideAngle) + 'deg) rotateY(' + (s.isHorizontal() ? slideAngle : 0) + 'deg) translate3d(' + tx + 'px, ' + ty + 'px, ' + tz + 'px)';\n                        if (progress <= 1 && progress > -1) {\n                            wrapperRotate = i * 90 + progress * 90;\n                            if (s.rtl) wrapperRotate = -i * 90 - progress * 90;\n                        }\n                        slide.transform(transform);\n                        if (s.params.cube.slideShadows) {\n                            //Set shadows\n                            var shadowBefore = s.isHorizontal() ? slide.find('.swiper-slide-shadow-left') : slide.find('.swiper-slide-shadow-top');\n                            var shadowAfter = s.isHorizontal() ? slide.find('.swiper-slide-shadow-right') : slide.find('.swiper-slide-shadow-bottom');\n                            if (shadowBefore.length === 0) {\n                                shadowBefore = $('<div class=\"swiper-slide-shadow-' + (s.isHorizontal() ? 'left' : 'top') + '\"></div>');\n                                slide.append(shadowBefore);\n                            }\n                            if (shadowAfter.length === 0) {\n                                shadowAfter = $('<div class=\"swiper-slide-shadow-' + (s.isHorizontal() ? 'right' : 'bottom') + '\"></div>');\n                                slide.append(shadowAfter);\n                            }\n                            if (shadowBefore.length) shadowBefore[0].style.opacity = Math.max(-progress, 0);\n                            if (shadowAfter.length) shadowAfter[0].style.opacity = Math.max(progress, 0);\n                        }\n                    }\n                    s.wrapper.css({\n                        '-webkit-transform-origin': '50% 50% -' + (s.size / 2) + 'px',\n                        '-moz-transform-origin': '50% 50% -' + (s.size / 2) + 'px',\n                        '-ms-transform-origin': '50% 50% -' + (s.size / 2) + 'px',\n                        'transform-origin': '50% 50% -' + (s.size / 2) + 'px'\n                    });\n\n                    if (s.params.cube.shadow) {\n                        if (s.isHorizontal()) {\n                            cubeShadow.transform('translate3d(0px, ' + (s.width / 2 + s.params.cube.shadowOffset) + 'px, ' + (-s.width / 2) + 'px) rotateX(90deg) rotateZ(0deg) scale(' + (s.params.cube.shadowScale) + ')');\n                        }\n                        else {\n                            var shadowAngle = Math.abs(wrapperRotate) - Math.floor(Math.abs(wrapperRotate) / 90) * 90;\n                            var multiplier = 1.5 - (Math.sin(shadowAngle * 2 * Math.PI / 360) / 2 + Math.cos(shadowAngle * 2 * Math.PI / 360) / 2);\n                            var scale1 = s.params.cube.shadowScale,\n                                scale2 = s.params.cube.shadowScale / multiplier,\n                                offset = s.params.cube.shadowOffset;\n                            cubeShadow.transform('scale3d(' + scale1 + ', 1, ' + scale2 + ') translate3d(0px, ' + (s.height / 2 + offset) + 'px, ' + (-s.height / 2 / scale2) + 'px) rotateX(-90deg)');\n                        }\n                    }\n                    var zFactor = (s.isSafari || s.isUiWebView) ? (-s.size / 2) : 0;\n                    s.wrapper.transform('translate3d(0px,0,' + zFactor + 'px) rotateX(' + (s.isHorizontal() ? 0 : wrapperRotate) + 'deg) rotateY(' + (s.isHorizontal() ? -wrapperRotate : 0) + 'deg)');\n                },\n                setTransition: function (duration) {\n                    s.slides.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration);\n                    if (s.params.cube.shadow && !s.isHorizontal()) {\n                        s.container.find('.swiper-cube-shadow').transition(duration);\n                    }\n                }\n            },\n            coverflow: {\n                setTranslate: function () {\n                    var transform = s.translate;\n                    var center = s.isHorizontal() ? -transform + s.width / 2 : -transform + s.height / 2;\n                    var rotate = s.isHorizontal() ? s.params.coverflow.rotate: -s.params.coverflow.rotate;\n                    var translate = s.params.coverflow.depth;\n                    //Each slide offset from center\n                    for (var i = 0, length = s.slides.length; i < length; i++) {\n                        var slide = s.slides.eq(i);\n                        var slideSize = s.slidesSizesGrid[i];\n                        var slideOffset = slide[0].swiperSlideOffset;\n                        var offsetMultiplier = (center - slideOffset - slideSize / 2) / slideSize * s.params.coverflow.modifier;\n\n                        var rotateY = s.isHorizontal() ? rotate * offsetMultiplier : 0;\n                        var rotateX = s.isHorizontal() ? 0 : rotate * offsetMultiplier;\n                        // var rotateZ = 0\n                        var translateZ = -translate * Math.abs(offsetMultiplier);\n\n                        var translateY = s.isHorizontal() ? 0 : s.params.coverflow.stretch * (offsetMultiplier);\n                        var translateX = s.isHorizontal() ? s.params.coverflow.stretch * (offsetMultiplier) : 0;\n\n                        //Fix for ultra small values\n                        if (Math.abs(translateX) < 0.001) translateX = 0;\n                        if (Math.abs(translateY) < 0.001) translateY = 0;\n                        if (Math.abs(translateZ) < 0.001) translateZ = 0;\n                        if (Math.abs(rotateY) < 0.001) rotateY = 0;\n                        if (Math.abs(rotateX) < 0.001) rotateX = 0;\n\n                        var slideTransform = 'translate3d(' + translateX + 'px,' + translateY + 'px,' + translateZ + 'px)  rotateX(' + rotateX + 'deg) rotateY(' + rotateY + 'deg)';\n\n                        slide.transform(slideTransform);\n                        slide[0].style.zIndex = -Math.abs(Math.round(offsetMultiplier)) + 1;\n                        if (s.params.coverflow.slideShadows) {\n                            //Set shadows\n                            var shadowBefore = s.isHorizontal() ? slide.find('.swiper-slide-shadow-left') : slide.find('.swiper-slide-shadow-top');\n                            var shadowAfter = s.isHorizontal() ? slide.find('.swiper-slide-shadow-right') : slide.find('.swiper-slide-shadow-bottom');\n                            if (shadowBefore.length === 0) {\n                                shadowBefore = $('<div class=\"swiper-slide-shadow-' + (s.isHorizontal() ? 'left' : 'top') + '\"></div>');\n                                slide.append(shadowBefore);\n                            }\n                            if (shadowAfter.length === 0) {\n                                shadowAfter = $('<div class=\"swiper-slide-shadow-' + (s.isHorizontal() ? 'right' : 'bottom') + '\"></div>');\n                                slide.append(shadowAfter);\n                            }\n                            if (shadowBefore.length) shadowBefore[0].style.opacity = offsetMultiplier > 0 ? offsetMultiplier : 0;\n                            if (shadowAfter.length) shadowAfter[0].style.opacity = (-offsetMultiplier) > 0 ? -offsetMultiplier : 0;\n                        }\n                    }\n\n                    //Set correct perspective for IE10\n                    if (s.browser.ie) {\n                        var ws = s.wrapper[0].style;\n                        ws.perspectiveOrigin = center + 'px 50%';\n                    }\n                },\n                setTransition: function (duration) {\n                    s.slides.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration);\n                }\n            }\n        };\n\n\n        /*=========================\n          Plugins API. Collect all and init all plugins\n          ===========================*/\n        s._plugins = [];\n        for (var plugin in s.plugins) {\n            var p = s.plugins[plugin](s, s.params[plugin]);\n            if (p) s._plugins.push(p);\n        }\n        // Method to call all plugins event/method\n        s.callPlugins = function (eventName) {\n            for (var i = 0; i < s._plugins.length; i++) {\n                if (eventName in s._plugins[i]) {\n                    s._plugins[i][eventName](arguments[1], arguments[2], arguments[3], arguments[4], arguments[5]);\n                }\n            }\n        };\n\n\n        /*=========================\n          Events/Callbacks/Plugins Emitter\n          ===========================*/\n        function normalizeEventName (eventName) {\n            if (eventName.indexOf('on') !== 0) {\n                if (eventName[0] !== eventName[0].toUpperCase()) {\n                    eventName = 'on' + eventName[0].toUpperCase() + eventName.substring(1);\n                }\n                else {\n                    eventName = 'on' + eventName;\n                }\n            }\n            return eventName;\n        }\n        s.emitterEventListeners = {\n\n        };\n        s.emit = function (eventName) {\n            // Trigger callbacks\n            if (s.params[eventName]) {\n                s.params[eventName](arguments[1], arguments[2], arguments[3], arguments[4], arguments[5]);\n            }\n            var i;\n            // Trigger events\n            if (s.emitterEventListeners[eventName]) {\n                for (i = 0; i < s.emitterEventListeners[eventName].length; i++) {\n                    s.emitterEventListeners[eventName][i](arguments[1], arguments[2], arguments[3], arguments[4], arguments[5]);\n                }\n            }\n            // Trigger plugins\n            if (s.callPlugins) s.callPlugins(eventName, arguments[1], arguments[2], arguments[3], arguments[4], arguments[5]);\n        };\n        s.on = function (eventName, handler) {\n            eventName = normalizeEventName(eventName);\n            if (!s.emitterEventListeners[eventName]) s.emitterEventListeners[eventName] = [];\n            s.emitterEventListeners[eventName].push(handler);\n            return s;\n        };\n        s.off = function (eventName, handler) {\n            var i;\n            eventName = normalizeEventName(eventName);\n            if (typeof handler === 'undefined') {\n                // Remove all handlers for such event\n                s.emitterEventListeners[eventName] = [];\n                return s;\n            }\n            if (!s.emitterEventListeners[eventName] || s.emitterEventListeners[eventName].length === 0) return;\n            for (i = 0; i < s.emitterEventListeners[eventName].length; i++) {\n                if(s.emitterEventListeners[eventName][i] === handler) s.emitterEventListeners[eventName].splice(i, 1);\n            }\n            return s;\n        };\n        s.once = function (eventName, handler) {\n            eventName = normalizeEventName(eventName);\n            var _handler = function () {\n                handler(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4]);\n                s.off(eventName, _handler);\n            };\n            s.on(eventName, _handler);\n            return s;\n        };\n\n\n        /*=========================\n          Init/Destroy\n          ===========================*/\n        s.init = function () {\n            if (s.params.loop) s.createLoop();\n            s.updateContainerSize();\n            s.updateSlidesSize();\n            s.updatePagination();\n            if (s.params.scrollbar && s.scrollbar) {\n                s.scrollbar.set();\n                if (s.params.scrollbarDraggable) {\n                    s.scrollbar.enableDraggable();\n                }\n            }\n            if (s.params.effect !== 'slide' && s.effects[s.params.effect]) {\n                if (!s.params.loop) s.updateProgress();\n                s.effects[s.params.effect].setTranslate();\n            }\n            if (s.params.loop) {\n                s.slideTo(s.params.initialSlide + s.loopedSlides, 0, s.params.runCallbacksOnInit);\n            }\n            else {\n                s.slideTo(s.params.initialSlide, 0, s.params.runCallbacksOnInit);\n                if (s.params.initialSlide === 0) {\n                    if (s.parallax && s.params.parallax) s.parallax.setTranslate();\n                    if (s.lazy && s.params.lazyLoading) {\n                        s.lazy.load();\n                        s.lazy.initialImageLoaded = true;\n                    }\n                }\n            }\n            s.attachEvents();\n            if (s.params.observer && s.support.observer) {\n                s.initObservers();\n            }\n            if (s.params.preloadImages && !s.params.lazyLoading) {\n                s.preloadImages();\n            }\n            if (s.params.zoom && s.zoom) {\n                s.zoom.init();\n            }\n            if (s.params.autoplay) {\n                s.startAutoplay();\n            }\n            if (s.params.keyboardControl) {\n                if (s.enableKeyboardControl) s.enableKeyboardControl();\n            }\n            if (s.params.mousewheelControl) {\n                if (s.enableMousewheelControl) s.enableMousewheelControl();\n            }\n            // Deprecated hashnavReplaceState changed to replaceState for use in hashnav and history\n            if (s.params.hashnavReplaceState) {\n                s.params.replaceState = s.params.hashnavReplaceState;\n            }\n            if (s.params.history) {\n                if (s.history) s.history.init();\n            }\n            if (s.params.hashnav) {\n                if (s.hashnav) s.hashnav.init();\n            }\n            if (s.params.a11y && s.a11y) s.a11y.init();\n            s.emit('onInit', s);\n        };\n\n        // Cleanup dynamic styles\n        s.cleanupStyles = function () {\n            // Container\n            s.container.removeClass(s.classNames.join(' ')).removeAttr('style');\n\n            // Wrapper\n            s.wrapper.removeAttr('style');\n\n            // Slides\n            if (s.slides && s.slides.length) {\n                s.slides\n                    .removeClass([\n                      s.params.slideVisibleClass,\n                      s.params.slideActiveClass,\n                      s.params.slideNextClass,\n                      s.params.slidePrevClass\n                    ].join(' '))\n                    .removeAttr('style')\n                    .removeAttr('data-swiper-column')\n                    .removeAttr('data-swiper-row');\n            }\n\n            // Pagination/Bullets\n            if (s.paginationContainer && s.paginationContainer.length) {\n                s.paginationContainer.removeClass(s.params.paginationHiddenClass);\n            }\n            if (s.bullets && s.bullets.length) {\n                s.bullets.removeClass(s.params.bulletActiveClass);\n            }\n\n            // Buttons\n            if (s.params.prevButton) $(s.params.prevButton).removeClass(s.params.buttonDisabledClass);\n            if (s.params.nextButton) $(s.params.nextButton).removeClass(s.params.buttonDisabledClass);\n\n            // Scrollbar\n            if (s.params.scrollbar && s.scrollbar) {\n                if (s.scrollbar.track && s.scrollbar.track.length) s.scrollbar.track.removeAttr('style');\n                if (s.scrollbar.drag && s.scrollbar.drag.length) s.scrollbar.drag.removeAttr('style');\n            }\n        };\n\n        // Destroy\n        s.destroy = function (deleteInstance, cleanupStyles) {\n            // Detach evebts\n            s.detachEvents();\n            // Stop autoplay\n            s.stopAutoplay();\n            // Disable draggable\n            if (s.params.scrollbar && s.scrollbar) {\n                if (s.params.scrollbarDraggable) {\n                    s.scrollbar.disableDraggable();\n                }\n            }\n            // Destroy loop\n            if (s.params.loop) {\n                s.destroyLoop();\n            }\n            // Cleanup styles\n            if (cleanupStyles) {\n                s.cleanupStyles();\n            }\n            // Disconnect observer\n            s.disconnectObservers();\n\n            // Destroy zoom\n            if (s.params.zoom && s.zoom) {\n                s.zoom.destroy();\n            }\n            // Disable keyboard/mousewheel\n            if (s.params.keyboardControl) {\n                if (s.disableKeyboardControl) s.disableKeyboardControl();\n            }\n            if (s.params.mousewheelControl) {\n                if (s.disableMousewheelControl) s.disableMousewheelControl();\n            }\n            // Disable a11y\n            if (s.params.a11y && s.a11y) s.a11y.destroy();\n            // Delete history popstate\n            if (s.params.history && !s.params.replaceState) {\n                window.removeEventListener('popstate', s.history.setHistoryPopState);\n            }\n            if (s.params.hashnav && s.hashnav)  {\n                s.hashnav.destroy();\n            }\n            // Destroy callback\n            s.emit('onDestroy');\n            // Delete instance\n            if (deleteInstance !== false) s = null;\n        };\n\n        s.init();\n\n\n\n        // Return swiper instance\n        return s;\n    };\n\n\n    /*==================================================\n        Prototype\n    ====================================================*/\n    Swiper.prototype = {\n        isSafari: (function () {\n            var ua = window.navigator.userAgent.toLowerCase();\n            return (ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0);\n        })(),\n        isUiWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent),\n        isArray: function (arr) {\n            return Object.prototype.toString.apply(arr) === '[object Array]';\n        },\n        /*==================================================\n        Browser\n        ====================================================*/\n        browser: {\n            ie: window.navigator.pointerEnabled || window.navigator.msPointerEnabled,\n            ieTouch: (window.navigator.msPointerEnabled && window.navigator.msMaxTouchPoints > 1) || (window.navigator.pointerEnabled && window.navigator.maxTouchPoints > 1),\n            lteIE9: (function() {\n                // create temporary DIV\n                var div = document.createElement('div');\n                // add content to tmp DIV which is wrapped into the IE HTML conditional statement\n                div.innerHTML = '<!--[if lte IE 9]><i></i><![endif]-->';\n                // return true / false value based on what will browser render\n                return div.getElementsByTagName('i').length === 1;\n            })()\n        },\n        /*==================================================\n        Devices\n        ====================================================*/\n        device: (function () {\n            var ua = window.navigator.userAgent;\n            var android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/);\n            var ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n            var ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n            var iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n            return {\n                ios: ipad || iphone || ipod,\n                android: android\n            };\n        })(),\n        /*==================================================\n        Feature Detection\n        ====================================================*/\n        support: {\n            touch : (window.Modernizr && Modernizr.touch === true) || (function () {\n                return !!(('ontouchstart' in window) || window.DocumentTouch && document instanceof DocumentTouch);\n            })(),\n\n            transforms3d : (window.Modernizr && Modernizr.csstransforms3d === true) || (function () {\n                var div = document.createElement('div').style;\n                return ('webkitPerspective' in div || 'MozPerspective' in div || 'OPerspective' in div || 'MsPerspective' in div || 'perspective' in div);\n            })(),\n\n            flexbox: (function () {\n                var div = document.createElement('div').style;\n                var styles = ('alignItems webkitAlignItems webkitBoxAlign msFlexAlign mozBoxAlign webkitFlexDirection msFlexDirection mozBoxDirection mozBoxOrient webkitBoxDirection webkitBoxOrient').split(' ');\n                for (var i = 0; i < styles.length; i++) {\n                    if (styles[i] in div) return true;\n                }\n            })(),\n\n            observer: (function () {\n                return ('MutationObserver' in window || 'WebkitMutationObserver' in window);\n            })(),\n\n            passiveListener: (function () {\n                var supportsPassive = false;\n                try {\n                    var opts = Object.defineProperty({}, 'passive', {\n                        get: function() {\n                            supportsPassive = true;\n                        }\n                    });\n                    window.addEventListener('testPassiveListener', null, opts);\n                } catch (e) {}\n                return supportsPassive;\n            })(),\n\n            gestures: (function () {\n                return 'ongesturestart' in window;\n            })()\n        },\n        /*==================================================\n        Plugins\n        ====================================================*/\n        plugins: {}\n    };\n\n\n    /*===========================\n    Dom7 Library\n    ===========================*/\n    var Dom7 = (function () {\n        var Dom7 = function (arr) {\n            var _this = this, i = 0;\n            // Create array-like object\n            for (i = 0; i < arr.length; i++) {\n                _this[i] = arr[i];\n            }\n            _this.length = arr.length;\n            // Return collection with methods\n            return this;\n        };\n        var $ = function (selector, context) {\n            var arr = [], i = 0;\n            if (selector && !context) {\n                if (selector instanceof Dom7) {\n                    return selector;\n                }\n            }\n            if (selector) {\n                // String\n                if (typeof selector === 'string') {\n                    var els, tempParent, html = selector.trim();\n                    if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\n                        var toCreate = 'div';\n                        if (html.indexOf('<li') === 0) toCreate = 'ul';\n                        if (html.indexOf('<tr') === 0) toCreate = 'tbody';\n                        if (html.indexOf('<td') === 0 || html.indexOf('<th') === 0) toCreate = 'tr';\n                        if (html.indexOf('<tbody') === 0) toCreate = 'table';\n                        if (html.indexOf('<option') === 0) toCreate = 'select';\n                        tempParent = document.createElement(toCreate);\n                        tempParent.innerHTML = selector;\n                        for (i = 0; i < tempParent.childNodes.length; i++) {\n                            arr.push(tempParent.childNodes[i]);\n                        }\n                    }\n                    else {\n                        if (!context && selector[0] === '#' && !selector.match(/[ .<>:~]/)) {\n                            // Pure ID selector\n                            els = [document.getElementById(selector.split('#')[1])];\n                        }\n                        else {\n                            // Other selectors\n                            els = (context || document).querySelectorAll(selector);\n                        }\n                        for (i = 0; i < els.length; i++) {\n                            if (els[i]) arr.push(els[i]);\n                        }\n                    }\n                }\n                // Node/element\n                else if (selector.nodeType || selector === window || selector === document) {\n                    arr.push(selector);\n                }\n                //Array of elements or instance of Dom\n                else if (selector.length > 0 && selector[0].nodeType) {\n                    for (i = 0; i < selector.length; i++) {\n                        arr.push(selector[i]);\n                    }\n                }\n            }\n            return new Dom7(arr);\n        };\n        Dom7.prototype = {\n            // Classes and attriutes\n            addClass: function (className) {\n                if (typeof className === 'undefined') {\n                    return this;\n                }\n                var classes = className.split(' ');\n                for (var i = 0; i < classes.length; i++) {\n                    for (var j = 0; j < this.length; j++) {\n                        this[j].classList.add(classes[i]);\n                    }\n                }\n                return this;\n            },\n            removeClass: function (className) {\n                var classes = className.split(' ');\n                for (var i = 0; i < classes.length; i++) {\n                    for (var j = 0; j < this.length; j++) {\n                        this[j].classList.remove(classes[i]);\n                    }\n                }\n                return this;\n            },\n            hasClass: function (className) {\n                if (!this[0]) return false;\n                else return this[0].classList.contains(className);\n            },\n            toggleClass: function (className) {\n                var classes = className.split(' ');\n                for (var i = 0; i < classes.length; i++) {\n                    for (var j = 0; j < this.length; j++) {\n                        this[j].classList.toggle(classes[i]);\n                    }\n                }\n                return this;\n            },\n            attr: function (attrs, value) {\n                if (arguments.length === 1 && typeof attrs === 'string') {\n                    // Get attr\n                    if (this[0]) return this[0].getAttribute(attrs);\n                    else return undefined;\n                }\n                else {\n                    // Set attrs\n                    for (var i = 0; i < this.length; i++) {\n                        if (arguments.length === 2) {\n                            // String\n                            this[i].setAttribute(attrs, value);\n                        }\n                        else {\n                            // Object\n                            for (var attrName in attrs) {\n                                this[i][attrName] = attrs[attrName];\n                                this[i].setAttribute(attrName, attrs[attrName]);\n                            }\n                        }\n                    }\n                    return this;\n                }\n            },\n            removeAttr: function (attr) {\n                for (var i = 0; i < this.length; i++) {\n                    this[i].removeAttribute(attr);\n                }\n                return this;\n            },\n            data: function (key, value) {\n                if (typeof value === 'undefined') {\n                    // Get value\n                    if (this[0]) {\n                        var dataKey = this[0].getAttribute('data-' + key);\n                        if (dataKey) return dataKey;\n                        else if (this[0].dom7ElementDataStorage && (key in this[0].dom7ElementDataStorage)) return this[0].dom7ElementDataStorage[key];\n                        else return undefined;\n                    }\n                    else return undefined;\n                }\n                else {\n                    // Set value\n                    for (var i = 0; i < this.length; i++) {\n                        var el = this[i];\n                        if (!el.dom7ElementDataStorage) el.dom7ElementDataStorage = {};\n                        el.dom7ElementDataStorage[key] = value;\n                    }\n                    return this;\n                }\n            },\n            // Transforms\n            transform : function (transform) {\n                for (var i = 0; i < this.length; i++) {\n                    var elStyle = this[i].style;\n                    elStyle.webkitTransform = elStyle.MsTransform = elStyle.msTransform = elStyle.MozTransform = elStyle.OTransform = elStyle.transform = transform;\n                }\n                return this;\n            },\n            transition: function (duration) {\n                if (typeof duration !== 'string') {\n                    duration = duration + 'ms';\n                }\n                for (var i = 0; i < this.length; i++) {\n                    var elStyle = this[i].style;\n                    elStyle.webkitTransitionDuration = elStyle.MsTransitionDuration = elStyle.msTransitionDuration = elStyle.MozTransitionDuration = elStyle.OTransitionDuration = elStyle.transitionDuration = duration;\n                }\n                return this;\n            },\n            //Events\n            on: function (eventName, targetSelector, listener, capture) {\n                function handleLiveEvent(e) {\n                    var target = e.target;\n                    if ($(target).is(targetSelector)) listener.call(target, e);\n                    else {\n                        var parents = $(target).parents();\n                        for (var k = 0; k < parents.length; k++) {\n                            if ($(parents[k]).is(targetSelector)) listener.call(parents[k], e);\n                        }\n                    }\n                }\n                var events = eventName.split(' ');\n                var i, j;\n                for (i = 0; i < this.length; i++) {\n                    if (typeof targetSelector === 'function' || targetSelector === false) {\n                        // Usual events\n                        if (typeof targetSelector === 'function') {\n                            listener = arguments[1];\n                            capture = arguments[2] || false;\n                        }\n                        for (j = 0; j < events.length; j++) {\n                            this[i].addEventListener(events[j], listener, capture);\n                        }\n                    }\n                    else {\n                        //Live events\n                        for (j = 0; j < events.length; j++) {\n                            if (!this[i].dom7LiveListeners) this[i].dom7LiveListeners = [];\n                            this[i].dom7LiveListeners.push({listener: listener, liveListener: handleLiveEvent});\n                            this[i].addEventListener(events[j], handleLiveEvent, capture);\n                        }\n                    }\n                }\n\n                return this;\n            },\n            off: function (eventName, targetSelector, listener, capture) {\n                var events = eventName.split(' ');\n                for (var i = 0; i < events.length; i++) {\n                    for (var j = 0; j < this.length; j++) {\n                        if (typeof targetSelector === 'function' || targetSelector === false) {\n                            // Usual events\n                            if (typeof targetSelector === 'function') {\n                                listener = arguments[1];\n                                capture = arguments[2] || false;\n                            }\n                            this[j].removeEventListener(events[i], listener, capture);\n                        }\n                        else {\n                            // Live event\n                            if (this[j].dom7LiveListeners) {\n                                for (var k = 0; k < this[j].dom7LiveListeners.length; k++) {\n                                    if (this[j].dom7LiveListeners[k].listener === listener) {\n                                        this[j].removeEventListener(events[i], this[j].dom7LiveListeners[k].liveListener, capture);\n                                    }\n                                }\n                            }\n                        }\n                    }\n                }\n                return this;\n            },\n            once: function (eventName, targetSelector, listener, capture) {\n                var dom = this;\n                if (typeof targetSelector === 'function') {\n                    targetSelector = false;\n                    listener = arguments[1];\n                    capture = arguments[2];\n                }\n                function proxy(e) {\n                    listener(e);\n                    dom.off(eventName, targetSelector, proxy, capture);\n                }\n                dom.on(eventName, targetSelector, proxy, capture);\n            },\n            trigger: function (eventName, eventData) {\n                for (var i = 0; i < this.length; i++) {\n                    var evt;\n                    try {\n                        evt = new window.CustomEvent(eventName, {detail: eventData, bubbles: true, cancelable: true});\n                    }\n                    catch (e) {\n                        evt = document.createEvent('Event');\n                        evt.initEvent(eventName, true, true);\n                        evt.detail = eventData;\n                    }\n                    this[i].dispatchEvent(evt);\n                }\n                return this;\n            },\n            transitionEnd: function (callback) {\n                var events = ['webkitTransitionEnd', 'transitionend', 'oTransitionEnd', 'MSTransitionEnd', 'msTransitionEnd'],\n                    i, j, dom = this;\n                function fireCallBack(e) {\n                    /*jshint validthis:true */\n                    if (e.target !== this) return;\n                    callback.call(this, e);\n                    for (i = 0; i < events.length; i++) {\n                        dom.off(events[i], fireCallBack);\n                    }\n                }\n                if (callback) {\n                    for (i = 0; i < events.length; i++) {\n                        dom.on(events[i], fireCallBack);\n                    }\n                }\n                return this;\n            },\n            // Sizing/Styles\n            width: function () {\n                if (this[0] === window) {\n                    return window.innerWidth;\n                }\n                else {\n                    if (this.length > 0) {\n                        return parseFloat(this.css('width'));\n                    }\n                    else {\n                        return null;\n                    }\n                }\n            },\n            outerWidth: function (includeMargins) {\n                if (this.length > 0) {\n                    if (includeMargins)\n                        return this[0].offsetWidth + parseFloat(this.css('margin-right')) + parseFloat(this.css('margin-left'));\n                    else\n                        return this[0].offsetWidth;\n                }\n                else return null;\n            },\n            height: function () {\n                if (this[0] === window) {\n                    return window.innerHeight;\n                }\n                else {\n                    if (this.length > 0) {\n                        return parseFloat(this.css('height'));\n                    }\n                    else {\n                        return null;\n                    }\n                }\n            },\n            outerHeight: function (includeMargins) {\n                if (this.length > 0) {\n                    if (includeMargins)\n                        return this[0].offsetHeight + parseFloat(this.css('margin-top')) + parseFloat(this.css('margin-bottom'));\n                    else\n                        return this[0].offsetHeight;\n                }\n                else return null;\n            },\n            offset: function () {\n                if (this.length > 0) {\n                    var el = this[0];\n                    var box = el.getBoundingClientRect();\n                    var body = document.body;\n                    var clientTop  = el.clientTop  || body.clientTop  || 0;\n                    var clientLeft = el.clientLeft || body.clientLeft || 0;\n                    var scrollTop  = window.pageYOffset || el.scrollTop;\n                    var scrollLeft = window.pageXOffset || el.scrollLeft;\n                    return {\n                        top: box.top  + scrollTop  - clientTop,\n                        left: box.left + scrollLeft - clientLeft\n                    };\n                }\n                else {\n                    return null;\n                }\n            },\n            css: function (props, value) {\n                var i;\n                if (arguments.length === 1) {\n                    if (typeof props === 'string') {\n                        if (this[0]) return window.getComputedStyle(this[0], null).getPropertyValue(props);\n                    }\n                    else {\n                        for (i = 0; i < this.length; i++) {\n                            for (var prop in props) {\n                                this[i].style[prop] = props[prop];\n                            }\n                        }\n                        return this;\n                    }\n                }\n                if (arguments.length === 2 && typeof props === 'string') {\n                    for (i = 0; i < this.length; i++) {\n                        this[i].style[props] = value;\n                    }\n                    return this;\n                }\n                return this;\n            },\n\n            //Dom manipulation\n            each: function (callback) {\n                for (var i = 0; i < this.length; i++) {\n                    callback.call(this[i], i, this[i]);\n                }\n                return this;\n            },\n            html: function (html) {\n                if (typeof html === 'undefined') {\n                    return this[0] ? this[0].innerHTML : undefined;\n                }\n                else {\n                    for (var i = 0; i < this.length; i++) {\n                        this[i].innerHTML = html;\n                    }\n                    return this;\n                }\n            },\n            text: function (text) {\n                if (typeof text === 'undefined') {\n                    if (this[0]) {\n                        return this[0].textContent.trim();\n                    }\n                    else return null;\n                }\n                else {\n                    for (var i = 0; i < this.length; i++) {\n                        this[i].textContent = text;\n                    }\n                    return this;\n                }\n            },\n            is: function (selector) {\n                if (!this[0]) return false;\n                var compareWith, i;\n                if (typeof selector === 'string') {\n                    var el = this[0];\n                    if (el === document) return selector === document;\n                    if (el === window) return selector === window;\n\n                    if (el.matches) return el.matches(selector);\n                    else if (el.webkitMatchesSelector) return el.webkitMatchesSelector(selector);\n                    else if (el.mozMatchesSelector) return el.mozMatchesSelector(selector);\n                    else if (el.msMatchesSelector) return el.msMatchesSelector(selector);\n                    else {\n                        compareWith = $(selector);\n                        for (i = 0; i < compareWith.length; i++) {\n                            if (compareWith[i] === this[0]) return true;\n                        }\n                        return false;\n                    }\n                }\n                else if (selector === document) return this[0] === document;\n                else if (selector === window) return this[0] === window;\n                else {\n                    if (selector.nodeType || selector instanceof Dom7) {\n                        compareWith = selector.nodeType ? [selector] : selector;\n                        for (i = 0; i < compareWith.length; i++) {\n                            if (compareWith[i] === this[0]) return true;\n                        }\n                        return false;\n                    }\n                    return false;\n                }\n\n            },\n            index: function () {\n                if (this[0]) {\n                    var child = this[0];\n                    var i = 0;\n                    while ((child = child.previousSibling) !== null) {\n                        if (child.nodeType === 1) i++;\n                    }\n                    return i;\n                }\n                else return undefined;\n            },\n            eq: function (index) {\n                if (typeof index === 'undefined') return this;\n                var length = this.length;\n                var returnIndex;\n                if (index > length - 1) {\n                    return new Dom7([]);\n                }\n                if (index < 0) {\n                    returnIndex = length + index;\n                    if (returnIndex < 0) return new Dom7([]);\n                    else return new Dom7([this[returnIndex]]);\n                }\n                return new Dom7([this[index]]);\n            },\n            append: function (newChild) {\n                var i, j;\n                for (i = 0; i < this.length; i++) {\n                    if (typeof newChild === 'string') {\n                        var tempDiv = document.createElement('div');\n                        tempDiv.innerHTML = newChild;\n                        while (tempDiv.firstChild) {\n                            this[i].appendChild(tempDiv.firstChild);\n                        }\n                    }\n                    else if (newChild instanceof Dom7) {\n                        for (j = 0; j < newChild.length; j++) {\n                            this[i].appendChild(newChild[j]);\n                        }\n                    }\n                    else {\n                        this[i].appendChild(newChild);\n                    }\n                }\n                return this;\n            },\n            prepend: function (newChild) {\n                var i, j;\n                for (i = 0; i < this.length; i++) {\n                    if (typeof newChild === 'string') {\n                        var tempDiv = document.createElement('div');\n                        tempDiv.innerHTML = newChild;\n                        for (j = tempDiv.childNodes.length - 1; j >= 0; j--) {\n                            this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]);\n                        }\n                        // this[i].insertAdjacentHTML('afterbegin', newChild);\n                    }\n                    else if (newChild instanceof Dom7) {\n                        for (j = 0; j < newChild.length; j++) {\n                            this[i].insertBefore(newChild[j], this[i].childNodes[0]);\n                        }\n                    }\n                    else {\n                        this[i].insertBefore(newChild, this[i].childNodes[0]);\n                    }\n                }\n                return this;\n            },\n            insertBefore: function (selector) {\n                var before = $(selector);\n                for (var i = 0; i < this.length; i++) {\n                    if (before.length === 1) {\n                        before[0].parentNode.insertBefore(this[i], before[0]);\n                    }\n                    else if (before.length > 1) {\n                        for (var j = 0; j < before.length; j++) {\n                            before[j].parentNode.insertBefore(this[i].cloneNode(true), before[j]);\n                        }\n                    }\n                }\n            },\n            insertAfter: function (selector) {\n                var after = $(selector);\n                for (var i = 0; i < this.length; i++) {\n                    if (after.length === 1) {\n                        after[0].parentNode.insertBefore(this[i], after[0].nextSibling);\n                    }\n                    else if (after.length > 1) {\n                        for (var j = 0; j < after.length; j++) {\n                            after[j].parentNode.insertBefore(this[i].cloneNode(true), after[j].nextSibling);\n                        }\n                    }\n                }\n            },\n            next: function (selector) {\n                if (this.length > 0) {\n                    if (selector) {\n                        if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) return new Dom7([this[0].nextElementSibling]);\n                        else return new Dom7([]);\n                    }\n                    else {\n                        if (this[0].nextElementSibling) return new Dom7([this[0].nextElementSibling]);\n                        else return new Dom7([]);\n                    }\n                }\n                else return new Dom7([]);\n            },\n            nextAll: function (selector) {\n                var nextEls = [];\n                var el = this[0];\n                if (!el) return new Dom7([]);\n                while (el.nextElementSibling) {\n                    var next = el.nextElementSibling;\n                    if (selector) {\n                        if($(next).is(selector)) nextEls.push(next);\n                    }\n                    else nextEls.push(next);\n                    el = next;\n                }\n                return new Dom7(nextEls);\n            },\n            prev: function (selector) {\n                if (this.length > 0) {\n                    if (selector) {\n                        if (this[0].previousElementSibling && $(this[0].previousElementSibling).is(selector)) return new Dom7([this[0].previousElementSibling]);\n                        else return new Dom7([]);\n                    }\n                    else {\n                        if (this[0].previousElementSibling) return new Dom7([this[0].previousElementSibling]);\n                        else return new Dom7([]);\n                    }\n                }\n                else return new Dom7([]);\n            },\n            prevAll: function (selector) {\n                var prevEls = [];\n                var el = this[0];\n                if (!el) return new Dom7([]);\n                while (el.previousElementSibling) {\n                    var prev = el.previousElementSibling;\n                    if (selector) {\n                        if($(prev).is(selector)) prevEls.push(prev);\n                    }\n                    else prevEls.push(prev);\n                    el = prev;\n                }\n                return new Dom7(prevEls);\n            },\n            parent: function (selector) {\n                var parents = [];\n                for (var i = 0; i < this.length; i++) {\n                    if (selector) {\n                        if ($(this[i].parentNode).is(selector)) parents.push(this[i].parentNode);\n                    }\n                    else {\n                        parents.push(this[i].parentNode);\n                    }\n                }\n                return $($.unique(parents));\n            },\n            parents: function (selector) {\n                var parents = [];\n                for (var i = 0; i < this.length; i++) {\n                    var parent = this[i].parentNode;\n                    while (parent) {\n                        if (selector) {\n                            if ($(parent).is(selector)) parents.push(parent);\n                        }\n                        else {\n                            parents.push(parent);\n                        }\n                        parent = parent.parentNode;\n                    }\n                }\n                return $($.unique(parents));\n            },\n            find : function (selector) {\n                var foundElements = [];\n                for (var i = 0; i < this.length; i++) {\n                    var found = this[i].querySelectorAll(selector);\n                    for (var j = 0; j < found.length; j++) {\n                        foundElements.push(found[j]);\n                    }\n                }\n                return new Dom7(foundElements);\n            },\n            children: function (selector) {\n                var children = [];\n                for (var i = 0; i < this.length; i++) {\n                    var childNodes = this[i].childNodes;\n\n                    for (var j = 0; j < childNodes.length; j++) {\n                        if (!selector) {\n                            if (childNodes[j].nodeType === 1) children.push(childNodes[j]);\n                        }\n                        else {\n                            if (childNodes[j].nodeType === 1 && $(childNodes[j]).is(selector)) children.push(childNodes[j]);\n                        }\n                    }\n                }\n                return new Dom7($.unique(children));\n            },\n            remove: function () {\n                for (var i = 0; i < this.length; i++) {\n                    if (this[i].parentNode) this[i].parentNode.removeChild(this[i]);\n                }\n                return this;\n            },\n            add: function () {\n                var dom = this;\n                var i, j;\n                for (i = 0; i < arguments.length; i++) {\n                    var toAdd = $(arguments[i]);\n                    for (j = 0; j < toAdd.length; j++) {\n                        dom[dom.length] = toAdd[j];\n                        dom.length++;\n                    }\n                }\n                return dom;\n            }\n        };\n        $.fn = Dom7.prototype;\n        $.unique = function (arr) {\n            var unique = [];\n            for (var i = 0; i < arr.length; i++) {\n                if (unique.indexOf(arr[i]) === -1) unique.push(arr[i]);\n            }\n            return unique;\n        };\n\n        return $;\n    })();\n\n\n    /*===========================\n     Get Dom libraries\n     ===========================*/\n    var swiperDomPlugins = ['jQuery', 'Zepto', 'Dom7'];\n    for (var i = 0; i < swiperDomPlugins.length; i++) {\n    \tif (window[swiperDomPlugins[i]]) {\n    \t\taddLibraryPlugin(window[swiperDomPlugins[i]]);\n    \t}\n    }\n    // Required DOM Plugins\n    var domLib;\n    if (typeof Dom7 === 'undefined') {\n    \tdomLib = window.Dom7 || window.Zepto || window.jQuery;\n    }\n    else {\n    \tdomLib = Dom7;\n    }\n\n\n    /*===========================\n    Add .swiper plugin from Dom libraries\n    ===========================*/\n    function addLibraryPlugin(lib) {\n        lib.fn.swiper = function (params) {\n            var firstInstance;\n            lib(this).each(function () {\n                var s = new Swiper(this, params);\n                if (!firstInstance) firstInstance = s;\n            });\n            return firstInstance;\n        };\n    }\n\n    if (domLib) {\n        if (!('transitionEnd' in domLib.fn)) {\n            domLib.fn.transitionEnd = function (callback) {\n                var events = ['webkitTransitionEnd', 'transitionend', 'oTransitionEnd', 'MSTransitionEnd', 'msTransitionEnd'],\n                    i, j, dom = this;\n                function fireCallBack(e) {\n                    /*jshint validthis:true */\n                    if (e.target !== this) return;\n                    callback.call(this, e);\n                    for (i = 0; i < events.length; i++) {\n                        dom.off(events[i], fireCallBack);\n                    }\n                }\n                if (callback) {\n                    for (i = 0; i < events.length; i++) {\n                        dom.on(events[i], fireCallBack);\n                    }\n                }\n                return this;\n            };\n        }\n        if (!('transform' in domLib.fn)) {\n            domLib.fn.transform = function (transform) {\n                for (var i = 0; i < this.length; i++) {\n                    var elStyle = this[i].style;\n                    elStyle.webkitTransform = elStyle.MsTransform = elStyle.msTransform = elStyle.MozTransform = elStyle.OTransform = elStyle.transform = transform;\n                }\n                return this;\n            };\n        }\n        if (!('transition' in domLib.fn)) {\n            domLib.fn.transition = function (duration) {\n                if (typeof duration !== 'string') {\n                    duration = duration + 'ms';\n                }\n                for (var i = 0; i < this.length; i++) {\n                    var elStyle = this[i].style;\n                    elStyle.webkitTransitionDuration = elStyle.MsTransitionDuration = elStyle.msTransitionDuration = elStyle.MozTransitionDuration = elStyle.OTransitionDuration = elStyle.transitionDuration = duration;\n                }\n                return this;\n            };\n        }\n        if (!('outerWidth' in domLib.fn)) {\n            domLib.fn.outerWidth = function (includeMargins) {\n                if (this.length > 0) {\n                    if (includeMargins)\n                        return this[0].offsetWidth + parseFloat(this.css('margin-right')) + parseFloat(this.css('margin-left'));\n                    else\n                        return this[0].offsetWidth;\n                }\n                else return null;\n            };\n        }\n    }\n\n\n    window.Swiper = Swiper;\n})();\n\nexport default window.Swiper\n","'use strict';\nrequire('./es6.regexp.flags');\nvar anObject = require('./_an-object');\nvar $flags = require('./_flags');\nvar DESCRIPTORS = require('./_descriptors');\nvar TO_STRING = 'toString';\nvar $toString = /./[TO_STRING];\n\nvar define = function (fn) {\n  require('./_redefine')(RegExp.prototype, TO_STRING, fn, true);\n};\n\n// 21.2.5.14 RegExp.prototype.toString()\nif (require('./_fails')(function () { return $toString.call({ source: 'a', flags: 'b' }) != '/a/b'; })) {\n  define(function toString() {\n    var R = anObject(this);\n    return '/'.concat(R.source, '/',\n      'flags' in R ? R.flags : !DESCRIPTORS && R instanceof RegExp ? $flags.call(R) : undefined);\n  });\n// FF44- RegExp#toString has a wrong name\n} else if ($toString.name != TO_STRING) {\n  define(function toString() {\n    return $toString.call(this);\n  });\n}\n"],"sourceRoot":""}