1// --- COMPONENTS, PARTS --- // 2var $window = $(window); 3var $windowWidth = $(window).width(); 4var $document = $(document); 5var $header = $(".header"); 6var body = $("body"); 7var htmlElement = $("html"); 8var bodyDetail = $("body.type-detail"); 9var bodyIndex = $("body.in-index"); 10var bodyCategory = $("body.type-category"); 11var bpXsmall = 480; 12var bpSmall = 768; 13var bpMedium = 992; 14var classIsActive = "is-active"; 15 16$(document).ready(function () { 17 baseEvents(); 18 partsRepositionHeader(); 19 repositionFooter(); 20 repositionHP(); 21 22 repositionContact(); 23 reposition404(); 24 repositionBlog(); 25 26 repositionLogin(); 27 // createSliderFromBanners(); 28 // repositionHeader(); 29 // repositionReview(); 30 // repositionInstagram(); 31 // repositionPartners(); 32 repositionCategory(); 33 repositionDetail(); 34 35 repositionBasket(); 36 37 repositionAboutUs(); 38 39 repositionPrazirni(); 40 41 repositionAdult(); 42 43 if ($(".type-manufacturers-listing .category-title").length) { 44 $(".type-manufacturers-listing .category-title").text( 45 "NaÅ¡e prodávané znaÄky" 46 ); 47 } 48 49 var shoptetCustomer = getShoptetDataLayer().customer; 50 if (shoptetCustomer.priceListId == 3) { 51 $("body").addClass("is-vop"); 52 } 53 54 $(document).on("click", ".js-dropdown-trigger", function () { 55 $(this).closest(".js-dropdown-block").toggleClass("is-active"); 56 }); 57 58 $(document).on("click", ".filter-section h4", function () { 59 $(this).closest(".filter-section").toggleClass(classIsActive); 60 }); 61 62 $(document).on("click", ".slider-wrapper h4", function () { 63 $(this).closest(".slider-wrapper").toggleClass(classIsActive); 64 }); 65 66 $(window).resize(); 67}); 68 69$(window).load(function () { 70 $("body").addClass("after-load"); 71 setTimeout(() => { 72 repositionRate(); 73 $(window).resize(); 74 }, 100); 75 repositionFiltersContent(); 76 repositionFilterSections(); 77 if ($("body.blur").length == 0) { 78 repositionAdult(); 79 } 80 $(window).resize(); 81}); 82 83 84function reposition404() { 85 if ($(".in-404").length) { 86 // $(".empty-content-404 h1").text("404"); 87 // $(".empty-content-404 h2").text("Tato stránka neexistuje"); 88 // $(".empty-content-404 p a").closest("p").remove(); 89 // $(".empty-content-404 p").text( 90 // "Omlouváme se, ale stránku kterou hledáte se nepodaÅilo najÃt." 91 // ); 92 // $(".empty-content-404").append( 93 // '<div>Můžete se vrátit na <a href="/">domovskou stránku</a> nebo nás <a href="/kontakt">kontaktovat</a>, pokud nemůžete najÃt to, co hledáte.</div>' 94 // ); 95 } 96} 97 98 99//==================================================== 100// Function: Reposition Advanced modal 101//==================================================== 102 103function repositionContentAdvancedModal() { 104 $("#colorbox").removeClass("is-advanced-modal"); 105 if ($(".advanced-order").length) { 106 $("#colorbox").addClass("is-advanced-modal"); 107 $("#colorbox .h1").text("Zbožà úspÄÅ¡nÄ pÅidáno do koÅ¡Ãku"); 108 $("#colorbox .extra.step .btn").text("PÅejÃt do koÅ¡Ãku"); 109 $("#colorbox .extras-wrap").prepend( 110 '<div class="extra back-btn"><button class="btn btn-secondary js-close-btn">ZpÄt k nákupu</button></div>' 111 ); 112 113 if ($(".advanced-order .products-related").length) { 114 $(".advanced-order .products-related").wrap( 115 '<div class="products-additional-group"></div>' 116 ); 117 $( 118 '<div class="h4 modal-title">ZákaznÃci s tÃmto zbožÃm Äasto nakupujÃ</div>' 119 ).insertBefore(".advanced-order .products-related"); 120 } 121 122 $(".js-close-btn").click(function () { 123 $("#cboxClose").trigger("click"); 124 }); 125 } 126} 127 128 129function baseEvents() { 130 document.addEventListener("ShoptetDOMContentLoaded", function () { 131 if ( 132 $(".type-category").length || 133 $(".product").length || 134 $(".type-search").length || 135 $(".type-manufacturer-detail").length 136 ) { 137 productRepo(); 138 repoTopBannerCategory(); 139 repositionFilterSections(); 140 hideProductWithoutVOP(); 141 } 142 }); 143 144 document.addEventListener("ShoptetDOMPageContentLoaded", function () { 145 if ($(".type-posts-listing").length) { 146 repositionBlogItem(); 147 } 148 if ( 149 $(".type-category").length || 150 $(".type-search").length || 151 $(".product").length || 152 $(".type-manufacturer-detail").length 153 ) { 154 productRepo(); 155 repoTopBannerCategory();
156 repositionFilterSections(); 157 hideProductWithoutVOP(); 158 if ($("#filters").length) { 159 repositionFiltersContent(); 160 } 161 } 162 }); 163 164 document.addEventListener("ShoptetDOMAdvancedOrderLoaded", function () { 165 if ($(".product").length) { 166 // productRepo(); 167 repoTopBannerCategory(); 168 hideProductWithoutVOP(); 169 } 170 }); 171 172 document.addEventListener("ShoptetDOMAdvancedOrderLoaded", function () { 173 repositionContentAdvancedModal(); 174 }); 175 176 document.addEventListener("ShoptetDOMCartContentLoaded", function () { 177 setTimeout(() => { 178 if ($(".id--9").length) { 179 // Reorder basket step 1 elements 180 reorderBasketElements(); 181 } 182 }, 10); 183 }); 184} 185 186 187function repositionBlog() { 188 if ($(".type-posts-listing").length) { 189 repositionBlogItem(); 190 } 191 if ($(".type-post").length) { 192 var image = $( 193 '.news-item-detail span[itemprop="image"] meta[itemprop="url"]' 194 ).attr("content"); 195 $( 196 '<div class="blog-img"><img class="img-responsive img--responsive" src="' + 197 image + 198 '"></div>' 199 ).insertBefore(".news-item-detail .text"); 200 201 $(".news-item-detail > time, .news-item-detail > .reading-time").wrapAll( 202 '<div class="blog-info-block"></div>' 203 ); 204 205 $(".news-item-detail .share, .news-item-detail > .next-prev").wrapAll( 206 '<div class="blog-bottom-block"></div>' 207 ); 208 209 $(".share").prepend('<div class="share-text">SdÃlet Älánek:</div>'); 210 } 211} 212 213function repositionBlogItem() { 214 $(".news-item").each(function () { 215 var inst = $(this); 216 var btnLink = inst.find(".title").attr("href"); 217 var btnTemplate = ` 218 <a class="btn-more" href="${btnLink}"><span>Celý Älánek</span></a> 219 `; 220 inst.find(".text").append(btnTemplate); 221 }); 222} 223 224 225function createSliderFromBanners() { 226 var middleBanners = $(".next-to-carousel-banners"); 227 228 var middleBanner = middleBanners.find(".banner-wrapper"); 229 230 middleBanner.wrap('<div class="swiper-slide"></div>'); 231 232 middleBanners.wrapInner( 233 '<div class="swiper-container js-slider-middle-banners"></div>' 234 ); 235 236 middleBanners 237 .find(".swiper-container") 238 .wrapInner('<div class="swiper-wrapper"></div>'); 239 240 middleBanners.wrapInner( 241 '<div class="js-slider-group slider-group-middle-banners"></div>' 242 ); 243 244 var paginationTemplate = 245 '<div class="swiper-pagination js-swiper-pagination"></div>'; 246 247 middleBanners.find(".slider-group-middle-banners").append(paginationTemplate); 248 249 var arrowTemplate = 250 '<div class="swiper-arrow swiper-arrow-next js-swiper-arrow-next">' + 251 '<div class="swiper-arrow-content">' + 252 '<span class="icon-svg icon-chevron-right"></span>' + 253 "</div>" + 254 "</div>" + 255 '<div class="swiper-arrow swiper-arrow-prev js-swiper-arrow-prev">' + 256 '<div class="swiper-arrow-content">' + 257 '<span class="icon-svg icon-chevron-left"></span>' + 258 "</div>" + 259 "</div>"; 260 middleBanners.find(".slider-group-middle-banners").append(arrowTemplate); 261 262 middleBannersSlider(); 263} 264 265function middleBannersSlider() { 266 if ($(".js-slider-middle-banners").length) { 267 $(".js-slider-middle-banners").each(function () { 268 var inst = $(this), 269 swiperBlock = inst.closest(".js-slider-group"), 270 swiperPagination = swiperBlock.find(".js-swiper-pagination"), 271 swiperArrowPrev = swiperBlock.find(".js-swiper-arrow-prev"), 272 swiperArrowNext = swiperBlock.find(".js-swiper-arrow-next"); 273 274 var mySwiper = new Swiper(inst, { 275 spaceBetween: 30, 276 lazy: true, 277 loop: true, 278 speed: 600, 279 // autoplay: { 280 // delay: 4000, 281 // disableOnInteraction: true, 282 // }, 283 navigation: { 284 nextEl: swiperArrowNext, 285 prevEl: swiperArrowPrev, 286 }, 287 pagination: { 288 el: swiperPagination, 289 clickable: true, 290 }, 291 breakpoints: { 292 200: { 293 slidesPerView: 1, 294 }, 295 480: { 296 slidesPerView: 1, 297 }, 298 768: { 299 slidesPerView: 1, 300 }, 301 992: { 302 slidesPerView: 1, 303 }, 304 1200: { 305 slidesPerView: 1, 306 }, 307 }, 308 }); 309 });
310 } 311} 312 313 314//==================================================== 315// Function: Reposition Header 316// - preusporiadanie prvkov v hlaviÄke 317//==================================================== 318var headerHeight; 319var header = $("#header"); 320 321function partsRepositionHeader() { 322 repositionCartCountMobile(); 323 repositionNavigationMobile(); 324 325 initHeaderFunctions(); 326 327 initSearchPopup(); 328} 329 330function initHeaderFunctions() { 331 if ($(".top-nav-button").length) { 332 var loginLink = $(".top-nav-button"); 333 334 $(".navigation-buttons").prepend(loginLink); 335 336 if ($(".click-cart").length == 0) { 337 $(".toggle-window.cart-count").wrap('<div class="click-cart"></div>'); 338 } 339 340 $(document).on("click", ".click-cart", function () { 341 console.log($windowWidth); 342 console.log(bpMedium); 343 if ($windowWidth < bpMedium) { 344 window.location.href = $(this).find(".cart-count").attr("href"); 345 return false; 346 } 347 }); 348 } 349 350 $("#header .search .form-control").attr( 351 "placeholder", 352 "Jaký produkt hledáte?" 353 ); 354 355 var contactHeader = ` 356 <div class="contact-list--header"> 357 <div class="contact-list"> 358 <a href="tel:774772772" class="contact-list__item tel"> 359 <span class="contact-list__icon"></span> 360 <span class="contact-list__text">774 772 772</span> 361 </a> 362 <a href="mailto:[email protected]" class="contact-list__item mail"> 363 <span class="contact-list__icon"></span> 364 <span class="contact-list__text">[email protected]</span> 365 </a> 366 </div> 367 368 </div> 369 `; 370 371 // <p><span class="p-subtext">po â Ät: <strong>10 â 17</strong> hod.</span> <span class="p-subtext p-subtext--offset">pá: <strong>10 â 16</strong> hod. </span></p> 372 373 $("#header .search").append(contactHeader); 374 375 $(".navigation-in .menu-item-682, .navigation-in .menu-item-29").wrapAll( 376 '<ul class="menu-level-1 menu-level-ext"></ul>' 377 ); 378 $(".menu-level-ext").insertAfter(".navigation-in > .menu-level-1"); 379 380 // <a href="/kava/?pv15=15" class="coffee-list-link bez-kofeinu">Bez kofeinu</a> 381 var coffeeTemplate = ` 382 <li class="coffee-list-item"> 383 <a href="/kava" class="coffee-list-link all">VÅ¡echna káva</a> 384 <a href="/kava/?pv15=15" class="coffee-list-link zrnkova">Zrnková</a> 385 <a href="/kava/?pv15=36" class="coffee-list-link mleta">Mletá</a> 386 <a href="/kava/?pv15=39" class="coffee-list-link kapsle">Kapsle</a> 387 </li> 388 <li class="coffee-title"><a>ZnaÄky</a></li> 389 `; 390 391 $(".menu-item-906 .menu-level-2").prepend(coffeeTemplate); 392 393 // $("body").addClass("submenu-visible"); 394 // $(".menu-item-906").addClass("exp"); 395} 396 397function repositionCartCountMobile() { 398 if ($("#header .cart-count").length) { 399 if ($windowWidth < bpSmall) { 400 var cartCount = $("#header .cart-count").clone(); 401 if ($(".top-navigation-bar .click-cart").length == 0) { 402 cartCount.insertBefore( 403 '.responsive-tools .toggle-window[data-target="navigation"]' 404 ); 405 } else {
406 $(".top-navigation-bar .cart-count").remove(); 407 $(".responsive-tools .click-cart").append(cartCount); 408 } 409 } 410 } 411 if ( 412 $("#header .site-name").length && 413 $(".top-navigation-bar .site-name").length == 0 414 ) { 415 if ($(".top-navigation-bar .site-name").length == 0) { 416 var headerLogo = $("#header .site-name").clone(); 417 $(".top-navigation-bar .container").prepend(headerLogo); 418 } 419 } 420} 421 422function repositionNavigationMobile() { 423 $("#header .navigation-in").append( 424 '<div class="navigation-in-bottom"></div>' 425 ); 426} 427 428var searchForm = $(".search"), 429 searchWhisperer, 430 searchElement = $(".search .query-input"), 431 searchValue; 432 433function initSearchPopup() { 434 $(".search .query-input").keyup(function () { 435 checkSearchInputValue(); 436 }); 437 438 var elementOfClicked = ".search"; 439 $(document).on("click", function (event) { 440 if (!$(event.target).closest(elementOfClicked).length) { 441 searchForm.removeClass("is-searching"); 442 } 443 }); 444} 445 446function checkSearchInputValue() { 447 searchValue = searchElement.val().length; 448 449 if (searchValue >= 3) { 450 setTimeout(() => { 451 searchWhisperer = searchForm.find(".search-whisperer"); 452 if (searchWhisperer.hasClass("active")) { 453 repositionSearchWhisperers(searchWhisperer); 454 addWhisperesMoreBtn(searchWhisperer); 455 searchForm.addClass("is-searching"); 456 } else { 457 searchForm.removeClass("is-searching"); 458 } 459 }, 1500); 460 } 461} 462 463function repositionSearchWhisperers(search) { 464 var searchDocuments = search.find(".search-whisperer-documents"); 465 var searchDocumentsCategory = search.find( 466 ".search-whisperer-documents .search-whisperer-category" 467 ); 468 var searchDocumentsTag = search.find( 469 ".search-whisperer-documents .search-whisperer-document:not(.search-whisperer-category)" 470 ); 471 var searchUl = search.find("> ul"); 472 473 if ( 474 searchDocumentsCategory.length && 475 searchDocuments.find(".search-whisperer-category-group").length == 0 476 ) { 477 searchDocumentsCategory.wrapAll( 478 '<div class="search-whisperer-category-group"></div>' 479 ); 480 searchDocuments 481 .find(".search-whisperer-category-group") 482 .prepend( 483 '<div class="search-whisperer-title">Nalezeno v kategoriÃch</div>' 484 ); 485 // addCategoryIconToSearchWhispers(searchDocumentsCategory); 486 } 487 488 if ( 489 searchDocumentsTag.length && 490 searchDocuments.find(".search-whisperer-tags-group").length == 0 491 ) { 492 searchDocumentsTag.wrapAll( 493 '<div class="search-whisperer-tags-group"></div>' 494 ); 495 searchDocuments 496 .find(".search-whisperer-tags-group") 497 .prepend('<div class="search-whisperer-title">Nalezeno v ÄláncÃch</div>'); 498 // addCategoryIconToSearchWhispers(searchDocumentsTag); 499 } 500 501 if (searchUl.length && searchUl.find(".search-whisperer-title").length == 0) { 502 searchUl.wrapAll('<div class="search-whisperer-ul-group"></div>'); 503 $( 504 '<div class="search-whisperer-title">Nalezeno v produktech</div>' 505 ).insertBefore(searchUl); 506 } 507 $(".search-whisperer-products > li").each(function () { 508 if ($(this).find(".price-final span").length == 0) { 509 $(this).find(".price-final").append("<span>s DPH</span>"); 510 } 511 }); 512} 513 514function addCategoryIconToSearchWhispers(elements) { 515 elements.each(function () { 516 $(this).prepend( 517 '<span class="category-link__icon category-link__icon--medium"><span></span><span></span><span></span></span>' 518 ); 519 }); 520} 521 522function addWhisperesMoreBtn(search) { 523 if ( 524 $(".search-whisperer-empty").length == 0 && 525 search.find(".btn").length == 0 526 ) { 527 search 528 .find(".search-whisperer-ul-group") 529 .append( 530 '<div class="text-center search-whisperer-btn"><button type="submit" class="btn btn-primary">Zobrazit vÅ¡echny produkty</button></div>' 531 ); 532 } 533} 534 535 536var loginContent = $(".in-login #content"); 537var forgotContent = $(".in-zapomenute-heslo #content"); 538var registraceContent = $(".in-registrace #content"); 539 540function repositionLogin() { 541 if ($(".in-login").length) { 542 $(".password-helper > a:first-child").remove(); 543 var loginWrapper = loginContent.find(".login-wrapper"); 544 loginContent.find("h1").text("PÅihlášenÃ"); 545 loginContent.find(".password-helper").insertBefore(loginWrapper); 546 loginContent.find(".btn.btn-secondary").text("PÅihlásit"); 547 loginContent 548 .find(".content-inner") 549 .wrapInner('<div class="login-left-panel"></div>'); 550 551 $('.login-left-panel input[name="email"]').attr("placeholder", ""); 552 $('.login-left-panel input[name="email"]').attr("id", "login-email"); 553 $('<label for="login-email">E-mail</label>').insertBefore( 554 '.login-left-panel input[name="email"]' 555 ); 556 557 $('.login-left-panel input[name="password"]').attr("placeholder", ""); 558 $('.login-left-panel input[name="password"]').attr("id", "login-password"); 559 $('<label for="login-password">Heslo</label>').insertBefore( 560 '.login-left-panel input[name="password"]' 561 ); 562 563 addLoginPanels("login"); 564 } 565 566 if ($(".in-zapomenute-heslo").length) { 567 var loginWrapper = forgotContent.find(".login-wrapper"); 568 forgotContent.find(".password-helper").insertBefore(loginWrapper); 569 forgotContent 570 .find(".content-inner") 571 .wrapInner('<div class="login-left-panel"></div>'); 572 573 addLoginPanels("zapomenute"); 574 } 575 576 if ($(".in-registrace").length) { 577 registraceContent.find("h1").text("VytvoÅit úÄet"); 578 registraceContent.find(".btn.btn-secondary").text("Zaregistrovat"); 579 registraceContent 580 .find(".content-inner") 581 .wrapInner('<div class="login-left-panel"></div>'); 582 583 registraceContent 584 .find("#register-form") 585 .append(registraceContent.find(".col-md-4 .register-soc")); 586 587 registraceContent.find(".register-soc h4").remove(); 588 589 registraceContent 590 .find(".register-soc") 591 .prepend( 592 '<div class="social-login-buttons-divider"><span>nebo</span></div>' 593 ); 594 registraceContent 595 .find('input[name="customerGroupId"]') 596 .closest("fieldset") 597 .addClass("customer-box"); 598 599 registraceContent 600 .find('input[name="password"]') 601 .closest(".form-group") 602 .addClass("width-50"); 603 604 registraceContent 605 .find('input[name="passwordAgain"]') 606 .closest(".form-group") 607 .addClass("width-50"); 608 609 registraceContent 610 .find('input[name="billCity"]') 611 .closest(".form-group") 612 .addClass("width-50"); 613 614 registraceContent 615 .find('input[name="billZip"]') 616 .closest(".form-group") 617 .addClass("width-50"); 618 619 $(".co-box.co-registration").each(function () { 620 var inst = $(this); 621 inst.find(".width-50").wrapAll('<div class="reg-column"></div>'); 622 });
623 624 registraceContent 625 .find(".register-soc") 626 .wrapInner('<div class="social-login-buttons"></div>'); 627 addLoginPanels("registration"); 628 629 $(".login-left-panel .col-md-8 fieldset:first-child h4").remove(); 630 var fullName = $("#billFullName").closest(".form-group"); 631 $(".login-left-panel .col-md-8 fieldset:first-child").prepend(fullName); 632 633 $(".js-phone-form-group").insertBefore( 634 ".login-left-panel .col-md-8 fieldset .reg-column" 635 ); 636 637 $("#captcha").closest(".form-group").addClass("form-group-captcha"); 638 } 639} 640 641function addLoginPanels(type) { 642 if (type == "zapomenute") { 643 forgotContent 644 .find(".content-inner") 645 .append('<div class="login-right-panel"></div>'); 646 var btnAppend = ` 647 <a href="/registrace" class="btn btn-secondary">Registrovat se</a> 648 `; 649 } 650 651 if (type == "login") { 652 loginContent 653 .find(".content-inner") 654 .append('<div class="login-right-panel"></div>'); 655 var btnAppend = ` 656 <a href="/registrace" class="btn btn-secondary">Registrovat se</a> 657 `; 658 } 659 660 if (type == "registration") { 661 registraceContent 662 .find(".content-inner") 663 .append('<div class="login-right-panel"></div>'); 664 var btnAppend = ""; 665 } 666 667 var loginTemplate = ` 668 <div class="login-right-panel__content"> 669 <img src="/user/documents/upload/kavovnik-logo-piktogram-3.svg" alt="logo piktogram" loading="lazy" class="img--responsive login-piktogram"> 670 <div class="login-right-panel__logo"> 671 <img src="/user/documents/upload/kavovnik-logo.svg" alt="logo" loading="lazy" class="img--responsive"> 672 </div> 673 <div class="login-right-panel__title">DÃky registraci zÃskáváte</div> 674 <div class="benefits-login-list"> 675 <div class="benefits-login-list__item"> 676 <div class="benefits-login-list__image"> 677 <img src="/user/documents/upload/benefit-1.svg" alt="Možnost opakovaných objednávek" loading="lazy" class="img--responsive"> 678 </div> 679 <div class="benefits-login-list__text">Možnost opakovaných objednávek</div> 680 </div> 681 <div class="benefits-login-list__item"> 682 <div class="benefits-login-list__image"> 683 <img src="/user/documents/upload/benefit-2.svg" alt="LehÄà práce s e-shopem" loading="lazy" class="img--responsive"> 684 </div> 685 <div class="benefits-login-list__text">LehÄà práce s e-shopem</div> 686 </div> 687 <div class="benefits-login-list__item"> 688 <div class="benefits-login-list__image"> 689 <img src="/user/documents/upload/benefit-3.svg" alt="Možnost personalizace e-shopu" loading="lazy" class="img--responsive"> 690 </div> 691 <div class="benefits-login-list__text">Možnost personalizace e-shopu</div> 692 </div> 693 <div class="benefits-login-list__item"> 694 <div class="benefits-login-list__image"> 695 <img src="/user/documents/upload/benefit-4.svg" alt="VÄrnostnà výhody" loading="lazy" class="img--responsive"> 696 </div> 697 <div class="benefits-login-list__text">VÄrnostnà výhody</div> 698 </div> 699 </div> 700 <div class="login-btn-group"> 701 ${btnAppend} 702 </div> 703 </div> 704 `; 705 706 $(".login-right-panel").append(loginTemplate); 707} 708 709 710function repositionRate() { 711 if ($("#hodnoceniobchodu").length) { 712 $("#hodnoceniobchodu").insertBefore(".custom-footer__newsletter"); 713 $("#hodnoceniobchodu h2").text("Co ÅÃkajà naÅ¡i vÄrnà zákaznÃci"); 714 $(".shop-eval-stars").next().remove(); 715 716 createSliderFromRates(); 717 } 718} 719 720function createSliderFromRates() { 721 $("#hodnoceniobchodu .shop-eval").each(function () { 722 var rateItems = $(this); 723 724 var rateSlide = rateItems.find(".vote-wrap"); 725 726 rateSlide.wrap('<div class="swiper-slide"></div>'); 727 728 rateItems.wrapInner('<div class="swiper-container js-slider-rate"></div>'); 729 730 rateItems 731 .find(".swiper-container") 732 .wrapInner('<div class="swiper-wrapper"></div>'); 733 734 rateItems.wrapInner( 735 '<div class="js-slider-group slider-group-rate"></div>' 736 ); 737 738 var arrowTemplate = 739 '<div class="swiper-arrow swiper-arrow-next js-swiper-arrow-next">' + 740 '<div class="swiper-arrow-content">' + 741 "<span></span>" + 742 "</div>" + 743 "</div>" + 744 '<div class="swiper-arrow swiper-arrow-prev js-swiper-arrow-prev">' + 745 '<div class="swiper-arrow-content">' + 746 "<span></span>" + 747 "</div>" + 748 "</div>"; 749 rateItems.find(".slider-group-rate").append(arrowTemplate); 750 751 ratesSliderCreate(); 752 }); 753} 754 755function ratesSliderCreate() { 756 if ($(".js-slider-rate").length) { 757 $(".js-slider-rate").each(function () { 758 var inst = $(this),
759 swiperBlock = inst.closest(".js-slider-group"), 760 // swiperPagination = swiperBlock.find(".js-swiper-pagination"), 761 swiperArrowPrev = swiperBlock.find(".js-swiper-arrow-prev"), 762 swiperArrowNext = swiperBlock.find(".js-swiper-arrow-next"); 763 764 var productsBreakpoints = { 765 200: { 766 slidesPerView: 1, 767 }, 768 570: { 769 slidesPerView: 2, 770 // slidesPerGroup: 1, 771 }, 772 771: { 773 slidesPerView: 3, 774 // slidesPerGroup: 1, 775 }, 776 992: { 777 slidesPerView: 3, 778 // slidesPerGroup: 1, 779 }, 780 1200: { 781 slidesPerView: 3, 782 // slidesPerGroup: 1, 783 }, 784 1440: { 785 slidesPerView: 3, 786 // slidesPerGroup: 1, 787 }, 788 }; 789 790 var mySwiper = new Swiper(inst, { 791 spaceBetween: 0, 792 lazy: true, 793 loop: true, 794 speed: 600, 795 // autoplay: { 796 // // speed: 3000, 797 // }, 798 // pagination: { 799 // el: swiperPagination, 800 // clickable: true, 801 // }, 802 navigation: { 803 nextEl: swiperArrowNext, 804 prevEl: swiperArrowPrev, 805 }, 806 breakpoints: productsBreakpoints, 807 }); 808 }); 809 } 810} 811 812 813function repositionAboutUs() { 814 if ($(".in-o-nas").length) { 815 sliderTimeline(); 816 } 817} 818 819function sliderTimeline() { 820 if ($(".js-slider-timeline").length) { 821 var inst = $(".js-slider-timeline"), 822 swiperBlock = inst.closest(".js-slider-group"), 823 // swiperPagination = swiperBlock.find(".js-swiper-pagination"), 824 swiperArrowPrev = swiperBlock.find(".js-swiper-arrow-prev"), 825 swiperArrowNext = swiperBlock.find(".js-swiper-arrow-next"); 826 827 var productsBreakpoints = { 828 200: { 829 freeMode: false, 830 slidesPerView: 1, 831 }, 832 480: { 833 slidesPerView: 1, 834 // slidesPerGroup: 1, 835 }, 836 771: { 837 freeMode: true, 838 slidesPerView: "auto", 839 }, 840 992: { 841 freeMode: true, 842 slidesPerView: "auto", 843 }, 844 1200: { 845 freeMode: true, 846 slidesPerView: "auto", 847 }, 848 1440: { 849 freeMode: true, 850 slidesPerView: "auto", 851 // slidesPerGroup: 1, 852 }, 853 }; 854 855 var mySwiper = new Swiper(inst, { 856 spaceBetween: 30, 857 lazy: true, 858 loop: false, 859 speed: 600, 860 // pagination: { 861 // el: swiperPagination, 862 // clickable: true, 863 // }, 864 navigation: { 865 nextEl: swiperArrowNext, 866 prevEl: swiperArrowPrev, 867 }, 868 breakpoints: productsBreakpoints, 869 }); 870 } 871} 872 873 874function repositionBasket() { 875 if ($(".id--16").length) { 876 // $(".cart-content .next-step-back").text("Späť do Obchodu"); 877 $(".order-summary-inner").append('<div class="next-btn"></div>'); 878 $(".order-summary-inner .next-btn").append( 879 $(".cart-content .next-step-forward") 880 ); 881 882 $(".cart-content .next-step .next-step-back").addClass("btn btn-secondary"); 883 $(".cart-content .next-step .next-step-back").text("ZpÄt do koÅ¡Ãku"); 884 885 $(".cart-content .order-summary-inner .next-btn").insertBefore( 886 "#checkoutSidebar .cart-content > .next-step" 887 ); 888 889 $("#checkoutSidebar .cart-content .next-btn span").text( 890 "PokraÄovat na kontaktnà údaje" 891 ); 892 893 $(".cart-inner").prepend($("ol.cart-header")); 894 895 $(".co-delivery-method h4").text("Způsob dopravy"); 896 $(".co-payment-method h4").text("Způsob platby"); 897 898 $(".order-summary-inner h4:first-child").text("Položky v koÅ¡Ãku"); 899 900 $( 901 ".order-summary-inner .order-summary-item.helper, .order-summary-inner .shipping-billing-summary, .order-summary-inner .order-summary-item.price" 902 ).wrapAll('<div class="order-summar-result"></div>'); 903 $(".order-summary").append( 904 '<div class="order-summary-inner order-summary-inner-ext"></div>' 905 ); 906 $(".order-summary-inner-ext").append($(".order-summar-result")); 907 $("<h4>Shrnutà objednávky</h4>").insertBefore( 908 ".order-summary-inner-ext .order-summary-item.helper" 909 ); 910 911 $(".cart-toggle-unselected-options").text(""); 912 $(".cart-toggle-unselected-options").append("<span>ZmÄnit</span>"); 913 914 $(".cart-item-price").append("s DPH"); 915 916 if ($(".cart-item-gift").length) { 917 var giftName = $(".cart-item-gift span").text(); 918 var giftTemplate = ` 919 <div class="recapitulation-single recapitulation-shipping-billing"> 920 <strong class="recapitulation-shipping-billing-info"> 921 <span>${giftName}</span> 922 Dárek zdarma 923 </strong> 924 </div> 925 `; 926 927 setTimeout(() => { 928 $("#shipping-billing-summary").prepend($(giftTemplate)); 929 }, 100); 930 } 931 932 if ($(".cart-items .recapitulation-single").length) { 933 var discountName = $(".cart-items .recapitulation-single strong").text(); 934 var discountNameFormatted = discountName.split("Sleva").pop().trim(); 935 var code = getShoptetDataLayer().cartInfo.discountCoupon.code; 936 var discountTemplate = ` 937 <div class="recapitulation-single recapitulation-shipping-billing"> 938 <strong class="recapitulation-shipping-billing-info"> 939 <span class="txt-red">-${discountNameFormatted}</span> 940 <div>Sleva: <small>${code}</small></div> 941 </strong> 942 </div> 943 `; 944 945 setTimeout(() => { 946 $("#shipping-billing-summary").prepend($(discountTemplate)); 947 }, 100); 948 } 949 950 var summaryWrapper = $(".order-summar-result .price-wrapper"); 951 summaryWrapper.find(".price-label.price-primary").text("Celková cena"); 952 summaryWrapper.find(".price.price-primary").append("<span> s DPH</span>"); 953 summaryWrapper.find(".price-label.price-secondary").text(""); 954 summaryWrapper 955 .find(".price.price-secondary") 956 .append("<span> bez DPH</span>"); 957 958 if ($(".co-box.co-delivery-method").length) { 959 var deliveryMethod = $( 960 ".co-box.co-delivery-method .shipping-billing-table .radio-wrapper" 961 ); 962 963 setTimeout(() => { 964 deliveryMethod.each(function () { 965 var inst = $(this); 966 if (inst.find(".question-tooltip").length) { 967 var questionText = inst 968 .find(".question-tooltip") 969 .attr("data-original-title"); 970 inst.find(".question-tooltip").closest("span").remove(); 971 inst 972 .find(".payment-info") 973 .append( 974 '<span class="payment-additional-text">' +
975 questionText + 976 "</span>" 977 ); 978 } 979 }); 980 }, 200); 981 } 982 983 var firstSelect = false; 984 if ($("#order-shipping-methods").length) { 985 setTimeout(() => { 986 $("#order-shipping-methods input").attr("checked", false); 987 $("#order-shipping-methods .radio-wrapper").removeClass("active"); 988 $("#order-shipping-methods label").removeClass("active"); 989 990 $("#order-billing-methods input").attr("checked", false); 991 $("#order-billing-methods .radio-wrapper").removeClass("active"); 992 $("#order-billing-methods label").removeClass("active"); 993 994 $("#order-billing-methods .radio-wrapper").addClass( 995 "unselected-option" 996 ); 997 998 $("#order-shipping-methods .radio-wrapper").click(function () { 999 if (!firstSelect) { 1000 $("#order-billing-methods .radio-wrapper").removeClass( 1001 "unselected-option" 1002 ); 1003 $("#order-billing-methods input").attr("checked", false); 1004 $("#order-billing-methods label").removeClass("active"); 1005 firstSelect = true; 1006 } 1007 }); 1008 }, 100); 1009 } 1010 1011 var getShoptetCustomer = getShoptetDataLayer().customer; 1012 if (getShoptetCustomer.groupId != 6) { 1013 $('.radio-wrapper[data-id="billing-289"]').remove(); 1014 } 1015 } 1016 1017 if ($(".id--15").length) { 1018 $(".order-summary-item.summary-thx") 1019 .closest(".recapitulation-wrapper") 1020 .hide(); 1021 1022 $(".content-inner h1").text("DÄkujeme vám za vaÅ¡i objednávku"); 1023 var number = $(".reca-number strong").text(); 1024 $(".content-inner h1").append('<span class="code">Ä.' + number + "</span>"); 1025 1026 $(".order-summary-heading").wrap( 1027 '<div class="order-summary-heading-group"></div>' 1028 ); 1029 1030 $(".order-summary-heading-group").prepend( 1031 '<img src="/user/documents/upload/icons/cart-complete.svg">' 1032 ); 1033 1034 $( 1035 "<p>VaÅ¡e objednávka se právÄ zpracovává a dalšà infomace vám pÅÃjdou na email.</p>" 1036 ).insertAfter(".order-summary-heading-group"); 1037 1038 var contactBanner = ` 1039 <div class="contact-group"> 1040 <h4 class="txt-c">PotÅebujete s nÄÄÃm pomoci?</h4> 1041 <div class="box box-white"> 1042 <div class="margin-bottom-2"><img src="/user/logos/kavovnik_logo-piktogram-v2_1.png" alt="" class="img--responsive" loading="lazy"></div> 1043 <div class="margin-bottom-3"> 1044 <p>H-PARK Brno <br> HerÅ¡pická 1035/11f</p> 1045 </div> 1046 <div class="contact-list"><a href="tel:774772772" class="contact-list__item tel"> <span class="contact-list__icon"></span> <span class="contact-list__text">774 772 772</span> </a> <a href="mailto:[email protected]" class="contact-list__item mail"> <span class="contact-list__icon"></span> <span class="contact-list__text">[email protected]</span> </a></div> 1047 <div class="contact-subtext">OtevÃracà doba</div> 1048 </div> 1049 </div> 1050 `; 1051 1052 // <p><span class="p-subtext">PondÄlà â Ätvrtek: <strong>10 â 17</strong> hod.</span> <span class="p-subtext">Pátek: <strong>10 â 16</strong> hod. </span></p> 1053 1054 $(".content-inner").append($(contactBanner)); 1055 1056 // $(".order-summary-heading").wrap('<div class="reca-first"></div>'); 1057 // $(".reca-first").append($(".order-summary-item.total")); 1058 // $(".reca-first").append($(".reca-number")); 1059 // $(".order-summary-item.summary-thx").remove(); 1060 // $(".order-complete-links") 1061 // .closest(".recapitulation-wrapper") 1062 // .addClass("reca-btn"); 1063 // $(".cart-table tr").each(function () { 1064 // $(this) 1065 // .find(".cart-p-image") 1066 // .wrapInner('<span class="cart-p-image-inner"></span>'); 1067 // }); 1068 } 1069 1070 if ($(".id--17").length) { 1071 // $(".cart-content .next-step-back").text("Späť do Obchodu"); 1072 1073 $(".order-summary-inner").append('<div class="next-btn"></div>'); 1074 $(".order-summary-inner .next-btn").append( 1075 $(".cart-content .next-step-forward") 1076 ); 1077 1078 $(".cart-content .next-step .next-step-back").addClass("btn btn-secondary"); 1079 $(".cart-content .next-step .next-step-back").text("ZpÄt do koÅ¡Ãku"); 1080 1081 $(".cart-content .order-summary-inner .next-btn").insertBefore(
1082 "#checkoutSidebar .cart-content > .next-step" 1083 ); 1084 1085 $(".cart-content .next-btn").append( 1086 $(".cart-content .next-step button.btn") 1087 ); 1088 $("#checkoutSidebar .cart-content .next-btn .btn span").text( 1089 "Objednávka zavazujÃcà k platbÄ" 1090 ); 1091 $("#checkoutSidebar .cart-content .next-btn .btn span:last-child").remove(); 1092 1093 $(".cart-inner").prepend($("ol.cart-header")); 1094 1095 $(".co-contact-information h4").text("Kontaktnà údaje"); 1096 $(".co-billing-address h4").text("FakturaÄnà adresa"); 1097 1098 $(".order-summary-inner h4:first-child").text("Položky v koÅ¡Ãku"); 1099 1100 $( 1101 ".order-summary-inner .order-summary-item.helper, .order-summary-inner .shipping-billing-summary, .order-summary-inner .order-summary-item.price" 1102 ).wrapAll('<div class="order-summar-result"></div>'); 1103 $(".order-summary").append( 1104 '<div class="order-summary-inner order-summary-inner-ext"></div>' 1105 ); 1106 $(".order-summary-inner-ext").append($(".order-summar-result")); 1107 $("<h4>Shrnutà objednávky</h4>").insertBefore( 1108 ".order-summary-inner-ext .order-summary-item.helper" 1109 ); 1110 1111 $(".cart-toggle-unselected-options").text(""); 1112 $(".cart-toggle-unselected-options").append("<span>ZmÄnit</span>"); 1113 1114 $(".cart-item-name").closest(".cart-items").addClass("cart-items--first"); 1115 1116 if ($(".cart-item-gift").length) { 1117 var giftName = $(".cart-item-gift span").text(); 1118 var giftTemplate = ` 1119 <div class="recapitulation-single recapitulation-shipping-billing"> 1120 <strong class="recapitulation-shipping-billing-info"> 1121 <span>${giftName}</span> 1122 Dárek zdarma 1123 </strong> 1124 </div> 1125 `; 1126 1127 setTimeout(() => { 1128 $("#shipping-billing-summary").prepend($(giftTemplate)); 1129 }, 100); 1130 } 1131 1132 if ($(".cart-items--first .recapitulation-single").length) { 1133 var discountName = $( 1134 ".cart-items--first .recapitulation-single strong" 1135 ).text(); 1136 var discountNameFormatted = discountName.split("Sleva").pop().trim(); 1137 var code = getShoptetDataLayer().cartInfo.discountCoupon.code; 1138 var discountTemplate = ` 1139 <div class="recapitulation-single recapitulation-shipping-billing"> 1140 <strong class="recapitulation-shipping-billing-info"> 1141 <span class="txt-red">-${discountNameFormatted}</span> 1142 <div>Sleva: <small>${code}</small></div> 1143 </strong> 1144 </div> 1145 `; 1146 setTimeout(() => { 1147 $("#shipping-billing-summary").prepend($(discountTemplate)); 1148 }, 100); 1149 } 1150 1151 if ( 1152 $(".order-summary-inner > .cart-items:not(.cart-items--first)").length 1153 ) { 1154 // $('.order-summary-inner > .cart-items:not(.cart-items--first) .') 1155 setTimeout(() => { 1156 $("#shipping-billing-summary").append( 1157 $( 1158 ".order-summary-inner > .cart-items:not(.cart-items--first) .recapitulation-single" 1159 ) 1160 ); 1161 // $("#shipping-billing-summary").prepend($(discountTemplate)); 1162 }, 100); 1163 } 1164 1165 if ($('label[for="login"]').length) { 1166 $('label[for="login"]') 1167 .closest(".form-group") 1168 .addClass("form-group--login"); 1169 $(".form-group--login label").remove(); 1170 1171 var loginTemplate = ` 1172 <div class="form-group--login-content"> 1173 <div class="form-group--login-name"> 1174 Máte již u nás úÄet? 1175 </div> 1176 <div class="form-group--login-text"> 1177 PÅihlaÅ¡te se pro jednoduššà práci s e-shopem. 1178 </div> 1179 </div> 1180 `; 1181 1182 $(".form-group--login").prepend($(loginTemplate)); 1183 $(".form-group--login .btn").text("PÅihlásit"); 1184 } 1185 1186 $("#email").closest(".form-group").addClass("w-50"); 1187 $("#companyId").closest(".form-group").addClass("w-50"); 1188 $("#vatId").closest(".form-group").addClass("w-50"); 1189 // $("#billStreet").closest(".form-group").addClass("w-66"); 1190 $("#billCity").closest(".form-group").addClass("w-66"); 1191 $("#deliveryCity").closest(".form-group").addClass("w-66"); 1192 $("#billZip").closest(".form-group").addClass("w-33"); 1193 $("#deliveryZip").closest(".form-group").addClass("w-33"); 1194 $(".js-phone-form-group").addClass("w-50"); 1195 1196 var summaryWrapper = $(".order-summar-result .price-wrapper"); 1197 summaryWrapper.find(".price-label.price-primary").text("Celková cena"); 1198 summaryWrapper.find(".price.price-primary").append("<span> s DPH</span>"); 1199 summaryWrapper.find(".price-label.price-secondary").text(""); 1200 summaryWrapper 1201 .find(".price.price-secondary") 1202 .append("<span> bez DPH</span>"); 1203 1204 var inputCity = $(".co-billing-address fieldset > .w-66").prev(); 1205 inputCity.insertAfter(".co-billing-address fieldset > .w-33"); 1206 1207 setTimeout(() => { 1208 var inputCityShippin = $( 1209 ".co-shipping-address .form-option-block > .w-66" 1210 ).prev(); 1211 inputCityShippin.insertAfter( 1212 ".co-shipping-address .form-option-block > .w-33" 1213 ); 1214 }, 500); 1215 1216 // $(".co-box.co-box-additional").insertAfter(".cart-content .order-summary"); 1217 // $(".co-box.co-box-additional .js-hidden#note").addClass("visible"); 1218 // $( 1219 // '<label for="remark" style="display: block; margin-bottom: 10px;">Poznámka k objednávce</label>' 1220 // ).insertBefore("#remark"); 1221 // $("#remark").attr("placeholder", ""); 1222 1223 $("#billCountryId").closest(".form-group").addClass("country-form-group"); 1224 } 1225 1226 // Change Free delivery Range 1227 reorderBasketElements(); 1228} 1229 1230function reorderBasketElements() { 1231 $(".step.step-1 span").text("KoÅ¡Ãk"); 1232 $(".step-2 span").text("Doprava a platba"); 1233 $(".step-3 span").text("Kontaktnà informace"); 1234 if ($(".id--9").length) { 1235 $(".sidebar-in-cart").append($(".summary-wrapper .next-step")); 1236 1237 $(".summary-wrapper .box").append('<div class="next-btn"></div>'); 1238 1239 $(".summary-wrapper .next-btn").append( 1240 $(".sidebar-in-cart .next-step-forward") 1241 ); 1242 1243 $(".next-step--cart .next-step-back").addClass("btn btn-secondary"); 1244 1245 $(".cart-content.summary-wrapper .next-btn").insertBefore( 1246 ".sidebar-in-cart > .next-step" 1247 ); 1248 1249 $(".sidebar-in-cart > .next-btn .btn").text("PokraÄovat na výbÄr dopravy"); 1250 1251 $(".cart-content.summary-wrapper .box").prepend( 1252 "<h4>Shrnutà objednávky</h4>" 1253 ); 1254 1255 // Add title to discount coupon 1256 if ($(".discount-coupon").length) { 1257 var discountCoupon = $(".discount-coupon"); 1258 discountCoupon.closest(".extras-col").addClass("extras-col-basket"); 1259 1260 discountCoupon.prepend('<div class="h4">Máte slevový kupón?</div>'); 1261 1262 discountCoupon.find("input").attr("placeholder", "Vložte kód"); 1263 discountCoupon.find(".btn").text("PoužÃt"); 1264 } 1265 1266 if ($(".cart-summary #fvstudio-delivery-info").length) { 1267 $(".cart-summary #fvstudio-delivery-info").insertAfter( 1268 ".cart-content.summary-wrapper" 1269 ); 1270 $("#fvstudio-delivery-info").addClass("extras-col"); 1271 $("#fvstudio-delivery-info").wrapInner('<div class="extras-wrap"></div>'); 1272 1273 $(".cart-summary .gift").insertAfter("#fvstudio-delivery-info .delivery"); 1274 } else { 1275 $(".cart-summary .extras-col:not(.extras-col-basket)").insertAfter( 1276 ".cart-content.summary-wrapper" 1277 ); 1278 } 1279 1280 $(".cart-summary .discount-coupon").insertBefore( 1281 ".cart-content.summary-wrapper" 1282 ); 1283 1284 $(".cart-inner").prepend($("ol.cart-header")); 1285 1286 if ($(".free-gift").length) { 1287 $('<div class="free-gift-title">Dárky k objednávce</div>').insertBefore( 1288 ".free-gift" 1289 ); 1290 1291 $(".free-gifts li").each(function () { 1292 var inst = $(this); 1293 inst 1294 .find(".free-gift-label") 1295 .append( 1296 '<div class="text-right"><button class="btn btn-default"><span class="btn-classic">Vybrat</span><span class="btn-selected">Vybráno</span></button></div>' 1297 ); 1298 }); 1299 } 1300 1301 var summaryWrapper = $(".summary-wrapper .price-wrapper"); 1302 summaryWrapper.find(".price-label.price-primary").text("Celková cena"); 1303 summaryWrapper.find(".price.price-primary").append("<span> s DPH</span>"); 1304 summaryWrapper.find(".price-label.price-secondary").text(""); 1305 summaryWrapper 1306 .find(".price.price-secondary") 1307 .append("<span> bez DPH</span>"); 1308 1309 $(".cart-table").prepend( 1310 "<thead><th>Produkt</th><th></th><th>MnožstvÃ</th><th>Dostupnost</th><th>Cena</th></thead>" 1311 ); 1312 1313 // Reposition card table items 1314 if ($(".cart-table").length) { 1315 $(".cart-table tr.removeable").each(function () { 1316 var cartItem = $(this); 1317 var cartName = cartItem.find(".p-name"); 1318 var cartAvailability = cartItem.find(".p-availability"); 1319 var cartQuantity = cartItem.find(".p-quantity"); 1320 // var cartRelated = cartItem.find(".show-related"); 1321 var cartPrice = cartItem.find(".p-price"); 1322 var cartPriceTotal = cartItem.find(".p-total"); 1323 var cartDiscount = cartItem.find(".p-discount"); 1324 1325 cartPrice.wrapInner( 1326 '<span class="p-price-content js-price-content"></span>' 1327 ); 1328 // cartDiscount.wrapInner( 1329 // '<span class="p-discount-content js-discount-content"></span>' 1330 // ); 1331 1332 if ($(window).width() > 768) { 1333 cartQuantity.insertAfter(cartName); 1334 } else { 1335 cartName.append(cartQuantity); 1336 } 1337 cartItem.find(".price-final").append("<span> s DPH</span>"); 1338 cartPriceTotal.append(cartPrice.find(".js-price-content")); 1339 // cartPriceTotal.prepend(cartDiscount.find(".js-discount-content")); 1340 }); 1341 1342 $(".cart-table tr.related .cart-related-product").each(function () { 1343 var cartItem = $(this); 1344 var cartName = cartItem.find(".cart-related-name"); 1345 var cartAvail = cartItem.find(".cart-related-availability").clone(); 1346 var cartPrice = cartItem.find(".price"); 1347 1348 cartName.append(cartAvail); 1349 cartName.append(cartPrice); 1350 }); 1351 } 1352 } 1353} 1354 1355 1356function repositionCategory() { 1357 repoTopBannerCategory();
1358 1359 repositionSideFilterAccordion(); 1360 1361 hideProductWithoutVOP(); 1362 1363 $("#category-filter-hover").addClass("visible"); 1364 $(".filter-sections .filter-section-button").hide(); 1365 $(".filters-wrapper").prepend('<div class="filter-title">Filtrace</div>'); 1366} 1367 1368function hideProductWithoutVOP() { 1369 var shoptetCustomer = getShoptetDataLayer().customer; 1370 if (shoptetCustomer.priceListId == 3) { 1371 $(".products-block .product").each(function (i) { 1372 var inst = $(this); 1373 if (inst.find(".flag-velkoobchodna-cena").length == 0) { 1374 inst.remove(); 1375 } 1376 }); 1377 1378 $(".products-top").each(function () { 1379 var inst = $(this); 1380 if (inst.find(".swiper-slide .product").length == 0) { 1381 inst.addClass("is-hidden"); 1382 } 1383 }); 1384 } 1385} 1386 1387function repoTopBannerCategory() { 1388 if ( 1389 $(".category-top").length && 1390 $("#content-wrapper > .category-top").length == 0 1391 ) { 1392 $("#content-wrapper").prepend($(".category-top")); 1393 1394 var categoryTitle = $("#navigation-1 a").text(); 1395 $(".category-top").prepend( 1396 '<div class="category-subtitle">' + categoryTitle + "</div>" 1397 ); 1398 } 1399 if ($("#content > .category-top").length) { 1400 $("#content > .category-top").remove(); 1401 } 1402 1403 if ($("#category-header").length) { 1404 addSortDropdown(); 1405 } 1406 1407 if ($(".filter-section-parametric-id-15").length) { 1408 // addCoffeeList(); 1409 } 1410 1411 if ($(".filter-section-parametric-id-36").length) { 1412 changeWeightLabel(); 1413 } 1414 1415 if ($(".category-perex > p:hidden").length) { 1416 var paragraphLast = $(".category-perex > p:hidden").prev(); 1417 paragraphLast.append($(".category-perex .fvstudio-showmore-wrapper")); 1418 } 1419 1420 $(".pagination-loader .btn").text("NAÄÃST DALÅ Ã"); 1421} 1422 1423function repositionFilterSections() { 1424 $("#filters #category-filter-hover .filter-section input").each(function () { 1425 var inst = $(this); 1426 if (inst.prop("checked") === true) { 1427 inst.closest(".filter-section").addClass("is-active"); 1428 } 1429 }); 1430 if ($(".ui-slider-range").length) { 1431 var loc = window.location.href; 1432 if (/priceMin/.test(loc)) { 1433 $(".slider-wrapper").addClass("is-active"); 1434 } 1435 } 1436 if ($(window).width() < 768 || $(".mobile").length) { 1437 if ($("#filters.visible").length) { 1438 $(".filters-unveil-button-wrapper a").trigger("click"); 1439 } 1440 } else { 1441 $("#category-filter-hover").addClass("visible"); 1442 $(".filter-sections .filter-section-button").hide(); 1443 } 1444} 1445 1446function addSortDropdown() { 1447 if ($("#category-header > .dropdown").length == 0) { 1448 $("#category-header").prepend( 1449 '<div class="dropdown dropdown--classic js-dropdown-block"></div>' 1450 ); 1451 var checkedText = $('#category-header input[type="radio"]:checked') 1452 .next() 1453 .text(); 1454 $("#category-header .js-dropdown-block").prepend( 1455 '<div class="dropdown__trigger js-dropdown-trigger">' + 1456 checkedText + 1457 "</div>" 1458 ); 1459 $("#category-header .js-dropdown-block").append( 1460 '<div class="dropdown__content"></div>' 1461 ); 1462 $("#category-header .dropdown__content").append($("#category-header form")); 1463 } 1464} 1465 1466function changeWeightLabel() { 1467 $(".filter-section-parametric-id-36 fieldset > div input").each(function () { 1468 var input = $(this); 1469 var label = input.next(); 1470 var name = input.val().trim(); 1471 var filerCountClone = label.find(".filter-count").clone(); 1472 var text; 1473 if (name.includes(".")) { 1474 if (name === "0.12") { 1475 text = "120g"; 1476 label.text(text); 1477 label.append(filerCountClone); 1478 } 1479 if (name === "0.25") { 1480 text = "250g"; 1481 label.text(text); 1482 label.append(filerCountClone); 1483 } 1484 if (name === "0.5") { 1485 text = "500g"; 1486 label.text(text); 1487 label.append(filerCountClone); 1488 } 1489 if (name === "0.7") { 1490 text = "700g"; 1491 label.text(text); 1492 label.append(filerCountClone); 1493 } 1494 } else { 1495 label.text(name + "kg"); 1496 label.append(filerCountClone); 1497 } 1498 }); 1499} 1500 1501function addCoffeeList() { 1502 if ($(".category-top > .coffee-list-type").length == 0) { 1503 var coffeeCategoryTemplate = ` 1504 <li class="coffee-list-type"> 1505 1506 </li> 1507 `; 1508 1509 $(".category-top").append(coffeeCategoryTemplate); 1510 1511 $(".filter-section-parametric-id-15 fieldset > div input").each( 1512 function () { 1513 var input = $(this); 1514 var name = input.val().trim(); 1515 var nameFormatted = toNormalForm(name.toLowerCase()); 1516 var url = input.attr("data-url"); 1517 if (input.prop("checked")) { 1518 var checked = "is-active"; 1519 } 1520 var templateItem = ` 1521 <a href="${url}" class="coffee-list-link ${checked} ${nameFormatted}">${name}</a> 1522 `; 1523 1524 $(".category-top .coffee-list-type").append(templateItem); 1525 } 1526 ); 1527 1528 // <a href="/kava/?pv15=15" class="coffee-list-link zrnkova">Zrnková</a> 1529 // <a href="/kava/?pv15=15" class="coffee-list-link bez-kofeinu">Bez kofeinu</a> 1530 // <a href="/kava/?pv15=36" class="coffee-list-link mleta">Mletá</a> 1531 // <a href="/kava/?pv15=39" class="coffee-list-link kapsle">Kapsle</a> 1532 } 1533} 1534 1535function toNormalForm(str) { 1536 return str.normalize("NFD").replace(/[\u0300-\u036f]/g, ""); 1537} 1538 1539function repositionSideFilterAccordion() { 1540 body.addClass("side-filter-accordion"); 1541 1542 // $(".slider-wrapper").addClass(classIsActive); 1543} 1544 1545function initFilterAccordion() { 1546 $("#filters h4") 1547 .closest("div") 1548 .each(function () { 1549 if ($(this).find(".filter-label.active").length) { 1550 $(this).addClass("is-active"); 1551 } 1552 if ($(this).find(".ui-slider-range").length) { 1553 var percentage = parseInt( 1554 $(this).find(".ui-slider-range")[0].style.width, 1555 10 1556 ); 1557 if (percentage < 100) { 1558 $(this).addClass("is-active"); 1559 } 1560 } 1561 });
1562 1563 $("#filters .filter-section h4, #filters .slider-wrapper h4").on( 1564 "click", 1565 function () { 1566 var inst = $(this); 1567 var thisAccordionItem = inst.closest("div"); 1568 if (thisAccordionItem.hasClass("is-active")) { 1569 thisAccordionItem.toggleClass("is-active"); 1570 } else { 1571 inst.closest("div").addClass("is-active"); 1572 } 1573 return false; 1574 } 1575 ); 1576} 1577 1578function repositionFiltersContent() { 1579 // $(".slider-wrapper").addClass(classIsActive); 1580 // $(".toggle-filters").trigger("click"); 1581} 1582 1583 1584function repositionContact() { 1585 if ($(".in-kontakt").length) { 1586 // $(".contact-image-block").insertBefore(".content-wrapper-in"); 1587 // $(".form-panel > p:first-child").text("NapÃÅ¡te nám"); 1588 $("#formContact").prev().remove(); 1589 $("#formContact").prev().remove(); 1590 $("#formContact").next().remove(); 1591 $( 1592 "#formContact .js-validated-element-wrapper.consents.consents-first" 1593 ).remove(); 1594 $("#formContact .btn").val("Odeslat zprávu"); 1595 1596 // $(".content-inner article > div").append( 1597 // '<div class="contact-map" id="contact-map"></div>' 1598 // ); 1599 1600 // var center = SMap.Coords.fromWGS84(16.6041797, 49.1737831); 1601 // var mapa = new SMap(JAK.gel("contact-map"), center, 17); 1602 // mapa.addDefaultLayer(SMap.DEF_BASE).enable(); 1603 // // m.addDefaultControls(); 1604 1605 // var o = { title: "Posun mapy" }; 1606 // var c = new SMap.Control.Compass(o); 1607 // mapa.addControl(c, { right: "30px", top: "25px" }); 1608 1609 // var o = { title: "Zoom" }; 1610 // var c = new SMap.Control.Zoom(o); 1611 // mapa.addControl(c, { right: "30px", top: "110px" }); 1612 1613 // var layer = new SMap.Layer.Marker(); 1614 // mapa.addLayer(layer); 1615 // layer.enable(); 1616 1617 // var options = {}; 1618 // var marker = new SMap.Marker(center, "myMarker", options); 1619 // layer.addMarker(marker); 1620 } 1621} 1622 1623 1624var detailHeader; 1625var detailHeaderInner; 1626var detailImageWrapper; 1627var detailInfoWrapper; 1628var detailInfoHeadline; 1629 1630function repositionDetail() { 1631 if ($(".type-detail").length) { 1632 detailHeader = $(".p-detail-inner"); 1633 detailHeaderInner = $(".p-detail-inner-header"); 1634 detailProductTop = $(".product-top"); 1635 detailImageWrapper = $(".product-top > .p-image-wrapper"); 1636 detailInfoWrapper = $(".product-top > .p-info-wrapper"); 1637 1638 // reposition detail info 1639 repositionDetailHeader(); 1640 // reposition detail products 1641 repositionDetailProducts(); 1642 1643 // repositionDetailParameterToNewTab(); 1644 1645 $('.shp-tab[data-testid="tabBrand"] a').text("Historie znaÄky"); 1646 1647 repositionDetailParametersTable(); 1648 1649 repositionImageFlags(); 1650 1651 detailInfoWrapper 1652 .find( 1653 ".detail-parameters .extended-description:not(.highlight-parameters) tr th" 1654 ) 1655 .text("Varianty:"); 1656 1657 detailInfoWrapper.find(".add-to-cart-button").text("PÅidat do koÅ¡Ãku"); 1658 1659 // detailInfoWrapper.append($(".extended-description")); 1660 1661 $(".basic-description > h3:first-child").text("Popis"); 1662 $(".shp-tab-link[href='#description']").text("Popis a parametry"); 1663 1664 $(".basic-description iframe").each(function () { 1665 $(this).wrap('<div class="iframe-responsive"></div>'); 1666 }); 1667 1668 if (detailImageWrapper.find(".flag-freeshipping").length) { 1669 detailImageWrapper 1670 .find(".flag-freeshipping .flag-text") 1671 .text("Doprava zdarma"); 1672 if (detailImageWrapper.find(".flags-default").length) { 1673 detailImageWrapper 1674 .find(".flags-default") 1675 .prepend(detailImageWrapper.find(".flag-freeshipping")); 1676 } else { 1677 detailImageWrapper 1678 .find(".p-image") 1679 .prepend('<div class="flags flags-default"></div>'); 1680 detailImageWrapper 1681 .find(".flags-default") 1682 .prepend(detailImageWrapper.find(".flag-freeshipping")); 1683 } 1684 } 1685 1686 // if ($(".p-thumbnails-wrapper").length) { 1687 // detailImageWrapper.find(".p-image").addClass("p-image-sticky"); 1688 // } 1689 1690 var shoptetCustomer = getShoptetDataLayer().customer; 1691 if (shoptetCustomer.priceListId == 3) { 1692 if (detailImageWrapper.find(".flag-velkoobchodna-cena").length == 0) { 1693 $(".detail-submit-block").remove(); 1694 } 1695 1696 if ($(".products-alternative-block").length) { 1697 if ($(".products-alternative-block .product").length == 0) { 1698 $(".products-alternative-block").remove(); 1699 } 1700 } 1701 1702 if ($(".products-related-block").length) { 1703 if ($(".products-related-block .product").length == 0) { 1704 $(".products-related-block").remove(); 1705 } 1706 } 1707 } 1708 1709 detailNotAvailable(); 1710 1711 addHiddenDescriptionContent(); 1712 1713 $(".benefitBanner .h4").remove(); 1714 1715 repoPositionBenefitDetail(); 1716 } 1717} 1718 1719function repoPositionBenefitDetail() { 1720 $(".position--benefitProduct").insertBefore(".detail-submit-block"); 1721 1722 const $title = $(".position--benefitProduct .benefitBanner__title"); 1723 1724 if ($(".flag-freeshipping").length) { 1725 $title.text("PÅidejte si kávu do koÅ¡Ãku a máte dopravu zdarma"); 1726 } else { 1727 $title.text("doprava zdarma od 2 500KÄ"); 1728 } 1729} 1730 1731function addHiddenDescriptionContent() { 1732 const $container = $("#description .description-inner"); 1733 1734 if (!$container.length) return; 1735 1736 // poÄkáme na render (Shoptet niekedy dosádza obsah neskôr) 1737 setTimeout(function () { 1738 const fullHeight = $container.prop("scrollHeight"); 1739 1740 // ak je obsah krátky â niÄ nerob 1741 if (fullHeight <= 180) return; 1742 1743 // pridáme tlaÄidlo na koniec description-inner 1744 const $btn = $( 1745 '<button class="jt-description-toggle">ZobraziÅ¥ celý popis</button>' 1746 ); 1747 $("#description").append($btn); 1748 1749 // toggle 1750 $btn.on("click", function () { 1751 $container.toggleClass("expanded"); 1752 1753 if ($container.hasClass("expanded")) { 1754 $btn.text("SkryÅ¥ popis"); 1755 } else { 1756 $btn.text("ZobraziÅ¥ celý popis"); 1757 1758 $("html, body").animate( 1759 { 1760 scrollTop: $container.offset().top - 100, 1761 }, 1762 300 1763 ); 1764 } 1765 });
1766 }, 200); 1767} 1768 1769function detailNotAvailable() { 1770 if ( 1771 $(".detail-submit-block .availability-label").text().trim() == 1772 "Nenà skladem" 1773 ) { 1774 if ($(".detail-submit-block .add-to-cart").length == 0) { 1775 $(".detail-submit-block").append('<div class="add-to-cart"></div>'); 1776 } 1777 var addToCart = $(".detail-submit-block .add-to-cart"); 1778 addToCart.find(".quantity").remove(); 1779 addToCart.find(".btn").remove(); 1780 addToCart.addClass("btn-available"); 1781 addToCart.append( 1782 '<span class="btn btn-default btn-watch js-btn-watch">HlÃdat dostupnost</span>' 1783 ); 1784 $(document).on("click", ".js-btn-watch", function () { 1785 $(".link-icon.watchdog").trigger("click"); 1786 }); 1787 1788 if ($(".products-alternative-block").length) { 1789 addToCart.append( 1790 '<span class="btn btn-secondary btn-alternative js-btn-alternative">Alternativnà zbožÃ</span>' 1791 ); 1792 $(document).on("click", ".js-btn-alternative", function () { 1793 $("html, body") 1794 .stop() 1795 .animate({ 1796 scrollTop: $(".products-alternative-block").offset().top, 1797 }); 1798 }); 1799 } 1800 } 1801} 1802 1803function stringContainsNumber(string) { 1804 return /\d/.test(string); 1805} 1806 1807function repositionDetailHeader() { 1808 // reposition flags default 1809 var flags = detailProductTop.find(".flags-default"); 1810 $(".p-image").prepend(flags); 1811 1812 // replace discount text 1813 // if (detailImageWrapper.find(".price-save").length) { 1814 // if (detailImageWrapper.find(".price-save .parameter-dependent").length) { 1815 // detailImageWrapper 1816 // .find(".price-save .parameter-dependent") 1817 // .each(function () { 1818 // var priceSave = $(this); 1819 // var newPriceSave = priceSave.text().split("â")[1]; 1820 // var testNumber = stringContainsNumber(newPriceSave); 1821 // if (testNumber) { 1822 // var newPriceSaveExt = newPriceSave.replace(/\s/g, "").split("%")[0]; 1823 // priceSave.html( 1824 // "AKCE <span>-" + newPriceSaveExt + "<sub>%</sub></span>" 1825 // ); 1826 // } 1827 // }); 1828 // } else if (detailImageWrapper.find(".price-save .choose-variant").length) { 1829 // detailImageWrapper.find(".price-save .choose-variant").each(function () { 1830 // var priceSave = $(this); 1831 // var newPriceSave = priceSave.text().split("â")[1]; 1832 // var testNumber = stringContainsNumber(newPriceSave); 1833 // if (priceSave.hasClass("default-variant")) { 1834 // var priceSaveFrom = "až"; 1835 // } else { 1836 // var priceSaveFrom = ""; 1837 // } 1838 // if (testNumber) { 1839 // var newPriceSaveExt = newPriceSave.replace(/\s/g, "").split("%")[0]; 1840 // priceSave.html( 1841 // '<span class="price-save-from">' + 1842 // priceSaveFrom + 1843 // "</span><span>-" + 1844 // newPriceSaveExt + 1845 // "<sub>%</sub></span>" 1846 // ); 1847 // } 1848 // }); 1849 // } else { 1850 // var priceSave = $(".p-image .price-save"); 1851 // var newPriceSave = priceSave 1852 // .text() 1853 // .split("â")[1] 1854 // .replace(/\s/g, "") 1855 // .split("%")[0]; 1856 // priceSave.html("<span>-" + newPriceSave + "<sub>%</sub></span>"); 1857 // } 1858 // } 1859 1860 if ( 1861 detailImageWrapper.find(".flag-discount").length && 1862 detailImageWrapper.find(".flag-discount .price-save").length == 0 1863 ) { 1864 detailImageWrapper.find(".flag-discount").remove(); 1865 } 1866 1867 // reposition thumbnails arrows 1868 if (detailImageWrapper.find(".p-thumbnails-wrapper .thumbnail-prev").length) { 1869 $(".p-thumbnails-wrapper").append( 1870 $(".p-thumbnails-wrapper .thumbnail-prev") 1871 ); 1872 $(".p-thumbnails-wrapper").append( 1873 $(".p-thumbnails-wrapper .thumbnail-next") 1874 ); 1875 1876 $(".p-thumbnails-wrapper > a").wrapAll( 1877 '<div class="p-thumbnails-arrows"></div>' 1878 ); 1879 } 1880 1881 // reposition h1 1882 detailInfoWrapper.prepend('<div class="p-info-headline"></div>'); 1883 detailInfoHeadline = $(".p-info-headline"); 1884 var detailName = $(".p-detail-inner-header h1"); 1885 var detailRating = $(".p-detail-info"); 1886 var detailCode = $(".p-detail-inner-header .p-code"); 1887 1888 // reposition h1 1889 detailInfoHeadline.append(detailName); 1890 1891 // reposition stars wrapper 1892 detailInfoHeadline.append(detailRating); 1893 1894 // reposition products code
1895 detailInfoHeadline.find(".p-detail-info").append(detailCode); 1896 1897 // reposition product label 1898 if ($(".p-detail-info > div:not(.stars-wrapper)").length) { 1899 var productLabel = $(".p-detail-info > div:not(.stars-wrapper)"); 1900 var productCode = $(".p-detail-info .p-code"); 1901 productLabel.prepend(productCode); 1902 } 1903 1904 // Create clone of product headline 1905 var detailInfoHeadlineClone = $(".p-info-headline").clone(); 1906 detailHeaderInner.append(detailInfoHeadlineClone); 1907 detailHeaderInner 1908 .find("h1") 1909 .replaceWith( 1910 $("<div class='h1'>" + detailHeaderInner.find("h1").text() + "</div>") 1911 ); 1912 1913 // reposition product perex 1914 detailInfoWrapper 1915 .find(".p-short-description, .p-short-description + p") 1916 .wrapAll('<div class="p-short-description-block"></div>'); 1917 $(".p-short-description-block").insertAfter(detailInfoHeadline); 1918 1919 if ($(".p-info-wrapper .detail-parameters").length) { 1920 $(".p-info-wrapper .detail-parameters").insertBefore( 1921 ".p-info-wrapper .p-final-price-wrapper" 1922 ); 1923 } 1924 1925 if ($(".p-info-wrapper .availability-value").length) { 1926 $(".p-info-wrapper .availability-value").insertBefore( 1927 ".p-info-wrapper .p-final-price-wrapper" 1928 ); 1929 } 1930 1931 detailInfoWrapper.find(".p-final-price-wrapper .price-save").prepend("Akce "); 1932 detailInfoWrapper.find(".price-final-holder span").text("s DPH"); 1933 1934 if (detailInfoWrapper.find("#dkLabFavouriteDiv").length) { 1935 if ($(window).width() > 768) { 1936 $(".p-info-headline h1").append( 1937 detailInfoWrapper.find("#dkLabFavouriteDiv") 1938 ); 1939 } else { 1940 $(".p-detail-inner-header .p-info-headline .h1").append( 1941 detailInfoWrapper.find("#dkLabFavouriteDiv") 1942 ); 1943 } 1944 } 1945 1946 detailInfoWrapper 1947 .find(".availability-value, .p-final-price-wrapper, .add-to-cart") 1948 .wrapAll('<div class="detail-submit-block"></div>'); 1949 1950 detailInfoWrapper 1951 .find(".p-code") 1952 .insertAfter( 1953 detailInfoWrapper.find(".detail-submit-block .availability-value") 1954 ); 1955 1956 $(".p-code-label").text("Kód výrobku:"); 1957 1958 $(".p-short-description p").each(function () { 1959 var inst = $(this); 1960 var str = inst.text(); 1961 if (str.length > 0 && str.replace(/\s/g, "").length == 0) { 1962 // console.log("empty"); 1963 inst.hide(); 1964 } 1965 }); 1966 1967 $('.shp-tab-link[href="#description"]').text("DoplÅujÃcà informace"); 1968 $("#description .detail-tab-item").text("DoplÅujÃcà informace"); 1969 1970 $(".chevron-after.chevron-down-after").text("Zobrazit celý popis"); 1971 1972 $(".chevron-after.chevron-down-after").click(function () { 1973 $(".p-short-description").toggleClass("full-text"); 1974 $(".p-short-description-block").toggleClass("show-text"); 1975 if ($(this).text() == "Zobrazit celý popis") $(this).text("MénÄ informacÃ"); 1976 else $(this).text("Zobrazit celý popis"); 1977 1978 return false; 1979 }); 1980} 1981 1982function repositionDetailProducts() { 1983 // reposition products related 1984 if ($(".products-related-header").length) { 1985 $( 1986 ".products-related-header, .products-related, .products-related + .browse-p" 1987 ).wrapAll('<div class="products-related-block"></div>'); 1988 if ($(".products-related-block .p-detail-tabs-wrapper").length) { 1989 $(".p-detail").append($(".products-related-block")); 1990 $(".p-detail-tabs-wrapper").insertBefore(".products-related-block"); 1991 } else { 1992 $(".products-related-block").insertAfter( 1993 ".p-detail-tabs-wrapper > .row .col-sm-12:last-child" 1994 ); 1995 } 1996 productsRelated = $(".products-related .product"); 1997 1998 $(".products-related-header").text("SouvisejÃcà zbožÃ"); 1999 } 2000 2001 if ($(".products-alternative").length) { 2002 productsAlternativeItems = $(".products-alternative .product"); 2003 } 2004 2005 // reposition products alternative 2006 if ($(".tab-pane#productsAlternative").length) { 2007 var productsAlternative = $(".tab-pane#productsAlternative"); 2008 productsAlternative.wrapInner( 2009 '<div class="products-alternative-block"></div>' 2010 ); 2011 if ($(".products-related-header").length) { 2012 $(".products-alternative-block").insertAfter(".products-related-block"); 2013 } else { 2014 $(".products-alternative-block").insertAfter( 2015 ".p-detail-tabs-wrapper > .row .col-sm-12:last-child" 2016 ); 2017 } 2018 $('.shp-tab-link[href="#productsAlternative"]') 2019 .closest(".shp-tab") 2020 .remove(); 2021 2022 $(".products-alternative-block").prepend( 2023 '<h2 class="products-alternative-header">Alternativnà zbožÃ</h2>' 2024 ); 2025 } 2026 2027 if ( 2028 $(".products-related-header").length || 2029 $(".products-alternative-block").length 2030 ) { 2031 // create slider from products 2032 createSliderFromProductsDetail(); 2033 } 2034} 2035 2036function createSliderFromProductsDetail() { 2037 $(".products-block").each(function () { 2038 var productsItems = $(this); 2039 2040 var productsSlide = productsItems.find(".product"); 2041 2042 productsSlide.wrap('<div class="swiper-slide"></div>'); 2043 2044 productsItems.wrapInner( 2045 '<div class="swiper-container js-slider-products-detail"></div>' 2046 ); 2047 2048 productsItems 2049 .find(".swiper-container") 2050 .wrapInner('<div class="swiper-wrapper"></div>'); 2051 2052 productsItems.wrapInner( 2053 '<div class="js-slider-group slider-group-products"></div>' 2054 ); 2055 2056 var paginationTemplate = 2057 '<div class="swiper-pagination js-swiper-pagination"></div>'; 2058 2059 productsItems.find(".slider-group-products").append(paginationTemplate); 2060 2061 var arrowTemplate = 2062 '<div class="swiper-arrow swiper-arrow-next js-swiper-arrow-next">' + 2063 '<div class="swiper-arrow-content">' + 2064 "<span></span>" + 2065 "</div>" + 2066 "</div>" + 2067 '<div class="swiper-arrow swiper-arrow-prev js-swiper-arrow-prev">' + 2068 '<div class="swiper-arrow-content">' + 2069 "<span></span>" + 2070 "</div>" + 2071 "</div>"; 2072 productsItems.find(".slider-group-products").append(arrowTemplate); 2073 2074 productsDetailImagesSlider(); 2075 }); 2076} 2077 2078function productsDetailImagesSlider() { 2079 if ($(".js-slider-products-detail").length) { 2080 $(".js-slider-products-detail").each(function () { 2081 var inst = $(this),
2082 swiperBlock = inst.closest(".js-slider-group"), 2083 swiperPagination = swiperBlock.find(".js-swiper-pagination"), 2084 swiperArrowPrev = swiperBlock.find(".js-swiper-arrow-prev"), 2085 swiperArrowNext = swiperBlock.find(".js-swiper-arrow-next"); 2086 2087 var productsBreakpoints = { 2088 200: { 2089 slidesPerView: 1, 2090 }, 2091 480: { 2092 slidesPerView: 2, 2093 // slidesPerGroup: 1, 2094 }, 2095 771: { 2096 slidesPerView: 3, 2097 // slidesPerGroup: 1, 2098 }, 2099 992: { 2100 slidesPerView: 3, 2101 // slidesPerGroup: 1, 2102 }, 2103 1200: { 2104 slidesPerView: 4, 2105 // slidesPerGroup: 1, 2106 }, 2107 1440: { 2108 slidesPerView: 4, 2109 // slidesPerGroup: 1, 2110 }, 2111 }; 2112 2113 var mySwiper = new Swiper(inst, { 2114 spaceBetween: 0, 2115 lazy: true, 2116 loop: false, 2117 speed: 600, 2118 pagination: { 2119 el: swiperPagination, 2120 clickable: true, 2121 }, 2122 navigation: { 2123 nextEl: swiperArrowNext, 2124 prevEl: swiperArrowPrev, 2125 }, 2126 breakpoints: productsBreakpoints, 2127 }); 2128 }); 2129 } 2130} 2131 2132function repositionDetailParameterToNewTab() { 2133 if ($("#manufacturerDescription").length) { 2134 var detailParameterContent = $("#manufacturerDescription").html(); 2135 2136 var detailParameterTab = ` 2137 <li class="shp-tab" data-width="226"> 2138 <a href="#productBrand" class="shp-tab-link" role="tab" data-toggle="tab">Historie</a> 2139 </li>`; 2140 2141 var detailParameterTabContent = ` 2142 <div id="productBrand"> 2143 <h3>Historie znaÄky</h3> 2144 </div>`; 2145 2146 $(detailParameterTab).insertAfter( 2147 $('#p-detail-tabs li a[href="#description"]').closest("li") 2148 ); 2149 $("#tab-content .tab-pane#description .basic-description").append( 2150 $(detailParameterTabContent) 2151 ); 2152 2153 $("#productBrand").append(detailParameterContent); 2154 2155 // $("#description .extended-description").remove(); 2156 2157 $('.shp-tab-link[href="#productBrand"]').click(function () { 2158 $(".tab-pane.active").removeClass("active"); 2159 $(".tab-pane#description").addClass("active in"); 2160 2161 $("html, body") 2162 .stop() 2163 .animate({ 2164 scrollTop: $("#productBrand").offset().top, 2165 }); 2166 }); 2167 } 2168 2169 if ($("#description").length) { 2170 $('.shp-tab-link[href="#description"]').click(function () { 2171 $("html, body") 2172 .stop() 2173 .animate({ 2174 scrollTop: $("#description").offset().top - 60, 2175 }); 2176 }); 2177 } 2178 2179 if ($(".products-related").length) { 2180 var detailRelatedTab = ` 2181 <li class="shp-tab" data-width="226"> 2182 <a href="#productRelated" class="shp-tab-link" role="tab" data-toggle="tab">SouvisejÃcà zbožÃ</a> 2183 </li>`; 2184 2185 $(detailRelatedTab).insertAfter($("#p-detail-tabs li:nth-child(2)")); 2186 2187 $('.shp-tab-link[href="#productRelated"]').click(function () { 2188 $("html, body") 2189 .stop() 2190 .animate({ 2191 scrollTop: $(".products-related-block").offset().top, 2192 }); 2193 }); 2194 } 2195 2196 if ($(".products-alternative").length) { 2197 var detailRelatedTab = ` 2198 <li class="shp-tab" data-width="226"> 2199 <a href="#productAlternative" class="shp-tab-link" role="tab" data-toggle="tab">Alternativnà zbožÃ</a> 2200 </li>`; 2201 2202 $(detailRelatedTab).insertAfter($("#p-detail-tabs li:nth-child(3)")); 2203 2204 $('.shp-tab-link[href="#productAlternative"]').click(function () { 2205 $("html, body") 2206 .stop() 2207 .animate({ 2208 scrollTop: $(".products-alternative-block").offset().top, 2209 }); 2210 }); 2211 } 2212 2213 if ($("#ratingTab").length) { 2214 $(".shp-tab[data-testid='tabRating']").remove(); 2215 2216 var detailParameterContentReview = $("#ratingTab").html(); 2217 2218 var detailParameterTabReview = ` 2219 <li class="shp-tab" data-width="226"> 2220 <a href="#ratingTabContent" class="shp-tab-link" role="tab" data-toggle="tab">HodnocenÃ</a> 2221 </li>`; 2222 2223 var detailParameterTabContentReview = ` 2224 <div id="ratingTabContent"> 2225 <h3>HodnocenÃ</h3> 2226 </div>`; 2227 2228 $(detailParameterTabReview).insertAfter( 2229 $('#p-detail-tabs li a[href="#productBrand"]').closest("li") 2230 ); 2231 2232 $("#tab-content .tab-pane#description .basic-description").append( 2233 $(detailParameterTabContentReview) 2234 ); 2235 2236 $("#ratingTabContent").append(detailParameterContentReview); 2237 2238 // $("#description .extended-description").remove(); 2239 2240 $('.shp-tab-link[href="#ratingTabContent"]').click(function () { 2241 $(".tab-pane.active").removeClass("active"); 2242 $(".tab-pane#description").addClass("active in"); 2243 2244 $("html, body") 2245 .stop() 2246 .animate({ 2247 scrollTop: $("#ratingTabContent").offset().top, 2248 }); 2249 });
2250 } 2251} 2252 2253function repositionDetailParametersTable() { 2254 var extendedDescription = $(".extended-description"); 2255 2256 // typ kávy 2257 extendedDescription.find("td a:contains(Zrnková)").addClass("zrnkova"); 2258 extendedDescription.find("td a:contains(Mletá)").addClass("mleta"); 2259 extendedDescription.find("td a:contains(Kapsle)").addClass("kapsle"); 2260 2261 let highlightRows = []; 2262 2263 extendedDescription.find("tr").each(function () { 2264 var inst = $(this); 2265 var labelEl = inst.find(".row-header-label"); 2266 var label = labelEl.text().trim(); 2267 2268 // ------------------- 2269 // HMOTNOSŤ (remove + úprava) 2270 // ------------------- 2271 if (label === "Hmotnost:") { 2272 if ( 2273 inst.find("td:contains(kg)").length || 2274 inst.find("td:contains(g)").length 2275 ) { 2276 inst.remove(); 2277 return; 2278 } 2279 2280 var labelLink = inst.find("td a"); 2281 var name = labelLink.text().trim(); 2282 2283 if (name.includes(".")) { 2284 if (name === "0.12") labelLink.text("120g"); 2285 if (name === "0.25") labelLink.text("250g"); 2286 if (name === "0.5") labelLink.text("500g"); 2287 if (name === "0.7") labelLink.text("700g"); 2288 } else { 2289 labelLink.text(name + "kg"); 2290 } 2291 } 2292 2293 // ------------------- 2294 // INTENZITA (hviezdiÄky) 2295 // ------------------- 2296 if (label === "Intenzita:") { 2297 var text = inst.find("td").text().trim(); 2298 var count = 0; 2299 2300 if (text === "Velmi jemná") count = 1; 2301 if (text === "Jemná") count = 2; 2302 if (text === "StÅednÄ silná") count = 3; 2303 if (text === "Silná") count = 4; 2304 if (text === "Extra silná") count = 5; 2305 2306 inst.find("td").text(""); 2307 inst.find("td").addClass("intenzita show-tooltip-ext"); 2308 inst.find("td.intenzita").attr("data-original-title", text); 2309 2310 var templateRate = ` 2311 <span></span> 2312 <span></span> 2313 <span></span> 2314 <span></span> 2315 <span></span> 2316 `; 2317 2318 inst.find(".intenzita").append(templateRate); 2319 2320 inst.find(".intenzita span").each(function (i) { 2321 if (i < count) { 2322 $(this).addClass("is-active"); 2323 } 2324 }); 2325 2326 $(".tooltip").hide(); 2327 $(".show-tooltip-ext").tooltip({ 2328 html: true, 2329 placement: "auto", 2330 container: "body", 2331 }); 2332 } 2333 2334 // ------------------- 2335 // CUSTOM PARAMETRE 2336 // ------------------- 2337 if (label.includes("Custom")) { 2338 const valueText = inst.find("td").text().trim(); 2339 const tooltipText = labelEl.find(".question-tooltip").attr("title") || ""; 2340 2341 const newRow = $(` 2342 <tr class="highlight-row"> 2343 <th>${valueText}</th> 2344 <td>${tooltipText}</td> 2345 </tr> 2346 `); 2347
2348 highlightRows.push(newRow); 2349 inst.remove(); 2350 return; 2351 } 2352 2353 // ------------------- 2354 // INTENZITA â highlight (clone) 2355 // ------------------- 2356 if (label === "Intenzita:") { 2357 highlightRows.push(inst.clone()); 2358 inst.remove(); 2359 return; 2360 } 2361 2362 // ------------------- 2363 // OBSAH KOFEINU 2364 // ------------------- 2365 if (label === "Obsah kofeinu:") { 2366 const value = inst.find("td").text().trim(); 2367 2368 const newRow = $(` 2369 <tr class="highlight-row"> 2370 <th>Obsah kofeinu</th> 2371 <td>${value}</td> 2372 </tr> 2373 `); 2374 2375 highlightRows.push(newRow); 2376 inst.remove(); 2377 return; 2378 } 2379 2380 // ------------------- 2381 // AROMA 2382 // ------------------- 2383 if (label === "Aroma:") { 2384 const value = inst.find("td").text().trim(); 2385 2386 const newRow = $(` 2387 <tr class="highlight-row"> 2388 <th>Aroma</th> 2389 <td>${value}</td> 2390 </tr> 2391 `); 2392 2393 highlightRows.push(newRow); 2394 inst.remove(); 2395 return; 2396 } 2397 2398 // ------------------- 2399 // Typ kávy 2400 // ------------------- 2401 if (label === "Typ kávy:") { 2402 const value = inst.find("td").text().trim(); 2403 2404 const newRow = $(` 2405 <tr class="highlight-row"> 2406 <th>Typ kávy</th> 2407 <td>${value}</td> 2408 </tr> 2409 `); 2410
2411 highlightRows.push(newRow); 2412 inst.remove(); 2413 return; 2414 } 2415 }); 2416 2417 // ------------------- 2418 // RENDER POD CENU 2419 // ------------------- 2420 if (highlightRows.length > 0) { 2421 const highlightWrapper = $(` 2422 <div class="extended-description highlight-parameters"> 2423 <table class="detail-parameters"> 2424 <tbody></tbody> 2425 </table> 2426 </div> 2427 `); 2428 2429 const tbody = highlightWrapper.find("tbody"); 2430 2431 highlightRows.forEach((row) => { 2432 tbody.append(row); 2433 }); 2434 2435 detailInfoWrapper.append(highlightWrapper); 2436 } 2437} 2438 2439function repositionImageFlags() { 2440 var inst = detailImageWrapper; 2441 2442 if (inst.find(".flag-kapsle").length) { 2443 inst.find(".flag-kapsle").text(""); 2444 if (inst.find(".flags-extra").length) { 2445 inst.find(".flags-extra").prepend(inst.find(".flag-kapsle")); 2446 } else { 2447 inst.find(".p-image").prepend('<div class="flags flags-extra"></div>'); 2448 inst.find(".flags-extra").prepend(inst.find(".flag-kapsle")); 2449 } 2450 } 2451 2452 if (inst.find(".flag-bez-kofeinu").length) { 2453 inst.find(".flag-bez-kofeinu").text(""); 2454 if (inst.find(".flags-extra").length) { 2455 inst.find(".flags-extra").prepend(inst.find(".flag-bez-kofeinu")); 2456 } else { 2457 inst.find(".p-image").prepend('<div class="flags flags-extra"></div>'); 2458 inst.find(".flags-extra").prepend(inst.find(".flag-bez-kofeinu")); 2459 } 2460 } 2461 2462 if (inst.find(".flag-mleta").length) { 2463 inst.find(".flag-mleta").text(""); 2464 if (inst.find(".flags-extra").length) { 2465 inst.find(".flags-extra").prepend(inst.find(".flag-mleta")); 2466 } else { 2467 inst.find(".p-image").prepend('<div class="flags flags-extra"></div>'); 2468 inst.find(".flags-extra").prepend(inst.find(".flag-mleta")); 2469 } 2470 } 2471 2472 if (inst.find(".flag-zrnkova").length) { 2473 inst.find(".flag-zrnkova").text(""); 2474 if (inst.find(".flags-extra").length) { 2475 inst.find(".flags-extra").prepend(inst.find(".flag-zrnkova")); 2476 } else { 2477 inst.find(".p-image").prepend('<div class="flags flags-extra"></div>'); 2478 inst.find(".flags-extra").prepend(inst.find(".flag-zrnkova")); 2479 } 2480 } 2481} 2482 2483 2484function repositionPrazirni() { 2485 if ($(".distributors-list").length && $(".col-lg-9").length) { 2486 console.log("asdxx"); 2487 $(".col-lg-9").html(""); 2488 $(".col-lg-9").append('<div id="distributorsMapId"></div>'); 2489 distributorList(); 2490 distributorMap(); 2491 } 2492} 2493 2494function distributorList() { 2495 var dList = $(".distributors-list"); 2496 for (let i = 0; i < prazirni.length; i++) { 2497 const name = prazirni[i].name; 2498 const url = prazirni[i].url; 2499 const address = prazirni[i].adr; 2500 const city = prazirni[i].city; 2501 const img = prazirni[i].img; 2502 const lon = prazirni[i].lon; 2503 const lat = prazirni[i].lat; 2504 var prazirnaItem = ` 2505 <div class="distributor-row"> 2506 <div role="button" data-index="${i}" class="distributor-item distributor-${i}" data-location="${lat}, ${lon}"> 2507 <div class="distributor_group"><img src="/user/documents/upload/prazirna/${img}" class="distributor_image" /></div> 2508 <h3>${name}</h3> 2509 <p class="distributor_text distributor_city"><strong>MÄsto:</strong> <span>${city}</span></p> 2510 <p class="distributor_text distributor_address"><strong>Adresa:</strong> <span>${address}</span></p> 2511 </div> 2512 <p class="distributor_web"><strong>Produkty:</strong> <span><a href="/${url}" rel="noopener noreferrer">${url}</a></span></p> 2513 </div> 2514 `; 2515 2516 dList.append(prazirnaItem); 2517 } 2518} 2519 2520function distributorMap() { 2521 var locations = []; 2522 2523 $(".distributor-item").each(function () { 2524 var inst = $(this); 2525 var dataLocation = inst.data("location"); 2526 var dataLang = dataLocation.split(",")[0]; 2527 var dataLong = dataLocation.split(",")[1].trim(); 2528 var title = inst.find("h3").text(); 2529 locations.push([title, dataLang, dataLong]); 2530 }); 2531 2532 var markerArray = []; 2533 2534 var map = L.map("distributorsMapId", { 2535 gestureHandling: true, 2536 }).setView([11.206051, 122.447886], 4); 2537 var mapLink = '<a href="https://openstreetmap.org">OpenStreetMap</a>'; 2538 2539 L.tileLayer("https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png", { 2540 attribution: "© " + mapLink + " Contributors", 2541 }).addTo(map); 2542 2543 // specify popup options 2544 var marker; 2545 2546 var countryMarkers = L.markerClusterGroup({ 2547 showCoverageOnHover: true, 2548 }); 2549 2550 var allMarkers = {}; 2551 2552 for (var i = 0; i < locations.length; i++) { 2553 var distributor = $(".distributor-" + i); 2554 2555 let website = distributor 2556 .closest(".distributor-row") 2557 .find(".distributor_web") 2558 .html(); 2559 let email = distributor 2560 .closest(".distributor-row") 2561 .find(".distributor_email") 2562 .html(); 2563 let tel = distributor 2564 .closest(".distributor-row") 2565 .find(".distributor_tel") 2566 .html(); 2567 let img = distributor.find(".distributor_group").html(); 2568 let imgSrc = distributor.find(".distributor_group img").attr("src");
2569 let city = distributor.find(".distributor_city").html(); 2570 let address = distributor.find(".distributor_address").html(); 2571 let title = distributor.find("h3").html(); 2572 2573 const popupContent = ` 2574 <div> 2575 ${img} 2576 <h3>${title}</h3> 2577 <p>${city}</p> 2578 <p>${address}</p> 2579 <p>${website}</p> 2580 </div>`; 2581 2582 const popup = L.responsivePopup({ 2583 maxWidth: 250, 2584 minWidth: 170, 2585 className: "custom-map-popup", 2586 offset: [10, 10], 2587 hasTip: true, 2588 autoPan: false, 2589 }).setContent(popupContent); 2590 2591 var markerIcon = L.icon({ 2592 iconUrl: imgSrc, 2593 iconSize: [100, 50], // size of the icon 2594 iconAnchor: [50, 25], // point of the icon which will correspond to marker's location 2595 popupAnchor: [0, -5], // point from which the popup should open relative to the iconAnchor 2596 }); 2597 2598 marker = new L.marker([locations[i][1], locations[i][2]], { 2599 icon: markerIcon, 2600 }).bindPopup(popup); 2601 markerArray.push(marker); 2602 2603 countryMarkers.addLayer(marker); 2604 2605 allMarkers[i] = marker; 2606 } 2607 2608 map.addLayer(countryMarkers); 2609 2610 var group = L.featureGroup(markerArray); 2611 map.fitBounds(group.getBounds().pad(0.1)); 2612 2613 $(".distributor-item").on("click", function () { 2614 var id = $(this).data("index");
2615 map.setView(allMarkers[id].getLatLng(), 12); 2616 setTimeout(() => { 2617 allMarkers[id].openPopup(); 2618 }, 500); 2619 }); 2620} 2621 2622 2623var bannerPartners; 2624function repositionPartners() { 2625 if ($(".js-partners-block").length) { 2626 bannerPartners = $(".js-partners-block").clone(); 2627 if ($(".in-index").length == 0) { 2628 var footerServiceItem = $(".js-partners-block").closest(".banner"); 2629 var partnersBlock = $(".js-partners-block"); 2630 footerServiceItem.parent().remove(); 2631 partnersBlock.insertBefore(".js-instagram-block"); 2632 } else { 2633 $(".js-partners-block").closest(".banner").parent().remove(); 2634 } 2635 } 2636} 2637 2638 2639function repositionAdult() { 2640 if ($(".type-category").length || $(".type-detail").length) { 2641 var breadcrumbsText; 2642 if ($(".breadcrumbs #navigation-1 meta[itemprop='item']").length) { 2643 breadcrumbsText = $( 2644 ".breadcrumbs #navigation-1 meta[itemprop='item']" 2645 ).attr("content"); 2646 } 2647 2648 if ($(".breadcrumbs #navigation-1 a[itemprop='item']").length) { 2649 breadcrumbsText = $(".breadcrumbs #navigation-1 a[itemprop='item']").attr( 2650 "href" 2651 ); 2652 breadcrumbsText.replaceAll("/", ""); 2653 } 2654 2655 for (let i = 0; i < adultPages.length; i++) { 2656 const url = adultPages[i].url; 2657 const text = adultPages[i].text; 2658 2659 if (breadcrumbsText.includes(url)) { 2660 showModalInfo(text); 2661 } 2662 } 2663 } 2664} 2665 2666function showModalInfo(text) { 2667 let storageDataAdult = localStorage.getItem("adult"); 2668 2669 if (storageDataAdult === null) { 2670 componentCreateCategoryForm(text); 2671 componentModal(); 2672 $("body").addClass("blur"); 2673 } else { 2674 const item = JSON.parse(storageDataAdult); 2675 const now = new Date(); 2676 2677 if (now.getTime() > item.expiry) { 2678 componentCreateCategoryForm(text); 2679 componentModal(); 2680 $("body").addClass("blur"); 2681 } else { 2682 // componentCreateCategoryForm(text); 2683 // componentModal(); 2684 // $("body").addClass("blur"); 2685 } 2686 } 2687} 2688 2689function componentCreateCategoryForm(text) { 2690 var modalCategoryTemplate = ` 2691 <div class="modal__overlay js-modal-overlay"></div> 2692 <div class="modal js-modal" data-modal="modal-contact-form"> 2693 <div class="modal__scroll"> 2694 <div class="modal__box"> 2695 <a href="/" class="modal__close close-trigger js-close-modal"></a> 2696 <div class="modal__body js-modal-body"> 2697 <div class="txt-c"> 2698 <div class="modal-title">${text}</div> 2699 </div> 2700 <div class="modal-btn"> 2701 <a class="btn btn-primary js-close-modal">Potvrzuji</a> 2702 <a href="/" class="btn btn-tertiary">Ãvodnà stránka</a> 2703 </div> 2704 </div> 2705 </div> 2706 </div> 2707 </div> 2708 `; 2709 2710 $("body").append(modalCategoryTemplate); 2711 $(".js-modal-overlay").addClass(classIsActive); 2712 $(".js-modal").addClass(classIsActive); 2713} 2714 2715function componentModal() { 2716 // open modal 2717 $(document).on("click", ".js-modal-trigger", function () { 2718 var inst = $(this); 2719 var modalId = inst.data("modal"); 2720 2721 if ($(".js-modal.is-active").length) { 2722 $(".js-modal." + classIsActive + "").addClass("modal-hidden"); 2723 } else { 2724 $(".js-modal." + classIsActive + "").removeClass(classIsActive); 2725 $(".js-modal-overlay").addClass(classIsActive); 2726 } 2727 $(".js-modal[data-modal=" + modalId + "]").addClass(classIsActive); 2728 2729 $("body").addClass("is-modal-open"); 2730 return false; 2731 }); 2732 2733 // close modal 2734 $(document).on("click", ".js-close-modal", function () { 2735 if ($(".modal-hidden").length) { 2736 $(".modal-hidden").removeClass("modal-hidden"); 2737 } else { 2738 $(".js-modal-overlay").removeClass(classIsActive); 2739 } 2740 $(this) 2741 .closest(".js-modal." + classIsActive + "") 2742 .removeClass(classIsActive); 2743 $("body").removeClass("is-modal-open"); 2744 $("body").removeClass("blur"); 2745 2746 const now = new Date(); 2747 const itemDataAdult = { 2748 expiry: now.getTime() + 86400000 * 2, 2749 }; 2750 2751 localStorage.setItem("adult", JSON.stringify(itemDataAdult)); 2752 2753 return false; 2754 }); 2755} 2756 2757 2758var bannerInstagram; 2759function repositionInstagram() { 2760 if ($(".instagram-widget").length) { 2761 if ($(".in-index").length) { 2762 createInstagramBlock(); 2763 } else { 2764 createInstagramBlock(); 2765 } 2766 } 2767} 2768 2769function createInstagramBlock() { 2770 var instagramBlock = $(".instagram-widget"); 2771 var instagramContainer = ` 2772 <div class="content-wrapper instagram-block js-instagram-block"> 2773 </div> 2774 `; 2775 2776 $(".instagram-widget").closest("div").parent().remove(); 2777 $(instagramContainer).insertBefore("#footer"); 2778 $(".js-instagram-block").append(instagramBlock); 2779 2780 $(".js-instagram-block .instagram-widget > a").wrap( 2781 '<div class="instagram-widget-item"></div>' 2782 ); 2783 2784 $(".instagram-block").prepend( 2785 '<div class="h4 homepage-group-title">SLEDUJTE NÃS NA<span class="instagram-subheadline"><a href="https://www.facebook.com/chrusticek.sk" target="_blank">FB</a><span>/</span><a href="https://www.instagram.com/chrusticek.eu" target="_blank">IG</a></span></div>' 2786 ); 2787} 2788 2789 2790function repositionFooter() { 2791 // $("#footer .contact-box .facebook a").text(""); 2792 // $("#footer .contact-box .instagram a").text(""); 2793 2794 $("#footer .contact-box .facebook") 2795 .find("a") 2796 .text("Facebook") 2797 .closest("li") 2798 .addClass("social-item"); 2799 $("#footer .contact-box .instagram") 2800 .find("a") 2801 .text("Instagram") 2802 .closest("li") 2803 .addClass("social-item"); 2804 $("#footer .contact-box .twitter") 2805 .find("a") 2806 .text("Twitter") 2807 .closest("li") 2808 .addClass("social-item"); 2809 $("#footer .contact-box .youtube") 2810 .find("a") 2811 .text("Youtube") 2812 .closest("li") 2813 .addClass("social-item"); 2814 2815 var signatureTemplate = ` 2816 <span class="signature-author"> 2817 VytvoÅil 2818 <a class="signature-link" href="https://www.vojtechpetovsky.cz/blog/jak-jsem-implementoval-velkoobchodni-e-shop-s-kavou-na-shoptet-premium" target="_blank">VojtÄch PeÅ¥ovský</a> 2819 </span> 2820 <a class="signature-logo" href="https://www.shoptetpremium.cz/?utm_source=footer&utm_medium=link&utm_campaign=create_by_shoptet"target="_blank"><img src="https://cdn.myshoptet.com/prj/eadb389a/master/cms/img/shoptetPremiumLogo.svg" width="17" height="17" alt="Shoptet Premium" class="vam"></a> 2821 <a class="signature-premium" href="https://www.shoptetpremium.cz/?utm_source=footer&utm_medium=link&utm_campaign=create_by_shoptet" target="_blank">Shoptet Premium</a> 2822 `; 2823 2824 $("#signature").html(signatureTemplate); 2825 2826 var footerAddress = ` 2827 <li> 2828 <span class="address"> 2829 <a href="https://goo.gl/maps/aidrLtUkUMVcPTHw8" target="_blank"> 2830 H-PARK Brno<br/>HerÅ¡pická 1035/11f 2831 </a> 2832 </span> 2833 </li> 2834 2835 `; 2836 2837 // $("#footer .contact-box .tel").append( 2838 // "<small>po â Ät: <strong>10 â 17</strong> hod.<br/>pá: <strong>10 â 16</strong> hod. </small>" 2839 // ); 2840
2841 $(".custom-footer__contact h4").remove(); 2842 2843 $(".custom-footer__contact ul").prepend($(footerAddress)); 2844 2845 $(".social-list").append($(".social-item")); 2846 2847 var twitter = $(".social-list .twitter").closest("li"); 2848 var instagram = $(".social-list .instagram").closest("li"); 2849 $(twitter).insertAfter(instagram); 2850 2851 var mail = $(".custom-footer__contact .mail").closest("li"); 2852 var tel = $(".custom-footer__contact .tel").closest("li"); 2853 $(mail).insertAfter(tel); 2854 2855 var siteNameFooter = $(".footer-rows > .site-name").clone(); 2856 2857 $(".custom-footer").prepend('<div class="custom-footer__site-name"></div>'); 2858 $(".custom-footer__site-name").append(siteNameFooter); 2859 2860 if ($(".custom-footer__newsletter").length) { 2861 $("#footer .custom-footer__newsletter .form-control").attr( 2862 "placeholder", 2863 "Zadejte Váš e-mail" 2864 ); 2865 2866 $("#footer .custom-footer__newsletter .btn").text("PÅihlásit odbÄr"); 2867 $("#footer .custom-footer__newsletter h4 span").text("Novinky z KávovnÃku"); 2868 2869 $(".custom-footer__newsletter").insertBefore("#footer"); 2870 2871 $(".custom-footer__newsletter .newsletter-header").append( 2872 '<div class="newsletter-text">VloženÃm e-mailu souhlasÃte s <a href="/ochrana-osobnich-udaju/" rel="noopener noreferrer">podmÃnkami ochrany osobnÃch údajů</a></div>' 2873 ); 2874 2875 $(".custom-footer__newsletter").wrapInner( 2876 '<div class="container"><div class="newsletter-content"></div></div>' 2877 ); 2878 } 2879} 2880 2881 2882function repositionHeader() { 2883 $(".top-navigation-bar").remove(); 2884 $("#header").remove(); 2885 $(".menu-level-1 a").attr("target", "_blank"); 2886} 2887 2888 2889function repositionHP() { 2890 repositionBenefits(); 2891 if ($(".in-index").length) { 2892 // repositionTopBanners(); 2893 repositionMiddleBanners(); 2894 2895 repositionWelcome(); 2896 createSliderFromProductImages(); 2897 } 2898 2899 if ($(".product").length) { 2900 productRepo(); 2901 } 2902 2903 // repositionTopBannerText(); 2904} 2905 2906function repositionWelcome() { 2907 $(".homepage-box.welcome-wrapper h1").insertAfter(".welcome-subheadline"); 2908 $(".homepage-box.welcome-wrapper").insertAfter( 2909 ".products-top.products-top--first" 2910 ); 2911 $(".homepage-box.welcome-wrapper h1").text("Najdi svoji oblÃbenou pražÃrnu"); 2912} 2913 2914function repositionBenefits() { 2915 if ($(".benefitBanner").length) { 2916 $(".benefitBanner").prepend( 2917 '<div class="homepage-group-title h4">ProÄ si nás vybrat</div>' 2918 ); 2919 } 2920} 2921 2922function repositionTopBannerText() { 2923 $( 2924 ".benefitBanner .benefitBanner__item:nth-child(1) .benefitBanner__title" 2925 ).html("SKLADOVKY EXPEDUJEME DO <strong>24H</strong>"); 2926 $( 2927 ".benefitBanner .benefitBanner__item:nth-child(2) .benefitBanner__title" 2928 ).html("DOPRAVA ZDARMA OD <strong>130â¬</strong>"); 2929 $( 2930 ".benefitBanner .benefitBanner__item:nth-child(3) .benefitBanner__title" 2931 ).html("GARANCIA <strong>KVALITNÃHO</strong> TOVARU"); 2932 $( 2933 ".benefitBanner .benefitBanner__item:nth-child(4) .benefitBanner__title" 2934 ).html("PORADENSKà SERVIS SME VÃM K <strong>DISPOZICIÃ</strong>"); 2935} 2936 2937function repositionTopBanners() { 2938 var bannerLeftPanel = $( 2939 ".next-to-carousel-banners .banner-wrapper:not(:last-child)" 2940 ); 2941 var bannerRightPanel = $( 2942 ".next-to-carousel-banners .banner-wrapper:last-child" 2943 ); 2944 bannerLeftPanel.wrapAll('<div class="banner-left-panel"></div>'); 2945 bannerRightPanel.wrapAll('<div class="banner-right-panel"></div>'); 2946} 2947 2948function repositionMiddleBanners() { 2949 var productsGroupFirst = $(".homepage-products-heading-1, #products-1"); 2950 var productsGroupSecond = $(".homepage-products-heading-2, #products-2"); 2951 productsGroupFirst.wrapAll( 2952 '<div class="products-top-group products-top-group--first"></div>' 2953 ); 2954 productsGroupSecond.wrapAll( 2955 '<div class="products-top-group products-top-group--second"></div>' 2956 ); 2957 2958 $(".products-top-group--first").wrap( 2959 '<div class="products-top products-top--first"></div>' 2960 ); 2961 $(".products-top-group--second").wrap( 2962 '<div class="products-top products-top--second"></div>' 2963 ); 2964 2965 if ($(".body-banners").length) { 2966 $(".products-top--first").prepend( 2967 $(".body-banners > div:first-child .banner-wrapper") 2968 ); 2969 $(".products-top--second").prepend( 2970 $(".body-banners > div:last-child .banner-wrapper") 2971 ); 2972 } 2973 2974 $(".products-top").each(function () { 2975 var inst = $(this); 2976 inst.prepend(inst.find(".homepage-group-title"));
2977 inst.append( 2978 '<div class="product-btn-block"><a href="" class="btn btn-secondary">Prohlédnout si vÃce</a></div>' 2979 ); 2980 }); 2981 2982 $(".products-top.products-top--first .btn-secondary").attr("href", "/kava/"); 2983 $(".products-top.products-top--second .btn-secondary").attr( 2984 "href", 2985 "/udrzba-kavovaru/" 2986 ); 2987} 2988 2989function productRepo() { 2990 $(".products-block .product").each(function (i) { 2991 var inst = $(this); 2992 inst 2993 .find(".availability") 2994 .insertAfter(inst.find(".p-bottom > div .prices")); 2995 2996 inst.find(".p-in-in").append(inst.find(".p-desc")); 2997 2998 if (inst.find(".price-final strong span").length == 0) { 2999 inst.find(".price-final strong").append("<span>s DPH</span>"); 3000 } 3001 3002 inst.find(".add-to-cart-button span").text("PÅidat do koÅ¡Ãku"); 3003 3004 if (inst.find(".flag.flag-freeshipping").length) { 3005 inst.find(".flags.flags-extra .flag.flag-freeshipping").remove(); 3006 if ( 3007 inst.find(".flags.flags-default .flag.flag-freeshipping").length == 0 3008 ) { 3009 inst 3010 .find(".flags.flags-default") 3011 .prepend( 3012 '<span class="flag flag-freeshipping" style="background-color:#cccccc;">Doprava zdarma</span>' 3013 ); 3014 } 3015 } 3016 3017 if (inst.find(".flag-discount").length) { 3018 if (inst.find(".flags-default").length) { 3019 inst.find(".flags-default").append(inst.find(".flag-discount")); 3020 } else { 3021 inst.find(".image").prepend('<div class="flags flags-default"></div>'); 3022 inst.find(".flags-default").append(inst.find(".flag-discount")); 3023 } 3024 var discountPrice = inst.find(".flag-discount .price-standard span"); 3025 inst.find(".prices .price-final").append(discountPrice); 3026 3027 if (inst.find(".flag-action").length) { 3028 inst.find(".flag-action").remove(); 3029 } 3030 3031 if (inst.find(".flag-discount .price-save span").length == 0) { 3032 inst.find(".flag-discount .price-save").prepend("<span>Akce </span>"); 3033 } 3034 } 3035 3036 if (inst.find(".flag-kapsle").length) { 3037 inst.find(".flag-kapsle").text(""); 3038 if (inst.find(".flags-extra").length) { 3039 inst.find(".flags-extra").prepend(inst.find(".flag-kapsle")); 3040 } else { 3041 inst.find(".image").prepend('<div class="flags flags-extra"></div>'); 3042 inst.find(".flags-extra").prepend(inst.find(".flag-kapsle")); 3043 } 3044 } 3045 3046 if (inst.find(".flag-bez-kofeinu").length) { 3047 inst.find(".flag-bez-kofeinu").text(""); 3048 if (inst.find(".flags-extra").length) { 3049 inst.find(".flags-extra").prepend(inst.find(".flag-bez-kofeinu")); 3050 } else { 3051 inst.find(".image").prepend('<div class="flags flags-extra"></div>'); 3052 inst.find(".flags-extra").prepend(inst.find(".flag-bez-kofeinu")); 3053 } 3054 } 3055 3056 if (inst.find(".flag-mleta").length) { 3057 inst.find(".flag-mleta").text(""); 3058 if (inst.find(".flags-extra").length) { 3059 inst.find(".flags-extra").prepend(inst.find(".flag-mleta")); 3060 } else { 3061 inst.find(".image").prepend('<div class="flags flags-extra"></div>'); 3062 inst.find(".flags-extra").prepend(inst.find(".flag-mleta")); 3063 } 3064 } 3065 3066 if (inst.find(".flag-zrnkova").length) { 3067 inst.find(".flag-zrnkova").text(""); 3068 if (inst.find(".flags-extra").length) { 3069 inst.find(".flags-extra").prepend(inst.find(".flag-zrnkova")); 3070 } else { 3071 inst.find(".image").prepend('<div class="flags flags-extra"></div>'); 3072 inst.find(".flags-extra").prepend(inst.find(".flag-zrnkova")); 3073 } 3074 } 3075 }); 3076} 3077 3078function createSliderFromProductImages() { 3079 $(".products-top-group .products-block").each(function () { 3080 var productsItems = $(this); 3081 3082 var productsSlide = productsItems.find(".product"); 3083 3084 productsSlide.wrap('<div class="swiper-slide"></div>'); 3085 3086 productsItems.wrapInner( 3087 '<div class="swiper-container js-slider-products"></div>' 3088 ); 3089 3090 productsItems 3091 .find(".swiper-container") 3092 .wrapInner('<div class="swiper-wrapper"></div>'); 3093 3094 productsItems.wrapInner( 3095 '<div class="js-slider-group slider-group-products"></div>' 3096 ); 3097 3098 var paginationTemplate = 3099 '<div class="swiper-pagination js-swiper-pagination"></div>'; 3100 3101 productsItems.find(".slider-group-products").append(paginationTemplate); 3102 3103 var arrowTemplate = 3104 '<div class="swiper-arrow swiper-arrow-next js-swiper-arrow-next">' + 3105 '<div class="swiper-arrow-content">' + 3106 "<span></span>" + 3107 "</div>" + 3108 "</div>" + 3109 '<div class="swiper-arrow swiper-arrow-prev js-swiper-arrow-prev">' + 3110 '<div class="swiper-arrow-content">' + 3111 "<span></span>" + 3112 "</div>" + 3113 "</div>"; 3114 productsItems.find(".slider-group-products").append(arrowTemplate); 3115 3116 productsImagesSlider(); 3117 }); 3118} 3119 3120function productsImagesSlider() { 3121 if ($(".js-slider-products").length) { 3122 $(".js-slider-products").each(function () { 3123 var inst = $(this),
3124 swiperBlock = inst.closest(".js-slider-group"), 3125 // swiperPagination = swiperBlock.find(".js-swiper-pagination"), 3126 swiperArrowPrev = swiperBlock.find(".js-swiper-arrow-prev"), 3127 swiperArrowNext = swiperBlock.find(".js-swiper-arrow-next"); 3128 3129 var productsBreakpoints = { 3130 200: { 3131 slidesPerView: 1, 3132 }, 3133 480: { 3134 slidesPerView: 2, 3135 // slidesPerGroup: 1, 3136 }, 3137 771: { 3138 slidesPerView: 2, 3139 // slidesPerGroup: 1, 3140 }, 3141 992: { 3142 slidesPerView: 3, 3143 // slidesPerGroup: 1, 3144 }, 3145 1200: { 3146 slidesPerView: 4, 3147 // slidesPerGroup: 1, 3148 }, 3149 1440: { 3150 slidesPerView: 4, 3151 // slidesPerGroup: 1, 3152 }, 3153 }; 3154 3155 var mySwiper = new Swiper(inst, { 3156 spaceBetween: 0, 3157 lazy: true, 3158 loop: true, 3159 speed: 600, 3160 // pagination: { 3161 // el: swiperPagination, 3162 // clickable: true, 3163 // }, 3164 navigation: { 3165 nextEl: swiperArrowNext, 3166 prevEl: swiperArrowPrev, 3167 }, 3168 breakpoints: productsBreakpoints, 3169 }); 3170 }); 3171 } 3172} 3173 3174 3175function repositionReview() { 3176 var templateReview = ` 3177 <div class="content-wrapper ratings-block js-ratings-block"> 3178 <div class="container"> 3179 <div class="h4 homepage-group-title"> Reviews </div> 3180 <div class="rating-block"> 3181 <div class="votes-wrap simple-vote"> 3182 <div class="vote-wrap"> 3183 <div class="vote-header"> 3184 <span class="vote-pic"> 3185 <span class="vote-initials" style="background-color: #000000;"> 3186 F 3187 </span> 3188 <img src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=" data-src="//www.gravatar.com/avatar/d26dfbf184b8a49f39e3de16e6a3cb61?s=60&d=blank&r=g" class="" width="60" height="60" alt="Avatar of author"> 3189 </span> 3190 <span class="vote-summary"> 3191 <span class="vote-name vote-name--nowrap" data-testid="author"> 3192 <span>FB</span> 3193 </span> 3194 <span class="vote-rating"> 3195 <span class="stars" data-testid="authorStars"> 3196 <span class="star star-on"></span> 3197 <span class="star star-on"></span> 3198 <span class="star star-on"></span> 3199 <span class="star star-on"></span> 3200 <span class="star star-on"></span> 3201 </span> 3202 <span class="vote-delimeter">|</span> 3203 <span class="vote-time" data-testid="latestContributionDate"> 3204 10/06/2023 3205 </span> 3206 </span> 3207 </span> 3208 </div> 3209 <div class="vote-content" data-testid="authorText"> 3210 They gave info on when the product I wanted would be in stock and delivered fast. Good one! 3211 </div> 3212 </div> 3213 <div class="vote-wrap"> 3214 <div class="vote-header"> 3215 <span class="vote-pic"> 3216 <span class="vote-initials" style="background-color: #000000;"> 3217 KD 3218 </span> 3219 <img src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=" data-src="//www.gravatar.com/avatar/994dd96e9b0d8a6078638bdd50be4893?s=60&d=blank&r=g" class="" width="60" height="60" alt="Avatar of author"> 3220 </span> 3221 <span class="vote-summary"> 3222 <span class="vote-name vote-name--nowrap" data-testid="author"> 3223 <span>Karolina Duszkiewicz</span> 3224 </span> 3225 <span class="vote-rating"> 3226 <span class="stars" data-testid="authorStars"> 3227 <span class="star star-on"></span> 3228 <span class="star star-on"></span> 3229 <span class="star star-on"></span> 3230 <span class="star star-on"></span> 3231 <span class="star star-on"></span> 3232 </span> 3233 <span class="vote-delimeter">|</span> 3234 <span class="vote-time" data-testid="latestContributionDate"> 3235 10/06/2023 3236 </span> 3237 </span> 3238 </span> 3239 </div> 3240 <div class="vote-content" data-testid="authorText"> 3241 Great products and quick shipping ðð» 3242 </div> 3243 </div> 3244 <div class="vote-wrap"> 3245 <div class="vote-header"> 3246 <span class="vote-pic"> 3247 <span class="vote-initials" style="background-color: #0B3C5D;"> 3248 S 3249 </span> 3250 <img src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=" data-src="//www.gravatar.com/avatar/29844d4121bd6e6a0cde03f557179913?s=60&d=blank&r=g" class="" width="60" height="60" alt="Avatar of author"> 3251 </span> 3252 <span class="vote-summary"> 3253 <span class="vote-name vote-name--nowrap" data-testid="author"> 3254 <span>Sarunas Z</span> 3255 </span> 3256 <span class="vote-rating"> 3257 <span class="stars" data-testid="authorStars"> 3258 <span class="star star-on"></span> 3259 <span class="star star-on"></span> 3260 <span class="star star-on"></span> 3261 <span class="star star-on"></span> 3262 <span class="star star-on"></span> 3263 </span> 3264 <span class="vote-delimeter">|</span> 3265 <span class="vote-time" data-testid="latestContributionDate"> 3266 09/06/2023 3267 </span> 3268 </span> 3269 </span> 3270 </div> 3271 <div class="vote-content" data-testid="authorText"> 3272 Shop at it's best as usually. 3273 </div> 3274 </div> 3275 <div class="vote-wrap"> 3276 <div class="vote-header"> 3277 <span class="vote-pic"> 3278 <span class="vote-initials" style="background-color: #0B3C5D;"> 3279 JL 3280 </span> 3281 <img src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=" data-src="//www.gravatar.com/avatar/1166029a79a337c7b73f9001e48d03b0?s=60&d=blank&r=g" class="" width="60" height="60" alt="Avatar of author"> 3282 </span> 3283 <span class="vote-summary"> 3284 <span class="vote-name vote-name--nowrap" data-testid="author"> 3285 <span>Jensen Lekeux</span> 3286 </span> 3287 <span class="vote-rating"> 3288 <span class="stars" data-testid="authorStars"> 3289 <span class="star star-on"></span> 3290 <span class="star star-on"></span> 3291 <span class="star star-on"></span> 3292 <span class="star star-on"></span> 3293 <span class="star star-on"></span> 3294 </span> 3295 <span class="vote-delimeter">|</span> 3296 <span class="vote-time" data-testid="latestContributionDate"> 3297 09/06/2023 3298 </span> 3299 </span> 3300 </span> 3301 </div> 3302 <div class="vote-content" data-testid="authorText"> 3303 Verry satisfied in a few days delivery to Belgium and the hhc-p is nice. 3304 </div> 3305 </div> 3306 <div class="vote-wrap"> 3307 <div class="vote-header"> 3308 <span class="vote-pic"> 3309 <span class="vote-initials" style="background-color: #0B3C5D;"> 3310 J 3311 </span> 3312 <img src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=" data-src="//www.gravatar.com/avatar/28bc26ad6768d1743342b64f31040f2b?s=60&d=blank&r=g" class="" width="60" height="60" alt="Avatar of author"> 3313 </span> 3314 <span class="vote-summary"> 3315 <span class="vote-name vote-name--nowrap" data-testid="author"> 3316 <span>JJ</span> 3317 </span> 3318 <span class="vote-rating"> 3319 <span class="stars" data-testid="authorStars"> 3320 <span class="star star-on"></span> 3321 <span class="star star-on"></span> 3322 <span class="star star-on"></span> 3323 <span class="star star-on"></span> 3324 <span class="star star-on"></span> 3325 </span> 3326 <span class="vote-delimeter">|</span> 3327 <span class="vote-time" data-testid="latestContributionDate"> 3328 09/06/2023 3329 </span> 3330 </span> 3331 </span> 3332 </div> 3333 <div class="vote-content" data-testid="authorText"> 3334 Great shop, high quality products, pretty fast delivery (5 days) and good customer service (no problem with speaking english). 10/10 3335 </div> 3336 </div> 3337 <div class="vote-wrap"> 3338 <div class="vote-header"> 3339 <span class="vote-pic"> 3340 <span class="vote-initials" style="background-color: #3F3250;"> 3341 E 3342 </span> 3343 <img src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=" data-src="//www.gravatar.com/avatar/87dfa2db96cb77333e4b79e459569e95?s=60&d=blank&r=g" class="" width="60" height="60" alt="Avatar of author"> 3344 </span> 3345 <span class="vote-summary"> 3346 <span class="vote-name vote-name--nowrap" data-testid="author"> 3347 <span>Equality_First</span> 3348 </span> 3349 <span class="vote-rating"> 3350 <span class="stars" data-testid="authorStars"> 3351 <span class="star star-on"></span> 3352 <span class="star star-on"></span> 3353 <span class="star star-on"></span> 3354 <span class="star star-on"></span> 3355 <span class="star star-on"></span> 3356 </span> 3357 <span class="vote-delimeter">|</span> 3358 <span class="vote-time" data-testid="latestContributionDate"> 3359 06/06/2023 3360 </span> 3361 </span> 3362 </span> 3363 </div> 3364 <div class="vote-content" data-testid="authorText"> 3365 Great products and quick shipping to Sweden. The HHC-P vapes are truly revolutionizing! Straight up sativa goodness with no heaviness to mind or body. 3366 These are also the most potent vapes i have tried. As long as hhc get to stay legal in my country i will never buy from elsewhere again! 3367 </div> 3368 </div> 3369 <div class="vote-wrap"> 3370 <div class="vote-header"> 3371 <span class="vote-pic"> 3372 <span class="vote-initials" style="background-color: #0B3C5D;"> 3373 LM 3374 </span> 3375 <img src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=" data-src="//www.gravatar.com/avatar/842a07b2bc089166df2f263778662605?s=60&d=blank&r=g" class="" width="60" height="60" alt="Avatar of author"> 3376 </span> 3377 <span class="vote-summary"> 3378 <span class="vote-name vote-name--nowrap" data-testid="author"> 3379 <span>Loren metikos</span> 3380 </span> 3381 <span class="vote-rating"> 3382 <span class="stars" data-testid="authorStars"> 3383 <span class="star star-on"></span> 3384 <span class="star star-on"></span> 3385 <span class="star star-on"></span> 3386 <span class="star star-on"></span> 3387 <span class="star star-on"></span> 3388 </span> 3389 <span class="vote-delimeter">|</span> 3390 <span class="vote-time" data-testid="latestContributionDate"> 3391 05/06/2023 3392 </span> 3393 </span> 3394 </span> 3395 </div> 3396 <div class="vote-content" data-testid="authorText"> 3397 Excellent canapuff flowers,Professional team and fast delivery. 3398 </div> 3399 </div> 3400 <div class="vote-wrap"> 3401 <div class="vote-header"> 3402 <span class="vote-pic"> 3403 <span class="vote-initials" style="background-color: #FF6666;"> 3404 BJ 3405 </span> 3406 <img src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=" data-src="//www.gravatar.com/avatar/8a22f938570348ba35dcaee0f34e9651?s=60&d=blank&r=g" class="" width="60" height="60" alt="Avatar of author"> 3407 </span> 3408 <span class="vote-summary"> 3409 <span class="vote-name vote-name--nowrap" data-testid="author"> 3410 <span>Bart janik</span> 3411 </span> 3412 <span class="vote-rating"> 3413 <span class="stars" data-testid="authorStars"> 3414 <span class="star star-on"></span> 3415 <span class="star star-on"></span> 3416 <span class="star star-on"></span> 3417 <span class="star star-on"></span> 3418 <span class="star star-on"></span> 3419 </span> 3420 <span class="vote-delimeter">|</span> 3421 <span class="vote-time" data-testid="latestContributionDate"> 3422 02/06/2023 3423 </span> 3424 </span> 3425 </span> 3426 </div> 3427 <div class="vote-content" data-testid="authorText"> 3428 Excellent selection of products, i have ordered several times and have been very satisfied. Very good support team and shipping is quick. Top quality store and product. Delivered to ireland with no problems, go for it. ðð 3429 </div> 3430 </div> 3431 <div class="vote-wrap"> 3432 <div class="vote-header"> 3433 <span class="vote-pic"> 3434 <span class="vote-initials" style="background-color: #4FB7B9;"> 3435 O 3436 </span> 3437 <img src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=" data-src="//www.gravatar.com/avatar/3e0f907b87b8ecb90c9e5da95282ca98?s=60&d=blank&r=g" class="" width="60" height="60" alt="Avatar of author"> 3438 </span> 3439 <span class="vote-summary"> 3440 <span class="vote-name vote-name--nowrap" data-testid="author"> 3441 <span>Olena</span> 3442 </span> 3443 <span class="vote-rating"> 3444 <span class="stars" data-testid="authorStars"> 3445 <span class="star star-on"></span> 3446 <span class="star star-on"></span> 3447 <span class="star star-on"></span> 3448 <span class="star star-on"></span> 3449 <span class="star star-on"></span> 3450 </span> 3451 <span class="vote-delimeter">|</span> 3452 <span class="vote-time" data-testid="latestContributionDate"> 3453 01/06/2023 3454 </span> 3455 </span> 3456 </span> 3457 </div> 3458 <div class="vote-content" data-testid="authorText"> 3459 Ha comprato il mio fratello un paio di prodotti e sono di ottima qualità . Ha raccontato anche a me,sono in attesa del ordine ð 3460 </div> 3461 </div> 3462 <div class="vote-wrap"> 3463 <div class="vote-header"> 3464 <span class="vote-pic"> 3465 <span class="vote-initials" style="background-color: #000000;"> 3466 FB 3467 </span> 3468 <img src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=" data-src="//www.gravatar.com/avatar/69393f0b327076d7c48c5352768478c2?s=60&d=blank&r=g" class="" width="60" height="60" alt="Avatar of author"> 3469 </span> 3470 <span class="vote-summary"> 3471 <span class="vote-name vote-name--nowrap" data-testid="author"> 3472 <span>Francesco Bottardi</span> 3473 </span> 3474 <span class="vote-rating"> 3475 <span class="stars" data-testid="authorStars"> 3476 <span class="star star-on"></span> 3477 <span class="star star-on"></span> 3478 <span class="star star-on"></span> 3479 <span class="star star-on"></span> 3480 <span class="star star-on"></span> 3481 </span> 3482 <span class="vote-delimeter">|</span> 3483 <span class="vote-time" data-testid="latestContributionDate"> 3484 01/06/2023 3485 </span> 3486 </span> 3487 </span> 3488 </div> 3489 <div class="vote-content" data-testid="authorText"> 3490 Analogy é stupefacente! 3491 Aromi fedeli all'originale 3492 Piacevole durante e dopo l'uso 3493 </div> 3494 </div> 3495 <div class="vote-wrap"> 3496 <div class="vote-header"> 3497 <span class="vote-pic"> 3498 <span class="vote-initials" style="background-color: #000000;"> 3499 M 3500 </span> 3501 <img src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=" data-src="//www.gravatar.com/avatar/73b2a11d79cedfbeff4dffd30ceb5ff0?s=60&d=blank&r=g" class="" width="60" height="60" alt="Avatar of author"> 3502 </span> 3503 <span class="vote-summary"> 3504 <span class="vote-name vote-name--nowrap" data-testid="author"> 3505 <span>
3505Moe</span> 3506 </span> 3507 <span class="vote-rating"> 3508 <span class="stars" data-testid="authorStars"> 3509 <span class="star star-on"></span> 3510 <span class="star star-on"></span> 3511 <span class="star star-on"></span> 3512 <span class="star star-on"></span> 3513 <span class="star star-on"></span> 3514 </span> 3515 <span class="vote-delimeter">|</span> 3516 <span class="vote-time" data-testid="latestContributionDate"> 3517 27/05/2023 3518 </span> 3519 </span> 3520 </span> 3521 </div> 3522 <div class="vote-content" data-testid="authorText"> 3523 Really good stuff, came to sweden with out problems, very potent 3524 </div> 3525 </div> 3526 <div class="vote-wrap"> 3527 <div class="vote-header"> 3528 <span class="vote-pic"> 3529 <span class="vote-initials" style="background-color: #000000;"> 3530 KD 3531 </span> 3532 <img src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=" data-src="//www.gravatar.com/avatar/994dd96e9b0d8a6078638bdd50be4893?s=60&d=blank&r=g" class="" width="60" height="60" alt="Avatar of author"> 3533 </span> 3534 <span class="vote-summary"> 3535 <span class="vote-name vote-name--nowrap" data-testid="author"> 3536 <span>Karolina Duszkiewicz</span> 3537 </span> 3538 <span class="vote-rating"> 3539 <span class="stars" data-testid="authorStars"> 3540 <span class="star star-on"></span> 3541 <span class="star star-on"></span> 3542 <span class="star star-on"></span> 3543 <span class="star star-on"></span> 3544 <span class="star star-on"></span> 3545 </span> 3546 <span class="vote-delimeter">|</span> 3547 <span class="vote-time" data-testid="latestContributionDate"> 3548 27/05/2023 3549 </span> 3550 </span> 3551 </span> 3552 </div> 3553 <div class="vote-content" data-testid="authorText"> 3554 The best products â¤ï¸ 3555 </div> 3556 </div> 3557 <div class="vote-wrap"> 3558 <div class="vote-header"> 3559 <span class="vote-pic"> 3560 <span class="vote-initials" style="background-color: #0B3C5D;"> 3561 A 3562 </span> 3563 <img src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=" data-src="//www.gravatar.com/avatar/fdd0e1b4dbea6570a02aee7036de2f4d?s=60&d=blank&r=g" class="" width="60" height="60" alt="Avatar of author"> 3564 </span> 3565 <span class="vote-summary"> 3566 <span class="vote-name vote-name--nowrap" data-testid="author"> 3567 <span>Alex</span> 3568 </span> 3569 <span class="vote-rating"> 3570 <span class="stars" data-testid="authorStars"> 3571 <span class="star star-on"></span> 3572 <span class="star star-on"></span> 3573 <span class="star star-on"></span> 3574 <span class="star star-on"></span> 3575 <span class="star star-on"></span> 3576 </span> 3577 <span class="vote-delimeter">|</span> 3578 <span class="vote-time" data-testid="latestContributionDate"> 3579 26/05/2023 3580 </span> 3581 </span> 3582 </span> 3583 </div> 3584 <div class="vote-content" data-testid="authorText"> 3585 Seems very good :) waiting for order now 3586 </div> 3587 </div> 3588 <div class="vote-wrap"> 3589 <div class="vote-header"> 3590 <span class="vote-pic"> 3591 <span class="vote-initials" style="background-color: #4FB7B9;"> 3592 OD 3593 </span> 3594 <img src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=" data-src="//www.gravatar.com/avatar/652cd5d3f66c0d63416ace95b137b918?s=60&d=blank&r=g" class="" width="60" height="60" alt="Avatar of author"> 3595 </span> 3596 <span class="vote-summary"> 3597 <span class="vote-name vote-name--nowrap" data-testid="author"> 3598 <span>Oran Devers</span> 3599 </span> 3600 <span class="vote-rating"> 3601 <span class="stars" data-testid="authorStars"> 3602 <span class="star star-on"></span> 3603 <span class="star star-on"></span> 3604 <span class="star star-on"></span> 3605 <span class="star star-on"></span> 3606 <span class="star star-on"></span> 3607 </span> 3608 <span class="vote-delimeter">|</span> 3609 <span class="vote-time" data-testid="latestContributionDate"> 3610 25/05/2023 3611 </span> 3612 </span> 3613 </span> 3614 </div> 3615 <div class="vote-content" data-testid="authorText"> 3616 Excellent selection of products, i have ordered several times and have been very satisfied. Very good support team and shipping is quick. Top quality store and product ð 3617 </div> 3618 </div> 3619 <div class="vote-wrap"> 3620 <div class="vote-header"> 3621 <span class="vote-pic"> 3622 <span class="vote-initials" style="background-color: #FF6666;"> 3623 DR 3624 </span> 3625 <img src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=" data-src="//www.gravatar.com/avatar/255d98c660a0870e382b789235c84f12?s=60&d=blank&r=g" class="" width="60" height="60" alt="Avatar of author"> 3626 </span> 3627 <span class="vote-summary"> 3628 <span class="vote-name vote-name--nowrap" data-testid="author"> 3629 <span>Dawid Referda</span> 3630 </span> 3631 <span class="vote-rating"> 3632 <span class="stars" data-testid="authorStars"> 3633 <span class="star star-on"></span> 3634 <span class="star star-on"></span> 3635 <span class="star star-on"></span> 3636 <span class="star star-on"></span> 3637 <span class="star star-on"></span> 3638 </span> 3639 <span class="vote-delimeter">|</span> 3640 <span class="vote-time" data-testid="latestContributionDate"> 3641 25/05/2023 3642 </span> 3643 </span> 3644 </span> 3645 </div> 3646 <div class="vote-content" data-testid="authorText"> 3647 The best shop in the world!! â¤ï¸ 3648 </div> 3649 </div> 3650 <div class="vote-wrap"> 3651 <div class="vote-header"> 3652 <span class="vote-pic"> 3653 <span class="vote-initials" style="background-color: #3F3250;"> 3654 N 3655 </span> 3656 <img src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=" data-src="//www.gravatar.com/avatar/55a45dd46acf16b69a779a2e41f27a0a?s=60&d=blank&r=g" class="" width="60" height="60" alt="Avatar of author"> 3657 </span> 3658 <span class="vote-summary"> 3659 <span class="vote-name vote-name--nowrap" data-testid="author"> 3660 <span>NikB</span> 3661 </span> 3662 <span class="vote-rating"> 3663 <span class="stars" data-testid="authorStars"> 3664 <span class="star star-on"></span> 3665 <span class="star star-on"></span> 3666 <span class="star star-on"></span> 3667 <span class="star star-on"></span> 3668 <span class="star star-on"></span> 3669 </span> 3670 <span class="vote-delimeter">|</span> 3671 <span class="vote-time" data-testid="latestContributionDate"> 3672 25/05/2023 3673 </span> 3674 </span> 3675 </span> 3676 </div> 3677 <div class="vote-content" data-testid="authorText"> 3678 Fantastic products and after sales assistance. Very kind people. I recommend this
3678shop. Thank you very much! 3679 </div> 3680 </div> 3681 </div> 3682 <div id="ratingWrapper" class="rate-wrapper unveil-wrapper"> 3683 <div class="rate-wrap row"> 3684 <div class="rate-average-wrap col-xs-12 col-sm-6"> 3685 <div class="rate-average-inner"> 3686 <span class="rate-average"> 3687 5,0 3688 </span> 3689 <span class="rate-star-wrap"> 3690 <span class="stars"> 3691 <a class="star star-on"></a> 3692 <a class="star star-on"></a> 3693 <a class="star star-on"></a> 3694 <a class="star star-on"></a> 3695 <a class="star star-on"></a> 3696 </span> 3697 <span class="stars-label"> 3698 447 ratings 3699 </span> 3700 </span> 3701 </div> 3702 <a href="/store-rating" class="add-comment"> 3703 <span class="link-like rating-icon">Add rating</span> 3704 </a> 3705 </div> 3706 <div class="col-xs-12 col-sm-6"> 3707 <div class="rate-list" data-score="5"> 3708 <div class="rate-star stars"> 3709 <span class="rate-value"> 3710 5 3711 </span> 3712 <span class="star star-off"></span> 3713 </div> 3714 <div class="rate-block"> 3715 <span class="rate-bar" style="width: 98%;"> 3716 <span class="rate-count active">437x</span> 3717 </span> 3718 </div> 3719 </div> 3720 <div class="rate-list" data-score="4"> 3721 <div class="rate-star stars"> 3722 <span class="rate-value"> 3723 4 3724 </span> 3725 <span class="star star-off"></span> 3726 </div> 3727 <div class="rate-block"> 3728 <span class="rate-bar" style="width: 2%;"> 3729 <span class="rate-count active">8x</span> 3730 </span> 3731 </div> 3732 </div> 3733 <div class="rate-list" data-score="3"> 3734 <div class="rate-star stars"> 3735 <span class="rate-value"> 3736 3 3737 </span> 3738 <span class="star star-off"></span> 3739 </div> 3740 <div class="rate-block"> 3741 <span class="rate-bar" style="width: 0%;"> 3742 <span class="rate-count">1x</span> 3743 </span> 3744 </div> 3745 </div> 3746 <div class="rate-list" data-score="2"> 3747 <div class="rate-star stars"> 3748 <span class="rate-value"> 3749 2 3750 </span> 3751 <span class="star star-off"></span> 3752 </div> 3753 <div class="rate-block"> 3754 <span class="rate-bar" style="width: 0%;"> 3755 <span class="rate-count">0x</span> 3756 </span> 3757 </div> 3758 </div> 3759 <div class="rate-list" data-score="1"> 3760 <div class="rate-star stars"> 3761 <span class="rate-value"> 3762 1 3763 </span> 3764 <span class="star star-off"></span> 3765 </div> 3766 <div class="rate-block"> 3767 <span class="rate-bar" style="width: 0%;"> 3768 <span class="rate-count">1x</span> 3769 </span> 3770 </div> 3771 </div> 3772 </div> 3773 </div> 3774 </div> 3775 </div> 3776 </div> 3777 </div> 3778 `; 3779 3780 $(templateReview).insertBefore(".container--bannersBenefit"); 3781 3782 $(".js-ratings-block .homepage-group-title").wrapInner("<span></span>"); 3783 $(".rate-average-inner .rate-star-wrap").append($(".add-comment")); 3784 $(".add-comment span").text("Add review"); 3785 $(".vote-wrap").each(function () { 3786 $(this).append($(this).find(".vote-rating")); 3787 }); 3788 $(".rate-list").each(function () { 3789 $(this).find(".rate-block").append($(this).find(".rate-count")); 3790 }); 3791} 3792 3793 3794function repositionStore() { 3795 if ($(".store-block").length) { 3796 var storeBlock = $(".store-block"); 3797 $(storeBlock).insertBefore("#footer"); 3798 3799 $(".custom-footer__banner16").remove(); 3800 } 3801}
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.