{"version":3,"sources":["vegas.min.js"],"names":["$","defaults","slide","delay","preload","preloadImage","preloadVideo","timer","overlay","autoplay","shuffle","cover","color","align","valign","transition","transitionDuration","transitionRegister","animation","animationDuration","animationRegister","init","play","pause","walk","slides","videoCache","Vegas","elmt","options","this","settings","extend","vegas","total","length","noshow","paused","$elmt","$timer","$overlay","$slide","timeout","transitions","animations","Array","concat","support","objectFit","document","body","style","video","isVideoCompatible","_init","prototype","$wrapper","isBody","tagName","self","_preload","css","clone","children","appendTo","innerHTML","prepend","addClass","append","setTimeout","trigger","_goto","img","i","preloadImages","src","Image","preloadVideos","_video","_random","array","Math","floor","random","_slideShow","next","_options","_timer","state","clearTimeout","removeClass","find","srcs","source","cacheKey","toString","createElement","forEach","appendChild","_fadeOutSound","duration","volume","_fadeInSound","key","undefined","nb","go","$slides","each","get","fadeIn","eq","remove","$inner","$video","videoSettings","loop","muted","mute","after","readyState","currentTime","onload","temp","rand","toggle","playing","current","advanced","data","jump","previous","fn","params","apply","value","oldSlides","slice","destroy","_vegas","returns","args","arguments","error","instance","Error","call","test","navigator","userAgent","window","jQuery","Zepto"],"mappings":"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","file":"vegas.min.js","sourcesContent":["\n(function ($) {\n    'use strict';\n\n    var defaults = {\n        slide:              0,\n        delay:              5000,\n        preload:            false,\n        preloadImage:       false,\n        preloadVideo:       false,\n        timer:              true,\n        overlay:            false,\n        autoplay:           true,\n        shuffle:            false,\n        cover:              true,\n        color:              null,\n        align:              'center',\n        valign:             'center',\n        transition:         'fade',\n        transitionDuration: 1000,\n        transitionRegister: [],\n        animation:          null,\n        animationDuration:  'auto',\n        animationRegister:  [],\n        init:  function () {},\n        play:  function () {},\n        pause: function () {},\n        walk:  function () {},\n        slides: [\n            // {   \n            //  src:                null,\n            //  color:              null,\n            //  delay:              null,\n            //  align:              null,\n            //  valign:             null,\n            //  transition:         null,\n            //  transitionDuration: null,\n            //  animation:          null,\n            //  animationDuration:  null,\n            //  cover:              true,\n            //  video: {\n            //      src: [],\n            //      mute: true,\n            //      loop: true\n            // }\n            // ...\n        ]\n    };\n\n    var videoCache = {};\n\n    var Vegas = function (elmt, options) {\n        this.elmt         = elmt;\n        this.settings     = $.extend({}, defaults, $.vegas.defaults, options);\n        this.slide        = this.settings.slide;\n        this.total        = this.settings.slides.length;\n        this.noshow       = this.total < 2;\n        this.paused       = !this.settings.autoplay || this.noshow;\n        this.$elmt        = $(elmt);\n        this.$timer       = null;\n        this.$overlay     = null;\n        this.$slide       = null;\n        this.timeout      = null;\n\n        this.transitions = [\n            'fade', 'fade2',\n            'blur', 'blur2',\n            'flash', 'flash2',\n            'negative', 'negative2',\n            'burn', 'burn2',\n            'slideLeft', 'slideLeft2',\n            'slideRight', 'slideRight2',\n            'slideUp', 'slideUp2',\n            'slideDown', 'slideDown2',\n            'zoomIn', 'zoomIn2',\n            'zoomOut', 'zoomOut2',\n            'swirlLeft', 'swirlLeft2',\n            'swirlRight', 'swirlRight2'\n        ];\n\n        this.animations = [\n            'kenburns',\n            'kenburnsLeft', 'kenburnsRight',\n            'kenburnsUp', 'kenburnsUpLeft', 'kenburnsUpRight',\n            'kenburnsDown', 'kenburnsDownLeft', 'kenburnsDownRight'\n        ];\n\n        if (this.settings.transitionRegister instanceof Array === false) {\n            this.settings.transitionRegister = [ this.settings.transitionRegister ];\n        }\n\n        if (this.settings.animationRegister instanceof Array === false) {\n            this.settings.animationRegister = [ this.settings.animationRegister ];\n        }\n        \n        this.transitions = this.transitions.concat(this.settings.transitionRegister);\n        this.animations  = this.animations.concat(this.settings.animationRegister);\n\n        this.support = {\n            objectFit:  'objectFit'  in document.body.style,\n            transition: 'transition' in document.body.style || 'WebkitTransition' in document.body.style,\n            video:      $.vegas.isVideoCompatible()\n        };\n\n        if (this.settings.shuffle === true) {\n            this.shuffle();\n        }\n\n        this._init();\n    };\n\n    Vegas.prototype = {\n        _init: function () {\n            var $wrapper,\n                $overlay,\n                $timer,\n                isBody  = this.elmt.tagName === 'BODY',\n                timer   = this.settings.timer,\n                overlay = this.settings.overlay,\n                self    = this;\n\n            // Preloading\n            this._preload();\n\n            // Wrapper with content\n            if (!isBody) {\n                this.$elmt.css('height', this.$elmt.css('height'));\n                \n                $wrapper = $('<div class=\"vegas-wrapper\">')\n                    .css('overflow', this.$elmt.css('overflow'))\n                    .css('padding',  this.$elmt.css('padding'));\n\n                // Some browsers don't compute padding shorthand\n                if (!this.$elmt.css('padding')) {\n                    $wrapper\n                        .css('padding-top',    this.$elmt.css('padding-top'))\n                        .css('padding-bottom', this.$elmt.css('padding-bottom'))\n                        .css('padding-left',   this.$elmt.css('padding-left'))\n                        .css('padding-right',  this.$elmt.css('padding-right'));\n                }\n\n                this.$elmt.clone(true).children().appendTo($wrapper);\n                this.elmt.innerHTML = '';\n            }\n\n            // Timer\n            if (timer && this.support.transition) {\n                $timer = $('<div class=\"vegas-timer\"><div class=\"vegas-timer-progress\">');\n                this.$timer = $timer;\n                this.$elmt.prepend($timer);\n            }\n\n            // Overlay\n            if (overlay) {\n                $overlay = $('<div class=\"vegas-overlay\">');\n\n                if (typeof overlay === 'string') {\n                    $overlay.css('background-image', 'url(' + overlay + ')');\n                }\n\n                this.$overlay = $overlay;\n                this.$elmt.prepend($overlay);\n            }\n\n            // Container\n            this.$elmt.addClass('vegas-container');\n\n            if (!isBody) {\n                this.$elmt.append($wrapper);\n            }\n\n            setTimeout(function () {\n                self.trigger('init');\n                self._goto(self.slide);\n\n                if (self.settings.autoplay) {\n                    self.trigger('play');\n                }\n            }, 1);\n        },\n\n        _preload: function () {\n            var video, img, i;\n\n            for (i = 0; i < this.settings.slides.length; i++) {\n                if (this.settings.preload || this.settings.preloadImages) {\n                    if (this.settings.slides[i].src) {\n                        img = new Image();\n                        img.src = this.settings.slides[i].src;\n                    }\n                }\n\n                if (this.settings.preload || this.settings.preloadVideos) {\n                    if (this.support.video && this.settings.slides[i].video) {\n                        if (this.settings.slides[i].video instanceof Array) {\n                            video = this._video(this.settings.slides[i].video);\n                        } else {\n                            video = this._video(this.settings.slides[i].video.src);\n                        }\n                    }\n                }\n            }\n        },\n\n        _random: function (array) {\n            return array[Math.floor(Math.random() * (array.length - 1))];\n        },\n\n        _slideShow: function () {\n            var self = this;\n\n            if (this.total > 1 && !this.paused && !this.noshow) {\n                this.timeout = setTimeout(function () {\n                    self.next();\n                }, this._options('delay')); \n            }\n        },\n\n        _timer: function (state) {\n            var self = this;\n\n            clearTimeout(this.timeout);\n\n            if (!this.$timer) {\n                return;\n            }\n\n            this.$timer\n                .removeClass('vegas-timer-running')\n                    .find('div')\n                        .css('transition-duration', '0ms');\n\n            if (this.paused || this.noshow) {\n                return;\n            }\n\n            if (state) {\n                setTimeout(function () {\n                   self.$timer\n                    .addClass('vegas-timer-running')\n                        .find('div')\n                            .css('transition-duration', self._options('delay') - 100 + 'ms');\n                }, 100);\n            }\n        },\n\n        _video: function (srcs) {\n            var video, \n                source,\n                cacheKey = srcs.toString();\n\n            if (videoCache[cacheKey]) {\n                return videoCache[cacheKey];\n            }\n\n            if (srcs instanceof Array === false) {\n                srcs = [ srcs ];\n            }\n\n            video = document.createElement('video');\n            video.preload = true;\n\n            srcs.forEach(function (src) {\n                source = document.createElement('source');\n                source.src = src;\n                video.appendChild(source);\n            });\n\n            videoCache[cacheKey] = video;\n\n            return video;\n        },\n\n        _fadeOutSound: function (video, duration) {\n            var self   = this,\n                delay  = duration / 10,\n                volume = video.volume - 0.09;\n\n            if (volume > 0) {\n                video.volume = volume;\n\n                setTimeout(function () {\n                    self._fadeOutSound(video, duration);\n                }, delay);\n            } else {\n                video.pause();\n            }\n        },\n\n        _fadeInSound: function (video, duration) {\n            var self   = this,\n                delay  = duration / 10,\n                volume = video.volume + 0.09;\n            \n            if (volume < 1) {\n                video.volume = volume;\n\n                setTimeout(function () {\n                    self._fadeInSound(video, duration);\n                }, delay);\n            }\n        },\n\n        _options: function (key, i) {\n            if (i === undefined) {\n                i = this.slide;\n            }\n\n            if (this.settings.slides[i][key] !== undefined) {\n                return this.settings.slides[i][key];\n            }\n\n            return this.settings[key];\n        },\n\n        _goto: function (nb) {\n            if (typeof this.settings.slides[nb] === 'undefined') {\n                nb = 0;\n            }\n\n            this.slide = nb;\n\n            var $slide,\n                $inner,\n                $video,\n                $slides       = this.$elmt.children('.vegas-slide'),\n                src           = this.settings.slides[nb].src,\n                videoSettings = this.settings.slides[nb].video,\n                delay         = this._options('delay'),\n                align         = this._options('align'),\n                valign        = this._options('valign'),\n                color         = this._options('color') || this.$elmt.css('background-color'),\n                cover         = this._options('cover') ? 'cover' : 'contain',\n                self          = this,\n                total         = $slides.length,\n                video,\n                img;\n\n            var transition         = this._options('transition'),\n                transitionDuration = this._options('transitionDuration'),\n                animation          = this._options('animation' ),\n                animationDuration  = this._options('animationDuration');\n\n            if (transition === 'random' || transition instanceof Array) {\n                if (transition instanceof Array) {\n                    transition = this._random(transition);\n                } else {\n                    transition = this._random(this.transitions);\n                }\n            }\n\n            if (animation === 'random' || animation instanceof Array) {\n                if (animation instanceof Array) {\n                    animation = this._random(animation);\n                } else {\n                    animation = this._random(this.animations);\n                }\n            }\n\n            if (transitionDuration === 'auto' || transitionDuration > delay) {\n                transitionDuration = delay;\n            }\n\n            if (animationDuration === 'auto') {\n                animationDuration = delay;\n            }\n\n            $slide = $('<div class=\"vegas-slide\"></div>');\n            \n            if (this.support.transition && transition) {\n                $slide.addClass('vegas-transition-' + transition);\n            }\n\n            // Video\n\n            if (this.support.video && videoSettings) {\n                if (videoSettings instanceof Array) {\n                    video = this._video(videoSettings);\n                } else {\n                    video = this._video(videoSettings.src);\n                }\n\n                video.loop  = videoSettings.loop !== undefined ? videoSettings.loop : true;\n                video.muted = videoSettings.mute !== undefined ? videoSettings.mute : true;\n\n                if (video.muted === false) {\n                    video.volume = 0;\n                    this._fadeInSound(video, transitionDuration);\n                } else {\n                    video.pause();\n                }\n\n                $video = $(video)\n                    .addClass('vegas-video')\n                    .css('background-color', color);\n\n                if (this.support.objectFit) {\n                    $video\n                        .css('object-position', align + ' ' + valign)\n                        .css('object-fit', cover)\n                        .css('width',  '100%')\n                        .css('height', '100%');\n                } else if (cover === 'contain') {\n                    $video\n                        .css('width',  '100%')\n                        .css('height', '100%');\n                }\n\n                $slide.append($video);\n\n            // Image\n\n            } else {\n                img = new Image();\n\n                $inner = $('<div class=\"vegas-slide-inner\"></div>')\n                    .css('background-image',    'url(' + src + ')')\n                    .css('background-color',    color)\n                    .css('background-position', align + ' ' + valign)\n                    .css('background-size',     cover);\n\n                if (this.support.transition && animation) {\n                    $inner\n                        .addClass('vegas-animation-' + animation)\n                        .css('animation-duration',  animationDuration + 'ms');\n                }\n\n                $slide.append($inner);\n            }\n\n            if (!this.support.transition) {\n                $slide.css('display', 'none');\n            }\n\n            if (total) {\n                $slides.eq(total - 1).after($slide);\n            } else {\n                this.$elmt.prepend($slide);\n            }\n\n            self._timer(false);\n\n            function go () {\n                self._timer(true);\n\n                setTimeout(function () {\n                    if (transition) {\n                        if (self.support.transition) {\n                            $slides\n                                .css('transition', 'all ' + transitionDuration + 'ms')\n                                .addClass('vegas-transition-' + transition + '-out');\n\n                            $slides.each(function () {\n                                var video = $slides.find('video').get(0);\n\n                                if (video) {\n                                    video.volume = 1;\n                                    self._fadeOutSound(video, transitionDuration);\n                                }\n                            });\n\n                            $slide\n                                .css('transition', 'all ' + transitionDuration + 'ms')\n                                .addClass('vegas-transition-' + transition + '-in');\n                        } else {\n                            $slide.fadeIn(transitionDuration);\n                        }\n                    }\n\n                    for (var i = 0; i < $slides.length - 4; i++) {\n                         $slides.eq(i).remove();\n                    }\n\n                    self.trigger('walk');\n                    self._slideShow();\n                }, 100);\n            }\n            if (video) {\n                if (video.readyState === 4) {\n                    video.currentTime = 0;\n                }\n                \n                video.play();\n                go();\n            } else {\n                img.src = src;\n                img.onload = go;\n            }\n        },\n\n        shuffle: function () {\n            var temp,\n                rand;\n\n            for (var i = this.total - 1; i > 0; i--) {\n                rand = Math.floor(Math.random() * (i + 1));\n                temp = this.settings.slides[i];\n\n                this.settings.slides[i] = this.settings.slides[rand];\n                this.settings.slides[rand] = temp;\n            }\n        },\n\n        play: function () {\n            if (this.paused) {\n                this.paused = false;\n                this.next();\n                this.trigger('play');\n            }\n        },\n\n        pause: function () {\n            this._timer(false);\n            this.paused = true;\n            this.trigger('pause');\n        },\n\n        toggle: function () {\n            if (this.paused) {\n                this.play();\n            } else {\n                this.pause();\n            }\n        },\n\n        playing: function () {\n            return !this.paused && !this.noshow;\n        },\n\n        current: function (advanced) {\n            if (advanced) {\n                return {\n                    slide: this.slide,\n                    data:  this.settings.slides[this.slide]\n                };\n            }\n            return this.slide;\n        },\n\n        jump: function (nb) {\n            if (nb < 0 || nb > this.total - 1 || nb === this.slide) {\n                return;\n            }\n\n            this.slide = nb;\n            this._goto(this.slide);\n        },\n\n        next: function () {\n            this.slide++;\n\n            if (this.slide >= this.total) {\n                this.slide = 0;\n            }\n\n            this._goto(this.slide);\n        },\n\n        previous: function () {\n            this.slide--;\n\n            if (this.slide < 0) {\n                this.slide = this.total - 1;\n            }\n\n            this._goto(this.slide);\n        },\n\n        trigger: function (fn) {\n            var params = [];\n\n            if (fn === 'init') {\n                params = [ this.settings ];\n            } else {\n                params = [ \n                    this.slide, \n                    this.settings.slides[this.slide]\n                ];\n            }\n\n            this.$elmt.trigger('vegas' + fn, params);\n\n            if (typeof this.settings[fn] === 'function') {\n                this.settings[fn].apply(this.$elmt, params);\n            }\n        },\n\n        options: function (key, value) {\n            var oldSlides = this.settings.slides.slice();\n\n            if (typeof key === 'object') {\n                this.settings = $.extend({}, defaults, $.vegas.defaults, key);\n            } else if (typeof key === 'string') {\n                if (value === undefined) {\n                    return this.settings[key];\n                }\n                this.settings[key] = value; \n            } else {\n                return this.settings;\n            }\n\n            // In case slides have changed\n            if (this.settings.slides !== oldSlides) {\n                this.total  = this.settings.slides.length;\n                this.noshow = this.total < 2;\n                this._preload();   \n            }\n        },\n\n        destroy: function () {\n            clearTimeout(this.timeout); \n\n            this.$elmt.removeClass('vegas-container');\n            this.$elmt.find('> .vegas-slide').remove();\n            this.$elmt.find('> .vegas-wrapper').clone(true).children().appendTo(this.$elmt);\n            this.$elmt.find('> .vegas-wrapper').remove();\n\n            if (this.settings.timer) {\n                this.$timer.remove();\n            }\n\n            if (this.settings.overlay) {\n                this.$overlay.remove();\n            }\n            \n            this.elmt._vegas = null;\n        }\n    };\n\n    $.fn.vegas = function(options) {\n        var args = arguments,\n            error = false,\n            returns;\n\n        if (options === undefined || typeof options === 'object') {\n            return this.each(function () {\n                if (!this._vegas) {\n                    this._vegas = new Vegas(this, options);\n                }\n            });\n        } else if (typeof options === 'string') {\n            this.each(function () {\n                var instance = this._vegas;\n\n                if (!instance) {\n                    throw new Error('No Vegas applied to this element.');\n                }\n\n                if (typeof instance[options] === 'function' && options[0] !== '_') {\n                    returns = instance[options].apply(instance, [].slice.call(args, 1));\n                } else {\n                    error = true;\n                }\n            });\n\n            if (error) {\n                throw new Error('No method \"' + options + '\" in Vegas.');\n            }\n\n            return returns !== undefined ? returns : this;\n        }\n    };\n\n    $.vegas = {};\n    $.vegas.defaults = defaults;\n\n    $.vegas.isVideoCompatible = function () {\n        return !/(Android|webOS|Phone|iPad|iPod|BlackBerry|Windows Phone)/i.test(navigator.userAgent);\n    };\n\n})(window.jQuery || window.Zepto);\n"],"sourceRoot":"/source/"}