1/*! lightgallery - v1.2.14 - 2016-01-18 2 * http://sachinchoolur.github.io/lightGallery/ 3 * Copyright (c) 2016 Sachin N; Licensed Apache 2.0 */ 4!function( a, b, c, d ) { 5 "use strict"; 6 function e( b, d ) { 7 if ( this.el = b, this.$el = a( b ), this.s = a.extend( {}, f, d ), this.s.dynamic && "undefined" !== this.s.dynamicEl && this.s.dynamicEl.constructor === Array && !this.s.dynamicEl.length ) { 8 throw"When using dynamic mode, you must also define dynamicEl as an Array."; 9 } 10 return this.modules = {}, this.lGalleryOn = !1, this.lgBusy = !1, this.hideBartimeout = !1, this.isTouch = "ontouchstart" in c.documentElement, this.s.slideEndAnimatoin && (this.s.hideControlOnEnd = !1), this.s.dynamic ? this.$items = this.s.dynamicEl : "this" === this.s.selector ? this.$items = this.$el : "" !== this.s.selector ? this.s.selectWithin ? this.$items = a( this.s.selectWithin ).find( this.s.selector ) : this.$items = this.$el.find( a( this.s.selector ) ) : this.$items = this.$el.children(), this.$slide = "", this.$outer = "", this.init(), this 11 } 12 13 var f = { 14 mode: "lg-slide", 15 cssEasing: "ease", 16 easing: "linear", 17 speed: 600, 18 height: "100%", 19 width: "100%", 20 addClass: "", 21 startClass: "lg-start-zoom", 22 backdropDuration: 150, 23 hideBarsDelay: 6e3, 24 useLeft: !1, 25 closable: !0, 26 loop: !0, 27 escKey: !0, 28 keyPress: !0, 29 controls: !0, 30 slideEndAnimatoin: !0, 31 hideControlOnEnd: !1, 32 mousewheel: !0, 33 appendSubHtmlTo: ".lg-sub-html", 34 preload: 1, 35 showAfterLoad: !0, 36 selector: "", 37 selectWithin: "", 38 nextHtml: "", 39 prevHtml: "", 40 index: !1, 41 iframeMaxWidth: "100%", 42 download: !0, 43 counter: !0, 44 appendCounterTo: ".lg-toolbar", 45 swipeThreshold: 50, 46 enableSwipe: !0, 47 enableDrag: !0, 48 dynamic: !1, 49 dynamicEl: [], 50 galleryId: 1 51 }; 52 e.prototype.init = function() { 53 var c = this; 54 c.s.preload > c.$items.length && (c.s.preload = c.$items.length); 55 var d = b.location.hash; 56 d.indexOf( "lg=" + this.s.galleryId ) > 0 && (c.index = parseInt( d.split( "&slide=" )[ 1 ], 10 ), a( "body" ).addClass( "lg-from-hash" ), a( "body" ).hasClass( "lg-on" ) || setTimeout( function() { 57 c.build( c.index ), a( "body" ).addClass( "lg-on" ) 58 } )), c.s.dynamic ? (c.$el.trigger( "onBeforeOpen.lg" ), c.index = c.s.index || 0, a( "body" ).hasClass( "lg-on" ) || setTimeout( function() { 59 c.build( c.index ), a( "body" ).addClass( "lg-on" ) 60 } )) : c.$items.on( "click.lgcustom", function( b ) { 61 try { 62 b.preventDefault(), b.preventDefault() 63 } catch ( d ) { 64 b.returnValue = !1 65 } 66 c.$el.trigger( "onBeforeOpen.lg" ), c.index = c.s.index || c.$items.index( this ), a( "body" ).hasClass( "lg-on" ) || (c.build( c.index ), a( "body" ).addClass( "lg-on" )) 67 } ) 68 }, e.prototype.build = function( b ) { 69 var c = this; 70 c.structure(), a.each( a.fn.lightGallery.modules, function( b ) { 71 c.modules[ b ] = new a.fn.lightGallery.modules[ b ]( c.el ) 72 } ), c.slide( b, !1, !1 ), c.s.keyPress && c.keyPress(), c.$items.length > 1 && (c.arrow(), setTimeout( function() { 73 c.enableDrag(), c.enableSwipe() 74 }, 50 ), c.s.mousewheel && c.mousewheel()), c.counter(), c.closeGallery(), c.$el.trigger( "onAfterOpen.lg" ), c.$outer.on( "mousemove.lg click.lg touchstart.lg", function() { 75 c.$outer.removeClass( "lg-hide-items" ), clearTimeout( c.hideBartimeout ), c.hideBartimeout = setTimeout( function() { 76 c.$outer.addClass( "lg-hide-items" ) 77 }, c.s.hideBarsDelay ) 78 } ) 79 }, e.prototype.structure = function() { 80 var c, d = "", e = "", f = 0, g = "", h = this; 81 for ( a( "body" ).append( '<div class="lg-backdrop"></div>' ), a( ".lg-backdrop" ).css( "transition-duration", this.s.backdropDuration + "ms" ), f = 0; f < this.$items.length; f++ ) { 82 d += '<div class="lg-item"></div>'; 83 } 84 if ( this.s.controls && this.$items.length > 1 && (e = '<div class="lg-actions"><div class="lg-prev lg-icon">' + this.s.prevHtml + '</div><div class="lg-next lg-icon">' + this.s.nextHtml + "</div></div>"), ".lg-sub-html" === this.s.appendSubHtmlTo && (g = '<div class="lg-sub-html"></div>'), c = '<div class="lg-outer ' + this.s.addClass + " " + this.s.startClass + '"><div class="lg" style="width:' + this.s.width + "; height:" + this.s.height + '"><div class="lg-inner">' + d + '</div><div class="lg-toolbar group"><span class="lg-close lg-icon"></span></div>' + e + g + "</div></div>", a( "body" ).append( c ), this.$outer = a( ".lg-outer" ), this.$slide = this.$outer.find( ".lg-item" ), this.s.useLeft ? (this.$outer.addClass( "lg-use-left" ), this.s.mode = "lg-slide") : this.$outer.addClass( "lg-use-css3" ), h.setTop(), a( b ).on( "resize.lg orientationchange.lg", function() { 85 setTimeout( function() { 86 h.setTop() 87 }, 100 ) 88 } ), this.$slide.eq( this.index ).addClass( "lg-current" ), this.doCss() ? this.$outer.addClass( "lg-css3" ) : (this.$outer.addClass( "lg-css" ), this.s.speed = 0), this.$outer.addClass( this.s.mode ), this.s.enableDrag && this.$items.length > 1 && this.$outer.addClass( "lg-grab" ), this.s.showAfterLoad && this.$outer.addClass( "lg-show-after-load" ), this.doCss() ) { 89 var i = this.$outer.find( ".lg-inner" ); 90 i.css( "transition-timing-function", this.s.cssEasing ), i.css( "transition-duration", this.s.speed + "ms" ) 91 } 92 a( ".lg-backdrop" ).addClass( "in" ), setTimeout( function() { 93 h.$outer.addClass( "lg-visible" ) 94 }, this.s.backdropDuration ), this.s.download && this.$outer.find( ".lg-toolbar" ).append( '<a id="lg-download" target="_blank" download class="lg-download lg-icon"></a>' ), this.prevScrollTop = a( b ).scrollTop() 95 }, e.prototype.setTop = function() { 96 if ( "100%" !== this.s.height ) { 97 var c = a( b ).height(), d = (c - parseInt( this.s.height, 10 )) / 2, e = this.$outer.find( ".lg" ); 98 c >= parseInt( this.s.height, 10 ) ? e.css( "top", d + "px" ) : e.css( "top", "0px" ) 99 } 100 }, e.prototype.doCss = function() { 101 var a = function() { 102 var a = [ 103 "transition", 104 "MozTransition", 105 "WebkitTransition", 106 "OTransition", 107 "msTransition", 108 "KhtmlTransition" 109 ], b = c.documentElement, d = 0; 110 for ( d = 0; d < a.length; d++ ) { 111 if ( a[ d ] in b.style ) { 112 return !0 113 } 114 } 115 }; 116 return a() ? !0 : !1 117 }, e.prototype.isVideo = function( a, b ) { 118 var c; 119 if ( c = this.s.dynamic ? this.s.dynamicEl[ b ].html : this.$items.eq( b ).attr( "data-html" ), !a && c ) { 120 return { html5: !0 }; 121 } 122 var d = a.match( /\/\/(?:www\.)?youtu(?:\.be|be\.com)\/(?:watch\?v=|embed\/)?([a-z0-9\-\_\%]+)/i ), e = a.match( /\/\/(?:www\.)?vimeo.com\/([0-9a-z\-_]+)/i ), f = a.match( /\/\/(?:www\.)?dai.ly\/([0-9a-z\-_]+)/i ); 123 return d ? { youtube: d } : e ? { vimeo: e } : f ? { dailymotion: f } : void 0 124 }, e.prototype.counter = function() { 125 this.s.counter && a( this.s.appendCounterTo ).append( '<div id="lg-counter"><span id="lg-counter-current">' + (parseInt( this.index, 10 ) + 1) + '</span> / <span id="lg-counter-all">' + this.$items.length + "</span></div>" ) 126 }, e.prototype.addHtml = function( b ) { 127 var c, d = null; 128 if ( this.s.dynamic ? this.s.dynamicEl[ b ].subHtmlUrl ? c = this.s.dynamicEl[ b ].subHtmlUrl : d = this.s.dynamicEl[ b ].subHtml : this.$items.eq( b ).attr( "data-sub-html-url" ) ? c = this.$items.eq( b ).attr( "data-sub-html-url" ) : d = this.$items.eq( b ).attr( "data-sub-html" ), !c ) { 129 if ( "undefined" != typeof d && null !== d ) { 130 var e = d.substring( 0, 1 ); 131 d = "." === e || "#" === e ? a( d ).html() : d 132 } else { 133 d = ""; 134 } 135 } 136 ".lg-sub-html" === this.s.appendSubHtmlTo ? c ? this.$outer.find( this.s.appendSubHtmlTo ).load( c ) : this.$outer.find( this.s.appendSubHtmlTo ).html( d ) : c ? this.$slide.eq( b ).load( c ) : this.$slide.eq( b ).append( d ), "undefined" != typeof d && null !== d && ("" === d ? this.$outer.find( this.s.appendSubHtmlTo ).addClass( "lg-empty-html" ) : this.$outer.find( this.s.appendSubHtmlTo ).removeClass( "lg-empty-html" )), this.$el.trigger( "onAfterAppendSubHtml.lg", [ b ] ) 137 }, e.prototype.preload = function( a ) { 138 var b = 1, c = 1; 139 for ( b = 1; b <= this.s.preload && !(b >= this.$items.length - a); b++ ) { 140 this.loadContent( a + b, !1, 0 ); 141 } 142 for ( c = 1; c <= this.s.preload && !(0 > a - c); c++ ) { 143 this.loadContent( a - c, !1, 0 ) 144 } 145 }, e.prototype.loadContent = function( c, d, e ) { 146 var f, g, h, i, j, k, l = this, m = !1, n = function( c ) { 147 for ( var d = [], e = [], f = 0; f < c.length; f++ ) { 148 var h = c[ f ].split( " " ); 149 "" === h[ 0 ] && h.splice( 0, 1 ), e.push( h[ 0 ] ), d.push( h[ 1 ] ) 150 } 151 for ( var i = a( b ).width(), j = 0; j < d.length; j++ ) { 152 if ( parseInt( d[ j ], 10 ) > i ) { 153 g = e[ j ]; 154 break 155 } 156 } 157 }; 158 if ( l.s.dynamic ) { 159 if ( l.s.dynamicEl[ c ].poster && (m = !0, h = l.s.dynamicEl[ c ].poster), k = l.s.dynamicEl[ c ].html, g = l.s.dynamicEl[ c ].src, l.s.dynamicEl[ c ].responsive ) { 160 var o = l.s.dynamicEl[ c ].responsive.split( "," ); 161 n( o ) 162 } 163 i = l.s.dynamicEl[ c ].srcset, j = l.s.dynamicEl[ c ].sizes 164 } else { 165 if ( l.$items.eq( c ).attr( "data-poster" ) && (m = !0, h = l.$items.eq( c ).attr( "data-poster" )), k = l.$items.eq( c ).attr( "data-html" ), g = l.$items.eq( c ).attr( "href" ) || l.$items.eq( c ).attr( "data-src" ), l.$items.eq( c ).attr( "data-responsive" ) ) { 166 var p = l.$items.eq( c ).attr( "data-responsive" ).split( "," ); 167 n( p ) 168 } 169 i = l.$items.eq( c ).attr( "data-srcset" ), j = l.$items.eq( c ).attr( "data-sizes" ) 170 } 171 var q = !1; 172 l.s.dynamic ? l.s.dynamicEl[ c ].iframe && (q = !0) : "true" === l.$items.eq( c ).attr( "data-iframe" ) && (q = !0); 173 var r = l.isVideo( g, c ); 174 if ( !l.$slide.eq( c ).hasClass( "lg-loaded" ) ) { 175 if ( q ) { 176 l.$slide.eq( c ).prepend( '<div class="lg-video-cont" style="max-width:' + l.s.iframeMaxWidth + '"><div class="lg-video"><iframe class="lg-object" frameborder="0" src="' + g + '" allowfullscreen="true"></iframe></div></div>' ); 177 } else if ( m ) { 178 var s = ""; 179 s = r && r.youtube ? "lg-has-youtube" : r && r.vimeo ? "lg-has-vimeo" : "lg-has-html5", l.$slide.eq( c ).prepend( '<div class="lg-video-cont ' + s + ' "><div class="lg-video"><span class="lg-video-play"></span><img class="lg-object lg-has-poster" src="' + h + '" /></div></div>' ) 180 } else { 181 r ? (l.$slide.eq( c ).prepend( '<div class="lg-video-cont "><div class="lg-video"></div></div>' ), l.$el.trigger( "hasVideo.lg", [ 182 c, 183 g, 184 k 185 ] )) : l.$slide.eq( c ).prepend( '<div class="lg-img-wrap"><img class="lg-object lg-image" src="' + g + '" /></div>' ); 186 } 187 if ( l.$el.trigger( "onAferAppendSlide.lg", [ c ] ), f = l.$slide.eq( c ).find( ".lg-object" ), j && f.attr( "sizes", j ), i ) { 188 f.attr( "srcset", i ); 189 try { 190 picturefill( { elements: [ f[ 0 ] ] } ) 191 } catch ( t ) { 192 console.error( "Make sure you have included Picturefill version 2" ) 193 } 194 } 195 ".lg-sub-html" !== this.s.appendSubHtmlTo && l.addHtml( c ), l.$slide.eq( c ).addClass( "lg-loaded" ) 196 } 197 l.$slide.eq( c ).find( ".lg-object" ).on( "load.lg error.lg", function() { 198 var b = 0; 199 e && !a( "body" ).hasClass( "lg-from-hash" ) && (b = e), setTimeout( function() { 200 l.$slide.eq( c ).addClass( "lg-complete" ), l.$el.trigger( "onSlideItemLoad.lg", [ c, e || 0 ] ) 201 }, b ) 202 } ), r && r.html5 && !m && l.$slide.eq( c ).addClass( "lg-complete" ), d === !0 && (l.$slide.eq( c ).hasClass( "lg-complete" ) ? l.preload( c ) : l.$slide.eq( c ).find( ".lg-object" ).on( "load.lg error.lg", function() { 203 l.preload( c ) 204 } )) 205 }, e.prototype.slide = function( b, c, d ) { 206 var e = this.$outer.find( ".lg-current" ).index(), f = this; 207 if ( !f.lGalleryOn || e !== b ) {
208 var g = this.$slide.length, h = f.lGalleryOn ? this.s.speed : 0, i = !1, j = !1; 209 if ( !f.lgBusy ) { 210 if ( this.s.download ) { 211 var k; 212 k = f.s.dynamic ? f.s.dynamicEl[ b ].downloadUrl !== !1 && (f.s.dynamicEl[ b ].downloadUrl || f.s.dynamicEl[ b ].src) : "false" !== f.$items.eq( b ).attr( "data-download-url" ) && (f.$items.eq( b ).attr( "data-download-url" ) || f.$items.eq( b ).attr( "href" ) || f.$items.eq( b ).attr( "data-src" )), k ? (a( "#lg-download" ).attr( "href", k ), f.$outer.removeClass( "lg-hide-download" )) : f.$outer.addClass( "lg-hide-download" ) 213 } 214 if ( this.$el.trigger( "onBeforeSlide.lg", [ 215 e, 216 b, 217 c, 218 d 219 ] ), f.lgBusy = !0, clearTimeout( f.hideBartimeout ), ".lg-sub-html" === this.s.appendSubHtmlTo && setTimeout( function() { 220 f.addHtml( b ) 221 }, h ), this.arrowDisable( b ), c ) { 222 var l = b - 1, m = b + 1; 223 0 === b && e === g - 1 ? (m = 0, l = g - 1) : b === g - 1 && 0 === e && (m = 0, l = g - 1), this.$slide.removeClass( "lg-prev-slide lg-current lg-next-slide" ), f.$slide.eq( l ).addClass( "lg-prev-slide" ), f.$slide.eq( m ).addClass( "lg-next-slide" ), f.$slide.eq( b ).addClass( "lg-current" ) 224 } else { 225 f.$outer.addClass( "lg-no-trans" ), this.$slide.removeClass( "lg-prev-slide lg-next-slide" ), e > b ? (j = !0, 0 !== b || e !== g - 1 || d || (j = !1, i = !0)) : b > e && (i = !0, b !== g - 1 || 0 !== e || d || (j = !0, i = !1)), j ? (this.$slide.eq( b ).addClass( "lg-prev-slide" ), this.$slide.eq( e ).addClass( "lg-next-slide" )) : i && (this.$slide.eq( b ).addClass( "lg-next-slide" ), this.$slide.eq( e ).addClass( "lg-prev-slide" )), setTimeout( function() { 226 f.$slide.removeClass( "lg-current" ), f.$slide.eq( b ).addClass( "lg-current" ), f.$outer.removeClass( "lg-no-trans" ) 227 }, 50 ); 228 } 229 f.lGalleryOn ? (setTimeout( function() { 230 f.loadContent( b, !0, 0 ) 231 }, this.s.speed + 50 ), setTimeout( function() { 232 f.lgBusy = !1, f.$el.trigger( "onAfterSlide.lg", [ e, b, c, d ] ) 233 }, this.s.speed )) : (f.loadContent( b, !0, f.s.backdropDuration ), f.lgBusy = !1, f.$el.trigger( "onAfterSlide.lg", [ 234 e, 235 b, 236 c, 237 d 238 ] )), f.lGalleryOn = !0, this.s.counter && a( "#lg-counter-current" ).text( b + 1 ) 239 } 240 } 241 }, e.prototype.goToNextSlide = function( a ) { 242 var b = this; 243 b.lgBusy || (b.index + 1 < b.$slide.length ? (b.index++, b.$el.trigger( "onBeforeNextSlide.lg", [ b.index ] ), b.slide( b.index, a, !1 )) : b.s.loop ? (b.index = 0, b.$el.trigger( "onBeforeNextSlide.lg", [ b.index ] ), b.slide( b.index, a, !1 )) : b.s.slideEndAnimatoin && (b.$outer.addClass( "lg-right-end" ), setTimeout( function() { 244 b.$outer.removeClass( "lg-right-end" ) 245 }, 400 ))) 246 }, e.prototype.goToPrevSlide = function( a ) { 247 var b = this; 248 b.lgBusy || (b.index > 0 ? (b.index--, b.$el.trigger( "onBeforePrevSlide.lg", [ 249 b.index, 250 a 251 ] ), b.slide( b.index, a, !1 )) : b.s.loop ? (b.index = b.$items.length - 1, b.$el.trigger( "onBeforePrevSlide.lg", [ 252 b.index, 253 a 254 ] ), b.slide( b.index, a, !1 )) : b.s.slideEndAnimatoin && (b.$outer.addClass( "lg-left-end" ), setTimeout( function() { 255 b.$outer.removeClass( "lg-left-end" ) 256 }, 400 ))) 257 }, e.prototype.keyPress = function() { 258 var c = this; 259 this.$items.length > 1 && a( b ).on( "keyup.lg", function( a ) { 260 c.$items.length > 1 && (37 === a.keyCode && (a.preventDefault(), c.goToPrevSlide()), 39 === a.keyCode && (a.preventDefault(), c.goToNextSlide())) 261 } ), a( b ).on( "keydown.lg", function( a ) { 262 c.s.escKey === !0 && 27 === a.keyCode && (a.preventDefault(), c.$outer.hasClass( "lg-thumb-open" ) ? c.$outer.removeClass( "lg-thumb-open" ) : c.destroy()) 263 } ) 264 }, e.prototype.arrow = function() { 265 var a = this; 266 this.$outer.find( ".lg-prev" ).on( "click.lg", function() { 267 a.goToPrevSlide() 268 } ), this.$outer.find( ".lg-next" ).on( "click.lg", function() { 269 a.goToNextSlide() 270 } ) 271 }, e.prototype.arrowDisable = function( a ) { 272 !this.s.loop && this.s.hideControlOnEnd && (a + 1 < this.$slide.length ? this.$outer.find( ".lg-next" ).removeAttr( "disabled" ).removeClass( "disabled" ) : this.$outer.find( ".lg-next" ).attr( "disabled", "disabled" ).addClass( "disabled" ), a > 0 ? this.$outer.find( ".lg-prev" ).removeAttr( "disabled" ).removeClass( "disabled" ) : this.$outer.find( ".lg-prev" ).attr( "disabled", "disabled" ).addClass( "disabled" )) 273 }, e.prototype.setTranslate = function( a, b, c ) { 274 this.s.useLeft ? a.css( "left", b ) : a.css( { transform: "translate3d(" + b + "px, " + c + "px, 0px)" } ) 275 }, e.prototype.touchMove = function( b, c ) { 276 var d = c - b; 277 Math.abs( d ) > 15 && (this.$outer.addClass( "lg-dragging" ), this.setTranslate( this.$slide.eq( this.index ), d, 0 ), this.setTranslate( a( ".lg-prev-slide" ), -this.$slide.eq( this.index ).width() + d, 0 ), this.setTranslate( a( ".lg-next-slide" ), this.$slide.eq( this.index ).width() + d, 0 )) 278 }, e.prototype.touchEnd = function( a ) { 279 var b = this; 280 "lg-slide" !== b.s.mode && b.$outer.addClass( "lg-slide" ), this.$slide.not( ".lg-current, .lg-prev-slide, .lg-next-slide" ).css( "opacity", "0" ), setTimeout( function() { 281 b.$outer.removeClass( "lg-dragging" ), 0 > a && Math.abs( a ) > b.s.swipeThreshold ? b.goToNextSlide( !0 ) : a > 0 && Math.abs( a ) > b.s.swipeThreshold ? b.goToPrevSlide( !0 ) : Math.abs( a ) < 5 && b.$el.trigger( "onSlideClick.lg" ), b.$slide.removeAttr( "style" ) 282 } ), setTimeout( function() { 283 b.$outer.hasClass( "lg-dragging" ) || "lg-slide" === b.s.mode || b.$outer.removeClass( "lg-slide" ) 284 }, b.s.speed + 100 ) 285 }, e.prototype.enableSwipe = function() { 286 var a = this, b = 0, c = 0, d = !1; 287 a.s.enableSwipe && a.isTouch && a.doCss() && (a.$slide.on( "touchstart.lg", function( c ) { 288 a.$outer.hasClass( "lg-zoomed" ) || a.lgBusy || (c.preventDefault(), a.manageSwipeClass(), b = c.originalEvent.targetTouches[ 0 ].pageX) 289 } ), a.$slide.on( "touchmove.lg", function( e ) { 290 a.$outer.hasClass( "lg-zoomed" ) || (e.preventDefault(), c = e.originalEvent.targetTouches[ 0 ].pageX, a.touchMove( b, c ), d = !0) 291 } ), a.$slide.on( "touchend.lg", function() { 292 a.$outer.hasClass( "lg-zoomed" ) || (d ? (d = !1, a.touchEnd( c - b )) : a.$el.trigger( "onSlideClick.lg" )) 293 } )) 294 }, e.prototype.enableDrag = function() { 295 var c = this, d = 0, e = 0, f = !1, g = !1; 296 c.s.enableDrag && !c.isTouch && c.doCss() && (c.$slide.on( "mousedown.lg", function( b ) { 297 c.$outer.hasClass( "lg-zoomed" ) || (a( b.target ).hasClass( "lg-object" ) || a( b.target ).hasClass( "lg-video-play" )) && (b.preventDefault(), c.lgBusy || (c.manageSwipeClass(), d = b.pageX, f = !0, c.$outer.scrollLeft += 1, c.$outer.scrollLeft -= 1, c.$outer.removeClass( "lg-grab" ).addClass( "lg-grabbing" ), c.$el.trigger( "onDragstart.lg" ))) 298 } ), a( b ).on( "mousemove.lg", function( a ) { 299 f && (g = !0, e = a.pageX, c.touchMove( d, e ), c.$el.trigger( "onDragmove.lg" )) 300 } ), a( b ).on( "mouseup.lg", function( b ) { 301 g ? (g = !1, c.touchEnd( e - d ), c.$el.trigger( "onDragend.lg" )) : (a( b.target ).hasClass( "lg-object" ) || a( b.target ).hasClass( "lg-video-play" )) && c.$el.trigger( "onSlideClick.lg" ), f && (f = !1, c.$outer.removeClass( "lg-grabbing" ).addClass( "lg-grab" )) 302 } )) 303 }, e.prototype.manageSwipeClass = function() { 304 var a = this.index + 1, b = this.index - 1, c = this.$slide.length; 305 this.s.loop && (0 === this.index ? b = c - 1 : this.index === c - 1 && (a = 0)), this.$slide.removeClass( "lg-next-slide lg-prev-slide" ), b > -1 && this.$slide.eq( b ).addClass( "lg-prev-slide" ), this.$slide.eq( a ).addClass( "lg-next-slide" ) 306 }, e.prototype.mousewheel = function() { 307 var a = this; 308 a.$outer.on( "mousewheel.lg", function( b ) { 309 b.deltaY && (b.deltaY > 0 ? a.goToPrevSlide() : a.goToNextSlide(), b.preventDefault()) 310 } ) 311 }, e.prototype.closeGallery = function() { 312 var b = this, c = !1; 313 this.$outer.find( ".lg-close" ).on( "click.lg", function() { 314 b.destroy() 315 } ), b.s.closable && (b.$outer.on( "mousedown.lg", function( b ) { 316 c = a( b.target ).is( ".lg-outer" ) || a( b.target ).is( ".lg-item " ) || a( b.target ).is( ".lg-img-wrap" ) ? !0 : !1 317 } ), b.$outer.on( "mouseup.lg", function( d ) { 318 (a( d.target ).is( ".lg-outer" ) || a( d.target ).is( ".lg-item " ) || a( d.target ).is( ".lg-img-wrap" ) && c) && (b.$outer.hasClass( "lg-dragging" ) || b.destroy()) 319 } )) 320 }, e.prototype.destroy = function( c ) { 321 var d = this; 322 c || d.$el.trigger( "onBeforeClose.lg" ), a( b ).scrollTop( d.prevScrollTop ), c && (d.s.dynamic || this.$items.off( "click.lg click.lgcustom" ), a.removeData( d.el, "lightGallery" )), this.$el.off( ".lg.tm" ), a.each( a.fn.lightGallery.modules, function( a ) { 323 d.modules[ a ] && d.modules[ a ].destroy() 324 } ), this.lGalleryOn = !1, clearTimeout( d.hideBartimeout ), this.hideBartimeout = !1, a( b ).off( ".lg" ), a( "body" ).removeClass( "lg-on lg-from-hash" ), d.$outer && d.$outer.removeClass( "lg-visible" ), a( ".lg-backdrop" ).removeClass( "in" ), setTimeout( function() { 325 d.$outer && d.$outer.remove(), a( ".lg-backdrop" ).remove(), c || d.$el.trigger( "onCloseAfter.lg" ) 326 }, d.s.backdropDuration + 50 ) 327 }, a.fn.lightGallery = function( b ) { 328 return this.each( function() { 329 if ( a.data( this, "lightGallery" ) ) { 330 try { 331 a( this ).data( "lightGallery" ).init() 332 } catch ( c ) { 333 console.error( "lightGallery has not initiated properly" ) 334 } 335 } else { 336 a.data( this, "lightGallery", new e( this, b ) ) 337 } 338 } ) 339 }, a.fn.lightGallery.modules = {} 340}( jQuery, window, document ), function( a, b, c, d ) { 341 "use strict"; 342 var e = { 343 autoplay: !1, 344 pause: 5e3, 345 progressBar: !0, 346 fourceAutoplay: !1, 347 autoplayControls: !0, 348 appendAutoplayControlsTo: ".lg-toolbar" 349 }, f = function( b ) { 350 return this.core = a( b ).data( "lightGallery" ), this.$el = a( b ), this.core.$items.length < 2 ? !1 : (this.core.s = a.extend( {}, e, this.core.s ), this.interval = !1, this.fromAuto = !0, this.canceledOnTouch = !1, this.fourceAutoplayTemp = this.core.s.fourceAutoplay, this.core.doCss() || (this.core.s.progressBar = !1), this.init(), this) 351 }; 352 f.prototype.init = function() { 353 var a = this; 354 a.core.s.autoplayControls && a.controls(), a.core.s.progressBar && a.core.$outer.find( ".lg" ).append( '<div class="lg-progress-bar"><div class="lg-progress"></div></div>' ), a.progress(), a.core.s.autoplay && a.startlAuto(), a.$el.on( "onDragstart.lg.tm touchstart.lg.tm", function() { 355 a.interval && (a.cancelAuto(), a.canceledOnTouch = !0) 356 } ), a.$el.on( "onDragend.lg.tm touchend.lg.tm onSlideClick.lg.tm", function() { 357 !a.interval && a.canceledOnTouch && (a.startlAuto(), a.canceledOnTouch = !1) 358 } ) 359 }, f.prototype.progress = function() { 360 var a, b, c = this; 361 c.$el.on( "onBeforeSlide.lg.tm", function() { 362 c.core.s.progressBar && c.fromAuto && (a = c.core.$outer.find( ".lg-progress-bar" ), b = c.core.$outer.find( ".lg-progress" ), c.interval && (b.removeAttr( "style" ), a.removeClass( "lg-start" ), setTimeout( function() { 363 b.css( "transition", "width " + (c.core.s.speed + c.core.s.pause) + "ms ease 0s" ), a.addClass( "lg-start" ) 364 }, 20 ))), c.fromAuto || c.core.s.fourceAutoplay || c.cancelAuto(), c.fromAuto = !1 365 } ) 366 }, f.prototype.controls = function() { 367 var b = this, c = '<span class="lg-autoplay-button lg-icon"></span>'; 368 a( this.core.s.appendAutoplayControlsTo ).append( c ), b.core.$outer.find( ".lg-autoplay-button" ).on( "click.lg", function() { 369 a( b.core.$outer ).hasClass( "lg-show-autoplay" ) ? (b.cancelAuto(), b.core.s.fourceAutoplay = !1) : b.interval || (b.startlAuto(), b.core.s.fourceAutoplay = b.fourceAutoplayTemp) 370 } ) 371 }, f.prototype.startlAuto = function() { 372 var a = this; 373 a.core.$outer.find( ".lg-progress" ).css( "transition", "width " + (a.core.s.speed + a.core.s.pause) + "ms ease 0s" ), a.core.$outer.addClass( "lg-show-autoplay" ), a.core.$outer.find( ".lg-progress-bar" ).addClass( "lg-start" ), a.interval = setInterval( function() {
374 a.core.index + 1 < a.core.$items.length ? a.core.index = a.core.index : a.core.index = -1, a.core.index++, a.fromAuto = !0, a.core.slide( a.core.index, !1, !1 ) 375 }, a.core.s.speed + a.core.s.pause ) 376 }, f.prototype.cancelAuto = function() { 377 clearInterval( this.interval ), this.interval = !1, this.core.$outer.find( ".lg-progress" ).removeAttr( "style" ), this.core.$outer.removeClass( "lg-show-autoplay" ), this.core.$outer.find( ".lg-progress-bar" ).removeClass( "lg-start" ) 378 }, f.prototype.destroy = function() { 379 this.cancelAuto(), this.core.$outer.find( ".lg-progress-bar" ).remove() 380 }, a.fn.lightGallery.modules.autoplay = f 381}( jQuery, window, document ), function( a, b, c, d ) { 382 "use strict"; 383 var e = { fullScreen: !0 }, f = function( b ) { 384 return this.core = a( b ).data( "lightGallery" ), this.$el = a( b ), this.core.s = a.extend( {}, e, this.core.s ), this.init(), this 385 }; 386 f.prototype.init = function() { 387 var a = ""; 388 if ( this.core.s.fullScreen ) { 389 if ( !(c.fullscreenEnabled || c.webkitFullscreenEnabled || c.mozFullScreenEnabled || c.msFullscreenEnabled) ) { 390 return; 391 } 392 a = '<span class="lg-fullscreen lg-icon"></span>', this.core.$outer.find( ".lg-toolbar" ).append( a ), this.fullScreen() 393 } 394 }, f.prototype.requestFullscreen = function() { 395 var a = c.documentElement; 396 a.requestFullscreen ? a.requestFullscreen() : a.msRequestFullscreen ? a.msRequestFullscreen() : a.mozRequestFullScreen ? a.mozRequestFullScreen() : a.webkitRequestFullscreen && a.webkitRequestFullscreen() 397 }, f.prototype.exitFullscreen = function() { 398 c.exitFullscreen ? c.exitFullscreen() : c.msExitFullscreen ? c.msExitFullscreen() : c.moz
398CancelFullScreen ? c.mozCancelFullScreen() : c.webkitExitFullscreen && c.webkitExitFullscreen() 399 }, f.prototype.fullScreen = function() { 400 var b = this; 401 a( c ).on( "fullscreenchange.lg webkitfullscreenchange.lg mozfullscreenchange.lg MSFullscreenChange.lg", function() { 402 b.core.$outer.toggleClass( "lg-fullscreen-on" ) 403 } ), this.core.$outer.find( ".lg-fullscreen" ).on( "click.lg", function() { 404 c.fullscreenElement || c.mozFullScreenElement || c.webkitFullscreenElement || c.msFullscreenElement ? b.exitFullscreen() : b.requestFullscreen() 405 } ) 406 }, f.prototype.destroy = function() { 407 this.exitFullscreen(), a( c ).off( "fullscreenchange.lg webkitfullscreenchange.lg mozfullscreenchange.lg MSFullscreenChange.lg" ) 408 }, a.fn.lightGallery.modules.fullscreen = f 409}( jQuery, window, document ), function( a, b, c, d ) { 410 "use strict"; 411 var e = { pager: !1 }, f = function( b ) { 412 return this.core = a( b ).data( "lightGallery" ), this.$el = a( b ), this.core.s = a.extend( {}, e, this.core.s ), this.core.s.pager && this.core.$items.length > 1 && this.init(), this 413 }; 414 f.prototype.init = function() { 415 var b, c, d, e = this, f = ""; 416 if ( e.core.$outer.find( ".lg" ).append( '<div class="lg-pager-outer"></div>' ), e.core.s.dynamic ) { 417 for ( var g = 0; g < e.core.s.dynamicEl.length; g++ ) { 418 f += '<span class="lg-pager-cont"> <span class="lg-pager"></span><div class="lg-pager-thumb-cont"><span class="lg-caret"></span> <img src="' + e.core.s.dynamicEl[ g ].thumb + '" /></div></span>'; 419 } 420 } else { 421 e.core.$items.each( function() { 422 f += e.core.s.exThumbImage ? '<span class="lg-pager-cont"> <span class="lg-pager"></span><div class="lg-pager-thumb-cont"><span class="lg-caret"></span> <img src="' + a( this ).attr( e.core.s.exThumbImage ) + '" /></div></span>' : '<span class="lg-pager-cont"> <span class="lg-pager"></span><div class="lg-pager-thumb-cont"><span class="lg-caret"></span> <img src="' + a( this ).find( "img" ).attr( "src" ) + '" /></div></span>' 423 } ); 424 } 425 c = e.core.$outer.find( ".lg-pager-outer" ), c.html( f ), b = e.core.$outer.find( ".lg-pager-cont" ), b.on( "click.lg touchend.lg", function() { 426 var b = a( this ); 427 e.core.index = b.index(), e.core.slide( e.core.index, !1, !1 ) 428 } ), c.on( "mouseover.lg", function() { 429 clearTimeout( d ), c.addClass( "lg-pager-hover" ) 430 } ), c.on( "mouseout.lg", function() { 431 d = setTimeout( function() { 432 c.removeClass( "lg-pager-hover" ) 433 } ) 434 } ), e.core.$el.on( "onBeforeSlide.lg.tm", function( a, c, d ) { 435 b.removeClass( "lg-pager-active" ), b.eq( d ).addClass( "lg-pager-active" ) 436 } ) 437 }, f.prototype.destroy = function() { 438 }, a.fn.lightGallery.modules.pager = f 439}( jQuery, window, document ), function( a, b, c, d ) { 440 "use strict"; 441 var e = { 442 thumbnail: !0, 443 animateThumb: !0, 444 currentPagerPosition: "middle", 445 thumbWidth: 100, 446 thumbContHeight: 100, 447 thumbMargin: 5, 448 exThumbImage: !1, 449 showThumbByDefault: !0, 450 toogleThumb: !0, 451 pullCaptionUp: !0, 452 enableThumbDrag: !0, 453 enableThumbSwipe: !0, 454 swipeThreshold: 50, 455 loadYoutubeThumbnail: !0, 456 youtubeThumbSize: 1, 457 loadVimeoThumbnail: !0, 458 vimeoThumbSize: "thumbnail_small", 459 loadDailymotionThumbnail: !0 460 }, f = function( b ) { 461 return this.core = a( b ).data( "lightGallery" ), this.core.s = a.extend( {}, e, this.core.s ), this.$el = a( b ), this.$thumbOuter = null, this.thumbOuterWidth = 0, this.thumbTotalWidth = this.core.$items.length * (this.core.s.thumbWidth + this.core.s.thumbMargin), this.thumbIndex = this.core.index, this.left = 0, this.init(), this 462 }; 463 f.prototype.init = function() { 464 var a = this; 465 this.core.s.thumbnail && this.core.$items.length > 1 && (this.core.s.showThumbByDefault && setTimeout( function() { 466 a.core.$outer.addClass( "lg-thumb-open" ) 467 }, 700 ), this.core.s.pullCaptionUp && this.core.$outer.addClass( "lg-pull-caption-up" ), this.build(), this.core.s.animateThumb ? (this.core.s.enableThumbDrag && !this.core.isTouch && this.core.doCss() && this.enableThumbDrag(), this.core.s.enableThumbSwipe && this.core.isTouch && this.core.doCss() && this.enableThumbSwipe(), this.thumbClickable = !1) : this.thumbClickable = !0, this.toogle(), this.thumbkeyPress()) 468 }, f.prototype.build = function() { 469 function c( a, b, c ) { 470 var d, h = e.core.isVideo( a, c ) || {}, i = ""; 471 h.youtube || h.vimeo || h.dailymotion ? h.youtube ? d = e.core.s.loadYoutubeThumbn
vendor: 9,005 bytes, lines 471-595
471ail ? "//img.youtube.com/vi/" + h.youtube[ 1 ] + "/" + e.core.s.youtubeThumbSize + ".jpg" : b : h.vimeo ? e.core.s.loadVimeoThumbnail ? (d = "//i.vimeocdn.com/video/error_" + g + ".jpg", i = h.vimeo[ 1 ]) : d = b : h.dailymotion && (d = e.core.s.loadDailymotionThumbnail ? "//www.dailymotion.com/thumbnail/video/" + h.dailymotion[ 1 ] : b) : d = b, f += '<div data-vimeo-id="' + i + '" class="lg-thumb-item" style="width:' + e.core.s.thumbWidth + "px; margin-right: " + e.core.s.thumbMargin + 'px"><img src="' + d + '" /></div>', i = "" 472 } 473 474 var d, e = this, f = "", g = "", h = '<div class="lg-thumb-outer"><div class="lg-thumb group"></div></div>'; 475 switch ( this.core.s.vimeoThumbSize ) { 476 case"thumbnail_large": 477 g = "640"; 478 break; 479 case"thumbnail_medium": 480 g = "200x150"; 481 break; 482 case"thumbnail_small": 483 g = "100x75" 484 } 485 if ( e.core.$outer.addClass( "lg-has-thumb" ), e.core.$outer.find( ".lg" ).append( h ), e.$thumbOuter = e.core.$outer.find( ".lg-thumb-outer" ), e.thumbOuterWidth = e.$thumbOuter.width(), e.core.s.animateThumb && e.core.$outer.find( ".lg-thumb" ).css( { 486 width: e.thumbTotalWidth + "px", 487 position: "relative" 488 } ), this.core.s.animateThumb && e.$thumbOuter.css( "height", e.core.s.thumbContHeight + "px" ), e.core.s.dynamic ) { 489 for ( var i = 0; i < e.core.s.dynamicEl.length; i++ ) { 490 c( e.core.s.dynamicEl[ i ].src, e.core.s.dynamicEl[ i ].thumb, i ); 491 } 492 } else { 493 e.core.$items.each( function( b ) { 494 e.core.s.exThumbImage ? c( a( this ).attr( "href" ) || a( this ).attr( "data-src" ), a( this ).attr( e.core.s.exThumbImage ), b ) : c( a( this ).attr( "href" ) || a( this ).attr( "data-src" ), a( this ).find( "img" ).attr( "src" ), b ) 495 } ); 496 } 497 e.core.$outer.find( ".lg-thumb" ).html( f ), d = e.core.$outer.find( ".lg-thumb-item" ), d.each( function() { 498 var b = a( this ), c = b.attr( "data-vimeo-id" ); 499 c && a.getJSON( "http://www.vimeo.com/api/v2/video/" + c + ".json?callback=?", { format: "json" }, function( a ) { 500 b.find( "img" ).attr( "src", a[ 0 ][ e.core.s.vimeoThumbSize ] ) 501 } ) 502 } ), d.eq( e.core.index ).addClass( "active" ), e.core.$el.on( "onBeforeSlide.lg.tm", function() { 503 d.removeClass( "active" ), d.eq( e.core.index ).addClass( "active" ) 504 } ), d.on( "click.lg touchend.lg", function() { 505 var b = a( this ); 506 setTimeout( function() { 507 (e.thumbClickable && !e.core.lgBusy || !e.core.doCss()) && (e.core.index = b.index(), e.core.slide( e.core.index, !1, !0 )) 508 }, 50 ) 509 } ), e.core.$el.on( "onBeforeSlide.lg.tm", function() { 510 e.animateThumb( e.core.index ) 511 } ), a( b ).on( "resize.lg.thumb orientationchange.lg.thumb", function() { 512 setTimeout( function() { 513 e.animateThumb( e.core.index ), e.thumbOuterWidth = e.$thumbOuter.width() 514 }, 200 ) 515 } ) 516 }, f.prototype.setTranslate = function( a ) { 517 this.core.$outer.find( ".lg-thumb" ).css( { transform: "translate3d(-" + a + "px, 0px, 0px)" } ) 518 }, f.prototype.animateThumb = function( a ) { 519 var b = this.core.$outer.find( ".lg-thumb" ); 520 if ( this.core.s.animateThumb ) { 521 var c; 522 switch ( this.core.s.currentPagerPosition ) { 523 case"left": 524 c = 0; 525 break; 526 case"middle": 527 c = this.thumbOuterWidth / 2 - this.core.s.thumbWidth / 2; 528 break; 529 case"right": 530 c = this.thumbOuterWidth - this.core.s.thumbWidth 531 } 532 this.left = (this.core.s.thumbWidth + this.core.s.thumbMargin) * a - 1 - c, this.left > this.thumbTotalWidth - this.thumbOuterWidth && (this.left = this.thumbTotalWidth - this.thumbOuterWidth), this.left < 0 && (this.left = 0), this.core.lGalleryOn ? (b.hasClass( "on" ) || this.core.$outer.find( ".lg-thumb" ).css( "transition-duration", this.core.s.speed + "ms" ), this.core.doCss() || b.animate( { left: -this.left + "px" }, this.core.s.speed )) : this.core.doCss() || b.css( "left", -this.left + "px" ), this.setTranslate( this.left ) 533 } 534 }, f.prototype.enableThumbDrag = function() { 535 var c = this, d = 0, e = 0, f = !1, g = !1, h = 0; 536 c.$thumbOuter.addClass( "lg-grab" ), c.core.$outer.find( ".lg-thumb" ).on( "mousedown.lg.thumb", function( a ) { 537 c.thumbTotalWidth > c.thumbOuterWidth && (a.preventDefault(), d = a.pageX, f = !0, c.core.$outer.scrollLeft += 1, c.core.$outer.scrollLeft -= 1, c.thumbClickable = !1, c.$thumbOuter.removeClass( "lg-grab" ).addClass( "lg-grabbing" )) 538 } ), a( b ).on( "mousemove.lg.thumb", function( a ) { 539 f && (h = c.left, g = !0, e = a.pageX, c.$thumbOuter.addClass( "lg-dragging" ), h -= e - d, h > c.thumbTotalWidth - c.thumbOuterWidth && (h = c.thumbTotalWidth - c.thumbOuterWidth), 0 > h && (h = 0), c.setTranslate( h )) 540 } ), a( b ).on( "mouseup.lg.thumb", function() { 541 g ? (g = !1, c.$thumbOuter.removeClass( "lg-dragging" ), c.left = h, Math.abs( e - d ) < c.core.s.swipeThreshold && (c.thumbClickable = !0)) : c.thumbClickable = !0, f && (f = !1, c.$thumbOuter.removeClass( "lg-grabbing" ).addClass( "lg-grab" )) 542 } ) 543 }, f.prototype.enableThumbSwipe = function() { 544 var a = this, b = 0, c = 0, d = !1, e = 0; 545 a.core.$outer.find( ".lg-thumb" ).on( "touchstart.lg", function( c ) { 546 a.thumbTotalWidth > a.thumbOuterWidth && (c.preventDefault(), b = c.originalEvent.targetTouches[ 0 ].pageX, a.thumbClickable = !1) 547 } ), a.core.$outer.find( ".lg-thumb" ).on( "touchmove.lg", function( f ) { 548 a.thumbTotalWidth > a.thumbOuterWidth && (f.preventDefault(), c = f.originalEvent.targetTouches[ 0 ].pageX, d = !0, a.$thumbOuter.addClass( "lg-dragging" ), e = a.left, e -= c - b, e > a.thumbTotalWidth - a.thumbOuterWidth && (e = a.thumbTotalWidth - a.thumbOuterWidth), 0 > e && (e = 0), a.setTranslate( e )) 549 } ), a.core.$outer.find( ".lg-thumb" ).on( "touchend.lg", function() { 550 a.thumbTotalWidth > a.thumbOuterWidth && d ? (d = !1, a.$thumbOuter.removeClass( "lg-dragging" ), Math.abs( c - b ) < a.core.s.swipeThreshold && (a.thumbClickable = !0), a.left = e) : a.thumbClickable = !0 551 } ) 552 }, f.prototype.toogle = function() { 553 var a = this; 554 a.core.s.toogleThumb && (a.core.$outer.addClass( "lg-can-toggle" ), a.$thumbOuter.append( '<span class="lg-toogle-thumb lg-icon"></span>' ), a.core.$outer.find( ".lg-toogle-thumb" ).on( "click.lg", function() { 555 a.core.$outer.toggleClass( "lg-thumb-open" ) 556 } )) 557 }, f.prototype.thumbkeyPress = function() { 558 var c = this; 559 a( b ).on( "keydown.lg.thumb", function( a ) { 560 38 === a.keyCode ? (a.preventDefault(), c.core.$outer.addClass( "lg-thumb-open" )) : 40 === a.keyCode && (a.preventDefault(), c.core.$outer.removeClass( "lg-thumb-open" )) 561 } ) 562 }, f.prototype.destroy = function() { 563 this.core.s.thumbnail && this.core.$items.length > 1 && (a( b ).off( "resize.lg.thumb orientationchange.lg.thumb keydown.lg.thumb" ), this.$thumbOuter.remove(), this.core.$outer.removeClass( "lg-has-thumb" )) 564 }, a.fn.lightGallery.modules.Thumbnail = f 565}( jQuery, window, document ), function( a, b, c, d ) { 566 "use strict"; 567 var e = { 568 videoMaxWidth: "855px", 569 youtubePlayerParams: !1, 570 vimeoPlayerParams: !1, 571 dailymotionPlayerParams: !1, 572 videojs: !1 573 }, f = function( b ) { 574 return this.core = a( b ).data( "lightGallery" ), this.$el = a( b ), this.core.s = a.extend( {}, e, this.core.s ), this.videoLoaded = !1, this.init(), this 575 }; 576 f.prototype.init = function() { 577 var b = this; 578 b.core.$el.on( "hasVideo.lg.tm", function( a, c, d, e ) { 579 if ( b.core.$slide.eq( c ).find( ".lg-video" ).append( b.loadVideo( d, "lg-object", !0, c, e ) ), e ) { 580 if ( b.core.s.videojs ) { 581 try { 582 videojs( b.core.$slide.eq( c ).find( ".lg-html5" ).get( 0 ), {}, function() { 583 b.videoLoaded || this.play() 584 } ) 585 } catch ( f ) { 586 console.error( "Make sure you have included videojs" ) 587 } 588 } else { 589 b.core.$slide.eq( c ).find( ".lg-html5" ).get( 0 ).play() 590 } 591 } 592 } ), b.core.$el.on( "onAferAppendSlide.lg.tm", function( a, c ) { 593 b.core.$slide.eq( c ).find( ".lg-video-cont" ).css( "max-width", b.core.s.videoMaxWidth ), b.videoLoaded = !0 594 } ); 595 var c = function( a ) {
596 if ( a.find( ".lg-object" ).hasClass( "lg-has-poster" ) && a.find( ".lg-object" ).is( ":visible" ) ) { 597 if ( a.hasClass( "lg-has-video" ) ) { 598 var c = a.find( ".lg-youtube" ).get( 0 ), d = a.find( ".lg-vimeo" ).get( 0 ), e = a.find( ".lg-dailymotion" ).get( 0 ), f = a.find( ".lg-html5" ).get( 0 ); 599 if ( c ) { 600 c.contentWindow.postMessage( '{"event":"command","func":"playVideo","args":""}', "*" ); 601 } else if ( d ) { 602 try { 603 $f( d ).api( "play" ) 604 } catch ( g ) { 605 console.error( "Make sure you have included froogaloop2 js" ) 606 } 607 } else if ( e ) { 608 e.contentWindow.postMessage( "play", "*" ); 609 } else if ( f ) { 610 if ( b.core.s.videojs ) { 611 try { 612 videojs( f ).play() 613 } catch ( g ) { 614 console.error( "Make sure you have included videojs" ) 615 } 616 } else { 617 f.play(); 618 } 619 } 620 a.addClass( "lg-video-palying" ) 621 } else { 622 a.addClass( "lg-video-palying lg-has-video" ); 623 var h, i, j = function( c, d ) { 624 if ( a.find( ".lg-video" ).append( b.loadVideo( c, "", !1, b.core.index, d ) ), d ) { 625 if ( b.core.s.videojs ) { 626 try { 627 videojs( b.core.$slide.eq( b.core.index ).find( ".lg-html5" ).get( 0 ), {}, function() { 628 this.play() 629 } ) 630 } catch ( e ) { 631 console.error( "Make sure you have included videojs" ); 632 } 633 } else { 634 b.core.$slide.eq( b.core.index ).find( ".lg-html5" ).get( 0 ).play() 635 } 636 } 637 }; 638 b.core.s.dynamic ? (h = b.core.s.dynamicEl[ b.core.index ].src, i = b.core.s.dynamicEl[ b.core.index ].html, j( h, i )) : (h = b.core.$items.eq( b.core.index ).attr( "href" ) || b.core.$items.eq( b.core.index ).attr( "data-src" ), i = b.core.$items.eq( b.core.index ).attr( "data-html" ), j( h, i )); 639 var k = a.find( ".lg-object" ); 640 a.find( ".lg-video" ).append( k ), a.find( ".lg-video-object" ).hasClass( "lg-html5" ) || (a.removeClass( "lg-complete" ), a.find( ".lg-video-object" ).on( "load.lg error.lg", function() { 641 a.addClass( "lg-complete" ) 642 } )) 643 } 644 } 645 }; 646 b.core.doCss() && b.core.$items.length > 1 && (b.core.s.enableSwipe && b.core.isTouch || b.core.s.enableDrag && !b.core.isTouch) ? b.core.$el.on( "onSlideClick.lg.tm", function() { 647 var a = b.core.$slide.eq( b.core.index ); 648 c( a ) 649 } ) : b.core.$slide.on( "click.lg", function() { 650 c( a( this ) ) 651 } ), b.core.$el.on( "onBeforeSlide.lg.tm", function( a, c, d ) { 652 var e = b.core.$slide.eq( c ), f = e.find( ".lg-youtube" ).get( 0 ), g = e.find( ".lg-vimeo" ).get( 0 ), h = e.find( ".lg-dailymotion" ).get( 0 ), i = e.find( ".lg-html5" ).get( 0 ); 653 if ( f ) { 654 f.contentWindow.postMessage( '{"event":"command","func":"pauseVideo","args":""}', "*" ); 655 } else if ( g ) { 656 try { 657 $f( g ).api( "pause" ) 658 } catch ( j ) { 659 console.error( "Make sure you have included froogaloop2 js" ) 660 } 661 } else if ( h ) { 662 h.contentWindow.postMessage( "pause", "*" ); 663 } else if ( i ) { 664 if ( b.core.s.videojs ) { 665 try { 666 videojs( i ).pause() 667 } catch ( j ) { 668 console.error( "Make sure you have included videojs" ) 669 } 670 } else { 671 i.pause(); 672 } 673 } 674 var k; 675 k = b.core.s.dynamic ? b.core.s.dynamicEl[ d ].src : b.core.$items.eq( d ).attr( "href" ) || b.core.$items.eq( d ).attr( "data-src" ); 676 var l = b.core.isVideo( k, d ) || {}; 677 (l.youtube || l.vimeo || l.dailymotion) && b.core.$outer.addClass( "lg-hide-download" ) 678 } ), b.core.$el.on( "onAfterSlide.lg.tm", function( a, c ) { 679 b.core.$slide.eq( c ).removeClass( "lg-video-palying" ) 680 } ) 681 }, f.prototype.loadVideo = function( b, c, d, e, f ) { 682 var g = "", h = 1, i = "", j = this.core.isVideo( b, e ) || {}; 683 if ( d && (h = this.videoLoaded ? 0 : 1), j.youtube ) { 684 i = "?wmode=opaque&autoplay=" + h + "&enablejsapi=1", this.core.s.youtubePlayerParams && (i = i + "&" + a.param( this.core.s.youtubePlayerParams )), g = '<iframe class="lg-video-object lg-youtube ' + c + '" width="560" height="315" src="//www.youtube.com/embed/' + j.youtube[ 1 ] + i + '" frameborder="0" allowfullscreen></iframe>'; 685 } else if ( j.vimeo ) { 686 i = "?autoplay=" + h + "&api=1", this.core.s.vimeoPlayerParams && (i = i + "&" + a.param( this.core.s.vimeoPlayerParams )), g = '<iframe class="lg-video-object lg-vimeo ' + c + '" width="560" height="315" src="http://player.vimeo.com/video/' + j.vimeo[ 1 ] + i + '" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>'; 687 } else if ( j.dailymotion ) { 688 i = "?wmode=opaque&autoplay=" + h + "&api=postMessage", this.core.s.dailymotionPlayerParams && (i = i + "&" + a.param( this.core.s.dailymotionPlayerParams )), g = '<iframe class="lg-video-object lg-dailymotion ' + c + '" width="560" height="315" src="//www.dailymotion.com/embed/video/' + j.dailymotion[ 1 ] + i + '" frameborder="0" allowfullscreen></iframe>'; 689 } else if ( j.html5 ) { 690 var k = f.substring( 0, 1 ); 691 ("." === k || "#" === k) && (f = a( f ).html()), g = f 692 } 693 return g 694 }, f.prototype.destroy = function() { 695 this.videoLoaded = !1 696 }, a.fn.lightGallery.modules.video = f 697}( jQuery, window, document ), function( a, b, c, d ) { 698 "use strict"; 699 var e = { scale: 1, zoom: !0, enableZoomAfter: 300 }, f = function( c ) { 700 return this.core = a( c ).data( "lightGallery" ), this.core.s = a.extend( {}, e, this.core.s ), this.core.s.zoom && this.core.doCss() && (this.init(), this.zoomabletimeout = !1, this.pageX = a( b ).width() / 2, this.pageY = a( b ).height() / 2 + a( b ).scrollTop()), this 701 }; 702 f.prototype.init = function() { 703 var c = this, d = '<span id="lg-zoom-in" class="lg-icon"></span><span id="lg-zoom-out" class="lg-icon"></span>'; 704 this.core.$outer.find( ".lg-toolbar" ).append( d ), c.core.$el.on( "onSlideItemLoad.lg.tm.zoom", function( b, d, e ) { 705 var f = c.core.s.enableZoomAfter + e; 706 a( "body" ).hasClass( "lg-from-hash" ) && e ? f = 0 : a( "body" ).removeClass( "lg-from-hash" ), c.zoomabletimeout = setTimeout( function() { 707 c.core.$slide.eq( d ).addClass( "lg-zoomable" ) 708 }, f + 30 ) 709 } ); 710 var e = 1, f = function( d ) { 711 var e, f, g = c.core.$outer.find( ".lg-current .lg-image" ), h = (a( b ).width() - g.width()) / 2, i = (a( b ).height() - g.height()) / 2 + a( b ).scrollTop(); 712 e = c.pageX - h, f = c.pageY - i; 713 var j = (d - 1) * e, k = (d - 1) * f; 714 g.css( "transform", "scale3d(" + d + ", " + d + ", 1)" ).attr( "data-scale", d ), g.parent().css( "transform", "translate3d(-" + j + "px, -" + k + "px, 0)" ).attr( "data-x", j ).attr( "data-y", k ) 715 }, g = function() { 716 e > 1 ? c.core.$outer.addClass( "lg-zoomed" ) : c.resetZoom(), 1 > e && (e = 1), f( e ) 717 }, h = function( a, b, d ) { 718 var f, h = b.width(); 719 f = c.core.s.dynamic ? c.core.s.dynamicEl[ d ].width || b[ 0 ].naturalWi
719dth || h : c.core.$items.eq( d ).attr( "data-width" ) || b[ 0 ].naturalWidth || h; 720 var i; 721 c.core.$outer.hasClass( "lg-zoomed" ) ? e = 1 : f > h && (i = f / h, e = i || 2), c.pageX = a.pageX || a.originalEvent.targetTouches[ 0 ].pageX, c.pageY = a.pageY || a.originalEvent.targetTouches[ 0 ].pageY, g(), setTimeout( function() { 722 c.core.$outer.removeClass( "lg-grabbing" ).addClass( "lg-grab" ) 723 }, 10 ) 724 }, i = !1; 725 c.core.$el.on( "onAferAppendSlide.lg.tm.zoom", function( a, b ) { 726 var d = c.core.$slide.eq( b ).find( ".lg-image" ); 727 d.on( "dblclick", function( a ) { 728 h( a, d, b ) 729 } ), d.on( "touchstart", function( a ) { 730 i ? (clearTimeout( i ), i = null, h( a, d, b )) : i = setTimeout( function() { 731 i = null 732 }, 300 ), a.preventDefault() 733 } ) 734 } ), a( b ).on( "resize.lg.zoom scroll.lg.zoom orientationchange.lg.zoom", function() { 735 c.pageX = a( b ).width() / 2, c.pageY = a( b ).height() / 2 + a( b ).scrollTop(), f( e ) 736 } ), a( "#lg-zoom-out" ).on( "click.lg", function() { 737 c.core.$outer.find( ".lg-current .lg-image" ).length && (e -= c.core.s.scale, g()) 738 } ), a( "#lg-zoom-in" ).on( "click.lg", function() { 739 c.core.$outer.find( ".lg-current .lg-image" ).length && (e += c.core.s.scale, g()) 740 } ), c.core.$el.on( "onBeforeSlide.lg.tm", function() { 741 e = 1, c.resetZoom() 742 } ), c.core.isTouch || c.zoomDrag(), c.core.isTouch && c.zoomSwipe() 743 }, f.prototype.resetZoom = function() { 744 this.core.$outer.removeClass( "lg-zoomed" ), this.core.$slide.find( ".lg-img-wrap" ).removeAttr( "style data-x data-y" ), this.core.$slide.find( ".lg-image" ).removeAttr( "style data-scale" ), this.pageX = a( b ).width() / 2, this.pageY = a( b ).height() / 2 + a( b ).scrollTop() 745 }, f.prototype.zoomSwipe = function() { 746 var a = this, b = {}, c = {}, d = !1, e = !1, f = !1; 747 a.core.$slide.on( "touchstart.lg", function( c ) { 748 if ( a.core.$outer.hasClass( "lg-zoomed" ) ) { 749 var d = a.core.$slide.eq( a.core.index ).find( ".lg-object" ); 750 f = d.outerHeight() * d.attr( "data-scale" ) > a.core.$outer.find( ".lg" ).height(), e = d.outerWidth() * d.attr( "data-scale" ) > a.core.$outer.find( ".lg" ).width(), (e || f) && (c.preventDefault(), b = { 751 x: c.originalEvent.targetTouches[ 0 ].pageX, 752 y: c.originalEvent.targetTouches[ 0 ].pageY 753 }) 754 } 755 } ), a.core.$slide.on( "touchmove.lg", function( g ) { 756 if ( a.core.$outer.hasClass( "lg-zoomed" ) ) { 757 var h, i, j = a.core.$slide.eq( a.core.index ).find( ".lg-img-wrap" ); 758 g.preventDefault(), d = !0, c = { 759 x: g.originalEvent.targetTouches[ 0 ].pageX, 760 y: g.originalEvent.targetTouches[ 0 ].pageY 761 }, a.core.$outer.addClass( "lg-zoom-dragging" ), i = f ? -Math.abs( j.attr( "data-y" ) ) + (c.y - b.y) : -Math.abs( j.attr( "data-y" ) ), h = e ? -Math.abs( j.attr( "data-x" ) ) + (c.x - b.x) : -Math.abs( j.attr( "data-x" ) ), (Math.abs( c.x - b.x ) > 15 || Math.abs( c.y - b.y ) > 15) && j.css( "transform", "translate3d(" + h + "px, " + i + "px, 0)" ) 762 } 763 } ), a.core.$slide.on( "touchend.lg", function() { 764 a.core.$outer.hasClass( "lg-zoomed" ) && d && (d = !1, a.core.$outer.removeClass( "lg-zoom-dragging" ), a.touchendZoom( b, c, e, f )) 765 } ) 766 }, f.prototype.zoomDrag = function() { 767 var c = this, d = {}, e = {}, f = !1, g = !1, h = !1, i = !1; 768 c.core.$slide.on( "mousedown.lg.zoom", function( b ) { 769 var e = c.core.$slide.eq( c.core.index ).find( ".lg-object" ); 770 i = e.outerHeight() * e.attr( "data-scale" ) > c.core.$outer.find( ".lg" ).height(), h = e.outerWidth() * e.attr( "data-scale" ) > c.core.$outer.find( ".lg" ).width(), c.core.$outer.hasClass( "lg-zoomed" ) && a( b.target ).hasClass( "lg-object" ) && (h || i) && (b.preventDefault(), d = { 771 x: b.pageX, 772 y: b.pageY 773 }, f = !0, c.core.$outer.scrollLeft += 1, c.core.$outer.scrollLeft -= 1, c.core.$outer.removeClass( "lg-grab" ).addClass( "lg-grabbing" )) 774 } ), a( b ).on( "mousemove.lg.zoom", function( a ) { 775 if ( f ) { 776 var b, j, k = c.core.$slide.eq( c.core.index ).find( ".lg-img-wrap" ); 777 g = !0, e = { 778 x: a.pageX, 779 y: a.pageY 780 }, c.core.$outer.addClass( "lg-zoom-dragging" ), j = i ? -Math.abs( k.attr( "data-y" ) ) + (e.y - d.y) : -Math.abs( k.attr( "data-y" ) ), b = h ? -Math.abs( k.attr( "data-x" ) ) + (e.x - d.x) : -Math.abs( k.attr( "data-x" ) ), k.css( "transform", "translate3d(" + b + "px, " + j + "px, 0)" ) 781 } 782 } ), a( b ).on( "mouseup.lg.zoom", function( a ) { 783 f && (f = !1, c.core.$outer.removeClass( "lg-zoom-dragging" ), !g || d.x === e.x && d.y === e.y || (e = { 784 x: a.pageX, 785 y: a.pageY 786 }, c.touchendZoom( d, e, h, i )), g = !1), c.core.$outer.removeClass( "lg-grabbing" ).addClass( "lg-grab" ) 787 } ) 788 }, f.prototype.touchendZoom = function( a, b, c, d ) { 789 var e = this, f = e.core.$slide.eq( e.core.index ).find( ".lg-img-wrap" ), g = e.core.$slide.eq( e.core.index ).find( ".lg-object" ), h = -Math.abs( f.attr( "data-x" ) ) + (b.x - a.x), i = -Math.abs( f.attr( "data-y" ) ) + (b.y - a.y), j = (e.core.$outer.find( ".lg" ).height() - g.outerHeight()) / 2, k = Math.abs( g.outerHeight() * Math.abs( g.attr( "data-scale" ) ) - e.core.$outer.find( ".lg" ).height() + j ), l = (e.core.$outer.find( ".lg" ).width() - g.outerWidth()) / 2, m = Math.abs( g.outerWidth() * Math.abs( g.attr( "data-scale" ) ) - e.core.$outer.find( ".lg" ).width() + l ); 790 (Math.abs( b.x - a.x ) > 15 || Math.abs( b.y - a.y ) > 15) && (d && (-k >= i ? i = -k : i >= -j && (i = -j)), c && (-m >= h ? h = -m : h >= -l && (h = -l)), d ? f.attr( "data-y", Math.abs( i ) ) : i = -Math.abs( f.attr( "data-y" ) ), c ? f.attr( "data-x", Math.abs( h ) ) : h = -Math.abs( f.attr( "data-x" ) ), f.css( "transform", "translate3d(" + h + "px, " + i + "px, 0)" )) 791 }, f.prototype.destroy = function() { 792 var c = this; 793 c.core.$el.off( ".lg.zoom" ), a( b ).off( ".lg.zoom" ), c.core.$slide.off( ".lg.zoom" ), c.core.$el.off( ".lg.tm.zoom" ), c.resetZoom(), clearTimeout( c.zoomabletimeout ), c.zoomabletimeout = !1 794 }, a.fn.lightGallery.modules.zoom = f 795}( jQuery, window, document ), function( a, b, c, d ) { 796 "use strict"; 797 var e = { hash: !0 }, f = function( c ) { 798 return this.core = a( c ).data( "lightGallery" ), this.core.s = a.extend( {}, e, this.core.s ), this.core.s.hash && (this.oldHash = b.location.hash, this.init()), this 799 }; 800 f.prototype.init = function() { 801 var c, d = this; 802 d.core.$el.on( "onAfterSlide.lg.tm", function( a, c, e ) { 803 b.location.hash = "lg=" + d.core.s.galleryId + "&slide=" + e 804 } ), a( b ).on( "hashchange", function() { 805 c = b.location.hash; 806 var a = parseInt( c.split( "&slide=" )[ 1 ], 10 ); 807 c.indexOf( "lg=" + d.core.s.galleryId ) > -1 ? d.core.slide( a ) : d.core.lGalleryOn && d.core.destroy() 808 } ) 809 }, f.prototype.destroy = function() { 810 this.oldHash && this.oldHash.indexOf( "lg=" + this.core.s.galleryId ) < 0 ? b.location.hash = this.oldHash : history.pushState ? history.pushState( "", c.title, b.location.pathname + b.location.search ) : b.location.hash = "" 811 }, a.fn.lightGallery.modules.hash = f 812}( jQuery, window, document );
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.