PageSourceSearch

https://mz5-outlet.ru/bitrix/cache/js/ds/outlet/page_6016d52ae837b…2541f64e08eb6263e907b5fdd987e.js?1570187161

js mz5-outlet.ru collected 2026-10-01 14:45:14 UTC 20,251 bytes, 623 lines download raw bytes

1
2; /* Start:/bitrix/templates/outlet/js/page_salons_with_google.js*/
3(function ($){
4	
5	// $(document).ready(function(){
6	// 	$(window).bind('load', function() {
7	// 		$('.salons-page').activegmaps({
8	// 			minaw: 750,
9	// 			parammaps: infofrback,
10	// 		});
11	// 	});
12	//
13	// });//end ready document
14	
15})(jQuery);
16
17/* End */
18;
19; /* Start:/bitrix/templates/outlet/js/jquery.scrollstop.min.js*/
20!function(factory){"function"==typeof define&&define.amd?define(["jquery"],factory):"object"==typeof exports?module.exports=factory(require("jquery")):factory(jQuery)}(function($){var dispatch=$.event.dispatch||$.event.handle,special=$.event.special,uid1="D"+ +new Date,uid2="D"+(+new Date+1);special.scrollstart={setup:function(data){var timer,_data=$.extend({latency:special.scrollstop.latency},data),handler=function(evt){var _self=this,_args=arguments;timer?clearTimeout(timer):(evt.type="scrollstart",dispatch.apply(_self,_args)),timer=setTimeout(function(){timer=null},_data.latency)};$(this).bind("scroll",handler).data(uid1,handler)},teardown:function(){$(this).unbind("scroll",$(this).data(uid1))}},special.scrollstop={latency:250,setup:function(data){var timer,_data=$.extend({latency:special.scrollstop.latency},data),handler=function(evt){var _self=this,_args=arguments;timer&&clearTimeout(timer),timer=setTimeout(function(){timer=null,evt.type="scrollstop",dispatch.apply(_self,_args)},_data.latency)};$(this).bind("scroll",handler).data(uid2,handler)},teardown:function(){$(this).unbind("scroll",$(this).data(uid2))}}});
21/* End */
22;
23; /* Start:/bitrix/templates/outlet/js/scrollblock.js*/
24(function ($){
25	var methods = {
26		init : function(options) { 
27			var settings = jQuery.extend({
28				minaw: 801,
29			}, options);
30			
31			return this.each(function(){
32				var $this = $(this),
33					data = $this.data('scrollblock');
34				// плагин еще не инициализирован
35				if (!data) {
36					$(this).data('scrollblock', {
37						parent: $(this).parent(),
38						minaw: settings.minaw,
39						iostimer: null,
40						menuotstuptop: 54,
41						forplugin: null,
42						plaginon: false,
43					});
44				};
45				
46				$(this).css('top', '54px');
47				
48				$this.scrollblock('stickyresize');
49				
50				$(window).on('resize orientationchange', function(){
51					$this.scrollblock('stickyresize');
52				});
53				
54				//Stickyfill.stop();
55				//Stickyfill.init();
56				//$(this).pause();
57			});
58		},
59		stickyresize: function(){
60			return this.each(function(){
61				
62				var winwidth = $(window).width(),
63					config = $(this).data('scrollblock');
64				if (config.minaw < winwidth){
65					if (!config.plaginon){
66						if (Stickyfill.stickies.length == 0){
67							Stickyfill.add($(this)[0]);
68						}
69						Stickyfill.init();
70						$(this).data('scrollblock').plaginon = true;
71						$(this).removeClass('disabledSticky');
72					};
73				} else {
74					console.log($(this));
75					if (config.plaginon || Stickyfill.stickies.length == 0){
76						console.log('azazazazaza');
77						Stickyfill.stop();
78						$(this).data('scrollblock').plaginon = false;
79						$(this).addClass('disabledSticky');
80					}
81				};
82			});
83		},
84		scroll: function(){
85			return this.each(function(){
86				var winwidth = $(window).width(),
87					winheight = $(window).height(),
88					config = $(this).data('scrollblock');
89				if (config !== undefined){
90					if (config.minaw < winwidth){
91						var scroll = $(window).scrollTop(),
92							paramthis = $(this)[0].getBoundingClientRect(),
93							paramparent = $(this).parent()[0].getBoundingClientRect(),
94							gototop = 0;
95						
96						if (paramparent.top > config.menuotstuptop)
97							gototop = 0;
98						else
99							if (paramparent.bottom - config.menuotstuptop < paramthis.height){
100								gototop = paramparent.height - paramthis.height;
101								
102							}else{
103								gototop = Math.abs(paramparent.top - config.menuotstuptop);
104							}
105					}else
106						gototop = 0;
107					$(this).gototop(gototop);
108				}
109			});
110		},
111	};
112	
113	//Входящие параметры - массивы классов! Карл, массивы!)
114	$.fn.gototop = function(top){
115		return this.each(function(){
116			$(this).css({
117				'-webkit-transform' : 'translate3d(0,' + top + 'px,0)',
118				'-moz-transform'    : 'translate3d(0,' + top + 'px,0)',
119				'-ms-transform'     : 'translate3d(0,' + top + 'px,0)',
120				'-o-transform'      : 'translate3d(0,' + top + 'px,0)',
121				'transform'         : 'translate3d(0,' + top + 'px,0)'
122			});
123		});
124	}
125	
126	$.fn.scrollblock = function(method) {
127		if ( methods[method] ) {
128			  return methods[ method ].apply( this, Array.prototype.slice.call( arguments, 1 ));
129			} else if ( typeof method === 'object' || ! method ) {
130			  return methods.init.apply( this, arguments );
131			} else {
132			  $.error('Метод ' +  method + ' не существует в jQuery.scrollblock' );
133			}    
134	};
135})(jQuery);
136
137(function ($){
138	var methods = {
139		init : function(options) { 
140			var settings = jQuery.extend({
141				'right': {
142					'relwinwidth': 1024,
143					'width': 300,
144				},
145				'leftmenu': {
146					'fixmenuwinwidth': 600,
147					'width': 218,
148					'mobilewidth': 218,
149					'otstup': 21,
150				},
151				'paddings': {
152					'left': 30,
153					'content': 100,
154					'right': 40,
155				},
156				'bottombut': 140,
157				'leftbutabs': 37,
158			}, options);
159			return this.each(function(){
160				var $this = $(this),
161					data = $this.data('scroled');
162				// плагин еще не инициализирован
163				if (!data) {
164					$(this).data('scroled', {
165						right: settings.right,
166						left: settings.leftmenu,
167						paddings: settings.paddings,
168						bottombut: settings.bottombut,
169						leftbutabs: settings.leftbutabs,
170					});
171				};
172				
173				/* on click mobile menu */
174				var objectt = {
175					context: $(this),
176					click: function(){
177						objectt.context.clickmob()
178					},
179				};
180				$('.left-menu .open-button-left-menu').bind('click', bindd(objectt.click, objectt));
181				$(this).scroled('resize');
182				
183				/* Меню */
184				
185				$(this).children('.left-menu').find('.first-level > li > a').on('click', function(event){
186					event.preventDefault();
187					$parent = $(this).parent();
188					if (!$parent.hasClass('active'))
189						if (!$parent.hasClass('active-click')){
190							$('.left-menu .first-level').find('.active-click').removeClass('active-click').children('.second-level').css('height', 0);
191							$parent.addClass('active-click');
192							var $seclvl = $parent.children('.second-level'),
193								heightul = $seclvl.children('ul').outerHeight(true);
194							$seclvl.animate({
195									height: heightul,
196								},{
197									duration: 300,
198									easing: 'easeInOutQuad',
199									complete: function(){
200										$(this).css('height', 'auto');
201										$(window).resize();
202									}
203								}	
204							);
205						}
206						else{
207							$parent.removeClass('active-click').children('.second-level').css('height', 0);
208							$(window).resize();
209						}
210				});
211				
212				
213				
214				/* Конец меню */
215				
216			});
217		},
218		scroll: function(){
219			return this.each(function(){
220				
221			});
222		},
223		resize: function(){
224			return this.each(function(){
225				var $scrollelems = $(this).children('.scroll-elem'),
226					$scrolllength = $(this).children('.scroll-content-length'),
227					maxheightscroll = 0,
228					scroll = $(window).scrollTop() + $('header').outerHeight(true),
229					
230					winwidth = $(window).width(),
231					config = $(this).data('scroled'),
232					$rightcol = $(this).children('.right-column'),
233					$leftcol = $(this).children('.left-column'),
234					$relwr = $leftcol.children('.rel-wrap'),
235					$mobbut = $leftcol.find('.open-button-left-menu'),
236					heightlitfooter = getviewlitfooter();
237				
238				if (config.right != 'none')
239					if (winwidth < config.right.relwinwidth){
240						$rightcol
241							.css({'right': '', 'width': 'auto', 'position': 'static', 'top': '', 'bottom': '',})
242							.removeClass('avail-scroll');
243						$scrolllength.css({
244							'marginRight': 0, 
245						});
246					} else {
247						$rightcol
248							.addClass('avail-scroll');
249						$scrolllength.css({
250							'marginRight': config.right.width, 
251						});
252					}
253				
254				if (winwidth < config.left.fixmenuwinwidth){
255					if (!$leftcol.hasClass('opened')){
256						$(this).setmobilepos(false, false);
257					}else{
258						$(this).setmobilepos(true, false);
259					};
260					$leftcol
261						.css({'width': config.left.mobilewidth, 'left': '',})
262						.addClass('avail-menu');
263					$scrolllength.css({
264						'marginLeft': 0,
265					});
266				}else{
267					$(this).removeopenclass(true);
268					$leftcol
269						.css({'left': 0, 'right': '', 'width': config.left.width})
270						.removeClass('avail-menu');
271					$scrolllength.css({
272						'position': '',
273						'width': '',
274						'marginLeft': config.left.width, 
275					});
276				}
277				
278				//Проверка минимальных размеров
279				if (winwidth < config.left.fixmenuwinwidth){
280					$(this).addClasses('smal', ['middle', 'big']);
281					$(this).css({
282						'paddingBottom': 0,
283					})
284				}else{
285					var heightleft = $(this).children('.left-menu').returnMaxSize(),
286						contentht = $(this).children('.scroll-content-length').outerHeight(),
287						rightheight = $(this).children('.right-column').outerHeight();
288					if (winwidth < config.right.relwinwidth || config.right == 'none'){
289						
290						$(this).addClasses('middle', ['smal', 'big']);
291						right = (config.right == 'none') ? contentht : contentht+rightheight;
292						if (heightleft > right){
293							var razn = heightleft - right;
294							if (razn > config.paddings.right || config.right == 'none')
295								$(this).css({
296									'paddingBottom': razn,
297								})
298						} else
299							$(this).css({
300								'paddingBottom': 0,
301							})
302					}else{
303						$(this).addClasses('big', ['smal', 'middle']);
304						if (contentht < rightheight || contentht < heightleft)
305							if (rightheight > heightleft)
306								$(this).css({
307									'paddingBottom': rightheight - contentht,
308								})
309							else
310								$(this).css({
311									'paddingBottom': heightleft - contentht,
312								})
313						else
314							$(this).css({
315								'paddingBottom': 0,
316							})
317					};
318				}
319
320				var coordinatesthis = $(this)[0].getBoundingClientRect(),
321					headerht = $('header')[0].getBoundingClientRect().height,
322					winheight = $(window).height(),
323					partop = $(this).offset().top;
324				var topgr1 = partop,
325					topgr2 = scroll/*+headerht*/,
326					topgran = (topgr1 > topgr2) ? topgr1 : topgr2;
327				var botgr1 = scroll+winheight-headerht,
328					botgr2 = partop + coordinatesthis.height,
329					bottomgran = (botgr1 < botgr2) ? botgr1 : botgr2;
330					bottomgran = bottomgran - heightlitfooter;
331				var needheight = bottomgran - topgran;
332				
333				//$('.logomenu a').html('<div>'+screen.height+'</div><div>'+window.innerHeight+'</div>');
334				/* Правая колонка */
335				if (config.right != 'none')
336				if ($rightcol.hasClass('avail-scroll')){
337					$rightcol
338						.css({'width': config.right.width, 'marginLeft': 0})
339					var heightelem = $rightcol.outerHeight(true);
340					
341					if (heightelem < coordinatesthis.height){
342						if (scroll <= partop || winheight - headerht - heightlitfooter< heightelem)
343							$rightcol
344								.css({'right': 0, 'position': 'absolute', 'top': 0, 'bottom': ''});
345						else
346							if (heightelem + scroll >= botgr2)
347								$rightcol
348									.css({'right': 0, 'position': 'absolute', 'top': coordinatesthis.height - heightelem, 'bottom': ''});
349							else
350								$rightcol
351									.css({'right': winwidth - coordinatesthis.right, 'position': 'fixed', 'top': headerht, 'bottom': ''});
352								
353					}else{
354						$rightcol
355							.css({'right': 0, 'position': 'absolute', 'top': 0, 'bottom': ''});
356					}
357				}else
358					if ($leftcol.hasClass('avail-menu'))
359						$rightcol
360							.css({'marginLeft': 0})
361					else
362						$rightcol
363							.css({'marginLeft': $leftcol.outerWidth(),});
364				/* конец правая колонка */
365				
366				/* Меню */
367				
368				if ($leftcol.hasClass('avail-menu')){
369					//Вид меню
370					var right = 0;
371					if (!$leftcol.hasClass('opened')){
372						right = -config.left.width + config.left.otstup;
373						if (scroll <= topgr1){						
374							$leftcol.css({'position': 'absolute', 'top': 0});
375						}else
376							if (scroll >= botgr2 - needheight){
377								$leftcol.css({'position': 'absolute', 'top': coordinatesthis.height - needheight});
378							}else{
379								$leftcol.css({'top': headerht});
380							};
381						var h1 = headerht + coordinatesthis.height + $('#main_footer').outerHeight(true);
382						if (h1 < winheight)
383							var ht = winheight - headerht - $('#main_footer').outerHeight(true);
384						else
385							var ht = needheight;
386						$relwr.css({'height': ht, 'min-height': '',});
387
388						$mobbut.css({'top': ht - config.bottombut});
389					} else {
390						right = -config.left.otstup;
391						var htmenu = $leftcol.find('.first-level').outerHeight(),
392							needmaxheight = 0;
393						if (headerht + htmenu > winheight)
394							needmaxheight = htmenu;
395						else
396							needmaxheight = winheight - headerht - $('#main_footer').outerHeight(true);
397							$relwr.css({'min-height': needmaxheight, 'top': '', 'height': ''});
398						
399						var topmobbt = 0,
400							leftmobbut = 0;
401						if (scroll <= topgr1){
402							$mobbut.addClasses('top', ['mid', 'bot']);
403							topmobbt = (needheight - config.bottombut > 0) ? needheight - config.bottombut : 0;
404							leftmobbut = -config.leftbutabs;
405						}else
406							if (scroll >= botgr2 - needheight){
407								$mobbut.addClasses('bot', ['mid', 'top']);
408								topmobbt = needmaxheight - config.bottombut;
409								leftmobbut = -config.leftbutabs;
410							}else{
411								$mobbut.addClasses('mid', ['bot', 'top']);
412								topmobbt = needheight - config.bottombut + headerht;
413								leftmobbut = Math.ceil($leftcol[0].getBoundingClientRect().left - $mobbut.outerWidth(true)/2);
414							};
415						if (!$leftcol.hasClass('needanim')){
416							if ($mobbut.hasClass('top')){
417								$mobbut.css({'position': 'absolute'})
418							} else 
419								if ($mobbut.hasClass('mid')){
420									$mobbut.css('position', 'fixed');
421								} else {
422									$mobbut.css('position', 'absolute');
423								};
424							$mobbut.css({'top': topmobbt, 'left': leftmobbut});
425						}
426					}
427					if ($leftcol.hasClass('needanim'))
428						$leftcol.animate({'right': right}, {'duration': 300, 'easing': 'linear', 
429							start: function(){
430								if (!$leftcol.hasClass('opened')){
431									coord = $leftcol[0].getBoundingClientRect();
432									$mobbut.css({'position': '', 'left': ''});
433								}
434							},
435							complete: function(){
436								$(this).removeClass('needanim');
437								if ($leftcol.hasClass('opened')){
438									coord = $leftcol[0].getBoundingClientRect();
439									$mobbut.css({'position': 'fixed', 'left': $leftcol[0].getBoundingClientRect().left - $mobbut.outerWidth(true)/2, 'top': topmobbt});
440								}
441							}
442						});
443					else
444						$leftcol.css({'right': right});
445				}else{
446					//Просто колонка
447					$mobbut.css({'position': '', 'left': ''});
448					var heightelem = $leftcol.returnMaxSize();
449					$leftcol
450						.css({'right': '', 'top': '', 'overflow-y': '', 'height': 'auto'})
451						.removeClass('opened');
452					if (heightelem < coordinatesthis.height){
453						if (scroll <= partop || winheight - headerht - heightlitfooter< heightelem)
454							$leftcol
455								.css({'left': 0, 'position': 'absolute', 'top': 0, 'bottom': ''});
456						else
457							if (heightelem + scroll >= botgr2)
458								$leftcol
459									.css({'left': 0, 'position': 'absolute', 'top': coordinatesthis.height - heightelem, 'bottom': ''});
460							else
461								$leftcol
462									.css({'left': coordinatesthis.left, 'position': 'fixed', 'top': headerht, 'bottom': ''});
463								
464					}else{
465						$leftcol
466							.css({'left': 0, 'position': 'absolute', 'top': 0, 'bottom': ''});
467					}
468				};
469				
470				/* конец меню */		
471			});
472		},
473	};
474	
475	$.fn.retmaxchildrenheight = function(){
476		var maxheight = 0;
477		$(this).children('div').each(function(){
478			if ($(this).outerHeight(true) > maxheight)
479				maxheight = $(this).outerHeight(true);
480		});
481		
482		return maxheight;
483	}
484
485	$.fn.removeopenclass = function(){
486		$(this).children('.left-menu').removeClass('opened').find('.rel-wrap').css({'min-height':'', 'height': ''});
487	}
488	
489	$.fn.setmobilepos = function(close, anim){
490		var $leftmenu = $(this).find('.left-menu'),
491			$content = $(this).find('.scroll-content-length'),
492			$rightcol = $(this).find('.right-column'),
493			config = $(this).data('scroled'),
494			right = -config.left.otstup;
495		if (close){
496			$leftmenu.css({
497				'position': 'relative',
498				'marginLeft': 'auto',
499				'height': '',
500				'left': '',
501				'bottom': '',
502				'zIndex': 3,
503				'top': '',
504			});
505			$content.css({
506				'position': 'absolute',
507				'top': 0,
508				'width': '100%', 
509				'zIndex': 2,
510			});
511			$rightcol.css({
512				'position': 'absolute',
513				'top': $content.outerHeight(true),
514				'zIndex': 2,
515			});
516		}else{
517			$leftmenu.css({
518				'position': 'fixed',
519				'marginLeft': 'auto',
520				'left': '',
521				'bottom': '',
522				'zIndex': '',
523			});
524			$content.css({
525				'position': 'static',
526				'top': '',
527				'width': '100%', 
528				'zIndex': '',
529			});
530			$rightcol.css({
531				'position': 'static',
532				'top': '',
533				'zIndex': '',
534			});
535			right = -config.left.width;
536		}
537		if (anim)
538			$leftmenu.addClass('needanim');
539	}
540	
541	$.fn.clickmob = function(){
542		return this.each(function(){
543			var $leftmenu = $(this).find('.left-menu'),
544				$content = $(this).find('.scroll-content-length'),
545				$rightcol = $(this).find('.right-column'),
546				$elems = $(this).find('.scroll-content-length, .right-column'),
547				config = $(this).data('scroled');
548				if ($leftmenu.hasClass('opened')){
549					$leftmenu.removeClass('opened');
550					$(this).setmobilepos(false, true);
551				}
552				else{
553					$leftmenu.addClass('opened');
554					$(this).setmobilepos(true, true);
555				}
556			$(window).resize();
557		});
558	}
559	
560	$.fn.setrightopen = function(anim, config){
561		/*var right = 0;
562		if (!$(this).hasClass('opened'))
563			right;
564				
565		if (anim)
566			$(this).animate({'right': right},{duration: 300});
567		else
568			$(this).css('right', right);*/
569	}
570	
571	$.fn.returnMaxSize = function(){
572		var $elem = $(this).find('.first-level'),
573			maxseclevel = 0,
574			heightmenu = $elem.outerHeight(true) - $elem.find('.active-click').find('ul').outerHeight(true);
575			$elem.children('li:not(.active)').each(function(){
576				height = $(this).find('.second-level ul').outerHeight(true); 
577				if (height > maxseclevel)
578					maxseclevel = height;
579			});
580			return heightmenu+maxseclevel;
581	}
582	
583	//addclasses - string, remoclasses - массив string
584	$.fn.addClasses = function(addclasses, remoclasses){
585		return this.each(function(){
586			$(this).addClass(addclasses);
587			for (var i=0;i<remoclasses.length;i++)
588				$(this).removeClass(remoclasses[i]);
589		});
590	}
591	
592	function bindd(func, context) {
593		return function() {
594			return func.apply(context, arguments);
595		};
596	}
597	
598	function getviewlitfooter(){
599		var footertop = Math.ceil($('#main_footer').offset().top);
600		var littlefootertop = $('#little_footer').offset().top;
601		var lettlefooterheight = $('#little_footer').outerHeight(true);
602		
603		if (littlefootertop - footertop < 0)
604			if (footertop - littlefootertop > lettlefooterheight)
605				return Math.ceil(lettlefooterheight);
606			else
607				return Math.ceil(footertop - littlefootertop);
608		else
609			return 0;
610	}
611	
612	$.fn.scroled = function(method) {
613		if ( methods[method] ) {
614			  return methods[ method ].apply( this, Array.prototype.slice.call( arguments, 1 ));
615			} else if ( typeof method === 'object' || ! method ) {
616			  return methods.init.apply( this, arguments );
617			} else {
618			  $.error('Метод ' +  method + ' не существует в jQuery.scroled' );
619			}    
620	};
621})(jQuery);
622/* End */
623;

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.