{"version":3,"file":"jquery.flexslider.min.js","sources":["jquery.flexslider.js"],"sourcesContent":["/*\r\n * jQuery FlexSlider v2.1\r\n * http://www.woothemes.com/flexslider/\r\n *\r\n * Copyright 2012 WooThemes\r\n * Free to use under the GPLv2 license.\r\n * http://www.gnu.org/licenses/gpl-2.0.html\r\n *\r\n * Contributing author: Tyler Smith (@mbmufffin)\r\n */\r\n\r\n;(function ($) {\r\n\r\n //FlexSlider: Object Instance\r\n $.flexslider = function(el, options) {\r\n var slider = $(el),\r\n vars = $.extend({}, $.flexslider.defaults, options),\r\n namespace = vars.namespace,\r\n touch = (\"ontouchstart\" in window) || window.DocumentTouch && document instanceof DocumentTouch,\r\n eventType = (touch) ? \"touchend\" : \"click\",\r\n vertical = vars.direction === \"vertical\",\r\n reverse = vars.reverse,\r\n carousel = (vars.itemWidth > 0),\r\n fade = vars.animation === \"fade\",\r\n asNav = vars.asNavFor !== \"\",\r\n methods = {};\r\n\r\n // Store a reference to the slider object\r\n $.data(el, \"flexslider\", slider);\r\n\r\n // Privat slider methods\r\n methods = {\r\n init: function() {\r\n slider.animating = false;\r\n slider.currentSlide = vars.startAt;\r\n slider.animatingTo = slider.currentSlide;\r\n slider.atEnd = (slider.currentSlide === 0 || slider.currentSlide === slider.last);\r\n slider.containerSelector = vars.selector.substr(0,vars.selector.search(' '));\r\n slider.slides = $(vars.selector, slider);\r\n slider.container = $(slider.containerSelector, slider);\r\n slider.count = slider.slides.length;\r\n // SYNC:\r\n slider.syncExists = $(vars.sync).length > 0;\r\n // SLIDE:\r\n if (vars.animation === \"slide\") vars.animation = \"swing\";\r\n slider.prop = (vertical) ? \"top\" : \"marginLeft\";\r\n slider.args = {};\r\n // SLIDESHOW:\r\n slider.manualPause = false;\r\n // TOUCH/USECSS:\r\n slider.transitions = !vars.video && !fade && vars.useCSS && (function() {\r\n var obj = document.createElement('div'),\r\n props = ['perspectiveProperty', 'WebkitPerspective', 'MozPerspective', 'OPerspective', 'msPerspective'];\r\n for (var i in props) {\r\n if ( obj.style[ props[i] ] !== undefined ) {\r\n slider.pfx = props[i].replace('Perspective','').toLowerCase();\r\n slider.prop = \"-\" + slider.pfx + \"-transform\";\r\n return true;\r\n }\r\n }\r\n return false;\r\n }());\r\n // CONTROLSCONTAINER:\r\n if (vars.controlsContainer !== \"\") slider.controlsContainer = $(vars.controlsContainer).length > 0 && $(vars.controlsContainer);\r\n // MANUAL:\r\n if (vars.manualControls !== \"\") slider.manualControls = $(vars.manualControls).length > 0 && $(vars.manualControls);\r\n\r\n // RANDOMIZE:\r\n if (vars.randomize) {\r\n slider.slides.sort(function() { return (Math.round(Math.random())-0.5); });\r\n slider.container.empty().append(slider.slides);\r\n }\r\n\r\n slider.doMath();\r\n\r\n // ASNAV:\r\n if (asNav) methods.asNav.setup();\r\n\r\n // INIT\r\n slider.setup(\"init\");\r\n\r\n // CONTROLNAV:\r\n if (vars.controlNav) methods.controlNav.setup();\r\n\r\n // DIRECTIONNAV:\r\n if (vars.directionNav) methods.directionNav.setup();\r\n\r\n // KEYBOARD:\r\n if (vars.keyboard && ($(slider.containerSelector).length === 1 || vars.multipleKeyboard)) {\r\n $(document).bind('keyup', function(event) {\r\n var keycode = event.keyCode;\r\n if (!slider.animating && (keycode === 39 || keycode === 37)) {\r\n var target = (keycode === 39) ? slider.getTarget('next') :\r\n (keycode === 37) ? slider.getTarget('prev') : false;\r\n slider.flexAnimate(target, vars.pauseOnAction);\r\n }\r\n });\r\n }\r\n // MOUSEWHEEL:\r\n if (vars.mousewheel) {\r\n slider.bind('mousewheel', function(event, delta, deltaX, deltaY) {\r\n event.preventDefault();\r\n var target = (delta < 0) ? slider.getTarget('next') : slider.getTarget('prev');\r\n slider.flexAnimate(target, vars.pauseOnAction);\r\n });\r\n }\r\n\r\n // PAUSEPLAY\r\n if (vars.pausePlay) methods.pausePlay.setup();\r\n\r\n // SLIDSESHOW\r\n if (vars.slideshow) {\r\n if (vars.pauseOnHover) {\r\n slider.hover(function() {\r\n if (!slider.manualPlay && !slider.manualPause) slider.pause();\r\n }, function() {\r\n if (!slider.manualPause && !slider.manualPlay) slider.play();\r\n });\r\n }\r\n // initialize animation\r\n (vars.initDelay > 0) ? setTimeout(slider.play, vars.initDelay) : slider.play();\r\n }\r\n\r\n // TOUCH\r\n if (touch && vars.touch) methods.touch();\r\n\r\n // FADE&&SMOOTHHEIGHT || SLIDE:\r\n if (!fade || (fade && vars.smoothHeight)) $(window).bind(\"resize focus\", methods.resize);\r\n\r\n\r\n // API: start() Callback\r\n setTimeout(function(){\r\n vars.start(slider);\r\n }, 200);\r\n },\r\n asNav: {\r\n setup: function() {\r\n slider.asNav = true;\r\n slider.animatingTo = Math.floor(slider.currentSlide/slider.move);\r\n slider.currentItem = slider.currentSlide;\r\n slider.slides.removeClass(namespace + \"active-slide\").eq(slider.currentItem).addClass(namespace + \"active-slide\");\r\n slider.slides.click(function(e){\r\n e.preventDefault();\r\n var $slide = $(this),\r\n target = $slide.index();\r\n if (!$(vars.asNavFor).data('flexslider').animating && !$slide.hasClass('active')) {\r\n slider.direction = (slider.currentItem < target) ? \"next\" : \"prev\";\r\n slider.flexAnimate(target, vars.pauseOnAction, false, true, true);\r\n }\r\n });\r\n }\r\n },\r\n controlNav: {\r\n setup: function() {\r\n if (!slider.manualControls) {\r\n methods.controlNav.setupPaging();\r\n } else { // MANUALCONTROLS:\r\n methods.controlNav.setupManual();\r\n }\r\n },\r\n setupPaging: function() {\r\n var type = (vars.controlNav === \"thumbnails\") ? 'control-thumbs' : 'control-paging',\r\n j = 1,\r\n item;\r\n\r\n slider.controlNavScaffold = $('
    ');\r\n\r\n if (slider.pagingCount > 1) {\r\n for (var i = 0; i < slider.pagingCount; i++) {\r\n item = (vars.controlNav === \"thumbnails\") ? '' : '' + j + '';\r\n slider.controlNavScaffold.append('
  1. ' + item + '
  2. ');\r\n j++;\r\n }\r\n }\r\n\r\n // CONTROLSCONTAINER:\r\n (slider.controlsContainer) ? $(slider.controlsContainer).append(slider.controlNavScaffold) : slider.append(slider.controlNavScaffold);\r\n methods.controlNav.set();\r\n\r\n methods.controlNav.active();\r\n\r\n slider.controlNavScaffold.delegate('a, img', eventType, function(event) {\r\n event.preventDefault();\r\n var $this = $(this),\r\n target = slider.controlNav.index($this);\r\n\r\n if (!$this.hasClass(namespace + 'active')) {\r\n slider.direction = (target > slider.currentSlide) ? \"next\" : \"prev\";\r\n slider.flexAnimate(target, vars.pauseOnAction);\r\n }\r\n });\r\n // Prevent iOS click event bug\r\n if (touch) {\r\n slider.controlNavScaffold.delegate('a', \"click touchstart\", function(event) {\r\n event.preventDefault();\r\n });\r\n }\r\n },\r\n setupManual: function() {\r\n slider.controlNav = slider.manualControls;\r\n methods.controlNav.active();\r\n\r\n slider.controlNav.live(eventType, function(event) {\r\n event.preventDefault();\r\n var $this = $(this),\r\n target = slider.controlNav.index($this);\r\n\r\n if (!$this.hasClass(namespace + 'active')) {\r\n (target > slider.currentSlide) ? slider.direction = \"next\" : slider.direction = \"prev\";\r\n slider.flexAnimate(target, vars.pauseOnAction);\r\n }\r\n });\r\n // Prevent iOS click event bug\r\n if (touch) {\r\n slider.controlNav.live(\"click touchstart\", function(event) {\r\n event.preventDefault();\r\n });\r\n }\r\n },\r\n set: function() {\r\n var selector = (vars.controlNav === \"thumbnails\") ? 'img' : 'a';\r\n slider.controlNav = $('.' + namespace + 'control-nav li ' + selector, (slider.controlsContainer) ? slider.controlsContainer : slider);\r\n },\r\n active: function() {\r\n slider.controlNav.removeClass(namespace + \"active\").eq(slider.animatingTo).addClass(namespace + \"active\");\r\n },\r\n update: function(action, pos) {\r\n if (slider.pagingCount > 1 && action === \"add\") {\r\n slider.controlNavScaffold.append($('
  3. ' + slider.count + '
  4. '));\r\n } else if (slider.pagingCount === 1) {\r\n slider.controlNavScaffold.find('li').remove();\r\n } else {\r\n slider.controlNav.eq(pos).closest('li').remove();\r\n }\r\n methods.controlNav.set();\r\n (slider.pagingCount > 1 && slider.pagingCount !== slider.controlNav.length) ? slider.update(pos, action) : methods.controlNav.active();\r\n }\r\n },\r\n directionNav: {\r\n setup: function() {\r\n var directionNavScaffold = $('');\r\n\r\n // CONTROLSCONTAINER:\r\n if (slider.controlsContainer) {\r\n $(slider.controlsContainer).append(directionNavScaffold);\r\n slider.directionNav = $('.' + namespace + 'direction-nav li a', slider.controlsContainer);\r\n } else {\r\n slider.append(directionNavScaffold);\r\n slider.directionNav = $('.' + namespace + 'direction-nav li a', slider);\r\n }\r\n\r\n methods.directionNav.update();\r\n\r\n slider.directionNav.bind(eventType, function(event) {\r\n event.preventDefault();\r\n var target = ($(this).hasClass(namespace + 'next')) ? slider.getTarget('next') : slider.getTarget('prev');\r\n slider.flexAnimate(target, vars.pauseOnAction);\r\n });\r\n // Prevent iOS click event bug\r\n if (touch) {\r\n slider.directionNav.bind(\"click touchstart\", function(event) {\r\n event.preventDefault();\r\n });\r\n }\r\n },\r\n update: function() {\r\n var disabledClass = namespace + 'disabled';\r\n if (slider.pagingCount === 1) {\r\n slider.directionNav.addClass(disabledClass);\r\n } else if (!vars.animationLoop) {\r\n if (slider.animatingTo === 0) {\r\n slider.directionNav.removeClass(disabledClass).filter('.' + namespace + \"prev\").addClass(disabledClass);\r\n } else if (slider.animatingTo === slider.last) {\r\n slider.directionNav.removeClass(disabledClass).filter('.' + namespace + \"next\").addClass(disabledClass);\r\n } else {\r\n slider.directionNav.removeClass(disabledClass);\r\n }\r\n } else {\r\n slider.directionNav.removeClass(disabledClass);\r\n }\r\n }\r\n },\r\n pausePlay: {\r\n setup: function() {\r\n var pausePlayScaffold = $('
    ');\r\n\r\n // CONTROLSCONTAINER:\r\n if (slider.controlsContainer) {\r\n slider.controlsContainer.append(pausePlayScaffold);\r\n slider.pausePlay = $('.' + namespace + 'pauseplay a', slider.controlsContainer);\r\n } else {\r\n slider.append(pausePlayScaffold);\r\n slider.pausePlay = $('.' + namespace + 'pauseplay a', slider);\r\n }\r\n\r\n methods.pausePlay.update((vars.slideshow) ? namespace + 'pause' : namespace + 'play');\r\n\r\n slider.pausePlay.bind(eventType, function(event) {\r\n event.preventDefault();\r\n if ($(this).hasClass(namespace + 'pause')) {\r\n slider.manualPause = true;\r\n slider.manualPlay = false;\r\n slider.pause();\r\n } else {\r\n slider.manualPause = false;\r\n slider.manualPlay = true;\r\n slider.play();\r\n }\r\n });\r\n // Prevent iOS click event bug\r\n if (touch) {\r\n slider.pausePlay.bind(\"click touchstart\", function(event) {\r\n event.preventDefault();\r\n });\r\n }\r\n },\r\n update: function(state) {\r\n (state === \"play\") ? slider.pausePlay.removeClass(namespace + 'pause').addClass(namespace + 'play').text(vars.playText) : slider.pausePlay.removeClass(namespace + 'play').addClass(namespace + 'pause').text(vars.pauseText);\r\n }\r\n },\r\n touch: function() {\r\n var startX,\r\n startY,\r\n offset,\r\n cwidth,\r\n dx,\r\n startT,\r\n scrolling = false;\r\n\r\n el.addEventListener('touchstart', onTouchStart, false);\r\n function onTouchStart(e) {\r\n if (slider.animating) {\r\n e.preventDefault();\r\n } else if (e.touches.length === 1) {\r\n slider.pause();\r\n // CAROUSEL:\r\n cwidth = (vertical) ? slider.h : slider. w;\r\n startT = Number(new Date());\r\n // CAROUSEL:\r\n offset = (carousel && reverse && slider.animatingTo === slider.last) ? 0 :\r\n (carousel && reverse) ? slider.limit - (((slider.itemW + vars.itemMargin) * slider.move) * slider.animatingTo) :\r\n (carousel && slider.currentSlide === slider.last) ? slider.limit :\r\n (carousel) ? ((slider.itemW + vars.itemMargin) * slider.move) * slider.currentSlide :\r\n (reverse) ? (slider.last - slider.currentSlide + slider.cloneOffset) * cwidth : (slider.currentSlide + slider.cloneOffset) * cwidth;\r\n startX = (vertical) ? e.touches[0].pageY : e.touches[0].pageX;\r\n startY = (vertical) ? e.touches[0].pageX : e.touches[0].pageY;\r\n\r\n el.addEventListener('touchmove', onTouchMove, false);\r\n el.addEventListener('touchend', onTouchEnd, false);\r\n }\r\n }\r\n\r\n function onTouchMove(e) {\r\n dx = (vertical) ? startX - e.touches[0].pageY : startX - e.touches[0].pageX;\r\n scrolling = (vertical) ? (Math.abs(dx) < Math.abs(e.touches[0].pageX - startY)) : (Math.abs(dx) < Math.abs(e.touches[0].pageY - startY));\r\n\r\n if (!scrolling || Number(new Date()) - startT > 500) {\r\n e.preventDefault();\r\n if (!fade && slider.transitions) {\r\n if (!vars.animationLoop) {\r\n dx = dx/((slider.currentSlide === 0 && dx < 0 || slider.currentSlide === slider.last && dx > 0) ? (Math.abs(dx)/cwidth+2) : 1);\r\n }\r\n slider.setProps(offset + dx, \"setTouch\");\r\n }\r\n }\r\n }\r\n\r\n function onTouchEnd(e) {\r\n // finish the touch by undoing the touch session\r\n el.removeEventListener('touchmove', onTouchMove, false);\r\n\r\n if (slider.animatingTo === slider.currentSlide && !scrolling && !(dx === null)) {\r\n var updateDx = (reverse) ? -dx : dx,\r\n target = (updateDx > 0) ? slider.getTarget('next') : slider.getTarget('prev');\r\n\r\n if (slider.canAdvance(target) && (Number(new Date()) - startT < 550 && Math.abs(updateDx) > 50 || Math.abs(updateDx) > cwidth/2)) {\r\n slider.flexAnimate(target, vars.pauseOnAction);\r\n } else {\r\n if (!fade) slider.flexAnimate(slider.currentSlide, vars.pauseOnAction, true);\r\n }\r\n }\r\n el.removeEventListener('touchend', onTouchEnd, false);\r\n startX = null;\r\n startY = null;\r\n dx = null;\r\n offset = null;\r\n }\r\n },\r\n resize: function() {\r\n if (!slider.animating && slider.is(':visible')) {\r\n if (!carousel) slider.doMath();\r\n\r\n if (fade) {\r\n // SMOOTH HEIGHT:\r\n methods.smoothHeight();\r\n } else if (carousel) { //CAROUSEL:\r\n slider.slides.width(slider.computedW);\r\n slider.update(slider.pagingCount);\r\n slider.setProps();\r\n }\r\n else if (vertical) { //VERTICAL:\r\n slider.viewport.height(slider.h);\r\n slider.setProps(slider.h, \"setTotal\");\r\n } else {\r\n // SMOOTH HEIGHT:\r\n if (vars.smoothHeight) methods.smoothHeight();\r\n slider.newSlides.width(slider.computedW);\r\n slider.setProps(slider.computedW, \"setTotal\");\r\n }\r\n }\r\n },\r\n smoothHeight: function(dur) {\r\n if (!vertical || fade) {\r\n var $obj = (fade) ? slider : slider.viewport;\r\n (dur) ? $obj.animate({\"height\": slider.slides.eq(slider.animatingTo).height()}, dur) : $obj.height(slider.slides.eq(slider.animatingTo).height());\r\n }\r\n },\r\n sync: function(action) {\r\n var $obj = $(vars.sync).data(\"flexslider\"),\r\n target = slider.animatingTo;\r\n\r\n switch (action) {\r\n case \"animate\": $obj.flexAnimate(target, vars.pauseOnAction, false, true); break;\r\n case \"play\": if (!$obj.playing && !$obj.asNav) { $obj.play(); } break;\r\n case \"pause\": $obj.pause(); break;\r\n }\r\n }\r\n }\r\n\r\n // public methods\r\n slider.flexAnimate = function(target, pause, override, withSync, fromNav) {\r\n\r\n if (asNav && slider.pagingCount === 1) slider.direction = (slider.currentItem < target) ? \"next\" : \"prev\";\r\n\r\n if (!slider.animating && (slider.canAdvance(target, fromNav) || override) && slider.is(\":visible\")) {\r\n if (asNav && withSync) {\r\n var master = $(vars.asNavFor).data('flexslider');\r\n slider.atEnd = target === 0 || target === slider.count - 1;\r\n master.flexAnimate(target, true, false, true, fromNav);\r\n slider.direction = (slider.currentItem < target) ? \"next\" : \"prev\";\r\n master.direction = slider.direction;\r\n\r\n if (Math.ceil((target + 1)/slider.visible) - 1 !== slider.currentSlide && target !== 0) {\r\n slider.currentItem = target;\r\n slider.slides.removeClass(namespace + \"active-slide\").eq(target).addClass(namespace + \"active-slide\");\r\n target = Math.floor(target/slider.visible);\r\n } else {\r\n slider.currentItem = target;\r\n slider.slides.removeClass(namespace + \"active-slide\").eq(target).addClass(namespace + \"active-slide\");\r\n return false;\r\n }\r\n }\r\n\r\n slider.animating = true;\r\n slider.animatingTo = target;\r\n // API: before() animation Callback\r\n vars.before(slider);\r\n\r\n // SLIDESHOW:\r\n if (pause) slider.pause();\r\n\r\n // SYNC:\r\n if (slider.syncExists && !fromNav) methods.sync(\"animate\");\r\n\r\n // CONTROLNAV\r\n if (vars.controlNav) methods.controlNav.active();\r\n\r\n // !CAROUSEL:\r\n // CANDIDATE: slide active class (for add/remove slide)\r\n if (!carousel) slider.slides.removeClass(namespace + 'active-slide').eq(target).addClass(namespace + 'active-slide');\r\n\r\n // INFINITE LOOP:\r\n // CANDIDATE: atEnd\r\n slider.atEnd = target === 0 || target === slider.last;\r\n\r\n // DIRECTIONNAV:\r\n if (vars.directionNav) methods.directionNav.update();\r\n\r\n if (target === slider.last) {\r\n // API: end() of cycle Callback\r\n vars.end(slider);\r\n // SLIDESHOW && !INFINITE LOOP:\r\n if (!vars.animationLoop) slider.pause();\r\n }\r\n\r\n // SLIDE:\r\n if (!fade) {\r\n var dimension = (vertical) ? slider.slides.filter(':first').height() : slider.computedW,\r\n margin, slideString, calcNext;\r\n\r\n // INFINITE LOOP / REVERSE:\r\n if (carousel) {\r\n margin = (vars.itemWidth > slider.w) ? vars.itemMargin * 2 : vars.itemMargin;\r\n calcNext = ((slider.itemW + margin) * slider.move) * slider.animatingTo;\r\n slideString = (calcNext > slider.limit && slider.visible !== 1) ? slider.limit : calcNext;\r\n } else if (slider.currentSlide === 0 && target === slider.count - 1 && vars.animationLoop && slider.direction !== \"next\") {\r\n slideString = (reverse) ? (slider.count + slider.cloneOffset) * dimension : 0;\r\n } else if (slider.currentSlide === slider.last && target === 0 && vars.animationLoop && slider.direction !== \"prev\") {\r\n slideString = (reverse) ? 0 : (slider.count + 1) * dimension;\r\n } else {\r\n slideString = (reverse) ? ((slider.count - 1) - target + slider.cloneOffset) * dimension : (target + slider.cloneOffset) * dimension;\r\n }\r\n slider.setProps(slideString, \"\", vars.animationSpeed);\r\n if (slider.transitions) {\r\n if (!vars.animationLoop || !slider.atEnd) {\r\n slider.animating = false;\r\n slider.currentSlide = slider.animatingTo;\r\n }\r\n slider.container.unbind(\"webkitTransitionEnd transitionend\");\r\n slider.container.bind(\"webkitTransitionEnd transitionend\", function() {\r\n slider.wrapup(dimension);\r\n });\r\n } else {\r\n slider.container.animate(slider.args, vars.animationSpeed, vars.easing, function(){\r\n slider.wrapup(dimension);\r\n });\r\n }\r\n } else { // FADE:\r\n if (!touch) {\r\n slider.slides.eq(slider.currentSlide).fadeOut(vars.animationSpeed, vars.easing);\r\n slider.slides.eq(target).fadeIn(vars.animationSpeed, vars.easing, slider.wrapup);\r\n } else {\r\n slider.slides.eq(slider.currentSlide).css({ \"opacity\": 0, \"zIndex\": 1 });\r\n slider.slides.eq(target).css({ \"opacity\": 1, \"zIndex\": 2 });\r\n\r\n slider.slides.unbind(\"webkitTransitionEnd transitionend\");\r\n slider.slides.eq(slider.currentSlide).bind(\"webkitTransitionEnd transitionend\", function() {\r\n // API: after() animation Callback\r\n vars.after(slider);\r\n });\r\n\r\n slider.animating = false;\r\n slider.currentSlide = slider.animatingTo;\r\n }\r\n }\r\n // SMOOTH HEIGHT:\r\n if (vars.smoothHeight) methods.smoothHeight(vars.animationSpeed);\r\n }\r\n }\r\n slider.wrapup = function(dimension) {\r\n // SLIDE:\r\n if (!fade && !carousel) {\r\n if (slider.currentSlide === 0 && slider.animatingTo === slider.last && vars.animationLoop) {\r\n slider.setProps(dimension, \"jumpEnd\");\r\n } else if (slider.currentSlide === slider.last && slider.animatingTo === 0 && vars.animationLoop) {\r\n slider.setProps(dimension, \"jumpStart\");\r\n }\r\n }\r\n slider.animating = false;\r\n slider.currentSlide = slider.animatingTo;\r\n // API: after() animation Callback\r\n vars.after(slider);\r\n }\r\n\r\n // SLIDESHOW:\r\n slider.animateSlides = function() {\r\n if (!slider.animating) slider.flexAnimate(slider.getTarget(\"next\"));\r\n }\r\n // SLIDESHOW:\r\n slider.pause = function() {\r\n clearInterval(slider.animatedSlides);\r\n slider.playing = false;\r\n // PAUSEPLAY:\r\n if (vars.pausePlay) methods.pausePlay.update(\"play\");\r\n // SYNC:\r\n if (slider.syncExists) methods.sync(\"pause\");\r\n }\r\n // SLIDESHOW:\r\n slider.play = function() {\r\n slider.animatedSlides = setInterval(slider.animateSlides, vars.slideshowSpeed);\r\n slider.playing = true;\r\n // PAUSEPLAY:\r\n if (vars.pausePlay) methods.pausePlay.update(\"pause\");\r\n // SYNC:\r\n if (slider.syncExists) methods.sync(\"play\");\r\n }\r\n slider.canAdvance = function(target, fromNav) {\r\n // ASNAV:\r\n var last = (asNav) ? slider.pagingCount - 1 : slider.last;\r\n return (fromNav) ? true :\r\n (asNav && slider.currentItem === slider.count - 1 && target === 0 && slider.direction === \"prev\") ? true :\r\n (asNav && slider.currentItem === 0 && target === slider.pagingCount - 1 && slider.direction !== \"next\") ? false :\r\n (target === slider.currentSlide && !asNav) ? false :\r\n (vars.animationLoop) ? true :\r\n (slider.atEnd && slider.currentSlide === 0 && target === last && slider.direction !== \"next\") ? false :\r\n (slider.atEnd && slider.currentSlide === last && target === 0 && slider.direction === \"next\") ? false :\r\n true;\r\n }\r\n slider.getTarget = function(dir) {\r\n slider.direction = dir;\r\n if (dir === \"next\") {\r\n return (slider.currentSlide === slider.last) ? 0 : slider.currentSlide + 1;\r\n } else {\r\n return (slider.currentSlide === 0) ? slider.last : slider.currentSlide - 1;\r\n }\r\n }\r\n\r\n // SLIDE:\r\n slider.setProps = function(pos, special, dur) {\r\n var target = (function() {\r\n var posCheck = (pos) ? pos : ((slider.itemW + vars.itemMargin) * slider.move) * slider.animatingTo,\r\n posCalc = (function() {\r\n if (carousel) {\r\n return (special === \"setTouch\") ? pos :\r\n (reverse && slider.animatingTo === slider.last) ? 0 :\r\n (reverse) ? slider.limit - (((slider.itemW + vars.itemMargin) * slider.move) * slider.animatingTo) :\r\n (slider.animatingTo === slider.last) ? slider.limit : posCheck;\r\n } else {\r\n switch (special) {\r\n case \"setTotal\": return (reverse) ? ((slider.count - 1) - slider.currentSlide + slider.cloneOffset) * pos : (slider.currentSlide + slider.cloneOffset) * pos;\r\n case \"setTouch\": return (reverse) ? pos : pos;\r\n case \"jumpEnd\": return (reverse) ? pos : slider.count * pos;\r\n case \"jumpStart\": return (reverse) ? slider.count * pos : pos;\r\n default: return pos;\r\n }\r\n }\r\n }());\r\n return (posCalc * -1) + \"px\";\r\n }());\r\n\r\n if (slider.transitions) {\r\n target = (vertical) ? \"translate3d(0,\" + target + \",0)\" : \"translate3d(\" + target + \",0,0)\";\r\n dur = (dur !== undefined) ? (dur/1000) + \"s\" : \"0s\";\r\n slider.container.css(\"-\" + slider.pfx + \"-transition-duration\", dur);\r\n }\r\n\r\n slider.args[slider.prop] = target;\r\n if (slider.transitions || dur === undefined) slider.container.css(slider.args);\r\n }\r\n\r\n slider.setup = function(type) {\r\n // SLIDE:\r\n if (!fade) {\r\n var sliderOffset, arr;\r\n\r\n if (type === \"init\") {\r\n slider.viewport = $('
    ').css({\"overflow\": \"hidden\", \"position\": \"relative\"}).appendTo(slider).append(slider.container);\r\n // INFINITE LOOP:\r\n slider.cloneCount = 0;\r\n slider.cloneOffset = 0;\r\n // REVERSE:\r\n if (reverse) {\r\n arr = $.makeArray(slider.slides).reverse();\r\n slider.slides = $(arr);\r\n slider.container.empty().append(slider.slides);\r\n }\r\n }\r\n // INFINITE LOOP && !CAROUSEL:\r\n if (vars.animationLoop && !carousel) {\r\n slider.cloneCount = 2;\r\n slider.cloneOffset = 1;\r\n // clear out old clones\r\n if (type !== \"init\") slider.container.find('.clone').remove();\r\n slider.container.append(slider.slides.first().clone().addClass('clone')).prepend(slider.slides.last().clone().addClass('clone'));\r\n }\r\n slider.newSlides = $(vars.selector, slider);\r\n\r\n sliderOffset = (reverse) ? slider.count - 1 - slider.currentSlide + slider.cloneOffset : slider.currentSlide + slider.cloneOffset;\r\n // VERTICAL:\r\n if (vertical && !carousel) {\r\n slider.container.height((slider.count + slider.cloneCount) * 200 + \"%\").css(\"position\", \"absolute\").width(\"100%\");\r\n setTimeout(function(){\r\n slider.newSlides.css({\"display\": \"block\"});\r\n slider.doMath();\r\n slider.viewport.height(slider.h);\r\n slider.setProps(sliderOffset * slider.h, \"init\");\r\n }, (type === \"init\") ? 100 : 0);\r\n } else {\r\n slider.container.width((slider.count + slider.cloneCount) * 200 + \"%\");\r\n slider.setProps(sliderOffset * slider.computedW, \"init\");\r\n setTimeout(function(){\r\n slider.doMath();\r\n slider.newSlides.css({\"width\": slider.computedW, \"float\": \"left\", \"display\": \"block\"});\r\n // SMOOTH HEIGHT:\r\n if (vars.smoothHeight) methods.smoothHeight();\r\n }, (type === \"init\") ? 100 : 0);\r\n }\r\n } else { // FADE:\r\n slider.slides.css({\"width\": \"100%\", \"float\": \"left\", \"marginRight\": \"-100%\", \"position\": \"relative\"});\r\n if (type === \"init\") {\r\n if (!touch) {\r\n slider.slides.eq(slider.currentSlide).fadeIn(vars.animationSpeed, vars.easing);\r\n } else {\r\n slider.slides.css({ \"opacity\": 0, \"display\": \"block\", \"webkitTransition\": \"opacity \" + vars.animationSpeed / 1000 + \"s ease\", \"zIndex\": 1 }).eq(slider.currentSlide).css({ \"opacity\": 1, \"zIndex\": 2});\r\n }\r\n }\r\n // SMOOTH HEIGHT:\r\n if (vars.smoothHeight) methods.smoothHeight();\r\n }\r\n // !CAROUSEL:\r\n // CANDIDATE: active slide\r\n if (!carousel) slider.slides.removeClass(namespace + \"active-slide\").eq(slider.currentSlide).addClass(namespace + \"active-slide\");\r\n }\r\n\r\n slider.doMath = function() {\r\n var slide = slider.slides.first(),\r\n slideMargin = vars.itemMargin,\r\n minItems = vars.minItems,\r\n maxItems = vars.maxItems;\r\n\r\n slider.w = slider.width();\r\n slider.h = slide.height();\r\n slider.boxPadding = slide.outerWidth() - slide.width();\r\n\r\n // CAROUSEL:\r\n if (carousel) {\r\n slider.itemT = vars.itemWidth + slideMargin;\r\n slider.minW = (minItems) ? minItems * slider.itemT : slider.w;\r\n slider.maxW = (maxItems) ? maxItems * slider.itemT : slider.w;\r\n slider.itemW = (slider.minW > slider.w) ? (slider.w - (slideMargin * minItems))/minItems :\r\n (slider.maxW < slider.w) ? (slider.w - (slideMargin * maxItems))/maxItems :\r\n (vars.itemWidth > slider.w) ? slider.w : vars.itemWidth;\r\n slider.visible = Math.floor(slider.w/(slider.itemW + slideMargin));\r\n slider.move = (vars.move > 0 && vars.move < slider.visible ) ? vars.move : slider.visible;\r\n slider.pagingCount = Math.ceil(((slider.count - slider.visible)/slider.move) + 1);\r\n slider.last = slider.pagingCount - 1;\r\n slider.limit = (slider.pagingCount === 1) ? 0 :\r\n (vars.itemWidth > slider.w) ? ((slider.itemW + (slideMargin * 2)) * slider.count) - slider.w - slideMargin : ((slider.itemW + slideMargin) * slider.count) - slider.w - slideMargin;\r\n } else {\r\n slider.itemW = slider.w;\r\n slider.pagingCount = slider.count;\r\n slider.last = slider.count - 1;\r\n }\r\n slider.computedW = slider.itemW - slider.boxPadding;\r\n }\r\n\r\n slider.update = function(pos, action) {\r\n slider.doMath();\r\n\r\n // update currentSlide and slider.animatingTo if necessary\r\n if (!carousel) {\r\n if (pos < slider.currentSlide) {\r\n slider.currentSlide += 1;\r\n } else if (pos <= slider.currentSlide && pos !== 0) {\r\n slider.currentSlide -= 1;\r\n }\r\n slider.animatingTo = slider.currentSlide;\r\n }\r\n\r\n // update controlNav\r\n if (vars.controlNav && !slider.manualControls) {\r\n if ((action === \"add\" && !carousel) || slider.pagingCount > slider.controlNav.length) {\r\n methods.controlNav.update(\"add\");\r\n } else if ((action === \"remove\" && !carousel) || slider.pagingCount < slider.controlNav.length) {\r\n if (carousel && slider.currentSlide > slider.last) {\r\n slider.currentSlide -= 1;\r\n slider.animatingTo -= 1;\r\n }\r\n methods.controlNav.update(\"remove\", slider.last);\r\n }\r\n }\r\n // update directionNav\r\n if (vars.directionNav) methods.directionNav.update();\r\n\r\n }\r\n\r\n slider.addSlide = function(obj, pos) {\r\n var $obj = $(obj);\r\n\r\n slider.count += 1;\r\n slider.last = slider.count - 1;\r\n\r\n // append new slide\r\n if (vertical && reverse) {\r\n (pos !== undefined) ? slider.slides.eq(slider.count - pos).after($obj) : slider.container.prepend($obj);\r\n } else {\r\n (pos !== undefined) ? slider.slides.eq(pos).before($obj) : slider.container.append($obj);\r\n }\r\n\r\n // update currentSlide, animatingTo, controlNav, and directionNav\r\n slider.update(pos, \"add\");\r\n\r\n // update slider.slides\r\n slider.slides = $(vars.selector + ':not(.clone)', slider);\r\n // re-setup the slider to accomdate new slide\r\n slider.setup();\r\n\r\n //FlexSlider: added() Callback\r\n vars.added(slider);\r\n }\r\n slider.removeSlide = function(obj) {\r\n var pos = (isNaN(obj)) ? slider.slides.index($(obj)) : obj;\r\n\r\n // update count\r\n slider.count -= 1;\r\n slider.last = slider.count - 1;\r\n\r\n // remove slide\r\n if (isNaN(obj)) {\r\n $(obj, slider.slides).remove();\r\n } else {\r\n (vertical && reverse) ? slider.slides.eq(slider.last).remove() : slider.slides.eq(obj).remove();\r\n }\r\n\r\n // update currentSlide, animatingTo, controlNav, and directionNav\r\n slider.doMath();\r\n slider.update(pos, \"remove\");\r\n\r\n // update slider.slides\r\n slider.slides = $(vars.selector + ':not(.clone)', slider);\r\n // re-setup the slider to accomdate new slide\r\n slider.setup();\r\n\r\n // FlexSlider: removed() Callback\r\n vars.removed(slider);\r\n }\r\n\r\n //FlexSlider: Initialize\r\n methods.init();\r\n }\r\n\r\n //FlexSlider: Default Settings\r\n $.flexslider.defaults = {\r\n namespace: \"flex-\", //{NEW} String: Prefix string attached to the class of every element generated by the plugin\r\n selector: \".slides > li\", //{NEW} Selector: Must match a simple pattern. '{container} > {slide}' -- Ignore pattern at your own peril\r\n animation: \"fade\", //String: Select your animation type, \"fade\" or \"slide\"\r\n easing: \"swing\", //{NEW} String: Determines the easing method used in jQuery transitions. jQuery easing plugin is supported!\r\n direction: \"horizontal\", //String: Select the sliding direction, \"horizontal\" or \"vertical\"\r\n reverse: false, //{NEW} Boolean: Reverse the animation direction\r\n animationLoop: true, //Boolean: Should the animation loop? If false, directionNav will received \"disable\" classes at either end\r\n smoothHeight: false, //{NEW} Boolean: Allow height of the slider to animate smoothly in horizontal mode\r\n startAt: 0, //Integer: The slide that the slider should start on. Array notation (0 = first slide)\r\n slideshow: true, //Boolean: Animate slider automatically\r\n slideshowSpeed: 7000, //Integer: Set the speed of the slideshow cycling, in milliseconds\r\n animationSpeed: 600, //Integer: Set the speed of animations, in milliseconds\r\n initDelay: 0, //{NEW} Integer: Set an initialization delay, in milliseconds\r\n randomize: false, //Boolean: Randomize slide order\r\n\r\n // Usability features\r\n pauseOnAction: true, //Boolean: Pause the slideshow when interacting with control elements, highly recommended.\r\n pauseOnHover: false, //Boolean: Pause the slideshow when hovering over slider, then resume when no longer hovering\r\n useCSS: true, //{NEW} Boolean: Slider will use CSS3 transitions if available\r\n touch: true, //{NEW} Boolean: Allow touch swipe navigation of the slider on touch-enabled devices\r\n video: false, //{NEW} Boolean: If using video in the slider, will prevent CSS3 3D Transforms to avoid graphical glitches\r\n\r\n // Primary Controls\r\n controlNav: true, //Boolean: Create navigation for paging control of each clide? Note: Leave true for manualControls usage\r\n directionNav: true, //Boolean: Create navigation for previous/next navigation? (true/false)\r\n prevText: \"Previous\", //String: Set the text for the \"previous\" directionNav item\r\n nextText: \"Next\", //String: Set the text for the \"next\" directionNav item\r\n\r\n // Secondary Navigation\r\n keyboard: true, //Boolean: Allow slider navigating via keyboard left/right keys\r\n multipleKeyboard: false, //{NEW} Boolean: Allow keyboard navigation to affect multiple sliders. Default behavior cuts out keyboard navigation with more than one slider present.\r\n mousewheel: false, //{UPDATED} Boolean: Requires jquery.mousewheel.js (https://github.com/brandonaaron/jquery-mousewheel) - Allows slider navigating via mousewheel\r\n pausePlay: false, //Boolean: Create pause/play dynamic element\r\n pauseText: \"Pause\", //String: Set the text for the \"pause\" pausePlay item\r\n playText: \"Play\", //String: Set the text for the \"play\" pausePlay item\r\n\r\n // Special properties\r\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.\r\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.\r\n sync: \"\", //{NEW} Selector: Mirror the actions performed on this slider with another slider. Use with care.\r\n asNavFor: \"\", //{NEW} Selector: Internal property exposed for turning the slider into a thumbnail navigation for another slider\r\n\r\n // Carousel Options\r\n itemWidth: 0, //{NEW} Integer: Box-model width of individual carousel items, including horizontal borders and padding.\r\n itemMargin: 0, //{NEW} Integer: Margin between carousel items.\r\n minItems: 0, //{NEW} Integer: Minimum number of carousel items that should be visible. Items will resize fluidly when below this.\r\n maxItems: 0, //{NEW} Integer: Maxmimum number of carousel items that should be visible. Items will resize fluidly when above this limit.\r\n move: 0, //{NEW} Integer: Number of carousel items that should move on animation. If 0, slider will move all visible items.\r\n\r\n // Callback API\r\n start: function(){}, //Callback: function(slider) - Fires when the slider loads the first slide\r\n before: function(){}, //Callback: function(slider) - Fires asynchronously with each slider animation\r\n after: function(){}, //Callback: function(slider) - Fires after each slider animation completes\r\n end: function(){}, //Callback: function(slider) - Fires when the slider reaches the last slide (asynchronous)\r\n added: function(){}, //{NEW} Callback: function(slider) - Fires after a slide is added\r\n removed: function(){} //{NEW} Callback: function(slider) - Fires after a slide is removed\r\n }\r\n\r\n\r\n //FlexSlider: Plugin Function\r\n $.fn.flexslider = function(options) {\r\n if (options === undefined) options = {};\r\n\r\n if (typeof options === \"object\") {\r\n return this.each(function() {\r\n var $this = $(this),\r\n selector = (options.selector) ? options.selector : \".slides > li\",\r\n $slides = $this.find(selector);\r\n\r\n if ($slides.length === 1) {\r\n $slides.fadeIn(400);\r\n if (options.start) options.start($this);\r\n } else if ($this.data('flexslider') == undefined) {\r\n new $.flexslider(this, options);\r\n }\r\n });\r\n } else {\r\n // Helper strings to quickly perform functions on the slider\r\n var $slider = $(this).data('flexslider');\r\n switch (options) {\r\n case \"play\": $slider.play(); break;\r\n case \"pause\": $slider.pause(); break;\r\n case \"next\": $slider.flexAnimate($slider.getTarget(\"next\"), true); break;\r\n case \"prev\":\r\n case \"previous\": $slider.flexAnimate($slider.getTarget(\"prev\"), true); break;\r\n default: if (typeof options === \"number\") $slider.flexAnimate(options, true);\r\n }\r\n }\r\n }\r\n\r\n})(jQuery);\r\n"],"names":["$","flexslider","el","options","slider","vars","extend","defaults","namespace","touch","window","DocumentTouch","document","eventType","vertical","direction","reverse","carousel","itemWidth","fade","animation","asNav","asNavFor","methods","data","init","animating","currentSlide","startAt","animatingTo","atEnd","last","containerSelector","selector","substr","search","slides","container","count","length","syncExists","sync","prop","args","manualPause","transitions","video","useCSS","i","obj","createElement","props","undefined","style","pfx","replace","toLowerCase","controlsContainer","manualControls","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","pauseOnHover","hover","manualPlay","pause","play","initDelay","setTimeout","smoothHeight","resize","start","floor","move","currentItem","removeClass","eq","addClass","click","e","$slide","this","index","hasClass","setupManual","setupPaging","item","type","j","controlNavScaffold","pagingCount","attr","set","active","delegate","$this","live","update","action","pos","find","closest","remove","directionNavScaffold","prevText","nextText","disabledClass","animationLoop","filter","pausePlayScaffold","state","text","playText","pauseText","startX","startY","offset","cwidth","dx","startT","scrolling","onTouchMove","touches","pageY","pageX","abs","Number","Date","setProps","onTouchEnd","updateDx","removeEventListener","canAdvance","addEventListener","h","w","limit","itemW","itemMargin","cloneOffset","is","width","computedW","viewport","height","newSlides","dur","$obj","animate","playing","override","withSync","fromNav","master","ceil","visible","dimension","before","end","css","opacity","zIndex","unbind","after","fadeOut","animationSpeed","easing","fadeIn","wrapup","slideString","margin","calcNext","animateSlides","clearInterval","animatedSlides","setInterval","slideshowSpeed","dir","special","posCheck","sliderOffset","arr","float","marginRight","position","display","webkitTransition","overflow","appendTo","cloneCount","makeArray","first","clone","prepend","slide","slideMargin","minItems","maxItems","boxPadding","outerWidth","itemT","minW","maxW","addSlide","added","removeSlide","isNaN","removed","fn","each","$slides","$slider","jQuery"],"mappings":"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"}