$(document).ready(function () { // Маска для телефона $.mask.definitions['~'] = '[+-]'; $('.js-phone').mask('+7 (999) 999-9999'); const videos = document.querySelectorAll('video'); const playerInit = () => { const videoWrapper = document.createElement('div'); const playPause = document.createElement('div'); playPause.classList = 'controls play'; videoWrapper.classList = 'video play'; for (const video of videos) { video.parentNode.insertBefore(videoWrapper, video); videoWrapper.appendChild(video); videoWrapper.appendChild(playPause); const videoPlay = () => { video.play(); playPause.classList.remove('play'); playPause.classList.add('pause'); videoWrapper.classList.remove('play'); videoWrapper.classList.add('pause'); }; const videoPause = () => { video.pause(); playPause.classList.add('play'); playPause.classList.remove('pause'); videoWrapper.classList.add('play'); videoWrapper.classList.remove('pause'); }; playPause.addEventListener('click', () => { video.paused ? videoPlay() : videoPause(); }); video.addEventListener('play', videoPlay, false); video.addEventListener('pause', videoPause, false); } }; if (videos.length) playerInit(); // Вывод сообщения об успешной отправке в попапе $('.js-valid-form').each(function () { if (!$(this).hasClass('js-step')) { /*$(this).on('submit',function(e){ $.fancybox.close(); $.fancybox.open({ src : '#msg-success', type : 'inline', opts : { } }); $(this)[0].reset(); e.preventDefault(); });*/ } if ($('.js-select').length) { var $btnSubmit = $(this).find('input[type=submit]'); $btnSubmit.click(function () { var $curForm = $(this).parents('.js-valid-form'); $curForm.find('.js-select').each(function () { var attr = $(this).attr('required'); var selectVal = $(this).val(); var $chosenField = $(this) .next('.chosen-container') .find('.chosen-single'); if ( typeof attr !== typeof undefined && attr !== false && selectVal == '' ) { $chosenField.addClass('errorfield'); } else { $chosenField.removeClass('errorfield'); } }); }); } }); /*$('#twostep').on('submit', function(e){ e.preventDefault(); $.fancybox.close(); $.fancybox.open({ src : '#twostep-popup', type : 'inline', opts : { } }); $('input[name=form_text_1]').val($(this).find('input[name=marka]').val()); $('input[name=form_text_2]').val($(this).find('input[name=model]').val()); });*/ $('#calculate').on('submit', function (e) { e.preventDefault(); $.fancybox.close(); $.fancybox.open({ src: '#calculate-popup', type: 'inline', opts: {}, }); $('input[name=form_text_18]').val($(this).find('input[name=marka]').val()); $('input[name=form_text_19]').val($(this).find('input[name=model]').val()); }); $('.vacancies_modal').on('click', function () { console.log($(this).attr('data-name')); $('[name=form_text_10]').val($(this).attr('data-name')); }); $('.autoservices-tabs span').click(function function_name(argument) { var i = $(this).index(); $('.autoservices-tabs span').removeClass('active'); $(this).addClass('active'); $('.autoservices-items').removeClass('active'); $('.autoservices-items:eq(' + i + ')').addClass('active'); $('.autoservices-items span').removeClass('active'); $('.autoservices-items.active span:eq(0)').addClass('active'); $('.autoservices-items-content').removeClass('active'); $('.autoservices-items-content:eq(' + i + ')').addClass('active'); $('.autoservices-items-content ul').removeClass('active'); $('.autoservices-items-content:eq(' + i + ') ul:eq(0)').addClass('active'); }); $('.autoservices-items span').click(function () { $('.autoservices-items span').removeClass('active'); $(this).addClass('active'); var i = $(this).index(); var tabI = $('.autoservices-tabs span.active').index(); $('.autoservices-items-content ul').removeClass('active'); $('.autoservices-items-content:eq(' + tabI + ') ul:eq(' + i + ')').addClass( 'active' ); }); // Слйдер лого авто if (screenSize().x > 760) { if ($('.js-marks-slider').length) { var $marksSlider = $('.js-marks-slider'); $marksSlider.slick({ slidesToShow: 10, autoplay: true, arrows: true, autoplaySpeed: 7000, responsive: [ { breakpoint: 768, settings: { slidesToShow: 3, }, }, ], }); } } if ($('.cars-marks').length && screenSize().x > 600) { var $carsMarksSlider = $('.cars-marks'); $carsMarksSlider.slick({ slidesToShow: 8, arrows: true, autoplaySpeed: 7000, variableWidth: true, responsive: [ { breakpoint: 768, settings: { slidesToShow: 3, }, }, ], }); } if ($('.detail_gallery-main').length) { $('.detail_gallery-main').slick({ slidesToShow: 1, slidesToScroll: 1, fade: true, asNavFor: '.detail_gallery-nav', }); $('.detail_gallery-nav').slick({ slidesToShow: 7, slidesToScroll: 1, asNavFor: '.detail_gallery-main', focusOnSelect: true, responsive: [ { breakpoint: 768, settings: { slidesToShow: 3, }, }, ], }); } if ($('.similar__items').length) { $('.similar__items').slick({ slidesToShow: 3, slidesToScroll: 1, variableWidth: true, responsive: [ { breakpoint: 768, settings: { slidesToShow: 2, }, }, { breakpoint: 480, settings: { slidesToShow: 1, }, }, ], }); } if ($('.service__actions-slider').length) { $('.service__actions-slider').slick({ slidesToShow: 1, slidesToScroll: 1, variableWidth: true, dots: false, arrows: true, infinite: true, autoplay: true, autoplaySpeed: 7000, pauseOnHover: false, appendArrows: $('.js-top-slider-arrow'), responsive: [ { breakpoint: 768, settings: { arrows: false, dots: true, }, }, ], }); } $('.marks-show-all').click(function () { $(this).hide(); $('.marks-slider__item').show(); }); // Верхний слайдер if ($('.js-top-slider').length) { var $counterSlider = $('.js-top-slider-counter'); var $topSlider = $('.js-top-slider'); $topSlider.on( 'init reInit afterChange', function (event, slick, currentSlide, nextSlide) { var curSlide = (currentSlide ? currentSlide : 0) + 1; var slideCount = slick.slideCount; if (slideCount < 10) { slideCount = '0' + slideCount; } if (curSlide < 10) { curSlide = '0' + curSlide; } $counterSlider.html(curSlide + '/' + slideCount) + ''; } ); $topSlider.slick({ dots: false, arrows: true, infinite: true, slidesToShow: 1, autoplay: true, autoplaySpeed: 7000, pauseOnHover: false, appendArrows: $('.js-top-slider-arrow'), responsive: [ { breakpoint: 768, settings: { arrows: false, dots: true, }, }, ], }); } // Анимация цифр if ($('.js-about').length) { if ($('.js-about-num').length) { var topAbout = $('.js-about').offset().top; var topAboutScroll = topAbout - $('.js-about').outerHeight(); var animAbout = false; if ($(this).scrollTop() >= topAboutScroll && animAbout == false) { animateAbout(); } $(window).scroll(function () { if ($(this).scrollTop() >= topAboutScroll && animAbout == false) { animateAbout(); } }); function animateAbout() { var comma_separator_number_step = $.animateNumber.numberStepFactories.separator(' '); $('.js-about-num').each(function () { var tcount = $(this).data('count'); $(this).animateNumber( { number: tcount, easing: 'easeInQuad', numberStep: comma_separator_number_step, }, 1000 ); }); animAbout = true; } } } if ($('.js-about-num').length) { var topAbout = $('#benefits').offset().top; var topAboutScroll = topAbout - $('#benefits').outerHeight(); var animAbout = false; if ($(this).scrollTop() >= topAboutScroll && animAbout == false) { animateAbout(); } $(window).scroll(function () { if ($(this).scrollTop() >= topAboutScroll && animAbout == false) { animateAbout(); } }); function animateAbout() { var comma_separator_number_step = $.animateNumber.numberStepFactories.separator(' '); $('.js-about-num').each(function () { var tcount = $(this).data('count'); $(this).animateNumber( { number: tcount, easing: 'easeInQuad', numberStep: comma_separator_number_step, }, 1000 ); }); animAbout = true; } } // Слайдер партнеров if ($('.js-partner').length) { $('.js-partner').slick({ dots: false, infinite: true, slidesToShow: 7, slidesToScroll: 1, responsive: [ { breakpoint: 992, settings: { slidesToShow: 5, }, }, { breakpoint: 768, settings: { slidesToShow: 4, slidesToScroll: 4, dots: true, arrows: false, infinite: false, }, }, ], }); } // Yandex карта if ($('#map').length) { // Иницилизация карты ymaps.ready(init); function init() { var myMap; myMap = new ymaps.Map('map', { center: [55.81, 37.6], zoom: 15, controls: [], }); var myPlacemark = new ymaps.Placemark( [55.806013, 37.597379], {}, { iconLayout: 'default#image', iconImageHref: '/img/mark-map.png', iconImageSize: [58, 82], iconImageOffset: [-29, -82], } ); myMap.geoObjects.add(myPlacemark); var myPlacemark2 = new ymaps.Placemark( [55.690977, 37.478225], {}, { iconLayout: 'default#image', iconImageHref: '/img/mark-map.png', iconImageSize: [58, 82], iconImageOffset: [-29, -82], } ); myMap.geoObjects.add(myPlacemark2); var myPlacemark3 = new ymaps.Placemark( [55.613169, 37.51417], {}, { iconLayout: 'default#image', iconImageHref: '/img/mark-map.png', iconImageSize: [58, 82], iconImageOffset: [-29, -82], } ); myMap.geoObjects.add(myPlacemark3); // Изменение центра карты при клике по табам $('.js-tabs-item').click(function () { var curCenterMapX = $(this).data('coordx'); var curCenterMapY = $(this).data('coordy'); var curTab = $(this).data('tab'); $('.js-tabs-item').removeClass('active'); $(this).addClass('active'); $('.js-map-info-list').removeClass('active'); $('.js-map-info-list[data-tab=' + curTab + ']').addClass('active'); myMap.panTo([curCenterMapX, curCenterMapY]); }); } } const mapEl = document.getElementById('service-map'); const initMap = () => { const myMap = new ymaps.Map('service-map', { center: [55.690977, 37.478225], zoom: 15, controls: [], }); const myPlacemark = new ymaps.Placemark( [55.806013, 37.597379], {}, { iconLayout: 'default#image', iconImageHref: '/img/service/point.png', iconImageSize: [47, 53], iconImageOffset: [-23.5, -53], } ); myMap.geoObjects.add(myPlacemark); const myPlacemark2 = new ymaps.Placemark( [55.690977, 37.478225], {}, { iconLayout: 'default#image', iconImageHref: '/img/service/point.png', iconImageSize: [47, 53], iconImageOffset: [-23.5, -53], } ); myMap.geoObjects.add(myPlacemark2); const myPlacemark3 = new ymaps.Placemark( [55.613169, 37.51417], {}, { iconLayout: 'default#image', iconImageHref: '/img/service/point.png', iconImageSize: [47, 53], iconImageOffset: [-23.5, -53], } ); myMap.geoObjects.add(myPlacemark3); const mapTabs = document.querySelectorAll('.contacts-list--item'); const mapInfoAdresses = document.querySelectorAll('.map-address > span'); const mapInfoPhones = document.querySelectorAll( '.service-map--info > .phone' ); const selectTab = (tab) => { mapTabs.forEach((item) => item.classList.remove('active')); tab.classList.add('active'); }; const setAdress = (index) => { mapInfoAdresses.forEach((address) => address.classList.remove('active')); mapInfoPhones.forEach((address) => address.classList.remove('active')); mapInfoAdresses[index].classList.add('active'); mapInfoPhones[index].classList.add('active'); myMap.panTo([ +mapTabs[index].dataset.coordx, +mapTabs[index].dataset.coordy, ]); }; mapTabs.forEach((item, index) => { item.addEventListener('click', () => { selectTab(item); setAdress(index); }); }); }; mapEl ? ymaps.ready(initMap) : false; // ул. Добролюбова, 2Б // 55.806692, 37.596171 // ул. Лобачевского, 114, Москва // 55.690977, 37.478225 // Новоясеневский пр-т, 6 // 55.613169, 37.514170 // Стилизация скроллбара $('.js-scroll-content').each(function (indx) { var widthContent = $(this).data('width'); var heightContent = $(this).data('height'); $(this).slimScroll({ width: widthContent, height: heightContent, size: '1px', color: '#eb6441', alwaysVisible: true, railVisible: true, railColor: '#e4e4e4', railOpacity: 1, wheelStep: 5, }); }); // Слайдер о компании if ($('.js-about-slider').length) { $('.js-about-slider').slick({ dots: true, infinite: true, slidesToShow: 1, slidesToScroll: 1, vertical: true, responsive: [ { //breakpoint: 768, settings: { arrows: false, vertical: false, }, }, ], }); } // Раскрывающийся блок $('.js-unwrap-block').on('click', '.js-unwrap-head', function (event) { event.preventDefault(); $(this).parent().toggleClass('opened'); if ($(this).parent().hasClass('opened')) { $(this).parent().children('.js-unwrap-content').slideDown(400); } else { $(this).parent().children('.js-unwrap-content').slideUp(400); } }); // Стилизация выпадающего списка $('.js-select').chosen({ disable_search: true, }); // Переход между шагами на странице "Запись" $('.js-step').submit(function (e) { e.preventDefault(); var numStep = $(this).data('step') + 1; if (numStep == 4) return; $('.js-record-step').removeClass('active'); $('.js-record-step[data-step=' + numStep + ']').addClass('active'); $('input[name=form_text_25]').val( $('.js-select.marka_auto option:selected').text() ); // марка $('input[name=form_text_26]').val( $('.js-select.model_auto option:selected').text() ); // модель $('input[name=form_text_27]').val( $('.js-select.services option:selected').text() ); // услуга $('input[name=form_text_28]').val( $('.js-select.subservices option:selected').text() ); // вид услуги }); $('.record-step__img-active').on('click', function () { if ($(this).attr('data-step')) { $('.js-record-step').removeClass('active'); $( '.js-record-step[data-step=' + $(this).attr('data-step') + ']' ).addClass('active'); } }); // Добавление пункта "Еще" в меню var windowWidth = $(window).width(); var arrWidthMenu = []; var moreMenu = false; $('.js-top-menu-item').each(function (index) { var itemWidth = $(this).outerWidth(); arrWidthMenu.push($(this).outerWidth()); }); addItemMenu(); $('.js-top-menu').addClass('is-visible'); $(window).resize(function () { windowWidth = $(window).width(); addItemMenu(); }); function addItemMenu() { if (windowWidth > 767) { var moreItemMenu = 100; var menuWidth = $('.js-top-menu').width() - moreItemMenu; var sumItemMenu = 0; for (var i = 0; i < arrWidthMenu.length; i++) { var $curItem = $('.js-top-menu-item[data-item=' + i + ']'); sumItemMenu = sumItemMenu + arrWidthMenu[i]; // Добавляем пункт Еще и его подпункты if (sumItemMenu > menuWidth) { $curItem.addClass('no-active'); if (moreMenu == false) { $('.js-top-menu').append( '