PageSourceSearch

https://is1c.ru/assets/js/custom.js?178602353321374

js is1c.ru collected 2026-09-26 05:53:57 UTC 21,374 bytes, 689 lines download raw bytes

1let formName;
2let widgetMyId;
3let send = false;
4function onloadFunction() {
5		if (window.smartCaptcha) {
6			$(".smart-captcha-wrap").each(function() {
7				var object = $(this);
8				console.log(object.attr("id"));
9				 widgetMyId = window.smartCaptcha.render(object.attr("id"), {
10					sitekey: 'ysc1_XqXIHIgj7eETJMKAlgduY67ctEyrMwuE2Gi0z1X02ddeada4',
11					hl: 'ru',
12					invisible: true, // Сделать капчу невидимой
13					callback : function(token) {
14						if (typeof token === "string" && token.length > 0) {
15							send = true;
16							if($(formName).find('input[name="smart-token"]').val() == ''){
17								$(formName).find('input[name="smart-token"]').val(token);
18								$(formName).submit();	
19								console.log($(formName).serializeArray());			
20							}else{
21								$(formName).submit();	
22							}
23											
24													
25							//object.parents('form').submit();								
26						}						
27					}
28				});
29			});
30		}
31	  }
32
33	/*function callback(token) {
34		if (typeof token === "string" && token.length > 0) {
35			console.log(formName);
36			send = true;
37			$('body').find(formName).submit();
38			
39		}
40	}*/
41	function handleSubmit(event) {
42	  if (!window.smartCaptcha) {
43		return;
44	  }
45
46	  window.smartCaptcha.execute(widgetMyId);
47	}
48
49
50$(document).ready(function () {
51
52
53	function checkForError(remainingTime, interval = 100) {
54		if (remainingTime <= 0) return;
55
56		if ($('.video-js').hasClass('vjs-error')) {
57			$('.experience-review-video-wrap').addClass('bg-promo-img-experience-review');
58			return;
59		}
60
61		setTimeout(() => {
62			checkForError(remainingTime - interval, interval);
63		}, interval);
64	}
65
66	if ($('.video-js').length > 0 && $(window).width() > 990) {
67		checkForError(4000);
68	}
69
70	if($('.home-clients-block').length > 0){
71		
72		equalizeCardContent();
73		$(window).on('resize', equalizeCardContent);
74	}
75	
76	
77	function setBannerBg() {
78        var $banner = $('.event-banner');
79        if (!$banner.length) return;
80
81        var desktopBg = $banner.data('desktop-bg');
82        var mobileBg = $banner.data('mobile-bg');
83
84        desktopBg = (typeof desktopBg === 'string' && desktopBg.trim() !== '') ? desktopBg : null;
85        mobileBg = (typeof mobileBg === 'string' && mobileBg.trim() !== '') ? mobileBg : null;
86
87        var isMobile = $(window).width() < 768;
88        var bg = null;
89
90        if (isMobile) {
91            // На мобилке: сначала мобильное, если нет — десктопное
92            bg = mobileBg || desktopBg;
93        } else {
94            // На десктопе: только десктопное
95            bg = desktopBg;
96        }
97
98        $banner.css('background-image', bg ? 'url("' + bg + '")' : 'none');
99    }
100
101    setBannerBg();
102    $(window).on('resize', function() {
103        clearTimeout(window.resizeTimer);
104        window.resizeTimer = setTimeout(setBannerBg, 150);
105    });
106	
107	
108	if($('.swiper.events-slider-list').length > 0){
109		
110		let settingSwiperEvents = {
111				slidesPerView: 3,
112				paginationClickable: true,
113				spaceBetween: 25,
114				slidesPerView: 'auto',
115				navigation: {
116						  nextEl: '.events-slider__button[data-landing-slider-button="next"]',
117						  prevEl: '.events-slider__button[data-landing-slider-button="prev"]',
118						},
119				breakpoints: {
120					0: {
121					slidesPerView: 1,  
122				  },
123				  540: {
124					slidesPerView: 1,
125					spaceBetween: 10,
126				  },
127				  768: {
128					slidesPerView: 2,										
129				  },
130				  1350: {
131					slidesPerView: 3,  
132				  },
133				
134				}				
135			};
136		
137		let swiperEvents = new Swiper('.swiper.events-slider-list', settingSwiperEvents);	
138		
139		$(document).on('click', '.events-list-filter-item__slider', function(){
140			$('.events-list-filter-item__slider').removeClass('_active');
141			$(this).addClass('_active');
142			var filterVal = $(this).data('filter');
143			
144			if(filterVal == 'active'){
145				$(".events-slider-list [data-filter-val]").removeClass("non-swiper-slide").addClass("swiper-slide").show();
146			}else{
147				$(".events-slider-list .swiper-slide").not("[data-filter-val='"+filterVal+"']").addClass("non-swiper-slide").removeClass("swiper-slide").hide();
148				$(".events-slider-list [data-filter-val='"+filterVal+"']").removeClass("non-swiper-slide").addClass("swiper-slide").attr("style", null).show();
149			}
150			
151			swiperEvents.destroy();
152			swiperEvents = new Swiper('.swiper.events-slider-list', settingSwiperEvents);	
153			
154		})
155	
156	}
157    $(document).on('click', '.pagination-new_more-link', function(){
158		var targetContainer = $('.events-list-wrap'),          //  Контейнер, в котором хранятся элементы
159			url =  $('.pagination-new_more-link').attr('data-url');    //  URL, из которого будем брать элементы
160
161		if (url !== undefined) {
162			$.ajax({
163				type: 'GET',
164				url: url,
165				dataType: 'html',
166				success: function(data){
167
168					//  Удаляем старую навигацию
169					$('.pagination-new').remove();
170
171					var elements = $(data).find('.events-list-item').addClass('events-list-item__more'),  //  Ищем элементы
172						pagination = $(data).find('.pagination-new');//  Ищем навигацию
173
174					var moreContainer = $("<div class='events-list-wrap-more'></div>");
175					moreContainer.append(elements); 
176					targetContainer.append(moreContainer);   //  Добавляем посты в конец контейнера
177					targetContainer.parent().append(pagination); //  добавляем навигацию следом
178
179				}
180			})
181		}
182
183	});
184
185	
186	let urlTest = window.location.search == "?TEST=Y" ? true : false;
187	const container = $('#smart-captcha-wrap');
188	
189	 if(container != null){
190		$('body').on('submit', "form", function(e){
191			
192			if(!send && $(this).find('.smart-captcha_invisible').length > 0){
193				e.preventDefault();				
194				formName = $(this).attr('id');
195				console.log(formName);
196				if(!formName || formName == 'undefined'){				
197					formName = "form[name='"+$(this).attr('name')+"']";				
198				}else{
199					formName = "form#" + $(this).attr('id');
200				};
201
202
203				var $newStyle = $(this).hasClass('JsNStyleForm');
204
205				if($newStyle){
206	
207					$(this).find('*').removeClass('is-error');
208					if($(this).find('input[name="checkbox1"]').is(':checked')==false){
209						$(this).find('input[name="checkbox1"]').parent().addClass('is-error');
210						return false;
211					}
212					if($(this).find('input[name="checkbox2"]').is(':checked')==false){
213						$(this).find('input[name="checkbox2"]').parent().addClass('is-error');
214						return false;
215					}
216	
217	
218				}
219				$(this).append('<input name="'+$(this).find('[type="submit"]').attr('name')+'" type="hidden" value="'+$(this).find('[type="submit"]').val()+'">');
220				handleSubmit();
221			}
222		})
223	}
224	
225	if($('.services_consultant_form').length > 0){
226		$.ajax({
227			url: '/include/form_consultant.php',
228			type: 'GET',
229			success: function(data) {			
230				 $('.services_consultant_form').html(data);				 
231				$('.services_consultant_form [name="phone"]').click(phoneCursorPosition).mask('+7 (999) 999-99-99');
232				$('.services_consultant_form [name="inn"]').click(innCursorPosition).mask('9999999999?99');
233
234				$.fn.setCursorPosition = function(pos) {
235					if ($(this).get(0).setSelectionRange) {
236						$(this).get(0).setSelectionRange(pos, pos);
237					} else if ($(this).get(0).createTextRange) {
238						var range = $(this).get(0).createTextRange();
239						range.collapse(true);
240						range.moveEnd('character', pos);
241						range.moveStart('character', pos);
242						range.select();
243					}
244				};
245				
246			},			
247		});
248	}
249		 
250	$('body').on('click', ".callback-form .alert-close", function(e){
251		  $(this).parent().remove();
252	})
253	$('body').on('submit', "#service_consultant_form, #services_consultant_form_big, #products_consultant_form_big, #products_consultant_form_small, #service_consultant_form_small, #products_sale_form, #education_consultant_form_big", function(e){
254		e.preventDefault();
255		if(send){
256			var $form = $(this);
257
258
259			if($form.find('input[name="inn"]').length > 0){
260				$elemINN = $form.find('input[name="inn"]').val().trim();
261				var $flagINN = false;
262				if (mycheckInn($elemINN)) {
263					$flagINN = true;			
264					$form.find('input[name="inn"]').closest('label.input').removeClass('is-error');
265				} else {
266					$form.find('input[name="inn"]').closest('label.input').addClass('is-error');
267					$form.find('input[name="inn"]').closest('label.input').find('.input__message').text('Поле "ИНН" заполнено некорректно');			
268				}
269			}else{
270				$flagINN = true;
271			}
272
273
274
275			var $newStyle = $form.hasClass('JsNStyleForm');
276
277			if($newStyle){
278
279				$form.find('*').removeClass('is-error');
280				if($form.find('input[name="checkbox1"]').is(':checked')==false){
281					$form.find('input[name="checkbox1"]').parent().addClass('is-error');
282					$flagINN = false;
283				}
284				if($form.find('input[name="checkbox2"]').is(':checked')==false){
285					$form.find('input[name="checkbox2"]').parent().addClass('is-error');
286					$flagINN = false;
287				}
288
289
290			}
291
292
293
294			let submitUrl = "/assets/ajax/service_consultant_form.php";
295			if($(this).attr('id') == 'products_consultant_form_big' || $(this).attr('id') == 'products_consultant_form_small'){
296				submitUrl = "/assets/ajax/product_consultant_form.php";
297			}
298			if($(this).attr('id') == 'products_sale_form' ){
299				submitUrl = "/assets/ajax/products_sale_form.php";
300			}
301			if($(this).attr('id') == 'education_consultant_form_big' ){
302				submitUrl = "/assets/ajax/education_form.php";
303			}
304
305
306			if($flagINN){
307				if($newStyle){
308					$form.closest('.JsLoader').removeClass('is-loading');
309					$form.closest('.JsLoader').addClass('is-loading');
310				}
311				$form.parent().find('.alert').remove();
312				$form.append("<input type='hidden' name='HTTP_REFERER' value='"+window.location.href+"' >");
313
314				$.ajax({
315						url: submitUrl,
316						type: 'POST',
317						data: $form.serialize(),  
318						success: function(status) {					
319							if (status === 'ok') {
320								if($newStyle){
321									$form.closest('.JsLoader').removeClass('is-loading');
322									$form.closest('.JsLoader').addClass('is-success');
323								}else{
324
325									if($newStyle){
326										$form.closest('.JsLoader').removeClass('is-loading');
327									}
328									$form.parent().prepend("<div class='alert alert-success mb-3'><span>Ваша заявка успешно отправлена! Мы свяжемся с вами в ближайшее время</span><button class='alert-close'>×</button></div>");
329								}
330								ClearForm($form);
331
332							} else {
333								if($newStyle){
334									$form.closest('.JsLoader').removeClass('is-loading');
335								}
336								$form.parent().prepend("<div class='alert alert-danger mb-3'><span>Произошла ошибка.<br>Пожалуйста, перезагрузите страницу и повторите попытку.</span><button class='alert-close'>×</button></div>");
337
338							}
339						},
340						error: function(error) {
341
342							console.log(error);
343							$form.parent().prepend("<div class='alert alert-danger mb-3'><span>Произошла ошибка.<br>Пожалуйста, перезагрузите страницу и повторите попытку.</span><button class='alert-close'>×</button></div>");
344
345						}
346				});
347			}
348		}
349    });
350	function ClearForm($form) {
351		$form.find('input').not('input[type=submit]').val('');
352		$form.find('textarea').val('');
353	}
354	function phoneCursorPosition() {
355		let isEdit = $(this).val().replace(/[_\-\+7\(\)\s]/g, '').length > 0;
356		if (isEdit) {
357			return true;
358		}
359		$(this).setCursorPosition(4);
360	}
361
362	function innCursorPosition() {
363		let isEdit = $(this).val().replace(/_/g, '').length > 0;
364		if (isEdit) {
365			return true;
366		}
367		$(this).setCursorPosition(0);
368	}
369	
370	//страница /products/
371	$('body').on('click', '.products-filter-choice__item', function(){
372		var oldBlock = $('.products-filter-choice__item.active').data('block');
373		var newBlock = $(this).data('block');
374		$('.products-filter-choice__item.active').removeClass('active');
375		$(this).addClass('active');
376		$(".page-products-catalog-sections-wrap #"+oldBlock).slideToggle();
377		$(".page-products-catalog-sections-wrap #"+newBlock).slideToggle();
378	})
379	
380	$('body').on('click', '.products-show-more-items_types', function(e){
381		e.preventDefault();
382		
383		$(".product-page-section-wrap._for-four-row").toggleClass('_show-all');
384		if($(".product-page-section-wrap._for-four-row").hasClass('_show-all')){
385			$('.product-page-section-wrap._for-four-row .section__item:hidden').fadeIn(400);			
386			$(this).find('a span').text('Скрыть полный список видов деятельности');
387		}else{
388			$('.product-page-section-wrap._for-four-row .section__item:nth-child(n+7)').fadeOut(400);	
389			$(this).find('a span').text('Полный список видов деятельности');
390		}
391		
392	})
393	
394	//все сторонние ссылки в noindex
395	function isUrl(str) {
396		try {
397			const url = new URL(str);
398			if(url.protocol === "http:" || url.protocol === "https:" || url.protocol === "www:"){
399				var hostname = url.hostname; 
400				return hostname.indexOf('is1c.ru') == -1;
401			};
402			
403		} catch (e) {
404			return false;
405		}
406	}
407	var currentUrl = window.location.pathname;  
408    
409	var arSectionsNoIndex = ['/about/pc/article/', '/experience-review/', '/experience/ '];
410	var addNoIndex = false;
411	
412	for(var i=0; i < arSectionsNoIndex.length; i++){
413		if(currentUrl.startsWith(arSectionsNoIndex[i])){
414			addNoIndex = true;
415		}
416	}
417
418	if(addNoIndex){
419		$('body .container a').each(function(){			
420			var href = $(this).attr('href');
421			if (isUrl(href)) {
422				$(this).attr('target', '_blank');
423				$(this).attr('rel', 'nofollow');
424				$(this).wrap("<noindex></noindex>");				
425			}			
426		})
427	}
428	
429	
430	
431	var buttonBlogLink = $('.button_link_blog_box');
432    if (buttonBlogLink !== null) {
433		  var linkBlogBox = $('.link_blog_box');
434		$('body').on('click', '.button_link_blog_box', function(){
435			console.log('ddd');
436            $(this).toggleClass('active');
437            linkBlogBox.toggleClass("active");
438        })
439    }
440	
441	
442	$('body').on('click', '.block-info-list__title', function(){
443		var id = $(this).attr('id');		
444		if($(this).hasClass('_mobile')){			
445			if(!$(this).hasClass('active')){
446				$('._mobile .block-info-list__title').removeClass('active');
447				$(this).addClass('active');
448				$("._mobile .block-info-list__desc").slideUp(500);
449				$("._mobile .block-info-list__desc[data-id='"+id+"']:hidden").slideDown(500);
450			}else{		
451				$(this).removeClass('active');
452				$("._mobile .block-info-list__desc[data-id='"+id+"']").slideUp(500);
453			}
454			
455		}else{			
456			if(!$(this).hasClass('active')){
457				$("._desktop .block-info-list__desc:visible").hide();
458				$("._desktop .block-info-list__desc[data-id='"+id+"']").fadeIn(500);
459			}
460			$('._desktop .block-info-list__title').removeClass('active');	
461			$(this).addClass('active');			
462		}
463	})
464	
465
466	
467	if($('.fancybox_block_img').length){
468		$( ".fancybox_block_img img" ).each(function( index ) {
469			$(this).wrap("<a data-fancybox href='" + $(this).attr('src') + "'/>");
470		});
471	}
472	
473	if($("._js-slider-clients-logo").length > 0){
474		
475		 $.ajax({
476			type: "POST",
477			url: "/assets/ajax/clients_logo_slider.php",
478			data: { PAGE_URL: window.location.pathname },
479			success: function (data) {					
480				$('._js-slider-clients-logo').html(data);
481				
482				var sliderLogo = $('.swiper.clients-logo-slider__inner');
483				const swiperLogo = new Swiper('.swiper', {
484						spaceBetween: 10,
485						speed: 900,
486						autoHeight: true,
487						watchSlidesProgress: true,
488						loop: false,
489						initialSlide: 1,
490						centeredSlides: true,
491						slidesPerView: 'auto',
492						navigation: {
493						  nextEl: '.clients-logo__button[data-landing-slider-button="next"]',
494						  prevEl: '.clients-logo__button[data-landing-slider-button="prev"]',
495						},
496						breakpoints: {
497						  576: {
498							spaceBetween: 78,
499							slidesPerView: 2,  
500							centeredSlides: false,
501							initialSlide: 0,
502						  },
503						  768: {
504							spaceBetween: 28,
505							slidesPerView: 3,  
506							centeredSlides: false,
507							initialSlide: 0,
508						  },
509						  1024: {
510							spaceBetween: 32,
511							slidesPerView: 4,  
512							centeredSlides: false,
513							initialSlide: 0,
514						  },
515						  1350: {
516							spaceBetween: 42,
517							slidesPerView: 4,  
518							centeredSlides: false,
519							initialSlide: 0,
520						  },
521						}
522				});
523				
524			},				
525				
526		});
527	}
528	if($(".page_gallary_block").length > 0){
529			
530			 $.ajax({
531                type: "POST",
532                url: "/assets/ajax/page_gallary.php",
533                data: { PAGE_URL: window.location.pathname },
534                success: function (data) {					
535                    $('._js_page_gallary').html(data);
536					var sliderParams = $('._js_slider_block_params').data('slider-params');
537					var sliderType = $('._js_slider_block_params').data('slider-type');
538					console.log(sliderType);
539					if(sliderType == 'slider_big'){
540						var o = $(".slider-pictures-slides");
541						o.length && o.owlCarousel({ dots: !1, mouseDrag: !0, items: 1, navContainer: "#slider-pictures-control", navClass: ["slider-arrow slider-arrow-prev", "slider-arrow slider-arrow-next"], navText: [] });
542
543					}else{
544					
545						if(sliderParams){
546							var owl = $('.gallery-' + sliderParams.index).owlCarousel({
547								items: sliderParams.items,
548								startPosition: sliderParams.startPosition,
549								loop: sliderParams.loop,
550								margin: sliderParams.margin,
551								stagePadding: sliderParams.stagePadding,
552								smartSpeed: sliderParams.smartSpeed,				
553								nav: sliderParams.nav,
554								navText: ['<span class="icon-arrow-next"></span>','<span class="icon-arrow-prev"></span>'],
555								lazyLoad: sliderParams.lazyLoad
556							});
557							owl.on('initialized.owl.carousel', function() {
558								owl.trigger('refresh.owl.carousel');
559							});						
560						}
561						
562						if ( $('.gallery-mob').length > 0 ) {
563							
564							$('._js_slider_block_params').find('.gallery-wrap').width($('._js_slider_block_params').width());
565							var owl2 = $('.gallery-mob').owlCarousel({
566								items: 1,
567								loop: true,
568								margin: 0,
569								smartSpeed: 1000,
570								nav: true,
571								navText: ['<span class="icon-arrow-next"></span>','<span class="icon-arrow-prev"></span>'],
572								lazyLoad: true,
573								//transitionStyle: "fadeUp"
574								animateIn: 'fadeIn', animateOut: 'fadeOut',
575								
576							});
577
578							owl2.on('initialized.owl.carousel', function() {
579								owl2.trigger('refresh.owl.carousel');
580							});
581						}
582						if($('[data-fancybox]').length > 0){
583							$('[data-fancybox]').fancybox({
584								protect: true
585							});
586						}
587					}
588                },
589				
590				
591            });
592		}
593})
594
595function equalizeCardContent() {
596	var $contentBlocks = $('.home-clients-block .experience-card-wrap .experience-card-content');
597	if ($contentBlocks.length === 0) return;
598
599	$contentBlocks.css('height', 'auto');
600	var maxHeight = 0;
601	$contentBlocks.each(function() {
602		maxHeight = Math.max(maxHeight, $(this).outerHeight());
603	});
604	console.log(maxHeight);
605	$contentBlocks.height(maxHeight);
606}
607
608function mycheckInn(inn) {
609    if (typeof inn !== 'string') {
610        return false;
611    }
612
613    inn = inn.trim();
614
615    if ([10, 12].indexOf(inn.length) === -1) {
616        return false;
617    }
618
619    if (inn === '000000000000' || inn === '0000000000' ||  inn === '5000000000') {
620        return false;
621    }
622
623    let hash = function(inn, coefficients) {
624        let sum = 0;
625        for (let i in coefficients) {
626            sum += parseInt(inn[i]) * coefficients[i];
627        }
628        return sum;
629    }
630
631    if (inn.length == 10) {
632        return ((hash(inn, [2, 4, 10, 3, 5, 9, 4, 6, 8]) % 11) % 10) == inn[9];
633    }
634
635    if (inn.length == 12) {
636        let check10 = (hash(inn, [7, 2, 4, 10, 3, 5, 9, 4, 6, 8]) % 11) % 10;
637        let check11 = (hash(inn, [3, 7, 2, 4, 10, 3, 5, 9, 4, 6, 8]) % 11) % 10;
638        return check10 == inn[10] && check11 == inn[11];
639    }
640
641    return false;
642}
643
644let ajaxForm = document.getElementById("ajax_form_popup");
645if(ajaxForm != null){
646	if(!window.location.href.includes("/experience-review/")){	
647		let ajaxBtn = ajaxForm.querySelector(".btn");
648		let ajaxEvent = ajaxBtn.getAttribute("octopus");
649		ajaxBtn.addEventListener("click", ()=>{
650				oct_goal(ajaxEvent, {
651					update: {
652						NAME: ajaxForm.querySelector("#name_f").value,
653						PHONE: ajaxForm.querySelector("#tel").value,
654						PERSONAL_CITY: ajaxForm.querySelector("#popup-city").value
655					}
656				});
657		})
658	}
659	/*
660    ajaxForm.addEventListener('submit', function(e) {
661		console.log(ajaxEvent);
662        oct_goal(ajaxEvent, {
663            update: {
664                NAME: ajaxForm.querySelector("#name_f").value,
665                PHONE: ajaxForm.querySelector("#tel").value,
666                PERSONAL_CITY: ajaxForm.querySelector("#popup-city").value
667            }
668        });
669    });
670	*/
671}
672
673setTimeout(()=>{
674	let educationForm = document.getElementById("education_consultant_form_big");
675	//console.log(educationForm);
676	if(educationForm != null){
677		let ajaxBtnEducation = educationForm.querySelector(".button");
678		let ajaxEventEducation = ajaxBtnEducation.getAttribute("octopus");
679		ajaxBtnEducation.addEventListener("click", ()=>{
680			oct_goal(ajaxEventEducation, {
681				update: {
682					NAME: educationForm.querySelector("input[name='name']").value,
683					PHONE: educationForm.querySelector("input[name='phone']").value
684				}
685			});
686	})
687	}
688}, 5000)
689

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.