1/* ÐÑогÑеÑÑ Ð±Ð°Ñ */ 2window.addEventListener('scroll', function() { 3 var scrollTop = window.scrollY || document.documentElement.scrollTop; 4 var scrollHeight = document.documentElement.scrollHeight - window.innerHeight; 5 var scrollPercent = (scrollTop / scrollHeight) * 100; 6 7 document.getElementById('progress-bar').style.width = scrollPercent + '%'; 8}); 9 10document.addEventListener('DOMContentLoaded', (event) => { 11 let email = document.querySelector('input.email-mask'); 12 if (email) { 13 Inputmask({ 14 alias: 'email', 15 clearIncomplete: true, 16 greedy: false 17 }).mask(email) 18 } 19 20 /*POPUP Ðидео*/ 21 const video = document.querySelectorAll('.popup-video'); 22 23 video.forEach(addListTrigger => { 24 addListTrigger.addEventListener('click', function(event) { 25 event.preventDefault(); 26 Fancybox.show([{ src: '#popup-video', type: 'inline' }], { 27 dragToClose: false, 28 closeButton: false 29 }); 30 }); 31 }); 32 33 function iniSubmitForm() { 34 const form = document.querySelector('.write-us-form'); 35 if (!form) return; 36 37 const submitButton = form.querySelector('.btn-write'); 38 39 if (form) { 40 ym(97424487, 'reachGoal', 'pokaz_otkr_sotrydnichestvo'); 41 } 42 43 if (submitButton) { 44 const phoneInput = form.querySelector('input[name="phone"]'); 45 46 submitButton.addEventListener('click', function(event) { 47 event.preventDefault(); 48 49 const nameInput = form.querySelector('input[name="name"]'); 50 const phoneInput = form.querySelector('input[type="tel"]'); 51 const companyInput = form.querySelector('input[name="company"]'); 52 const messageInput = form.querySelector('textarea[name="textarea"]'); 53 const consentCheckbox = form.querySelector('input[type="checkbox"]'); 54 55 document.getElementById('name-error').textContent = ''; 56 document.getElementById('phone-error').textContent = ''; 57 document.getElementById('message-error').textContent = ''; 58 document.getElementById('consent-error').textContent = ''; 59 60 function showError(elementId, message) { 61 const errorElement = document.getElementById(elementId); 62 errorElement.textContent = message; 63 errorElement.classList.add('active'); 64 65 setTimeout(() => { 66 errorElement.textContent = ''; 67 errorElement.classList.remove('active'); 68 }, 3000); 69 } 70 71 if (!nameInput.value) { 72 showError('name-error', 'ÐожалÑйÑÑа, введиÑе ваÑе имÑ.'); 73 return; 74 } 75 76 if (!phoneInput.value) { 77 showError('phone-error', 'ÐожалÑйÑÑа, введиÑе Ð²Ð°Ñ Ð½Ð¾Ð¼ÐµÑ ÑелеÑона.'); 78 return; 79 } 80 81 if (!messageInput.value) { 82 showError('message-error', 'ÐожалÑйÑÑа, опиÑиÑе ваÑе пÑедложение.'); 83 return; 84 } 85 86 if (!consentCheckbox.checked) { 87 showError('consent-error', 'ÐÑ Ð´Ð¾Ð»Ð¶Ð½Ñ ÑоглаÑиÑÑÑÑ Ð½Ð° обÑабоÑÐºÑ Ð¿ÐµÑÑоналÑнÑÑ Ð´Ð°Ð½Ð½ÑÑ .'); 88 return; 89 } 90 91 const text = ` 92 #ÐÑедложение Ñ ÑайÑа 93 ÐмÑ: ${nameInput.value} 94 ТелеÑон: ${phoneInput.value} 95 ÐомпаниÑ: ${companyInput.value} 96 ÐÑедложение: ${messageInput.value} 97 `; 98 99 const params = { 100 chat_id: '-1002291307547', 101 parse_mode: 'html', 102 text: text.trim() 103 }; 104 105 console.group('ð¤ ÐÑпÑавка ÑоÑмÑ: СоÑÑÑдниÑеÑÑво (Telegram)'); 106 console.log('ÐÑÐµÐ¼Ñ Ð¾ÑпÑавки:', new Date().toLocaleStr
106ing()); 107 console.log('URL:', 'https://api.telegram.org/bot[СÐРЫТÐ]/sendMessage'); 108 console.log('ÐаннÑе ÑоÑмÑ:', { 109 chat_id: params.chat_id, 110 parse_mode: params.parse_mode, 111 text: params.text 112 }); 113 console.groupEnd(); 114 115 fetch('https://api.telegram.org/bot7320708967:AAHqKiKbH1o00CGnPmhcBd23vOylfJwlm9s/sendMessage', { 116 method: 'POST', 117 headers: { 118 'Content-Type': 'application/x-www-form-urlencoded', 119 }, 120 body: new URLSearchParams(params), 121 }) 122 .then(response => response.json()) 123 .then(data => { 124 console.group('ð¥ ÐÑÐ²ÐµÑ ÑеÑвеÑа: СоÑÑÑдниÑеÑÑво (Telegram)'); 125 console.log('ÐÑÐµÐ¼Ñ Ð¾ÑвеÑа:', new Date().toLocaleString()); 126 console.log('ÐÑÐ²ÐµÑ Telegram:', data); 127 console.log('УÑпеÑно:', data.ok ? 'â ' : 'â'); 128 console.groupEnd(); 129 130 if (data.ok) { 131 Fancybox.show([{ 132 src: '#popup_close', 133 type: 'inline' 134 }], { 135 dragToClose: false, 136 closeButton: false 137 }); 138 ym(97424487, 'reachGoal', 'lead_otkr_sotrydnichestvo'); 139 form.reset(); 140 } else { 141 showError('name-error', 'ÐÑибка оÑпÑавки даннÑÑ Ð² Telegram.'); 142 } 143 }) 144 .catch(error => { 145 console.group('ð¥ ÐÑÐ²ÐµÑ ÑеÑвеÑа: СоÑÑÑдниÑеÑÑво (Telegram)'); 146 console.error('â ÐÑибка пÑи оÑпÑавке даннÑÑ Ð² Telegram:', error); 147 console.groupEnd(); 148 showError('name-error', 'ÐÑибка оÑпÑавки даннÑÑ Ð² Telegram.'); 149 }); 150 }); 151 } 152 } 153 154 iniSubmitForm(); 155 156 function iniSubscribeFormFirst() { 157 const form = document.querySelector('.subscribe-form.first'); 158 if (!form) return; 159 160 const submitButton = form.querySelector('.submit-button'); 161 const phoneInput = form.querySelector('input[name="phone"]'); 162 163 submitButton.addEventListener('click', function(event) { 164 event.preventDefault(); 165 166 const nameInput = form.querySelector('input[name="name"]'); 167 const emailInput = form.querySelector('input[name="email"]'); 168 const roistatInput = form.querySelector('input[name="roistat"]'); 169 const tariffInput = form.querySelector('input[name="Tariff"]'); 170 const tipSdelkiInput = form.querySelector('input[name="tip_sdelki"]'); 171 const typeleadInput = form.querySelector('input[name="typelead"]'); 172 const titleInput = form.querySelector('input[name="TITLE"]'); 173 const promocodeInput = form.querySelector('input[name="promocode"]'); 174 175 document.getElementById('name-error-subscribe-first').textContent = ''; 176 document.getElementById('phone-error-subscribe-first').textContent = ''; 177 document.getElementById('email-error-subscribe-first').textContent = ''; 178 179 function showError(id, message) { 180 const el = document.getElementById(id); 181 el.textContent = message; 182 setTimeout(() => el.textContent = '', 3000); 183 } 184 185 if (!nameInput.value.trim()) { 186 showError('name-error-subscribe-first', 'ÐожалÑйÑÑа, введиÑе ваÑе имÑ.'); 187 return; 188 } 189 190 if (!phoneInput.value.trim()) { 191 showError('phone-error-subscribe-first', 'ÐожалÑйÑÑа, введиÑе Ð²Ð°Ñ Ð½Ð¾Ð¼ÐµÑ ÑелеÑона.'); 192 return; 193 } 194 195 if (!emailInput.value.trim()) { 196 showError('email-error-subscribe-first', 'ÐожалÑйÑÑа, введиÑе Ð²Ð°Ñ E-mail.'); 197 return; 198 } 199 200 const rawPhone = phoneInput.value; 201 const sanitizedPhone = rawPhone.replace(/[()\s\-]/g, '').trim(); 202 203 const data = new URLSearchParams();
204 const urlParams = new URLSearchParams(window.location.search); 205 206 data.append('action', 'subscribe_form_first'); 207 data.append('name', nameInput.value.trim()); 208 data.append('phone', sanitizedPhone); 209 data.append('email', emailInput.value.trim()); 210 data.append('roistat', roistatInput?.value ?? ''); 211 data.append('Tariff', tariffInput?.value ?? ''); 212 data.append('tip_sdelki', tipSdelkiInput?.value ?? ''); 213 data.append('typelead', typeleadInput?.value ?? ''); 214 data.append('title', titleInput?.value ?? ''); 215 data.append('promocode', promocodeInput?.value.trim() ?? ''); 216 217 ['utm_term', 'utm_source', 'utm_medium', 'utm_content', 'utm_campaign'].forEach(param => { 218 data.append(param, urlParams.get(param) ?? ''); 219 }); 220 221 console.group('ð¤ ÐÑпÑавка ÑоÑмÑ: ÐодпиÑка (пеÑÐ²Ð°Ñ ÑоÑма)'); 222 console.log('ÐÑÐµÐ¼Ñ Ð¾ÑпÑавки:', new Date().toLocaleString()); 223 console.log('URL:', '/wp-content/themes/reboot_child/ajax/ajax.php'); 224 console.log('ÐаннÑе ÑоÑмÑ:', Object.fromEntries(data.entries())); 225 console.groupEnd(); 226 227 const xhr = new XMLHttpRequest(); 228 xhr.open('POST', '/wp-content/themes/reboot_child/ajax/ajax.php'); 229 xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); 230 xhr.send(data); 231 232 xhr.onreadystatechange = function() { 233 if (xhr.readyState === 4) { 234 console.group('ð¥ ÐÑÐ²ÐµÑ ÑеÑвеÑа: ÐодпиÑка (пеÑÐ²Ð°Ñ ÑоÑма)'); 235 console.log('ÐÑÐµÐ¼Ñ Ð¾ÑвеÑа:', new Date().toLocaleString()); 236 console.log('HTTP ÑÑаÑÑÑ:', xhr.status); 237 console.log('СÑÑой оÑвеÑ:', xhr.responseText); 238 239 if (xhr.status === 200) { 240 try { 241 const result = JSON.parse(xhr.responseText); 242 console.log('РаÑпаÑÑеннÑй JSON:', result); 243 console.log('УÑпеÑно:', result.success ? 'â ' : 'â'); 244 console.groupEnd(); 245 246 if (result.success) { 247 Fancybox.show([{ src: '#popup_close', type: 'inline' }], { 248 dragToClose: false, 249 closeButton: false 250 }); 251 ym(97424487, 'reachGoal', 'lead_otkr_zapisatsya'); 252 form.reset(); 253 } else { 254 showError('name-error-subscribe-first', result.message || 'ÐÑибка оÑпÑавки.'); 255 } 256 } catch (e) { 257 console.error('â ÐÑибка ÑазбоÑа оÑвеÑа:', e); 258 console.error('ÐÑоблемнÑй ÑекÑÑ:', xhr.responseText); 259 console.groupEnd(); 260 } 261 } else { 262 console.error('â HTTP оÑибка:', xhr.status); 263 console.groupEnd(); 264 } 265 } 266 }; 267 }); 268 } 269 270 iniSubscribeFormFirst(); 271 272 function iniSubscribeFormSecond() { 273 const form = document.querySelector('.subscribe-form.second'); 274 if (!form) return; 275 276 const submitButton = form.querySelector('.submit-button'); 277 const phoneInput = form.querySelector('input[name="phone"]'); 278 279 submitButton.addEventListener('click', function(event) { 280 event.preventDefault(); 281 282 const nameInput = form.querySelector('input[name="name"]'); 283 const emailInput = form.querySelector('input[name="email"]'); 284 const roistatInput = form.querySelector('input[name="roistat"]'); 285 const tariffInput = form.querySelector('input[name="Tariff"]'); 286 const tipSdelkiInput = form.querySelector('input[name="tip_sdelki"]'); 287 const typeleadInput = form.querySelector('input[name="typelead"]'); 288 const titleInput = form.querySelector('input[name="TITLE"]'); 289 const promocodeInput = form.querySelector('input[name="promocode"]'); 290 291 document.getElementById('name-error-subscribe-second').textContent = ''; 292 document.getElementById('phone-error-subscribe-second').textContent = ''; 293 document.getElementById('email-error-subscribe-second').textContent = ''; 294 295 function showError(id, message) { 296 const el = document.getElementById(id); 297 el.textContent = message; 298 setTimeout(() => el.textContent = '', 3000); 299 } 300 301 if (!nameInput.value.trim()) { 302 showError('name-error-subscribe-second', 'ÐожалÑйÑÑа, введиÑе ваÑе имÑ.'); 303 return; 304 } 305 306 if (!phoneInput.value.trim()) { 307 showError('phone-error-subscribe-second', 'ÐожалÑйÑÑа, введиÑе Ð²Ð°Ñ Ð½Ð¾Ð¼ÐµÑ ÑелеÑона.'); 308 return; 309 } 310 311 if (!emailInput.value.trim()) { 312 showError('email-error-subscribe-second', 'ÐожалÑйÑÑа, введиÑе Ð²Ð°Ñ E-mail.'); 313 return; 314 } 315 316 const rawPhone = phoneInput.value; 317 const sanitizedPhone = rawPhone.replace(/[()\s\-]/g, '').trim(); 318 319 const data = new URLSearchParams();
320 const urlParams = new URLSearchParams(window.location.search); 321 322 data.append('action', 'subscribe_form_second'); 323 data.append('name', nameInput.value.trim()); 324 data.append('phone', sanitizedPhone); 325 data.append('email', emailInput.value.trim()); 326 data.append('roistat', roistatInput?.value ?? ''); 327 data.append('Tariff', tariffInput?.value ?? ''); 328 data.append('tip_sdelki', tipSdelkiInput?.value ?? ''); 329 data.append('typelead', typeleadInput?.value ?? ''); 330 data.append('title', titleInput?.value ?? ''); 331 data.append('promocode', promocodeInput?.value.trim() ?? ''); 332 333 ['utm_term', 'utm_source', 'utm_medium', 'utm_content', 'utm_campaign'].forEach(param => { 334 data.append(param, urlParams.get(param) ?? ''); 335 }); 336 337 console.group('ð¤ ÐÑпÑавка ÑоÑмÑ: ÐодпиÑка (вÑоÑÐ°Ñ ÑоÑма)'); 338 console.log('ÐÑÐµÐ¼Ñ Ð¾ÑпÑавки:', new Date().toLocaleString()); 339 console.log('URL:', '/wp-content/themes/reboot_child/ajax/ajax.php'); 340 console.log('ÐаннÑе ÑоÑмÑ:', Object.fromEntries(data.entries())); 341 console.groupEnd(); 342 343 const xhr = new XMLHttpRequest(); 344 xhr.open('POST', '/wp-content/themes/reboot_child/ajax/ajax.php'); 345 xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); 346 xhr.send(data); 347 348 xhr.onreadystatechange = function() { 349 if (xhr.readyState === 4) { 350 console.group('ð¥ ÐÑÐ²ÐµÑ ÑеÑвеÑа: ÐодпиÑка (вÑоÑÐ°Ñ ÑоÑма)'); 351 console.log('ÐÑÐµÐ¼Ñ Ð¾ÑвеÑа:', new Date().toLocaleString()); 352 console.log('HTTP ÑÑаÑÑÑ:', xhr.status); 353 console.log('СÑÑой оÑвеÑ:', xhr.responseText); 354 355 if (xhr.status === 200) { 356 try { 357 const result = JSON.parse(xhr.responseText); 358 console.log('РаÑпаÑÑеннÑй JSON:', result); 359 console.log('УÑпеÑно:', result.success ? 'â ' : 'â'); 360 console.groupEnd(); 361 362 if (result.success) { 363 Fancybox.show([{ src: '#popup_close', type: 'inline' }], { 364 dragToClose: false, 365 closeButton: false 366 }); 367 ym(97424487, 'reachGoal', 'lead_otkr_zapisatsya'); 368 form.reset(); 369 } else { 370 showError('name-error-subscribe-second', result.message || 'ÐÑибка оÑпÑавки.'); 371 } 372 } catch (e) { 373 console.error('â ÐÑибка ÑазбоÑа оÑвеÑа:', e); 374 console.error('ÐÑоблемнÑй ÑекÑÑ:', xhr.responseText); 375 console.groupEnd(); 376 } 377 } else { 378 console.error('â HTTP оÑибка:', xhr.status); 379 console.groupEnd(); 380 } 381 } 382 }; 383 }); 384 } 385 386 iniSubscribeFormSecond(); 387}); 388 389function setupTabs() { 390 const tabs = document.querySelectorAll('.program-tab'); 391 const cards = document.querySelectorAll('.program-card'); 392 window.age = 6; 393
394 tabs.forEach(tab => { 395 tab.addEventListener('click', function() { 396 tabs.forEach(t => t.classList.remove('active')); 397 cards.forEach(card => card.classList.remove('active')); 398 399 this.classList.add('active'); 400 window.age = this.dataset.age 401 402 const tabData = this.getAttribute('data-tab'); 403 404 const activeCard = document.querySelector(`.program-card[data-card="${tabData}"]`); 405 if (activeCard) { 406 activeCard.classList.add('active'); 407 } 408 }); 409 }); 410} 411setupTabs(); 412 413const videoSlider = document.querySelector('.videoSwiper'); 414if (videoSlider) { 415 var swiper = new Swiper(videoSlider, { 416 slidesPerView: 1, 417 spaceBetween: 40, 418 loop: true, 419 navigation: { 420 nextEl: '.video-slider .swiper-button-next', 421 prevEl: '.video-slider .swiper-button-prev', 422 }, 423 breakpoints: { 424 768: { 425 slidesPerView: 1, 426 spaceBetween: 10 427 }, 428 991: { 429 slidesPerView: 2, 430 spaceBetween: 30 431 }, 432 1200: { 433 slidesPerView: 3, 434 spaceBetween: 30 435 } 436 }, 437 }); 438} 439 440const accordionItems = document.querySelectorAll('.accordion-item'); 441 442if (accordionItems.length) { 443 accordionItems.forEach((item) => { 444 item.addEventListener('click', () => { 445 accordionItems.forEach((otherItem) => { 446 if (otherItem !== item) { 447 otherItem.classList.remove('open'); 448 } 449 }); 450 item.classList.toggle('open'); 451 }); 452 }); 453} 454 455document.addEventListener('scroll', function() { 456 const scrollImage = document.querySelector('.scroll-image'); 457 const textOne = document.querySelector('.right-text.one'); 458 const textTwo = document.querySelector('.right-text.second'); 459 460 if (!scrollImage || !textOne || !textTwo) return; 461 462 const textOneRect = textOne.getBoundingClientRect(); 463 const textTwoRect = textTwo.getBoundingClientRect(); 464 465 const scrollDistance = textTwoRect.top - textOneRect.top; 466 const scrollTop = window.scrollY || document.documentElement.scrollTop; 467 468 if (scrollTop >= textOneRect.top + window.scrollY && scrollTop <= textTwoRect.top + window.scrollY) { 469 const newTop = Math.min(scrollTop - (textOneRect.top + window.scrollY), scrollDistance); 470 scrollImage.style.top = `${newTop}px`; 471 472 const opacityOne = 1 - (newTop / scrollDistance); 473 const opacityTwo = newTop / scrollDistance; 474 475 textOne.style.opacity = opacityOne; 476 textTwo.style.opacity = opacityTwo; 477 } else if (scrollTop < textOneRect.top + window.scrollY) { 478 textOne.style.opacity = 1; 479 textTwo.style.opacity = 0; 480 scrollImage.style.top = '0px'; 481 } else if (scrollTop > textTwoRect.top + window.scrollY) { 482 textOne.style.opacity = 0; 483 textTwo.style.opacity = 1; 484 scrollImage.style.top = `${scrollDistance}px`; 485 } 486}); 487 488// POPUP ÐвÑÑнка 489document.addEventListener('DOMContentLoaded', function() { 490 const ovsyankaBtn = document.getElementById('ovsyanka-btn'); 491 const ovsyankaForm = document.getElementById('ovsyanka-form'); 492 493 if (ovsyankaBtn) { 494 ovsyankaBtn.addEventListener('click', function(event) { 495 event.preventDefault(); 496 ym(97424487, 'reachGoal', 'klik_zakr_ovsyanka'); 497 Fancybox.show([{ src: '#popup-ovsyanka', type: 'inline' }], { 498 dragToClose: false, 499 closeButton: false 500 }); 501 }); 502 } 503 504 if (ovsyankaForm) { 505 ovsyankaForm.addEventListener('submit', function(e) { 506 e.preventDefault(); 507 508 const formData = new FormData(ovsyankaForm); 509 const submitBtn = ovsyankaForm.querySelector('.btn-submit'); 510 const messageBlock = ovsyankaForm.querySelector('.form-message'); 511 512 const privacyCheckbox = ovsyankaForm.querySelector('#ovsyanka-privacy'); 513 if (!privacyCheckbox.checked) { 514 messageBlock.textContent = 'ÐожалÑйÑÑа, ÑоглаÑиÑеÑÑ Ñ Ð¿Ð¾Ð»Ð¸Ñикой конÑиденÑиалÑноÑÑи'; 515 messageBlock.style.display = 'block'; 516 messageBlock.style.color = 'red'; 517 return false;
518 } 519 520 submitBtn.disabled = true; 521 submitBtn.textContent = 'ÐÑпÑавка...'; 522 523 const email = formData.get('email'); 524 const name = formData.get('name'); 525 526 console.group('ð¤ ÐÑпÑавка ÑоÑмÑ: ÐвÑÑнка'); 527 console.log('ÐÑÐµÐ¼Ñ Ð¾ÑпÑавки:', new Date().toLocaleString()); 528 console.log('ÐаннÑе ÑоÑмÑ:', { email, name }); 529 console.groupEnd(); 530 531 const iframeName = 'ovsyanka-iframe-' + Date.now(); 532 const iframe = document.createElement('iframe'); 533 iframe.name = iframeName; 534 iframe.style.display = 'none'; 535 document.body.appendChild(iframe); 536 537 const hiddenForm = document.createElement('form'); 538 hiddenForm.method = 'POST'; 539 hiddenForm.action = 'https://tilda.dmsubscribe.ru/'; 540 hiddenForm.target = iframeName; 541 hiddenForm.style.display = 'none'; 542 543 const fields = { 544 'list_id': '165380', 545 'no_conf': 'yes', 546 'email': email, 547 'name': name 548 }; 549 550 Object.keys(fields).forEach(key => { 551 const input = document.createElement('input'); 552 input.type = 'hidden'; 553 input.name = key; 554 input.value = fields[key]; 555 hiddenForm.appendChild(input); 556 }); 557 558 document.body.appendChild(hiddenForm); 559 560 let submitted = false; 561 iframe.onload = function() { 562 if (submitted) { 563 console.group('ð¥ ÐÑÐ²ÐµÑ ÑеÑвеÑа: ÐвÑÑнка'); 564 console.log('ÐÑÐµÐ¼Ñ Ð¾ÑвеÑа:', new Date().toLocaleString()); 565 console.log('ФоÑма оÑпÑавлена ÑÑпеÑно'); 566 console.groupEnd(); 567 568 messageBlock.textContent = 'СпаÑибо! ÐÑовеÑÑÑе ваÑÑ Ð¿Ð¾ÑÑÑ.'; 569 messageBlock.style.color = '#4CAF50'; 570 messageBlock.style.display = 'block'; 571 ovsyankaForm.reset(); 572 573 if (typeof ym !== 'undefined') { 574 ym(97424487, 'reachGoal', 'lead_zakr_ovsyanka'); 575 } 576 577 setTimeout(() => { 578 Fancybox.close(); 579 }, 2000); 580 581 setTimeout(() => { 582 hiddenForm.remove(); 583 iframe.remove(); 584 }, 3000); 585 586 submitBtn.disabled = false; 587 submitBtn.textContent = 'ÐолÑÑиÑÑ'; 588 } 589 }; 590 591 submitted = true; 592 hiddenForm.submit(); 593 }); 594 } 595 596 // POPUP ÐÑогÑамма 597 const programBtn = document.getElementById('program-btn'); 598 const programForm = document.getElementById('program-form'); 599 600 if (programBtn) { 601 programBtn.addEventListener('click', function(event) { 602 event.preventDefault(); 603 604 const currentAge = window.age || 6; 605 const ageField = document.getElementById('program-age'); 606 607 let ageValue = ''; 608 switch (parseInt(currentAge)) { 609 case 6: 610 ageValue = '6'; 611 break; 612 case 11: 613 ageValue = '7'; 614 break; 615 case 12: 616 ageValue = '11'; 617 break; 618 case 16: 619 ageValue = '12'; 620 break; 621 default: 622 ageValue = '6'; 623 } 624 625 ageField.value = ageValue; 626 627 ym(97424487, 'reachGoal', 'klik_skach_programmy'); 628 Fancybox.show([{ src: '#popup-program', type: 'inline' }], { 629 dragToClose: false, 630 closeButton: false 631 }); 632 }); 633 } 634 635 if (programForm) { 636 programForm.addEventListener('submit', function(e) { 637 e.preventDefault(); 638 639 const formData = new FormData(programForm); 640 const submitBtn = programForm.querySelector('.btn-submit'); 641 const messageBlock = programForm.querySelector('.form-message'); 642 643 const privacyCheckbox = programForm.querySelector('#program-privacy'); 644 if (!privacyCheckbox.checked) { 645 messageBlock.textContent = 'ÐожалÑйÑÑа, ÑоглаÑиÑеÑÑ Ñ Ð¿Ð¾Ð»Ð¸Ñикой конÑиденÑиалÑноÑÑи'; 646 messageBlock.style.display = 'block'; 647 messageBlock.style.color = 'red'; 648 return false;
649 } 650 651 submitBtn.disabled = true; 652 submitBtn.textContent = 'ÐÑпÑавка...'; 653 654 const email = formData.get('email'); 655 const name = formData.get('name'); 656 const age = formData.get('age'); 657 658 console.group('ð¤ ÐÑпÑавка ÑоÑмÑ: ÐÑогÑамма'); 659 console.log('ÐÑÐµÐ¼Ñ Ð¾ÑпÑавки:', new Date().toLocaleString()); 660 console.log('ÐаннÑе ÑоÑмÑ:', { email, name, age }); 661 console.groupEnd(); 662 663 const iframeName = 'program-iframe-' + Date.now(); 664 const iframe = document.createElement('iframe'); 665 iframe.name = iframeName; 666 iframe.style.display = 'none'; 667 document.body.appendChild(iframe); 668 669 const hiddenForm = document.createElement('form'); 670 hiddenForm.method = 'POST'; 671 hiddenForm.action = 'https://sendsay.ru/backend/tilda/1QEGaj4Uge_p8eNc9O-5CcOg4vhNS5oIzExD4pLZiqi2Yeg'; 672 hiddenForm.target = iframeName; 673 hiddenForm.style.display = 'none'; 674 675 const fields = { 676 'email': email, 677 'name': name, 678 'age': age 679 }; 680 681 Object.keys(fields).forEach(key => { 682 const input = document.createElement('input'); 683 input.type = 'hidden'; 684 input.name = key; 685 input.value = fields[key]; 686 hiddenForm.appendChild(input); 687 }); 688 689 document.body.appendChild(hiddenForm); 690 691 let submitted = false; 692 iframe.onload = function() { 693 if (submitted) { 694 console.group('ð¥ ÐÑÐ²ÐµÑ ÑеÑвеÑа: ÐÑогÑамма'); 695 console.log('ÐÑÐµÐ¼Ñ Ð¾ÑвеÑа:', new Date().toLocaleString()); 696 console.log('ФоÑма оÑпÑавлена ÑÑпеÑно'); 697 console.groupEnd(); 698 699 messageBlock.textContent = 'СпаÑибо! ÐÑовеÑÑÑе ваÑÑ Ð¿Ð¾ÑÑÑ.'; 700 messageBlock.style.color = '#4CAF50'; 701 messageBlock.style.display = 'block'; 702 programForm.reset(); 703 704 if (typeof ym !== 'undefined') { 705 ym(97424487, 'reachGoal', 'lead_skach_programmy'); 706 } 707 708 setTimeout(() => { 709 Fancybox.close(); 710 }, 2000); 711 712 setTimeout(() => { 713 hiddenForm.remove(); 714 iframe.remove(); 715 }, 3000); 716 717 submitBtn.disabled = false; 718 submitBtn.textContent = 'ÐолÑÑиÑÑ'; 719 } 720 }; 721 722 submitted = true; 723 hiddenForm.submit(); 724 }); 725 } 726 727 // POPUP ÐÑÐ¾Ð±Ð½Ð°Ñ Ð½ÐµÐ´ÐµÐ»Ñ 728 const trialBtns = document.querySelectorAll('.trial-week-btn'); 729 const trialForm = document.getElementById('trial-form'); 730 731 if (trialBtns.length > 0) { 732 trialBtns.forEach(btn => { 733 btn.addEventListener('click', function(event) { 734 event.preventDefault(); 735 736 const titleField = trialForm.querySelector('input[name="TITLE"]'); 737 if (titleField) { 738 titleField.value = window.location.href; 739 } 740 741 if (this.classList.contains('diagnostics')) { 742 ym(97424487, 'reachGoal', 'klik_diagnostika_zakr'); 743 } else if (this.classList.contains('result-btn')) { 744 ym(97424487, 'reachGoal', 'klik_zakr_zapis_2blok'); 745 } else if (this.classList.contains('callback-btn')) { 746 ym(97424487, 'reachGoal', 'klik_zakazat_zvonok'); 747 } else if (this.classList.contains('widget-dynamic__message-btn')) { 748 ym(97424487, 'reachGoal', 'klik_widget_poluchit_besplatno'); 749 } 750 751 Fancybox.show([{ src: '#popup-trial', type: 'inline' }], { 752 dragToClose: false,
753 closeButton: false 754 }); 755 }); 756 }); 757 } 758 759 if (trialForm) { 760 trialForm.addEventListener('submit', function(e) { 761 e.preventDefault(); 762 763 const formData = new FormData(trialForm); 764 const submitBtn = trialForm.querySelector('.btn-submit'); 765 const messageBlock = trialForm.querySelector('.form-message'); 766 767 const privacyCheckbox = trialForm.querySelector('#trial-privacy'); 768 if (!privacyCheckbox.checked) { 769 messageBlock.textContent = 'ÐожалÑйÑÑа, ÑоглаÑиÑеÑÑ Ñ Ð¿Ð¾Ð»Ð¸Ñикой конÑиденÑиалÑноÑÑи'; 770 messageBlock.style.display = 'block'; 771 messageBlock.style.color = 'red'; 772 return false; 773 } 774 775 submitBtn.disabled = true; 776 submitBtn.textContent = 'ÐÑпÑавка...'; 777 778 const name = formData.get('name'); 779 const phone = formData.get('phone'); 780 const email = formData.get('email'); 781 const tariff = formData.get('Tariff'); 782 const tipSdelki = formData.get('tip_sdelki'); 783 const typelead = formData.get('typelead'); 784 const title = formData.get('TITLE'); 785 786 const roistatInput = trialForm.querySelector('input[name="roistat"]'); 787 const roistat = roistatInput ? roistatInput.value : ''; 788 789 const data = new URLSearchParams(); 790 data.append('action', 'trial_week_form'); 791 data.append('name', name); 792 data.append('phone', phone); 793 data.append('email', email); 794 data.append('Tariff', tariff); 795 data.append('tip_sdelki', tipSdelki); 796 data.append('typelead', typelead); 797 data.append('TITLE', title); 798 data.append('roistat', roistat); 799 800 const urlParams = new URLSearchParams(window.location.search); 801 ['utm_term', 'utm_source', 'utm_medium', 'utm_content', 'utm_campaign'].forEach(param => { 802 data.append(param, urlParams.get(param) || ''); 803 }); 804 805 console.group('ð¤ ÐÑпÑавка ÑоÑмÑ: ÐÑÐ¾Ð±Ð½Ð°Ñ Ð½ÐµÐ´ÐµÐ»Ñ'); 806 console.log('ÐÑÐµÐ¼Ñ Ð¾ÑпÑавки:', new Date().toLocaleString()); 807 console.log('URL:', '/wp-content/themes/reboot_child/ajax/ajax.php'); 808 console.log('ÐаннÑе ÑоÑмÑ:', Object.fromEntries(data.entries())); 809 console.groupEnd(); 810 811 const xhr = new XMLHttpRequest(); 812 xhr.open('POST', '/wp-content/themes/reboot_child/ajax/ajax.php'); 813 xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); 814 xhr.send(data); 815 816 xhr.onreadystatechange = function() { 817 if (xhr.readyState === 4) { 818 console.group('ð¥ ÐÑÐ²ÐµÑ ÑеÑвеÑа: ÐÑÐ¾Ð±Ð½Ð°Ñ Ð½ÐµÐ´ÐµÐ»Ñ'); 819 console.log('ÐÑÐµÐ¼Ñ Ð¾ÑвеÑа:', new Date().toLocaleString()); 820 console.log('HTTP ÑÑаÑÑÑ:', xhr.status); 821 console.log('СÑÑой оÑвеÑ:', xhr.responseText); 822 823 if (xhr.status === 200) { 824 try { 825 const result = JSON.parse(xhr.responseText); 826 console.log('РаÑпаÑÑеннÑй JSON:', result); 827 console.log('УÑпеÑно:', result.success ? 'â ' : 'â'); 828 console.groupEnd(); 829 830 if (result.success) { 831 messageBlock.textContent = 'СпаÑибо! ÐаÑа заÑвка пÑинÑÑа.'; 832 messageBlock.style.color = '#4CAF50'; 833 messageBlock.style.display = 'block'; 834 trialForm.reset(); 835 836 if (typeof ym !== 'undefined') { 837 ym(97424487, 'reachGoal', 'lead_probnayanedelya'); 838 } 839 840 setTimeout(() => { 841 Fancybox.close(); 842 }, 2000); 843 } else { 844 messageBlock.textContent = result.message || 'ÐÑоизоÑла оÑибка. ÐопÑобÑйÑе еÑе Ñаз.'; 845 messageBlock.style.color = 'red'; 846 messageBlock.style.display = 'block'; 847 } 848 } catch (e) { 849 console.error('â ÐÑибка ÑазбоÑа оÑвеÑа:', e); 850 console.error('ÐÑоблемнÑй ÑекÑÑ:', xhr.responseText); 851 console.groupEnd(); 852 853 messageBlock.textContent = 'ÐÑоизоÑла оÑибка. ÐопÑобÑйÑе еÑе Ñаз.'; 854 messageBlock.style.color = 'red'; 855 messageBlock.style.display = 'block'; 856 } 857 } else { 858 console.error('â HTTP оÑибка:', xhr.status); 859 console.groupEnd(); 860 861 messageBlock.textContent = 'ÐÑоизоÑла оÑибка. ÐопÑобÑйÑе еÑе Ñаз.'; 862 messageBlock.style.color = 'red'; 863 messageBlock.style.display = 'block'; 864 } 865 866 submitBtn.disabled = false;
867 submitBtn.textContent = 'ÐапиÑаÑÑÑÑ'; 868 } 869 }; 870 }); 871 } 872 873 // POPUP ТаÑиÑнÑе ÑоÑÐ¼Ñ (на главной ÑÑÑаниÑе) 874const tarifBtns = document.querySelectorAll('.tarif-form-btn'); 875 876if (tarifBtns.length > 0) { 877 tarifBtns.forEach(btn => { 878 btn.addEventListener('click', function(event) { 879 event.preventDefault(); 880 881 const tariff = this.getAttribute('data-tariff'); 882 let popupId = ''; 883 let goalName = ''; 884 885 if (tariff === 'free') { 886 popupId = '#popup-tarif-diagnostika'; 887 goalName = 'klik_tarify_diagnostika'; 888 } else if (tariff === 'base') { 889 popupId = '#popup-tarif-base'; 890 goalName = 'klik_tarify_base'; 891 } else if (tariff === 'optimal') { 892 popupId = '#popup-tarif-optimal'; 893 goalName = 'klik_tarify_optimalny'; 894 } 895 896 if (typeof ym !== 'undefined' && goalName) { 897 ym(97424487, 'reachGoal', goalName); 898 } 899 900 const popup = document.querySelector(popupId); 901 if (popup) { 902 const tariffField = popup.querySelector('input[name="Tariff"]'); 903 const titleField = popup.querySelector('input[name="TITLE"]'); 904 905 if (tariffField) { 906 tariffField.value = tariff; 907 } 908 909 if (titleField) { 910 titleField.value = window.location.href; 911 } 912 } 913 914 if (popupId) { 915 Fancybox.show([{ src: popupId, type: 'inline' }], { 916 dragToClose: false, 917 closeButton: false 918 }); 919 } 920 }); 921 }); 922} 923 924// ÐбÑабоÑÑик ÑоÑÐ¼Ñ ÐиагноÑÑика 925const tarifDiagnostikaForm = document.getElementById('tarif-diagnostika-form'); 926if (tarifDiagnostikaForm) { 927 tarifDiagnostikaForm.addEventListener('submit', function(e) { 928 e.preventDefault(); 929 handleTarifFormSubmit(tarifDiagnostikaForm, 'lead_tarif_diagnostika'); 930 }); 931} 932 933// ÐбÑабоÑÑик ÑоÑÐ¼Ñ ÐазовÑй 934const tarifBaseForm = document.getElementById('tarif-base-form'); 935if (tarifBaseForm) { 936 tarifBaseForm.addEventListener('submit', function(e) { 937 e.preventDefault(); 938 handleTarifFormSubmit(tarifBaseForm, 'lead_tarif_base'); 939 }); 940} 941 942// ÐбÑабоÑÑик ÑоÑÐ¼Ñ ÐпÑималÑнÑй 943const tarifOptimalForm = document.getElementById('tarif-optimal-form'); 944if (tarifOptimalForm) { 945 tarifOptimalForm.addEventListener('submit', function(e) { 946 e.preventDefault(); 947 handleTarifFormSubmit(tarifOptimalForm, 'lead_tarif_optimal'); 948 }); 949} 950 951// ÐбÑÐ°Ñ ÑÑнкÑÐ¸Ñ Ð¾Ð±ÑабоÑки оÑпÑавки ÑаÑиÑнÑÑ ÑоÑм 952function handleTarifFormSubmit(form, goalName) { 953 const formData = new FormData(form); 954 const submitBtn = form.querySelector('.btn-submit'); 955 const messageBlock = form.querySelector('.form-message'); 956 957 const privacyCheckbox = form.querySelector('input[name="privacy"]'); 958 if (!privacyCheckbox.checked) { 959 messageBlock.textContent = 'ÐожалÑйÑÑа, ÑоглаÑиÑеÑÑ Ñ Ð¿Ð¾Ð»Ð¸Ñикой конÑиденÑиалÑноÑÑи'; 960 messageBlock.style.display = 'block'; 961 messageBlock.style.color = 'red'; 962 return false; 963 } 964 965 submitBtn.disabled = true; 966 submitBtn.textContent = 'ÐÑпÑавка...'; 967 968 const name = formData.get('name'); 969 const phone = formData.get('phone'); 970 const email = formData.get('email'); 971 const tariff = formData.get('Tariff'); 972 const tipSdelki = formData.get('tip_sdelki'); 973 const typelead = formData.get('typelead'); 974 const title = formData.get('TITLE'); 975 976 const roistatInput = form.querySelector('input[name="roistat"]'); 977 const roistat = roistatInput ? roistatInput.value : ''; 978 979 const data = new URLSearchParams(); 980 data.append('action', 'tarif_form'); 981 data.append('name', name); 982 data.append('phone', phone); 983 data.append('email', email); 984 data.append('Tariff', tariff); 985 data.append('tip_sdelki', tipSdelki); 986 data.append('typelead', typelead); 987 data.append('TITLE', title); 988 data.append('roistat', roistat); 989
990 const urlParams = new URLSearchParams(window.location.search); 991 ['utm_term', 'utm_source', 'utm_medium', 'utm_content', 'utm_campaign'].forEach(param => { 992 data.append(param, urlParams.get(param) || ''); 993 }); 994 995 console.group('ð¤ ÐÑпÑавка ÑоÑмÑ: ТаÑÐ¸Ñ ' + tariff); 996 console.log('ÐÑÐµÐ¼Ñ Ð¾ÑпÑавки:', new Date().toLocaleString()); 997 console.log('URL:', '/wp-content/themes/reboot_child/ajax/ajax.php'); 998 console.log('ÐаннÑе ÑоÑмÑ:', Object.fromEntries(data.entries())); 999 console.groupEnd(); 1000 1001 const xhr = new XMLHttpRequest(); 1002 xhr.open('POST', '/wp-content/themes/reboot_child/ajax/ajax.php'); 1003 xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); 1004 xhr.send(data); 1005 1006 xhr.onreadystatechange = function() { 1007 if (xhr.readyState === 4) { 1008 console.group('ð¥ ÐÑÐ²ÐµÑ ÑеÑвеÑа: ТаÑÐ¸Ñ ' + tariff); 1009 console.log('ÐÑÐµÐ¼Ñ Ð¾ÑвеÑа:', new Date().toLocaleString()); 1010 console.log('HTTP ÑÑаÑÑÑ:', xhr.status); 1011 console.log('СÑÑой оÑвеÑ:', xhr.responseText); 1012 1013 if (xhr.status === 200) { 1014 try { 1015 const result = JSON.parse(xhr.responseText); 1016 console.log('РаÑпаÑÑеннÑй JSON:', result); 1017 console.log('УÑпеÑно:', result.success ? 'â ' : 'â'); 1018 console.groupEnd(); 1019 1020 if (result.success) { 1021 messageBlock.textContent = 'СпаÑибо! ÐаÑа заÑвка пÑинÑÑа.'; 1022 messageBlock.style.color = '#4CAF50'; 1023 messageBlock.style.display = 'block'; 1024 form.reset(); 1025 1026 if (typeof ym !== 'undefined' && goalName) { 1027 ym(97424487, 'reachGoal', goalName); 1028 } 1029 1030 setTimeout(() => { 1031 Fancybox.close(); 1032 }, 2000); 1033 } else { 1034 messageBlock.textContent = result.message || 'ÐÑоизоÑла оÑибка. ÐопÑобÑйÑе еÑе Ñаз.'; 1035 messageBlock.style.color = 'red'; 1036 messageBlock.style.display = 'block'; 1037 } 1038 } catch (e) { 1039 console.error('â ÐÑибка ÑазбоÑа оÑвеÑа:', e); 1040 console.error('ÐÑоблемнÑй ÑекÑÑ:', xhr.responseText); 1041 console.groupEnd(); 1042 1043 messageBlock.textContent = 'ÐÑоизоÑла оÑибка. ÐопÑобÑйÑе еÑе Ñаз.'; 1044 messageBlock.style.color = 'red'; 1045 messageBlock.style.display = 'block'; 1046 } 1047 } else { 1048 console.error('â HTTP оÑибка:', xhr.status); 1049 console.groupEnd(); 1050 1051 messageBlock.textContent = 'ÐÑоизоÑла оÑибка. ÐопÑобÑйÑе еÑе Ñаз.'; 1052 messageBlock.style.color = 'red'; 1053 messageBlock.style.display = 'block'; 1054 } 1055 1056 submitBtn.disabled = false; 1057 submitBtn.textContent = form.id === 'tarif-diagnostika-form' ? 'ÐапиÑаÑÑÑÑ' : 'ÐплаÑиÑÑ'; 1058 } 1059 }; 1060} 1061});
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.