1var basketTimeoutSlide; 2var resizeEventTimer; 3 4var funcDefined = function (func) { 5 try { 6 if (typeof func == "function") { 7 return true; 8 } else { 9 return typeof window[func] === "function"; 10 } 11 } catch (e) { 12 return false; 13 } 14}; 15 16if (!funcDefined("setLocationSKU")) { 17 function setLocationSKU(ID, offerID) { 18 if (offerID === undefined) offerID = "oid"; 19 if (offerID) { 20 var objUrl = parseUrlQuery(), 21 j = 0, 22 prefix = "", 23 query_string = "", 24 url = ""; 25 objUrl[offerID] = ID; 26 for (var i in objUrl) { 27 if (parseInt(j) > 0) { 28 prefix = "&"; 29 } 30 query_string += prefix + i + "=" + objUrl[i]; 31 j++; 32 } 33 if (query_string) { 34 url = location.pathname + "?" + query_string; 35 } 36 try { 37 history.replaceState(null, null, url); 38 return; 39 } catch (e) {} 40 location.hash = "#" + url.substr(1); 41 } 42 } 43} 44 45/*sku change props*/ 46if (!("SelectOfferProp" in window) && typeof window.SelectOfferProp != "function") { 47 SelectOfferProp = function () { 48 // return false; 49 var _this = $(this), 50 obParams = {}, 51 obSelect = {}, 52 objUrl = parseUrlQuery(), 53 add_url = "", 54 selectMode = !_this.hasClass("item") ? true : false, 55 container = _this.closest(".bx_catalog_item_scu"), 56 img = _this.closest(".item-parent").find(".thumb img"); 57 58 /* request params */ 59 obParams = { 60 PARAMS: _this.closest(".js-wrapper-block").data("params"), 61 ID: container.data("offer_id"), 62 SITE_ID: container.data("site_id"), 63 LINK_ID: container.data("id") + "_" + _this.closest(".cur").data("code"), 64 IBLOCK_ID: container.data("offer_iblockid"), 65 PROPERTY_ID: container.data("propertyid"), 66 DEPTH: _this.closest(".item_wrapper").index(), 67 VALUE: selectMode ? _this.find("option:selected").data("onevalue") : _this.data("onevalue"), 68 CLASS: "inner_content", 69 PICTURE: img.data("src") ? img.data("src") : img.attr("src"), 70 ARTICLE_NAME: _this.closest(".item_wrapper").find(".article_block").data("name"), 71 ARTICLE_VALUE: _this.closest(".item_wrapper").find(".article_block").data("value"), 72 }; 73 /**/ 74 75 if ("clear_cache" in objUrl) { 76 if (objUrl.clear_cache == "Y") add_url += "?clear_cache=Y"; 77 } 78 79 /* save selected values */ 80 for (i = 0; i < obParams.DEPTH + 1; i++) { 81 strName = "PROP_" + container.find(".item_wrapper:eq(" + i + ") > div").data("id"); 82 if (container.find(".item_wrapper:eq(" + i + ") select").length) { 83 obSelect[strName] = container.find(".item_wrapper:eq(" + i + ") select option:selected").data("onevalue"); 84 obParams[strName] = container.find(".item_wrapper:eq(" + i + ") select option:selected").data("onevalue"); 85 86 if (container.find(".item_wrapper:eq(" + i + ") select option:selected").attr("title")) { 87 _this 88 .closest(".item_wrapper") 89 .find(".show_class") 90 .text(container.find(".item_wrapper:eq(" + i + ") select option:selected").attr("title")); 91 } 92 } else { 93 obSelect[strName] = container.find(".item_wrapper:eq(" + i + ") li.item.active").data("onevalue"); 94 obParams[strName] = container.find(".item_wrapper:eq(" + i + ") li.item.active").data("onevalue"); 95 } 96 } 97 // obParams.SELECTED = JSON.stringify(obSelect); 98 /**/ 99 100 if (!selectMode) { 101 _this.siblings().removeClass("active"); 102 _this.addClass("active"); 103 } 104 105 setPropertyTitle(_this); 106 107 /* get sku */ 108 $.ajax({ 109 url: arOptimusOptions["SITE_DIR"] + "ajax/js_item_detail.php" + add_url, 110 type: "POST", 111 data: obParams, 112 }).done(function (html) { 113 var ob = BX.processHTML(html); 114 BX.ajax.processScripts(ob.SCRIPT); 115 // if (funcDefined("sliceItemBlock")) { 116 // sliceItemBlock({ resize: false }); 117 // } 118 119 if ($(".counter_wrapp.list")) { 120 $(".counter_wrapp.list .counter_block.big").removeClass("big"); 121 } 122 }); 123 }; 124 $(document).on("click", ".ajax_load .bx_catalog_item_scu li.item:not(.active)", SelectOfferProp); 125 $(document).on("change", ".ajax_load .bx_catalog_item_scu select", SelectOfferProp); 126} 127 128if (!funcDefined("setPropertyTitle")) { 129 var setPropertyTitle = function(ctx) { 130 if (ctx.attr("title")) { 131 const skuVal = ctx.attr("title"); 132 ctx.closest(".item_wrapper").find(".show_class").text(skuVal); 133 } else { 134 const img_row = ctx.find(" > i"); 135 136 if (img_row.length && img_row.attr("title")) { 137 const skuVal = img_row.attr("title"); 138 ctx.closest(".item_wrapper").find(".show_class").text(skuVal); 139 } 140 } 141 } 142} 143 144if (!funcDefined("trimPrice")) { 145 var trimPrice = function trimPrice(s) { 146 s = s.split(" ").join(""); 147 s = s.split(" ").join(""); 148 return s; 149 }; 150} 151 152if (!funcDefined("markProductRemoveBasket")) { 153 var markProductRemoveBasket = function markProductRemoveBasket(id) { 154 $(".in-cart[data-item=" + id + "]").hide(); 155 $(".to-cart[data-item=" + id + "]").show(); 156 $(".to-cart[data-item=" + id + "]") 157 .closest(".button_block") 158 .removeClass("wide"); 159 $(".to-cart[data-item=" + id + "]") 160 .closest(".counter_wrapp") 161 .find(".counter_block") 162 .show(); 163 $(".counter_block[data-item=" + id + "]").show(); 164 $(".in-subscribe[data-item=" + id + "]").hide(); 165 $(".to-subscribe[data-item=" + id + "]").show(); 166 $(".wish_item[data-item=" + id + "]").removeClass("added"); 167 $(".wish_item[data-item=" + id + "] .value:not(.added)").show(); 168 $(".wish_item[data-item=" + id + "] .value.added").hide(); 169 }; 170} 171 172if (!funcDefined("markProductAddBasket")) { 173 var markProductAddBasket = function markProductAddBasket(id) { 174 $(".to-cart[data-item=" + id + "]").hide(); 175 $(".to-cart[data-item=" + id + "]") 176 .closest(".counter_wrapp") 177 .find(".counter_block") 178 .hide(); 179 $(".to-cart[data-item=" + id + "]") 180 .closest(".button_block") 181 .addClass("wide"); 182 $(".in-cart[data-item=" + id + "]").show(); 183 $(".wish_item[data-item=" + id + "]").removeClass("added"); 184 $(".wish_item[data-item=" + id + "] .value:not(.added)").show(); 185 $(".wish_item[data-item=" + id + "] .value.added").hide(); 186 }; 187} 188 189if (!funcDefined("markProductDelay")) {
190 var markProductDelay = function markProductDelay(id) { 191 $(".in-cart[data-item=" + id + "]").hide(); 192 $(".to-cart[data-item=" + id + "]").show(); 193 $(".to-cart[data-item=" + id + "]") 194 .closest(".counter_wrapp") 195 .find(".counter_block") 196 .show(); 197 $(".to-cart[data-item=" + id + "]") 198 .closest(".button_block") 199 .removeClass("wide"); 200 $(".wish_item[data-item=" + id + "]").addClass("added"); 201 $(".wish_item[data-item=" + id + "] .value:not(.added)").hide(); 202 // $('.wish_item[data-item='+id+'] .value.added').show(); 203 $(".wish_item[data-item=" + id + "] .value.added").css("display", "block"); 204 }; 205} 206 207if (!funcDefined("markProductSubscribe")) { 208 var markProductSubscribe = function markProductSubscribe(id) { 209 $(".to-subscribe[data-item=" + id + "]").hide(); 210 $(".in-subscribe[data-item=" + id + "]").css("display", "block"); 211 }; 212} 213 214if (!funcDefined("basketFly")) { 215 var basketFly = function basketFly(action) { 216 if (typeof obOptimusPredictions === "object") { 217 obOptimusPredictions.updateAll(); 218 } 219 220 $.post( 221 arOptimusOptions["SITE_DIR"] + "ajax/basket_fly.php", 222 "PARAMS=" + $("#basket_form").find("input#fly_basket_params").val(), 223 $.proxy(function (data) { 224 var small = $(".opener .basket_count").hasClass("small"), 225 basket_count = $(data).find(".basket_count").find(".items div").text(); 226 $("#basket_line .basket_fly").addClass("loaded").html(data); 227 228 if (action == "refresh") { 229 $("li[data-type=AnDelCanBuy]").trigger("click"); 230 } 231 232 if (window.matchMedia("(min-width: 769px)").matches) { 233 if (action == "open") { 234 if (small) { 235 if (arOptimusOptions["THEME"]["SHOW_BASKET_ONADDTOCART"] !== "N") { 236 if (!$('.basket_fly').hasClass('opened-once')) { 237 $(".opener .basket_count").click(); 238 $('.basket_fly').addClass('opened-once'); 239 } 240 } 241 } else { 242 $(".opener .basket_count").removeClass("small"); 243 $('.tabs_content.basket li[item-section="AnDelCanBuy"]').addClass("cur"); 244 $('#basket_line ul.tabs li[item-section="AnDelCanBuy"]').addClass("cur"); 245 } 246 } else if (action == "wish") { 247 if (small) { 248 if (arOptimusOptions["THEME"]["SHOW_BASKET_ONADDTOCART"] !== "N") { 249 $(".opener .wish_count").click(); 250 } 251 } else { 252 $(".opener .wish_count").removeClass("small"); 253 $('.tabs_content.basket li[item-section="DelDelCanBuy"]').addClass("cur"); 254 $('#basket_line ul.tabs li[item-section="DelDelCanBuy"]').addClass("cur"); 255 } 256 } else { 257 if (arOptimusOptions["THEME"]["SHOW_BASKET_ONADDTOCART"] !== "N") { 258 $(".opener .basket_count").click(); 259 } 260 } 261 } 262 }) 263 ); 264 }; 265} 266 267if (!funcDefined("clearViewedProduct")) { 268 function clearViewedProduct() { 269 try { 270 var siteID = arOptimusOptions.SITE_ID; 271 var localKey = "OPTIMUS_VIEWED_ITEMS_" + siteID; 272 var cookieParams = { path: "/", expires: 30 }; 273 if (typeof BX.localStorage !== "undefined") { 274 // remove local storage 275 BX.localStorage.set(localKey, {}, 0); 276 } 277 // remove cookie 278 $.removeCookie(localKey, cookieParams); 279 } catch (e) { 280 console.error(e); 281 } 282 } 283} 284 285if (!funcDefined("setViewedProduct")) { 286 function setViewedProduct(id, arData) { 287 try { 288 // save $.cookie option 289 var bCookieJson = $.cookie.json; 290 $.cookie.json = true; 291 292 var siteID = arOptimusOptions.SITE_ID; 293 var localKey = "OPTIMUS_VIEWED_ITEMS_" + siteID; 294 var cookieParams = { path: "/", expires: 30 }; 295 296 if (typeof BX.localStorage !== "undefined" && typeof id !== "undefined" && typeof arData !== "undefined") { 297 var PRODUCT_ID = typeof arData.PRODUCT_ID !== "undefined" ? arData.PRODUCT_ID : id; 298 var arViewedLocal = BX.localStorage.get(localKey) ? BX.localStorage.get(localKey) : {}; 299 var arViewedCookie = $.cookie(localKey) ? $.cookie(localKey) : {}; 300 var count = 0; 301 302 // delete some items (sync cookie & local storage) 303 for (var _id in arViewedLocal) { 304 arViewedLocal[_id].IS_LAST = false;
305 if (typeof arViewedCookie[_id] === "undefined") { 306 delete arViewedLocal[_id]; 307 } 308 } 309 for (var _id in arViewedCookie) { 310 if (typeof arViewedLocal[_id] === "undefined") { 311 delete arViewedCookie[_id]; 312 } 313 } 314 315 for (var _id in arViewedCookie) { 316 count++; 317 } 318 319 // delete item if other item (offer) of that PRODUCT_ID is exists 320 if (typeof arViewedLocal[PRODUCT_ID] !== "undefined") { 321 if (arViewedLocal[PRODUCT_ID].ID != id) { 322 delete arViewedLocal[PRODUCT_ID]; 323 delete arViewedCookie[PRODUCT_ID]; 324 } 325 } 326 327 delete arViewedLocal[2243]; 328 delete arViewedCookie[2243]; 329 330 var time = new Date().getTime(); 331 arData.ID = id; 332 arData.ACTIVE_FROM = time; 333 arData.IS_LAST = true; 334 arViewedLocal[PRODUCT_ID] = arData; 335 arViewedCookie[PRODUCT_ID] = [time.toString(), arData.PICTURE_ID]; 336 337 $.cookie(localKey, arViewedCookie, cookieParams); 338 BX.localStorage.set(localKey, arViewedLocal, 2592000); // 30 days 339 } 340 } catch (e) { 341 console.error(e); 342 } finally { 343 // restore $.cookie option 344 $.cookie.json = bCookieJson; 345 } 346 } 347} 348 349if (!funcDefined("initSelects")) { 350 function initSelects(target) { 351 var iOS = navigator.userAgent.match(/(iPad|iPhone|iPod)/g) ? true : false; 352 if (iOS) return; 353 if ($("#bx-soa-order").length) return; 354 // SELECT STYLING 355 $(target) 356 .find(".wrapper select:visible") 357 .ikSelect({ 358 syntax: 359 '<div class="ik_select_link"> \ 360 <span class="ik_select_link_text"></span> \ 361 <div class="trigger"></div> \ 362 </div> \ 363 <div class="ik_select_dropdown"> \ 364 <div class="ik_select_list"> \ 365 </div> \ 366 </div>', 367 dynamicWidth: true, 368 ddMaxHeight: 112, 369 customClass: "common_select", 370 //equalWidths: true, 371 onShow: function (inst) { 372 inst.$dropdown.css("top", parseFloat(inst.$dropdown.css("top")) - 5 + "px"); 373 if (inst.$dropdown.outerWidth() < inst.$link.outerWidth()) { 374 inst.$dropdown.css("width", inst.$link.outerWidth()); 375 } 376 if (inst.$dropdown.outerWidth() > inst.$link.outerWidth()) { 377 inst.$dropdown.css("width", inst.$link.outerWidth()); 378 } 379 var count = 0, 380 client_height = 0; 381 inst.$dropdown.css("left", inst.$link.offset().left); 382 $(inst.$listInnerUl) 383 .find("li") 384 .each(function () { 385 if (!$(this).hasClass("ik_select_option_disabled")) { 386 ++count; 387 client_height += $(this).outerHeight(); 388 } 389 }); 390 if (client_height < 112) { 391 inst.$listInner.css("height", "auto"); 392 } else { 393 inst.$listInner.css("height", "112px"); 394 } 395 inst.$link.addClass("opened"); 396 inst.$listInner.addClass("scroller"); 397 }, 398 onHide: function (inst) { 399 inst.$link.removeClass("opened"); 400 }, 401 }); 402 // END OF SELECT STYLING 403 404 var timeout; 405 $(window).on("resize", function () { 406 clearTimeout(timeout); 407 timeout = setTimeout(function () { 408 //$('select:visible').ikSelect('redraw'); 409 var inst = ""; 410 if ((inst = $(".common_select-link.opened + select").ikSelect().data("plugin_ikSelect"))) { 411 inst.$dropdown.css("left", inst.$link.offset().left + "px"); 412 } 413 }, 20); 414 }); 415 } 416} 417 418if (!funcDefined("CheckTopMenuFullCatalogSubmenu")) { 419 CheckTopMenuFullCatalogSubmenu = function () { 420 if (arOptimusOptions["THEME"]["MENU_TYPE_VIEW"] != "hover") return; 421 var $menu = $(".menu_top_block"); 422 var $wrapmenu = $menu.parents(".wrap_menu"); 423 var wrapMenuWidth = $wrapmenu.actual("outerWidth"); 424 var wrapMenuLeft = $wrapmenu.offset().left; 425 var wrapMenuRight = wrapMenuLeft + wrapMenuWidth; 426 var bCatalogFirst = $menu.hasClass("catalogfirst"); 427 var findMenuLi = $(".menu_top_block:visible li.full"); 428 var parentSubmenuWidth = $menu.actual("outerWidth"); 429 430 if ($(".catalog_block.menu_top_block").length) { 431 if ($(".catalog_block.menu_top_block").is(":visible")) findMenuLi = $(".menu_top_block.catalog_block li.full"); 432 } 433 434 findMenuLi.each(function () { 435 var $this = $(this); 436 var $submenu = $this.find(">.dropdown"); 437 438 if ($submenu.length) { 439 if (bCatalogFirst) { 440 $submenu.css({ 441 left: parentSubmenuWidth + "px", 442 width: wrapMenuWidth - parentSubmenuWidth + "px", 443 "padding-left": "0px", 444 "padding-right": "0px", 445 }); 446 } else { 447 $submenu.css({ 448 left: $this.offset().left * -1 + "px", 449 width: $(window).width() - 1 + "px", 450 "padding-left": wrapMenuLeft + "px", 451 "padding-right": $(window).width() - wrapMenuRight + "px", 452 }); 453 } 454 if (!isOnceInited && bCatalogFirst && arOptimusOptions["THEME"]["MENU_POSITION"] == "top") { 455 $this.on("mouseenter", function () { 456 $submenu.css("min-height", $this.closest(".dropdown").actual("outerHeight") + "px"); 457 }); 458 } 459 } 460 }); 461 }; 462} 463 464$.fn.getMaxHeights = function (outer, classNull, minHeight) { 465 var maxHeight = this.map(function (i, e) { 466 var calc_height = 0; 467 468 $(e).css("height", ""); 469 470 if (outer == true) { 471 calc_height = $(e).actual("outerHeight"); 472 } else { 473 calc_height = $(e).actual("height"); 474 } 475 return calc_height; 476 }).get(); 477 for (var i = 0, c = maxHeight.length; i < c; ++i) { 478 if (maxHeight[i] % 2) { 479 --maxHeight[i]; 480 } 481 } 482 return Math.max.apply(this, maxHeight); 483}; 484 485$.fn.equalizeHeights = function (outer, classNull, minHeight) { 486 var maxHeight = this.map(function (i, e) { 487 var minus_height = 0, 488 calc_height = 0; 489 if (classNull !== false) { 490 if (!isMobile) { 491 minus_height = parseInt($(e).find(classNull).actual("outerHeight")); 492 } 493 } 494 if (minus_height) minus_height += 12; 495 $(e).css("height", ""); 496 if (outer == true) { 497 calc_height = $(e).actual("outerHeight") - minus_height; 498 } else { 499 calc_height = $(e).actual("height") - minus_height; 500 } 501 if (minHeight !== false) { 502 if (calc_height < minHeight) { 503 calc_height += minHeight - calc_height; 504 } 505 if (window.matchMedia("(max-width: 520px)").matches) { 506 calc_height = 300; 507 } 508 if (window.matchMedia("(max-width: 400px)").matches) { 509 calc_height = 200; 510 } 511 } 512 return calc_height; 513 }).get(); 514 515 for (var i = 0, c = maxHeight.length; i < c; ++i) { 516 if (maxHeight[i] % 2) { 517 --maxHeight[i]; 518 } 519 } 520 return this.height(Math.max.apply(this, maxHeight)); 521}; 522 523$.fn.getFloatWidth = function () { 524 var width = 0; 525 526 if ($(this).length) { 527 var rect = $(this)[0].getBoundingClientRect(); 528 if (!(width = rect.width)) { 529 width = rect.right - rect.left; 530 } 531 } 532 533 return width; 534}; 535 536$.fn.sliceHeight = function (options) { 537 function _slice(el) { 538 el.each(function () { 539 $(this).css("line-height", ""); 540 $(this).css("height", ""); 541 }); 542 543 if (options.mobile == true) { 544 if (window.matchMedia("(max-width: 520px)").matches) { 545 return; 546 } 547 } 548 549 if (typeof options.autoslicecount == "undefined" || options.autoslicecount !== false) { 550 var row = 551 typeof options.row !== "undefined" && options.row.length 552 ? el.first().parents(options.row).getFloatWidth() 553 : el.first().parents(".items").getFloatWidth(), 554 elw = 555 typeof options.item !== "undefined" && options.item.length 556 ? $(options.item).first().getFloatWidth() 557 : el.first().hasClass("item") 558 ? el.first().getFloatWidth() 559 : el.first().parents(".item").getFloatWidth(); 560 if (!row) { 561 row = el.first().parents(".row").getFloatWidth(); 562 } 563 if (row && elw) { 564 options.slice = Math.floor(row / elw); 565 } 566 } 567 if (options.slice) { 568 for (var i = 0; i < el.length; i += options.slice) { 569 $(el.slice(i, i + options.slice)).equalizeHeights(options.outer, options.classNull, options.minHeight); 570 } 571 } 572 if (options.lineheight) { 573 var lineheightAdd = parseInt(options.lineheight); 574 if (isNaN(lineheightAdd)) { 575 lineheightAdd = 0; 576 } 577 el.each(function () { 578 $(this).css("line-height", $(this).actual("height") + lineheightAdd + "px"); 579 }); 580 } 581 } 582 583 var options = $.extend( 584 { 585 slice: null, 586 outer: false, 587 lineheight: false, 588 autoslicecount: true, 589 classNull: false, 590 minHeight: false, 591 options: false, 592 resize: true,
593 row: false, 594 item: false, 595 mobile: false, 596 }, 597 options 598 ); 599 600 var el = $(this); 601 602 if (options.mobile == true) { 603 if ( 604 typeof arOptimusOptions === "object" && 605 typeof arOptimusOptions.THEME.MOBILE_CATALOG_BLOCK_COMPACT === "string" && 606 arOptimusOptions.THEME.MOBILE_CATALOG_BLOCK_COMPACT.toUpperCase() === "Y" && 607 el.first().parents(".catalog_block.items").length 608 ) { 609 options.mobile = false; 610 } 611 } 612 _slice(el); 613 614 if (options.resize) { 615 if (!window.sliceResizeElements) { 616 window.sliceResizeElements = []; 617 BX.addCustomEvent("onWindowResize", function () { 618 ignoreResize.push(true); 619 window.sliceResizeElements.forEach(function (el) { 620 _slice(el); 621 }); 622 ignoreResize.pop(); 623 }); 624 } 625 626 window.sliceResizeElements.push(el); 627 } else { 628 if (!ignoreResize.length) { 629 // ignoreResize.push(true); 630 _slice(el); 631 // ignoreResize.pop(); 632 } 633 } 634}; 635 636$.fn.sliceHeightNoResize = function (options) { 637 function _slice(el) { 638 el.each(function () { 639 $(this).css("line-height", ""); 640 $(this).css("height", ""); 641 }); 642 if (typeof options.autoslicecount == "undefined" || options.autoslicecount !== false) { 643 var elw = el.first().hasClass("item") ? el.first().getFloatWidth() : el.first().parents(".item").getFloatWidth(); 644 var elsw = el.first().parents(".items").getFloatWidth(); 645 if (!elsw) { 646 elsw = el.first().parents(".row").getFloatWidth(); 647 } 648 if (elsw && elw) { 649 options.slice = Math.floor(elsw / elw); 650 } 651 } 652 653 if (options.slice) { 654 for (var i = 0; i < el.length; i += options.slice) { 655 $(el.slice(i, i + options.slice)).equalizeHeights(options.outer, options.classNull, options.minHeight); 656 } 657 } 658 if (options.lineheight) { 659 var lineheightAdd = parseInt(options.lineheight); 660 if (isNaN(lineheightAdd)) { 661 lineheightAdd = 0; 662 } 663 el.each(function () { 664 $(this).css("line-height", $(this).actual("height") + lineheightAdd + "px"); 665 }); 666 } 667 } 668 669 var options = $.extend( 670 { 671 slice: null, 672 outer: false, 673 lineheight: false, 674 autoslicecount: true, 675 classNull: false, 676 minHeight: false, 677 options: false, 678 resize: true, 679 }, 680 options 681 ); 682 683 var el = $(this); 684 _slice(el); 685}; 686 687if (!funcDefined("initHoverBlock")) { 688 function initHoverBlock(target) { 689 /*$(target).find('.catalog_item.item_wrap').on('mouseenter', function(){ 690 $(this).addClass('hover'); 691 }) 692 $(target).find('.catalog_item.item_wrap').on('mouseleave', function(){ 693 $(this).removeClass('hover'); 694 })*/ 695 } 696} 697 698if (!funcDefined("setStatusButton")) { 699 function setStatusButton() { 700 $.ajax({ 701 url: arOptimusOptions["SITE_DIR"] + "ajax/getAjaxBasket.php", 702 type: "POST", 703 success: function (data) { 704 if (data.BASKET) { 705 for (var i in data.BASKET) { 706 $(".to-cart[data-item=" + data.BASKET[i] + "]").hide(); 707 $(".counter_block[data-item=" + data.BASKET[i] + "]").hide(); 708 $(".in-cart[data-item=" + data.BASKET[i] + "]").show(); 709 $(".in-cart[data-item=" + data.BASKET[i] + "]") 710 .closest(".button_block") 711 .addClass("wide"); 712 } 713 } 714 if (data.DELAY) { 715 for (var i in data.DELAY) { 716 $(".wish_item.to[data-item=" + data.DELAY[i] + "]").hide(); 717 $(".wish_item.in[data-item=" + data.DELAY[i] + "]").show(); 718 if ($(".wish_item[data-item=" + data.DELAY[i] + "]").find(".value.added").length) { 719 $(".wish_item[data-item=" + data.DELAY[i] + "]").addClass("added"); 720 $(".wish_item[data-item=" + data.DELAY[i] + "]") 721 .find(".value") 722 .hide(); 723 $(".wish_item[data-item=" + data.DELAY[i] + "]") 724 .find(".value.added") 725 .show(); 726 } 727 } 728 } 729 if (data.SUBSCRIBE) { 730 for (var i in data.SUBSCRIBE) { 731 $(".to-subscribe[data-item=" + data.SUBSCRIBE[i] + "]").hide(); 732 $(".in-subscribe[data-item=" + data.SUBSCRIBE[i] + "]").show(); 733 } 734 } 735 if (data.COMPARE) { 736 for (var i in data.COMPARE) { 737 $(".compare_item.to[data-item=" + data.COMPARE[i] + "]").hide(); 738 $(".compare_item.in[data-item=" + data.COMPARE[i] + "]").show(); 739 if ($(".compare_item[data-item=" + data.COMPARE[i] + "]").find(".value.added").length) { 740 $(".compare_item[data-item=" + data.COMPARE[i] + "]") 741 .find(".value") 742 .hide(); 743 $(".compare_item[data-item=" + data.COMPARE[i] + "]") 744 .find(".value.added") 745 .show(); 746 } 747 } 748 } 749 }, 750 }); 751 } 752} 753 754window.onload = function () { 755 window.dataLayer = window.dataLayer || []; 756}; 757 758if (!funcDefined("onLoadjqm")) { 759 var onLoadjqm = function (name, hash, requestData, selector, requestTitle, isButton, thButton) { 760 761 if ( hash.c.noOverlay === undefined || (hash.c.noOverlay !== undefined && !hash.c.noOverlay) ) { 762 let diffWidth; 763 $("body").addClass("jqm-initied"); 764 765 if ((diffWidth = window.innerWidth - document.documentElement.clientWidth)) { 766 $("body").css({ "padding-right": diffWidth + "px", "box-sizing": "border-box"}); 767 } 768 769 hash.w 770 .closest("#popup_iframe_wrapper") 771 .css({ "z-index": 3000, display: "flex" }); 772 } 773 774 hash.w.addClass("show").css({ 775 opacity: 1, 776 }); 777 778 hash.w.addClass("scrollbar scrollbar--overflow"); 779 780 $("body").css({ overflow: "hidden", /*height: "100vh"*/}); 781 782 if(!$("body").hasClass("fast_view") && name === "fast_view") { 783 $("body").addClass(name); 784 } 785 786 if (typeof requestData == "undefined") { 787 requestData = ""; 788 } 789 if (typeof selector == "undefined") { 790 selector = false;
791 } 792 //var width = $("." + name + "_frame").width(); 793 //$("." + name + "_frame").css("margin-left", "-" + width / 2 + "px"); 794 795 if (name == "order-popup-call") { 796 } else if (name == "order-button") { 797 $(".order-button_frame") 798 .find("div[product_name]") 799 .find("input") 800 .val(hash.t.title) 801 .attr("readonly", "readonly") 802 .css({ overflow: "hidden", "text-overflow": "ellipsis" }); 803 } else if ((name == "to-order" || name == "cheaper") && selector) { 804 $(".to-order_frame") 805 .find('[data-sid="PRODUCT_NAME"]') 806 .val($(selector).data("name")) 807 .attr("readonly", "readonly") 808 .css({ overflow: "hidden", "text-overflow": "ellipsis" }); 809 $(".to-order_frame").find('[data-sid="PRODUCT_ID"]').val($(selector).attr("data-item")); 810 $(".cheaper_frame") 811 .find('[data-sid="PRODUCT_NAME"]') 812 .val($(selector).data("name")) 813 .attr("readonly", "readonly") 814 .css({ overflow: "hidden", "text-overflow": "ellipsis" }); 815 $(".cheaper_frame").find('[data-sid="PRODUCT_ID"]').val($(selector).attr("data-item")); 816 } else if (name == "services" && selector) { 817 $(".services_frame").find('[data-sid="SERVICE"]').val($(selector).attr("data-title")); 818 } else if (name == "resume" && selector) { 819 if ($(selector).attr("data-jobs")) { 820 $(".resume_frame").find('[data-sid="POST"]').attr("readonly", "readonly").val($(selector).attr("data-jobs")); 821 } 822 } else if (name == "basket_error") { 823 /*else if(name == "subscribe" && selector) { 824 if($(selector).attr('data-item')){ 825 $(".subscribe_frame").find('[data-sid="POST"]').attr("readonly", "readonly").val($(selector).attr('data-jobs')); 826 } 827 }*/ 828 $(".basket_error_frame .pop-up-title").text(requestTitle); 829 $(".basket_error_frame .ajax_text").html(requestData); 830 // $('.basket_error_frame .ajax_text select').ikSelect('redraw'); 831 initSelects(document); 832 if (isButton == "Y" && thButton) { 833 $( 834 "<div class='popup_button_basket_wr'><span class='popup_button_basket big_btn button' data-item=" + 835 thButton.data("item") + 836 "><span>" + 837 BX.message("ERROR_BASKET_BUTTON") + 838 "</span></span></div>" 839 ).insertAfter($(".basket_error_frame .ajax_text")); 840 } 841 } 842 843 var eventdata = { action: "loadForm" }; 844 845 if(typeof selector !== 'undefined' && selector !== false ){ 846 BX.onCustomEvent("onCompleteAction", [eventdata, $(selector)[0]]); 847 } else { 848 BX.onCustomEvent("onCompleteAction", [eventdata, $(hash.t)[0]]); 849 } 850 851 $("." + name + "_frame").show(); 852 }; 853} 854 855if (!funcDefined("onHidejqm")) { 856 var onHidejqm = function (name, hash) { 857 858 if (hash.w.find(".one_click_buy_result_success").is(":visible") && name == "one_click_buy_basket") { 859 window.location.href = window.location.href; 860 } 861 862 hash.w.animate({ opacity: 0 }, 200, function () { 863 hash.w.hide(); 864 hash.w.empty(); 865 hash.o.remove(); 866 hash.w.removeClass("show"); 867 hash.w.removeClass("scrollbar"); 868 hash.w.removeClass("scrollbar--overflow"); 869 $("html").removeClass("overflow_hidden_popup_forms"); 870 871 if (!hash.w.closest("#popup_iframe_wrapper").find(".jqmOverlay").length) { 872 hash.w 873 .closest("#popup_iframe_wrapper") 874 .css({ "z-index": "", display: "" }); 875 } 876 877 if ( 878 !$(".jqmOverlay:not(.mobp)").length || 879 $(".jqmOverlay.waiting").length 880 ) { 881 $("body").removeClass("jqm-initied"); 882 $("body").removeClass("fast_view"); 883 } 884 885 if (!$("body").hasClass("fast_view")) { 886 $("body").css({ overflow: "", height: "", "padding-right": "", "box-sizing": "content-box" }); 887 } 888 }); 889 }; 890} 891 892if (!funcDefined("oneClickBuy")) { 893 var oneClickBuy = function (elementID, iblockID, that) { 894 var name = "one_click_buy"; 895 var elementQuantity = 1; 896 var offerProps = false; 897 var buy_btn = $(that).closest(".buy_block").find(".to-cart"); 898 var buy_btn2 = $(that).closest("tr").find(".to-cart"); 899 900 if (typeof that !== "undefined") { 901 elementQuantity = $(that).attr("data-quantity"); 902 offerProps = $(that).attr("data-props"); 903 } 904 905 if (elementQuantity < 0) { 906 elementQuantity = 1; 907 } 908 909 var tmp_props = buy_btn.data("props"), 910 tmp_props2 = buy_btn2.data("props"), 911 props = "", 912 part_props = "", 913 add_props = "N", 914 fill_prop = {}, 915 iblockid = buy_btn.data("iblockid"), 916 item = buy_btn.attr("data-item"); 917 918 if (tmp_props) { 919 props = tmp_props.split(";"); 920 } else if (tmp_props2) { 921 props = tmp_props2.split(";"); 922 } 923 if (buy_btn.data("part_props")) { 924 part_props = buy_btn.data("part_props"); 925 } 926 if (buy_btn.data("add_props")) { 927 add_props = buy_btn.data("add_props"); 928 } 929 930 fill_prop = fillBasketPropsExt(buy_btn, "prop", buy_btn.data("bakset_div")); 931 fill_prop.iblockID = iblockid; 932 fill_prop.part_props = part_props; 933 fill_prop.add_props = add_props; 934 fill_prop.props = JSON.stringify(props); 935 fill_prop.item = item; 936 fill_prop.ocb_item = "Y"; 937 938 if (!$(that).hasClass("clicked")) { 939 $(that).addClass("clicked"); 940 $("body") 941 .find("." + name + "_frame") 942 .remove(); 943 $("body") 944 .find("." + name + "_trigger") 945 .remove(); 946 $("body #popup_iframe_wrapper").append( 947 '<div class="' + name + '_frame popup"></div>' 948 ); 949 $("body #popup_iframe_wrapper").append( 950 '<div class="' + name + '_trigger"></div>' 951 ); 952 $("." + name + "_frame").jqm({ 953 trigger: "." + name + "_trigger",
954 onHide: function (hash) { 955 onHidejqm(name, hash); 956 }, 957 toTop: false, 958 onLoad: function (hash) { 959 onLoadjqm(name, hash); 960 }, 961 ajax: 962 arOptimusOptions["SITE_DIR"] + 963 "ajax/one_click_buy.php?ELEMENT_ID=" + 964 elementID + 965 "&IBLOCK_ID=" + 966 iblockID + 967 "&ELEMENT_QUANTITY=" + 968 elementQuantity + 969 "&OFFER_PROPS=" + 970 fill_prop.props, 971 }); 972 $("." + name + "_trigger").click(); 973 } 974 }; 975} 976 977if (!funcDefined("oneClickBuyBasket")) { 978 var oneClickBuyBasket = function () { 979 name = "one_click_buy_basket"; 980 $("body") 981 .find("." + name + "_frame") 982 .remove(); 983 $("body") 984 .find("." + name + "_trigger") 985 .remove(); 986 // $("body").append('<div class="' + name + '_frame popup"></div>'); 987 // $("body").append('<div class="' + name + '_trigger"></div>'); 988 989 $("body #popup_iframe_wrapper").append( 990 '<div class="' + name + '_frame popup"></div>' 991 ); 992 $("body #popup_iframe_wrapper").append( 993 '<div class="' + name + '_trigger"></div>' 994 ); 995 996 $("." + name + "_frame").jqm({ 997 trigger: "." + name + "_trigger", 998 onHide: function (hash) { 999 onHidejqm(name, hash); 1000 }, 1001 onLoad: function (hash) { 1002 onLoadjqm(name, hash); 1003 }, 1004 ajax: arOptimusOptions["SITE_DIR"] + "ajax/one_click_buy_basket.php", 1005 }); 1006 $("." + name + "_trigger").click(); 1007 }; 1008} 1009 1010if (!funcDefined("scroll_block")) { 1011 function scroll_block(block) { 1012 const topPos = block.offset().top; 1013 // const headerH = $('header').outerHeight(true,true); 1014 1015 if ($(".stores_tab").length) { 1016 $("li.stores_tab").trigger("click"); 1017 } else if ($(".prices_tab").length) { 1018 $("li.prices_tab").trigger("click"); 1019 const pricesTab = $(".prices_tab.current .opener"); 1020 1021 if (pricesTab[0] && !pricesTab[0].querySelector(".opener_icon.opened")) { 1022 pricesTab[0].click(); 1023 1024 $(pricesTab[0]).parents("tr").next(".offer_stores").find(".stores_block_wrap").slideDown(200); 1025 } 1026 } 1027 $("html,body").animate({ scrollTop: topPos - 30 }, 150); 1028 } 1029} 1030 1031if (!funcDefined("jqmEd")) { 1032 var jqmEd = function ( 1033 name, 1034 form_id, 1035 open_trigger, 1036 requestData, 1037 selector, 1038 requestTitle, 1039 isButton, 1040 thButton 1041 ) { 1042 if (typeof requestData == "undefined") { 1043 requestData = ""; 1044 } 1045 1046 if (typeof selector == "undefined") { 1047 selector = false; 1048 } 1049 1050 // $("body") 1051 // .find("." + name + "_frame") 1052 // .remove(); 1053 // $("body").append('<div class="' + name + '_frame popup"></div>'); 1054 1055 $("body #popup_iframe_wrapper") 1056 .find("." + name + "_frame") 1057 .remove(); 1058 $("body #popup_iframe_wrapper").append( 1059 '<div class="' + name + '_frame jqmWindow popup"></div>' 1060 ); 1061 1062 if (typeof open_trigger == "undefined") { 1063 $("." + name + "_frame").jqm({ 1064 trigger: "." + name + "_frame.popup", 1065 onHide: function (hash) { 1066 onHidejqm(name, hash); 1067 }, 1068 onLoad: function (hash) { 1069 onLoadjqm(name, hash, requestData, selector); 1070 }, 1071 ajax: 1072 arOptimusOptions["SITE_DIR"] + 1073 "ajax/form.php?form_id=" + 1074 form_id + 1075 (requestData.length ? "&" + requestData : ""), 1076 }); 1077 } else { 1078 if (name == "enter") { 1079 $("." + name + "_frame").jqm({ 1080 trigger: open_trigger, 1081 onHide: function (hash) { 1082 onHidejqm(name, hash); 1083 }, 1084 onLoad: function (hash) { 1085 onLoadjqm(name, hash, requestData, selector); 1086 }, 1087 ajax: arOptimusOptions["SITE_DIR"] + "ajax/auth.php", 1088 }); 1089 } else if (name == "basket_error") { 1090 $("." + name + "_frame").jqm({ 1091 trigger: open_trigger, 1092 onHide: function (hash) { 1093 onHidejqm(name, hash); 1094 }, 1095 onLoad: function (hash) { 1096 onLoadjqm(name, hash, requestData, selector, requestTitle, isButton, thButton); 1097 }, 1098 ajax: arOptimusOptions["SITE_DIR"] + "ajax/basket_error.php", 1099 }); 1100 } else { 1101 $("." + name + "_frame").jqm({ 1102 trigger: open_trigger,
1103 onHide: function (hash) { 1104 onHidejqm(name, hash); 1105 }, 1106 onLoad: function (hash) { 1107 onLoadjqm(name, hash, requestData, selector); 1108 }, 1109 ajax: 1110 arOptimusOptions["SITE_DIR"] + 1111 "ajax/form.php?form_id=" + 1112 form_id + 1113 (requestData.length ? "&" + requestData : ""), 1114 }); 1115 1116 } 1117 1118 $(open_trigger).dblclick(function () { 1119 return false; 1120 }); 1121 } 1122 return true; 1123 }; 1124} 1125 1126initCalculatePreview = function () { 1127 $(".calculate-delivery.with_preview:not(.inited)").each(function () { 1128 var $this = $(this); 1129 var $calculateSpan = $this.find("span[data-event=jqm]"); 1130 var $preview = $this.find(".calculate-delivery-preview"); 1131 1132 $this.addClass("inited"); 1133 $this.appear( 1134 function () { 1135 if ($calculateSpan.length) { 1136 if ( 1137 typeof window["calculate-delivery-preview-index"] === "undefined" 1138 ) { 1139 window["calculate-delivery-preview-index"] = 1001; 1140 } else { 1141 ++window["calculate-delivery-preview-index"]; 1142 } 1143 1144 var productId = $calculateSpan.attr("data-param-product_id") * 1; 1145 var quantity = $calculateSpan.attr("data-param-quantity") * 1; 1146 1147 if (productId > 0) { 1148 var areaIndexSended = window["calculate-delivery-preview-index"]; 1149 $calculateSpan.data({ areaIndex: areaIndexSended }); 1150 1151 $.ajax({ 1152 url: arOptimusOptions["SITE_DIR"] + "ajax/delivery.php", 1153 type: "POST", 1154 data: { 1155 is_preview: "Y", 1156 index: areaIndexSended, 1157 product_id: productId, 1158 quantity: quantity, 1159 }, 1160 beforeSend: function () { 1161 $this.addClass("loadings"); 1162 }, 1163 success: function (response) { 1164 var areaIndex = $calculateSpan.data("areaIndex"); 1165 if ( 1166 typeof areaIndex !== "undefined" && 1167 areaIndex == areaIndexSended 1168 ) { 1169 $calculateSpan.hide(); 1170 $preview.html(response); 1171 if (!$preview.find(".catalog-delivery-preview").length) { 1172 $preview.empty(); 1173 $calculateSpan.show(); 1174 } 1175 } 1176 }, 1177 error: function (xhr, ajaxOptions, thrownError) {}, 1178 complete: function () { 1179 var areaIndex = $calculateSpan.data("areaIndex"); 1180 if ( 1181 typeof areaIndex !== "undefined" && 1182 areaIndex == areaIndexSended 1183 ) { 1184 $this.removeClass("loadings"); 1185 } 1186 }, 1187 }); 1188 } 1189 } 1190 }, 1191 { accX: 0, accY: 0 } 1192 ); 1193 }); 1194}; 1195 1196if (!funcDefined("replaceBasketPopup")) { 1197 function replaceBasketPopup(hash) { 1198 if (typeof hash != "undefined") { 1199 hash.w.hide(); 1200 hash.o.hide(); 1201 } 1202 } 1203} 1204 1205if (!funcDefined("waitLayer")) { 1206 function waitLayer(delay, callback) { 1207 if (typeof dataLayer != "undefined") { 1208 if (typeof callback == "function") { 1209 callback(); 1210 } 1211 } else { 1212 setTimeout(function () { 1213 waitLayer(delay, callback); 1214 }, delay); 1215 } 1216 } 1217} 1218 1219if (!funcDefined("waitCounter")) { 1220 waitCounter = function (idCounter, delay, callback) { 1221 var obCounter = window["yaCounter" + idCounter]; 1222 if (typeof obCounter == "object") { 1223 if (typeof callback == "function") { 1224 callback(); 1225 } 1226 } else { 1227 setTimeout(function () { 1228 waitCounter(idCounter, delay, callback); 1229 }, delay); 1230 } 1231 }; 1232} 1233 1234if (!funcDefined("InitTopestMenuGummi")) { 1235 InitTopestMenuGummi = function () { 1236 if (!isOnceInited) { 1237 function _init() { 1238 var arItems = $menuTopest.find(">li:not(.more)"); 1239 var cntItems = arItems.length; 1240 if (cntItems) { 1241 var itemsWidth = 0; 1242 for (var i = 0; i < cntItems; ++i) { 1243 var item = arItems.eq(i); 1244 var itemWidth = item.actual("outerWidth", { includeMargin: true }); 1245 arItemsHideWidth[i] = (itemsWidth += itemWidth) + (i !== cntItems - 1 ? moreWidth : 0); 1246 } 1247 } 1248 } 1249 1250 function _gummi() { 1251 var rowWidth = $menuTopest.actual("innerWidth"); 1252 var arItems = $menuTopest.find(">li:not(.more),li.more>.dropdown>li"); 1253 var cntItems = arItems.length; 1254 if (cntItems) { 1255 var bMore = false; 1256 for (var i = cntItems - 1; i >= 0; --i) { 1257 var item = arItems.eq(i); 1258 var bInMore = item.parents(".more").length > 0; 1259 if (!bInMore) { 1260 if (arItemsHideWidth[i] > rowWidth) { 1261 if (!bMore) { 1262 bMore = true; 1263 more.removeClass("hidden"); 1264 } 1265 var clone = item.clone(); 1266 clone.find(">a").addClass("dark_font"); 1267 clone.prependTo(moreDropdown); 1268 item.addClass("cloned"); 1269 } 1270 } 1271 } 1272 for (var i = 0; i < cntItems; ++i) { 1273 var item = arItems.eq(i); 1274 var bInMore = item.parents(".more").length > 0; 1275 if (bInMore) { 1276 if (arItemsHideWidth[i] <= rowWidth) { 1277 if (i === cntItems - 1) { 1278 bMore = false;
1279 more.addClass("hidden"); 1280 } 1281 var clone = item.clone(); 1282 clone.find(">a").removeClass("dark_font"); 1283 clone.insertBefore(more); 1284 item.addClass("cloned"); 1285 } 1286 } 1287 } 1288 $menuTopest.find("li.cloned").remove(); 1289 } 1290 } 1291 1292 var $menuTopest = $(".menu.topest"); 1293 var more = $menuTopest.find(">.more"); 1294 var moreDropdown = more.find(">.dropdown"); 1295 var moreWidth = more.actual("outerWidth", { includeMargin: true }); 1296 var arItemsHideWidth = []; 1297 ignoreResize.push(true); 1298 _init(); 1299 _gummi(); 1300 ignoreResize.pop(); 1301 1302 $(window).resize(function () { 1303 ignoreResize.push(true); 1304 _gummi(); 1305 ignoreResize.pop(); 1306 }); 1307 } 1308 }; 1309} 1310 1311if (!funcDefined("InitTopMenuGummi")) { 1312 InitTopMenuGummi = function () { 1313 function _init() { 1314 var arItems = $topMenu.closest(".wrap_menu").find(".inc_menu .menu_top_block >li:not(.more)"); 1315 var cntItems = arItems.length; 1316 if (cntItems) { 1317 var itemsWidth = 0; 1318 for (var i = 0; i < cntItems; ++i) { 1319 var item = arItems.eq(i); 1320 var itemWidth = item.actual("outerWidth"); 1321 arItemsHideWidth[i] = (itemsWidth += itemWidth) + (i !== cntItems - 1 ? moreWidth : 0); 1322 } 1323 } 1324 } 1325 1326 function _gummi() { 1327 var rowWidth = $wrapMenu.actual("innerWidth") - $wrapMenuLeft.actual("innerWidth"); 1328 var arItems = $topMenu.find(">li:not(.more):not(.catalog),li.more>.dropdown>li"); 1329 var cntItems = arItems.length; 1330 1331 if (cntItems) { 1332 var bMore = false; 1333 for (var i = cntItems - 1; i >= 0; --i) { 1334 var item = arItems.eq(i); 1335 var bInMore = item.parents(".more").length > 0; 1336 if (!bInMore) { 1337 if (arItemsHideWidth[i] > rowWidth) { 1338 if (!bMore) { 1339 bMore = true; 1340 more.removeClass("hidden"); 1341 } 1342 var clone = item.clone(); 1343 clone.find(">.dropdown").removeAttr("style").removeClass("toleft"); 1344 clone.find(">a").addClass("dark_font").removeAttr("style"); 1345 clone.prependTo(moreDropdown); 1346 item.addClass("cloned"); 1347 } 1348 } 1349 } 1350 for (var i = 0; i < cntItems; ++i) { 1351 var item = arItems.eq(i); 1352 var bInMore = item.parents(".more").length > 0; 1353 if (bInMore) { 1354 if (arItemsHideWidth[i] <= rowWidth) { 1355 if (i === cntItems - 1) { 1356 bMore = false; 1357 more.addClass("hidden"); 1358 } 1359 var clone = item.clone(); 1360 clone.find(">a").removeClass("dark_font"); 1361 clone.insertBefore(more); 1362 item.addClass("cloned"); 1363 } 1364 } 1365 } 1366 $topMenu.find("li.cloned").remove(); 1367 1368 var cntItemsVisible = $topMenu.find(">li:not(.more):not(.catalog)").length; 1369 var o = rowWidth - arItemsHideWidth[cntItemsVisible - 1]; 1370 var itemsPaddingAdd = Math.floor(o / (cntItemsVisible + (more.hasClass("hidden") ? 0 : 1))); 1371 var itemsPadding_new = itemsPadding_min + itemsPaddingAdd; 1372 var itemsPadding_new_l = Math.floor(itemsPadding_new / 2); 1373 var itemsPadding_new_r = itemsPadding_new - itemsPadding_new_l; 1374 1375 $topMenu.find(">li:not(.catalog):visible>a").each(function () { 1376 $(this).css({ "padding-left": itemsPadding_new_l + "px" }); 1377 $(this).css({ "padding-right": itemsPadding_new_r + "px" }); 1378 }); 1379 1380 var lastItemPadding_new = 1381 itemsPadding_new + o - (cntItemsVisible + (more.is(":visible") ? 1 : 0)) * itemsPaddingAdd; 1382 var lastItemPadding_new_l = Math.floor(lastItemPadding_new / 2); 1383 var lastItemPadding_new_r = lastItemPadding_new - lastItemPadding_new_l; 1384 $topMenu 1385 .find(">li:visible") 1386 .last() 1387 .find(">a") 1388 .css({ "padding-left": lastItemPadding_new_l + "px" }); 1389 $topMenu 1390 .find(">li:visible") 1391 .last() 1392 .find(">a") 1393 .css({ "padding-right": lastItemPadding_new_r + "px" }); 1394 CheckTopMenuFullCatalogSubmenu(); 1395 } 1396 } 1397 1398 var $topMenu = $(".menu_top_block"); 1399 var $wrapMenu = $topMenu.parents(".wrap_menu"); 1400 var $wrapMenuLeft = $wrapMenu.find(".catalog_menu_ext"); 1401 var more = $topMenu.find(">.more"); 1402 var moreWidth = more.actual("outerWidth", { includeMargin: true }); 1403 more.addClass("hidden"); 1404 var arItemsHideWidth = []; 1405 var moreDropdown = more.find(">.dropdown"); 1406 var itemsPadding = parseInt(more.find(">a").css("padding-left")) * 2; 1407 var itemsPadding_min = itemsPadding; 1408 1409 // setTimeout(function(){ 1410 ignoreResize.push(true); 1411 _init(); 1412 _gummi(); 1413 ignoreResize.pop(); 1414 // }, 100) 1415 1416 $(window).resize(function () { 1417 ignoreResize.push(true); 1418 _gummi(); 1419 ignoreResize.pop(); 1420 }); 1421 1422 /*BX.addCustomEvent('onTopPanelFixUnfix', function(eventdata) { 1423 ignoreResize.push(true); 1424 _gummi(); 1425 ignoreResize.pop(); 1426 });*/ 1427 }; 1428} 1429 1430if (!funcDefined("checkCounters")) { 1431 function checkCounters(name) { 1432 if (typeof name !== "undefined") { 1433 if ( 1434 name == "google" && 1435 arOptimusOptions["COUNTERS"]["GOOGLE_ECOMERCE"] == "Y" && 1436 arOptimusOptions["COUNTERS"]["GOOGLE_COUNTER"] > 0 1437 ) { 1438 return true; 1439 } else if ( 1440 name == "yandex" && 1441 arOptimusOptions["COUNTERS"]["USE_YA_COUNTER"] == "Y" && 1442 arOptimusOptions["COUNTERS"]["YANDEX_ECOMERCE"] == "Y" && 1443 arOptimusOptions["COUNTERS"]["YANDEX_COUNTER"] > 0 1444 ) { 1445 return true; 1446 } else { 1447 return false;
1448 } 1449 } else if ( 1450 (arOptimusOptions["COUNTERS"]["USE_YA_COUNTER"] == "Y" && 1451 arOptimusOptions["COUNTERS"]["YANDEX_ECOMERCE"] == "Y" && 1452 arOptimusOptions["COUNTERS"]["YANDEX_COUNTER"] > 0) || 1453 (arOptimusOptions["COUNTERS"]["GOOGLE_ECOMERCE"] == "Y" && arOptimusOptions["COUNTERS"]["GOOGLE_COUNTER"] > 0) 1454 ) { 1455 return true; 1456 } else { 1457 return false; 1458 } 1459 } 1460} 1461 1462if (!funcDefined("addBasketCounter")) { 1463 function addBasketCounter(id) { 1464 if (arOptimusOptions["COUNTERS"]["USE_BASKET_GOALS"] !== "N") { 1465 var eventdata = { goal: "goal_basket_add", params: { id: id } }; 1466 BX.onCustomEvent("onCounterGoals", [eventdata]); 1467 } 1468 if (checkCounters()) { 1469 $.ajax({ 1470 url: arOptimusOptions["SITE_DIR"] + "ajax/goals.php", 1471 dataType: "json", 1472 type: "POST", 1473 data: { ID: id }, 1474 success: function (item) { 1475 if (!!item && !!item.ID) { 1476 waitLayer(100, function () { 1477 dataLayer.push({ 1478 event: arOptimusOptions["COUNTERS"]["GOOGLE_EVENTS"]["ADD2BASKET"], 1479 ecommerce: { 1480 currencyCode: item.CURRENCY, 1481 add: { 1482 products: [ 1483 { 1484 id: item.ID, 1485 name: item.NAME, 1486 price: item.PRICE, 1487 brand: item.BRAND, 1488 category: item.CATEGORY, 1489 quantity: item.QUANTITY, 1490 }, 1491 ], 1492 }, 1493 }, 1494 }); 1495 }); 1496 } 1497 }, 1498 }); 1499 } 1500 } 1501} 1502 1503if (!funcDefined("purchaseCounter")) { 1504 function purchaseCounter(order_id, type, callback) { 1505 if (checkCounters()) { 1506 $.ajax({ 1507 url: arOptimusOptions["SITE_DIR"] + "ajax/goals.php", 1508 dataType: "json", 1509 type: "POST", 1510 data: { ORDER_ID: order_id, TYPE: type }, 1511 success: function (order) { 1512 var products = []; 1513 if (order.ITEMS) { 1514 for (var i in order.ITEMS) { 1515 products.push({ 1516 id: order.ITEMS[i].ID, 1517 sku: order.ITEMS[i].ID, 1518 name: order.ITEMS[i].NAME, 1519 price: order.ITEMS[i].PRICE, 1520 brand: order.ITEMS[i].BRAND, 1521 category: order.ITEMS[i].CATEGORY, 1522 quantity: order.ITEMS[i].QUANTITY, 1523 }); 1524 } 1525 } 1526 if (order.ID) { 1527 waitLayer(100, function () { 1528 dataLayer.push({ 1529 event: arOptimusOptions["COUNTERS"]["GOOGLE_EVENTS"]["PURCHASE"], 1530 ecommerce: (d = { 1531 purchase: { 1532 actionField: { 1533 id: order.ACCOUNT_NUMBER, 1534 shipping: order.PRICE_DELIVERY, 1535 tax: order.TAX_VALUE, 1536 list: type, 1537 revenue: order.PRICE, 1538 }, 1539 products: products, 1540 }, 1541 }), 1542 }); 1543 1544 if (typeof callback !== "undefined") { 1545 callback(d); 1546 } 1547 }); 1548 } else { 1549 if (typeof callback !== "undefined") { 1550 callback(false); 1551 } 1552 } 1553 }, 1554 error: function () { 1555 if (typeof callback !== "undefined") { 1556 callback(false); 1557 } 1558 }, 1559 }); 1560 } else { 1561 if (typeof callback !== "undefined") { 1562 callback(false); 1563 } 1564 } 1565 } 1566} 1567 1568if (!funcDefined("viewItemCounter")) { 1569 function viewItemCounter(id, price_id) { 1570 if (checkCounters()) { 1571 $.ajax({ 1572 url: arOptimusOptions["SITE_DIR"] + "ajax/goals.php", 1573 dataType: "json", 1574 type: "POST", 1575 data: { PRODUCT_ID: id, PRICE_ID: price_id }, 1576 success: function (item) { 1577 if (item.ID) { 1578 waitLayer(100, function () { 1579 dataLayer.push({ 1580 //"event": "", 1581 ecommerce: { 1582 detail: { 1583 products: [ 1584 { 1585 id: item.ID, 1586 name: item.NAME, 1587 price: item.PRICE, 1588 brand: item.BRAND, 1589 category: item.CATEGORY, 1590 }, 1591 ], 1592 }, 1593 }, 1594 }); 1595 }); 1596 } 1597 }, 1598 }); 1599 } 1600 } 1601} 1602 1603if (!funcDefined("checkoutCounter")) { 1604 function checkoutCounter(step, option, callback) { 1605 if (checkCounters("google")) { 1606 $.ajax({ 1607 url: arOptimusOptions["SITE_DIR"] + "ajax/goals.php", 1608 dataType: "json", 1609 type: "POST", 1610 data: { BASKET: "Y" }, 1611 success: function (basket) { 1612 var products = []; 1613 if (basket.ITEMS) { 1614 for (var i in basket.ITEMS) { 1615 products.push({ 1616 id: basket.ITEMS[i].ID, 1617 name: basket.ITEMS[i].NAME, 1618 price: basket.ITEMS[i].PRICE, 1619 brand: basket.ITEMS[i].BRAND, 1620 category: basket.ITEMS[i].CATEGORY, 1621 quantity: basket.ITEMS[i].QUANTITY, 1622 }); 1623 } 1624 } 1625 if (products) { 1626 waitLayer(100, function () { 1627 dataLayer.push({ 1628 event: arOptimusOptions["COUNTERS"]["GOOGLE_EVENTS"]["CHECKOUT_ORDER"], 1629 ecommerce: { 1630 checkout: { 1631 actionField: { 1632 step: step, 1633 option: option, 1634 }, 1635 products: products, 1636 }, 1637 }, 1638 /*"eventCallback": function() { 1639 if((typeof callback !== 'undefined') && (typeof callback === 'function')){ 1640 callback(); 1641 } 1642 }*/ 1643 }); 1644 }); 1645 } 1646 }, 1647 }); 1648 } 1649 } 1650} 1651 1652if (!funcDefined("delFromBasketCounter")) { 1653 function delFromBasketCounter(id, callback) { 1654 if (checkCounters()) { 1655 $.ajax({ 1656 url: arOptimusOptions["SITE_DIR"] + "ajax/goals.php", 1657 dataType: "json", 1658 type: "POST", 1659 data: { ID: id }, 1660 success: function (item) { 1661 if (item.ID) { 1662 waitLayer(100, function () { 1663 dataLayer.push({ 1664 event: arOptimusOptions["COUNTERS"]["GOOGLE_EVENTS"]["REMOVE_BASKET"], 1665 ecommerce: { 1666 remove: { 1667 products: [ 1668 { 1669 id: item.ID, 1670 name: item.NAME, 1671 category: item.CATEGORY, 1672 quantity: parseFloat(item.QUANTITY), 1673 }, 1674 ], 1675 }, 1676 }, 1677 }); 1678 if (typeof callback == "function") { 1679 callback(); 1680 } 1681 }); 1682 } 1683 }, 1684 }); 1685 } 1686 } 1687} 1688 1689if (!funcDefined("setHeightCompany")) { 1690 function setHeightCompany() { 1691 $(".md-50.img").height($(".md-50.big").outerHeight() - 35); 1692 } 1693} 1694 1695if (!funcDefined("initSly")) { 1696 function initSly() { 1697 var $frame = $(document).find(".frame"); 1698 var $slidee = $frame.children("ul").eq(0); 1699 var $wrap = $frame.parent(); 1700 1701 if (arOptimusOptions["PAGES"]["CATALOG_PAGE"]) { 1702 $frame.sly({ 1703 horizontal: 1, 1704 itemNav: "basic", 1705 smart: 1, 1706 mouseDragging: 0, 1707 touchDragging: 0, 1708 releaseSwing: 0, 1709 startAt: 0, 1710 scrollBar: $wrap.find(".scrollbar"), 1711 scrollBy: 1, 1712 speed: 300, 1713 elasticBounds: 0, 1714 easing: "swing", 1715 dragHandle: 1, 1716 dynamicHandle: 1, 1717 clickBar: 1, 1718 1719 // Buttons 1720 forward: $wrap.find(".forward"),
1721 backward: $wrap.find(".backward"), 1722 }); 1723 $frame.sly("reload"); 1724 } 1725 } 1726} 1727 1728if (!funcDefined("createTableCompare")) { 1729 function createTableCompare(originalTable, appendDiv, cloneTable) { 1730 try { 1731 var clone = originalTable.clone().removeAttr("id").addClass("clone"); 1732 if (cloneTable.length) { 1733 cloneTable.remove(); 1734 appendDiv.html(""); 1735 appendDiv.html(clone); 1736 } else { 1737 appendDiv.append(clone); 1738 } 1739 } catch (e) { 1740 } finally { 1741 } 1742 } 1743} 1744 1745if (!funcDefined("fillBasketPropsExt")) { 1746 fillBasketPropsExt = function (that, prop_code, basket_prop_div) { 1747 var i = 0, 1748 propCollection = null, 1749 foundValues = false, 1750 basketParams = {}, 1751 obBasketProps = null; 1752 1753 // obBasketProps = that.closest('.catalog_detail').find('.basket_props_block'); 1754 if (that.closest("#fast_view_item").length) 1755 obBasketProps = that.closest("#fast_view_item").find("#" + basket_prop_div)[0]; 1756 else obBasketProps = BX(basket_prop_div); 1757 1758 if (!!obBasketProps) { 1759 propCollection = obBasketProps.getElementsByTagName("select"); 1760 if (!!propCollection && !!propCollection.length) { 1761 for (i = 0; i < propCollection.length; i++) { 1762 if (!propCollection[i].disabled) { 1763 switch (propCollection[i].type.toLowerCase()) { 1764 case "select-one": 1765 basketParams[propCollection[i].name] = propCollection[i].value; 1766 foundValues = true; 1767 break; 1768 default: 1769 break; 1770 } 1771 } 1772 } 1773 } 1774 propCollection = obBasketProps.getElementsByTagName("input"); 1775 if (!!propCollection && !!propCollection.length) { 1776 for (i = 0; i < propCollection.length; i++) { 1777 if (!propCollection[i].disabled) { 1778 switch (propCollection[i].type.toLowerCase()) { 1779 case "hidden": 1780 basketParams[propCollection[i].name] = propCollection[i].value; 1781 foundValues = true; 1782 break; 1783 case "radio": 1784 if (propCollection[i].checked) { 1785 basketParams[propCollection[i].name] = propCollection[i].value; 1786 foundValues = true; 1787 } 1788 break; 1789 default: 1790 break; 1791 } 1792 } 1793 } 1794 } 1795 } 1796 if (!foundValues) { 1797 basketParams[prop_code] = []; 1798 basketParams[prop_code][0] = 0; 1799 } 1800 return basketParams; 1801 }; 1802} 1803if (!funcDefined("showBasketError")) { 1804 showBasketError = function (mess, title, addButton, th) { 1805 var title_set = title ? title : BX.message("ERROR_BASKET_TITLE"), 1806 isButton = "N", 1807 thButton = ""; 1808 if (typeof addButton !== undefined) { 1809 isButton = "Y"; 1810 } 1811 if (typeof th !== undefined) { 1812 thButton = th; 1813 } 1814 $("body").append("<span class='add-error-bakset' style='display:none;'></span>"); 1815 jqmEd("basket_error", "error-bakset", ".add-error-bakset", mess, this, title_set, isButton, thButton); 1816 $("body .add-error-bakset").click(); 1817 $("body .add-error-bakset").remove(); 1818 }; 1819} 1820 1821if (!funcDefined("isRealValue")) { 1822 function isRealValue(obj) { 1823 return obj && obj !== "null" && obj !== "undefined"; 1824 } 1825} 1826 1827if (!funcDefined("rightScroll")) { 1828 function rightScroll(prop, id) { 1829 var el = BX("prop_" + prop + "_" + id); 1830 if (el) { 1831 var curVal = parseInt(el.style.marginLeft); 1832 if (curVal >= 0) el.style.marginLeft = curVal - 20 + "%"; 1833 } 1834 } 1835} 1836 1837if (!funcDefined("leftScroll")) { 1838 function leftScroll(prop, id) { 1839 var el = BX("prop_" + prop + "_" + id); 1840 if (el) { 1841 var curVal = parseInt(el.style.marginLeft); 1842 if (curVal < 0) el.style.marginLeft = curVal + 20 + "%"; 1843 } 1844 } 1845} 1846 1847if (!funcDefined("InitOrderCustom")) { 1848 InitOrderCustom = function () { 1849 $(".ps_logo img").wrap('<div class="image"></div>'); 1850 1851 $("#bx-soa-order .radio-inline").each(function () { 1852 if ($(this).find("input").attr("checked") == "checked") { 1853 $(this).addClass("checked"); 1854 } 1855 }); 1856 1857 $("#bx-soa-order .checkbox input[type=checkbox]").each(function () { 1858 if ($(this).attr("checked") == "checked") $(this).parent().addClass("checked"); 1859 }); 1860 1861 // $('#bx-soa-order .bx-authform-starrequired').each(function() { 1862 // var html = $(this).html(); 1863 // $(this).closest('label').append('<span class="bx-authform-starrequired"> '+ html + '</span>'); 1864 // $(this).detach(); 1865 // }); 1866 $(".bx_ordercart_coupon").each(function () { 1867 if ($(this).find(".bad").length) $(this).addClass("bad"); 1868 else if ($(this).find(".good").length) $(this).addClass("good"); 1869 }); 1870 /*if (typeof(propsMap) !== 'undefined') { 1871 $(propsMap).on('click', function () { 1872 var value = $('#orderDescription').val(); 1873 if ($('#orderDescription')) { 1874 if (value != '') { 1875 $('#orderDescription').closest('.form-group').addClass('value_y'); 1876 } 1877 } 1878 }); 1879 }*/ 1880 }; 1881} 1882 1883if (!funcDefined("InitLabelAnimation")) { 1884 InitLabelAnimation = function (className) { 1885 // Fix order labels 1886 if (!$(className).length) { 1887 return; 1888 } 1889 $(className) 1890 .find(".form-group") 1891 .each(function () { 1892 if ( 1893 $(this).find("input[type=text], textarea").length && 1894 !$(this).find(".dropdown-block").length && 1895 $(this).find("input[type=text], textarea").val() != "" 1896 ) { 1897 $(this).addClass("value_y"); 1898 } 1899 }); 1900 1901 $(document).on("click", className + " .form-group:not(.bx-soa-pp-field) label", function () { 1902 $(this).parent().find("input, textarea").focus(); 1903 }); 1904 1905 $(document).on( 1906 "focusout", 1907 className + 1908 " .form-group:not(.bx-soa-pp-field) input, " + 1909 className + 1910 " .form-group:not(.bx-soa-pp-field) textarea", 1911 function () { 1912 var value = $(this).val(); 1913 if ( 1914 value != "" && 1915 !$(this).closest(".form-group").find(".dropdown-block").length && 1916 !$(this).closest(".form-group").find("#profile_change").length 1917 ) { 1918 $(this).closest(".form-group").addClass("value_y"); 1919 } else { 1920 $(this).closest(".form-group").removeClass("value_y"); 1921 } 1922 } 1923 ); 1924 1925 $(document).on( 1926 "focus", 1927 className + 1928 " .form-group:not(.bx-soa-pp-field) input, " + 1929 className + 1930 " .form-group:not(.bx-soa-pp-field) textarea", 1931 function () { 1932 if ( 1933 !$(this).closest(".form-group").find(".dropdown-block").length && 1934 !$(this).closest(".form-group").find("#profile_change").length && 1935 !$(this).closest(".form-group").find("[name=PERSON_TYPE_OLD]").length 1936 ) { 1937 $(this).closest(".form-group").addClass("value_y"); 1938 } 1939 } 1940 ); 1941 }; 1942} 1943 1944checkPopupWidth = function () { 1945 $(".popup.show").each(function () { 1946 var width_form = $(this).actual("width"); 1947 $(this).css({ 1948 "margin-left": $(window).width() > width_form ? "-" + width_form / 2 + "px" : "-" + $(window).width() / 2 + "px", 1949 }); 1950 }); 1951}; 1952 1953checkCaptchaWidth = function () { 1954 $(".captcha-row").each(function () { 1955 var width = $(this).actual("width"); 1956 if ($(this).hasClass("b")) { 1957 if (width > 320) { 1958 $(this).removeClass("b"); 1959 } 1960 } else { 1961 if (width <= 320) { 1962 $(this).addClass("b"); 1963 } 1964 } 1965 }); 1966}; 1967 1968checkFormWidth = function () { 1969 $(".form .form_left").each(function () { 1970 var form = $(this).parents(".form"); 1971 var width = form.actual("width"); 1972 if (form.hasClass("b")) { 1973 if (width > 417) { 1974 form.removeClass("b"); 1975 } 1976 } else { 1977 if (width <= 417) { 1978 form.addClass("b"); 1979 } 1980 } 1981 }); 1982}; 1983 1984checkFormControlWidth = function () { 1985 $(".form-control").each(function () { 1986 var width = $(this).actual("width"); 1987 var labelWidth = $(this).find("label:not(.error) > span").actual("width"); 1988 var errorWidth = $(this).find("label.error").actual("width"); 1989 if (errorWidth > 0) { 1990 if ($(this).hasClass("h")) { 1991 if (width > labelWidth + errorWidth + 5) { 1992 $(this).removeClass("h"); 1993 } 1994 } else { 1995 if (width <= labelWidth + errorWidth + 5) { 1996 $(this).addClass("h"); 1997 } 1998 } 1999 } else { 2000 $(this).removeClass("h"); 2001 } 2002 }); 2003}; 2004 2005scrollToTop = function () { 2006 if (arOptimusOptions["THEME"]["SCROLLTOTOP_TYPE"] !== "NONE") { 2007 var _isScrolling = false;
2008 // Append Button 2009 $("body").append( 2010 $("<a />") 2011 .addClass( 2012 "scroll-to-top " + 2013 arOptimusOptions["THEME"]["SCROLLTOTOP_TYPE"] + 2014 " " + 2015 arOptimusOptions["THEME"]["SCROLLTOTOP_POSITION"] 2016 ) 2017 .attr({ href: "#", id: "scrollToTop" }) 2018 ); 2019 $("#scrollToTop").click(function (e) { 2020 e.preventDefault(); 2021 $("body, html").animate({ scrollTop: 0 }, 500); 2022 return false; 2023 }); 2024 // Show/Hide Button on Window Scroll event. 2025 $(window).scroll(function () { 2026 if (!_isScrolling) { 2027 _isScrolling = true; 2028 if ($(window).scrollTop() > 150) { 2029 $("#scrollToTop").stop(true, true).addClass("visible"); 2030 _isScrolling = false; 2031 } else { 2032 $("#scrollToTop").stop(true, true).removeClass("visible"); 2033 _isScrolling = false; 2034 } 2035 checkScrollToTop(); 2036 } 2037 }); 2038 } 2039}; 2040 2041checkScrollToTop = function () { 2042 var bottom = 55, 2043 scrollVal = $(window).scrollTop(), 2044 windowHeight = $(window).height(), 2045 footerOffset = 70; 2046 if ($("footer").length) footerOffset = $("footer").offset().top + 70; 2047 2048 if (arOptimusOptions["THEME"]["SCROLLTOTOP_POSITION"] == "CONTENT") { 2049 warpperWidth = $("body > .wrapper > .wrapper_inner").width(); 2050 $("#scrollToTop").css("margin-left", Math.ceil(warpperWidth / 2) + 23); 2051 } 2052 2053 if (scrollVal + windowHeight > footerOffset) { 2054 $("#scrollToTop").css("bottom", bottom + scrollVal + windowHeight - footerOffset - 0); 2055 } else if (parseInt($("#scrollToTop").css("bottom")) > bottom) { 2056 $("#scrollToTop").css("bottom", bottom); 2057 } 2058}; 2059 2060CheckObjectsSizes = function () { 2061 $(".container iframe,.container object,.container video").each(function () { 2062 var height_attr = $(this).attr("height"); 2063 var width_attr = $(this).attr("width"); 2064 if (height_attr && width_attr) { 2065 $(this).css("height", ($(this).outerWidth() * height_attr) / width_attr); 2066 } 2067 }); 2068}; 2069 2070if (!funcDefined("reloadTopBasket")) { 2071 var reloadTopBasket = function reloadTopBasket(action, basketWindow, speed, delay, slideDown, item) { 2072 var obj = { 2073 PARAMS: $("#top_basket_params").val(), 2074 ACTION: action, 2075 }; 2076 if (typeof item !== "undefined") { 2077 obj.delete_top_item = "Y"; 2078 obj.delete_top_item_id = item.data("id"); 2079 } 2080 $.post( 2081 arOptimusOptions["SITE_DIR"] + "ajax/show_basket_popup.php", 2082 obj, 2083 $.proxy(function (data) { 2084 $(basketWindow).html(data); 2085 2086 getActualBasket(); 2087 2088 if (arOptimusOptions["THEME"]["SHOW_BASKET_ONADDTOCART"] !== "N") { 2089 if ($(window).outerWidth() > 520) { 2090 if (slideDown == "Y") $(basketWindow).find(".basket_popup_wrapp").stop(true, true).slideDown(speed); 2091 clearTimeout(basketTimeoutSlide); 2092 basketTimeoutSlide = setTimeout(function () { 2093 var _this = $("#basket_line").find(".basket_popup_wrapp"); 2094 if (_this.is(":hover")) { 2095 _this.show(); 2096 } else { 2097 $("#basket_line").find(".basket_popup_wrapp").slideUp(speed); 2098 } 2099 }, delay); 2100 } 2101 } 2102 }) 2103 ); 2104 }; 2105} 2106 2107/*countdown start*/ 2108 2109if (!funcDefined("initCountdown")) { 2110 var initCountdown = function initCountdown() { 2111 if ($(".view_sale_block").length) { 2112 $(".view_sale_block").each(function () { 2113 var activeTo = $(this).find(".active_to").text(), 2114 dateTo = new Date(activeTo.replace(/(\d+)\.(\d+)\.(\d+)/, "$3/$2/$1")); 2115 $(this).find(".countdown").countdown( 2116 { 2117 until: dateTo, 2118 format: "dHMS", 2119 padZeroes: true, 2120 layout: 2121 '{d<}<span class="days item">{dnn}<div class="text">{dl}</div></span>{d>} <span class="hours item">{hnn}<div class="text">{hl}</div></span> <span class="minutes item">{mnn}<div class="text">{ml}</div></span> <span class="sec item">{snn}<div class="text">{sl}</div></span>', 2122 }, 2123 $.countdown.regionalOptions["ru"] 2124 ); 2125 }); 2126 } 2127 }; 2128} 2129 2130if (!funcDefined("initCountdownTime")) { 2131 var initCountdownTime = function initCountdownTime(block, time) { 2132 if (time) { 2133 var dateTo = new Date(time.replace(/(\d+)\.(\d+)\.(\d+)/, "$3/$2/$1")); 2134 block.find(".countdown").countdown("destroy"); 2135 block.find(".countdown").countdown( 2136 { 2137 until: dateTo, 2138 format: "dHMS", 2139 padZeroes: true, 2140 layout: 2141 '{d<}<span class="days item">{dnn}<div class="text">{dl}</div></span>{d>} <span class="hours item">{hnn}<div class="text">{hl}</div></span> <span class="minutes item">{mnn}<div class="text">{ml}</div></span> <span class="sec item">{snn}<div class="text">{sl}</div></span>', 2142 }, 2143 $.countdown.regionalOptions["ru"] 2144 );
2145 block.find(".view_sale_block").show(); 2146 } else { 2147 block.find(".view_sale_block").hide(); 2148 } 2149 }; 2150} 2151 2152/*countdown end*/ 2153 2154var isOnceInited = (insertFilter = false); 2155var animationTime = 200; 2156var delayTime = 200; 2157var topMenuEnterTimer = false; 2158var isMobile = jQuery.browser.mobile; 2159 2160if (isMobile) { 2161 document.documentElement.className += " mobile"; 2162} 2163 2164/*filter start*/ 2165if (!funcDefined("checkVerticalMobileFilter")) { 2166 var checkVerticalMobileFilter = function checkVerticalMobileFilter() { 2167 if ($(".right_block1.catalog.vertical").length && !$(".left_block.filter_ajax").length) { 2168 if (typeof window["trackBarOptions"] !== "undefined") { 2169 window["trackBarValues"] = {}; 2170 for (key in window["trackBarOptions"]) { 2171 window["trackBarValues"][key] = { 2172 leftPercent: window["trackBar" + key].leftPercent, 2173 leftValue: window["trackBar" + key].minInput.value, 2174 rightPercent: window["trackBar" + key].rightPercent, 2175 rightValue: window["trackBar" + key].maxInput.value, 2176 }; 2177 } 2178 } 2179 2180 if (window.matchMedia("(max-width: 950px)").matches) { 2181 if (!insertFilter) { 2182 $(".js_filter .bx_filter.bx_filter_vertical").html($(".left_block .bx_filter.bx_filter_vertical").html()); 2183 $(".left_block .bx_filter.bx_filter_vertical .bx_filter_section").remove(); 2184 insertFilter = true; 2185 } 2186 } else { 2187 if (insertFilter) { 2188 $(".left_block .bx_filter.bx_filter_vertical").html($(".js_filter .bx_filter.bx_filter_vertical").html()); 2189 $(".js_filter .bx_filter.bx_filter_vertical .bx_filter_section").remove(); 2190 insertFilter = false; 2191 } 2192 } 2193 2194 if (typeof window["trackBarOptions"] !== "undefined") { 2195 for (key in window["trackBarOptions"]) { 2196 window["trackBarOptions"][key].leftPercent = window["trackBarValues"][key].leftPercent; 2197 window["trackBarOptions"][key].rightPercent = window["trackBarValues"][key].rightPercent; 2198 window["trackBarOptions"][key].curMinPrice = window["trackBarValues"][key].leftValue; 2199 window["trackBarOptions"][key].curMaxPrice = window["trackBarValues"][key].rightValue; 2200 window["trackBar" + key] = new BX.Iblock.SmartFilter(window["trackBarOptions"][key]); 2201 window["trackBar" + key].minInput.value = window["trackBarValues"][key].leftValue; 2202 window["trackBar" + key].maxInput.value = window["trackBarValues"][key].rightValue; 2203 } 2204 } 2205 } else if ($(".left_block.filter_ajax").length) { 2206 var posBlock = $(".ajax_load").position(); 2207 2208 $(".left_block.filter_ajax .bx_filter").css("top", posBlock.top - 13); 2209 if ( 2210 $(".left_block.filter_ajax .bx_filter").is(":visible") && 2211 !$(".adaptive_filter .filter_opener").hasClass("opened") && 2212 window.matchMedia("(max-width: 950px)").matches 2213 ) { 2214 $(".adaptive_filter .filter_opener").addClass("opened"); 2215 } 2216 } 2217 }; 2218} 2219/*filter end*/ 2220 2221// TOP MENU ANIMATION 2222$(document).on("click", ".menu_top_block>li .more a", function () { 2223 $this = $(this); 2224 $this.parents(".dropdown").first().find(">.hidden").removeClass("hidden"); 2225 $this.parent().addClass("hidden"); 2226 setTimeout(function () { 2227 $this.parent().remove(); 2228 }, 500); 2229}); 2230 2231$(document).on("mouseenter", ".menu_top_block.catalogfirst>li>.dropdown>li.full", function () { 2232 var $submenu = $(this).find(">.dropdown"); 2233 2234 if ($submenu.length) { 2235 if (topMenuEnterTimer) { 2236 clearTimeout(topMenuEnterTimer); 2237 topMenuEnterTimer = false; 2238 } 2239 } 2240}); 2241 2242$(document).on("mouseenter", ".menu_top_block>li:not(.full)", function () { 2243 var $submenu = $(this).find(">.dropdown"); 2244 2245 if ($submenu.length && !$submenu.hasClass("visible")) { 2246 var $menu = $(this).parents(".menu"); 2247 var $wrapmenu = $menu.parents(".wrap_menu"); 2248 var wrapMenuWidth = $wrapmenu.actual("outerWidth"); 2249 var wrapMenuLeft = $wrapmenu.offset().left; 2250 var wrapMenuRight = wrapMenuLeft + wrapMenuWidth; 2251 var left = wrapMenuRight - ($(this).offset().left + $submenu.actual("outerWidth")); 2252 if ( 2253 window.matchMedia("(min-width: 951px)").matches && 2254 $(this).hasClass("catalog") && 2255 ($(".banner_auto").hasClass("catalog_page") || $(".banner_auto").hasClass("front_page")) 2256 ) { 2257 return; 2258 } 2259 if (left < 0) { 2260 $submenu.css({ left: left + "px" }); 2261 } 2262 $submenu.stop().slideDown(animationTime, function () { 2263 $submenu.css({ height: "", overflow: "visible" }); 2264 }); 2265 2266 $(this).on("mouseleave", function () { 2267 var leaveTimer = setTimeout(function () { 2268 $submenu.stop().slideUp(animationTime, function () { 2269 $submenu.css({ left: "" }); 2270 }); 2271 }, delayTime); 2272 2273 $(this).on("mouseenter", function () { 2274 if (leaveTimer) { 2275 clearTimeout(leaveTimer); 2276 leaveTimer = false;
2277 } 2278 }); 2279 }); 2280 } 2281}); 2282 2283$(document).on("mouseenter", ".menu_top_block>li:not(.full)", function () { 2284 if ( 2285 window.matchMedia("(min-width: 951px)").matches && 2286 $(this).hasClass("catalog") && 2287 ($(".banner_auto").hasClass("catalog_page") || $(".banner_auto").hasClass("front_page")) 2288 ) { 2289 return; 2290 } 2291 2292 var _this = $(this).find(">.dropdown"); 2293 var $catalogNlo = _this.find("[data-nlo]"); 2294 var isNloLoaded = !$catalogNlo.length; 2295 2296 if (!isNloLoaded) { 2297 if (!$catalogNlo.hasClass("nlo-loadings")) { 2298 $catalogNlo.addClass("nlo-loadings"); 2299 setTimeout(function () { 2300 $.ajax({ 2301 data: { nlo: $catalogNlo.attr("data-nlo") }, 2302 success: function (response) { 2303 // stop ya metrika webvisor DOM indexer 2304 pauseYmObserver(); 2305 2306 isNloLoaded = true; 2307 $catalogNlo[0].insertAdjacentHTML("beforebegin", $.trim(response)); 2308 $catalogNlo.remove(); 2309 2310 BX.onCustomEvent('onAsproNloAdd', [{}]); 2311 2312 // resume ya metrika webvisor 2313 // (300ms transition) + (100ms scroll handler) 2314 setTimeout(resumeYmObserver, 400); 2315 }, 2316 error: function () { 2317 $catalogNlo.removeClass("nlo-loadings"); 2318 }, 2319 }); 2320 }, 300); 2321 } 2322 } 2323}); 2324 2325$(document).on("mouseenter", ".menu_top_block>li .dropdown>li", function () { 2326 var $this = $(this); 2327 var $submenu = $this.find(">.dropdown"); 2328 2329 if ( 2330 $submenu.length && 2331 ((!$this.parents(".full").length && !$this.hasClass("full")) || $this.parents(".more").length) 2332 ) { 2333 var $menu = $this.parents(".menu"); 2334 var $wrapmenu = $menu.parents(".wrap_menu"); 2335 var arParentSubmenuForOpacity = []; 2336 topMenuEnterTimer = setTimeout(function () { 2337 var wrapMenuWidth = $wrapmenu.actual("outerWidth"); 2338 var wrapMenuLeft = $wrapmenu.offset().left; 2339 var wrapMenuRight = wrapMenuLeft + wrapMenuWidth; 2340 var $parentSubmenu = $this.parent(); 2341 var bToLeft = $parentSubmenu.hasClass("toleft") ? true : false; 2342 if (!bToLeft) { 2343 bToLeft = $this.offset().left + $this.actual("outerWidth") + $submenu.actual("outerWidth") > wrapMenuRight; 2344 } else { 2345 bToLeft = $this.offset().left + $this.actual("outerWidth") - $submenu.actual("outerWidth") < wrapMenuLeft; 2346 } 2347 2348 if (bToLeft) { 2349 $this.find(">.dropdown").addClass("toleft").show(); 2350 } else { 2351 $this.find(">.dropdown").removeClass("toleft").show(); 2352 } 2353 var submenuLeft = $submenu.offset().left; 2354 var submenuRight = submenuLeft + $submenu.actual("outerWidth"); 2355 2356 $this.parents(".dropdown").each(function () { 2357 var $this = $(this); 2358 var leftOffset = $this.offset().left; 2359 var rightOffset = leftOffset + $this.actual("outerWidth"); 2360 if ( 2361 (leftOffset >= submenuLeft && leftOffset < submenuRight - 1) || 2362 (rightOffset > submenuLeft + 1 && rightOffset <= submenuRight) 2363 ) { 2364 arParentSubmenuForOpacity.push($this); 2365 $this.find(">li>a").css({ opacity: "0.1" }); 2366 } 2367 }); 2368 }, delayTime); 2369 2370 $this.unbind("mouseleave"); 2371 $this.on("mouseleave", function () { 2372 var leaveTimer = setTimeout(function () { 2373 $this.find(".dropdown").removeClass("toleft").hide(); 2374 if (arParentSubmenuForOpacity.length) { 2375 for (i in arParentSubmenuForOpacity) { 2376 arParentSubmenuForOpacity[i].find(">li>a").css({ opacity: "" }); 2377 } 2378 } 2379 }, delayTime); 2380 2381 $this.unbind("mouseenter"); 2382 $this.on("mouseenter", function () { 2383 if (leaveTimer) { 2384 clearTimeout(leaveTimer); 2385 leaveTimer = false; 2386 } 2387 }); 2388 }); 2389 } 2390}); 2391 2392getGridSize = function (counts) { 2393 var counts_item = 1; 2394 //wide 2395 if (window.matchMedia("(min-width: 1200px)").matches) { 2396 counts_item = counts[0]; 2397 } 2398 2399 //large 2400 if (window.matchMedia("(max-width: 1200px)").matches) { 2401 counts_item = counts[1]; 2402 } 2403 2404 //middle 2405 if (window.matchMedia("(max-width: 992px)").matches) { 2406 counts_item = counts[2]; 2407 } 2408 2409 //small 2410 if (counts[3]) { 2411 if (window.matchMedia("(max-width: 600px)").matches) { 2412 counts_item = counts[3]; 2413 } 2414 } 2415 2416 //exsmall 2417 if (counts[4]) { 2418 if (window.matchMedia("(max-width: 400px)").matches) { 2419 counts_item = counts[4]; 2420 } 2421 } 2422 2423 return counts_item; 2424}; 2425
2426CheckFlexSlider = function () { 2427 $(".flexslider:not(.thmb)").each(function () { 2428 var slider = $(this); 2429 slider.resize(); 2430 var counts = slider.data("flexslider").vars.counts; 2431 if (typeof counts != "undefined") { 2432 var cnt = getGridSize(counts); 2433 var to0 = 2434 cnt != slider.data("flexslider").vars.minItems || 2435 cnt != slider.data("flexslider").vars.maxItems || 2436 cnt != slider.data("flexslider").vars.move; 2437 if (to0) { 2438 slider.data("flexslider").vars.minItems = cnt; 2439 slider.data("flexslider").vars.maxItems = cnt; 2440 slider.data("flexslider").vars.move = cnt; 2441 slider.flexslider(0); 2442 slider.resize(); 2443 slider.resize(); // twise! 2444 } 2445 } 2446 }); 2447}; 2448 2449InitFlexSlider = function () { 2450 $(".flexslider:not(.thmb):not(.flexslider-init)").each(function () { 2451 var slider = $(this); 2452 var options; 2453 var defaults = { 2454 animationLoop: false, 2455 controlNav: false, 2456 directionNav: true, 2457 animation: "slide", 2458 }; 2459 var config = $.extend({}, defaults, options, slider.data("plugin-options")); 2460 if (!slider.parent().hasClass("top_slider_wrapp")) { 2461 if (typeof config.counts != "undefined" && config.direction !== "vertical") { 2462 config.maxItems = getGridSize(config.counts); 2463 config.minItems = getGridSize(config.counts); 2464 config.move = getGridSize(config.counts); 2465 config.itemWidth = 200; 2466 } 2467 2468 config.after = function (slider) { 2469 var eventdata = { slider: slider }; 2470 BX.onCustomEvent("onSlide", [eventdata]); 2471 }; 2472 config.start = function (slider) { 2473 var eventdata = { slider: slider }; 2474 BX.onCustomEvent("onSlideInit", [eventdata]); 2475 }; 2476 2477 config.end = function (slider) { 2478 var eventdata = { slider: slider }; 2479 BX.onCustomEvent("onSlideEnd", [eventdata]); 2480 }; 2481 2482 slider.flexslider(config).addClass("flexslider-init"); 2483 if (config.controlNav) slider.addClass("flexslider-control-nav"); 2484 if (config.directionNav) slider.addClass("flexslider-direction-nav"); 2485 } 2486 }); 2487}; 2488 2489InitZoomPict = function (el) { 2490 var block = $(".zoom_picture"); 2491 if (typeof el !== "undefined") block = el; 2492 if (block.length) { 2493 var slide = block.closest(".slides"); 2494 var zoomer = block, 2495 options, 2496 defaults = { 2497 zoomWidth: 200, 2498 zoomHeight: 200, 2499 adaptive: false, 2500 title: true, 2501 Xoffset: 15, 2502 }; 2503 var config = $.extend({}, defaults, options, zoomer.data("plugin-options")); 2504 zoomer.xzoom(config); 2505 2506 block.on("mouseleave", function () { 2507 block.data("xzoom").movezoom(event); 2508 /* 2509 if($('.xzoom-lens').length) 2510 block.data('xzoom').closezoom(); 2511 */ 2512 }); 2513 } 2514}; 2515 2516if (!funcDefined("pauseYmObserver")) { 2517 // pause ya metrika webvisor MutationObserver callback (DOM indexer) 2518 // use before insert html with some animation 2519 pauseYmObserver = function () { 2520 if ( 2521 typeof MutationObserver === "function" && 2522 typeof MutationObserver.observers === "object" && 2523 typeof MutationObserver.observers.ym === "object" 2524 ) { 2525 if (typeof pauseYmObserver.cnt === "undefined") { 2526 pauseYmObserver.cnt = 0; 2527 } 2528 2529 ++pauseYmObserver.cnt; 2530 2531 if (!MutationObserver.observers.ym.paused) { 2532 MutationObserver.observers.ym.pause(); 2533 } 2534 } 2535 }; 2536} 2537 2538if (!funcDefined("resumeYmObserver")) { 2539 // resume ya metrika webvisor MutationObserver callback 2540 // use when animation finished 2541 resumeYmObserver = function () { 2542 if ( 2543 typeof MutationObserver === "function" && 2544 typeof MutationObserver.observers === "object" && 2545 typeof MutationObserver.observers.ym === "object" 2546 ) { 2547 if (typeof pauseYmObserver.cnt === "undefined") { 2548 pauseYmObserver.cnt = 1; 2549 } 2550 2551 pauseYmObserver.cnt -= pauseYmObserver.cnt > 0 ? 1 : 0; 2552 2553 if (!pauseYmObserver.cnt && MutationObserver.observers.ym.paused) { 2554 MutationObserver.observers.ym.resume(); 2555 } 2556 } 2557 }; 2558} 2559 2560var arBasketAsproCounters = {}; 2561SetActualBasketFlyCounters = function () { 2562 if (arBasketAsproCounters.DEFAULT == true) { 2563 $.ajax({ 2564 url: arOptimusOptions["SITE_DIR"] + "ajax/basket_fly.php", 2565 type: "post", 2566 success: function (html) { 2567 $("#basket_line .basket_fly").addClass("loaded").html(html); 2568 }, 2569 }); 2570 } else { 2571 $(".basket_fly .opener .basket_count .count") 2572 .attr("class", "count" + (arBasketAsproCounters.READY.COUNT > 0 ? "" : " empty_items"))
2573 .find(".items span") 2574 .text(arBasketAsproCounters.READY.COUNT); 2575 $(".basket_fly .opener .basket_count + a").attr("href", arBasketAsproCounters["READY"]["HREF"]); 2576 $(".basket_fly .opener .basket_count") 2577 .attr("title", arBasketAsproCounters.READY.TITLE) 2578 .attr("class", "basket_count small clicked" + (arBasketAsproCounters.READY.COUNT > 0 ? "" : " empty")); 2579 2580 $(".basket_fly .opener .wish_count .count") 2581 .attr("class", "count" + (arBasketAsproCounters.DELAY.COUNT > 0 ? "" : " empty_items")) 2582 .find(".items span") 2583 .text(arBasketAsproCounters.DELAY.COUNT); 2584 $(".basket_fly .opener .wish_count + a").attr("href", arBasketAsproCounters.DELAY.HREF); 2585 $(".basket_fly .opener .wish_count") 2586 .attr("title", arBasketAsproCounters.DELAY.TITLE) 2587 .attr("class", "wish_count small clicked" + (arBasketAsproCounters.DELAY.COUNT > 0 ? "" : " empty")); 2588 2589 $(".basket_fly .opener .compare_count .count") 2590 .attr("class", "count" + (arBasketAsproCounters.COMPARE.COUNT > 0 ? "" : " empty_items")) 2591 .find(".items span") 2592 .text(arBasketAsproCounters.COMPARE.COUNT); 2593 $(".basket_fly .opener .compare_count + a").attr("href", arBasketAsproCounters.COMPARE.HREF); 2594 2595 $(".basket_fly .opener .user_block") 2596 .attr("title", arBasketAsproCounters.PERSONAL.TITLE) 2597 .find("+ a") 2598 .attr("href", arBasketAsproCounters.PERSONAL.HREF); 2599 $(".basket_fly .opener .user_block .wraps_icon_block") 2600 .attr( 2601 "class", 2602 "wraps_icon_block" + 2603 (arBasketAsproCounters.PERSONAL.ID > 0 ? " user_auth" : " user_reg") + 2604 (arBasketAsproCounters.PERSONAL.SRC ? " w_img" : " no_img") 2605 ) 2606 .attr( 2607 "style", 2608 arBasketAsproCounters.PERSONAL.SRC 2609 ? 'background:url("' + arBasketAsproCounters.PERSONAL.SRC + '") center center no-repeat;' 2610 : "" 2611 ); 2612 2613 const eventdata = { action: "loadActualBasket" }; 2614 BX.onCustomEvent("onCompleteAction", [eventdata]); 2615 } 2616}; 2617 2618/*set price item*/ 2619if (!funcDefined("setPriceItem")) { 2620 var setPriceItem = function setPriceItem(main_block, quantity, rewrite_price, check_quantity, is_sku) { 2621 var old_quantity = main_block.find(".to-cart").attr("data-ratio"), 2622 value = 2623 typeof rewrite_price !== "undefined" && rewrite_price 2624 ? rewrite_price 2625 : main_block.find(".to-cart").attr("data-value"), 2626 currency = main_block.find(".to-cart").attr("data-currency"), 2627 total_block = '<div class="total_summ"><div>' + BX.message("TOTAL_SUMM_ITEM") + "<span></span></div></div>", 2628 price_block = main_block.find(".cost.prices"), 2629 check = typeof check_quantity !== "undefined" && check_quantity; 2630 2631 if (main_block.find(".buy_block").length) { 2632 if (!main_block.find(".buy_block .total_summ").length) $(total_block).appendTo(main_block.find(".buy_block")); 2633 } else if (main_block.find(".counter_wrapp").length) { 2634 if (!main_block.find(".counter_wrapp .total_summ").length) 2635 $(total_block).appendTo(main_block.find(".counter_wrapp:first")); 2636 } 2637 if (main_block.find(".total_summ").length) { 2638 if (value && currency) { 2639 if ( 2640 ((1 == quantity && old_quantity == quantity) || (typeof is_sku !== "undefined" && is_sku && !check)) && 2641 arOptimusOptions.THEME.SHOW_TOTAL_SUMM !== "ALWAYS" 2642 ) { 2643 main_block.find(".total_summ").slideUp(200); 2644 } else { 2645 main_block.find(".total_summ span").html(BX.Currency.currencyFormat(value * quantity, currency, true)); 2646 if (main_block.find(".total_summ").is(":hidden")) main_block.find(".total_summ").slideDown(200); 2647 } 2648 } else main_block.find(".total_summ").slideUp(200); 2649 } 2650 }; 2651} 2652 2653if (!funcDefined("getCurrentPrice")) { 2654 var getCurrentPrice = function getCurrentPrice(price, currency, print_price) { 2655 var val = ""; 2656 var format_value = BX.Currency.currencyFormat(price, currency); 2657 if (print_price.indexOf(format_value) >= 0) { 2658 val = print_price.replace( 2659 format_value, 2660 '<span class="price_value">' + format_value + '</span><span class="price_currency">' 2661 ); 2662 val += "</span>"; 2663 } else { 2664 val = print_price; 2665 } 2666 2667 return val; 2668 }; 2669} 2670 2671$(document).ready(function () { 2672 //ecommerce order 2673 if (arOptimusOptions["PAGES"]["ORDER_PAGE"]) { 2674 var arUrl = parseUrlQuery(); 2675 if ("ORDER_ID" in arUrl) { 2676 var _id = arUrl["ORDER_ID"]; 2677 if (arOptimusOptions["COUNTERS"]["USE_FULLORDER_GOALS"] !== "N") { 2678 var eventdata = { goal: "goal_order_success", result: _id }; 2679 BX.onCustomEvent("onCounterGoals", [eventdata]); 2680 } 2681 2682 if (checkCounters()) { 2683 if (typeof BX.localStorage !== "undefined") { 2684 var d = BX.localStorage.get("gtm_e_" + _id); 2685 if (typeof d === "object") { 2686 waitLayer(100, function () { 2687 dataLayer.push({ event: arOptimusOptions["COUNTERS"]["GOOGLE_EVENTS"]["PURCHASE"], ecommerce: d }); 2688 }); 2689 } 2690 2691 if (typeof localStorage !== "undefined") { 2692 localStorage.removeItem("gtm_e_" + _id); 2693 } 2694 } 2695 } 2696 } 2697 } 2698 2699 // ya.metrika debug 2700 if (arOptimusOptions["COUNTERS"]["USE_DEBUG_GOALS"] === "Y") { 2701 $.cookie("_ym_debug", 1, { path: "/" }); 2702 } else { 2703 $.cookie("_ym_debug", null, { path: "/" }); 2704 } 2705 2706 scrollToTop(); 2707 checkVerticalMobileFilter(); 2708 checkFormWidth(); 2709 2710 if (!jQuery.browser.safari) { 2711 setTimeout(function () { 2712 InitTopestMenuGummi(); 2713 InitTopMenuGummi(); 2714 isOnceInited = true; 2715 2716 InitFlexSlider(); 2717 2718 // setTimeout(function() {$(window).resize();}, 150); // need to check resize flexslider & menu 2719
2720 try { 2721 // SHOW TOP MENU ON READY AFTER GUMMI 2722 $("header .wrap_menu").css({ overflow: "visible" }); 2723 $(".visible_on_ready").removeClass("visible_on_ready"); 2724 } catch (e) { 2725 console.error(e); 2726 } 2727 }, 100); 2728 } else { 2729 setTimeout(function () { 2730 $(window).resize(); // need to check resize flexslider & menu 2731 setTimeout(function () { 2732 InitTopestMenuGummi(); 2733 InitTopMenuGummi(); 2734 isOnceInited = true; 2735 2736 InitFlexSlider(); 2737 2738 try { 2739 // SHOW TOP MENU ON READY AFTER GUMMI 2740 $("header .wrap_menu").css({ overflow: "visible" }); 2741 $(".visible_on_ready").removeClass("visible_on_ready"); 2742 } catch (e) { 2743 console.error(e); 2744 } 2745 2746 setTimeout(function () { 2747 $(window).scroll(); 2748 }, 50); 2749 }, 50); 2750 }, 350); 2751 } 2752 2753 InitZoomPict(); 2754 2755 $("body").on("click", ".captcha_reload", function (e) { 2756 var captcha = $(this).parents(".captcha-row"); 2757 e.preventDefault(); 2758 $.ajax({ 2759 url: arOptimusOptions["SITE_DIR"] + "ajax/captcha.php", 2760 }).done(function (text) { 2761 captcha.find("input[name=captcha_sid]").val(text); 2762 captcha.find("img").attr("src", "/bitrix/tools/captcha.php?captcha_sid=" + text); 2763 captcha.find("input[name=captcha_word]").val("").removeClass("error"); 2764 captcha.find(".captcha_input").removeClass("error").find(".error").remove(); 2765 }); 2766 }); 2767 2768 setTimeout(function () { 2769 $(".bg_image_site").css({ 2770 opacity: 1, 2771 }); 2772 }, 200); 2773 2774 if (window.matchMedia("(min-width: 768px)").matches) { 2775 $(".wrapper_middle_menu.wrap_menu").removeClass("mobile"); 2776 } 2777 2778 if (window.matchMedia("(max-width: 767px)").matches) { 2779 $(".wrapper_middle_menu.wrap_menu").addClass("mobile"); 2780 } 2781 2782 setTimeout(function () { 2783 $(window).scroll(); 2784 }, 400); 2785 2786 $(".menu_top_block .v_bottom > a").on("click", function (e) { 2787 if ($(e.target).hasClass("toggle_block")) e.preventDefault(); 2788 }); 2789 $(".menu_top_block .v_bottom > a .toggle_block").on("click", function (e) { 2790 $(this).closest(".v_bottom").toggleClass("opened"); 2791 $(this).closest(".v_bottom").find(">.dropdown").slideToggle(); 2792 }); 2793 2794 $(document).on("click", ".show_props", function() { 2795 $(this).prev(".props_list_wrapp").stop().slideToggle(333); 2796 $(this).find(".char_title").toggleClass("opened"); 2797 }); 2798 2799 $(document).on( 2800 "mouseenter", 2801 ".menu_top_block.catalog_block >.dropdown>li.m_line, .menu_top_block.catalogfirst > li >.dropdown>li.m_line", 2802 function () { 2803 var _this = $(this); 2804 if (window.dropdownTimeout && window.dropdownTimeout[_this.index()]) { 2805 clearTimeout(window.dropdownTimeout[_this.index()]); 2806 } 2807 2808 var dropdown = _this.find("> ul"); 2809 if (dropdown.length) { 2810 var offset = dropdown[0].getBoundingClientRect(); 2811 var offsetLi = _this[0].getBoundingClientRect(); 2812 var offsetUl = _this.closest("ul")[0].getBoundingClientRect(); 2813 var bottomOuter = document.documentElement.clientHeight - offset.y - offset.height; 2814 if (bottomOuter < 0) { 2815 if (offset.height > document.documentElement.clientHeight && offsetUl.y < 0) { 2816 var dropdownTopMax = -offsetLi.y; 2817 } else { 2818 var dropdownTopMax = offsetUl.y - offsetLi.y; 2819 } 2820 var dropdownBottom = document.documentElement.clientHeight - offset.y - offsetLi.height; 2821 var dropdownTop = dropdownBottom + offsetLi.height - offset.height; 2822 if (dropdownTop < dropdownTopMax) { 2823 dropdownTop = dropdownTopMax; 2824 } 2825 dropdown.css({ 2826 top: dropdownTop + "px", 2827 bottom: -dropdownBottom + "px", 2828 overflow: "auto", 2829 }); 2830 } 2831 } 2832 } 2833 ); 2834 2835 $(document).on( 2836 "mouseleave", 2837 ".menu_top_block.catalog_block >.dropdown>li.m_line, .menu_top_block.catalogfirst > li >.dropdown>li.m_line", 2838 function () { 2839 var _this = $(this); 2840 var dropdown = _this.find("> ul"); 2841 if (dropdown.length) { 2842 if (!window.dropdownTimeout) { 2843 window.dropdownTimeout = {}; 2844 } 2845 window.dropdownTimeout[_this.index()] = setTimeout(function () { 2846 dropdown.css({ 2847 top: "", 2848 bottom: "", 2849 }); 2850 }, 300); 2851 } 2852 } 2853 ); 2854 2855 $(document).on("click", ".see_more", function(e) { 2856 e.preventDefault(); 2857 var see_more = $(this).is(".see_more") ? $(this) : $(this).parents(".see_more").first(); 2858 var see_moreText = see_more.find("> a").length ? see_more.find("> a") : see_more; 2859 var see_moreHiden = see_more.parent().find("> .d"); 2860 if (see_more.hasClass("open")) { 2861 see_moreText.text(BX.message("CATALOG_VIEW_MORE")); 2862 see_more.removeClass("open"); 2863 see_moreHiden.hide(); 2864 } else { 2865 see_moreText.text(BX.message("CATALOG_VIEW_LESS")); 2866 see_more.addClass("open"); 2867 see_moreHiden.show(); 2868 } 2869 return false;
2870 }); 2871 2872 $(".button.faq_button").click(function (e) { 2873 e.preventDefault(); 2874 $(this).toggleClass("opened"); 2875 $(".faq_ask .form").slideToggle(); 2876 }); 2877 2878 $(".staff.list .staff_section .staff_section_title a").click(function (e) { 2879 e.preventDefault(); 2880 $(this).parents(".staff_section").toggleClass("opened"); 2881 $(this).parents(".staff_section").find(".staff_section_items").stop().slideToggle(600); 2882 $(this).parents(".staff_section_title").find(".opener_icon").toggleClass("opened"); 2883 }); 2884 2885 $(".jobs_wrapp .item .name").click(function (e) { 2886 $(this).closest(".item").toggleClass("opened"); 2887 $(this).closest(".item").find(".description_wrapp").stop().slideToggle(600); 2888 $(this).closest(".item").find(".opener_icon").toggleClass("opened"); 2889 }); 2890 2891 $(document).on("click", ".faq.list .item .q a", function(e) { 2892 e.preventDefault(); 2893 $(this).parents(".item").toggleClass("opened"); 2894 $(this).parents(".item").find(".a").stop().slideToggle(); 2895 $(this).parents(".item").find(".q .opener_icon").toggleClass("opened"); 2896 }); 2897 2898 $(".opener_icon").click(function (e) { 2899 e.preventDefault(); 2900 $(this).parent().find("a").trigger("click"); 2901 }); 2902 2903 $(document).on("click", ".to-order", function(e) { 2904 e.preventDefault(); 2905 $("body").append("<span class='evb-toorder' style='display:none;'></span>"); 2906 jqmEd("to-order", arOptimusOptions["FORM"]["TOORDER_FORM_ID"], ".evb-toorder", "", this); 2907 $("body .evb-toorder").click(); 2908 $("body .evb-toorder").remove(); 2909 }); 2910 2911 $(document).on("click", ".cheaper", function(e) { 2912 e.preventDefault(); 2913 $("body").append("<span class='evb-cheaper' style='display:none;'></span>"); 2914 jqmEd("cheaper", arOptimusOptions["FORM"]["CHEAPER_FORM_ID"], ".evb-cheaper", "", this); 2915 $("body .evb-cheaper").click(); 2916 $("body .evb-cheaper").remove(); 2917 }); 2918 2919 $(document).on('click', '.delivery', function(e){ 2920 e.preventDefault(); 2921 var dataProductId = $(this).data('param-product_id'); 2922 var dataQuantity = $(this).data('param-quantity'); 2923 $("body").append("<span class='evb-delivery' style='display:none;'></span>"); 2924 jqmEd('delivery', arOptimusOptions['FORM']['DELIVERY_FORM_ID'].toLowerCase(), '.evb-delivery', 'product_id='+dataProductId+'&quantity='+dataQuantity, this); 2925 $("body .evb-delivery").click(); 2926 $("body .evb-delivery").remove(); 2927 2928 }); 2929 $(".animate-load").on("click", function () { 2930 if (!jQuery.browser.mobile) { 2931 $(this).parent().addClass("loadings"); 2932 } 2933 }); 2934 2935 // init calculate delivery with preview 2936 initCalculatePreview(); 2937 2938 //$(".dotdot").dotdotdot(); 2939 2940 $(document).on("click", ".more_block", function () { 2941 const content_offset = $(".catalog_detail .tabs_section").offset(); 2942 const $descriptionTab = document.querySelector('.tabs_section .nav-tabs #description_tab'); 2943 2944 if (window.matchMedia("(min-width: 768px)").matches) { 2945 if ($("#headerfixed").length) { 2946 content_offset.top -= $("#headerfixed").height(); 2947 } 2948 if ($(".product-item-detail-tabs-container-fixed").length) { 2949 content_offset.top -= $(".product-item-detail-tabs-container-fixed").height(); 2950 } 2951 } 2952 2953 if ($descriptionTab) { 2954 $descriptionTab.click(); 2955 } 2956 2957 $("html, body").animate({ scrollTop: content_offset.top - 43 }, 400); 2958 }); 2959 2960 $(document).on("click", ".counter_block:not(.basket) .plus", function () { 2961 if (!$(this).parents(".basket_wrapp").length) { 2962 if ($(this).parent().data("offers") != "Y") { 2963 var isDetailSKU2 = $(this).parents(".counter_block_wr").length, 2964 input = $(this).parents(".counter_block").find("input[type=text]"), 2965 tmp_ratio = !isDetailSKU2 2966 ? $(this).parents(".counter_wrapp").find(".to-cart").data("ratio") 2967 : $(this).parents(".counter_block_wr").find(".button_block .to-cart").data("ratio"), 2968 isDblQuantity = !isDetailSKU2 2969 ? $(this).parents(".counter_wrapp").find(".to-cart").data("float_ratio") 2970 : $(this).parents(".counter_block_wr").find(".button_block .to-cart").data("float_ratio"), 2971 ratio = isDblQuantity ? parseFloat(tmp_ratio) : parseInt(tmp_ratio, 10), 2972 max_value = ""; 2973 currentValue = input.val(); 2974 2975 if (isDblQuantity) 2976 ratio = 2977 Math.round(ratio * arOptimusOptions.JS_ITEM_CLICK.precisionFactor) / 2978 arOptimusOptions.JS_ITEM_CLICK.precisionFactor; 2979 2980 curValue = isDblQuantity ? parseFloat(currentValue) : parseInt(currentValue, 10); 2981 2982 curValue += ratio; 2983 if (isDblQuantity) { 2984 curValue = 2985 Math.round(curValue * arOptimusOptions.JS_ITEM_CLICK.precisionFactor) / 2986 arOptimusOptions.JS_ITEM_CLICK.precisionFactor; 2987 } 2988 if (parseFloat($(this).data("max")) > 0) { 2989 if (input.val() <= $(this).data("max")) { 2990 if (curValue <= $(this).data("max")) input.val(curValue); 2991 2992 input.change(); 2993 } 2994 } else { 2995 input.val(curValue); 2996 input.change(); 2997 } 2998 } 2999 } 3000 }); 3001 3002 $(document).on("click", ".counter_block:not(.basket) .minus", function () { 3003 if (!$(this).parents(".basket_wrapp").length) { 3004 if ($(this).parent().data("offers") != "Y") { 3005 var isDetailSKU2 = $(this).parents(".counter_block_wr").length; 3006 input = $(this).parents(".counter_block").find("input[type=text]"); 3007 (tmp_ratio = !isDetailSKU2 3008 ? $(this).parents(".counter_wrapp").find(".to-cart").data("ratio") 3009 : $(this).parents(".counter_block_wr").find(".button_block .to-cart").data("ratio")), 3010 (isDblQuantity = !isDetailSKU2 3011 ? $(this).parents(".counter_wrapp").find(".to-cart").data("float_ratio") 3012 : $(this).parents(".counter_block_wr").find(".button_block .to-cart").data("float_ratio")), 3013 (ratio = isDblQuantity ? parseFloat(tmp_ratio) : parseInt(tmp_ratio, 10)), 3014 (max_value = ""); 3015 currentValue = input.val(); 3016 3017 if (isDblQuantity) 3018 ratio = 3019 Math.round(ratio * arOptimusOptions.JS_ITEM_CLICK.precisionFactor) / 3020 arOptimusOptions.JS_ITEM_CLICK.precisionFactor; 3021 3022 curValue = isDblQuantity ? parseFloat(currentValue) : parseInt(currentValue, 10); 3023 3024 curValue -= ratio; 3025 if (isDblQuantity) { 3026 curValue = 3027 Math.round(curValue * arOptimusOptions.JS_ITEM_CLICK.precisionFactor) / 3028 arOptimusOptions.JS_ITEM_CLICK.precisionFactor; 3029 } 3030 3031 const minValue = parseFloat($(this).parents(".counter_block").find(".minus").data("min")); 3032 if (minValue) { 3033 ratio = minValue; 3034 } 3035 3036 if (parseFloat($(this).parents(".counter_block").find(".plus").data("max")) > 0) { 3037 if (currentValue > ratio) { 3038 if (curValue < ratio) { 3039 input.val(ratio); 3040 } else { 3041 input.val(curValue); 3042 } 3043 input.change(); 3044 } 3045 } else { 3046 if (curValue > ratio) { 3047 input.val(curValue); 3048 } else { 3049 if (ratio) { 3050 input.val(ratio); 3051 } else if (currentValue > 1) { 3052 input.val(curValue); 3053 } 3054 } 3055 input.change(); 3056 } 3057 } 3058 } 3059 }); 3060 3061 $(".counter_block input[type=text]").numeric({ allow: "." }); 3062 $(".counter_block input[type=text]").on("focus", function () { 3063 $(this).addClass("focus"); 3064 }); 3065 $(".counter_block input[type=text]").on("blur", function () { 3066 $(this).removeClass("focus"); 3067 }); 3068 3069 var timerInitCalculateDelivery = false;
3070 3071 $(document).on("change", ".counter_block input[type=text]", function (e) { 3072 const minValue = parseFloat($(this).parents(".counter_block").find(".minus").data("min")); 3073 const currentValue = parseFloat($(this).val()); 3074 if (minValue === currentValue) { 3075 return; 3076 } 3077 3078 if (!$(this).parents(".basket_wrapp").length) { 3079 var val = $(this).val(), 3080 tmp_ratio = $(this).parents(".counter_wrapp").find(".to-cart").data("ratio") 3081 ? $(this).parents(".counter_wrapp").find(".to-cart").data("ratio") 3082 : $(this).parents(".counter_block_wr").find(".button_block .to-cart").data("ratio"), 3083 isDblQuantity = $(this).parents(".counter_wrapp").find(".to-cart").data("float_ratio") 3084 ? $(this).parents(".counter_wrapp").find(".to-cart").data("float_ratio") 3085 : $(this).parents(".counter_block_wr").find(".button_block .to-cart").data("float_ratio"), 3086 ratio = isDblQuantity ? parseFloat(tmp_ratio) : parseInt(tmp_ratio, 10), 3087 diff = val % ratio; 3088 if (isDblQuantity) { 3089 ratio = 3090 Math.round(ratio * arOptimusOptions.JS_ITEM_CLICK.precisionFactor) / 3091 arOptimusOptions.JS_ITEM_CLICK.precisionFactor; 3092 if ( 3093 Math.round(diff * arOptimusOptions.JS_ITEM_CLICK.precisionFactor) / 3094 arOptimusOptions.JS_ITEM_CLICK.precisionFactor == 3095 ratio 3096 ) 3097 diff = 0; 3098 } 3099 3100 if ($(this).hasClass("focus")) { 3101 const intCount = 3102 Math.round( 3103 Math.round((val * arOptimusOptions.JS_ITEM_CLICK.precisionFactor) / ratio) / 3104 arOptimusOptions.JS_ITEM_CLICK.precisionFactor 3105 ) || 1; 3106 val = intCount <= 1 ? ratio : intCount * ratio; 3107 val = 3108 Math.round(val * arOptimusOptions.JS_ITEM_CLICK.precisionFactor) / 3109 arOptimusOptions.JS_ITEM_CLICK.precisionFactor; 3110 } 3111 3112 if (parseFloat($(this).parents(".counter_block").find(".plus").data("max")) > 0) { 3113 if (val > parseFloat($(this).parents(".counter_block").find(".plus").data("max"))) { 3114 val = parseFloat($(this).parents(".counter_block").find(".plus").data("max")); 3115 } 3116 } 3117 3118 if (val < ratio) { 3119 val = ratio; 3120 } else if (!parseFloat(val)) { 3121 val = 1; 3122 } 3123 3124 $(this).parents(".counter_block").parent().parent().find(".to-cart").attr("data-quantity", val); 3125 $(this).parents(".counter_block").parent().parent().find(".one_click").attr("data-quantity", val); 3126 $(this).parents(".counter_block_wr").find(".one_click").attr("data-quantity", val); 3127 $(this).val(val); 3128 3129 var $calculate = $(this).closest(".item").length 3130 ? $(this).closest(".item").find(".calculate-delivery") 3131 : $(this).closest(".catalog_detail").find(".calculate-delivery"); 3132 if ($calculate.length) { 3133 $calculate.each(function () { 3134 var $calculateSpan = $(this).find("span[data-event=jqm]").first(); 3135 3136 if ($calculateSpan.length) { 3137 var $clone = $calculateSpan.clone(); 3138 $clone.attr("data-param-quantity", val).removeClass("clicked"); 3139 $clone.insertAfter($calculateSpan).on("click", function () { 3140 if (!jQuery.browser.mobile) { 3141 $(this).parent().addClass("loadings"); 3142 } 3143 }); 3144 $calculateSpan.remove(); 3145 } 3146 3147 if ($(this).hasClass("with_preview")) { 3148 $(this).removeClass("inited"); 3149 3150 if (timerInitCalculateDelivery) { 3151 clearTimeout(timerInitCalculateDelivery); 3152 } 3153 3154 timerInitCalculateDelivery = setTimeout(function () {
3155 initCalculatePreview(); 3156 timerInitCalculateDelivery = false; 3157 }, 1000); 3158 } 3159 }); 3160 } 3161 3162 var eventdata = { type: "change", params: { id: $(this), value: val } }; 3163 BX.onCustomEvent("onCounterProductAction", [eventdata]); 3164 } 3165 }); 3166 3167 BX.addCustomEvent("onCounterProductAction", function (eventdata) { 3168 if (typeof eventdata != "object") { 3169 eventdata = { type: "undefined" }; 3170 } 3171 try { 3172 if (typeof eventdata.type != "undefined") { 3173 if (!eventdata.params.id.closest(".gifts").length) { 3174 // no gift 3175 var obProduct = eventdata.params.id.data("product"); 3176 if (eventdata.params.id.closest(".item_info").find(".sku_props").length) { 3177 if (typeof window.obSkuQuantys === "undefined") window.obSkuQuantys = {}; 3178 3179 const offerID = eventdata.params.id.closest(".offer_buy_block").find(".to-cart").data("item"); 3180 window.obSkuQuantys[offerID] = eventdata.params.value; 3181 } 3182 3183 if (typeof window[obProduct] === "object") { 3184 if (obProduct === "obOffers") { 3185 setPriceAction("", "", "Y"); 3186 } else { 3187 window[obProduct].setPriceAction("Y"); 3188 } 3189 } else if (eventdata.params.id.length) { 3190 if ( 3191 eventdata.params.id.closest(".main_item_wrapper").length && 3192 arOptimusOptions["THEME"]["SHOW_TOTAL_SUMM"] != "N" 3193 ) { 3194 setPriceItem(eventdata.params.id.closest(".main_item_wrapper"), eventdata.params.value); 3195 } 3196 } 3197 BX.onCustomEvent("onCounterProductActionResize"); 3198 } 3199 } 3200 } catch (e) { 3201 console.error(e); 3202 } 3203 }); 3204 3205 /*slide cart*/ 3206 $(document).on("mouseenter", "#basket_line .basket_normal:not(.empty_cart):not(.bcart) .basket_block ", function () { 3207 $(this).closest(".basket_normal").find(".popup").addClass("block"); 3208 $(this).closest(".basket_normal").find(".basket_popup_wrapp").stop(true, true).slideDown(150); 3209 }); 3210 $(document).on("mouseleave", "#basket_line .basket_normal .basket_block ", function () { 3211 var th = $(this); 3212 $(this) 3213 .closest(".basket_normal") 3214 .find(".basket_popup_wrapp") 3215 .stop(true, true) 3216 .slideUp(150, function () { 3217 th.closest(".basket_normal").find(".popup").removeClass("block"); 3218 }); 3219 }); 3220 3221 $(document).on("click", ".fast_view_block", function() { 3222 var _th = $(this), 3223 iblockid = _th.data("param-iblock_id"), 3224 href = _th.data("param-item_href"), 3225 name = _th.data("param-form_id"); 3226 3227 $("body #popup_iframe_wrapper") 3228 .find("." + name + "_frame") 3229 .remove(); 3230 $("body #popup_iframe_wrapper") 3231 .find("." + name + "_trigger") 3232 .remove(); 3233 $("body #popup_iframe_wrapper").append('<div class="' + name + '_frame popup"></div>'); 3234 $("body #popup_iframe_wrapper").append('<div class="' + name + '_trigger"></div>'); 3235 $("." + name + "_frame").jqm({ 3236 trigger: "." + name + "_trigger", 3237 onHide: function (hash) { 3238 onHidejqm(name, hash); 3239 }, 3240 onLoad: function (hash) { 3241 onLoadjqm(name, hash); 3242 }, 3243 ajax: 3244 arOptimusOptions["SITE_DIR"] + "ajax/form.php?form_id=fast_view&iblock_id=" + iblockid + "&item_href=" + href, 3245 }); 3246 $("." + name + "_trigger").click(); 3247 }); 3248 3249 $(document).on("click", ".popup_button_basket", function () { 3250 var th = $(".to-cart[data-item=" + $(this).data("item") + "]"); 3251 3252 var val = th.attr("data-quantity"); 3253 3254 if (!val) $val = 1; 3255 3256 var tmp_props = th.data("props"), 3257 props = "", 3258 part_props = "", 3259 add_props = "N", 3260 fill_prop = {}, 3261 iblockid = th.data("iblockid"), 3262 offer = th.data("offers"), 3263 rid = "", 3264 basket_props = "", 3265 item = th.attr("data-item"); 3266 3267 if (offer != "Y") { 3268 offer = "N"; 3269 } else { 3270 basket_props = th.closest(".prices_tab").find(".bx_sku_props input").val(); 3271 } 3272 if (tmp_props) { 3273 props = tmp_props.split(";"); 3274 } 3275 if (th.data("part_props")) { 3276 part_props = th.data("part_props"); 3277 } 3278 if (th.data("add_props")) { 3279 add_props = th.data("add_props"); 3280 } 3281 if ($(".rid_item").length) { 3282 rid = $(".rid_item").data("rid"); 3283 } else if (th.data("rid")) { 3284 rid = th.data("rid"); 3285 } 3286 3287 fill_prop = fillBasketPropsExt(th, "prop", "bx_ajax_text"); 3288 3289 fill_prop.quantity = val; 3290 fill_prop.add_item = "Y"; 3291 fill_prop.rid = rid; 3292 fill_prop.offers = offer; 3293 fill_prop.iblockID = iblockid; 3294 fill_prop.part_props = part_props; 3295 fill_prop.add_props = add_props; 3296 fill_prop.props = JSON.stringify(props); 3297 fill_prop.item = item; 3298 fill_prop.basket_props = basket_props; 3299 3300 $.ajax({ 3301 type: "POST", 3302 url: arOptimusOptions["SITE_DIR"] + "ajax/item.php", 3303 data: fill_prop, 3304 dataType: "json", 3305 success: function (data) { 3306 $(".basket_error_frame").jqmHide(); 3307 if ("STATUS" in data) { 3308 getActualBasket(fill_prop.iblockID); 3309 if (data.STATUS === "OK") { 3310 th.hide(); 3311 th.closest(".counter_wrapp").find(".counter_block").hide(); 3312 th.parents("tr").find(".counter_block_wr .counter_block").hide(); 3313 th.closest(".button_block").addClass("wide"); 3314 th.parent().find(".in-cart").show(); 3315 3316 addBasketCounter(item); 3317 $(".wish_item[data-item=" + item + "]").removeClass("added"); 3318 $(".wish_item[data-item=" + item + "]") 3319 .find(".value") 3320 .show(); 3321 $(".wish_item[data-item=" + item + "]") 3322 .find(".value.added") 3323 .hide(); 3324 if ($("#basket_line .cart").length) { 3325 if ($("#basket_line .cart").is(".empty_cart")) { 3326 $("#basket_line .cart") 3327 .removeClass("empty_cart") 3328 .find(".cart_wrapp a.basket_link") 3329 .removeAttr("href") 3330 .addClass("cart-call"); 3331 $("#basket_line .cart").removeClass("ecart"); 3332 touchBasket(".cart:not(.empty_cart) .basket_block .link"); 3333 } 3334 3335 reloadTopBasket("add", $("#basket_line"), 200, 5000, "Y"); 3336 } else if ($("#basket_line .basket_fly").length) { 3337 if ($(window).outerWidth() > 768) { 3338 basketFly("open"); 3339 } else { 3340 basketFly("refresh"); 3341 } 3342 } 3343 } else { 3344 showBasketError(BX.message(data.MESSAGE)); 3345 } 3346 } else { 3347 showBasketError(BX.message("CATALOG_PARTIAL_BASKET_PROPERTIES_ERROR")); 3348 } 3349 }, 3350 }); 3351 }); 3352 3353 $(document).on("click", ".to-cart:not(.read_more)", function (e) { 3354 e.preventDefault(); 3355 var th = $(this); 3356 3357 var val = $(this).attr("data-quantity"); 3358 3359 if (!val) $val = 1; 3360 3361 var tmp_props = $(this).data("props"), 3362 props = "", 3363 part_props = "", 3364 add_props = "N", 3365 fill_prop = {}, 3366 iblockid = $(this).data("iblockid"), 3367 offer = $(this).data("offers"), 3368 rid = "", 3369 basket_props = "", 3370 item = $(this).attr("data-item"); 3371 3372 if (offer != "Y") { 3373 offer = "N"; 3374 } else { 3375 basket_props = $(this).closest(".prices_tab").find(".bx_sku_props input").val(); 3376 } 3377 if (tmp_props) { 3378 props = tmp_props.split(";"); 3379 } 3380 if ($(this).data("part_props")) { 3381 part_props = $(this).data("part_props"); 3382 } 3383 if ($(this).data("add_props")) { 3384 add_props = $(this).data("add_props"); 3385 } 3386 if ($(".rid_item").length) { 3387 rid = $(".rid_item").data("rid"); 3388 } else if ($(this).data("rid")) { 3389 rid = $(this).data("rid"); 3390 } 3391 3392 fill_prop = fillBasketPropsExt(th, "prop", th.data("bakset_div")); 3393 3394 fill_prop.quantity = val; 3395 fill_prop.add_item = "Y"; 3396 fill_prop.rid = rid; 3397 fill_prop.offers = offer; 3398 fill_prop.iblockID = iblockid; 3399 fill_prop.part_props = part_props; 3400 fill_prop.add_props = add_props; 3401 fill_prop.props = JSON.stringify(props); 3402 fill_prop.item = item; 3403 fill_prop.basket_props = basket_props; 3404 3405 if (th.data("empty_props") == "N") { 3406 showBasketError($("#" + th.data("bakset_div")).html(), BX.message("ERROR_BASKET_PROP_TITLE"), "Y", th); 3407 } else { 3408 $.ajax({ 3409 type: "POST", 3410 url: arOptimusOptions["SITE_DIR"] + "ajax/item.php", 3411 data: fill_prop, 3412 dataType: "json", 3413 success: function (data) { 3414 getActualBasket(fill_prop.iblockID); 3415 if (data !== null) { 3416 if ("STATUS" in data) { 3417 if (data.MESSAGE_EXT === null) data.MESSAGE_EXT = ""; 3418 if (data.STATUS === "OK") { 3419 /*th.hide(); 3420 th.closest('.counter_wrapp').find('.counter_block').hide(); 3421 th.parents('tr').find('.counter_block_wr .counter_block').hide(); 3422 th.closest('.button_block').addClass('wide'); 3423 th.parent().find('.in-cart').show();*/ 3424 3425 $(".to-cart[data-item=" + item + "]").hide(); 3426 $(".to-cart[data-item=" + item + "]") 3427 .closest(".counter_wrapp") 3428 .find(".counter_block") 3429 .hide(); 3430 $(".to-cart[data-item=" + item + "]") 3431 .parents("tr") 3432 .find(".counter_block_wr .counter_block") 3433 .hide(); 3434 $(".to-cart[data-item=" + item + "]") 3435 .closest(".button_block") 3436 .addClass("wide"); 3437 $(".to-cart[data-item=" + item + "]") 3438 .parent()
3439 .find(".in-cart") 3440 .show(); 3441 3442 addBasketCounter(item); 3443 $(".wish_item[data-item=" + item + "]").removeClass("added"); 3444 $(".wish_item[data-item=" + item + "]") 3445 .find(".value") 3446 .show(); 3447 $(".wish_item[data-item=" + item + "]") 3448 .find(".value.added") 3449 .hide(); 3450 if ($("#basket_line .cart").length) { 3451 if ($("#basket_line .cart").is(".empty_cart")) { 3452 $("#basket_line .cart") 3453 .removeClass("empty_cart") 3454 .find(".cart_wrapp a.basket_link") 3455 .removeAttr("href") 3456 .addClass("cart-call"); 3457 $("#basket_line .cart").removeClass("ecart"); 3458 touchBasket(".cart:not(.empty_cart) .basket_block .link"); 3459 } 3460 3461 reloadTopBasket("add", $("#basket_line"), 200, 5000, "Y"); 3462 } else if ($("#basket_line .basket_fly").length) { 3463 if ($(window).outerWidth() > 768) { 3464 basketFly("open"); 3465 } else { 3466 basketFly("refresh"); 3467 } 3468 } 3469 } else { 3470 showBasketError(BX.message(data.MESSAGE) + " <br/>" + data.MESSAGE_EXT); 3471 } 3472 } else { 3473 showBasketError(BX.message("CATALOG_PARTIAL_BASKET_PROPERTIES_ERROR")); 3474 } 3475 } else { 3476 /*th.hide(); 3477 th.closest('.counter_wrapp').find('.counter_block').hide(); 3478 th.parents('tr').find('.counter_block_wr .counter_block').hide(); 3479 th.closest('.button_block').addClass('wide'); 3480 th.parent().find('.in-cart').show();*/ 3481 3482 $(".to-cart[data-item=" + item + "]").hide(); 3483 $(".to-cart[data-item=" + item + "]") 3484 .closest(".counter_wrapp") 3485 .find(".counter_block") 3486 .hide(); 3487 $(".to-cart[data-item=" + item + "]") 3488 .parents("tr") 3489 .find(".counter_block_wr .counter_block") 3490 .hide(); 3491 $(".to-cart[data-item=" + item + "]") 3492 .closest(".button_block") 3493 .addClass("wide"); 3494 $(".to-cart[data-item=" + item + "]") 3495 .parent() 3496 .find(".in-cart") 3497 .show(); 3498 3499 addBasketCounter(item); 3500 $(".wish_item[data-item=" + item + "]").removeClass("added"); 3501 $(".wish_item[data-item=" + item + "]") 3502 .find(".value") 3503 .show(); 3504 $(".wish_item[data-item=" + item + "]") 3505 .find(".value.added") 3506 .hide(); 3507 if ($("#basket_line .cart").length) { 3508 if ($("#basket_line .cart").is(".empty_cart")) { 3509 $("#basket_line .cart") 3510 .removeClass("empty_cart") 3511 .find(".cart_wrapp a.basket_link") 3512 .removeAttr("href") 3513 .addClass("cart-call"); 3514 $("#basket_line .cart").removeClass("ecart"); 3515 touchBasket(".cart:not(.empty_cart) .basket_block .link"); 3516 } 3517 3518 reloadTopBasket("add", $("#basket_line"), 200, 5000, "Y"); 3519 } else if ($("#basket_line .basket_fly").length && $(window).outerWidth() > 768) { 3520 basketFly("open"); 3521 } 3522 } 3523 }, 3524 }); 3525 } 3526 }); 3527 3528 $(document).on("click", ".to-subscribe", function (e) { 3529 e.preventDefault(); 3530 if ($(this).is(".auth")) { 3531 if ($(this).hasClass("nsubsc")) { 3532 $("body").append("<span class='evb-subs' style='display:none;'></span>"); 3533 jqmEd("subscribe", "subscribe", ".evb-subs", "id=" + $(this).data("item"), this); 3534 $("body .evb-subs").click(); 3535 $("body .evb-subs").remove(); 3536 } else { 3537 location.href = arOptimusOptions["SITE_DIR"] + "auth/?backurl=" + location.pathname; 3538 } 3539 } else { 3540 var item = $(this).attr("data-item"), 3541 iblockid = $(this).attr("data-iblockid"); 3542 $(this).hide(); 3543 $(this).parent().find(".in-subscribe").show(); 3544 $.get( 3545 arOptimusOptions["SITE_DIR"] + "ajax/item.php?item=" + item + "&subscribe_item=Y", 3546 $.proxy(function (data) { 3547 $(".wish_item[data-item=" + item + "]").removeClass("added"); 3548 getActualBasket(iblockid); 3549 }) 3550 ); 3551 } 3552 }); 3553 3554 $(document).on("click", ".in-subscribe", function (e) { 3555 e.preventDefault(); 3556 var item = $(this).attr("data-item"), 3557 iblockid = $(this).attr("data-iblockid"); 3558 $(this).hide(); 3559 $(this).parent().find(".to-subscribe").show(); 3560 $.get( 3561 arOptimusOptions["SITE_DIR"] + "ajax/item.php?item=" + item + "&subscribe_item=Y", 3562 $.proxy(function (data) { 3563 getActualBasket(iblockid); 3564 }) 3565 ); 3566 }); 3567 3568 $(document).on("keyup", function (e) { 3569 if (e.keyCode == 27) { 3570 if ($(".jqmWindow").length) { 3571 $(".jqmWindow").jqmHide(); 3572 } 3573 } 3574 }); 3575 3576 $(document).on("click", ".wish_item", function (e) { 3577 e.preventDefault(); 3578 var val = $(this).attr("data-quantity"), 3579 offer = $(this).data("offers"), 3580 iblockid = $(this).data("iblock"),
3581 tmp_props = $(this).data("props"), 3582 props = "", 3583 item = $(this).attr("data-item"); 3584 item2 = $(this).attr("data-item"); 3585 if (!val) $val = 1; 3586 if (offer != "Y") offer = "N"; 3587 if (tmp_props) { 3588 props = tmp_props.split(";"); 3589 } 3590 if (!$(this).hasClass("text")) { 3591 if ($(this).hasClass("added")) { 3592 $(this).hide(); 3593 $(this).closest(".wish_item_button").find(".to").show(); 3594 3595 $(".like_icons").each(function () { 3596 if ($(this).find('.wish_item.text[data-item="' + item + '"]').length) { 3597 $(this) 3598 .find('.wish_item.text[data-item="' + item + '"]') 3599 .removeClass("added"); 3600 $(this) 3601 .find('.wish_item.text[data-item="' + item + '"]') 3602 .find(".value") 3603 .show(); 3604 $(this) 3605 .find('.wish_item.text[data-item="' + item + '"]') 3606 .find(".value.added") 3607 .hide(); 3608 } 3609 if ($(this).find(".wish_item_button").length) { 3610 $(this) 3611 .find(".wish_item_button") 3612 .find('.wish_item[data-item="' + item + '"]') 3613 .removeClass("added"); 3614 $(this) 3615 .find(".wish_item_button") 3616 .find('.wish_item[data-item="' + item + '"]') 3617 .find(".value") 3618 .show(); 3619 $(this) 3620 .find(".wish_item_button") 3621 .find('.wish_item[data-item="' + item + '"]') 3622 .find(".value.added") 3623 .hide(); 3624 } 3625 }); 3626 } else { 3627 $(this).hide(); 3628 $(this).closest(".wish_item_button").find(".in").addClass("added").show(); 3629 3630 $(".like_icons").each(function () { 3631 if ($(this).find('.wish_item.text[data-item="' + item + '"]').length) { 3632 $(this) 3633 .find('.wish_item.text[data-item="' + item + '"]') 3634 .addClass("added"); 3635 $(this) 3636 .find('.wish_item.text[data-item="' + item + '"]') 3637 .find(".value") 3638 .hide(); 3639 $(this) 3640 .find('.wish_item.text[data-item="' + item + '"]') 3641 .find(".value.added") 3642 .css({ display: "block" }); 3643 } 3644 if ($(this).find(".wish_item_button").length) { 3645 $(this) 3646 .find(".wish_item_button") 3647 .find('.wish_item[data-item="' + item + '"]') 3648 .addClass("added"); 3649 $(this) 3650 .find(".wish_item_button") 3651 .find('.wish_item[data-item="' + item + '"]') 3652 .find(".value") 3653 .hide(); 3654 $(this) 3655 .find(".wish_item_button") 3656 .find('.wish_item[data-item="' + item + '"]') 3657 .find(".value.added") 3658 .show(); 3659 } 3660 }); 3661 } 3662 } else { 3663 if (!$(this).hasClass("added")) { 3664 $(".wish_item[data-item=" + item + "]").addClass("added"); 3665 $(".wish_item[data-item=" + item + "]") 3666 .find(".value") 3667 .hide(); 3668 $(".wish_item[data-item=" + item + "]") 3669 .find(".value.added") 3670 .css("display", "block"); 3671 3672 $(".like_icons").each(function () { 3673 if ($(this).find(".wish_item_button").length) { 3674 $(this) 3675 .find(".wish_item_button") 3676 .find('.wish_item[data-item="' + item + '"]') 3677 .addClass("added"); 3678 $(this) 3679 .find(".wish_item_button") 3680 .find('.wish_item[data-item="' + item + '"]') 3681 .find(".value") 3682 .hide(); 3683 $(this) 3684 .find(".wish_item_button") 3685 .find('.wish_item[data-item="' + item + '"]') 3686 .find(".value.added") 3687 .show(); 3688 } 3689 }); 3690 } else { 3691 $(".wish_item[data-item=" + item + "]").removeClass("added"); 3692 $(".wish_item[data-item=" + item + "]") 3693 .find(".value") 3694 .show(); 3695 $(".wish_item[data-item=" + item + "]") 3696 .find(".value.added") 3697 .hide(); 3698 3699 $(".like_icons").each(function () { 3700 if ($(this).find(".wish_item_button").length) { 3701 $(this) 3702 .find(".wish_item_button") 3703 .find('.wish_item[data-item="' + item + '"]') 3704 .removeClass("added"); 3705 $(this) 3706 .find(".wish_item_button") 3707 .find('.wish_item[data-item="' + item + '"]') 3708 .find(".value") 3709 .show(); 3710 $(this) 3711 .find(".wish_item_button") 3712 .find('.wish_item[data-item="' + item + '"]') 3713 .find(".value.added") 3714 .hide(); 3715 } 3716 }); 3717 } 3718 } 3719 3720 $(".in-cart[data-item=" + item + "]").hide(); 3721 $(".to-cart[data-item=" + item + "]") 3722 .parent() 3723 .removeClass("wide"); 3724 $(".to-cart[data-item=" + item + "]").show(); 3725 $(".counter_block[data-item=" + item + "]").show(); 3726 if ( 3727 !$(".counter_block[data-item=" + item + "]") 3728 .closest(".counter_wrapp") 3729 .find(".to-order").length 3730 ) { 3731 $(".to-cart[data-item=" + item + "]").show(); 3732 $(".counter_block[data-item=" + item + "]").show(); 3733 } 3734 if (!$(this).closest(".module-cart").length) { 3735 $.ajax({ 3736 type: "GET", 3737 url: arOptimusOptions["SITE_DIR"] + "ajax/item.php", 3738 data: 3739 "item=" + 3740 item2 + 3741 "&quantity=" + 3742 val + 3743 "&wish_item=Y" + 3744 "&offers=" + 3745 offer + 3746 "&iblockID=" + 3747 iblockid + 3748 "&props=" + 3749 JSON.stringify(props), 3750 dataType: "json", 3751 success: function (data) { 3752 getActualBasket(iblockid); 3753 if (data !== null) { 3754 if (data.MESSAGE_EXT === null) data.MESSAGE_EXT = ""; 3755 if ("STATUS" in data) { 3756 if (data.STATUS === "OK") { 3757 if (arOptimusOptions["COUNTERS"]["USE_BASKET_GOALS"] !== "N") { 3758 var eventdata = { goal: "goal_wish_add", params: { id: item2 } }; 3759 BX.onCustomEvent("onCounterGoals", [eventdata]); 3760 } 3761 if ($("#basket_line .cart").length) { 3762 reloadTopBasket("wish", $("#basket_line"), 200, 5000, "N"); 3763 } else { 3764 basketFly("wish"); 3765 } 3766 } else { 3767 showBasketError( 3768 BX.message(data.MESSAGE) + " <br/>" + data.MESSAGE_EXT, 3769 BX.message("ERROR_ADD_DELAY_ITEM") 3770 ); 3771 } 3772 } else { 3773 showBasketError( 3774 BX.message(data.MESSAGE) + " <br/>" + data.MESSAGE_EXT, 3775 BX.message("ERROR_ADD_DELAY_ITEM") 3776 ); 3777 } 3778 } else { 3779 if ($("#basket_line .cart").length) { 3780 reloadTopBasket("wish", $("#basket_line"), 200, 5000, "N"); 3781 } else { 3782 basketFly("wish"); 3783 } 3784 } 3785 }, 3786 }); 3787 } 3788 }); 3789 3790 $(document).on("click", ".compare_item", function (e) { 3791 e.preventDefault(); 3792 var item = $(this).attr("data-item"); 3793 var iblockID = $(this).attr("data-iblock"); 3794 if (!$(this).hasClass("text")) { 3795 if ($(this).hasClass("added")) { 3796 $(this).hide(); 3797 $(this).closest(".compare_item_button").find(".to").show(); 3798 3799 /*sync other button*/ 3800 $(".like_icons").each(function () { 3801 if ($(this).find('.compare_item.text[data-item="' + item + '"]').length) { 3802 $(this) 3803 .find('.compare_item.text[data-item="' + item + '"]') 3804 .removeClass("added"); 3805 $(this) 3806 .find('.compare_item.text[data-item="' + item + '"]') 3807 .find(".value") 3808 .show(); 3809 $(this) 3810 .find('.compare_item.text[data-item="' + item + '"]') 3811 .find(".value.added") 3812 .hide(); 3813 } 3814 if ($(this).find(".compare_item_button").length) { 3815 $(this) 3816 .find(".compare_item_button") 3817 .find('.compare_item[data-item="' + item + '"]') 3818 .removeClass("added"); 3819 $(this) 3820 .find(".compare_item_button") 3821 .find('.compare_item[data-item="' + item + '"]') 3822 .find(".value") 3823 .show(); 3824 $(this) 3825 .find(".compare_item_button") 3826 .find('.compare_item[data-item="' + item + '"]') 3827 .find(".value.added") 3828 .hide(); 3829 } 3830 }); 3831 } else { 3832 $(this).hide(); 3833 $(this).closest(".compare_item_button").find(".in").show(); 3834 3835 /*sync other button*/ 3836 $(".like_icons").each(function () { 3837 if ($(this).find('.compare_item.text[data-item="' + item + '"]').length) { 3838 $(this) 3839 .find('.compare_item.text[data-item="' + item + '"]') 3840 .addClass("added"); 3841 $(this) 3842 .find('.compare_item.text[data-item="' + item + '"]') 3843 .find(".value") 3844 .hide(); 3845 $(this) 3846 .find('.compare_item.text[data-item="' + item + '"]') 3847 .find(".value.added") 3848 .css({ display: "block" }); 3849 } 3850 if ($(this).find(".compare_item_button").length) { 3851 $(this) 3852 .find(".compare_item_button") 3853 .find('.compare_item[data-item="' + item + '"]') 3854 .addClass("added"); 3855 $(this) 3856 .find(".compare_item_button") 3857 .find('.compare_item[data-item="' + item + '"]') 3858 .find(".value.added") 3859 .show(); 3860 $(this) 3861 .find(".compare_item_button") 3862 .find('.compare_item[data-item="' + item + '"]') 3863 .find(".value") 3864 .hide(); 3865 } 3866 }); 3867 } 3868 } else { 3869 if (!$(this).hasClass("added")) { 3870 $(".compare_item[data-item=" + item + "]").addClass("added"); 3871 $(".compare_item[data-item=" + item + "]") 3872 .find(".value") 3873 .hide(); 3874 $(".compare_item[data-item=" + item + "]") 3875 .find(".value.added") 3876 .css("display", "block"); 3877 3878 /*sync other button*/ 3879 $(".like_icons").each(function () { 3880 if ($(this).find(".compare_item_button").length) { 3881 $(this) 3882 .find(".compare_item_button") 3883 .find('.compare_item[data-item="' + item + '"]') 3884 .addClass("added"); 3885 $(this) 3886 .find(".compare_item_button") 3887 .find('.compare_item[data-item="' + item + '"]') 3888 .find(".value.added") 3889 .show(); 3890 $(this) 3891 .find(".compare_item_button") 3892 .find('.compare_item[data-item="' + item + '"]') 3893 .find(".value") 3894 .hide(); 3895 } 3896 }); 3897 } else { 3898 $(".compare_item[data-item=" + item + "]").removeClass("added"); 3899 $(".compare_item[data-item=" + item + "]") 3900 .find(".value") 3901 .show(); 3902 $(".compare_item[data-item=" + item + "]") 3903 .find(".value.added") 3904 .hide(); 3905 3906 /*sync other button*/ 3907 $(".like_icons").each(function () { 3908 if ($(this).find(".compare_item_button").length) { 3909 $(this) 3910 .find(".compare_item_button") 3911 .find('.compare_item[data-item="' + item + '"]') 3912 .removeClass("added"); 3913 $(this) 3914 .find(".compare_item_button") 3915 .find('.compare_item[data-item="' + item + '"]') 3916 .find(".value") 3917 .show(); 3918 $(this) 3919 .find(".compare_item_button") 3920 .find('.compare_item[data-item="' + item + '"]') 3921 .find(".value.added") 3922 .hide(); 3923 } 3924 }); 3925 } 3926 } 3927 3928 $.get( 3929 arOptimusOptions["SITE_DIR"] + "ajax/item.php?item=" + item + "&compare_item=Y&iblock_id=" + iblockID, 3930 $.proxy(function (data) { 3931 getActualBasket(iblockID, "Comapre"); 3932 jsAjaxUtil.InsertDataToNode( 3933 arOptimusOptions["SITE_DIR"] + "ajax/show_compare_preview_top.php", 3934 "compare_line", 3935 false 3936 ); 3937 if ($("#compare_fly").length) { 3938 jsAjaxUtil.InsertDataToNode( 3939 arOptimusOptions["SITE_DIR"] + "ajax/show_compare_preview_fly.php", 3940 "compare_fly", 3941 false 3942 ); 3943 } 3944 }) 3945 ); 3946 }); 3947 3948 const handlePinchZoomiOS = function(e) { 3949 e.preventDefault(); 3950 } 3951 3952 const $viewport = document.querySelector('meta[name=viewport]'); 3953 var metaViewport; 3954 3955 const handlePinchZoom = function(add) { 3956 const $html = document.querySelector('html'); 3957 3958 if (!!~$html.className.indexOf('bx-core')) { 3959 if (!metaViewport) { 3960 metaViewport = Object.fromEntries($viewport.getAttribute('content').split(',').map(function(el) { 3961 return el.trim().split('='); 3962 })); 3963 } 3964 3965 const handleMetaViewport = function(add) { 3966 let viewportData = Object.assign({}, metaViewport); 3967 3968 if (add) { 3969 viewportData['maximum-scale'] = 1; 3970 viewportData['user-scalable'] = 'no'; 3971 } 3972 3973 viewportData = Object.keys(viewportData).map(function(el) { 3974 return el + '=' + viewportData[el]; 3975 }).join(', '); 3976 3977 $viewport.setAttribute('content', viewportData); 3978 } 3979 3980 if (add) { 3981 if (!!~$html.className.indexOf('bx-ios')) { 3982 document.addEventListener('gesturestart', handlePinchZoomiOS); 3983 } else { 3984 handleMetaViewport(true); 3985 } 3986 } else { 3987 if (!!~$html.className.indexOf('bx-ios')) { 3988 document.removeEventListener('gesturestart', handlePinchZoomiOS); 3989 } else { 3990 handleMetaViewport(); 3991 } 3992 } 3993 } 3994 } 3995 3996 initFancybox(); 3997 3998 $(".tabs>li").on("click", function () { 3999 if (!$(this).hasClass("active")) { 4000 var sliderIndex = $(this).index(), 4001 curLiNav = $(this) 4002 .closest(".top_blocks") 4003 .find(".slider_navigation") 4004 .find(">li").eq(sliderIndex), 4005 curLi = $(this) 4006 .closest(".top_blocks") 4007 .siblings(".tabs_content") 4008 .find(">li").eq(sliderIndex); 4009 $(this).addClass("active").addClass("cur").siblings().removeClass("active").removeClass("cur"); 4010 curLi.addClass("cur").siblings().removeClass("cur"); 4011 curLiNav.addClass("cur").siblings().removeClass("cur"); 4012 4013 // //equal height 4014 // curLi 4015 // .find(".catalog_block .catalog_item_wrapp .catalog_item .item_info:visible .item-title") 4016 // .sliceHeight({ item: ".catalog_item:visible", resize: false, mobile: true }); 4017 // curLi 4018 // .find(".catalog_block .catalog_item_wrapp .catalog_item .item_info:visible") 4019 // .sliceHeight({ classNull: ".footer_button", item: ".catalog_item:visible", resize: false, mobile: true }); 4020 // curLi 4021 // .find(".catalog_block .catalog_item_wrapp .catalog_item:visible") 4022 // .sliceHeight({ classNull: ".footer_button", item: ".catalog_item:visible", resize: false, mobile: true }); 4023 } 4024 }); 4025 4026 /*search click*/ 4027 $(".search_block .icon").on("click", function () { 4028 var th = $(this); 4029 if ($(this).hasClass("open")) { 4030 $(this).closest(".center_block").find(".search_middle_block").removeClass("active"); 4031 $(this).removeClass("open"); 4032 $(this).closest(".center_block").find(".search_middle_block").find(".noborder").hide(); 4033 } else { 4034 setTimeout(function () { 4035 th.closest(".center_block").find(".search_middle_block").find(".noborder").show(); 4036 }, 100); 4037 $(this).closest(".center_block").find(".search_middle_block").addClass("active"); 4038 $(this).addClass("open"); 4039 } 4040 });
4041 $(document).on("mouseenter", ".display_list .item_wrap", function () { 4042 $(this).prev().addClass("prev"); 4043 }); 4044 $(document).on("mouseleave", ".display_list .item_wrap", function () { 4045 $(this).prev().removeClass("prev"); 4046 }); 4047 $(document).on("mouseenter", ".catalog_block .item_wrap", function () { 4048 $(this).addClass("shadow_delay"); 4049 }); 4050 $(document).on("mouseleave", ".catalog_block .item_wrap", function () { 4051 $(this).removeClass("shadow_delay"); 4052 }); 4053 $(document).on("click", ".no_goods .button", function () { 4054 $(".bx_filter .smartfilter .bx_filter_search_reset").trigger("click"); 4055 }); 4056 4057 $(document).on("click", ".ajax_load_btn", function () { 4058 var url = $(this).closest(".container").find(".module-pagination .flex-direction-nav .flex-next").attr("href"), 4059 th = $(this).find(".more_text_ajax"); 4060 4061 var objUrl = parseUrlQuery(), 4062 add_url = "", 4063 bTabsBlock = false, 4064 obGetData = { ajax_get: "Y", AJAX_REQUEST: "Y" }; 4065 4066 th.addClass("loading"); 4067 4068 /*hit on front*/ 4069 if (th.closest(".tab_slider_wrapp.specials").length) { 4070 var curLi = $(this).closest(".tab"), 4071 url = th.closest(".tabs_content").data("url"); 4072 4073 bTabsBlock = true; 4074 obGetData.AJAX_POST = "Y"; 4075 obGetData.FILTER_HIT_PROP = curLi.data("code"); 4076 obGetData.AJAX_PARAMS = $(this).closest(".tab_slider_wrapp").find(".request-data").data("value"); 4077 obGetData.GLOBAL_FILTER = curLi.data("filter"); 4078 4079 add_url = "?PAGEN_1=" + curLi.find(".nav-inner-wrapper").data("page"); 4080 } 4081 /**/ 4082 4083 if ("clear_cache" in objUrl) { 4084 if (objUrl.clear_cache == "Y") { 4085 add_url += (add_url.length ? "&" : "?") + "clear_cache=Y"; 4086 } 4087 } 4088 4089 $.ajax({ 4090 url: url + add_url, 4091 // data: {"ajax_get": "Y"}, 4092 data: obGetData, 4093 type: bTabsBlock ? "POST" : "GET", 4094 success: function (html) { 4095 var new_html = $.parseHTML(html); 4096 th.removeClass("loading"); 4097 4098 /*hit on front*/ 4099 if (th.closest(".tab_slider_wrapp.specials").length) { 4100 curLi.find(".catalog_block").append(html); 4101 curLi.find(".catalog_block .wrap_nav").remove(); 4102 4103 // curLi 4104 // .find(".catalog_block .catalog_item_wrapp .catalog_item .item_info:visible .item-title") 4105 // .sliceHeight({ item: ".catalog_item:visible", mobile: true }); 4106 // curLi 4107 // .find(".catalog_block .catalog_item_wrapp .catalog_item .item_info:visible") 4108 // .sliceHeight({ item: ".catalog_item:visible", mobile: true }); 4109 // curLi 4110 // .find(".catalog_block .catalog_item_wrapp .catalog_item:visible") 4111 // .sliceHeight({ classNull: ".footer_button", item: ".catalog_item:visible", mobile: true }); 4112 4113 curLi.find(".bottom_nav").html($(html).find(".bottom_nav").html()); 4114 } else { 4115 if ($(".display_list").length) { 4116 $(".display_list").append(html); 4117 } else if ($(".block_list").length) { 4118 $(".block_list").append(html); 4119 touchItemBlock(".catalog_item a"); 4120 } else if ($(".module_products_list").length) { 4121 $(".module_products_list > tbody").append(html); 4122 } 4123 $(".bottom_nav").html($(html).find(".bottom_nav").html()); 4124 } 4125 setStatusButton(); 4126 initCountdown(); 4127 showTotalSummItem(); 4128 BX.onCustomEvent("onAjaxSuccess"); 4129 }, 4130 }); 4131 }); 4132 4133 $(document).on("click", ".bx_compare .tabs-head li", function () { 4134 var url = $(this).find(".sortbutton").data("href"); 4135 BX.showWait(BX("bx_catalog_compare_block")); 4136 $.ajax({ 4137 url: url, 4138 data: { ajax_action: "Y" }, 4139 success: function (html) { 4140 history.pushState(null, null, url); 4141 $("#bx_catalog_compare_block").html(html); 4142 BX.closeWait(); 4143 }, 4144 }); 4145 }); 4146 var hoveredTrs; 4147 $(document).on( 4148 { 4149 mouseover: function (e) { 4150 var _ = $(this); 4151 var tbodyIndex = _.closest("tbody").index() + 1; //+1 for nth-child 4152 var trIndex = _.index() + 1; // +1 for nth-child 4153 hoveredTrs = $(e.delegateTarget) 4154 .find(".data_table_props") 4155 .children(":nth-child(" + tbodyIndex + ")") 4156 .children(":nth-child(" + trIndex + ")") 4157 .addClass("hovered"); 4158 }, 4159 mouseleave: function (e) { 4160 if (hoveredTrs) hoveredTrs.removeClass("hovered"); 4161 }, 4162 }, 4163 ".bx_compare .data_table_props tbody>tr" 4164 ); 4165 $(document).on("click", ".fancy_offer", function (e) { 4166 e.preventDefault(); 4167 var arPict = []; 4168 $(".sliders .slides_block li").each(function () { 4169 var obImg = {}; 4170 obImg = { 4171 title: $(this).find("img").attr("alt"), 4172 href: $(this).data("big"), 4173 }; 4174 if ($(this).hasClass("current")) { 4175 arPict.unshift(obImg); 4176 } else { 4177 arPict.push(obImg); 4178 } 4179 }); 4180 $.fancybox(arPict, { 4181 openEffect: "fade", 4182 closeEffect: "fade", 4183 nextEffect: "fade", 4184 prevEffect: "fade", 4185 type: "image", 4186 tpl: { 4187 closeBtn: 4188 '<a title="' + BX.message("FANCY_CLOSE") + '" class="fancybox-item fancybox-close" href="javascript:;"></a>', 4189 next: 4190 '<a title="' + 4191 BX.message("FANCY_NEXT") + 4192 '" class="fancybox-nav fancybox-next" href="javascript:;"><span></span></a>', 4193 prev: 4194 '<a title="' + 4195 BX.message("FANCY_PREV") + 4196 '" class="fancybox-nav fancybox-prev" href="javascript:;"><span></span></a>', 4197 }, 4198 beforeLoad: function() {
4199 if (window.visualViewport.scale > 1) { 4200 return false; 4201 } 4202 }, 4203 beforeShow: function() { 4204 handlePinchZoom(true); 4205 }, 4206 beforeClose: function() { 4207 handlePinchZoom(); 4208 } 4209 }); 4210 }); 4211 4212 /*tabs*/ 4213 $(document).on("click", ".tabs_section .tabs-head li", function(e, s) { 4214 if (!$(this).is(".current")) { 4215 $(".tabs_section .tabs-head li").removeClass("current"); 4216 $(this).addClass("current"); 4217 $(".tabs_section ul.tabs_content li").removeClass("current"); 4218 if ($(this).attr("id") == "product_reviews_tab") { 4219 $(".shadow.common").hide(); 4220 if (s === "slide") { 4221 $("#reviews_content").slideDown(200, function () {}); 4222 $(".tabs_section ul.tabs_content > li") 4223 .not(":eq(" + $(this).index() + ")") 4224 .find("> div + div") 4225 .slideUp(200, function () {}); 4226 var container = $(".tabs_section ul.tabs_content > li:eq(" + $(this).index() + ")"); 4227 container.find("> div + div").slideDown(200, function () { 4228 container.addClass("current"); 4229 }); 4230 } else { 4231 $(".tabs_section ul.tabs_content > li:eq(" + $(this).index() + ")").addClass("current"); 4232 $(".tabs_section ul.tabs_content > li") 4233 .not(":eq(" + $(this).index() + ")") 4234 .find("> div + div") 4235 .hide(); 4236 $("#for_product_reviews_tab").show(); 4237 $("#reviews_content").show(); 4238 } 4239 } else { 4240 $(".shadow.common").show(); 4241 if (s === "slide") { 4242 $(".tabs_section ul.tabs_content > li") 4243 .not(":eq(" + $(this).index() + ")") 4244 .find("> div + div") 4245 .slideUp(200, function () {}); 4246 var container = $(".tabs_section ul.tabs_content > li:eq(" + $(this).index() + ")"); 4247 container.find("> div + div").slideDown(200, function () { 4248 container.addClass("current"); 4249 }); 4250 } else { 4251 $("#reviews_content").hide(); 4252 $(".tabs_section ul.tabs_content > li > div + div").hide(); 4253 var container = $(".tabs_section ul.tabs_content > li:eq(" + $(this).index() + ")"); 4254 container.addClass("current"); 4255 container.find("> div + div").show(); 4256 } 4257 } 4258 } else if (s === "slide") { 4259 var container = $(".tabs_section ul.tabs_content > li:eq(" + $(this).index() + ")"); 4260 container.find("> div + div").slideUp(200, function () { 4261 $(".tabs_section .tabs-head li").removeClass("current"); 4262 $(".tabs_section ul.tabs_content li").removeClass("current"); 4263 }); 4264 } 4265 }); 4266 $(document).on("click", ".tabs_section .tabs-body li .title-tab-heading", function () { 4267 const tabIndex = $(this).closest("li").index(".tabs_section .tabs-body li[role='tabpanel']"); 4268 $(".tabs_section .tabs-head li").eq(tabIndex).trigger("click", "slide"); 4269 }); 4270 /*open first section slide*/ 4271 setTimeout(function () { 4272 $(".jobs_wrapp .item:first .name tr").trigger("click"); 4273 }, 300); 4274 4275 $(document).on("click", ".buy_block .slide_offer", function () { 4276 scroll_block($(".tabs_section")); 4277 }); 4278 $(".share_wrapp .text").on("click", function () { 4279 $(this).parent().find(".shares").fadeToggle(); 4280 }); 4281 $(document).on("mousedown", "html, body", function (e) { 4282 e.stopPropagation(); 4283 $(".shares").fadeOut(); 4284 $(".search_middle_block").removeClass("active_wide"); 4285 }); 4286 // $(".share_wrapp") 4287 // .find("*") 4288 // .on("mousedown", function (e) { 4289 // e.stopPropagation(); 4290 // }); 4291 4292 $(document).on("mousedown", ".share_wrapp *", function (e) { 4293 e.stopPropagation(); 4294 }); 4295 4296 $(document).on("click", ".reviews-collapse-link", function () { 4297 $(".reviews-reply-form").slideToggle(); 4298 }); 4299 4300 initCountdown(); 4301 4302 /*adaptive menu start*/ 4303 $(".menu.adaptive").on("click", function () { 4304 $(this).toggleClass("opened"); 4305 if ($(this).hasClass("opened")) { 4306 $(".mobile_menu").toggleClass("opened").slideDown(); 4307 } else { 4308 $(".mobile_menu").toggleClass("opened").slideUp(); 4309 } 4310 }); 4311 /*$('.mobile_menu .has-child >a').on('click', function(e){ 4312 var parentLi=$(this).parent(); 4313 e.preventDefault(); 4314 parentLi.toggleClass('opened'); 4315 parentLi.find('.dropdown').slideToggle(); 4316 })*/ 4317 4318 $(".mobile_menu .has-child >div.toggle_mobile_menu").on("click", function (e) { 4319 var parentLi = $(this).parent(); 4320 e.preventDefault(); 4321 parentLi.toggleClass("opened"); 4322 parentLi.find(".dropdown").slideToggle(); 4323 }); 4324 4325 $(document).on("keyup", ".mobile_menu .search-input-div input", function (e) { 4326 var inputValue = $(this).val(); 4327 $(".center_block .stitle_form input").val(inputValue); 4328 if (e.keyCode == 13) { 4329 $(".center_block .stitle_form form").submit(); 4330 } 4331 }); 4332 4333 $(document).on("keyup", ".center_block .stitle_form input", function (e) { 4334 var inputValue = $(this).val(); 4335 $(".mobile_menu .search-input-div input").val(inputValue); 4336 if (e.keyCode == 13) { 4337 $(".center_block .stitle_form form").submit(); 4338 } 4339 }); 4340 4341 $(document).on("click", ".mobile_menu .search-button-div button", function (e) { 4342 e.preventDefault(); 4343 var inputValue = $(this).parents().find("input").val(); 4344 $(".center_block .stitle_form input").val(inputValue); 4345 $(".center_block .stitle_form form").submit(); 4346 }); 4347 /*adaptive menu end*/ 4348 4349 $(".btn.btn-add").on("click", function () { 4350 $.ajax({ 4351 type: "GET", 4352 url: arOptimusOptions["SITE_DIR"] + "ajax/clearBasket.php", 4353 success: function (data) {}, 4354 }); 4355 }); 4356 4357 //set cookie for basket link click 4358 $(document).on( 4359 "click", 4360 ".bx_ordercart_order_table_container .control > a, .basket-item-actions-remove, a[data-entity=basket-item-remove-delayed]", 4361 function (e) { 4362 $.removeCookie("click_basket", { path: "/" }); 4363 $.cookie("click_basket", "Y", { path: "/" }); 4364 } 4365 ); 4366 4367 /*detail order show payments*/ 4368 $(".sale-order-detail-payment-options-methods-info-change-link").on("click", function () { 4369 $(this).closest(".sale-order-detail-payment-options-methods-info").addClass("opened").siblings().addClass("opened"); 4370 }); 4371 4372 /*expand/hide filter values*/ 4373 $(document).on("click", ".expand_block", function () { 4374 togglePropBlock($(this)); 4375 }); 4376 4377 /*touch event*/ 4378 document.addEventListener( 4379 "touchend", 4380 function (event) { 4381 if (!$(event.target).closest(".menu_item_l1").length) { 4382 $(".menu .menu_item_l1 .child").css({ display: "none" }); 4383 $(".menu_item_l1").removeClass("hover"); 4384 } 4385 if (!$(event.target).closest(".basket_block").length) { 4386 $(".basket_block .link").removeClass("hover");
4387 $(".basket_block .basket_popup_wrapp").slideUp(); 4388 } 4389 if (!$(event.target).closest(".catalog_item").length) { 4390 var tabsContentUnhoverHover = $(".tab:visible").attr("data-unhover") * 1; 4391 if (tabsContentUnhoverHover) $(".tab:visible").stop().animate({ height: tabsContentUnhoverHover }, 100); 4392 $(".tab:visible").find(".catalog_item").removeClass("hover"); 4393 $(".tab:visible").find(".catalog_item .buttons_block").stop().fadeOut(233); 4394 if ($(".catalog_block").length) { 4395 $(".catalog_block").find(".catalog_item").removeClass("hover"); 4396 //$('.catalog_block').find('.catalog_item').blur(); 4397 } 4398 } 4399 //togglePropBlock($(event.target)); 4400 }, 4401 false 4402 ); 4403 4404 //touchItemBlock('.catalog_item a'); 4405 4406 $(document).on("keyup", ".coupon .input_coupon input", function () { 4407 if ($(this).val().length) { 4408 $(this).removeClass("error"); 4409 $(this).closest(".input_coupon").find(".error").remove(); 4410 } else { 4411 $(this).addClass("error"); 4412 $("<label class='error'>" + BX.message("INPUT_COUPON") + "</label>").insertBefore($(this)); 4413 } 4414 }); 4415 showPhoneMask("input[autocomplete=tel]"); 4416 BX.addCustomEvent(window, "onAjaxSuccess", function (e) { 4417 if (e != "OK") { 4418 initSelects(document); 4419 // InitLabelAnimation('#bx-soa-order-form'); 4420 InitOrderCustom(); 4421 showPhoneMask("input[autocomplete=tel]"); 4422 if ($("#content > .catalog_detail").length) { 4423 $(".bx_filter").remove(); 4424 } 4425 4426 InitFlexSlider(); 4427 4428 if (arOptimusOptions["PAGES"]["CATALOG_PAGE"]) { 4429 setStatusButton(); 4430 initCountdown(); 4431 } 4432 4433 if (arOptimusOptions["PAGES"]["ORDER_PAGE"]) { 4434 orderActions(e); 4435 } 4436 } 4437 }); 4438 BX.addCustomEvent(window, "onFrameDataRequestFail", function (response) { 4439 console.log(response); 4440 }); 4441 4442 $.fn.iAppear = function (callback, options) { 4443 if (typeof $.fn.iAppear.useObserver === "undefined") { 4444 $.fn.iAppear.useObserver = 4445 typeof window["IntersectionObserver"] === "function"; 4446 4447 if (!$.fn.iAppear.useObserver && typeof $.fn.appear !== "function") { 4448 $.fn.iAppear.queue = []; 4449 BX.loadScript( 4450 arOptimusOptions.SITE_TEMPLATE_PATH + 4451 "/vendor/js/jquery.appear.js", 4452 function () { 4453 if (typeof $.fn.iAppear.queue === "object") { 4454 $.fn.iAppear.queue.forEach(function (queueItem) { 4455 $(queueItem.items).iAppear( 4456 queueItem.callback, 4457 queueItem.options 4458 ); 4459 }); 4460 } 4461 } 4462 ); 4463 4464 return; 4465 } 4466 } 4467 4468 if ($.fn.iAppear.useObserver) { 4469 var options = $.extend( 4470 { 4471 root: null, 4472 rootMargin: "150px 0px 150px 0px", 4473 threshold: 0.0, 4474 }, 4475 options 4476 ); 4477 4478 $(this).each(function (i, appearBlock) { 4479 var observer = new IntersectionObserver(function ( 4480 entries, 4481 observer 4482 ) { 4483 entries.forEach(function (element) { 4484 if ( 4485 element.intersectionRatio > 0 && 4486 !element.target.dataset.iAppeared 4487 ) { 4488 element.target.dataset.iAppeared = true; 4489 4490 if (typeof callback === "function") { 4491 callback.call(element.target); 4492 } 4493 } 4494 }); 4495 }, 4496 options); 4497 4498 observer.observe(appearBlock); 4499 }); 4500 } else { 4501 if (typeof $.fn.appear !== "function") { 4502 if ($(this).length) { 4503 $.fn.iAppear.queue.push({ 4504 items: this, 4505 callback: callback, 4506 options: options, 4507 }); 4508 } 4509 4510 return; 4511 } else { 4512 if ($(this).length) { 4513 $(this).each(function (i, appearBlock) { 4514 $(appearBlock).appear(function () { 4515 if (typeof callback === "function") { 4516 callback.call(appearBlock); 4517 } 4518 }, options); 4519 }); 4520 } 4521 } 4522 } 4523 }; 4524 4525 if ($(".appear-block").length) { 4526 $(".appear-block").iAppear( 4527 function () { 4528 const eventdata = { target: this }; 4529 BX.onCustomEvent("onAppearVideoBlockShow", [eventdata]); 4530 var $this = $(this); 4531 $this.removeClass("appear-block"); 4532 $this.find(".appear-block").removeClass("appear-block"); 4533 }, 4534 { 4535 rootMargin: "150px 0px 150px 0px", 4536 accX: 0, 4537 accY: 150, 4538 } 4539 ) 4540 } 4541}); 4542 4543if (!funcDefined("initFancybox")) { 4544 function initFancybox() { 4545 if (typeof $.fn.fancybox !== "function") { 4546 return; 4547 } 4548 4549 $(".fancy").fancybox({ 4550 openEffect: "fade", 4551 closeEffect: "fade", 4552 nextEffect: "fade", 4553 prevEffect: "fade", 4554 tpl: { 4555 closeBtn: 4556 '<a title="' + BX.message("FANCY_CLOSE") + '" class="fancybox-item fancybox-close" href="javascript:;"></a>', 4557 next: 4558 '<a title="' + 4559 BX.message("FANCY_NEXT") + 4560 '" class="fancybox-nav fancybox-next" href="javascript:;"><span></span></a>', 4561 prev: 4562 '<a title="' + 4563 BX.message("FANCY_PREV") + 4564 '" class="fancybox-nav fancybox-prev" href="javascript:;"><span></span></a>', 4565 }, 4566 }); 4567 } 4568} 4569 4570if (!funcDefined("togglePropBlock")) { 4571 togglePropBlock = function (className) { 4572 var all_props_block = className.closest(".bx_filter_parameters_box_container").find(".hidden_values"); 4573 if (all_props_block.length && (className.hasClass("inner_text") || className.hasClass("expand_block"))) { 4574 if (all_props_block.is(":visible")) { 4575 className.text(BX.message("FILTER_EXPAND_VALUES")); 4576 all_props_block.hide(); 4577 } else { 4578 className.text(BX.message("FILTER_HIDE_VALUES")); 4579 all_props_block.show(); 4580 } 4581 } 4582 }; 4583} 4584 4585if (!funcDefined("showPhoneMask")) { 4586 showPhoneMask = function (className) { 4587 $(className).not('input[id^="b24-"]').inputmask("mask", { mask: arOptimusOptions["THEME"]["PHONE_MASK"], showMaskOnHover: false }); 4588 let emptys = $('input[autocomplete="tel"][id^="b24-"]').filter(function() { 4589 return $.trim($(this).val()) === ''; 4590 }); 4591 emptys.val('+7 (').addClass('b24-form-control-not-empty'); 4592 }; 4593} 4594 4595if (!funcDefined("parseUrlQuery")) { 4596 parseUrlQuery = function () { 4597 var data = {}; 4598 if (location.search) { 4599 var pair = location.search.substr(1).split("&"); 4600 for (var i = 0; i < pair.length; i++) { 4601 var param = pair[i].split("="); 4602 data[param[0]] = param[1]; 4603 } 4604 } 4605 return data; 4606 }; 4607} 4608 4609if (!funcDefined("getActualBasket")) { 4610 getActualBasket = function (iblockID, type) { 4611 var data = ""; 4612 if (typeof iblockID !== "undefined") { 4613 data = { iblockID: iblockID }; 4614 } 4615 $.ajax({ 4616 type: "GET", 4617 url: arOptimusOptions["SITE_DIR"] + "ajax/actualBasket.php", 4618 data: data, 4619 success: function (data) { 4620 if (!$(".js_ajax").length) $("body").append('<div class="js_ajax"></div>'); 4621 $(".js_ajax").html(data); 4622 4623 const eventdata = { action: "loadActualBasket" }; 4624 BX.onCustomEvent("onCompleteAction", [eventdata]); 4625 }, 4626 }); 4627 }; 4628} 4629 4630function touchMenu(selector) { 4631 if ($(window).outerWidth() > 600) { 4632 $(selector).each(function () { 4633 var th = $(this); 4634 th.on("touchend", function (e) { 4635 if (th.find(".child").length && !th.hasClass("hover")) { 4636 e.preventDefault(); 4637 e.stopPropagation(); 4638 th.siblings().removeClass("hover"); 4639 th.addClass("hover"); 4640 $(".menu .child").css({ display: "none" }); 4641 th.find(".child").css({ display: "block" }); 4642 } 4643 }); 4644 }); 4645 } else { 4646 $(selector).off(); 4647 } 4648} 4649function touchItemBlock(selector) { 4650 $(selector).each(function () { 4651 var th = $(this), 4652 item = th.closest(".catalog_item"); 4653 if (!th.closest(".best_block").length) { 4654 th.on("touchend", function (e) { 4655 if (!item.hasClass("hover")) { 4656 e.preventDefault(); 4657 // e.stopPropagation(); 4658 item.siblings().removeClass("hover"); 4659 item.siblings().blur(); 4660 item.closest(".catalog_block").find(".catalog_item").removeClass("hover"); 4661 item.addClass("hover"); 4662 item.addClass("touch"); 4663 4664 var tabsContentHover = th.closest(".tab").attr("data-hover") * 1, 4665 tabsContentUnhoverHover = th.closest(".tab").attr("data-unhover") * 1; 4666 4667 th.closest(".tab").stop().animate({ height: tabsContentUnhoverHover }, 100); 4668 th.closest(".catalog_item").siblings().find(".buttons_block").stop().fadeOut(233); 4669 4670 th.closest(".tab").fadeTo(100, 1); 4671 th.closest(".tab").stop().css({ height: tabsContentHover }); 4672 th.closest(".catalog_item").find(".buttons_block").fadeIn(450, "easeOutCirc"); 4673 } 4674 }); 4675 } 4676 }); 4677} 4678function touchBasket(selector) { 4679 if (arOptimusOptions["THEME"]["SHOW_BASKET_ONADDTOCART"] !== "N") { 4680 if ($(window).outerWidth() > 600) { 4681 $(document) 4682 .find(selector) 4683 .on("touchend", function (e) { 4684 if ($(this).parent().find(".basket_popup_wrapp").length && !$(this).hasClass("hover")) { 4685 e.preventDefault(); 4686 e.stopPropagation(); 4687 $(this).addClass("hover"); 4688 $(this).parent().find(".basket_popup_wrapp").slideDown(); 4689 } 4690 }); 4691 } else { 4692 $(selector).off(); 4693 } 4694 } 4695} 4696 4697function showTotalSummItem(popup) { 4698 //show total summ 4699 if (arOptimusOptions["THEME"]["SHOW_TOTAL_SUMM"] == "ALWAYS") { 4700 var parent = "body "; 4701 if (typeof popup === "string" && popup == "Y") parent = ".popup "; 4702 $(parent + ".counter_wrapp .counter_block input.text").each(function () { 4703 var _th = $(this); 4704 4705 if (_th.data("product")) { 4706 var obProduct = _th.data("product"); 4707 if (typeof window[obProduct] == "object") window[obProduct].setPriceAction("Y"); 4708 else setPriceItem(_th.closest(".main_item_wrapper"), _th.val()); 4709 } else setPriceItem(_th.closest(".main_item_wrapper"), _th.val()); 4710 }); 4711 } 4712} 4713 4714function initFull() { 4715 initSelects(document); 4716 initHoverBlock(document); 4717 // touchItemBlock('.catalog_item a'); 4718 // InitLabelAnimation('#bx-soa-order-form'); 4719 InitOrderCustom(); 4720 if (!$("html.print").length) checkStickyFooter(); 4721 else window.print(); 4722 4723 showTotalSummItem(); 4724 basketActions(); 4725 orderActions(); 4726} 4727if (!funcDefined("orderActions")) { 4728 orderActions = function (e) { 4729 if (arOptimusOptions["PAGES"]["ORDER_PAGE"]) { 4730 //phone 4731 if ($("#bx-soa-order input[autocomplete=tel]").length) { 4732 // get property phone 4733 for (var i = 0; i < BX.Sale.OrderAjaxComponent.result.ORDER_PROP.properties.length; ++i) { 4734 if (BX.Sale.OrderAjaxComponent.result.ORDER_PROP.properties[i].IS_PHONE == "Y") { 4735 var arPropertyPhone = BX.Sale.OrderAjaxComponent.result.ORDER_PROP.properties[i]; 4736 } 4737 } 4738 4739 // validate input type=tel 4740 if ( 4741 typeof BX.Sale.OrderAjaxComponent !== "undefined" && 4742 typeof BX.Sale.OrderAjaxComponent === "object" && 4743 typeof arPropertyPhone == "object" && 4744 arPropertyPhone 4745 ) { 4746 BX.Sale.OrderAjaxComponent.validatePhone = function (input, arProperty, fieldName) { 4747 if (!input || !arProperty) return []; 4748 4749 var value = input.value, 4750 errors = [], 4751 name = BX.util.htmlspecialchars(arProperty.NAME), 4752 field = BX.message("SOA_FIELD") + ' "' + name + '"', 4753 re; 4754 4755 if (arProperty.REQUIRED == "Y" && value.length == 0) { 4756 errors.push(field + " " + BX.message("SOA_REQUIRED")); 4757 } 4758 4759 if (arProperty.IS_PHONE == "Y" && value.length > 0) { 4760 function regexpPhone(value, element, regexp) { 4761 var re = new RegExp(regexp); 4762 return re.test(value); 4763 } 4764
4765 var validPhone = regexpPhone($(input).val(), $(input), arOptimusOptions["THEME"]["VALIDATE_PHONE_MASK"]); 4766 4767 if (!validPhone) { 4768 errors.push(field + " " + BX.message("JS_FORMAT_ORDER")); 4769 } 4770 } 4771 4772 return errors; 4773 }; 4774 4775 BX.Sale.OrderAjaxComponent.getValidationDataPhone = function (arProperty, propContainer) { 4776 var data = {}, 4777 inputs; 4778 switch (arProperty.TYPE) { 4779 case "STRING": 4780 data.action = "blur"; 4781 data.func = BX.delegate(function (input, fieldName) { 4782 return this.validatePhone(input, arProperty, fieldName); 4783 }, this); 4784 4785 inputs = propContainer.querySelectorAll("input[type=tel]"); 4786 if ($(inputs).length) { 4787 data.inputs = inputs; 4788 break; 4789 } 4790 } 4791 4792 return data; 4793 }; 4794 4795 BX.Sale.OrderAjaxComponent.bindValidationPhone = function (id, propContainer) { 4796 if (!this.validation.properties || !this.validation.properties[id]) return; 4797 4798 var arProperty = this.validation.properties[id], 4799 data = this.getValidationDataPhone(arProperty, propContainer), 4800 i, 4801 k; 4802 4803 if (data && data.inputs && data.action) { 4804 for (i = 0; i < $(data.inputs).length; i++) { 4805 if (BX.type.isElementNode(data.inputs[i])) { 4806 BX.bind( 4807 data.inputs[i], 4808 data.action, 4809 BX.delegate(function () { 4810 this.isValidProperty(data); 4811 }, this) 4812 ); 4813 } else { 4814 for (k = 0; k < $(data.inputs[i]).length; k++) 4815 BX.bind( 4816 data.inputs[i][k], 4817 data.action, 4818 BX.delegate(function () { 4819 this.isValidProperty(data); 4820 }, this) 4821 ); 4822 } 4823 } 4824 } 4825 }; 4826 4827 BX.Sale.OrderAjaxComponent.isValidPropertiesBlock = function (excludeLocation) { 4828 if (!this.options.propertyValidation) return []; 4829 4830 var props = this.orderBlockNode.querySelectorAll(".bx-soa-customer-field[data-property-id-row]"), 4831 propsErrors = [], 4832 id, 4833 propContainer, 4834 arProperty, 4835 data, 4836 i; 4837 4838 for (i = 0; i < props.length; i++) { 4839 id = props[i].getAttribute("data-property-id-row"); 4840 4841 if (!!excludeLocation && this.locations[id]) continue; 4842 4843 propContainer = props[i].querySelector(".soa-property-container"); 4844 if (propContainer) { 4845 arProperty = this.validation.properties[id]; 4846 data = this.getValidationData(arProperty, propContainer); 4847 dataPhone = this.getValidationDataPhone(arProperty, propContainer); 4848 data = $.extend({}, data, dataPhone); 4849 4850 propsErrors = propsErrors.concat(this.isValidProperty(data, true)); 4851 } 4852 } 4853 4854 return propsErrors; 4855 }; 4856 4857 // create input type=tel 4858 var input = $("input[autocomplete=tel]"), 4859 inputHTML = input[0].outerHTML, 4860 value = input.val(), 4861 newInput = input[0].outerHTML.replace('type="text"', 'type="tel" value="' + value + '"'); 4862 4863 if ($(input).length < 2) { 4864 input.hide(); 4865 $(newInput).insertAfter(input); 4866 } 4867 showPhoneMask("input[autocomplete=tel][type=tel]"); 4868 4869 // change value input type=text when change input type=tel 4870 $("input[autocomplete=tel][type=tel]").on("blur", function () { 4871 var $this = $(this); 4872 4873 var value = $this.val(); 4874 $this.parent().find("input[autocomplete=tel][type=text]").val(value); 4875 }); 4876 4877 BX.Sale.OrderAjaxComponent.bindValidationPhone(arPropertyPhone.ID, $("input[autocomplete=tel]").parent()[0]); 4878 } 4879 } 4880 4881 if ($(".bx-soa-cart-total").length) { 4882 if (!$(".change_basket").length) 4883 $(".bx-soa-cart-total").prepend( 4884 '<div class="change_basket">
4884' + 4885 BX.message("BASKET_CHANGE_TITLE") + 4886 '<a href="' + 4887 arOptimusOptions["SITE_DIR"] + 4888 'basket/" class="change_link">' + 4889 BX.message("BASKET_CHANGE_LINK") + 4890 "</a></div>" 4891 ); 4892 if (typeof BX.Sale.OrderAjaxComponent == "object") { 4893 if (arOptimusOptions["COUNTERS"]["USE_FULLORDER_GOALS"] !== "N") { 4894 if (typeof BX.Sale.OrderAjaxComponent.reachgoalbegin === "undefined") { 4895 BX.Sale.OrderAjaxComponent.reachgoalbegin = true; 4896 var eventdata = { goal: "goal_order_begin" }; 4897 // BX.onCustomEvent('onCounterGoals', [eventdata]) 4898 } 4899 } 4900 4901 // update oreder register form 4902 if ($(".bx-soa-section-content.reg").length && !$(".bx-soa-section-content.reg .redisigned").length) { 4903 var bRebindRegSubmit = false; 4904 4905 if (arOptimusOptions.THEME.LOGIN_EQUAL_EMAIL === "Y") { 4906 bRebindRegSubmit = true; 4907 4908 // update input NEW_LOGIN 4909 if ($('input[name="NEW_LOGIN"]').length) { 4910 $('input[name="NEW_LOGIN"]').closest(".bx-authform-formgroup-container").hide(); 4911 } 4912 } 4913 4914 if (bRebindRegSubmit) { 4915 // bind new handler for submit button 4916 var $regSubmit = $("#do_register~input[type=submit]"); 4917 if ($regSubmit.length) { 4918 BX.unbindAll($regSubmit[0]); 4919 $(document).on("click", "#do_register~input[type=submit]", function (e) { 4920 e.preventDefault(); 4921 e.stopImmediatePropagation(); 4922 4923 if (arOptimusOptions.THEME.LOGIN_EQUAL_EMAIL === "Y") { 4924 var email = BX.findChild(BX("bx-soa-auth"), { attribute: { name: "NEW_EMAIL" } }, true, false); 4925 var login = BX.findChild(BX("bx-soa-auth"), { attribute: { name: "NEW_LOGIN" } }, true, false); 4926 4927 if (login && email) { 4928 login.value = email.value; 4929 } 4930 } 4931 4932 BX("do_register").value = "Y"; 4933 BX.Sale.OrderAjaxComponent.sendRequest("showAuthForm"); 4934 }); 4935 } 4936 } 4937 4938 // update captcha 4939 var $captcha = $(".bx-soa-section-content.reg").find(".bx-captcha"); 4940 if ($captcha.length) { 4941 $captcha.addClass("captcha_image"); 4942 $captcha.append('<div class="captcha_reload"></div>'); 4943 $captcha 4944 .closest(".bx-authform-formgroup-container") 4945 .addClass("captcha-row") 4946 .find("input[name=captcha_word]") 4947 .closest(".bx-authform-input-container") 4948 .addClass("captcha_input") 4949 BX.onCustomEvent("onRenderCaptcha") 4950 } 4951 4952 if ($("#bx-soa-order-form .captcha-row").length && window.asproRecaptcha.ver === "3") { 4953 if (typeof BX.Sale.OrderAjaxComponent.oldSendRequest === "undefined" && typeof BX.Sale.OrderAjaxComponent.sendRequest !== "undefined") { 4954 BX.Sale.OrderAjaxComponent.oldSendRequest = BX.Sale.OrderAjaxComponent.sendRequest; 4955 BX.Sale.OrderAjaxComponent.sendRequest = function (action, actionData) { 4956 if ($("#bx-soa-order-form .captcha-row").length && typeof grecaptcha != "undefined") { 4957 if (window.renderRecaptchaById && window.asproRecaptcha && window.asproRecaptcha.key) { 4958 let form = BX("bx-soa-order-form"); 4959 grecaptcha 4960 .execute(window.asproRecaptcha.key, { action: "maxscore" }) 4961 .then(function (token) { 4962 const recaptchaResponse = form.querySelector(".g-recaptcha-response"); 4963 if (recaptchaResponse) { 4964 recaptchaResponse.value = token; 4965 } 4966 BX.Sale.OrderAjaxComponent.oldSendRequest(action, actionData); 4967 }); 4968 } 4969 } else { 4970 BX.Sale.OrderAjaxComponent.oldSendRequest(action, actionData); 4971 } 4972 }; 4973 } 4974 } 4975 4976 // update input NEW_NAME && NEW_LAST_NAME 4977 if ($("input[name=NEW_NAME]").length && $("input[name=NEW_LAST_NAME]").length) { 4978 if (!$("input[name=NEW_NAME]").closest(".bx-authform-formgroup-container.col
4978-md-6").length) { 4979 $("input[name=NEW_NAME],input[name=NEW_LAST_NAME]") 4980 .closest(".bx-authform-formgroup-container") 4981 .addClass("col-md-6"); 4982 var html = $("input[name=NEW_LAST_NAME]") 4983 .closest(".bx-authform-formgroup-container") 4984 .wrap('<div id="trem_"></div>') 4985 .parent() 4986 .html(); 4987 $("#trem_").remove(); 4988 $(html).insertAfter( 4989 $("input[name=NEW_NAME]").closest(".bx-authform-formgroup-container").wrap('<div class="row"></div>') 4990 ); 4991 } 4992 } 4993 4994 // update input NEW_EMAIL && PHONE_NUMBER 4995 if ($("input[name=NEW_EMAIL]").length && $("input[name=PHONE_NUMBER]").length) { 4996 if (!$("input[name=PHONE_NUMBER]").closest(".bx-authform-formgroup-container.col-md-6").length) { 4997 $("input[name=NEW_EMAIL],input[name=PHONE_NUMBER]") 4998 .closest(".bx-authform-formgroup-container") 4999 .addClass("col-md-6"); 5000 var html = $("input[name=PHONE_NUMBER]") 5001 .closest(".bx-authform-formgroup-container") 5002 .wrap('<div id="trem_"></div>') 5003 .parent() 5004 .html(); 5005 $("#trem_").remove(); 5006 $(html).insertAfter( 5007 $("input[name=NEW_EMAIL]").closest(".bx-authform-formgroup-container").wrap('<div class="row"></div>') 5008 ); 5009 } 5010 } 5011 5012 // update input NEW_PASSWORD && NEW_PASSWORD_CONFIRM 5013 if ($("input[name=NEW_PASSWORD]").length && $("input[name=NEW_PASSWORD_CONFIRM]").length) { 5014 if (!$("input[name=NEW_PASSWORD]").closest(".bx-authform-formgroup-container.col
5014-md-6").length) { 5015 $("input[name=NEW_PASSWORD],input[name=NEW_PASSWORD_CONFIRM]") 5016 .closest(".bx-authform-formgroup-container") 5017 .addClass("col-md-6"); 5018 var html = $("input[name=NEW_PASSWORD_CONFIRM]") 5019 .closest(".bx-authform-formgroup-container") 5020 .wrap('<div id="trem_"></div>') 5021 .parent() 5022 .html(); 5023 $("#trem_").remove(); 5024 $(html).insertAfter( 5025 $("input[name=NEW_PASSWORD]") 5026 .closest(".bx-authform-formgroup-container") 5027 .wrap('<div class="row"></div>') 5028 ); 5029 } 5030 } 5031 5032 // update input PHONE_NUMBER 5033 if ($("input[name=PHONE_NUMBER]").length) { 5034 var input = $("input[name=PHONE_NUMBER]"), 5035 inputHTML = input[0].outerHTML, 5036 value = input.val(), 5037 newInput = input[0].outerHTML.replace('type="text"', 'type="tel" value="' + value + '"'); 5038 5039 if ($(input).length < 2) { 5040 input.hide(); 5041 $(newInput).insertAfter(input); 5042 5043 showPhoneMask("input[name=PHONE_NUMBER][type=tel]"); 5044 5045 $("input[name=PHONE_NUMBER][type=tel]").on("blur", function () { 5046 var $this = $(this); 5047 var value = $this.val(); 5048 $this.parent().find("input[name=PHONE_NUMBER][type=text]").val(value); 5049 }); 5050 5051 var $label = $("input[name=PHONE_NUMBER][type=tel]") 5052 .closest(".bx-authform-formgroup-container") 5053 .find(".bx-authform-label-container"); 5054 $label.html( 5055 BX.message("ORDER_PHONE_LABEL") + 5056 ($label.find(".bx-authform-starrequired").length 5057 ? '<span class="bx-authform-starrequired"> *</span>' 5058 : "") 5059 ); 5060 } 5061 } 5062 5063 $(".bx-soa-section-content.reg").append('<div class="redisigned hidden></div>'); 5064 } 5065 5066 const asproLicenceShow = arOptimusOptions["THEME"]["SHOW_LICENCE"] === "Y", 5067 asproLicenceChecked = arOptimusOptions["THEME"]["LICENCE_CHECKED"] === "Y"; 5068 5069 const asproOfferShow = arOptimusOptions["THEME"]["SHOW_OFFER"] === "Y", 5070 asproOfferChecked = arOptimusOptions["THEME"]["OFFER_CHECKED"] === "Y"; 5071 5072 if ($(".bx-soa-cart-total-line-total").length && (asproLicenceShow || asproOfferShow)) { 5073 if (typeof e === "undefined") { 5074 BX.Sale.OrderAjaxComponent.state_licence = asproLicenceChecked ? "checked" : ""; 5075 BX.Sale.OrderAjaxComponent.state_offer = asproOfferChecked ? "checked" : ""; 5076 } 5077 5078 if ( 5079 (!$(".licence_block.filter").length && asproLicenceShow) || 5080 (!$(".offer_block.filter").length && asproOfferShow) 5081 ) { 5082 $('<div class="form"><div class="license_order_wrap"></div></div>').insertBefore($("#bx-soa-orderSave")); 5083 5084 if (!$(".licence_block.filter").length && asproLicenceShow) 5085 $( 5086 '<div class="licence_block filter label_block"><label data-for="licenses_order" class="hidden error">' + 5087 BX.message("JS_REQUIRED_LICENSES") + 5088 '</label><input type="checkbox" name="licenses_order" required ' + 5089 BX.Sale.OrderAjaxComponent.state_licence + 5090 ' value="Y"><label data-for="licenses_order" class="license">' + 5091 BX.message("LICENSES_TEXT") + 5092 "</label></div>" 5093 ).appendTo($(".license_order_wrap")); 5094 5095 if (!$(".offer_block.filter").length && asproOfferShow) 5096 $( 5097 '<div class="offer_block filter label_block"><label data-for="offer_order" class="hidden error">' + 5098 BX.message("JS_REQUIRED_OFFER") + 5099 '</label><input type="checkbox" name="offer_order" required ' + 5100 BX.Sale.OrderAjaxComponent.state_offer + 5101 ' value="Y"><label data-for="offer_order" class="offer_pub">' + 5102 BX.message("OFFER_TEXT") + 5103 "</label></div>" 5104 ).appendTo($(".license_order_wrap")); 5105 5106 if (asproLicenceShow) { 5107 $(document).on("click", ".bx-soa .licence_block label.license", function () { 5108 const id = $(this).data("for"); 5109 $(".bx-soa .licence_block label.error").addClass("hidden"); 5110 if (!$("input[name=" + id + "]").prop("checked")) { 5111 $("input[name=" + id + "]").prop("checked", "checked"); 5112 BX.Sale.OrderAjaxComponent.state_licence = "checked"; 5113 } else { 5114 $("input[name=" + id + "]").prop("checked", ""); 5115 BX.Sale.OrderAjaxComponent.state_licence = ""; 5116 } 5117 }); 5118 } 5119 5120 if (asproOfferShow) { 5121 $(document).on("click", ".bx-soa .offer_block label.offer_pub", function () { 5122 const id = $(this).data("for"); 5123 5124 $(".bx-soa .offer_block label.error").addClass("hidden"); 5125 5126 if (!$("input[name=" + id + "]").prop("checked")) { 5127 $("input[name=" + id + "]").prop("checked", "checked"); 5128 BX.Sale.OrderAjaxComponent.state_licence = "checked"; 5129 } else { 5130 $("input[name=" + id + "]").prop("checked", ""); 5131 BX.Sale.OrderAjaxComponent.state_licence = ""; 5132 } 5133 }); 5134 } 5135 5136 $(document).on("click", ".lic_condition a", function () { 5137 if (BX.hasClass(BX("bx-soa-order"), "orderform--v1")) { 5138 if (BX.Sale.OrderAjaxComponent.isValidForm()) { 5139 BX.Sale.OrderAjaxComponent.animateScrollTo($(".licence_block, .offer_block")[0], 800, 50); 5140 } 5141 } else { 5142 const iCountErrors = BX.Sale.OrderAjaxComponent.isValidPropertiesBlock().length; 5143 5144 if (!BX.Sale.OrderAjaxComponent.activeSectionId || !iCountErrors) { 5145 BX.Sale.OrderAjaxComponent.animateScrollTo($(".licence_block, .offer_block")[0], 800, 50); 5146 } 5147 } 5148 }); 5149 } 5150 $("#bx-soa-orderSave, .bx-soa-cart-total-button-container").addClass("lic_condition"); 5151 5152 if ( 5153 typeof BX.Sale.OrderAjaxComponent.oldClickOrderSaveAction === "undefined" && 5154 typeof BX.Sale.OrderAjaxComponent.clickOrderSaveAction !== "undefined" 5155 ) { 5156 BX.Sale.OrderAjaxComponent.oldClickOrderSaveAction = BX.Sale.OrderAjaxComponent.clickOrderSaveAction; 5157 BX.Sale.OrderAjaxComponent.clickOrderSaveAction = function (event) { 5158 if ( 5159 ($('input[name="licenses_order"]').prop("checked") || asproLicenceShow === false) && 5160 ($('input[name="offer_order"]').prop("checked") || asproOfferShow === false) 5161 ) { 5162 $(".bx-soa .licence_block label.error").addClass("hidden"); 5163 $(".bx-soa .offer_block label.error").addClass("hidden"); 5164 5165 if (BX.Sale.OrderAjaxComponent.isValidForm()) { 5166 if (typeof BX.Sale.OrderAjaxComponent.allowOrderSave == "function") 5167 BX.Sale.OrderAjaxComponent.allowOrderSave(); 5168 if (typeof BX.Sale.OrderAjaxComponent.doSaveAction == "function") 5169 BX.Sale.OrderAjaxComponent.doSaveAction(); 5170 else BX.Sale.OrderAjaxComponent.oldClickOrderSaveAction(event); 5171 } 5172 } else { 5173 if (!$('input[name="licenses_order"]').prop("checked")) 5174 $(".bx-soa .licence_block label.error").removeClass("hidden"); 5175 5176 if (!$('input[name="offer_order"]').prop("checked")) 5177 $(".bx-soa .offer_block label.error").removeClass("hidden"); 5178 } 5179 }; 5180 if (BX.Sale.OrderAjaxComponent.orderSaveBlockNode.querySelector(".checkbox")) { 5181 if (typeof browser == "object") { 5182 if ("msie" in browser && browser.msie) 5183 $(BX.Sale.OrderAjaxComponent.orderSaveBlockNode.querySelector(".checkbox")).remove(); 5184 else BX.Sale.OrderAjaxComponent.orderSaveBlockNode.querySelector(".checkbox").remove(); 5185 } 5186 } 5187 BX.unbindAll(BX.Sale.OrderAjaxComponent.totalInfoBlockNode.querySelector("a.btn-order-save")); 5188 BX.unbindAll(BX.Sale.OrderAjaxComponent.mobileTotalBlockNode.querySelector("a.btn-order-save")); 5189 BX.unbindAll(BX.Sale.OrderAjaxComponent.orderSaveBlockNode.querySelector("a")); 5190 BX.bind( 5191 BX.Sale.OrderAjaxComponent.totalInfoBlockNode.querySelector("a.btn-order-save"), 5192 "click", 5193 BX.proxy(BX.Sale.OrderAjaxComponent.clickOrderSaveAction, BX.Sale.OrderAjaxComponent) 5194 ); 5195 BX.bind( 5196 BX.Sale.OrderAjaxComponent.mobileTotalBlockNode.querySelector("a.btn-order-save"), 5197 "click", 5198 BX.proxy(BX.Sale.OrderAjaxComponent.clickOrderSaveAction, BX.Sale.OrderAjaxComponent) 5199 ); 5200 BX.bind( 5201 BX.Sale.OrderAjaxComponent.orderSaveBlockNode.querySelector("a"), 5202 "click", 5203 BX.proxy(BX.Sale.OrderAjaxComponent.clickOrderSaveAction, BX.Sale.OrderAjaxComponent) 5204 ); 5205 } 5206 5207 /*$('.bx-soa-cart-total .licence_block label.license').on('click', function(){ 5208 var id = $(this).data('for'); 5209 $('.bx-soa-cart-total .licence_block label.error').addClass('hidden'); 5210 if(!$('input[name='+id+']').prop('checked')){ 5211 $('input[name='+id+']').prop('checked', 'checked'); 5212 BX.Sale.OrderAjaxComponent.state_licence = 'checked'; 5213 } 5214 else{ 5215 $('input[name='+id+']').prop('checked', ''); 5216 BX.Sale.OrderAjaxComponent.state_licence = ''; 5217 } 5218 })*/ 5219 } 5220 if (BX.Sale.OrderAjaxComponent.hasOwnProperty("params")) { 5221 $(".bx-soa-cart-total .change_link").attr("href", BX.Sale.OrderAjaxComponent.params.PATH_TO_BASKET); 5222 if (arOptimusOptions["PRICES"]["MIN_PRICE"]) { 5223 if ( 5224 arOptimusOptions["PRICES"]["MIN_PRICE"] > Number(BX.Sale.OrderAjaxComponent.result.TOTAL.ORDER_PRICE) 5225 ) { 5226 $('<div class="fademask_ext"></div>').appendTo($("body")); 5227 location.href = BX.Sale.OrderAjaxComponent.params.PATH_TO_BASKET; 5228 } 5229 } 5230 } 5231 5232 // fix hide total block 5233 //BX.removeClass(BX.Sale.OrderAjaxComponent.totalInfoBlockNode, 'bx-soa-cart-total-fixed'); 5234 $(window).scroll(); 5235 5236 if (checkCounters() && typeof BX.Sale.OrderAjaxComponent.oldSaveOrder === "undefined") { 5237 var saveFunc = 5238 typeof BX.Sale.OrderAjaxComponent.saveOrder !== "undefined" ? "saveOrder" : "saveOrderWithJson"; 5239 if (typeof BX.Sale.OrderAjaxComponent[saveFunc] !== "undefined") { 5240 BX.Sale.OrderAjaxComponent.oldSaveOrder = BX.Sale.OrderAjaxComponent[saveFunc]; 5241 BX.Sale.OrderAjaxComponent[saveFunc] = function (result) { 5242 var res = BX.parseJSON(result); 5243 if (res && res.order) { 5244 if (!res.order.SHOW_AUTH) { 5245 if ( 5246 res.order.REDIRECT_URL && 5247 res.order.REDIRECT_URL.length && 5248 (!res.order.ERROR || BX.util.object_keys(res.order.ERROR).length < 1) 5249 ) { 5250 if ( 5251 (arMatch = res.order.REDIRECT_URL.match(/ORDER_ID\=[^&=]*/g)) && 5252 arMatch.length && 5253 (_id = arMatch[0].replace(/ORDER_ID\=/g, "", arMatch[0])) 5254 ) { 5255 $.ajax({ 5256 url: arOptimusOptions["SITE_DIR"] + "ajax/check_order.php", 5257 dataType: "json", 5258 type: "POST", 5259 data: { ID: _id }, 5260 success: function (id) { 5261 if (parseInt(id)) { 5262 purchaseCounter(parseInt(id), BX.message("FULL_ORDER"), function (d) { 5263 if (typeof d == "object") { 5264 if (typeof BX.localStorage !== "undefined") { 5265 BX.localStorage.set("gtm_e_" + _id, d, 60); 5266 } 5267 } 5268 BX.Sale.OrderAjaxComponent.oldSaveOrder(result); 5269 }); 5270 } else { 5271 BX.Sale.OrderAjaxComponent.oldSaveOrder(result); 5272 } 5273 }, 5274 error: function () { 5275 BX.Sale.OrderAjaxComponent.oldSaveOrder(result); 5276 }, 5277 }); 5278 } else { 5279 BX.Sale.OrderAjaxComponent.oldSaveOrder(result); 5280 } 5281 } else { 5282 BX.Sale.OrderAjaxComponent.oldSaveOrder(result); 5283 } 5284 } else { 5285 BX.Sale.OrderAjaxComponent.oldSaveOrder(result); 5286 } 5287 } else { 5288 BX.Sale.OrderAjaxComponent.oldSaveOrder(result); 5289 } 5290 }; 5291 } 5292 } 5293 5294 if ($("#bx-soa-order-form .captcha-row").length) { 5295 if ( 5296 window.asproRecaptcha && 5297 window.asproRecaptcha.key && 5298 window.asproRecaptcha.params.recaptchaSize == "invisible" 5299 ) { 5300 $("#bx-soa-order-form .captcha-row").addClass("invisible"); 5301 if (asproRecaptcha.params.recaptchaLogoShow === "n") { 5302 $("#bx-soa-order-form .captcha-row").addClass("logo_captcha_n"); 5303 } 5304 } 5305 } 5306 5307 if ($("#bx-soa-order-form .captcha-row").length) { 5308 if (BX.Aspro?.Captcha) { 5309 $('.bx-soa-section-content.reg .captcha-row .bx-authform-label-container').hide(); 5310 5311 // fix ya smartcaptcha height 5312 if ($('.bx-soa-section-content.reg ' + BX.Aspro.Captcha.selector).length) { 5313 $('.bx-soa-section-content.reg ' + BX.Aspro.Captcha.selector).css('height', ''); 5314 } 5315 5316 if (BX.Aspro.Captcha.isInvisible()) { 5317 $("#bx-soa-order-form .captcha-row").addClass("invisible"); 5318 5319 if (BX.Aspro.Captcha.params.showLogo === "n") { 5320 $("#bx-soa-order-form .captcha-row").addClass("logo_captcha_n"); 5321 } 5322 } 5323 5324 if ( 5325 BX.Aspro.Captcha.isGoogleRecaptcha3() || 5326 BX.Aspro.Captcha.isInvisible() 5327 ) { 5328 if ( 5329 typeof BX.Sale.OrderAjaxComponent.oldSendRequest === "undefined" && 5330 typeof BX.Sale.OrderAjaxComponent.sendRequest !== "undefined" 5331 ) { 5332 BX.Sale.OrderAjaxComponent.oldSendRequest = BX.Sale.OrderAjaxComponent.sendRequest; 5333 BX.Sale.OrderAjaxComponent.sendRequest = function (action, actionData) { 5334 let form = BX("bx-soa-order-form"); 5335 5336 (new Promise((resolve, reject) => { 5337 if (BX.Aspro.Captcha.api) { 5338 BX.Aspro.Captcha.onSubmit({form}).then((result) => { 5339 resolve(result) 5340 }).catch((e) => { 5341 reject(e); 5342 }); 5343 5344 return; 5345 } 5346 5347 resolve(true); 5348 })).then((result) => { 5349 if (result) { 5350
5350 BX.Sale.OrderAjaxComponent.oldSendRequest(action, actionData); 5351 } 5352 }); 5353 }; 5354 } 5355 } 5356 } 5357 } 5358 } 5359 5360 5361 $(".bx-ui-sls-quick-locations.quick-locations").on("click", function () { 5362 $(this).siblings().removeClass("active"); 5363 $(this).addClass("active"); 5364 }); 5365 } 5366 } 5367 }; 5368} 5369 5370if (!funcDefined("basketActions")) { 5371 basketActions = function () { 5372 if (arOptimusOptions["PAGES"]["BASKET_PAGE"]) { 5373 checkMinPrice(); 5374 5375 //remove4Cart 5376 if (typeof BX.Sale !== "undefined" && typeof BX.Sale === "object") { 5377 if (typeof BX.Sale.BasketComponent !== "undefined" && typeof BX.Sale.BasketComponent === "object") { 5378 $(document).on("click", ".basket-item-actions-remove", function () { 5379 var basketID = $(this).closest(".basket-items-list-item-container").data("id"); 5380 delFromBasketCounter(BX.Sale.BasketComponent.items[basketID].PRODUCT_ID); 5381 }); 5382 } 5383 } 5384 5385 if (location.hash) { 5386 var hash = location.hash.substring(1); 5387 if ($("#basket_toolbar_button_" + hash).length) { 5388 $("#basket_toolbar_button_" + hash).trigger("click"); 5389 } 5390 } 5391 5392 $(".bx_sort_container").append( 5393 '<div class="top_control basket_sort"><span style="display:none;" class="delete_all button grey_br transparent remove_all_basket">' + 5394 BX.message("BASKET_CLEAR_ALL_BUTTON") + 5395 "</span></div>" 5396 ); 5397 if ($(".basket-items-list-header-filter").length) { 5398 $(".basket-items-list-header-filter").append( 5399 '<div class="top_control basket_sort"><span style="opacity:1;" class="delete_all button grey_br transparent remove_all_basket">' + 5400 BX.message("BASKET_CLEAR_ALL_BUTTON") + 5401 "</span></div>" 5402 ); 5403 5404 var cur_index = $(".basket-items-list-header-filter > a.active").index(); 5405 //fix delayed 5406 if (cur_index == 3) cur_index = 2; 5407 5408 if ($(".basket-items-list-header-filter > a.active").data("filter") == "all") cur_index = "all"; 5409 5410 $(".basket-items-list-header-filter .top_control .delete_all").data("type", cur_index); 5411 5412 $(".basket-items-list-header-filter > a").on("click", function () { 5413 var index = $(this).index(); 5414 5415 //fix delayed 5416 if (index == 3) index = 2; 5417 5418 if ($(this).data("filter") == "all") index = "all"; 5419 5420 $(".basket-items-list-header-filter .top_control .delete_all").data("type", index); 5421 }); 5422 5423 if (arOptimusOptions["THEME"]["SHOW_BASKET_PRINT"] == "Y") { 5424 $( 5425 '<span class="basket_sort"><span class="basket_print button grey_br transparent">' + 5426 BX.message("BASKET_PRINT_BUTTON") + 5427 "</span></span>" 5428 ).insertAfter($("#pagetitle")); 5429 } 5430 } else { 5431 if (arOptimusOptions["THEME"]["SHOW_BASKET_PRINT"] == "Y") { 5432 $(".bx_sort_container .top_control").prepend( 5433 '<span class="basket_print button grey_br transparent">' + BX.message("BASKET_PRINT_BUTTON") + "</span>" 5434 ); 5435 } 5436 5437 var cur_index = $(".bx_sort_container a.current").index(); 5438 $(".bx_sort_container .top_control .delete_all").data("type", cur_index); 5439 if ($(".bx_ordercart > div:eq(" + cur_index + ") table tbody tr td.item").length) 5440 $(".bx_sort_container .top_control .delete_all").css("display", "block"); 5441 5442 $(".bx_ordercart .bx_ordercart_coupon #coupon").wrap('<div class="input"></div>'); 5443 5444 $(".bx_sort_container > a").on("click", function () { 5445 var index = $(this).index(); 5446 $(".bx_sort_container .top_control .delete_all").data("type", index); 5447 5448 if ($(".bx_ordercart > div:eq(" + index + ") table tbody tr td.item").length) 5449 $(".bx_sort_container .top_control .delete_all").css("display", "block"); 5450 else $(".bx_sort_container .top_control .delete_all").css("display", "none"); 5451 }); 5452 } 5453 5454 $(".basket_print").on("click", function () { 5455 // window.open(location.pathname+"?print=Y",'_blank'); 5456 window.print(); 5457 }); 5458 5459 $(".delete_all").on("click", function () { 5460 if (arOptimusOptions["COUNTERS"]["USE_BASKET_GOALS"] !== "N") { 5461 var eventdata = { goal: "goal_basket_clear", params: { type: $(this).data("type") } }; 5462 BX.onCustomEvent("onCounterGoals", [eventdata]); 5463 } 5464 $.post( 5465 arOptimusOptions["SITE_DIR"] + "ajax/action_basket.php", 5466 "TYPE=" + $(this).data("type") + "&CLEAR_ALL=Y", 5467 $.proxy(function (data) { 5468 location.reload(); 5469 }) 5470 ); 5471 }); 5472 5473 $(".bx_item_list_section .bx_catalog_item").sliceHeight({ row: ".bx_item_list_slide", item: ".bx_catalog_item" }); 5474 5475 $(document).on( 5476 "click", 5477 ".bx_ordercart_order_pay_center .checkout, .basket-checkout-section-inner .basket-btn-checkout", 5478 function () { 5479 if (checkCounters("google")) { 5480 checkoutCounter(1, "start order"); 5481 } 5482 } 5483 ); 5484 5485 BX.addCustomEvent("onAjaxSuccess", function () { 5486 checkMinPrice(); 5487 5488 var errorText = $.trim($("#warning_message").text()); 5489 $("#basket_items_list .error_text").detach(); 5490 if (errorText != "") { 5491 $("#warning_message").hide().text(""); 5492 $("#basket_items_list").prepend('<div class="error_text">' + errorText + "</div>"); 5493 } 5494 }); 5495 } 5496 }; 5497} 5498 5499BX.addCustomEvent("onAjaxSuccess", function (data) { 5500 if (typeof data !== "object" || data === null) { 5501 return; 5502 } 5503 5504 if (typeof data.BASKET_REFRESHED === undefined) { 5505 return; 5506 } 5507 5508 const resoredBasketItems = data.RESTORED_BASKET_ITEMS; 5509 if ( 5510 resoredBasketItems && 5511 typeof resoredBasketItems === 'object' && 5512 !Array.isArray(resoredBasketItems) 5513 ) { 5514 for (const basketID in resoredBasketItems) { 5515 if (resoredBasketItems.hasOwnProperty(basketID) && BX.Sale?.BasketComponent?.items?.[basketID]) { 5516 addBasketCounter(BX.Sale.BasketComponent.items[basketID].PRODUCT_ID); 5517 } 5518 } 5519 } 5520}); 5521 5522if (!funcDefined("checkMinPrice")) { 5523 checkMinPrice = function () { 5524 if (arOptimusOptions["PAGES"]["BASKET_PAGE"]) { 5525 var summ_raw = 0, 5526 summ = 0; 5527 if ($("#allSum_FORMATED").length) { 5528 summ_raw = $("#allSum_FORMATED") 5529 .text() 5530 .replace(/[^0-9\.,]/g, ""); 5531 summ = parseFloat(summ_raw); 5532 if ($("#basket_items").length) { 5533 var summ = 0; 5534 $("#basket_items tr").each(function () { 5535 if (typeof $(this).data("item-price") !== "undefined" && $(this).data("item-price")) 5536 summ += 5537 $(this).data("item-price") * 5538 $(this) 5539 .find("#QUANTITY_INPUT_" + $(this).attr("id")) 5540 .val(); 5541 }); 5542 } 5543 if (!$(".catalog_back").length) 5544 $(".bx_ordercart_order_pay_center").prepend( 5545 '<a href="' + 5546 arOptimusOptions["PAGES"]["CATALOG_PAGE_URL"] + 5547 '" class="catalog_back button transparent big_btn grey_br">' + 5548 BX.message("BASKET_CONTINUE_BUTTON") + 5549 "</a>" 5550 ); 5551 } 5552 5553 if (arOptimusOptions["THEME"]["SHOW_ONECLICKBUY_ON_BASKET_PAGE"] == "Y") 5554 $(".basket-coupon-section").addClass("smallest"); 5555 5556 if (typeof BX.Sale !== "undefined") { 5557 if (typeof BX.Sale.BasketComponent !== "undefined" && "result" in BX.Sale.BasketComponent) 5558 summ = BX.Sale.BasketComponent.result.allSum; 5559 } 5560 5561 if (arOptimusOptions["PRICES"]["MIN_PRICE"]) { 5562 if (arOptimusOptions["PRICES"]["MIN_PRICE"] > summ) { 5563 if ($(".oneclickbuy.fast_order").length) $(".oneclickbuy.fast_order").remove(); 5564 5565 if ($(".basket-checkout-container").length) { 5566 if (!$(".icon_error_wrapper").length) { 5567 $(".basket-checkout-block.basket-checkout-block-btn").html( 5568 '<div class="icon_error_wrapper"><div class="icon_error_block">' + 5569 BX.message("MIN_ORDER_PRICE_TEXT").replace( 5570 "#PRICE#", 5571 jsPriceFormat(arOptimusOptions["PRICES"]["MIN_PRICE"]) 5572 ) + 5573 "</div></div>" 5574 ); 5575 } 5576 } else { 5577 if (!$(".icon_error_wrapper").length) { 5578 $(".bx_ordercart_order_pay_center").prepend( 5579 '<div class="icon_error_wrapper"><div class="icon_error_block">' + 5580 BX.message("MIN_ORDER_PRICE_TEXT").replace( 5581 "#PRICE#", 5582 jsPriceFormat(arOptimusOptions["PRICES"]["MIN_PRICE"]) 5583 ) + 5584 "</div></div>" 5585 ); 5586 } 5587 if ($(".bx_ordercart_order_pay .checkout").length) $(".bx_ordercart_order_pay .checkout").remove(); 5588 } 5589 } else { 5590 if ($(".icon_error_wrapper").length) $(".icon_error_wrapper").remove(); 5591 5592 if ($(".basket-checkout-container").length) { 5593 if ( 5594 !$(".oneclickbuy.fast_order").length && 5595 arOptimusOptions["THEME"]["SHOW_ONECLICKBUY_ON_BASKET_PAGE"] == "Y" && 5596 !$(".basket-btn-checkout.disabled").length 5597 ) 5598 $(".basket-checkout-section-inner").append( 5599 '<div class="fastorder"><span class="oneclickbuy button big_btn fast_order" onclick="oneClickBuyBasket()">' + 5600 BX.message("BASKET_QUICK_ORDER_BUTTON") + 5601 "</span></div>" 5602 ); 5603 } else { 5604 if ($(".bx_ordercart_order_pay .checkout").length) 5605 $(".bx_ordercart .bx_ordercart_order_pay .checkout").css("opacity", "1"); 5606 else 5607 $(".bx_ordercart_order_pay_center").append( 5608 '<a href="javascript:void(0)" onclick="checkOut();" class="checkout" style="opacity: 1;">' + 5609 BX.message("BASKET_ORDER_BUTTON") + 5610 "</a>" 5611 ); 5612 if ( 5613 !$(".oneclickbuy.fast_order").length && 5614 arOptimusOptions["THEME"]["SHOW_ONECLICKBUY_ON_BASKET_PAGE"] == "Y" 5615 ) 5616 $(".bx_ordercart_order_pay_center").append( 5617 '<span class="oneclickbuy button big_btn fast_order" onclick="oneClickBuyBasket()">' + 5618 BX.message("BASKET_QUICK_ORDER_BUTTON") + 5619 "</span>" 5620 ); 5621 } 5622 } 5623 } else { 5624 if ($(".basket-checkout-container").length) { 5625 if ( 5626 !$(".oneclickbuy.fast_order").length && 5627 arOptimusOptions["THEME"]["SHOW_ONECLICKBUY_ON_BASKET_PAGE"] == "Y" && 5628 !$(".basket-btn-checkout.disabled").length 5629 ) 5630 $(".basket-checkout-section-inner").append( 5631 '<div class="fastorder"><span class="oneclickbuy button big_btn fast_order" onclick="oneClickBuyBasket()">' + 5632 BX.message("BASKET_QUICK_ORDER_BUTTON") + 5633 "</span></div>" 5634 ); 5635 } else { 5636 $(".bx_ordercart .bx_ordercart_order_pay .checkout").css("opacity", "1"); 5637 if ( 5638 !$(".oneclickbuy.fast_order").length && 5639 arOptimusOptions["THEME"]["SHOW_ONECLICKBUY_ON_BASKET_PAGE"] == "Y" 5640 ) 5641 $(".bx_ordercart_order_pay_center").append( 5642 '<span class="oneclickbuy button big_btn fast_order" onclick="oneClickBuyBasket()">' + 5643 BX.message("BASKET_QUICK_ORDER_BUTTON") + 5644 "</span>" 5645 ); 5646 } 5647 } 5648 $("#basket-root .basket-checkout-container").addClass("visible"); 5649 } 5650 }; 5651} 5652 5653var isFrameDataReceived = false;
5654if (typeof window.frameCacheVars !== "undefined") { 5655 BX.addCustomEvent("onFrameDataReceived", function (json) { 5656 initFull(); 5657 isFrameDataReceived = true; 5658 }); 5659} else { 5660 $(document).ready(initFull); 5661} 5662 5663if (!funcDefined("setHeightBlockSlider")) { 5664 setHeightBlockSlider = function () { 5665 var sliderWidth = $(document).find(".specials.tab_slider_wrapp").outerWidth(); 5666 5667 $(document).find(".specials.tab_slider_wrapp .tabs_content > li.cur").css("height", ""); 5668 $(document).find(".specials.tab_slider_wrapp .tabs_content .tab.cur .tabs_slider .buttons_block").hide(); 5669 $(document).find(".specials.tab_slider_wrapp .tabs_content > li.cur").equalize({ children: ".item-title" }); 5670 $(document).find(".specials.tab_slider_wrapp .tabs_content > li.cur").equalize({ children: ".item_info" }); 5671 $(document).find(".specials.tab_slider_wrapp .tabs_content > li.cur").equalize({ children: ".catalog_item" }); 5672 var itemsButtonsHeight = $(document) 5673 .find(".specials.tab_slider_wrapp .tabs_content .tab.cur .tabs_slider li .buttons_block") 5674 .height(); 5675 var tabsContentUnhover = $(document).find(".specials.tab_slider_wrapp .tabs_content .tab.cur").height() * 1; 5676 var tabsContentHover = tabsContentUnhover + itemsButtonsHeight + 50; 5677 $(document).find(".specials.tab_slider_wrapp .tabs_content .tab.cur").attr("data-unhover", tabsContentUnhover); 5678 $(document).find(".specials.tab_slider_wrapp .tabs_content .tab.cur").attr("data-hover", tabsContentHover); 5679 $(document).find(".specials.tab_slider_wrapp .tabs_content").height(tabsContentUnhover); 5680 5681 $(document) 5682 .find(".specials.tab_slider_wrapp .tabs_content .tabs_slider") 5683 .each(function (index, el) { 5684 const height = $(this).find(".catalog_item").height(); 5685 $(el).attr("data-height", height); 5686 }); 5687 }; 5688} 5689 5690if (!funcDefined("checkStickyFooter")) { 5691 checkStickyFooter = function () { 5692 try { 5693 ignoreResize.push(true); 5694 $("#content").css("min-height", ""); 5695 var contentTop = 0; 5696 if ($("#content").length) contentTop = $("#content").offset().top; 5697 5698 var contentBottom = contentTop + $("#content").outerHeight(); 5699 5700 var footerTop = 0; 5701 if ($("footer").length) footerTop = $("footer").offset().top; 5702 5703 $("#content").css( 5704 "min-height", 5705 $(window).height() - contentTop - (footerTop - contentBottom) - $("footer").outerHeight() + "px" 5706 ); 5707 ignoreResize.pop(); 5708 } catch (e) { 5709 console.error(e); 5710 } 5711 }; 5712} 5713 5714/* EVENTS */ 5715var timerResize = false, 5716 ignoreResize = []; 5717$(window).resize(function () { 5718 if (!$("html.print").length) checkStickyFooter(); 5719 5720 // here immediate functions 5721 if (!ignoreResize.length) { 5722 if (timerResize) { 5723 clearTimeout(timerResize); 5724 timerResize = false; 5725 } 5726 timerResize = setTimeout(function () { 5727 // here delayed functions in event 5728 BX.onCustomEvent("onWindowResize", false); 5729 }, 50); 5730 } 5731}); 5732 5733var timerScroll = false, 5734 ignoreScroll = [], 5735 documentScrollTopLast = $(document).scrollTop(); 5736$(window).scroll(function () { 5737 // here immediate functions 5738 documentScrollTopLast = $(document).scrollTop(); 5739 if (!ignoreScroll.length) { 5740 if (timerScroll) { 5741 clearTimeout(timerScroll); 5742 timerScroll = false; 5743 } 5744 timerScroll = setTimeout(function () { 5745 // here delayed functions in event 5746 BX.onCustomEvent("onWindowScroll", false); 5747 }, 50); 5748 } 5749}); 5750 5751BX.addCustomEvent("onWindowResize", function (eventdata) { 5752 try { 5753 ignoreResize.push(true); 5754 5755 // CheckTopMenuFullCatalogSubmenu(); 5756 5757 checkScrollToTop(); 5758 //checkPopupWidth(); 5759 checkCaptchaWidth(); 5760 checkFormWidth(); 5761 checkFormControlWidth(); 5762 touchMenu("ul.menu:not(.opened) > li.menu_item_l1"); 5763 touchBasket(".cart:not(.empty_cart) .basket_block .link"); 5764 CheckObjectsSizes(); 5765 5766 if (funcDefined("checkMobileFilter")) { 5767 checkMobileFilter(); 5768 } 5769 5770 CheckFlexSlider(); 5771 5772 // InitZoomPict(); 5773 initSly(); 5774 5775 if (window.matchMedia("(min-width: 767px)").matches) { 5776 $(".wrapper_middle_menu.wrap_menu").removeClass("mobile"); 5777 } 5778 if (window.matchMedia("(max-width: 767px)").matches) { 5779 $(".wrapper_middle_menu.wrap_menu").addClass("mobile"); 5780 } 5781 5782 if ($(window).outerWidth() > 600) { 5783 $("#header ul.menu").removeClass("opened").css("display", ""); 5784 5785 if ($(".authorization-cols").length) { 5786 $(".authorization-cols").equalize({ children: ".col .auth-title", reset: true }); 5787 $(".authorization-cols").equalize({ children: ".col .form-block", reset: true }); 5788 } 5789 } else { 5790 $(".authorization-cols .auth-title").css("height", ""); 5791 $(".authorization-cols .form-block").css("height", ""); 5792 } 5793 5794 if ($("#basket_form").length && $(window).outerWidth() <= 600) { 5795 $("#basket_form .tabs_content.basket > li.cur td").each(function () { 5796 $(this).css("width", ""); 5797 }); 5798 } 5799 5800 if ($(".front_slider_wrapp").length) { 5801 $(".extended_pagination li i").each(function () { 5802 $(this).css({ 5803 borderBottomWidth: $(this).parent("li").outerHeight() / 2, 5804 borderTopWidth: $(this).parent("li").outerHeight() / 2, 5805 }); 5806 }); 5807 } 5808 5809 setHeightCompany(); 5810 $(".bx_filter_section .bx_filter_select_container").each(function () { 5811 var prop_id = $(this).closest(".bx_filter_parameters_box").attr("property_id"); 5812 if ($("#smartFilterDropDown" + prop_id).length) { 5813 $("#smartFilterDropDown" + prop_id).css("max-width", $(this).width()); 5814 } 5815 }); 5816 setTimeout(function () { 5817 checkVerticalMobileFilter(); 5818 }, 100); 5819 } catch (e) { 5820 } finally { 5821 ignoreResize.pop(); 5822 } 5823}); 5824 5825BX.addCustomEvent("onWindowScroll", function (eventdata) { 5826 try { 5827 ignoreScroll.push(true); 5828 } catch (e) { 5829 } finally { 5830 ignoreScroll.pop(); 5831 } 5832}); 5833 5834BX.addCustomEvent("onSlideInit", function (eventdata) { 5835 try { 5836 ignoreResize.push(true); 5837 if (eventdata) { 5838 var slider = eventdata.slider; 5839 if (slider) { 5840 if (slider.hasClass("viewed")) { 5841 $(".viewed_block .rows_block .item .item-title").sliceHeight({ 5842 outer: true, 5843 slice: 8, 5844 autoslicecount: false, 5845 }); 5846 $(".viewed_block .rows_block .item").sliceHeight({ slice: 8, autoslicecount: false }); 5847 } 5848 } 5849 } 5850 } catch (e) { 5851 } finally { 5852 ignoreResize.pop(); 5853 } 5854}); 5855 5856BX.addCustomEvent("onCounterGoals", function (eventdata) { 5857 if (arOptimusOptions["COUNTERS"]["USE_YA_COUNTER"] === "Y") { 5858 var idCounter = arOptimusOptions["COUNTERS"]["YA_COUNTER_ID"]; 5859 idCounter = parseInt(idCounter); 5860 5861 if (typeof eventdata != "object") { 5862 eventdata = { goal: "undefined" }; 5863 } 5864 if (typeof eventdata.goal != "string") { 5865 eventdata.goal = "undefined"; 5866 } 5867 5868 if (idCounter) {
5869 try { 5870 waitCounter(idCounter, 50, function () { 5871 var obCounter = window["yaCounter" + idCounter]; 5872 if (typeof obCounter == "object") { 5873 obCounter.reachGoal(eventdata.goal); 5874 } 5875 }); 5876 } catch (e) { 5877 console.error(e); 5878 } 5879 } else { 5880 console.info("Bad counter id!", idCounter); 5881 } 5882 } 5883}); 5884 5885BX.addCustomEvent("onSubmitForm", function (eventdata) { 5886 try { 5887 if (typeof eventdata === "object" && eventdata && eventdata.form) { 5888 if (!(eventdata.form instanceof Node)) { 5889 eventdata.form = eventdata.form[0]; 5890 } 5891 5892 new Promise((resolve, reject) => { 5893 if (BX.Aspro?.Captcha) { 5894 BX.Aspro.Captcha.onSubmit(eventdata) 5895 .then((result) => { 5896 resolve(result); 5897 }) 5898 .catch((e) => { 5899 reject(e); 5900 }); 5901 5902 return; 5903 } 5904 5905 resolve(true); 5906 }).then((result) => { 5907 if (result) { 5908 eventdata.form.submit(); 5909 if (eventdata.form.closest(".form")) { 5910 eventdata.form.closest(".form").classList.add("sending"); 5911 } 5912 } 5913 }); 5914 } 5915 } catch (e) { 5916 console.error(e); 5917 } 5918}); 5919 5920$(document).ready(function () { 5921 /* --- Bind mobile filter --- */ 5922 var $mobilefilter = $("#mobilefilter"); 5923 var $mobileMenu = $("#mobilemenu, #mobileheadersimple"); 5924 if ($mobilefilter.length && window.matchMedia("(max-width: 768px)").matches) { 5925 $mobilefilter.isOpen = $mobileMenu.hasClass("show"); 5926 $mobilefilter.isAppendLeft = false; 5927 $mobilefilter.isWrapFilter = false; 5928 $mobilefilter.isHorizontalOrCompact = $(".filter_horizontal").length || $(".bx_filter_vertical.compact").length; 5929 $mobilefilter.close = '<i class="svg svg-close close-icons"></i>'; 5930 5931 $(document).on("click", ".filter_opener", function () { 5932 OpenMobileFilter(); 5933 }); 5934 5935 $(document).on("click", "#mobilefilter .svg-close.close-icons", function () { 5936 CloseMobileFilter(); 5937 }); 5938 5939 $(document).on("click", ".bx_filter_select_block", function (e) { 5940 var bx_filter_select_container = $(e.target).parents(".bx_filter_select_container"); 5941 if (bx_filter_select_container.length) { 5942 var prop_id = bx_filter_select_container.closest(".bx_filter_parameters_box").attr("data-property_id"); 5943 if ($("#smartFilterDropDown" + prop_id).length) { 5944 $("#smartFilterDropDown" + prop_id).css({ 5945 "max-width": bx_filter_select_container.width(), 5946 "z-index": "3020", 5947 }); 5948 } 5949 } 5950 }); 5951 5952 $(document).on("mouseup", ".bx_filter_section", function (e) { 5953 if ($(e.target).hasClass("bx_filter_search_button")) { 5954 CloseMobileFilter(); 5955 } 5956 }); 5957 5958 $(document).on("mouseup", ".bx_filter_parameters_box_title", function (e) { 5959 $("[id^='smartFilterDropDown']").hide(); 5960 if ($(e.target).hasClass("close-icons")) { 5961 CloseMobileFilter(); 5962 } 5963 }); 5964 5965 $mobilefilter.parent().append('<div id="mobilefilter-overlay"></div>'); 5966 var $mobilefilterOverlay = $("#mobilefilter-overlay"); 5967 5968 $mobilefilterOverlay.click(function () { 5969 if ($mobilefilter.isOpen) { 5970 CloseMobileFilter(); 5971 //e.stopPropagation(); 5972 } 5973 }); 5974 5975 mobileFilterNum = function (num, def) { 5976 if (def) { 5977 $(".bx_filter_search_button").val(num.data("f")); 5978 } else { 5979 var str = ""; 5980 var $prosLeng = $(".bx_filter_parameters_box > span"); 5981 5982 str += 5983 $prosLeng.data("f") + 5984 " " + 5985 num + 5986 " " + 5987 declOfNumFilter(num, [$prosLeng.data("fi"), $prosLeng.data("fr"), $prosLeng.data("frm")]); 5988 $(".bx_filter_search_button").val(str); 5989 } 5990 }; 5991 5992 declOfNumFilter = function (number, titles) { 5993 cases = [2, 0, 1, 1, 1, 2]; 5994 return titles[number % 100 > 4 && number % 100 < 20 ? 2 : cases[number % 10 < 5 ? number % 10 : 5]]; 5995 }; 5996 5997 OpenMobileFilter = function () { 5998 if (!$mobilefilter.isOpen) { 5999 if (!$mobilefilter.isAppendLeft) { 6000 if (!$mobilefilter.isWrapFilter) { 6001 $(".bx_filter").wrap("<div id='wrapInlineFilter'></div>"); 6002 $mobilefilter.isWrapFilter = true; 6003 } 6004 $(".bx_filter").css("top", ""); 6005 $(".bx_filter") 6006 .appendTo($("#mobilefilter")) 6007 .find(".title .bx_filter_parameters_box_title") 6008 .append($mobilefilter.close); 6009 $mobilefilter.isAppendLeft = true; 6010 } 6011 6012 // show overlay 6013 setTimeout(function () { 6014 $mobilefilterOverlay.fadeIn("fast"); 6015 }, 100); 6016 6017 // fix body 6018 $("body").css({ "overflow-y": "hidden" }); 6019 6020 // show mobile filter 6021 $mobilefilter.addClass("show"); 6022 $mobilefilter.find(".bx_filter").css({ display: "block" }); 6023 $mobilefilter.isOpen = true; 6024 6025 var init = $mobilefilter.data("init"); 6026 if (typeof init === "undefined") { 6027 $mobilefilter.scroll(function () { 6028 $(".bx_filter_section .bx_filter_select_container").each(function () { 6029 var prop_id = $(this).closest(".bx_filter_parameters_box").attr("data-property_id"); 6030 if ($("#smartFilterDropDown" + prop_id).length) { 6031 $("#smartFilterDropDown" + prop_id).hide(); 6032 } 6033 }); 6034 }); 6035 6036 $mobilefilter.data("init", "Y"); 6037 } 6038 } 6039 }; 6040 6041 CloseMobileFilter = function (append) { 6042 $(".bx_filter").css("display", ""); 6043 if ($mobilefilter.isOpen) { 6044 // scroll to top 6045 $mobilefilter.find(".bx_filter_parameters").scrollTop(0); 6046 6047 // unfix body 6048 $("body").css({ "overflow-y": "auto" }); 6049 6050 // hide overlay 6051 setTimeout(function () { 6052 $mobilefilterOverlay.fadeOut("fast"); 6053 }, 100); 6054 6055 // hide mobile filter 6056 $mobilefilter.removeClass("show"); 6057 $mobilefilter.isOpen = false;
6058 } 6059 6060 if (append && $mobilefilter.isAppendLeft) { 6061 $(".bx_filter").appendTo($("#wrapInlineFilter")).show().find(".svg-close").remove(); 6062 $mobilefilter.isAppendLeft = false; 6063 $mobilefilter.removeData("init"); 6064 mobileFilterNum($("#modef_num_mobile"), true); 6065 } 6066 }; 6067 6068 checkMobileFilter = function () { 6069 if ( 6070 (!window.matchMedia("(max-width: 991px)").matches && !$mobilefilter.isHorizontalOrCompact) || 6071 (!window.matchMedia("(max-width: 767px)").matches && $mobilefilter.isHorizontalOrCompact) 6072 ) { 6073 CloseMobileFilter(true); 6074 } 6075 }; 6076 } else { 6077 checkVerticalMobileFilter(); 6078 $(document).on("click", ".filter_opener", function () { 6079 $(this).toggleClass("opened"); 6080 if ($(".visible_mobile_filter").length) { 6081 $(".visible_mobile_filter").show(); 6082 $(".bx_filter_vertical, .bx_filter").slideToggle(333); 6083 } else { 6084 $(".bx_filter_vertical").closest("div[id^=bx_incl]").show(); 6085 $(".bx_filter_vertical, .bx_filter").slideToggle(333); 6086 } 6087 }); 6088 } 6089 /* --- END Bind mobile filter --- */ 6090}); 6091 6092/*custom event for sku prices*/ 6093 6094/*BX.addCustomEvent('onAsproSkuSetPrice', function(eventdata){ 6095 console.log(eventdata); 6096})*/ 6097 6098/*BX.addCustomEvent('onAsproSkuSetPriceMatrix', function(eventdata){ 6099 console.log(eventdata); 6100})*/ 6101 6102InitScrollBar = function (el, initOptions) { 6103 var block = $(".scrollbar:not(.mobile-scroll)"); 6104 if (typeof el !== "undefined") block = el; 6105 if (block.length) { 6106 var options, 6107 defaults = { 6108 mouseWheel: { 6109 scrollAmount: 150, 6110 preventDefault: true, 6111 }, 6112 }; 6113 var config = $.extend({}, defaults, options, block.data("plugin-options"), initOptions); 6114 6115 config.callbacks = { 6116 onScroll: function () { 6117 if ($(this).find(".mCSB_buttonLeft").hasClass("disabled")) 6118 $(this).find(".mCSB_buttonLeft").removeClass("disabled"); 6119 if ($(this).find(".mCSB_buttonRight").hasClass("disabled")) 6120 $(this).find(".mCSB_buttonRight").removeClass("disabled"); 6121 }, 6122 onTotalScrollBack: function () { 6123 $(this).find(".mCSB_buttonLeft").addClass("disabled"); 6124 }, 6125 onTotalScroll: function () { 6126 $(this).find(".mCSB_buttonRight").addClass("disabled"); 6127 }, 6128 onInit: function () { 6129 $(this).find(".mCSB_buttonLeft").addClass("disabled"); 6130 }, 6131 }; 6132 block.mCustomScrollbar(config); 6133 } 6134}; 6135 6136AjaxClickLink = function (e) { 6137 var _this = "", 6138 container = $("#right_block_ajax .inner_wrapper"), 6139 container_inner = container.find(".ajax_load"), 6140 dopAction = ""; 6141 url = ""; 6142 if ("preventDefault" in e) { 6143 e.preventDefault(); 6144 _this = $(e.target).hasClass("js-load-link") ? $(e.target) : $(e.target).closest(".js-load-link"); 6145 } else { 6146 _this = $(e); 6147 dopAction = "Y"; 6148 } 6149 6150 if (container.length) { 6151 var objUrl = parseUrlQuery(), 6152 obGetData = { ajax_get_filter: "Y", control_ajax: "Y" }; 6153 6154 obGetData.bitrix_include_areas = "N"; 6155 6156 if ("clear_cache" in objUrl) { 6157 if (objUrl.clear_cache == "Y") { 6158 obGetData.clear_cache = "Y"; 6159 } 6160 } 6161 6162 if (container_inner.length) container_inner.addClass("loading-state"); 6163 else container.addClass("loading-state"); 6164 6165 if (_this.data("url")) url = _this.data("url"); 6166 6167 if (dopAction) { 6168 BX.PopupWindowManager.getCurrentPopup().close(); 6169 $(".bx_filter_select_popup ul li .sort_btn").removeClass("current"); 6170 _this.addClass("current"); 6171 _this.closest(".bx_filter_block").find(".bx_filter_select_text").text(_this.text()); 6172 } 6173 6174 $(".bx_filter .bx_sort_filter .bx_filter_select_text").text(_this.text()); 6175 $(".bx_filter .bx_sort_filter .bx_filter_select_popup ul li span.current").removeClass("current"); 6176 $(".bx_filter .bx_sort_filter .bx_filter_select_popup ul li") 6177 .eq(_this.parent().index()) 6178 .find("span") 6179 .addClass("current"); 6180 6181 $.ajax({ 6182 url: url, 6183 data: obGetData, 6184 success: function (html) { 6185 container.html(html); 6186 6187 if (container_inner.length) container_inner.removeClass("loading-state"); 6188 else container.removeClass("loading-state"); 6189 6190 var eventdata = { action: "jsLoadBlock" }; 6191 BX.onCustomEvent("onCompleteAction", [eventdata, _this]); 6192 6193 initCountdown(); 6194 InitScrollBar(); 6195 }, 6196 }); 6197 } 6198}; 6199 6200if (!funcDefined("throttle")) { 6201 function throttle(func, wait, debounce) { 6202 var timeout; 6203 return function () { 6204 var context = this, 6205 args = arguments; 6206 var throttler = function () { 6207 timeout = null;
6208 func.apply(context, args); 6209 }; 6210 if (debounce) clearTimeout(timeout); 6211 if (debounce || !timeout) timeout = setTimeout(throttler, wait); 6212 }; 6213 } 6214} 6215 6216// document ready 6217$(function () { 6218 BX.addCustomEvent("onCompleteAction", function (eventdata, _this) { 6219 try { 6220 if (eventdata.action === "loadForm") { 6221 $(_this).parent().removeClass("loadings"); 6222 $(_this).removeClass("clicked"); 6223 6224 if ($(_this).hasClass("one_click_buy_trigger")) { 6225 $(".wrapp_one_click > span").removeClass("clicked"); 6226 $(".one_click").removeClass("clicked"); 6227 } else if ($(_this).hasClass("one_click_buy_basket_trigger")) { 6228 $(".fast_order").removeClass("clicked"); 6229 } 6230 } else if (eventdata.action === "loadActualBasket" && typeof arBasketAspro !== 'undefined') { 6231 const basketCount = Object.keys(arBasketAspro.BASKET).length; 6232 const wishCount = Object.keys(arBasketAspro.DELAY).length; 6233 const compareCount = Object.keys(arBasketAspro.COMPARE).length; 6234 6235 if (wishCount > 0) { 6236 $(".basket-link.delay .count").removeClass("hidden"); 6237 $(".basket-link.delay").removeClass("no-items"); 6238 } else { 6239 $(".basket-link.delay .count").addClass("hidden"); 6240 $(".basket-link.delay").addClass("no-items"); 6241 } 6242 6243 if (basketCount > 0) { 6244 $(".basket-link.basket .count").removeClass("hidden"); 6245 $(".basket-link.basket").removeClass("no-items"); 6246 } else { 6247 $(".basket-link.basket .count").addClass("hidden"); 6248 $(".basket-link.basket").addClass("no-items"); 6249 } 6250 6251 if (compareCount > 0) { 6252 if (!$(".basket-link.compare .count").length) { 6253 $(".basket-link.compare .wraps_icon_block").append( 6254 $( 6255 '<div class="count"><span><div class="items"><a href="' + 6256 $(".basket-link.compare .link").attr("href") + 6257 '">' + 6258 compareCount + 6259 "</a></div></span></div>" 6260 ) 6261 ); 6262 } 6263 $(".basket-link.compare .count").removeClass("hidden"); 6264 $(".basket-link.compare").removeClass("no-items"); 6265 } else { 6266 $(".basket-link.compare .count").addClass("hidden"); 6267 $(".basket-link.compare").addClass("no-items"); 6268 } 6269 6270 $(".basket-link.basket .count .text").text(basketCount); 6271 $(".basket-link.delay .count .text").text(wishCount); 6272 $(".basket-link.compare .count a, .basket-link.comapre > .link").text(compareCount); 6273 } 6274 } catch (e) { 6275 console.error(e); 6276 } 6277 }); 6278 6279 checkHeaderFixed(); 6280 6281 $(".menu-block.mobile .title").on("click", function () { 6282 const $menuWrapper = $(".menu-block.mobile"); 6283 const $menuBlock = $(".menu-block.mobile .navs"); 6284 6285 $menuWrapper.toggleClass("opened"); 6286 $menuBlock.toggleClass("opened"); 6287 6288 if ($menuWrapper.hasClass("opened")) $menuBlock.slideDown(); 6289 else $menuBlock.slideUp(); 6290 }); 6291}); 6292 6293const checkHeaderFixed = function () { 6294 const isMobile = jQuery.browser.mobile || window.matchMedia("(max-width: 991px)").matches; 6295 const mfixed = $("#headerfixed_mobile"), 6296 menu = $("header .main-nav"); 6297 6298 var startScroll = 0; 6299 6300 var $mobileHeaderFixedNlo = mfixed.find("[data-nlo]"), 6301 isMobileNloLoaded = !$mobileHeaderFixedNlo.length, 6302 OnMobileHeaderFixedScrollHandler; 6303 6304 var header_fixed = $("#headerfixed"); 6305 header = $("header").first(); 6306 6307 if (header_fixed.length) { 6308 if (header.length) { 6309 var isHeaderFixed = false, 6310 isTabsFixed = false, 6311 headerCanFix = true, 6312 headerFixedHeight = header_fixed.actual("outerHeight"), 6313 headerNormalHeight = header.actual("outerHeight"), 6314 headerDiffHeight = headerNormalHeight - headerFixedHeight, 6315 mobileBtnMenu = $(".btn.btn-responsive-nav"), 6316 headerTop = $("#panel:visible").actual("outerHeight"); 6317 topBlock = $(".TOP_HEADER").first(); 6318 6319 var $headerFixedNlo = header_fixed.find("[data-nlo]"), 6320 isNloLoaded = !$headerFixedNlo.length, 6321 OnHeaderFixedScrollHandler; 6322 6323 if (headerDiffHeight <= 0) headerDiffHeight = 0; 6324 if (topBlock.length) headerTop += topBlock.actual("outerHeight"); 6325 6326 $(window).scroll( 6327 (OnHeaderFixedScrollHandler = function () { 6328 var tabs_fixed = $(".product-item-detail-tabs-container-fixed"); 6329 6330 if (window.matchMedia("(min-width:992px)").matches) { 6331 var scrollTop = $(window).scrollTop(); 6332 headerCanFix = !mobileBtnMenu.is(":visible") /* && !$('.dropdown-menu:visible').length*/; 6333 6334 var tabs_offset = $(".tabs_section .tabs1").offset(); 6335 6336 var current_is = $(".search-wrapper .search-input:visible"), 6337 title_search_result = $(".title-search-result." + current_is.attr("id")), 6338 pos, 6339 pos_input; 6340 6341 if (!isHeaderFixed) { 6342 if (scrollTop > headerNormalHeight + headerTop && headerCanFix) { 6343 if (!isNloLoaded) { 6344 if (!$headerFixedNlo.hasClass("nlo-loadings")) { 6345 $headerFixedNlo.addClass("nlo-loadings"); 6346 setTimeout(function () { 6347 $.ajax({ 6348 data: { nlo: $headerFixedNlo.attr("data-nlo") }, 6349 success: function (response) { 6350 // stop ya metrika webvisor DOM indexer 6351 pauseYmObserver(); 6352 6353 isNloLoaded = true; 6354 $headerFixedNlo[0].insertAdjacentHTML("beforebegin", $.trim(response)); 6355 $headerFixedNlo.remove(); 6356 6357 OnHeaderFixedScrollHandler(); 6358 6359 // resume ya metrika webvisor 6360 // (300ms transition) + (100ms scroll handler) 6361 setTimeout(resumeYmObserver, 400); 6362 }, 6363 error: function () { 6364 $headerFixedNlo.removeClass("nlo-loadings"); 6365 }, 6366 }); 6367 }, 300); 6368 } 6369 } else { 6370 isHeaderFixed = true; 6371 // header_fixed.css('top', '-' + headerNormalHeight + 'px'); 6372 header_fixed.addClass("fixed"); 6373 // header_fixed.stop(0).animate({top: '0'}, 300); 6374 6375 /*header_fixed.animate({top: '0'}, {duration:300, complete: 6376 function(){} 6377 });*/ 6378 6379 if ($("nav.mega-menu.sliced").length) $("nav.mega-menu.sliced").removeClass("initied"); 6380 //CheckTopMenuDotted(); 6381 } 6382 } 6383 } else if (isHeaderFixed || !headerCanFix) { 6384 if (scrollTop <= headerDiffHeight + headerTop || !headerCanFix) { 6385 isHeaderFixed = false;
6386 header_fixed.removeClass("fixed"); 6387 $(".title-search-result.title-search-input2_fixed").css("display", "none"); 6388 } 6389 } 6390 //fixed tabs 6391 if (tabs_fixed.length) { 6392 if (scrollTop + headerFixedHeight > tabs_offset.top) { 6393 tabs_fixed.css({ top: header_fixed.actual("outerHeight") }); 6394 tabs_fixed.addClass("fixed"); 6395 } else if (tabs_fixed.hasClass("fixed")) { 6396 tabs_fixed.removeAttr("style"); 6397 tabs_fixed.removeClass("fixed"); 6398 } 6399 } 6400 } 6401 }) 6402 ); 6403 } 6404 } 6405 6406 //mobile fixed 6407 if (mfixed.length && isMobile) { 6408 var isMHeaderFixed = false, 6409 mheaderCanFix = true, 6410 mheaderFixedHeight = mfixed.actual("outerHeight"), 6411 mheaderNormalHeight = header.actual("outerHeight") + menu.actual("outerHeight"), 6412 mheaderDiffHeight = mheaderNormalHeight - mheaderFixedHeight, 6413 mheaderTop = $("#panel:visible").actual("outerHeight"); 6414 6415 if (headerDiffHeight <= 0) headerDiffHeight = 0; 6416 6417 $(window).scroll( 6418 (OnMobileHeaderFixedScrollHandler = function () { 6419 var scrollTop = $(window).scrollTop(); 6420 6421 if (window.matchMedia("(max-width:991px)").matches) { 6422 if (!isMHeaderFixed) { 6423 if (scrollTop > mheaderDiffHeight + mheaderTop) { 6424 if (!isMobileNloLoaded) { 6425 if (!$mobileHeaderFixedNlo.hasClass("nlo-loadings")) { 6426 $mobileHeaderFixedNlo.addClass("nlo-loadings"); 6427 setTimeout(function () { 6428 $.ajax({ 6429 data: { nlo: $mobileHeaderFixedNlo.attr("data-nlo") }, 6430 success: function (response) { 6431 // stop ya metrika webvisor DOM indexer 6432 pauseYmObserver(); 6433 6434 isMobileNloLoaded = true; 6435 $mobileHeaderFixedNlo[0].insertAdjacentHTML("beforebegin", $.trim(response)); 6436 $mobileHeaderFixedNlo.remove(); 6437 6438 OnMobileHeaderFixedScrollHandler(); 6439 6440 // resume ya metrika webvisor 6441 // (300ms transition) + (100ms scroll handler) 6442 setTimeout(resumeYmObserver, 400); 6443 }, 6444 error: function () { 6445 $mobileHeaderFixedNlo.removeClass("nlo-loadings"); 6446 }, 6447 }); 6448 }, 300); 6449 } 6450 } else { 6451 //console.log(scrollTop, mheaderFixedHeight); 6452 isMHeaderFixed = true; 6453 mfixed.addClass("fixed"); 6454 } 6455 } 6456 } else if (isMHeaderFixed) { 6457 if (scrollTop <= mheaderDiffHeight + mheaderTop) { 6458 isMHeaderFixed = false; 6459 mfixed.removeClass("fixed"); 6460 $("#headerfixed_mobile .menu.adaptive, #headerfixed_mobile .menu.full").removeClass("opened"); 6461 $("#headerfixed_mobile .menu.full").css("display", "none"); 6462 } 6463 } 6464 } else mfixed.removeClass("fixed"); 6465 }) 6466 ); 6467 } 6468};
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.