(function ($){
"use strict";
function preloader(){
$('#preloader').delay(0).fadeOut();
};
$(window).on('load', function (){
preloader();
wowAnimation();
aosAnimation();
tg_title_animation();
});
var urlField=$('input[name="page_url"]');
if(urlField.length){
urlField.val(window.location.href);
}
if($('.menu-area li.menu-item-has-children ul').length){
$('.menu-area .navigation li.menu-item-has-children').append('<div class="dropdown-btn"><span class="fas fa-angle-down"></span></div>');
}
if($('.mobile-menu').length){
var mobileMenuContent=$('.menu-area .main-menu').html();
$('.mobile-menu .menu-box .menu-outer').append(mobileMenuContent);
$('.mobile-menu li.menu-item-has-children .dropdown-btn').on('click', function (){
$(this).toggleClass('open');
$(this).prev('ul').slideToggle(300);
});
$('.mobile-nav-toggler').on('click', function (){
$('body').addClass('mobile-menu-visible');
});
$('.menu-backdrop, .mobile-menu .close-btn').on('click', function (){
$('body').removeClass('mobile-menu-visible');
});
}
$(window).on('scroll', function (){
var scroll=$(window).scrollTop();
if(scroll < 245){
$("#sticky-header").removeClass("sticky-menu");
$('.scroll-to-target').removeClass('open');
$("#header-fixed-height").removeClass("active-height");
}else{
$("#sticky-header").addClass("sticky-menu");
$('.scroll-to-target').addClass('open');
$("#header-fixed-height").addClass("active-height");
}});
if($('.scroll-to-target').length){
$(".scroll-to-target").on('click', function (){
var target=$(this).attr('data-target');
$('html, body').animate({
scrollTop: $(target).offset().top
}, 1000);
});
}
$(".header-search > a").on('click', function (){
$(".search-popup-wrap").slideToggle();
return false;
});
$(".search-close").on('click', function (){
$(".search-popup-wrap").slideUp(500);
});
$("[data-background]").each(function (){
$(this).css("background-image", "url(" + $(this).attr("data-background") + ")")
})
$("[data-bg-color]").each(function (){
$(this).css("background-color", $(this).attr("data-bg-color"));
});
$('.team-active').slick({
dots: false,
infinite: true,
speed: 1000,
autoplay: true,
arrows: true,
prevArrow: '<button type="button" class="slick-prev"><i class="fas fa-chevron-left"></i></button>',
nextArrow: '<button type="button" class="slick-next"><i class="fas fa-chevron-right"></i></button>',
appendArrows: ".team-nav",
slidesToShow: 3,
slidesToScroll: 1,
responsive: [
{
breakpoint: 1200,
settings: {
slidesToShow: 3,
slidesToScroll: 1,
infinite: true,
}},
{
breakpoint: 992,
settings: {
slidesToShow: 2,
slidesToScroll: 1
}},
{
breakpoint: 767,
settings: {
slidesToShow: 1,
slidesToScroll: 1,
arrows: false,
}},
{
breakpoint: 575,
settings: {
slidesToShow: 1,
slidesToScroll: 1,
arrows: false,
}},
]
});
$('.rel-product-slider-active').slick({
autoplay: true,
arrows: false,
dots: false,
infinite: true,
speed: 500,
slidesToShow: 4,
slidesToScroll: 1,
responsive: [
{
breakpoint: 1500,
settings: {
slidesToShow: 4,
slidesToScroll: 1,
infinite: true,
}},
{
breakpoint: 1200,
settings: {
slidesToShow: 3,
slidesToScroll: 1,
infinite: true,
arrows: false,
}},
{
breakpoint: 992,
settings: {
slidesToShow: 2,
slidesToScroll: 1,
arrows: false,
}},
{
breakpoint: 767,
settings: {
slidesToShow: 2,
slidesToScroll: 1,
arrows: false,
}},
{
breakpoint: 575,
settings: {
slidesToShow: 1,
slidesToScroll: 1,
arrows: false,
}},
]
});
$('.qtybutton-box span').on("click", function (){
var $input=$(this).parents('.num-block').find('input.in-num');
if($(this).hasClass('minus')){
var count=parseFloat($input.val()) - 1;
count=count < 1 ? 1:count;
if(count < 2){
$(this).addClass('dis');
}else{
$(this).removeClass('dis');
}
$input.val(count);
}else{
var count=parseFloat($input.val()) + 1
$input.val(count);
if(count > 1){
$(this).parents('.num-block').find(('.minus')).removeClass('dis');
}}
$input.change();
return false;
});
if(!!window.IntersectionObserver){
let observer=new IntersectionObserver((entries, observer)=> {
entries.forEach(entry=> {
if(entry.isIntersecting){
entry.target.classList.add("active-animation");
observer.unobserve(entry.target);
}});
}, {
rootMargin: "0px 0px -100px 0px"
});
document.querySelectorAll('.has-animation').forEach(block=> {
observer.observe(block)
});
}else{
document.querySelectorAll('.has-animation').forEach(block=> {
block.classList.remove('has-animation')
});
}
$('.popup-image').magnificPopup({
type: 'image',
gallery: {
enabled: true
}});
$('.popup-video').magnificPopup({
type: 'iframe'
});
function wowAnimation(){
var wow=new WOW({
boxClass: 'wow',
animateClass: 'animated',
offset: 0,
mobile: false,
live: true
});
wow.init();
}
$(document).ready(function(){
$('#show-more').click(function(){
var $shortText=$('.short-text');
if($shortText.hasClass('expanded')){
$shortText.removeClass('expanded');
$shortText.css('max-height', '290px');
$(this).text('Показать больше');
$(this).removeClass('open')
}else{
$shortText.addClass('expanded');
$shortText.css('max-height', 'none');
$(this).text('Скрыть');
$(this).addClass('open')
}
return false;
});
});
function aosAnimation(){
AOS.init({
duration: 1000,
mirror: true,
once: true,
disable: 'mobile',
});
}
const resultSliderEl=document.querySelector('#results-slider');
const resultSlider=new Swiper('#results-slider', {
slidesPerView: 1,
spaceBetween: 30,
pagination: {
el: '.swiper-pagination',
clickable: true,
},
breakpoints: {
768: {
slidesPerView: 2,
spaceBetween: 30,
},
}});
document.addEventListener('DOMContentLoaded', ()=> {
const dropdowns=document.querySelectorAll('.cleaning-dropdown');
const forms=document.querySelectorAll('.cleaning-form');
dropdowns.forEach((dropdown)=> {
const input=dropdown.querySelector('input[name="service"]'
);
const options=dropdown.querySelectorAll('.cleaning-dropdown-option'
);
if(!input){
return;
}
dropdown.addEventListener('click', (event)=> {
event.stopPropagation();
dropdowns.forEach((otherDropdown)=> {
if(otherDropdown!==dropdown){
otherDropdown.classList.remove('active');
}});
dropdown.classList.toggle('active');
});
options.forEach((option)=> {
option.addEventListener('click', (event)=> {
event.stopPropagation();
input.value=option.textContent.trim();
input.dispatchEvent(new Event('change', {
bubbles: true
})
);
dropdown.classList.remove('active');
});
});
});
document.addEventListener('click', ()=> {
dropdowns.forEach((dropdown)=> {
dropdown.classList.remove('active');
});
});
forms.forEach((form)=> {
const phoneInput=form.querySelector('input[name="phone"]'
);
const serviceInput=form.querySelector('input[name="service"]'
);
const submitButton=form.querySelector('button[type="submit"]'
);
if(serviceInput&&!serviceInput.value.trim()){
serviceInput.value='Услуги клининга';
}
const urlParams=new URLSearchParams(
window.location.search
);
const utmFields=[
'utm_source',
'utm_medium',
'utm_campaign',
'utm_term',
'utm_content'
];
utmFields.forEach((fieldName)=> {
const field=form.querySelector(`input[name="${fieldName}"]`
);
if(!field){
return;
}
const urlValue=urlParams.get(fieldName);
const cookieValue=getCookie(fieldName);
field.value=urlValue||cookieValue||'';
if(urlValue){
setCookie(fieldName, urlValue, 30);
}});
form.addEventListener('submit', (event)=> {
const phone=phoneInput
? phoneInput.value.trim()
: '';
const service=serviceInput
? serviceInput.value.trim()
: '';
const phoneDigits=phone.replace(/\D/g, '');
if(phoneDigits.length < 9){
event.preventDefault();
alert('Введите корректный номер телефона.');
if(phoneInput){
phoneInput.focus();
}
return;
}
if(!service){
event.preventDefault();
alert('Выберите необходимую услугу.');
dropdowns.forEach((dropdown)=> {
dropdown.classList.remove('active');
});
const currentDropdown=form.querySelector('.cleaning-dropdown'
);
if(currentDropdown){
currentDropdown.classList.add('active');
}
return;
}
if(submitButton){
submitButton.disabled=true;
submitButton.textContent='Отправляем...';
}});
});
function setCookie(name, value, days){
const expires=new Date();
expires.setTime(expires.getTime() + days * 24 * 60 * 60 * 1000
);
document.cookie =
`${encodeURIComponent(name)}=` +
`${encodeURIComponent(value)};` +
`expires=${expires.toUTCString()};` +
`path=/;SameSite=Lax`;
}
function getCookie(name){
const cookieName=`${encodeURIComponent(name)}=`;
const cookies=document.cookie.split(';');
for (const cookieItem of cookies){
const cookie=cookieItem.trim();
if(cookie.startsWith(cookieName)){
return decodeURIComponent(
cookie.substring(cookieName.length)
);
}}
return '';
}});
const phoneMaskOption={
mask: '+{998} 00 000 00 00',
lazy: false
};
document.querySelectorAll('input[name="phone"]').forEach((phoneInput)=> {
const form=phoneInput.closest('form');
if(!form){
return;
}
const submitBtn=form.querySelector('button[type="submit"], input[type="submit"]');
if(!submitBtn){
return;
}
const phoneMask=IMask(phoneInput, phoneMaskOption);
function validatePhone(){
submitBtn.disabled=phoneMask.unmaskedValue.length!==12;
}
phoneMask.on('accept', validatePhone);
validatePhone();
});
})(jQuery);