PageSourceSearch

https://dsp.gov.ua/wp-content/themes/dsp/assets/js/scripts.js?ver=1757681367

js dsp.gov.ua collected 2026-10-02 07:19:22 UTC 16,113 bytes, 493 lines download raw bytes

1$(document).ready(function($){
2	var actElement   = $(".header-left-click");
3	var closeElement = $(".modal-links-top");
4
5	$(actElement).click(function(){
6		if(closeElement.hasClass('show')){
7			$(closeElement).removeClass('show');
8		}else{
9			$(closeElement).addClass('show');		
10		}
11	});
12	$(document).click(function(e){
13		if(!actElement.is(e.target) && actElement.has(e.target).length == 0) {
14			$(closeElement).removeClass('show');
15		}
16	});
17
18	$('.search-bar-header').click(function(){
19		$('.search-form-wrap').slideToggle();
20	});
21
22	$('.search-bar-header-mob').click(function(){
23		$('.search-form-wrap').slideToggle();
24	});
25
26	$(".mobile-menu-bars").click(function(){
27		$(".menu-bar-top").toggleClass("load");
28		$("body").toggleClass("lock");
29	});
30
31	$(".main-menu .parent").click(function(){
32		$(".back-to-parent").addClass("load");
33		$(this).siblings("ul").addClass("load");
34		$('.back-to-parent span').text($(this).text());
35	});
36
37	$(".back-to-parent").click(function(){
38		$(".main-menu-sub").removeClass("load");
39		$(".back-to-parent").removeClass("load");
40	});
41	
42	$('.main-menu .fa-times-circle').click(function(){
43		$('.menu-bar-top').removeClass("load");
44		$("body").toggleClass("lock");
45	});
46
47	function less991(){
48		if($(window).width() < 991){
49			$('.header-left').appendTo($('.menu-bar-top'));
50			$('.header-left').addClass("load");
51			$('.header-left').removeClass("col-md-3");
52
53			$('.modal-links-top').appendTo($('.header-left'));
54			$('.modal-links-top').addClass("load-links");
55
56			/*$('.header-right').appendTo($('.menu-bar-top'));
57			$('.header-right').addClass("load");*/
58
59			$('.search-form-wrap').appendTo($('.header-wrap'));
60		}
61	}
62	function more991(){
63		if($(window).width() > 991){
64			topFixedNav();
65		}
66	}
67	less991();
68	more991();
69
70	$(window).resize(function() {
71		if($(window).width() < 991){
72			less991();
73		}		
74		if($(window).width() > 991){
75			$('.topbar-fix-mob').after($('.header-left'));
76			$('.header-left').removeClass("load");
77			$('.header-left').addClass("col-md-3");
78
79			$('.header-left').after($('.modal-links-top'));
80			$('.modal-links-top').removeClass("load-links");
81
82			/*$('.header-right').appendTo($('.header-right-wrap'));
83			$('.header-right').removeClass("load");*/
84
85			$('.search-form-wrap').appendTo($('.menu-bar-top'));
86			topFixedNav();
87		}
88	});
89
90	//Fixed top nav
91	function topFixedNav(){
92		$(window).scroll(function(){
93			var topMenu = $('.menu-bar-top');
94			var dspName = $('.dsp-name');
95		      if ($(this).scrollTop() > 200) {
96		          topMenu.addClass('fixed-top');
97		          dspName.addClass('fixed-top');
98		      } else {
99		          topMenu.removeClass('fixed-top');
100		          dspName.removeClass('fixed-top');
101		      }
102		});
103	}
104
105	$('.main-menu-sub').mouseover(function(){
106		$(this).parent('li').addClass("li-hover");
107	});
108	$('.main-menu-sub').mouseout(function(){
109		$(this).parent('li').removeClass("li-hover");
110	});
111
112	$('.slide-single').slick({
113		dots:true
114	});
115
116	//Google Analytics
117	var singlePush50 = false;
118	var singlePush100 = false;
119	$(window).scroll(function(){
120		var docHeight = $(document).height();
121		var halfDocHeight = docHeight / 2;
122		var scrollHeight = $(document).scrollTop();
123		var wHeight = $(window).height();
124		if(!singlePush50){
125			if(scrollHeight + wHeight >= halfDocHeight){
126				gtag('event', 'scroll_50', {'event_category' : 'userScrolling', 'event_action' : 'scroll50'});
127				singlePush50 = true;
128			}
129		}
130		if(!singlePush100){
131			if(scrollHeight + wHeight >= docHeight){
132				gtag('event', 'scroll_100', {'event_category' : 'userScrolling', 'event_action' : 'scroll100'});
133				singlePush100 = true;
134			}
135		}
136	});
137
138	//FAQ
139	$('.tablinks').click(function(){
140	    var tabData = $(this).attr('tab-data');
141	    $('.tab button').removeClass('active-tab');
142	    $('.tabcontent').removeClass('show-c');
143	    $('.child-section-ul-questions').removeClass('show-c');
144	    
145	    $(this).addClass('active-tab');
146	    var idVar = '#tab-' + tabData;
147	    $(idVar).addClass('show-c');
148	    $(idVar).children('ul').addClass('show-c');
149	});
150
151	$('.parent-section-li').click(function(){
152		var parentSection = $('.parent-section-li');
153		var childSection = $('.child-section-ul');
154		$(parentSection).removeClass('active-tab');
155		$(childSection).removeClass('show-c');
156		$('.child-section-ul-questions').removeClass('show-c');
157		
158		$(this).children('ul').addClass('show-c');
159		$(this).addClass('active-tab');
160	});
161
162	$('.child-section-ul-li').click(function(){
163		var childSectionUlLi = $('.child-section-ul-li');
164		var childSectionUlQuestions = $('.child-section-ul-questions');
165		$(childSectionUlLi).removeClass('active-tab');
166		$(childSectionUlQuestions).removeClass('show-q');
167
168		$(this).children('ul').addClass('show-q');
169		$(this).addClass('active-tab');
170	});
171
172	//Select options links
173	$('#country-list').change(function(){
174		$("select option:selected").each(function(){
175			var choose = $(this).val();
176		    if(choose == 'choose'){
177	     		return false;
178		    } else{
179	     		window.open(choose);
180		    }		     
181		});
182	});
183
184
185});
186
187
188window.onload = function(){
189
190	//Google Analytics
191	var clickFacebook = document.querySelector(".social-bar-header .fa-facebook-square");
192	var clickYoutube = document.querySelector(".social-bar-header .fa-youtube");
193	var clickPzzp = document.querySelector(".main-tabs-item.spes-size-1");
194	var clickDerzhControl = document.querySelector(".main-tabs-item.spes-size-2");
195	var clickPodolannyaNp = document.querySelector(".tabs-right-item .pnp-click");
196	var clickForAtoInfo = document.querySelector(".main-tabs-item .for-ato-p-click");
197	var clickOnline = document.querySelector(".tabs-right-item .online-click");
198	var clickInform = document.querySelector(".tabs-right-item .np-inform-click");
199	clickFacebook.onclick = function(){
200		gtag('event', 'clickGoalButton', {'event_category' : 'clickSocial', 'event_action' : 'clickFacebook'});
201	}
202	clickYoutube.onclick = function(){
203		gtag('event', 'clickGoalButton', {'event_category' : 'clickSocial', 'event_action' : 'clickYoutube'});
204	}
205	clickPzzp.onclick = function(){
206		gtag('event', 'clickGoalButton', {'event_category' : 'clickButton', 'event_action' : 'clickPzzp'});
207	}
208	clickDerzhControl.onclick = function(){
209		gtag('event', 'clickGoalButton', {'event_category' : 'clickButton', 'event_action' : 'clickDerzhControl'});
210	}
211	clickPodolannyaNp.onclick = function(){
212		gtag('event', 'clickGoalButton', {'event_category' : 'clickButton', 'event_action' : 'clickPodolannyaNp'});
213	}
214	clickForAtoInfo.onclick = function(){
215		gtag('event', 'clickGoalButton', {'event_category' : 'clickButton', 'event_action' : 'clickForAtoInfo'});
216	}
217	clickOnline.onclick = function(){
218		gtag('event', 'clickGoalButton', {'event_category' : 'clickButton', 'event_action' : 'clickOnline'});
219	}
220	clickInform.onclick = function(){
221		gtag('event', 'clickGoalButton', {'event_category' : 'clickButton', 'event_action' : 'clickInform'});
222	}
223}
224
225//Scripts by Artem Kuzyk
226function trackWindowWidth() {
227  const width = window.innerWidth;
228}
229function getHightElement(neighbor){
230  if (neighbor) {
231    const height = parseInt(window.getComputedStyle(neighbor).getPropertyValue("height"));
232    return height;
233  } else {
234    return null;
235  }
236}
237function hideElement(className) {
238  const elList = document.querySelectorAll(`.${className}`);
239  if(elList && elList.length){
240    changePaddingFormtainer(elList[0], false);
241    elList[0].classList.remove(className);
242  }
243}
244function changePaddingFormtainer(el, visible){
245    const height = getHightElement(el);
246    const parent = el.parentElement;
247    if(visible){
248        parent.style.paddingBottom = height + 'px';
249    } else {
250        parent.style.paddingBottom = 10 + 'px';
251    }
252}
253function toggleText(id_value) {
254	const textContainer = document.querySelector('.text-container_main');
255	const textContainerID = "text-container_more_" + id_value;
256	const textContainerElement = document.querySelector(`#${textContainerID}`);
257
258	if (textContainerElement.classList.contains('show')){
259		textContainerElement.classList.add('before-delete');
260		changePaddingFormtainer(textContainerElement, false);
261		textContainerElement.classList.toggle('show');
262		textContainerElement.classList.remove('before-delete')
263	} else {
264		hideElement('show');
265		changePaddingFormtainer(textContainerElement, true);
266		textContainerElement.classList.toggle('show');
267	}
268}
269        trackWindowWidth();
270        window.addEventListener('resize', () => {
271if (window.location.pathname === '/undeclared-work/') {
272            const elList = document.querySelectorAll(`.show`);
273            let neighbor;
274            let visible = false;
275            if(elList && elList.length){
276                visible = true;
277            }
278            trackWindowWidth();
279            changePaddingFormtainer(elList[0], visible);
280}
281        });
282
283
284
285//kuzyk
286
287jQuery(document).ready(function($) {
288  // слухаємо подію лише на select[name="menu-373"]
289  $('select[name="menu-373"]').on('select2:select', function (e) {
290    var $selection = $(this).next('.select2').find('.select2-selection--single');
291    var firstChild = $selection.children().first();
292
293    if (firstChild.length) {
294      var childHeight = firstChild.outerHeight(true);
295      $selection.css('height', childHeight + 'px');
296    }
297  });
298});
299
300//kuzyk start cf_debt 05.08.2025 //
301//
302//document.addEventListener('wpcf7submit', function(event) {
303//  console.log('test 1')
304//  const formData = new FormData(event.target);
305//
306//  if (event.detail.contactFormId !== '95889') return;
307//
308//  const payload = {
309//    first_name: formData.get('first_name'),
310//    your_patronymic: formData.get('your_patronymic'),
311//    last_name: formData.get('last_name'),
312//    age: formData.get('age'),
313//    email: formData.get('email'),
314//    phone_number: formData.get('phone_number'),
315//    your_address: formData.get('your_address'),
316//    company_name: formData.get('company_name'),
317//    edrpou_code: formData.get('edrpou_code'),
318//    region: formData.get('region'),
319//    locality_type: formData.get('locality_type'),
320//    locality_name: formData.get('locality_name'),
321//    company_address: formData.get('company_address'),
322//    company_activity: formData.get('company_activity'),
323//    ownership_type: formData.get('ownership_type'),
324//    debt_amount: formData.get('debt_amount'),
325//    employees_owed: formData.get('employees_owed'),
326//    debt_duration: formData.get('debt_duration'),
327//    debt_reason: formData.get('debt_reason'),
328//    additional_info: formData.get('additional_info'),
329//    answer_to: formData.get('answer_to'),
330//    sign_file: formData.get('sign_file'),
331//  };
332//
333//
334//  fetch('https://script.google.com/macros/s/AKfycbzJY1rN0SgarR9P166wS5M2JdJrCMKXdncbs4O3MAr1mdrfBoluHDnDcXiYGVzHS1myEA/exec', {
335//    method: 'POST',
336//    body: JSON.stringify(payload),
337//    headers: {
338//      'Content-Type': 'application/json'
339//    }
340//  })
341//  .then(res => console.log('Записано в Google Таблицю'))
342//  .catch(err => console.error('Помилка:', err));
343//}, false);
344
345//kuzyk end cf_debt 05.08.2025 //
346
347//kuzyk 12.08.2025 start alert button
348
349const toggleMenu = document.getElementById("toggleMenu");
350if (toggleMenu) {
351  document.getElementById("toggleMenu").addEventListener("click", function() {
352    document.getElementById("submenu").classList.toggle("show");
353  });
354}
355//kuzyk 12.08.2025 finish alert button
356
357
358//kuzyk 14.08.2025 start vacancies
359
360const titleContainer = document.querySelector('.vacansion__vacansion__title');
361    
362    if (titleContainer && vacancy.title.length === 2) {
363      const h4 = document.createElement("h4");
364      h4.innerHTML = `${vacancy.title[0]}<br>${vacancy.title[1]}</span>`;
365//      h4.innerHTML = `${vacancy.title[0]}<br><span class="blue">${vacancy.title[1]}</span>`;
366      titleContainer.appendChild(h4);
367    }
368
369    const candidateReqContainer = document.querySelector('.vacansion__candidate-req');
370
371    if (candidateReqContainer) {
372        candidateReqContainer.innerHTML = `
373            <h4>ВИМОГИ ДО КАНДИДАТА</h4>
374            <p>${vacancy.candidateRequirements}</p>
375        `;
376    }
377
378    const competitionReqContainer = document.querySelector('.vacansion__competition-req');
379
380    if (competitionReqContainer) {
381        const listItems = vacancy.competitionRequirements.map(item => `<li>${item.trim().replace(/^-/, '').trim()}</li>`).join('');
382        competitionReqContainer.innerHTML = `
383            <h4>ВИМОГИ ДО ОСОБИСТОЇ КОМПЕТЕНТНОСТІ КАНДИДАТА</h4>
384            <ul>${listItems}</ul>
385        `;
386    }
387
388    const profKnowContainer = document.querySelector('.vacansion__proffesional-know');
389
390    if (profKnowContainer) {
391    const lines = vacancy.professionalKnowledge.split('\n').filter(line => line.trim().startsWith('-'));
392    const listItems = lines.map(item => `<li>${item.trim().replace(/^-/, '').trim()}</li>`).join('');
393
394    profKnowContainer.innerHTML = `
395        <h4>ПРОФЕСІЙНІ ЗНАННЯ</h4>
396        <ul>${listItems}</ul>
397        `;
398    }
399
400    const paymentContainer = document.querySelector('.vacansion__paymant-condition');
401    if (paymentContainer) {
402        const lines = vacancy.paymentConditions
403            .split('\n')
404            .map(item => `<li>${item.trim().replace(/^-/, '').trim()}</li>`)
405            .join('');
406
407        paymentContainer.innerHTML = `
408            <h4>УМОВИ ОПЛАТИ ПРАЦІ</h4>
409            <ul>${lines}</ul>
410        `;
411    }
412
413    const purposeContainer = document.querySelector('.vacansion__purpose-of-the-position');
414
415    if (purposeContainer) {
416        purposeContainer.innerHTML = `
417            <h4>МЕТА ПОСАДИ</h4>
418            <p>${vacancy.purposeOfThePosition}</p>
419        `;
420    }
421
422    const conditionsContainer = document.querySelector('.vacansion__conditions');
423
424    if (conditionsContainer) {
425        conditionsContainer.innerHTML = `
426            <h4>УМОВИ ПРИЗНАЧЕННЯ НА ПОСАДУ</h4>
427            <p>${vacancy.conditions}</p>
428        `;
429    }
430
431    const contentWorkContainer = document.querySelector('.vacansion__content-of-the-work');
432
433    if (contentWorkContainer) {
434        const lines = vacancy.contentOfTheWork
435            .split('\n')
436            .filter(line => line.trim().startsWith('-'))
437            .map(item => `<li>${item.trim().replace(/^-/, '').trim()}</li>`)
438            .join('');
439
440        contentWorkContainer.innerHTML = `
441            <h4>ЗМІСТ ВИКОНУВАНОЇ РОБОТИ</h4>
442            <ul>${lines}</ul>
443        `;
444    }
445
446
447//FAQ в форму електронне звернення громадян
448document.addEventListener("DOMContentLoaded", function () {
449  // Поле "Зміст звернення"
450  const textarea = document.querySelector('textarea[name="textarea-149"]');
451  if (!textarea) return;
452
453  // Блок для підказок
454  const faqBox = document.createElement("div");
455  faqBox.id = "faq-suggestions";
456  faqBox.style.marginTop = "10px";
457  faqBox.style.padding = "10px";
458  faqBox.style.border = "1px solid #ddd";
459  faqBox.style.borderRadius = "6px";
460  textarea.parentNode.appendChild(faqBox);
461
462  console.log("test");
463
464  // Завантажуємо базу FAQ
465  fetch("/faq.json")
466    .then(res => res.json())
467    .then(faqData => {
468      const fuse = new Fuse(faqData, {
469        keys: ["question", "answer"], // де шукати
470        threshold: 0.4, // чутливість (0 = тільки точні збіги, 1 = все підряд)
471        includeScore: true
472      });
473
474      textarea.addEventListener("input", function () {
475        const text = this.value;
476        faqBox.innerHTML = "";
477
478        if (text.length < 5) return; // шукаємо тільки якщо >=5 символів
479
480        const results = fuse.search(text);
481
482        if (results.length > 0) {
483          const bestMatches = results.slice(0, 3); // показати топ-3
484          faqBox.innerHTML =
485            "<strong>Можливо, вам допоможе:</strong><ul>" +
486            bestMatches
487              .map(r => `<li><b>${r.item.question}</b><br>${r.item.answer}</li>`)
488              .join("") +
489            "</ul>";
490        }
491      });
492    });
493});

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.