{"version":3,"sources":["console.js","cycle2.js","match-height.js","placeholder.js","plugin-cycle2-carousel.js","plugin-cycle2-swipe.js","plugin-cycle2-youtube.js"],"names":["method","noop","methods","length","console","window","$","lowerCase","s","toLowerCase","version","fn","cycle","options","o","this","isReady","each","data","opts","shortName","val","container","log","p","hasOwnProperty","test","match","replace","extend","defaults","timeoutId","paused","_maxZ","maxZ","API","_container","trigger","eventName","args","addInitialSlides","preInitSlideshow","slides","initSlideshow","selector","c","context","slideCount","jquery","find","random","sort","Math","add","tx","transitions","fx","isFunction","preInit","_preInitialized","postInitSlideshow","postInit","slideOpts","pauseObj","calcFirstSlide","css","currSlide","opacity","display","visibility","stackSlides","nextSlide","reverse","pauseOnHover","hover","pause","resume","timeout","getSlideOpts","queueTransition","delay","_initialized","updateView","alreadyPaused","hoverPaused","addClass","clearTimeout","_remainingTimeout","now","_lastQueue","isNaN","undefined","alreadyResumed","removeClass","filter","prepend","len","oldSlideCount","startSlideshow","type","trim","i","slide","append","buildSlideOpts","initSlide","firstSlideIndex","parseInt","startingSlide","calcNextSlide","roll","calcTx","manual","_tempFx","manualFx","fade","prepareTx","fwd","after","curr","next","busy","manualTrump","stopTransition","_tx","manualSpeed","speed","before","transition","doTransition","currEl","nextEl","callback","animate","animIn","easeIn","easing","cssBefore","animOut","easeOut","cssAfter","sync","specificTimeout","loop","setTimeout","continueAuto","stop","advanceSlide","slideNum","e","index","suggestedZindex","slideCss","speeds","_default","slideClass","isAfter","isDuring","forceEvent","slideActiveClass","eq","hideNonActive","getComponent","name","z","getSlideIndex","el","Array","prototype","join","call","arguments","custom","none","fadeout","scrollHorz","w","width","left","top","zIndex","allowWrap","autoSelector","position","document","ready","jQuery","initAutoHeight","clone","height","sentinelIndex","autoHeight","outerHeight","_autoHeightRatio","calcSentinelIndex","_sentinelIndex","_sentinel","remove","cloneNode","removeAttr","prependTo","max","h","onBefore","outgoing","incoming","forward","autoHeightSpeed","autoHeightEasing","onDestroy","_autoHeightOnResize","off","on","onResize","ratio","t","resizeThrottle","caption","captionTemplate","overlay","overlayTemplate","captionModule","template","html","tmpl","show","hide","empty","c2","cmd","cmdFn","makeArray","cmdArgs","shift","apply","count","prev","destroy","clean","_data","removeData","retainStylesOnDestroy","jump","num","reinit","slideToRemove","push","preventDefault","command","onHashChange","setStartingSlide","hash","_hashFence","location","substring","_onHashChange","loader","addSlide","slideArr","sorter","addFn","a","b","appendTo","imageLoaded","images","is","complete","load","src","buildPagerLink","pagerLink","pagers","pager","pagerTemplate","markup","children","pagerEvent","pagerEventBubble","page","currentTarget","target","pagerFx","pagerActiveClass","slideAdded","slideRemoved","nextEvent","disabledClass","prevEvent","swipe","swipeVert","swipeFx","cls","prevBoundry","_prevBoundry","nextBoundry","_nextBoundry","prop","progressive","scriptEl","nextFn","prevFn","prepareTxFn","parseJSON","err","split","RegExp","pop","slice","one","tmplRegex","str","regex","_","j","obj","names","matchHeight","byRow","that","_groups","key","group","elements","not","_apply","$elements","rows","padding-top","padding-bottom","border-top","border-bottom","_rows","row","$row","maxHeight","$that","verticalPadding","_parse","_applyDataApi","groups","$this","groupId","attr","_throttle","previousResizeWidth","updateTimeout","_update","event","windowWidth","bind","tolerance","lastTop","offset","lastRow","floor","abs","value","parseFloat","elem","newAttrs","rinlinejQuery","attributes","specified","clearPlaceholder","input","$input","hasClass","focus","safeActiveElement","select","setPlaceholder","$replacement","id","placeholder-password","placeholder-id","placeholder-textinput","activeElement","hooks","placeholder","isOperaMini","Object","toString","operamini","isInputSupported","createElement","isTextareaSupported","valHooks","propHooks","textarea","focus.placeholder","blur.placeholder","get","element","$element","$passwordInput","set","delegate","$inputs","_carouselWrap","carouselVisible","carousel","proxy","pagerCutoffIndex","wrap","vert","carouselVertical","visCount","slideCSS","overflow","_currSlide","margin","padding","prepareDimensions","dim","tmp","carouselFluid","_carouselResizeThrottle","fluidSlides","carouselSlideDimension","carouselOffset","slideWidth","ceil","adjustment","outerWidth","moveBy","props","hops","maxCurr","getScroll","getDim","genCallback","throttleSpeed","pos","special","scrollSupressionThreshold","durationThreshold","horizontalDistanceThreshold","verticalDistanceThreshold","setup","moveHandler","start","originalEvent","touches","time","Date","getTime","coords","pageX","pageY","origin","unbind","swipeleft","swiperight","play","playVideo","ignore","pauseVideo","youtubeAllowFullScreen","youtubeAutostart","youtubeAutostop","youtube","url","fs","allowFullScreen","replaceWith"],"mappings":"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","file":"plugins.min.js","sourcesContent":["/*! Avoid `console` errors in browsers that lack a console. */\n(function() {\n var method;\n var noop = function () {};\n var methods = [\n 'assert', 'clear', 'count', 'debug', 'dir', 'dirxml', 'error',\n 'exception', 'group', 'groupCollapsed', 'groupEnd', 'info', 'log',\n 'markTimeline', 'profile', 'profileEnd', 'table', 'time', 'timeEnd',\n 'timeStamp', 'trace', 'warn'\n ];\n var length = methods.length;\n var console = (window.console = window.console || {});\n\n while (length--) {\n method = methods[length];\n\n // Only stub undefined methods.\n if (!(method in console)) {\n console[method] = noop;\n }\n }\n}());","/*!\n* jQuery Cycle2; version: 2.1.6 build: 20141007\n* http://jquery.malsup.com/cycle2/\n* Copyright (c) 2014 M. Alsup; Dual licensed: MIT/GPL\n*/\n\n/* Cycle2 core engine */\n;(function($) {\n\"use strict\";\n\nvar version = '2.1.6';\n\n$.fn.cycle = function( options ) {\n // fix mistakes with the ready state\n var o;\n if ( this.length === 0 && !$.isReady ) {\n o = { s: this.selector, c: this.context };\n $.fn.cycle.log('requeuing slideshow (dom not ready)');\n $(function() {\n $( o.s, o.c ).cycle(options);\n });\n return this;\n }\n\n return this.each(function() {\n var data, opts, shortName, val;\n var container = $(this);\n var log = $.fn.cycle.log;\n\n if ( container.data('cycle.opts') )\n return; // already initialized\n\n if ( container.data('cycle-log') === false ||\n ( options && options.log === false ) ||\n ( opts && opts.log === false) ) {\n log = $.noop;\n }\n\n log('--c2 init--');\n data = container.data();\n for (var p in data) {\n // allow props to be accessed sans 'cycle' prefix and log the overrides\n if (data.hasOwnProperty(p) && /^cycle[A-Z]+/.test(p) ) {\n val = data[p];\n shortName = p.match(/^cycle(.*)/)[1].replace(/^[A-Z]/, lowerCase);\n log(shortName+':', val, '('+typeof val +')');\n data[shortName] = val;\n }\n }\n\n opts = $.extend( {}, $.fn.cycle.defaults, data, options || {});\n\n opts.timeoutId = 0;\n opts.paused = opts.paused || false; // #57\n opts.container = container;\n opts._maxZ = opts.maxZ;\n\n opts.API = $.extend ( { _container: container }, $.fn.cycle.API );\n opts.API.log = log;\n opts.API.trigger = function( eventName, args ) {\n opts.container.trigger( eventName, args );\n return opts.API;\n };\n\n container.data( 'cycle.opts', opts );\n container.data( 'cycle.API', opts.API );\n\n // opportunity for plugins to modify opts and API\n opts.API.trigger('cycle-bootstrap', [ opts, opts.API ]);\n\n opts.API.addInitialSlides();\n opts.API.preInitSlideshow();\n\n if ( opts.slides.length )\n opts.API.initSlideshow();\n });\n};\n\n$.fn.cycle.API = {\n opts: function() {\n return this._container.data( 'cycle.opts' );\n },\n addInitialSlides: function() {\n var opts = this.opts();\n var slides = opts.slides;\n opts.slideCount = 0;\n opts.slides = $(); // empty set\n\n // add slides that already exist\n slides = slides.jquery ? slides : opts.container.find( slides );\n\n if ( opts.random ) {\n slides.sort(function() {return Math.random() - 0.5;});\n }\n\n opts.API.add( slides );\n },\n\n preInitSlideshow: function() {\n var opts = this.opts();\n opts.API.trigger('cycle-pre-initialize', [ opts ]);\n var tx = $.fn.cycle.transitions[opts.fx];\n if (tx && $.isFunction(tx.preInit))\n tx.preInit( opts );\n opts._preInitialized = true;\n },\n\n postInitSlideshow: function() {\n var opts = this.opts();\n opts.API.trigger('cycle-post-initialize', [ opts ]);\n var tx = $.fn.cycle.transitions[opts.fx];\n if (tx && $.isFunction(tx.postInit))\n tx.postInit( opts );\n },\n\n initSlideshow: function() {\n var opts = this.opts();\n var pauseObj = opts.container;\n var slideOpts;\n opts.API.calcFirstSlide();\n\n if ( opts.container.css('position') == 'static' )\n opts.container.css('position', 'relative');\n\n $(opts.slides[opts.currSlide]).css({\n opacity: 1,\n display: 'block',\n visibility: 'visible'\n });\n opts.API.stackSlides( opts.slides[opts.currSlide], opts.slides[opts.nextSlide], !opts.reverse );\n\n if ( opts.pauseOnHover ) {\n // allow pauseOnHover to specify an element\n if ( opts.pauseOnHover !== true )\n pauseObj = $( opts.pauseOnHover );\n\n pauseObj.hover(\n function(){ opts.API.pause( true ); },\n function(){ opts.API.resume( true ); }\n );\n }\n\n // stage initial transition\n if ( opts.timeout ) {\n slideOpts = opts.API.getSlideOpts( opts.currSlide );\n opts.API.queueTransition( slideOpts, slideOpts.timeout + opts.delay );\n }\n\n opts._initialized = true;\n opts.API.updateView( true );\n opts.API.trigger('cycle-initialized', [ opts ]);\n opts.API.postInitSlideshow();\n },\n\n pause: function( hover ) {\n var opts = this.opts(),\n slideOpts = opts.API.getSlideOpts(),\n alreadyPaused = opts.hoverPaused || opts.paused;\n\n if ( hover )\n opts.hoverPaused = true;\n else\n opts.paused = true;\n\n if ( ! alreadyPaused ) {\n opts.container.addClass('cycle-paused');\n opts.API.trigger('cycle-paused', [ opts ]).log('cycle-paused');\n\n if ( slideOpts.timeout ) {\n clearTimeout( opts.timeoutId );\n opts.timeoutId = 0;\n\n // determine how much time is left for the current slide\n opts._remainingTimeout -= ( $.now() - opts._lastQueue );\n if ( opts._remainingTimeout < 0 || isNaN(opts._remainingTimeout) )\n opts._remainingTimeout = undefined;\n }\n }\n },\n\n resume: function( hover ) {\n var opts = this.opts(),\n alreadyResumed = !opts.hoverPaused && !opts.paused,\n remaining;\n\n if ( hover )\n opts.hoverPaused = false;\n else\n opts.paused = false;\n\n\n if ( ! alreadyResumed ) {\n opts.container.removeClass('cycle-paused');\n // #gh-230; if an animation is in progress then don't queue a new transition; it will\n // happen naturally\n if ( opts.slides.filter(':animated').length === 0 )\n opts.API.queueTransition( opts.API.getSlideOpts(), opts._remainingTimeout );\n opts.API.trigger('cycle-resumed', [ opts, opts._remainingTimeout ] ).log('cycle-resumed');\n }\n },\n\n add: function( slides, prepend ) {\n var opts = this.opts();\n var oldSlideCount = opts.slideCount;\n var startSlideshow = false;\n var len;\n\n if ( $.type(slides) == 'string')\n slides = $.trim( slides );\n\n $( slides ).each(function(i) {\n var slideOpts;\n var slide = $(this);\n\n if ( prepend )\n opts.container.prepend( slide );\n else\n opts.container.append( slide );\n\n opts.slideCount++;\n slideOpts = opts.API.buildSlideOpts( slide );\n\n if ( prepend )\n opts.slides = $( slide ).add( opts.slides );\n else\n opts.slides = opts.slides.add( slide );\n\n opts.API.initSlide( slideOpts, slide, --opts._maxZ );\n\n slide.data('cycle.opts', slideOpts);\n opts.API.trigger('cycle-slide-added', [ opts, slideOpts, slide ]);\n });\n\n opts.API.updateView( true );\n\n startSlideshow = opts._preInitialized && (oldSlideCount < 2 && opts.slideCount >= 1);\n if ( startSlideshow ) {\n if ( !opts._initialized )\n opts.API.initSlideshow();\n else if ( opts.timeout ) {\n len = opts.slides.length;\n opts.nextSlide = opts.reverse ? len - 1 : 1;\n if ( !opts.timeoutId ) {\n opts.API.queueTransition( opts );\n }\n }\n }\n },\n\n calcFirstSlide: function() {\n var opts = this.opts();\n var firstSlideIndex;\n firstSlideIndex = parseInt( opts.startingSlide || 0, 10 );\n if (firstSlideIndex >= opts.slides.length || firstSlideIndex < 0)\n firstSlideIndex = 0;\n\n opts.currSlide = firstSlideIndex;\n if ( opts.reverse ) {\n opts.nextSlide = firstSlideIndex - 1;\n if (opts.nextSlide < 0)\n opts.nextSlide = opts.slides.length - 1;\n }\n else {\n opts.nextSlide = firstSlideIndex + 1;\n if (opts.nextSlide == opts.slides.length)\n opts.nextSlide = 0;\n }\n },\n\n calcNextSlide: function() {\n var opts = this.opts();\n var roll;\n if ( opts.reverse ) {\n roll = (opts.nextSlide - 1) < 0;\n opts.nextSlide = roll ? opts.slideCount - 1 : opts.nextSlide-1;\n opts.currSlide = roll ? 0 : opts.nextSlide+1;\n }\n else {\n roll = (opts.nextSlide + 1) == opts.slides.length;\n opts.nextSlide = roll ? 0 : opts.nextSlide+1;\n opts.currSlide = roll ? opts.slides.length-1 : opts.nextSlide-1;\n }\n },\n\n calcTx: function( slideOpts, manual ) {\n var opts = slideOpts;\n var tx;\n\n if ( opts._tempFx )\n tx = $.fn.cycle.transitions[opts._tempFx];\n else if ( manual && opts.manualFx )\n tx = $.fn.cycle.transitions[opts.manualFx];\n\n if ( !tx )\n tx = $.fn.cycle.transitions[opts.fx];\n\n opts._tempFx = null;\n this.opts()._tempFx = null;\n\n if (!tx) {\n tx = $.fn.cycle.transitions.fade;\n opts.API.log('Transition \"' + opts.fx + '\" not found. Using fade.');\n }\n return tx;\n },\n\n prepareTx: function( manual, fwd ) {\n var opts = this.opts();\n var after, curr, next, slideOpts, tx;\n\n if ( opts.slideCount < 2 ) {\n opts.timeoutId = 0;\n return;\n }\n if ( manual && ( !opts.busy || opts.manualTrump ) ) {\n opts.API.stopTransition();\n opts.busy = false;\n clearTimeout(opts.timeoutId);\n opts.timeoutId = 0;\n }\n if ( opts.busy )\n return;\n if ( opts.timeoutId === 0 && !manual )\n return;\n\n curr = opts.slides[opts.currSlide];\n next = opts.slides[opts.nextSlide];\n slideOpts = opts.API.getSlideOpts( opts.nextSlide );\n tx = opts.API.calcTx( slideOpts, manual );\n\n opts._tx = tx;\n\n if ( manual && slideOpts.manualSpeed !== undefined )\n slideOpts.speed = slideOpts.manualSpeed;\n\n // if ( opts.nextSlide === opts.currSlide )\n // opts.API.calcNextSlide();\n\n // ensure that:\n // 1. advancing to a different slide\n // 2. this is either a manual event (prev/next, pager, cmd) or\n // a timer event and slideshow is not paused\n if ( opts.nextSlide != opts.currSlide &&\n (manual || (!opts.paused && !opts.hoverPaused && opts.timeout) )) { // #62\n\n opts.API.trigger('cycle-before', [ slideOpts, curr, next, fwd ]);\n if ( tx.before )\n tx.before( slideOpts, curr, next, fwd );\n\n after = function() {\n opts.busy = false;\n // #76; bail if slideshow has been destroyed\n if (! opts.container.data( 'cycle.opts' ) )\n return;\n\n if (tx.after)\n tx.after( slideOpts, curr, next, fwd );\n opts.API.trigger('cycle-after', [ slideOpts, curr, next, fwd ]);\n opts.API.queueTransition( slideOpts);\n opts.API.updateView( true );\n };\n\n opts.busy = true;\n if (tx.transition)\n tx.transition(slideOpts, curr, next, fwd, after);\n else\n opts.API.doTransition( slideOpts, curr, next, fwd, after);\n\n opts.API.calcNextSlide();\n opts.API.updateView();\n } else {\n opts.API.queueTransition( slideOpts );\n }\n },\n\n // perform the actual animation\n doTransition: function( slideOpts, currEl, nextEl, fwd, callback) {\n var opts = slideOpts;\n var curr = $(currEl), next = $(nextEl);\n var fn = function() {\n // make sure animIn has something so that callback doesn't trigger immediately\n next.animate(opts.animIn || { opacity: 1}, opts.speed, opts.easeIn || opts.easing, callback);\n };\n\n next.css(opts.cssBefore || {});\n curr.animate(opts.animOut || {}, opts.speed, opts.easeOut || opts.easing, function() {\n curr.css(opts.cssAfter || {});\n if (!opts.sync) {\n fn();\n }\n });\n if (opts.sync) {\n fn();\n }\n },\n\n queueTransition: function( slideOpts, specificTimeout ) {\n var opts = this.opts();\n var timeout = specificTimeout !== undefined ? specificTimeout : slideOpts.timeout;\n if (opts.nextSlide === 0 && --opts.loop === 0) {\n opts.API.log('terminating; loop=0');\n opts.timeout = 0;\n if ( timeout ) {\n setTimeout(function() {\n opts.API.trigger('cycle-finished', [ opts ]);\n }, timeout);\n }\n else {\n opts.API.trigger('cycle-finished', [ opts ]);\n }\n // reset nextSlide\n opts.nextSlide = opts.currSlide;\n return;\n }\n if ( opts.continueAuto !== undefined ) {\n if ( opts.continueAuto === false ||\n ($.isFunction(opts.continueAuto) && opts.continueAuto() === false )) {\n opts.API.log('terminating automatic transitions');\n opts.timeout = 0;\n if ( opts.timeoutId )\n clearTimeout(opts.timeoutId);\n return;\n }\n }\n if ( timeout ) {\n opts._lastQueue = $.now();\n if ( specificTimeout === undefined )\n opts._remainingTimeout = slideOpts.timeout;\n\n if ( !opts.paused && ! opts.hoverPaused ) {\n opts.timeoutId = setTimeout(function() {\n opts.API.prepareTx( false, !opts.reverse );\n }, timeout );\n }\n }\n },\n\n stopTransition: function() {\n var opts = this.opts();\n if ( opts.slides.filter(':animated').length ) {\n opts.slides.stop(false, true);\n opts.API.trigger('cycle-transition-stopped', [ opts ]);\n }\n\n if ( opts._tx && opts._tx.stopTransition )\n opts._tx.stopTransition( opts );\n },\n\n // advance slide forward or back\n advanceSlide: function( val ) {\n var opts = this.opts();\n clearTimeout(opts.timeoutId);\n opts.timeoutId = 0;\n opts.nextSlide = opts.currSlide + val;\n\n if (opts.nextSlide < 0)\n opts.nextSlide = opts.slides.length - 1;\n else if (opts.nextSlide >= opts.slides.length)\n opts.nextSlide = 0;\n\n opts.API.prepareTx( true, val >= 0 );\n return false;\n },\n\n buildSlideOpts: function( slide ) {\n var opts = this.opts();\n var val, shortName;\n var slideOpts = slide.data() || {};\n for (var p in slideOpts) {\n // allow props to be accessed sans 'cycle' prefix and log the overrides\n if (slideOpts.hasOwnProperty(p) && /^cycle[A-Z]+/.test(p) ) {\n val = slideOpts[p];\n shortName = p.match(/^cycle(.*)/)[1].replace(/^[A-Z]/, lowerCase);\n opts.API.log('['+(opts.slideCount-1)+']', shortName+':', val, '('+typeof val +')');\n slideOpts[shortName] = val;\n }\n }\n\n slideOpts = $.extend( {}, $.fn.cycle.defaults, opts, slideOpts );\n slideOpts.slideNum = opts.slideCount;\n\n try {\n // these props should always be read from the master state object\n delete slideOpts.API;\n delete slideOpts.slideCount;\n delete slideOpts.currSlide;\n delete slideOpts.nextSlide;\n delete slideOpts.slides;\n } catch(e) {\n // no op\n }\n return slideOpts;\n },\n\n getSlideOpts: function( index ) {\n var opts = this.opts();\n if ( index === undefined )\n index = opts.currSlide;\n\n var slide = opts.slides[index];\n var slideOpts = $(slide).data('cycle.opts');\n return $.extend( {}, opts, slideOpts );\n },\n\n initSlide: function( slideOpts, slide, suggestedZindex ) {\n var opts = this.opts();\n slide.css( slideOpts.slideCss || {} );\n if ( suggestedZindex > 0 )\n slide.css( 'zIndex', suggestedZindex );\n\n // ensure that speed settings are sane\n if ( isNaN( slideOpts.speed ) )\n slideOpts.speed = $.fx.speeds[slideOpts.speed] || $.fx.speeds._default;\n if ( !slideOpts.sync )\n slideOpts.speed = slideOpts.speed / 2;\n\n slide.addClass( opts.slideClass );\n },\n\n updateView: function( isAfter, isDuring, forceEvent ) {\n var opts = this.opts();\n if ( !opts._initialized )\n return;\n var slideOpts = opts.API.getSlideOpts();\n var currSlide = opts.slides[ opts.currSlide ];\n\n if ( ! isAfter && isDuring !== true ) {\n opts.API.trigger('cycle-update-view-before', [ opts, slideOpts, currSlide ]);\n if ( opts.updateView < 0 )\n return;\n }\n\n if ( opts.slideActiveClass ) {\n opts.slides.removeClass( opts.slideActiveClass )\n .eq( opts.currSlide ).addClass( opts.slideActiveClass );\n }\n\n if ( isAfter && opts.hideNonActive )\n opts.slides.filter( ':not(.' + opts.slideActiveClass + ')' ).css('visibility', 'hidden');\n\n if ( opts.updateView === 0 ) {\n setTimeout(function() {\n opts.API.trigger('cycle-update-view', [ opts, slideOpts, currSlide, isAfter ]);\n }, slideOpts.speed / (opts.sync ? 2 : 1) );\n }\n\n if ( opts.updateView !== 0 )\n opts.API.trigger('cycle-update-view', [ opts, slideOpts, currSlide, isAfter ]);\n\n if ( isAfter )\n opts.API.trigger('cycle-update-view-after', [ opts, slideOpts, currSlide ]);\n },\n\n getComponent: function( name ) {\n var opts = this.opts();\n var selector = opts[name];\n if (typeof selector === 'string') {\n // if selector is a child, sibling combinator, adjancent selector then use find, otherwise query full dom\n return (/^\\s*[\\>|\\+|~]/).test( selector ) ? opts.container.find( selector ) : $( selector );\n }\n if (selector.jquery)\n return selector;\n\n return $(selector);\n },\n\n stackSlides: function( curr, next, fwd ) {\n var opts = this.opts();\n if ( !curr ) {\n curr = opts.slides[opts.currSlide];\n next = opts.slides[opts.nextSlide];\n fwd = !opts.reverse;\n }\n\n // reset the zIndex for the common case:\n // curr slide on top, next slide beneath, and the rest in order to be shown\n $(curr).css('zIndex', opts.maxZ);\n\n var i;\n var z = opts.maxZ - 2;\n var len = opts.slideCount;\n if (fwd) {\n for ( i = opts.currSlide + 1; i < len; i++ )\n $( opts.slides[i] ).css( 'zIndex', z-- );\n for ( i = 0; i < opts.currSlide; i++ )\n $( opts.slides[i] ).css( 'zIndex', z-- );\n }\n else {\n for ( i = opts.currSlide - 1; i >= 0; i-- )\n $( opts.slides[i] ).css( 'zIndex', z-- );\n for ( i = len - 1; i > opts.currSlide; i-- )\n $( opts.slides[i] ).css( 'zIndex', z-- );\n }\n\n $(next).css('zIndex', opts.maxZ - 1);\n },\n\n getSlideIndex: function( el ) {\n return this.opts().slides.index( el );\n }\n\n}; // API\n\n// default logger\n$.fn.cycle.log = function log() {\n /*global console:true */\n if (window.console && console.log)\n console.log('[cycle2] ' + Array.prototype.join.call(arguments, ' ') );\n};\n\n$.fn.cycle.version = function() { return 'Cycle2: ' + version; };\n\n// helper functions\n\nfunction lowerCase(s) {\n return (s || '').toLowerCase();\n}\n\n// expose transition object\n$.fn.cycle.transitions = {\n custom: {\n },\n none: {\n before: function( opts, curr, next, fwd ) {\n opts.API.stackSlides( next, curr, fwd );\n opts.cssBefore = { opacity: 1, visibility: 'visible', display: 'block' };\n }\n },\n fade: {\n before: function( opts, curr, next, fwd ) {\n var css = opts.API.getSlideOpts( opts.nextSlide ).slideCss || {};\n opts.API.stackSlides( curr, next, fwd );\n opts.cssBefore = $.extend(css, { opacity: 0, visibility: 'visible', display: 'block' });\n opts.animIn = { opacity: 1 };\n opts.animOut = { opacity: 0 };\n }\n },\n fadeout: {\n before: function( opts , curr, next, fwd ) {\n var css = opts.API.getSlideOpts( opts.nextSlide ).slideCss || {};\n opts.API.stackSlides( curr, next, fwd );\n opts.cssBefore = $.extend(css, { opacity: 1, visibility: 'visible', display: 'block' });\n opts.animOut = { opacity: 0 };\n }\n },\n scrollHorz: {\n before: function( opts, curr, next, fwd ) {\n opts.API.stackSlides( curr, next, fwd );\n var w = opts.container.css('overflow','hidden').width();\n opts.cssBefore = { left: fwd ? w : - w, top: 0, opacity: 1, visibility: 'visible', display: 'block' };\n opts.cssAfter = { zIndex: opts._maxZ - 2, left: 0 };\n opts.animIn = { left: 0 };\n opts.animOut = { left: fwd ? -w : w };\n }\n }\n};\n\n// @see: http://jquery.malsup.com/cycle2/api\n$.fn.cycle.defaults = {\n allowWrap: true,\n autoSelector: '.cycle-slideshow[data-cycle-auto-init!=false]',\n delay: 0,\n easing: null,\n fx: 'fade',\n hideNonActive: true,\n loop: 0,\n manualFx: undefined,\n manualSpeed: undefined,\n manualTrump: true,\n maxZ: 100,\n pauseOnHover: false,\n reverse: false,\n slideActiveClass: 'cycle-slide-active',\n slideClass: 'cycle-slide',\n slideCss: { position: 'absolute', top: 0, left: 0 },\n slides: '> img',\n speed: 500,\n startingSlide: 0,\n sync: true,\n timeout: 4000,\n updateView: 0\n};\n\n// automatically find and run slideshows\n$(document).ready(function() {\n $( $.fn.cycle.defaults.autoSelector ).cycle();\n});\n\n})(jQuery);\n\n/*! Cycle2 autoheight plugin; Copyright (c) M.Alsup, 2012; version: 20130913 */\n(function($) {\n\"use strict\";\n\n$.extend($.fn.cycle.defaults, {\n autoHeight: 0, // setting this option to false disables autoHeight logic\n autoHeightSpeed: 250,\n autoHeightEasing: null\n});\n\n$(document).on( 'cycle-initialized', function( e, opts ) {\n var autoHeight = opts.autoHeight;\n var t = $.type( autoHeight );\n var resizeThrottle = null;\n var ratio;\n\n if ( t !== 'string' && t !== 'number' )\n return;\n\n // bind events\n opts.container.on( 'cycle-slide-added cycle-slide-removed', initAutoHeight );\n opts.container.on( 'cycle-destroyed', onDestroy );\n\n if ( autoHeight == 'container' ) {\n opts.container.on( 'cycle-before', onBefore );\n }\n else if ( t === 'string' && /\\d+\\:\\d+/.test( autoHeight ) ) {\n // use ratio\n ratio = autoHeight.match(/(\\d+)\\:(\\d+)/);\n ratio = ratio[1] / ratio[2];\n opts._autoHeightRatio = ratio;\n }\n\n // if autoHeight is a number then we don't need to recalculate the sentinel\n // index on resize\n if ( t !== 'number' ) {\n // bind unique resize handler per slideshow (so it can be 'off-ed' in onDestroy)\n opts._autoHeightOnResize = function () {\n clearTimeout( resizeThrottle );\n resizeThrottle = setTimeout( onResize, 50 );\n };\n\n $(window).on( 'resize orientationchange', opts._autoHeightOnResize );\n }\n\n setTimeout( onResize, 30 );\n\n function onResize() {\n initAutoHeight( e, opts );\n }\n});\n\nfunction initAutoHeight( e, opts ) {\n var clone, height, sentinelIndex;\n var autoHeight = opts.autoHeight;\n\n if ( autoHeight == 'container' ) {\n height = $( opts.slides[ opts.currSlide ] ).outerHeight();\n opts.container.height( height );\n }\n else if ( opts._autoHeightRatio ) {\n opts.container.height( opts.container.width() / opts._autoHeightRatio );\n }\n else if ( autoHeight === 'calc' || ( $.type( autoHeight ) == 'number' && autoHeight >= 0 ) ) {\n if ( autoHeight === 'calc' )\n sentinelIndex = calcSentinelIndex( e, opts );\n else if ( autoHeight >= opts.slides.length )\n sentinelIndex = 0;\n else\n sentinelIndex = autoHeight;\n\n // only recreate sentinel if index is different\n if ( sentinelIndex == opts._sentinelIndex )\n return;\n\n opts._sentinelIndex = sentinelIndex;\n if ( opts._sentinel )\n opts._sentinel.remove();\n\n // clone existing slide as sentinel\n clone = $( opts.slides[ sentinelIndex ].cloneNode(true) );\n\n // #50; remove special attributes from cloned content\n clone.removeAttr( 'id name rel' ).find( '[id],[name],[rel]' ).removeAttr( 'id name rel' );\n\n clone.css({\n position: 'static',\n visibility: 'hidden',\n display: 'block'\n }).prependTo( opts.container ).addClass('cycle-sentinel cycle-slide').removeClass('cycle-slide-active');\n clone.find( '*' ).css( 'visibility', 'hidden' );\n\n opts._sentinel = clone;\n }\n}\n\nfunction calcSentinelIndex( e, opts ) {\n var index = 0, max = -1;\n\n // calculate tallest slide index\n opts.slides.each(function(i) {\n var h = $(this).height();\n if ( h > max ) {\n max = h;\n index = i;\n }\n });\n return index;\n}\n\nfunction onBefore( e, opts, outgoing, incoming, forward ) {\n var h = $(incoming).outerHeight();\n opts.container.animate( { height: h }, opts.autoHeightSpeed, opts.autoHeightEasing );\n}\n\nfunction onDestroy( e, opts ) {\n if ( opts._autoHeightOnResize ) {\n $(window).off( 'resize orientationchange', opts._autoHeightOnResize );\n opts._autoHeightOnResize = null;\n }\n opts.container.off( 'cycle-slide-added cycle-slide-removed', initAutoHeight );\n opts.container.off( 'cycle-destroyed', onDestroy );\n opts.container.off( 'cycle-before', onBefore );\n\n if ( opts._sentinel ) {\n opts._sentinel.remove();\n opts._sentinel = null;\n }\n}\n\n})(jQuery);\n\n/*! caption plugin for Cycle2; version: 20130306 */\n(function($) {\n\"use strict\";\n\n$.extend($.fn.cycle.defaults, {\n caption: '> .cycle-caption',\n captionTemplate: '{{slideNum}} / {{slideCount}}',\n overlay: '> .cycle-overlay',\n overlayTemplate: '
{{title}}
{{desc}}
',\n captionModule: 'caption'\n});\n\n$(document).on( 'cycle-update-view', function( e, opts, slideOpts, currSlide ) {\n if ( opts.captionModule !== 'caption' )\n return;\n var el;\n $.each(['caption','overlay'], function() {\n var name = this;\n var template = slideOpts[name+'Template'];\n var el = opts.API.getComponent( name );\n if( el.length && template ) {\n el.html( opts.API.tmpl( template, slideOpts, opts, currSlide ) );\n el.show();\n }\n else {\n el.hide();\n }\n });\n});\n\n$(document).on( 'cycle-destroyed', function( e, opts ) {\n var el;\n $.each(['caption','overlay'], function() {\n var name = this, template = opts[name+'Template'];\n if ( opts[name] && template ) {\n el = opts.API.getComponent( 'caption' );\n el.empty();\n }\n });\n});\n\n})(jQuery);\n\n/*! command plugin for Cycle2; version: 20140415 */\n(function($) {\n\"use strict\";\n\nvar c2 = $.fn.cycle;\n\n$.fn.cycle = function( options ) {\n var cmd, cmdFn, opts;\n var args = $.makeArray( arguments );\n\n if ( $.type( options ) == 'number' ) {\n return this.cycle( 'goto', options );\n }\n\n if ( $.type( options ) == 'string' ) {\n return this.each(function() {\n var cmdArgs;\n cmd = options;\n opts = $(this).data('cycle.opts');\n\n if ( opts === undefined ) {\n c2.log('slideshow must be initialized before sending commands; \"' + cmd + '\" ignored');\n return;\n }\n else {\n cmd = cmd == 'goto' ? 'jump' : cmd; // issue #3; change 'goto' to 'jump' internally\n cmdFn = opts.API[ cmd ];\n if ( $.isFunction( cmdFn )) {\n cmdArgs = $.makeArray( args );\n cmdArgs.shift();\n return cmdFn.apply( opts.API, cmdArgs );\n }\n else {\n c2.log( 'unknown command: ', cmd );\n }\n }\n });\n }\n else {\n return c2.apply( this, arguments );\n }\n};\n\n// copy props\n$.extend( $.fn.cycle, c2 );\n\n$.extend( c2.API, {\n next: function() {\n var opts = this.opts();\n if ( opts.busy && ! opts.manualTrump )\n return;\n\n var count = opts.reverse ? -1 : 1;\n if ( opts.allowWrap === false && ( opts.currSlide + count ) >= opts.slideCount )\n return;\n\n opts.API.advanceSlide( count );\n opts.API.trigger('cycle-next', [ opts ]).log('cycle-next');\n },\n\n prev: function() {\n var opts = this.opts();\n if ( opts.busy && ! opts.manualTrump )\n return;\n var count = opts.reverse ? 1 : -1;\n if ( opts.allowWrap === false && ( opts.currSlide + count ) < 0 )\n return;\n\n opts.API.advanceSlide( count );\n opts.API.trigger('cycle-prev', [ opts ]).log('cycle-prev');\n },\n\n destroy: function() {\n this.stop(); //#204\n\n var opts = this.opts();\n var clean = $.isFunction( $._data ) ? $._data : $.noop; // hack for #184 and #201\n clearTimeout(opts.timeoutId);\n opts.timeoutId = 0;\n opts.API.stop();\n opts.API.trigger( 'cycle-destroyed', [ opts ] ).log('cycle-destroyed');\n opts.container.removeData();\n clean( opts.container[0], 'parsedAttrs', false );\n\n // #75; remove inline styles\n if ( ! opts.retainStylesOnDestroy ) {\n opts.container.removeAttr( 'style' );\n opts.slides.removeAttr( 'style' );\n opts.slides.removeClass( opts.slideActiveClass );\n }\n opts.slides.each(function() {\n var slide = $(this);\n slide.removeData();\n slide.removeClass( opts.slideClass );\n clean( this, 'parsedAttrs', false );\n });\n },\n\n jump: function( index, fx ) {\n // go to the requested slide\n var fwd;\n var opts = this.opts();\n if ( opts.busy && ! opts.manualTrump )\n return;\n var num = parseInt( index, 10 );\n if (isNaN(num) || num < 0 || num >= opts.slides.length) {\n opts.API.log('goto: invalid slide index: ' + num);\n return;\n }\n if (num == opts.currSlide) {\n opts.API.log('goto: skipping, already on slide', num);\n return;\n }\n opts.nextSlide = num;\n clearTimeout(opts.timeoutId);\n opts.timeoutId = 0;\n opts.API.log('goto: ', num, ' (zero-index)');\n fwd = opts.currSlide < opts.nextSlide;\n opts._tempFx = fx;\n opts.API.prepareTx( true, fwd );\n },\n\n stop: function() {\n var opts = this.opts();\n var pauseObj = opts.container;\n clearTimeout(opts.timeoutId);\n opts.timeoutId = 0;\n opts.API.stopTransition();\n if ( opts.pauseOnHover ) {\n if ( opts.pauseOnHover !== true )\n pauseObj = $( opts.pauseOnHover );\n pauseObj.off('mouseenter mouseleave');\n }\n opts.API.trigger('cycle-stopped', [ opts ]).log('cycle-stopped');\n },\n\n reinit: function() {\n var opts = this.opts();\n opts.API.destroy();\n opts.container.cycle();\n },\n\n remove: function( index ) {\n var opts = this.opts();\n var slide, slideToRemove, slides = [], slideNum = 1;\n for ( var i=0; i < opts.slides.length; i++ ) {\n slide = opts.slides[i];\n if ( i == index ) {\n slideToRemove = slide;\n }\n else {\n slides.push( slide );\n $( slide ).data('cycle.opts').slideNum = slideNum;\n slideNum++;\n }\n }\n if ( slideToRemove ) {\n opts.slides = $( slides );\n opts.slideCount--;\n $( slideToRemove ).remove();\n if (index == opts.currSlide)\n opts.API.advanceSlide( 1 );\n else if ( index < opts.currSlide )\n opts.currSlide--;\n else\n opts.currSlide++;\n\n opts.API.trigger('cycle-slide-removed', [ opts, index, slideToRemove ]).log('cycle-slide-removed');\n opts.API.updateView();\n }\n }\n\n});\n\n// listen for clicks on elements with data-cycle-cmd attribute\n$(document).on('click.cycle', '[data-cycle-cmd]', function(e) {\n // issue cycle command\n e.preventDefault();\n var el = $(this);\n var command = el.data('cycle-cmd');\n var context = el.data('cycle-context') || '.cycle-slideshow';\n $(context).cycle(command, el.data('cycle-arg'));\n});\n\n\n})(jQuery);\n\n/*! hash plugin for Cycle2; version: 20130905 */\n(function($) {\n\"use strict\";\n\n$(document).on( 'cycle-pre-initialize', function( e, opts ) {\n onHashChange( opts, true );\n\n opts._onHashChange = function() {\n onHashChange( opts, false );\n };\n\n $( window ).on( 'hashchange', opts._onHashChange);\n});\n\n$(document).on( 'cycle-update-view', function( e, opts, slideOpts ) {\n if ( slideOpts.hash && ( '#' + slideOpts.hash ) != window.location.hash ) {\n opts._hashFence = true;\n window.location.hash = slideOpts.hash;\n }\n});\n\n$(document).on( 'cycle-destroyed', function( e, opts) {\n if ( opts._onHashChange ) {\n $( window ).off( 'hashchange', opts._onHashChange );\n }\n});\n\nfunction onHashChange( opts, setStartingSlide ) {\n var hash;\n if ( opts._hashFence ) {\n opts._hashFence = false;\n return;\n }\n\n hash = window.location.hash.substring(1);\n\n opts.slides.each(function(i) {\n if ( $(this).data( 'cycle-hash' ) == hash ) {\n if ( setStartingSlide === true ) {\n opts.startingSlide = i;\n }\n else {\n var fwd = opts.currSlide < i;\n opts.nextSlide = i;\n opts.API.prepareTx( true, fwd );\n }\n return false;\n }\n });\n}\n\n})(jQuery);\n\n/*! loader plugin for Cycle2; version: 20131121 */\n(function($) {\n\"use strict\";\n\n$.extend($.fn.cycle.defaults, {\n loader: false\n});\n\n$(document).on( 'cycle-bootstrap', function( e, opts ) {\n var addFn;\n\n if ( !opts.loader )\n return;\n\n // override API.add for this slideshow\n addFn = opts.API.add;\n opts.API.add = add;\n\n function add( slides, prepend ) {\n var slideArr = [];\n if ( $.type( slides ) == 'string' )\n slides = $.trim( slides );\n else if ( $.type( slides) === 'array' ) {\n for (var i=0; i < slides.length; i++ )\n slides[i] = $(slides[i])[0];\n }\n\n slides = $( slides );\n var slideCount = slides.length;\n\n if ( ! slideCount )\n return;\n\n slides.css('visibility','hidden').appendTo('body').each(function(i) { // appendTo fixes #56\n var count = 0;\n var slide = $(this);\n var images = slide.is('img') ? slide : slide.find('img');\n slide.data('index', i);\n // allow some images to be marked as unimportant (and filter out images w/o src value)\n images = images.filter(':not(.cycle-loader-ignore)').filter(':not([src=\"\"])');\n if ( ! images.length ) {\n --slideCount;\n slideArr.push( slide );\n return;\n }\n\n count = images.length;\n images.each(function() {\n // add images that are already loaded\n if ( this.complete ) {\n imageLoaded();\n }\n else {\n $(this).load(function() {\n imageLoaded();\n }).on(\"error\", function() {\n if ( --count === 0 ) {\n // ignore this slide\n opts.API.log('slide skipped; img not loaded:', this.src);\n if ( --slideCount === 0 && opts.loader == 'wait') {\n addFn.apply( opts.API, [ slideArr, prepend ] );\n }\n }\n });\n }\n });\n\n function imageLoaded() {\n if ( --count === 0 ) {\n --slideCount;\n addSlide( slide );\n }\n }\n });\n\n if ( slideCount )\n opts.container.addClass('cycle-loading');\n\n\n function addSlide( slide ) {\n var curr;\n if ( opts.loader == 'wait' ) {\n slideArr.push( slide );\n if ( slideCount === 0 ) {\n // #59; sort slides into original markup order\n slideArr.sort( sorter );\n addFn.apply( opts.API, [ slideArr, prepend ] );\n opts.container.removeClass('cycle-loading');\n }\n }\n else {\n curr = $(opts.slides[opts.currSlide]);\n addFn.apply( opts.API, [ slide, prepend ] );\n curr.show();\n opts.container.removeClass('cycle-loading');\n }\n }\n\n function sorter(a, b) {\n return a.data('index') - b.data('index');\n }\n }\n});\n\n})(jQuery);\n\n/*! pager plugin for Cycle2; version: 20140415 */\n(function($) {\n\"use strict\";\n\n$.extend($.fn.cycle.defaults, {\n pager: '> .cycle-pager',\n pagerActiveClass: 'cycle-pager-active',\n pagerEvent: 'click.cycle',\n pagerEventBubble: undefined,\n pagerTemplate: ''\n});\n\n$(document).on( 'cycle-bootstrap', function( e, opts, API ) {\n // add method to API\n API.buildPagerLink = buildPagerLink;\n});\n\n$(document).on( 'cycle-slide-added', function( e, opts, slideOpts, slideAdded ) {\n if ( opts.pager ) {\n opts.API.buildPagerLink ( opts, slideOpts, slideAdded );\n opts.API.page = page;\n }\n});\n\n$(document).on( 'cycle-slide-removed', function( e, opts, index, slideRemoved ) {\n if ( opts.pager ) {\n var pagers = opts.API.getComponent( 'pager' );\n pagers.each(function() {\n var pager = $(this);\n $( pager.children()[index] ).remove();\n });\n }\n});\n\n$(document).on( 'cycle-update-view', function( e, opts, slideOpts ) {\n var pagers;\n\n if ( opts.pager ) {\n pagers = opts.API.getComponent( 'pager' );\n pagers.each(function() {\n $(this).children().removeClass( opts.pagerActiveClass )\n .eq( opts.currSlide ).addClass( opts.pagerActiveClass );\n });\n }\n});\n\n$(document).on( 'cycle-destroyed', function( e, opts ) {\n var pager = opts.API.getComponent( 'pager' );\n\n if ( pager ) {\n pager.children().off( opts.pagerEvent ); // #202\n if ( opts.pagerTemplate )\n pager.empty();\n }\n});\n\nfunction buildPagerLink( opts, slideOpts, slide ) {\n var pagerLink;\n var pagers = opts.API.getComponent( 'pager' );\n pagers.each(function() {\n var pager = $(this);\n if ( slideOpts.pagerTemplate ) {\n var markup = opts.API.tmpl( slideOpts.pagerTemplate, slideOpts, opts, slide[0] );\n pagerLink = $( markup ).appendTo( pager );\n }\n else {\n pagerLink = pager.children().eq( opts.slideCount - 1 );\n }\n pagerLink.on( opts.pagerEvent, function(e) {\n if ( ! opts.pagerEventBubble )\n e.preventDefault();\n opts.API.page( pager, e.currentTarget);\n });\n });\n}\n\nfunction page( pager, target ) {\n /*jshint validthis:true */\n var opts = this.opts();\n if ( opts.busy && ! opts.manualTrump )\n return;\n\n var index = pager.children().index( target );\n var nextSlide = index;\n var fwd = opts.currSlide < nextSlide;\n if (opts.currSlide == nextSlide) {\n return; // no op, clicked pager for the currently displayed slide\n }\n opts.nextSlide = nextSlide;\n opts._tempFx = opts.pagerFx;\n opts.API.prepareTx( true, fwd );\n opts.API.trigger('cycle-pager-activated', [opts, pager, target ]);\n}\n\n})(jQuery);\n\n/*! prevnext plugin for Cycle2; version: 20140408 */\n(function($) {\n\"use strict\";\n\n$.extend($.fn.cycle.defaults, {\n next: '> .cycle-next',\n nextEvent: 'click.cycle',\n disabledClass: 'disabled',\n prev: '> .cycle-prev',\n prevEvent: 'click.cycle',\n swipe: false\n});\n\n$(document).on( 'cycle-initialized', function( e, opts ) {\n opts.API.getComponent( 'next' ).on( opts.nextEvent, function(e) {\n e.preventDefault();\n opts.API.next();\n });\n\n opts.API.getComponent( 'prev' ).on( opts.prevEvent, function(e) {\n e.preventDefault();\n opts.API.prev();\n });\n\n if ( opts.swipe ) {\n var nextEvent = opts.swipeVert ? 'swipeUp.cycle' : 'swipeLeft.cycle swipeleft.cycle';\n var prevEvent = opts.swipeVert ? 'swipeDown.cycle' : 'swipeRight.cycle swiperight.cycle';\n opts.container.on( nextEvent, function(e) {\n opts._tempFx = opts.swipeFx;\n opts.API.next();\n });\n opts.container.on( prevEvent, function() {\n opts._tempFx = opts.swipeFx;\n opts.API.prev();\n });\n }\n});\n\n$(document).on( 'cycle-update-view', function( e, opts, slideOpts, currSlide ) {\n if ( opts.allowWrap )\n return;\n\n var cls = opts.disabledClass;\n var next = opts.API.getComponent( 'next' );\n var prev = opts.API.getComponent( 'prev' );\n var prevBoundry = opts._prevBoundry || 0;\n var nextBoundry = (opts._nextBoundry !== undefined)?opts._nextBoundry:opts.slideCount - 1;\n\n if ( opts.currSlide == nextBoundry )\n next.addClass( cls ).prop( 'disabled', true );\n else\n next.removeClass( cls ).prop( 'disabled', false );\n\n if ( opts.currSlide === prevBoundry )\n prev.addClass( cls ).prop( 'disabled', true );\n else\n prev.removeClass( cls ).prop( 'disabled', false );\n});\n\n\n$(document).on( 'cycle-destroyed', function( e, opts ) {\n opts.API.getComponent( 'prev' ).off( opts.nextEvent );\n opts.API.getComponent( 'next' ).off( opts.prevEvent );\n opts.container.off( 'swipeleft.cycle swiperight.cycle swipeLeft.cycle swipeRight.cycle swipeUp.cycle swipeDown.cycle' );\n});\n\n})(jQuery);\n\n/*! progressive loader plugin for Cycle2; version: 20130315 */\n(function($) {\n\"use strict\";\n\n$.extend($.fn.cycle.defaults, {\n progressive: false\n});\n\n$(document).on( 'cycle-pre-initialize', function( e, opts ) {\n if ( !opts.progressive )\n return;\n\n var API = opts.API;\n var nextFn = API.next;\n var prevFn = API.prev;\n var prepareTxFn = API.prepareTx;\n var type = $.type( opts.progressive );\n var slides, scriptEl;\n\n if ( type == 'array' ) {\n slides = opts.progressive;\n }\n else if ($.isFunction( opts.progressive ) ) {\n slides = opts.progressive( opts );\n }\n else if ( type == 'string' ) {\n scriptEl = $( opts.progressive );\n slides = $.trim( scriptEl.html() );\n if ( !slides )\n return;\n // is it json array?\n if ( /^(\\[)/.test( slides ) ) {\n try {\n slides = $.parseJSON( slides );\n }\n catch(err) {\n API.log( 'error parsing progressive slides', err );\n return;\n }\n }\n else {\n // plain text, split on delimeter\n slides = slides.split( new RegExp( scriptEl.data('cycle-split') || '\\n') );\n\n // #95; look for empty slide\n if ( ! slides[ slides.length - 1 ] )\n slides.pop();\n }\n }\n\n\n\n if ( prepareTxFn ) {\n API.prepareTx = function( manual, fwd ) {\n var index, slide;\n\n if ( manual || slides.length === 0 ) {\n prepareTxFn.apply( opts.API, [ manual, fwd ] );\n return;\n }\n\n if ( fwd && opts.currSlide == ( opts.slideCount-1) ) {\n slide = slides[ 0 ];\n slides = slides.slice( 1 );\n opts.container.one('cycle-slide-added', function(e, opts ) {\n setTimeout(function() {\n opts.API.advanceSlide( 1 );\n },50);\n });\n opts.API.add( slide );\n }\n else if ( !fwd && opts.currSlide === 0 ) {\n index = slides.length-1;\n slide = slides[ index ];\n slides = slides.slice( 0, index );\n opts.container.one('cycle-slide-added', function(e, opts ) {\n setTimeout(function() {\n opts.currSlide = 1;\n opts.API.advanceSlide( -1 );\n },50);\n });\n opts.API.add( slide, true );\n }\n else {\n prepareTxFn.apply( opts.API, [ manual, fwd ] );\n }\n };\n }\n\n if ( nextFn ) {\n API.next = function() {\n var opts = this.opts();\n if ( slides.length && opts.currSlide == ( opts.slideCount - 1 ) ) {\n var slide = slides[ 0 ];\n slides = slides.slice( 1 );\n opts.container.one('cycle-slide-added', function(e, opts ) {\n nextFn.apply( opts.API );\n opts.container.removeClass('cycle-loading');\n });\n opts.container.addClass('cycle-loading');\n opts.API.add( slide );\n }\n else {\n nextFn.apply( opts.API );\n }\n };\n }\n\n if ( prevFn ) {\n API.prev = function() {\n var opts = this.opts();\n if ( slides.length && opts.currSlide === 0 ) {\n var index = slides.length-1;\n var slide = slides[ index ];\n slides = slides.slice( 0, index );\n opts.container.one('cycle-slide-added', function(e, opts ) {\n opts.currSlide = 1;\n opts.API.advanceSlide( -1 );\n opts.container.removeClass('cycle-loading');\n });\n opts.container.addClass('cycle-loading');\n opts.API.add( slide, true );\n }\n else {\n prevFn.apply( opts.API );\n }\n };\n }\n});\n\n})(jQuery);\n\n/*! tmpl plugin for Cycle2; version: 20121227 */\n(function($) {\n\"use strict\";\n\n$.extend($.fn.cycle.defaults, {\n tmplRegex: '{{((.)?.*?)}}'\n});\n\n$.extend($.fn.cycle.API, {\n tmpl: function( str, opts /*, ... */) {\n var regex = new RegExp( opts.tmplRegex || $.fn.cycle.defaults.tmplRegex, 'g' );\n var args = $.makeArray( arguments );\n args.shift();\n return str.replace(regex, function(_, str) {\n var i, j, obj, prop, names = str.split('.');\n for (i=0; i < args.length; i++) {\n obj = args[i];\n if ( ! obj )\n continue;\n if (names.length > 1) {\n prop = obj;\n for (j=0; j < names.length; j++) {\n obj = prop;\n prop = prop[ names[j] ] || str;\n }\n } else {\n prop = obj[str];\n }\n\n if ($.isFunction(prop))\n return prop.apply(obj, args);\n if (prop !== undefined && prop !== null && prop != str)\n return prop;\n }\n return str;\n });\n }\n});\n\n})(jQuery);","/*!\n * jquery.matchHeight.js v0.5.2\n * http://brm.io/jquery-match-height/\n * License: MIT\n */\n\n(function($) {\n\n $.fn.matchHeight = function(byRow) {\n\n // handle matchHeight('remove')\n if (byRow === 'remove') {\n var that = this;\n\n // remove fixed height from all selected elements\n this.css('height', '');\n\n // remove selected elements from all groups\n $.each($.fn.matchHeight._groups, function(key, group) {\n group.elements = group.elements.not(that);\n });\n\n // TODO: cleanup empty groups\n\n return this;\n }\n\n if (this.length <= 1)\n return this;\n\n // byRow default to true\n byRow = (typeof byRow !== 'undefined') ? byRow : true;\n\n // keep track of this group so we can re-apply later on load and resize events\n $.fn.matchHeight._groups.push({\n elements: this,\n byRow: byRow\n });\n\n // match each element's height to the tallest element in the selection\n $.fn.matchHeight._apply(this, byRow);\n\n return this;\n };\n\n $.fn.matchHeight._apply = function(elements, byRow) {\n var $elements = $(elements),\n rows = [$elements];\n\n // get rows if using byRow, otherwise assume one row\n if (byRow) {\n\n // must first force an arbitrary equal height so floating elements break evenly\n $elements.css({\n 'display': 'block',\n 'padding-top': '0',\n 'padding-bottom': '0',\n 'border-top': '0',\n 'border-bottom': '0',\n 'height': '100px'\n });\n\n // get the array of rows (based on element top position)\n rows = _rows($elements);\n\n // revert the temporary forced style\n $elements.css({\n 'display': '',\n 'padding-top': '',\n 'padding-bottom': '',\n 'border-top': '',\n 'border-bottom': '',\n 'height': ''\n });\n }\n\n $.each(rows, function(key, row) {\n var $row = $(row),\n maxHeight = 0;\n\n // iterate the row and find the max height\n $row.each(function(){\n var $that = $(this);\n\n // ensure we get the correct actual height (and not a previously set height value)\n $that.css({ 'display': 'block', 'height': '' });\n\n // find the max height (including padding, but not margin)\n if ($that.outerHeight(false) > maxHeight)\n maxHeight = $that.outerHeight(false);\n\n // revert display block\n $that.css({ 'display': '' });\n });\n\n // iterate the row and apply the height to all elements\n $row.each(function(){\n var $that = $(this),\n verticalPadding = 0;\n\n // handle padding and border correctly (required when not using border-box)\n if ($that.css('box-sizing') !== 'border-box') {\n verticalPadding += _parse($that.css('border-top-width')) + _parse($that.css('border-bottom-width'));\n verticalPadding += _parse($that.css('padding-top')) + _parse($that.css('padding-bottom'));\n }\n\n // set the height (accounting for padding and border)\n $that.css('height', maxHeight - verticalPadding);\n });\n });\n\n return this;\n };\n\n /*\n * _applyDataApi will apply matchHeight to all elements with a data-match-height attribute\n */\n\n $.fn.matchHeight._applyDataApi = function() {\n var groups = {};\n\n // generate groups by their groupId set by elements using data-match-height\n $('[data-match-height], [data-mh]').each(function() {\n var $this = $(this),\n groupId = $this.attr('data-match-height');\n if (groupId in groups) {\n groups[groupId] = groups[groupId].add($this);\n } else {\n groups[groupId] = $this;\n }\n });\n\n // apply matchHeight to each group\n $.each(groups, function() {\n this.matchHeight(true);\n });\n };\n\n /*\n * _update function will re-apply matchHeight to all groups with the correct options\n */\n\n $.fn.matchHeight._groups = [];\n $.fn.matchHeight._throttle = 80;\n\n var previousResizeWidth = -1,\n updateTimeout = -1;\n\n $.fn.matchHeight._update = function(event) {\n // prevent update if fired from a resize event\n // where the viewport width hasn't actually changed\n // fixes an event looping bug in IE8\n if (event && event.type === 'resize') {\n var windowWidth = $(window).width();\n if (windowWidth === previousResizeWidth)\n return;\n previousResizeWidth = windowWidth;\n }\n\n // throttle updates\n if (updateTimeout === -1) {\n updateTimeout = setTimeout(function() {\n\n $.each($.fn.matchHeight._groups, function() {\n $.fn.matchHeight._apply(this.elements, this.byRow);\n });\n\n updateTimeout = -1;\n\n }, $.fn.matchHeight._throttle);\n }\n };\n\n /*\n * bind events\n */\n\n // apply on DOM ready event\n $($.fn.matchHeight._applyDataApi);\n\n // update heights on load and resize events\n $(window).bind('load resize orientationchange', $.fn.matchHeight._update);\n\n /*\n * rows utility function\n * returns array of jQuery selections representing each row\n * (as displayed after float wrapping applied by browser)\n */\n\n var _rows = function(elements) {\n var tolerance = 1,\n $elements = $(elements),\n lastTop = null,\n rows = [];\n\n // group elements by their top position\n $elements.each(function(){\n var $that = $(this),\n top = $that.offset().top - _parse($that.css('margin-top')),\n lastRow = rows.length > 0 ? rows[rows.length - 1] : null;\n\n if (lastRow === null) {\n // first item on the row, so just push it\n rows.push($that);\n } else {\n // if the row top is the same, add to the row group\n if (Math.floor(Math.abs(lastTop - top)) <= tolerance) {\n rows[rows.length - 1] = lastRow.add($that);\n } else {\n // otherwise start a new row group\n rows.push($that);\n }\n }\n\n // keep track of the last row top\n lastTop = top;\n });\n\n return rows;\n };\n\n var _parse = function(value) {\n // parse value and convert NaN to 0\n return parseFloat(value) || 0;\n };\n\n})(jQuery);","/*! http://mths.be/placeholder v2.0.8 by @mathias */\n;(function(window, document, $) {\n\n\tvar isOperaMini = Object.prototype.toString.call(window.operamini) == '[object OperaMini]';\n\tvar isInputSupported = 'placeholder' in document.createElement('input') && !isOperaMini;\n\tvar isTextareaSupported = 'placeholder' in document.createElement('textarea') && !isOperaMini;\n\tvar prototype = $.fn;\n\tvar valHooks = $.valHooks;\n\tvar propHooks = $.propHooks;\n\tvar hooks;\n\tvar placeholder;\n\n\tif (isInputSupported && isTextareaSupported) {\n\n\t\tplaceholder = prototype.placeholder = function() {\n\t\t\treturn this;\n\t\t};\n\n\t\tplaceholder.input = placeholder.textarea = true;\n\n\t} else {\n\n\t\tplaceholder = prototype.placeholder = function() {\n\t\t\tvar $this = this;\n\t\t\t$this\n\t\t\t\t.filter((isInputSupported ? 'textarea' : ':input') + '[placeholder]')\n\t\t\t\t.not('.placeholder')\n\t\t\t\t.bind({\n\t\t\t\t\t'focus.placeholder': clearPlaceholder,\n\t\t\t\t\t'blur.placeholder': setPlaceholder\n\t\t\t\t})\n\t\t\t\t.data('placeholder-enabled', true)\n\t\t\t\t.trigger('blur.placeholder');\n\t\t\treturn $this;\n\t\t};\n\n\t\tplaceholder.input = isInputSupported;\n\t\tplaceholder.textarea = isTextareaSupported;\n\n\t\thooks = {\n\t\t\t'get': function(element) {\n\t\t\t\tvar $element = $(element);\n\n\t\t\t\tvar $passwordInput = $element.data('placeholder-password');\n\t\t\t\tif ($passwordInput) {\n\t\t\t\t\treturn $passwordInput[0].value;\n\t\t\t\t}\n\n\t\t\t\treturn $element.data('placeholder-enabled') && $element.hasClass('placeholder') ? '' : element.value;\n\t\t\t},\n\t\t\t'set': function(element, value) {\n\t\t\t\tvar $element = $(element);\n\n\t\t\t\tvar $passwordInput = $element.data('placeholder-password');\n\t\t\t\tif ($passwordInput) {\n\t\t\t\t\treturn $passwordInput[0].value = value;\n\t\t\t\t}\n\n\t\t\t\tif (!$element.data('placeholder-enabled')) {\n\t\t\t\t\treturn element.value = value;\n\t\t\t\t}\n\t\t\t\tif (value == '') {\n\t\t\t\t\telement.value = value;\n\t\t\t\t\t// Issue #56: Setting the placeholder causes problems if the element continues to have focus.\n\t\t\t\t\tif (element != safeActiveElement()) {\n\t\t\t\t\t\t// We can't use `triggerHandler` here because of dummy text/password inputs :(\n\t\t\t\t\t\tsetPlaceholder.call(element);\n\t\t\t\t\t}\n\t\t\t\t} else if ($element.hasClass('placeholder')) {\n\t\t\t\t\tclearPlaceholder.call(element, true, value) || (element.value = value);\n\t\t\t\t} else {\n\t\t\t\t\telement.value = value;\n\t\t\t\t}\n\t\t\t\t// `set` can not return `undefined`; see http://jsapi.info/jquery/1.7.1/val#L2363\n\t\t\t\treturn $element;\n\t\t\t}\n\t\t};\n\n\t\tif (!isInputSupported) {\n\t\t\tvalHooks.input = hooks;\n\t\t\tpropHooks.value = hooks;\n\t\t}\n\t\tif (!isTextareaSupported) {\n\t\t\tvalHooks.textarea = hooks;\n\t\t\tpropHooks.value = hooks;\n\t\t}\n\n\t\t$(function() {\n\t\t\t// Look for forms\n\t\t\t$(document).delegate('form', 'submit.placeholder', function() {\n\t\t\t\t// Clear the placeholder values so they don't get submitted\n\t\t\t\tvar $inputs = $('.placeholder', this).each(clearPlaceholder);\n\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t$inputs.each(setPlaceholder);\n\t\t\t\t}, 10);\n\t\t\t});\n\t\t});\n\n\t\t// Clear placeholder values upon page reload\n\t\t$(window).bind('beforeunload.placeholder', function() {\n\t\t\t$('.placeholder').each(function() {\n\t\t\t\tthis.value = '';\n\t\t\t});\n\t\t});\n\n\t}\n\n\tfunction args(elem) {\n\t\t// Return an object of element attributes\n\t\tvar newAttrs = {};\n\t\tvar rinlinejQuery = /^jQuery\\d+$/;\n\t\t$.each(elem.attributes, function(i, attr) {\n\t\t\tif (attr.specified && !rinlinejQuery.test(attr.name)) {\n\t\t\t\tnewAttrs[attr.name] = attr.value;\n\t\t\t}\n\t\t});\n\t\treturn newAttrs;\n\t}\n\n\tfunction clearPlaceholder(event, value) {\n\t\tvar input = this;\n\t\tvar $input = $(input);\n\t\tif (input.value == $input.attr('placeholder') && $input.hasClass('placeholder')) {\n\t\t\tif ($input.data('placeholder-password')) {\n\t\t\t\t$input = $input.hide().next().show().attr('id', $input.removeAttr('id').data('placeholder-id'));\n\t\t\t\t// If `clearPlaceholder` was called from `$.valHooks.input.set`\n\t\t\t\tif (event === true) {\n\t\t\t\t\treturn $input[0].value = value;\n\t\t\t\t}\n\t\t\t\t$input.focus();\n\t\t\t} else {\n\t\t\t\tinput.value = '';\n\t\t\t\t$input.removeClass('placeholder');\n\t\t\t\tinput == safeActiveElement() && input.select();\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction setPlaceholder() {\n\t\tvar $replacement;\n\t\tvar input = this;\n\t\tvar $input = $(input);\n\t\tvar id = this.id;\n\t\tif (input.value == '') {\n\t\t\tif (input.type == 'password') {\n\t\t\t\tif (!$input.data('placeholder-textinput')) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\t$replacement = $input.clone().attr({ 'type': 'text' });\n\t\t\t\t\t} catch(e) {\n\t\t\t\t\t\t$replacement = $('').attr($.extend(args(this), { 'type': 'text' }));\n\t\t\t\t\t}\n\t\t\t\t\t$replacement\n\t\t\t\t\t\t.removeAttr('name')\n\t\t\t\t\t\t.data({\n\t\t\t\t\t\t\t'placeholder-password': $input,\n\t\t\t\t\t\t\t'placeholder-id': id\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.bind('focus.placeholder', clearPlaceholder);\n\t\t\t\t\t$input\n\t\t\t\t\t\t.data({\n\t\t\t\t\t\t\t'placeholder-textinput': $replacement,\n\t\t\t\t\t\t\t'placeholder-id': id\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.before($replacement);\n\t\t\t\t}\n\t\t\t\t$input = $input.removeAttr('id').hide().prev().attr('id', id).show();\n\t\t\t\t// Note: `$input[0] != input` now!\n\t\t\t}\n\t\t\t$input.addClass('placeholder');\n\t\t\t$input[0].value = $input.attr('placeholder');\n\t\t} else {\n\t\t\t$input.removeClass('placeholder');\n\t\t}\n\t}\n\n\tfunction safeActiveElement() {\n\t\t// Avoid IE9 `document.activeElement` of death\n\t\t// https://github.com/mathiasbynens/jquery-placeholder/pull/99\n\t\ttry {\n\t\t\treturn document.activeElement;\n\t\t} catch (err) {}\n\t}\n\n}(this, document, jQuery));","/*! carousel transition plugin for Cycle2; version: 20130528 */\n(function($) {\n\"use strict\";\n\n$( document ).on('cycle-bootstrap', function( e, opts, API ) {\n if ( opts.fx !== 'carousel' )\n return;\n\n API.getSlideIndex = function( el ) {\n var slides = this.opts()._carouselWrap.children();\n var i = slides.index( el );\n return i % slides.length;\n };\n\n // override default 'next' function\n API.next = function() {\n var count = opts.reverse ? -1 : 1;\n if ( opts.allowWrap === false && ( opts.currSlide + count ) > opts.slideCount - opts.carouselVisible )\n return;\n opts.API.advanceSlide( count );\n opts.API.trigger('cycle-next', [ opts ]).log('cycle-next');\n };\n\n});\n\n\n$.fn.cycle.transitions.carousel = {\n // transition API impl\n preInit: function( opts ) {\n opts.hideNonActive = false;\n\n opts.container.on('cycle-destroyed', $.proxy(this.onDestroy, opts.API));\n // override default API implementation\n opts.API.stopTransition = this.stopTransition;\n\n // issue #10\n for (var i=0; i < opts.startingSlide; i++) {\n opts.container.append( opts.slides[0] );\n }\n },\n\n // transition API impl\n postInit: function( opts ) {\n var i, j, slide, pagerCutoffIndex, wrap;\n var vert = opts.carouselVertical;\n if (opts.carouselVisible && opts.carouselVisible > opts.slideCount)\n opts.carouselVisible = opts.slideCount - 1;\n var visCount = opts.carouselVisible || opts.slides.length;\n var slideCSS = { display: vert ? 'block' : 'inline-block', position: 'static' };\n\n // required styles\n opts.container.css({ position: 'relative', overflow: 'hidden' });\n opts.slides.css( slideCSS );\n\n opts._currSlide = opts.currSlide;\n\n // wrap slides in a div; this div is what is animated\n wrap = $('')\n .prependTo( opts.container )\n .css({ margin: 0, padding: 0, top: 0, left: 0, position: 'absolute' })\n .append( opts.slides );\n\n opts._carouselWrap = wrap;\n\n if ( !vert )\n wrap.css('white-space', 'nowrap');\n\n if ( opts.allowWrap !== false ) {\n // prepend and append extra slides so we don't see any empty space when we\n // near the end of the carousel. for fluid containers, add even more clones\n // so there is plenty to fill the screen\n // @todo: optimzie this based on slide sizes\n\n for ( j=0; j < (opts.carouselVisible === undefined ? 2 : 1); j++ ) {\n for ( i=0; i < opts.slideCount; i++ ) {\n wrap.append( opts.slides[i].cloneNode(true) );\n }\n i = opts.slideCount;\n while ( i-- ) { // #160, #209\n wrap.prepend( opts.slides[i].cloneNode(true) );\n }\n }\n\n wrap.find('.cycle-slide-active').removeClass('cycle-slide-active');\n opts.slides.eq(opts.startingSlide).addClass('cycle-slide-active');\n }\n\n if ( opts.pager && opts.allowWrap === false ) {\n // hide \"extra\" pagers\n pagerCutoffIndex = opts.slideCount - visCount;\n $( opts.pager ).children().filter( ':gt('+pagerCutoffIndex+')' ).hide();\n }\n\n opts._nextBoundry = opts.slideCount - opts.carouselVisible;\n\n this.prepareDimensions( opts );\n },\n\n prepareDimensions: function( opts ) {\n var dim, offset, pagerCutoffIndex, tmp, j;\n var vert = opts.carouselVertical;\n var visCount = opts.carouselVisible || opts.slides.length;\n\n if ( opts.carouselFluid && opts.carouselVisible ) {\n if ( ! opts._carouselResizeThrottle ) {\n // fluid container AND fluid slides; slides need to be resized to fit container\n this.fluidSlides( opts );\n }\n }\n else if ( opts.carouselVisible && opts.carouselSlideDimension ) {\n dim = visCount * opts.carouselSlideDimension;\n opts.container[ vert ? 'height' : 'width' ]( dim );\n }\n else if ( opts.carouselVisible ) {\n dim = visCount * $(opts.slides[0])[vert ? 'outerHeight' : 'outerWidth'](true);\n opts.container[ vert ? 'height' : 'width' ]( dim );\n }\n // else {\n // // fluid; don't size the container\n // }\n\n offset = ( opts.carouselOffset || 0 );\n if ( opts.allowWrap !== false ) {\n if ( opts.carouselSlideDimension ) {\n offset -= ( (opts.slideCount + opts.currSlide) * opts.carouselSlideDimension );\n }\n else {\n // calculate offset based on actual slide dimensions\n tmp = opts._carouselWrap.children();\n for (j=0; j < (opts.slideCount + opts.currSlide); j++) {\n offset -= $(tmp[j])[vert?'outerHeight':'outerWidth'](true);\n }\n }\n }\n\n opts._carouselWrap.css( vert ? 'top' : 'left', offset );\n },\n\n fluidSlides: function( opts ) {\n var timeout;\n var slide = opts.slides.eq(0);\n var adjustment = slide.outerWidth() - slide.width();\n var prepareDimensions = this.prepareDimensions;\n\n // throttle resize event\n $(window).on( 'resize', resizeThrottle);\n\n opts._carouselResizeThrottle = resizeThrottle;\n onResize();\n\n function resizeThrottle() {\n clearTimeout( timeout );\n timeout = setTimeout( onResize, 20 );\n }\n\n function onResize() {\n opts._carouselWrap.stop( false, true );\n var slideWidth = opts.container.width() / opts.carouselVisible;\n slideWidth = Math.ceil( slideWidth - adjustment );\n opts._carouselWrap.children().width( slideWidth );\n if ( opts._sentinel )\n opts._sentinel.width( slideWidth );\n prepareDimensions( opts );\n }\n },\n\n // transition API impl\n transition: function( opts, curr, next, fwd, callback ) {\n var moveBy, props = {};\n var hops = opts.nextSlide - opts.currSlide;\n var vert = opts.carouselVertical;\n var speed = opts.speed;\n\n // handle all the edge cases for wrapping & non-wrapping\n if ( opts.allowWrap === false ) {\n fwd = hops > 0;\n var currSlide = opts._currSlide;\n var maxCurr = opts.slideCount - opts.carouselVisible;\n if ( hops > 0 && opts.nextSlide > maxCurr && currSlide == maxCurr ) {\n hops = 0;\n }\n else if ( hops > 0 && opts.nextSlide > maxCurr ) {\n hops = opts.nextSlide - currSlide - (opts.nextSlide - maxCurr);\n }\n else if ( hops < 0 && opts.currSlide > maxCurr && opts.nextSlide > maxCurr ) {\n hops = 0;\n }\n else if ( hops < 0 && opts.currSlide > maxCurr ) {\n hops += opts.currSlide - maxCurr;\n }\n else\n currSlide = opts.currSlide;\n\n moveBy = this.getScroll( opts, vert, currSlide, hops );\n opts.API.opts()._currSlide = opts.nextSlide > maxCurr ? maxCurr : opts.nextSlide;\n }\n else {\n if ( fwd && opts.nextSlide === 0 ) {\n // moving from last slide to first\n moveBy = this.getDim( opts, opts.currSlide, vert );\n callback = this.genCallback( opts, fwd, vert, callback );\n }\n else if ( !fwd && opts.nextSlide == opts.slideCount - 1 ) {\n // moving from first slide to last\n moveBy = this.getDim( opts, opts.currSlide, vert );\n callback = this.genCallback( opts, fwd, vert, callback );\n }\n else {\n moveBy = this.getScroll( opts, vert, opts.currSlide, hops );\n }\n }\n\n props[ vert ? 'top' : 'left' ] = fwd ? ( \"-=\" + moveBy ) : ( \"+=\" + moveBy );\n\n // throttleSpeed means to scroll slides at a constant rate, rather than\n // a constant speed\n if ( opts.throttleSpeed )\n speed = (moveBy / $(opts.slides[0])[vert ? 'height' : 'width']() ) * opts.speed;\n\n opts._carouselWrap.animate( props, speed, opts.easing, callback );\n },\n\n getDim: function( opts, index, vert ) {\n var slide = $( opts.slides[index] );\n return slide[ vert ? 'outerHeight' : 'outerWidth'](true);\n },\n\n getScroll: function( opts, vert, currSlide, hops ) {\n var i, moveBy = 0;\n\n if (hops > 0) {\n for (i=currSlide; i < currSlide+hops; i++)\n moveBy += this.getDim( opts, i, vert);\n }\n else {\n for (i=currSlide; i > currSlide+hops; i--)\n moveBy += this.getDim( opts, i, vert);\n }\n return moveBy;\n },\n\n genCallback: function( opts, fwd, vert, callback ) {\n // returns callback fn that resets the left/top wrap position to the \"real\" slides\n return function() {\n var pos = $(opts.slides[opts.nextSlide]).position();\n var offset = 0 - pos[vert?'top':'left'] + (opts.carouselOffset || 0);\n opts._carouselWrap.css( opts.carouselVertical ? 'top' : 'left', offset );\n callback();\n };\n },\n\n // core API override\n stopTransition: function() {\n var opts = this.opts();\n opts.slides.stop( false, true );\n opts._carouselWrap.stop( false, true );\n },\n\n // core API supplement\n onDestroy: function( e ) {\n var opts = this.opts();\n if ( opts._carouselResizeThrottle )\n $( window ).off( 'resize', opts._carouselResizeThrottle );\n opts.slides.prependTo( opts.container );\n opts._carouselWrap.remove();\n }\n};\n\n})(jQuery);","/*! swipe plugin for Cycle2; version: 20121120 */\n(function($) {\n\"use strict\";\n\n// this script adds support for touch events. the logic is lifted from jQuery Mobile.\n// if you have jQuery Mobile installed, you do NOT need this script\n\nvar supportTouch = 'ontouchend' in document;\n\n$.event.special.swipe = $.event.special.swipe || {\n scrollSupressionThreshold: 10, // More than this horizontal displacement, and we will suppress scrolling.\n durationThreshold: 1000, // More time than this, and it isn't a swipe.\n horizontalDistanceThreshold: 30, // Swipe horizontal displacement must be more than this.\n verticalDistanceThreshold: 75, // Swipe vertical displacement must be less than this.\n\n setup: function() {\n var $this = $( this );\n\n $this.bind( 'touchstart', function( event ) {\n var data = event.originalEvent.touches ? event.originalEvent.touches[ 0 ] : event;\n var stop, start = {\n time: ( new Date() ).getTime(),\n coords: [ data.pageX, data.pageY ],\n origin: $( event.target )\n };\n\n function moveHandler( event ) {\n if ( !start )\n return;\n\n var data = event.originalEvent.touches ? event.originalEvent.touches[ 0 ] : event;\n\n stop = {\n time: ( new Date() ).getTime(),\n coords: [ data.pageX, data.pageY ]\n };\n\n // prevent scrolling\n if ( Math.abs( start.coords[ 0 ] - stop.coords[ 0 ] ) > $.event.special.swipe.scrollSupressionThreshold ) {\n event.preventDefault();\n }\n }\n\n $this.bind( 'touchmove', moveHandler )\n .one( 'touchend', function( event ) {\n $this.unbind( 'touchmove', moveHandler );\n\n if ( start && stop ) {\n if ( stop.time - start.time < $.event.special.swipe.durationThreshold &&\n Math.abs( start.coords[ 0 ] - stop.coords[ 0 ] ) > $.event.special.swipe.horizontalDistanceThreshold &&\n Math.abs( start.coords[ 1 ] - stop.coords[ 1 ] ) < $.event.special.swipe.verticalDistanceThreshold ) {\n\n start.origin.trigger( \"swipe\" )\n .trigger( start.coords[0] > stop.coords[ 0 ] ? \"swipeleft\" : \"swiperight\" );\n }\n }\n start = stop = undefined;\n });\n });\n }\n};\n\n$.event.special.swipeleft = $.event.special.swipeleft || {\n setup: function() {\n $( this ).bind( 'swipe', $.noop );\n }\n};\n$.event.special.swiperight = $.event.special.swiperight || $.event.special.swipeleft;\n\n})(jQuery);","/*! youtube plugin for Cycle2; version: 20130708 */\n(function($) {\n\"use strict\";\n\nvar template = '
' +\n '' +\n '' +\n '' +\n '' +\n '' +\n'
';\n\n$.extend($.fn.cycle.defaults, {\n youtubeAllowFullScreen: true,\n youtubeAutostart: false,\n youtubeAutostop: true\n});\n\n$(document).on( 'cycle-bootstrap', function( e, opts ) {\n if ( ! opts.youtube )\n return;\n\n // don't hide inactive slides; hiding video causes reload when it's shown again\n opts.hideNonActive = false;\n\n opts.container.find( opts.slides ).each(function(i) {\n // convert anchors to template markup\n if ( $(this).attr('href') === undefined )\n return;\n var markup, slide = $(this), url = slide.attr( 'href' );\n var fs = opts.youtubeAllowFullScreen ? 'true' : 'false';\n url += ( /\\?/.test( url ) ? '&' : '?') + 'enablejsapi=1';\n if ( opts.youtubeAutostart && opts.startingSlide === i )\n url += '&autoplay=1';\n markup = opts.API.tmpl( template, { url: url, allowFullScreen: fs });\n slide.replaceWith( markup );\n });\n opts.slides = opts.slides.replace(/(\\b>?a\\b)/,'div.cycle-youtube');\n\n if ( opts.youtubeAutostart ) {\n opts.container.on( 'cycle-initialized cycle-after', function( e, opts ) {\n var index = e.type == 'cycle-initialized' ? opts.currSlide : opts.nextSlide;\n $( opts.slides[ index ] ).find('object,embed').each( play );\n });\n }\n\n if ( opts.youtubeAutostop ) {\n opts.container.on( 'cycle-before', function( e, opts ) {\n $( opts.slides[ opts.currSlide ] ).find('object,embed').each( pause );\n });\n }\n});\n\nfunction play() {\n /*jshint validthis:true */\n try {\n this.playVideo();\n }\n catch( ignore ) {}\n}\nfunction pause() {\n /*jshint validthis:true */\n try {\n this.pauseVideo();\n }\n catch( ignore ) {}\n}\n\n})(jQuery);"],"sourceRoot":"/source/"}