<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">;(function($) {

    'use strict';

    var instanceNum = 0,
        $html = $('html'),
        $document = $(document),
        $window = $(window);

    function SimpleLightbox(options) {

        this.options = $.extend({}, SimpleLightbox.defaults, options);
        this.ens = '.slb' + (++instanceNum);
        this.init();

    }

    SimpleLightbox.defaults = {

        elementClass: '',
        htmlClass: 'slbActive',
        closeBtnClass: '',
        nextBtnClass: '',
        prevBtnClass: '',
        loadingClass: '',

        closeBtnCaption: 'Close',
        nextBtnCaption: 'Next',
        prevBtnCaption: 'Previous',
        loadingCaption: 'Loading...',

        bindToItems: true,
        closeOnOverlayClick: true,
        nextOnImageClick: true,
        showCaptions: true,

        captionAttribute: 'title',
        urlAttribute: 'href',

        startAt: 0,
        loadingTimeout: 100,

        appendTarget: $('body'),

        beforeSetContent: null,
        beforeClose: null,
        beforeDestroy: null,

        videoRegex: new RegExp(/youtube.com|vimeo.com/)

    };

    $.extend(SimpleLightbox.prototype, {

        items: [],
        captions: [],

        init: function() {

            var self = this;

            if (this.options.$items) {

                this.$items = this.options.$items;

                this.$items.each(function() {

                    var $item = $(this);

                    self.items.push($item.attr(self.options.urlAttribute));
                    self.captions.push($item.attr(self.options.captionAttribute));

                });

                this.options.bindToItems &amp;&amp; this.$items.on('click' + this.ens, function(e) {

                    e.preventDefault();
                    self.showPosition(self.$items.index($(e.currentTarget)));

                });

            } else if (this.options.items) {

                this.items = this.options.items;

            }

            if (this.options.captions) {
                this.captions = this.options.captions;
            }

        },

        next: function() {

            return this.showPosition(this.currentPosition + 1);

        },

        prev: function() {

            return this.showPosition(this.currentPosition - 1);

        },

        normalizePosition: function(position) {

            if (position &gt;= this.items.length) {
                position = 0;
            } else if (position &lt; 0) {
                position = this.items.length - 1;
            }

            return position;

        },

        showPosition: function(position) {

            var self = this;

            this.currentPosition = this.normalizePosition(position);

            return this.setupLightboxHtml().prepareItem(this.currentPosition, this.setContent).show();

        },

        prepareItem: function(position, callback) {

            var self = this,
                url = this.items[position];

            this.loadingTimeout = setTimeout(function() {

                self.setContent('&lt;p class="slbLoading ' + self.options.loadingClass + '"&gt;' + self.options.loadingCaption + '&lt;/p&gt;').show();

            }, this.options.loadingTimeout);

            if (this.options.videoRegex.test(url)) {

                callback.call(self, $('&lt;div class="slbIframeCont"&gt;&lt;iframe class="slbIframe" frameborder="0" allowfullscreen src="' + url + '"&gt;&lt;/iframe&gt;&lt;/div&gt;'));

            } else {

                var $imageCont = $('&lt;div class="slbImageWrap"&gt;&lt;img class="slbImage" src="' + url + '" /&gt;&lt;/div&gt;');

                this.$currentImage = $imageCont.find('.slbImage');

                if (this.options.showCaptions &amp;&amp; this.captions[position]) {
                    $imageCont.append('&lt;div class="slbCaption"&gt;' + this.captions[position] + '&lt;/div&gt;');
                }

                this.loadImage(url, function() {

                    self.setImageDimensions();

                    callback.call(self, $imageCont);

                    self.loadImage(self.items[self.normalizePosition(self.currentPosition + 1)]);

                });

            }

            return this;

        },

        loadImage: function(url, callback) {

            if (!this.options.videoRegex.test(url)) {

                var image = new Image();
                callback &amp;&amp; (image.onload = callback);
                image.src = url;

            }

        },

        setupLightboxHtml: function() {

            var o = this.options;

            if (!this.$el) {

                this.$el = $(
                    '&lt;div class="slbElement ' + o.elementClass + '"&gt;' +
                        '&lt;div class="slbOverlay"&gt;&lt;/div&gt;' +
                        '&lt;div class="slbWrapOuter"&gt;' +
                            '&lt;div class="slbWrap"&gt;' +
                                '&lt;div class="slbContentOuter"&gt;' +
                                    '&lt;div class="slbContent"&gt;&lt;/div&gt;' +
                                    '&lt;button type="button" title="' + o.closeBtnCaption + '" class="slbCloseBtn ' + o.closeBtnClass + '"&gt;Ã—&lt;/button&gt;' +
                                '&lt;/div&gt;' +
                            '&lt;/div&gt;' +
                        '&lt;/div&gt;' +
                    '&lt;/div&gt;'
                );

                if (this.items.length &gt; 1) {

                    $(
                        '&lt;div class="slbArrows"&gt;' +
                            '&lt;button type="button" title="' + o.prevBtnCaption + '" class="prev slbArrow' + o.prevBtnClass + '"&gt;' + o.prevBtnCaption + '&lt;/button&gt;' +
                            '&lt;button type="button" title="' + o.nextBtnCaption + '" class="next slbArrow' + o.nextBtnClass + '"&gt;' + o.nextBtnCaption + '&lt;/button&gt;' +
                        '&lt;/div&gt;'
                    ).appendTo(this.$el.find('.slbContentOuter'));

                }

                this.$content = this.$el.find('.slbContent');

            }

            return this;

        },

        show: function() {

            if (!this.modalInDom) {

                this.$el.appendTo(this.options.appendTarget);
                $html.addClass(this.options.htmlClass);
                this.setupLightboxEvents();

                this.modalInDom = true;

            }

            return this;

        },

        setContent: function(content) {

            var $content = $(content);

            clearTimeout(this.loadingTimeout);

            this.setupLightboxHtml();
            this.options.beforeSetContent &amp;&amp; this.options.beforeSetContent($content, this);
            this.$content.html($content);

            return this;

        },

        setImageDimensions: function() {

            this.$currentImage &amp;&amp; this.$currentImage.css('max-height', $window.height() + 'px');

        },

        setupLightboxEvents: function() {

            var self = this;

            if (!this.lightboxEventsSetuped) {

                this.$el.on('click' + this.ens, function(e) {

                    var $target = $(e.target);

                    if ($target.is('.slbCloseBtn') || (self.options.closeOnOverlayClick &amp;&amp; $target.is('.slbWrap'))) {

                        self.close();

                    } else if ($target.is('.slbArrow')) {

                        $target.hasClass('next') ? self.next() : self.prev();

                    } else if (self.options.nextOnImageClick &amp;&amp; self.items.length &gt; 1 &amp;&amp; $target.is('.slbImage')) {

                        self.next();

                    }

                });

                $document.on('keyup' + this.ens, function(e) {

                    if (e.keyCode === 27) { self.close(); }

                    if (self.items.length &gt; 1) {
                        (e.keyCode === 39 || e.keyCode === 68) &amp;&amp; self.next();
                        (e.keyCode === 37 || e.keyCode === 65) &amp;&amp; self.prev();
                    }

                });

                $window.on('resize' + this.ens, function() {

                    self.setImageDimensions();

                });

                this.lightboxEventsSetuped = true;

            }

        },

        close: function() {

            if (this.modalInDom) {

                this.beforeClose &amp;&amp; this.beforeClose(this);

                this.$el &amp;&amp; this.$el.off(this.ens);
                $document.off(this.ens);
                $window.off(this.ens);
                this.lightboxEventsSetuped = false;

                this.$el.detach();
                $html.removeClass(this.options.htmlClass);
                this.modalInDom = false;
            }

        },

        destroy: function() {

            this.close();
            this.beforeDestroy &amp;&amp; this.beforeDestroy(this);
            this.$items &amp;&amp; this.$items.off(this.ens);
            this.$el &amp;&amp; this.$el.remove();

        }

    });

    SimpleLightbox.open = function(options) {

        var instance = new SimpleLightbox(options);

        return options.content ? instance.setContent(options.content).show() : instance.showPosition(instance.options.startAt);

    };

    $.fn.simpleLightbox = function(options) {

        var lightboxInstance,
            $items = this;

        return this.each(function() {
            if (!$.data(this, 'simpleLightbox')) {
                lightboxInstance = lightboxInstance || new SimpleLightbox($.extend({}, options, {$items: $items}));
                $.data(this, 'simpleLightbox', lightboxInstance);
            }
        });

    };

    $.simpleLightbox = SimpleLightbox;

})(window.jQuery || window.Zepto || window.simpleQuery);
</pre></body></html>