var STORE = { data: [], meta: { isMoscow: false }, } $(document).ready(function () { window.mySuccessFunction = function ($form) { var formresult = $form.data("tildaformresult"); var leadid = formresult.tranid; var sendData = {}; $($form.serializeArray()).each(function (i, el) { sendData[el.name.toLowerCase()] = el.value; }); sendData["leadid"] = leadid; sendData["url"] = window.location.href; sendData["uri"] = window.location.pathname.slice(1); sendData["product"] = $form.find('select[name="type"] option:selected').data("product") || $form.find('[name="product"]').val(); // Utm if (window.location.search) { utm(sendData); } $.ajax({ url: "https://likecentre.ru/lead", type: "POST", headers: { "X-Requested-With": "XMLHttpRequest", }, data: sendData, timeout: 6000, async: false, success: function (response) { if (response && response.url) { var isURI = new RegExp("likecentre.ru", "g").test(response.url); window.location.href = isURI ? response.url : "https://likecentre.ru/" + response.url; } }, }); }; setTimeout(function () { // Зеро блок можно чекнуть только через 3 секунды $(".js-form-proccess").each(function () { $(this).data("success-callback", "window.mySuccessFunction"); }); }, 3000); init(); }); $(window).on('load', function() { $('[name="city"]').on('input', changeCity); }) function init() { $.ajax({ url: "https://likecentre.ru/leadform", type: "GET", headers: { "X-Requested-With": "XMLHttpRequest", }, data: "uri=" + window.location.pathname.slice(1), timeout: 6000, async: false, success: function (response) { var data = JSON.parse(response); STORE.data = data.data; addPrices(); }, error: function (error) { console.error(error) } }); } function utm(sendData) { var utmToFind = [ "utm_source", "utm_medium", "utm_campaign", "utm_term", "utm_content", ]; var formUtmKeys = { utm_source: "sb_current_src", utm_medium: "sb_current_mdm", utm_campaign: "sb_current_cmp", utm_term: "sb_current_trm", utm_content: "sb_current_cnt", }; var regexp = new RegExp("(" + utmToFind.join("|") + ")=(.*?)(&|$)", "g"); var utmArr = window.location.search.matchAll(regexp); for (var utm of utmArr) { if (utm[1] && utm[2] && formUtmKeys[utm[1]]) { sendData[formUtmKeys[utm[1]]] = utm[2]; } } return sendData; } function createTypeOptions() { var prices = STORE.data.fields.find(function (item) { return item.name == "prices"; }); var pricesArray = prices.value; if (pricesArray.length === 0) { return; } var options = pricesArray.map(function (option, idx) { if (typeof option['moscow'] !== "undefined" && option.moscow !== STORE.meta.isMoscow) { return; } return ( '" ); }); STORE.data.optionsArray = options.join(""); return; } function createHiddenPrice(data) { return `` } function createPricesSelect(inputStyles, inputTitle) { var title; if (inputTitle) { title = inputTitle.cloneNode(); title.innerHTML = 'Пакеты' title = title.outerHTML } console.log(title); return `
${title || ''}
`; } function addPrices() { $(window).on('load', () => { var prices = STORE.data.fields.find(item => item.name == "prices"); $(".js-form-proccess").each(function (idx, form) { var priceEl; var inputStyle = form.querySelector("input").getAttribute("style"); var inputTitle = form.querySelector(".t-input-group").querySelector(".t-input-title"); if (prices.value.length === 1 && prices.value[0].type === null) { priceEl = createHiddenPrice(prices.value[0]) } else { createTypeOptions(); priceEl = createPricesSelect(inputStyle, inputTitle); } $(priceEl).insertBefore(form.querySelector(".t-form__errorbox-middle")); }); }) } function injectOptionsInSelect(form) { var select = form.querySelector('[data-form-item="select"]'); select.innerHTML = STORE.data.optionsArray; } function changeCity(event) { var localIsMoscow = STORE.meta.isMoscow; var input = event.currentTarget; var city = input.value; STORE.meta.isMoscow = /москва/i.test(city); if (localIsMoscow != STORE.meta.isMoscow) { createTypeOptions(); var parentForm = event.currentTarget.closest('form'); injectOptionsInSelect(parentForm); debugger } }