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.