function setCookie(cname, cvalue, exdays) { var d = new Date(); d.setTime(d.getTime() + (exdays*24*60*60*1000)); var expires = "expires="+ d.toUTCString(); document.cookie = cname + "=" + encodeURI(cvalue) + ";" + expires + ";path=/"; } function getCookie(cname) { var name = cname + "="; var decodedCookie = decodeURIComponent(document.cookie); var ca = decodedCookie.split(';'); for(var i = 0; i { fetch("https://ipapi.co/json") .then(res => res.json()) .then(data => callback(data.country_code)) .catch(() => callback("ru")); }, utilsScript: "https://app.allwidgets.ru/s/callback/vendor/intl-tel-input/js/utils.js", }); iti.promise.then(function() { var countryNames = lkdm_callback_widget_shadow.shadowRoot.querySelectorAll('.iti__country-name'); countryNames.forEach(function(nameElement) { var fullText = nameElement.innerText; var localName = fullText.split("(")[1]; if (localName) { nameElement.innerText = localName.replace(")", "").trim(); } }); var initialPlaceholder = input.placeholder; var initialMask = placeholderToMask(initialPlaceholder); applyMask(input, initialMask); }); function placeholderToMask(placeholder) { return placeholder.replace(/\d/g, '0'); } function applyMask(input, mask) { input.removeEventListener('input', input._maskHandler); input._maskHandler = function(e) { lkdm_callback_widget_shadow.shadowRoot.querySelector("input[name='phone']").classList.remove("lkdm_validate_error"); var value = e.target.value.replace(/\D/g, ''); var maskedValue = ""; for (var i = 0, j = 0; i < mask.length && j < value.length; i++) { if (mask[i] === "0") { maskedValue += value[j]; j++; } else { maskedValue += mask[i]; } } e.target.value = maskedValue; }; input.addEventListener('input', input._maskHandler); } input.addEventListener('countrychange', function() { var placeholder = input.placeholder; var mask = placeholderToMask(placeholder); applyMask(input, mask); input.value = ''; }); } function isValidPhoneNumberByMask(phone, mask) { var regex = mask.replace(/\d/g, '\\d').replace(/[()+\-\s]/g, '\\$&'); var pattern = new RegExp('^' + regex + '$'); return pattern.test(phone); } window.addEventListener("load", function (e) { lkdm_callback_widget_shadow.shadowRoot.querySelector(".root").style.display = 'block'; callbackWidget(optionsJSON) lkdm_callback_widget_shadow.shadowRoot.addEventListener("click", (event) => { if (event.target.closest("[data-callback-open]")) { event.target.closest("[data-callback]").classList.add("lt-xbutton-active") } if (event.target.closest("[data-callback-close]")) { event.target.closest("[data-callback]").classList.remove("lt-xbutton-active") event.target.closest("[data-callback]").classList.remove("lt-status-busy") } if (event.target.closest("[data-callback-show]")) { lkdm_callback_widget_shadow.shadowRoot.querySelector(".root").classList.add("-lt-callback-open-") } if (event.target.closest("[data-callback-hide]")) { lkdm_callback_widget_shadow.shadowRoot.querySelector(".root").classList.remove("-lt-callback-open-") } if (event.target.closest("[data-success-close]")) { lkdm_callback_widget_shadow.shadowRoot.querySelector(".lt-callback-success").style.opacity = 0; lkdm_callback_widget_shadow.shadowRoot.querySelector(".lt-callback-success").style.visibility = 'hidden'; lkdm_callback_widget_shadow.shadowRoot.querySelector(".root").classList.remove("-lt-callback-open-"); } const lkdm_callback_form_1 = lkdm_callback_widget_shadow.shadowRoot.querySelector(".lt-xbutton-form-action"); if (lkdm_callback_form_1) { lkdm_callback_form_1.addEventListener("submit", (event) => { event.preventDefault(); let lkdm_callback_sendButton_1 = lkdm_callback_form_1.querySelector('[data-widget-send]'); if (lkdm_callback_sendButton_1) { lkdm_callback_sendButton_1.click(); } }); } const lkdm_callback_form_2 = lkdm_callback_widget_shadow.shadowRoot.querySelector(".lt-xbutton-form-action2"); if (lkdm_callback_form_2) { lkdm_callback_form_2.addEventListener("submit", (event) => { event.preventDefault(); let lkdm_callback_sendButton_2 = lkdm_callback_form_2.querySelector('[data-callback-send-2]'); if (lkdm_callback_sendButton_2) { lkdm_callback_sendButton_2.click(); } }); } if (event.target.closest("[data-widget-send]")) { var lkdm_elem_2_step = event.target.closest("[data-callback]"); var phone = lkdm_callback_widget_shadow.shadowRoot.querySelector(".lkdm_phone").value; var mask = lkdm_callback_widget_shadow.shadowRoot.querySelector(".lkdm_phone").placeholder; var http = new XMLHttpRequest(); var url = 'https://app.allwidgets.ru/s/callback/submit/index.php'; var params = 'uuid=cda0d25d-de3d-4a31-952f-f41054dfa940&phone=' + phone + '&referer=' + referer + '&start_url=' + start_url + '&start_url_title=' + start_url_title + '&order_url_title=' + order_url_title; if (!isValidPhoneNumberByMask(phone, mask)) { lkdm_callback_widget_shadow.shadowRoot.querySelector(".lkdm_phone").classList.add("lkdm_validate_error"); } else { http.open('POST', url, true); http.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); http.onreadystatechange = function() { if(http.readyState == 4 && http.status == 200 && http.responseText == 'ok') { lkdm_callback_widget_shadow.shadowRoot.querySelector(".lt-xbutton-status-busy-txt-h1").innerHTML = 'Спасибо за обращение!'; lkdm_callback_widget_shadow.shadowRoot.querySelector(".lt-xbutton-status-busy-txt-p").innerHTML = 'Мы свяжемся с вами в ближайшее время'; } else { lkdm_callback_widget_shadow.shadowRoot.querySelector(".lt-xbutton-status-busy-txt-h1").innerHTML = 'При отправке заявки произошла ошибка'; lkdm_callback_widget_shadow.shadowRoot.querySelector(".lt-xbutton-status-busy-txt-p").innerHTML = 'Пожалуйста, попробуйте позже'; } lkdm_elem_2_step.classList.add("lt-status-busy") } http.send(params); } } if (event.target.closest("[data-callback-send-2]")) { var phone = lkdm_callback_widget_shadow.shadowRoot.querySelector(".lkdm_phone2 ").value; var mask = lkdm_callback_widget_shadow.shadowRoot.querySelector(".lkdm_phone").placeholder; var http = new XMLHttpRequest(); var url = 'https://app.allwidgets.ru/s/callback/submit/index.php'; var params = 'uuid=cda0d25d-de3d-4a31-952f-f41054dfa940&phone=' + phone + '&referer=' + referer + '&start_url=' + start_url + '&start_url_title=' + start_url_title + '&order_url_title=' + order_url_title; if (!isValidPhoneNumberByMask(phone, mask)) { lkdm_callback_widget_shadow.shadowRoot.querySelector(".lkdm_phone").classList.add("lkdm_validate_error"); } else { http.open('POST', url, true); http.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); http.onreadystatechange = function() { if(http.readyState == 4 && http.status == 200 && http.responseText == 'ok') { lkdm_callback_widget_shadow.shadowRoot.querySelector(".lt-callback-success .lt-callback-title").innerHTML = 'Спасибо за обращение!'; lkdm_callback_widget_shadow.shadowRoot.querySelector(".lt-callback-success .lt-callback-text ").innerHTML = 'Мы свяжемся с вами в ближайшее время'; } else { lkdm_callback_widget_shadow.shadowRoot.querySelector(".lt-callback-success .lt-callback-title").innerHTML = 'При отправке заявки произошла ошибка'; lkdm_callback_widget_shadow.shadowRoot.querySelector(".lt-callback-success .lt-callback-text ").innerHTML = 'Пожалуйста, попробуйте позже'; } lkdm_callback_widget_shadow.shadowRoot.querySelector(".lt-callback-success").style.opacity = 1; lkdm_callback_widget_shadow.shadowRoot.querySelector(".lt-callback-success").style.visibility = 'visible'; } http.send(params); } } }) lkdm_callback_widget_shadow.shadowRoot.addEventListener("click", (event) => { if (event.target.closest("[data-callback-send]")) { lkdm_callback_widget_shadow.shadowRoot.querySelector("body").classList.remove("-lt-callback-open-") lkdm_callback_widget_shadow.shadowRoot.querySelector("body").classList.add("-lt-success-open-") } }) initPhoneInput(".lkdm_phone"); initPhoneInput(".lkdm_phone2"); }); window.onload = function() { lkdm_callback_widget_shadow.style.display = "block"; }; setTimeout(() => lkdm_callback_widget_shadow.style.display = "block", 2000);