script src="https://yastatic.net/share2/share.js">
script type="text/javascript">
var componentAjaxLocation = '/local/templates/new/ajax/detailReview/salons.php';
script>
// Управление модальным окном
function openModal() {
const overlay = document.getElementById('modalOverlay');
overlay.classList.add('active');
document.body.style.overflow = 'hidden';
// Запуск анимации элементов
setTimeout(() => {
const fadeElements = document.querySelectorAll('.fade-in');
fadeElements.forEach(el => {
console.log('test')
el.style.animationPlayState = 'running';
});
}, 100);
// Фокус на первое поле
setTimeout(() => {
document.getElementById('emailInput').focus();
}, 400);
}
function closeModal(event) {
if (event && event.target !== event.currentTarget) return;
const overlay = document.getElementById('modalOverlay');
overlay.classList.remove('active');
document.body.style.overflow = '';
// Очистка формы
document.getElementById('errorReportForm').reset();
}
// Заглушка для отправки формы
function submitForm() {
const email = document.getElementById('emailInput').value;
const message = document.getElementById('messageInput').value;
const EMAIL_REGEXP = /^(([^<>()[\].,;:\s@"]+(\.[^<>()[\].,;:\s@"]+)*)|(".+"))@(([^<>()[\].,;:\s@"]+\.)+[^<>()[\].,;:\s@"]{2,})$/iu;
if (!email || !message) {
alert('Пожалуйста, заполните все поля');
return;
}
if (!EMAIL_REGEXP.test(email)) {
alert('Указан некорректрый email');
return;
}
// Имитация отправки
const submitBtn = event.target;
const originalText = submitBtn.textContent;
submitBtn.textContent = 'Отправляется...';
submitBtn.disabled = true;
$.ajax({
type: 'post',
dataType: 'json',
url: '/local/templates/new/ajax/sendError.php',
data: {
text: message,
email: email
},
success: function (result) {
submitBtn.style.background = '#28a745';
if (result.status === 'success') {
setTimeout(() => {
submitBtn.textContent = 'Отправлено!';
setTimeout(() => {
closeModal();
// Восстановление кнопки
setTimeout(() => {
submitBtn.textContent = originalText;
submitBtn.disabled = false;
submitBtn.style.background = '';
}, 500);
}, 1000);
}, 1500);
} else {
submitBtn.style.background = '#dc3545';
alert('В процессе отправки произошла ошибка, попробуйте позже');
}
}
});
setTimeout(() => {
setTimeout(() => {
closeModal();
// Восстановление кнопки
setTimeout(() => {
submitBtn.textContent = originalText;
submitBtn.disabled = false;
submitBtn.style.background = '';
}, 500);
}, 1000);
}, 1500);
}
// Закрытие по Escape
document.addEventListener('keydown', function(event) {
if (event.key === 'Escape') {
closeModal();
}
});
// Автоматическое изменение высоты textarea
document.getElementById('messageInput').addEventListener('input', function() {
this.style.height = 'auto';
this.style.height = Math.min(this.scrollHeight, 300) + 'px';
});
// Инициализация анимации
document.addEventListener('DOMContentLoaded', function() {
const fadeElements = document.querySelectorAll('.fade-in');
fadeElements.forEach(el => {
el.style.animationPlayState = 'paused';
});
});
// Предотвращение зума на iOS
if (/iPad|iPhone|iPod/.test(navigator.userAgent)) {
document.querySelectorAll('.form-input').forEach(input => {
input.addEventListener('focus', function() {
this.style.fontSize = '16px';
});
});
}
$(document).on('click', '.js-open-modal', function () {
openModal()
// $(this).removeClass('js-open-modal')
})
script type="text/javascript">
$(document).ready(function () {
$(document).on('click', '#show-map, ' +
'.show-map-btn, ' +
'.menu-block .show-salons-on-map, ' +
'.options-block__btns .options-block__btn--map, ' +
'.btn-container--fixed, ' +
'.mobile-btn-fixed .on-map, ' +
'.show-on-map, ' +
'.model-card__top .view-on-map, ' +
'.popup-model-detail .view-on-map', function () {
if ($(this).closest('.popup-model-detail').length > 0) {
$.arcticmodal('close');
}
if ($(this).attr('data-id') !== undefined) {
var placeId = $(this).attr('data-id');
}
if ($('#map').length === 0) {
$('.loader').show();
async function showSalonsMap() {
let {showSalonMap} = await import('/local/templates/new/js/salons_yandexMap_module.js?177211242013778');
showSalonMap(placeId);
}
var initFunc = '_mapOnLoad' + Math.round(Math.random() * 1000);
window[initFunc] = function () {
showSalonsMap();
};
$.getScript("https://api-maps.yandex.ru/2.1/?load=package.standard&lang=ru_RU&onload=" + encodeURIComponent(initFunc));
}
if ($(window).width() <= 767) {
$('.mobile-menu').removeClass('open');
}
if ($('#map').length !== 0 && placeId !== undefined) {
objectManager.objects.balloon.open(placeId);
}
$('body').toggleClass('noscroll');
$('#yandex-map-modal').addClass('active');
$('.overlay').show();
return false;
});
});