PageSourceSearch

https://superior-mason.com/wp-content/plugins/portfolio-wp/js/jquery/jquery.lightgallery.js?ver=7.0.7

js superior-mason.com collected 2026-10-09 23:05:41 UTC 37,887 bytes, 812 lines download raw bytes

1/** ==========================================================
2
3* jquery lightGallery.js v1.1.5 // 3/29/2015
4* http://sachinchoolur.github.io/lightGallery/
5* Released under the MIT License - http://opensource.org/licenses/mit-license.html  ---- FREE ----
6
7=========================================================/**/
8;
9(function ($) {
10    "use strict";
11    $.fn.lightGallery = function (options) {
12        var defaults = {
13                mode: 'slide',
14                useCSS: true,
15                cssEasing: 'ease', //'cubic-bezier(0.25, 0, 0.25, 1)',//
16                easing: 'linear', //'for jquery animation',//
17                speed: 600,
18                addClass: '',
19
20                closable: true,
21                loop: false,
22                auto: false,
23                pause: 4000,
24                escKey: true,
25                controls: true,
26                hideControlOnEnd: false,
27
28                preload: 1, //number of preload slides. will exicute only after the current slide is fully loaded. ex:// you clicked on 4th image and if preload = 1 then 3rd slide and 5th slide will be loaded in the background after the 4th slide is fully loaded.. if preload is 2 then 2nd 3rd 5th 6th slides will be preloaded.. ... ...
29                showAfterLoad: true,
30                selector: null,
31                index: false,
32
33                lang: {
34                    allPhotos: 'All photos'
35                },
36                counter: false,
37
38                exThumbImage: false,
39                thumbnail: true,
40                showThumbByDefault: false,
41                animateThumb: true,
42                currentPagerPosition: 'middle',
43                thumbWidth: 100,
44                thumbMargin: 5,
45
46
47                mobileSrc: false,
48                mobileSrcMaxWidth: 640,
49                swipeThreshold: 50,
50                enableTouch: true,
51                enableDrag: true,
52
53                vimeoColor: 'CCCCCC',
54                youtubePlayerParams: false, // See: https://developers.google.com/youtube/player_parameters
55                videoAutoplay: true,
56                videoMaxWidth: '855px',
57
58                dynamic: false,
59                dynamicEl: [],
60                //callbacks
61
62                onOpen: function (plugin) {},
63                onSlideBefore: function (plugin) {},
64                onSlideAfter: function (plugin) {},
65                onSlideNext: function (plugin) {},
66                onSlidePrev: function (plugin) {},
67                onBeforeClose: function (plugin) {},
68                onCloseAfter: function (plugin) {},
69                onOpenExternal  : function(plugin, index) {},
70                onToggleInfo  : function(plugin) {}
71            },
72            el = $(this),
73            plugin = this,
74            $children = null,
75            index = 0,
76            isActive = false,
77            lightGalleryOn = false,
78            isTouch = document.createTouch !== undefined || ('ontouchstart' in window) || ('onmsgesturechange' in window) || navigator.msMaxTouchPoints,
79            $gallery, $galleryCont, $slider, $slide, $prev, $next, prevIndex, $thumb_cont, $thumb, windowWidth, interval, usingThumb = false,
80            aTiming = false,
81            aSpeed = false;
82        var settings = $.extend(true, {}, defaults, options);
83        var lightGallery = {
84            init: function () {
85                el.each(function () {
86                    var $this = $(this);
87                    if (settings.dynamic) {
88                        $children = settings.dynamicEl;
89                        index = 0;
90                        prevIndex = index;
91                        setUp.init(index);
92                    } else {
93                        if (settings.selector !== null) {
94                            $children = $(settings.selector);
95                        } else {
96                            $children = $this.children();
97                        }
98                        $children.on('click', function (e) {
99                            if (settings.selector !== null) {
100                                $children = $(settings.selector);
101                            } else {
102                                $children = $this.children();
103                            }
104                            e.preventDefault();
105                            e.stopPropagation();
106                            index = $children.index(this);
107                            prevIndex = index;
108                            setUp.init(index);
109                        });
110                    }
111                });
112            }
113        };
114        var setUp = {
115            init: function () {
116                isActive = true;
117                this.structure();
118                this.getWidth();
119                this.closeSlide();
120                this.autoStart();
121                this.counter();
122                this.slideTo();
123                this.buildThumbnail();
124                this.addInfoHtml();
125                this.keyPress();
126                if (settings.index) {
127                    this.slide(settings.index);
128                    this.animateThumb(settings.index);
129                } else {
130                    this.slide(index);
131                    this.animateThumb(index);
132                }
133                if (settings.enableDrag) {
134                    this.touch();
135                }
136                if (settings.enableTouch) {
137                    this.enableTouch();
138                }
139
140                setTimeout(function () {
141                    $gallery.addClass('opacity');
142                }, 50);
143            },
144            structure: function () {
145                $('body').append('<div id="lg-outer" class="' + settings.addClass + '"><div id="lg-gallery"><div id="lg-slider"></div><a id="lg-close" class="close"><i class="fa fa-close cl-icon"></a></div></div>').addClass('light-gallery');
146                $galleryCont = $('#lg-outer');
147                $gallery = $('#lg-gallery');
148                if (settings.showAfterLoad === true) {
149                    $gallery.addClass('show-after-load');
150                }
151                $slider = $gallery.find('#lg-slider');
152                var slideList = '';
153                if (settings.dynamic) {
154                    for (var i = 0; i < settings.dynamicEl.length; i++) {
155                        slideList += '<div class="lg-slide"></div>';
156                    }
157                } else {
158                    $children.each(function () {
159                        slideList += '<div class="lg-slide"></div>';
160                    });
161                }
162                $slider.append(slideList);
163                $slide = $gallery.find('.lg-slide');
164            },
165            closeSlide: function () {
166                var $this = this;
167                if (settings.closable) {
168                    $('#lg-outer')
169                        .on('click', function (event) {
170                            if ($(event.target).is('.lg-slide')) {
171                                plugin.destroy(false);
172                            }
173                        });
174                }
175                $('#lg-close').bind('click touchend', function () {
176                    plugin.destroy(false);
177                });
178            },
179            getWidth: function () {
180                var resizeWindow = function () {
181                    windowWidth = $(window).width();
182                };
183                $(window).bind('resize.lightGallery', resizeWindow());
184            },
185            doCss: function () {
186                var support = function () {
187                    var transition = ['transition', 'MozTransition', 'WebkitTransition', 'OTransition', 'msTransition', 'KhtmlTransition'];
188                    var root = document.documentElement;
189                    for (var i = 0; i < transition.length; i++) {
190                        if (transition[i] in root.style) {
191                            return true;
192                        }
193                    }
194                };
195                if (settings.useCSS && support()) {
196                    return true;
197                }
198                return false;
199            },
200            enableTouch: function () {
201                var $this = this;
202                if (isTouch) {
203                    var startCoords = {},
204                        endCoords = {};
205                    $('body').on('touchstart.lightGallery', function (e) {
206                        endCoords = e.originalEvent.targetTouches[0];
207                        startCoords.pageX = e.originalEvent.targetTouches[0].pageX;
208                        startCoords.pageY = e.originalEvent.targetTouches[0].pageY;
209                    });
210                    $('body').on('touchmove.lightGallery', function (e) {
211                        var orig = e.originalEvent;
212                        endCoords = orig.targetTouches[0];
213                        
214                        //patch
215                        if(!jQuery(e.target).parent().hasClass("lg-info")) e.preventDefault();
216                    });
217                    $('body').on('touchend.lightGallery', function (e) {
218                        var distance = endCoords.pageX - startCoords.pageX,
219                            swipeThreshold = settings.swipeThreshold;
220                        if (distance >= swipeThreshold) {
221                            $this.prevSlide();
222                            clearInterval(interval);
223                        } else if (distance <= -swipeThreshold) {
224                            $this.nextSlide();
225                            clearInterval(interval);
226                        }
227                    });
228                }
229            },
230            touch: function () {
231                var xStart, xEnd;
232                var $this = this;
233                $('.light-gallery').bind('mousedown', function (e) {
234                    e.stopPropagation();
235                    e.preventDefault();
236                    xStart = e.pageX;
237                });
238                $('.light-gallery').bind('mouseup', function (e) {
239                    e.stopPropagation();
240                    e.preventDefault();
241                    xEnd = e.pageX;
242                    if (xEnd - xStart > 20) {
243                        $this.prevSlide();
244                    } else if (xStart - xEnd > 20) {
245                        $this.nextSlide();
246                    }
247                });
248            },
249            isVideo: function (src, index) {
250                var youtube = src.match(/\/\/(?:www\.)?youtu(?:\.be|be\.com)\/(?:watch\?v=|embed\/)?([a-z0-9_\-]+)/i);
251                var vimeo = src.match(/\/\/(?:www\.)?vimeo.com\/([0-9a-z\-_]+)/i);
252                var iframe = false;
253                if (settings.dynamic) {
254                    if (settings.dynamicEl[index].iframe == 'true') {
255                        iframe = true;
256                    }
257                } else {
258                    if ($children.eq(index).attr('data-iframe') == 'true') {
259                        iframe = true;
260                    }
261                }
262                if (youtube || vimeo || iframe) {
263                    return true;
264                }
265            },
266            loadVideo: function (src, _id) {
267                var youtube = src.match(/\/\/(?:www\.)?youtu(?:\.be|be\.com)\/(?:watch\?v=|embed\/)?([a-z0-9_\-]+)/i);
268                var vimeo = src.match(/\/\/(?:www\.)?vimeo.com\/([0-9a-z\-_]+)/i);
269                var video = '';
270                var a = '';
271                if (youtube) {
272                    if (settings.videoAutoplay === true && lightGalleryOn === false) {
273                        a = '?autoplay=1&rel=0&wmode=opaque';
274                    } else {
275                        a = '?wmode=opaque';
276                    }
277
278                    if (settings.youtubePlayerParams) {
279                        var youtubeParams = $.param(settings.youtubePlayerParams);
280                        a = a + '&' + youtubeParams;
281                    }
282
283                    video = '<iframe class="object" width="560" height="315" src="//www.youtube.com/embed/' + youtube[1] + a + '" frameborder="0" allowfullscreen></iframe>';
284                } else if (vimeo) {
285                    if (settings.videoAutoplay === true && lightGalleryOn === false) {
286                        a = 'autoplay=1&amp;';
287                    } else {
288                        a = '';
289                    }
290                    video = '<iframe class="object" id="video' + _id + '" width="560" height="315"  src="http://player.vimeo.com/video/' + vimeo[1] + '?' + a + 'byline=0&amp;portrait=0&amp;color=' + settings.vimeoColor + '" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>';
291                } else {
292                    video = '<iframe class="object" frameborder="0" src="' + src + '"  allowfullscreen="true"></iframe>';
293                }
294                return '<div class="video-cont" style="max-width:' + settings.videoMaxWidth + ' !important;"><div class="video">' + video + '</div></div>';
295            },
296            addHtml: function (index) {
297                var dataSubHtml = null;
298                if (settings.dynamic) {
299                    dataSubHtml = settings.dynamicEl[index]['sub-html'];
300                } else {
301                    dataSubHtml = $children.eq(index).attr('data-sub-html');
302                }
303                if (typeof dataSubHtml !== 'undefined' && dataSubHtml !== null) {
304                    var fL = dataSubHtml.substring(0, 1);
305                    if (fL == '.' || fL == '#') {
306                        dataSubHtml = $(dataSubHtml).html();
307                    } else {
308                        dataSubHtml = dataSubHtml;
309                    }
310                    $slide.eq(index).append(dataSubHtml);
311                }
312            },
313            addInfoHtml: function () {
314                var dataSubHtml = null;
315                if (settings.dynamic) {
316                    dataSubHtml = settings['sub-html'];
317                } else {
318                    dataSubHtml = $(plugin).attr('data-sub-html');
319                }
320                if (typeof dataSubHtml !== 'undefined' && dataSubHtml !== null) {
321                    $gallery.append(dataSubHtml);
322                }
323            },
324            preload: function (index) {
325                var newIndex = index;
326                for (var k = 0; k <= settings.preload; k++) {
327                    if (k >= $children.length - index) {
328                        break;
329                    }
330                    this.loadContent(newIndex + k, true);
331                }
332                for (var h = 0; h <= settings.preload; h++) {
333                    if (newIndex - h < 0) {
334                        break;
335                    }
336                    this.loadContent(newIndex - h, true);
337                }
338            },
339            loadObj: function (r, index) {
340                var $this = this;
341                $slide.eq(index).find('.object').on('load error', function () {
342                    $slide.eq(index).addClass('complete');
343                });
344                if (r === false) {
345                    if (!$slide.eq(index).hasClass('complete')) {
346                        $slide.eq(index).find('.object').on('load error', function () {
347                            $this.preload(index);
348                        });
349                    } else {
350                        $this.preload(index);
351                    }
352                }
353            },
354            loadContent: function (index, rec) {
355                var $this = this;
356                var i, j, l = $children.length - index;
357                var src;
358
359                if (settings.preload > $children.length) {
360                    settings.preload = $children.length;
361                }
362                if (settings.mobileSrc === true && windowWidth <= settings.mobileSrcMaxWidth) {
363                    if (settings.dynamic) {
364                        src = settings.dynamicEl[index].mobileSrc;
365                    } else {
366                        src = $children.eq(index).attr('data-responsive-src');
367                    }
368                }
369
370                // Fall back to use non-responsive source if no responsive source was found
371                if (!src) {
372                    if (settings.dynamic) {
373                        src = settings.dynamicEl[index].src;
374                    } else {
375                        src = $children.eq(index).attr('data-src');
376                    }
377                }
378                var time = 0;
379                if (rec === true) {
380                    time = settings.speed + 400;
381                }
382
383                if (typeof src !== 'undefined' && src !== '') {
384                    if (!$this.isVideo(src, index)) {
385                        setTimeout(function () {
386                            if (!$slide.eq(index).hasClass('loaded')) {
387                                $slide.eq(index).prepend('<img class="object" src="' + src + '" />');
388                                $this.addHtml(index);
389                                $slide.eq(index).addClass('loaded');
390                            }
391                            $this.loadObj(rec, index);
392                        }, time);
393                    } else {
394                        setTimeout(function () {
395                            if (!$slide.eq(index).hasClass('loaded')) {
396                                $slide.eq(index).prepend($this.loadVideo(src, index));
397                                $this.addHtml(index);
398                                $slide.eq(index).addClass('loaded');
399
400                                if (settings.auto && settings.videoAutoplay === true) {
401                                    clearInterval(interval);
402                                }
403                            }
404                            $this.loadObj(rec, index);
405                        }, time);
406
407                    }
408                } else {
409                    setTimeout(function () {
410                        if (!$slide.eq(index).hasClass('loaded')) {
411                            var dataHtml = null;
412                            if (settings.dynamic) {
413                                dataHtml = settings.dynamicEl[index].html;
414                            } else {
415                                dataHtml = $children.eq(index).attr('data-html');
416                            }
417                            if (typeof dataHtml !== 'undefined' && dataHtml !== null) {
418                                var fL = dataHtml.substring(0, 1);
419                                if (fL == '.' || fL == '#') {
420                                    dataHtml = $(dataHtml).html();
421                                } else {
422                                    dataHtml = dataHtml;
423                                }
424                            }
425                            if (typeof dataHtml !== 'undefined' && dataHtml !== null) {
426                                $slide.eq(index).append('<div class="video-cont" style="max-width:' + settings.videoMaxWidth + ' !important;"><div class="video">' + dataHtml + '</div></div>');
427                            }
428                            $this.addHtml(index);
429                            $slide.eq(index).addClass('loaded complete');
430
431                            if (settings.auto && settings.videoAutoplay === true) {
432                                clearInterval(interval);
433                            }
434                        }
435                        $this.loadObj(rec, index);
436                    }, time);
437                }
438
439            },
440            counter: function () {
441                if (settings.counter === true) {
442                    var slideCount = $("#lg-slider > div").length;
443                    $gallery.append("<div id='lg-counter'><span id='lg-counter-current'></span> / <span id='lg-counter-all'>" + slideCount + "</span></div>");
444                }
445            },
446            buildThumbnail: function () {
447                if (settings.thumbnail === true && $children.length > 1) {
448                    var $this = this,
449                        $close = '';
450                    if (!settings.showThumbByDefault) {
451                        $close = '<span class="close ib"><i class="fa fa-close cl-icon"></span>';
452                    }
453                    $gallery.append('<div class="thumb-cont"><div class="thumb-info">' + $close + '</div><div class="thumb-inner"></div></div>');
454                    $thumb_cont = $gallery.find('.thumb-cont');
455                    $prev.after('<a class="cl-external"><i class="fa fa-chain cl-icon"></a>'); //mx: 
456                    $prev.after('<a class="cl-info"><i class="fa fa-info cl-icon"></i></a>'); //mx: 
457                    $prev.after('<a class="cl-thumb"><i class="fa fa-list cl-icon"></a>');
458                    $prev.parent().addClass('has-thumb');
459                    $gallery.find('.cl-thumb').bind('click touchend', function () {
460                        $gallery.addClass('open');
461                        if ($this.doCss() && settings.mode === 'slide') {
462                            $slide.eq(index).prevAll().removeClass('next-sl
462ide').addClass('prev-slide');
463                            $slide.eq(index).nextAll().removeClass('prev-slide').addClass('next-slide');
464                        }
465                    });
466                    $gallery.find('.cl-external').bind('click touchend', function () {
467                        settings.onOpenExternal.call(this, plugin,$gallery.find('.thumb.active').index());
468                    });
469                    $gallery.find('.cl-info').bind('click touchend', function () {
470                        settings.onToggleInfo.call(this, plugin);
471                    });
472                    $gallery.find('.thumb-cont .close').bind('click touchend', function () {
473                        $gallery.removeClass('open');
474                    });
475                    var thumbInfo = $gallery.find('.thumb-info');
476                    var $thumb_inner = $gallery.find('.thumb-inner');
477                    var thumbList = '';
478                    var thumbImg;
479                    if (settings.dynamic) {
480                        for (var i = 0; i < settings.dynamicEl.length; i++) {
481                            thumbImg = settings.dynamicEl[i].thumb;
482                            thumbList += '<div class="thumb"><img src="' + thumbImg + '" /></div>';
483                        }
484                    } else {
485                        $children.each(function () {
486                            if (settings.exThumbImage === false || typeof $(this).attr(settings.exThumbImage) == 'undefined' || $(this).attr(settings.exThumbImage) === null) {
487                                thumbImg = $(this).find('img').attr('src');
488                            } else {
489                                thumbImg = $(this).attr(settings.exThumbImage);
490                            }
491                            thumbList += '<div class="thumb"><img src="' + thumbImg + '" /></div>';
492                        });
493                    }
494                    $thumb_inner.append(thumbList);
495                    $thumb = $thumb_inner.find('.thumb');
496                    $thumb.css({
497                        'margin-right': settings.thumbMargin + 'px',
498                        'width': settings.thumbWidth + 'px'
499                    });
500                    if (settings.animateThumb === true) {
501                        var width = ($children.length * (settings.thumbWidth + settings.thumbMargin));
502                        $gallery.find('.thumb-inner').css({
503                            'width': width + 'px',
504                            'position': 'relative',
505                            'transition-duration': settings.speed + 'ms'
506                        });
507                    }
508                    $thumb.bind('click touchend', function () {
509                        usingThumb = true;
510                        var index = $(this).index();
511                        $thumb.removeClass('active');
512                        $(this).addClass('active');
513                        $this.slide(index);
514                        $this.animateThumb(index);
515                        clearInterval(interval);
516                    });
517                    thumbInfo.prepend('<span class="ib count">' + settings.lang.allPhotos + ' (' + $thumb.length + ')</span>');
518                    if (settings.showThumbByDefault) {
519                        $gallery.addClass('open');
520                    }
521                }
522            },
523            animateThumb: function (index) {
524                if (settings.animateThumb === true) {
525                    var thumb_contW = $gallery.find('.thumb-cont').width();
526                    var position;
527                    switch (settings.currentPagerPosition) {
528                    case 'left':
529                        position = 0;
530                        break;
531                    case 'middle':
532                        position = (thumb_contW / 2) - (settings.thumbWidth / 2);
533                        break;
534                    case 'right':
535                        position = thumb_contW - settings.thumbWidth;
536                    }
537                    var left = ((settings.thumbWidth + settings.thumbMargin) * index - 1) - position;
538                    var width = ($children.length * (settings.thumbWidth + settings.thumbMargin));
539                    if (left > (width - thumb_contW)) {
540                        left = width - thumb_contW;
541                    }
542                    if (left < 0) {
543                        left = 0;
544                    }
545                    if (this.doCss()) {
546                        $gallery.find('.thumb-inner').css('transform', 'translate3d(-' + left + 'px, 0px, 0px)');
547                    } else {
548                        $gallery.find('.thumb-inner').animate({
549                            left: -left + "px"
550                        }, settings.speed);
551                    }
552                }
553            },
554            slideTo: function () {
555                var $this = this;
556                if (settings.controls === true && $children.length > 1) {
557                    $gallery.append('<div id="lg-action"><a id="lg-prev"></a><a id="lg-next"></a></div>');
558                    $prev = $gallery.find('#lg-prev');
559                    $next = $gallery.find('#lg-next');
560                    $prev.bind('click', function () {
561                        $this.prevSlide();
562                        clearInterval(interval);
563                    });
564                    $next.bind('click', function () {
565                        $this.nextSlide();
566                        clearInterval(interval);
567                    });
568                }
569            },
570            autoStart: function () {
571                var $this = this;
572                if (settings.auto === true) {
573                    interval = setInterval(function () {
574                        if (index + 1 < $children.length) {
575                            index = index;
576                        } else {
577                            index = -1;
578                        }
579                        index++;
580                        $this.slide(index);
581                    }, settings.pause);
582                }
583            },
584            keyPress: function () {
585                var $this = this;
586                $(window).bind('keyup.lightGallery', function (e) {
587                    e.preventDefault();
588                    e.stopPropagation();
589                    if (e.keyCode === 37) {
590                        $this.prevSlide();
591                        clearInterval(interval);
592                    }
593                    if (e.keyCode === 38 && settings.thumbnail === true && $children.length > 1) {
594                        if (!$gallery.hasClass('open')) {
595                            if ($this.doCss() && settings.mode === 'slide') {
596                                $slide.eq(index).prevAll().removeClass('next-sl
596ide').addClass('prev-slide');
597                                $slide.eq(index).nextAll().removeClass('prev-slide').addClass('next-slide');
598                            }
599                            $gallery.addClass('open');
600                        }
601                    } else if (e.keyCode === 39) {
602                        $this.nextSlide();
603                        clearInterval(interval);
604                    }
605                    if (e.keyCode === 40 && settings.thumbnail === true && $children.length > 1 && !settings.showThumbByDefault) {
606                        if ($gallery.hasClass('open')) {
607                            $gallery.removeClass('open');
608                        }
609                    } else if (settings.escKey === true && e.keyCode === 27) {
610                        if (!settings.showThumbByDefault && $gallery.hasClass('open')) {
611                            $gallery.removeClass('open');
612                        } else {
613                            plugin.destroy(false);
614                        }
615                    }
616                });
617            },
618            nextSlide: function () {
619                var $this = this;
620                index = $slide.index($slide.eq(prevIndex));
621                if (index + 1 < $children.length) {
622                    index++;
623                    $this.slide(index);
624                } else {
625                    if (settings.loop) {
626                        index = 0;
627                        $this.slide(index);
628                    } else if (settings.thumbnail === true && $children.length > 1 && !settings.showThumbByDefault) {
629                        $gallery.addClass('open');
630                    } else {
631                        $slide.eq(index).find('.object').addClass('right-end');
632                        setTimeout(function () {
633                            $slide.find('.object').removeClass('right-end');
634                        }, 400);
635                    }
636                }
637                $this.animateThumb(index);
638                settings.onSlideNext.call(this, plugin);
639            },
640            prevSlide: function () {
641                var $this = this;
642                index = $slide.index($slide.eq(prevIndex));
643                if (index > 0) {
644                    index--;
645                    $this.slide(index);
646                } else {
647                    if (settings.loop) {
648                        index = $children.length - 1;
649                        $this.slide(index);
650                    } else if (settings.thumbnail === true && $children.length > 1 && !settings.showThumbByDefault) {
651                        $gallery.addClass('open');
652                    } else {
653                        $slide.eq(index).find('.object').addClass('left-end');
654                        setTimeout(function () {
655                            $slide.find('.object').removeClass('left-end');
656                        }, 400);
657                    }
658                }
659                $this.animateThumb(index);
660                settings.onSlidePrev.call(this, plugin);
661            },
662            slide: function (index) {
663                var $this = this;
664                if (lightGalleryOn) {
665                    setTimeout(function () {
666                        $this.loadContent(index, false);
667                    }, settings.speed + 400);
668                    if (!$slider.hasClass('on')) {
669                        $slider.addClass('on');
670                    }
671                    if (this.doCss() && settings.speed !== '') {
672                        if (!$slider.hasClass('speed')) {
673                            $slider.addClass('speed');
674                        }
675                        if (aSpeed === false) {
676                            $slider.css('transition-duration', settings.speed + 'ms');
677                            aSpeed = true;
678                        }
679                    }
680                    if (this.doCss() && settings.cssEasing !== '') {
681                        if (!$slider.hasClass('timing')) {
682                            $slider.addClass('timing');
683                        }
684                        if (aTiming === false) {
685                            $slider.css('transition-timing-function', settings.cssEasing);
686                            aTiming = true;
687                        }
688                    }
689                    settings.onSlideBefore.call(this, plugin);
690                } else {
691                    $this.loadContent(index, false);
692                }
693                if (settings.mode === 'slide') {
694                    var isiPad = navigator.userAgent.match(/iPad/i) !== null;
695                    if (this.doCss() && !$slider.hasClass('slide') && !isiPad) {
696                        $slider.addClass('slide');
697                    } else if (this.doCss() && !$slider.hasClass('use-left') && isiPad) {
698                        $slider.addClass('use-left');
699                    }
700                    /*                  if(this.doCss()){
701                        $slider.css({ 'transform' : 'translate3d('+(-index*100)+'%, 0px, 0px)' });
702                    }*/
703                    if (!this.doCss() && !lightGalleryOn) {
704                        $slider.css({
705                            left: (-index * 100) + '%'
706                        });
707                        //$slide.eq(index).css('transition','none');
708                    } else if (!this.doCss() && lightGalleryOn) {
709                        $slider.animate({
710                            left: (-index * 100) + '%'
711                        }, settings.speed, settings.easing);
712                    }
713                } else if (settings.mode === 'fade') {
714                    if (this.doCss() && !$slider.hasClass('fade-m')) {
715                        $slider.addClass('fade-m');
716                    } else if (!this.doCss() && !$slider.hasClass('animate')) {
717                        $slider.addClass('animate');
718                    }
719                    if (!this.doCss() && !lightGalleryOn) {
720                        $slide.fadeOut(100);
721                        $slide.eq(index).fadeIn(100);
722                    } else if (!this.doCss() && lightGalleryOn) {
723                        $slide.eq(prevIndex).fadeOut(settings.speed, settings.easing);
724                        $slide.eq(index).fadeIn(settings.speed, settings.easing);
725                    }
726                }
727                if (index + 1 >= $children.length && settings.auto && settings.loop === false) {
728                    clearInterval(interval);
729                }
730                $slide.eq(prevIndex).removeClass('current');
731                $slide.eq(index).addClass('current');
732                if (this.doCss() && settings.mode === 'slide') {
733                    if (usingThumb === false) {
734                        $('.prev-slide').removeClass('prev-slide');
735                        $('.next-slide').removeClass('next-slide');
736                        $slide.eq(index - 1).addClass('prev-slide');
737                        $slide.eq(index + 1).addClass('next-slide');
738                    } else {
739                        $slide.eq(index).prevAll().removeClass('next-slide').addClass('prev-slide');
740                        $slide.eq(index).nextAll().removeClass('prev-slide').addClass('next-slide');
741                    }
742                }
743                if (settings.thumbnail === true && $children.length > 1) {
744                    $thumb.removeClass('active');
745                    $thumb.eq(index).addClass('active');
746                }
747                if (settings.controls && settings.hideControlOnEnd && settings.loop === false && $children.length > 1) {
748                    var l = $children.length;
749                    l = parseInt(l) - 1;
750                    if (index === 0) {
751                        $prev.addClass('disabled');
752                        $next.removeClass('disabled');
753                    } else if (index === l) {
754                        $prev.removeClass('disabled');
755                        $next.addClass('disabled');
756                    } else {
757                        $prev.add($next).removeClass('disabled');
758                    }
759                }
760                prevIndex = index;
761                lightGalleryOn === false ? settings.onOpen.call(this, plugin) : settings.onSlideAfter.call(this, plugin);
762                setTimeout(function () {
763                    lightGalleryOn = true;
764                });
765                usingThumb = false;
766                if (settings.counter) {
767                    $("#lg-counter-current").text(index + 1);
768                }
769                $(window).bind('resize.lightGallery', function () {
770                    setTimeout(function () {
771                        $this.animateThumb(index);
772                    }, 200);
773                });
774            }
775        };
776        plugin.isActive = function () {
777            if (isActive === true) {
778                return true;
779            } else {
780                return false;
781            }
782
783        };
784        plugin.destroy = function (d) {
785            isActive = false;
786            d = typeof d !== 'undefined' ? false : true;
787            settings.onBeforeClose.call(this, plugin);
788            var lightGalleryOnT = lightGalleryOn;
789            lightGalleryOn = false;
790            aTiming = false;
791            aSpeed = false;
792            usingThumb = false;
793            clearInterval(interval);
794            if (d === true) {
795                $children.off('click touch touchstart');
796            }
797            $('.light-gallery').off('mousedown mouseup');
798            $('body').off('touchstart.lightGallery touchmove.lightGallery touchend.lightGallery');
799            $(window).off('resize.lightGallery keyup.lightGallery');
800            if (lightGalleryOnT === true) {
801                $gallery.addClass('fade-m');
802                setTimeout(function () {
803                    $galleryCont.remove();
804                    $('body').removeClass('light-gallery');
805                }, 500);
806            }
807            settings.onCloseAfter.call(this, plugin);
808        };
809        lightGallery.init();
810        return this;
811    };
812}(jQuery));

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.