1//window.smartCaptcha.render( 2// $(form_id).find('.smart-captcha')[0], { 3// sitekey: window.sitekey, 4//}) 5 6//ФÑнкÑÐ¸Ñ Ð²ÑбоÑа напÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð² завиÑимоÑÑи Ð¾Ñ Ñаздела 7// ФÑнкÑÐ¸Ñ Ð´Ð»Ñ Ð¿Ð¾Ð»ÑÑÐµÐ½Ð¸Ñ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ ÐºÑки по имени 8function getCookie(name) { 9 let matches = document.cookie.match(new RegExp( 10 "(?:^|; )" + name.replace(/([$?*|{}\(\)\[\]\\\/\+^])/g, '\\$&') + "=([^;]*)" 11 )); 12 return matches ? decodeURIComponent(matches[1]) : undefined; 13} 14 15// ФÑнкÑÐ¸Ñ Ð´Ð»Ñ ÑÑÑановки акÑивного Ñаба в заданном блоке на оÑнове кÑки 16function setActiveTabs() { 17 18 // ÐолÑÑаем знаÑение кÑки "direction" 19 const directionCookie = getCookie("direction"); 20 21 const footerNas = document.querySelector("#footer-services-nas"); 22 const footerBus = document.querySelector("#footer-services-bus"); 23 const menuNas = document.querySelector("#menu-mobile-switcher-nas"); 24 const menuBus = document.querySelector("#menu-mobile-switcher-bus"); 25 26 // УÑÑанавливаем акÑивнÑй Ñаб и показÑваем ÑооÑвеÑÑÑвÑÑÑий nav 27 if (directionCookie === "bus") { 28 footerBus.click(); 29 menuBus.click(); 30 } else { 31 footerNas.click(); 32 menuNas.click(); 33 } 34} 35// Ðдем полной загÑÑзки DOM пеÑед вÑполнением ÑкÑипÑа 36document.addEventListener("DOMContentLoaded", setActiveTabs); 37//END ФÑнкÑÐ¸Ñ Ð²ÑбоÑа напÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð² завиÑимоÑÑи Ð¾Ñ Ñаздела 38 39//ФÑнкÑÐ¸Ñ Ð¿ÑовеÑки обÑзаÑелÑноÑÑи полей 40function requiredInput() { 41 const checkbox1 = $('#c_1'); // ÐÑеобÑазÑем в jQuery-обÑÐµÐºÑ 42 const checkbox2 = $('#c_2'); // ÐÑеобÑазÑем в jQuery-обÑÐµÐºÑ 43 44 if (checkbox1.is(':checked')) { // ÐÑовеÑÑем ÑоÑÑоÑние ÑекбокÑа 45 $('.contact-form__field input[name=tel]').attr('required', 'required'); 46 } else { 47 $('.contact-form__field input[name=tel]').removeAttr('required'); 48 } 49 50 if (checkbox2.is(':checked')) { // ÐÑовеÑÑем ÑоÑÑоÑние ÑекбокÑа 51 $('.contact-form__field input[name=email]').attr('required', 'required'); 52 } else { 53 $('.contact-form__field input[name=email]').removeAttr('required'); 54 } 55} 56 57//END ФÑнкÑÐ¸Ñ Ð¿ÑовеÑки обÑзаÑелÑноÑÑи полей 58 59//ФÑнкÑÐ¸Ñ ÑекбокÑов в ФÐÐ¡Ð°Ñ 60document.addEventListener('DOMContentLoaded', function () { 61 // ÐолÑÑаем ÑекбокÑÑ Ð¿Ð¾ Ð¸Ñ ID 62 const checkbox1 = document.getElementById('c_1'); 63 const checkbox2 = document.getElementById('c_2'); 64 const checkbox3 = document.getElementById('c_3'); 65 66 // ÐобавлÑем ÑобÑÑие на c_3 67 if (checkbox3) { // ÐÑовеÑÑем, ÑÑÑеÑÑвÑÐµÑ Ð»Ð¸ checkbox3 68 checkbox3.addEventListener('change', function () { 69 if (checkbox3.checked) { 70 // ÐÑовеÑÑем ÑÑÑеÑÑвование checkbox1 и checkbox2 пеÑед обÑаÑением к ним 71 if (checkbox1) { 72 checkbox1.checked = false; 73 } 74 if (checkbox2) { 75 checkbox2.checked = false; 76 } 77 } 78 }); 79 } 80 81 82 // ÐобавлÑем ÑобÑÑÐ¸Ñ Ð½Ð° c_1 и c_2, ÑÑÐ¾Ð±Ñ ÑбÑоÑиÑÑ c_3 пÑи Ð¸Ñ Ð²ÑбоÑе 83 [checkbox1, checkbox2].forEach(checkbox => { 84 if (checkbox) { // ÐÑовеÑÑем ÑÑÑеÑÑвование каждого checkbox пеÑед добавлением обÑабоÑÑика 85 checkbox.addEventListener('change', function () { 86 if (checkbox.checked && checkbox3) { // ÐÑовеÑÑем ÑÑÑеÑÑвование checkbox3 пеÑед обÑаÑением 87 checkbox3.checked = false; 88 } 89 requiredInput(); 90 }); 91 } 92 }); 93 94}); 95//END ФÑнкÑÐ¸Ñ ÑекбокÑов в ФÐÐ¡Ð°Ñ 96 97 98//ФÑнкÑÐ¸Ñ Ð²ÑклÑÑÐµÐ½Ð¸Ñ ÐºÐ½Ð¾Ð¿ÐºÐ¸ оÑпÑавки без ÑекбокÑа ÑоглаÑÐ¸Ñ 99document.addEventListener('DOMContentLoaded', function () { 100 // ÐолÑÑаем ÑлеменÑÑ ÑекбокÑа и кнопки 101 const consentCheckbox = document.getElementById('politika'); 102 const submitButton = document.querySelector('.contact-form__submit'); 103 104 // ÐзнаÑалÑно блокиÑÑем ÐºÐ½Ð¾Ð¿ÐºÑ 105 submitButton.disabled = true; 106 107 // ÐобавлÑем обÑабоÑÑик ÑобÑÑÐ¸Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ ÑоÑÑоÑÐ½Ð¸Ñ ÑекбокÑа 108 consentCheckbox.addEventListener('change', function () { 109 // УÑÑанавливаем ÑвойÑÑво disabled в завиÑимоÑÑи Ð¾Ñ ÑоÑÑоÑÐ½Ð¸Ñ ÑекбокÑа 110 submitButton.disabled = !consentCheckbox.checked; 111 }); 112}); 113//END ФÑнкÑÐ¸Ñ Ð²ÑклÑÑÐµÐ½Ð¸Ñ ÐºÐ½Ð¾Ð¿ÐºÐ¸ оÑпÑавки без ÑекбокÑа ÑоглаÑÐ¸Ñ 114 115 116//ФÑнкÑÐ¸Ñ ÑилÑÑÑаÑии в конÑакÑÐ°Ñ 117//РеиниÑиализаÑÐ¸Ñ ÐºÐ°ÑÑÑ Ð¿Ñи каждом аÑкÑе 118function initUnitsMap() { 119 let iconSize = [40, 40]; 120 let iconOffset = [-20, -20]; 121 let zoom = 11; 122 if (window.innerWidth < 992) { 123 iconSize = [30, 30]; 124 iconOffset = [-15, -15]; 125 zoom = 10; 126 } 127 const map2 = document.querySelector(".contacts-units__map"); 128 if (map2) { 129 let mapInit2 = function() { 130 ymaps.ready(init);
131 function init() { 132 const center = map2.getAttribute("data-coordinates").split(","); 133 const items = []; 134 const collection = new ymaps.GeoObjectCollection(null, {}); 135 const cards = document.querySelectorAll(".units-card"); 136 const closeButtons = document.querySelectorAll(".units-card__close"); 137 if (cards.length) { 138 cards.forEach((card) => { 139 card.style.display = "none"; 140 const center2 = card.getAttribute("data-coordinates").split(","); 141 const item = { center: center2, card }; 142 items.push(item); 143 }); 144 closeButtons.forEach((closeButton) => { 145 closeButton.addEventListener("click", () => { 146 cards.forEach((card) => { 147 card.style.display = "none"; 148 }); 149 }); 150 }); 151 } 152 const contactMap = new ymaps.Map(map2, { 153 center, 154 zoom, 155 controls: [] 156 }); 157 contactMap.geoObjects.add(collection); 158 items.forEach((item) => { 159 createPlacemark(item, collection); 160 }); 161 function createPlacemark(item, collection2) { 162 const placemark = new ymaps.Placemark( 163 item.center, 164 { 165 balloonContent: item.content 166 }, 167 { 168 iconLayout: "default#imageWithContent", 169 iconImageHref: "assets/templates/re/images/pin.svg", 170 iconImageSize: iconSize, 171 iconImageOffset: iconOffset 172 } 173 ); 174 collection2.add(placemark); 175 placemark.events.add("click", (e) => { 176 cards.forEach((card) => { 177 card.style.display = "none"; 178 }); 179 item.card.style.display = "block"; 180 }); 181 } 182 collection.events.add("click", (e) => { 183 collection.each(function(geoObject) { 184 geoObject.options.set("iconImageHref", "assets/templates/re/images/pin.svg"); 185 }); 186 e.get("target").options.set("iconImageHref", "assets/templates/re/images/pin-red.svg"); 187 }); 188 contactMap.controls.remove("geolocationControl"); 189 contactMap.controls.remove("searchControl"); 190 contactMap.controls.remove("trafficControl"); 191 contactMap.controls.remove("typeSelector"); 192 contactMap.controls.remove("fullscreenControl"); 193 contactMap.controls.remove("rulerControl"); 194 contactMap.behaviors.disable(["scrollZoom"]); 195 } 196 }; 197 var mapInit = mapInit2; 198 mapInit2(); 199 } 200} 201 202//ФилÑÑÑаÑÐ¸Ñ ÑпиÑка 203jQuery(document).ready(function ($) { 204 $('.contacts-units__filter .checkbox__input').on('change', function () { 205 // СобиÑаем маÑÑив знаÑений вÑÐµÑ Ð²ÑбÑаннÑÑ ÑекбокÑов 206 var selectedValues = $('.contacts-units__filter .checkbox__input:checked').map(function () { 207 return $(this).val(); 208 }).get(); 209 210 211 // ÐÑпÑавлÑем AJAX-запÑÐ¾Ñ Ð½Ð° ÑпиÑок 212 $.ajax({ 213 type: "POST", 214 url: "/ajax/contacts-ajax-list.html", 215 data: { selected: selectedValues }, 216 success: function (response) { 217 // Ðбновление ÑодеÑжимого блока 218 $('.contacts-units__list.units-list').html(response); 219 }, 220 error: function (xhr, status, error) { 221 console.error('ÐÑоизоÑла оÑибка:', error); 222 } 223 }); 224 // ÐÑпÑавлÑем AJAX-запÑÐ¾Ñ Ð½Ð° каÑÑÑ 225 $.ajax({ 226 type: "POST", 227 url: "/ajax/contacts-ajax-map.html", 228 data: { selected: selectedValues }, 229 success: function (response) { 230 // Ðбновление ÑодеÑжимого блока 231 $('.contacts-units__map').html(response); 232 initUnitsMap(); 233 }, 234 error: function (xhr, status, error) { 235 console.error('ÐÑоизоÑла оÑибка:', error); 236 } 237 }); 238 }); 239}); 240 241//END ФÑнкÑÐ¸Ñ ÑилÑÑÑаÑии в конÑакÑÐ°Ñ 242 243//пÑовеÑка ÑоÑÑоÑние ÑекбокÑа 244$(document).ready(function() { 245 // ФÑнкÑÐ¸Ñ Ð´Ð»Ñ Ð¿ÑовеÑки ÑоÑÑоÑÐ½Ð¸Ñ ÑекбокÑа 246 function toggleSubmitButton() { 247 if ($("#politika").is(":checked")) { 248 $(".contact-form__submit").prop("disabled", false); 249 } else { 250 $(".contact-form__submit").prop("disabled", true); 251 } 252 } 253 254 // ÐниÑиализаÑÐ¸Ñ Ð¿ÑовеÑки пÑи загÑÑзке ÑÑÑаниÑÑ 255 toggleSubmitButton(); 256 257 // ÐÑовеÑка ÑоÑÑоÑÐ½Ð¸Ñ ÑекбокÑа пÑи его изменении 258 $("#politika").change(function() { 259 toggleSubmitButton(); 260 }); 261}); 262 263 264$(document).bind('mousemove',function(){ 265 $('form.antispam').each(function(){ 266 $(this).attr('action',$(this).attr('rel-action')); 267 $(this).removeAttr('rel-action'); 268 }); 269 $(document).unbind('mousemove'); 270 }); 271 $(document).bind('touchstart',function(){ 272 $('form.antispam').each(function(){ 273 $(this).attr('action',$(this).attr('rel-action')); 274 $(this).removeAttr('rel-action'); 275 }); 276 $(document).unbind('touchstart'); 277 }); 278 279 280
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.