{"version":3,"file":"jquery.flexslider.min.js","sources":["jquery.flexslider.js"],"sourcesContent":["/*\n * jQuery FlexSlider v2.1\n * http://www.woothemes.com/flexslider/\n *\n * Copyright 2012 WooThemes\n * Free to use under the GPLv2 license.\n * http://www.gnu.org/licenses/gpl-2.0.html\n *\n * Contributing author: Tyler Smith (@mbmufffin)\n */\n\n;(function ($) {\n\n //FlexSlider: Object Instance\n $.flexslider = function(el, options) {\n var slider = $(el),\n vars = $.extend({}, $.flexslider.defaults, options),\n namespace = vars.namespace,\n touch = (\"ontouchstart\" in window) || window.DocumentTouch && document instanceof DocumentTouch,\n eventType = (touch) ? \"touchend\" : \"click\",\n vertical = vars.direction === \"vertical\",\n reverse = vars.reverse,\n carousel = (vars.itemWidth > 0),\n fade = vars.animation === \"fade\",\n asNav = vars.asNavFor !== \"\",\n methods = {};\n\n // Store a reference to the slider object\n $.data(el, \"flexslider\", slider);\n\n // Privat slider methods\n methods = {\n init: function() {\n slider.animating = false;\n slider.currentSlide = vars.startAt;\n slider.animatingTo = slider.currentSlide;\n slider.atEnd = (slider.currentSlide === 0 || slider.currentSlide === slider.last);\n slider.containerSelector = vars.selector.substr(0,vars.selector.search(' '));\n slider.slides = $(vars.selector, slider);\n slider.container = $(slider.containerSelector, slider);\n slider.count = slider.slides.length;\n // SYNC:\n slider.syncExists = $(vars.sync).length > 0;\n // SLIDE:\n if (vars.animation === \"slide\") vars.animation = \"swing\";\n slider.prop = (vertical) ? \"top\" : \"marginLeft\";\n slider.args = {};\n // SLIDESHOW:\n slider.manualPause = false;\n // TOUCH/USECSS:\n slider.transitions = !vars.video && !fade && 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 // CONTROLSCONTAINER:\n if (vars.controlsContainer !== \"\") slider.controlsContainer = $(vars.controlsContainer).length > 0 && $(vars.controlsContainer);\n // MANUAL:\n if (vars.manualControls !== \"\") slider.manualControls = $(vars.manualControls).length > 0 && $(vars.manualControls);\n\n // RANDOMIZE:\n if (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 // ASNAV:\n if (asNav) methods.asNav.setup();\n\n // INIT\n slider.setup(\"init\");\n\n // CONTROLNAV:\n if (vars.controlNav) methods.controlNav.setup();\n\n // DIRECTIONNAV:\n if (vars.directionNav) methods.directionNav.setup();\n\n // KEYBOARD:\n if (vars.keyboard && ($(slider.containerSelector).length === 1 || 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, vars.pauseOnAction);\n }\n });\n }\n // MOUSEWHEEL:\n if (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, vars.pauseOnAction);\n });\n }\n\n // PAUSEPLAY\n if (vars.pausePlay) methods.pausePlay.setup();\n\n // SLIDSESHOW\n if (vars.slideshow) {\n if (vars.pauseOnHover) {\n slider.hover(function() {\n if (!slider.manualPlay && !slider.manualPause) slider.pause();\n }, function() {\n if (!slider.manualPause && !slider.manualPlay) slider.play();\n });\n }\n // initialize animation\n (vars.initDelay > 0) ? setTimeout(slider.play, vars.initDelay) : slider.play();\n }\n\n // TOUCH\n if (touch && vars.touch) methods.touch();\n\n // FADE&&SMOOTHHEIGHT || SLIDE:\n if (!fade || (fade && vars.smoothHeight)) $(window).bind(\"resize focus\", methods.resize);\n\n\n // API: start() Callback\n setTimeout(function(){\n 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 slider.slides.click(function(e){\n e.preventDefault();\n var $slide = $(this),\n target = $slide.index();\n if (!$(vars.asNavFor).data('flexslider').animating && !$slide.hasClass('active')) {\n slider.direction = (slider.currentItem < target) ? \"next\" : \"prev\";\n slider.flexAnimate(target, vars.pauseOnAction, false, true, true);\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 = (vars.controlNav === \"thumbnails\") ? 'control-thumbs' : 'control-paging',\n j = 1,\n item;\n\n slider.controlNavScaffold = $('
    ');\n\n if (slider.pagingCount > 1) {\n for (var i = 0; i < slider.pagingCount; i++) {\n item = (vars.controlNav === \"thumbnails\") ? '' : '' + j + '';\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 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, vars.pauseOnAction);\n }\n });\n // Prevent iOS click event bug\n if (touch) {\n slider.controlNavScaffold.delegate('a', \"click touchstart\", function(event) {\n event.preventDefault();\n });\n }\n },\n setupManual: function() {\n slider.controlNav = slider.manualControls;\n methods.controlNav.active();\n\n slider.controlNav.live(eventType, function(event) {\n event.preventDefault();\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, vars.pauseOnAction);\n }\n });\n // Prevent iOS click event bug\n if (touch) {\n slider.controlNav.live(\"click touchstart\", function(event) {\n event.preventDefault();\n });\n }\n },\n set: function() {\n var selector = (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 // CONTROLSCONTAINER:\n 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 = ($(this).hasClass(namespace + 'next')) ? slider.getTarget('next') : slider.getTarget('prev');\n slider.flexAnimate(target, vars.pauseOnAction);\n });\n // Prevent iOS click event bug\n if (touch) {\n slider.directionNav.bind(\"click touchstart\", function(event) {\n event.preventDefault();\n });\n }\n },\n update: function() {\n var disabledClass = namespace + 'disabled';\n if (slider.pagingCount === 1) {\n slider.directionNav.addClass(disabledClass);\n } else if (!vars.animationLoop) {\n if (slider.animatingTo === 0) {\n slider.directionNav.removeClass(disabledClass).filter('.' + namespace + \"prev\").addClass(disabledClass);\n } else if (slider.animatingTo === slider.last) {\n slider.directionNav.removeClass(disabledClass).filter('.' + namespace + \"next\").addClass(disabledClass);\n } else {\n slider.directionNav.removeClass(disabledClass);\n }\n } else {\n slider.directionNav.removeClass(disabledClass);\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((vars.slideshow) ? namespace + 'pause' : namespace + 'play');\n\n slider.pausePlay.bind(eventType, function(event) {\n event.preventDefault();\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 // Prevent iOS click event bug\n if (touch) {\n slider.pausePlay.bind(\"click touchstart\", function(event) {\n event.preventDefault();\n });\n }\n },\n update: function(state) {\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);\n }\n },\n touch: function() {\n var startX,\n startY,\n offset,\n cwidth,\n dx,\n startT,\n scrolling = false;\n\n el.addEventListener('touchstart', onTouchStart, false);\n function onTouchStart(e) {\n if (slider.animating) {\n e.preventDefault();\n } else if (e.touches.length === 1) {\n slider.pause();\n // CAROUSEL:\n cwidth = (vertical) ? slider.h : slider. w;\n startT = Number(new Date());\n // CAROUSEL:\n offset = (carousel && reverse && slider.animatingTo === slider.last) ? 0 :\n (carousel && reverse) ? slider.limit - (((slider.itemW + vars.itemMargin) * slider.move) * slider.animatingTo) :\n (carousel && slider.currentSlide === slider.last) ? slider.limit :\n (carousel) ? ((slider.itemW + vars.itemMargin) * slider.move) * slider.currentSlide :\n (reverse) ? (slider.last - slider.currentSlide + slider.cloneOffset) * cwidth : (slider.currentSlide + slider.cloneOffset) * cwidth;\n startX = (vertical) ? e.touches[0].pageY : e.touches[0].pageX;\n startY = (vertical) ? e.touches[0].pageX : e.touches[0].pageY;\n\n el.addEventListener('touchmove', onTouchMove, false);\n el.addEventListener('touchend', onTouchEnd, false);\n }\n }\n\n function onTouchMove(e) {\n dx = (vertical) ? startX - e.touches[0].pageY : startX - e.touches[0].pageX;\n scrolling = (vertical) ? (Math.abs(dx) < Math.abs(e.touches[0].pageX - startY)) : (Math.abs(dx) < Math.abs(e.touches[0].pageY - startY));\n\n if (!scrolling || Number(new Date()) - startT > 500) {\n e.preventDefault();\n if (!fade && slider.transitions) {\n if (!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 function onTouchEnd(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, vars.pauseOnAction);\n } else {\n if (!fade) slider.flexAnimate(slider.currentSlide, vars.pauseOnAction, true);\n }\n }\n el.removeEventListener('touchend', onTouchEnd, false);\n startX = null;\n startY = null;\n dx = null;\n offset = null;\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 (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 = $(vars.sync).data(\"flexslider\"),\n target = slider.animatingTo;\n\n switch (action) {\n case \"animate\": $obj.flexAnimate(target, 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 }\n\n // public methods\n slider.flexAnimate = function(target, pause, override, withSync, fromNav) {\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 = $(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 // API: before() animation Callback\n vars.before(slider);\n\n // SLIDESHOW:\n if (pause) slider.pause();\n\n // SYNC:\n if (slider.syncExists && !fromNav) methods.sync(\"animate\");\n\n // CONTROLNAV\n if (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 (vars.directionNav) methods.directionNav.update();\n\n if (target === slider.last) {\n // API: end() of cycle Callback\n vars.end(slider);\n // SLIDESHOW && !INFINITE LOOP:\n if (!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 = (vars.itemWidth > slider.w) ? vars.itemMargin * 2 : 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 && vars.animationLoop && slider.direction !== \"next\") {\n slideString = (reverse) ? (slider.count + slider.cloneOffset) * dimension : 0;\n } else if (slider.currentSlide === slider.last && target === 0 && 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, \"\", vars.animationSpeed);\n if (slider.transitions) {\n if (!vars.animationLoop || !slider.atEnd) {\n slider.animating = false;\n slider.currentSlide = slider.animatingTo;\n }\n slider.container.unbind(\"webkitTransitionEnd transitionend\");\n slider.container.bind(\"webkitTransitionEnd transitionend\", function() {\n slider.wrapup(dimension);\n });\n } else {\n slider.container.animate(slider.args, vars.animationSpeed, vars.easing, function(){\n slider.wrapup(dimension);\n });\n }\n } else { // FADE:\n if (!touch) {\n slider.slides.eq(slider.currentSlide).fadeOut(vars.animationSpeed, vars.easing);\n slider.slides.eq(target).fadeIn(vars.animationSpeed, vars.easing, slider.wrapup);\n } else {\n slider.slides.eq(slider.currentSlide).css({ \"opacity\": 0, \"zIndex\": 1 });\n slider.slides.eq(target).css({ \"opacity\": 1, \"zIndex\": 2 });\n\n slider.slides.unbind(\"webkitTransitionEnd transitionend\");\n slider.slides.eq(slider.currentSlide).bind(\"webkitTransitionEnd transitionend\", function() {\n // API: after() animation Callback\n vars.after(slider);\n });\n\n slider.animating = false;\n slider.currentSlide = slider.animatingTo;\n }\n }\n // SMOOTH HEIGHT:\n if (vars.smoothHeight) methods.smoothHeight(vars.animationSpeed);\n }\n }\n slider.wrapup = function(dimension) {\n // SLIDE:\n if (!fade && !carousel) {\n if (slider.currentSlide === 0 && slider.animatingTo === slider.last && vars.animationLoop) {\n slider.setProps(dimension, \"jumpEnd\");\n } else if (slider.currentSlide === slider.last && slider.animatingTo === 0 && vars.animationLoop) {\n slider.setProps(dimension, \"jumpStart\");\n }\n }\n slider.animating = false;\n slider.currentSlide = slider.animatingTo;\n // API: after() animation Callback\n vars.after(slider);\n }\n\n // SLIDESHOW:\n slider.animateSlides = function() {\n if (!slider.animating) slider.flexAnimate(slider.getTarget(\"next\"));\n }\n // SLIDESHOW:\n slider.pause = function() {\n clearInterval(slider.animatedSlides);\n slider.playing = false;\n // PAUSEPLAY:\n if (vars.pausePlay) methods.pausePlay.update(\"play\");\n // SYNC:\n if (slider.syncExists) methods.sync(\"pause\");\n }\n // SLIDESHOW:\n slider.play = function() {\n slider.animatedSlides = setInterval(slider.animateSlides, vars.slideshowSpeed);\n slider.playing = true;\n // PAUSEPLAY:\n if (vars.pausePlay) methods.pausePlay.update(\"pause\");\n // SYNC:\n if (slider.syncExists) methods.sync(\"play\");\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 (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 + 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 + 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 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 }\n\n slider.args[slider.prop] = target;\n if (slider.transitions || dur === undefined) slider.container.css(slider.args);\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 (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(slider.slides.first().clone().addClass('clone')).prepend(slider.slides.last().clone().addClass('clone'));\n }\n slider.newSlides = $(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, \"float\": \"left\", \"display\": \"block\"});\n // SMOOTH HEIGHT:\n if (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(vars.animationSpeed, vars.easing);\n } else {\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});\n }\n }\n // SMOOTH HEIGHT:\n if (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\n slider.doMath = function() {\n var slide = slider.slides.first(),\n slideMargin = vars.itemMargin,\n minItems = vars.minItems,\n maxItems = vars.maxItems;\n\n slider.w = slider.width();\n slider.h = slide.height();\n slider.boxPadding = slide.outerWidth() - slide.width();\n\n // CAROUSEL:\n if (carousel) {\n slider.itemT = vars.itemWidth + slideMargin;\n slider.minW = (minItems) ? minItems * slider.itemT : slider.w;\n slider.maxW = (maxItems) ? maxItems * slider.itemT : slider.w;\n slider.itemW = (slider.minW > slider.w) ? (slider.w - (slideMargin * minItems))/minItems :\n (slider.maxW < slider.w) ? (slider.w - (slideMargin * maxItems))/maxItems :\n (vars.itemWidth > slider.w) ? slider.w : vars.itemWidth;\n slider.visible = Math.floor(slider.w/(slider.itemW + slideMargin));\n slider.move = (vars.move > 0 && vars.move < slider.visible ) ? 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 (vars.itemWidth > slider.w) ? ((slider.itemW + (slideMargin * 2)) * slider.count) - slider.w - slideMargin : ((slider.itemW + slideMargin) * slider.count) - slider.w - slideMargin;\n } else {\n slider.itemW = slider.w;\n slider.pagingCount = slider.count;\n slider.last = slider.count - 1;\n }\n slider.computedW = slider.itemW - slider.boxPadding;\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 (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 (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 = $(vars.selector + ':not(.clone)', slider);\n // re-setup the slider to accomdate new slide\n slider.setup();\n\n //FlexSlider: added() Callback\n 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 = $(vars.selector + ':not(.clone)', slider);\n // re-setup the slider to accomdate new slide\n slider.setup();\n\n // FlexSlider: removed() Callback\n vars.removed(slider);\n }\n\n //FlexSlider: Initialize\n methods.init();\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\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 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 clide? 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 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: 0, //{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\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 }\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) {\n $slides.fadeIn(400);\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 \"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\n})(jQuery);\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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"}