PageSourceSearch

https://e-finland.ru/static/core/js/main.js

js e-finland.ru collected 2026-10-02 11:44:06 UTC 40,654 bytes, 1,507 lines download raw bytes

1"use strict";
2
3// Loader
4(function() {
5  jQuery(document).ready(function() {
6    jQuery(document).imagesLoaded(function() {
7      // Page loader
8      jQuery(".page-loader .loader").delay(0).fadeOut(); // 800
9      jQuery(".page-loader").delay(0).fadeOut(0); // 1200 600
10    });
11    jQuery(".ms-select").selectmenu();
12  });
13
14  setTimeout(function() {
15    jQuery(document).find('#tab_news_featured').css('display', 'none');
16    jQuery(document).find('#tab_news_featured_nav').css('display', 'none');
17    jQuery(document).find('#tab_news_comments').css('display', 'none');
18    jQuery(document).find('#tab_news_comments_nav').css('display', 'none');
19  }, 2000);
20
21
22})();
23
24$(window).scroll(function(){
25  var top = $(this).scrollTop();
26  var body = $('body');
27
28  
29  if (top >= 180 ) {
30   body.addClass("fixedBack");
31  } else {
32   body.removeClass("fixedBack");
33
34  }
35});
36
37
38// Popups
39(function() {
40  var popups = $('.js-popups');
41
42  popups.magnificPopup({
43    type: 'inline',
44    midClick: true,
45    fixedContentPos: false,
46    closeMarkup: '<span class="popup-close-ic mfp-close"></span>',
47    removalDelay: 300,
48    mainClass: 'mfp-fade-top'
49  });
50})();
51
52
53// Tabs
54function openTab(tabName) {
55  var i;
56  var x = document.getElementsByClassName("tab_item");
57  var x_nav = document.getElementsByClassName("tab_item_nav");
58  for (i = 0; i < x.length; i++) {
59    x[i].style.display = "none";
60    jQuery(document).find('#tab_news_all_nav').css("display", "none");
61  }
62  document.getElementById(tabName).style.display = "block";
63  if (tabName == 'tab_news_all') document.getElementById(tabName + '_nav').style.display = "block";
64}
65
66// Mobile menu
67(function() {
68  var mbMenu = $('.js-mb-menu');
69
70  mbMenu.magnificPopup({
71    mainClass: 'mfp-mb-menu mfp-fade',
72    type: 'inline',
73    midClick: true,
74    fixedContentPos: false,
75    closeMarkup: '<span class="mb-menu-close-ic mfp-close"></span>',
76    removalDelay: 300
77  });
78})();
79
80// Left sticky bar
81(function() {
82  $(window).load(function() {
83    var inner = $('.inner-wrapper');
84    var leftStBar = $('.js-lsb');
85
86    var waypoints = inner.waypoint({
87      handler: function(dir) {
88        if (dir === 'down') {
89          leftStBar.addClass('sticky');
90        } else if (dir === 'up') {
91          leftStBar.removeClass('sticky');
92        }
93      }
94    });
95  });
96})();
97
98// Sticky header
99(function() {
100  var stHeader = $('.js-sticky-header');
101  var content = $('.content-js');
102
103  content.waypoint(function(direction) {
104    if (direction === "down") {
105      stHeader.addClass('visible');
106    } else if (direction === "up") {
107      stHeader.removeClass('visible');
108    }
109  });
110})();
111
112// Add source link on copy text
113(function() {
114    document.oncopy = function() { 
115      var bodyElement = document.body; 
116      var selection = getSelection(); 
117      var href = document.location.href; 
118      var copyright = "<br><br>Подробнее: <a href='" + href + "'>" + href + "</a>"; 
119      var text = selection + copyright; 
120      var divElement = document.createElement('div');
121        divElement.style.position = 'absolute';
122        divElement.style.left = '-99999px';
123        divElement.innerHTML = text;
124        bodyElement.appendChild(divElement);
125        selection.selectAllChildren(divElement);
126        setTimeout(function() { bodyElement.removeChild(divElement); }, 0); };
127})();
128
129
130// Aside menu
131(function() {
132  var mbMenu = $('.js-asd-menu');
133
134  mbMenu.magnificPopup({
135    mainClass: 'mfp-asd-menu mfp-slide-left',
136    type: 'inline',
137    midClick: true,
138    closeMarkup: '<span class="aside-menu-close-ic mfp-close"></span>',
139    removalDelay: 300
140  });
141})();
142
143// Super fish menu
144(function() {
145  $(document).ready(function() {
146    $('ul.sf-menu').superfish({
147      delay: 300
148    });
149  });
150})();
151
152// Search block variant 1
153(function() {
154  var searchBtn = $('.js-hd-search');
155  var searchBlock = $('.js-hd-search-block');
156
157  searchBtn.on('click', function(e) {
158    var el = $(this);
159    var searchBlock = el.parent().find('.js-hd-search-block');
160
161    e.preventDefault();
162    searchBlock.fadeToggle(200);
163  });
164
165  $(document).on("click", function(event) {
166    if ($(event.target).closest(searchBlock).length == 0 && $(event.target).closest(searchBtn).length == 0) {
167      searchBlock.fadeOut(200);
168    }
169  });
170})();
171
172// // Search block variant 2
173// (function(){
174//     var searchBtn = $('.js-hd-search');
175
176//     searchBtn.magnificPopup({
177//         type:'inline',
178//         midClick: true,
179//         fixedContentPos: false
180//     });
181// })();
182
183
184// Trending line slider
185(function() {
186  $(document).ready(function() {
187    var slider = $('.tl-slider');
188
189    slider.slick({
190      fade: true,
191      speed: 800,
192      autoplay: true,
193      appendArrows: $('.tl-slider-control'),
194      prevArrow: '<span class="arr-left-dark-ic tls-prev"><i></i></span>',
195      nextArrow: '<span class="arr-right-dark-ic tls-next"><i></i></span>'
196    });
197  });
198})();
199
200// Trending posts slider
201(function() {
202  $(document).ready(function() {
203    var slider = $('.js-trend-pst-slider');
204    var pagg;
205
206    slider.each(function() {
207      var el = $(this);
208      pagg = el.parents('.trpst-block').find('.js-sbr-pagination');
209
210      el.slick({
211        fade: true,
212        speed: 1000,
213        dots: true,
214        arrows: false,
215        appendDots: pagg,
216        dotsClass: 'sbr-dots',
217        customPaging: function(slider, i) {
218          return '<span></span>';
219        }
220      });
221    });
222  });
223})();
224
225// Filters dropdown
226(function() {
227  var filterBtn = $('.js-fl-btn');
228
229  filterBtn.each(function() {
230    var el = $(this);
231    var filterBlock = el.find('.js-fl-block');
232
233    el.on('click', function(e) {
234      e.preventDefault();
235      filterBlock.fadeToggle(200);
236    });
237
238    $(document).on("click", function(event) {
239      if ($(event.target).closest(filterBlock).length == 0 && $(event.target).closest(el).length == 0) {
240        filterBlock.fadeOut(200);
241      }
242    });
243  });
244})();
245
246// Main slider 1
247(function() {
248  $(document).ready(function() {
249    var swiper = new Swiper('.js-main-slider-1', {
250      // Optional parameters
251      speed: 1000,
252      loop: true,
253
254      nextButton: '.nav-arrow.next',
255      prevButton: '.nav-arrow.prev',
256      pagination: '.slide-count',
257      paginationType: 'fraction',
258      paginationFractionRender: function(swiper, currentClassName, totalClassName) {
259        return '<span class="' + currentClassName + '"></span>' +
260            ' of ' +
261            '<span class="' + totalClassName + '"></span>';
262      }
263
264    });
265  });
266})();
267
268// Main slider 2
269(function() {
270  $(document).ready(function() {
271    var mainSlider = $('.js-main-slider-2');
272    var slideCount = $('.slide-count');
273    var slideNumCurrent = slideCount.find('.current');
274    var slideNumTotal = slideCount.find('.total');
275
276    mainSlider.on('init reInit afterChange', function(event, slick, currentSlide, nextSlide) {
277      var i = (currentSlide ? currentSlide : 0) + 1;
278      slideNumCurrent.text(i);
279      slideNumTotal.text(slick.slideCount);
280    });
281
282    mainSlider.slick({
283      speed: 600,
284      appendArrows: $('.ms-navs'),
285      prevArrow: '<div class="prev"><i class="ms-prev"></div>',
286      nextArrow: '<div class="next"><i class="ms-next"></div>',
287    });
288  });
289})();
290
291// Main slider 3
292(function() {
293  $(document).ready(function() {
294    var mainSlider = $('.js-main-slider-3');
295    var slideCount = $('.slide-count');
296    var slideNumCurrent = slideCount.find('.current');
297    var slideNumTotal = slideCount.find('.total');
298
299    mainSlider.on('init reInit afterChange', function(event, slick, currentSlide, nextSlide) {
300      var i = (currentSlide ? currentSlide : 0) + 1;
301      slideNumCurrent.text(i);
302      slideNumTotal.text(slick.slideCount);
303    });
304
305    mainSlider.slick({
306      fade: true,
307      speed: 1000,
308      appendArrows: $('.ms-navs'),
309      prevArrow: '<div class="prev"><i class="ms-prev"></div>',
310      nextArrow: '<div class="next"><i class="ms-next"></div>',
311    });
312  });
313})();
314
315// Thumbs slider
316(function() {
317  $(document).ready(function() {
318    var thumbs = $('.js-thumbs').find('.js-thumbs-img');
319
320    var slider = new Swiper('.js-thumbs-slider', {
321      noSwiping: false
322    });
323
324    thumbs.on('click', function(e) {
325      var el = $(this);
326      var i = el.index();
327
328      slider.slideTo(i, 1000);
329    });
330  });
331})();
332
333// Video posts slider
334/*(function() {
335  $(document).ready(function() {
336    var slider = $('.js-video-pst-slider');
337
338    slider.owlCarousel({
339      singleItem: true,
340      autoPlay: 3000,
341      stopOnHover: true,
342      slideSpeed: 1500,
343      transitionStyle: 'fade'
344    });
345
346  });
347})();*/
348
349// Simple posts slider
350/*(function() {
351  $(document).ready(function() {
352    var slider = $('.js-pst-block');
353    var controls;
354    var prev;
355    var next;
356
357    slider.each(function() {
358      var el = $(this);
359      controls = el.parents('.spst-slider').find('.js-pst-navs');
360      prev = controls.find('.pst-prev');
361      next = controls.find('.pst-next');
362
363      el.owlCarousel({
364        items: el.data('items') ? el.data('items') : 3,
365        slideSpeed: 1000,
366        pagination: false,
367        addClassActive: true,
368        itemsDesktop: el.data('items') ? [1229, el.data('items')] : [1229, 3],
369        itemsDesktopSmall: el.data('items') === 1 ? 1 : [1077, 2],
370        itemsTablet: el.data('items') === 1 ? 1 : [767, 2],
371        itemsTabletSmall: [639, 1],
372        // itemsMobile: [479,1]
373      });
374
375      // Custom Navigation Events
376      next.click(function(e) {
377        e.preventDefault();
378        el.trigger('owl.next');
379      });
380      prev.click(function(e) {
381        e.preventDefault();
382        el.trigger('owl.prev');
383      });
384    });
385  });
386})();*/
387
388// Simple posts slider two
389(function() {
390  $(document).ready(function() {
391    var slider = $('.js-pst-block-2');
392    var slides = slider.data('slides');
393    var controls;
394    var prev;
395    var next;
396
397    slider.each(function() {
398      var el = $(this);
399      controls = el.parents('.pst-box').find('.js-pst-navs');
400
401      el.slick({
402        slidesToShow: slides ? slides : 3,
403        appendArrows: controls,
404        prevArrow: '<span><i class="fa fa-angle-left"></i></span>',
405        nextArrow: '<span><i class="fa fa-angle-right"></i></span>',
406        responsive: [{
407          breakpoint: 1229,
408          settings: {
409            slidesToShow: 3,
410            slidesToScroll: 3,
411          }
412        }, {
413          breakpoint: 1077,
414          settings: {
415            slidesToShow: 2,
416            slidesToScroll: 2
417          }
418        }, {
419          breakpoint: 639,
420          settings: {
421            slidesToShow: 1,
422            slidesToScroll: 1
423          }
424        }]
425      });
426    });
427  });
428})();
429
430// Simple posts slider with custom pagination
431(function() {
432  $(document).ready(function() {
433    var slider = $('.js-csp-block');
434    var pagg;
435
436    slider.each(function() {
437      var el = $(this);
438      pagg = el.parents('.pst-block').find('.js-sbr-pagination');
439
440      el.slick({
441        fade: true,
442        speed: 1000,
443        dots: true,
444        arrows: false,
445        appendDots: pagg,
446        dotsClass: 'sbr-dots',
447        customPaging: function(slider, i) {
448          return '<span></span>';
449        }
450      });
451    });
452  });
453})();
454
455// Image post slider
456(function() {
457  $(document).ready(function() {
458    var mainSlider = $('.js-img-slider');
459    var customNavs = mainSlider.parent('.img-slider').find('.js-custom-navs');
460    var slideCount = customNavs.find('.js-slide-count');
461    var slideNumCurrent = slideCount.find('.js-current');
462    var slideNumTotal = slideCount.find('.js-total');
463
464    mainSlider.on('init reInit afterChange', function(event, slick, currentSlide, nextSlide) {
465      var i = (currentSlide ? currentSlide : 0) + 1;
466      slideNumCurrent.text(i);
467      slideNumTotal.text(slick.slideCount);
468    });
469
470    mainSlider.slick({
471      speed: 600,
472      appendArrows: customNavs,
473      prevArrow: '<div class="prev"><i class="fa fa-angle-left"></div>',
474      nextArrow: '<div class="next"><i class="fa fa-angle-right"></div>'
475    });
476  });
477})();
478
479// Sidebar slider
480(function() {
481  $(document).ready(function() {
482    var slider = $('.js-sbr-slider');
483    var pagg;
484    var nav;
485    var prev;
486    var next;
487
488    slider.each(function() {
489      var el = $(this);
490      pagg = el.parents('.sbr-slider').find('.js-sbr-pagination');
491      nav = el.parents('.sbr-slider').find('.js-sbr-navs');
492      prev = nav.find('.sbr-prev');
493      next = nav.find('.sbr-next');
494
495      el.slick({
496        fade: true,
497        speed: 1000,
498        dots: true,
499        appendDots: pagg,
500        appendArrows: nav,
501        prevArrow: '<div class="prev"><i class="sbr-prev"></div>',
502        nextArrow: '<div class="next"><i class="sbr-next"></div>',
503        dotsClass: 'sbr-dots',
504        customPaging: function(slider, i) {
505          return '<span></span>';
506        }
507      });
508    });
509  });
510})();
511
512// Sidebar sticky
513(function() {
514  var stickSb = $(".js-sidebar");
515
516  $(document).ready(function() {
517    $(document).imagesLoaded(function() {
518      stickSb.each(function() {
519        var el = $(this);
520
521        el.stick_in_parent({
522          parent: '.section',
523          offset_top: $('.js-sticky-header') ? 65 : 0
524        });
525      });
526    });
527  });
528})();
529
530(function() {
531  var filters = $('.js-tab-filter');
532  var slider = $('.js-tab-slider');
533
534  filters.on('click', 'a', function(e) {
535    e.preventDefault();
536    var el = $(this);
537
538    if (!el.hasClass('active')) {
539      filters.find('a').removeClass('active');
540      el.addClass('active');
541    }
542  });
543})();
544
545// Go top button
546(function() {
547  var butt = $('.js-go-top');
548  butt.on('click', function(e) {
549    e.preventDefault();
550    var body = $("html, body");
551    body.animate({
552      scrollTop: 0
553    }, 1500);
554  });
555
556  $('.content-js').waypoint(function(direction) {
557    if (direction === "down") {
558      butt.removeClass('fadeOutUp')
559          .addClass('fadeInUp');
560    } else if (direction === "up") {
561      butt.removeClass('fadeInUp')
562          .addClass('fadeOutUp');
563    }
564  });
565})();
566
567// More post animate
568(function() {
569  var moreBtn = $('.js-more-posts');
570  var moreBtn2 = $('.js-more-posts-2');
571
572  // DEMO
573  var posts1 = '<article class="post post-tp-17 animated fadeIn">' +
574      '<figure>' +
575      '<a href="">' +
576      '<img src="https://s3.amazonaws.com/weblionmedia-spectr/img/223x156/4.jpg" height="156" width="223" class="adaptive">' +
577      '</a>' +
578      '</figure>' +
579      '<span class="category-tp-4">style</span>' +
580      '<h3 class="title-5"><a href="">Fusce ac orci sagittis mattis magnabeneath chalete banvela</a></h3>' +
581      '<div class="meta-tp-2">' +
582      '<div class="date"><span>october 2, 2015</span></div>' +
583      '<div class="category">' +
584      '<a href=""><i class="li_user"></i><span>admin</span></a>' +
585      '</div>' +
586      '</div>' +
587      '<p>Sed ut perspiciatis unde omnis iste natus sit voluptatem accusantium dolore mque laudantium, totamrem aperiam, eaque ipsa quae ab illo invent</p>' +
588      '</article>' +
589      '<article class="post post-tp-17 animated fadeIn">' +
590      '<figure>' +
591      '<a href="">' +
592      '<img src="https://s3.amazonaws.com/weblionmedia-spectr/img/223x156/5.jpg" height="156" width="223" 
592class="adaptive">' +
593      '</a>' +
594      '</figure>' +
595      '<span class="category-tp-4">style</span>' +
596      '<h3 class="title-5"><a href="">Explain to you how all this mistaken</a></h3>' +
597      '<div class="meta-tp-2">' +
598      '<div class="date"><span>october 2, 2015</span></div>' +
599      '<div class="category">' +
600      '<a href=""><i class="li_user"></i><span>admin</span></a>' +
601      '</div>' +
602      '</div>' +
603      '<p>Sed ut perspiciatis unde omnis iste natus sit voluptatem accusantium dolore mque laudantium, totamrem aperiam, eaque ipsa quae ab illo invent</p>' +
604      '</article>' +
605      '<article class="post post-tp-17 animated fadeIn">' +
606      '<figure>' +
607      '<a href="">' +
608      '<img src="https://s3.amazonaws.com/weblionmedia-spectr/img/223x156/6.jpg" height="156" width="223" class="adaptive">' +
609      '</a>' +
610      '</figure>' +
611      '<span class="category-tp-4">style</span>' +
612      '<h3 class="title-5"><a href="">But I must explain to you how all this mistaken idea of denouncing pleasure</a></h3>' +
613      '<div class="meta-tp-2">' +
614      '<div class="date"><span>october 2, 2015</span></div>' +
615      '<div class="category">' +
616      '<a href=""><i class="li_user"></i><span>admin</span></a>' +
617      '</div>' +
618      '</div>' +
619      '<p>Sed ut perspiciatis unde omnis iste natus sit voluptatem accusantium dolore mque laudantium, totamrem aperiam, eaque ipsa quae ab illo invent</p>' +
620      '</article>' +
621      '<article class="post post-tp-17 animated fadeIn">' +
622      '<figure>' +
623      '<a href="">' +
624      '<img src="https://s3.amazonaws.com/weblionmedia-spectr/img/223x156/7.jpg" height="156" width="223" class="adaptive">' +
625      '</a>' +
626      '</figure>' +
627      '<span class="category-tp-4">style</span>' +
628      '<h3 class="title-5"><a href="">But I must explain to you how all this mistaken idea of denouncing pleasure</a></h3>' +
629      '<div class="meta-tp-2">' +
630      '<div class="date"><span>october 2, 2015</span></div>' +
631      '<div class="category">' +
632      '<a href=""><i class="li_user"></i><span>admin</span></a>' +
633      '</div>' +
634      '</div>' +
635      '<p>Sed ut perspiciatis unde omnis iste natus sit voluptatem accusantium dolore mque laudantium, totamrem aperiam, eaque ipsa quae ab illo invent</p>' +
636      '</article>';
637
638  var posts2 = '<article class="post post-tp-21">' +
639      '<figure>' +
640      '<a href="">' +
641      '<img src="https://s3.amazonaws.com/weblionmedia-spectr/img/223x156/8.jpg" height="133" width="190" class="adaptive">' +
642      '</a>' +
643      '</figure>' +
644      '<h3 class="title-5"><a href="">Fusce ac orci sagittis mattis magnabeneath chalete banvela</a></h3>' +
645      '<div class="meta-tp-2">' +
646      '<div class="date"><span>october 2, 2015</span></div>' +
647      '<div class="category">' +
648      '<a href=""><i class="li_pen"></i><span>life style</span></a>' +
649      '</div>' +
650      '</div>' +
651      '<p>Sed ut perspiciatis unde omnis iste natus sit volupt atem accusantium dolore mque laudantium, totamrem</p>' +
652      '</article>' +
653      '<article class="post post-tp-21">' +
654      '<figure>' +
655      '<a href="">' +
656      '<img src="https://s3.amazonaws.com/weblionmedia-spectr/img/223x156/9.jpg" height="133" width="190" class="adaptive">' +
657      '</a>' +
658      '</figure>' +
659      '<h3 class="title-5"><a href="">Not know how to pursue pleasure rationally</a></h3>' +
660      '<div class="meta-tp-2">' +
661      '<div class="date"><span>october 2, 2015</span></div>' +
662      '<div class="category">' +
663      '<a href=""><i class="li_pen"></i><span>life style</span></a>' +
664      '</div>' +
665      '</div>' +
666      '<p>Sed ut perspiciatis unde omnis iste natus sit volupt atem accusantium dolore mque laudantium, totamrem</p>' +
667      '</article>' +
668      '<article class="post post-tp-21">' +
669      '<figure>' +
670      '<a href="">' +
671      '<img src="https://s3.amazonaws.com/weblionmedia-spectr/img/223x156/10.jpg" height="133" width="190" class="adaptive">' +
672      '</a>' +
673      '</figure>' +
674      '<h3 class="title-5"><a href="">Those who do not know how to pursue pleasure rationally</a></h3>' +
675      '<div class="meta-tp-2">' +
676      '<div class="date"><span>october 2, 2015</span></div>' +
677      '<div class="category">' +
678      '<a href=""><i class="li_pen"></i><span>life style</span></a>' +
679      '</div>' +
680      '</div>' +
681      '<p>
681Sed ut perspiciatis unde omnis iste natus sit volupt atem accusantium dolore mque laudantium, totamrem</p>' +
682      '</article>' +
683      '<article class="post post-tp-21">' +
684      '<figure>' +
685      '<a href="">' +
686      '<img src="https://s3.amazonaws.com/weblionmedia-spectr/img/223x156/4.jpg" height="133" width="190" class="adaptive">' +
687      '</a>' +
688      '</figure>' +
689      '<h3 class="title-5"><a href="">Avoids pleasure itself because it is pleasure but because</a></h3>' +
690      '<div class="meta-tp-2">' +
691      '<div class="date"><span>october 2, 2015</span></div>' +
692      '<div class="category">' +
693      '<a href=""><i class="li_pen"></i><span>life style</span></a>' +
694      '</div>' +
695      '</div>' +
696      '<p>Sed ut perspiciatis unde omnis iste natus sit volupt atem accusantium dolore mque laudantium, totamrem</p>' +
697      '</article>';
698
699  var scrllTop;
700
701  moreBtn.on('click', function(e) {
702    e.preventDefault();
703
704    var el = $(this);
705    var moreBlc = el.parent().prev().find('.posts');
706
707    scrllTop = $(window).scrollTop();
708    $(window).scrollTop(scrllTop + 50);
709
710    moreBlc.append(posts1);
711  });
712
713  moreBtn2.on('click', function(e) {
714    e.preventDefault();
715
716    var el = $(this);
717    var moreBlc = el.parent().prev().find('.posts');
718
719    scrllTop = $(window).scrollTop();
720    $(window).scrollTop(scrllTop + 50);
721
722    moreBlc.append(posts2);
723  });
724})();
725
726// Google Maps
727(function() {
728  var maps = $('.js-map');
729
730  maps.each(function() {
731    var currentMap = $(this);
732    var latlng = new google.maps.LatLng(currentMap.attr('data-longitude'), currentMap.attr('data-latitude'));
733    var point = currentMap.attr('data-marker');
734    var mapColor = currentMap.attr('data-map-color');
735    var mapSaturation = currentMap.attr('data-map-saturation');
736    var styles = [{
737      stylers: [{
738        hue: mapColor
739      },
740        {
741          saturation: mapSaturation
742        }]
743    }];
744    var myOptions = {
745      zoom: 13,
746      scrollwheel: false,
747      center: latlng,
748      mapTypeControl: false
749    };
750    var map = new google.maps.Map(currentMap[0], myOptions);
751
752    var styledMap = new google.maps.StyledMapType(styles, {
753      name: "Styled Map"
754    });
755
756    if (mapColor !== "") {
757      map.mapTypes.set('map_style', styledMap);
758      map.setMapTypeId('map_style');
759    }
760
761    google.maps.event.addListenerOnce(map, 'tilesloaded', function() {
762      var markerImgLoad = new Image();
763      markerImgLoad.src = point;
764      $(markerImgLoad).load(function() {
765        addMarker(map, point, latlng);
766      });
767    });
768
769    $(window).resize(function() {
770      map.setCenter(latlng);
771    });
772  });
773
774  function addMarker(map, point, latlng) {
775    var marker = new google.maps.Marker({
776      map: map,
777      icon: point,
778      position: latlng,
779      animation: google.maps.Animation.BOUNCE
780    });
781    setTimeout(function() {
782      marker.setAnimation(null);
783    }, 700);
784  }
785})();
786
787// Accordions
788(function() {
789
790  var allPanels = $('.accordion > dd').hide();
791
792  $('.accordion > dt > a').on('click', function(e) {
793    e.preventDefault();
794
795    var el = $(this);
796    if (!el.hasClass('open')) {
797      allPanels.slideUp().prev().removeClass('open').children().removeClass('open');
798      $(this).addClass('open').parent().addClass('open').next().slideDown();
799    }
800  });
801
802})();
803
804// Tabs
805(function() {
806  $(".tab-item").not(":first").hide();
807  $(".tabs-list .tab").on('click', function() {
808    var el = $(this);
809    if (!el.hasClass('active')) {
810      $(".tabs .tab").removeClass("active").eq(el.index()).addClass("active");
811      $(".tab-item").hide().eq(el.index()).fadeIn();
812    }
813  }).eq(0).addClass("active");
814})();
815
816// Gallery
817(function() {
818  var gallery = $('.js-gallery-link');
819
820  gallery.magnificPopup({
821    mainClass: 'mfp-fade',
822    type: 'image',
823    gallery: {
824      enabled: true
825    }
826  });
827})();
828
829// Range slider
830$(function() {
831  var range = $(".js-range");
832  var amount = range.parents('.range-wrap').find('.js-range-amount');
833
834  range.each(function() {
835    var el = $(this);
836
837    el.slider({
838      range: true,
839      min: 5,
840      max: 100,
841      values: [0, 70],
842      slide: function(event, ui) {
843        amount.text("$" + ui.values[0] + " - $" + ui.values[1]);
844      }
845    });
846
847    amount.text("$" + range.slider("values", 0) + " - $" + range.slider("values", 1));
848  });
849});
850
851// Custom select
852$(function() {
853  var select = $(".js-select");
854
855  select.each(function() {
856    var el = $(this);
857
858    el.selectmenu({
859      icons: {button: "fa fa-angle-down"}
860    });
861  });
862
863  $(window).on('resize', function() {
864    select.each(function() {
865      var el = $(this);
866
867      el.selectmenu("refresh");
868    });
869  });
870});
871
872// Quantity
873$(function() {
874  var quantity = $(".js-quantity");
875
876  quantity.each(function() {
877    var el = $(this);
878    var minus = el.find('.minus');
879    var num = el.find('.num');
880    var plus = el.find('.plus');
881
882    var i = num.text();
883
884    plus.on('click', function() {
885      i++;
886      num.text(i);
887    });
888
889    minus.on('click', function() {
890      i--;
891      if (i >= 1) {
892        num.text(i)
893      } else {
894        i = 1;
895      }
896    });
897  });
898});
899
900// Form validation
901$("#contactForm").validator().on("submit", function (event) {
902  if (event.isDefaultPrevented()) {
903    // handle the invalid form...
904    formError();
905    //submitMSG(false, "Did you fill in the form properly?");
906  } else {
907    // everything looks good!
908    event.preventDefault();
909    submitForm();
910  }
911});
912
913
914function submitForm(){
915  // Initiate Variables With Form Content
916  var name = $("#name").val();
917  var email = $("#email").val();
918  var message = $("#message").val();
919
920  $.ajax({
921    type: "POST",
922    url: "php/form-process.php",
923    data: "name=" + name + "&email=" + email + "&message=" + message,
924    success : function(text){
925      if (text === "success"){
926        formSuccess();
927      } else {
928        formError();
929        submitMSG(false,text);
930      }
931    }
932  });
933}
934
935function formSuccess(){
936  $("#contactForm")[0].reset();
937  submitMSG(true, "Message Submitted!");
938}
939
940function formError(){
941  $("#contactForm").removeClass().addClass('shake animated2').one('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', function(){
942    $(this).removeClass();
943  });
944}
945
946function submitMSG(valid, msg){
947  if(valid){
948    var msgClasses = "h3 text-center tada animated2 text-success";
949  } else {
950    var msgClasses = "h3 text-center text-danger";
951  }
952  $("#msgSubmit").removeClass().addClass(msgClasses).text(msg);
953}
954
955// Tour Datepicker
956var currentDate = new Date();
957$('.js-datepicker2m').each(function(){
958  $(this).datepicker({
959    showOn: "both",
960    buttonText: "",
961    numberOfMonths: [1, 2],
962    format: 'dd.mm.yyyy',
963    minDate: currentDate,
964    autoclose: true,
965    language: 'ru'
966  }).inputmask("dd.mm.yyyy", {
967      placeholder: "",
968      showMaskOnHover: false,
969      showMaskOnFocus: false,
970      removeMaskOnSubmit: true,
971      jitMasking: false
972  });
973
974  // switch to 1 month
975  var debounce;
976  $(window).resize(function() {
977    clearTimeout(debounce);
978    if ($(window).width() < 641) {
979      debounce = setTimeout(function() {
980        debounceDatepicker(1);
981      }, 250);
982    } else {
983      debounce = setTimeout(function() {
984        debounceDatepicker(2);
985      }, 250);
986    }
987  }).trigger('resize');
988
989  function debounceDatepicker(no) {
990    $(".js-datepicker2m").datepicker("option", "numberOfMonths", no);
991  }
992
993  var headerText = $(this).data("header");
994  $(".ui-datepicker").attr('data-header', headerText);
995
996  $(".datepicker-butt").click(function() {
997    $(this).datepicker("show");
998  });
999});
1000
1001var dateToday = new Date();
1002$('.js-datepicker1m').each(function(){
1003  $(this).datepicker({
1004    showOn: "both",
1005    buttonText: "",
1006    numberOfMonths: 1,
1007    format: 'dd-mm-yyyy',
1008    autoclose: true,
1009    minDate: dateToday,
1010    language: 'ru'
1011  }).inputmask("dd-mm-yyyy", {
1012      placeholder: "",
1013      showMaskOnHover: false,
1014      showMaskOnFocus: false,
1015      removeMaskOnSubmit: true
1016  });
1017
1018  var headerText = $(this).data("header");
1019  $(".ui-datepicker").attr('data-header', headerText);
1020});
1021
1022
1023/////////
1024$('.date-out').click(function(){
1025  $('.ui-datepicker').removeClass (function (index, className) {
1026    return (className.match (/(^|\s)date\S+/g) || []).join(' ');
1027  }).addClass('dateOut');
1028});
1029
1030$('.date-out .datepicker-butt').click(function(){
1031  $('.ui-datepicker').removeClass (function (index, className) {
1032    return (className.match (/(^|\s)date\S+/g) || []).join(' ');
1033  }).addClass('dateOut');
1034});
1035
1036/////////
1037$('.date-in').click(function(){
1038  $('.ui-datepicker').removeClass (function (index, className) {
1039    return (className.match (/(^|\s)date\S+/g) || []).join(' ');
1040  }).addClass('dateIn');
1041});
1042
1043$('.date-in .datepicker-butt').click(function(){
1044  $('.ui-datepicker').removeClass (function (index, className) {
1045    return (className.match (/(^|\s)date\S+/g) || []).join(' ');
1046  }).addClass('dateIn');
1047});
1048
1049////////
1050$('.date-when').click(function(){
1051  $('.ui-datepicker').removeClass (function (index, className) {
1052    return (className.match (/(^|\s)date\S+/g) || []).join(' ');
1053  }).addClass('dateWhen');
1054});
1055
1056$('.date-when .datepicker-butt').click(function(){
1057  $('.ui-datepicker').removeClass (function (index, className) {
1058    return (className.match (/(^|\s)date\S+/g) || []).join(' ');
1059  }).addClass('dateWhen');
1060});
1061
1062////////
1063$('.date-tour').click(function(){
1064  $('.ui-datepicker').removeClass (function (index, className) {
1065    return (className.match (/(^|\s)date\S+/g) || []).join(' ');
1066  }).addClass('dateTour');
1067});
1068
1069////////
1070$('.date-born').click(function(){
1071  $('.ui-datepicker').removeClass (function (index, className) {
1072    return (className.match (/(^|\s)date\S+/g) || []).join(' ');
1073  }).addClass('dateBorn');
1074});
1075
1076// Modal
1077$('a.open-modal').click(function(event) {
1078  $(this).modal({
1079    fadeDuration: 250
1080  });
1081  return false;
1082});
1083
1084
1085// Input mask
1086$(function() {
1087  $("[data-mask]").inputmask({
1088    showMaskOnHover: false,
1089    showMaskOnFocus: false,
1090    placeholder: " ",
1091    removeMaskOnSubmit: true
1092  });
1093});
1094
1095
1096$(function() {
1097  $("[data-phone-mask]").inputmask({
1098    showMaskOnHover: false,
1099    showMaskOnFocus: true,
1100    placeholder: " ",
1101    removeMaskOnSubmit: true
1102  });
1103});
1104
1105
1106$('.js-select2').each(function(){
1107  $(this).select2({
1108    allowClear: false,
1109    width: 'resolve',
1110    minimumResultsForSearch: Infinity
1111  });
1112});
1113
1114// Resize CTA Block 400px
1115/*function resizeboxes400() {
1116  if ($(".tours-cta-manager__wrap").width() < 400) {
1117    $(".tours-cta-manager").addClass("tours-cta-manager--narrow");
1118  } else {
1119    $(".tours-cta-manager").removeClass("tours-cta-manager--narrow");
1120  }
1121}*/
1122
1123function resizebox400() {
1124  if ($(".resizebox-outer-400").width() < 401) {
1125    $(".resizebox-outer-400 > .cta-manager").addClass("cta-manager--narrow");
1126  } else {
1127    $(".resizebox-outer-400 > .cta-manager").removeClass("cta-manager--narrow");
1128  }
1129}
1130
1131// Resize Blocks 500px
1132function resizeboxes500() {
1133  if ($(".resizebox-outer-500").width() < 500) {
1134    $(".resizebox-inner").addClass("resizebox-500");
1135  } else {
1136    $(".resizebox-inner").removeClass("resizebox-500");
1137  }
1138}
1139
1140// Resize Blocks 530px
1141function resizeboxes530() {
1142  if ($(".resizebox530").width() < 530) {
1143    $(".resizebox530-inner").addClass("resizebox-530");
1144  } else {
1145    $(".resizebox530-inner").removeClass("resizebox-530");
1146  }
1147}
1148
1149
1150// Resize Blocks 635px
1151function resizeboxes635() {
1152  if ($(".resizebox635").width() < 635) {
1153    $(".resizebox635-inner").addClass("resizebox-635");
1154  } else {
1155    $(".resizebox635-inner").removeClass("resizebox-635");
1156  }
1157}
1158
1159// Resize 600px
1160function resizebox600() {
1161  if ($(".resizebox600").width() < 593) {
1162    $(".resizebox600-inner").addClass("resizebox-600");
1163  } else {
1164    $(".resizebox600-inner").removeClass("resizebox-600");
1165  }
1166}
1167
1168
1169// Tours filter accordion
1170$( ".tours-filter-accordion" ).accordion({
1171  heightStyle: "content",
1172  collapsible: true,
1173  header: ".tours-filter__section-title",
1174  icons: {
1175    "header": "ui-icon-caret-1-s",
1176    "activeHeader": "ui-icon-caret-1-n"
1177  }
1178});
1179
1180
1181// Mobile filter
1182$('.tours-filter').find('.mobile-toggle').click(function(){
1183  //Expand or collapse this panel
1184  // $(this).next().slideToggle('fast');
1185  $(".mobile-toggle-wrapper").slideToggle('fast');
1186});
1187
1188
1189function toggleMobWrap_old() {
1190  if ($(document).width() > 480) {
1191    $(".mobile-toggle-wrapper").css( "display", "block");
1192  } else {
1193    $(".mobile-toggle-wrapper").css( "display", "none");
1194  }
1195}
1196
1197function toggleMobWrap() {
1198  toggleMobWrap.lock = toggleMobWrap.lock || {open: false, close: false};
1199  var open = function() {
1200    toggleMobWrap.lock.open = true;
1201    toggleMobWrap.lock.close = false;
1202    $(".mobile-toggle-wrapper").css("display", "block");
1203  };
1204  var close = function() {
1205    toggleMobWrap.lock.open = false;
1206    toggleMobWrap.lock.close = true;
1207    $(".mobile-toggle-wrapper").css("display", "none");
1208  };
1209  $(document).width() > 480 ? !toggleMobWrap.lock.open && open() : !toggleMobWrap.lock.close && close();
1210}
1211
1212function removeParent() {
1213  if ($(document).width() < 769) {
1214    $(".tours-col-wrap > .tours-col-left").unwrap();
1215    $(".tours-col-wrap > .tours-col-right").unwrap();
1216  }
1217}
1218
1219function addParent() {
1220  if ($(document).width() > 768) {
1221    $(".tours-col-container > .tours-col-left").wrapAll('<div class="tours-col-wrap col-md-16 col-sm-14"></div>');
1222    $(".tours-col-container > .tours-col-right").wrapAll('<div class="tours-col-wrap col-md-8 col-sm-10"></div>');
1223  }
1224}
1225
1226
1227// Header reviews slider
1228function reviewsSlider() {
1229  var slider = $('.tour-header__reviews-slider');
1230  slider.owlCarousel({
1231    items: 1,
1232    loop: true,
1233    // center: true,
1234    nav:true,
1235    dots: false,
1236    smartSpeed: 500,
1237    // URLhashListener: true,
1238    navText: false
1239  });
1240}
1241
1242function addEllipsis() {
1243  $(".dotdotdot p").dotdotdot({
1244    /*  The text to add as ellipsis. */
1245    ellipsis  : '... ',
1246    /*  How to cut off the text/html: 'word'/'letter'/'children' */
1247    wrap    : 'word',
1248    /*  Wrap-option fallback to 'letter' for long words */
1249    fallbackToLetter: true,
1250    /*  jQuery-selector for the element to keep and put after the ellipsis. */
1251    after    : null,
1252    /*  Whether to update the ellipsis: true/'window' */
1253    watch    : false,
1254    /*  Optionally set a max-height, can be a number or function.
1255     If null, the height will be measured. */
1256    height    : null,
1257    /*  Deviation for the height-option. */
1258    tolerance  : 0,
1259    /*  Callback function that is fired after the ellipsis is added,
1260     receives two parameters: isTruncated(boolean), orgContent(string). */
1261    callback  : function( isTruncated, orgContent ) {},
1262    lastCharacter  : {
1263      /*  Remove these characters from the end of the truncated text. */
1264      remove    : [ ' ', ',', ';', '.', '!', '?' ],
1265      /*  Don't add an ellipsis if this array contains
1266       the last character of the truncated text. */
1267      noEllipsis  : []
1268    }
1269  });
1270}
1271
1272
1273
1274
1275
1276//
1277$(function() {
1278  $("#tour-comfort-date")
1279      .datepicker({
1280        numberOfMonths: [1, 2],
1281        format: 'dd.mm.yyyy',
1282        autoclose: true,
1283        language: 'ru'
1284      });
1285
1286  // switch to 1 month
1287  var debounce;
1288  $(window).resize(function() {
1289    clearTimeout(debounce);
1290    if ($(window).width() < 641) {
1291      debounce = setTimeout(function() {
1292        debounceDatepicker(1);
1293      }, 250);
1294    } else {
1295      debounce = setTimeout(function() {
1296        debounceDatepicker(2);
1297      }, 250);
1298    }
1299  }).trigger('resize');
1300
1301  function debounceDatepicker(no) {
1302    $("#tour-comfort-date").datepicker("option", "numberOfMonths", no);
1303  }
1304
1305  $('#pickComfortDate').click(function (e) {
1306    if ( $('#tour-comfort-date').datepicker( "widget" ).is(":visible")) {
1307      $('#tour-comfort-date').datepicker("hide");
1308    } else {
1309        $('#tour-comfort-date').datepicker("show");
1310    }
1311    e.preventDefault();
1312
1313    var headerText = $(this).data("header");
1314    $(".ui-datepicker").attr('data-header', headerText);
1315  });
1316});
1317
1318
1319//
1320$(function() {
1321  /*$("#tour-another-date")
1322  .datepicker({
1323    numberOfMonths: 1,
1324    format: 'dd.mm.yyyy',
1325    autoclose: true,
1326    language: 'ru'
1327  })
1328  .inputmask("dd.mm.yyyy", {"placeholder": "дд.мм.гггг"});*/
1329
1330  $('#pickAnotherDate').click(function (e) {
1331    $('#tour-comfort-date').datepicker("show");
1332    e.preventDefault();
1333
1334    var headerText = $(this).data("header");
1335    $(".ui-datepicker").attr('data-header', headerText);
1336  });
1337});
1338
1339////////// Smooth scroll /////////
1340$(document).ready(function(){
1341  var $root = $('html, body');
1342  $('a.btn-scroll').click(function(e) {
1343    e.preventDefault();
1344    $root.animate({
1345      scrollTop: $($.attr(this, 'href')).offset().top - 110}, 1000);
1346    return false;
1347  });
1348});
1349
1350// Cottage sticky side booking
1351function bookingSticky(){
1352  $(".cottage-booking-aside").stick_in_parent({
1353    parent: '.stick-parent',
1354    //recalc_every: 1,
1355    //bottoming: false,
1356    offset_top: $('.js-sticky-header') ? 70 : 0
1357  });
1358}
1359
1360function detachSticky() {
1361  if ($('body').innerWidth() < 769) {
1362    $(".cottage-booking-aside").trigger("sticky_kit:detach");
1363  }
1364}
1365
1366// tour-popups
1367function popupsSticky(){
1368  $(".tour-popups").stick_in_parent({
1369    parent: '.stick-parent',
1370    //recalc_every: 1,
1371    //bottoming: false,
1372    offset_top: $('.js-sticky-header') ? 70 : 0
1373  });
1374}
1375
1376function detachpopupsSticky() {
1377  if ($('body').innerWidth() < 769) {
1378    $(".tour-popups").trigger("sticky_kit:detach");
1379  }
1380}
1381
1382function cottageOptionsAccordion() {
1383  $('#cottage-accordion').find('.accordion-toggle').click(function(){
1384    $('#cottage-accordion').find('.accordion-toggle').not($(this)).removeClass("active");
1385    $(this).toggleClass("active");
1386    //Expand or collapse this panel
1387    $(this).next().slideToggle('fast').addClass("opened");
1388    //Hide the other panels
1389    $(".accordion-content").not($(this).next()).slideUp('fast').removeClass("opened");
1390  });
1391}
1392
1393
1394// ModalCaller
1395function modalCall(modalID, closeID) {
1396  var modal = document.getElementById(modalID);
1397  var close = document.getElementById(closeID);
1398
1399  if (typeof(modal) !== 'undefined' && modal !== null) {
1400    // When the user clicks on (x), close the modal
1401    close.onclick = function(e) {
1402      e.preventDefault();
1403      modal.style.display = "none";
1404    };
1405
1406    // When the user clicks anywhere outside of the modal, close it
1407    window.onclick = function(event) {
1408      if (event.target === modal) {
1409        modal.style.display = "none";
1410      }
1411    };
1412  }
1413}
1414
1415 // fotorama gallery in article
1416 $(function() {
1417     // 1. Initialize fotorama manually.
1418     try {
1419         $('.fotorama').each(function() {
1420             var $wrapper = $(this);
1421
1422             var $fotoramaDiv = $wrapper.fotorama();
1423
1424             // 2. Get the API object.
1425
1426             var fotorama = $fotoramaDiv.data('fotorama');
1427             $wrapper.siblings('.gallery__text').text(fotorama.data[fotorama.activeIndex].description);
1428             $wrapper.siblings('.gallery__copy').text(fotorama.data[fotorama.activeIndex].copy);
1429
1430             // 3. Inspect it in console.
1431             $wrapper.on('fotorama:showend', function(e, fotorama) {
1432                 $wrapper.siblings('.gallery__text').text(fotorama.data[fotorama.activeIndex].description);
1433                 $wrapper.siblings('.gallery__copy').text(fotorama.data[fotorama.activeIndex].copy);
1434             });
1435         });
1436     } catch (err) {
1437         //console.log(err);
1438     }
1439
1440
1441 });
1442// Cottages sort
1443$('.cottages-sort').find('.cottages-sort__link').click(function(e){
1444  // e.preventDefault();
1445  $(this).addClass('cottages-sort__link--active');
1446  $(this).toggleClass('cottages-sort__link--up');
1447  $('.cottages-sort').find('.cottages-sort__link').not(this).removeClass('cottages-sort__link--active');
1448});
1449
1450$(document).ready(function() {
1451  $('.popup-with-form').magnificPopup({
1452    type: 'inline',
1453    preloader: false,
1454    focus: '#name',
1455
1456    // When elemened is focused, some mobile browsers in some cases zoom in
1457    // It looks not nice, so we disable it:
1458    callbacks: {
1459      beforeOpen: function() {
1460        if($(window).width() < 700) {
1461          this.st.focus = false;
1462        } else {
1463          this.st.focus = '#name';
1464        }
1465      }
1466    }
1467  });
1468});
1469
1470
1471$(document).ready(function() {
1472  resizebox400();
1473  resizeboxes500();
1474  removeParent();
1475  toggleMobWrap();
1476  addParent();
1477  reviewsSlider();
1478  addEllipsis();
1479  bookingSticky();
1480  //detachSticky();
1481  cottageOptionsAccordion();
1482  // modalCall('subscribe-modal', 'subscribe-modal-close');
1483  // modalCall('subscribe-modal-success', 'subscribe-modal-suc-close');
1484  // modalCall('modal-subscribe-cat', 'modal-subscribe-cat-close');
1485  // modalCall('modal-subscribe-cat-success', 'modal-subscribe-cat-success-close');
1486  resizebox600();
1487  resizeboxes530();
1488  resizeboxes635();
1489  popupsSticky();
1490  detachpopupsSticky();
1491  $("#small-book-phone, #tour-book1-phone, #tour-book2-phone, #tour-book3-phone, #tour-book4-phone, #tour-book5-phone").inputmask({"mask": "+7(999) 999-9999"});
1492});
1493
1494$(window).resize(function() {
1495  resizebox400();
1496  resizeboxes500();
1497  removeParent();
1498  toggleMobWrap();
1499  addParent();
1500  //bookingSticky();
1501  //detachSticky();
1502  addEllipsis();
1503  resizebox600();
1504  resizeboxes530();
1505  resizeboxes635();
1506  detachpopupsSticky();
1507});

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.