/*! lightgallery - v1.2.19 - 2016-05-17 * http://sachinchoolur.github.io/lightGallery/ * Copyright (c) 2016 Sachin N; Licensed Apache 2.0 */ !function (a, b, c, d) { "use strict"; function e(b, d) { 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)throw"When using dynamic mode, you must also define dynamicEl as an Array."; 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 } var f = { mode: "lg-slide", cssEasing: "ease", easing: "linear", speed: 600, height: "100%", width: "100%", addClass: "", startClass: "lg-start-zoom", backdropDuration: 150, hideBarsDelay: 6e3, useLeft: !1, closable: !0, loop: !0, escKey: !0, keyPress: !0, controls: !0, slideEndAnimatoin: !0, hideControlOnEnd: !1, mousewheel: !0, getCaptionFromTitleOrAlt: !0, appendSubHtmlTo: ".lg-sub-html", preload: 1, showAfterLoad: !0, selector: "", selectWithin: "", nextHtml: "", prevHtml: "", index: !1, iframeMaxWidth: "100%", download: !0, counter: !0, appendCounterTo: ".lg-toolbar", swipeThreshold: 50, enableSwipe: !0, enableDrag: !0, dynamic: !1, dynamicEl: [], galleryId: 1 }; e.prototype.init = function () { var c = this; c.s.preload > c.$items.length && (c.s.preload = c.$items.length); var d = b.location.hash; 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 () { c.build(c.index), a("body").addClass("lg-on") })), c.s.dynamic ? (c.$el.trigger("onBeforeOpen.lg"), c.index = c.s.index || 0, a("body").hasClass("lg-on") || setTimeout(function () { c.build(c.index), a("body").addClass("lg-on") })) : c.$items.on("click.lgcustom", function (b) { try { b.preventDefault(), b.preventDefault() } catch (d) { b.returnValue = !1 } 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")) }) }, e.prototype.build = function (b) { var c = this; c.structure(), a.each(a.fn.lightGallery.modules, function (b) { c.modules[b] = new a.fn.lightGallery.modules[b](c.el) }), c.slide(b, !1, !1), c.s.keyPress && c.keyPress(), c.$items.length > 1 && (c.arrow(), setTimeout(function () { c.enableDrag(), c.enableSwipe() }, 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 () { c.$outer.removeClass("lg-hide-items"), clearTimeout(c.hideBartimeout), c.hideBartimeout = setTimeout(function () { c.$outer.addClass("lg-hide-items") }, c.s.hideBarsDelay) }) }, e.prototype.structure = function () { var c, d = "", e = "", f = 0, g = "", h = this; for (a("body").append('
'), a(".lg-backdrop").css("transition-duration", this.s.backdropDuration + "ms"), f = 0; f < this.$items.length; f++)d += '
'; if (this.s.controls && this.$items.length > 1 && (e = '
' + this.s.prevHtml + '
' + this.s.nextHtml + "
"), ".lg-sub-html" === this.s.appendSubHtmlTo && (g = '
'), c = '
' + d + '
' + e + g + "
", 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 () { setTimeout(function () { h.setTop() }, 100) }), 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()) { var i = this.$outer.find(".lg-inner"); i.css("transition-timing-function", this.s.cssEasing), i.css("transition-duration", this.s.speed + "ms") } a(".lg-backdrop").addClass("in"), setTimeout(function () { h.$outer.addClass("lg-visible") }, this.s.backdropDuration), this.s.download && this.$outer.find(".lg-toolbar").append(''), this.prevScrollTop = a(b).scrollTop() }, e.prototype.setTop = function () { if ("100%" !== this.s.height) { var c = a(b).height(), d = (c - parseInt(this.s.height, 10)) / 2, e = this.$outer.find(".lg"); c >= parseInt(this.s.height, 10) ? e.css("top", d + "px") : e.css("top", "0px") } }, e.prototype.doCss = function () { var a = function () { var a = ["transition", "MozTransition", "WebkitTransition", "OTransition", "msTransition", "KhtmlTransition"], b = c.documentElement, d = 0; for (d = 0; d < a.length; d++)if (a[d] in b.style)return !0 }; return !!a() }, e.prototype.isVideo = function (a, b) { var c; if (c = this.s.dynamic ? this.s.dynamicEl[b].html : this.$items.eq(b).attr("data-html"), !a && c)return {html5: !0}; 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), g = a.match(/\/\/(?:www\.)?(?:vk\.com|vkontakte\.ru)\/(?:video_ext\.php\?)(.*)/i); return d ? {youtube: d} : e ? {vimeo: e} : f ? {dailymotion: f} : g ? {vk: g} : void 0 }, e.prototype.counter = function () { this.s.counter && a(this.s.appendCounterTo).append('
' + (parseInt(this.index, 10) + 1) + ' / ' + this.$items.length + "
") }, e.prototype.addHtml = function (b) { var c, d = null; 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"), this.s.getCaptionFromTitleOrAlt && !d && (d = this.$items.eq(b).attr("title") || this.$items.eq(b).find("img").first().attr("alt"))), !c)if ("undefined" != typeof d && null !== d) { var e = d.substring(0, 1); "." !== e && "#" !== e || (d = a(d).html()) } else d = ""; ".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]) }, e.prototype.preload = function (a) { var b = 1, c = 1; for (b = 1; b <= this.s.preload && !(b >= this.$items.length - a); b++)this.loadContent(a + b, !1, 0); for (c = 1; c <= this.s.preload && !(0 > a - c); c++)this.loadContent(a - c, !1, 0) }, e.prototype.loadContent = function (c, d, e) { var f, g, h, i, j, k, l = this, m = !1, n = function (c) { for (var d = [], e = [], f = 0; f < c.length; f++) { var h = c[f].split(" "); "" === h[0] && h.splice(0, 1), e.push(h[0]), d.push(h[1]) } for (var i = a(b).width(), j = 0; j < d.length; j++)if (parseInt(d[j], 10) > i) { g = e[j]; break } }; if (l.s.dynamic) { 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) { var o = l.s.dynamicEl[c].responsive.split(","); n(o) } i = l.s.dynamicEl[c].srcset, j = l.s.dynamicEl[c].sizes } else { 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")) { var p = l.$items.eq(c).attr("data-responsive").split(","); n(p) } i = l.$items.eq(c).attr("data-srcset"), j = l.$items.eq(c).attr("data-sizes") } var q = !1; l.s.dynamic ? l.s.dynamicEl[c].iframe && (q = !0) : "true" === l.$items.eq(c).attr("data-iframe") && (q = !0); var r = l.isVideo(g, c); if (!l.$slide.eq(c).hasClass("lg-loaded")) { if (q) l.$slide.eq(c).prepend('
'); else if (m) { var s = ""; s = r && r.youtube ? "lg-has-youtube" : r && r.vimeo ? "lg-has-vimeo" : "lg-has-html5", l.$slide.eq(c).prepend('
') } else r ? (l.$slide.eq(c).prepend('
'), l.$el.trigger("hasVideo.lg", [c, g, k])) : l.$slide.eq(c).prepend('
'); if (l.$el.trigger("onAferAppendSlide.lg", [c]), f = l.$slide.eq(c).find(".lg-object"), j && f.attr("sizes", j), i) { f.attr("srcset", i); try { picturefill({elements: [f[0]]}) } catch (t) { console.error("Make sure you have included Picturefill version 2") } } ".lg-sub-html" !== this.s.appendSubHtmlTo && l.addHtml(c), l.$slide.eq(c).addClass("lg-loaded") } l.$slide.eq(c).find(".lg-object").on("load.lg error.lg", function () { var b = 0; e && !a("body").hasClass("lg-from-hash") && (b = e), setTimeout(function () { l.$slide.eq(c).addClass("lg-complete"), l.$el.trigger("onSlideItemLoad.lg", [c, e || 0]) }, b) }), 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 () { l.preload(c) })) }, e.prototype.slide = function (b, c, d) { var e = this.$outer.find(".lg-current").index(), f = this; if (!f.lGalleryOn || e !== b) { var g = this.$slide.length, h = f.lGalleryOn ? this.s.speed : 0, i = !1, j = !1; if (!f.lgBusy) { if (this.s.download) { var k; 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") } if (this.$el.trigger("onBeforeSlide.lg", [e, b, c, d]), f.lgBusy = !0, clearTimeout(f.hideBartimeout), ".lg-sub-html" === this.s.appendSubHtmlTo && setTimeout(function () { f.addHtml(b) }, h), this.arrowDisable(b), c) { var l = b - 1, m = b + 1; 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") } else 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 () { f.$slide.removeClass("lg-current"), f.$slide.eq(b).addClass("lg-current"), f.$outer.removeClass("lg-no-trans") }, 50); f.lGalleryOn ? (setTimeout(function () { f.loadContent(b, !0, 0) }, this.s.speed + 50), setTimeout(function () { f.lgBusy = !1, f.$el.trigger("onAfterSlide.lg", [e, b, c, d]) }, this.s.speed)) : (f.loadContent(b, !0, f.s.backdropDuration), f.lgBusy = !1, f.$el.trigger("onAfterSlide.lg", [e, b, c, d])), f.lGalleryOn = !0, this.s.counter && a("#lg-counter-current").text(b + 1) } } }, e.prototype.goToNextSlide = function (a) { var b = this; 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 () { b.$outer.removeClass("lg-right-end") }, 400))) }, e.prototype.goToPrevSlide = function (a) { var b = this; b.lgBusy || (b.index > 0 ? (b.index--, b.$el.trigger("onBeforePrevSlide.lg", [b.index, a]), b.slide(b.index, a, !1)) : b.s.loop ? (b.index = b.$items.length - 1, b.$el.trigger("onBeforePrevSlide.lg", [b.index, a]), b.slide(b.index, a, !1)) : b.s.slideEndAnimatoin && (b.$outer.addClass("lg-left-end"), setTimeout(function () { b.$outer.removeClass("lg-left-end") }, 400))) }, e.prototype.keyPress = function () { var c = this; this.$items.length > 1 && a(b).on("keyup.lg", function (a) { c.$items.length > 1 && (37 === a.keyCode && (a.preventDefault(), c.goToPrevSlide()), 39 === a.keyCode && (a.preventDefault(), c.goToNextSlide())) }), a(b).on("keydown.lg", function (a) { c.s.escKey === !0 && 27 === a.keyCode && (a.preventDefault(), c.$outer.hasClass("lg-thumb-open") ? c.$outer.removeClass("lg-thumb-open") : c.destroy()) }) }, e.prototype.arrow = function () { var a = this; this.$outer.find(".lg-prev").on("click.lg", function () { a.goToPrevSlide() }), this.$outer.find(".lg-next").on("click.lg", function () { a.goToNextSlide() }) }, e.prototype.arrowDisable = function (a) { !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")) }, e.prototype.setTranslate = function (a, b, c) { this.s.useLeft ? a.css("left", b) : a.css({transform: "translate3d(" + b + "px, " + c + "px, 0px)"}) }, e.prototype.touchMove = function (b, c) { var d = c - b; 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)) }, e.prototype.touchEnd = function (a) { var b = this; "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 () { 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") }), setTimeout(function () { b.$outer.hasClass("lg-dragging") || "lg-slide" === b.s.mode || b.$outer.removeClass("lg-slide") }, b.s.speed + 100) }, e.prototype.enableSwipe = function () { var a = this, b = 0, c = 0, d = !1; a.s.enableSwipe && a.isTouch && a.doCss() && (a.$slide.on("touchstart.lg", function (c) { a.$outer.hasClass("lg-zoomed") || a.lgBusy || (c.preventDefault(), a.manageSwipeClass(), b = c.originalEvent.targetTouches[0].pageX) }), a.$slide.on("touchmove.lg", function (e) { a.$outer.hasClass("lg-zoomed") || (e.preventDefault(), c = e.originalEvent.targetTouches[0].pageX, a.touchMove(b, c), d = !0) }), a.$slide.on("touchend.lg", function () { a.$outer.hasClass("lg-zoomed") || (d ? (d = !1, a.touchEnd(c - b)) : a.$el.trigger("onSlideClick.lg")) })) }, e.prototype.enableDrag = function () { var c = this, d = 0, e = 0, f = !1, g = !1; c.s.enableDrag && !c.isTouch && c.doCss() && (c.$slide.on("mousedown.lg", function (b) { 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"))) }), a(b).on("mousemove.lg", function (a) { f && (g = !0, e = a.pageX, c.touchMove(d, e), c.$el.trigger("onDragmove.lg")) }), a(b).on("mouseup.lg", function (b) { 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")) })) }, e.prototype.manageSwipeClass = function () { var a = this.index + 1, b = this.index - 1, c = this.$slide.length; 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") }, e.prototype.mousewheel = function () { var a = this; a.$outer.on("mousewheel.lg", function (b) { b.deltaY && (b.deltaY > 0 ? a.goToPrevSlide() : a.goToNextSlide(), b.preventDefault()) }) }, e.prototype.closeGallery = function () { var b = this, c = !1; this.$outer.find(".lg-close").on("click.lg", function () { b.destroy(), $('body').removeClass('overflow-full') }), b.s.closable && (b.$outer.on("mousedown.lg", function (b) { c = !!(a(b.target).is(".lg-outer") || a(b.target).is(".lg-item ") || a(b.target).is(".lg-img-wrap")) }), b.$outer.on("mouseup.lg", function (d) { (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()) })) }, e.prototype.destroy = function (c) { var d = this; 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) { d.modules[a] && d.modules[a].destroy() }), 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 () { d.$outer && d.$outer.remove(), a(".lg-backdrop").remove(), c || d.$el.trigger("onCloseAfter.lg") }, d.s.backdropDuration + 50) }, a.fn.lightGallery = function (b) { return this.each(function () { if (a.data(this, "lightGallery"))try { a(this).data("lightGallery").init() } catch (c) { console.error("lightGallery has not initiated properly") } else a.data(this, "lightGallery", new e(this, b)) }) }, a.fn.lightGallery.modules = {} }(jQuery, window, document); /*Full screen*/ !function (a, b, c, d) { "use strict"; var e = {fullScreen: !0}, f = function (b) { return this.core = a(b).data("lightGallery"), this.$el = a(b), this.core.s = a.extend({}, e, this.core.s), this.init(), this }; f.prototype.init = function () { var a = ""; if (this.core.s.fullScreen) { if (!(c.fullscreenEnabled || c.webkitFullscreenEnabled || c.mozFullScreenEnabled || c.msFullscreenEnabled))return; a = '', this.core.$outer.find(".lg-toolbar").append(a), this.fullScreen() } }, f.prototype.requestFullscreen = function () { var a = c.documentElement; a.requestFullscreen ? a.requestFullscreen() : a.msRequestFullscreen ? a.msRequestFullscreen() : a.mozRequestFullScreen ? a.mozRequestFullScreen() : a.webkitRequestFullscreen && a.webkitRequestFullscreen() }, f.prototype.exitFullscreen = function () { c.exitFullscreen ? c.exitFullscreen() : c.msExitFullscreen ? c.msExitFullscreen() : c.mozCancelFullScreen ? c.mozCancelFullScreen() : c.webkitExitFullscreen && c.webkitExitFullscreen() }, f.prototype.fullScreen = function () { var b = this; a(c).on("fullscreenchange.lg webkitfullscreenchange.lg mozfullscreenchange.lg MSFullscreenChange.lg", function () { b.core.$outer.toggleClass("lg-fullscreen-on") }), this.core.$outer.find(".lg-fullscreen").on("click.lg", function () { c.fullscreenElement || c.mozFullScreenElement || c.webkitFullscreenElement || c.msFullscreenElement ? b.exitFullscreen() : b.requestFullscreen() }) }, f.prototype.destroy = function () { this.exitFullscreen(), a(c).off("fullscreenchange.lg webkitfullscreenchange.lg mozfullscreenchange.lg MSFullscreenChange.lg") }, a.fn.lightGallery.modules.fullscreen = f }(jQuery, window, document); /*Zoom*/ !function (a, b, c, d) { "use strict"; var e = {scale: 1, zoom: !0, actualSize: !0, enableZoomAfter: 300}, f = function (c) { 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 }; f.prototype.init = function () { var c = this, d = ''; c.core.s.actualSize && (d += ''), this.core.$outer.find(".lg-toolbar").append(d), c.core.$el.on("onSlideItemLoad.lg.tm.zoom", function (b, d, e) { var f = c.core.s.enableZoomAfter + e; a("body").hasClass("lg-from-hash") && e ? f = 0 : a("body").removeClass("lg-from-hash"), c.zoomabletimeout = setTimeout(function () { c.core.$slide.eq(d).addClass("lg-zoomable") }, f + 30) }); var e = 1, f = function (d) { 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(); e = c.pageX - h, f = c.pageY - i; var j = (d - 1) * e, k = (d - 1) * f; g.css("transform", "scale3d(" + d + ", " + d + ", 1)").attr("data-scale", d), g.parent().css({ left: -j + "px", top: -k + "px" }).attr("data-x", j).attr("data-y", k) }, g = function () { e > 1 ? c.core.$outer.addClass("lg-zoomed") : c.resetZoom(), 1 > e && (e = 1), f(e) }, h = function (d, f, h, i) { var j, k = f.width(); j = c.core.s.dynamic ? c.core.s.dynamicEl[h].width || f[0].naturalWidth || k : c.core.$items.eq(h).attr("data-width") || f[0].naturalWidth || k; var l; c.core.$outer.hasClass("lg-zoomed") ? e = 1 : j > k && (l = j / k, e = l || 2), i ? (c.pageX = a(b).width() / 2, c.pageY = a(b).height() / 2 + a(b).scrollTop()) : (c.pageX = d.pageX || d.originalEvent.targetTouches[0].pageX, c.pageY = d.pageY || d.originalEvent.targetTouches[0].pageY), g(), setTimeout(function () { c.core.$outer.removeClass("lg-grabbing").addClass("lg-grab") }, 10) }, i = !1; c.core.$el.on("onAferAppendSlide.lg.tm.zoom", function (a, b) { var d = c.core.$slide.eq(b).find(".lg-image"); d.on("dblclick", function (a) { h(a, d, b) }), d.on("touchstart", function (a) { i ? (clearTimeout(i), i = null, h(a, d, b)) : i = setTimeout(function () { i = null }, 300), a.preventDefault() }) }), a(b).on("resize.lg.zoom scroll.lg.zoom orientationchange.lg.zoom", function () { c.pageX = a(b).width() / 2, c.pageY = a(b).height() / 2 + a(b).scrollTop(), f(e) }), a("#lg-zoom-out").on("click.lg", function () { c.core.$outer.find(".lg-current .lg-image").length && (e -= c.core.s.scale, g()) }), a("#lg-zoom-in").on("click.lg", function () { c.core.$outer.find(".lg-current .lg-image").length && (e += c.core.s.scale, g()) }), a("#lg-actual-size").on("click.lg", function (a) { h(a, c.core.$slide.eq(c.core.index).find(".lg-image"), c.core.index, !0) }), c.core.$el.on("onBeforeSlide.lg.tm", function () { e = 1, c.resetZoom() }), c.core.isTouch || c.zoomDrag(), c.core.isTouch && c.zoomSwipe() }, f.prototype.resetZoom = function () { 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() }, f.prototype.zoomSwipe = function () { var a = this, b = {}, c = {}, d = !1, e = !1, f = !1; a.core.$slide.on("touchstart.lg", function (c) { if (a.core.$outer.hasClass("lg-zoomed")) { var d = a.core.$slide.eq(a.core.index).find(".lg-object"); 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 = { x: c.originalEvent.targetTouches[0].pageX, y: c.originalEvent.targetTouches[0].pageY }) } }), a.core.$slide.on("touchmove.lg", function (g) { if (a.core.$outer.hasClass("lg-zoomed")) { var h, i, j = a.core.$slide.eq(a.core.index).find(".lg-img-wrap"); g.preventDefault(), d = !0, c = { x: g.originalEvent.targetTouches[0].pageX, y: g.originalEvent.targetTouches[0].pageY }, 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({ left: h + "px", top: i + "px" }) } }), a.core.$slide.on("touchend.lg", function () { a.core.$outer.hasClass("lg-zoomed") && d && (d = !1, a.core.$outer.removeClass("lg-zoom-dragging"), a.touchendZoom(b, c, e, f)) }) }, f.prototype.zoomDrag = function () { var c = this, d = {}, e = {}, f = !1, g = !1, h = !1, i = !1; c.core.$slide.on("mousedown.lg.zoom", function (b) { var e = c.core.$slide.eq(c.core.index).find(".lg-object"); 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 = { x: b.pageX, y: b.pageY }, f = !0, c.core.$outer.scrollLeft += 1, c.core.$outer.scrollLeft -= 1, c.core.$outer.removeClass("lg-grab").addClass("lg-grabbing")) }), a(b).on("mousemove.lg.zoom", function (a) { if (f) { var b, j, k = c.core.$slide.eq(c.core.index).find(".lg-img-wrap"); g = !0, e = { x: a.pageX, y: a.pageY }, 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({ left: b + "px", top: j + "px" }) } }), a(b).on("mouseup.lg.zoom", function (a) { f && (f = !1, c.core.$outer.removeClass("lg-zoom-dragging"), !g || d.x === e.x && d.y === e.y || (e = { x: a.pageX, y: a.pageY }, c.touchendZoom(d, e, h, i)), g = !1), c.core.$outer.removeClass("lg-grabbing").addClass("lg-grab") }) }, f.prototype.touchendZoom = function (a, b, c, d) { 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); (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({ left: h + "px", top: i + "px" })) }, f.prototype.destroy = function () { var c = this; 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 }, a.fn.lightGallery.modules.zoom = f }(jQuery, window, document);