PageSourceSearch

https://eudoc.com.ua/wp-content/themes/EUdoc/js/first.js?ver=1784799382

js eudoc.com.ua collected 2026-10-05 10:33:21 UTC 11,749 bytes, 373 lines download raw bytes

1// lozad//
2const observer = lozad();
3observer.observe();
4let header = document.querySelector(".header");
5let mob_mini_menu = document.querySelector(".mob_mini_menu");
6// lozad//
7
8("use strict");
9
10function getCookie(name) {
11  return document.cookie
12    .split("; ")
13    .find((row) => row.startsWith(`${name}=`))
14    ?.split("=")[1];
15}
16const forms = document.querySelectorAll(".srm ");
17
18function check_ga() {
19  const dataforinp = getCookie("_ga");
20  if (dataforinp) {
21    const forms = document.querySelectorAll("form");
22    forms &&
23      forms.length &&
24      forms.forEach(function (elm) {
25        elm.insertAdjacentHTML(
26          "beforeend",
27          `<input type="hidden" class="utm" id="google_client_id" name="google_client_id" value="${dataforinp}" />`,
28        );
29      });
30  } else {
31    setTimeout(check_ga, 500);
32  }
33}
34function check_ya() {
35  const dataforinp = getCookie("_ym_uid") ? getCookie("_ym_uid") : null;
36  if (dataforinp) {
37    const forms = document.querySelectorAll(
38      "form:not(.searchform):not(#commentform):not(.quiz_query_items):not(.subscribe_form)",
39    );
40    forms &&
41      forms.length &&
42      forms.forEach(function (elm) {
43        elm.insertAdjacentHTML(
44          "beforeend",
45          `<input type="hidden" class="utm" id="yandex_client_id" name="yandex_client_id" value="${dataforinp}" />`,
46        );
47      });
48  } else {
49    setTimeout(check_ya, 1000);
50  }
51}
52document.addEventListener("DOMContentLoaded", function () {
53  check_ga();
54  check_ya();
55});
56
57document.addEventListener("DOMContentLoaded", () => {
58  var url = window.location.search;
59  const urlSearchParams = new URLSearchParams(window.location.search);
60  const params = Object.fromEntries(urlSearchParams.entries());
61  var utmItems = [
62    "utm_source",
63    "utm_medium",
64    "utm_term",
65    "utm_content",
66    "utm_campaign",
67    "matchtype",
68    "device",
69    "keyword",
70    "adgroupid",
71    "campaignid",
72    "region",
73    "_openstat",
74    "gclid",
75    "yclid",
76    "fbclid",
77    "wbraid",
78    "gad",
79    "utm_region",
80    "utm_placement",
81    "utm_device",
82  ];
83  const fieldsForReplace = [
84    {
85      from: "_openstat",
86      to: "openstat",
87    },
88    {
89      from: "wbraid",
90      to: "gclid",
91    },
92  ];
93  if (params) {
94    for (let [key, value] of Object.entries(params)) {
95      document.cookie = key + "=" + value + "; path=/";
96    }
97  }
98
99  if (!document.cookie.includes("utm_source")) {
100    const curReferer = document.referrer;
101    let urlHref = document.location.href;
102    urlHref = urlHref.slice(0, 90);
103    let ref;
104
105    if (curReferer.length > 0 && !curReferer.indexOf("eudoc") != -1) {
106      switch (true) {
107        case curReferer.indexOf("google") != -1:
108          document.cookie = "utm_source=google; path=/";
109          document.cookie = "utm_medium=seo; path=/";
110          break;
111        case curReferer.indexOf("yandex") != -1:
112          document.cookie = "utm_source=yandex; path=/";
113          document.cookie = "utm_medium=seo; path=/";
114          break;
115        case curReferer.indexOf("rambler") != -1:
116          document.cookie = "utm_source=rambler; path=/";
117          document.cookie = "utm_medium=seo; path=/";
118          break;
119        case curReferer.indexOf("bing") != -1:
120          document.cookie = "utm_source=bing; path=/";
121          document.cookie = "utm_medium=seo; path=/";
122          break;
123        case curReferer.indexOf("mail") != -1:
124          document.cookie = "utm_source=mail; path=/";
125          document.cookie = "utm_medium=seo; path=/";
126          break;
127        case curReferer.indexOf("duckduckgo") != -1:
128          document.cookie = "utm_source=duckduckgo; path=/";
129          document.cookie = "utm_medium=seo; path=/";
130          break;
131        case curReferer.indexOf("yahoo") != -1:
132          document.cookie = "utm_source=yahoo; path=/";
133          document.cookie = "utm_medium=seo; path=/";
134          break;
135        case curReferer.indexOf("chatgpt") != -1:
136          document.cookie = "utm_source=chatgpt; path=/";
137          document.cookie = "utm_medium=seo; path=/";
138          break;
139        case curReferer.indexOf("perplexity") != -1:
140          document.cookie = "utm_source=perplexity; path=/";
141          document.cookie = "utm_medium=seo; path=/";
142          break;
143        case curReferer.indexOf("centrum") != -1:
144          document.cookie = "utm_source=centrum; path=/";
145          document.cookie = "utm_medium=seo; path=/";
146          break;
147        case curReferer.indexOf("http://ya.ru") != -1:
148          document.cookie = "utm_source=http://ya.ru; path=/";
149          document.cookie = "utm_medium=seo; path=/";
150          break;
151        case curReferer.indexOf("instagram") != -1:
152          document.cookie = "utm_source=instagram; path=/";
153          document.cookie = "utm_medium=smm; path=/";
154          break;
155        case curReferer.indexOf("facebook") != -1:
156          document.cookie = "utm_source=facebook; path=/";
157          document.cookie = "utm_medium=smm; path=/";
158          break;
159        case curReferer.indexOf("vk.com") != -1:
160          document.cookie = "utm_source=vk.com; path=/";
161          document.cookie = "utm_medium=smm; path=/";
162          break;
163        case curReferer.indexOf("pinterest") != -1:
164          document.cookie = "utm_source=pinterest; path=/";
165          document.cookie = "utm_medium=smm; path=/";
166          break;
167        case curReferer.indexOf("linkedin") != -1:
168          document.cookie = "utm_source=linkedin; path=/";
169          document.cookie = "utm_medium=smm; path=/";
170          break;
171        case curReferer.indexOf("ok.ru") != -1:
172          document.cookie = "utm_source=ok.ru; path=/";
173          document.cookie = "utm_medium=smm; path=/";
174          break;
175        case curReferer.indexOf("youtube") != -1:
176          document.cookie = "utm_source=youtube; path=/";
177          document.cookie = "utm_medium=video; path=/";
178          break;
179        case curReferer.indexOf("tiktok") != -1:
180          document.cookie = "utm_source=tiktok; path=/";
181          document.cookie = "utm_medium=video; path=/";
182          break;
183        case curReferer.indexOf("rutube") != -1:
184          document.cookie = "utm_source=rutube; path=/";
185          document.cookie = "utm_medium=video; path=/";
186          break;
187        default:
188          document.cookie = `utm_source=${curReferer}; path=/`;
189          break;
190      }
191      document.cookie = "utm_campaign=organic; path=/";
192      document.cookie = `utm_content=${urlHref}; path=/`;
193    }
194  }
195
196  const utmItemsFormatted = utmItems.reduce((ac, item) => {
197    const value = getCookie(item);
198    if (value) {
199      const oldUtmName = item;
200      if (fieldsForReplace.some((f) => f.from === item)) {
201        const newName = fieldsForReplace.find((f) => f.from === item);
202        newName && (item = newName.to);
203      }
204      ac.push({ name: item, oldUtmName, value });
205    }
206    return ac;
207  }, []);
208
209  forms &&
210    forms.length &&
211    forms.forEach(function (form) {
212      if (utmItemsFormatted.length) {
213        for (let utmItem of utmItemsFormatted) {
214          const currentUtmInputs = form.querySelectorAll(
215            'input[name="' + utmItem.name + '"]',
216          );
217
218          currentUtmInputs &&
219            !currentUtmInputs.length &&
220            form.insertAdjacentHTML(
221              "beforeend",
222              '<input class="utm" name="' +
223                utmItem.name +
224                '" type="hidden" value="' +
225                utmItem.value +
226                '">',
227            );
228        }
229      }
230      form.addEventListener("submit", (e) => {
231        e.preventDefault();
232        if (form.classList.contains("form_only_phone")) {
233          form.name.value = form.phone.value.replace(/\D/g, "");
234          form.email.value = `${form.phone.value.replace(/\D/g, "")}@noemail.com`;
235        }
236        let data = new FormData(form);
237        fetch("/wp-content/themes/EUdoc/lead.php", {
238          method: "POST",
239          body: data,
240        })
241          .then((response) => response.json())
242          .then((resData) => {
243            if (!resData.error) {
244              window.location.href = resData.url;
245            } else {
246              let errorName = resData.errors.name;
247              let errorEmail = resData.errors.email;
248              let errorPhone = resData.errors.phone;
249
250              if (errorName) {
251                form.querySelector("input[name=name]").classList.add("error");
252              } else {
253                form
254                  .querySelector("input[name=name]")
255                  .classList.remove("error");
256              }
257              if (errorPhone) {
258                form.querySelector("input[name=phone]").classList.add("error");
259              } else {
260                form
261                  .querySelector("input[name=phone]")
262                  .classList.remove("error");
263              }
264              if (errorEmail) {
265                form.querySelector("input[name=email]").classList.add("error");
266              } else {
267                form
268                  .querySelector("input[name=email]")
269                  .classList.remove("error");
270              }
271            }
272          });
273      });
274    });
275});
276
277// popup
278let obratPopUpOverlay = document.querySelector("#popup");
279let checkOpenModal = sessionStorage.getItem("openModal");
280setTimeout(function show30secModal() {
281  if (!checkOpenModal) {
282    document.location = "#popup";
283    sessionStorage.setItem("openModal", 300);
284  }
285}, 10500);
286document.addEventListener(
287  "mouseleave",
288  function (e) {
289    if (e.clientY < 0) {
290      let kb = JSON.parse(sessionStorage.getItem("openModal"));
291      if (!(kb > 0 && kb <= 300) || kb === null) {
292        document.location = "#popup";
293        sessionStorage.setItem("openModal", 300);
294      }
295    }
296  },
297  false,
298);
299setInterval(function checkOpenModalValue() {
300  let ka = sessionStorage.getItem("openModal");
301  if (ka > 0) {
302    ka -= 1;
303  }
304  sessionStorage.setItem("openModal", ka);
305}, 1000);
306
307// popup
308
309// input focus
310const inputs = document.querySelectorAll("input , textarea");
311const label = document.querySelectorAll("input + label , textarea + label");
312inputs.forEach((input, index) => {
313  input.addEventListener("focus", () => {
314    input.classList.remove("error");
315    if (
316      input.nextElementSibling &&
317      input.nextElementSibling.tagName === "LABEL"
318    ) {
319      input.nextElementSibling.classList.add("hidden");
320    }
321  });
322  input.addEventListener("blur", () => {
323    if (
324      input.nextElementSibling &&
325      input.nextElementSibling.tagName === "LABEL"
326    ) {
327      if (input.value.length == 0) {
328        input.nextElementSibling.classList.remove("hidden");
329      }
330    }
331  });
332});
333// input focus
334// burger
335const burger = document.querySelector(".burger");
336const header_wrap = document.querySelector(".header_wrap");
337burger.addEventListener("click", () => {
338  burger.classList.toggle("active");
339  header_wrap.classList.toggle("active");
340});
341// burger
342// наявність скробару
343function checkScrollbar() {
344  if (document.body.scrollWidth > window.innerWidth) {
345    document.body.classList.add("has_scrollbar");
346  }
347}
348
349window.addEventListener("resize", checkScrollbar);
350checkScrollbar();
351// наявність скробару
352
353[...document.querySelectorAll(".menu-item-has-children")].forEach((el) => {
354  el.addEventListener("click", (e) => {
355    el.classList.toggle("open");
356  });
357});
358
359function freezeScroll(e) {
360  e.preventDefault();
361}
362
363if (window.location.hash === "#popup") {
364  window.addEventListener("touchmove", freezeScroll, { passive: false });
365}
366
367window.addEventListener("hashchange", () => {
368  if (window.location.hash === "#popup") {
369    window.addEventListener("touchmove", freezeScroll, { passive: false });
370  } else {
371    window.removeEventListener("touchmove", freezeScroll);
372  }
373});

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.