PageSourceSearch

https://mshef.ru/bitrix/templates/.default/js/scripts.js?2

js mshef.ru collected 2026-10-09 22:42:02 UTC 14,133 bytes, 591 lines download raw bytes

1'use strict';
2
3/* select */
4
5$('.slct').on('click', function(){
6	var t = $(this);
7	$('.slct').not(t).removeClass('active').parent().find('.slct-list').slideUp(50);
8	if(t.hasClass('active')){
9		t.removeClass('active').parent().find('.slct-list').slideToggle(50);
10	}else{
11		t.addClass('active').parent().find('.slct-list').slideToggle(50);
12	}
13	return false;
14})
15$('.slct-list li').on('click', function(){
16	var t = $(this),
17		val = t.text(),
18		html = t.html();
19	t.closest('.select').find('.slct').html(html).removeClass('active');
20	t.parent().slideToggle(50).parent().find('input').val(val).change();
21})
22$(document).on('click', function() {
23	$('.slct').removeClass('active').parent().find('.slct-list').slideUp(50);
24});
25
26$(".search_pnc .inner h4").click(function(){
27	$(".search_pnc form").slideToggle();
28});
29
30/* input focus */
31
32$('.input').on({
33	focus: function(){
34		$(this).closest('.form-block').addClass('active');
35	},
36	blur: function(){
37		if($(this).val()) return;
38		$(this).closest('.form-block').removeClass('active');
39	}
40})
41
42/* search */
43
44$('.search-submit').on('click', function(){
45	var t = $(this);
46	if(!t.hasClass('active')){
47		t.closest('.search').addClass('active').find('.input').focus();
48		t.addClass('active');
49		return false;
50	}
51})
52
53$(document).on('click', function(e){
54	e = e || event;
55	if ($(e.target).closest('.search').length) return;
56	$('.search, .search-submit').removeClass('active');
57})
58
59/* .benefits-header */
60
61function positioningBenefits(){
62	$('.benefits-header').css({
63		top: $('.header-benefits-info').offset().top + $('.header-benefits-info').innerHeight() + 27 + 'px'
64	}).removeClass('active');
65	$('.benefits-header-arrow').css('left', $('.header-benefits-info').offset().left + 'px');
66}
67
68positioningBenefits();
69
70$(window).on('resize',positioningBenefits);
71
72$('.header-benefits-info').on('click', function(){
73	$(this).toggleClass('active');
74	$('.benefits-header').toggleClass('active');
75})
76
77$('.benefits-close').on('click', function(){
78	$('.benefits-header').toggleClass('active');
79	$('.header-benefits-info').toggleClass('active');
80})
81
82/* nav-mobile */
83
84$('.nav-mobile').css('height',$(document).outerHeight(true) + 'px');
85
86$('.nav-mobile-submenu-link.active>.nav-mobile-submenu').css('display', 'block');
87$('.nav-mobile-submenu-link a.active').on('click', function(){
88	var t = $(this).parent();
89	if(t.hasClass('active')){
90		$('.nav-mobile-submenu').slideUp(200);
91		$('.nav-mobile-submenu-link').removeClass('active');
92	}else{
93		$('.nav-mobile-submenu').slideUp(200);
94		$('.nav-mobile-submenu-link').removeClass('active');
95		t.addClass('active').children('.nav-mobile-submenu').slideDown(200);
96	}
97	return false;
98})
99
100$('.nav-mobile-open').on('click', function(){
101	$('.nav-mobile').css('display', 'block');
102	return false;
103})
104
105$('.nav-mobile-close').on('click', function(){
106	$('.nav-mobile').css('display', 'none');
107	return false;
108})
109
110/* slider */
111
112$('.main-slide-img img').css('visibility','hidden');
113$('.main-slide-img img').each(function(){
114	var t = $(this),
115		src = t.attr('src'),
116		parent = t.parent();
117	parent.css({
118		'background':'url('+src+') center center',
119		'background-size':'cover'
120	})
121})
122
123
124var slickArrowPrev = '<button type="button" class="slick-prev"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="currentColor" stroke="currentColor" class="bi bi-chevron-left" viewBox="0 0 16 16"><path fill-rule="evenodd" d="M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z"/></svg></button>';
125var slickArrowNext = '<button type="button" class="slick-next"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="currentColor" stroke="currentColor" class="bi bi-chevron-right" viewBox="0 0 16 16"><path fill-rule="evenodd" d="M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z"/></svg></button>';
126
127$('.main-slider').slick({
128	infinite: true,
129	slidesToShow: 1,
130	slidesToScroll: 1,
131	dots: true,
132	arrows: false,
133	responsive: [
134	 {
135		breakpoint: 767,
136		settings: {
137			adaptiveHeight: true
138		}
139	 }
140	]
141});
142
143$('.menu-top-slider').slick({
144	infinite: false,
145	slidesToShow: 8,
146	slidesToScroll: 8,
147	dots: false,
148	arrows: true,
149	prevArrow: slickArrowPrev,
150	nextArrow: slickArrowNext,
151	draggable: false,
152	centerMode: false,
153	edgeFriction: 1,
154	variableWidth: true
155});
156
157$('.menu-top-slider .menu-item').hover(
158	function() {
159		let key = this.dataset.key;
160		setTimeout( () =>
160  $('.menu-top-submenu[data-parent="'+key+'"]').addClass('parent-active'), 150)
161	},
162	function() {
163		let key = this.dataset.key;
164		setTimeout( () =>  $('.menu-top-submenu[data-parent="'+key+'"]').removeClass('parent-active'), 150)
165	}
166);
167
168$('.submenu-top-slider .menu-top-submenu').hover(
169	function() {
170		this.classList.add('self-active')
171	},
172	function() {
173		this.classList.remove('self-active')
174	}
175);
176
177$('.clients-slider').slick({
178	infinite: true,
179	slidesToShow: 5,
180	slidesToScroll: 1,
181	arrows: true,
182	prevArrow: slickArrowPrev,
183	nextArrow: slickArrowNext,
184	responsive: [
185	 {
186		breakpoint: 1199,
187		settings: {
188			slidesToShow: 4,
189		}
190	 },
191	 {
192		breakpoint: 991,
193		settings: {
194			slidesToShow: 2,
195		}
196	 },
197	 {
198		breakpoint: 767,
199		settings: {
200			slidesToShow: 1,
201		}
202	 }
203	]
204});
205
206$('.benefits-wrapp').slick({
207	infinite: false,
208	slidesToShow: 5,
209	slidesToScroll: 1,
210	arrows: true,
211	prevArrow: slickArrowPrev,
212	nextArrow: slickArrowNext,
213	responsive: [
214	 {
215		breakpoint: 1199,
216		settings: {
217			slidesToShow: 4,
218		}
219	 },
220	 {
221		breakpoint: 991,
222		settings: {
223			slidesToShow: 3,
224			infinite: true
225		}
226	 },
227	 {
228		breakpoint: 767,
229		settings: {
230			slidesToShow: 2,
231			variableWidth: true,
232			centerMode:true
233		}
234	 }
235	]
236});
237
238$('.catalog-slider').slick({
239	infinite: false,
240	slidesToShow: 6,
241	slidesToScroll: 1,
242	arrows: false,
243	responsive: [
244	 {
245		breakpoint: 1199,
246		settings: {
247			slidesToShow: 4,
248		}
249	 },
250	 {
251		breakpoint: 991,
252		settings: {
253			slidesToShow: 3,
254			infinite: true
255		}
256	 },
257	 {
258		breakpoint: 767,
259		settings: {
260			slidesToShow: 1,
261			dots: true
262		}
263	 }
264	]
265});
266$('.item-img-slider').slick({
267	infinite: true,
268	slidesToShow: 1,
269	slidesToScroll: 1,
270	dots: true,
271	arrows: false
272});
273
274/* tabs */
275
276$('.tabs-nav li').click(function(){
277	var t = $(this),
278		tabsBtns = t.closest('[data-tabs]').find('li'),
279		tabs = t.closest('[data-tabs]').data('tabs');
280	if(t.hasClass('active')) return false;
281	tabsBtns.removeClass('active');
282	var tabBlocks = $(tabs).find('.tab-block');
283	tabBlocks.each(function(){})
284	$(tabs).children('.tab-block').removeClass('active');
285	t.addClass('active');
286	$(t.data('tab')).addClass('active');
287	return false;
288})
289
290$('.tabs-wrapp-mobile .tab-block.active .tab-block-mobile-body').css('display','block');
291$('.tab-block-mobile-title').on('click', function(){
292	var tab = $(this).closest('.tab-block'),
293		tabs = tab.closest('.tabs-wrapp').children('.tab-block'),
294		tabNav = tab.attr('id'),
295		tabNavs = $('[data-tab=#' + tabNav + ']').closest('[data-tabs]').find('li');
296	console.log($('[data-tab=#' + tabNav + ']'));
297	if(tab.hasClass('active')){
298		tabs.removeClass('active').find('.tab-block-mobile-body').slide
298Up(300);
299		tabNavs.removeClass('active');
300	}else{
301		tabs.removeClass('active').find('.tab-block-mobile-body').slideUp(300);
302		tabNavs.removeClass('active');
303		tab.addClass('active');
304		$('[data-tab=#' + tabNav + ']').addClass('active');
305		tab.find('.tab-block-mobile-body').slideDown(300);
306	}
307})
308
309/* modal */
310
311$('.modal-btn').fancybox({
312	padding: 0,
313	margin:0,
314	wrapCSS: 'modal-wrapp'
315})
316
317/* form */
318
319$(document).ready(function() {
320	function validateEmail(email) {
321		var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
322		return re.test(email);
323	}
324	function validate(t){
325		var inputs = t.find('.valid'),
326			test = [],
327			email = t.find('.email-valid'),
328			emailVal = email.val(),
329			ind = true;
330		inputs.each(function(){
331			if(!$(this).val()){
332				$(this).closest('.form-block').find('.alert').addClass('active');
333				test.push(0);
334			}
335		})
336		for(var i = 0; i < test.length; i++){
337			if(test[i] === 0) ind = false;
338		}
339		if(!validateEmail(emailVal) && email.length > 0){
340			email.closest('.form-block').find('.alert').addClass('active');
341			ind = false;
342		}
343		return ind;
344	}
345	var options = {
346		type: 'POST',
347    url: '/send.php',
348	  dataType : 'json',
349		data: $(this).serialize()
350	};
351	var options2 = {
352		clearForm: true,
353		success: showResponse
354	}
355	$('.form').on('submit', function() {
356		if(validate($(this))){
357			$(this).ajaxSubmit(options);
358			$(this).ajaxSubmit(options2);
359		}
360		return false;
361	});
362	function showResponse(){
363		$.fancybox.close(true);
364		$.fancybox($('#send'),{
365			padding:0,
366			wrapCSS: 'modal-wrapp',
367			margin:0
368		});
369	}
370});
371$(document).on('click',function(event){
372	$('.alert').removeClass('active');
373})
374$('.fancybox-ok').on('click', function(){
375	$.fancybox.close(true);
376})
377
378/* height */
379
380var setHeight = function(c){
381	c.css('height','auto');
382	var tc = 0;
383	c.each(function(){
384		var ch = $(this).innerHeight();
385		if(ch > tc) tc = ch;
386	});
387	c.css('height',tc+'px');
388};
389
390$(window).on({
391	load: function(){
392		setHeight($('.catalog-table'));
393	},
394	resize: function(){
395		setHeight($('.catalog-table'));
396	}
397})
398
399/* catalog */
400
401$('.ct-more').on('click', function(){
402	var t = $(this);
403	if(t.hasClass('disabled')) return;
404	if(t.hasClass('active')){
405		$('.ct-more').removeClass('active');
406		$('.catalog-table-info').slideUp(500);
407	}else{
408		$('.ct-more').removeClass('active');
409		$('.catalog-table-info').slideUp(500);
410		t.addClass('active');
411		t.closest('.catalog-col').find('.catalog-table-info').slideDown(500);
412	}
413})
414
415/* item-num */
416
417var numValue;
418function delchar(inp){
419	var value = inp.val();
420	var rep = /[\D]/;
421	if(rep.test(value)){
422		value = value.replace(rep,'');
423		inp.val(value);
424	}
425	inp.val(value);
426}
427$('.item-num-input').on({
428	focus: function(){
429		numValue = $(this).val();
430		$(this).val('');
431	},
432	blur: function(){
433		if(!$(this).val()) $(this).val(numValue);
434	},
435	keyup: function(){
436		delchar($(this));
437	}
438})
439
440$('.item-num-plus').on('click', function(){
441	var input = $(this).closest('.item-num').find('.item-num-input'),
442		val = +input.val();
443	input.val(++val);
444})
445$('.item-num-minus').on('click', function(){
446	var input = $(this).closest('.item-num').find('.item-num-input'),
447		val = +input.val();
448	if(val === 1) return;
449	input.val(--val);
450})
451
452/* item-gallery */
453
454$('.item-fancy').fancybox(
455	{
456		padding: 30,
457		margin:0,
458		wrapCSS: 'modal-wrapp',
459		openEffect: 'elastic',
460		openSpeed: 400,
461		closeSpeed: 400,
462		nextSpeed: 400,
463		prevSpeed: 400
464	}
465)
466
467/* footer */
468
469function footer2bottom() {
470    var footer = $('.footer');
471    footer.css('margin-top', 'auto');
472    if ($('body').innerHeight() < $(window).innerHeight()) {
473        var fmargin = $(document).innerHeight() - footer.offset().top - footer.innerHeight();
474        footer.css('margin-top', fmargin + 'px');
475    }
476}
477$(window).on('load', footer2bottom);
478
479/* checkbox */
480
481$('.checkbox:checked').closest('.checkbox-label').addClass('active');
482$('.checkbox').on('change', function(){
483	var t = $(this);
484	if(t.prop('checked')){
485		t.closest('.checkbox-label').addClass('active');
486	}else{
487		t.closest('.checkbox-label').removeClass('active');
488	}
489})
490
491/* radio */
492
493$(document).ready(function(){
494	$('.radio:checked').closest('.radio-label').addClass('active');
495})
496$('.radio').on('change', function(){
497	var t = $(this),
498		name = t.attr('name');
499	$('[name='+ name +']').closest('.radio-label').removeClass('active');
500	if(t.prop('checked')){
501		t.closest('.radio-label').addClass('active');
502	} else{
503		t.closest('.radio-label').removeClass('active');
504	}
505})
506
507/* cabinet */
508
509$('.cab-more').on('click', function(){
510	var t = $(this);
511	if(t.hasClass('active')){
512		$('.cab-more, .cab-more-wrapp').removeClass('active');
513		$('.cab-more-info').slideUp(300);
514	}else{
515		$('.cab-more, .cab-more-wrapp').removeClass('active');
516		$('.cab-more-info').slideUp(300);
517		t.addClass('active');
518		t.closest('.cab-body').next().addClass('active');
519		t.closest('.cab-body').next().find('.cab-more-info').slideDown(300);
520	}
521})
522
523/* font */
524
525$(window).on('load', function(){
526	$('body').css('font-family', '\'Roboto\', arial, helvetica, sans-serif');
527})
528
529/* lang */
530
531$('.lang-info').on('click', function(){
532	var t = $(this),
533		wrapp = t.closest('.lang-info-wrapp'),
534		list = wrapp.find('.lang-info-list'),
535		lang = t.text();
536	list.find('li').css('display','block');
537	list.find('[data-lang='+ lang +']').css('display','none');
538	list.slideToggle(50);
539})
540
541$('.lang-info-list li').on('click', function(){
542	var t = $(this),
543		lang = t.data('lang');
544	t.closest('.lang-info-wrapp').find('.lang-info').text(lang);
545	t.closest('.lang-info-list').slideUp(50);
546})
547
548/* map */
549
550var mapCanvas = document.getElementById('map');
551function initializeMap(){
552	var mapOptions = {
553		center: new google.maps.LatLng(53.558992, 10.024063),
554		zoom: 17,
555		disableDefaultUI: true,
556		scrollwheel: true,
557		mapTypeId: google.maps.MapTypeId.ROADMAP
558	},
559	map = new google.maps.Map(mapCanvas, mapOptions),
560	marker = new google.maps.Marker({
561		position: new google.maps.LatLng(53.558992, 10.024063),
562		map: map,
563		cursor: 'default',
564		optimized: false,
565		title: 'Luebecker Str.1, Hamburg, 22087, Germany'
566	});
567}
568if(mapCanvas){
569	google.maps.event.addDomListener(window, 'load', initializeMap);
570}
571
572$(".promo").click(function(){
573	$(".innercontainer_active").slideToggle();
574	$(".innercontainer_active").removeClass("innercontainer_active");
575	$(this).next(".innercontainer").slideToggle();
576	$(this).next(".innercontainer").addClass("innercontainer_active");
577});
578
579$(".clink").click(function(){
580	$(".subinnercontainer_active").slideToggle();
581	$(".subinnercontainer_active").removeClass("subinnercontainer_active");
582	$(this).next(".subinnercontainer").slideToggle();
583	$(this).next(".subinnercontainer").addClass("subinnercontainer_active");
584});
585
586$(".section-button").click(function(){
587	$("textarea[name='text']").val(
588		"Необходима стоимость на изделие "+ $(this).data('name')+". Производитель: "+$(this).data('proiz')+". Модель: "+$(this).data('model')+". Код: "+$(this).data('code')+"."
589	);
590
591});

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.