PageSourceSearch

https://m5m7.ru/bitrix/cache/js/s1/makoto/template_ed20b095d14b482…482a7bd2d28b669ff924_v1.js?1785742516241255

js m5m7.ru collected 2026-10-07 18:07:22 UTC 241,255 bytes, 4,742 lines download raw bytes

1
2; /* Start:"a:4:{s:4:"full";s:63:"/local/templates/makoto/assets/js/slick.min.js?1785742512151819";s:6:"source";s:46:"/local/templates/makoto/assets/js/slick.min.js";s:3:"min";s:0:"";s:3:"map";s:0:"";}"*/
3/*
4     _ _      _       _
5 ___| (_) ___| | __  (_)___
6/ __| | |/ __| |/ /  | / __|
7\__ \ | | (__|   < _ | \__ \
8|___/_|_|\___|_|\_(_)/ |___/
9                   |__/
10
11 Version: 1.8.1
12  Author: Ken Wheeler
13 Website: http://kenwheeler.github.io
14    Docs: http://kenwheeler.github.io/slick
15    Repo: http://github.com/kenwheeler/slick
16  Issues: http://github.com/kenwheeler/slick/issues
17
18 */
19/* global window, document, define, jQuery, setInterval, clearInterval */
20;(function(factory) {
21    'use strict';
22    if (typeof define === 'function' && define.amd) {
23        define(['jquery'], factory);
24    } else if (typeof exports !== 'undefined') {
25        module.exports = factory(require('jquery'));
26    } else {
27        factory(jQuery);
28    }
29
30}(function($) {
31    'use strict';
32    var Slick = window.Slick || {};
33
34    Slick = (function() {
35
36        var instanceUid = 0;
37
38        function Slick(element, settings) {
39
40            var _ = this, dataSettings;
41
42            _.defaults = {
43                accessibility: true,
44                adaptiveHeight: false,
45                appendArrows: $(element),
46                appendDots: $(element),
47                arrows: true,
48                asNavFor: null,
49                prevArrow: '<button class="slick-prev" aria-label="Previous" type="button">Previous</button>',
50                nextArrow: '<button class="slick-next" aria-label="Next" type="button">Next</button>',
51                autoplay: false,
52                autoplaySpeed: 3000,
53                centerMode: false,
54                centerPadding: '50px',
55                cssEase: 'ease',
56                customPaging: function(slider, i) {
57                    return $('<button type="button" />').text(i + 1);
58                },
59                dots: false,
60                dotsClass: 'slick-dots',
61                draggable: true,
62                easing: 'linear',
63                edgeFriction: 0.35,
64                fade: false,
65                focusOnSelect: false,
66                focusOnChange: false,
67                infinite: true,
68                initialSlide: 0,
69                lazyLoad: 'ondemand',
70                mobileFirst: false,
71                pauseOnHover: true,
72                pauseOnFocus: true,
73                pauseOnDotsHover: false,
74                respondTo: 'window',
75                responsive: null,
76                rows: 1,
77                rtl: false,
78                slide: '',
79                slidesPerRow: 1,
80                slidesToShow: 1,
81                slidesToScroll: 1,
82                speed: 500,
83                swipe: true,
84                swipeToSlide: false,
85                touchMove: true,
86                touchThreshold: 5,
87                useCSS: true,
88                useTransform: true,
89                variableWidth: false,
90                vertical: false,
91                verticalSwiping: false,
92                waitForAnimate: true,
93                zIndex: 1000
94            };
95
96            _.initials = {
97                animating: false,
98                dragging: false,
99                autoPlayTimer: null,
100                currentDirection: 0,
101                currentLeft: null,
102                currentSlide: 0,
103                direction: 1,
104                $dots: null,
105                listWidth: null,
106                listHeight: null,
107                loadIndex: 0,
108                $nextArrow: null,
109                $prevArrow: null,
110                scrolling: false,
111                slideCount: null,
112                slideWidth: null,
113                $slideTrack: null,
114                $slides: null,
115                sliding: false,
116                slideOffset: 0,
117                swipeLeft: null,
118                swiping: false,
119                $list: null,
120                touchObject: {},
121                transformsEnabled: false,
vendor: 25,035 bytes, lines 122-905
122                unslicked: false
123            };
124
125            $.extend(_, _.initials);
126
127            _.activeBreakpoint = null;
128            _.animType = null;
129            _.animProp = null;
130            _.breakpoints = [];
131            _.breakpointSettings = [];
132            _.cssTransitions = false;
133            _.focussed = false;
134            _.interrupted = false;
135            _.hidden = 'hidden';
136            _.paused = true;
137            _.positionProp = null;
138            _.respondTo = null;
139            _.rowCount = 1;
140            _.shouldClick = true;
141            _.$slider = $(element);
142            _.$slidesCache = null;
143            _.transformType = null;
144            _.transitionType = null;
145            _.visibilityChange = 'visibilitychange';
146            _.windowWidth = 0;
147            _.windowTimer = null;
148
149            dataSettings = $(element).data('slick') || {};
150
151            _.options = $.extend({}, _.defaults, settings, dataSettings);
152
153            _.currentSlide = _.options.initialSlide;
154
155            _.originalSettings = _.options;
156
157            if (typeof document.mozHidden !== 'undefined') {
158                _.hidden = 'mozHidden';
159                _.visibilityChange = 'mozvisibilitychange';
160            } else if (typeof document.webkitHidden !== 'undefined') {
161                _.hidden = 'webkitHidden';
162                _.visibilityChange = 'webkitvisibilitychange';
163            }
164
165            _.autoPlay = $.proxy(_.autoPlay, _);
166            _.autoPlayClear = $.proxy(_.autoPlayClear, _);
167            _.autoPlayIterator = $.proxy(_.autoPlayIterator, _);
168            _.changeSlide = $.proxy(_.changeSlide, _);
169            _.clickHandler = $.proxy(_.clickHandler, _);
170            _.selectHandler = $.proxy(_.selectHandler, _);
171            _.setPosition = $.proxy(_.setPosition, _);
172            _.swipeHandler = $.proxy(_.swipeHandler, _);
173            _.dragHandler = $.proxy(_.dragHandler, _);
174            _.keyHandler = $.proxy(_.keyHandler, _);
175
176            _.instanceUid = instanceUid++;
177
178            // A simple way to check for HTML strings
179            // Strict HTML recognition (must start with <)
180            // Extracted from jQuery v1.11 source
181            _.htmlExpr = /^(?:\s*(<[\w\W]+>)[^>]*)$/;
182
183
184            _.registerBreakpoints();
185            _.init(true);
186
187        }
188
189        return Slick;
190
191    }());
192
193    Slick.prototype.activateADA = function() {
194        var _ = this;
195
196        _.$slideTrack.find('.slick-active').attr({
197            'aria-hidden': 'false'
198        }).find('a, input, button, select').attr({
199            'tabindex': '0'
200        });
201
202    };
203
204    Slick.prototype.addSlide = Slick.prototype.slickAdd = function(markup, index, addBefore) {
205
206        var _ = this;
207
208        if (typeof(index) === 'boolean') {
209            addBefore = index;
210            index = null;
211        } else if (index < 0 || (index >= _.slideCount)) {
212            return false;
213        }
214
215        _.unload();
216
217        if (typeof(index) === 'number') {
218            if (index === 0 && _.$slides.length === 0) {
219                $(markup).appendTo(_.$slideTrack);
220            } else if (addBefore) {
221                $(markup).insertBefore(_.$slides.eq(index));
222            } else {
223                $(markup).insertAfter(_.$slides.eq(index));
224            }
225        } else {
226            if (addBefore === true) {
227                $(markup).prependTo(_.$slideTrack);
228            } else {
229                $(markup).appendTo(_.$slideTrack);
230            }
231        }
232
233        _.$slides = _.$slideTrack.children(this.options.slide);
234
235        _.$slideTrack.children(this.options.slide).detach();
236
237        _.$slideTrack.append(_.$slides);
238
239        _.$slides.each(function(index, element) {
240            $(element).attr('data-slick-index', index);
241        });
242
243        _.$slidesCache = _.$slides;
244
245        _.reinit();
246
247    };
248
249    Slick.prototype.animateHeight = function() {
250        var _ = this;
251        if (_.options.slidesToShow === 1 && _.options.adaptiveHeight === true && _.options.vertical === false) {
252            var targetHeight = _.$slides.eq(_.currentSlide).outerHeight(true);
253            _.$list.animate({
254                height: targetHeight
255            }, _.options.speed);
256        }
257    };
258
259    Slick.prototype.animateSlide = function(targetLeft, callback) {
260
261        var animProps = {},
262            _ = this;
263
264        _.animateHeight();
265
266        if (_.options.rtl === true && _.options.vertical === false) {
267            targetLeft = -targetLeft;
268        }
269        if (_.transformsEnabled === false) {
270            if (_.options.vertical === false) {
271                _.$slideTrack.animate({
272                    left: targetLeft
273                }, _.options.speed, _.options.easing, callback);
274            } else {
275                _.$slideTrack.animate({
276                    top: targetLeft
277                }, _.options.speed, _.options.easing, callback);
278            }
279
280        } else {
281
282            if (_.cssTransitions === false) {
283                if (_.options.rtl === true) {
284                    _.currentLeft = -(_.currentLeft);
285                }
286                $({
287                    animStart: _.currentLeft
288                }).animate({
289                    animStart: targetLeft
290                }, {
291                    duration: _.options.speed,
292                    easing: _.options.easing,
293                    step: function(now) {
294                        now = Math.ceil(now);
295                        if (_.options.vertical === false) {
296                            animProps[_.animType] = 'translate(' +
297                                now + 'px, 0px)';
298                            _.$slideTrack.css(animProps);
299                        } else {
300                            animProps[_.animType] = 'translate(0px,' +
301                                now + 'px)';
302                            _.$slideTrack.css(animProps);
303                        }
304                    },
305                    complete: function() {
306                        if (callback) {
307                            callback.call();
308                        }
309                    }
310                });
311
312            } else {
313
314                _.applyTransition();
315                targetLeft = Math.ceil(targetLeft);
316
317                if (_.options.vertical === false) {
318                    animProps[_.animType] = 'translate3d(' + targetLeft + 'px, 0px, 0px)';
319                } else {
320                    animProps[_.animType] = 'translate3d(0px,' + targetLeft + 'px, 0px)';
321                }
322                _.$slideTrack.css(animProps);
323
324                if (callback) {
325                    setTimeout(function() {
326
327                        _.disableTransition();
328
329                        callback.call();
330                    }, _.options.speed);
331                }
332
333            }
334
335        }
336
337    };
338
339    Slick.prototype.getNavTarget = function() {
340
341        var _ = this,
342            asNavFor = _.options.asNavFor;
343
344        if ( asNavFor && asNavFor !== null ) {
345            asNavFor = $(asNavFor).not(_.$slider);
346        }
347
348        return asNavFor;
349
350    };
351
352    Slick.prototype.asNavFor = function(index) {
353
354        var _ = this,
355            asNavFor = _.getNavTarget();
356
357        if ( asNavFor !== null && typeof asNavFor === 'object' ) {
358            asNavFor.each(function() {
359                var target = $(this).slick('getSlick');
360                if(!target.unslicked) {
361                    target.slideHandler(index, true);
362                }
363            });
364        }
365
366    };
367
368    Slick.prototype.applyTransition = function(slide) {
369
370        var _ = this,
371            transition = {};
372
373        if (_.options.fade === false) {
374            transition[_.transitionType] = _.transformType + ' ' + _.options.speed + 'ms ' + _.options.cssEase;
375        } else {
376            transition[_.transitionType] = 'opacity ' + _.options.speed + 'ms ' + _.options.cssEase;
377        }
378
379        if (_.options.fade === false) {
380            _.$slideTrack.css(transition);
381        } else {
382            _.$slides.eq(slide).css(transition);
383        }
384
385    };
386
387    Slick.prototype.autoPlay = function() {
388
389        var _ = this;
390
391        _.autoPlayClear();
392
393        if ( _.slideCount > _.options.slidesToShow ) {
394            _.autoPlayTimer = setInterval( _.autoPlayIterator, _.options.autoplaySpeed );
395        }
396
397    };
398
399    Slick.prototype.autoPlayClear = function() {
400
401        var _ = this;
402
403        if (_.autoPlayTimer) {
404            clearInterval(_.autoPlayTimer);
405        }
406
407    };
408
409    Slick.prototype.autoPlayIterator = function() {
410
411        var _ = this,
412            slideTo = _.currentSlide + _.options.slidesToScroll;
413
414        if ( !_.paused && !_.interrupted && !_.focussed ) {
415
416            if ( _.options.infinite === false ) {
417
418                if ( _.direction === 1 && ( _.currentSlide + 1 ) === ( _.slideCount - 1 )) {
419                    _.direction = 0;
420                }
421
422                else if ( _.direction === 0 ) {
423
424                    slideTo = _.currentSlide - _.options.slidesToScroll;
425
426                    if ( _.currentSlide - 1 === 0 ) {
427                        _.direction = 1;
428                    }
429
430                }
431
432            }
433
434            _.slideHandler( slideTo );
435
436        }
437
438    };
439
440    Slick.prototype.buildArrows = function() {
441
442        var _ = this;
443
444        if (_.options.arrows === true ) {
445
446            _.$prevArrow = $(_.options.prevArrow).addClass('slick-arrow');
447            _.$nextArrow = $(_.options.nextArrow).addClass('slick-arrow');
448
449            if( _.slideCount > _.options.slidesToShow ) {
450
451                _.$prevArrow.removeClass('slick-hidden').removeAttr('aria-hidden tabindex');
452                _.$nextArrow.removeClass('slick-hidden').removeAttr('aria-hidden tabindex');
453
454                if (_.htmlExpr.test(_.options.prevArrow)) {
455                    _.$prevArrow.prependTo(_.options.appendArrows);
456                }
457
458                if (_.htmlExpr.test(_.options.nextArrow)) {
459                    _.$nextArrow.appendTo(_.options.appendArrows);
460                }
461
462                if (_.options.infinite !== true) {
463                    _.$prevArrow
464                        .addClass('slick-disabled')
465                        .attr('aria-disabled', 'true');
466                }
467
468            } else {
469
470                _.$prevArrow.add( _.$nextArrow )
471
472                    .addClass('slick-hidden')
473                    .attr({
474                        'aria-disabled': 'true',
475                        'tabindex': '-1'
476                    });
477
478            }
479
480        }
481
482    };
483
484    Slick.prototype.buildDots = function() {
485
486        var _ = this,
487            i, dot;
488
489        if (_.options.dots === true && _.slideCount > _.options.slidesToShow) {
490
491            _.$slider.addClass('slick-dotted');
492
493            dot = $('<ul />').addClass(_.options.dotsClass);
494
495            for (i = 0; i <= _.getDotCount(); i += 1) {
496                dot.append($('<li />').append(_.options.customPaging.call(this, _, i)));
497            }
498
499            _.$dots = dot.appendTo(_.options.appendDots);
500
501            _.$dots.find('li').first().addClass('slick-active');
502
503        }
504
505    };
506
507    Slick.prototype.buildOut = function() {
508
509        var _ = this;
510
511        _.$slides =
512            _.$slider
513                .children( _.options.slide + ':not(.slick-cloned)')
514                .addClass('slick-slide');
515
516        _.slideCount = _.$slides.length;
517
518        _.$slides.each(function(index, element) {
519            $(element)
520                .attr('data-slick-index', index)
521                .data('originalStyling', $(element).attr('style') || '');
522        });
523
524        _.$slider.addClass('slick-slider');
525
526        _.$slideTrack = (_.slideCount === 0) ?
527            $('<div class="slick-track"/>').appendTo(_.$slider) :
528            _.$slides.wrapAll('<div class="slick-track"/>').parent();
529
530        _.$list = _.$slideTrack.wrap(
531            '<div class="slick-list"/>').parent();
532        _.$slideTrack.css('opacity', 0);
533
534        if (_.options.centerMode === true || _.options.swipeToSlide === true) {
535            _.options.slidesToScroll = 1;
536        }
537
538        $('img[data-lazy]', _.$slider).not('[src]').addClass('slick-loading');
539
540        _.setupInfinite();
541
542        _.buildArrows();
543
544        _.buildDots();
545
546        _.updateDots();
547
548
549        _.setSlideClasses(typeof _.currentSlide === 'number' ? _.currentSlide : 0);
550
551        if (_.options.draggable === true) {
552            _.$list.addClass('draggable');
553        }
554
555    };
556
557    Slick.prototype.buildRows = function() {
558
559        var _ = this, a, b, c, newSlides, numOfSlides, originalSlides,slidesPerSection;
560
561        newSlides = document.createDocumentFragment();
562        originalSlides = _.$slider.children();
563
564        if(_.options.rows > 0) {
565
566            slidesPerSection = _.options.slidesPerRow * _.options.rows;
567            numOfSlides = Math.ceil(
568                originalSlides.length / slidesPerSection
569            );
570
571            for(a = 0; a < numOfSlides; a++){
572                var slide = document.createElement('div');
573                for(b = 0; b < _.options.rows; b++) {
574                    var row = document.createElement('div');
575                    for(c = 0; c < _.options.slidesPerRow; c++) {
576                        var target = (a * slidesPerSection + ((b * _.options.slidesPerRow) + c));
577                        if (originalSlides.get(target)) {
578                            row.appendChild(originalSlides.get(target));
579                        }
580                    }
581                    slide.appendChild(row);
582                }
583                newSlides.appendChild(slide);
584            }
585
586            _.$slider.empty().append(newSlides);
587            _.$slider.children().children().children()
588                .css({
589                    'width':(100 / _.options.slidesPerRow) + '%',
590                    'display': 'inline-block'
591                });
592
593        }
594
595    };
596
597    Slick.prototype.checkResponsive = function(initial, forceUpdate) {
598
599        var _ = this,
600            breakpoint, targetBreakpoint, respondToWidth, triggerBreakpoint = false;
601        var sliderWidth = _.$slider.width();
602        var windowWidth = window.innerWidth || $(window).width();
603
604        if (_.respondTo === 'window') {
605            respondToWidth = windowWidth;
606        } else if (_.respondTo === 'slider') {
607            respondToWidth = sliderWidth;
608        } else if (_.respondTo === 'min') {
609            respondToWidth = Math.min(windowWidth, sliderWidth);
610        }
611
612        if ( _.options.responsive &&
613            _.options.responsive.length &&
614            _.options.responsive !== null) {
615
616            targetBreakpoint = null;
617
618            for (breakpoint in _.breakpoints) {
619                if (_.breakpoints.hasOwnProperty(breakpoint)) {
620                    if (_.originalSettings.mobileFirst === false) {
621                        if (respondToWidth < _.breakpoints[breakpoint]) {
622                            targetBreakpoint = _.breakpoints[breakpoint];
623                        }
624                    } else {
625                        if (respondToWidth > _.breakpoints[breakpoint]) {
626                            targetBreakpoint = _.breakpoints[breakpoint];
627                        }
628                    }
629                }
630            }
631
632            if (targetBreakpoint !== null) {
633                if (_.activeBreakpoint !== null) {
634                    if (targetBreakpoint !== _.activeBreakpoint || forceUpdate) {
635                        _.activeBreakpoint =
636                            targetBreakpoint;
637                        if (_.breakpointSettings[targetBreakpoint] === 'unslick') {
638                            _.unslick(targetBreakpoint);
639                        } else {
640                            _.options = $.extend({}, _.originalSettings,
641                                _.breakpointSettings[
642                                    targetBreakpoint]);
643                            if (initial === true) {
644                                _.currentSlide = _.options.initialSlide;
645                            }
646                            _.refresh(initial);
647                        }
648                        triggerBreakpoint = targetBreakpoint;
649                    }
650                } else {
651                    _.activeBreakpoint = targetBreakpoint;
652                    if (_.breakpointSettings[targetBreakpoint] === 'unslick') {
653                        _.unslick(targetBreakpoint);
654                    } else {
655                        _.options = $.extend({}, _.originalSettings,
656                            _.breakpointSettings[
657                                targetBreakpoint]);
658                        if (initial === true) {
659                            _.currentSlide = _.options.initialSlide;
660                        }
661                        _.refresh(initial);
662                    }
663                    triggerBreakpoint = targetBreakpoint;
664                }
665            } else {
666                if (_.activeBreakpoint !== null) {
667                    _.activeBreakpoint = null;
668                    _.options = _.originalSettings;
669                    if (initial === true) {
670                        _.currentSlide = _.options.initialSlide;
671                    }
672                    _.refresh(initial);
673                    triggerBreakpoint = targetBreakpoint;
674                }
675            }
676
677            // only trigger breakpoints during an actual break. not on initialize.
678            if( !initial && triggerBreakpoint !== false ) {
679                _.$slider.trigger('breakpoint', [_, triggerBreakpoint]);
680            }
681        }
682
683    };
684
685    Slick.prototype.changeSlide = function(event, dontAnimate) {
686
687        var _ = this,
688            $target = $(event.currentTarget),
689            indexOffset, slideOffset, unevenOffset;
690
691        // If target is a link, prevent default action.
692        if($target.is('a')) {
693            event.preventDefault();
694        }
695
696        // If target is not the <li> element (ie: a child), find the <li>.
697        if(!$target.is('li')) {
698            $target = $target.closest('li');
699        }
700
701        unevenOffset = (_.slideCount % _.options.slidesToScroll !== 0);
702        indexOffset = unevenOffset ? 0 : (_.slideCount - _.currentSlide) % _.options.slidesToScroll;
703
704        switch (event.data.message) {
705
706            case 'previous':
707                slideOffset = indexOffset === 0 ? _.options.slidesToScroll : _.options.slidesToShow - indexOffset;
708                if (_.slideCount > _.options.slidesToShow) {
709                    _.slideHandler(_.currentSlide - slideOffset, false, dontAnimate);
710                }
711                break;
712
713            case 'next':
714                slideOffset = indexOffset === 0 ? _.options.slidesToScroll : indexOffset;
715                if (_.slideCount > _.options.slidesToShow) {
716                    _.slideHandler(_.currentSlide + slideOffset, false, dontAnimate);
717                }
718                break;
719
720            case 'index':
721                var index = event.data.index === 0 ? 0 :
722                    event.data.index || $target.index() * _.options.slidesToScroll;
723
724                _.slideHandler(_.checkNavigable(index), false, dontAnimate);
725                $target.children().trigger('focus');
726                break;
727
728            default:
729                return;
730        }
731
732    };
733
734    Slick.prototype.checkNavigable = function(index) {
735
736        var _ = this,
737            navigables, prevNavigable;
738
739        navigables = _.getNavigableIndexes();
740        prevNavigable = 0;
741        if (index > navigables[navigables.length - 1]) {
742            index = navigables[navigables.length - 1];
743        } else {
744            for (var n in navigables) {
745                if (index < navigables[n]) {
746                    index = prevNavigable;
747                    break;
748                }
749                prevNavigable = navigables[n];
750            }
751        }
752
753        return index;
754    };
755
756    Slick.prototype.cleanUpEvents = function() {
757
758        var _ = this;
759
760        if (_.options.dots && _.$dots !== null) {
761
762            $('li', _.$dots)
763                .off('click.slick', _.changeSlide)
764                .off('mouseenter.slick', $.proxy(_.interrupt, _, true))
765                .off('mouseleave.slick', $.proxy(_.interrupt, _, false));
766
767            if (_.options.accessibility === true) {
768                _.$dots.off('keydown.slick', _.keyHandler);
769            }
770        }
771
772        _.$slider.off('focus.slick blur.slick');
773
774        if (_.options.arrows === true && _.slideCount > _.options.slidesToShow) {
775            _.$prevArrow && _.$prevArrow.off('click.slick', _.changeSlide);
776            _.$nextArrow && _.$nextArrow.off('click.slick', _.changeSlide);
777
778            if (_.options.accessibility === true) {
779                _.$prevArrow && _.$prevArrow.off('keydown.slick', _.keyHandler);
780                _.$nextArrow && _.$nextArrow.off('keydown.slick', _.keyHandler);
781            }
782        }
783
784        _.$list.off('touchstart.slick mousedown.slick', _.swipeHandler);
785        _.$list.off('touchmove.slick mousemove.slick', _.swipeHandler);
786        _.$list.off('touchend.slick mouseup.slick', _.swipeHandler);
787        _.$list.off('touchcancel.slick mouseleave.slick', _.swipeHandler);
788
789        _.$list.off('click.slick', _.clickHandler);
790
791        $(document).off(_.visibilityChange, _.visibility);
792
793        _.cleanUpSlideEvents();
794
795        if (_.options.accessibility === true) {
796            _.$list.off('keydown.slick', _.keyHandler);
797        }
798
799        if (_.options.focusOnSelect === true) {
800            $(_.$slideTrack).children().off('click.slick', _.selectHandler);
801        }
802
803        $(window).off('orientationchange.slick.slick-' + _.instanceUid, _.orientationChange);
804
805        $(window).off('resize.slick.slick-' + _.instanceUid, _.resize);
806
807        $('[draggable!=true]', _.$slideTrack).off('dragstart', _.preventDefault);
808
809        $(window).off('load.slick.slick-' + _.instanceUid, _.setPosition);
810
811    };
812
813    Slick.prototype.cleanUpSlideEvents = function() {
814
815        var _ = this;
816
817        _.$list.off('mouseenter.slick', $.proxy(_.interrupt, _, true));
818        _.$list.off('mouseleave.slick', $.proxy(_.interrupt, _, false));
819
820    };
821
822    Slick.prototype.cleanUpRows = function() {
823
824        var _ = this, originalSlides;
825
826        if(_.options.rows > 0) {
827            originalSlides = _.$slides.children().children();
828            originalSlides.removeAttr('style');
829            _.$slider.empty().append(originalSlides);
830        }
831
832    };
833
834    Slick.prototype.clickHandler = function(event) {
835
836        var _ = this;
837
838        if (_.shouldClick === false) {
839            event.stopImmediatePropagation();
840            event.stopPropagation();
841            event.preventDefault();
842        }
843
844    };
845
846    Slick.prototype.destroy = function(refresh) {
847
848        var _ = this;
849
850        _.autoPlayClear();
851
852        _.touchObject = {};
853
854        _.cleanUpEvents();
855
856        $('.slick-cloned', _.$slider).detach();
857
858        if (_.$dots) {
859            _.$dots.remove();
860        }
861
862        if ( _.$prevArrow && _.$prevArrow.length ) {
863
864            _.$prevArrow
865                .removeClass('slick-disabled slick-arrow slick-hidden')
866                .removeAttr('aria-hidden aria-disabled tabindex')
867                .css('display','');
868
869            if ( _.htmlExpr.test( _.options.prevArrow )) {
870                _.$prevArrow.remove();
871            }
872        }
873
874        if ( _.$nextArrow && _.$nextArrow.length ) {
875
876            _.$nextArrow
877                .removeClass('slick-disabled slick-arrow slick-hidden')
878                .removeAttr('aria-hidden aria-disabled tabindex')
879                .css('display','');
880
881            if ( _.htmlExpr.test( _.options.nextArrow )) {
882                _.$nextArrow.remove();
883            }
884        }
885
886
887        if (_.$slides) {
888
889            _.$slides
890                .removeClass('slick-slide slick-active slick-center slick-visible slick-current')
891                .removeAttr('aria-hidden')
892                .removeAttr('data-slick-index')
893                .each(function(){
894                    $(this).attr('style', $(this).data('originalStyling'));
895                });
896
897            _.$slideTrack.children(this.options.slide).detach();
898
899            _.$slideTrack.detach();
900
901            _.$list.detach();
902
903            _.$slider.append(_.$slides);
904        }
905
906        _.cleanUpRows();
907
908        _.$slider.removeClass('slick-slider');
909        _.$slider.removeClass('slick-initialized');
910        _.$slider.removeClass('slick-dotted');
911
912        _.unslicked = true;
913
914        if(!refresh) {
915            _.$slider.trigger('destroy', [_]);
916        }
917
918    };
919
920    Slick.prototype.disableTransition = function(slide) {
921
922        var _ = this,
923            transition = {};
924
925        transition[_.transitionType] = '';
926
927        if (_.options.fade === false) {
928            _.$slideTrack.css(transition);
929        } else {
930            _.$slides.eq(slide).css(transition);
931        }
932
933    };
934
935    Slick.prototype.fadeSlide = function(slideIndex, callback) {
936
937        var _ = this;
938
939        if (_.cssTransitions === false) {
940
941            _.$slides.eq(slideIndex).css({
942                zIndex: _.options.zIndex
943            });
944
945            _.$slides.eq(slideIndex).animate({
946                opacity: 1
947            }, _.options.speed, _.options.easing, callback);
948
949        } else {
950
951            _.applyTransition(slideIndex);
952
953            _.$slides.eq(slideIndex).css({
954                opacity: 1,
955                zIndex: _.options.zIndex
956            });
957
958            if (callback) {
959                setTimeout(function() {
960
961                    _.disableTransition(slideIndex);
962
963                    callback.call();
964                }, _.options.speed);
965            }
966
967        }
968
969    };
970
971    Slick.prototype.fadeSlideOut = function(slideIndex) {
972
973        var _ = this;
974
975        if (_.cssTransitions === false) {
976
977            _.$slides.eq(slideIndex).animate({
978                opacity: 0,
979                zIndex: _.options.zIndex - 2
980            }, _.options.speed, _.options.easing);
981
982        } else {
983
984            _.applyTransition(slideIndex);
985
986            _.$slides.eq(slideIndex).css({
987                opacity: 0,
988                zIndex: _.options.zIndex - 2
989            });
990
991        }
992
993    };
994
995    Slick.prototype.filterSlides = Slick.prototype.slickFilter = function(filter) {
996
997        var _ = this;
998
999        if (filter !== null) {
1000
1001            _.$slidesCache = _.$slides;
1002
1003            _.unload();
1004
1005            _.$slideTrack.children(this.options.slide).detach();
1006
1007            _.$slidesCache.filter(filter).appendTo(_.$slideTrack);
1008
1009            _.reinit();
1010
1011        }
1012
1013    };
1014
1015    Slick.prototype.focusHandler = function() {
1016
1017        var _ = this;
1018
1019        // If any child element receives focus within the slider we need to pause the autoplay
1020        _.$slider
1021            .off('focus.slick blur.slick')
1022            .on(
1023                'focus.slick',
1024                '*', 
1025                function(event) {
1026                    var $sf = $(this);
1027
1028                    setTimeout(function() {
1029                        if( _.options.pauseOnFocus ) {
1030                            if ($sf.is(':focus')) {
1031                                _.focussed = true;
1032                                _.autoPlay();
1033                            }
1034                        }
1035                    }, 0);
1036                }
1037            ).on(
1038                'blur.slick',
1039                '*', 
1040                function(event) {
1041                    var $sf = $(this);
1042
1043                    // When a blur occurs on any elements within the slider we become unfocused
1044                    if( _.options.pauseOnFocus ) {
1045                        _.focussed = false;
1046                        _.autoPlay();
1047                    }
1048                }
1049            );
1050    };
1051
1052    Slick.prototype.getCurrent = Slick.prototype.slickCurrentSlide = function() {
1053
1054        var _ = this;
1055        return _.currentSlide;
1056
1057    };
1058
1059    Slick.prototype.getDotCount = function() {
1060
1061        var _ = this;
1062
1063        var breakPoint = 0;
1064        var counter = 0;
1065        var pagerQty = 0;
1066
1067        if (_.options.infinite === true) {
1068            if (_.slideCount <= _.options.slidesToShow) {
1069                 ++pagerQty;
1070            } else {
1071                while (breakPoint < _.slideCount) {
1072                    ++pagerQty;
1073                    breakPoint = counter + _.options.slidesToScroll;
1074                    counter += _.options.slidesToScroll <= _.options.slidesToShow ? _.options.slidesToScroll : _.options.slidesToShow;
1075                }
1076            }
1077        } else if (_.options.centerMode === true) {
1078            pagerQty = _.slideCount;
1079        } else if(!_.options.asNavFor) {
vendor: 3,515 bytes, lines 1080-1158
1080            pagerQty = 1 + Math.ceil((_.slideCount - _.options.slidesToShow) / _.options.slidesToScroll);
1081        }else {
1082            while (breakPoint < _.slideCount) {
1083                ++pagerQty;
1084                breakPoint = counter + _.options.slidesToScroll;
1085                counter += _.options.slidesToScroll <= _.options.slidesToShow ? _.options.slidesToScroll : _.options.slidesToShow;
1086            }
1087        }
1088
1089        return pagerQty - 1;
1090
1091    };
1092
1093    Slick.prototype.getLeft = function(slideIndex) {
1094
1095        var _ = this,
1096            targetLeft,
1097            verticalHeight,
1098            verticalOffset = 0,
1099            targetSlide,
1100            coef;
1101
1102        _.slideOffset = 0;
1103        verticalHeight = _.$slides.first().outerHeight(true);
1104
1105        if (_.options.infinite === true) {
1106            if (_.slideCount > _.options.slidesToShow) {
1107                _.slideOffset = (_.slideWidth * _.options.slidesToShow) * -1;
1108                coef = -1
1109
1110                if (_.options.vertical === true && _.options.centerMode === true) {
1111                    if (_.options.slidesToShow === 2) {
1112                        coef = -1.5;
1113                    } else if (_.options.slidesToShow === 1) {
1114                        coef = -2
1115                    }
1116                }
1117                verticalOffset = (verticalHeight * _.options.slidesToShow) * coef;
1118            }
1119            if (_.slideCount % _.options.slidesToScroll !== 0) {
1120                if (slideIndex + _.options.slidesToScroll > _.slideCount && _.slideCount > _.options.slidesToShow) {
1121                    if (slideIndex > _.slideCount) {
1122                        _.slideOffset = ((_.options.slidesToShow - (slideIndex - _.slideCount)) * _.slideWidth) * -1;
1123                        verticalOffset = ((_.options.slidesToShow - (slideIndex - _.slideCount)) * verticalHeight) * -1;
1124                    } else {
1125                        _.slideOffset = ((_.slideCount % _.options.slidesToScroll) * _.slideWidth) * -1;
1126                        verticalOffset = ((_.slideCount % _.options.slidesToScroll) * verticalHeight) * -1;
1127                    }
1128                }
1129            }
1130        } else {
1131            if (slideIndex + _.options.slidesToShow > _.slideCount) {
1132                _.slideOffset = ((slideIndex + _.options.slidesToShow) - _.slideCount) * _.slideWidth;
1133                verticalOffset = ((slideIndex + _.options.slidesToShow) - _.slideCount) * verticalHeight;
1134            }
1135        }
1136
1137        if (_.slideCount <= _.options.slidesToShow) {
1138            _.slideOffset = 0;
1139            verticalOffset = 0;
1140        }
1141
1142        if (_.options.centerMode === true && _.slideCount <= _.options.slidesToShow) {
1143            _.slideOffset = ((_.slideWidth * Math.floor(_.options.slidesToShow)) / 2) - ((_.slideWidth * _.slideCount) / 2);
1144        } else if (_.options.centerMode === true && _.options.infinite === true) {
1145            _.slideOffset += _.slideWidth * Math.floor(_.options.slidesToShow / 2) - _.slideWidth;
1146        } else if (_.options.centerMode === true) {
1147            _.slideOffset = 0;
1148            _.slideOffset += _.slideWidth * Math.floor(_.options.slidesToShow / 2);
1149        }
1150
1151        if (_.options.vertical === false) {
1152            targetLeft = ((slideIndex * _.slideWidth) * -1) + _.slideOffset;
1153        } else {
1154            targetLeft = ((slideIndex * verticalHeight) * -1) + verticalOffset;
1155        }
1156
1157        if (_.options.variableWidth === true) {
1158
1159            if (_.slideCount <= _.options.slidesToShow || _.options.infinite === false) {
1160                targetSlide = _.$slideTrack.children('.slick-slide').eq(slideIndex);
1161            } else {
1162                targetSlide = _.$slideTrack.children('.slick-slide').eq(slideIndex + _.options.slidesToShow);
1163            }
1164
1165            if (_.options.rtl === true) {
1166                if (targetSlide[0]) {
1167                    targetLeft = (_.$slideTrack.width() - targetSlide[0].offsetLeft - targetSlide.width()) * -1;
1168                } else {
1169                    targetLeft =  0;
1170                }
1171            } else {
1172                targetLeft = targetSlide[0] ? targetSlide[0].offsetLeft * -1 : 0;
1173            }
1174
1175            if (_.options.centerMode === true) {
1176                if (_.slideCount <= _.options.slidesToShow || _.options.infinite === false) {
1177                    targetSlide = _.$slideTrack.children('.slick-slide').eq(slideIndex);
1178                } else {
1179                    targetSlide = _.$slideTrack.children('.slick-slide').eq(slideIndex + _.options.slidesToShow + 1);
1180                }
1181
1182                if (_.options.rtl === true) {
1183                    if (targetSlide[0]) {
1184                        targetLeft = (_.$slideTrack.width() - targetSlide[0].offsetLeft - targetSlide.width()) * -1;
1185                    } else {
1186                        targetLeft =  0;
1187                    }
1188                } else {
1189                    targetLeft = targetSlide[0] ? targetSlide[0].offsetLeft * -1 : 0;
1190                }
1191
1192                targetLeft += (_.$list.width() - targetSlide.outerWidth()) / 2;
1193            }
1194        }
1195
1196        return targetLeft;
1197
1198    };
1199
1200    Slick.prototype.getOption = Slick.prototype.slickGetOption = function(option) {
1201
1202        var _ = this;
1203
1204        return _.options[option];
1205
1206    };
1207
1208    Slick.prototype.getNavigableIndexes = function() {
1209
1210        var _ = this,
1211            breakPoint = 0,
1212            counter = 0,
1213            indexes = [],
1214            max;
1215
1216        if (_.options.infinite === false) {
1217            max = _.slideCount;
1218        } else {
1219            breakPoint = _.options.slidesToScroll * -1;
1220            counter = _.options.slidesToScroll * -1;
1221            max = _.slideCount * 2;
1222        }
1223
1224        while (breakPoint < max) {
1225            indexes.push(breakPoint);
1226            breakPoint = counter + _.options.slidesToScroll;
1227            counter += _.options.slidesToScroll <= _.options.slidesToShow ? _.options.slidesToScroll : _.options.slidesToShow;
1228        }
1229
1230        return indexes;
1231
1232    };
1233
1234    Slick.prototype.getSlick = function() {
1235
1236        return this;
1237
1238    };
1239
1240    Slick.prototype.getSlideCount = function() {
1241
1242        var _ = this,
1243            slidesTraversed, swipedSlide, swipeTarget, centerOffset;
1244
1245        centerOffset = _.options.centerMode === true ? Math.floor(_.$list.width() / 2) : 0;
1246        swipeTarget = (_.swipeLeft * -1) + centerOffset;
1247
1248        if (_.options.swipeToSlide === true) {
1249
1250            _.$slideTrack.find('.slick-slide').each(function(index, slide) {
1251
1252                var slideOuterWidth, slideOffset, slideRightBoundary;
1253                slideOuterWidth = $(slide).outerWidth();
1254                slideOffset = slide.offsetLeft;
1255                if (_.options.centerMode !== true) {
1256                    slideOffset += (slideOuterWidth / 2);
1257                }
1258
1259                slideRightBoundary = slideOffset + (slideOuterWidth);
1260
1261                if (swipeTarget < slideRightBoundary) {
1262                    swipedSlide = slide;
1263                    return false;
1264                }
1265            });
1266
1267            slidesTraversed = Math.abs($(swipedSlide).attr('data-slick-index') - _.currentSlide) || 1;
1268
1269            return slidesTraversed;
1270
1271        } else {
1272            return _.options.slidesToScroll;
1273        }
1274
1275    };
1276
1277    Slick.prototype.goTo = Slick.prototype.slickGoTo = function(slide, dontAnimate) {
1278
1279        var _ = this;
1280
1281        _.changeSlide({
1282            data: {
1283                message: 'index',
1284                index: parseInt(slide)
1285            }
1286        }, dontAnimate);
1287
1288    };
1289
1290    Slick.prototype.init = function(creation) {
1291
1292        var _ = this;
1293
1294        if (!$(_.$slider).hasClass('slick-initialized')) {
1295
1296            $(_.$slider).addClass('slick-initialized');
1297
1298            _.buildRows();
1299            _.buildOut();
1300            _.setProps();
1301            _.startLoad();
1302            _.loadSlider();
1303            _.initializeEvents();
1304            _.updateArrows();
1305            _.updateDots();
1306            _.checkResponsive(true);
1307            _.focusHandler();
1308
1309        }
1310
1311        if (creation) {
1312            _.$slider.trigger('init', [_]);
1313        }
1314
1315        if (_.options.accessibility === true) {
1316            _.initADA();
1317        }
1318
1319        if ( _.options.autoplay ) {
1320
1321            _.paused = false;
1322            _.autoPlay();
1323
1324        }
1325
1326    };
1327
1328    Slick.prototype.initADA = function() {
1329        var _ = this,
1330                numDotGroups = Math.ceil(_.slideCount / _.options.slidesToShow),
vendor: 48,038 bytes, lines 1331-2938
1331                tabControlIndexes = _.getNavigableIndexes().filter(function(val) {
1332                    return (val >= 0) && (val < _.slideCount);
1333                });
1334
1335        _.$slides.add(_.$slideTrack.find('.slick-cloned')).attr({
1336            'aria-hidden': 'true',
1337            'tabindex': '-1'
1338        }).find('a, input, button, select').attr({
1339            'tabindex': '-1'
1340        });
1341
1342        if (_.$dots !== null) {
1343            _.$slides.not(_.$slideTrack.find('.slick-cloned')).each(function(i) {
1344                var slideControlIndex = tabControlIndexes.indexOf(i);
1345
1346                $(this).attr({
1347                    'role': 'tabpanel',
1348                    'id': 'slick-slide' + _.instanceUid + i,
1349                    'tabindex': -1
1350                });
1351
1352                if (slideControlIndex !== -1) {
1353                   var ariaButtonControl = 'slick-slide-control' + _.instanceUid + slideControlIndex
1354                   if ($('#' + ariaButtonControl).length) {
1355                     $(this).attr({
1356                         'aria-describedby': ariaButtonControl
1357                     });
1358                   }
1359                }
1360            });
1361
1362            _.$dots.attr('role', 'tablist').find('li').each(function(i) {
1363                var mappedSlideIndex = tabControlIndexes[i];
1364
1365                $(this).attr({
1366                    'role': 'presentation'
1367                });
1368
1369                $(this).find('button').first().attr({
1370                    'role': 'tab',
1371                    'id': 'slick-slide-control' + _.instanceUid + i,
1372                    'aria-controls': 'slick-slide' + _.instanceUid + mappedSlideIndex,
1373                    'aria-label': (i + 1) + ' of ' + numDotGroups,
1374                    'aria-selected': null,
1375                    'tabindex': '-1'
1376                });
1377
1378            }).eq(_.currentSlide).find('button').attr({
1379                'aria-selected': 'true',
1380                'tabindex': '0'
1381            }).end();
1382        }
1383
1384        for (var i=_.currentSlide, max=i+_.options.slidesToShow; i < max; i++) {
1385          if (_.options.focusOnChange) {
1386            _.$slides.eq(i).attr({'tabindex': '0'});
1387          } else {
1388            _.$slides.eq(i).removeAttr('tabindex');
1389          }
1390        }
1391
1392        _.activateADA();
1393
1394    };
1395
1396    Slick.prototype.initArrowEvents = function() {
1397
1398        var _ = this;
1399
1400        if (_.options.arrows === true && _.slideCount > _.options.slidesToShow) {
1401            _.$prevArrow
1402               .off('click.slick')
1403               .on('click.slick', {
1404                    message: 'previous'
1405               }, _.changeSlide);
1406            _.$nextArrow
1407               .off('click.slick')
1408               .on('click.slick', {
1409                    message: 'next'
1410               }, _.changeSlide);
1411
1412            if (_.options.accessibility === true) {
1413                _.$prevArrow.on('keydown.slick', _.keyHandler);
1414                _.$nextArrow.on('keydown.slick', _.keyHandler);
1415            }
1416        }
1417
1418    };
1419
1420    Slick.prototype.initDotEvents = function() {
1421
1422        var _ = this;
1423
1424        if (_.options.dots === true && _.slideCount > _.options.slidesToShow) {
1425            $('li', _.$dots).on('click.slick', {
1426                message: 'index'
1427            }, _.changeSlide);
1428
1429            if (_.options.accessibility === true) {
1430                _.$dots.on('keydown.slick', _.keyHandler);
1431            }
1432        }
1433
1434        if (_.options.dots === true && _.options.pauseOnDotsHover === true && _.slideCount > _.options.slidesToShow) {
1435
1436            $('li', _.$dots)
1437                .on('mouseenter.slick', $.proxy(_.interrupt, _, true))
1438                .on('mouseleave.slick', $.proxy(_.interrupt, _, false));
1439
1440        }
1441
1442    };
1443
1444    Slick.prototype.initSlideEvents = function() {
1445
1446        var _ = this;
1447
1448        if ( _.options.pauseOnHover ) {
1449
1450            _.$list.on('mouseenter.slick', $.proxy(_.interrupt, _, true));
1451            _.$list.on('mouseleave.slick', $.proxy(_.interrupt, _, false));
1452
1453        }
1454
1455    };
1456
1457    Slick.prototype.initializeEvents = function() {
1458
1459        var _ = this;
1460
1461        _.initArrowEvents();
1462
1463        _.initDotEvents();
1464        _.initSlideEvents();
1465
1466        _.$list.on('touchstart.slick mousedown.slick', {
1467            action: 'start'
1468        }, _.swipeHandler);
1469        _.$list.on('touchmove.slick mousemove.slick', {
1470            action: 'move'
1471        }, _.swipeHandler);
1472        _.$list.on('touchend.slick mouseup.slick', {
1473            action: 'end'
1474        }, _.swipeHandler);
1475        _.$list.on('touchcancel.slick mouseleave.slick', {
1476            action: 'end'
1477        }, _.swipeHandler);
1478
1479        _.$list.on('click.slick', _.clickHandler);
1480
1481        $(document).on(_.visibilityChange, $.proxy(_.visibility, _));
1482
1483        if (_.options.accessibility === true) {
1484            _.$list.on('keydown.slick', _.keyHandler);
1485        }
1486
1487        if (_.options.focusOnSelect === true) {
1488            $(_.$slideTrack).children().on('click.slick', _.selectHandler);
1489        }
1490
1491        $(window).on('orientationchange.slick.slick-' + _.instanceUid, $.proxy(_.orientationChange, _));
1492
1493        $(window).on('resize.slick.slick-' + _.instanceUid, $.proxy(_.resize, _));
1494
1495        $('[draggable!=true]', _.$slideTrack).on('dragstart', _.preventDefault);
1496
1497        $(window).on('load.slick.slick-' + _.instanceUid, _.setPosition);
1498        $(_.setPosition);
1499
1500    };
1501
1502    Slick.prototype.initUI = function() {
1503
1504        var _ = this;
1505
1506        if (_.options.arrows === true && _.slideCount > _.options.slidesToShow) {
1507
1508            _.$prevArrow.show();
1509            _.$nextArrow.show();
1510
1511        }
1512
1513        if (_.options.dots === true && _.slideCount > _.options.slidesToShow) {
1514
1515            _.$dots.show();
1516
1517        }
1518
1519    };
1520
1521    Slick.prototype.keyHandler = function(event) {
1522
1523        var _ = this;
1524         //Dont slide if the cursor is inside the form fields and arrow keys are pressed
1525        if(!event.target.tagName.match('TEXTAREA|INPUT|SELECT')) {
1526            if (event.keyCode === 37 && _.options.accessibility === true) {
1527                _.changeSlide({
1528                    data: {
1529                        message: _.options.rtl === true ? 'next' :  'previous'
1530                    }
1531                });
1532            } else if (event.keyCode === 39 && _.options.accessibility === true) {
1533                _.changeSlide({
1534                    data: {
1535                        message: _.options.rtl === true ? 'previous' : 'next'
1536                    }
1537                });
1538            }
1539        }
1540
1541    };
1542
1543    Slick.prototype.lazyLoad = function() {
1544
1545        var _ = this,
1546            loadRange, cloneRange, rangeStart, rangeEnd;
1547
1548        function loadImages(imagesScope) {
1549
1550            $('img[data-lazy]', imagesScope).each(function() {
1551
1552                var image = $(this),
1553                    imageSource = $(this).attr('data-lazy'),
1554                    imageSrcSet = $(this).attr('data-srcset'),
1555                    imageSizes  = $(this).attr('data-sizes') || _.$slider.attr('data-sizes'),
1556                    imageToLoad = document.createElement('img');
1557
1558                imageToLoad.onload = function() {
1559
1560                    image
1561                        .animate({ opacity: 0 }, 100, function() {
1562
1563                            if (imageSrcSet) {
1564                                image
1565                                    .attr('srcset', imageSrcSet );
1566
1567                                if (imageSizes) {
1568                                    image
1569                                        .attr('sizes', imageSizes );
1570                                }
1571                            }
1572
1573                            image
1574                                .attr('src', imageSource)
1575                                .animate({ opacity: 1 }, 200, function() {
1576                                    image
1577                                        .removeAttr('data-lazy data-srcset data-sizes')
1578                                        .removeClass('slick-loading');
1579                                });
1580                            _.$slider.trigger('lazyLoaded', [_, image, imageSource]);
1581                        });
1582
1583                };
1584
1585                imageToLoad.onerror = function() {
1586
1587                    image
1588                        .removeAttr( 'data-lazy' )
1589                        .removeClass( 'slick-loading' )
1590                        .addClass( 'slick-lazyload-error' );
1591
1592                    _.$slider.trigger('lazyLoadError', [ _, image, imageSource ]);
1593
1594                };
1595
1596                imageToLoad.src = imageSource;
1597
1598            });
1599
1600        }
1601
1602        if (_.options.centerMode === true) {
1603            if (_.options.infinite === true) {
1604                rangeStart = _.currentSlide + (_.options.slidesToShow / 2 + 1);
1605                rangeEnd = rangeStart + _.options.slidesToShow + 2;
1606            } else {
1607                rangeStart = Math.max(0, _.currentSlide - (_.options.slidesToShow / 2 + 1));
1608                rangeEnd = 2 + (_.options.slidesToShow / 2 + 1) + _.currentSlide;
1609            }
1610        } else {
1611            rangeStart = _.options.infinite ? _.options.slidesToShow + _.currentSlide : _.currentSlide;
1612            rangeEnd = Math.ceil(rangeStart + _.options.slidesToShow);
1613            if (_.options.fade === true) {
1614                if (rangeStart > 0) rangeStart--;
1615                if (rangeEnd <= _.slideCount) rangeEnd++;
1616            }
1617        }
1618
1619        loadRange = _.$slider.find('.slick-slide').slice(rangeStart, rangeEnd);
1620
1621        if (_.options.lazyLoad === 'anticipated') {
1622            var prevSlide = rangeStart - 1,
1623                nextSlide = rangeEnd,
1624                $slides = _.$slider.find('.slick-slide');
1625
1626            for (var i = 0; i < _.options.slidesToScroll; i++) {
1627                if (prevSlide < 0) prevSlide = _.slideCount - 1;
1628                loadRange = loadRange.add($slides.eq(prevSlide));
1629                loadRange = loadRange.add($slides.eq(nextSlide));
1630                prevSlide--;
1631                nextSlide++;
1632            }
1633        }
1634
1635        loadImages(loadRange);
1636
1637        if (_.slideCount <= _.options.slidesToShow) {
1638            cloneRange = _.$slider.find('.slick-slide');
1639            loadImages(cloneRange);
1640        } else
1641        if (_.currentSlide >= _.slideCount - _.options.slidesToShow) {
1642            cloneRange = _.$slider.find('.slick-cloned').slice(0, _.options.slidesToShow);
1643            loadImages(cloneRange);
1644        } else if (_.currentSlide === 0) {
1645            cloneRange = _.$slider.find('.slick-cloned').slice(_.options.slidesToShow * -1);
1646            loadImages(cloneRange);
1647        }
1648
1649    };
1650
1651    Slick.prototype.loadSlider = function() {
1652
1653        var _ = this;
1654
1655        _.setPosition();
1656
1657        _.$slideTrack.css({
1658            opacity: 1
1659        });
1660
1661        _.$slider.removeClass('slick-loading');
1662
1663        _.initUI();
1664
1665        if (_.options.lazyLoad === 'progressive') {
1666            _.progressiveLazyLoad();
1667        }
1668
1669    };
1670
1671    Slick.prototype.next = Slick.prototype.slickNext = function() {
1672
1673        var _ = this;
1674
1675        _.changeSlide({
1676            data: {
1677                message: 'next'
1678            }
1679        });
1680
1681    };
1682
1683    Slick.prototype.orientationChange = function() {
1684
1685        var _ = this;
1686
1687        _.checkResponsive();
1688        _.setPosition();
1689
1690    };
1691
1692    Slick.prototype.pause = Slick.prototype.slickPause = function() {
1693
1694        var _ = this;
1695
1696        _.autoPlayClear();
1697        _.paused = true;
1698
1699    };
1700
1701    Slick.prototype.play = Slick.prototype.slickPlay = function() {
1702
1703        var _ = this;
1704
1705        _.autoPlay();
1706        _.options.autoplay = true;
1707        _.paused = false;
1708        _.focussed = false;
1709        _.interrupted = false;
1710
1711    };
1712
1713    Slick.prototype.postSlide = function(index) {
1714
1715        var _ = this;
1716
1717        if( !_.unslicked ) {
1718
1719            _.$slider.trigger('afterChange', [_, index]);
1720
1721            _.animating = false;
1722
1723            if (_.slideCount > _.options.slidesToShow) {
1724                _.setPosition();
1725            }
1726
1727            _.swipeLeft = null;
1728
1729            if ( _.options.autoplay ) {
1730                _.autoPlay();
1731            }
1732
1733            if (_.options.accessibility === true) {
1734                _.initADA();
1735
1736                if (_.options.focusOnChange) {
1737                    var $currentSlide = $(_.$slides.get(_.currentSlide));
1738                    $currentSlide.attr('tabindex', 0).focus();
1739                }
1740            }
1741
1742        }
1743
1744    };
1745
1746    Slick.prototype.prev = Slick.prototype.slickPrev = function() {
1747
1748        var _ = this;
1749
1750        _.changeSlide({
1751            data: {
1752                message: 'previous'
1753            }
1754        });
1755
1756    };
1757
1758    Slick.prototype.preventDefault = function(event) {
1759
1760        event.preventDefault();
1761
1762    };
1763
1764    Slick.prototype.progressiveLazyLoad = function( tryCount ) {
1765
1766        tryCount = tryCount || 1;
1767
1768        var _ = this,
1769            $imgsToLoad = $( 'img[data-lazy]', _.$slider ),
1770            image,
1771            imageSource,
1772            imageSrcSet,
1773            imageSizes,
1774            imageToLoad;
1775
1776        if ( $imgsToLoad.length ) {
1777
1778            image = $imgsToLoad.first();
1779            imageSource = image.attr('data-lazy');
1780            imageSrcSet = image.attr('data-srcset');
1781            imageSizes  = image.attr('data-sizes') || _.$slider.attr('data-sizes');
1782            imageToLoad = document.createElement('img');
1783
1784            imageToLoad.onload = function() {
1785
1786                if (imageSrcSet) {
1787                    image
1788                        .attr('srcset', imageSrcSet );
1789
1790                    if (imageSizes) {
1791                        image
1792                            .attr('sizes', imageSizes );
1793                    }
1794                }
1795
1796                image
1797                    .attr( 'src', imageSource )
1798                    .removeAttr('data-lazy data-srcset data-sizes')
1799                    .removeClass('slick-loading');
1800
1801                if ( _.options.adaptiveHeight === true ) {
1802                    _.setPosition();
1803                }
1804
1805                _.$slider.trigger('lazyLoaded', [ _, image, imageSource ]);
1806                _.progressiveLazyLoad();
1807
1808            };
1809
1810            imageToLoad.onerror = function() {
1811
1812                if ( tryCount < 3 ) {
1813
1814                    /**
1815                     * try to load the image 3 times,
1816                     * leave a slight delay so we don't get
1817                     * servers blocking the request.
1818                     */
1819                    setTimeout( function() {
1820                        _.progressiveLazyLoad( tryCount + 1 );
1821                    }, 500 );
1822
1823                } else {
1824
1825                    image
1826                        .removeAttr( 'data-lazy' )
1827                        .removeClass( 'slick-loading' )
1828                        .addClass( 'slick-lazyload-error' );
1829
1830                    _.$slider.trigger('lazyLoadError', [ _, image, imageSource ]);
1831
1832                    _.progressiveLazyLoad();
1833
1834                }
1835
1836            };
1837
1838            imageToLoad.src = imageSource;
1839
1840        } else {
1841
1842            _.$slider.trigger('allImagesLoaded', [ _ ]);
1843
1844        }
1845
1846    };
1847
1848    Slick.prototype.refresh = function( initializing ) {
1849
1850        var _ = this, currentSlide, lastVisibleIndex;
1851
1852        lastVisibleIndex = _.slideCount - _.options.slidesToShow;
1853
1854        // in non-infinite sliders, we don't want to go past the
1855        // last visible index.
1856        if( !_.options.infinite && ( _.currentSlide > lastVisibleIndex )) {
1857            _.currentSlide = lastVisibleIndex;
1858        }
1859
1860        // if less slides than to show, go to start.
1861        if ( _.slideCount <= _.options.slidesToShow ) {
1862            _.currentSlide = 0;
1863
1864        }
1865
1866        currentSlide = _.currentSlide;
1867
1868        _.destroy(true);
1869
1870        $.extend(_, _.initials, { currentSlide: currentSlide });
1871
1872        _.init();
1873
1874        if( !initializing ) {
1875
1876            _.changeSlide({
1877                data: {
1878                    message: 'index',
1879                    index: currentSlide
1880                }
1881            }, false);
1882
1883        }
1884
1885    };
1886
1887    Slick.prototype.registerBreakpoints = function() {
1888
1889        var _ = this, breakpoint, currentBreakpoint, l,
1890            responsiveSettings = _.options.responsive || null;
1891
1892        if ( $.type(responsiveSettings) === 'array' && responsiveSettings.length ) {
1893
1894            _.respondTo = _.options.respondTo || 'window';
1895
1896            for ( breakpoint in responsiveSettings ) {
1897
1898                l = _.breakpoints.length-1;
1899
1900                if (responsiveSettings.hasOwnProperty(breakpoint)) {
1901                    currentBreakpoint = responsiveSettings[breakpoint].breakpoint;
1902
1903                    // loop through the breakpoints and cut out any existing
1904                    // ones with the same breakpoint number, we don't want dupes.
1905                    while( l >= 0 ) {
1906                        if( _.breakpoints[l] && _.breakpoints[l] === currentBreakpoint ) {
1907                            _.breakpoints.splice(l,1);
1908                        }
1909                        l--;
1910                    }
1911
1912                    _.breakpoints.push(currentBreakpoint);
1913                    _.breakpointSettings[currentBreakpoint] = responsiveSettings[breakpoint].settings;
1914
1915                }
1916
1917            }
1918
1919            _.breakpoints.sort(function(a, b) {
1920                return ( _.options.mobileFirst ) ? a-b : b-a;
1921            });
1922
1923        }
1924
1925    };
1926
1927    Slick.prototype.reinit = function() {
1928
1929        var _ = this;
1930
1931        _.$slides =
1932            _.$slideTrack
1933                .children(_.options.slide)
1934                .addClass('slick-slide');
1935
1936        _.slideCount = _.$slides.length;
1937
1938        if (_.currentSlide >= _.slideCount && _.currentSlide !== 0) {
1939            _.currentSlide = _.currentSlide - _.options.slidesToScroll;
1940        }
1941
1942        if (_.slideCount <= _.options.slidesToShow) {
1943            _.currentSlide = 0;
1944        }
1945
1946        _.registerBreakpoints();
1947
1948        _.setProps();
1949        _.setupInfinite();
1950        _.buildArrows();
1951        _.updateArrows();
1952        _.initArrowEvents();
1953        _.buildDots();
1954        _.updateDots();
1955        _.initDotEvents();
1956        _.cleanUpSlideEvents();
1957        _.initSlideEvents();
1958
1959        _.checkResponsive(false, true);
1960
1961        if (_.options.focusOnSelect === true) {
1962            $(_.$slideTrack).children().on('click.slick', _.selectHandler);
1963        }
1964
1965        _.setSlideClasses(typeof _.currentSlide === 'number' ? _.currentSlide : 0);
1966
1967        _.setPosition();
1968        _.focusHandler();
1969
1970        _.paused = !_.options.autoplay;
1971        _.autoPlay();
1972
1973        _.$slider.trigger('reInit', [_]);
1974
1975    };
1976
1977    Slick.prototype.resize = function() {
1978
1979        var _ = this;
1980
1981        if ($(window).width() !== _.windowWidth) {
1982            clearTimeout(_.windowDelay);
1983            _.windowDelay = window.setTimeout(function() {
1984                _.windowWidth = $(window).width();
1985                _.checkResponsive();
1986                if( !_.unslicked ) { _.setPosition(); }
1987            }, 50);
1988        }
1989    };
1990
1991    Slick.prototype.removeSlide = Slick.prototype.slickRemove = function(index, removeBefore, removeAll) {
1992
1993        var _ = this;
1994
1995        if (typeof(index) === 'boolean') {
1996            removeBefore = index;
1997            index = removeBefore === true ? 0 : _.slideCount - 1;
1998        } else {
1999            index = removeBefore === true ? --index : index;
2000        }
2001
2002        if (_.slideCount < 1 || index < 0 || index > _.slideCount - 1) {
2003            return false;
2004        }
2005
2006        _.unload();
2007
2008        if (removeAll === true) {
2009            _.$slideTrack.children().remove();
2010        } else {
2011            _.$slideTrack.children(this.options.slide).eq(index).remove();
2012        }
2013
2014        _.$slides = _.$slideTrack.children(this.options.slide);
2015
2016        _.$slideTrack.children(this.options.slide).detach();
2017
2018        _.$slideTrack.append(_.$slides);
2019
2020        _.$slidesCache = _.$slides;
2021
2022        _.reinit();
2023
2024    };
2025
2026    Slick.prototype.setCSS = function(position) {
2027
2028        var _ = this,
2029            positionProps = {},
2030            x, y;
2031
2032        if (_.options.rtl === true) {
2033            position = -position;
2034        }
2035        x = _.positionProp == 'left' ? Math.ceil(position) + 'px' : '0px';
2036        y = _.positionProp == 'top' ? Math.ceil(position) + 'px' : '0px';
2037
2038        positionProps[_.positionProp] = position;
2039
2040        if (_.transformsEnabled === false) {
2041            _.$slideTrack.css(positionProps);
2042        } else {
2043            positionProps = {};
2044            if (_.cssTransitions === false) {
2045                positionProps[_.animType] = 'translate(' + x + ', ' + y + ')';
2046                _.$slideTrack.css(positionProps);
2047            } else {
2048                positionProps[_.animType] = 'translate3d(' + x + ', ' + y + ', 0px)';
2049                _.$slideTrack.css(positionProps);
2050            }
2051        }
2052
2053    };
2054
2055    Slick.prototype.setDimensions = function() {
2056
2057        var _ = this;
2058
2059        if (_.options.vertical === false) {
2060            if (_.options.centerMode === true) {
2061                _.$list.css({
2062                    padding: ('0px ' + _.options.centerPadding)
2063                });
2064            }
2065        } else {
2066            _.$list.height(_.$slides.first().outerHeight(true) * _.options.slidesToShow);
2067            if (_.options.centerMode === true) {
2068                _.$list.css({
2069                    padding: (_.options.centerPadding + ' 0px')
2070                });
2071            }
2072        }
2073
2074        _.listWidth = _.$list.width();
2075        _.listHeight = _.$list.height();
2076
2077
2078        if (_.options.vertical === false && _.options.variableWidth === false) {
2079            _.slideWidth = Math.ceil(_.listWidth / _.options.slidesToShow);
2080            _.$slideTrack.width(Math.ceil((_.slideWidth * _.$slideTrack.children('.slick-slide').length)));
2081
2082        } else if (_.options.variableWidth === true) {
2083            _.$slideTrack.width(5000 * _.slideCount);
2084        } else {
2085            _.slideWidth = Math.ceil(_.listWidth);
2086            _.$slideTrack.height(Math.ceil((_.$slides.first().outerHeight(true) * _.$slideTrack.children('.slick-slide').length)));
2087        }
2088
2089        var offset = _.$slides.first().outerWidth(true) - _.$slides.first().width();
2090        if (_.options.variableWidth === false) _.$slideTrack.children('.slick-slide').width(_.slideWidth - offset);
2091
2092    };
2093
2094    Slick.prototype.setFade = function() {
2095
2096        var _ = this,
2097            targetLeft;
2098
2099        _.$slides.each(function(index, element) {
2100            targetLeft = (_.slideWidth * index) * -1;
2101            if (_.options.rtl === true) {
2102                $(element).css({
2103                    position: 'relative',
2104                    right: targetLeft,
2105                    top: 0,
2106                    zIndex: _.options.zIndex - 2,
2107                    opacity: 0
2108                });
2109            } else {
2110                $(element).css({
2111                    position: 'relative',
2112                    left: targetLeft,
2113                    top: 0,
2114                    zIndex: _.options.zIndex - 2,
2115                    opacity: 0
2116                });
2117            }
2118        });
2119
2120        _.$slides.eq(_.currentSlide).css({
2121            zIndex: _.options.zIndex - 1,
2122            opacity: 1
2123        });
2124
2125    };
2126
2127    Slick.prototype.setHeight = function() {
2128
2129        var _ = this;
2130
2131        if (_.options.slidesToShow === 1 && _.options.adaptiveHeight === true && _.options.vertical === false) {
2132            var targetHeight = _.$slides.eq(_.currentSlide).outerHeight(true);
2133            _.$list.css('height', targetHeight);
2134        }
2135
2136    };
2137
2138    Slick.prototype.setOption =
2139    Slick.prototype.slickSetOption = function() {
2140
2141        /**
2142         * accepts arguments in format of:
2143         *
2144         *  - for changing a single option's value:
2145         *     .slick("setOption", option, value, refresh )
2146         *
2147         *  - for changing a set of responsive options:
2148         *     .slick("setOption", 'responsive', [{}, ...], refresh )
2149         *
2150         *  - for updating multiple values at once (not responsive)
2151         *     .slick("setOption", { 'option': value, ... }, refresh )
2152         */
2153
2154        var _ = this, l, item, option, value, refresh = false, type;
2155
2156        if( $.type( arguments[0] ) === 'object' ) {
2157
2158            option =  arguments[0];
2159            refresh = arguments[1];
2160            type = 'multiple';
2161
2162        } else if ( $.type( arguments[0] ) === 'string' ) {
2163
2164            option =  arguments[0];
2165            value = arguments[1];
2166            refresh = arguments[2];
2167
2168            if ( arguments[0] === 'responsive' && $.type( arguments[1] ) === 'array' ) {
2169
2170                type = 'responsive';
2171
2172            } else if ( typeof arguments[1] !== 'undefined' ) {
2173
2174                type = 'single';
2175
2176            }
2177
2178        }
2179
2180        if ( type === 'single' ) {
2181
2182            _.options[option] = value;
2183
2184
2185        } else if ( type === 'multiple' ) {
2186
2187            $.each( option , function( opt, val ) {
2188
2189                _.options[opt] = val;
2190
2191            });
2192
2193
2194        } else if ( type === 'responsive' ) {
2195
2196            for ( item in value ) {
2197
2198                if( $.type( _.options.responsive ) !== 'array' ) {
2199
2200                    _.options.responsive = [ value[item] ];
2201
2202                } else {
2203
2204                    l = _.options.responsive.length-1;
2205
2206                    // loop through the responsive object and splice out duplicates.
2207                    while( l >= 0 ) {
2208
2209                        if( _.options.responsive[l].breakpoint === value[item].breakpoint ) {
2210
2211                            _.options.responsive.splice(l,1);
2212
2213                        }
2214
2215                        l--;
2216
2217                    }
2218
2219                    _.options.responsive.push( value[item] );
2220
2221                }
2222
2223            }
2224
2225        }
2226
2227        if ( refresh ) {
2228
2229            _.unload();
2230            _.reinit();
2231
2232        }
2233
2234    };
2235
2236    Slick.prototype.setPosition = function() {
2237
2238        var _ = this;
2239
2240        _.setDimensions();
2241
2242        _.setHeight();
2243
2244        if (_.options.fade === false) {
2245            _.setCSS(_.getLeft(_.currentSlide));
2246        } else {
2247            _.setFade();
2248        }
2249
2250        _.$slider.trigger('setPosition', [_]);
2251
2252    };
2253
2254    Slick.prototype.setProps = function() {
2255
2256        var _ = this,
2257            bodyStyle = document.body.style;
2258
2259        _.positionProp = _.options.vertical === true ? 'top' : 'left';
2260
2261        if (_.positionProp === 'top') {
2262            _.$slider.addClass('slick-vertical');
2263        } else {
2264            _.$slider.removeClass('slick-vertical');
2265        }
2266
2267        if (bodyStyle.WebkitTransition !== undefined ||
2268            bodyStyle.MozTransition !== undefined ||
2269            bodyStyle.msTransition !== undefined) {
2270            if (_.options.useCSS === true) {
2271                _.cssTransitions = true;
2272            }
2273        }
2274
2275        if ( _.options.fade ) {
2276            if ( typeof _.options.zIndex === 'number' ) {
2277                if( _.options.zIndex < 3 ) {
2278                    _.options.zIndex = 3;
2279                }
2280            } else {
2281                _.options.zIndex = _.defaults.zIndex;
2282            }
2283        }
2284
2285        if (bodyStyle.OTransform !== undefined) {
2286            _.animType = 'OTransform';
2287            _.transformType = '-o-transform';
2288            _.transitionType = 'OTransition';
2289            if (bodyStyle.perspectiveProperty === undefined && bodyStyle.webkitPerspective === undefined) _.animType = false;
2290        }
2291        if (bodyStyle.MozTransform !== undefined) {
2292            _.animType = 'MozTransform';
2293            _.transformType = '-moz-transform';
2294            _.transitionType = 'MozTransition';
2295            if (bodyStyle.perspectiveProperty === undefined && bodyStyle.MozPerspective === undefined) _.animType = false;
2296        }
2297        if (bodyStyle.webkitTransform !== undefined) {
2298            _.animType = 'webkitTransform';
2299            _.transformType = '-webkit-transform';
2300            _.transitionType = 'webkitTransition';
2301            if (bodyStyle.perspectiveProperty === undefined && bodyStyle.webkitPerspective === undefined) _.animType = false;
2302        }
2303        if (bodyStyle.msTransform !== undefined) {
2304            _.animType = 'msTransform';
2305            _.transformType = '-ms-transform';
2306            _.transitionType = 'msTransition';
2307            if (bodyStyle.msTransform === undefined) _.animType = false;
2308        }
2309        if (bodyStyle.transform !== undefined && _.animType !== false) {
2310            _.animType = 'transform';
2311            _.transformType = 'transform';
2312            _.transitionType = 'transition';
2313        }
2314        _.transformsEnabled = _.options.useTransform && (_.animType !== null && _.animType !== false);
2315    };
2316
2317
2318    Slick.prototype.setSlideClasses = function(index) {
2319
2320        var _ = this,
2321            centerOffset, allSlides, indexOffset, remainder;
2322
2323        allSlides = _.$slider
2324            .find('.slick-slide')
2325            .removeClass('slick-active slick-center slick-current')
2326            .attr('aria-hidden', 'true');
2327
2328        _.$slides
2329            .eq(index)
2330            .addClass('slick-current');
2331
2332        if (_.options.centerMode === true) {
2333
2334            var evenCoef = _.options.slidesToShow % 2 === 0 ? 1 : 0;
2335
2336            centerOffset = Math.floor(_.options.slidesToShow / 2);
2337
2338            if (_.options.infinite === true) {
2339
2340                if (index >= centerOffset && index <= (_.slideCount - 1) - centerOffset) {
2341                    _.$slides
2342                        .slice(index - centerOffset + evenCoef, index + centerOffset + 1)
2343                        .addClass('slick-active')
2344                        .attr('aria-hidden', 'false');
2345
2346                } else {
2347
2348                    indexOffset = _.options.slidesToShow + index;
2349                    allSlides
2350                        .slice(indexOffset - centerOffset + 1 + evenCoef, indexOffset + centerOffset + 2)
2351                        .addClass('slick-active')
2352                        .attr('aria-hidden', 'false');
2353
2354                }
2355
2356                if (index === 0) {
2357
2358                    allSlides
2359                        .eq( _.options.slidesToShow + _.slideCount + 1 )
2360                        .addClass('slick-center');
2361
2362                } else if (index === _.slideCount - 1) {
2363
2364                    allSlides
2365                        .eq(_.options.slidesToShow)
2366                        .addClass('slick-center');
2367
2368                }
2369
2370            }
2371
2372            _.$slides
2373                .eq(index)
2374                .addClass('slick-center');
2375
2376        } else {
2377
2378            if (index >= 0 && index <= (_.slideCount - _.options.slidesToShow)) {
2379
2380                _.$slides
2381                    .slice(index, index + _.options.slidesToShow)
2382                    .addClass('slick-active')
2383                    .attr('aria-hidden', 'false');
2384
2385            } else if (allSlides.length <= _.options.slidesToShow) {
2386
2387                allSlides
2388                    .addClass('slick-active')
2389                    .attr('aria-hidden', 'false');
2390
2391            } else {
2392
2393                remainder = _.slideCount % _.options.slidesToShow;
2394                indexOffset = _.options.infinite === true ? _.options.slidesToShow + index : index;
2395
2396                if (_.options.slidesToShow == _.options.slidesToScroll && (_.slideCount - index) < _.options.slidesToShow) {
2397
2398                    allSlides
2399                        .slice(indexOffset - (_.options.slidesToShow - remainder), indexOffset + remainder)
2400                        .addClass('slick-active')
2401                        .attr('aria-hidden', 'false');
2402
2403                } else {
2404
2405                    allSlides
2406                        .slice(indexOffset, indexOffset + _.options.slidesToShow)
2407                        .addClass('slick-active')
2408                        .attr('aria-hidden', 'false');
2409
2410                }
2411
2412            }
2413
2414        }
2415
2416        if (_.options.lazyLoad === 'ondemand' || _.options.lazyLoad === 'anticipated') {
2417            _.lazyLoad();
2418        }
2419    };
2420
2421    Slick.prototype.setupInfinite = function() {
2422
2423        var _ = this,
2424            i, slideIndex, infiniteCount;
2425
2426        if (_.options.fade === true) {
2427            _.options.centerMode = false;
2428        }
2429
2430        if (_.options.infinite === true && _.options.fade === false) {
2431
2432            slideIndex = null;
2433
2434            if (_.slideCount > _.options.slidesToShow) {
2435
2436                if (_.options.centerMode === true) {
2437                    infiniteCount = _.options.slidesToShow + 1;
2438                } else {
2439                    infiniteCount = _.options.slidesToShow;
2440                }
2441
2442                for (i = _.slideCount; i > (_.slideCount -
2443                        infiniteCount); i -= 1) {
2444                    slideIndex = i - 1;
2445                    $(_.$slides[slideIndex]).clone(true).attr('id', '')
2446                        .attr('data-slick-index', slideIndex - _.slideCount)
2447                        .prependTo(_.$slideTrack).addClass('slick-cloned');
2448                }
2449                for (i = 0; i < infiniteCount; i += 1) {
2450                    slideIndex = i;
2451                    $(_.$slides[slideIndex]).clone(true).attr('id', '')
2452                        .attr('data-slick-index', slideIndex + _.slideCount)
2453                        .appendTo(_.$slideTrack).addClass('slick-cloned');
2454                }
2455                _.$slideTrack.find('.slick-cloned').find('[id]').each(function() {
2456                    $(this).attr('id', '');
2457                });
2458
2459            }
2460
2461        }
2462
2463    };
2464
2465    Slick.prototype.interrupt = function( toggle ) {
2466
2467        var _ = this;
2468
2469        if( !toggle ) {
2470            _.autoPlay();
2471        }
2472        _.interrupted = toggle;
2473
2474    };
2475
2476    Slick.prototype.selectHandler = function(event) {
2477
2478        var _ = this;
2479
2480        var targetElement =
2481            $(event.target).is('.slick-slide') ?
2482                $(event.target) :
2483                $(event.target).parents('.slick-slide');
2484
2485        var index = parseInt(targetElement.attr('data-slick-index'));
2486
2487        if (!index) index = 0;
2488
2489        if (_.slideCount <= _.options.slidesToShow) {
2490
2491            _.slideHandler(index, false, true);
2492            return;
2493
2494        }
2495
2496        _.slideHandler(index);
2497
2498    };
2499
2500    Slick.prototype.slideHandler = function(index, sync, dontAnimate) {
2501
2502        var targetSlide, animSlide, oldSlide, slideLeft, targetLeft = null,
2503            _ = this, navTarget;
2504
2505        sync = sync || false;
2506
2507        if (_.animating === true && _.options.waitForAnimate === true) {
2508            return;
2509        }
2510
2511        if (_.options.fade === true && _.currentSlide === index) {
2512            return;
2513        }
2514
2515        if (sync === false) {
2516            _.asNavFor(index);
2517        }
2518
2519        targetSlide = index;
2520        targetLeft = _.getLeft(targetSlide);
2521        slideLeft = _.getLeft(_.currentSlide);
2522
2523        _.currentLeft = _.swipeLeft === null ? slideLeft : _.swipeLeft;
2524
2525        if (_.options.infinite === false && _.options.centerMode === false && (index < 0 || index > _.getDotCount() * _.options.slidesToScroll)) {
2526            if (_.options.fade === false) {
2527                targetSlide = _.currentSlide;
2528                if (dontAnimate !== true && _.slideCount > _.options.slidesToShow) {
2529                    _.animateSlide(slideLeft, function() {
2530                        _.postSlide(targetSlide);
2531                    });
2532                } else {
2533                    _.postSlide(targetSlide);
2534                }
2535            }
2536            return;
2537        } else if (_.options.infinite === false && _.options.centerMode === true && (index < 0 || index > (_.slideCount - _.options.slidesToScroll))) {
2538            if (_.options.fade === false) {
2539                targetSlide = _.currentSlide;
2540                if (dontAnimate !== true && _.slideCount > _.options.slidesToShow) {
2541                    _.animateSlide(slideLeft, function() {
2542                        _.postSlide(targetSlide);
2543                    });
2544                } else {
2545                    _.postSlide(targetSlide);
2546                }
2547            }
2548            return;
2549        }
2550
2551        if ( _.options.autoplay ) {
2552            clearInterval(_.autoPlayTimer);
2553        }
2554
2555        if (targetSlide < 0) {
2556            if (_.slideCount % _.options.slidesToScroll !== 0) {
2557                animSlide = _.slideCount - (_.slideCount % _.options.slidesToScroll);
2558            } else {
2559                animSlide = _.slideCount + targetSlide;
2560            }
2561        } else if (targetSlide >= _.slideCount) {
2562            if (_.slideCount % _.options.slidesToScroll !== 0) {
2563                animSlide = 0;
2564            } else {
2565                animSlide = targetSlide - _.slideCount;
2566            }
2567        } else {
2568            animSlide = targetSlide;
2569        }
2570
2571        _.animating = true;
2572
2573        _.$slider.trigger('beforeChange', [_, _.currentSlide, animSlide]);
2574
2575        oldSlide = _.currentSlide;
2576        _.currentSlide = animSlide;
2577
2578        _.setSlideClasses(_.currentSlide);
2579
2580        if ( _.options.asNavFor ) {
2581
2582            navTarget = _.getNavTarget();
2583            navTarget = navTarget.slick('getSlick');
2584
2585            if ( navTarget.slideCount <= navTarget.options.slidesToShow ) {
2586                navTarget.setSlideClasses(_.currentSlide);
2587            }
2588
2589        }
2590
2591        _.updateDots();
2592        _.updateArrows();
2593
2594        if (_.options.fade === true) {
2595            if (dontAnimate !== true) {
2596
2597                _.fadeSlideOut(oldSlide);
2598
2599                _.fadeSlide(animSlide, function() {
2600                    _.postSlide(animSlide);
2601                });
2602
2603            } else {
2604                _.postSlide(animSlide);
2605            }
2606            _.animateHeight();
2607            return;
2608        }
2609
2610        if (dontAnimate !== true && _.slideCount > _.options.slidesToShow) {
2611            _.animateSlide(targetLeft, function() {
2612                _.postSlide(animSlide);
2613            });
2614        } else {
2615            _.postSlide(animSlide);
2616        }
2617
2618    };
2619
2620    Slick.prototype.startLoad = function() {
2621
2622        var _ = this;
2623
2624        if (_.options.arrows === true && _.slideCount > _.options.slidesToShow) {
2625
2626            _.$prevArrow.hide();
2627            _.$nextArrow.hide();
2628
2629        }
2630
2631        if (_.options.dots === true && _.slideCount > _.options.slidesToShow) {
2632
2633            _.$dots.hide();
2634
2635        }
2636
2637        _.$slider.addClass('slick-loading');
2638
2639    };
2640
2641    Slick.prototype.swipeDirection = function() {
2642
2643        var xDist, yDist, r, swipeAngle, _ = this;
2644
2645        xDist = _.touchObject.startX - _.touchObject.curX;
2646        yDist = _.touchObject.startY - _.touchObject.curY;
2647        r = Math.atan2(yDist, xDist);
2648
2649        swipeAngle = Math.round(r * 180 / Math.PI);
2650        if (swipeAngle < 0) {
2651            swipeAngle = 360 - Math.abs(swipeAngle);
2652        }
2653
2654        if ((swipeAngle <= 45) && (swipeAngle >= 0)) {
2655            return (_.options.rtl === false ? 'left' : 'right');
2656        }
2657        if ((swipeAngle <= 360) && (swipeAngle >= 315)) {
2658            return (_.options.rtl === false ? 'left' : 'right');
2659        }
2660        if ((swipeAngle >= 135) && (swipeAngle <= 225)) {
2661            return (_.options.rtl === false ? 'right' : 'left');
2662        }
2663        if (_.options.verticalSwiping === true) {
2664            if ((swipeAngle >= 35) && (swipeAngle <= 135)) {
2665                return 'down';
2666            } else {
2667                return 'up';
2668            }
2669        }
2670
2671        return 'vertical';
2672
2673    };
2674
2675    Slick.prototype.swipeEnd = function(event) {
2676
2677        var _ = this,
2678            slideCount,
2679            direction;
2680
2681        _.dragging = false;
2682        _.swiping = false;
2683
2684        if (_.scrolling) {
2685            _.scrolling = false;
2686            return false;
2687        }
2688
2689        _.interrupted = false;
2690        _.shouldClick = ( _.touchObject.swipeLength > 10 ) ? false : true;
2691
2692        if ( _.touchObject.curX === undefined ) {
2693            return false;
2694        }
2695
2696        if ( _.touchObject.edgeHit === true ) {
2697            _.$slider.trigger('edge', [_, _.swipeDirection() ]);
2698        }
2699
2700        if ( _.touchObject.swipeLength >= _.touchObject.minSwipe ) {
2701
2702            direction = _.swipeDirection();
2703
2704            switch ( direction ) {
2705
2706                case 'left':
2707                case 'down':
2708
2709                    slideCount =
2710                        _.options.swipeToSlide ?
2711                            _.checkNavigable( _.currentSlide + _.getSlideCount() ) :
2712                            _.currentSlide + _.getSlideCount();
2713
2714                    _.currentDirection = 0;
2715
2716                    break;
2717
2718                case 'right':
2719                case 'up':
2720
2721                    slideCount =
2722                        _.options.swipeToSlide ?
2723                            _.checkNavigable( _.currentSlide - _.getSlideCount() ) :
2724                            _.currentSlide - _.getSlideCount();
2725
2726                    _.currentDirection = 1;
2727
2728                    break;
2729
2730                default:
2731
2732
2733            }
2734
2735            if( direction != 'vertical' ) {
2736
2737                _.slideHandler( slideCount );
2738                _.touchObject = {};
2739                _.$slider.trigger('swipe', [_, direction ]);
2740
2741            }
2742
2743        } else {
2744
2745            if ( _.touchObject.startX !== _.touchObject.curX ) {
2746
2747                _.slideHandler( _.currentSlide );
2748                _.touchObject = {};
2749
2750            }
2751
2752        }
2753
2754    };
2755
2756    Slick.prototype.swipeHandler = function(event) {
2757
2758        var _ = this;
2759
2760        if ((_.options.swipe === false) || ('ontouchend' in document && _.options.swipe === false)) {
2761            return;
2762        } else if (_.options.draggable === false && event.type.indexOf('mouse') !== -1) {
2763            return;
2764        }
2765
2766        _.touchObject.fingerCount = event.originalEvent && event.originalEvent.touches !== undefined ?
2767            event.originalEvent.touches.length : 1;
2768
2769        _.touchObject.minSwipe = _.listWidth / _.options
2770            .touchThreshold;
2771
2772        if (_.options.verticalSwiping === true) {
2773            _.touchObject.minSwipe = _.listHeight / _.options
2774                .touchThreshold;
2775        }
2776
2777        switch (event.data.action) {
2778
2779            case 'start':
2780                _.swipeStart(event);
2781                break;
2782
2783            case 'move':
2784                _.swipeMove(event);
2785                break;
2786
2787            case 'end':
2788                _.swipeEnd(event);
2789                break;
2790
2791        }
2792
2793    };
2794
2795    Slick.prototype.swipeMove = function(event) {
2796
2797        var _ = this,
2798            edgeWasHit = false,
2799            curLeft, swipeDirection, swipeLength, positionOffset, touches, verticalSwipeLength;
2800
2801        touches = event.originalEvent !== undefined ? event.originalEvent.touches : null;
2802
2803        if (!_.dragging || _.scrolling || touches && touches.length !== 1) {
2804            return false;
2805        }
2806
2807        curLeft = _.getLeft(_.currentSlide);
2808
2809        _.touchObject.curX = touches !== undefined ? touches[0].pageX : event.clientX;
2810        _.touchObject.curY = touches !== undefined ? touches[0].pageY : event.clientY;
2811
2812        _.touchObject.swipeLength = Math.round(Math.sqrt(
2813            Math.pow(_.touchObject.curX - _.touchObject.startX, 2)));
2814
2815        verticalSwipeLength = Math.round(Math.sqrt(
2816            Math.pow(_.touchObject.curY - _.touchObject.startY, 2)));
2817
2818        if (!_.options.verticalSwiping && !_.swiping && verticalSwipeLength > 4) {
2819            _.scrolling = true;
2820            return false;
2821        }
2822
2823        if (_.options.verticalSwiping === true) {
2824            _.touchObject.swipeLength = verticalSwipeLength;
2825        }
2826
2827        swipeDirection = _.swipeDirection();
2828
2829        if (event.originalEvent !== undefined && _.touchObject.swipeLength > 4) {
2830            _.swiping = true;
2831            event.preventDefault();
2832        }
2833
2834        positionOffset = (_.options.rtl === false ? 1 : -1) * (_.touchObject.curX > _.touchObject.startX ? 1 : -1);
2835        if (_.options.verticalSwiping === true) {
2836            positionOffset = _.touchObject.curY > _.touchObject.startY ? 1 : -1;
2837        }
2838
2839
2840        swipeLength = _.touchObject.swipeLength;
2841
2842        _.touchObject.edgeHit = false;
2843
2844        if (_.options.infinite === false) {
2845            if ((_.currentSlide === 0 && swipeDirection === 'right') || (_.currentSlide >= _.getDotCount() && swipeDirection === 'left')) {
2846                swipeLength = _.touchObject.swipeLength * _.options.edgeFriction;
2847                _.touchObject.edgeHit = true;
2848            }
2849        }
2850
2851        if (_.options.vertical === false) {
2852            _.swipeLeft = curLeft + swipeLength * positionOffset;
2853        } else {
2854            _.swipeLeft = curLeft + (swipeLength * (_.$list.height() / _.listWidth)) * positionOffset;
2855        }
2856        if (_.options.verticalSwiping === true) {
2857            _.swipeLeft = curLeft + swipeLength * positionOffset;
2858        }
2859
2860        if (_.options.fade === true || _.options.touchMove === false) {
2861            return false;
2862        }
2863
2864        if (_.animating === true) {
2865            _.swipeLeft = null;
2866            return false;
2867        }
2868
2869        _.setCSS(_.swipeLeft);
2870
2871    };
2872
2873    Slick.prototype.swipeStart = function(event) {
2874
2875        var _ = this,
2876            touches;
2877
2878        _.interrupted = true;
2879
2880        if (_.touchObject.fingerCount !== 1 || _.slideCount <= _.options.slidesToShow) {
2881            _.touchObject = {};
2882            return false;
2883        }
2884
2885        if (event.originalEvent !== undefined && event.originalEvent.touches !== undefined) {
2886            touches = event.originalEvent.touches[0];
2887        }
2888
2889        _.touchObject.startX = _.touchObject.curX = touches !== undefined ? touches.pageX : event.clientX;
2890        _.touchObject.startY = _.touchObject.curY = touches !== undefined ? touches.pageY : event.clientY;
2891
2892        _.dragging = true;
2893
2894    };
2895
2896    Slick.prototype.unfilterSlides = Slick.prototype.slickUnfilter = function() {
2897
2898        var _ = this;
2899
2900        if (_.$slidesCache !== null) {
2901
2902            _.unload();
2903
2904            _.$slideTrack.children(this.options.slide).detach();
2905
2906            _.$slidesCache.appendTo(_.$slideTrack);
2907
2908            _.reinit();
2909
2910        }
2911
2912    };
2913
2914    Slick.prototype.unload = function() {
2915
2916        var _ = this;
2917
2918        $('.slick-cloned', _.$slider).remove();
2919
2920        if (_.$dots) {
2921            _.$dots.remove();
2922        }
2923
2924        if (_.$prevArrow && _.htmlExpr.test(_.options.prevArrow)) {
2925            _.$prevArrow.remove();
2926        }
2927
2928        if (_.$nextArrow && _.htmlExpr.test(_.options.nextArrow)) {
2929            _.$nextArrow.remove();
2930        }
2931
2932        _.$slides
2933            .removeClass('slick-slide slick-active slick-visible slick-current')
2934            .attr('aria-hidden', 'true')
2935            .css('width', '');
2936
2937    };
2938
2939    Slick.prototype.unslick = function(fromBreakpoint) {
2940
2941        var _ = this;
2942        _.$slider.trigger('unslick', [_, fromBreakpoint]);
2943        _.destroy();
2944
2945    };
2946
2947    Slick.prototype.updateArrows = function() {
2948
2949        var _ = this,
2950            centerOffset;
2951
2952        centerOffset = Math.floor(_.options.slidesToShow / 2);
2953
2954        if ( _.options.arrows === true &&
2955            _.slideCount > _.options.slidesToShow &&
2956            !_.options.infinite ) {
2957
2958            _.$prevArrow.removeClass('slick-disabled').attr('aria-disabled', 'false');
2959            _.$nextArrow.removeClass('slick-disabled').attr('aria-disabled', 'false');
2960
2961            if (_.currentSlide === 0) {
2962
2963                _.$prevArrow.addClass('slick-disabled').attr('aria-disabled', 'true');
2964                _.$nextArrow.removeClass('slick-disabled').attr('aria-disabled', 'false');
2965
2966            } else if (_.currentSlide >= _.slideCount - _.options.slidesToShow && _.options.centerMode === false) {
2967
2968                _.$nextArrow.addClass('slick-disabled').attr('aria-disabled', 'true');
2969                _.$prevArrow.removeClass('slick-disabled').attr('aria-disabled', 'false');
2970
2971            } else if (_.currentSlide >= _.slideCount - 1 && _.options.centerMode === true) {
2972
2973                _.$nextArrow.addClass('slick-disabled').attr('aria-disabled', 'true');
2974                _.$prevArrow.removeClass('slick-disabled').attr('aria-disabled', 'false');
2975
2976            }
2977
2978        }
2979
2980    };
2981
2982    Slick.prototype.updateDots = function() {
2983
2984        var _ = this;
2985
2986        if (_.$dots !== null) {
2987
2988            _.$dots
2989                .find('li')
2990                    .removeClass('slick-active')
2991                    .end();
2992
2993            _.$dots
2994                .find('li')
2995                .eq(Math.floor(_.currentSlide / _.options.slidesToScroll))
2996                .addClass('slick-active');
2997
2998        }
2999
3000    };
3001
3002    Slick.prototype.visibility = function() {
3003
3004        var _ = this;
3005
3006        if ( _.options.autoplay ) {
3007
3008            if ( document[_.hidden] ) {
3009
3010                _.interrupted = true;
3011
3012            } else {
3013
3014                _.interrupted = false;
3015
3016            }
3017
3018        }
3019
3020    };
3021
3022    $.fn.slick = function() {
3023        var _ = this,
3024            opt = arguments[0],
3025            args = Array.prototype.slice.call(arguments, 1),
3026            l = _.length,
3027            i,
3028            ret;
3029        for (i = 0; i < l; i++) {
3030            if (typeof opt == 'object' || typeof opt == 'undefined')
3031                _[i].slick = new Slick(_[i], opt);
3032            else
3033                ret = _[i].slick[opt].apply(_[i].slick, args);
3034            if (typeof ret != 'undefined') return ret;
3035        }
3036        return _;
3037    };
3038
3039}));
3040
3041
3042/*
3043 * jQuery Form Styler v2.0.2
3044 * https://github.com/Dimox/jQueryFormStyler
3045 *
3046 * Copyright 2012-2017 Dimox (http://dimox.name/)
3047 * Released under the MIT license.
3048 *
3049 * Date: 2017.10.22
3050 *
3051 */
3052
3053;(function(factory) {
3054    if (typeof define === 'function' && define.amd) {
3055        // AMD
3056        define(['jquery'], factory);
3057    } else if (typeof exports === 'object') {
3058        // CommonJS
3059        module.exports = factory($ || require('jquery'));
3060    } else {
3061        factory(jQuery);
3062    }
3063}(function($) {
3064
3065    'use strict';
3066
3067    var pluginName = 'styler',
3068            defaults = {
3069                idSuffix: '-styler',
3070                filePlaceholder: 'Файл не выбран',
3071                fileBrowse: 'Обзор...',
3072                fileNumber: 'Выбрано файлов: %s',
3073                selectPlaceholder: 'Выберите...',
3074                selectSearch: false,
3075                selectSearchLimit: 10,
3076                selectSearchNotFound: 'Совпадений не найдено',
3077                selectSearchPlaceholder: 'Поиск...',
3078                selectVisibleOptions: 0,
3079                selectSmartPositioning: true,
3080                locale: 'ru',
3081                locales: {
3082                    'en': {
3083                        filePlaceholder: 'No file selected',
3084                        fileBrowse: 'Browse...',
3085                        fileNumber: 'Selected files: %s',
3086                        selectPlaceholder: 'Select...',
3087                        selectSearchNotFound: 'No matches found',
3088                        selectSearchPlaceholder: 'Search...'
3089                    }
3090                },
3091                onSelectOpened: function() {},
3092                onSelectClosed: function() {},
3093                onFormStyled: function() {}
3094            };
3095
3096    function Plugin(element, options) {
3097        this.element = element;
3098        this.options = $.extend({}, defaults, options);
3099        var locale = this.options.locale;
3100        if (this.options.locales[locale] !== undefined) {
3101            $.extend(this.options, this.options.locales[locale]);
3102        }
3103        this.init();
3104    }
3105
3106    Plugin.prototype = {
3107
3108        // инициализация
3109        init: function() {
3110
3111            var el = $(this.element);
3112            var opt = this.options;
3113
3114            var iOS = (navigator.userAgent.match(/(iPad|iPhone|iPod)/i) && !navigator.userAgent.match(/(Windows\sPhone)/i)) ? true : false;
3115            var Android = (navigator.userAgent.match(/Android/i) && !navigator.userAgent.match(/(Windows\sPhone)/i)) ? true : false;
3116
3117            function Attributes() {
3118                if (el.attr('id') !== undefined && el.attr('id') !== '') {
3119                    this.id = el.attr('id') + opt.idSuffix;
3120                }
3121                this.title = el.attr('title');
3122                this.classes = el.attr('class');
3123                this.data = el.data();
3124            }
3125
3126            // checkbox
3127            if (el.is(':checkbox')) {
3128
3129                var checkboxOutput = function() {
3130
3131                    var att = new Attributes();
3132                    var checkbox = $('<div class="jq-checkbox"><div class="jq-checkbox__div"></div></div>')
3133                        .attr({
3134                            id: att.id,
3135                            title: att.title
3136                        })
3137                        .addClass(att.classes)
3138                        .data(att.data)
3139                    ;
3140
3141                    el.after(checkbox).prependTo(checkbox);
3142                    if (el.is(':checked')) checkbox.addClass('checked');
3143                    if (el.is(':disabled')) checkbox.addClass('disabled');
3144
3145                    // клик на псевдочекбокс
3146                    checkbox.click(function(e) {
3147                        e.preventDefault();
3148                        el.triggerHandler('click');
3149                        if (!checkbox.is('.disabled')) {
3150                            if (el.is(':checked')) {
3151                                el.prop('checked', false);
3152                                checkbox.removeClass('checked');
3153                            } else {
3154                                el.prop('checked', true);
3155                                checkbox.addClass('checked');
3156                            }
3157                            el.focus().change();
3158                        }
3159                    });
3160                    // клик на label
3161                    el.closest('label').add('label[for="' + el.attr('id') + '"]').on('click.styler', function(e) {
3162                        if (!$(e.target).is('a') && !$(e.target).closest(checkbox).length) {
3163                            checkbox.triggerHandler('click');
3164                            e.preventDefault();
3165                        }
3166                    });
3167                    // переключение по Space или Enter
3168                    el.on('change.styler', function() {
3169                        if (el.is(':checked')) checkbox.addClass('checked');
3170                        else checkbox.removeClass('checked');
3171                    })
vendor: 53,873 bytes, lines 3172-4153
3172                    // чтобы переключался чекбокс, который находится в теге label
3173                    .on('keydown.styler', function(e) {
3174                        if (e.which == 32) checkbox.click();
3175                    })
3176                    .on('focus.styler', function() {
3177                        if (!checkbox.is('.disabled')) checkbox.addClass('focused');
3178                    })
3179                    .on('blur.styler', function() {
3180                        checkbox.removeClass('focused');
3181                    });
3182
3183                }; // end checkboxOutput()
3184
3185                checkboxOutput();
3186
3187                // обновление при динамическом изменении
3188                el.on('refresh', function() {
3189                    el.closest('label').add('label[for="' + el.attr('id') + '"]').off('.styler');
3190                    el.off('.styler').parent().before(el).remove();
3191                    checkboxOutput();
3192                });
3193
3194            // end checkbox
3195
3196            // radio
3197            } else if (el.is(':radio')) {
3198
3199                var radioOutput = function() {
3200
3201                    var att = new Attributes();
3202                    var radio = $('<div class="jq-radio"><div class="jq-radio__div"></div></div>')
3203                        .attr({
3204                            id: att.id,
3205                            title: att.title
3206                        })
3207                        .addClass(att.classes)
3208                        .data(att.data)
3209                    ;
3210
3211                    el.after(radio).prependTo(radio);
3212                    if (el.is(':checked')) radio.addClass('checked');
3213                    if (el.is(':disabled')) radio.addClass('disabled');
3214
3215                    // определяем общего родителя у радиокнопок с одинаковым name
3216                    // http://stackoverflow.com/a/27733847
3217                    $.fn.commonParents = function() {
3218                        var cachedThis = this;
3219                        return cachedThis.first().parents().filter(function() {
3220                            return $(this).find(cachedThis).length === cachedThis.length;
3221                        });
3222                    };
3223                    $.fn.commonParent = function() {
3224                        return $(this).commonParents().first();
3225                    };
3226
3227                    // клик на псевдорадиокнопке
3228                    radio.click(function(e) {
3229                        e.preventDefault();
3230                        el.triggerHandler('click');
3231                        if (!radio.is('.disabled')) {
3232                            var inputName = $('input[name="' + el.attr('name') + '"]');
3233                            inputName.commonParent().find(inputName).prop('checked', false).parent().removeClass('checked');
3234                            el.prop('checked', true).parent().addClass('checked');
3235                            el.focus().change();
3236                        }
3237                    });
3238                    // клик на label
3239                    el.closest('label').add('label[for="' + el.attr('id') + '"]').on('click.styler', function(e) {
3240                        if (!$(e.target).is('a') && !$(e.target).closest(radio).length) {
3241                            radio.triggerHandler('click');
3242                            e.preventDefault();
3243                        }
3244                    });
3245                    // переключение стрелками
3246                    el.on('change.styler', function() {
3247                        el.parent().addClass('checked');
3248                    })
3249                    .on('focus.styler', function() {
3250                        if (!radio.is('.disabled')) radio.addClass('focused');
3251                    })
3252                    .on('blur.styler', function() {
3253                        radio.removeClass('focused');
3254                    });
3255
3256                }; // end radioOutput()
3257
3258                radioOutput();
3259
3260                // обновление при динамическом изменении
3261                el.on('refresh', function() {
3262                    el.closest('label').add('label[for="' + el.attr('id') + '"]').off('.styler');
3263                    el.off('.styler').parent().before(el).remove();
3264                    radioOutput();
3265                });
3266
3267            // end radio
3268
3269            // file
3270            } else if (el.is(':file')) {
3271
3272                var fileOutput = function() {
3273
3274                    var att = new Attributes();
3275                    var placeholder = el.data('placeholder');
3276                    if (placeholder === undefined) placeholder = opt.filePlaceholder;
3277                    var browse = el.data('browse');
3278                    if (browse === undefined || browse === '') browse = opt.fileBrowse;
3279
3280                    var file =
3281                        $('<div class="jq-file">' +
3282                                '<div class="jq-file__name">' + placeholder + '</div>' +
3283                                '<div class="jq-file__browse">' + browse + '</div>' +
3284                            '</div>')
3285                        .attr({
3286                            id: att.id,
3287                            title: att.title
3288                        })
3289                        .addClass(att.classes)
3290                        .data(att.data)
3291                    ;
3292
3293                    el.after(file).appendTo(file);
3294                    if (el.is(':disabled')) file.addClass('disabled');
3295
3296                    var value = el.val();
3297                    var name = $('div.jq-file__name', file);
3298
3299                    // чтобы при динамическом изменении имя файла не сбрасывалось
3300                    if (value) name.text(value.replace(/.+[\\\/]/, ''));
3301
3302                    el.on('change.styler', function() {
3303                        var value = el.val();
3304                        if (el.is('[multiple]')) {
3305                            value = '';
3306                            var files = el[0].files.length;
3307                            if (files > 0) {
3308                                var number = el.data('number');
3309                                if (number === undefined) number = opt.fileNumber;
3310                                number = number.replace('%s', files);
3311                                value = number;
3312                            }
3313                        }
3314                        name.text(value.replace(/.+[\\\/]/, ''));
3315                        if (value === '') {
3316                            name.text(placeholder);
3317                            file.removeClass('changed');
3318                        } else {
3319                            file.addClass('changed');
3320                        }
3321                    })
3322                    .on('focus.styler', function() {
3323                        file.addClass('focused');
3324                    })
3325                    .on('blur.styler', function() {
3326                        file.removeClass('focused');
3327                    })
3328                    .on('click.styler', function() {
3329                        file.removeClass('focused');
3330                    });
3331
3332                }; // end fileOutput()
3333
3334                fileOutput();
3335
3336                // обновление при динамическом изменении
3337                el.on('refresh', function() {
3338                    el.off('.styler').parent().before(el).remove();
3339                    fileOutput();
3340                });
3341
3342            // end file
3343
3344            // number
3345            } else if (el.is('input[type="number"]')) {
3346
3347                var numberOutput = function() {
3348
3349                    var att = new Attributes();
3350                    var number =
3351                        $('<div class="jq-number">' +
3352                                '<div class="jq-number__spin minus"></div>' +
3353                                '<div class="jq-number__spin plus"></div>' +
3354                            '</div>')
3355                        .attr({
3356                            id: att.id,
3357                            title: att.title
3358                        })
3359                        .addClass(att.classes)
3360                        .data(att.data)
3361                    ;
3362
3363                    el.after(number).prependTo(number).wrap('<div class="jq-number__field"></div>');
3364                    if (el.is(':disabled')) number.addClass('disabled');
3365
3366                    var min,
3367                            max,
3368                            step,
3369                            timeout = null,
3370                            interval = null;
3371                    if (el.attr('min') !== undefined) min = el.attr('min');
3372                    if (el.attr('max') !== undefined) max = el.attr('max');
3373                    if (el.attr('step') !== undefined && $.isNumeric(el.attr('step')))
3374                        step = Number(el.attr('step'));
3375                    else
3376                        step = Number(1);
3377
3378                    var changeValue = function(spin) {
3379                        var value = el.val(),
3380                                newValue;
3381
3382                        if (!$.isNumeric(value)) {
3383                            value = 0;
3384                            el.val('0');
3385                        }
3386
3387                        if (spin.is('.minus')) {
3388                            newValue = Number(value) - step;
3389                        } else if (spin.is('.plus')) {
3390                            newValue = Number(value) + step;
3391                        }
3392
3393                        // определяем количество десятичных знаков после запятой в step
3394                        var decimals = (step.toString().split('.')[1] || []).length;
3395                        if (decimals > 0) {
3396                            var multiplier = '1';
3397                            while (multiplier.length <= decimals) multiplier = multiplier + '0';
3398                            // избегаем появления лишних знаков после запятой
3399                            newValue = Math.round(newValue * multiplier) / multiplier;
3400                        }
3401
3402                        if ($.isNumeric(min) && $.isNumeric(max)) {
3403                            if (newValue >= min && newValue <= max) el.val(newValue);
3404                        } else if ($.isNumeric(min) && !$.isNumeric(max)) {
3405                            if (newValue >= min) el.val(newValue);
3406                        } else if (!$.isNumeric(min) && $.isNumeric(max)) {
3407                            if (newValue <= max) el.val(newValue);
3408                        } else {
3409                            el.val(newValue);
3410                        }
3411                    };
3412
3413                    if (!number.is('.disabled')) {
3414                        number.on('mousedown', 'div.jq-number__spin', function() {
3415                            var spin = $(this);
3416                            changeValue(spin);
3417                            timeout = setTimeout(function(){
3418                                interval = setInterval(function(){ changeValue(spin); }, 40);
3419                            }, 350);
3420                        }).on('mouseup mouseout', 'div.jq-number__spin', function() {
3421                            clearTimeout(timeout);
3422                            clearInterval(interval);
3423                        }).on('mouseup', 'div.jq-number__spin', function() {
3424                            el.change().trigger('input');
3425                        });
3426                        el.on('focus.styler', function() {
3427                            number.addClass('focused');
3428                        })
3429                        .on('blur.styler', function() {
3430                            number.removeClass('focused');
3431                        });
3432                    }
3433
3434                }; // end numberOutput()
3435
3436                numberOutput();
3437
3438                // обновление при динамическом изменении
3439                el.on('refresh', function() {
3440                    el.off('.styler').closest('.jq-number').before(el).remove();
3441                    numberOutput();
3442                });
3443
3444            // end number
3445
3446            // select
3447            } else if (el.is('select')) {
3448
3449                var selectboxOutput = function() {
3450
3451                    // запрещаем прокрутку страницы при прокрутке селекта
3452                    function preventScrolling(selector) {
3453
3454                        var scrollDiff = selector.prop('scrollHeight') - selector.outerHeight(),
3455                                wheelDelta = null,
3456                                scrollTop = null;
3457
3458                        selector.off('mousewheel DOMMouseScroll').on('mousewheel DOMMouseScroll', function(e) {
3459
3460                            /**
3461                             * нормализация направления прокрутки
3462                             * (firefox < 0 || chrome etc... > 0)
3463                             * (e.originalEvent.detail < 0 || e.originalEvent.wheelDelta > 0)
3464                             */
3465                            wheelDelta = (e.originalEvent.detail < 0 || e.originalEvent.wheelDelta > 0) ? 1 : -1; // направление прокрутки (-1 вниз, 1 вверх)
3466                            scrollTop = selector.scrollTop(); // позиция скролла
3467
3468                            if ((scrollTop >= scrollDiff && wheelDelta < 0) || (scrollTop <= 0 && wheelDelta > 0)) {
3469                                e.stopPropagation();
3470                                e.preventDefault();
3471                            }
3472
3473                        });
3474                    }
3475
3476                    var option = $('option', el);
3477                    var list = '';
3478                    // формируем список селекта
3479                    function makeList() {
3480                        for (var i = 0; i < option.length; i++) {
3481                            var op = option.eq(i);
3482                            var li = '',
3483                                    liClass = '',
3484                                    liClasses = '',
3485                                    id = '',
3486                                    title = '',
3487                                    dataList = '',
3488                                    optionClass = '',
3489                                    optgroupClass = '',
3490                                    dataJqfsClass = '';
3491                            var disabled = 'disabled';
3492                            var selDis = 'selected sel disabled';
3493                            if (op.prop('selected')) liClass = 'selected sel';
3494                            if (op.is(':disabled')) liClass = disabled;
3495                            if (op.is(':selected:disabled')) liClass = selDis;
3496                            if (op.attr('id') !== undefined && op.attr('id') !== '') id = ' id="' + op.attr('id') + opt.idSuffix + '"';
3497                            if (op.attr('title') !== undefined && option.attr('title') !== '') title = ' title="' + op.attr('title') + '"';
3498                            if (op.attr('class') !== undefined) {
3499                                optionClass = ' ' + op.attr('class');
3500                                dataJqfsClass = ' data-jqfs-class="' + op.attr('class') + '"';
3501                            }
3502
3503                            var data = op.data();
3504                            for (var k in data) {
3505                                if (data[k] !== '') dataList += ' data-' + k + '="' + data[k] + '"';
3506                            }
3507
3508                            if ( (liClass + optionClass) !== '' )   liClasses = ' class="' + liClass + optionClass + '"';
3509                            li = '<li' + dataJqfsClass + dataList + liClasses + title + id + '>'+ op.html() +'</li>';
3510
3511                            // если есть optgroup
3512                            if (op.parent().is('optgroup')) {
3513                                if (op.parent().attr('class') !== undefined) optgroupClass = ' ' + op.parent().attr('class');
3514                                li = '<li' + dataJqfsClass + dataList + ' class="' + liClass + optionClass + ' option' + optgroupClass + '"' + title + id + '>'+ op.html() +'</li>';
3515                                if (op.is(':first-child')) {
3516                                    li = '<li class="optgroup' + optgroupClass + '">' + op.parent().attr('label') + '</li>' + li;
3517                                }
3518                            }
3519
3520                            list += li;
3521                        }
3522                    } // end makeList()
3523
3524                    // одиночный селект
3525                    function doSelect() {
3526
3527                        var att = new Attributes();
3528                        var searchHTML = '';
3529                        var selectPlaceholder = el.data('placeholder');
3530                        var selectSearch = el.data('search');
3531                        var selectSearchLimit = el.data('search-limit');
3532                        var selectSearchNotFound = el.data('search-not-found');
3533                        var selectSearchPlaceholder = el.data('search-placeholder');
3534                        var selectSmartPositioning = el.data('smart-positioning');
3535
3536                        if (selectPlaceholder === undefined) selectPlaceholder = opt.selectPlaceholder;
3537                        if (selectSearch === undefined || selectSearch === '') selectSearch = opt.selectSearch;
3538                        if (selectSearchLimit === undefined || selectSearchLimit === '') selectSearchLimit = opt.selectSearchLimit;
3539                        if (selectSearchNotFound === undefined || selectSearchNotFound === '') selectSearchNotFound = opt.selectSearchNotFound;
3540                        if (selectSearchPlaceholder === undefined) selectSearchPlaceholder = opt.selectSearchPlaceholder;
3541                        if (selectSmartPositioning === undefined || selectSmartPositioning === '') selectSmartPositioning = opt.selectSmartPositioning;
3542
3543                        var selectbox =
3544                            $('<div class="jq-selectbox jqselect">' +
3545                                    '<div class="jq-selectbox__select">' +
3546                                        '<div class="jq-selectbox__select-text"></div>' +
3547                                        '<div class="jq-selectbox__trigger">' +
3548                                            '<div class="jq-selectbox__trigger-arrow"></div></div>' +
3549                                    '</div>' +
3550                                '</div>')
3551                            .attr({
3552                                id: att.id,
3553                                title: att.title
3554                            })
3555                            .addClass(att.classes)
3556                            .data(att.data)
3557                        ;
3558
3559                        el.after(selectbox).prependTo(selectbox);
3560
3561                        var selectzIndex = selectbox.css('z-index');
3562                        selectzIndex = (selectzIndex > 0 ) ? selectzIndex : 1;
3563                        var divSelect = $('div.jq-selectbox__select', selectbox);
3564                        var divText = $('div.jq-selectbox__select-text', selectbox);
3565                        var optionSelected = option.filter(':selected');
3566
3567                        makeList();
3568
3569                        if (selectSearch) searchHTML =
3570                            '<div class="jq-selectbox__search"><input type="search" autocomplete="off" placeholder="' + selectSearchPlaceholder + '"></div>' +
3571                            '<div class="jq-selectbox__not-found">' + selectSearchNotFound + '</div>';
3572                        var dropdown =
3573                            $('<div class="jq-selectbox__dropdown">' +
3574                                    searchHTML + '<ul>' + list + '</ul>' +
3575                                '</div>');
3576                        selectbox.append(dropdown);
3577                        var ul = $('ul', dropdown);
3578                        var li = $('li', dropdown);
3579                        var search = $('input', dropdown);
3580                        var notFound = $('div.jq-selectbox__not-found', dropdown).hide();
3581                        if (li.length < selectSearchLimit) search.parent().hide();
3582
3583                        // показываем опцию по умолчанию
3584                        // если у 1-й опции нет текста, она выбрана по умолчанию и параметр selectPlaceholder не false, то показываем плейсхолдер
3585                        if (option.first().text() === '' && option.first().is(':selected') && selectPlaceholder !== false) {
3586                            divText.text(selectPlaceholder).addClass('placeholder');
3587                        } else {
3588                            divText.text(optionSelected.text());
3589                        }
3590
3591                        // определяем самый широкий пункт селекта
3592                        var liWidthInner = 0,
3593                                liWidth = 0;
3594                        li.css({'display': 'inline-block'});
3595                        li.each(function() {
3596                            var l = $(this);
3597                            if (l.innerWidth() > liWidthInner) {
3598                                liWidthInner = l.innerWidth();
3599                                liWidth = l.width();
3600                            }
3601                        });
3602                        li.css({'display': ''});
3603
3604                        // подстраиваем ширину свернутого селекта в зависимости
3605                        // от ширины плейсхолдера или самого широкого пункта
3606                        if (divText.is('.placeholder') && (divText.width() > liWidthInner)) {
3607                            divText.width(divText.width());
3608                        } else {
3609                            var selClone = selectbox.clone().appendTo('body').width('auto');
3610                            var selCloneWidth = selClone.outerWidth();
3611                            selClone.remove();
3612                            if (selCloneWidth == selectbox.outerWidth()) {
3613                                divText.width(liWidth);
3614                            }
3615                        }
3616
3617                        // подстраиваем ширину выпадающего списка в зависимости от самого широкого пункта
3618                        if (liWidthInner > selectbox.width()) dropdown.width(liWidthInner);
3619
3620                        // прячем 1-ю пустую опцию, если она есть и если атрибут data-placeholder не пустой
3621                        // если все же нужно, чтобы первая пустая опция отображалась, то указываем у селекта: data-placeholder=""
3622                        if (option.first().text() === '' && el.data('placeholder') !== '') {
3623                            li.first().hide();
3624                        }
3625
3626                        var selectHeight = selectbox.outerHeight(true);
3627                        var searchHeight = search.parent().outerHeight(true) || 0;
3628                        var isMaxHeight = ul.css('max-height');
3629                        var liSelected = li.filter('.selected');
3630                        if (liSelected.length < 1) li.first().addClass('selected sel');
3631                        if (li.data('li-height') === undefined) {
3632                            var liOuterHeight = li.outerHeight();
3633                            if (selectPlaceholder !== false) liOuterHeight = li.eq(1).outerHeight();
3634                            li.data('li-height', liOuterHeight);
3635                        }
3636                        var position = dropdown.css('top');
3637                        if (dropdown.css('left') == 'auto') dropdown.css({left: 0});
3638                        if (dropdown.css('top') == 'auto') {
3639                            dropdown.css({top: selectHeight});
3640                            position = selectHeight;
3641                        }
3642                        dropdown.hide();
3643
3644                        // если выбран не дефолтный пункт
3645                        if (liSelected.length) {
3646                            // добавляем класс, показывающий изменение селекта
3647                            if (option.first().text() != optionSelected.text()) {
3648                                selectbox.addClass('changed');
3649                            }
3650                            // передаем селекту класс выбранного пункта
3651                            selectbox.data('jqfs-class', liSelected.data('jqfs-class'));
3652                            selectbox.addClass(liSelected.data('jqfs-class'));
3653                        }
3654
3655                        // если селект неактивный
3656                        if (el.is(':disabled')) {
3657                            selectbox.addClass('disabled');
3658                            return false;
3659                        }
3660
3661                        // при клике на псевдоселекте
3662                        divSelect.click(function() {
3663
3664                            // колбек при закрытии селекта
3665                            if ($('div.jq-selectbox').filter('.opened').length) {
3666                                opt.onSelectClosed.call($('div.jq-selectbox').filter('.opened'));
3667                            }
3668
3669                            el.focus();
3670
3671                            // если iOS, то не показываем выпадающий список,
3672                            // т.к. отображается нативный и неизвестно, как его спрятать
3673                            if (iOS) return;
3674
3675                            // умное позиционирование
3676                            var win = $(window);
3677                            var liHeight = li.data('li-height');
3678                            var topOffset = selectbox.offset().top;
3679                            var bottomOffset = win.height() - selectHeight - (topOffset - win.scrollTop());
3680                            var visible = el.data('visible-options');
3681                            if (visible === undefined || visible === '') visible = opt.selectVisibleOptions;
3682                            var minHeight = liHeight * 5;
3683                            var newHeight = liHeight * visible;
3684                            if (visible > 0 && visible < 6) minHeight = newHeight;
3685                            if (visible === 0) newHeight = 'auto';
3686
3687                            var dropDown = function() {
3688                                dropdown.height('auto').css({bottom: 'auto', top: position});
3689                                var maxHeightBottom = function() {
3690                                    ul.css('max-height', Math.floor((bottomOffset - 20 - searchHeight) / liHeight) * liHeight);
3691                                };
3692                                maxHeightBottom();
3693                                ul.css('max-height', newHeight);
3694                                if (isMaxHeight != 'none') {
3695                                    ul.css('max-height', isMaxHeight);
3696                                }
3697                                if (bottomOffset < (dropdown.outerHeight() + 20)) {
3698                                    maxHeightBottom();
3699                                }
3700                            };
3701
3702                            var dropUp = function() {
3703                                dropdown.height('auto').css({top: 'auto', bottom: position});
3704                                var maxHeightTop = function() {
3705                                    ul.css('max-height', Math.floor((topOffset - win.scrollTop() - 20 - searchHeight) / liHeight) * liHeight);
3706                                };
3707                                maxHeightTop();
3708                                ul.css('max-height', newHeight);
3709                                if (isMaxHeight != 'none') {
3710                                    ul.css('max-height', isMaxHeight);
3711                                }
3712                                if ((topOffset - win.scrollTop() - 20) < (dropdown.outerHeight() + 20)) {
3713                                    maxHeightTop();
3714                                }
3715                            };
3716
3717                            if (selectSmartPositioning === true || selectSmartPositioning === 1) {
3718                                // раскрытие вниз
3719                                if (bottomOffset > (minHeight + searchHeight + 20)) {
3720                                    dropDown();
3721                                    selectbox.removeClass('dropup').addClass('dropdown');
3722                                // раскрытие вверх
3723                                } else {
3724                                    dropUp();
3725                                    selectbox.removeClass('dropdown').addClass('dropup');
3726                                }
3727                            } else if (selectSmartPositioning === false || selectSmartPositioning === 0) {
3728                                // раскрытие вниз
3729                                if (bottomOffset > (minHeight + searchHeight + 20)) {
3730                                    dropDown();
3731                                    selectbox.removeClass('dropup').addClass('dropdown');
3732                                }
3733                            } else {
3734                                // если умное позиционирование отключено
3735                                dropdown.height('auto').css({bottom: 'auto', top: position});
3736                                ul.css('max-height', newHeight);
3737                                if (isMaxHeight != 'none') {
3738                                    ul.css('max-height', isMaxHeight);
3739                                }
3740                            }
3741
3742                            // если выпадающий список выходит за правый край окна браузера,
3743                            // то меняем позиционирование с левого на правое
3744                            if (selectbox.offset().left + dropdown.outerWidth() > win.width()) {
3745                                dropdown.css({left: 'auto', right: 0});
3746                            }
3747                            // конец умного позиционирования
3748
3749                            $('div.jqselect').css({zIndex: (selectzIndex - 1)}).removeClass('opened');
3750                            selectbox.css({zIndex: selectzIndex});
3751                            if (dropdown.is(':hidden')) {
3752                                $('div.jq-selectbox__dropdown:visible').hide();
3753                                dropdown.show();
3754                                selectbox.addClass('opened focused');
3755                                // колбек при открытии селекта
3756                                opt.onSelectOpened.call(selectbox);
3757                            } else {
3758                                dropdown.hide();
3759                                selectbox.removeClass('opened dropup dropdown');
3760                                // колбек при закрытии селекта
3761                                if ($('div.jq-selectbox').filter('.opened').length) {
3762                                    opt.onSelectClosed.call(selectbox);
3763                                }
3764                            }
3765
3766                            // поисковое поле
3767                            if (search.length) {
3768                                search.val('').keyup();
3769                                notFound.hide();
3770                                search.keyup(function() {
3771                                    var query = $(this).val();
3772                                    li.each(function() {
3773                                        if (!$(this).html().match(new RegExp('.*?' + query + '.*?', 'i'))) {
3774                                            $(this).hide();
3775                                        } else {
3776                                            $(this).show();
3777                                        }
3778                                    });
3779                                    // прячем 1-ю пустую опцию
3780                                    if (option.first().text() === '' && el.data('placeholder') !== '') {
3781                                        li.first().hide();
3782                                    }
3783                                    if (li.filter(':visible').length < 1) {
3784                                        notFound.show();
3785                                    } else {
3786                                        notFound.hide();
3787                                    }
3788                                });
3789                            }
3790
3791                            // прокручиваем до выбранного пункта при открытии списка
3792                            if (li.filter('.selected').length) {
3793                                if (el.val() === '') {
3794                                    ul.scrollTop(0);
3795                                } else {
3796                                    // если нечетное количество видимых пунктов,
3797                                    // то высоту пункта делим пополам для последующего расчета
3798                                    if ( (ul.innerHeight() / liHeight) % 2 !== 0 ) liHeight = liHeight / 2;
3799                                    ul.scrollTop(ul.scrollTop() + li.filter('.selected').position().top - ul.innerHeight() / 2 + liHeight);
3800                                }
3801                            }
3802
3803                            preventScrolling(ul);
3804
3805                        }); // end divSelect.click()
3806
3807                        // при наведении курсора на пункт списка
3808                        li.hover(function() {
3809                            $(this).siblings().removeClass('selected');
3810                        });
3811                        var selectedText = li.filter('.selected').text();
3812
3813                        // при клике на пункт списка
3814                        li.filter(':not(.disabled):not(.optgroup)').click(function() {
3815                            el.focus();
3816                            var t = $(this);
3817                            var liText = t.text();
3818                            if (!t.is('.selected')) {
3819                                var index = t.index();
3820                                index -= t.prevAll('.optgroup').length;
3821                                t.addClass('selected sel').siblings().removeClass('selected sel');
3822                                option.prop('selected', false).eq(index).prop('selected', true);
3823                                selectedText = liText;
3824                                divText.text(liText);
3825
3826                                // передаем селекту класс выбранного пункта
3827                                if (selectbox.data('jqfs-class')) selectbox.removeClass(selectbox.data('jqfs-class'));
3828                                selectbox.data('jqfs-class', t.data('jqfs-class'));
3829                                selectbox.addClass(t.data('jqfs-class'));
3830
3831                                el.change();
3832                            }
3833                            dropdown.hide();
3834                            selectbox.removeClass('opened dropup dropdown');
3835                            // колбек при закрытии селекта
3836                            opt.onSelectClosed.call(selectbox);
3837
3838                        });
3839                        dropdown.mouseout(function() {
3840                            $('li.sel', dropdown).addClass('selected');
3841                        });
3842
3843                        // изменение селекта
3844                        el.on('change.styler', function() {
3845                            divText.text(option.filter(':selected').text()).removeClass('placeholder');
3846                            li.removeClass('selected sel').not('.optgroup').eq(el[0].selectedIndex).addClass('selected sel');
3847                            // добавляем класс, показывающий изменение селекта
3848                            if (option.first().text() != li.filter('.selected').text()) {
3849                                selectbox.addClass('changed');
3850                            } else {
3851                                selectbox.removeClass('changed');
3852                            }
3853                        })
3854                        .on('focus.styler', function() {
3855                            selectbox.addClass('focused');
3856                            $('div.jqselect').not('.focused').removeClass('opened dropup dropdown').find('div.jq-selectbox__dropdown').hide();
3857                        })
3858                        .on('blur.styler', function() {
3859                            selectbox.removeClass('focused');
3860                        })
3861                        // изменение селекта с клавиатуры
3862                        .on('keydown.styler keyup.styler', function(e) {
3863                            var liHeight = li.data('li-height');
3864                            if (el.val() === '') {
3865                                divText.text(selectPlaceholder).addClass('placeholder');
3866                            } else {
3867                                divText.text(option.filter(':selected').text());
3868                            }
3869                            li.removeClass('selected sel').not('.optgroup').eq(el[0].selectedIndex).addClass('selected sel');
3870                            // вверх, влево, Page Up, Home
3871                            if (e.which == 38 || e.which == 37 || e.which == 33 || e.which == 36) {
3872                                if (el.val() === '') {
3873                                    ul.scrollTop(0);
3874                                } else {
3875                                    ul.scrollTop(ul.scrollTop() + li.filter('.selected').position().top);
3876                                }
3877                            }
3878                            // вниз, вправо, Page Down, End
3879                            if (e.which == 40 || e.which == 39 || e.which == 34 || e.which == 35) {
3880                                ul.scrollTop(ul.scrollTop() + li.filter('.selected').position().top - ul.innerHeight() + liHeight);
3881                            }
3882                            // закрываем выпадающий список при нажатии Enter
3883                            if (e.which == 13) {
3884                                e.preventDefault();
3885                                dropdown.hide();
3886                                selectbox.removeClass('opened dropup dropdown');
3887                                // колбек при закрытии селекта
3888                                opt.onSelectClosed.call(selectbox);
3889                            }
3890                        }).on('keydown.styler', function(e) {
3891                            // открываем выпадающий список при нажатии Space
3892                            if (e.which == 32) {
3893                                e.preventDefault();
3894                                divSelect.click();
3895                            }
3896                        });
3897
3898                        // прячем выпадающий список при клике за пределами селекта
3899                        if (!onDocumentClick.registered) {
3900                            $(document).on('click', onDocumentClick);
3901                            onDocumentClick.registered = true;
3902                        }
3903
3904                    } // end doSelect()
3905
3906                    // мультиселект
3907                    function doMultipleSelect() {
3908
3909                        var att = new Attributes();
3910                        var selectbox =
3911                            $('<div class="jq-select-multiple jqselect"></div>')
3912                            .attr({
3913                                id: att.id,
3914                                title: att.title
3915                            })
3916                            .addClass(att.classes)
3917                            .data(att.data)
3918                        ;
3919
3920                        el.after(selectbox);
3921
3922                        makeList();
3923                        selectbox.append('<ul>' + list + '</ul>');
3924                        var ul = $('ul', selectbox);
3925                        var li = $('li', selectbox);
3926                        var size = el.attr('size');
3927                        var ulHeight = ul.outerHeight();
3928                        var liHeight = li.outerHeight();
3929                        if (size !== undefined && size > 0) {
3930                            ul.css({'height': liHeight * size});
3931                        } else {
3932                            ul.css({'height': liHeight * 4});
3933                        }
3934                        if (ulHeight > selectbox.height()) {
3935                            ul.css('overflowY', 'scroll');
3936                            preventScrolling(ul);
3937                            // прокручиваем до выбранного пункта
3938                            if (li.filter('.selected').length) {
3939                                ul.scrollTop(ul.scrollTop() + li.filter('.selected').position().top);
3940                            }
3941                        }
3942
3943                        // прячем оригинальный селект
3944                        el.prependTo(selectbox);
3945
3946                        // если селект неактивный
3947                        if (el.is(':disabled')) {
3948                            selectbox.addClass('disabled');
3949                            option.each(function() {
3950                                if ($(this).is(':selected')) li.eq($(this).index()).addClass('selected');
3951                            });
3952
3953                        // если селект активный
3954                        } else {
3955
3956                            // при клике на пункт списка
3957                            li.filter(':not(.disabled):not(.optgroup)').click(function(e) {
3958                                el.focus();
3959                                var clkd = $(this);
3960                                if(!e.ctrlKey && !e.metaKey) clkd.addClass('selected');
3961                                if(!e.shiftKey) clkd.addClass('first');
3962                                if(!e.ctrlKey && !e.metaKey && !e.shiftKey) clkd.siblings().removeClass('selected first');
3963
3964                                // выделение пунктов при зажатом Ctrl
3965                                if(e.ctrlKey || e.metaKey) {
3966                                    if (clkd.is('.selected')) clkd.removeClass('selected first');
3967                                        else clkd.addClass('selected first');
3968                                    clkd.siblings().removeClass('first');
3969                                }
3970
3971                                // выделение пунктов при зажатом Shift
3972                                if(e.shiftKey) {
3973                                    var prev = false,
3974                                            next = false;
3975                                    clkd.siblings().removeClass('selected').siblings('.first').addClass('selected');
3976                                    clkd.prevAll().each(function() {
3977                                        if ($(this).is('.first')) prev = true;
3978                                    });
3979                                    clkd.nextAll().each(function() {
3980                                        if ($(this).is('.first')) next = true;
3981                                    });
3982                                    if (prev) {
3983                                        clkd.prevAll().each(function() {
3984                                            if ($(this).is('.selected')) return false;
3985                                                else $(this).not('.disabled, .optgroup').addClass('selected');
3986                                        });
3987                                    }
3988                                    if (next) {
3989                                        clkd.nextAll().each(function() {
3990                                            if ($(this).is('.selected')) return false;
3991                                                else $(this).not('.disabled, .optgroup').addClass('selected');
3992                                        });
3993                                    }
3994                                    if (li.filter('.selected').length == 1) clkd.addClass('first');
3995                                }
3996
3997                                // отмечаем выбранные мышью
3998                                option.prop('selected', false);
3999                                li.filter('.selected').each(function() {
4000                                    var t = $(this);
4001                                    var index = t.index();
4002                                    if (t.is('.option')) index -= t.prevAll('.optgroup').length;
4003                                    option.eq(index).prop('selected', true);
4004                                });
4005                                el.change();
4006
4007                            });
4008
4009                            // отмечаем выбранные с клавиатуры
4010                            option.each(function(i) {
4011                                $(this).data('optionIndex', i);
4012                            });
4013                            el.on('change.styler', function() {
4014                                li.removeClass('selected');
4015                                var arrIndexes = [];
4016                                option.filter(':selected').each(function() {
4017                                    arrIndexes.push($(this).data('optionIndex'));
4018                                });
4019                                li.not('.optgroup').filter(function(i) {
4020                                    return $.inArray(i, arrIndexes) > -1;
4021                                }).addClass('selected');
4022                            })
4023                            .on('focus.styler', function() {
4024                                selectbox.addClass('focused');
4025                            })
4026                            .on('blur.styler', function() {
4027                                selectbox.removeClass('focused');
4028                            });
4029
4030                            // прокручиваем с клавиатуры
4031                            if (ulHeight > selectbox.height()) {
4032                                el.on('keydown.styler', function(e) {
4033                                    // вверх, влево, PageUp
4034                                    if (e.which == 38 || e.which == 37 || e.which == 33) {
4035                                        ul.scrollTop(ul.scrollTop() + li.filter('.selected').position().top - liHeight);
4036                                    }
4037                                    // вниз, вправо, PageDown
4038                                    if (e.which == 40 || e.which == 39 || e.which == 34) {
4039                                        ul.scrollTop(ul.scrollTop() + li.filter('.selected:last').position().top - ul.innerHeight() + liHeight * 2);
4040                                    }
4041                                });
4042                            }
4043
4044                        }
4045                    } // end doMultipleSelect()
4046
4047                    if (el.is('[multiple]')) {
4048
4049                        // если Android или iOS, то мультиселект не стилизуем
4050                        // причина для Android - в стилизованном селекте нет возможности выбрать несколько пунктов
4051                        // причина для iOS - в стилизованном селекте неправильно отображаются выбранные пункты
4052                        if (Android || iOS) return;
4053
4054                        doMultipleSelect();
4055                    } else {
4056                        doSelect();
4057                    }
4058
4059                }; // end selectboxOutput()
4060
4061                selectboxOutput();
4062
4063                // обновление при динамическом изменении
4064                el.on('refresh', function() {
4065                    el.off('.styler').parent().before(el).remove();
4066                    selectboxOutput();
4067                });
4068
4069            // end select
4070
4071            // reset
4072            } else if (el.is(':reset')) {
4073                el.on('click', function() {
4074                    setTimeout(function() {
4075                        el.closest('form').find('input, select').trigger('refresh');
4076                    }, 1);
4077                });
4078            } // end reset
4079
4080        }, // init: function()
4081
4082        // деструктор
4083        destroy: function() {
4084
4085            var el = $(this.element);
4086
4087            if (el.is(':checkbox') || el.is(':radio')) {
4088                el.removeData('_' + pluginName).off('.styler refresh').removeAttr('style').parent().before(el).remove();
4089                el.closest('label').add('label[for="' + el.attr('id') + '"]').off('.styler');
4090            } else if (el.is('input[type="number"]')) {
4091                el.removeData('_' + pluginName).off('.styler refresh').closest('.jq-number').before(el).remove();
4092            } else if (el.is(':file') || el.is('select')) {
4093                el.removeData('_' + pluginName).off('.styler refresh').removeAttr('style').parent().before(el).remove();
4094            }
4095
4096        } // destroy: function()
4097
4098    }; // Plugin.prototype
4099
4100    $.fn[pluginName] = function(options) {
4101        var args = arguments;
4102        if (options === undefined || typeof options === 'object') {
4103            this.each(function() {
4104                if (!$.data(this, '_' + pluginName)) {
4105                    $.data(this, '_' + pluginName, new Plugin(this, options));
4106                }
4107            })
4108            // колбек после выполнения плагина
4109            .promise()
4110            .done(function() {
4111                var opt = $(this[0]).data('_' + pluginName);
4112                if (opt) opt.options.onFormStyled.call();
4113            });
4114            return this;
4115        } else if (typeof options === 'string' && options[0] !== '_' && options !== 'init') {
4116            var returns;
4117            this.each(function() {
4118                var instance = $.data(this, '_' + pluginName);
4119                if (instance instanceof Plugin && typeof instance[options] === 'function') {
4120                    returns = instance[options].apply(instance, Array.prototype.slice.call(args, 1));
4121                }
4122            });
4123            return returns !== undefined ? returns : this;
4124        }
4125    };
4126
4127    // прячем выпадающий список при клике за пределами селекта
4128    function onDocumentClick(e) {
4129        // e.target.nodeName != 'OPTION' - добавлено для обхода бага в Opera на движке Presto
4130        // (при изменении селекта с клавиатуры срабатывает событие onclick)
4131        if (!$(e.target).parents().hasClass('jq-selectbox') && e.target.nodeName != 'OPTION') {
4132            if ($('div.jq-selectbox.opened').length) {
4133                var selectbox = $('div.jq-selectbox.opened'),
4134                        search = $('div.jq-selectbox__search input', selectbox),
4135                        dropdown = $('div.jq-selectbox__dropdown', selectbox),
4136                        opt = selectbox.find('select').data('_' + pluginName).options;
4137
4138                // колбек при закрытии селекта
4139                opt.onSelectClosed.call(selectbox);
4140
4141                if (search.length) search.val('').keyup();
4142                dropdown.hide().find('li.sel').addClass('selected');
4143                selectbox.removeClass('focused opened dropup dropdown');
4144            }
4145        }
4146    }
4147    onDocumentClick.registered = false;
4148
4149}));
4150
4151/* End */
4152;
4153; /* Start:"a:4:{s:4:"full";s:78:"/local/templates/makoto/assets/fancybox/jquery.fancybox.min.js?178574251268253";s:6:"source";s:62:"/local/templates/makoto/assets/fancybox/jquery.fancybox.min.js";s:3:"min";s:0:"";s:3:"map";s:0:"";}"*/
vendor: 68,253 bytes, lines 4154-4166
4154// ==================================================
4155// fancyBox v3.5.7
4156//
4157// Licensed GPLv3 for open source use
4158// or fancyBox Commercial License for commercial use
4159//
4160// http://fancyapps.com/fancybox/
4161// Copyright 2019 fancyApps
4162//
4163// ==================================================
4164!function(t,e,n,o){"use strict";function i(t,e){var o,i,a,s=[],r=0;t&&t.isDefaultPrevented()||(t.preventDefault(),e=e||{},t&&t.data&&(e=h(t.data.options,e)),o=e.$target||n(t.currentTarget).trigger("blur"),(a=n.fancybox.getInstance())&&a.$trigger&&a.$trigger.is(o)||(e.selector?s=n(e.selector):(i=o.attr("data-fancybox")||"",i?(s=t.data?t.data.items:[],s=s.length?s.filter('[data-fancybox="'+i+'"]'):n('[data-fancybox="'+i+'"]')):s=[o]),r=n(s).index(o),r<0&&(r=0),a=n.fancybox.open(s,e,r),a.$trigger=o))}if(t.console=t.console||{info:function(t){}},n){if(n.fn.fancybox)return void console.info("fancyBox already initialized");var a={closeExisting:!1,loop:!1,gutter:50,keyboard:!0,preventCaptionOverlap:!0,arrows:!0,infobar:!0,smallBtn:"auto",toolbar:"auto",buttons:["zoom","slideShow","thumbs","close"],idleTime:3,protect:!1,modal:!1,image:{preload:!1},ajax:{settings:{data:{fancybox:!0}}},iframe:{tpl:'<iframe id="fancybox-frame{rnd}" name="fancybox-frame{rnd}" class="fancybox-iframe" allowfullscreen="allowfullscreen" allow="autoplay; fullscreen" src=""></iframe>',preload:!0,css:{},attr:{scrolling:"auto"}},video:{tpl:'<video class="fancybox-video" controls controlsList="nodownload" poster="{{poster}}"><source src="{{src}}" type="{{format}}" />Sorry, your browser doesn\'t support embedded videos, <a href="{{src}}">download</a> and watch with your favorite video player!</video>',format:"",autoStart:!0},defaultType:"image",animationEffect:"zoom",animationDuration:366,zoomOpacity:"auto",transitionEffect:"fade",transitionDuration:366,slideClass:"",baseClass:"",baseTpl:'<div class="fancybox-container" role="dialog" tabindex="-1"><div class="fancybox-bg"></div><div class="fancybox-inner"><div class="fancybox-infobar"><span data-fancybox-index></span>&nbsp;/&nbsp;<span data-fancybox-count></span></div><div class="fancybox-toolbar">{{buttons}}</div><div class="fancybox-navigation">{{arrows}}</div><div class="fancybox-stage"></div><div class="fancybox-caption"><div class="fancybox-caption__body"></div></div></div></div>',spinnerTpl:'<div class="fancybox-loading"></div>',errorTpl:'<div class="fancybox-error"><p>{{ERROR}}</p></div>',btnTpl:{download:'<a download data-fancybox-download class="fancybox-button fancybox-button--download" title="{{DOWNLOAD}}" href="javascript:;"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M18.62 17.09V19H5.38v-1.91zm-2.97-6.96L17 11.45l-5 4.87-5-4.87 1.36-1.32 2.68 2.64V5h1.92v7.77z"/></svg></a>',zoom:'<button data-fancybox-zoom class="fancybox-button fancybox-button--zoom" title="{{ZOOM}}"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M18.7 17.3l-3-3a5.9 5.9 0 0 0-.6-7.6 5.9 5.9 0 0 0-8.4 0 5.9 5.9 0 0 0 0 8.4 5.9 5.9 0 0 0 7.7.7l3 3a1 1 0 0 0 1.3 0c.4-.5.4-1 0-1.5zM8.1 13.8a4 4 0 0 1 0-5.7 4 4 0 0 1 5.7 0 4 4 0 0 1 0 5.7 4 4 0 0 1-5.7 0z"/></svg></button>',close:'<button data-fancybox-close class="fancybox-button fancybox-button--close" title="{{CLOSE}}"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 10.6L6.6 5.2 5.2 6.6l5.4 5.4-5.4 5.4 1.4 1.4 5.4-5.4 5.4 5.4 1.4-1.4-5.4-5.4 5.4-5.4-1.4-1.4-5.4 5.4z"/></svg></button>',arrowLeft:'<button data-fancybox-prev class="fancybox-button fancybox-button--arrow_left" title="{{PREV}}"><div><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M11.28 15.7l-1.34 1.37L5 12l4.94-5.07 1.34 1.38-2.68 2.72H19v1.94H8.6z"/></svg></div></button>',arrowRight:'<button data-fancybox-next class="fancybox-button fancybox-button--arrow_right" title="{{NEXT}}"><div><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M15.4 12.97l-2.68 2.72 1.34 1.38L19 12l-4.94-5.07-1.34 1.38 2.68 2.72H5v1.94z"/></svg></div></button>',smallBtn:'<button type="button" data-fancybox-close class="fancybox-button fancybox-close-small" title="{{CLOSE}}"><svg xmlns="http://www.w3.org/2000/svg" version="1" viewBox="0 0 24 24"><path d="M13 12l5-5-1-1-5 5-5-5-1 1 5 5-5 5 1 1 5-5 5 5 1-1z"/></svg></button>'},parentEl:"body",hideScrollbar:!0,autoFocus:!0,backFocus:!0,trapFocus:!0,fullScreen:{autoStart:!1},touch:{vertical:!0,momentum:!0},hash:null,media:{},slideShow:{autoStart:!1,speed:3e3},thumbs:{autoStart:!1,hideOnClose:!0,parentEl:".fancybox-container",axis:"y"},wheel:"auto",onInit:n.noop,beforeLoad:n.noop,afterLoad:n.noop,beforeShow:n.noop,afterShow:n.noop,beforeClose:n.noop,afterClose:n.noop,onActivate:n.noop,onDeactivate:n.noop,clickContent:function(t,e){return"image"===t.type&&"zoom"},clickSlide:"close",clickOutside:"close",dblclickContent:!1,dblclickSlide:!1,dblclickOutside:!1,mobile:{preventCaptionOverlap:!1,idleTime:!1,clickContent:function(t,e){return"image"===t.type&&"toggleControls"},clickSlide:function(t,e){return"image"===t.type?"toggleControls":"close"},dblclickContent:function(t,e){return"image"===t.type&&"zoom"},dblclickSlide:function(t,e){return"image"===t.type&&"zoom"}},lang:"en",i18n:{en:{CLOSE:"Close",NEXT:"Next",PREV:"Previous",ERROR:"The requested content cannot be loaded. <br/> Please try again later.",PLAY_START:"Start slideshow",PLAY_STOP:"Pause slideshow",FULL_SCREEN:"Full screen",THUMBS:"Thumbnails",DOWNLOAD:"Download",SHARE:"Share",ZOOM:"Zoom"},de:{CLOSE:"Schlie&szlig;en",NEXT:"Weiter",PREV:"Zur&uuml;ck",ERROR:"Die angeforderten Daten konnten nicht geladen werden. <br/> Bitte versuchen Sie es sp&auml;ter nochmal.",PLAY_START:"Diaschau starten",PLAY_STOP:"Diaschau beenden",FULL_SCREEN:"Vollbild",THUMBS:"Vorschaubilder",DOWNLOAD:"Herunterladen",SHARE:"Teilen",ZOOM:"Vergr&ouml;&szlig;ern"}}},s=n(t),r=n(e),c=0,l=function(t){return t&&t.hasOwnProperty&&t instanceof n},d=function(){return t.requestAnimationFrame||t.webkitRequestAnimationFrame||t.mozRequestAnimationFrame||t.oRequestAnimationFrame||function(e){return t.setTimeout(e,1e3/60)}}(),u=function(){return t.cancelAnimationFrame||t.webkitCancelAnimationFrame||t.mozCancelAnimationFrame||t.oCancelAnimationFrame||function(e){t.clearTimeout(e)}}(),f=function(){var t,n=e.createElement("fakeelement"),o={transition:"transitionend",OTransition:"oTransitionEnd",MozTransition:"transitionend",WebkitTransition:"webkitTransitionEnd"};for(t in o)if(void 0!==n.style[t])return o[t];return"transitionend"}(),p=function(t){return t&&t.length&&t[0].offsetHeight},h=function(t,e){var o=n.extend(!0,{},t,e);return n.each(e,function(t,e){n.isArray(e)&&(o[t]=e)}),o},g=function(t){var o,i;return!(!t||t.ownerDocument!==e)&&(n(".fancybox-container").css("pointer-events","none"),o={x:t.getBoundingClientRect().left+t.offsetWidth/2,y:t.getBoundingClientRect().top+t.offsetHeight/2},i=e.elementFromPoint(o.x,o.y)===t,n(".fancybox-container").css("pointer-events",""),i)},b=function(t,e,o){var i=this;i.opts=h({index:o},n.fancybox.defaults),n.isPlainObject(e)&&(i.opts=h(i.opts,e)),n.fancybox.isMobile&&(i.opts=h(i.opts,i.opts.mobile)),i.id=i.opts.id||++c,i.currIndex=parseInt(i.opts.index,10)||0,i.prevIndex=null,i.prevPos=null,i.currPos=0,i.firstRun=!0,i.group=[],i.slides={},i.addContent(t),i.group.length&&i.init()};n.extend(b.prototype,{init:function(){var o,i,a=this,s=a.group[a.currIndex],r=s.opts;r.closeExisting&&n.fancybox.close(!0),n("body").addClass("fancybox-active"),!n.fancybox.getInstance()&&!1!==r.hideScrollbar&&!n.fancybox.isMobile&&e.body.scrollHeight>t.innerHeight&&(n("head").append('<style id="fancybox-style-noscroll" type="text/css">.compensate-for-scrollbar{margin-right:'+(t.innerWidth-e.documentElement.clientWidth)+"px;}</style>"),n("body").addClass("compensate-for-scrollbar")),i="",n.each(r.buttons,function(t,e){i+=r.btnTpl[e]||""}),o=n(a.translate(a,r.baseTpl.replace("{{buttons}}",i).replace("{{arrows}}",r.btnTpl.arrowLeft+r.btnTpl.arrowRight))).attr("id","fancybox-container-"+a.id).addClass(r.baseClass).data("FancyBox",a).appendTo(r.parentEl),a.$refs={container:o},["bg","inner","infobar","toolbar","stage","caption","navigation"].forEach(function(t){a.$refs[t]=o.find(".fancybox-"+t)}),a.trigger("onInit"),a.activate(),a.jumpTo(a.currIndex)},translate:function(t,e){var n=t.opts.i18n[t.opts.lang]||t.opts.i18n.en;return e.replace(/\{\{(\w+)\}\}/g,function(t,e){return void 0===n[e]?t:n[e]})},addContent:function(t){var e,o=this,i=n.makeArray(t);n.each(i,function(t,e){var i,a,s,r,c,l={},d={};n.isPlainObject(e)?(l=e,d=e.opts||e):"object"===n.type(e)&&n(e).length?(i=n(e),d=i.data()||{},d=n.extend(!0,{},d,d.options),d.$orig=i,l.src=o.opts.src||d.src||i.attr("href"),l.type||l.src||(l.type="inline",l.src=e)):l={type:"html",src:e+""},l.opts=n.extend(!0,{},o.opts,d),n.isArray(d.buttons)&&(l.opts.buttons=d.buttons),n.fancybox.isMobile&&l.opts.mobile&&(l.opts=h(l.opts,l.opts.mobile)),a=l.type||l.opts.type,r=l.src||"",!a&&r&&((s=r.match(/\.(mp4|mov|ogv|webm)((\?|#).*)?$/i))?(a="video",l.opts.video.format||(l.opts.video.format="video/"+("ogv"===s[1]?"ogg":s[1]))):r.match(/(^data:image\/[a-z0-9+\/=]*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp|svg|ico)((\?|#).*)?$)/i)?a="image":r.match(/\.(pdf)((\?|#).*)?$/i)?(a="iframe",l=n.extend(!0,l,{contentType:"pdf",opts:{iframe:{preload:!1}}})):"#"===r.charAt(0)&&(a="inline")),a?l.type=a:o.trigger("objectNeedsType",l),l.contentType||(l.contentType=n.inArray(l.type,["html","inline","ajax"])>-1?"html":l.type),l.index=o.group.length,"auto"==l.opts.smallBtn&&(l.opts.smallBtn=n.inArray(l.type,["html","inline","ajax"])>-1),"auto"===l.opts.toolbar&&(l.opts.toolbar=!l.opts.smallBtn),l.$thumb=l.opts.$thumb||null,l.opts.$trigger&&l.index===o.opts.index&&(l.$thumb=l.opts.$trigger.find("img:first"),l.$thumb.length&&(l.opts.$orig=l.opts.$trigger)),l.$thumb&&l.$thumb.length||!l.opts.$orig||(l.$thumb=l.opts.$orig.find("img:first")),l.$thumb&&!l.$thumb.length&&(l.$thumb=null),l.thumb=l.opts.thumb||(l.$thumb?l.$thumb[0].src:null),"function"===n.type(l.opts.caption)&&(l.opts.caption=l.opts.caption.apply(e,[o,l])),"function"===n.type(o.opts.caption)&&(l.opts.caption=o.opts.caption.apply(e,[o,l])),l.opts.caption instanceof n||(l.opts.caption=void 0===l.opts.caption?"":l.opts.caption+""),"ajax"===l.type&&(c=r.split(/\s+/,2),c.length>1&&(l.src=c.shift(),l.opts.filter=c.shift())),l.opts.modal&&(l.opts=n.extend(!0,l.opts,{trapFocus:!0,infobar:0,toolbar:0,smallBtn:0,keyboard:0,slideShow:0,fullScreen:0,thumbs:0,touch:0,clickContent:!1,clickSlide:!1,clickOutside:!1,dblclickContent:!1,dblclickSlide:!1,dblclickOutside:!1})),o.group.push(l)}),Object.keys(o.slides).length&&(o.updateControls(),(e=o.Thumbs)&&e.isActive&&(e.create(),e.focus()))},addEvents:function(){var e=this;e.removeEvents(),e.$refs.container.on("click.fb-close","[data-fancybox-close]",function(t){t.stopPropagation(),t.preventDefault(),e.close(t)}).on("touchstart.fb-prev click.fb-prev","[data-fancybox-prev]",function(t){t.stopPropagation(),t.preventDefault(),e.previous()}).on("touchstart.fb-next click.fb-next","[data-fancybox-next]",function(t){t.stopPropagation(),t.preventDefault(),e.next()}).on("click.fb","[data-fancybox-zoom]",function(t){e[e.isScaledDown()?"scaleToActual":"scaleToFit"]()}),s.on("orientationchange.fb resize.fb",function(t){t&&t.originalEvent&&"resize"===t.originalEvent.type?(e.requestId&&u(e.requestId),e.requestId=d(function(){e.update(t)})):(e.current&&"iframe"===e.current.type&&e.$refs.stage.hide(),setTimeout(function(){e.$refs.stage.show(),e.update(t)},n.fancybox.isMobile?600:250))}),r.on("keydown.fb",function(t){var o=n.fancybox?n.fancybox.getInstance():null,i=o.current,a=t.keyCode||t.which;if(9==a)return void(i.opts.trapFocus&&e.focus(t));if(!(!i.opts.keyboard||t.ctrlKey||t.altKey||t.shiftKey||n(t.target).is("input,textarea,video,audio,select")))return 8===a||27===a?(t.preventDefault(),void e.close(t)):37===a||38===a?(t.preventDefault(),void e.previous()):39===a||40===a?(t.preventDefault(),void e.next()):void e.trigger("afterKeydown",t,a)}),e.group[e.currIndex].opts.idleTime&&(e.idleSecondsCounter=0,r.on("mousemove.fb-idle mouseleave.fb-idle mousedown.fb-idle touchstart.fb-idle touchmove.fb-idle scroll.fb-idle keydown.fb-idle",function(t){e.idleSecondsCounter=0,e.isIdle&&e.showControls(),e.isIdle=!1}),e.idleInterval=t.setInterval(function(){++e.idleSecondsCounter>=e.group[e.currIndex].opts.idleTime&&!e.isDragging&&(e.isIdle=!0,e.idleSecondsCounter=0,e.hideControls())},1e3))},removeEvents:function(){var e=this;s.off("orientationchange.fb resize.fb"),r.off("keydown.fb .fb-idle"),this.$refs.container.off(".fb-close .fb-prev .fb-next"),e.idleInterval&&(t.clearInterval(e.idleInterval),e.idleInterval=null)},previous:function(t){return this.jumpTo(this.currPos-1,t)},next:function(t){return this.jumpTo(this.currPos+1,t)},jumpTo:function(t,e){var o,i,a,s,r,c,l,d,u,f=this,h=f.group.length;if(!(f.isDragging||f.isClosing||f.isAnimating&&f.firstRun)){if(t=parseInt(t,10),!(a=f.current?f.current.opts.loop:f.opts.loop)&&(t<0||t>=h))return!1;if(o=f.firstRun=!Object.keys(f.slides).length,r=f.current,f.prevIndex=f.currIndex,f.prevPos=f.currPos,s=f.createSlide(t),h>1&&((a||s.index<h-1)&&f.createSlide(t+1),(a||s.index>0)&&f.createSlide(t-1)),f.current=s,f.currIndex=s.index,f.currPos=s.pos,f.trigger("beforeShow",o),f.updateControls(),s.forcedDuration=void 0,n.isNumeric(e)?s.forcedDuration=e:e=s.opts[o?"animationDuration":"transitionDuration"],e=parseInt(e,10),i=f.isMoved(s),s.$slide.addClass("fancybox-slide--current"),o)return s.opts.animationEffect&&e&&f.$refs.container.css("transition-duration",e+"ms"),f.$refs.container.addClass("fancybox-is-open").trigger("focus"),f.loadSlide(s),void f.preload("image");c=n.fancybox.getTranslate(r.$slide),l=n.fancybox.getTranslate(f.$refs.stage),n.each(f.slides,function(t,e){n.fancybox.stop(e.$slide,!0)}),r.pos!==s.pos&&(r.isComplete=!1),r.$slide.removeClass("fancybox-slide--complete fancybox-slide--current"),i?(u=c.left-(r.pos*c.width+r.pos*r.opts.gutter),n.each(f.slides,function(t,o){o.$slide.removeClass("fancybox-animated").removeClass(function(t,e){return(e.match(/(^|\s)fancybox-fx-\S+/g)||[]).join(" ")});var i=o.pos*c.width+o.pos*o.opts.gutter;n.fancybox.setTranslate(o.$slide,{top:0,left:i-l.left+u}),o.pos!==s.pos&&o.$slide.addClass("fancybox-slide--"+(o.pos>s.pos?"next":"previous")),p(o.$slide),n.fancybox.animate(o.$slide,{top:0,left:(o.pos-s.pos)*c.width+(o.pos-s.pos)*o.opts.gutter},e,function(){o.$slide.css({transform:"",opacity:""}).removeClass("fancybox-slide--next fancybox-slide--previous"),o.pos===f.currPos&&f.complete()})})):e&&s.opts.transitionEffect&&(d="fancybox-animated fancybox-fx-"+s.opts.transitionEffect,r.$slide.addClass("fancybox-slide--"+(r.pos>s.pos?"next":"previous")),n.fancybox.animate(r.$slide,d,e,function(){r.$slide.removeClass(d).removeClass("fancybox-slide--next fancybox-slide--previous")},!1)),s.isLoaded?f.revealContent(s):f.loadSlide(s),f.preload("image")}},createSlide:function(t){var e,o,i=this;return o=t%i.group.length,o=o<0?i.group.length+o:o,!i.slides[t]&&i.group[o]&&(e=n('<div class="fancybox-slide"></div>').appendTo(i.$refs.stage),i.slides[t]=n.extend(!0,{},i.group[o],{pos:t,$slide:e,isLoaded:!1}),i.updateSlide(i.slides[t])),i.slides[t]},scaleToActual:function(t,e,o){var i,a,s,r,c,l=this,d=l.current,u=d.$content,f=n.fancybox.getTranslate(d.$slide).width,p=n.fancybox.getTranslate(d.$slide).height,h=d.width,g=d.height;l.isAnimating||l.isMoved()||!u||"image"!=d.type||!d.isLoaded||d.hasError||(l.isAnimating=!0,n.fancybox.stop(u),t=void 0===t?.5*f:t,e=void 0===e?.5*p:e,i=n.fancybox.getTranslate(u),i.top-=n.fancybox.getTranslate(d.$slide).top,i.left-=n.fancybox.getTranslate(d.$slide).left,r=h/i.width,c=g/i.height,a=.5*f-.5*h,s=.5*p-.5*g,h>f&&(a=i.left*r-(t*r-t),a>0&&(a=0),a<f-h&&(a=f-h)),g>p&&(s=i.top*c-(e*c-e),s>0&&(s=0),s<p-g&&(s=p-g)),l.updateCursor(h,g),n.fancybox.animate(u,{top:s,left:a,scaleX:r,scaleY:c},o||366,function(){l.isAnimating=!1}),l.SlideShow&&l.SlideShow.isActive&&l.SlideShow.stop())},scaleToFit:function(t){var e,o=this,i=o.current,a=i.$content;o.isAnimating||o.isMoved()||!a||"image"!=i.type||!i.isLoaded||i.hasError||(o.isAnimating=!0,n.fancybox.stop(a),e=o.getFitPos(i),o.updateCursor(e.width,e.height),n.fancybox.animate(a,{top:e.top,left:e.left,scaleX:e.width/a.width(),scaleY:e.height/a.height()},t||366,function(){o.isAnimating=!1}))},getFitPos:function(t){var e,o,i,a,s=this,r=t.$content,c=t.$slide,l=t.width||t.opts.width,d=t.height||t.opts.height,u={};return!!(t.isLoaded&&r&&r.length)&&(e=n.fancybox.getTranslate(s.$refs.stage).width,o=n.fancybox.getTranslate(s.$refs.stage).height,e-=parseFloat(c.css("paddingLeft"))+parseFloat(c.css("paddingRight"))+parseFloat(r.css("marginLeft"))+parseFloat(r.css("marginRight")),o-=parseFloat(c.css("paddingTop"))+parseFloat(c.css("paddingBottom"))+parseFloat(r.css("marginTop"))+parseFloat(r.css("marginBottom")),l&&d||(l=e,d=o),i=Math.min(1,e/l,o/d),l*=i,d*=i,l>e-.5&&(l=e),d>o-.5&&(d=o),"image"===t.type?(u.top=Math.floor(.5*(o-d))+parseFloat(c.css("paddingTop")),u.left=Math.floor(.5*(e-l))+parseFloat(c.css("paddingLeft"))):"video"===t.contentType&&(a=t.opts.width&&t.opts.height?l/d:t.opts.ratio||16/9,d>l/a?d=l/a:l>d*a&&(l=d*a)),u.width=l,u.height=d,u)},update:function(t){var e=this;n.each(e.slides,function(n,o){e.updateSlide(o,t)})},updateSlide:function(t,e){var o=this,i=t&&t.$content,a=t.width||t.opts.width,s=t.height||t.opts.height,r=t.$slide;o.adjustCaption(t),i&&(a||s||"video"===t.contentType)&&!t.hasError&&(n.fancybox.stop(i),n.fancybox.setTranslate(i,o.getFitPos(t)),t.pos===o.currPos&&(o.isAnimating=!1,o.updateCursor())),o.adjustLayout(t),r.length&&(r.trigger("refresh"),t.pos===o.currPos&&o.$refs.toolbar.add(o.$refs.navigation.find(".fancybox-button--arrow_right")).toggleClass("compensate-for-scrollbar",r.get(0).scrollHeight>r.get(0).clientHeight)),o.trigger("onUpdate",t,e)},centerSlide:function(t){var e=this,o=e.current,i=o.$slide;!e.isClosing&&o&&(i.siblings().css({transform:"",opacity:""}),i.parent().children().removeClass("fancybox-slide--previous fancybox-slide--next"),n.fancybox.animate(i,{top:0,left:0,opacity:1},void 0===t?0:t,function(){i.css({transform:"",opacity:""}),o.isComplete||e.complete()},!1))},isMoved:function(t){var e,o,i=t||this.current;return!!i&&(o=n.fancybox.getTranslate(this.$refs.stage),e=n.fancybox.getTranslate(i.$slide),!i.$slide.hasClass("fancybox-animated")&&(Math.abs(e.top-o.top)>.5||Math.abs(e.left-o.left)>.5))},updateCursor:function(t,e){var o,i,a=this,s=a.current,r=a.$refs.container;s&&!a.isClosing&&a.Guestures&&(r.removeClass("fancybox-is-zoomable fancybox-can-zoomIn fancybox-can-zoomOut fancybox-can-swipe fancybox-can-pan"),o=a.canPan(t,e),i=!!o||a.isZoomable(),r.toggleClass("fancybox-is-zoomable",i),n("[data-fancybox-zoom]").prop("disabled",!i),o?r.addClass("fancybox-can-pan"):i&&("zoom"===s.opts.clickContent||n.isFunction(s.opts.clickContent)&&"zoom"==s.opts.clickContent(s))?r.addClass("fancybox-can-zoomIn"):s.opts.touch&&(s.opts.touch.vertical||a.group.length>1)&&"video"!==s.contentType&&r.addClass("fancybox-can-swipe"))},isZoomable:function(){var t,e=this,n=e.current;if(n&&!e.isClosing&&"image"===n.type&&!n.hasError){if(!n.isLoaded)return!0;if((t=e.getFitPos(n))&&(n.width>t.width||n.height>t.height))return!0}return!1},isScaledDown:function(t,e){var o=this,i=!1,a=o.current,s=a.$content;return void 0!==t&&void 0!==e?i=t<a.width&&e<a.height:s&&(i=n.fancybox.getTranslate(s),i=i.width<a.width&&i.height<a.height),i},canPan:function(t,e){var o=this,i=o.current,a=null,s=!1;return"image"===i.type&&(i.isComplete||t&&e)&&!i.hasError&&(s=o.getFitPos(i),void 0!==t&&void 0!==e?a={width:t,height:e}:i.isComplete&&(a=n.fancybox.getTranslate(i.$content)),a&&s&&(s=Math.abs(a.width-s.width)>1.5||Math.abs(a.height-s.height)>1.5)),s},loadSlide:function(t){var e,o,i,a=this;if(!t.isLoading&&!t.isLoaded){if(t.isLoading=!0,!1===a.trigger("beforeLoad",t))return t.isLoading=!1,!1;switch(e=t.type,o=t.$slide,o.off("refresh").trigger("onReset").addClass(t.opts.slideClass),e){case"image":a.setImage(t);break;case"iframe":a.setIframe(t);break;case"html":a.setContent(t,t.src||t.content);break;case"video":a.setContent(t,t.opts.video.tpl.replace(/\{\{src\}\}/gi,t.src).replace("{{format}}",t.opts.videoFormat||t.opts.video.format||"").replace("{{poster}}",t.thumb||""));break;case"inline":n(t.src).length?a.setContent(t,n(t.src)):a.setError(t);break;case"ajax":a.showLoading(t),i=n.ajax(n.extend({},t.opts.ajax.settings,{url:t.src,success:function(e,n){"success"===n&&a.setContent(t,e)},error:function(e,n){e&&"abort"!==n&&a.setError(t)}})),o.one("onReset",function(){i.abort()});break;default:a.setError(t)}return!0}},setImage:function(t){var o,i=this;setTimeout(function(){var e=t.$image;i.isClosing||!t.isLoading||e&&e.length&&e[0].complete||t.hasError||i.showLoading(t)},50),i.checkSrcset(t),t.$content=n('<div class="fancybox-content"></div>').addClass("fancybox-is-hidden").appendTo(t.$slide.addClass("fancybox-slide--image")),!1!==t.opts.preload&&t.opts.width&&t.opts.height&&t.thumb&&(t.width=t.opts.width,t.height=t.opts.height,o=e.createElement("img"),o.onerror=function(){n(this).remove(),t.$ghost=null},o.onload=function(){i.afterLoad(t)},t.$ghost=n(o).addClass("fancybox-image").appendTo(t.$content).attr("src",t.thumb)),i.setBigImage(t)},checkSrcset:function(e){var n,o,i,a,s=e.opts.srcset||e.opts.image.srcset;if(s){i=t.devicePixelRatio||1,a=t.innerWidth*i,o=s.split(",").map(function(t){var e={};return t.trim().split(/\s+/).forEach(function(t,n){var o=parseInt(t.substring(0,t.length-1),10);if(0===n)return e.url=t;o&&(e.value=o,e.postfix=t[t.length-1])}),e}),o.sort(function(t,e){return t.value-e.value});for(var r=0;r<o.length;r++){var c=o[r];if("w"===c.postfix&&c.value>=a||"x"===c.postfix&&c.value>=i){n=c;break}}!n&&o.length&&(n=o[o.length-1]),n&&(e.src=n.url,e.width&&e.height&&"w"==n.postfix&&(e.height=e.width/e.height*n.value,e.width=n.value),e.opts.srcset=s)}},setBigImage:function(t){var o=this,i=e.createElement("img"),a=n(i);t.$image=a.one("error",function(){o.setError(t)}).one("load",function(){var e;t.$ghost||(o.resolveImageSlideSize(t,this.naturalWidth,this.naturalHeight),o.afterLoad(t)),o.isClosing||(t.opts.srcset&&(e=t.opts.sizes,e&&"auto"!==e||(e=(t.width/t.height>1&&s.width()/s.height()>1?"100":Math.round(t.width/t.height*100))+"vw"),a.attr("sizes",e).attr("srcset",t.opts.srcset)),t.$ghost&&setTimeout(function(){t.$ghost&&!o.isClosing&&t.$ghost.hide()},Math.min(300,Math.max(1e3,t.height/1600))),o.hideLoading(t))}).addClass("fancybox-image").attr("src",t.src).appendTo(t.$content),(i.complete||"complete"==i.readyState)&&a.naturalWidth&&a.naturalHeight?a.trigger("load"):i.error&&a.trigger("error")},resolveImageSlideSize:function(t,e,n){var o=parseInt(t.opts.width,10),i=parseInt(t.opts.height,10);t.width=e,t.height=n,o>0&&(t.width=o,t.height=Math.floor(o*n/e)),i>0&&(t.width=Math.floor(i*e/n),t.height=i)},setIframe:function(t){var e,o=this,i=t.opts.iframe,a=t.$slide;t.$content=n('<div class="fancybox-content'+(i.preload?" fancybox-is-hidden":"")+'"></div>').css(i.css).appendTo(a),a.addClass("fancybox-slide--"+t.contentType),t.$iframe=e=n(i.tpl.replace(/\{rnd\}/g,(new Date).getTime())).attr(i.attr).appendTo(t.$content),i.preload?(o.showLoading(t),e.on("load.fb error.fb",function(e){this.isReady=1,t.$slide.trigger("refresh"),o.afterLoad(t)}),a.on("refresh.fb",function(){var n,o,s=t.$content,r=i.css.width,c=i.css.height;if(1===e[0].isReady){try{n=e.contents(),o=n.find("body")}catch(t){}o&&o.length&&o.children().length&&(a.css("overflow","visible"),s.css({width:"100%","max-width":"100%",height:"9999px"}),void 0===r&&(r=Math.ceil(Math.max(o[0].clientWidth,o.outerWidth(!0)))),s.css("width",r||"").css("max-width",""),void 0===c&&(c=Math.ceil(Math.max(o[0].clientHeight,o.outerHeight(!0)))),s.css("height",c||""),a.css("overflow","auto")),s.removeClass("fancybox-is-hidden")}})):o.afterLoad(t),e.attr("src",t.src),a.one("onReset",function(){try{n(this).find("iframe").hide().unbind().attr("src","//about:blank")}catch(t){}n(this).off("refresh.fb").empty(),t.isLoaded=!1,t.isRevealed=!1})},setContent:function(t,e){var o=this;o.isClosing||(o.hideLoading(t),t.$content&&n.fancybox.stop(t.$content),t.$slide.empty(),l(e)&&e.parent().length?((e.hasClass("fancybox-content")||e.parent().hasClass("fancybox-content"))&&e.parents(".fancybox-slide").trigger("onReset"),t.$placeholder=n("<div>").hide().insertAfter(e),e.css("display","inline-block")):t.hasError||("string"===n.type(e)&&(e=n("<div>").append(n.trim(e)).contents()),t.opts.filter&&(e=n("<div>").html(e).find(t.opts.filter))),t.$slide.one("onReset",function(){n(this).find("video,audio").trigger("pause"),t.$placeholder&&(t.$placeholder.after(e.removeClass("fancybox-content").hide()).remove(),t.$placeholder=null),t.$smallBtn&&(t.$smallBtn.remove(),t.$smallBtn=null),t.hasError||(n(this).empty(),t.isLoaded=!1,t.isRevealed=!1)}),n(e).appendTo(t.$slide),n(e).is("video,audio")&&(n(e).addClass("fancybox-video"),n(e).wrap("<div></div>"),t.contentType="video",t.opts.width=t.opts.width||n(e).attr("width"),t.opts.height=t.opts.height||n(e).attr("height")),t.$content=t.$slide.children().filter("div,form,main,video,audio,article,.fancybox-content").first(),t.$content.siblings().hide(),t.$content.length||(t.$content=t.$slide.wrapInner("<div></div>").children().first()),t.$content.addClass("fancybox-content"),t.$slide.addClass("fancybox-slide--"+t.contentType),o.afterLoad(t))},setError:function(t){t.hasError=!0,t.$slide.trigger("onReset").removeClass("fancybox-slide--"+t.contentType).addClass("fancybox-slide--error"),t.contentType="html",this.setContent(t,this.translate(t,t.opts.errorTpl)),t.pos===this.currPos&&(this.isAnimating=!1)},showLoading:function(t){var e=this;(t=t||e.current)&&!t.$spinner&&(t.$spinner=n(e.translate(e,e.opts.spinnerTpl)).appendTo(t.$slide).hide().fadeIn("fast"))},hideLoading:function(t){var e=this;(t=t||e.current)&&t.$spinner&&(t.$spinner.stop().remove(),delete t.$spinner)},afterLoad:function(t){var e=this;e.isClosing||(t.isLoading=!1,t.isLoaded=!0,e.trigger("afterLoad",t),e.hideLoading(t),!t.opts.smallBtn||t.$smallBtn&&t.$smallBtn.length||(t.$smallBtn=n(e.translate(t,t.opts.btnTpl.smallBtn)).appendTo(t.$content)),t.opts.protect&&t.$content&&!t.hasError&&(t.$content.on("contextmenu.fb",function(t){return 2==t.button&&t.preventDefault(),!0}),"image"===t.type&&n('<div class="fancybox-spaceball"></div>').appendTo(t.$content)),e.adjustCaption(t),e.adjustLayout(t),t.pos===e.currPos&&e.updateCursor(),e.revealContent(t))},adjustCaption:function(t){var e,n=this,o=t||n.current,i=o.opts.caption,a=o.opts.preventCaptionOverlap,s=n.$refs.caption,r=!1;s.toggleClass("fancybox-caption--separate",a),a&&i&&i.length&&(o.pos!==n.currPos?(e=s.clone().appendTo(s.parent()),e.children().eq(0).empty().html(i),r=e.outerHeight(!0),e.empty().remove()):n.$caption&&(r=n.$caption.outerHeight(!0)),o.$slide.css("padding-bottom",r||""))},adjustLayout:function(t){var e,n,o,i,a=this,s=t||a.current;s.isLoaded&&!0!==s.opts.disableLayoutFix&&(s.$content.css("margin-bottom",""),s.$content.outerHeight()>s.$slide.height()+.5&&(o=s.$slide[0].style["padding-bottom"],i=s.$slide.css("padding-bottom"),parseFloat(i)>0&&(e=s.$slide[0].scrollHeight,s.$slide.css("padding-bottom",0),Math.abs(e-s.$slide[0].scrollHeight)<1&&(n=i),s.$slide.css("padding-bottom",o))),s.$content.css("margin-bottom",n))},revealContent:function(t){var e,o,i,a,s=this,r=t.$slide,c=!1,l=!1,d=s.isMoved(t),u=t.isRevealed;return t.isRevealed=!0,e=t.opts[s.firstRun?"animationEffect":"transitionEffect"],i=t.opts[s.firstRun?"animationDuration":"transitionDuration"],i=parseInt(void 0===t.forcedDuration?i:t.forcedDuration,10),!d&&t.pos===s.currPos&&i||(e=!1),"zoom"===e&&(t.pos===s.currPos&&i&&"image"===t.type&&!t.hasError&&(l=s.getThumbPos(t))?c=s.getFitPos(t):e="fade"),"zoom"===e?(s.isAnimating=!0,c.scaleX=c.width/l.width,c.scaleY=c.height/l.height,a=t.opts.zoomOpacity,"auto"==a&&(a=Math.abs(t.width/t.height-l.width/l.height)>.1),a&&(l.opacity=.1,c.opacity=1),n.fancybox.setTranslate(t.$content.removeClass("fancybox-is-hidden"),l),p(t.$content),void n.fancybox.animate(t.$content,c,i,function(){s.isAnimating=!1,s.complete()})):(s.updateSlide(t),e?(n.fancybox.stop(r),o="fancybox-slide--"+(t.pos>=s.prevPos?"next":"previous")+" fancybox-animated fancybox-fx-"+e,r.addClass(o).removeClass("fancybox-slide--current"),t.$content.removeClass("fancybox-is-hidden"),p(r),"image"!==t.type&&t.$content.hide().show(0),void n.fancybox.animate(r,"fancybox-slide--current",i,function(){r.removeClass(o).css({transform:"",opacity:""}),t.pos===s.currPos&&s.complete()},!0)):(t.$content.removeClass("fancybox-is-hidden"),u||!d||"image"!==t.type||t.hasError||t.$content.hide().fadeIn("fast"),void(t.pos===s.currPos&&s.complete())))},getThumbPos:function(t){var e,o,i,a,s,r=!1,c=t.$thumb;return!(!c||!g(c[0]))&&(e=n.fancybox.getTranslate(c),o=parseFloat(c.css("border-top-width")||0),i=parseFloat(c.css("border-right-width")||0),a=parseFloat(c.css("border-bottom-width")||0),s=parseFloat(c.css("border-left-width")||0),r={top:e.top+o,left:e.left+s,width:e.width-i-s,height:e.height-o-a,scaleX:1,scaleY:1},e.width>0&&e.height>0&&r)},complete:function(){var t,e=this,o=e.current,i={};!e.isMoved()&&o.isLoaded&&(o.isComplete||(o.isComplete=!0,o.$slide.siblings().trigger("onReset"),e.preload("inline"),p(o.$slide),o.$slide.addClass("fancybox-slide--complete"),n.each(e.slides,function(t,o){o.pos>=e.currPos-1&&o.pos<=e.currPos+1?i[o.pos]=o:o&&(n.fancybox.stop(o.$slide),o.$slide.off().remove())}),e.slides=i),e.isAnimating=!1,e.updateCursor(),e.trigger("afterShow"),o.opts.video.autoStart&&o.$slide.find("video,audio").filter(":visible:first").trigger("play").one("ended",function(){Document.exitFullscreen?Document.exitFullscreen():this.webkitExitFullscreen&&this.webkitExitFullscreen(),e.next()}),o.opts.autoFocus&&"html"===o.contentType&&(t=o.$content.find("input[autofocus]:enabled:visible:first"),t.length?t.trigger("focus"):e.focus(null,!0)),o.$slide.scrollTop(0).scrollLeft(0))},preload:function(t){var e,n,o=this;o.group.length<2||(n=o.slides[o.currPos+1],e=o.slides[o.currPos-1],e&&e.type===t&&o.loadSlide(e),n&&n.type===t&&o.loadSlide(n))},focus:function(t,o){var i,a,s=this,r=["a[href]","area[href]",'input:not([disabled]):not([type="hidden"]):not([aria-hidden])',"select:not([disabled]):not([aria-hidden])","textarea:not([disabled]):not([aria-hidden])","button:not([disabled]):not([aria-hidden])","iframe","object","embed","video","audio","[contenteditable]",'[tabindex]:not([tabindex^="-"])'].join(",");s.isClosing||(i=!t&&s.current&&s.current.isComplete?s.current.$slide.find("*:visible"+(o?":not(.fancybox-close-small)":"")):s.$refs.container.find("*:visible"),i=i.filter(r).filter(function(){return"hidden"!==n(this).css("visibility")&&!n(this).hasClass("disabled")}),i.length?(a=i.index(e.activeElement),t&&t.shiftKey?(a<0||0==a)&&(t.preventDefault(),i.eq(i.length-1).trigger("focus")):(a<0||a==i.length-1)&&(t&&t.preventDefault(),i.eq(0).trigger("focus"))):s.$refs.container.trigger("focus"))},activate:function(){var t=this;n(".fancybox-container").each(function(){var e=n(this).data("FancyBox");e&&e.id!==t.id&&!e.isClosing&&(e.trigger("onDeactivate"),e.removeEvents(),e.isVisible=!1)}),t.isVisible=!0,(t.current||t.isIdle)&&(t.update(),t.updateControls()),t.trigger("onActivate"),t.addEvents()},close:function(t,e){var o,i,a,s,r,c,l,u=this,f=u.current,h=function(){u.cleanUp(t)};return!u.isClosing&&(u.isClosing=!0,!1===u.trigger("beforeClose",t)?(u.isClosing=!1,d(function(){u.update()}),!1):(u.removeEvents(),a=f.$content,o=f.opts.animationEffect,i=n.isNumeric(e)?e:o?f.opts.animationDuration:0,f.$slide.removeClass("fancybox-slide--complete fancybox-slide--next fancybox-slide--previous fancybox-animated"),!0!==t?n.fancybox.stop(f.$slide):o=!1,f.$slide.siblings().trigger("onReset").remove(),i&&u.$refs.container.removeClass("fancybox-is-open").addClass("fancybox-is-closing").css("transition-duration",i+"ms"),u.hideLoading(f),u.hideControls(!0),u.updateCursor(),"zoom"!==o||a&&i&&"image"===f.type&&!u.isMoved()&&!f.hasError&&(l=u.getThumbPos(f))||(o="fade"),"zoom"===o?(n.fancybox.stop(a),s=n.fancybox.getTranslate(a),c={top:s.top,left:s.left,scaleX:s.width/l.width,scaleY:s.height/l.height,width:l.width,height:l.height},r=f.opts.zoomOpacity,
4165"auto"==r&&(r=Math.abs(f.width/f.height-l.width/l.height)>.1),r&&(l.opacity=0),n.fancybox.setTranslate(a,c),p(a),n.fancybox.animate(a,l,i,h),!0):(o&&i?n.fancybox.animate(f.$slide.addClass("fancybox-slide--previous").removeClass("fancybox-slide--current"),"fancybox-animated fancybox-fx-"+o,i,h):!0===t?setTimeout(h,i):h(),!0)))},cleanUp:function(e){var o,i,a,s=this,r=s.current.opts.$orig;s.current.$slide.trigger("onReset"),s.$refs.container.empty().remove(),s.trigger("afterClose",e),s.current.opts.backFocus&&(r&&r.length&&r.is(":visible")||(r=s.$trigger),r&&r.length&&(i=t.scrollX,a=t.scrollY,r.trigger("focus"),n("html, body").scrollTop(a).scrollLeft(i))),s.current=null,o=n.fancybox.getInstance(),o?o.activate():(n("body").removeClass("fancybox-active compensate-for-scrollbar"),n("#fancybox-style-noscroll").remove())},trigger:function(t,e){var o,i=Array.prototype.slice.call(arguments,1),a=this,s=e&&e.opts?e:a.current;if(s?i.unshift(s):s=a,i.unshift(a),n.isFunction(s.opts[t])&&(o=s.opts[t].apply(s,i)),!1===o)return o;"afterClose"!==t&&a.$refs?a.$refs.container.trigger(t+".fb",i):r.trigger(t+".fb",i)},updateControls:function(){var t=this,o=t.current,i=o.index,a=t.$refs.container,s=t.$refs.caption,r=o.opts.caption;o.$slide.trigger("refresh"),r&&r.length?(t.$caption=s,s.children().eq(0).html(r)):t.$caption=null,t.hasHiddenControls||t.isIdle||t.showControls(),a.find("[data-fancybox-count]").html(t.group.length),a.find("[data-fancybox-index]").html(i+1),a.find("[data-fancybox-prev]").prop("disabled",!o.opts.loop&&i<=0),a.find("[data-fancybox-next]").prop("disabled",!o.opts.loop&&i>=t.group.length-1),"image"===o.type?a.find("[data-fancybox-zoom]").show().end().find("[data-fancybox-download]").attr("href",o.opts.image.src||o.src).show():o.opts.toolbar&&a.find("[data-fancybox-download],[data-fancybox-zoom]").hide(),n(e.activeElement).is(":hidden,[disabled]")&&t.$refs.container.trigger("focus")},hideControls:function(t){var e=this,n=["infobar","toolbar","nav"];!t&&e.current.opts.preventCaptionOverlap||n.push("caption"),this.$refs.container.removeClass(n.map(function(t){return"fancybox-show-"+t}).join(" ")),this.hasHiddenControls=!0},showControls:function(){var t=this,e=t.current?t.current.opts:t.opts,n=t.$refs.container;t.hasHiddenControls=!1,t.idleSecondsCounter=0,n.toggleClass("fancybox-show-toolbar",!(!e.toolbar||!e.buttons)).toggleClass("fancybox-show-infobar",!!(e.infobar&&t.group.length>1)).toggleClass("fancybox-show-caption",!!t.$caption).toggleClass("fancybox-show-nav",!!(e.arrows&&t.group.length>1)).toggleClass("fancybox-is-modal",!!e.modal)},toggleControls:function(){this.hasHiddenControls?this.showControls():this.hideControls()}}),n.fancybox={version:"3.5.7",defaults:a,getInstance:function(t){var e=n('.fancybox-container:not(".fancybox-is-closing"):last').data("FancyBox"),o=Array.prototype.slice.call(arguments,1);return e instanceof b&&("string"===n.type(t)?e[t].apply(e,o):"function"===n.type(t)&&t.apply(e,o),e)},open:function(t,e,n){return new b(t,e,n)},close:function(t){var e=this.getInstance();e&&(e.close(),!0===t&&this.close(t))},destroy:function(){this.close(!0),r.add("body").off("click.fb-start","**")},isMobile:/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),use3d:function(){var n=e.createElement("div");return t.getComputedStyle&&t.getComputedStyle(n)&&t.getComputedStyle(n).getPropertyValue("transform")&&!(e.documentMode&&e.documentMode<11)}(),getTranslate:function(t){var e;return!(!t||!t.length)&&(e=t[0].getBoundingClientRect(),{top:e.top||0,left:e.left||0,width:e.width,height:e.height,opacity:parseFloat(t.css("opacity"))})},setTranslate:function(t,e){var n="",o={};if(t&&e)return void 0===e.left&&void 0===e.top||(n=(void 0===e.left?t.position().left:e.left)+"px, "+(void 0===e.top?t.position().top:e.top)+"px",n=this.use3d?"translate3d("+n+", 0px)":"translate("+n+")"),void 0!==e.scaleX&&void 0!==e.scaleY?n+=" scale("+e.scaleX+", "+e.scaleY+")":void 0!==e.scaleX&&(n+=" scaleX("+e.scaleX+")"),n.length&&(o.transform=n),void 0!==e.opacity&&(o.opacity=e.opacity),void 0!==e.width&&(o.width=e.width),void 0!==e.height&&(o.height=e.height),t.css(o)},animate:function(t,e,o,i,a){var s,r=this;n.isFunction(o)&&(i=o,o=null),r.stop(t),s=r.getTranslate(t),t.on(f,function(c){(!c||!c.originalEvent||t.is(c.originalEvent.target)&&"z-index"!=c.originalEvent.propertyName)&&(r.stop(t),n.isNumeric(o)&&t.css("transition-duration",""),n.isPlainObject(e)?void 0!==e.scaleX&&void 0!==e.scaleY&&r.setTranslate(t,{top:e.top,left:e.left,width:s.width*e.scaleX,height:s.height*e.scaleY,scaleX:1,scaleY:1}):!0!==a&&t.removeClass(e),n.isFunction(i)&&i(c))}),n.isNumeric(o)&&t.css("transition-duration",o+"ms"),n.isPlainObject(e)?(void 0!==e.scaleX&&void 0!==e.scaleY&&(delete e.width,delete e.height,t.parent().hasClass("fancybox-slide--image")&&t.parent().addClass("fancybox-is-scaling")),n.fancybox.setTranslate(t,e)):t.addClass(e),t.data("timer",setTimeout(function(){t.trigger(f)},o+33))},stop:function(t,e){t&&t.length&&(clearTimeout(t.data("timer")),e&&t.trigger(f),t.off(f).css("transition-duration",""),t.parent().removeClass("fancybox-is-scaling"))}},n.fn.fancybox=function(t){var e;return t=t||{},e=t.selector||!1,e?n("body").off("click.fb-start",e).on("click.fb-start",e,{options:t},i):this.off("click.fb-start").on("click.fb-start",{items:this,options:t},i),this},r.on("click.fb-start","[data-fancybox]",i),r.on("click.fb-start","[data-fancybox-trigger]",function(t){n('[data-fancybox="'+n(this).attr("data-fancybox-trigger")+'"]').eq(n(this).attr("data-fancybox-index")||0).trigger("click.fb-start",{$trigger:n(this)})}),function(){var t=null;r.on("mousedown mouseup focus blur",".fancybox-button",function(e){switch(e.type){case"mousedown":t=n(this);break;case"mouseup":t=null;break;case"focusin":n(".fancybox-button").removeClass("fancybox-focus"),n(this).is(t)||n(this).is("[disabled]")||n(this).addClass("fancybox-focus");break;case"focusout":n(".fancybox-button").removeClass("fancybox-focus")}})}()}}(window,document,jQuery),function(t){"use strict";var e={youtube:{matcher:/(youtube\.com|youtu\.be|youtube\-nocookie\.com)\/(watch\?(.*&)?v=|v\/|u\/|embed\/?)?(videoseries\?list=(.*)|[\w-]{11}|\?listType=(.*)&list=(.*))(.*)/i,params:{autoplay:1,autohide:1,fs:1,rel:0,hd:1,wmode:"transparent",enablejsapi:1,html5:1},paramPlace:8,type:"iframe",url:"https://www.youtube-nocookie.com/embed/$4",thumb:"https://img.youtube.com/vi/$4/hqdefault.jpg"},vimeo:{matcher:/^.+vimeo.com\/(.*\/)?([\d]+)(.*)?/,params:{autoplay:1,hd:1,show_title:1,show_byline:1,show_portrait:0,fullscreen:1},paramPlace:3,type:"iframe",url:"//player.vimeo.com/video/$2"},instagram:{matcher:/(instagr\.am|instagram\.com)\/p\/([a-zA-Z0-9_\-]+)\/?/i,type:"image",url:"//$1/p/$2/media/?size=l"},gmap_place:{matcher:/(maps\.)?google\.([a-z]{2,3}(\.[a-z]{2})?)\/(((maps\/(place\/(.*)\/)?\@(.*),(\d+.?\d+?)z))|(\?ll=))(.*)?/i,type:"iframe",url:function(t){return"//maps.google."+t[2]+"/?ll="+(t[9]?t[9]+"&z="+Math.floor(t[10])+(t[12]?t[12].replace(/^\//,"&"):""):t[12]+"").replace(/\?/,"&")+"&output="+(t[12]&&t[12].indexOf("layer=c")>0?"svembed":"embed")}},gmap_search:{matcher:/(maps\.)?google\.([a-z]{2,3}(\.[a-z]{2})?)\/(maps\/search\/)(.*)/i,type:"iframe",url:function(t){return"//maps.google."+t[2]+"/maps?q="+t[5].replace("query=","q=").replace("api=1","")+"&output=embed"}}},n=function(e,n,o){if(e)return o=o||"","object"===t.type(o)&&(o=t.param(o,!0)),t.each(n,function(t,n){e=e.replace("$"+t,n||"")}),o.length&&(e+=(e.indexOf("?")>0?"&":"?")+o),e};t(document).on("objectNeedsType.fb",function(o,i,a){var s,r,c,l,d,u,f,p=a.src||"",h=!1;s=t.extend(!0,{},e,a.opts.media),t.each(s,function(e,o){if(c=p.match(o.matcher)){if(h=o.type,f=e,u={},o.paramPlace&&c[o.paramPlace]){d=c[o.paramPlace],"?"==d[0]&&(d=d.substring(1)),d=d.split("&");for(var i=0;i<d.length;++i){var s=d[i].split("=",2);2==s.length&&(u[s[0]]=decodeURIComponent(s[1].replace(/\+/g," ")))}}return l=t.extend(!0,{},o.params,a.opts[e],u),p="function"===t.type(o.url)?o.url.call(this,c,l,a):n(o.url,c,l),r="function"===t.type(o.thumb)?o.thumb.call(this,c,l,a):n(o.thumb,c),"youtube"===e?p=p.replace(/&t=((\d+)m)?(\d+)s/,function(t,e,n,o){return"&start="+((n?60*parseInt(n,10):0)+parseInt(o,10))}):"vimeo"===e&&(p=p.replace("&%23","#")),!1}}),h?(a.opts.thumb||a.opts.$thumb&&a.opts.$thumb.length||(a.opts.thumb=r),"iframe"===h&&(a.opts=t.extend(!0,a.opts,{iframe:{preload:!1,attr:{scrolling:"no"}}})),t.extend(a,{type:h,src:p,origSrc:a.src,contentSource:f,contentType:"image"===h?"image":"gmap_place"==f||"gmap_search"==f?"map":"video"})):p&&(a.type=a.opts.defaultType)});var o={youtube:{src:"https://www.youtube.com/iframe_api",class:"YT",loading:!1,loaded:!1},vimeo:{src:"https://player.vimeo.com/api/player.js",class:"Vimeo",loading:!1,loaded:!1},load:function(t){var e,n=this;if(this[t].loaded)return void setTimeout(function(){n.done(t)});this[t].loading||(this[t].loading=!0,e=document.createElement("script"),e.type="text/javascript",e.src=this[t].src,"youtube"===t?window.onYouTubeIframeAPIReady=function(){n[t].loaded=!0,n.done(t)}:e.onload=function(){n[t].loaded=!0,n.done(t)},document.body.appendChild(e))},done:function(e){var n,o,i;"youtube"===e&&delete window.onYouTubeIframeAPIReady,(n=t.fancybox.getInstance())&&(o=n.current.$content.find("iframe"),"youtube"===e&&void 0!==YT&&YT?i=new YT.Player(o.attr("id"),{events:{onStateChange:function(t){0==t.data&&n.next()}}}):"vimeo"===e&&void 0!==Vimeo&&Vimeo&&(i=new Vimeo.Player(o),i.on("ended",function(){n.next()})))}};t(document).on({"afterShow.fb":function(t,e,n){e.group.length>1&&("youtube"===n.contentSource||"vimeo"===n.contentSource)&&o.load(n.contentSource)}})}(jQuery),function(t,e,n){"use strict";var o=function(){return t.requestAnimationFrame||t.webkitRequestAnimationFrame||t.mozRequestAnimationFrame||t.oRequestAnimationFrame||function(e){return t.setTimeout(e,1e3/60)}}(),i=function(){return t.cancelAnimationFrame||t.webkitCancelAnimationFrame||t.mozCancelAnimationFrame||t.oCancelAnimationFrame||function(e){t.clearTimeout(e)}}(),a=function(e){var n=[];e=e.originalEvent||e||t.e,e=e.touches&&e.touches.length?e.touches:e.changedTouches&&e.changedTouches.length?e.changedTouches:[e];for(var o in e)e[o].pageX?n.push({x:e[o].pageX,y:e[o].pageY}):e[o].clientX&&n.push({x:e[o].clientX,y:e[o].clientY});return n},s=function(t,e,n){return e&&t?"x"===n?t.x-e.x:"y"===n?t.y-e.y:Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2)):0},r=function(t){if(t.is('a,area,button,[role="button"],input,label,select,summary,textarea,video,audio,iframe')||n.isFunction(t.get(0).onclick)||t.data("selectable"))return!0;for(var e=0,o=t[0].attributes,i=o.length;e<i;e++)if("data-fancybox-"===o[e].nodeName.substr(0,14))return!0;return!1},c=function(e){var n=t.getComputedStyle(e)["overflow-y"],o=t.getComputedStyle(e)["overflow-x"],i=("scroll"===n||"auto"===n)&&e.scrollHeight>e.clientHeight,a=("scroll"===o||"auto"===o)&&e.scrollWidth>e.clientWidth;return i||a},l=function(t){for(var e=!1;;){if(e=c(t.get(0)))break;if(t=t.parent(),!t.length||t.hasClass("fancybox-stage")||t.is("body"))break}return e},d=function(t){var e=this;e.instance=t,e.$bg=t.$refs.bg,e.$stage=t.$refs.stage,e.$container=t.$refs.container,e.destroy(),e.$container.on("touchstart.fb.touch mousedown.fb.touch",n.proxy(e,"ontouchstart"))};d.prototype.destroy=function(){var t=this;t.$container.off(".fb.touch"),n(e).off(".fb.touch"),t.requestId&&(i(t.requestId),t.requestId=null),t.tapped&&(clearTimeout(t.tapped),t.tapped=null)},d.prototype.ontouchstart=function(o){var i=this,c=n(o.target),d=i.instance,u=d.current,f=u.$slide,p=u.$content,h="touchstart"==o.type;if(h&&i.$container.off("mousedown.fb.touch"),(!o.originalEvent||2!=o.originalEvent.button)&&f.length&&c.length&&!r(c)&&!r(c.parent())&&(c.is("img")||!(o.originalEvent.clientX>c[0].clientWidth+c.offset().left))){if(!u||d.isAnimating||u.$slide.hasClass("fancybox-animated"))return o.stopPropagation(),void o.preventDefault();i.realPoints=i.startPoints=a(o),i.startPoints.length&&(u.touch&&o.stopPropagation(),i.startEvent=o,i.canTap=!0,i.$target=c,i.$content=p,i.opts=u.opts.touch,i.isPanning=!1,i.isSwiping=!1,i.isZooming=!1,i.isScrolling=!1,i.canPan=d.canPan(),i.startTime=(new Date).getTime(),i.distanceX=i.distanceY=i.distance=0,i.canvasWidth=Math.round(f[0].clientWidth),i.canvasHeight=Math.round(f[0].clientHeight),i.contentLastPos=null,i.contentStartPos=n.fancybox.getTranslate(i.$content)||{top:0,left:0},i.sliderStartPos=n.fancybox.getTranslate(f),i.stagePos=n.fancybox.getTranslate(d.$refs.stage),i.sliderStartPos.top-=i.stagePos.top,i.sliderStartPos.left-=i.stagePos.left,i.contentStartPos.top-=i.stagePos.top,i.contentStartPos.left-=i.stagePos.left,n(e).off(".fb.touch").on(h?"touchend.fb.touch touchcancel.fb.touch":"mouseup.fb.touch mouseleave.fb.touch",n.proxy(i,"ontouchend")).on(h?"touchmove.fb.touch":"mousemove.fb.touch",n.proxy(i,"ontouchmove")),n.fancybox.isMobile&&e.addEventListener("scroll",i.onscroll,!0),((i.opts||i.canPan)&&(c.is(i.$stage)||i.$stage.find(c).length)||(c.is(".fancybox-image")&&o.preventDefault(),n.fancybox.isMobile&&c.parents(".fancybox-caption").length))&&(i.isScrollable=l(c)||l(c.parent()),n.fancybox.isMobile&&i.isScrollable||o.preventDefault(),(1===i.startPoints.length||u.hasError)&&(i.canPan?(n.fancybox.stop(i.$content),i.isPanning=!0):i.isSwiping=!0,i.$container.addClass("fancybox-is-grabbing")),2===i.startPoints.length&&"image"===u.type&&(u.isLoaded||u.$ghost)&&(i.canTap=!1,i.isSwiping=!1,i.isPanning=!1,i.isZooming=!0,n.fancybox.stop(i.$content),i.centerPointStartX=.5*(i.startPoints[0].x+i.startPoints[1].x)-n(t).scrollLeft(),i.centerPointStartY=.5*(i.startPoints[0].y+i.startPoints[1].y)-n(t).scrollTop(),i.percentageOfImageAtPinchPointX=(i.centerPointStartX-i.contentStartPos.left)/i.contentStartPos.width,i.percentageOfImageAtPinchPointY=(i.centerPointStartY-i.contentStartPos.top)/i.contentStartPos.height,i.startDistanceBetweenFingers=s(i.startPoints[0],i.startPoints[1]))))}},d.prototype.onscroll=function(t){var n=this;n.isScrolling=!0,e.removeEventListener("scroll",n.onscroll,!0)},d.prototype.ontouchmove=function(t){var e=this;return void 0!==t.originalEvent.buttons&&0===t.originalEvent.buttons?void e.ontouchend(t):e.isScrolling?void(e.canTap=!1):(e.newPoints=a(t),void((e.opts||e.canPan)&&e.newPoints.length&&e.newPoints.length&&(e.isSwiping&&!0===e.isSwiping||t.preventDefault(),e.distanceX=s(e.newPoints[0],e.startPoints[0],"x"),e.distanceY=s(e.newPoints[0],e.startPoints[0],"y"),e.distance=s(e.newPoints[0],e.startPoints[0]),e.distance>0&&(e.isSwiping?e.onSwipe(t):e.isPanning?e.onPan():e.isZooming&&e.onZoom()))))},d.prototype.onSwipe=function(e){var a,s=this,r=s.instance,c=s.isSwiping,l=s.sliderStartPos.left||0;if(!0!==c)"x"==c&&(s.distanceX>0&&(s.instance.group.length<2||0===s.instance.current.index&&!s.instance.current.opts.loop)?l+=Math.pow(s.distanceX,.8):s.distanceX<0&&(s.instance.group.length<2||s.instance.current.index===s.instance.group.length-1&&!s.instance.current.opts.loop)?l-=Math.pow(-s.distanceX,.8):l+=s.distanceX),s.sliderLastPos={top:"x"==c?0:s.sliderStartPos.top+s.distanceY,left:l},s.requestId&&(i(s.requestId),s.requestId=null),s.requestId=o(function(){s.sliderLastPos&&(n.each(s.instance.slides,function(t,e){var o=e.pos-s.instance.currPos;n.fancybox.setTranslate(e.$slide,{top:s.sliderLastPos.top,left:s.sliderLastPos.left+o*s.canvasWidth+o*e.opts.gutter})}),s.$container.addClass("fancybox-is-sliding"))});else if(Math.abs(s.distance)>10){if(s.canTap=!1,r.group.length<2&&s.opts.vertical?s.isSwiping="y":r.isDragging||!1===s.opts.vertical||"auto"===s.opts.vertical&&n(t).width()>800?s.isSwiping="x":(a=Math.abs(180*Math.atan2(s.distanceY,s.distanceX)/Math.PI),s.isSwiping=a>45&&a<135?"y":"x"),"y"===s.isSwiping&&n.fancybox.isMobile&&s.isScrollable)return void(s.isScrolling=!0);r.isDragging=s.isSwiping,s.startPoints=s.newPoints,n.each(r.slides,function(t,e){var o,i;n.fancybox.stop(e.$slide),o=n.fancybox.getTranslate(e.$slide),i=n.fancybox.getTranslate(r.$refs.stage),e.$slide.css({transform:"",opacity:"","transition-duration":""}).removeClass("fancybox-animated").removeClass(function(t,e){return(e.match(/(^|\s)fancybox-fx-\S+/g)||[]).join(" ")}),e.pos===r.current.pos&&(s.sliderStartPos.top=o.top-i.top,s.sliderStartPos.left=o.left-i.left),n.fancybox.setTranslate(e.$slide,{top:o.top-i.top,left:o.left-i.left})}),r.SlideShow&&r.SlideShow.isActive&&r.SlideShow.stop()}},d.prototype.onPan=function(){var t=this;if(s(t.newPoints[0],t.realPoints[0])<(n.fancybox.isMobile?10:5))return void(t.startPoints=t.newPoints);t.canTap=!1,t.contentLastPos=t.limitMovement(),t.requestId&&i(t.requestId),t.requestId=o(function(){n.fancybox.setTranslate(t.$content,t.contentLastPos)})},d.prototype.limitMovement=function(){var t,e,n,o,i,a,s=this,r=s.canvasWidth,c=s.canvasHeight,l=s.distanceX,d=s.distanceY,u=s.contentStartPos,f=u.left,p=u.top,h=u.width,g=u.height;return i=h>r?f+l:f,a=p+d,t=Math.max(0,.5*r-.5*h),e=Math.max(0,.5*c-.5*g),n=Math.min(r-h,.5*r-.5*h),o=Math.min(c-g,.5*c-.5*g),l>0&&i>t&&(i=t-1+Math.pow(-t+f+l,.8)||0),l<0&&i<n&&(i=n+1-Math.pow(n-f-l,.8)||0),d>0&&a>e&&(a=e-1+Math.pow(-e+p+d,.8)||0),d<0&&a<o&&(a=o+1-Math.pow(o-p-d,.8)||0),{top:a,left:i}},d.prototype.limitPosition=function(t,e,n,o){var i=this,a=i.canvasWidth,s=i.canvasHeight;return n>a?(t=t>0?0:t,t=t<a-n?a-n:t):t=Math.max(0,a/2-n/2),o>s?(e=e>0?0:e,e=e<s-o?s-o:e):e=Math.max(0,s/2-o/2),{top:e,left:t}},d.prototype.onZoom=function(){var e=this,a=e.contentStartPos,r=a.width,c=a.height,l=a.left,d=a.top,u=s(e.newPoints[0],e.newPoints[1]),f=u/e.startDistanceBetweenFingers,p=Math.floor(r*f),h=Math.floor(c*f),g=(r-p)*e.percentageOfImageAtPinchPointX,b=(c-h)*e.percentageOfImageAtPinchPointY,m=(e.newPoints[0].x+e.newPoints[1].x)/2-n(t).scrollLeft(),v=(e.newPoints[0].y+e.newPoints[1].y)/2-n(t).scrollTop(),y=m-e.centerPointStartX,x=v-e.centerPointStartY,w=l+(g+y),$=d+(b+x),S={top:$,left:w,scaleX:f,scaleY:f};e.canTap=!1,e.newWidth=p,e.newHeight=h,e.contentLastPos=S,e.requestId&&i(e.requestId),e.requestId=o(function(){n.fancybox.setTranslate(e.$content,e.contentLastPos)})},d.prototype.ontouchend=function(t){var o=this,s=o.isSwiping,r=o.isPanning,c=o.isZooming,l=o.isScrolling;if(o.endPoints=a(t),o.dMs=Math.max((new Date).getTime()-o.startTime,1),o.$container.removeClass("fancybox-is-grabbing"),n(e).off(".fb.touch"),e.removeEventListener("scroll",o.onscroll,!0),o.requestId&&(i(o.requestId),o.requestId=null),o.isSwiping=!1,o.isPanning=!1,o.isZooming=!1,o.isScrolling=!1,o.instance.isDragging=!1,o.canTap)return o.onTap(t);o.speed=100,o.velocityX=o.distanceX/o.dMs*.5,o.velocityY=o.distanceY/o.dMs*.5,r?o.endPanning():c?o.endZooming():o.endSwiping(s,l)},d.prototype.endSwiping=function(t,e){var o=this,i=!1,a=o.instance.group.length,s=Math.abs(o.distanceX),r="x"==t&&a>1&&(o.dMs>130&&s>10||s>50);o.sliderLastPos=null,"y"==t&&!e&&Math.abs(o.distanceY)>50?(n.fancybox.animate(o.instance.current.$slide,{top:o.sliderStartPos.top+o.distanceY+150*o.velocityY,opacity:0},200),i=o.instance.close(!0,250)):r&&o.distanceX>0?i=o.instance.previous(300):r&&o.distanceX<0&&(i=o.instance.next(300)),!1!==i||"x"!=t&&"y"!=t||o.instance.centerSlide(200),o.$container.removeClass("fancybox-is-sliding")},d.prototype.endPanning=function(){var t,e,o,i=this;i.contentLastPos&&(!1===i.opts.momentum||i.dMs>350?(t=i.contentLastPos.left,e=i.contentLastPos.top):(t=i.contentLastPos.left+500*i.velocityX,e=i.contentLastPos.top+500*i.velocityY),o=i.limitPosition(t,e,i.contentStartPos.width,i.contentStartPos.height),o.width=i.contentStartPos.width,o.height=i.contentStartPos.height,n.fancybox.animate(i.$content,o,366))},d.prototype.endZooming=function(){var t,e,o,i,a=this,s=a.instance.current,r=a.newWidth,c=a.newHeight;a.contentLastPos&&(t=a.contentLastPos.left,e=a.contentLastPos.top,i={top:e,left:t,width:r,height:c,scaleX:1,scaleY:1},n.fancybox.setTranslate(a.$content,i),r<a.canvasWidth&&c<a.canvasHeight?a.instance.scaleToFit(150):r>s.width||c>s.height?a.instance.scaleToActual(a.centerPointStartX,a.centerPointStartY,150):(o=a.limitPosition(t,e,r,c),n.fancybox.animate(a.$content,o,150)))},d.prototype.onTap=function(e){var o,i=this,s=n(e.target),r=i.instance,c=r.current,l=e&&a(e)||i.startPoints,d=l[0]?l[0].x-n(t).scrollLeft()-i.stagePos.left:0,u=l[0]?l[0].y-n(t).scrollTop()-i.stagePos.top:0,f=function(t){var o=c.opts[t];if(n.isFunction(o)&&(o=o.apply(r,[c,e])),o)switch(o){case"close":r.close(i.startEvent);break;case"toggleControls":r.toggleControls();break;case"next":r.next();break;case"nextOrClose":r.group.length>1?r.next():r.close(i.startEvent);break;case"zoom":"image"==c.type&&(c.isLoaded||c.$ghost)&&(r.canPan()?r.scaleToFit():r.isScaledDown()?r.scaleToActual(d,u):r.group.length<2&&r.close(i.startEvent))}};if((!e.originalEvent||2!=e.originalEvent.button)&&(s.is("img")||!(d>s[0].clientWidth+s.offset().left))){if(s.is(".fancybox-bg,.fancybox-inner,.fancybox-outer,.fancybox-container"))o="Outside";else if(s.is(".fancybox-slide"))o="Slide";else{if(!r.current.$content||!r.current.$content.find(s).addBack().filter(s).length)return;o="Content"}if(i.tapped){if(clearTimeout(i.tapped),i.tapped=null,Math.abs(d-i.tapX)>50||Math.abs(u-i.tapY)>50)return this;f("dblclick"+o)}else i.tapX=d,i.tapY=u,c.opts["dblclick"+o]&&c.opts["dblclick"+o]!==c.opts["click"+o]?i.tapped=setTimeout(function(){i.tapped=null,r.isAnimating||f("click"+o)},500):f("click"+o);return this}},n(e).on("onActivate.fb",function(t,e){e&&!e.Guestures&&(e.Guestures=new d(e))}).on("beforeClose.fb",function(t,e){e&&e.Guestures&&e.Guestures.destroy()})}(window,document,jQuery),function(t,e){"use strict";e.extend(!0,e.fancybox.defaults,{btnTpl:{slideShow:'<button data-fancybox-play class="fancybox-button fancybox-button--play" title="{{PLAY_START}}"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M6.5 5.4v13.2l11-6.6z"/></svg><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M8.33 5.75h2.2v12.5h-2.2V5.75zm5.15 0h2.2v12.5h-2.2V5.75z"/></svg></button>'},slideShow:{autoStart:!1,speed:3e3,progress:!0}});var n=function(t){this.instance=t,this.init()};e.extend(n.prototype,{timer:null,isActive:!1,$button:null,init:function(){var t=this,n=t.instance,o=n.group[n.currIndex].opts.slideShow;t.$button=n.$refs.toolbar.find("[data-fancybox-play]").on("click",function(){t.toggle()}),n.group.length<2||!o?t.$button.hide():o.progress&&(t.$progress=e('<div class="fancybox-progress"></div>').appendTo(n.$refs.inner))},set:function(t){var n=this,o=n.instance,i=o.current;i&&(!0===t||i.opts.loop||o.currIndex<o.group.length-1)?n.isActive&&"video"!==i.contentType&&(n.$progress&&e.fancybox.animate(n.$progress.show(),{scaleX:1},i.opts.slideShow.speed),n.timer=setTimeout(function(){o.current.opts.loop||o.current.index!=o.group.length-1?o.next():o.jumpTo(0)},i.opts.slideShow.speed)):(n.stop(),o.idleSecondsCounter=0,o.showControls())},clear:function(){var t=this;clearTimeout(t.timer),t.timer=null,t.$progress&&t.$progress.removeAttr("style").hide()},start:function(){var t=this,e=t.instance.current;e&&(t.$button.attr("title",(e.opts.i18n[e.opts.lang]||e.opts.i18n.en).PLAY_STOP).removeClass("fancybox-button--play").addClass("fancybox-button--pause"),t.isActive=!0,e.isComplete&&t.set(!0),t.instance.trigger("onSlideShowChange",!0))},stop:function(){var t=this,e=t.instance.current;t.clear(),t.$button.attr("title",(e.opts.i18n[e.opts.lang]||e.opts.i18n.en).PLAY_START).removeClass("fancybox-button--pause").addClass("fancybox-button--play"),t.isActive=!1,t.instance.trigger("onSlideShowChange",!1),t.$progress&&t.$progress.removeAttr("style").hide()},toggle:function(){var t=this;t.isActive?t.stop():t.start()}}),e(t).on({"onInit.fb":function(t,e){e&&!e.SlideShow&&(e.SlideShow=new n(e))},"beforeShow.fb":function(t,e,n,o){var i=e&&e.SlideShow;o?i&&n.opts.slideShow.autoStart&&i.start():i&&i.isActive&&i.clear()},"afterShow.fb":function(t,e,n){var o=e&&e.SlideShow;o&&o.isActive&&o.set()},"afterKeydown.fb":function(n,o,i,a,s){var r=o&&o.SlideShow;!r||!i.opts.slideShow||80!==s&&32!==s||e(t.activeElement).is("button,a,input")||(a.preventDefault(),r.toggle())},"beforeClose.fb onDeactivate.fb":function(t,e){var n=e&&e.SlideShow;n&&n.stop()}}),e(t).on("visibilitychange",function(){var n=e.fancybox.getInstance(),o=n&&n.SlideShow;o&&o.isActive&&(t.hidden?o.clear():o.set())})}(document,jQuery),function(t,e){"use strict";var n=function(){for(var e=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],n={},o=0;o<e.length;o++){var i=e[o];if(i&&i[1]in t){for(var a=0;a<i.length;a++)n[e[0][a]]=i[a];return n}}return!1}();if(n){var o={request:function(e){e=e||t.documentElement,e[n.requestFullscreen](e.ALLOW_KEYBOARD_INPUT)},exit:function(){t[n.exitFullscreen]()},toggle:function(e){e=e||t.documentElement,this.isFullscreen()?this.exit():this.request(e)},isFullscreen:function(){return Boolean(t[n.fullscreenElement])},enabled:function(){return Boolean(t[n.fullscreenEnabled])}};e.extend(!0,e.fancybox.defaults,{btnTpl:{fullScreen:'<button data-fancybox-fullscreen class="fancybox-button fancybox-button--fsenter" title="{{FULL_SCREEN}}"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M7 14H5v5h5v-2H7v-3zm-2-4h2V7h3V5H5v5zm12 7h-3v2h5v-5h-2v3zM14 5v2h3v3h2V5h-5z"/></svg><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M5 16h3v3h2v-5H5zm3-8H5v2h5V5H8zm6 11h2v-3h3v-2h-5zm2-11V5h-2v5h5V8z"/></svg></button>'},fullScreen:{autoStart:!1}}),e(t).on(n.fullscreenchange,function(){var t=o.isFullscreen(),n=e.fancybox.getInstance();n&&(n.current&&"image"===n.current.type&&n.isAnimating&&(n.isAnimating=!1,n.update(!0,!0,0),n.isComplete||n.complete()),n.trigger("onFullscreenChange",t),n.$refs.container.toggleClass("fancybox-is-fullscreen",t),n.$refs.toolbar.find("[data-fancybox-fullscreen]").toggleClass("fancybox-button--fsenter",!t).toggleClass("fancybox-button--fsexit",t))})}e(t).on({"onInit.fb":function(t,e){var i;if(!n)return void e.$refs.toolbar.find("[data-fancybox-fullscreen]").remove();e&&e.group[e.currIndex].opts.fullScreen?(i=e.$refs.container,i.on("click.fb-fullscreen","[data-fancybox-fullscreen]",function(t){t.stopPropagation(),t.preventDefault(),o.toggle()}),e.opts.fullScreen&&!0===e.opts.fullScreen.autoStart&&o.request(),e.FullScreen=o):e&&e.$refs.toolbar.find("[data-fancybox-fullscreen]").hide()},"afterKeydown.fb":function(t,e,n,o,i){e&&e.FullScreen&&70===i&&(o.preventDefault(),e.FullScreen.toggle())},"beforeClose.fb":function(t,e){e&&e.FullScreen&&e.$refs.container.hasClass("fancybox-is-fullscreen")&&o.exit()}})}(document,jQuery),function(t,e){"use strict";var n="fancybox-thumbs";e.fancybox.defaults=e.extend(!0,{btnTpl:{thumbs:'<button data-fancybox-thumbs class="fancybox-button fancybox-button--thumbs" title="{{THUMBS}}"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M14.59 14.59h3.76v3.76h-3.76v-3.76zm-4.47 0h3.76v3.76h-3.76v-3.76zm-4.47 0h3.76v3.76H5.65v-3.76zm8.94-4.47h3.76v3.76h-3.76v-3.76zm-4.47 0h3.76v3.76h-3.76v-3.76zm-4.47 0h3.76v3.76H5.65v-3.76zm8.94-4.47h3.76v3.76h-3.76V5.65zm-4.47 0h3.76v3.76h-3.76V5.65zm-4.47 0h3.76v3.76H5.65V5.65z"/></svg></button>'},thumbs:{autoStart:!1,hideOnClose:!0,parentEl:".fancybox-container",axis:"y"}},e.fancybox.defaults);var o=function(t){this.init(t)};e.extend(o.prototype,{$button:null,$grid:null,$list:null,isVisible:!1,isActive:!1,init:function(t){var e=this,n=t.group,o=0;e.instance=t,e.opts=n[t.currIndex].opts.thumbs,t.Thumbs=e,e.$button=t.$refs.toolbar.find("[data-fancybox-thumbs]");for(var i=0,a=n.length;i<a&&(n[i].thumb&&o++,!(o>1));i++);o>1&&e.opts?(e.$button.removeAttr("style").on("click",function(){e.toggle()}),e.isActive=!0):e.$button.hide()},create:function(){var t,o=this,i=o.instance,a=o.opts.parentEl,s=[];o.$grid||(o.$grid=e('<div class="'+n+" "+n+"-"+o.opts.axis+'"></div>').appendTo(i.$refs.container.find(a).addBack().filter(a)),o.$grid.on("click","a",function(){i.jumpTo(e(this).attr("data-index"))})),o.$list||(o.$list=e('<div class="'+n+'__list">').appendTo(o.$grid)),e.each(i.group,function(e,n){t=n.thumb,t||"image"!==n.type||(t=n.src),s.push('<a href="javascript:;" tabindex="0" data-index="'+e+'"'+(t&&t.length?' style="background-image:url('+t+')"':'class="fancybox-thumbs-missing"')+"></a>")}),o.$list[0].innerHTML=s.join(""),"x"===o.opts.axis&&o.$list.width(parseInt(o.$grid.css("padding-right"),10)+i.group.length*o.$list.children().eq(0).outerWidth(!0))},focus:function(t){var e,n,o=this,i=o.$list,a=o.$grid;o.instance.current&&(e=i.children().removeClass("fancybox-thumbs-active").filter('[data-index="'+o.instance.current.index+'"]').addClass("fancybox-thumbs-active"),n=e.position(),"y"===o.opts.axis&&(n.top<0||n.top>i.height()-e.outerHeight())?i.stop().animate({scrollTop:i.scrollTop()+n.top},t):"x"===o.opts.axis&&(n.left<a.scrollLeft()||n.left>a.scrollLeft()+(a.width()-e.outerWidth()))&&i.parent().stop().animate({scrollLeft:n.left},t))},update:function(){var t=this;t.instance.$refs.container.toggleClass("fancybox-show-thumbs",this.isVisible),t.isVisible?(t.$grid||t.create(),t.instance.trigger("onThumbsShow"),t.focus(0)):t.$grid&&t.instance.trigger("onThumbsHide"),t.instance.update()},hide:function(){this.isVisible=!1,this.update()},show:function(){this.isVisible=!0,this.update()},toggle:function(){this.isVisible=!this.isVisible,this.update()}}),e(t).on({"onInit.fb":function(t,e){var n;e&&!e.Thumbs&&(n=new o(e),n.isActive&&!0===n.opts.autoStart&&n.show())},"beforeShow.fb":function(t,e,n,o){var i=e&&e.Thumbs;i&&i.isVisible&&i.focus(o?0:250)},"afterKeydown.fb":function(t,e,n,o,i){var a=e&&e.Thumbs;a&&a.isActive&&71===i&&(o.preventDefault(),a.toggle())},"beforeClose.fb":function(t,e){var n=e&&e.Thumbs;n&&n.isVisible&&!1!==n.opts.hideOnClose&&n.$grid.hide()}})}(document,jQuery),function(t,e){"use strict";function n(t){var e={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#x2F;","`":"&#x60;","=":"&#x3D;"};return String(t).replace(/[&<>"'`=\/]/g,function(t){return e[t]})}e.extend(!0,e.fancybox.defaults,{btnTpl:{share:'<button data-fancybox-share class="fancybox-button fancybox-button--share" title="{{SHARE}}"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M2.55 19c1.4-8.4 9.1-9.8 11.9-9.8V5l7 7-7 6.3v-3.5c-2.8 0-10.5 2.1-11.9 4.2z"/></svg></button>'},share:{url:function(t,e){return!t.currentHash&&"inline"!==e.type&&"html"!==e.type&&(e.origSrc||e.src)||window.location},
4166tpl:'<div class="fancybox-share"><h1>{{SHARE}}</h1><p><a class="fancybox-share__button fancybox-share__button--fb" href="https://www.facebook.com/sharer/sharer.php?u={{url}}"><svg viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><path d="m287 456v-299c0-21 6-35 35-35h38v-63c-7-1-29-3-55-3-54 0-91 33-91 94v306m143-254h-205v72h196" /></svg><span>Facebook</span></a><a class="fancybox-share__button fancybox-share__button--tw" href="https://twitter.com/intent/tweet?url={{url}}&text={{descr}}"><svg viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><path d="m456 133c-14 7-31 11-47 13 17-10 30-27 37-46-15 10-34 16-52 20-61-62-157-7-141 75-68-3-129-35-169-85-22 37-11 86 26 109-13 0-26-4-37-9 0 39 28 72 65 80-12 3-25 4-37 2 10 33 41 57 77 57-42 30-77 38-122 34 170 111 378-32 359-208 16-11 30-25 41-42z" /></svg><span>Twitter</span></a><a class="fancybox-share__button fancybox-share__button--pt" href="https://www.pinterest.com/pin/create/button/?url={{url}}&description={{descr}}&media={{media}}"><svg viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><path d="m265 56c-109 0-164 78-164 144 0 39 15 74 47 87 5 2 10 0 12-5l4-19c2-6 1-8-3-13-9-11-15-25-15-45 0-58 43-110 113-110 62 0 96 38 96 88 0 67-30 122-73 122-24 0-42-19-36-44 6-29 20-60 20-81 0-19-10-35-31-35-25 0-44 26-44 60 0 21 7 36 7 36l-30 125c-8 37-1 83 0 87 0 3 4 4 5 2 2-3 32-39 42-75l16-64c8 16 31 29 56 29 74 0 124-67 124-157 0-69-58-132-146-132z" fill="#fff"/></svg><span>Pinterest</span></a></p><p><input class="fancybox-share__input" type="text" value="{{url_raw}}" onclick="select()" /></p></div>'}}),e(t).on("click","[data-fancybox-share]",function(){var t,o,i=e.fancybox.getInstance(),a=i.current||null;a&&("function"===e.type(a.opts.share.url)&&(t=a.opts.share.url.apply(a,[i,a])),o=a.opts.share.tpl.replace(/\{\{media\}\}/g,"image"===a.type?encodeURIComponent(a.src):"").replace(/\{\{url\}\}/g,encodeURIComponent(t)).replace(/\{\{url_raw\}\}/g,n(t)).replace(/\{\{descr\}\}/g,i.$caption?encodeURIComponent(i.$caption.text()):""),e.fancybox.open({src:i.translate(i,o),type:"html",opts:{touch:!1,animationEffect:!1,afterLoad:function(t,e){i.$refs.container.one("beforeClose.fb",function(){t.close(null,0)}),e.$content.find(".fancybox-share__button").click(function(){return window.open(this.href,"Share","width=550, height=450"),!1})},mobile:{autoFocus:!1}}}))})}(document,jQuery),function(t,e,n){"use strict";function o(){var e=t.location.hash.substr(1),n=e.split("-"),o=n.length>1&&/^\+?\d+$/.test(n[n.length-1])?parseInt(n.pop(-1),10)||1:1,i=n.join("-");return{hash:e,index:o<1?1:o,gallery:i}}function i(t){""!==t.gallery&&n("[data-fancybox='"+n.escapeSelector(t.gallery)+"']").eq(t.index-1).focus().trigger("click.fb-start")}function a(t){var e,n;return!!t&&(e=t.current?t.current.opts:t.opts,""!==(n=e.hash||(e.$orig?e.$orig.data("fancybox")||e.$orig.data("fancybox-trigger"):""))&&n)}n.escapeSelector||(n.escapeSelector=function(t){return(t+"").replace(/([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g,function(t,e){return e?"\0"===t?"�":t.slice(0,-1)+"\\"+t.charCodeAt(t.length-1).toString(16)+" ":"\\"+t})}),n(function(){!1!==n.fancybox.defaults.hash&&(n(e).on({"onInit.fb":function(t,e){var n,i;!1!==e.group[e.currIndex].opts.hash&&(n=o(),(i=a(e))&&n.gallery&&i==n.gallery&&(e.currIndex=n.index-1))},"beforeShow.fb":function(n,o,i,s){var r;i&&!1!==i.opts.hash&&(r=a(o))&&(o.currentHash=r+(o.group.length>1?"-"+(i.index+1):""),t.location.hash!=="#"+o.currentHash&&(s&&!o.origHash&&(o.origHash=t.location.hash),o.hashTimer&&clearTimeout(o.hashTimer),o.hashTimer=setTimeout(function(){"replaceState"in t.history?(t.history[s?"pushState":"replaceState"]({},e.title,t.location.pathname+t.location.search+"#"+o.currentHash),s&&(o.hasCreatedHistory=!0)):t.location.hash=o.currentHash,o.hashTimer=null},300)))},"beforeClose.fb":function(n,o,i){i&&!1!==i.opts.hash&&(clearTimeout(o.hashTimer),o.currentHash&&o.hasCreatedHistory?t.history.back():o.currentHash&&("replaceState"in t.history?t.history.replaceState({},e.title,t.location.pathname+t.location.search+(o.origHash||"")):t.location.hash=o.origHash),o.currentHash=null)}}),n(t).on("hashchange.fb",function(){var t=o(),e=null;n.each(n(".fancybox-container").get().reverse(),function(t,o){var i=n(o).data("FancyBox");if(i&&i.currentHash)return e=i,!1}),e?e.currentHash===t.gallery+"-"+t.index||1===t.index&&e.currentHash==t.gallery||(e.currentHash=null,e.close()):""!==t.gallery&&i(t)}),setTimeout(function(){n.fancybox.getInstance()||i(o())},50))})}(window,document,jQuery),function(t,e){"use strict";var n=(new Date).getTime();e(t).on({"onInit.fb":function(t,e,o){e.$refs.stage.on("mousewheel DOMMouseScroll wheel MozMousePixelScroll",function(t){var o=e.current,i=(new Date).getTime();e.group.length<2||!1===o.opts.wheel||"auto"===o.opts.wheel&&"image"!==o.type||(t.preventDefault(),t.stopPropagation(),o.$slide.hasClass("fancybox-animated")||(t=t.originalEvent||t,i-n<250||(n=i,e[(-t.deltaY||-t.deltaX||t.wheelDelta||-t.detail)<0?"next":"previous"]())))})}})}(document,jQuery);
4166
4167/* End */
4168;
4169; /* Start:"a:4:{s:4:"full";s:57:"/local/templates/makoto/assets/js/main.js?178574251220287";s:6:"source";s:41:"/local/templates/makoto/assets/js/main.js";s:3:"min";s:0:"";s:3:"map";s:0:"";}"*/
4170;(function( $ ){
4171    // Плагин лоадер
4172    var methods = {
4173        show : function(elem) {
4174            this
4175            .fadeIn(500);
4176                // .addClass('active')
4177            },
4178            hide : function(elem) {
4179                this
4180                .delay(100).fadeOut(500);
4181                // .removeClass('active')
4182            }
4183        };
4184
4185        $.fn.loader = function( method ) {
4186            if ( methods[method] ) {
4187                return methods[ method ].apply( this, Array.prototype.slice.call( arguments, 1 ));
4188            }
4189        };
4190    // Плагин лоадер end
4191})( jQuery );
4192
4193$( document ).ready(function(){
4194     $('.home-slide_items').slick({
4195        infinite: true,
4196        slidesToShow: 1,
4197        arrows: true,
4198        dots: false,
4199        autoplay: true,
4200        easing: 'linear',
4201        swipe: true,
4202        speed: 400,
4203        swipeToSlide: true,
4204        useCSS: true,
4205        fade:true,
4206        useTransform: true,
4207        cssEase: 'linear',
4208        appendArrows:'.counter-home_arrow',
4209        prevArrow: $('.home-prev'),
4210        nextArrow: $('.home-next'),
4211        autoplaySpeed: 7000,
4212        responsive: [
4213        {
4214            breakpoint: 500,
4215            settings: {
4216                arrows: false,
4217            }
4218        },
4219        ]
4220
4221    });
4222
4223    $('#industry_home .work-slide_items').slick({
4224        infinite: true,
4225        slidesToShow: 1,
4226        arrows: true,
4227        dots: false,
4228        autoplay: true,
4229        easing: 'linear',
4230        swipe: true,
4231        speed: 400,
4232        swipeToSlide: true,
4233        useCSS: true,
4234        fade:true,
4235        useTransform: true,
4236        cssEase: 'linear',
4237        appendArrows:'#industry_home .counter-work_arrow',
4238        prevArrow: $('#industry_home .work-prev'),
4239        nextArrow: $('#industry_home .work-next'),
4240        autoplaySpeed: 7000,
4241        responsive: [
4242        {
4243            breakpoint: 540,
4244            settings: {
4245                arrows: false,
4246            }
4247        },
4248        ]
4249
4250    });
4251
4252    $('#promotions_home .work-slide_items').slick({
4253        infinite: true,
4254        slidesToShow: 1,
4255        arrows: true,
4256        dots: false,
4257        autoplay: true,
4258        easing: 'linear',
4259        swipe: true,
4260        speed: 400,
4261        swipeToSlide: true,
4262        useCSS: true,
4263        fade:true,
4264        useTransform: true,
4265        cssEase: 'linear',
4266        appendArrows:'#promotions_home .counter-work_arrow',
4267        prevArrow: $('#promotions_home .work-prev'),
4268        nextArrow: $('#promotions_home .work-next'),
4269        autoplaySpeed: 7000,
4270        responsive: [
4271        {
4272            breakpoint: 540,
4273            settings: {
4274                arrows: false,
4275            }
4276        },
4277        ]
4278
4279    });
4280
4281    $('#industry_home .work-slide_items').on('afterChange', function(event, slick, currentSlide){
4282        $('#industry_home .cp').text(currentSlide + 1)
4283    });
4284    $('#promotions_home .work-slide_items').on('afterChange', function(event, slick, currentSlide){
4285        $('#promotions_home .cp').text(currentSlide + 1)
4286    });
4287
4288    // about us slider on home page
4289    $('.about-slide_items').slick({
4290        infinite: true,
4291        slidesToShow: 1,
4292        arrows: true,
4293        appendArrows:'.about-slide_arrow',
4294        dots:false,
4295        autoplay:true,
4296        fade:true,
4297        autoplaySpeed:5000,
4298        responsive: [
4299        {
4300            breakpoint: 394,
4301            settings: {
4302                arrows: false,
4303                dots:false
4304            }
4305        },
4306        ]
4307    });
4308
4309    // sidebar
4310    $(document).delegate('.sidebar-arrow', 'click', function(){
4311        event.stopPropagation();
4312        $('.sidebar-arrow').toggleClass('active');
4313        $('.sidebar').toggleClass('active');
4314        $('.main').toggleClass('sidebar-hidden');
4315        setTimeout(function(){
4316            $('.home-slide_items').slick('refresh');
4317        }, 500);
4318        // console.log($('.home-slide_items').slick('refresh'));
4319        // $('.home-slide_items').resize();
4320        
4321    });
4322
4323    // recent views products
4324    $('.recent-slide_box').slick({
4325        infinite: false,
4326        slidesToShow: 4,
4327        arrows: true,
4328        dots: false,
4329        autoplay: true,
4330        swipe: true,
4331        speed: 400,
4332        appendArrows:'.recent_arrow',
4333        prevArrow: $('.recent-prev'),
4334        nextArrow: $('.recent-next'),
4335        responsive: [
4336        {
4337            breakpoint: 991,
4338            settings: {
4339                slidesToShow: 3,
4340            }
4341        },
4342        {
4343            breakpoint: 767,
4344            settings: {
4345                slidesToShow: 2,
4346            }
4347        },
4348        {
4349            breakpoint: 608,
4350            settings: {
4351                slidesToShow: 1,
4352                arrows: false,
4353            }
4354        },
4355        ]
4356    });
4357
4358    // mobile menu app on header
4359    $('.header-info__app').click(function(){
4360        event.stopPropagation();
4361        $('.header-info__app').addClass('active');
4362        $('.mobApp').addClass('active');
4363    });
4364
4365    // mobile menu application
4366    $('.mobApp-close').click(function(){
4367        event.stopPropagation();
4368        $('.header-info__app').removeClass('active');
4369        $('.mobApp').removeClass('active');
4370    });
4371
4372    // icon search modal window
4373    $('.icon-search').click(function(){
4374        event.stopPropagation();
4375        $('.icon-search').addClass('active');
4376        $('.search').addClass('active');
4377    });
4378
4379    $('.search__close').click(function(){
4380        event.stopPropagation();
4381        $('.search__close').removeClass('active');
4382        $('.search').removeClass('active');
4383    });
4384
4385    // cat2-sidebar
4386    $('.cat2-sidebar_menu').click(function(){
4387        event.stopPropagation();
4388        $('.cat2-sidebar_menu').toggleClass('active');
4389        $('.cat2-sidebar').toggleClass('active');
4390    });
4391
4392    // fancybox
4393    $('[data-fancybox]').fancybox({
4394        toolbar  : false,
4395        smallBtn : true,
4396        iframe : {
4397            preload : false
4398        }
4399    })
4400
4401
4402    /* Чтобы не прыгал скролл при открытии модалок */
4403    $(".modal").on("show.bs.modal", function(){
4404        var $bodyWidth = $("body").width();
4405        $("body").css({'overflow-y': "hidden"}).css({'padding-right': ($("body").width()-$bodyWidth)});
4406    });
4407
4408    $(".modal").on("hidden.bs.modal", function(){
4409        $("body").css({'padding-right': "0", 'overflow-y': "auto"});
4410    });
4411
4412    /* Чтобы не прыгал скролл при открытии меню */
4413    $(".sidebar-open").on("show.bs.sidebar-open", function(){
4414        var $bodyWidth = $("body").width();
4415        $("body").css({'overflow-y': "hidden"}).css({'padding-right': ($("body").width()-$bodyWidth)});
4416    });
4417
4418    $(".sidebar-open").on("hidden.bs.sidebar-open", function(){
4419        $("body").css({'padding-right': "0", 'overflow-y': "auto"});
4420    });
4421
4422
4423    // Плавная прокрутка
4424    const anchors = document.querySelectorAll('a[href*="#"]:not([data-toggle="modal"])')
4425
4426    for (let anchor of anchors) {
4427      anchor.addEventListener('click', function (e) {
4428        e.preventDefault()
4429        
4430        const blockID = anchor.getAttribute('href').substr(1)
4431        let el = document.getElementById(blockID)
4432        if (el) {
4433          el.scrollIntoView({
4434            behavior: 'smooth',
4435            block: 'start'
4436          })
4437        }
4438      })
4439    }
4440});
4441
4442$(document).ready(function(){
4443    //Выпадающий список "Сортировать по"
4444    $(document).delegate('.sort-box__h-value', 'click', function(){
4445        var elem = $(this),
4446            parent = elem.parents('.sort-box');
4447
4448        parent.addClass('active');
4449    })
4450
4451    $(document).delegate('.sort-box__b > span', 'click', function(){
4452        var elem = $(this),
4453            elemVal = elem.text(),
4454            parent = elem.parents('.sort-box'),
4455            form = $('#prCat-controls-form'),
4456            elemValSort = elem.data('sort');
4457
4458        form.find('input[name=ELEMENT_SORT_FIELD]').val(elemValSort);
4459
4460        parent.find('.sort-box__h-value > span').text(elemVal);
4461        parent.removeClass('active');
4462
4463        ajaxCatalogSectionUpdate();
4464    })
4465
4466    $(document).mouseup(function (e) {
4467        var container = $(".sort-box");
4468        if (container.has(e.target).length === 0){
4469            container.removeClass('active');
4470        }
4471    });
4472
4473    //Выпадающий список "На странице"
4474    $(document).delegate('.amount-product__header', 'click', function(){
4475        var elem = $(this),
4476            parent = elem.parents('.amount-product');
4477
4478        parent.addClass('active');
4479    })
4480
4481    $(document).delegate('.amount-product__link', 'click', function(){
4482        var elem = $(this),
4483            elemVal = elem.text(),
4484            parent = elem.parents('.amount-product');
4485
4486        parent.find('.amount-product__header > span').text(elemVal);
4487        parent.removeClass('active');
4488    })
4489
4490    $(document).mouseup(function (e) {
4491        var container = $(".amount-product");
4492        if (container.has(e.target).length === 0){
4493            container.removeClass('active');
4494        }
4495    });
4496
4497
4498    //Функция обновления параметров компонента - сортировка, смена категории
4499    function ajaxCatalogSectionUpdate(){
4500        var form = $('#prCat-controls-form'),
4501            data = form.serialize();
4502
4503        if(data == ''){
4504            data={};
4505        }
4506
4507        // $('#catalog-section').addClass('loader');
4508
4509        $.ajax({
4510            url: '/ajax/catalog/sort/',
4511            type: 'post',
4512            data: data,
4513            success: function(data){
4514                $('.product__row').html(data);
4515
4516                /*setTimeout(function(){
4517                    $('#catalog-section').removeClass('loader');
4518                }, 1000)*/
4519            }
4520        })
4521    }
4522
4523    $('.js-pr-image-prev').not('.slick-initialized').slick({
4524        fade: false,
4525        infinite: true,
4526        dots: false,
4527        arrows: true,
4528        slidesToShow: 1,
4529        slidesToScroll: 1,
4530        autoplay: false,
4531        speed: 200,
4532        asNavFor: '.js-pr-image-thumb',
4533        prevArrow: '<span class="icon-prev slick-arrow"><svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M14.917 19.6803L15.5767 19.0252C15.7827 18.819 15.8962 18.5447 15.8962 18.2515C15.8962 17.9585 15.7827 17.6839 15.5767 17.4777L8.10309 10.0045L15.5849 2.52262C15.791 2.31677 15.9043 2.04213 15.9043 1.74912C15.9043 1.45611 15.791 1.18131 15.5849 0.975293L14.9293 0.320003C14.503 -0.106668 13.8085 -0.106668 13.3822 0.320003L4.44209 9.22804C4.23623 9.4339 4.09119 9.70821 4.09119 10.0038V10.0072C4.09119 10.3004 4.2364 10.5747 4.44209 10.7806L13.3579 19.6803C13.5638 19.8865 13.8464 19.9997 14.1394 20C14.4326 20 14.7113 19.8865 14.917 19.6803Z" fill="#757575"/></svg></span>',
4534        nextArrow: '<span class="icon-next slick-arrow"><svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M5.08303 0.319677L4.42335 0.974806C4.21733 1.18099 4.10383 1.4553 4.10383 1.74847C4.10383 2.04148 4.21733 2.31612 4.42335 2.5223L11.8969 9.99553L4.41506 17.4774C4.20904 17.6832 4.0957 17.9579 4.0957 18.2509C4.0957 18.5439 4.20904 18.8187 4.41506 19.0247L5.07067 19.68C5.49702 20.1067 6.19149 20.1067 6.61784 19.68L15.5579 10.772C15.7638 10.5661 15.9088 10.2918 15.9088 9.99618V9.99276C15.9088 9.69959 15.7636 9.42528 15.5579 9.21942L6.64207 0.319677C6.43621 0.113497 6.15361 0.000326157 5.8606 0C5.56742 0 5.28872 0.113497 5.08303 0.319677Z" fill="#757575"/></svg></span>',
4535    });
4536
4537    $('.js-pr-image-thumb').not('.slick-initialized').slick({
4538        focusOnSelect: true,
4539        infinite: true,
4540        dots: false,
4541        arrows: false,
4542        slidesToShow: 5,
4543        slidesToScroll: 1,
4544        autoplay: false,
4545        asNavFor: '.js-pr-image-prev',
4546        // vertical: true,
4547        // adaptiveHeight: true,
4548        draggable: false,
4549        responsive: [
4550        {
4551            breakpoint: 577,
4552            settings: {
4553                slidesToShow: 3,
4554                arrows: false,
4555                // vertical: false,
4556            }
4557        },
4558        ]
4559    });
4560
4561    $('.prCat-carousel').slick({
4562        fade: false,
4563        infinite: true,
4564        slidesToShow: 4,
4565        arrows: true,
4566        dots:false,
4567        autoplay:true,
4568        autoplaySpeed:5000,
4569        prevArrow: '<span class="icon-prev slick-arrow"><svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M14.917 19.6803L15.5767 19.0252C15.7827 18.819 15.8962 18.5447 15.8962 18.2515C15.8962 17.9585 15.7827 17.6839 15.5767 17.4777L8.10309 10.0045L15.5849 2.52262C15.791 2.31677 15.9043 2.04213 15.9043 1.74912C15.9043 1.45611 15.791 1.18131 15.5849 0.975293L14.9293 0.320003C14.503 -0.106668 13.8085 -0.106668 13.3822 0.320003L4.44209 9.22804C4.23623 9.4339 4.09119 9.70821 4.09119 10.0038V10.0072C4.09119 10.3004 4.2364 10.5747 4.44209 10.7806L13.3579 19.6803C13.5638 19.8865 13.8464 19.9997 14.1394 20C14.4326 20 14.7113 19.8865 14.917 19.6803Z" fill="#757575"/></svg></span>',
4570        nextArrow: '<span class="icon-next slick-arrow"><svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M5.08303 0.319677L4.42335 0.974806C4.21733 1.18099 4.10383 1.4553 4.10383 1.74847C4.10383 2.04148 4.21733 2.31612 4.42335 2.5223L11.8969 9.99553L4.41506 17.4774C4.20904 17.6832 4.0957 17.9579 4.0957 18.2509C4.0957 18.5439 4.20904 18.8187 4.41506 19.0247L5.07067 19.68C5.49702 20.1067 6.19149 20.1067 6.61784 19.68L15.5579 10.772C15.7638 10.5661 15.9088 10.2918 15.9088 9.99618V9.99276C15.9088 9.69959 15.7636 9.42528 15.5579 9.21942L6.64207 0.319677C6.43621 0.113497 6.15361 0.000326157 5.8606 0C5.56742 0 5.28872 0.113497 5.08303 0.319677Z" fill="#757575"/></svg></span>',
4571        responsive: [
4572            {
4573                breakpoint: 1200,
4574                settings: {
4575                    slidesToShow: 3,
4576                }
4577            },
4578            {
4579                breakpoint: 768,
4580                settings: {
4581                    slidesToShow: 2,
4582                }
4583            },
4584            {
4585                breakpoint: 640,
4586                settings: {
4587                    slidesToShow: 1,
4588                }
4589            },
4590        ]
4591    });
4592})
4593
4594$(document).ready(function(){
4595
4596    $(document).on('click', '.load_more', function(){
4597
4598        let targetContainer = $('.news-items')         //  Контейнер, в котором хранятся элементы
4599        let url =  $('.load_more').attr('data-url');    //  URL, из которого будем брать элементы
4600
4601        if (url !== undefined) {
4602            $.ajax({
4603                type: 'GET',
4604                url: url,
4605                dataType: 'html',
4606                success: function(data){
4607					//console.log(data);
4608                    //  Удаляем старую навигацию
4609                    $('.load_more').remove();
4610
4611                    var elements = $(data).find('.news_col'),  //  Ищем элементы
4612                        pagination = $(data).find('.load_more');//  Ищем навигацию
4613
4614                    targetContainer.append(elements);   //  Добавляем посты в конец контейнера
4615                    pagination.insertAfter(targetContainer); //  добавляем навигацию следом
4616
4617                }
4618            })
4619        }
4620
4621    });
4622// slider for news
4623
4624
4625	let slick_slider_news= $('.container_slider-news');
4626	let itemsLength_slider_news = $('.container_slider-news > div').length - 1;
4627	let temp_itemsLength_slider_news = itemsLength_slider_news;
4628	let url_slider =  $('.load_more').attr('data-url');
4629
4630	slick_slider_news.attr('data-url',url_slider);
4631
4632	slick_slider_news.on('afterChange', function(event, slick, currentSlide, nextSlide){
4633		if(currentSlide>itemsLength_slider_news-8){
4634			temp_itemsLength_slider_news = itemsLength_slider_news;
4635			itemsLength_slider_news= itemsLength_slider_news+20;
4636			let targetContainer = $('.news-items');
4637
4638			if (url_slider !== undefined) {
4639            	$.ajax({
4640                	type: 'GET',
4641                	url: slick_slider_news.attr('data-url'),
4642                	dataType: 'html',
4643                	success: function(data){
4644
4645                    	//  Удаляем старую навигацию
4646                    	$('.load_more-slider').remove();
4647						let count_cols = 0;
4648                    	let elements_slider = $(data).find('.news_col').each(function(index){
4649							count_cols++;
4650
4651							slick_slider_news.slick('slickAdd',"<div>"+$(this).html()+"</div>");
4652            				console.log($(this).html());
4653    					});;  //  Ищем элементы
4654                       	let pagination_slider = $(data).find('.load_more');//  Ищем навигацию
4655            				//console.log(pagination_slider);
4656						slick_slider_news.attr('data-url',pagination_slider.attr('data-url'));
4657						console.log(slick_slider_news.attr('data-url'));
4658                    	//pagination_slider.append(slick_slider_news); //  добавляем навигацию следом
4659i						
4660                	}
4661            	})
4662			}
4663
4664
4665
4666
4667		}
4668	});
4669
4670    slick_slider_news.slick({
4671        infinite: false,
4672        slidesToShow: 4,
4673 		slidesToScroll: 4,
4674        arrows: true,
4675        dots: false,
4676        autoplay: true,
4677        swipe: true,
4678        speed: 400,
4679        prevArrow: '<span class="icon-prev slick-arrow"><svg width="30" height="30" viewBox="0 0 30 30" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M14.917 19.6803L15.5767 19.0252C15.7827 18.819 15.8962 18.5447 15.8962 18.2515C15.8962 17.9585 15.7827 17.6839 15.5767 17.4777L8.10309 10.0045L15.5849 2.52262C15.791 2.31677 15.9043 2.04213 15.9043 1.74912C15.9043 1.45611 15.791 1.18131 15.5849 0.975293L14.9293 0.320003C14.503 -0.106668 13.8085 -0.106668 13.3822 0.320003L4.44209 9.22804C4.23623 9.4339 4.09119 9.70821 4.09119 10.0038V10.0072C4.09119 10.3004 4.2364 10.5747 4.44209 10.7806L13.3579 19.6803C13.5638 19.8865 13.8464 19.9997 14.1394 20C14.4326 20 14.7113 19.8865 14.917 19.6803Z" fill="#757575"/></svg></span>',
4680        nextArrow: '<span class="icon-next slick-arrow"><svg width="30" height="30" viewBox="0 0 30 30" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M5.08303 0.319677L4.42335 0.974806C4.21733 1.18099 4.10383 1.4553 4.10383 1.74847C4.10383 2.04148 4.21733 2.31612 4.42335 2.5223L11.8969 9.99553L4.41506 17.4774C4.20904 17.6832 4.0957 17.9579 4.0957 18.2509C4.0957 18.5439 4.20904 18.8187 4.41506 19.0247L5.07067 19.68C5.49702 20.1067 6.19149 20.1067 6.61784 19.68L15.5579 10.772C15.7638 10.5661 15.9088 10.2918 15.9088 9.99618V9.99276C15.9088 9.69959 15.7636 9.42528 15.5579 9.21942L6.64207 0.319677C6.43621 0.113497 6.15361 0.000326157 5.8606 0C5.56742 0 5.28872 0.113497 5.08303 0.319677Z" fill="#757575"/></svg></span>',
4681
4682        responsive: [
4683        {
4684            breakpoint: 991,
4685            settings: {
4686                slidesToShow: 3,
4687 				slidesToScroll: 3,
4688            }
4689        },
4690        {
4691            breakpoint: 767,
4692            settings: {
4693                slidesToShow: 2,
4694 				slidesToScroll: 2,
4695            }
4696        },
4697        {
4698            breakpoint: 608,
4699            settings: {
4700                slidesToShow: 1,
4701				 slidesToScroll: 1,
4702               // arrows: false,
4703            }
4704        },
4705        ]
4706    });
4707});
4708
4709document.addEventListener("DOMContentLoaded", () => {
4710  document.querySelectorAll(".js-copybox").forEach((button) => {
4711    button.addEventListener("click", function (e) {
4712      e.preventDefault();
4713
4714      const value = this.dataset.value;
4715      const ya_target = this.dataset.ya_target;
4716
4717      // Копируем текст
4718      navigator.clipboard.writeText(value);
4719
4720      if (ya_target) {
4721        yaCounter94340193.reachGoal(ya_target);
4722      }
4723
4724      // Иконки
4725      const copyIcon = this.querySelector(".icon-copy");
4726      const checkIcon = this.querySelector(".icon-check");
4727
4728      copyIcon.classList.add("hidden");
4729      checkIcon.classList.remove("hidden");
4730
4731      // Возвращаем обратно через 2 сек
4732      setTimeout(() => {
4733        copyIcon.classList.remove("hidden");
4734        checkIcon.classList.add("hidden");
4735      }, 2000);
4736    });
4737  });
4738});
4739/* End */
4740;; /* /local/templates/makoto/assets/js/slick.min.js?1785742512151819*/
4741; /* /local/templates/makoto/assets/fancybox/jquery.fancybox.min.js?178574251268253*/
4742; /* /local/templates/makoto/assets/js/main.js?178574251220287*/

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.