;(function($) {
	
	var $win = $(window),
		$html = $(document.documentElement),
		$htmlLang = $html.attr('lang')
		$doc = $(document),
		lp_template = {};
		
	window.lp_template = lp_template;
	
	lp_template.matchHeightArrayElements = [
		'.horizontal_blocks .service-item .service-desc-block .service-title', '.horizontal_blocks .service-item .service-desc-block .service-desc', '.products-with-pic--theme9 .product .bottom-part .title', '.products-with-pic--theme9 .product .bottom-part .text', '.tariff-blocks_block-height', '.txt_bl3_wrapper_txt_item_text', '.clients_slider .cl_item', '.tariffs_wrapper .tariff .price_wr',  '.tariffs_wrapper .tariff .price_wr .pr_title', '.tariffs_wrapper .tariff .title', '.tariffs_wrapper .tariff .text'
	];
	
	lp_template.youTubeBackground = function () {
		if (this.length) {
			this.tubular();
		}
	}
	
	lp_template.datepicker = function() {
		this.datepicker({
			minDate: new Date(),
			autoClose: true
		});
	}
	
	lp_template.dropdownMenu = function() {
		
		if (this.length) {
			this.s3MenuAllIn({
				type: 'bottom',
				showTime: 250,
				hideTime: 250,
				activateTimeout: 250
			});  
		}
	}
	
	lp_template.datepicker_range = function() {
		this.datepicker({
			minDate: new Date(),
			range: true,
			multipleDatesSeparator: ' - '
		});
	}
	
	lp_template.tabsWithSlider = function() {
		
		// ToDo: Чуток потом переписать табы. То, что сейчас не канает!
		
		this.each(function(){
			var $tabsWrap = $(this),
				$tabsItems = $tabsWrap.find('li'),
				$tabsBoxes = $tabsWrap.closest('.tabs_block').find('.box'),
				tabsCountTotal = $tabsItems.length,
				tabsWrapWidth = $tabsWrap.width(),
				tabsWidth = 0,
				tabAverage, tabsCountInWrap;
				
			$tabsItems.each(function() {
				tabsWidth += $(this).outerWidth();
			});
			
			tabAverage = tabsWidth / tabsCountTotal;
			tabsCountInWrap = Math.floor(tabsWrapWidth / tabAverage);
			
			if (tabsWrapWidth <= tabsWidth) {
				$tabsWrap.slick({
					infinite: false,
					variableWidth: true,
					slidesToShow: tabsCountInWrap
				});
			}
			
			$tabsWrap.on('click', 'li', function() {
				var $this = $(this);
				if ($this.hasClass('active')) return;
				
				$tabsItems.removeClass('active opened');
				$this.addClass('active opened');
				$tabsBoxes.removeClass('open_tab').eq($this.index()).show();
			});
			
		});
	};
	
	lp_template.clientSlider = function() {
		this.each(function(){
			var $this = $(this);
			
			$this.owlCarousel({
				loop: true,
				margin: 0,
				nav: true,
				dots: false,
				smartSpeed: 600,
				autoplay: true,
				autoHeight: false,
				responsive: {
					0: {
						items: 1
					},

					480: {
						items: 2
					},
					700: {
						items: 3
					},
					980: {
						items: 4
					}
				}
			});
		});
	}
	
	lp_template.wordsTimer = {
		days: ($htmlLang == 'en') ? 'days' : ($htmlLang == 'de') ? 'Tage' : ($htmlLang == 'es') ? 'dias' : 'Дни',
		hours: ($htmlLang == 'en') ? 'hours' : ($htmlLang == 'de') ? 'stunden' : ($htmlLang == 'es') ? 'horas' :  'часы',
		minutes: ($htmlLang == 'en') ? 'minutes' : ($htmlLang == 'de') ? 'minuten' : ($htmlLang == 'es') ? 'minutos' :  'минуты',
		seconds: ($htmlLang == 'en') ? 'seconds' : ($htmlLang == 'de') ? 'sekunden' : ($htmlLang == 'es') ? 'Sekunden' :  'секунды'
	};

	lp_template.firstTimer = function() {
		var tw = lp_template.wordsTimer;

		this.timer({
			format_in: '%d.%M.%y %h:%m',
			format_out: '<div class="timePart">%d<span>' + tw.days + '</span></div><span class="colon">:</span><div class="timePart">%h<span>' + tw.hours + '</span></div><span class="colon">:</span><div class="timePart">%m<span>' + tw.minutes + '</span></div><span class="colon">:</span><div class="timePart">%s<span>' + tw.seconds + '</span></div>',
			onEnd: function() {
				this.closest('.timeBlock').hide();
			}
		});
	}

	lp_template.secondTimer = function() {
		var tw = lp_template.wordsTimer;

		this.timer({
			format_in: '%d.%M.%y %h:%m',
			format_out: '<div class="timePart">%d<span>' + tw.days + '</span></div><span class="colon">:</span><div class="timePart">%h<span>' + tw.hours + '</span></div><span class="colon">:</span><div class="timePart">%m<span>' + tw.minutes + '</span></div><span class="colon">:</span><div class="timePart">%s<span>' + tw.seconds + '</span></div>',
			onEnd: function() {
				this.hide().closest('.bot_timer_block').find('.bot_timer_title').hide();
			}
		});
	}
	
	lp_template.tariffSlider = function() {
		this.each(function(){
			var $self = $(this);
			
			if (!$self.closest('.tariffs_wrapper').data('noinit')) {
				resizeController([0, 979], function() {
					$self.owlCarousel({
						loop: true,
						margin: 20,
						nav: true,
						dots: true,
						smartSpeed: 600,
						center: true,
						items: 3,
						autoWidth: true,
						autoplay: $self.data('loop') == 'false' ? false : true,
						autoHeight: false,
						responsive: {
							0: {
								margin: 7
							},

							380: {
								margin: 20
							}
						}
					});
				});
	
				resizeController([980, Infinity], function() {
					$self.trigger('destroy.owl.carousel').removeClass('owl-carousel owl-loaded');
				});
			}
		});
	}
	
	lp_template.matchHeight = function (inFuncInit) {
		var self = this;
		for (var i = 0; i < self.length; i++) {
			if (inFuncInit) {
				inFuncInit.find(self[i]).matchHeight();
			} else {
				$(self[i]).matchHeight();
			}
		}
	};
	
	lp_template.lightGallery = function(selector, loop){
		if (!this.hasClass('no-init-lightgallery')) {
			this.lightGallery({
				thumbnail: false,
				download: false,
				loop: loop || false,
				selector: selector || ''
			});
		}
	}
	lp_template.buttonTop = function(){
		var self = this;
		
		self.on('click', function(e) {
			e.preventDefault();
			
			$('html, body').animate({
				scrollTop: 0
			});
		});
		
		function buttonToggleShow () {
			var documentScrollTop = $doc.scrollTop(),
				meta;
			if (documentScrollTop > 200 && meta != 'show') {
				self.addClass('show');
				meta = 'show';
			} else if (documentScrollTop < 201 && meta != 'hide') {
				self.removeClass('show');
				meta = 'hide';
			}
		}
		
		$win.on('scroll', buttonToggleShow);
	}

	lp_template.phone_mask = function() {
		this.mask("+7 (999) 999-99-99");
	}

	lp_template.oneLineMenuInit = function(minWidth, left) {
		var thisMinWidth = minWidth || 640,
			thisLeft = left || -25;

		this.oneLineMenu({
			left: thisLeft,
			minWidth: thisMinWidth
		});
	}
	
	lp_template.photoSliderWithPreview = function(){
		
		this.each(function() {

			var $this = $(this),
				$pictureSlider = $this.find('.gallery-with-preview_Slider'),
				pictureSliderAutoplay = $pictureSlider.data('autoplay'),
				$pagers = $this.find('.gallery-with-preview_Pager'),
				$pagersChild = $pagers.find('.gallery-with-preview_pagerElement'),
				sliderOptions = {
					items: 3,
					loop: true,
					nav: true,
					dots: false,
					navSpeed: 500,
					responsive: {
						601 : {
							items: 4,
							loop: true,
							nav: true,
							dots: false,
							navSpeed: 500
						},
						951: {
							items: 1,
							loop: true,
							nav: true,
							dots: false,
							navSpeed: 500
						}
					}
				},
				modeResize;
				
			var picSlider = $pictureSlider.bxSlider({
				controls: false,
				touchEnabled: false,
				pager: false,
				auto: pictureSliderAutoplay ? true : false,
				mode: 'fade'
			});
				
			function resizePhotoGallery(){
				
				if ($win.width() < 951 && modeResize != 'phone') {
					
					if ($pagersChild.length > 3) {
						$pagers.trigger('destroy.owl.carousel');
						$pagersChild.unwrap();
						$pagers.owlCarousel(sliderOptions);
					}
					modeResize = 'phone'
					
				} else if ($win.width() >= 951 && modeResize != 'pc') {
					
					if ($pagersChild.length > 8) {
						$pagers.trigger('destroy.owl.carousel');
						
						var pagersChildDOM = $pagersChild.get();
						if (modeResize == 'phone') {
							for(var i = 0; i < $pagersChild.length; i += 8){
							    $(pagersChildDOM.slice(i, i+8)).wrapAll('<div></div>');
							}
						}
						
						$pagers.owlCarousel(sliderOptions);
					}
					
					modeResize = 'pc'
				}
			}

			$this.on("click", '.gallery-with-preview_pagerElement', function(event) {
				event.preventDefault();
				
				var $this = $(this),
					thisDataIndex = $this.data('slide-index');

				$pagersChild.removeClass('shadow');
				$this.addClass('shadow');
				picSlider.goToSlide(thisDataIndex);
			});
			
			$win.on('resize', resizePhotoGallery);
			
		});
	}
	
	lp_template.productSlider = function() {
		
		var slickSlider = this.find('.one-good-form_productSlider'),
			slickNav = this.find('.one-good-form_pager-wrap');
			
		if (slickSlider.length) {
			slickSlider.slick({
				slidesToShow: 1,
				slidesToScroll: 1,
				arrows: false,
				fade: true,
				asNavFor: slickNav
			});
		}

		if (slickNav.length) {
			slickNav.slick({
				infinite: true,
				slidesToShow: 3,
				slidesToScroll: 1,
				asNavFor: slickSlider,
				dots: false,
				autoplay: false,
				autoplaySpeed: 1500,
				centerMode: false,
				vertical: true,
				focusOnSelect: true,
				responsive: [{
						breakpoint: 940,
						settings: {
							slidesToShow: 4,
							vertical: true,
							centerMode: false
						}
					},

					{
						breakpoint: 750,
						settings: {
							vertical: false,
							slidesToShow: 4,
							centerMode: false

						}
					}, {
						breakpoint: 721,
						settings: {
							slidesToShow: 3,
							vertical: false,
							centerMode: false,
							infinite: true
						}
					}, {
						breakpoint: 450,
						settings: {
							slidesToShow: 4,
							vertical: false,
							centerMode: false,
							infinite: true,
						}
					}, {
						breakpoint: 400,
						settings: {
							slidesToShow: 3,
							slidesToScroll: 1,
							vertical: false,
							infinite: true,

						}
					}

				]
			});
		}
	};

	lp_init = function(block_wrapper) {

		var isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),
			IOs = /iPhone|iPad|iPod/i.test(navigator.userAgent),
			iOs = /iPhone|iPad|iPod/i.test(navigator.userAgent),
			clickEvent = iOs ? 'touchend' : 'click';

		// Menu

		(function() {

			var menuFirst = block_wrapper.find('.menuDesktop__menuTop'),
				menuSecond = block_wrapper.find('.top-menu-two'),
				menuThird = block_wrapper.find('.top-menu-five');

			if (menuSecond.length) {
				if (typeof lp_template.oneLineMenuInit == 'function') {
					lp_template.oneLineMenuInit.call(menuSecond);
				}

				menuSecond.menuLP();

			}

			if (menuThird.length) {
				if (typeof lp_template.oneLineMenuInit == 'function') {
					lp_template.oneLineMenuInit.call(menuThird, 740);
				}

				menuThird.menuLP();
			}

			if (menuFirst.length) {
				if (typeof lp_template.oneLineMenuInit == 'function') {
					lp_template.oneLineMenuInit.call(menuFirst, 1023, -160);
				}

				menuFirst.menuLP({
					menuHeight: 49,
					fixedClass: 'fixed',
					fixedMenuElement: '.menu_wrapper'
				});

				menuFirst.on('click', 'a', function() {
					$(this).closest('[data-block-layout]').find('.menuDesktop').removeClass('opened');
					$('html').removeClass('overFlow');
				});
			}

		})();

		// Menu End
		
		(function() {
			var newWin = '';
			block_wrapper.find('.js-close-popup-map-key').on('click', function(e) {
				e.preventDefault();
				$(this).closest('.not-map-key').hide();
			});
			
			block_wrapper.find('.not-map-key div a').on('click', function(e) {
				e.preventDefault();
				newWin = window.open();
				newWin.location = this.href;
				newWin.focus();
			});
		})();

		if (typeof lp_template.youTubeBackground == 'function') {
			lp_template.youTubeBackground.call(block_wrapper.find('[id^=video-player-block]'));
		}

		block_wrapper.find('.multy_blocks .service-desc-block .buy-button').goodNameForForm({
			parent: '.service-desc-block',
			title: '.service-title'
		});

		block_wrapper.find('.tariffs_wrapper .tariff .tariff_but .tariff_form').goodNameForForm({
			parent: '.tariff',
			title: '.title'
		});

		block_wrapper.find('.one-good-wrapper .good-desc-block .buy-good').goodNameForForm({
			parent: '.good-desc-block',
			title: '.good-title'
		});

		block_wrapper.find('.one-good-icon__list .one-good-icon__buy').goodNameForForm({
			parent: '.one_good_wrap',
			title: '.one-good-icon__title'
		});

		block_wrapper.find('.one-good-horizontal__wrapper .buy-good').goodNameForForm({
			parent: '.one-good-horizontal__wrapper',
			title: '.good-title'
		});

		block_wrapper.find('.products--theme9 .button a').goodNameForForm({
			parent: '.product-inner',
			title: '.name'
		});

		block_wrapper.find('.products-with-pic--theme9 .button a').goodNameForForm({
			parent: '.bottom-part',
			title: '.title'
		});

		block_wrapper.find('.only-one-product .button a').goodNameForForm({
			parent: '.text-part',
			title: '.title'
		});
		
		block_wrapper.find('.tariff-blocks_wrapper .button').goodNameForForm({
			parent: '.block',
			title: '.tariff-name'
		});
		
		block_wrapper.find('.horizontal_blocks .service-desc-block .order').goodNameForForm({
			parent: '.service-desc-block',
			title: '.service-title'
		});
		
		block_wrapper.find('.mirrored-products_wrapper .text-part .button').goodNameForForm({
			parent: '.text-part',
			title: '.subtitle'
		});

		block_wrapper.find('.one-good-form .productSlider').slick({
			slidesToShow: 1,
			slidesToScroll: 1,
			arrows: false,
			fade: true,
			asNavFor: '.pager-wrap'
		});

		if (typeof lp_template.buttonTop == 'function') {
			lp_template.buttonTop.call(block_wrapper.find('.link-top'));
		}

		/*one-good-form BEGIN*/


		var slickSlider = block_wrapper.find('.one-good-form_productSlider'),
			slickNav = block_wrapper.find('.one-good-form_pager-wrap');


		if (typeof lp_template.productSlider == 'function' && block_wrapper.find('.one-good-form_wrapper').length) {
			lp_template.productSlider.call(block_wrapper.find('.one-good-form_wrapper'));
		}


		block_wrapper.find('.one-good-form_inner .button').on(IOs ? "touchend" : "click", function() {
			$(this).closest('.one-good-form_inner').find('.tpl-anketa-popup').addClass('expand');
		});

		block_wrapper.find(".one-good-form_inner .tpl-anketa_close").on(IOs ? "touchend" : "click", function() {
			$(this).closest(".one-good-form_inner").find(".tpl-anketa-popup").removeClass("expand");
		});

		block_wrapper.find('.one-good-form2_inner .button').on(IOs ? "touchend" : "click", function() {
			$(this).closest('.one-good-form2_inner').find('.tpl-anketa-popup').addClass('expand');
		});

		block_wrapper.find(".one-good-form2_inner .tpl-anketa_close").on(IOs ? "touchend" : "click", function() {
			$(this).closest(".one-good-form2_inner").find(".tpl-anketa-popup").removeClass("expand");
		});

		$(document).on(IOs ? "touchend" : "click", function(formClose) {
			if ($(formClose.target).closest('.tpl-anketa_wrap').length || $(formClose.target).closest('.button').length || $(formClose.target).closest('input').length) {
				return
			} else {
				$('.tpl-anketa-popup').removeClass('expand');
			}
		});

		$(this).keydown(function(eventObject) {
			if (eventObject.which == 27)
				$(".tpl-anketa-popup").removeClass("expand");
		});

		/*one-good-form END*/



		block_wrapper.on(IOs ? "touchend" : "click", '.faq_ver2 .button_read', function() {
			$(this).removeClass('active');
			$(this).siblings('.button_hide').addClass('active');
			$(this).parent().prev('.faq-item_text').slideToggle(200);
			$(this).closest('.faq-item').addClass('shadow');
		});


		block_wrapper.on(IOs ? "touchend" : "click", '.faq_ver2 .button_hide', function() {
			$(this).removeClass('active');
			$(this).siblings('.button_read').addClass('active');
			$(this).parent().prev('.faq-item_text').slideToggle(200);
			$(this).closest('.faq-item').removeClass('shadow');
		});

		block_wrapper.find(".popup_video_block_wrap").lightGallery({
			thumbnail: false,
			download: false,
			loop: false,
			zoom: false,
			actualSize: false,
			selector: '.button',
			youtubePlayerParams: {
				autoplay: 0,
				modestbranding: 1,
				showinfo: 0,
				rel: 0
			},
			vimeoPlayerParams: {
				byline: 0,
				portrait: 0,
				color: 'A90707'
			}
		});

		if (typeof(lp_template.photoSliderWithPreview) == 'function') {
			lp_template.photoSliderWithPreview.call(block_wrapper.find('.gallery-with-preview'));
		}

		//TABS with slider BEGIN


		if (block_wrapper.find('.tabs-block_wrap_tabs').length && typeof lp_template.tabsWithSlider == 'function') {
			lp_template.tabsWithSlider.call(block_wrapper.find('.tabs-block_wrap_tabs'));
		}

		//TABS with slider END


		//Contacts with map, text and image BEGIN

		block_wrapper.find(".multy_offices_map_button").on(IOs ? "touchend" : "click", function() {
			block_wrapper.find(".multy_offices_map-wrap").addClass("expand");
		});

		block_wrapper.find(".multy_offices_map_close").on(IOs ? "touchend" : "click", function() {
			block_wrapper.find(".multy_offices_map-wrap").removeClass("expand");
		});

		$(this).keydown(function(eventObject) {
			if (eventObject.which == 27)
				block_wrapper.find(".multy_offices_map-wrap").removeClass("expand");
		});

		//Contacts with map, text and image END



		resizeController([650, Infinity], function() {
			setTimeout(function() {
				var mainDivs = block_wrapper.find(".multy_blocks_block-height");
				var maxHeight = 0;
				for (var i = 0; i < mainDivs.length; ++i) {
					if (maxHeight < $(mainDivs[i]).height()) {
						maxHeight = $(mainDivs[i]).height();
					}
				}
				for (var i = 0; i < mainDivs.length; ++i) {
					$(mainDivs[i]).height(maxHeight);
				}
			}, 100);
		});

		block_wrapper.find('.menu-button-two').on(IOs ? 'touchend' : 'click', function() {
			block_wrapper.find('.menu-fixed-two').addClass('animit').addClass('opened');
			$html.addClass('overflowHidden');
		});

		block_wrapper.find('.menu-close-two').on(IOs ? 'touchend' : 'click', function() {
			block_wrapper.find('.menu-fixed-two').removeClass('opened');
			$html.removeClass('overflowHidden');
		});

		$doc.on(IOs ? 'touchend' : 'click', function(e) {
			if ($(e.target).closest('.menu-button-two, .menu-fixed-two, .popover-body, .datepickers-container').length) return;

			block_wrapper.find('.menu-fixed-two').removeClass('opened');
			$html.removeClass('overflowHidden');
		});

		block_wrapper.find('table').wrap('<div class="table-wrapper"></div>');


		block_wrapper.find('.arrow-down').on(IOs ? "touchend" : "click", function() {
			var blockPosition = $(this).closest('.sale-block-two, .sale-block-three').offset().top,
				blockHeight = $(this).closest('.sale-block-wrapper').height(),
				newScroll = blockPosition + blockHeight;

			$('html, body').animate({
				scrollTop: newScroll
			}, 850);

		});


		setTimeout(function() {
			block_wrapper.find('[data-api-type=popup-form]').on(clickEvent, function(e) {
				var $this = $(this);

				if (myo.show) {
					myo.show({
						json: $this.data('api-url'),
						onContentLoad: function(w) {
							s3LP.initForms($(this.bodyDiv));
						},
						afterOpen: function() {
							$('html').addClass('overflowHidden');
							if (iOs) {
								$('body').addClass('overflowHidden')
							}
						},
						afterClose: function() {
							$('html, body').removeClass('overflowHidden');
						}
					});
				} else if (myo.open) {
					myo.open({
						json: $this.data('api-url'),
						onLoad: function(w) {
							s3LP.initForms($(this.bodyDiv));
						},
						afterOpen: function() {
							$('html').addClass('overflowHidden');
							if (iOs) {
								$('body').addClass('overflowHidden')
							}
						},
						afterClose: function() {
							$('html, body').removeClass('overflowHidden');
						}
					});
				}
				e.preventDefault();
			});
		}, 200);

		block_wrapper.on('click', '.accordion .item .title', function() {
			$(this).toggleClass('opened');
			$(this).next().slideToggle();
		});

		block_wrapper.find('.burger_button').on('click', function(menu) {
			$(this).closest('.top_block_wrapper').find('.menuDesktop').addClass('animit opened');
			$('html').addClass('overFlow');
		});

		block_wrapper.find('.menu_close').on('click', function(menu) {
			block_wrapper.find('.menuDesktop').removeClass('opened');
			$('html').removeClass('overFlow');
		});

		$(document).on('click touchstart', function(menu) {
			if ($(menu.target).closest('.burger_button, .datepickers-container').length || $(menu.target).closest('.menuDesktop').length)
				return;
			block_wrapper.find('.menuDesktop').removeClass('opened');
			$('html').removeClass('overFlow');
		});

		if (block_wrapper.find('.menuDesktop__menuTop li').length < 1) {
			block_wrapper.find(".menu_wrapper_wr").hide();
			block_wrapper.find(".burger_button").hide();
		} else {
			block_wrapper.find(".menu_wrapper_wr").show();
			block_wrapper.find(".burger_button").show();
		};

		block_wrapper.find('.dropdown-wrap').prepend('<span></span><span></span><span></span>');

		$(window).resize(function() {
			block_wrapper.find('.dropdown-wrap').prepend('<span></span><span></span><span></span>');
		});

		if (block_wrapper.find('.time').length  && typeof lp_template.firstTimer == 'function') {
			lp_template.firstTimer.call(block_wrapper.find('.time'));
		}

		if (block_wrapper.find('.timer2').length  && typeof lp_template.secondTimer == 'function') {
			lp_template.secondTimer.call(block_wrapper.find('.timer2'));
		}
		
		if (typeof lp_template.tariffSlider == 'function') {
			lp_template.tariffSlider.call(block_wrapper.find('.tariffs'));
		}

		/* CLIENTS SLIDER */
		
		if (typeof lp_template.clientSlider == 'function') {
			lp_template.clientSlider.call(block_wrapper.find('.clients_slider'));
		}

		/* REVIEWS SLIDER */

		(function() {
			var reviews_slider = block_wrapper.find('.rev_slider');

			if (reviews_slider.length) {
				reviews_slider.each(function() {
					var $this = $(this),
						$thisSlidesCount = $this.find('.rev_slide').length,
						thisAutoplay = $this.data('autoplay'),
						thisSpeed = $this.data('speed'),
						thisPause = $this.data('pause');

					if ($thisSlidesCount > 1) {
						$this.owlCarousel({
							loop: true,
							margin: 0,
							nav: true,
							dots: true,
							smartSpeed: thisSpeed ? thisSpeed : 600,
							autoplay: thisAutoplay ? true : false,
							autoplayTimeout: thisPause ? thisPause : 5000,
							autoHeight: false,
							responsive: {
								0: {
									items: 1,
									autoHeight: true,
								},
								769: {
									items: 1,
									autoHeight: false
								}
							}
						});
					}
				});
			}

		})();

		if (block_wrapper.find('.rev_slider .rev_slide').length > 1) {
			block_wrapper.find('.rev_slider').owlCarousel({
				loop: true,
				margin: 0,
				nav: true,
				dots: true,
				smartSpeed: 600,
				autoplay: false,
				autoHeight: false,
				responsive: {
					0: {
						items: 1,
						autoHeight: true,
					},
					769: {
						items: 1,
						autoHeight: false
					}
				}
			});
		};

		/* REVIEWS SLIDER */

		(function() {
			var teamSlider = block_wrapper.find('.team_slider');

			if (teamSlider.length) {
				teamSlider.each(function() {
					var $this = $(this),
						desctopItems = $this.data('desctop') ? $this.data('desctop') : 4,
						thisSlidesItems = $this.find('.t_slide').length;

					if (thisSlidesItems > 1) {
						$this.owlCarousel({
							loop: true,
							margin: 0,
							nav: false,
							dots: true,
							items: 4,
							smartSpeed: 600,
							autoplay: true,
							autoHeight: false,
							responsive: {
								0: {
									items: 1
								},

								480: {
									items: 2
								},
								640: {
									items: 3
								},
								980: {
									items: 4
								},
								1200: {
									items: desctopItems
								}
							}
						});
					}
				});
			}
		})();
		
		//lp_template.dropdownMenu.call(block_wrapper.find('.js-dropdown-menu'));

		(function() {
			var sertBlock = block_wrapper.find('.sert_block-two');

			if (sertBlock.length) {
				sertBlock.each(function() {
					var $this = $(this),
						thisSlidesLength = $this.find('.sert').length;

					if (thisSlidesLength > 1) {
						console.log("slide>1");
						$this.owlCarousel({
							loop: false,
							nav: false,
							dots: true,
							smartSpeed: 600,
							autoplay: true,
							responsive: {
								0: {
									margin: 15,
									items: 2,
									autoWidth: false,
									center: true
								},

								480: {
									items: 2,
									margin: 15,
									autoWidth: false,
									center: false
								},

								640: {
									items: 3,
									margin: 16
								},

								768: {
									items: 4,
									margin: 20
								},

								940: {
									items: 5,
									margin: 20
								}
							}
						});
					}
				});
			}
		})();

		/* SERTIFICATES SLIDER */

		resizeController([0, 979], function() {
			if (block_wrapper.find('.sert_block .sert').length >= 1) {
				block_wrapper.find('.sert_block').owlCarousel({
					loop: false,
					nav: true,
					dots: true,
					smartSpeed: 600,
					autoplay: true,
					autoHeight: true,
					responsive: {
						0: {
							margin: 17,
							items: 3,
							autoWidth: true,
							center: true
						},

						480: {
							items: 2,
							margin: 15,
							autoWidth: false,
							center: false
						},

						640: {
							items: 3,
							margin: 16
						},

						768: {
							items: 4
						}
					}
				});
			};
		});


		(function() {
			var reviewsSlider = block_wrapper.find('.reviews-and-feedback_inner');

			if (reviewsSlider.length) {
				reviewsSlider.each(function() {
					var $this = $(this),
						thisSlidesLength = $this.find('.reviews-and-feedback-item').length;

					if (thisSlidesLength > 1) {
						$this.owlCarousel({
							items: 1,
							loop: true,
							nav: true,
							dots: false,
							autoHeight: true,
							navSpeed: 500
						});
					}
				});
			}
		})();

		block_wrapper.find('.show-map').on(IOs ? 'touchend' : 'click', function(event) {
			event.preventDefault();
			$(this).next('.map-inner').addClass('fixed');
			$('html').addClass('overflowHidden');
		});

		block_wrapper.find('.all-map a').on(IOs ? 'touchend' : 'click', function(event) {
			event.preventDefault();
			$(this).closest('.map-with-contacts-wrapper').find('.map-fixed').addClass('fixed');
			$('html').addClass('overflowHidden');
			$(window).trigger('resize');
		});

		block_wrapper.find('.close-map').on(IOs ? 'touchend' : 'click', function(event) {
			block_wrapper.find('.map-inner').removeClass('fixed');
			$('html').removeClass('overflowHidden');
		});

		block_wrapper.find('.close-map2').on(IOs ? 'touchend' : 'click', function(event) {
			block_wrapper.find('.map-fixed').removeClass('fixed');
			$('html').removeClass('overflowHidden');
		});

		resizeController([980, Infinity], function() {
			block_wrapper.find('.sert_block').trigger('destroy.owl.carousel').removeClass('owl-carousel owl-loaded');
			block_wrapper.find('.sert_block').find('.owl-stage-outer').children().unwrap();
		});

		/* GALLERY SLIDER */

		resizeController([0, 767], function() {

			block_wrapper.find('.gallery_but.inner').remove();

			if (block_wrapper.find('.gallery_block .gallery_pic').length >= 1) {
				block_wrapper.find('.gallery_block').owlCarousel({
					loop: true,
					nav: true,
					dots: true,
					autoWidth: true,
					smartSpeed: 600,
					items: 3,
					autoplay: true,
					autoHeight: true,
					center: true,
					responsive: {
						0: {
							margin: 10
						},

						480: {
							margin: 16
						}
					}
				});
			};
		});

		resizeController([768, Infinity], function() {
			block_wrapper.find('.gallery_block').trigger('destroy.owl.carousel').removeClass('owl-carousel owl-loaded');
			block_wrapper.find('.gallery_block').find('.owl-stage-outer').children().unwrap();
		});

		$doc.on(clickEvent, function(e) {
			if ($(e.target).closest('.one-screen .contacts-part').length) return;
			block_wrapper.find('.one-screen .contacts-part input[type="radio"]').removeAttr('checked');
		});
		
		if (typeof lp_template.matchHeight == 'function') {
			lp_template.matchHeight.call(lp_template.matchHeightArrayElements, block_wrapper);
		}

		if (typeof(lp_template.lightGallery) == 'function') {
			lp_template.lightGallery.call(block_wrapper.find(".horizontal-gallery"), '.horizontal-gallery .picture');
			lp_template.lightGallery.call(block_wrapper.find('.vertical-gallery'), '.vertical-gallery a');
			lp_template.lightGallery.call(block_wrapper.find(".gallery-with-preview_slider-wrap"), '.gallery-with-preview_img a');
			lp_template.lightGallery.call(block_wrapper.find('.good-img'), '.good-img a');
			lp_template.lightGallery.call(block_wrapper.find('.one-good-icon__img'), '.one-good-icon__img a');
			lp_template.lightGallery.call(block_wrapper.find('.pic-part'), '.pic-part a');
			lp_template.lightGallery.call(block_wrapper.find('.roundpic_inner'), '.roundpic-part a');
			lp_template.lightGallery.call(block_wrapper.find(".square-photo-blocks_inner"), '.square-photo-blocks_picture');
			lp_template.lightGallery.call(block_wrapper.find(".tabs-block_wrap_box"), '.box-inner .img_wrap a');
			lp_template.lightGallery.call(block_wrapper.find(".single-office_inner"), '.single-office_picture');
			lp_template.lightGallery.call(block_wrapper.find(".service-item"), '.service-img a');
			lp_template.lightGallery.call(block_wrapper.find('.gallery-inline'), '.item .pic a');
			lp_template.lightGallery.call(block_wrapper.find('.gallery_block'), 'div > a');
			lp_template.lightGallery.call(block_wrapper.find('.sert_wrap'), 'div > a');
		}
		
		$win.trigger('resize').trigger('scroll');
	}

	function coords(str) {
		return str.split(',');
	}
	
	function getInitGoogleMaps(options) {
		var map = new google.maps.Map(document.getElementById(options.id), {
			zoom: parseInt(options.zoom),
			scrollwheel: false,
			mapTypeId: options.mapTypeId ? options.mapTypeId : "roadmap",
			center: new google.maps.LatLng(options.center[0], options.center[1])
		});

		$(window).resize(function() {
			google.maps.event.trigger(mjsMap, 'resize');

			$('#' + options.id).parent().find('.close-map').on('click', function(event) {
				google.maps.event.trigger(mjsMap, 'resize');
			});

			$('#' + options.id).parent().find('.close-map2').on('click', function(event) {
				google.maps.event.trigger(mjsMap, 'resize');
			});
		});

		$('.all-map a').on('click', function(event) {
			setTimeout(function() {
				google.maps.event.trigger(mjsMap, 'resize');
			}, 100);
		});

		$.each(options.data, function(key, item) {

			var marker = new google.maps.Marker({
				position: new google.maps.LatLng(item.coords[0], item.coords[1]),
				map: map,
				title: item.name
			});

			var infowindow = new google.maps.InfoWindow({
				content: '<div class="baloon-content">' +
					'<h3 style="margin: 0; padding-bottom: 3px;">' + item.name + '</h3>' +
					item.desc +
					'</div>'
			});

			google.maps.event.addListener(marker, 'click', function() {
				infowindow.open(map, marker);
			});

		});
	}

	function init(options) {
		options.center = coords(options.center);

		$.each(options.data, function(key, item) {
			item.coords = coords(item.coords);
		});

		if (options.type == 'google') {
		
			try {
				google.maps.event.addDomListener(window, 'load', function() {
					getInitGoogleMaps(options);
				});
				console.log('try');
			} catch(e) {
				$.getScript('https://maps.googleapis.com/maps/api/js?v=3&key=AIzaSyDcmOwlMpHCyHSOca66rCjXMHNaeha4qIk', function() {
					google.maps.event.addDomListener(window, 'load', function() {
						getInitGoogleMaps(options);
					});
				});
				console.log('catch');
			}

		} else {

			ymaps.ready(function() {

				var map = new ymaps.Map(options.id, {
					center: options.center,
					zoom: options.zoom,
					behaviors: [options.behaviors, 'drag', 'rightMouseButtonMagnifier'],
				});

				map.controls.add(
					new ymaps.control.ZoomControl()
				);

				$(window).resize(function() {
					map.container.fitToViewport();

					$('#' + options.id).parent().find('.close-map').on('click', function(event) {
						map.container.fitToViewport();
					});

					$('#' + options.id).parent().find('.close-map2').on('click', function(event) {
						map.container.fitToViewport();
					});
				});

				var MyBalloonContentLayoutClass = ymaps.templateLayoutFactory.createClass(
					'<div class="baloon-content" style="padding: 0 10px;">' +
					'<h3 style="margin: 0;">$[properties.name]</h3>' +
					'<p>$[properties.desc]</p>' +
					'</div>'
				);

				var myCollection = new ymaps.GeoObjectCollection();

				$.each(options.data, function(key, item) {
					myCollection.add(new ymaps.Placemark(
						item.coords,
						item, {
							balloonContentLayout: MyBalloonContentLayoutClass
						}
					));
				});

				map.geoObjects.add(myCollection);

			});
		}
	}

	window.mjsMap = init;

})(jQuery);