1 2// Place any jQuery/helper plugins in here. 3var slideManager = function () { 4 5 var self = this; 6 7 var autoChangeTimeMs = 15000; 8 9 self.autoChange = null; 10 11 12 self._getSliderSize = function () { 13 return $('.slider .slide').length; 14 } 15 self._getActiveSlide = function () { 16 return $('.slider .slides .slide.active').data('index'); 17 18 } 19 20 self._setNavigation = function () { 21 var size = self._getSliderSize(); 22 var index = self._getActiveSlide(); 23 var tl = new TimelineLite(); 24 if (size > 1) { 25 if (index == 1) { 26 tl.to(self.config.prev, 0.5, { opacity: 0, ease: Power3.easeInOut }) 27 .set(self.config.prev, { display: 'none' }) 28 .set(self.config.next, { display: 'block' }) 29 .to(self.config.next, 0.5, { opacity: 1, ease: Power3.easeInOut }); 30 } else if (index == size) { 31 tl.to(self.config.next, 0.5, { opacity: 0, ease: Power3.easeInOut }) 32 .set(self.config.next, { display: 'none' }) 33 .set(self.config.prev, { display: 'block' }) 34 .to(self.config.prev, 0.5, { opacity: 1, ease: Power3.easeInOut }); 35 } else { 36 tl.set(self.config.next, { display: 'block' }) 37 .to(self.config.next, 0.5, { opacity: 1, ease: Power3.easeInOut }) 38 .set(self.config.prev, { display: 'block' }) 39 .to(self.config.prev, 0.5, { opacity: 1, ease: Power3.easeInOut }); 40 } 41 } else { 42 TweenLite.set(self.config.next, { display: 'none' }); 43 TweenLite.set(self.config.prev, { display: 'none' }); 44 } 45 } 46 47 self._goToSlide = function (slideOut, slideIn, forward) { 48 var tl = new TimelineLite(); 49 var sliderContainer = slideIn.parents(".viewpart.slider"); 50 var head = sliderContainer.find(".head"); 51 var hamburguer = sliderContainer.find(".hamburger-topmenu"); 52 var sliderButtons = $('#slider-content-wrapper'); 53 var isInverseSlide = slideIn.hasClass("inverse"); 54 // go to the next slide timeline 55 if (slideIn.length !== 0) { 56 tl 57 .set(slideIn, { x: forward ? '100%' : '-100%', autoAlpha: 1, className: '+=active' }) 58 .set(slideOut, { className: '-=active' }) 59 .to(slideOut, 2, { x: forward ? '-100%' : '100%', ease: Power3.easeInOut }, 0) 60 .to(head, 0.5, { opacity: 0 }, 0.5) 61 .set(sliderButtons, { className: (isInverseSlide ? "+=inverse" : "-=inverse") }, 0.75) 62 .set(sliderContainer, { className: (isInverseSlide ? "+=inverse" : "-=inverse") }, 0.75) 63 .set(hamburguer, { className: (isInverseSlide ? "+=inverse" : "-=inverse") }, 0.75) 64 .to(slideIn, 2, { x: forward ? '-=100%' : '+=100%', ease: Power3.easeInOut }, 0) 65 .to(head, 1, { opacity: 1 }, 2); 66 } 67 self._setNavigation(); 68 69 } 70 71 self._getAnimationHandler = function ($slide) { 72 return eval($slide.data("animationscript")); 73 } 74 75 self._animationStopAndGo = function(slideOut, slideIn) { 76 if (slideOut.hasClass('has-animation')) { 77 self._getAnimationHandler(slideOut).stop(); 78 } 79 if (slideIn.hasClass('has-animation')) { 80 self._getAnimationHandler(slideIn).start(); 81 } 82 } 83 84 self._startAutoChange = function() { 85 self._stopAutoChange(); 86 // Se comenta esta linea para que no arranque (Stop) 87 // self.autoChange = setInterval(self.goToNextSlide, autoChangeTimeMs); 88 } 89 90 self._stopAutoChange = function() { 91 if (self.autoChange) { 92 clearInterval(self.autoChange); 93 } 94 } 95 96 self.goToPrevSlide = function () { 97 var slideOut = $('.slide.active'), 98 slideIn = $('.slide.active').prev('.slide'); 99 self._goToSlide(slideOut, slideIn, false); 100 self._animationStopAndGo(slideOut, slideIn); 101 } 102 103 self.goToNextSlide = function () { 104 var sliderSize = self._getSliderSize(); 105 var activeSlider = self._getActiveSlide(); 106 var slideOut = $('.slide.active'); 107 slideIn = (activeSlider==sliderSize) ? slideIn = $('.slider .slides .slide').first() : $('.slide.active').next('.slide'); 108 self._goToSlide(slideOut, slideIn, true); 109 self._animationStopAndGo(slideOut, slideIn); 110 } 111 112 113 self.init = function (config) { 114 self.config = config; 115 var $slider = $(".slider"); 116 var $slides = $(".slide"); 117 118 // Set random slide 119 // var random = Math.floor(Math.random() * 1000); 120 //$slides.eq(random % $slides.length).addClass("active"); 121 $(".slide-0").addClass("active"); 122 var $activeSlide = $(".slide.active"); 123 124 // Initialize video slides
125 videoBackground.init(); 126 127 // Hide all slides apart from the active one 128 TweenMax.set($slides.not($activeSlide), { autoAlpha: 0 }); 129 self._setNavigation(); 130 131 config.prev.find('button').click(function (e) { 132 e.preventDefault(); 133 self.goToPrevSlide(); 134 }); 135 136 config.next.find('button').click(function (e) { 137 e.preventDefault(); 138 self.goToNextSlide(); 139 }); 140 141 $('.slide .inner-slide').hammer().on("swipeleft", function (e) { 142 console.info("Swipe left", e); 143 self.goToNextSlide(); 144 e.preventDefault(); 145 }); 146 $('.slide .inner-slide').hammer().on("swiperight", function (e) { 147 console.info("Swipe right", e); 148 e.preventDefault(); 149 self.goToPrevSlide(); 150 }); 151 152 var sliderContainer = $activeSlide.parents(".viewpart.slider"); 153 var hamburguer = $(".hamburger-topmenu"); 154 var sliderButtons = $('#slider-content-wrapper'); 155 var isInverseSlide = $activeSlide.hasClass("inverse"); 156 157 if (isInverseSlide) { 158 sliderButtons.addClass('inverse'); 159 sliderContainer.addClass('inverse'); 160 hamburguer.addClass('inverse'); 161 } 162 163 //Initialize animated slides 164 $(".slide.has-animation").each(function () { 165 self._getAnimationHandler($(this)).init(); 166 }); 167 if ($activeSlide.hasClass("has-animation")) { 168 self._getAnimationHandler($activeSlide).start(); 169 } 170 171 //Autochange slider 172 _startAutoChange(); 173 174 // Stop autochange when mouse enter slider box 175 $(".slider a, .slider button").mouseenter(function() { 176 self._stopAutoChange(); 177 }) 178 179 // Start autochange when mouse leave slider box 180 $(".slider a, .slider button").mouseleave(function() { 181 self._startAutoChange(); 182 }) 183 184 } 185 return { 186 init: self.init, 187 goToNextSlide: self.goToNextSlide, 188 goToPrevSlide: self.goToPrevSlide 189 } 190}(); 191 192var videoBackground = function () { 193 var self = this; 194 self.min_w = 300; 195 196 self.init = function () { 197 $(window).resize(function () { 198 $('.video-viewport').each(function () { 199 var viewport = $(this); 200 var video = viewport.find('video'); 201 var vid_w_orig = parseInt(video.attr('width')); 202 var vid_h_orig = parseInt(video.attr('height')); 203 resizeToCover(viewport, video, vid_w_orig, vid_h_orig); 204 }); 205 }); 206 $(window).trigger('resize'); 207 } 208 209 function resizeToCover(viewport, video, vid_w_orig, vid_h_orig) { 210 211 // set the video viewport to the window size 212 viewport.width($(window).width()); 213 viewport.height($(window).height()); 214 215 // use largest scale factor of horizontal/vertical 216 var scale_h = $(window).width() / vid_w_orig; 217 var scale_v = $(window).height() / vid_h_orig; 218 var scale = scale_h > scale_v ? scale_h : scale_v; 219 220 // don't allow scaled width < minimum video width 221 if (scale * vid_w_orig < self.min_w) { 222 scale = self.min_w / vid_w_orig; 223 } 224 225 // now scale the video 226 video.width(scale * vid_w_orig); 227 video.height(scale * vid_h_orig); 228 // and center it by scrolling the video viewport 229 viewport.scrollLeft((video.width() - $(window).width()) / 2); 230 viewport.scrollTop((video.height() - $(window).height()) / 2); 231 } 232 233 return { 234 init: self.init 235 } 236}(); 237 238// Avoid `console` errors in browsers that lack a console. 239(function () { 240 var method; 241 var noop = function () { }; 242 var methods = [ 243 'assert', 'clear', 'count', 'debug', 'dir', 'dirxml', 'error', 244 'exception', 'group', 'groupCollapsed', 'groupEnd', 'info', 'log', 245 'markTimeline', 'profile', 'profileEnd', 'table', 'time', 'timeEnd', 246 'timeline', 'timelineEnd', 'timeStamp', 'trace', 'warn' 247 ]; 248 var length = methods.length; 249 var console = (window.console = window.console || {}); 250 251 while (length--) { 252 method = methods[length]; 253 254 // Only stub undefined methods. 255 if (!console[method]) { 256 console[method] = noop; 257 } 258 } 259 260}());
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.