{"version":3,"file":"new-deal-search-e322263c.min.js","sources":["../scripts/jquery.flexslider.js","../scripts/wNumb.min.js","../scripts/feature-snippet.js","../scripts/trending.js","../scripts/jquery.magnific-popup.js","../scripts/dragscroll.js","../scripts/jquery.sticky.min.js","../scripts/jquery.validate.min.js","../scripts/news-carousel-subscription.js","../scripts/vehicle-level-slider.js","../scripts/link-to-inbox.min.js","../scripts/components/faq-accordion.ts","../scripts/dealsearch/read-more.ts","../scripts/dealsearch/manufacturer-hero.ts","../scripts/dealsearch/range-hero.ts"],"sourcesContent":["\n/*\n * jQuery FlexSlider v2.6.0\n * Copyright 2012 WooThemes\n * Contributing Author: Tyler Smith\n */\n\n(function ($) {\n\n var focused = true;\n\n //FlexSlider: Object Instance\n $.flexslider = function (el, options) {\n var slider = $(el);\n\n // making variables public\n slider.vars = $.extend({}, $.flexslider.defaults, options);\n\n var namespace = slider.vars.namespace,\n msGesture = window.navigator && window.navigator.msPointerEnabled && window.MSGesture,\n touch = ((\"ontouchstart\" in window) || msGesture || window.DocumentTouch && document instanceof DocumentTouch) && slider.vars.touch,\n // depricating this idea, as devices are being released with both of these events\n eventType = \"click touchend MSPointerUp keyup\",\n watchedEvent = \"\",\n watchedEventClearTimer,\n vertical = slider.vars.direction === \"vertical\",\n reverse = slider.vars.reverse,\n carousel = (slider.vars.itemWidth > 0),\n fade = slider.vars.animation === \"fade\",\n asNav = slider.vars.asNavFor !== \"\",\n methods = {};\n\n // Store a reference to the slider object\n $.data(el, \"flexslider\", slider);\n\n // Private slider methods\n methods = {\n init: function () {\n slider.animating = false;\n // Get current slide and make sure it is a number\n slider.currentSlide = parseInt((slider.vars.startAt ? slider.vars.startAt : 0), 10);\n if (isNaN(slider.currentSlide)) { slider.currentSlide = 0; }\n slider.animatingTo = slider.currentSlide;\n slider.atEnd = (slider.currentSlide === 0 || slider.currentSlide === slider.last);\n slider.containerSelector = slider.vars.selector.substr(0, slider.vars.selector.search(' '));\n slider.slides = $(slider.vars.selector, slider);\n slider.container = $(slider.containerSelector, slider);\n slider.count = slider.slides.length;\n // SYNC:\n slider.syncExists = $(slider.vars.sync).length > 0;\n // SLIDE:\n if (slider.vars.animation === \"slide\") { slider.vars.animation = \"swing\"; }\n slider.prop = (vertical) ? \"top\" : \"marginLeft\";\n slider.args = {};\n // SLIDESHOW:\n slider.manualPause = false;\n slider.stopped = false;\n //PAUSE WHEN INVISIBLE\n slider.started = false;\n slider.startTimeout = null;\n // TOUCH/USECSS:\n slider.transitions = !slider.vars.video && !fade && slider.vars.useCSS && (function () {\n var obj = document.createElement('div'),\n props = ['perspectiveProperty', 'WebkitPerspective', 'MozPerspective', 'OPerspective', 'msPerspective'];\n for (var i in props) {\n if (obj.style[props[i]] !== undefined) {\n slider.pfx = props[i].replace('Perspective', '').toLowerCase();\n slider.prop = \"-\" + slider.pfx + \"-transform\";\n return true;\n }\n }\n return false;\n }());\n slider.ensureAnimationEnd = '';\n // CONTROLSCONTAINER:\n if (slider.vars.controlsContainer !== \"\") { slider.controlsContainer = $(slider.vars.controlsContainer).length > 0 && $(slider.vars.controlsContainer); }\n // MANUAL:\n if (slider.vars.manualControls !== \"\") { slider.manualControls = $(slider.vars.manualControls).length > 0 && $(slider.vars.manualControls); }\n\n // CUSTOM DIRECTION NAV:\n if (slider.vars.customDirectionNav !== \"\") { slider.customDirectionNav = $(slider.vars.customDirectionNav).length === 2 && $(slider.vars.customDirectionNav); }\n\n // RANDOMIZE:\n if (slider.vars.randomize) {\n slider.slides.sort(function () { return (Math.round(Math.random()) - 0.5); });\n slider.container.empty().append(slider.slides);\n }\n\n slider.doMath();\n\n // INIT\n slider.setup(\"init\");\n\n // CONTROLNAV:\n if (slider.vars.controlNav) { methods.controlNav.setup(); }\n\n // DIRECTIONNAV:\n if (slider.vars.directionNav) { methods.directionNav.setup(); }\n\n // KEYBOARD:\n if (slider.vars.keyboard && ($(slider.containerSelector).length === 1 || slider.vars.multipleKeyboard)) {\n $(document).bind('keyup', function (event) {\n var keycode = event.keyCode;\n if (!slider.animating && (keycode === 39 || keycode === 37)) {\n var target = (keycode === 39) ? slider.getTarget('next') :\n (keycode === 37) ? slider.getTarget('prev') : false;\n slider.flexAnimate(target, slider.vars.pauseOnAction);\n }\n });\n }\n // MOUSEWHEEL:\n if (slider.vars.mousewheel) {\n slider.bind('mousewheel', function (event, delta, deltaX, deltaY) {\n event.preventDefault();\n var target = (delta < 0) ? slider.getTarget('next') : slider.getTarget('prev');\n slider.flexAnimate(target, slider.vars.pauseOnAction);\n });\n }\n\n // PAUSEPLAY\n if (slider.vars.pausePlay) { methods.pausePlay.setup(); }\n\n //PAUSE WHEN INVISIBLE\n if (slider.vars.slideshow && slider.vars.pauseInvisible) { methods.pauseInvisible.init(); }\n\n // SLIDSESHOW\n if (slider.vars.slideshow) {\n if (slider.vars.pauseOnHover) {\n slider.hover(function () {\n if (!slider.manualPlay && !slider.manualPause) { slider.pause(); }\n }, function () {\n if (!slider.manualPause && !slider.manualPlay && !slider.stopped) { slider.play(); }\n });\n }\n // initialize animation\n //If we're visible, or we don't use PageVisibility API\n if (!slider.vars.pauseInvisible || !methods.pauseInvisible.isHidden()) {\n (slider.vars.initDelay > 0) ? slider.startTimeout = setTimeout(slider.play, slider.vars.initDelay) : slider.play();\n }\n }\n\n // ASNAV:\n if (asNav) { methods.asNav.setup(); }\n\n // TOUCH\n if (touch && slider.vars.touch) { methods.touch(); }\n\n // FADE&&SMOOTHHEIGHT || SLIDE:\n if (!fade || (fade && slider.vars.smoothHeight)) { $(window).bind(\"resize orientationchange focus\", methods.resize); }\n\n slider.find(\"img\").attr(\"draggable\", \"false\");\n\n // API: start() Callback\n setTimeout(function () {\n slider.vars.start(slider);\n }, 200);\n },\n asNav: {\n setup: function () {\n slider.asNav = true;\n slider.animatingTo = Math.floor(slider.currentSlide / slider.move);\n slider.currentItem = slider.currentSlide;\n slider.slides.removeClass(namespace + \"active-slide\").eq(slider.currentItem).addClass(namespace + \"active-slide\");\n if (!msGesture) {\n slider.slides.on(eventType, function (e) {\n e.preventDefault();\n var $slide = $(this),\n target = $slide.index();\n var posFromLeft = $slide.offset().left - $(slider).scrollLeft(); // Find position of slide relative to left of slider container\n if (posFromLeft <= 0 && $slide.hasClass(namespace + 'active-slide')) {\n slider.flexAnimate(slider.getTarget(\"prev\"), true);\n } else if (!$(slider.vars.asNavFor).data('flexslider').animating && !$slide.hasClass(namespace + \"active-slide\")) {\n slider.direction = (slider.currentItem < target) ? \"next\" : \"prev\";\n slider.flexAnimate(target, slider.vars.pauseOnAction, false, true, true);\n }\n });\n } else {\n el._slider = slider;\n slider.slides.each(function () {\n var that = this;\n that._gesture = new MSGesture();\n that._gesture.target = that;\n that.addEventListener(\"MSPointerDown\", function (e) {\n e.preventDefault();\n if (e.currentTarget._gesture) {\n e.currentTarget._gesture.addPointer(e.pointerId);\n }\n }, false);\n that.addEventListener(\"MSGestureTap\", function (e) {\n e.preventDefault();\n var $slide = $(this),\n target = $slide.index();\n if (!$(slider.vars.asNavFor).data('flexslider').animating && !$slide.hasClass('active')) {\n slider.direction = (slider.currentItem < target) ? \"next\" : \"prev\";\n slider.flexAnimate(target, slider.vars.pauseOnAction, false, true, true);\n }\n });\n });\n }\n }\n },\n controlNav: {\n setup: function () {\n if (!slider.manualControls) {\n methods.controlNav.setupPaging();\n } else { // MANUALCONTROLS:\n methods.controlNav.setupManual();\n }\n },\n setupPaging: function () {\n var type = (slider.vars.controlNav === \"thumbnails\") ? 'control-thumbs' : 'control-paging',\n j = 1,\n item,\n slide;\n\n slider.controlNavScaffold = $('
    ');\n\n if (slider.pagingCount > 1) {\n for (var i = 0; i < slider.pagingCount; i++) {\n slide = slider.slides.eq(i);\n if (undefined === slide.attr('data-thumb-alt')) { slide.attr('data-thumb-alt', ''); }\n altText = ('' !== slide.attr('data-thumb-alt')) ? altText = ' alt=\"' + slide.attr('data-thumb-alt') + '\"' : '';\n item = (slider.vars.controlNav === \"thumbnails\") ? '' : '' + j + '';\n if ('thumbnails' === slider.vars.controlNav && true === slider.vars.thumbCaptions) {\n var captn = slide.attr('data-thumbcaption');\n if ('' !== captn && undefined !== captn) { item += '' + captn + ''; }\n }\n slider.controlNavScaffold.append('
  1. ' + item + '
  2. ');\n j++;\n }\n }\n\n // CONTROLSCONTAINER:\n (slider.controlsContainer) ? $(slider.controlsContainer).append(slider.controlNavScaffold) : slider.append(slider.controlNavScaffold);\n methods.controlNav.set();\n\n methods.controlNav.active();\n\n slider.controlNavScaffold.delegate('a, img', eventType, function (event) {\n event.preventDefault();\n\n if (watchedEvent === \"\" || watchedEvent === event.type) {\n var $this = $(this),\n target = slider.controlNav.index($this);\n\n if (!$this.hasClass(namespace + 'active')) {\n slider.direction = (target > slider.currentSlide) ? \"next\" : \"prev\";\n slider.flexAnimate(target, slider.vars.pauseOnAction);\n }\n }\n\n // setup flags to prevent event duplication\n if (watchedEvent === \"\") {\n watchedEvent = event.type;\n }\n methods.setToClearWatchedEvent();\n\n });\n },\n setupManual: function () {\n slider.controlNav = slider.manualControls;\n methods.controlNav.active();\n\n slider.controlNav.bind(eventType, function (event) {\n event.preventDefault();\n\n if (watchedEvent === \"\" || watchedEvent === event.type) {\n var $this = $(this),\n target = slider.controlNav.index($this);\n\n if (!$this.hasClass(namespace + 'active')) {\n (target > slider.currentSlide) ? slider.direction = \"next\" : slider.direction = \"prev\";\n slider.flexAnimate(target, slider.vars.pauseOnAction);\n }\n }\n\n // setup flags to prevent event duplication\n if (watchedEvent === \"\") {\n watchedEvent = event.type;\n }\n methods.setToClearWatchedEvent();\n });\n },\n set: function () {\n var selector = (slider.vars.controlNav === \"thumbnails\") ? 'img' : 'a';\n slider.controlNav = $('.' + namespace + 'control-nav li ' + selector, (slider.controlsContainer) ? slider.controlsContainer : slider);\n },\n active: function () {\n slider.controlNav.removeClass(namespace + \"active\").eq(slider.animatingTo).addClass(namespace + \"active\");\n },\n update: function (action, pos) {\n if (slider.pagingCount > 1 && action === \"add\") {\n slider.controlNavScaffold.append($('
  3. ' + slider.count + '
  4. '));\n } else if (slider.pagingCount === 1) {\n slider.controlNavScaffold.find('li').remove();\n } else {\n slider.controlNav.eq(pos).closest('li').remove();\n }\n methods.controlNav.set();\n (slider.pagingCount > 1 && slider.pagingCount !== slider.controlNav.length) ? slider.update(pos, action) : methods.controlNav.active();\n }\n },\n directionNav: {\n setup: function () {\n var directionNavScaffold = $('');\n\n // CUSTOM DIRECTION NAV:\n if (slider.customDirectionNav) {\n slider.directionNav = slider.customDirectionNav;\n // CONTROLSCONTAINER:\n } else if (slider.controlsContainer) {\n $(slider.controlsContainer).append(directionNavScaffold);\n slider.directionNav = $('.' + namespace + 'direction-nav li a', slider.controlsContainer);\n } else {\n slider.append(directionNavScaffold);\n slider.directionNav = $('.' + namespace + 'direction-nav li a', slider);\n }\n\n methods.directionNav.update();\n\n slider.directionNav.bind(eventType, function (event) {\n event.preventDefault();\n var target;\n\n if (watchedEvent === \"\" || watchedEvent === event.type) {\n target = ($(this).hasClass(namespace + 'next')) ? slider.getTarget('next') : slider.getTarget('prev');\n slider.flexAnimate(target, slider.vars.pauseOnAction);\n }\n\n // setup flags to prevent event duplication\n if (watchedEvent === \"\") {\n watchedEvent = event.type;\n }\n methods.setToClearWatchedEvent();\n });\n },\n update: function () {\n var disabledClass = namespace + 'disabled';\n if (slider.pagingCount === 1) {\n slider.directionNav.addClass(disabledClass).attr('tabindex', '-1');\n } else if (!slider.vars.animationLoop) {\n if (slider.animatingTo === 0) {\n slider.directionNav.removeClass(disabledClass).filter('.' + namespace + \"prev\").addClass(disabledClass).attr('tabindex', '-1');\n } else if (slider.animatingTo === slider.last) {\n slider.directionNav.removeClass(disabledClass).filter('.' + namespace + \"next\").addClass(disabledClass).attr('tabindex', '-1');\n }\n //else {\n // slider.directionNav.removeClass(disabledClass).removeAttr('tabindex');\n //}\n }\n //else {\n // slider.directionNav.removeClass(disabledClass).removeAttr('tabindex');\n //}\n }\n },\n pausePlay: {\n setup: function () {\n var pausePlayScaffold = $('
    ');\n\n // CONTROLSCONTAINER:\n if (slider.controlsContainer) {\n slider.controlsContainer.append(pausePlayScaffold);\n slider.pausePlay = $('.' + namespace + 'pauseplay a', slider.controlsContainer);\n } else {\n slider.append(pausePlayScaffold);\n slider.pausePlay = $('.' + namespace + 'pauseplay a', slider);\n }\n\n methods.pausePlay.update((slider.vars.slideshow) ? namespace + 'pause' : namespace + 'play');\n\n slider.pausePlay.bind(eventType, function (event) {\n event.preventDefault();\n\n if (watchedEvent === \"\" || watchedEvent === event.type) {\n if ($(this).hasClass(namespace + 'pause')) {\n slider.manualPause = true;\n slider.manualPlay = false;\n slider.pause();\n } else {\n slider.manualPause = false;\n slider.manualPlay = true;\n slider.play();\n }\n }\n\n // setup flags to prevent event duplication\n if (watchedEvent === \"\") {\n watchedEvent = event.type;\n }\n methods.setToClearWatchedEvent();\n });\n },\n update: function (state) {\n (state === \"play\") ? slider.pausePlay.removeClass(namespace + 'pause').addClass(namespace + 'play').html(slider.vars.playText) : slider.pausePlay.removeClass(namespace + 'play').addClass(namespace + 'pause').html(slider.vars.pauseText);\n }\n },\n touch: function () {\n var startX,\n startY,\n offset,\n cwidth,\n dx,\n startT,\n onTouchStart,\n onTouchMove,\n onTouchEnd,\n scrolling = false,\n localX = 0,\n localY = 0,\n accDx = 0;\n\n if (!msGesture) {\n onTouchStart = function (e) {\n if (slider.animating) {\n e.preventDefault();\n } else if ((window.navigator.msPointerEnabled) || e.touches.length === 1) {\n slider.pause();\n // CAROUSEL:\n cwidth = (vertical) ? slider.h : slider.w;\n startT = Number(new Date());\n // CAROUSEL:\n\n // Local vars for X and Y points.\n localX = e.touches[0].pageX;\n localY = e.touches[0].pageY;\n\n offset = (carousel && reverse && slider.animatingTo === slider.last) ? 0 :\n (carousel && reverse) ? slider.limit - (((slider.itemW + slider.vars.itemMargin) * slider.move) * slider.animatingTo) :\n (carousel && slider.currentSlide === slider.last) ? slider.limit :\n (carousel) ? ((slider.itemW + slider.vars.itemMargin) * slider.move) * slider.currentSlide :\n (reverse) ? (slider.last - slider.currentSlide + slider.cloneOffset) * cwidth : (slider.currentSlide + slider.cloneOffset) * cwidth;\n startX = (vertical) ? localY : localX;\n startY = (vertical) ? localX : localY;\n\n el.addEventListener('touchmove', onTouchMove, false);\n el.addEventListener('touchend', onTouchEnd, false);\n }\n };\n\n onTouchMove = function (e) {\n // Local vars for X and Y points.\n\n localX = e.touches[0].pageX;\n localY = e.touches[0].pageY;\n\n dx = (vertical) ? startX - localY : startX - localX;\n scrolling = (vertical) ? (Math.abs(dx) < Math.abs(localX - startY)) : (Math.abs(dx) < Math.abs(localY - startY));\n\n var fxms = 500;\n\n if (!scrolling || Number(new Date()) - startT > fxms) {\n e.preventDefault();\n if (!fade && slider.transitions) {\n if (!slider.vars.animationLoop) {\n dx = dx / ((slider.currentSlide === 0 && dx < 0 || slider.currentSlide === slider.last && dx > 0) ? (Math.abs(dx) / cwidth + 2) : 1);\n }\n slider.setProps(offset + dx, \"setTouch\");\n }\n }\n };\n\n onTouchEnd = function (e) {\n // finish the touch by undoing the touch session\n el.removeEventListener('touchmove', onTouchMove, false);\n\n if (slider.animatingTo === slider.currentSlide && !scrolling && !(dx === null)) {\n var updateDx = (reverse) ? -dx : dx,\n target = (updateDx > 0) ? slider.getTarget('next') : slider.getTarget('prev');\n\n if (slider.canAdvance(target) && (Number(new Date()) - startT < 550 && Math.abs(updateDx) > 50 || Math.abs(updateDx) > cwidth / 2)) {\n slider.flexAnimate(target, slider.vars.pauseOnAction);\n } else {\n if (!fade) { slider.flexAnimate(slider.currentSlide, slider.vars.pauseOnAction, true); }\n }\n }\n el.removeEventListener('touchend', onTouchEnd, false);\n\n startX = null;\n startY = null;\n dx = null;\n offset = null;\n };\n\n el.addEventListener('touchstart', onTouchStart, { passive: true });\n } else {\n el.style.msTouchAction = \"none\";\n el._gesture = new MSGesture();\n el._gesture.target = el;\n el.addEventListener(\"MSPointerDown\", onMSPointerDown, false);\n el._slider = slider;\n el.addEventListener(\"MSGestureChange\", onMSGestureChange, false);\n el.addEventListener(\"MSGestureEnd\", onMSGestureEnd, false);\n\n function onMSPointerDown(e) {\n e.stopPropagation();\n if (slider.animating) {\n e.preventDefault();\n } else {\n slider.pause();\n el._gesture.addPointer(e.pointerId);\n accDx = 0;\n cwidth = (vertical) ? slider.h : slider.w;\n startT = Number(new Date());\n // CAROUSEL:\n\n offset = (carousel && reverse && slider.animatingTo === slider.last) ? 0 :\n (carousel && reverse) ? slider.limit - (((slider.itemW + slider.vars.itemMargin) * slider.move) * slider.animatingTo) :\n (carousel && slider.currentSlide === slider.last) ? slider.limit :\n (carousel) ? ((slider.itemW + slider.vars.itemMargin) * slider.move) * slider.currentSlide :\n (reverse) ? (slider.last - slider.currentSlide + slider.cloneOffset) * cwidth : (slider.currentSlide + slider.cloneOffset) * cwidth;\n }\n }\n\n function onMSGestureChange(e) {\n e.stopPropagation();\n var slider = e.target._slider;\n if (!slider) {\n return;\n }\n var transX = -e.translationX,\n transY = -e.translationY;\n\n //Accumulate translations.\n accDx = accDx + ((vertical) ? transY : transX);\n dx = accDx;\n scrolling = (vertical) ? (Math.abs(accDx) < Math.abs(-transX)) : (Math.abs(accDx) < Math.abs(-transY));\n\n if (e.detail === e.MSGESTURE_FLAG_INERTIA) {\n setImmediate(function () {\n el._gesture.stop();\n });\n\n return;\n }\n\n if (!scrolling || Number(new Date()) - startT > 500) {\n e.preventDefault();\n if (!fade && slider.transitions) {\n if (!slider.vars.animationLoop) {\n dx = accDx / ((slider.currentSlide === 0 && accDx < 0 || slider.currentSlide === slider.last && accDx > 0) ? (Math.abs(accDx) / cwidth + 2) : 1);\n }\n slider.setProps(offset + dx, \"setTouch\");\n }\n }\n }\n\n function onMSGestureEnd(e) {\n e.stopPropagation();\n var slider = e.target._slider;\n if (!slider) {\n return;\n }\n if (slider.animatingTo === slider.currentSlide && !scrolling && !(dx === null)) {\n var updateDx = (reverse) ? -dx : dx,\n target = (updateDx > 0) ? slider.getTarget('next') : slider.getTarget('prev');\n\n if (slider.canAdvance(target) && (Number(new Date()) - startT < 550 && Math.abs(updateDx) > 50 || Math.abs(updateDx) > cwidth / 2)) {\n slider.flexAnimate(target, slider.vars.pauseOnAction);\n } else {\n if (!fade) { slider.flexAnimate(slider.currentSlide, slider.vars.pauseOnAction, true); }\n }\n }\n\n startX = null;\n startY = null;\n dx = null;\n offset = null;\n accDx = 0;\n }\n }\n },\n resize: function () {\n if (!slider.animating && slider.is(':visible')) {\n if (!carousel) { slider.doMath(); }\n\n if (fade) {\n // SMOOTH HEIGHT:\n methods.smoothHeight();\n } else if (carousel) { //CAROUSEL:\n slider.slides.width(slider.computedW);\n slider.update(slider.pagingCount);\n slider.setProps();\n }\n else if (vertical) { //VERTICAL:\n slider.viewport.height(slider.h);\n slider.setProps(slider.h, \"setTotal\");\n } else {\n // SMOOTH HEIGHT:\n if (slider.vars.smoothHeight) { methods.smoothHeight(); }\n slider.newSlides.width(slider.computedW);\n slider.setProps(slider.computedW, \"setTotal\");\n }\n }\n },\n smoothHeight: function (dur) {\n if (!vertical || fade) {\n var $obj = (fade) ? slider : slider.viewport;\n (dur) ? $obj.animate({ \"height\": slider.slides.eq(slider.animatingTo).height() }, dur) : $obj.height(slider.slides.eq(slider.animatingTo).height());\n }\n },\n sync: function (action) {\n var $obj = $(slider.vars.sync).data(\"flexslider\"),\n target = slider.animatingTo;\n\n switch (action) {\n case \"animate\": $obj.flexAnimate(target, slider.vars.pauseOnAction, false, true); break;\n case \"play\": if (!$obj.playing && !$obj.asNav) { $obj.play(); } break;\n case \"pause\": $obj.pause(); break;\n }\n },\n uniqueID: function ($clone) {\n // Append _clone to current level and children elements with id attributes\n $clone.filter('[id]').add($clone.find('[id]')).each(function () {\n var $this = $(this);\n $this.attr('id', $this.attr('id') + '_clone');\n });\n return $clone;\n },\n pauseInvisible: {\n visProp: null,\n init: function () {\n var visProp = methods.pauseInvisible.getHiddenProp();\n if (visProp) {\n var evtname = visProp.replace(/[H|h]idden/, '') + 'visibilitychange';\n document.addEventListener(evtname, function () {\n if (methods.pauseInvisible.isHidden()) {\n if (slider.startTimeout) {\n clearTimeout(slider.startTimeout); //If clock is ticking, stop timer and prevent from starting while invisible\n } else {\n slider.pause(); //Or just pause\n }\n }\n else {\n if (slider.started) {\n slider.play(); //Initiated before, just play\n } else {\n if (slider.vars.initDelay > 0) {\n setTimeout(slider.play, slider.vars.initDelay);\n } else {\n slider.play(); //Didn't init before: simply init or wait for it\n }\n }\n }\n });\n }\n },\n isHidden: function () {\n var prop = methods.pauseInvisible.getHiddenProp();\n if (!prop) {\n return false;\n }\n return document[prop];\n },\n getHiddenProp: function () {\n var prefixes = ['webkit', 'moz', 'ms', 'o'];\n // if 'hidden' is natively supported just return it\n if ('hidden' in document) {\n return 'hidden';\n }\n // otherwise loop over all the known prefixes until we find one\n for (var i = 0; i < prefixes.length; i++) {\n if ((prefixes[i] + 'Hidden') in document) {\n return prefixes[i] + 'Hidden';\n }\n }\n // otherwise it's not supported\n return null;\n }\n },\n setToClearWatchedEvent: function () {\n clearTimeout(watchedEventClearTimer);\n watchedEventClearTimer = setTimeout(function () {\n watchedEvent = \"\";\n }, 3000);\n }\n };\n\n // public methods\n slider.flexAnimate = function (target, pause, override, withSync, fromNav) {\n if (!slider.vars.animationLoop && target !== slider.currentSlide) {\n slider.direction = (target > slider.currentSlide) ? \"next\" : \"prev\";\n }\n\n if (asNav && slider.pagingCount === 1) slider.direction = (slider.currentItem < target) ? \"next\" : \"prev\";\n\n if (!slider.animating && (slider.canAdvance(target, fromNav) || override) && slider.is(\":visible\")) {\n if (asNav && withSync) {\n var master = $(slider.vars.asNavFor).data('flexslider');\n slider.atEnd = target === 0 || target === slider.count - 1;\n master.flexAnimate(target, true, false, true, fromNav);\n slider.direction = (slider.currentItem < target) ? \"next\" : \"prev\";\n master.direction = slider.direction;\n\n if (Math.ceil((target + 1) / slider.visible) - 1 !== slider.currentSlide && target !== 0) {\n slider.currentItem = target;\n slider.slides.removeClass(namespace + \"active-slide\").eq(target).addClass(namespace + \"active-slide\");\n target = Math.floor(target / slider.visible);\n } else {\n slider.currentItem = target;\n slider.slides.removeClass(namespace + \"active-slide\").eq(target).addClass(namespace + \"active-slide\");\n return false;\n }\n }\n\n slider.animating = true;\n slider.animatingTo = target;\n\n // SLIDESHOW:\n if (pause) { slider.pause(); }\n\n // API: before() animation Callback\n slider.vars.before(slider);\n\n // SYNC:\n if (slider.syncExists && !fromNav) { methods.sync(\"animate\"); }\n\n // CONTROLNAV\n if (slider.vars.controlNav) { methods.controlNav.active(); }\n\n // !CAROUSEL:\n // CANDIDATE: slide active class (for add/remove slide)\n if (!carousel) { slider.slides.removeClass(namespace + 'active-slide').eq(target).addClass(namespace + 'active-slide'); }\n\n // INFINITE LOOP:\n // CANDIDATE: atEnd\n slider.atEnd = target === 0 || target === slider.last;\n\n // DIRECTIONNAV:\n if (slider.vars.directionNav) { methods.directionNav.update(); }\n\n if (target === slider.last) {\n // API: end() of cycle Callback\n slider.vars.end(slider);\n // SLIDESHOW && !INFINITE LOOP:\n if (!slider.vars.animationLoop) { slider.pause(); }\n }\n\n // SLIDE:\n if (!fade) {\n var dimension = (vertical) ? slider.slides.filter(':first').height() : slider.computedW,\n margin, slideString, calcNext;\n\n // INFINITE LOOP / REVERSE:\n if (carousel) {\n margin = slider.vars.itemMargin;\n calcNext = ((slider.itemW + margin) * slider.move) * slider.animatingTo;\n slideString = (calcNext > slider.limit && slider.visible !== 1) ? slider.limit : calcNext;\n } else if (slider.currentSlide === 0 && target === slider.count - 1 && slider.vars.animationLoop && slider.direction !== \"next\") {\n slideString = (reverse) ? (slider.count + slider.cloneOffset) * dimension : 0;\n } else if (slider.currentSlide === slider.last && target === 0 && slider.vars.animationLoop && slider.direction !== \"prev\") {\n slideString = (reverse) ? 0 : (slider.count + 1) * dimension;\n } else {\n slideString = (reverse) ? ((slider.count - 1) - target + slider.cloneOffset) * dimension : (target + slider.cloneOffset) * dimension;\n }\n slider.setProps(slideString, \"\", slider.vars.animationSpeed);\n if (slider.transitions) {\n if (!slider.vars.animationLoop || !slider.atEnd) {\n slider.animating = false;\n slider.currentSlide = slider.animatingTo;\n }\n\n // Unbind previous transitionEnd events and re-bind new transitionEnd event\n slider.container.unbind(\"webkitTransitionEnd transitionend\");\n slider.container.bind(\"webkitTransitionEnd transitionend\", function () {\n clearTimeout(slider.ensureAnimationEnd);\n slider.wrapup(dimension);\n });\n\n // Insurance for the ever-so-fickle transitionEnd event\n clearTimeout(slider.ensureAnimationEnd);\n slider.ensureAnimationEnd = setTimeout(function () {\n slider.wrapup(dimension);\n }, slider.vars.animationSpeed + 100);\n\n } else {\n slider.container.animate(slider.args, slider.vars.animationSpeed, slider.vars.easing, function () {\n slider.wrapup(dimension);\n });\n }\n } else { // FADE:\n if (!touch) {\n //slider.slides.eq(slider.currentSlide).fadeOut(slider.vars.animationSpeed, slider.vars.easing);\n //slider.slides.eq(target).fadeIn(slider.vars.animationSpeed, slider.vars.easing, slider.wrapup);\n\n slider.slides.eq(slider.currentSlide).css({ \"zIndex\": 1 }).animate({ \"opacity\": 0 }, slider.vars.animationSpeed, slider.vars.easing);\n slider.slides.eq(target).css({ \"zIndex\": 2 }).animate({ \"opacity\": 1 }, slider.vars.animationSpeed, slider.vars.easing, slider.wrapup);\n\n } else {\n slider.slides.eq(slider.currentSlide).css({ \"opacity\": 0, \"zIndex\": 1 });\n slider.slides.eq(target).css({ \"opacity\": 1, \"zIndex\": 2 });\n slider.wrapup(dimension);\n }\n }\n // SMOOTH HEIGHT:\n if (slider.vars.smoothHeight) { methods.smoothHeight(slider.vars.animationSpeed); }\n }\n };\n slider.wrapup = function (dimension) {\n // SLIDE:\n if (!fade && !carousel) {\n if (slider.currentSlide === 0 && slider.animatingTo === slider.last && slider.vars.animationLoop) {\n slider.setProps(dimension, \"jumpEnd\");\n } else if (slider.currentSlide === slider.last && slider.animatingTo === 0 && slider.vars.animationLoop) {\n slider.setProps(dimension, \"jumpStart\");\n }\n }\n slider.animating = false;\n slider.currentSlide = slider.animatingTo;\n // API: after() animation Callback\n slider.vars.after(slider);\n };\n\n // SLIDESHOW:\n slider.animateSlides = function () {\n if (!slider.animating && focused) { slider.flexAnimate(slider.getTarget(\"next\")); }\n };\n // SLIDESHOW:\n slider.pause = function () {\n clearInterval(slider.animatedSlides);\n slider.animatedSlides = null;\n slider.playing = false;\n // PAUSEPLAY:\n if (slider.vars.pausePlay) { methods.pausePlay.update(\"play\"); }\n // SYNC:\n if (slider.syncExists) { methods.sync(\"pause\"); }\n };\n // SLIDESHOW:\n slider.play = function () {\n if (slider.playing) { clearInterval(slider.animatedSlides); }\n slider.animatedSlides = slider.animatedSlides || setInterval(slider.animateSlides, slider.vars.slideshowSpeed);\n slider.started = slider.playing = true;\n // PAUSEPLAY:\n if (slider.vars.pausePlay) { methods.pausePlay.update(\"pause\"); }\n // SYNC:\n if (slider.syncExists) { methods.sync(\"play\"); }\n };\n // STOP:\n slider.stop = function () {\n slider.pause();\n slider.stopped = true;\n };\n slider.canAdvance = function (target, fromNav) {\n // ASNAV:\n var last = (asNav) ? slider.pagingCount - 1 : slider.last;\n return (fromNav) ? true :\n (asNav && slider.currentItem === slider.count - 1 && target === 0 && slider.direction === \"prev\") ? true :\n (asNav && slider.currentItem === 0 && target === slider.pagingCount - 1 && slider.direction !== \"next\") ? false :\n (target === slider.currentSlide && !asNav) ? false :\n (slider.vars.animationLoop) ? true :\n (slider.atEnd && slider.currentSlide === 0 && target === last && slider.direction !== \"next\") ? false :\n (slider.atEnd && slider.currentSlide === last && target === 0 && slider.direction === \"next\") ? false :\n true;\n };\n slider.getTarget = function (dir) {\n slider.direction = dir;\n if (dir === \"next\") {\n return (slider.currentSlide === slider.last) ? 0 : slider.currentSlide + 1;\n } else {\n return (slider.currentSlide === 0) ? slider.last : slider.currentSlide - 1;\n }\n };\n\n // SLIDE:\n slider.setProps = function (pos, special, dur) {\n var target = (function () {\n var posCheck = (pos) ? pos : ((slider.itemW + slider.vars.itemMargin) * slider.move) * slider.animatingTo,\n posCalc = (function () {\n if (carousel) {\n return (special === \"setTouch\") ? pos :\n (reverse && slider.animatingTo === slider.last) ? 0 :\n (reverse) ? slider.limit - (((slider.itemW + slider.vars.itemMargin) * slider.move) * slider.animatingTo) :\n (slider.animatingTo === slider.last) ? slider.limit : posCheck;\n } else {\n switch (special) {\n case \"setTotal\": return (reverse) ? ((slider.count - 1) - slider.currentSlide + slider.cloneOffset) * pos : (slider.currentSlide + slider.cloneOffset) * pos;\n case \"setTouch\": return (reverse) ? pos : pos;\n case \"jumpEnd\": return (reverse) ? pos : slider.count * pos;\n case \"jumpStart\": return (reverse) ? slider.count * pos : pos;\n default: return pos;\n }\n }\n }());\n\n return (posCalc * -1) + \"px\";\n }());\n\n if (slider.transitions) {\n target = (vertical) ? \"translate3d(0,\" + target + \",0)\" : \"translate3d(\" + target + \",0,0)\";\n dur = (dur !== undefined) ? (dur / 1000) + \"s\" : \"0s\";\n slider.container.css(\"-\" + slider.pfx + \"-transition-duration\", dur);\n slider.container.css(\"transition-duration\", dur);\n }\n\n slider.args[slider.prop] = target;\n if (slider.transitions || dur === undefined) { slider.container.css(slider.args); }\n\n slider.container.css('transform', target);\n };\n\n slider.setup = function (type) {\n // SLIDE:\n if (!fade) {\n var sliderOffset, arr;\n\n if (type === \"init\") {\n slider.viewport = $('
    ').css({ \"overflow\": \"hidden\", \"position\": \"relative\" }).appendTo(slider).append(slider.container);\n // INFINITE LOOP:\n slider.cloneCount = 0;\n slider.cloneOffset = 0;\n // REVERSE:\n if (reverse) {\n arr = $.makeArray(slider.slides).reverse();\n slider.slides = $(arr);\n slider.container.empty().append(slider.slides);\n }\n }\n // INFINITE LOOP && !CAROUSEL:\n if (slider.vars.animationLoop && !carousel) {\n slider.cloneCount = 2;\n slider.cloneOffset = 1;\n // clear out old clones\n if (type !== \"init\") { slider.container.find('.clone').remove(); }\n slider.container.append(methods.uniqueID(slider.slides.first().clone().addClass('clone')).attr('aria-hidden', 'true'))\n .prepend(methods.uniqueID(slider.slides.last().clone().addClass('clone')).attr('aria-hidden', 'true'));\n }\n slider.newSlides = $(slider.vars.selector, slider);\n\n sliderOffset = (reverse) ? slider.count - 1 - slider.currentSlide + slider.cloneOffset : slider.currentSlide + slider.cloneOffset;\n // VERTICAL:\n if (vertical && !carousel) {\n slider.container.height((slider.count + slider.cloneCount) * 200 + \"%\").css(\"position\", \"absolute\").width(\"100%\");\n setTimeout(function () {\n slider.newSlides.css({ \"display\": \"block\" });\n slider.doMath();\n slider.viewport.height(slider.h);\n slider.setProps(sliderOffset * slider.h, \"init\");\n }, (type === \"init\") ? 100 : 0);\n } else {\n slider.container.width((slider.count + slider.cloneCount) * 200 + \"%\");\n slider.setProps(sliderOffset * slider.computedW, \"init\");\n setTimeout(function () {\n slider.doMath();\n slider.newSlides.css({ \"width\": slider.computedW, \"marginRight\": slider.computedM, \"float\": \"left\", \"display\": \"block\" });\n // SMOOTH HEIGHT:\n if (slider.vars.smoothHeight) { methods.smoothHeight(); }\n }, (type === \"init\") ? 100 : 0);\n }\n } else { // FADE:\n slider.slides.css({ \"width\": \"100%\", \"float\": \"left\", \"marginRight\": \"-100%\", \"position\": \"relative\" });\n if (type === \"init\") {\n if (!touch) {\n //slider.slides.eq(slider.currentSlide).fadeIn(slider.vars.animationSpeed, slider.vars.easing);\n if (slider.vars.fadeFirstSlide == false) {\n slider.slides.css({ \"opacity\": 0, \"display\": \"block\", \"zIndex\": 1 }).eq(slider.currentSlide).css({ \"zIndex\": 2 }).css({ \"opacity\": 1 });\n } else {\n slider.slides.css({ \"opacity\": 0, \"display\": \"block\", \"zIndex\": 1 }).eq(slider.currentSlide).css({ \"zIndex\": 2 }).animate({ \"opacity\": 1 }, slider.vars.animationSpeed, slider.vars.easing);\n }\n } else {\n slider.slides.css({ \"opacity\": 0, \"display\": \"block\", \"webkitTransition\": \"opacity \" + slider.vars.animationSpeed / 1000 + \"s ease\", \"zIndex\": 1 }).eq(slider.currentSlide).css({ \"opacity\": 1, \"zIndex\": 2 });\n }\n }\n // SMOOTH HEIGHT:\n if (slider.vars.smoothHeight) { methods.smoothHeight(); }\n }\n // !CAROUSEL:\n // CANDIDATE: active slide\n if (!carousel) { slider.slides.removeClass(namespace + \"active-slide\").eq(slider.currentSlide).addClass(namespace + \"active-slide\"); }\n\n //FlexSlider: init() Callback\n slider.vars.init(slider);\n };\n\n slider.doMath = function () {\n var slide = slider.slides.first(),\n slideMargin = slider.vars.itemMargin,\n minItems = slider.vars.minItems,\n maxItems = slider.vars.maxItems;\n\n slider.w = (slider.viewport === undefined) ? slider.width() : slider.viewport.width();\n slider.h = slide.height();\n slider.boxPadding = slide.outerWidth() - slide.width();\n\n // CAROUSEL:\n if (carousel) {\n slider.itemT = slider.vars.itemWidth + slideMargin;\n slider.itemM = slideMargin;\n slider.minW = (minItems) ? minItems * slider.itemT : slider.w;\n slider.maxW = (maxItems) ? (maxItems * slider.itemT) - slideMargin : slider.w;\n slider.itemW = (slider.minW > slider.w) ? (slider.w - (slideMargin * (minItems - 1))) / minItems :\n (slider.maxW < slider.w) ? (slider.w - (slideMargin * (maxItems - 1))) / maxItems :\n (slider.vars.itemWidth > slider.w) ? slider.w : slider.vars.itemWidth;\n\n slider.visible = Math.floor(slider.w / (slider.itemW));\n slider.move = (slider.vars.move > 0 && slider.vars.move < slider.visible) ? slider.vars.move : slider.visible;\n slider.pagingCount = Math.ceil(((slider.count - slider.visible) / slider.move) + 1);\n slider.last = slider.pagingCount - 1;\n slider.limit = (slider.pagingCount === 1) ? 0 :\n (slider.vars.itemWidth > slider.w) ? (slider.itemW * (slider.count - 1)) + (slideMargin * (slider.count - 1)) : ((slider.itemW + slideMargin) * slider.count) - slider.w - slideMargin;\n } else {\n slider.itemW = slider.w;\n slider.itemM = slideMargin;\n slider.pagingCount = slider.count;\n slider.last = slider.count - 1;\n }\n slider.computedW = slider.itemW - slider.boxPadding;\n slider.computedM = slider.itemM;\n };\n\n slider.update = function (pos, action) {\n slider.doMath();\n\n // update currentSlide and slider.animatingTo if necessary\n if (!carousel) {\n if (pos < slider.currentSlide) {\n slider.currentSlide += 1;\n } else if (pos <= slider.currentSlide && pos !== 0) {\n slider.currentSlide -= 1;\n }\n slider.animatingTo = slider.currentSlide;\n }\n\n // update controlNav\n if (slider.vars.controlNav && !slider.manualControls) {\n if ((action === \"add\" && !carousel) || slider.pagingCount > slider.controlNav.length) {\n methods.controlNav.update(\"add\");\n } else if ((action === \"remove\" && !carousel) || slider.pagingCount < slider.controlNav.length) {\n if (carousel && slider.currentSlide > slider.last) {\n slider.currentSlide -= 1;\n slider.animatingTo -= 1;\n }\n methods.controlNav.update(\"remove\", slider.last);\n }\n }\n // update directionNav\n if (slider.vars.directionNav) { methods.directionNav.update(); }\n\n };\n\n slider.addSlide = function (obj, pos) {\n var $obj = $(obj);\n\n slider.count += 1;\n slider.last = slider.count - 1;\n\n // append new slide\n if (vertical && reverse) {\n (pos !== undefined) ? slider.slides.eq(slider.count - pos).after($obj) : slider.container.prepend($obj);\n } else {\n (pos !== undefined) ? slider.slides.eq(pos).before($obj) : slider.container.append($obj);\n }\n\n // update currentSlide, animatingTo, controlNav, and directionNav\n slider.update(pos, \"add\");\n\n // update slider.slides\n slider.slides = $(slider.vars.selector + ':not(.clone)', slider);\n // re-setup the slider to accomdate new slide\n slider.setup();\n\n //FlexSlider: added() Callback\n slider.vars.added(slider);\n };\n slider.removeSlide = function (obj) {\n var pos = (isNaN(obj)) ? slider.slides.index($(obj)) : obj;\n\n // update count\n slider.count -= 1;\n slider.last = slider.count - 1;\n\n // remove slide\n if (isNaN(obj)) {\n $(obj, slider.slides).remove();\n } else {\n (vertical && reverse) ? slider.slides.eq(slider.last).remove() : slider.slides.eq(obj).remove();\n }\n\n // update currentSlide, animatingTo, controlNav, and directionNav\n slider.doMath();\n slider.update(pos, \"remove\");\n\n // update slider.slides\n slider.slides = $(slider.vars.selector + ':not(.clone)', slider);\n // re-setup the slider to accomdate new slide\n slider.setup();\n\n // FlexSlider: removed() Callback\n slider.vars.removed(slider);\n };\n\n //FlexSlider: Initialize\n methods.init();\n };\n\n // Ensure the slider isn't focussed if the window loses focus.\n $(window).blur(function (e) {\n focused = false;\n }).focus(function (e) {\n focused = true;\n });\n\n //FlexSlider: Default Settings\n $.flexslider.defaults = {\n namespace: \"flex-\", //{NEW} String: Prefix string attached to the class of every element generated by the plugin\n selector: \".slides > li\", //{NEW} Selector: Must match a simple pattern. '{container} > {slide}' -- Ignore pattern at your own peril\n animation: \"fade\", //String: Select your animation type, \"fade\" or \"slide\"\n easing: \"swing\", //{NEW} String: Determines the easing method used in jQuery transitions. jQuery easing plugin is supported!\n direction: \"horizontal\", //String: Select the sliding direction, \"horizontal\" or \"vertical\"\n reverse: false, //{NEW} Boolean: Reverse the animation direction\n animationLoop: true, //Boolean: Should the animation loop? If false, directionNav will received \"disable\" classes at either end\n smoothHeight: false, //{NEW} Boolean: Allow height of the slider to animate smoothly in horizontal mode\n startAt: 0, //Integer: The slide that the slider should start on. Array notation (0 = first slide)\n slideshow: true, //Boolean: Animate slider automatically\n slideshowSpeed: 7000, //Integer: Set the speed of the slideshow cycling, in milliseconds\n animationSpeed: 600, //Integer: Set the speed of animations, in milliseconds\n initDelay: 0, //{NEW} Integer: Set an initialization delay, in milliseconds\n randomize: false, //Boolean: Randomize slide order\n fadeFirstSlide: true, //Boolean: Fade in the first slide when animation type is \"fade\"\n thumbCaptions: false, //Boolean: Whether or not to put captions on thumbnails when using the \"thumbnails\" controlNav.\n\n // Usability features\n pauseOnAction: true, //Boolean: Pause the slideshow when interacting with control elements, highly recommended.\n pauseOnHover: false, //Boolean: Pause the slideshow when hovering over slider, then resume when no longer hovering\n pauseInvisible: true, \t\t//{NEW} Boolean: Pause the slideshow when tab is invisible, resume when visible. Provides better UX, lower CPU usage.\n useCSS: true, //{NEW} Boolean: Slider will use CSS3 transitions if available\n touch: true, //{NEW} Boolean: Allow touch swipe navigation of the slider on touch-enabled devices\n video: false, //{NEW} Boolean: If using video in the slider, will prevent CSS3 3D Transforms to avoid graphical glitches\n\n // Primary Controls\n controlNav: true, //Boolean: Create navigation for paging control of each slide? Note: Leave true for manualControls usage\n directionNav: true, //Boolean: Create navigation for previous/next navigation? (true/false)\n prevText: \"Previous\", //String: Set the text for the \"previous\" directionNav item\n nextText: \"Next\", //String: Set the text for the \"next\" directionNav item\n\n // Secondary Navigation\n keyboard: true, //Boolean: Allow slider navigating via keyboard left/right keys\n multipleKeyboard: false, //{NEW} Boolean: Allow keyboard navigation to affect multiple sliders. Default behavior cuts out keyboard navigation with more than one slider present.\n mousewheel: false, //{UPDATED} Boolean: Requires jquery.mousewheel.js (https://github.com/brandonaaron/jquery-mousewheel) - Allows slider navigating via mousewheel\n pausePlay: false, //Boolean: Create pause/play dynamic element\n pauseText: \"Pause\", //String: Set the text for the \"pause\" pausePlay item\n playText: \"Play\", //String: Set the text for the \"play\" pausePlay item\n\n // Special properties\n controlsContainer: \"\", //{UPDATED} jQuery Object/Selector: Declare which container the navigation elements should be appended too. Default container is the FlexSlider element. Example use would be $(\".flexslider-container\"). Property is ignored if given element is not found.\n manualControls: \"\", //{UPDATED} jQuery Object/Selector: Declare custom control navigation. Examples would be $(\".flex-control-nav li\") or \"#tabs-nav li img\", etc. The number of elements in your controlNav should match the number of slides/tabs.\n customDirectionNav: \"\", //{NEW} jQuery Object/Selector: Custom prev / next button. Must be two jQuery elements. In order to make the events work they have to have the classes \"prev\" and \"next\" (plus namespace)\n sync: \"\", //{NEW} Selector: Mirror the actions performed on this slider with another slider. Use with care.\n asNavFor: \"\", //{NEW} Selector: Internal property exposed for turning the slider into a thumbnail navigation for another slider\n\n // Carousel Options\n itemWidth: 0, //{NEW} Integer: Box-model width of individual carousel items, including horizontal borders and padding.\n itemMargin: 0, //{NEW} Integer: Margin between carousel items.\n minItems: 1, //{NEW} Integer: Minimum number of carousel items that should be visible. Items will resize fluidly when below this.\n maxItems: 0, //{NEW} Integer: Maxmimum number of carousel items that should be visible. Items will resize fluidly when above this limit.\n move: 0, //{NEW} Integer: Number of carousel items that should move on animation. If 0, slider will move all visible items.\n allowOneSlide: true, //{NEW} Boolean: Whether or not to allow a slider comprised of a single slide\n\n // Callback API\n start: function () { }, //Callback: function(slider) - Fires when the slider loads the first slide\n before: function () { }, //Callback: function(slider) - Fires asynchronously with each slider animation\n after: function () { }, //Callback: function(slider) - Fires after each slider animation completes\n end: function () { }, //Callback: function(slider) - Fires when the slider reaches the last slide (asynchronous)\n added: function () { }, //{NEW} Callback: function(slider) - Fires after a slide is added\n removed: function () { }, //{NEW} Callback: function(slider) - Fires after a slide is removed\n init: function () { } //{NEW} Callback: function(slider) - Fires after the slider is initially setup\n };\n\n //FlexSlider: Plugin Function\n $.fn.flexslider = function (options) {\n if (options === undefined) { options = {}; }\n\n if (typeof options === \"object\") {\n return this.each(function () {\n var $this = $(this),\n selector = (options.selector) ? options.selector : \".slides > li\",\n $slides = $this.find(selector);\n\n if (($slides.length === 1 && options.allowOneSlide === true) || $slides.length === 0) {\n $slides.fadeIn(400);\n\n if (options.start) { options.start($this); }\n } else if ($this.data('flexslider') === undefined) {\n new $.flexslider(this, options);\n }\n });\n } else {\n // Helper strings to quickly perform functions on the slider\n var $slider = $(this).data('flexslider');\n switch (options) {\n case \"play\": $slider.play(); break;\n case \"pause\": $slider.pause(); break;\n case \"stop\": $slider.stop(); break;\n case \"next\": $slider.flexAnimate($slider.getTarget(\"next\"), true); break;\n case \"prev\":\n case \"previous\": $slider.flexAnimate($slider.getTarget(\"prev\"), true); break;\n default: if (typeof options === \"number\") { $slider.flexAnimate(options, true); }\n }\n }\n };\n})(jQuery);\n","!function(){\"use strict\";function b(a){return a.split(\"\").reverse().join(\"\")}function c(a,b){return a.substring(0,b.length)===b}function d(a,b){return a.slice(-1*b.length)===b}function e(a,b,c){if((a[b]||a[c])&&a[b]===a[c])throw new Error(b)}function f(a){return\"number\"==typeof a&&isFinite(a)}function g(a,b){var c=Math.pow(10,b);return(Math.round(a*c)/c).toFixed(b)}function h(a,c,d,e,h,i,j,k,l,m,n,o){var q,r,s,p=o,t=\"\",u=\"\";return i&&(o=i(o)),!!f(o)&&(!1!==a&&0===parseFloat(o.toFixed(a))&&(o=0),o<0&&(q=!0,o=Math.abs(o)),!1!==a&&(o=g(o,a)),o=o.toString(),-1!==o.indexOf(\".\")?(r=o.split(\".\"),s=r[0],d&&(t=d+r[1])):s=o,c&&(s=b(s).match(/.{1,3}/g),s=b(s.join(b(c)))),q&&k&&(u+=k),e&&(u+=e),q&&l&&(u+=l),u+=s,u+=t,h&&(u+=h),m&&(u=m(u,p)),u)}function i(a,b,e,g,h,i,j,k,l,m,n,o){var q,r=\"\";return n&&(o=n(o)),!(!o||\"string\"!=typeof o)&&(k&&c(o,k)&&(o=o.replace(k,\"\"),q=!0),g&&c(o,g)&&(o=o.replace(g,\"\")),l&&c(o,l)&&(o=o.replace(l,\"\"),q=!0),h&&d(o,h)&&(o=o.slice(0,-1*h.length)),b&&(o=o.split(b).join(\"\")),e&&(o=o.replace(e,\".\")),q&&(r+=\"-\"),r+=o,\"\"!==(r=r.replace(/[^0-9\\.\\-.]/g,\"\"))&&(r=Number(r),j&&(r=j(r)),!!f(r)&&r))}function j(b){var c,d,f,g={};for(c=0;c=0&&f<8))throw new Error(d);g[d]=f}else if(\"encoder\"===d||\"decoder\"===d||\"edit\"===d||\"undo\"===d){if(\"function\"!=typeof f)throw new Error(d);g[d]=f}else{if(\"string\"!=typeof f)throw new Error(d);g[d]=f}return e(g,\"mark\",\"thousand\"),e(g,\"prefix\",\"negative\"),e(g,\"prefix\",\"negativeBefore\"),g}function k(b,c,d){var e,f=[];for(e=0;e>core*/\n /**\n * \n * Magnific Popup Core JS file\n * \n */\n\n\n /**\n * Private static constants\n */\n var CLOSE_EVENT = 'Close',\n BEFORE_CLOSE_EVENT = 'BeforeClose',\n AFTER_CLOSE_EVENT = 'AfterClose',\n BEFORE_APPEND_EVENT = 'BeforeAppend',\n MARKUP_PARSE_EVENT = 'MarkupParse',\n OPEN_EVENT = 'Open',\n CHANGE_EVENT = 'Change',\n NS = 'mfp',\n EVENT_NS = '.' + NS,\n READY_CLASS = 'mfp-ready',\n REMOVING_CLASS = 'mfp-removing',\n PREVENT_CLOSE_CLASS = 'mfp-prevent-close';\n\n\n /**\n * Private vars \n */\n /*jshint -W079 */\n var mfp, // As we have only one instance of MagnificPopup object, we define it locally to not to use 'this'\n MagnificPopup = function () { },\n _isJQ = !!(window.jQuery),\n _prevStatus,\n _window = $(window),\n _document,\n _prevContentType,\n _wrapClasses,\n _currPopupType;\n\n\n /*\n * Private functions\n */\n var _mfpOn = function (name, f) {\n mfp.ev.on(NS + name + EVENT_NS, f);\n },\n _getEl = function (className, appendTo, html, raw) {\n var el = document.createElement('div');\n el.className = 'mfp-' + className;\n if (html) {\n el.innerHTML = html;\n }\n if (!raw) {\n el = $(el);\n if (appendTo) {\n el.appendTo(appendTo);\n }\n } else if (appendTo) {\n appendTo.appendChild(el);\n }\n return el;\n },\n _mfpTrigger = function (e, data) {\n mfp.ev.triggerHandler(NS + e, data);\n\n if (mfp.st.callbacks) {\n // converts \"mfpEventName\" to \"eventName\" callback and triggers it if it's present\n e = e.charAt(0).toLowerCase() + e.slice(1);\n if (mfp.st.callbacks[e]) {\n mfp.st.callbacks[e].apply(mfp, $.isArray(data) ? data : [data]);\n }\n }\n },\n _getCloseBtn = function (type) {\n if (type !== _currPopupType || !mfp.currTemplate.closeBtn) {\n mfp.currTemplate.closeBtn = $(mfp.st.closeMarkup.replace('%title%', mfp.st.tClose));\n _currPopupType = type;\n }\n return mfp.currTemplate.closeBtn;\n },\n // Initialize Magnific Popup only when called at least once\n _checkInstance = function () {\n if (!$.magnificPopup.instance) {\n /*jshint -W020 */\n mfp = new MagnificPopup();\n mfp.init();\n $.magnificPopup.instance = mfp;\n }\n },\n // CSS transition detection, http://stackoverflow.com/questions/7264899/detect-css-transitions-using-javascript-and-without-modernizr\n supportsTransitions = function () {\n var s = document.createElement('p').style, // 's' for style. better to create an element if body yet to exist\n v = ['ms', 'O', 'Moz', 'Webkit']; // 'v' for vendor\n\n if (s['transition'] !== undefined) {\n return true;\n }\n\n while (v.length) {\n if (v.pop() + 'Transition' in s) {\n return true;\n }\n }\n\n return false;\n };\n\n\n\n /**\n * Public functions\n */\n MagnificPopup.prototype = {\n\n constructor: MagnificPopup,\n\n /**\n * Initializes Magnific Popup plugin. \n * This function is triggered only once when $.fn.magnificPopup or $.magnificPopup is executed\n */\n init: function () {\n var appVersion = navigator.appVersion;\n mfp.isAndroid = (/android/gi).test(appVersion);\n mfp.isIOS = (/iphone|ipad|ipod/gi).test(appVersion);\n mfp.supportsTransition = supportsTransitions();\n\n // We disable fixed positioned lightbox on devices that don't handle it nicely.\n // If you know a better way of detecting this - let me know.\n mfp.probablyMobile = (mfp.isAndroid || mfp.isIOS || /(Opera Mini)|Kindle|webOS|BlackBerry|(Opera Mobi)|(Windows Phone)|IEMobile/i.test(navigator.userAgent));\n _document = $(document);\n\n mfp.popupsCache = {};\n },\n\n /*\n * Opens popup\n * @param data [description]\n */\n open: function (data) {\n\n var i;\n\n if (data.isObj === false) {\n // convert jQuery collection to array to avoid conflicts later\n mfp.items = data.items.toArray();\n\n mfp.index = 0;\n var items = data.items,\n item;\n for (i = 0; i < items.length; i++) {\n item = items[i];\n if (item.parsed) {\n item = item.el[0];\n }\n if (item === data.el[0]) {\n mfp.index = i;\n break;\n }\n }\n } else {\n mfp.items = $.isArray(data.items) ? data.items : [data.items];\n mfp.index = data.index || 0;\n }\n\n // if popup is already opened - we just update the content\n if (mfp.isOpen) {\n mfp.updateItemHTML();\n return;\n }\n\n mfp.types = [];\n _wrapClasses = '';\n if (data.mainEl && data.mainEl.length) {\n mfp.ev = data.mainEl.eq(0);\n } else {\n mfp.ev = _document;\n }\n\n if (data.key) {\n if (!mfp.popupsCache[data.key]) {\n mfp.popupsCache[data.key] = {};\n }\n mfp.currTemplate = mfp.popupsCache[data.key];\n } else {\n mfp.currTemplate = {};\n }\n\n\n\n mfp.st = $.extend(true, {}, $.magnificPopup.defaults, data);\n mfp.fixedContentPos = mfp.st.fixedContentPos === 'auto' ? !mfp.probablyMobile : mfp.st.fixedContentPos;\n\n if (mfp.st.modal) {\n mfp.st.closeOnContentClick = false;\n mfp.st.closeOnBgClick = false;\n mfp.st.showCloseBtn = false;\n mfp.st.enableEscapeKey = false;\n }\n\n\n // Building markup\n // main containers are created only once\n if (!mfp.bgOverlay) {\n\n // Dark overlay\n mfp.bgOverlay = _getEl('bg').on('click' + EVENT_NS, function () {\n mfp.close();\n });\n\n mfp.wrap = _getEl('wrap').attr('tabindex', -1).on('click' + EVENT_NS, function (e) {\n if (mfp._checkIfClose(e.target)) {\n mfp.close();\n }\n });\n\n mfp.container = _getEl('container', mfp.wrap);\n }\n\n mfp.contentContainer = _getEl('content');\n if (mfp.st.preloader) {\n mfp.preloader = _getEl('preloader', mfp.container, mfp.st.tLoading);\n }\n\n\n // Initializing modules\n var modules = $.magnificPopup.modules;\n for (i = 0; i < modules.length; i++) {\n var n = modules[i];\n n = n.charAt(0).toUpperCase() + n.slice(1);\n mfp['init' + n].call(mfp);\n }\n _mfpTrigger('BeforeOpen');\n\n\n if (mfp.st.showCloseBtn) {\n // Close button\n if (!mfp.st.closeBtnInside) {\n mfp.wrap.append(_getCloseBtn());\n } else {\n _mfpOn(MARKUP_PARSE_EVENT, function (e, template, values, item) {\n values.close_replaceWith = _getCloseBtn(item.type);\n });\n _wrapClasses += ' mfp-close-btn-in';\n }\n }\n\n if (mfp.st.alignTop) {\n _wrapClasses += ' mfp-align-top';\n }\n\n\n\n if (mfp.fixedContentPos) {\n mfp.wrap.css({\n overflow: mfp.st.overflowY,\n overflowX: 'hidden',\n overflowY: mfp.st.overflowY\n });\n } else {\n mfp.wrap.css({\n top: _window.scrollTop(),\n position: 'absolute'\n });\n }\n if (mfp.st.fixedBgPos === false || (mfp.st.fixedBgPos === 'auto' && !mfp.fixedContentPos)) {\n mfp.bgOverlay.css({\n height: _document.height(),\n position: 'absolute'\n });\n }\n\n\n\n if (mfp.st.enableEscapeKey) {\n // Close on ESC key\n _document.on('keyup' + EVENT_NS, function (e) {\n if (e.keyCode === 27) {\n mfp.close();\n }\n });\n }\n\n _window.on('resize' + EVENT_NS, function () {\n mfp.updateSize();\n });\n\n\n if (!mfp.st.closeOnContentClick) {\n _wrapClasses += ' mfp-auto-cursor';\n }\n\n if (_wrapClasses)\n mfp.wrap.addClass(_wrapClasses);\n\n\n // this triggers recalculation of layout, so we get it once to not to trigger twice\n var windowHeight = mfp.wH = _window.height();\n\n\n var windowStyles = {};\n\n if (mfp.fixedContentPos) {\n if (mfp._hasScrollBar(windowHeight)) {\n var s = mfp._getScrollbarSize();\n if (s) {\n windowStyles.marginRight = s;\n }\n }\n }\n\n if (mfp.fixedContentPos) {\n windowStyles.overflow = 'hidden';\n }\n\n var classesToadd = mfp.st.mainClass;\n\n if (classesToadd) {\n mfp._addClassToMFP(classesToadd);\n }\n\n // add content\n mfp.updateItemHTML();\n\n _mfpTrigger('BuildControls');\n\n // remove scrollbar, add margin e.t.c\n $('html').css(windowStyles);\n\n // add everything to DOM\n mfp.bgOverlay.add(mfp.wrap).prependTo(mfp.st.prependTo || $(document.body));\n\n // Save last focused element\n mfp._lastFocusedEl = document.activeElement;\n\n // Wait for next cycle to allow CSS transition\n setTimeout(function () {\n\n if (mfp.content) {\n mfp._addClassToMFP(READY_CLASS);\n mfp._setFocus();\n } else {\n // if content is not defined (not loaded e.t.c) we add class only for BG\n mfp.bgOverlay.addClass(READY_CLASS);\n }\n\n // Trap the focus in popup\n _document.on('focusin' + EVENT_NS, mfp._onFocusIn);\n\n }, 16);\n\n mfp.isOpen = true;\n mfp.updateSize(windowHeight);\n _mfpTrigger(OPEN_EVENT);\n\n return data;\n },\n\n /**\n * Closes the popup\n */\n close: function () {\n if (!mfp.isOpen) return;\n _mfpTrigger(BEFORE_CLOSE_EVENT);\n\n mfp.isOpen = false;\n // for CSS3 animation\n if (mfp.st.removalDelay && mfp.supportsTransition) {\n mfp._addClassToMFP(REMOVING_CLASS);\n setTimeout(function () {\n mfp._close();\n }, mfp.st.removalDelay);\n } else {\n mfp._close();\n }\n },\n\n /**\n * Helper for close() function\n */\n _close: function () {\n _mfpTrigger(CLOSE_EVENT);\n\n var classesToRemove = REMOVING_CLASS + ' ' + READY_CLASS + ' ';\n\n mfp.bgOverlay.detach();\n mfp.wrap.detach();\n mfp.container.empty();\n\n if (mfp.st.mainClass) {\n classesToRemove += mfp.st.mainClass + ' ';\n }\n\n mfp._removeClassFromMFP(classesToRemove);\n\n if (mfp.fixedContentPos) {\n var windowStyles = { marginRight: '' };\n windowStyles.overflow = '';\n $('html').css(windowStyles);\n }\n\n _document.off('keyup' + EVENT_NS + ' focusin' + EVENT_NS);\n mfp.ev.off(EVENT_NS);\n\n // clean up DOM elements that aren't removed\n mfp.wrap.attr('class', 'mfp-wrap').removeAttr('style');\n mfp.bgOverlay.attr('class', 'mfp-bg');\n mfp.container.attr('class', 'mfp-container');\n\n // remove close button from target element\n if (mfp.st.showCloseBtn &&\n (!mfp.st.closeBtnInside || mfp.currTemplate[mfp.currItem.type] === true)) {\n if (mfp.currTemplate.closeBtn)\n mfp.currTemplate.closeBtn.detach();\n }\n\n\n if (mfp.st.autoFocusLast && mfp._lastFocusedEl) {\n $(mfp._lastFocusedEl).focus(); // put tab focus back\n }\n mfp.currItem = null;\n mfp.content = null;\n mfp.currTemplate = null;\n mfp.prevHeight = 0;\n\n _mfpTrigger(AFTER_CLOSE_EVENT);\n },\n\n updateSize: function (winHeight) {\n\n if (mfp.isIOS) {\n // fixes iOS nav bars https://github.com/dimsemenov/Magnific-Popup/issues/2\n var zoomLevel = document.documentElement.clientWidth / window.innerWidth;\n var height = window.innerHeight * zoomLevel;\n mfp.wrap.css('height', height);\n mfp.wH = height;\n } else {\n mfp.wH = winHeight || _window.height();\n }\n // Fixes #84: popup incorrectly positioned with position:relative on body\n if (!mfp.fixedContentPos) {\n mfp.wrap.css('height', mfp.wH);\n }\n\n _mfpTrigger('Resize');\n\n },\n\n /**\n * Set content of popup based on current index\n */\n updateItemHTML: function () {\n var item = mfp.items[mfp.index];\n\n // Detach and perform modifications\n mfp.contentContainer.detach();\n\n if (mfp.content)\n mfp.content.detach();\n\n if (!item.parsed) {\n item = mfp.parseEl(mfp.index);\n }\n\n var type = item.type;\n\n _mfpTrigger('BeforeChange', [mfp.currItem ? mfp.currItem.type : '', type]);\n // BeforeChange event works like so:\n // _mfpOn('BeforeChange', function(e, prevType, newType) { });\n\n mfp.currItem = item;\n\n if (!mfp.currTemplate[type]) {\n var markup = mfp.st[type] ? mfp.st[type].markup : false;\n\n // allows to modify markup\n _mfpTrigger('FirstMarkupParse', markup);\n\n if (markup) {\n mfp.currTemplate[type] = $(markup);\n } else {\n // if there is no markup found we just define that template is parsed\n mfp.currTemplate[type] = true;\n }\n }\n\n if (_prevContentType && _prevContentType !== item.type) {\n mfp.container.removeClass('mfp-' + _prevContentType + '-holder');\n }\n\n var newContent = mfp['get' + type.charAt(0).toUpperCase() + type.slice(1)](item, mfp.currTemplate[type]);\n mfp.appendContent(newContent, type);\n\n item.preloaded = true;\n\n _mfpTrigger(CHANGE_EVENT, item);\n _prevContentType = item.type;\n\n // Append container back after its content changed\n mfp.container.prepend(mfp.contentContainer);\n\n _mfpTrigger('AfterChange');\n },\n\n\n /*\n * Set HTML content of popup\n */\n appendContent: function (newContent, type) {\n mfp.content = newContent;\n\n if (newContent) {\n if (mfp.st.showCloseBtn && mfp.st.closeBtnInside &&\n mfp.currTemplate[type] === true) {\n // if there is no markup, we just append close button element inside\n if (!mfp.content.find('.mfp-close').length) {\n mfp.content.append(_getCloseBtn());\n }\n } else {\n mfp.content = newContent;\n }\n } else {\n mfp.content = '';\n }\n\n _mfpTrigger(BEFORE_APPEND_EVENT);\n mfp.container.addClass('mfp-' + type + '-holder');\n\n mfp.contentContainer.append(mfp.content);\n },\n\n\n /*\n * Creates Magnific Popup data object based on given data\n * @param {int} index Index of item to parse\n */\n parseEl: function (index) {\n var item = mfp.items[index],\n type;\n\n if (item.tagName) {\n item = { el: $(item) };\n } else {\n type = item.type;\n item = { data: item, src: item.src };\n }\n\n if (item.el) {\n var types = mfp.types;\n\n // check for 'mfp-TYPE' class\n for (var i = 0; i < types.length; i++) {\n if (item.el.hasClass('mfp-' + types[i])) {\n type = types[i];\n break;\n }\n }\n\n item.src = item.el.attr('data-mfp-src');\n if (!item.src) {\n item.src = item.el.attr('href');\n }\n }\n\n item.type = type || mfp.st.type || 'inline';\n item.index = index;\n item.parsed = true;\n mfp.items[index] = item;\n _mfpTrigger('ElementParse', item);\n\n return mfp.items[index];\n },\n\n\n /*\n * Initializes single popup or a group of popups\n */\n addGroup: function (el, options) {\n var eHandler = function (e) {\n e.mfpEl = this;\n mfp._openClick(e, el, options);\n };\n\n if (!options) {\n options = {};\n }\n\n var eName = 'click.magnificPopup';\n options.mainEl = el;\n\n if (options.items) {\n options.isObj = true;\n el.off(eName).on(eName, eHandler);\n } else {\n options.isObj = false;\n if (options.delegate) {\n el.off(eName).on(eName, options.delegate, eHandler);\n } else {\n options.items = el;\n el.off(eName).on(eName, eHandler);\n }\n }\n },\n _openClick: function (e, el, options) {\n var midClick = options.midClick !== undefined ? options.midClick : $.magnificPopup.defaults.midClick;\n\n\n if (!midClick && (e.which === 2 || e.ctrlKey || e.metaKey || e.altKey || e.shiftKey)) {\n return;\n }\n\n var disableOn = options.disableOn !== undefined ? options.disableOn : $.magnificPopup.defaults.disableOn;\n\n if (disableOn) {\n if ($.isFunction(disableOn)) {\n if (!disableOn.call(mfp)) {\n return true;\n }\n } else { // else it's number\n if (_window.width() < disableOn) {\n return true;\n }\n }\n }\n\n if (e.type) {\n e.preventDefault();\n\n // This will prevent popup from closing if element is inside and popup is already opened\n if (mfp.isOpen) {\n e.stopPropagation();\n }\n }\n\n options.el = $(e.mfpEl);\n if (options.delegate) {\n options.items = el.find(options.delegate);\n }\n mfp.open(options);\n },\n\n\n /*\n * Updates text on preloader\n */\n updateStatus: function (status, text) {\n\n if (mfp.preloader) {\n if (_prevStatus !== status) {\n mfp.container.removeClass('mfp-s-' + _prevStatus);\n }\n\n if (!text && status === 'loading') {\n text = mfp.st.tLoading;\n }\n\n var data = {\n status: status,\n text: text\n };\n // allows to modify status\n _mfpTrigger('UpdateStatus', data);\n\n status = data.status;\n text = data.text;\n\n mfp.preloader.html(text);\n\n mfp.preloader.find('a').on('click', function (e) {\n e.stopImmediatePropagation();\n });\n\n mfp.container.addClass('mfp-s-' + status);\n _prevStatus = status;\n }\n },\n\n\n /*\n \"Private\" helpers that aren't private at all\n */\n // Check to close popup or not\n // \"target\" is an element that was clicked\n _checkIfClose: function (target) {\n\n if ($(target).hasClass(PREVENT_CLOSE_CLASS)) {\n return;\n }\n\n var closeOnContent = mfp.st.closeOnContentClick;\n var closeOnBg = mfp.st.closeOnBgClick;\n\n if (closeOnContent && closeOnBg) {\n return true;\n } else {\n\n // We close the popup if click is on close button or on preloader. Or if there is no content.\n if (!mfp.content || $(target).hasClass('mfp-close') || (mfp.preloader && target === mfp.preloader[0])) {\n return true;\n }\n\n // if click is outside the content\n if ((target !== mfp.content[0] && !$.contains(mfp.content[0], target))) {\n if (closeOnBg) {\n // last check, if the clicked element is in DOM, (in case it's removed onclick)\n if ($.contains(document, target)) {\n return true;\n }\n }\n } else if (closeOnContent) {\n return true;\n }\n\n }\n return false;\n },\n _addClassToMFP: function (cName) {\n mfp.bgOverlay.addClass(cName);\n mfp.wrap.addClass(cName);\n },\n _removeClassFromMFP: function (cName) {\n this.bgOverlay.removeClass(cName);\n mfp.wrap.removeClass(cName);\n },\n _hasScrollBar: function (winHeight) {\n return ((document.body.scrollHeight) > (winHeight || _window.height()));\n },\n _setFocus: function () {\n (mfp.st.focus ? mfp.content.find(mfp.st.focus).eq(0) : mfp.wrap).focus();\n },\n _onFocusIn: function (e) {\n if (e.target !== mfp.wrap[0] && !$.contains(mfp.wrap[0], e.target)) {\n mfp._setFocus();\n return false;\n }\n },\n _parseMarkup: function (template, values, item) {\n var arr;\n if (item.data) {\n values = $.extend(item.data, values);\n }\n _mfpTrigger(MARKUP_PARSE_EVENT, [template, values, item]);\n\n $.each(values, function (key, value) {\n if (value === undefined || value === false) {\n return true;\n }\n arr = key.split('_');\n if (arr.length > 1) {\n var el = template.find(EVENT_NS + '-' + arr[0]);\n\n if (el.length > 0) {\n var attr = arr[1];\n if (attr === 'replaceWith') {\n if (el[0] !== value[0]) {\n el.replaceWith(value);\n }\n } else if (attr === 'img') {\n if (el.is('img')) {\n el.attr('src', value);\n } else {\n el.replaceWith($('').attr('src', value).attr('class', el.attr('class')));\n }\n } else {\n el.attr(arr[1], value);\n }\n }\n\n } else {\n template.find(EVENT_NS + '-' + key).html(value);\n }\n });\n },\n\n _getScrollbarSize: function () {\n // thx David\n if (mfp.scrollbarSize === undefined) {\n var scrollDiv = document.createElement(\"div\");\n scrollDiv.style.cssText = 'width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;';\n document.body.appendChild(scrollDiv);\n mfp.scrollbarSize = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n document.body.removeChild(scrollDiv);\n }\n return mfp.scrollbarSize;\n }\n\n }; /* MagnificPopup core prototype end */\n\n\n\n\n /**\n * Public static functions\n */\n $.magnificPopup = {\n instance: null,\n proto: MagnificPopup.prototype,\n modules: [],\n\n open: function (options, index) {\n _checkInstance();\n\n if (!options) {\n options = {};\n } else {\n options = $.extend(true, {}, options);\n }\n\n options.isObj = true;\n options.index = index || 0;\n return this.instance.open(options);\n },\n\n close: function () {\n return $.magnificPopup.instance && $.magnificPopup.instance.close();\n },\n\n registerModule: function (name, module) {\n if (module.options) {\n $.magnificPopup.defaults[name] = module.options;\n }\n $.extend(this.proto, module.proto);\n this.modules.push(name);\n },\n\n defaults: {\n\n // Info about options is in docs:\n // http://dimsemenov.com/plugins/magnific-popup/documentation.html#options\n\n disableOn: 0,\n\n key: null,\n\n midClick: false,\n\n mainClass: '',\n\n preloader: true,\n\n focus: '', // CSS selector of input to focus after popup is opened\n\n closeOnContentClick: false,\n\n closeOnBgClick: true,\n\n closeBtnInside: true,\n\n showCloseBtn: true,\n\n enableEscapeKey: true,\n\n modal: false,\n\n alignTop: false,\n\n removalDelay: 0,\n\n prependTo: null,\n\n fixedContentPos: 'auto',\n\n fixedBgPos: 'auto',\n\n overflowY: 'auto',\n\n closeMarkup: '',\n\n tClose: 'Close (Esc)',\n\n tLoading: 'Loading...',\n\n autoFocusLast: true\n\n }\n };\n\n\n\n $.fn.magnificPopup = function (options) {\n _checkInstance();\n\n var jqEl = $(this);\n\n // We call some API method of first param is a string\n if (typeof options === \"string\") {\n\n if (options === 'open') {\n var items,\n itemOpts = _isJQ ? jqEl.data('magnificPopup') : jqEl[0].magnificPopup,\n index = parseInt(arguments[1], 10) || 0;\n\n if (itemOpts.items) {\n items = itemOpts.items[index];\n } else {\n items = jqEl;\n if (itemOpts.delegate) {\n items = items.find(itemOpts.delegate);\n }\n items = items.eq(index);\n }\n mfp._openClick({ mfpEl: items }, jqEl, itemOpts);\n } else {\n if (mfp.isOpen)\n mfp[options].apply(mfp, Array.prototype.slice.call(arguments, 1));\n }\n\n } else {\n // clone options obj\n options = $.extend(true, {}, options);\n\n /*\n * As Zepto doesn't support .data() method for objects\n * and it works only in normal browsers\n * we assign \"options\" object directly to the DOM element. FTW!\n */\n if (_isJQ) {\n jqEl.data('magnificPopup', options);\n } else {\n jqEl[0].magnificPopup = options;\n }\n\n mfp.addGroup(jqEl, options);\n\n }\n return jqEl;\n };\n\n /*>>core*/\n\n /*>>inline*/\n\n var INLINE_NS = 'inline',\n _hiddenClass,\n _inlinePlaceholder,\n _lastInlineElement,\n _putInlineElementsBack = function () {\n if (_lastInlineElement) {\n _inlinePlaceholder.after(_lastInlineElement.addClass(_hiddenClass)).detach();\n _lastInlineElement = null;\n }\n };\n\n $.magnificPopup.registerModule(INLINE_NS, {\n options: {\n hiddenClass: 'hide', // will be appended with `mfp-` prefix\n markup: '',\n tNotFound: 'Content not found'\n },\n proto: {\n\n initInline: function () {\n mfp.types.push(INLINE_NS);\n\n _mfpOn(CLOSE_EVENT + '.' + INLINE_NS, function () {\n _putInlineElementsBack();\n });\n },\n\n getInline: function (item, template) {\n\n _putInlineElementsBack();\n\n if (item.src) {\n var inlineSt = mfp.st.inline,\n el = $(item.src);\n\n if (el.length) {\n\n // If target element has parent - we replace it with placeholder and put it back after popup is closed\n var parent = el[0].parentNode;\n if (parent && parent.tagName) {\n if (!_inlinePlaceholder) {\n _hiddenClass = inlineSt.hiddenClass;\n _inlinePlaceholder = _getEl(_hiddenClass);\n _hiddenClass = 'mfp-' + _hiddenClass;\n }\n // replace target inline element with placeholder\n _lastInlineElement = el.after(_inlinePlaceholder).detach().removeClass(_hiddenClass);\n }\n\n mfp.updateStatus('ready');\n } else {\n mfp.updateStatus('error', inlineSt.tNotFound);\n el = $('
    ');\n }\n\n item.inlineElement = el;\n return el;\n }\n\n mfp.updateStatus('ready');\n mfp._parseMarkup(template, {}, item);\n return template;\n }\n }\n });\n\n /*>>inline*/\n\n /*>>ajax*/\n var AJAX_NS = 'ajax',\n _ajaxCur,\n _removeAjaxCursor = function () {\n if (_ajaxCur) {\n $(document.body).removeClass(_ajaxCur);\n }\n },\n _destroyAjaxRequest = function () {\n _removeAjaxCursor();\n if (mfp.req) {\n mfp.req.abort();\n }\n };\n\n $.magnificPopup.registerModule(AJAX_NS, {\n\n options: {\n settings: null,\n cursor: 'mfp-ajax-cur',\n tError: 'The content could not be loaded.'\n },\n\n proto: {\n initAjax: function () {\n mfp.types.push(AJAX_NS);\n _ajaxCur = mfp.st.ajax.cursor;\n\n _mfpOn(CLOSE_EVENT + '.' + AJAX_NS, _destroyAjaxRequest);\n _mfpOn('BeforeChange.' + AJAX_NS, _destroyAjaxRequest);\n },\n getAjax: function (item) {\n\n if (_ajaxCur) {\n $(document.body).addClass(_ajaxCur);\n }\n\n mfp.updateStatus('loading');\n\n var opts = $.extend({\n url: item.src,\n success: function (data, textStatus, jqXHR) {\n var temp = {\n data: data,\n xhr: jqXHR\n };\n\n _mfpTrigger('ParseAjax', temp);\n\n mfp.appendContent($(temp.data), AJAX_NS);\n\n item.finished = true;\n\n _removeAjaxCursor();\n\n mfp._setFocus();\n\n setTimeout(function () {\n mfp.wrap.addClass(READY_CLASS);\n }, 16);\n\n mfp.updateStatus('ready');\n\n _mfpTrigger('AjaxContentAdded');\n },\n error: function () {\n _removeAjaxCursor();\n item.finished = item.loadError = true;\n mfp.updateStatus('error', mfp.st.ajax.tError.replace('%url%', item.src));\n }\n }, mfp.st.ajax.settings);\n\n mfp.req = $.ajax(opts);\n\n return '';\n }\n }\n });\n\n /*>>ajax*/\n\n /*>>image*/\n var _imgInterval,\n _getTitle = function (item) {\n if (item.data && item.data.title !== undefined)\n return item.data.title;\n\n var src = mfp.st.image.titleSrc;\n\n if (src) {\n if ($.isFunction(src)) {\n return src.call(mfp, item);\n } else if (item.el) {\n return item.el.attr(src) || '';\n }\n }\n return '';\n };\n\n $.magnificPopup.registerModule('image', {\n\n options: {\n markup: '
    ' +\n '
    ' +\n '
    ' +\n '
    ' +\n '
    ' +\n '
    ' +\n '
    ' +\n '
    ' +\n '
    ' +\n '
    ' +\n '
    ' +\n '
    ',\n cursor: 'mfp-zoom-out-cur',\n titleSrc: 'title',\n verticalFit: true,\n tError: 'The image could not be loaded.'\n },\n\n proto: {\n initImage: function () {\n var imgSt = mfp.st.image,\n ns = '.image';\n\n mfp.types.push('image');\n\n _mfpOn(OPEN_EVENT + ns, function () {\n if (mfp.currItem.type === 'image' && imgSt.cursor) {\n $(document.body).addClass(imgSt.cursor);\n }\n });\n\n _mfpOn(CLOSE_EVENT + ns, function () {\n if (imgSt.cursor) {\n $(document.body).removeClass(imgSt.cursor);\n }\n _window.off('resize' + EVENT_NS);\n });\n\n _mfpOn('Resize' + ns, mfp.resizeImage);\n },\n resizeImage: function () {\n var item = mfp.currItem;\n if (!item || !item.img) return;\n\n if (mfp.st.image.verticalFit) {\n var decr = 0;\n item.img.css('max-height', mfp.wH - decr);\n }\n },\n _onImageHasSize: function (item) {\n if (item.img) {\n\n item.hasSize = true;\n\n if (_imgInterval) {\n clearInterval(_imgInterval);\n }\n\n item.isCheckingImgSize = false;\n\n _mfpTrigger('ImageHasSize', item);\n\n if (item.imgHidden) {\n if (mfp.content)\n mfp.content.removeClass('mfp-loading');\n\n item.imgHidden = false;\n }\n\n }\n },\n\n /*\n * Function that loops until the image has size to display elements that rely on it asap\n */\n findImageSize: function (item) {\n\n var counter = 0,\n img = item.img[0],\n mfpSetInterval = function (delay) {\n\n if (_imgInterval) {\n clearInterval(_imgInterval);\n }\n // decelerating interval that checks for size of an image\n _imgInterval = setInterval(function () {\n if (img.naturalWidth > 0) {\n mfp._onImageHasSize(item);\n return;\n }\n\n if (counter > 200) {\n clearInterval(_imgInterval);\n }\n\n counter++;\n if (counter === 3) {\n mfpSetInterval(10);\n } else if (counter === 40) {\n mfpSetInterval(50);\n } else if (counter === 100) {\n mfpSetInterval(500);\n }\n }, delay);\n };\n\n mfpSetInterval(1);\n },\n\n getImage: function (item, template) {\n\n var guard = 0,\n\n // image load complete handler\n onLoadComplete = function () {\n if (item) {\n if (item.img[0].complete) {\n item.img.off('.mfploader');\n\n if (item === mfp.currItem) {\n mfp._onImageHasSize(item);\n\n mfp.updateStatus('ready');\n }\n\n item.hasSize = true;\n item.loaded = true;\n\n _mfpTrigger('ImageLoadComplete');\n\n }\n else {\n // if image complete check fails 200 times (20 sec), we assume that there was an error.\n guard++;\n if (guard < 200) {\n setTimeout(onLoadComplete, 100);\n } else {\n onLoadError();\n }\n }\n }\n },\n\n // image error handler\n onLoadError = function () {\n if (item) {\n item.img.off('.mfploader');\n if (item === mfp.currItem) {\n mfp._onImageHasSize(item);\n mfp.updateStatus('error', imgSt.tError.replace('%url%', item.src));\n }\n\n item.hasSize = true;\n item.loaded = true;\n item.loadError = true;\n }\n },\n imgSt = mfp.st.image;\n\n\n var el = template.find('.mfp-img');\n if (el.length) {\n var img = document.createElement('img');\n img.className = 'mfp-img';\n if (item.el && item.el.find('img').length) {\n img.alt = item.el.find('img').attr('alt');\n }\n item.img = $(img).on('load.mfploader', onLoadComplete).on('error.mfploader', onLoadError);\n img.src = item.src;\n\n // without clone() \"error\" event is not firing when IMG is replaced by new IMG\n // TODO: find a way to avoid such cloning\n if (el.is('img')) {\n item.img = item.img.clone();\n }\n\n img = item.img[0];\n if (img.naturalWidth > 0) {\n item.hasSize = true;\n } else if (!img.width) {\n item.hasSize = false;\n }\n }\n\n mfp._parseMarkup(template, {\n title: _getTitle(item),\n img_replaceWith: item.img\n }, item);\n\n mfp.resizeImage();\n\n if (item.hasSize) {\n if (_imgInterval) clearInterval(_imgInterval);\n\n if (item.loadError) {\n template.addClass('mfp-loading');\n mfp.updateStatus('error', imgSt.tError.replace('%url%', item.src));\n } else {\n template.removeClass('mfp-loading');\n mfp.updateStatus('ready');\n }\n return template;\n }\n\n mfp.updateStatus('loading');\n item.loading = true;\n\n if (!item.hasSize) {\n item.imgHidden = true;\n template.addClass('mfp-loading');\n mfp.findImageSize(item);\n }\n\n return template;\n }\n }\n });\n\n /*>>image*/\n\n /*>>zoom*/\n var hasMozTransform,\n getHasMozTransform = function () {\n if (hasMozTransform === undefined) {\n hasMozTransform = document.createElement('p').style.MozTransform !== undefined;\n }\n return hasMozTransform;\n };\n\n $.magnificPopup.registerModule('zoom', {\n\n options: {\n enabled: false,\n easing: 'ease-in-out',\n duration: 300,\n opener: function (element) {\n return element.is('img') ? element : element.find('img');\n }\n },\n\n proto: {\n\n initZoom: function () {\n var zoomSt = mfp.st.zoom,\n ns = '.zoom',\n image;\n\n if (!zoomSt.enabled || !mfp.supportsTransition) {\n return;\n }\n\n var duration = zoomSt.duration,\n getElToAnimate = function (image) {\n var newImg = image.clone().removeAttr('style').removeAttr('class').addClass('mfp-animated-image'),\n transition = 'all ' + (zoomSt.duration / 1000) + 's ' + zoomSt.easing,\n cssObj = {\n position: 'fixed',\n zIndex: 9999,\n left: 0,\n top: 0,\n '-webkit-backface-visibility': 'hidden'\n },\n t = 'transition';\n\n cssObj['-webkit-' + t] = cssObj['-moz-' + t] = cssObj['-o-' + t] = cssObj[t] = transition;\n\n newImg.css(cssObj);\n return newImg;\n },\n showMainContent = function () {\n mfp.content.css('visibility', 'visible');\n },\n openTimeout,\n animatedImg;\n\n _mfpOn('BuildControls' + ns, function () {\n if (mfp._allowZoom()) {\n\n clearTimeout(openTimeout);\n mfp.content.css('visibility', 'hidden');\n\n // Basically, all code below does is clones existing image, puts in on top of the current one and animated it\n\n image = mfp._getItemToZoom();\n\n if (!image) {\n showMainContent();\n return;\n }\n\n animatedImg = getElToAnimate(image);\n\n animatedImg.css(mfp._getOffset());\n\n mfp.wrap.append(animatedImg);\n\n openTimeout = setTimeout(function () {\n animatedImg.css(mfp._getOffset(true));\n openTimeout = setTimeout(function () {\n\n showMainContent();\n\n setTimeout(function () {\n animatedImg.remove();\n image = animatedImg = null;\n _mfpTrigger('ZoomAnimationEnded');\n }, 16); // avoid blink when switching images\n\n }, duration); // this timeout equals animation duration\n\n }, 16); // by adding this timeout we avoid short glitch at the beginning of animation\n\n\n // Lots of timeouts...\n }\n });\n _mfpOn(BEFORE_CLOSE_EVENT + ns, function () {\n if (mfp._allowZoom()) {\n\n clearTimeout(openTimeout);\n\n mfp.st.removalDelay = duration;\n\n if (!image) {\n image = mfp._getItemToZoom();\n if (!image) {\n return;\n }\n animatedImg = getElToAnimate(image);\n }\n\n animatedImg.css(mfp._getOffset(true));\n mfp.wrap.append(animatedImg);\n mfp.content.css('visibility', 'hidden');\n\n setTimeout(function () {\n animatedImg.css(mfp._getOffset());\n }, 16);\n }\n\n });\n\n _mfpOn(CLOSE_EVENT + ns, function () {\n if (mfp._allowZoom()) {\n showMainContent();\n if (animatedImg) {\n animatedImg.remove();\n }\n image = null;\n }\n });\n },\n\n _allowZoom: function () {\n return mfp.currItem.type === 'image';\n },\n\n _getItemToZoom: function () {\n if (mfp.currItem.hasSize) {\n return mfp.currItem.img;\n } else {\n return false;\n }\n },\n\n // Get element postion relative to viewport\n _getOffset: function (isLarge) {\n var el;\n if (isLarge) {\n el = mfp.currItem.img;\n } else {\n el = mfp.st.zoom.opener(mfp.currItem.el || mfp.currItem);\n }\n\n var offset = el.offset();\n var paddingTop = parseInt(el.css('padding-top'), 10);\n var paddingBottom = parseInt(el.css('padding-bottom'), 10);\n offset.top -= ($(window).scrollTop() - paddingTop);\n\n\n /*\n \n Animating left + top + width/height looks glitchy in Firefox, but perfect in Chrome. And vice-versa.\n \n */\n var obj = {\n width: el.width(),\n // fix Zepto height+padding issue\n height: (_isJQ ? el.innerHeight() : el[0].offsetHeight) - paddingBottom - paddingTop\n };\n\n // I hate to do this, but there is no another option\n if (getHasMozTransform()) {\n obj['-moz-transform'] = obj['transform'] = 'translate(' + offset.left + 'px,' + offset.top + 'px)';\n } else {\n obj.left = offset.left;\n obj.top = offset.top;\n }\n return obj;\n }\n\n }\n });\n\n\n\n /*>>zoom*/\n\n /*>>iframe*/\n\n var IFRAME_NS = 'iframe',\n _emptyPage = '//about:blank',\n\n _fixIframeBugs = function (isShowing) {\n if (mfp.currTemplate[IFRAME_NS]) {\n var el = mfp.currTemplate[IFRAME_NS].find('iframe');\n if (el.length) {\n // reset src after the popup is closed to avoid \"video keeps playing after popup is closed\" bug\n if (!isShowing) {\n el[0].src = _emptyPage;\n }\n }\n }\n };\n\n $.magnificPopup.registerModule(IFRAME_NS, {\n\n options: {\n markup: '
    ' +\n '
    ' +\n '' +\n '
    ',\n\n srcAction: 'iframe_src',\n\n // we don't care and support only one default type of URL by default\n patterns: {\n youtube: {\n index: 'youtube.com',\n id: 'v=',\n src: '//www.youtube.com/embed/%id%?autoplay=1'\n },\n vimeo: {\n index: 'vimeo.com/',\n id: '/',\n src: '//player.vimeo.com/video/%id%?autoplay=1'\n },\n gmaps: {\n index: '//maps.google.',\n src: '%id%&output=embed'\n }\n }\n },\n\n proto: {\n initIframe: function () {\n mfp.types.push(IFRAME_NS);\n\n _mfpOn('BeforeChange', function (e, prevType, newType) {\n if (prevType !== newType) {\n if (prevType === IFRAME_NS) {\n _fixIframeBugs(); // iframe if removed\n } else if (newType === IFRAME_NS) {\n _fixIframeBugs(true); // iframe is showing\n }\n }// else {\n // iframe source is switched, don't do anything\n //}\n });\n\n _mfpOn(CLOSE_EVENT + '.' + IFRAME_NS, function () {\n _fixIframeBugs();\n });\n },\n\n getIframe: function (item, template) {\n var embedSrc = item.src;\n var iframeSt = mfp.st.iframe;\n\n $.each(iframeSt.patterns, function () {\n if (embedSrc.indexOf(this.index) > -1) {\n if (this.id) {\n if (typeof this.id === 'string') {\n embedSrc = embedSrc.substr(embedSrc.lastIndexOf(this.id) + this.id.length, embedSrc.length);\n } else {\n embedSrc = this.id.call(this, embedSrc);\n }\n }\n embedSrc = this.src.replace('%id%', embedSrc);\n return false; // break;\n }\n });\n\n var dataObj = {};\n if (iframeSt.srcAction) {\n dataObj[iframeSt.srcAction] = embedSrc;\n }\n mfp._parseMarkup(template, dataObj, item);\n\n mfp.updateStatus('ready');\n\n return template;\n }\n }\n });\n\n\n\n /*>>iframe*/\n\n /*>>gallery*/\n /*\n * Get looped index depending on number of slides\n */\n var _getLoopedId = function (index) {\n var numSlides = mfp.items.length;\n if (index > numSlides - 1) {\n return index - numSlides;\n } else if (index < 0) {\n return numSlides + index;\n }\n return index;\n },\n _replaceCurrTotal = function (text, curr, total) {\n return text.replace(/%curr%/gi, curr + 1).replace(/%total%/gi, total);\n };\n\n $.magnificPopup.registerModule('gallery', {\n\n options: {\n enabled: false,\n arrowMarkup: '',\n preload: [0, 2],\n navigateByImgClick: true,\n arrows: true,\n\n tPrev: 'Previous (Left arrow key)',\n tNext: 'Next (Right arrow key)',\n tCounter: '%curr% of %total%'\n },\n\n proto: {\n initGallery: function () {\n\n var gSt = mfp.st.gallery,\n ns = '.mfp-gallery';\n\n mfp.direction = true; // true - next, false - prev\n\n if (!gSt || !gSt.enabled) return false;\n\n _wrapClasses += ' mfp-gallery';\n\n _mfpOn(OPEN_EVENT + ns, function () {\n\n if (gSt.navigateByImgClick) {\n mfp.wrap.on('click' + ns, '.mfp-img', function () {\n if (mfp.items.length > 1) {\n mfp.next();\n return false;\n }\n });\n }\n\n _document.on('keydown' + ns, function (e) {\n if (e.keyCode === 37) {\n mfp.prev();\n } else if (e.keyCode === 39) {\n mfp.next();\n }\n });\n });\n\n _mfpOn('UpdateStatus' + ns, function (e, data) {\n if (data.text) {\n data.text = _replaceCurrTotal(data.text, mfp.currItem.index, mfp.items.length);\n }\n });\n\n _mfpOn(MARKUP_PARSE_EVENT + ns, function (e, element, values, item) {\n var l = mfp.items.length;\n values.counter = l > 1 ? _replaceCurrTotal(gSt.tCounter, item.index, l) : '';\n });\n\n _mfpOn('BuildControls' + ns, function () {\n if (mfp.items.length > 1 && gSt.arrows && !mfp.arrowLeft) {\n var markup = gSt.arrowMarkup,\n arrowLeft = mfp.arrowLeft = $(markup.replace(/%title%/gi, gSt.tPrev).replace(/%dir%/gi, 'left')).addClass(PREVENT_CLOSE_CLASS),\n arrowRight = mfp.arrowRight = $(markup.replace(/%title%/gi, gSt.tNext).replace(/%dir%/gi, 'right')).addClass(PREVENT_CLOSE_CLASS);\n\n arrowLeft.click(function () {\n mfp.prev();\n });\n arrowRight.click(function () {\n mfp.next();\n });\n\n mfp.container.append(arrowLeft.add(arrowRight));\n }\n });\n\n _mfpOn(CHANGE_EVENT + ns, function () {\n if (mfp._preloadTimeout) clearTimeout(mfp._preloadTimeout);\n\n mfp._preloadTimeout = setTimeout(function () {\n mfp.preloadNearbyImages();\n mfp._preloadTimeout = null;\n }, 16);\n });\n\n\n _mfpOn(CLOSE_EVENT + ns, function () {\n _document.off(ns);\n mfp.wrap.off('click' + ns);\n mfp.arrowRight = mfp.arrowLeft = null;\n });\n\n },\n next: function () {\n mfp.direction = true;\n mfp.index = _getLoopedId(mfp.index + 1);\n mfp.updateItemHTML();\n },\n prev: function () {\n mfp.direction = false;\n mfp.index = _getLoopedId(mfp.index - 1);\n mfp.updateItemHTML();\n },\n goTo: function (newIndex) {\n mfp.direction = (newIndex >= mfp.index);\n mfp.index = newIndex;\n mfp.updateItemHTML();\n },\n preloadNearbyImages: function () {\n var p = mfp.st.gallery.preload,\n preloadBefore = Math.min(p[0], mfp.items.length),\n preloadAfter = Math.min(p[1], mfp.items.length),\n i;\n\n for (i = 1; i <= (mfp.direction ? preloadAfter : preloadBefore); i++) {\n mfp._preloadItem(mfp.index + i);\n }\n for (i = 1; i <= (mfp.direction ? preloadBefore : preloadAfter); i++) {\n mfp._preloadItem(mfp.index - i);\n }\n },\n _preloadItem: function (index) {\n index = _getLoopedId(index);\n\n if (mfp.items[index].preloaded) {\n return;\n }\n\n var item = mfp.items[index];\n if (!item.parsed) {\n item = mfp.parseEl(index);\n }\n\n _mfpTrigger('LazyLoad', item);\n\n if (item.type === 'image') {\n item.img = $('').on('load.mfploader', function () {\n item.hasSize = true;\n }).on('error.mfploader', function () {\n item.hasSize = true;\n item.loadError = true;\n _mfpTrigger('LazyLoadError', item);\n }).attr('src', item.src);\n }\n\n\n item.preloaded = true;\n }\n }\n });\n\n /*>>gallery*/\n\n /*>>retina*/\n\n var RETINA_NS = 'retina';\n\n $.magnificPopup.registerModule(RETINA_NS, {\n options: {\n replaceSrc: function (item) {\n return item.src.replace(/\\.\\w+$/, function (m) { return '@2x' + m; });\n },\n ratio: 1 // Function or number. Set to 1 to disable.\n },\n proto: {\n initRetina: function () {\n if (window.devicePixelRatio > 1) {\n\n var st = mfp.st.retina,\n ratio = st.ratio;\n\n ratio = !isNaN(ratio) ? ratio : ratio();\n\n if (ratio > 1) {\n _mfpOn('ImageHasSize' + '.' + RETINA_NS, function (e, item) {\n item.img.css({\n 'max-width': item.img[0].naturalWidth / ratio,\n 'width': '100%'\n });\n });\n _mfpOn('ElementParse' + '.' + RETINA_NS, function (e, item) {\n item.src = st.replaceSrc(item, ratio);\n });\n }\n }\n\n }\n }\n });\n\n /*>>retina*/\n _checkInstance();\n}));","/**\n * @fileoverview dragscroll - scroll area by dragging\n * @version 0.0.8\n * \n * @license MIT, see http://github.com/asvd/dragscroll\n * @copyright 2015 asvd \n */\n\n\n(function (root, factory) {\n if (typeof define === 'function' && define.amd) {\n define(['exports'], factory);\n } else if (typeof exports !== 'undefined') {\n factory(exports);\n } else {\n factory((root.dragscroll = {}));\n }\n}(this, function (exports) {\n var _window = window;\n var _document = document;\n var mousemove = 'mousemove';\n var mouseup = 'mouseup';\n var mousedown = 'mousedown';\n var EventListener = 'EventListener';\n var addEventListener = 'add'+EventListener;\n var removeEventListener = 'remove'+EventListener;\n var newScrollX, newScrollY;\n\n var dragged = [];\n var reset = function (i, el) {\n for (i = 0; i < dragged.length;) {\n el = dragged[i++];\n el = el.container || el;\n el[removeEventListener](mousedown, el.md, 0);\n _window[removeEventListener](mouseup, el.mu, 0);\n _window[removeEventListener](mousemove, el.mm, 0);\n }\n\n // cloning into array since HTMLCollection is updated dynamically\n dragged = [].slice.call(_document.getElementsByClassName('dragscroll'));\n for (i = 0; i < dragged.length;) {\n (function(el, lastClientX, lastClientY, pushed, scroller, cont){\n (cont = el.container || el)[addEventListener](\n mousedown,\n cont.md = function(e) {\n if (!el.hasAttribute('nochilddrag') ||\n _document.elementFromPoint(\n e.pageX, e.pageY\n ) == cont\n ) {\n \n pushed = 1;\n lastClientX = e.clientX;\n lastClientY = e.clientY;\n\n \n }\n }, 0\n );\n\n _window[addEventListener](\n mouseup, cont.mu = function() {pushed = 0;}, 0\n );\n\n _window[addEventListener](\n mousemove,\n cont.mm = function(e) {\n if (pushed) {\n (scroller = el.scroller||el).scrollLeft -=\n newScrollX = (- lastClientX + (lastClientX=e.clientX));\n scroller.scrollTop -=\n newScrollY = (- lastClientY + (lastClientY=e.clientY));\n if (el == _document.body) {\n (scroller = _document.documentElement).scrollLeft -= newScrollX;\n scroller.scrollTop -= newScrollY;\n }\n }\n }, 0\n );\n })(dragged[i++]);\n }\n }\n\n \n if (_document.readyState == 'complete') {\n reset();\n } else {\n _window[addEventListener]('load', reset, 0);\n }\n\n exports.reset = reset;\n}));\n\n","!function (t) { \"function\" == typeof define && define.amd ? define([\"jquery\"], t) : \"object\" == typeof module && module.exports ? module.exports = t(require(\"jquery\")) : t(jQuery) }(function (t) { var e = Array.prototype.slice, i = Array.prototype.splice, n = { topSpacing: 0, bottomSpacing: 0, className: \"is-sticky\", wrapperClassName: \"sticky-wrapper\", center: !1, getWidthFrom: \"\", widthFromWrapper: !0, responsiveWidth: !1, zIndex: \"auto\" }, r = t(window), s = t(document), o = [], c = r.height(), a = function () { for (var e = r.scrollTop(), i = s.height(), n = i - c, a = e > n ? n - e : 0, p = 0, d = o.length; p < d; p++) { var l = o[p], u = l.stickyWrapper.offset().top, h = u - l.topSpacing - a; if (l.stickyWrapper.css(\"height\", l.stickyElement.outerHeight()), e <= h) null !== l.currentTop && (l.stickyElement.css({ width: \"\", position: \"\", top: \"\", \"z-index\": \"\" }), l.stickyElement.parent().removeClass(l.className), l.stickyElement.trigger(\"sticky-end\", [l]), l.currentTop = null); else { var g = i - l.stickyElement.outerHeight() - l.topSpacing - l.bottomSpacing - e - a; if (g < 0 ? g += l.topSpacing : g = l.topSpacing, l.currentTop !== g) { var m; l.getWidthFrom ? m = t(l.getWidthFrom).width() || null : l.widthFromWrapper && (m = l.stickyWrapper.width()), null == m && (m = l.stickyElement.width()), l.stickyElement.css(\"width\", m).css(\"position\", \"fixed\").css(\"top\", g).css(\"z-index\", l.zIndex), l.stickyElement.parent().addClass(l.className), null === l.currentTop ? l.stickyElement.trigger(\"sticky-start\", [l]) : l.stickyElement.trigger(\"sticky-update\", [l]), l.currentTop === l.topSpacing && l.currentTop > g || null === l.currentTop && g < l.topSpacing ? l.stickyElement.trigger(\"sticky-bottom-reached\", [l]) : null !== l.currentTop && g === l.topSpacing && l.currentTop < g && l.stickyElement.trigger(\"sticky-bottom-unreached\", [l]), l.currentTop = g } var y = l.stickyWrapper.parent(), f = l.stickyElement.offset().top + l.stickyElement.outerHeight() >= y.offset().top + y.outerHeight() && l.stickyElement.offset().top <= l.topSpacing; f ? l.stickyElement.css(\"position\", \"absolute\").css(\"top\", \"\").css(\"bottom\", 0).css(\"z-index\", \"\") : l.stickyElement.css(\"position\", \"fixed\").css(\"top\", g).css(\"bottom\", \"\").css(\"z-index\", l.zIndex) } } }, p = function () { c = r.height(); for (var e = 0, i = o.length; e < i; e++) { var n = o[e], s = null; n.getWidthFrom ? n.responsiveWidth && (s = t(n.getWidthFrom).width()) : n.widthFromWrapper && (s = n.stickyWrapper.width()), null != s && n.stickyElement.css(\"width\", s) } }, d = { init: function (e) { return this.each(function () { var i = t.extend({}, n, e), r = t(this), s = r.attr(\"id\"), c = s ? s + \"-\" + n.wrapperClassName : n.wrapperClassName, a = t(\"
    \").attr(\"id\", c).addClass(i.wrapperClassName); r.wrapAll(function () { if (0 == t(this).parent(\"#\" + c).length) return a }); var p = r.parent(); i.center && p.css({ width: r.outerWidth(), marginLeft: \"auto\", marginRight: \"auto\" }), \"right\" === r.css(\"float\") && r.css({ float: \"none\" }).parent().css({ float: \"right\" }), i.stickyElement = r, i.stickyWrapper = p, i.currentTop = null, o.push(i), d.setWrapperHeight(this), d.setupChangeListeners(this) }) }, setWrapperHeight: function (e) { var i = t(e), n = i.parent(); n && n.css(\"height\", i.outerHeight()) }, setupChangeListeners: function (t) { if (window.MutationObserver) { var e = new window.MutationObserver(function (e) { (e[0].addedNodes.length || e[0].removedNodes.length) && d.setWrapperHeight(t) }); e.observe(t, { subtree: !0, childList: !0 }) } else window.addEventListener ? (t.addEventListener(\"DOMNodeInserted\", function () { d.setWrapperHeight(t) }, !1), t.addEventListener(\"DOMNodeRemoved\", function () { d.setWrapperHeight(t) }, !1)) : window.attachEvent && (t.attachEvent(\"onDOMNodeInserted\", function () { d.setWrapperHeight(t) }), t.attachEvent(\"onDOMNodeRemoved\", function () { d.setWrapperHeight(t) })) }, update: a, unstick: function (e) { return this.each(function () { for (var e = this, n = t(e), r = -1, s = o.length; s-- > 0;)o[s].stickyElement.get(0) === e && (i.call(o, s, 1), r = s); r !== -1 && (n.unwrap(), n.css({ width: \"\", position: \"\", top: \"\", float: \"\", \"z-index\": \"\" })) }) } }; window.addEventListener ? (window.addEventListener(\"scroll\", a, !1), window.addEventListener(\"resize\", p, !1)) : window.attachEvent && (window.attachEvent(\"onscroll\", a), window.attachEvent(\"onresize\", p)), t.fn.sticky = function (i) { return d[i] ? d[i].apply(this, e.call(arguments, 1)) : \"object\" != typeof i && i ? void t.error(\"Method \" + i + \" does not exist on jQuery.sticky\") : d.init.apply(this, arguments) }, t.fn.unstick = function (i) { return d[i] ? d[i].apply(this, e.call(arguments, 1)) : \"object\" != typeof i && i ? void t.error(\"Method \" + i + \" does not exist on jQuery.sticky\") : d.unstick.apply(this, arguments) }, t(function () { setTimeout(a, 0) }) });\n//# sourceMappingURL=jquery.sticky.min.js.map","/*! jQuery Validation Plugin - v1.19.5 - 7/1/2022\n * https://jqueryvalidation.org/\n * Copyright (c) 2022 Jörn Zaefferer; Licensed MIT */\n!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\"],a):\"object\"==typeof module&&module.exports?module.exports=a(require(\"jquery\")):a(jQuery)}(function(a){a.extend(a.fn,{validate:function(b){if(!this.length)return void(b&&b.debug&&window.console&&console.warn(\"Nothing selected, can't validate, returning nothing.\"));var c=a.data(this[0],\"validator\");return c?c:(this.attr(\"novalidate\",\"novalidate\"),c=new a.validator(b,this[0]),a.data(this[0],\"validator\",c),c.settings.onsubmit&&(this.on(\"click.validate\",\":submit\",function(b){c.submitButton=b.currentTarget,a(this).hasClass(\"cancel\")&&(c.cancelSubmit=!0),void 0!==a(this).attr(\"formnovalidate\")&&(c.cancelSubmit=!0)}),this.on(\"submit.validate\",function(b){function d(){var d,e;return c.submitButton&&(c.settings.submitHandler||c.formSubmitted)&&(d=a(\"\").attr(\"name\",c.submitButton.name).val(a(c.submitButton).val()).appendTo(c.currentForm)),!(c.settings.submitHandler&&!c.settings.debug)||(e=c.settings.submitHandler.call(c,c.currentForm,b),d&&d.remove(),void 0!==e&&e)}return c.settings.debug&&b.preventDefault(),c.cancelSubmit?(c.cancelSubmit=!1,d()):c.form()?c.pendingRequest?(c.formSubmitted=!0,!1):d():(c.focusInvalid(),!1)})),c)},valid:function(){var b,c,d;return a(this[0]).is(\"form\")?b=this.validate().form():(d=[],b=!0,c=a(this[0].form).validate(),this.each(function(){b=c.element(this)&&b,b||(d=d.concat(c.errorList))}),c.errorList=d),b},rules:function(b,c){var d,e,f,g,h,i,j=this[0],k=\"undefined\"!=typeof this.attr(\"contenteditable\")&&\"false\"!==this.attr(\"contenteditable\");if(null!=j&&(!j.form&&k&&(j.form=this.closest(\"form\")[0],j.name=this.attr(\"name\")),null!=j.form)){if(b)switch(d=a.data(j.form,\"validator\").settings,e=d.rules,f=a.validator.staticRules(j),b){case\"add\":a.extend(f,a.validator.normalizeRule(c)),delete f.messages,e[j.name]=f,c.messages&&(d.messages[j.name]=a.extend(d.messages[j.name],c.messages));break;case\"remove\":return c?(i={},a.each(c.split(/\\s/),function(a,b){i[b]=f[b],delete f[b]}),i):(delete e[j.name],f)}return g=a.validator.normalizeRules(a.extend({},a.validator.classRules(j),a.validator.attributeRules(j),a.validator.dataRules(j),a.validator.staticRules(j)),j),g.required&&(h=g.required,delete g.required,g=a.extend({required:h},g)),g.remote&&(h=g.remote,delete g.remote,g=a.extend(g,{remote:h})),g}}});var b=function(a){return a.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g,\"\")};a.extend(a.expr.pseudos||a.expr[\":\"],{blank:function(c){return!b(\"\"+a(c).val())},filled:function(c){var d=a(c).val();return null!==d&&!!b(\"\"+d)},unchecked:function(b){return!a(b).prop(\"checked\")}}),a.validator=function(b,c){this.settings=a.extend(!0,{},a.validator.defaults,b),this.currentForm=c,this.init()},a.validator.format=function(b,c){return 1===arguments.length?function(){var c=a.makeArray(arguments);return c.unshift(b),a.validator.format.apply(this,c)}:void 0===c?b:(arguments.length>2&&c.constructor!==Array&&(c=a.makeArray(arguments).slice(1)),c.constructor!==Array&&(c=[c]),a.each(c,function(a,c){b=b.replace(new RegExp(\"\\\\{\"+a+\"\\\\}\",\"g\"),function(){return c})}),b)},a.extend(a.validator,{defaults:{messages:{},groups:{},rules:{},errorClass:\"error\",pendingClass:\"pending\",validClass:\"valid\",errorElement:\"label\",focusCleanup:!1,focusInvalid:!0,errorContainer:a([]),errorLabelContainer:a([]),onsubmit:!0,ignore:\":hidden\",ignoreTitle:!1,onfocusin:function(a){this.lastActive=a,this.settings.focusCleanup&&(this.settings.unhighlight&&this.settings.unhighlight.call(this,a,this.settings.errorClass,this.settings.validClass),this.hideThese(this.errorsFor(a)))},onfocusout:function(a){this.checkable(a)||!(a.name in this.submitted)&&this.optional(a)||this.element(a)},onkeyup:function(b,c){var d=[16,17,18,20,35,36,37,38,39,40,45,144,225];9===c.which&&\"\"===this.elementValue(b)||a.inArray(c.keyCode,d)!==-1||(b.name in this.submitted||b.name in this.invalid)&&this.element(b)},onclick:function(a){a.name in this.submitted?this.element(a):a.parentNode.name in this.submitted&&this.element(a.parentNode)},highlight:function(b,c,d){\"radio\"===b.type?this.findByName(b.name).addClass(c).removeClass(d):a(b).addClass(c).removeClass(d)},unhighlight:function(b,c,d){\"radio\"===b.type?this.findByName(b.name).removeClass(c).addClass(d):a(b).removeClass(c).addClass(d)}},setDefaults:function(b){a.extend(a.validator.defaults,b)},messages:{required:\"This field is required.\",remote:\"Please fix this field.\",email:\"Please enter a valid email address.\",url:\"Please enter a valid URL.\",date:\"Please enter a valid date.\",dateISO:\"Please enter a valid date (ISO).\",number:\"Please enter a valid number.\",digits:\"Please enter only digits.\",equalTo:\"Please enter the same value again.\",maxlength:a.validator.format(\"Please enter no more than {0} characters.\"),minlength:a.validator.format(\"Please enter at least {0} characters.\"),rangelength:a.validator.format(\"Please enter a value between {0} and {1} characters long.\"),range:a.validator.format(\"Please enter a value between {0} and {1}.\"),max:a.validator.format(\"Please enter a value less than or equal to {0}.\"),min:a.validator.format(\"Please enter a value greater than or equal to {0}.\"),step:a.validator.format(\"Please enter a multiple of {0}.\")},autoCreateRanges:!1,prototype:{init:function(){function b(b){var c=\"undefined\"!=typeof a(this).attr(\"contenteditable\")&&\"false\"!==a(this).attr(\"contenteditable\");if(!this.form&&c&&(this.form=a(this).closest(\"form\")[0],this.name=a(this).attr(\"name\")),d===this.form){var e=a.data(this.form,\"validator\"),f=\"on\"+b.type.replace(/^validate/,\"\"),g=e.settings;g[f]&&!a(this).is(g.ignore)&&g[f].call(e,this,b)}}this.labelContainer=a(this.settings.errorLabelContainer),this.errorContext=this.labelContainer.length&&this.labelContainer||a(this.currentForm),this.containers=a(this.settings.errorContainer).add(this.settings.errorLabelContainer),this.submitted={},this.valueCache={},this.pendingRequest=0,this.pending={},this.invalid={},this.reset();var c,d=this.currentForm,e=this.groups={};a.each(this.settings.groups,function(b,c){\"string\"==typeof c&&(c=c.split(/\\s/)),a.each(c,function(a,c){e[c]=b})}),c=this.settings.rules,a.each(c,function(b,d){c[b]=a.validator.normalizeRule(d)}),a(this.currentForm).on(\"focusin.validate focusout.validate keyup.validate\",\":text, [type='password'], [type='file'], select, textarea, [type='number'], [type='search'], [type='tel'], [type='url'], [type='email'], [type='datetime'], [type='date'], [type='month'], [type='week'], [type='time'], [type='datetime-local'], [type='range'], [type='color'], [type='radio'], [type='checkbox'], [contenteditable], [type='button']\",b).on(\"click.validate\",\"select, option, [type='radio'], [type='checkbox']\",b),this.settings.invalidHandler&&a(this.currentForm).on(\"invalid-form.validate\",this.settings.invalidHandler)},form:function(){return this.checkForm(),a.extend(this.submitted,this.errorMap),this.invalid=a.extend({},this.errorMap),this.valid()||a(this.currentForm).triggerHandler(\"invalid-form\",[this]),this.showErrors(),this.valid()},checkForm:function(){this.prepareForm();for(var a=0,b=this.currentElements=this.elements();b[a];a++)this.check(b[a]);return this.valid()},element:function(b){var c,d,e=this.clean(b),f=this.validationTargetFor(e),g=this,h=!0;return void 0===f?delete this.invalid[e.name]:(this.prepareElement(f),this.currentElements=a(f),d=this.groups[f.name],d&&a.each(this.groups,function(a,b){b===d&&a!==f.name&&(e=g.validationTargetFor(g.clean(g.findByName(a))),e&&e.name in g.invalid&&(g.currentElements.push(e),h=g.check(e)&&h))}),c=this.check(f)!==!1,h=h&&c,c?this.invalid[f.name]=!1:this.invalid[f.name]=!0,this.numberOfInvalids()||(this.toHide=this.toHide.add(this.containers)),this.showErrors(),a(b).attr(\"aria-invalid\",!c)),h},showErrors:function(b){if(b){var c=this;a.extend(this.errorMap,b),this.errorList=a.map(this.errorMap,function(a,b){return{message:a,element:c.findByName(b)[0]}}),this.successList=a.grep(this.successList,function(a){return!(a.name in b)})}this.settings.showErrors?this.settings.showErrors.call(this,this.errorMap,this.errorList):this.defaultShowErrors()},resetForm:function(){a.fn.resetForm&&a(this.currentForm).resetForm(),this.invalid={},this.submitted={},this.prepareForm(),this.hideErrors();var b=this.elements().removeData(\"previousValue\").removeAttr(\"aria-invalid\");this.resetElements(b)},resetElements:function(a){var b;if(this.settings.unhighlight)for(b=0;a[b];b++)this.settings.unhighlight.call(this,a[b],this.settings.errorClass,\"\"),this.findByName(a[b].name).removeClass(this.settings.validClass);else a.removeClass(this.settings.errorClass).removeClass(this.settings.validClass)},numberOfInvalids:function(){return this.objectLength(this.invalid)},objectLength:function(a){var b,c=0;for(b in a)void 0!==a[b]&&null!==a[b]&&a[b]!==!1&&c++;return c},hideErrors:function(){this.hideThese(this.toHide)},hideThese:function(a){a.not(this.containers).text(\"\"),this.addWrapper(a).hide()},valid:function(){return 0===this.size()},size:function(){return this.errorList.length},focusInvalid:function(){if(this.settings.focusInvalid)try{a(this.findLastActive()||this.errorList.length&&this.errorList[0].element||[]).filter(\":visible\").trigger(\"focus\").trigger(\"focusin\")}catch(b){}},findLastActive:function(){var b=this.lastActive;return b&&1===a.grep(this.errorList,function(a){return a.element.name===b.name}).length&&b},elements:function(){var b=this,c={};return a(this.currentForm).find(\"input, select, textarea, [contenteditable]\").not(\":submit, :reset, :image, :disabled\").not(this.settings.ignore).filter(function(){var d=this.name||a(this).attr(\"name\"),e=\"undefined\"!=typeof a(this).attr(\"contenteditable\")&&\"false\"!==a(this).attr(\"contenteditable\");return!d&&b.settings.debug&&window.console&&console.error(\"%o has no name assigned\",this),e&&(this.form=a(this).closest(\"form\")[0],this.name=d),this.form===b.currentForm&&(!(d in c||!b.objectLength(a(this).rules()))&&(c[d]=!0,!0))})},clean:function(b){return a(b)[0]},errors:function(){var b=this.settings.errorClass.split(\" \").join(\".\");return a(this.settings.errorElement+\".\"+b,this.errorContext)},resetInternals:function(){this.successList=[],this.errorList=[],this.errorMap={},this.toShow=a([]),this.toHide=a([])},reset:function(){this.resetInternals(),this.currentElements=a([])},prepareForm:function(){this.reset(),this.toHide=this.errors().add(this.containers)},prepareElement:function(a){this.reset(),this.toHide=this.errorsFor(a)},elementValue:function(b){var c,d,e=a(b),f=b.type,g=\"undefined\"!=typeof e.attr(\"contenteditable\")&&\"false\"!==e.attr(\"contenteditable\");return\"radio\"===f||\"checkbox\"===f?this.findByName(b.name).filter(\":checked\").val():\"number\"===f&&\"undefined\"!=typeof b.validity?b.validity.badInput?\"NaN\":e.val():(c=g?e.text():e.val(),\"file\"===f?\"C:\\\\fakepath\\\\\"===c.substr(0,12)?c.substr(12):(d=c.lastIndexOf(\"/\"),d>=0?c.substr(d+1):(d=c.lastIndexOf(\"\\\\\"),d>=0?c.substr(d+1):c)):\"string\"==typeof c?c.replace(/\\r/g,\"\"):c)},check:function(b){b=this.validationTargetFor(this.clean(b));var c,d,e,f,g=a(b).rules(),h=a.map(g,function(a,b){return b}).length,i=!1,j=this.elementValue(b);\"function\"==typeof g.normalizer?f=g.normalizer:\"function\"==typeof this.settings.normalizer&&(f=this.settings.normalizer),f&&(j=f.call(b,j),delete g.normalizer);for(d in g){e={method:d,parameters:g[d]};try{if(c=a.validator.methods[d].call(this,j,b,e.parameters),\"dependency-mismatch\"===c&&1===h){i=!0;continue}if(i=!1,\"pending\"===c)return void(this.toHide=this.toHide.not(this.errorsFor(b)));if(!c)return this.formatAndAdd(b,e),!1}catch(k){throw this.settings.debug&&window.console&&console.log(\"Exception occurred when checking element \"+b.id+\", check the '\"+e.method+\"' method.\",k),k instanceof TypeError&&(k.message+=\". Exception occurred when checking element \"+b.id+\", check the '\"+e.method+\"' method.\"),k}}if(!i)return this.objectLength(g)&&this.successList.push(b),!0},customDataMessage:function(b,c){return a(b).data(\"msg\"+c.charAt(0).toUpperCase()+c.substring(1).toLowerCase())||a(b).data(\"msg\")},customMessage:function(a,b){var c=this.settings.messages[a];return c&&(c.constructor===String?c:c[b])},findDefined:function(){for(var a=0;aWarning: No message defined for \"+b.name+\"\"),e=/\\$?\\{(\\d+)\\}/g;return\"function\"==typeof d?d=d.call(this,c.parameters,b):e.test(d)&&(d=a.validator.format(d.replace(e,\"{$1}\"),c.parameters)),d},formatAndAdd:function(a,b){var c=this.defaultMessage(a,b);this.errorList.push({message:c,element:a,method:b.method}),this.errorMap[a.name]=c,this.submitted[a.name]=c},addWrapper:function(a){return this.settings.wrapper&&(a=a.add(a.parent(this.settings.wrapper))),a},defaultShowErrors:function(){var a,b,c;for(a=0;this.errorList[a];a++)c=this.errorList[a],this.settings.highlight&&this.settings.highlight.call(this,c.element,this.settings.errorClass,this.settings.validClass),this.showLabel(c.element,c.message);if(this.errorList.length&&(this.toShow=this.toShow.add(this.containers)),this.settings.success)for(a=0;this.successList[a];a++)this.showLabel(this.successList[a]);if(this.settings.unhighlight)for(a=0,b=this.validElements();b[a];a++)this.settings.unhighlight.call(this,b[a],this.settings.errorClass,this.settings.validClass);this.toHide=this.toHide.not(this.toShow),this.hideErrors(),this.addWrapper(this.toShow).show()},validElements:function(){return this.currentElements.not(this.invalidElements())},invalidElements:function(){return a(this.errorList).map(function(){return this.element})},showLabel:function(b,c){var d,e,f,g,h=this.errorsFor(b),i=this.idOrName(b),j=a(b).attr(\"aria-describedby\");h.length?(h.removeClass(this.settings.validClass).addClass(this.settings.errorClass),h.html(c)):(h=a(\"<\"+this.settings.errorElement+\">\").attr(\"id\",i+\"-error\").addClass(this.settings.errorClass).html(c||\"\"),d=h,this.settings.wrapper&&(d=h.hide().show().wrap(\"<\"+this.settings.wrapper+\"/>\").parent()),this.labelContainer.length?this.labelContainer.append(d):this.settings.errorPlacement?this.settings.errorPlacement.call(this,d,a(b)):d.insertAfter(b),h.is(\"label\")?h.attr(\"for\",i):0===h.parents(\"label[for='\"+this.escapeCssMeta(i)+\"']\").length&&(f=h.attr(\"id\"),j?j.match(new RegExp(\"\\\\b\"+this.escapeCssMeta(f)+\"\\\\b\"))||(j+=\" \"+f):j=f,a(b).attr(\"aria-describedby\",j),e=this.groups[b.name],e&&(g=this,a.each(g.groups,function(b,c){c===e&&a(\"[name='\"+g.escapeCssMeta(b)+\"']\",g.currentForm).attr(\"aria-describedby\",h.attr(\"id\"))})))),!c&&this.settings.success&&(h.text(\"\"),\"string\"==typeof this.settings.success?h.addClass(this.settings.success):this.settings.success(h,b)),this.toShow=this.toShow.add(h)},errorsFor:function(b){var c=this.escapeCssMeta(this.idOrName(b)),d=a(b).attr(\"aria-describedby\"),e=\"label[for='\"+c+\"'], label[for='\"+c+\"'] *\";return d&&(e=e+\", #\"+this.escapeCssMeta(d).replace(/\\s+/g,\", #\")),this.errors().filter(e)},escapeCssMeta:function(a){return void 0===a?\"\":a.replace(/([\\\\!\"#$%&'()*+,./:;<=>?@\\[\\]^`{|}~])/g,\"\\\\$1\")},idOrName:function(a){return this.groups[a.name]||(this.checkable(a)?a.name:a.id||a.name)},validationTargetFor:function(b){return this.checkable(b)&&(b=this.findByName(b.name)),a(b).not(this.settings.ignore)[0]},checkable:function(a){return/radio|checkbox/i.test(a.type)},findByName:function(b){return a(this.currentForm).find(\"[name='\"+this.escapeCssMeta(b)+\"']\")},getLength:function(b,c){switch(c.nodeName.toLowerCase()){case\"select\":return a(\"option:selected\",c).length;case\"input\":if(this.checkable(c))return this.findByName(c.name).filter(\":checked\").length}return b.length},depend:function(a,b){return!this.dependTypes[typeof a]||this.dependTypes[typeof a](a,b)},dependTypes:{\"boolean\":function(a){return a},string:function(b,c){return!!a(b,c.form).length},\"function\":function(a,b){return a(b)}},optional:function(b){var c=this.elementValue(b);return!a.validator.methods.required.call(this,c,b)&&\"dependency-mismatch\"},startRequest:function(b){this.pending[b.name]||(this.pendingRequest++,a(b).addClass(this.settings.pendingClass),this.pending[b.name]=!0)},stopRequest:function(b,c){this.pendingRequest--,this.pendingRequest<0&&(this.pendingRequest=0),delete this.pending[b.name],a(b).removeClass(this.settings.pendingClass),c&&0===this.pendingRequest&&this.formSubmitted&&this.form()&&0===this.pendingRequest?(a(this.currentForm).trigger(\"submit\"),this.submitButton&&a(\"input:hidden[name='\"+this.submitButton.name+\"']\",this.currentForm).remove(),this.formSubmitted=!1):!c&&0===this.pendingRequest&&this.formSubmitted&&(a(this.currentForm).triggerHandler(\"invalid-form\",[this]),this.formSubmitted=!1)},previousValue:function(b,c){return c=\"string\"==typeof c&&c||\"remote\",a.data(b,\"previousValue\")||a.data(b,\"previousValue\",{old:null,valid:!0,message:this.defaultMessage(b,{method:c})})},destroy:function(){this.resetForm(),a(this.currentForm).off(\".validate\").removeData(\"validator\").find(\".validate-equalTo-blur\").off(\".validate-equalTo\").removeClass(\"validate-equalTo-blur\").find(\".validate-lessThan-blur\").off(\".validate-lessThan\").removeClass(\"validate-lessThan-blur\").find(\".validate-lessThanEqual-blur\").off(\".validate-lessThanEqual\").removeClass(\"validate-lessThanEqual-blur\").find(\".validate-greaterThanEqual-blur\").off(\".validate-greaterThanEqual\").removeClass(\"validate-greaterThanEqual-blur\").find(\".validate-greaterThan-blur\").off(\".validate-greaterThan\").removeClass(\"validate-greaterThan-blur\")}},classRuleSettings:{required:{required:!0},email:{email:!0},url:{url:!0},date:{date:!0},dateISO:{dateISO:!0},number:{number:!0},digits:{digits:!0},creditcard:{creditcard:!0}},addClassRules:function(b,c){b.constructor===String?this.classRuleSettings[b]=c:a.extend(this.classRuleSettings,b)},classRules:function(b){var c={},d=a(b).attr(\"class\");return d&&a.each(d.split(\" \"),function(){this in a.validator.classRuleSettings&&a.extend(c,a.validator.classRuleSettings[this])}),c},normalizeAttributeRule:function(a,b,c,d){/min|max|step/.test(c)&&(null===b||/number|range|text/.test(b))&&(d=Number(d),isNaN(d)&&(d=void 0)),d||0===d?a[c]=d:b===c&&\"range\"!==b&&(a[\"date\"===b?\"dateISO\":c]=!0)},attributeRules:function(b){var c,d,e={},f=a(b),g=b.getAttribute(\"type\");for(c in a.validator.methods)\"required\"===c?(d=b.getAttribute(c),\"\"===d&&(d=!0),d=!!d):d=f.attr(c),this.normalizeAttributeRule(e,g,c,d);return e.maxlength&&/-1|2147483647|524288/.test(e.maxlength)&&delete e.maxlength,e},dataRules:function(b){var c,d,e={},f=a(b),g=b.getAttribute(\"type\");for(c in a.validator.methods)d=f.data(\"rule\"+c.charAt(0).toUpperCase()+c.substring(1).toLowerCase()),\"\"===d&&(d=!0),this.normalizeAttributeRule(e,g,c,d);return e},staticRules:function(b){var c={},d=a.data(b.form,\"validator\");return d.settings.rules&&(c=a.validator.normalizeRule(d.settings.rules[b.name])||{}),c},normalizeRules:function(b,c){return a.each(b,function(d,e){if(e===!1)return void delete b[d];if(e.param||e.depends){var f=!0;switch(typeof e.depends){case\"string\":f=!!a(e.depends,c.form).length;break;case\"function\":f=e.depends.call(c,c)}f?b[d]=void 0===e.param||e.param:(a.data(c.form,\"validator\").resetElements(a(c)),delete b[d])}}),a.each(b,function(a,d){b[a]=\"function\"==typeof d&&\"normalizer\"!==a?d(c):d}),a.each([\"minlength\",\"maxlength\"],function(){b[this]&&(b[this]=Number(b[this]))}),a.each([\"rangelength\",\"range\"],function(){var a;b[this]&&(Array.isArray(b[this])?b[this]=[Number(b[this][0]),Number(b[this][1])]:\"string\"==typeof b[this]&&(a=b[this].replace(/[\\[\\]]/g,\"\").split(/[\\s,]+/),b[this]=[Number(a[0]),Number(a[1])]))}),a.validator.autoCreateRanges&&(null!=b.min&&null!=b.max&&(b.range=[b.min,b.max],delete b.min,delete b.max),null!=b.minlength&&null!=b.maxlength&&(b.rangelength=[b.minlength,b.maxlength],delete b.minlength,delete b.maxlength)),b},normalizeRule:function(b){if(\"string\"==typeof b){var c={};a.each(b.split(/\\s/),function(){c[this]=!0}),b=c}return b},addMethod:function(b,c,d){a.validator.methods[b]=c,a.validator.messages[b]=void 0!==d?d:a.validator.messages[b],c.length<3&&a.validator.addClassRules(b,a.validator.normalizeRule(b))},methods:{required:function(b,c,d){if(!this.depend(d,c))return\"dependency-mismatch\";if(\"select\"===c.nodeName.toLowerCase()){var e=a(c).val();return e&&e.length>0}return this.checkable(c)?this.getLength(b,c)>0:void 0!==b&&null!==b&&b.length>0},email:function(a,b){return this.optional(b)||/^[a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.test(a)},url:function(a,b){return this.optional(b)||/^(?:(?:(?:https?|ftp):)?\\/\\/)(?:(?:[^\\]\\[?\\/<~#`!@$^&*()+=}|:\";',>{ ]|%[0-9A-Fa-f]{2})+(?::(?:[^\\]\\[?\\/<~#`!@$^&*()+=}|:\";',>{ ]|%[0-9A-Fa-f]{2})*)?@)?(?:(?!(?:10|127)(?:\\.\\d{1,3}){3})(?!(?:169\\.254|192\\.168)(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z0-9\\u00a1-\\uffff][a-z0-9\\u00a1-\\uffff_-]{0,62})?[a-z0-9\\u00a1-\\uffff]\\.)+(?:[a-z\\u00a1-\\uffff]{2,}\\.?))(?::\\d{2,5})?(?:[/?#]\\S*)?$/i.test(a)},date:function(){var a=!1;return function(b,c){return a||(a=!0,this.settings.debug&&window.console&&console.warn(\"The `date` method is deprecated and will be removed in version '2.0.0'.\\nPlease don't use it, since it relies on the Date constructor, which\\nbehaves very differently across browsers and locales. Use `dateISO`\\ninstead or one of the locale specific methods in `localizations/`\\nand `additional-methods.js`.\")),this.optional(c)||!/Invalid|NaN/.test(new Date(b).toString())}}(),dateISO:function(a,b){return this.optional(b)||/^\\d{4}[\\/\\-](0?[1-9]|1[012])[\\/\\-](0?[1-9]|[12][0-9]|3[01])$/.test(a)},number:function(a,b){return this.optional(b)||/^(?:-?\\d+|-?\\d{1,3}(?:,\\d{3})+)?(?:\\.\\d+)?$/.test(a)},digits:function(a,b){return this.optional(b)||/^\\d+$/.test(a)},minlength:function(a,b,c){var d=Array.isArray(a)?a.length:this.getLength(a,b);return this.optional(b)||d>=c},maxlength:function(a,b,c){var d=Array.isArray(a)?a.length:this.getLength(a,b);return this.optional(b)||d<=c},rangelength:function(a,b,c){var d=Array.isArray(a)?a.length:this.getLength(a,b);return this.optional(b)||d>=c[0]&&d<=c[1]},min:function(a,b,c){return this.optional(b)||a>=c},max:function(a,b,c){return this.optional(b)||a<=c},range:function(a,b,c){return this.optional(b)||a>=c[0]&&a<=c[1]},step:function(b,c,d){var e,f=a(c).attr(\"type\"),g=\"Step attribute on input type \"+f+\" is not supported.\",h=[\"text\",\"number\",\"range\"],i=new RegExp(\"\\\\b\"+f+\"\\\\b\"),j=f&&!i.test(h.join()),k=function(a){var b=(\"\"+a).match(/(?:\\.(\\d+))?$/);return b&&b[1]?b[1].length:0},l=function(a){return Math.round(a*Math.pow(10,e))},m=!0;if(j)throw new Error(g);return e=k(d),(k(b)>e||l(b)%l(d)!==0)&&(m=!1),this.optional(c)||m},equalTo:function(b,c,d){var e=a(d);return this.settings.onfocusout&&e.not(\".validate-equalTo-blur\").length&&e.addClass(\"validate-equalTo-blur\").on(\"blur.validate-equalTo\",function(){a(c).valid()}),b===e.val()},remote:function(b,c,d,e){if(this.optional(c))return\"dependency-mismatch\";e=\"string\"==typeof e&&e||\"remote\";var f,g,h,i=this.previousValue(c,e);return this.settings.messages[c.name]||(this.settings.messages[c.name]={}),i.originalMessage=i.originalMessage||this.settings.messages[c.name][e],this.settings.messages[c.name][e]=i.message,d=\"string\"==typeof d&&{url:d}||d,h=a.param(a.extend({data:b},d.data)),i.old===h?i.valid:(i.old=h,f=this,this.startRequest(c),g={},g[c.name]=b,a.ajax(a.extend(!0,{mode:\"abort\",port:\"validate\"+c.name,dataType:\"json\",data:g,context:f.currentForm,success:function(a){var d,g,h,j=a===!0||\"true\"===a;f.settings.messages[c.name][e]=i.originalMessage,j?(h=f.formSubmitted,f.resetInternals(),f.toHide=f.errorsFor(c),f.formSubmitted=h,f.successList.push(c),f.invalid[c.name]=!1,f.showErrors()):(d={},g=a||f.defaultMessage(c,{method:e,parameters:b}),d[c.name]=i.message=g,f.invalid[c.name]=!0,f.showErrors(d)),i.valid=j,f.stopRequest(c,j)}},d)),\"pending\")}}});var c,d={};return a.ajaxPrefilter?a.ajaxPrefilter(function(a,b,c){var e=a.port;\"abort\"===a.mode&&(d[e]&&d[e].abort(),d[e]=c)}):(c=a.ajax,a.ajax=function(b){var e=(\"mode\"in b?b:a.ajaxSettings).mode,f=(\"port\"in b?b:a.ajaxSettings).port;return\"abort\"===e?(d[f]&&d[f].abort(),d[f]=c.apply(this,arguments),d[f]):c.apply(this,arguments)}),a});","$(document).ready(function () {\n $('.newsflexslider').flexslider({\n slideshowSpeed: 4000,\n pauseOnHover: true,\n directionNav: false\n });\n});","(function () {\n window.addEventListener('load', function () {\n\n // Store the window width\n var windowWidth = window.innerWidth\n\n if (document.querySelector('.slider-hz')) {\n\n var slideCount = document.querySelectorAll('.slider-hz .g-slide').length;\n var perViewValue = slideCount < 4 ? slideCount : 4;\n\n if (slideCount === 2) {\n document.querySelector('.slider-hz .g-track').classList.add('limited2');\n }\n\n if (slideCount === 3) {\n document.querySelector('.slider-hz .g-track').classList.add('limited3');\n }\n\n var glide = new Glide('.slider-hz', {\n type: 'slider',\n perSwipe: '|',\n perView: perViewValue, // Set perView based on slide count\n rewind: false,\n bound: true,\n peek: { before: 0, after: 100 },\n gap: 0,\n animationDuration: 1000,\n breakpoints: {\n 1199: {\n perView: Math.min(3, slideCount), // Ensure perView does not exceed the slide count\n peek: { before: 0, after: 80 }\n },\n 991: {\n perView: Math.min(3, slideCount), // Ensure perView does not exceed the slide count\n peek: { before: 0, after: 60 }\n },\n 767: {\n perView: Math.min(2, slideCount),\n peek: { before: 0, after: 60 }\n },\n 575: {\n perView: Math.min(2, slideCount),\n peek: { before: 0, after: 60 }\n }\n },\n classes: {\n swipeable: 'g-swipeable',\n dragging: 'g-dragging',\n direction: {\n ltr: 'g-ltr',\n },\n type: {\n slider: 'g-slider',\n },\n slide: {\n active: 'g-active'\n },\n arrow: {\n disabled: 'g-arrow-disabled'\n }\n },\n })\n\n glide.on(['mount.after'],\n function () {\n document.querySelector('.vehicle-levels .glide').style.opacity = '1';\n }\n );\n\n window.addEventListener(\"resize\", function () {\n // Check window width has actually changed and it's not just iOS triggering a resize event on scroll\n if (window.innerWidth != windowWidth) {\n // Update the window width for next time\n glide.go('<<');\n windowWidth = window.innerWidth\n }\n })\n\n glide.mount();\n\n }\n });\n})();","!function(e,t){\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof module&&module.exports?module.exports=t():e.linkToInbox=t()}(this,function(){var e=function(e,a,n,r){r=r||\"Check your %s inbox\";var c=o(e,a,n);if(!c)return!1;var s=t(e,a,n),i=r.replace(/%s/gi,c.name);return''+i+\"\"},t=function(e,t,a){var n=o(e,t,a);if(!n)return!1;var r=n.protocol+\"://\"+n.domain+n.path;return r},o=function(e,t,o){var a=!0,n=e.split(\"@\")[1],r=null,c={name:n,protocol:\"https\",domain:n,path:\"\"};switch(t&&(r={},t.subject&&(r.subject=encodeURIComponent(t.subject)),t.sender&&(r.sender=encodeURIComponent(t.sender))),n){case\"gmail.com\":case\"googlemail.com\":c.name=\"Gmail\",c.domain=\"mail.google.com\",c.path=\"/mail/u/0/\",r&&(c.path+=\"#search/in%3Aanywhere\",r.subject&&(c.path+=\"+subject%3A%22\"+r.subject+\"%22\"),r.sender&&(c.path+=\"+from%3A\"+r.sender));break;case\"live.com\":case\"hotmail.com\":case\"outlook.com\":c.name=\"Outlook\",c.domain=\"mail.live.com\",c.path=\"/\",r&&(c.path+=\"?fid=flsearch&srch=1&sdr=4&satt=0\",r.subject?c.path+=\"&skws=\"+r.subject:r.sender&&(c.path+=\"&skws=\"+r.sender));break;default:a=!1}return!(o&&!a)&&c};return{createLink:e,getHref:t,getSpec:o}});",null,null,null,null],"names":["$","focused","flexslider","el","options","slider","vars","extend","defaults","watchedEventClearTimer","namespace","msGesture","window","navigator","msPointerEnabled","MSGesture","touch","DocumentTouch","document","eventType","watchedEvent","vertical","direction","reverse","carousel","itemWidth","fade","animation","asNav","asNavFor","methods","data","init","animating","currentSlide","parseInt","startAt","isNaN","animatingTo","atEnd","last","containerSelector","selector","substr","search","slides","container","count","length","syncExists","sync","prop","args","manualPause","stopped","started","startTimeout","transitions","video","useCSS","obj","createElement","props","i","undefined","style","pfx","replace","toLowerCase","ensureAnimationEnd","controlsContainer","manualControls","customDirectionNav","randomize","sort","Math","round","random","empty","append","doMath","setup","controlNav","directionNav","keyboard","multipleKeyboard","bind","event","keycode","keyCode","target","getTarget","flexAnimate","pauseOnAction","mousewheel","delta","deltaX","deltaY","preventDefault","pausePlay","slideshow","pauseInvisible","pauseOnHover","hover","manualPlay","pause","play","isHidden","initDelay","setTimeout","smoothHeight","resize","find","attr","start","floor","move","currentItem","removeClass","eq","addClass","_slider","each","this","_gesture","addEventListener","e","currentTarget","addPointer","pointerId","$slide","index","hasClass","on","offset","left","scrollLeft","setupManual","setupPaging","item","slide","type","j","controlNavScaffold","pagingCount","altText","thumbCaptions","captn","set","active","delegate","$this","setToClearWatchedEvent","update","action","pos","remove","closest","directionNavScaffold","prevText","nextText","disabledClass","animationLoop","filter","pausePlayScaffold","state","html","playText","pauseText","startX","startY","cwidth","dx","startT","onTouchStart","onTouchMove","onTouchEnd","scrolling","localX","localY","accDx","msTouchAction","stopPropagation","h","w","Number","Date","limit","itemW","itemMargin","cloneOffset","transX","translationX","transY","translationY","abs","detail","MSGESTURE_FLAG_INERTIA","setImmediate","stop","setProps","updateDx","canAdvance","touches","pageX","pageY","removeEventListener","passive","is","width","computedW","viewport","height","newSlides","dur","$obj","animate","playing","uniqueID","$clone","add","visProp","getHiddenProp","evtname","clearTimeout","prefixes","override","withSync","fromNav","master","ceil","visible","before","end","css","opacity","zIndex","wrapup","dimension","animationSpeed","easing","margin","slideString","calcNext","unbind","after","animateSlides","clearInterval","animatedSlides","setInterval","slideshowSpeed","dir","special","posCheck","sliderOffset","arr","float","marginRight","position","display","webkitTransition","fadeFirstSlide","overflow","appendTo","cloneCount","makeArray","first","clone","prepend","computedM","slideMargin","minItems","maxItems","boxPadding","outerWidth","itemT","itemM","minW","maxW","addSlide","added","removeSlide","removed","blur","focus","allowOneSlide","fn","_typeof","$slides","fadeIn","$slider","jQuery","b","a","split","join","c","substring","Error","f","isFinite","d","k","l","m","n","o","q","r","s","p","t","u","parseFloat","toFixed","pow","g","toString","indexOf","match","slice","negativeBefore","thousand","push","apply","wNumb","to","from","ready","click","prevAll","toggleClass","nextUntil","captionheight","outerHeight","querySelector","tns","autoplay","autoplayButtonOutput","autoplayHoverPause","autoplayTimeout","speed","items","slideBy","nav","controls","controlsPosition","controlsText","responsive","768","onInit","classList","factory","exports","newScrollX","newScrollY","_window","_document","dragged","reset","md","mu","mm","call","getElementsByClassName","lastClientX","lastClientY","pushed","scroller","cont","hasAttribute","elementFromPoint","clientX","clientY","scrollTop","body","documentElement","readyState","define","amd","module","require","Array","prototype","splice","topSpacing","bottomSpacing","className","wrapperClassName","center","getWidthFrom","widthFromWrapper","responsiveWidth","stickyWrapper","top","stickyElement","currentTop","z-index","parent","trigger","y","wrapAll","marginLeft","setWrapperHeight","setupChangeListeners","MutationObserver","addedNodes","removedNodes","observe","subtree","childList","attachEvent","unstick","get","unwrap","sticky","arguments","error","mfp","_prevStatus","_prevContentType","_wrapClasses","_currPopupType","MagnificPopup","_isJQ","_mfpOn","name","ev","_getEl","raw","innerHTML","appendChild","_mfpTrigger","triggerHandler","st","callbacks","charAt","isArray","_getCloseBtn","currTemplate","closeBtn","closeMarkup","tClose","_checkInstance","magnificPopup","instance","constructor","appVersion","isAndroid","test","isIOS","supportsTransition","v","pop","supportsTransitions","probablyMobile","userAgent","popupsCache","open","isObj","toArray","parsed","isOpen","types","mainEl","key","fixedContentPos","modal","closeOnContentClick","closeOnBgClick","showCloseBtn","enableEscapeKey","bgOverlay","close","wrap","_checkIfClose","contentContainer","preloader","tLoading","modules","toUpperCase","closeBtnInside","template","values","close_replaceWith","alignTop","overflowY","overflowX","fixedBgPos","updateSize","windowHeight","wH","windowStyles","_hasScrollBar","_getScrollbarSize","classesToadd","mainClass","_addClassToMFP","updateItemHTML","prependTo","_lastFocusedEl","activeElement","content","_setFocus","_onFocusIn","removalDelay","_close","classesToRemove","REMOVING_CLASS","detach","_removeClassFromMFP","off","removeAttr","currItem","autoFocusLast","prevHeight","winHeight","zoomLevel","clientWidth","innerWidth","innerHeight","parseEl","markup","newContent","appendContent","preloaded","tagName","src","addGroup","eHandler","mfpEl","_openClick","eName","midClick","which","ctrlKey","metaKey","altKey","shiftKey","disableOn","isFunction","updateStatus","status","text","stopImmediatePropagation","closeOnContent","closeOnBg","contains","cName","scrollHeight","_parseMarkup","value","EVENT_NS","replaceWith","scrollbarSize","scrollDiv","cssText","offsetWidth","removeChild","proto","registerModule","jqEl","itemOpts","_hiddenClass","_inlinePlaceholder","_lastInlineElement","_putInlineElementsBack","hiddenClass","tNotFound","initInline","CLOSE_EVENT","getInline","inlineSt","inline","parentNode","inlineElement","_ajaxCur","_removeAjaxCursor","_destroyAjaxRequest","req","abort","settings","cursor","tError","initAjax","ajax","getAjax","opts","url","success","textStatus","jqXHR","temp","xhr","finished","loadError","_imgInterval","hasMozTransform","_getTitle","title","image","titleSrc","verticalFit","initImage","imgSt","ns","resizeImage","img","_onImageHasSize","hasSize","isCheckingImgSize","imgHidden","findImageSize","counter","mfpSetInterval","delay","naturalWidth","getImage","guard","onLoadError","loaded","alt","onLoadComplete","complete","img_replaceWith","loading","enabled","duration","opener","element","initZoom","zoomSt","zoom","openTimeout","animatedImg","getElToAnimate","newImg","transition","cssObj","-webkit-backface-visibility","showMainContent","_allowZoom","_getItemToZoom","_getOffset","isLarge","paddingTop","paddingBottom","offsetHeight","MozTransform","_fixIframeBugs","isShowing","srcAction","patterns","youtube","id","vimeo","gmaps","initIframe","prevType","newType","getIframe","embedSrc","iframeSt","iframe","lastIndexOf","dataObj","_getLoopedId","numSlides","_replaceCurrTotal","curr","total","arrowMarkup","preload","navigateByImgClick","arrows","tPrev","tNext","tCounter","initGallery","gSt","gallery","next","prev","arrowLeft","arrowRight","_preloadTimeout","preloadNearbyImages","goTo","newIndex","preloadBefore","min","preloadAfter","_preloadItem","replaceSrc","ratio","initRetina","devicePixelRatio","retina","max-width","Zepto","validate","validator","onsubmit","submitButton","cancelSubmit","submitHandler","formSubmitted","val","currentForm","debug","form","pendingRequest","focusInvalid","console","warn","valid","concat","errorList","rules","staticRules","normalizeRule","messages","normalizeRules","classRules","attributeRules","dataRules","required","remote","expr","pseudos","blank","filled","unchecked","format","unshift","RegExp","groups","errorClass","pendingClass","validClass","errorElement","focusCleanup","errorContainer","errorLabelContainer","ignore","ignoreTitle","onfocusin","lastActive","unhighlight","hideThese","errorsFor","onfocusout","checkable","submitted","optional","onkeyup","elementValue","inArray","invalid","onclick","highlight","findByName","setDefaults","email","date","dateISO","number","digits","equalTo","maxlength","minlength","rangelength","range","max","step","autoCreateRanges","labelContainer","errorContext","containers","valueCache","pending","invalidHandler","checkForm","errorMap","showErrors","prepareForm","currentElements","elements","check","clean","validationTargetFor","prepareElement","numberOfInvalids","toHide","map","message","successList","grep","defaultShowErrors","resetForm","hideErrors","removeData","resetElements","objectLength","not","addWrapper","hide","size","findLastActive","errors","resetInternals","toShow","validity","badInput","normalizer","method","parameters","formatAndAdd","log","TypeError","customDataMessage","customMessage","String","findDefined","defaultMessage","wrapper","showLabel","validElements","show","invalidElements","idOrName","errorPlacement","insertAfter","parents","escapeCssMeta","getLength","nodeName","depend","dependTypes","boolean","string","function","startRequest","stopRequest","previousValue","old","destroy","classRuleSettings","creditcard","addClassRules","normalizeAttributeRule","getAttribute","param","depends","addMethod","originalMessage","mode","port","dataType","context","ajaxPrefilter","ajaxSettings","windowWidth","slideCount","querySelectorAll","perViewValue","glide","Glide","perSwipe","perView","rewind","bound","peek","gap","animationDuration","breakpoints","1199","991","767","575","classes","swipeable","dragging","ltr","arrow","disabled","go","mount","linkToInbox","protocol","domain","path","subject","encodeURIComponent","sender","createLink","getHref","getSpec","questions","toggle","panel","nextElementSibling","maxHeight","addReadMoreEventListeners","resizeHero","readMoreElement","showFullSummary_1","paragraphElements","len","textContent","manufacturerHero","snippetPanel","sliderHz","carLeasingDescription","readMoreButton","removeProperty","originalHeight","clientHeight","breadcrumbHeight","combineHeight","textWrap","textHeight","getComputedStyle","maxWidth","padding","imageWrapperElement","titleHeight","carExpertWrap"],"mappings":"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"}