{"version":3,"sources":["homepage.js","jquery.cycle2.carousel.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"homepage.js","sourcesContent":["jQuery(document).ready(function ($) {\r\n // who\r\n enquire.register(\"screen and (max-width:1023px)\", function () {\r\n // console.log(\"handler 1 matched\");\r\n $('.slide-container').cycle({\r\n speed: 350,\r\n manualSpeed: 350,\r\n timeout: 0,\r\n easing: 'linear',\r\n fx: 'carousel',\r\n carouselVisible: 3,\r\n carouselFluid: true,\r\n next: '.nav-right',\r\n prev: '.nav-left',\r\n slides: '> .slide',\r\n swipe: true,\r\n swipeFx: 'carousel'\r\n // allowWrap: false\r\n });\r\n }).register(\"screen and (min-width:1024px)\", function () {\r\n // console.log(\"handler 2 matched\");\r\n $('.slide-container').cycle({\r\n speed: 350,\r\n manualSpeed: 350,\r\n timeout: 0,\r\n easing: 'linear',\r\n fx: 'carousel',\r\n carouselVisible: 5,\r\n next: '.nav-right',\r\n prev: '.nav-left',\r\n slides: '> .slide',\r\n swipe: true,\r\n swipeFx: 'carousel'\r\n // allowWrap: false\r\n });\r\n });\r\n});","/*! carousel transition plugin for Cycle2; version: 20130528 */\r\n(function($) {\r\n\"use strict\";\r\n\r\n$( document ).on('cycle-bootstrap', function( e, opts, API ) {\r\n if ( opts.fx !== 'carousel' )\r\n return;\r\n\r\n API.getSlideIndex = function( el ) {\r\n var slides = this.opts()._carouselWrap.children();\r\n var i = slides.index( el );\r\n return i % slides.length;\r\n };\r\n\r\n // override default 'next' function\r\n API.next = function() {\r\n var count = opts.reverse ? -1 : 1;\r\n if ( opts.allowWrap === false && ( opts.currSlide + count ) > opts.slideCount - opts.carouselVisible )\r\n return;\r\n opts.API.advanceSlide( count );\r\n opts.API.trigger('cycle-next', [ opts ]).log('cycle-next');\r\n };\r\n\r\n});\r\n\r\n\r\n$.fn.cycle.transitions.carousel = {\r\n // transition API impl\r\n preInit: function( opts ) {\r\n opts.hideNonActive = false;\r\n \r\n opts.container.on('cycle-destroyed', $.proxy(this.onDestroy, opts.API));\r\n // override default API implementation\r\n opts.API.stopTransition = this.stopTransition;\r\n\r\n // issue #10\r\n for (var i=0; i < opts.startingSlide; i++) {\r\n opts.container.append( opts.slides[0] );\r\n } \r\n },\r\n\r\n // transition API impl\r\n postInit: function( opts ) {\r\n var i, j, slide, pagerCutoffIndex, wrap;\r\n var vert = opts.carouselVertical;\r\n if (opts.carouselVisible && opts.carouselVisible > opts.slideCount)\r\n opts.carouselVisible = opts.slideCount - 1;\r\n var visCount = opts.carouselVisible || opts.slides.length;\r\n var slideCSS = { display: vert ? 'block' : 'inline-block', position: 'static' };\r\n\r\n // required styles\r\n opts.container.css({ position: 'relative', overflow: 'hidden' });\r\n opts.slides.css( slideCSS );\r\n\r\n opts._currSlide = opts.currSlide;\r\n\r\n // wrap slides in a div; this div is what is animated\r\n wrap = $('
')\r\n .prependTo( opts.container )\r\n .css({ margin: 0, padding: 0, top: 0, left: 0, position: 'absolute' })\r\n .append( opts.slides );\r\n\r\n opts._carouselWrap = wrap;\r\n\r\n if ( !vert )\r\n wrap.css('white-space', 'nowrap');\r\n\r\n if ( opts.allowWrap !== false ) {\r\n // prepend and append extra slides so we don't see any empty space when we\r\n // near the end of the carousel. for fluid containers, add even more clones\r\n // so there is plenty to fill the screen\r\n // @todo: optimzie this based on slide sizes\r\n\r\n for ( j=0; j < (opts.carouselVisible === undefined ? 2 : 1); j++ ) {\r\n for ( i=0; i < opts.slideCount; i++ ) {\r\n wrap.append( opts.slides[i].cloneNode(true) );\r\n }\r\n i = opts.slideCount;\r\n while ( i-- ) { // #160, #209\r\n wrap.prepend( opts.slides[i].cloneNode(true) );\r\n }\r\n }\r\n\r\n wrap.find('.cycle-slide-active').removeClass('cycle-slide-active');\r\n opts.slides.eq(opts.startingSlide).addClass('cycle-slide-active');\r\n }\r\n\r\n if ( opts.pager && opts.allowWrap === false ) {\r\n // hide \"extra\" pagers\r\n pagerCutoffIndex = opts.slideCount - visCount;\r\n $( opts.pager ).children().filter( ':gt('+pagerCutoffIndex+')' ).hide();\r\n }\r\n\r\n opts._nextBoundry = opts.slideCount - opts.carouselVisible;\r\n\r\n this.prepareDimensions( opts );\r\n },\r\n\r\n prepareDimensions: function( opts ) {\r\n var dim, offset, pagerCutoffIndex, tmp, j;\r\n var vert = opts.carouselVertical;\r\n var visCount = opts.carouselVisible || opts.slides.length;\r\n\r\n if ( opts.carouselFluid && opts.carouselVisible ) {\r\n if ( ! opts._carouselResizeThrottle ) {\r\n // fluid container AND fluid slides; slides need to be resized to fit container\r\n this.fluidSlides( opts );\r\n }\r\n }\r\n else if ( opts.carouselVisible && opts.carouselSlideDimension ) {\r\n dim = visCount * opts.carouselSlideDimension;\r\n opts.container[ vert ? 'height' : 'width' ]( dim );\r\n }\r\n else if ( opts.carouselVisible ) {\r\n dim = visCount * $(opts.slides[0])[vert ? 'outerHeight' : 'outerWidth'](true);\r\n opts.container[ vert ? 'height' : 'width' ]( dim );\r\n }\r\n // else {\r\n // // fluid; don't size the container\r\n // }\r\n\r\n offset = ( opts.carouselOffset || 0 );\r\n if ( opts.allowWrap !== false ) {\r\n if ( opts.carouselSlideDimension ) {\r\n offset -= ( (opts.slideCount + opts.currSlide) * opts.carouselSlideDimension );\r\n }\r\n else {\r\n // calculate offset based on actual slide dimensions\r\n tmp = opts._carouselWrap.children();\r\n for (j=0; j < (opts.slideCount + opts.currSlide); j++) {\r\n offset -= $(tmp[j])[vert?'outerHeight':'outerWidth'](true);\r\n }\r\n }\r\n }\r\n\r\n opts._carouselWrap.css( vert ? 'top' : 'left', offset );\r\n },\r\n\r\n fluidSlides: function( opts ) {\r\n var timeout;\r\n var slide = opts.slides.eq(0);\r\n var adjustment = slide.outerWidth() - slide.width();\r\n var prepareDimensions = this.prepareDimensions;\r\n\r\n // throttle resize event\r\n $(window).on( 'resize', resizeThrottle);\r\n\r\n opts._carouselResizeThrottle = resizeThrottle;\r\n onResize();\r\n\r\n function resizeThrottle() {\r\n clearTimeout( timeout );\r\n timeout = setTimeout( onResize, 20 );\r\n }\r\n\r\n function onResize() {\r\n opts._carouselWrap.stop( false, true );\r\n var slideWidth = opts.container.width() / opts.carouselVisible;\r\n slideWidth = Math.ceil( slideWidth - adjustment );\r\n opts._carouselWrap.children().width( slideWidth );\r\n if ( opts._sentinel )\r\n opts._sentinel.width( slideWidth );\r\n prepareDimensions( opts );\r\n }\r\n },\r\n\r\n // transition API impl\r\n transition: function( opts, curr, next, fwd, callback ) {\r\n var moveBy, props = {};\r\n var hops = opts.nextSlide - opts.currSlide;\r\n var vert = opts.carouselVertical;\r\n var speed = opts.speed;\r\n\r\n // handle all the edge cases for wrapping & non-wrapping\r\n if ( opts.allowWrap === false ) {\r\n fwd = hops > 0;\r\n var currSlide = opts._currSlide;\r\n var maxCurr = opts.slideCount - opts.carouselVisible;\r\n if ( hops > 0 && opts.nextSlide > maxCurr && currSlide == maxCurr ) {\r\n hops = 0;\r\n }\r\n else if ( hops > 0 && opts.nextSlide > maxCurr ) {\r\n hops = opts.nextSlide - currSlide - (opts.nextSlide - maxCurr);\r\n }\r\n else if ( hops < 0 && opts.currSlide > maxCurr && opts.nextSlide > maxCurr ) {\r\n hops = 0;\r\n }\r\n else if ( hops < 0 && opts.currSlide > maxCurr ) {\r\n hops += opts.currSlide - maxCurr;\r\n }\r\n else \r\n currSlide = opts.currSlide;\r\n\r\n moveBy = this.getScroll( opts, vert, currSlide, hops );\r\n opts.API.opts()._currSlide = opts.nextSlide > maxCurr ? maxCurr : opts.nextSlide;\r\n }\r\n else {\r\n if ( fwd && opts.nextSlide === 0 ) {\r\n // moving from last slide to first\r\n moveBy = this.getDim( opts, opts.currSlide, vert );\r\n callback = this.genCallback( opts, fwd, vert, callback );\r\n }\r\n else if ( !fwd && opts.nextSlide == opts.slideCount - 1 ) {\r\n // moving from first slide to last\r\n moveBy = this.getDim( opts, opts.currSlide, vert );\r\n callback = this.genCallback( opts, fwd, vert, callback );\r\n }\r\n else {\r\n moveBy = this.getScroll( opts, vert, opts.currSlide, hops );\r\n }\r\n }\r\n\r\n props[ vert ? 'top' : 'left' ] = fwd ? ( \"-=\" + moveBy ) : ( \"+=\" + moveBy );\r\n\r\n // throttleSpeed means to scroll slides at a constant rate, rather than\r\n // a constant speed\r\n if ( opts.throttleSpeed )\r\n speed = (moveBy / $(opts.slides[0])[vert ? 'height' : 'width']() ) * opts.speed;\r\n\r\n opts._carouselWrap.animate( props, speed, opts.easing, callback );\r\n },\r\n\r\n getDim: function( opts, index, vert ) {\r\n var slide = $( opts.slides[index] );\r\n return slide[ vert ? 'outerHeight' : 'outerWidth'](true);\r\n },\r\n\r\n getScroll: function( opts, vert, currSlide, hops ) {\r\n var i, moveBy = 0;\r\n\r\n if (hops > 0) {\r\n for (i=currSlide; i < currSlide+hops; i++)\r\n moveBy += this.getDim( opts, i, vert);\r\n }\r\n else {\r\n for (i=currSlide; i > currSlide+hops; i--)\r\n moveBy += this.getDim( opts, i, vert);\r\n }\r\n return moveBy;\r\n },\r\n\r\n genCallback: function( opts, fwd, vert, callback ) {\r\n // returns callback fn that resets the left/top wrap position to the \"real\" slides\r\n return function() {\r\n var pos = $(opts.slides[opts.nextSlide]).position();\r\n var offset = 0 - pos[vert?'top':'left'] + (opts.carouselOffset || 0);\r\n opts._carouselWrap.css( opts.carouselVertical ? 'top' : 'left', offset );\r\n callback();\r\n };\r\n },\r\n\r\n // core API override\r\n stopTransition: function() {\r\n var opts = this.opts();\r\n opts.slides.stop( false, true );\r\n opts._carouselWrap.stop( false, true );\r\n },\r\n\r\n // core API supplement\r\n onDestroy: function( e ) {\r\n var opts = this.opts();\r\n if ( opts._carouselResizeThrottle )\r\n $( window ).off( 'resize', opts._carouselResizeThrottle );\r\n opts.slides.prependTo( opts.container );\r\n opts._carouselWrap.remove();\r\n }\r\n};\r\n\r\n})(jQuery);\r\n"]}