1 2/* 3/* NB Fajl:'./components/complex/search/search-1/search-1.js.' 4*/var modelNBUI_SearchCore = new NBUI_SearchCore(); 5 6$(document).ready(function (){ 7 8 let $searchElement = $('.nbf-search-input'); 9 let $placeholderLargeDevice = $('.nbf-search-button'); 10 let $placeholderSmallDevice = $('.nbf-append-search-mobile'); 11 12 modelNBUI_SearchCore.appendSearchInputUnderBreakpoint($searchElement, $placeholderLargeDevice, $placeholderSmallDevice); 13}) 14/* 15/* NB Fajl:'./components/complex/search/search-icon/search-icon.js.' 16*/function NBUI_Search(){}; 17var modelNBUI_Search = new NBUI_Search(); 18 19NBUI_Search.prototype.openSearch = function () { 20 21 $('body').addClass('open-search'); 22 $('body').removeClass('wsactive'); 23 24 setTimeout(function (){ 25 $('#search-text').focus(); 26 },100) 27} 28 29NBUI_Search.prototype.closeSearch = function () { 30 $('body').removeClass('open-search'); 31 $('#search-text').val(''); 32} 33 34NBUI_Search.prototype.loadSearchResult = function (query) { 35
36 var modelNBSearch = new NBSearch(); 37 38 $('.nbf-loader-search').removeClass('hidden'); 39 40 setTimeout(function (){ 41 //get params 42 let blockElement = $('#searchHolder').find(".block").find(".block"); 43 if(blockElement.length === 0){ 44 blockElement = $('#searchHolder').find(".block"); 45 } 46 47 let pageId = $(blockElement).attr('data-site-page-id'); 48 let layoutId = $(blockElement).attr('data-layout-id'); 49 let blockId = $(blockElement).attr('data-parent-block-id'); 50 let position = $(blockElement).attr('data-block-position'); 51 let publicKey = ""; //$(blockElement).attr('data-block-public-key'); //kn: Zakomentarisano jer je [4] stavka sitePageBlockId 52 53 let block = pageId+":"+layoutId+":"+blockId+":"+position+":"+publicKey; 54 55 var params = { 56 block: block, 57 query: query, 58 allLib: -1, 59 } 60 61 //2. pozivanje funkcije iz modela 62 var result = modelNBSearch.load(params); 63 64 //3. Vrati html 65 if(result.flag && result.ret.flag && result.ret.info != ""){ 66 $(blockElement).replaceWith(result.ret.info); 67 } 68 69 let eventId = generateEventId(); 70 71 nb_custom_event_trigger('loadSearchProductsEvent', result.ret); 72 nb_custom_event_trigger('loadSearchProductsEventGA4', { event_id: eventId}); 73 74 $('.nbf-loader-search').addClass('hidden'); 75 },100) 76 77 78 79} 80 81NBUI_Search.prototype.deleteRecentSearch = function(element){ 82 83 let value = element.data('recent-search-value'); 84
85 let modelNBSearch = new NBSearch(); 86 87 //1. sakupljanje parametara sa elementa 88 var params = { 89 value: value, 90 }; 91 92 //2. pozivanje funkcije iz modela 93 var result = modelNBSearch.delete(params); 94 95 if(result.ret.flag === true){ 96 //3. UI komponenta 97 // nb7_info(result.ret.info); //ne bih pisala info da je uspesno obrisano, videce da jeste 98 element.closest('.nb-item').hide(); //da sakrijemo vrednost kako ne bismo morali da forisramo reload 99 }else if(result.ret.flag === false){ 100 nb7_infoError(result.ret.info); 101 } else{ 102 nb7_infoError(result.info); 103 } 104 105} 106 107NBUI_Search.prototype.deleteAllRecentSearch = function(){ 108 109 let modelNBSearch = new NBSearch(); 110 111 //1. sakupljanje parametara sa elementa 112 //nemamo params 113 114 //2. pozivanje funkcije iz modela 115 var result = modelNBSearch.deleteall(); 116 117 if(result.ret.flag === true){ 118 //3. UI komponenta 119 // nb7_info(result.ret.info); //ne bih pisala info da je uspesno obrisano, videce da jeste 120 }else if(result.ret.flag === false){ 121 nb7_infoError(result.ret.info); 122 } else{ 123 nb7_infoError(result.info); 124 } 125} 126 127NBUI_Search.prototype.removeSpecialChars = function (search) { 128 return search.replace(/´|â|áµ|°|\|\||â|â|®|â¢|ââ|â|`|®|>|<|$|^|\\|"|'/g,''); 129} 130 131NBUI_Search.prototype.getQuery = function (searchInput) { 132 let query = searchInput.val(); 133 query = modelNBUI_Search.removeSpecialChars(query); 134 return query; 135} 136 137// NBUI_Search.prototype.nb_timeWait = function (f, delay){ 138// 139// var timer = null; 140// return function(){ 141// var context = this, args = arguments; 142// clearTimeout(timer); 143// timer = window.setTimeout(function(){ 144// f.apply(context, args); 145// }, 146// delay || 800); 147// }; 148// } 149 150NBUI_Search.prototype.nb_timeWait = function(f, delay){ 151 var timer = null; 152 return function(){ 153 var context = this, args = arguments; 154 clearTimeout(timer); 155 timer = window.setTimeout(function(){ 156 f.apply(context, args); 157 }, 158 delay || 800); 159 }; 160} 161 162$(document).ready(() => { 163 164 let $searchBtn = $('.nbf-search-button'); 165 let $searchClose = $('.nbf-search-close'); 166 let $searchInput = $('#search-text'); 167 168 $searchBtn.on('click', function (e) { 169 170 if($(e.target).closest('.nbf-search-close').length){ 171 return; 172 } 173 174 e.preventDefault(); 175 e.stopPropagation(); 176 177 modelNBUI_Search.openSearch(); 178 }); 179 180 $searchClose.on('click', function (e) { 181 e.preventDefault(); 182 e.stopPropagation(); 183 184 modelNBUI_Search.closeSearch(); 185 }); 186 187 $searchInput.keyup( 188 modelNBUI_Search.nb_timeWait(function(e){ 189 190 let query = modelNBUI_Search.getQuery($searchInput); 191 192 if(e.keyCode == 13){ 193 194 let permalinkProductListingPage = $('#show-all-result').val(); 195 let showAllResutl = permalinkProductListingPage + "?search=" + query; 196 197 window.location.replace(showAllResutl); 198 199 } else { 200 201 setTimeout(function(){ 202 modelNBUI_Search.loadSearchResult(query); 203 },100); 204 205 } 206 207 }) 208 ); 209 210}); 211/* 212/* NB Fajl:'./components/complex/product/product-card/product-card.js.' 213*/if (typeof NBUI_ProductCard === 'undefined') { 214 function NBUI_ProductCard() {} 215} 216 217NBUI_ProductCard.prototype.focusProductCardWithKeyboard = function () { 218 $('.nb-product-card').each(function () { 219 let $productCard = $(this); 220 let $button = $productCard.find('.nbf-add-to-cart'); 221 let $link = $productCard.find('.nb-product-name .nb-link'); 222 223 $button.attr('tabindex', '0'); 224 $link.attr('tabindex', '0'); 225 226 $productCard.on('focusin', function () { 227 $productCard.parent().addClass('nb-element-hover'); 228 modelNBUI_ProductCard.addToCartWithKeyboard($button); 229 }); 230 231 $productCard.on('focusout', function () { 232 setTimeout(function () { 233 if (!$productCard.has(document.activeElement).length) { 234 $productCard.parent().removeClass('nb-element-hover'); 235 } 236 }, 0); 237 }); 238 }); 239} 240 241NBUI_ProductCard.prototype.addToCartWithKeyboard = function (el) { 242 el.off('keydown').on('keydown', function (e) { 243 if (e.key === 'Enter') { 244 let $sizes = el.parent().find('.nbf-size-value'); 245 setTimeout(function (){ 246 if ($sizes.length) { 247 $sizes.attr('tabindex', '0'); 248 $sizes[0].focus(); 249 } 250 }, 200) 251 252 } 253 }); 254} 255 256if (typeof modelNBUI_ProductCard === 'undefined') { 257 var modelNBUI_ProductCard = new NBUI_ProductCard(); 258} 259 260$(document).ready(function (){ 261 modelNBUI_ProductCard.focusProductCardWithKeyboard(); 262 263 $(window).on('loadproductstatebystore loadproductsevent reloadcartevent loadlastviewedproductevent loadSearchProductsEvent',function (){ 264 modelNBUI_ProductCard.focusProductCardWithKeyboard(); 265 }); 266}) 267/* 268/* NB Fajl:'./components/core/box/box-with-link-list/box-with-link-list.js.' 269*/$(document).ready(function (){ 270 let $el = $('.nbf-box-with-link-list .nbf-slider-init'); 271 272 if (!$el.length) return; 273
274 NB7_slider.initSliderUnderBreakpoint($el); 275}) 276 277$(window).on('loadSearchProductsEvent', function() { 278 let $el = $('.nbf-box-with-link-list .nbf-slider-init'); 279 if (!$el.length) return; 280 NB7_slider.initSliderUnderBreakpoint($el); 281}); 282/* 283/* NB Fajl:'./components/complex/search/search-tag-list/search-tag-list-1/search-tag-list-1.js.' 284*/function NBUI_SearchTagList1(){} 285 286var modelNBUI_SearchTagList1 = new NBUI_SearchTagList1(); 287 288NBUI_SearchTagList1.prototype.reInitSlider = function () { 289 let nbSlider = $('.nbf-search-tag-list-1').find('.nbf-slider-init'); 290 291 NB7_slider.initSlider(nbSlider); 292} 293 294$(window).on('loadSearchProductsEvent', function () { 295 modelNBUI_SearchTagList1.reInitSlider(); 296}) 297/* 298/* NB Fajl:'./components/complex/menu/menu-main-navigation/menu-main-navigation-3/menu-main-navigation-3.js.' 299*/function MenuMainNavigation3(){} 300var modelMenuMainNavigation3 = new MenuMainNavigation3(); 301 302MenuMainNavigation3.prototype.appendFooterLinks = function (){ 303 if(window.innerWidth < 992){ 304 if($('.nbf-footer-links').length !== 0){ 305 $('.nbf-footer-links-wrapper').empty().append($('.nbf-footer-links ').clone(true)); 306 } 307 } 308} 309 310MenuMainNavigation3.prototype.footerLinks = function (){ 311 let $elements = $('.wsmenu-list .nbf-footer-mobile-collapse'); 312 $elements.each(function (){ 313 let $collapseBtn = $(this).find('.nbf-collapse-button'); 314 let $collapseContent = $(this).find('.nbf-collapse-content'); 315 316 $collapseContent.hide(); 317 318 $collapseBtn.off('click').click(function (){ 319 if($(window).width() > 992) return; 320 $collapseContent.toggle(); 321 }) 322 }) 323} 324 325MenuMainNavigation3.prototype.appendChangeSiteInstance = function (){ 326 if(window.innerWidth < 992){ 327 if($('.nb-change-site-instance-1').length !== 0){ 328 $('.nbf-change-site-instance-wrapper').empty().append($('.nb-change-site-instance-1 ').clone(true)); 329 } 330 } 331} 332 333MenuMainNavigation3.prototype.appendMiniCartAndFavoriteInMobileMenu = function() { 334 let menuOpenIcon = $('#wsnavtoggle'); 335 336 let menuCartPlaceholder = $('.nbf-icons-wrapper .nbf-cart-icon-wrapper'); 337 let menuFavoritePlaceholder = $('.nbf-icons-wrapper .nbf-favorites-icon-wrapper'); 338 let headerCart = $('.nbf-open-mini-cart'); 339 let headerFavorite = $('.nbf-favorite-total'); 340 341 menuOpenIcon.click(function () { 342 if(!menuOpenIcon.hasClass('nb-menu-open')) { 343 344 menuOpenIcon.addClass('nb-menu-open'); 345 346 if(menuCartPlaceholder.length != 0 && headerCart.length != 0) { 347 let cloneCart = headerCart.clone(true); 348 menuCartPlaceholder.append(cloneCart); 349 } 350 351 if(menuFavoritePlaceholder.length != 0 && headerFavorite.length != 0) { 352 let cloneFavorite = headerFavorite.clone(true); 353 menuFavoritePlaceholder.append(cloneFavorite); 354 } 355 356 } else { 357 menuOpenIcon.removeClass('nb-menu-open'); 358 menuFavoritePlaceholder.find('.nbf-favorite-total').remove(); 359 menuCartPlaceholder.find('.nbf-open-mini-cart').remove(); 360 } 361 362 }) 363 364} 365 366$(document).ready(function (){ 367 modelMenuMainNavigation3.appendFooterLinks(); 368 modelMenuMainNavigation3.appendChangeSiteInstance(); 369 modelMenuMainNavigation3.footerLinks(); 370 modelMenuMainNavigation3.appendMiniCartAndFavoriteInMobileMenu(); 371 372 $(window).resize(function (){ 373 modelMenuMainNavigation3.appendFooterLinks(); 374 modelMenuMainNavigation3.appendChangeSiteInstance(); 375 modelMenuMainNavigation3.footerLinks(); 376 }) 377}) 378/* 379/* NB Fajl:'./components/complex/menu/menu-first-level-item-list-5/menu-first-level-item-list-5.js.' 380*/function NBUI_MenuFirstLevelItemList5() { 381 this.classMainNavigation = '.nbf-main-navigation'; 382 this.classFooterLinksWrapper = '.nbf-footer-links-wrapper'; 383 this.classChangeInstanceWrapper = '.nbf-change-site-instance-wrapper'; 384 this.classHeaderUserLinks = '.nbf-header-user-links'; 385 this.classHeaderMenuTitleWrapper = '.nbf-header-menu-title-wrapper'; 386 this.classHeaderMenuTitle = '.nbf-header-menu-title'; 387 this.classMenuClose = '.nbf-menu-close'; 388 this.classMenuBack = '.nbf-menu-back'; 389 this.classMenuFirstLevelList = '.nbf-menu-first-level-item-list'; 390 this.classMenuTitle = '.nbf-menu-title'; 391 this.classMenuImage = '.nb-menu-image'; 392 this.classFirstLevelItem = '.nbf-menu-first-level-item';
393 this.classFirstLevelItemLink = '.nbf-first-level-menu-item-link'; 394 this.classMenuDropdown = '.nbf-menu-dropdown'; 395 this.classSecondLevelItem = '.nbf-menu-second-level-item-list .nbf-menu-second-level-item'; 396 this.classSecondLevelItemLink = '.nbf-second-level-menu-item-link'; 397 this.classThirdLevelItemList = '.nbf-menu-third-level-item-list'; 398 this.classThirdLevelItem = '.nbf-third-menu-level-item-list .nbf-menu-third-level-item'; 399 this.classThirdLevelItemLink = '.nbf-third-level-menu-item-link'; 400 this.classFourthLevelItem = '.nbf-menu-fourth-level-item'; 401 this.classFourthLevelItemLink = '.nb-menu-fourth-level-item-link'; 402 403 this.initialTitle = $(this.classHeaderMenuTitle).html(); 404 405 this.menuTitleStack = { 406 level0: this.initialTitle, 407 level1: '', 408 level2: '', 409 }; 410} 411 412var modelNBUI_MenuFirstLevelItemList5 = new NBUI_MenuFirstLevelItemList5(); 413 414NBUI_MenuFirstLevelItemList5.prototype.rewriteMenuTitle = function (currentMenuTitle) { 415 $(this.classHeaderMenuTitle).html(currentMenuTitle); 416}; 417 418NBUI_MenuFirstLevelItemList5.prototype.enableMobileLinks = function () { 419 let enableLinksClass = $(".nbf-main-navigation.enable-mobile-links"); 420 421 return typeof enableLinksClass !== "undefined" && enableLinksClass.length > 0; 422}; 423 424NBUI_MenuFirstLevelItemList5.prototype.disableWsmenuClick = function () { 425 $('.wsmenu-click').off('click').on('click',function (e){ 426 e.stopImmediatePropagation(); 427 e.preventDefault(); 428 $(this).siblings('.nbf-first-level-menu-item-link')[0].click(); 429 }); 430} 431NBUI_MenuFirstLevelItemList5.prototype.firstLevelMenuClick = function () { 432 let self = this; 433 434 $(self.classMainNavigation).off('click.nbui1').on('click.nbui1', self.classFirstLevelItemLink, function (e) { 435 const $clickedItem = $(this).closest(self.classFirstLevelItem); 436 const $clickedLink = $(this); 437 const $clickedDropdown = $clickedItem.find('>' + self.classMenuDropdown); 438 439 if ($clickedDropdown.length === 0) { 440 return; 441 } 442 443 if ($clickedDropdown.length !== 0) { 444 445 const $target = $(e.target); 446 447 if (($target.is('.nb-menu-image, .nbf-menu-title') || $target.closest('.nb-menu-image, .nbf-menu-title').length) && self.enableMobileLinks()) { 448 return; 449 } 450 451 e.preventDefault(); 452 e.stopPropagation() 453 } 454 455 const $notClickedItems = $clickedItem.siblings(self.classFirstLevelItem); 456 457 if ($clickedItem.data('clicked')) return; 458 $clickedItem.data('clicked', true); 459 460 let $title = $clickedItem.find(self.classMenuTitle).html(); 461 462 if(typeof $title === "undefined" || !$title || $title === '') { 463 $title = $clickedItem.find(self.classMenuImage).html(); 464 } 465 466 self.menuTitleStack.level1 = $title; 467 self.rewriteMenuTitle(self.menuTitleStack.level1); 468 469 $clickedLink.addClass('hidden'); 470 $notClickedItems.addClass('hidden'); 471 $(`${self.classMenuFirstLevelList} ${self.classFooterLinksWrapper}`).addClass('hidden'); 472 $(`${self.classMenuFirstLevelList} ${self.classChangeInstanceWrapper}`).addClass('hidden'); 473 $(`${self.classMenuFirstLevelList} ${self.classHeaderUserLinks}`).addClass('hidden'); 474 475 $clickedDropdown.addClass('active'); 476 $(self.classMenuBack).addClass('show'); 477 }); 478}; 479 480 481NBUI_MenuFirstLevelItemList5.prototype.secondLevelMenuClick = function () { 482 let self = this; 483 const $nav = $(self.classMainNavigation); 484 const hasFourthLevel = $nav.find(self.classFourthLevelItem).length > 0; 485 486 $(self.classMainNavigation).off('click.nbui2').on('click.nbui2', self.classSecondLevelItem, function (e) { 487 488 const $clickedItem = $(this); 489 const $clickedLink = $clickedItem.find(self.classSecondLevelItemLink); 490 const $clickedDropdown = $clickedItem.find('+' + self.classThirdLevelItemList); 491 const $notClickedItems = $clickedItem.siblings(self.classSecondLevelItem); 492 493 if ($clickedDropdown.length !== 0) { 494 495 const $target = $(e.target); 496 497 if (($target.is('.nb-menu-image, .nbf-menu-title') || $target.closest('.nb-menu-image, .nbf-menu-title').length) && self.enableMobileLinks()) { 498 return; 499 } 500 501 e.preventDefault(); 502 e.stopPropagation(); 503 } 504 505 if (hasFourthLevel) { 506 if ($clickedItem.data('clicked')) return; 507 $clickedItem.data('clicked', true); 508 509 const clickedLevelItemTitle = $clickedLink.find(self.classMenuTitle).html(); 510 const $clickedItemThirdLevelList = $clickedItem.find(self.classThirdLevelItemList); 511 512 self.menuTitleStack.level2 = clickedLevelItemTitle; 513 self.rewriteMenuTitle(self.menuTitleStack.level2); 514 515 $clickedLink.addClass('hidden'); 516 $notClickedItems.addClass('hidden'); 517 $clickedItemThirdLevelList.addClass('active'); 518 } else { 519 $clickedItem.toggleClass('active'); 520 $notClickedItems.removeClass('active').addClass('hidden'); 521 } 522 }); 523}; 524 525NBUI_MenuFirstLevelItemList5.prototype.thirdLevelMenuClick = function () { 526 let self = this; 527 const $nav = $(self.classMainNavigation); 528 const hasFourthLevel = $nav.find(self.classFourthLevelItem).length > 0; 529 530 if (!hasFourthLevel) { 531 return; 532 } 533 534 $(self.classMainNavigation).off('click.nbui3').on('click.nbui3', self.classThirdLevelItem, function (e) { 535 e.preventDefault(); 536 $(this).toggleClass('active'); 537 }); 538}; 539 540NBUI_MenuFirstLevelItemList5.prototype.resetMenu = function () { 541 let self = this; 542 543 $(self.classMainNavigation).find('.hidden').removeClass('hidden'); 544 $(self.classMainNavigation).find('.active').removeClass('active'); 545 $(self.classMainNavigation).find('.show').removeClass('show'); 546 547 self.rewriteMenuTitle(self.initialTitle); 548 $(self.classMainNavigation) 549 .find('*') 550 .filter(function () { 551 return $(this).data('clicked') === true; 552 }) 553 .removeData('clicked'); 554}; 555 556NBUI_MenuFirstLevelItemList5.prototype.backMenuStep = function () { 557 let self = this; 558 559 const $nav = $(self.classMainNavigation); 560 561 const $activeThird = $nav.find(self.classThirdLevelItemList + '.active'); 562 if ($activeThird.length) { 563 $activeThird.removeClass('active'); 564 565 $nav.find(self.classSecondLevelItem).removeClass('hidden'); 566 $nav.find(self.classSecondLevelItemLink + '.hidden').removeClass('hidden'); 567 568 self.rewriteMenuTitle(self.menuTitleStack.level1); 569 570 $nav.find(self.classSecondLevelItem).removeData('clicked'); 571 return; 572 } 573 574 const $activeDropdown = $nav.find(self.classMenuDropdown + '.active'); 575 if ($activeDropdown.length) { 576 $activeDropdown.removeClass('active'); 577 578 $nav.find(self.classFirstLevelItem).removeClass('hidden'); 579 $nav.find(self.classFirstLevelItemLink + '.hidden').removeClass('hidden'); 580 $nav.find(`${self.classFooterLinksWrapper}, ${self.classChangeInstanceWrapper}, ${self.classHeaderUserLinks}`).removeClass('hidden'); 581 582 self.rewriteMenuTitle(self.initialTitle); 583 584 $nav.find(self.classFirstLevelItem).removeData('clicked'); 585 $(self.classMenuBack).removeClass('show'); 586 return; 587 } 588}; 589 590NBUI_MenuFirstLevelItemList5.prototype.bindCloseButton = function () { 591 let self = this; 592 593 $(document).off('click.nbui-close', self.classMenuClose).on('click.nbui-close', self.classMenuClose, function () { 594 self.resetMenu(); 595 }); 596}; 597 598NBUI_MenuFirstLevelItemList5.prototype.bindBackButton = function () { 599 let self = this; 600 601 $(document).off('click.nbui-back', self.classMenuBack).on('click.nbui-back', self.classMenuBack, function () { 602 self.backMenuStep(); 603 }); 604}; 605 606NBUI_MenuFirstLevelItemList5.prototype.appendFooterLinks = function (){ 607 if(window.innerWidth < 992){ 608 if($('.nbf-footer-links').length !== 0){ 609 $('.nbf-footer-links-wrapper').empty().append($('.nbf-footer-links ').clone(true)); 610 } 611 } 612} 613 614NBUI_MenuFirstLevelItemList5.prototype.appendChangeSiteInstance = function (){ 615 if(window.innerWidth < 992){ 616 if($('.nb-change-site-instance-1').length !== 0){ 617 $('.nbf-change-site-instance-wrapper').empty().append($('.nb-change-site-instance-1 ').clone(true)); 618 } 619 } 620} 621 622NBUI_MenuFirstLevelItemList5.prototype.init = function () { 623 this.disableWsmenuClick(); 624 this.firstLevelMenuClick(); 625 this.secondLevelMenuClick(); 626 this.thirdLevelMenuClick(); 627 this.bindCloseButton(); 628 this.bindBackButton(); 629 this.appendFooterLinks(); 630 this.appendChangeSiteInstance(); 631}; 632 633NBUI_MenuFirstLevelItemList5.prototype.handleMobileMenuInit = function () { 634 let self = this; 635 const MOBILE_BREAKPOINT = 991; 636 let initialized = false;
637 638 function initIfNeeded() { 639 const isMobile = window.innerWidth <= MOBILE_BREAKPOINT; 640 641 if (isMobile && !initialized) { 642 self.init(); 643 initialized = true; 644 } else if (!isMobile && initialized) { 645 self.resetMenu(); 646 initialized = false; 647 } 648 } 649 650 const throttledResize = nbThrottle(initIfNeeded, 200); 651 652 $(window).off('resize.nbui-init').on('resize.nbui-init', throttledResize); 653 initIfNeeded(); 654}; 655 656$(document).ready(function () { 657 modelNBUI_MenuFirstLevelItemList5.handleMobileMenuInit(); 658}); 659/* 660/* NB Fajl:'./_blocks/header-and-footer/header/ecommerce-header/ecommerce-header-9/ecommerce-header-9.js.' 661*/function NBUI_EcommerceHeader9() { 662 this.canFocusSearch = window.innerWidth > 576; 663} 664 665var modelNBUI_EcommerceHeader9 = new NBUI_EcommerceHeader9(); 666 667NBUI_EcommerceHeader9.prototype.updateCanFocus = function () { 668 this.canFocusSearch = window.innerWidth > 576; 669} 670 671NBUI_EcommerceHeader9.prototype.openSearch = function () { 672 var self = this; 673 674 this.handleResize = nbThrottle(this.updateCanFocus.bind(this), 200); 675 $(window).on('resize', this.handleResize); 676 677 $(document).on('click', '.nbf-search', function () { 678 $('body').addClass('open-search').removeClass('wsactive'); 679 680 if (self.canFocusSearch) { 681 setTimeout(function () { 682 $('#search-text').focus(); 683 }, 100); 684 } 685 686 nb_custom_event_trigger('nbOpenSearch'); 687 }); 688} 689 690NBUI_EcommerceHeader9.prototype.init = function () { 691 this.openSearch(); 692} 693 694$(document).ready(function () { 695 modelNBUI_EcommerceHeader9.init(); 696}); 697/* 698/* NB Fajl:'./_blocks/orders/order-tracking/order-tracking-form/order-tracking-form-1/order-tracking-form-1.js.' 699*/$(".order_type_search").on("change", function (){ 700 let label = $(this).data('label'); 701 let orderNumberObj = $("#order_number"); 702 orderNumberObj.attr('placeholder', label); 703 orderNumberObj.next().html(label); 704}) 705 706$("#view-order-status-form").on("submit", function (){ 707 let flagValidateForm = validateOrderTrackingForm(); 708 if(flagValidateForm){ 709 $("#view_order_submit_btn").addClass('active'); 710 } 711}) 712 713function validateOrderTrackingForm(){ 714 let orderEmail = $("#order_email").val(); 715 let orderNumber = $("#order_number").val(); 716 if(orderEmail === "" || orderNumber === ""){ 717 return false; 718 } 719 return true; 720} 721/* 722/* NB Fajl:'./components/complex/order/order-split/order-split-tabs-1/order-split-tabs-1.js.' 723*/function NBUI_OrderSplitTabs1() {}; 724var modelNBUI_OrderSplitTabs1 = new NBUI_OrderSplitTabs1(); 725 726NBUI_OrderSplitTabs1.prototype.addClass = function (navItems) { 727 navItems.first().addClass('active'); 728 729 navItems.on('click', function () { 730 let navItem = $(this); 731 let navItemOrderId = navItem.children(":first").data('order-id'); 732 let estimatedTime = navItem.children(":first").data('estimated-time'); 733 734 navItems.removeClass('active'); 735 navItem.addClass('active'); 736 modelNBUI_OrderSplitTabs1.controlDisplaycontent(navItemOrderId); 737 modelNBUI_OrderSplitTabs1.controlDisplayOrderDeliveryInformation(navItemOrderId); 738 modelNBUI_OrderSplitTabs1.controlDisplayOrderTrackingItemList(navItemOrderId); 739 modelNBUI_OrderSplitTabs1.controlDisplayOrderTrackingStatusHistory(navItemOrderId); 740 modelNBUI_OrderSplitTabs1.controlEstimatedTime(estimatedTime) 741 modelNBUI_OrderSplitTabs1.reInitOrderTrackingItemListSlider($('.nb-order-tracking-progress-1')); 742 }) 743} 744 745NBUI_OrderSplitTabs1.prototype.controlDisplaycontent = function (orderId){ 746 let contentToHide = $('.nbf-tab-content'); 747 let contentToShow = $('.nbf-tab-content[data-order-id='+orderId+']'); 748 contentToHide.hide(); 749 contentToShow.show(); 750} 751 752NBUI_OrderSplitTabs1.prototype.controlDisplayOrderDeliveryInformation = function (orderId){ 753 let contentToHide = $('.nbf-order-delivery-information-overview'); 754 let contentToShow = $('.nbf-order-delivery-information-overview[data-order-id='+orderId+']'); 755 contentToHide.hide(); 756 contentToShow.show(); 757} 758 759NBUI_OrderSplitTabs1.prototype.controlDisplayOrderTrackingItemList = function (orderId){
760 let contentToHide = $('.nbf-accordion-item-order-tracking-item'); 761 let contentToShow = $('.nbf-accordion-item-order-tracking-item[data-order-id='+orderId+']'); 762 contentToHide.hide(); 763 contentToShow.show(); 764} 765 766NBUI_OrderSplitTabs1.prototype.controlDisplayOrderTrackingStatusHistory = function (orderId){ 767 let contentToHide = $('.nbf-accordion-item-order-tracking-status'); 768 let contentToShow = $('.nbf-accordion-item-order-tracking-status[data-order-id='+orderId+']'); 769 contentToHide.hide(); 770 contentToShow.show(); 771} 772 773NBUI_OrderSplitTabs1.prototype.controlEstimatedTime = function (estimatedTime){ 774 $(".nbf-estimated-delivery-time-info-text").html(estimatedTime) 775} 776 777NBUI_OrderSplitTabs1.prototype.reInitOrderTrackingItemListSlider = function (element){ 778 element.find('.nbf-slider-init').slick('unslick'); 779 element.find('.nbf-slider-init').each(function(index,element){ 780 let sliderOptions = NB7_slider._mapSlOpt($(element).data()); 781 $(element).nb7_sliderFn(sliderOptions); 782 }) 783} 784 785NBUI_OrderSplitTabs1.prototype.contentInit = function (){ 786 let content = $('.nbf-tab-content'); 787 content.hide(); 788 content.first().show(); 789} 790 791NBUI_OrderSplitTabs1.prototype.orderDeliveryInformationInit = function (){ 792 let content = $('.nbf-order-delivery-information-overview'); 793 content.hide(); 794 content.first().show(); 795} 796 797NBUI_OrderSplitTabs1.prototype.orderTrackingListItemInit = function (){ 798 let content = $('.nbf-accordion-item-order-tracking-item'); 799 content.hide(); 800 content.first().show(); 801} 802 803NBUI_OrderSplitTabs1.prototype.orderTrackingStatusHistoryInit = function (){ 804 let content = $('.nbf-accordion-item-order-tracking-status'); 805 content.hide(); 806 content.first().show(); 807} 808 809NBUI_OrderSplitTabs1.prototype.centerCurrentSlide = function ($slider) { 810 $slider.on('click', '.slick-slide', function () { 811 var slick = $slider.slick('getSlick'); 812 var index = $(this).data("slick-index"); 813 814 var slidesToShow = slick.options.slidesToShow || 1; 815 var totalSlides = slick.slideCount; 816 var currentSlide = slick.currentSlide || 0; 817 818 if (index >= totalSlides - 1) { 819 $slider.slick('slickGoTo', totalSlides - 1); 820 } else if (index >= totalSlides - slidesToShow) { 821 $slider.slick('slickGoTo', Math.max(totalSlides - slidesToShow, 0)); 822 } else { 823 var targetSlide = Math.max(index - Math.floor(slidesToShow / 2), 0); 824 825 if (targetSlide + slidesToShow > totalSlides) { 826 targetSlide = totalSlides - slidesToShow; 827 } 828 829 $slider.slick('slickGoTo', targetSlide); 830 } 831 }); 832}; 833 834NBUI_OrderSplitTabs1.prototype.getSlidesToShow = function (slick) { 835 836 var width = $(window).width(); 837 if (width >= 1200) return slick.options?.showitems || 1; 838 if (width >= 992) return slick.options?.showitemsLg || 1; 839 if (width >= 768) return slick.options?.showitemsMd || 1; 840 if (width >= 576) return slick.options?.showitemsSm || 1; 841 return slick.options?.showitemsXs || 1; 842}; 843 844NBUI_OrderSplitTabs1.prototype.init = function () { 845 this.addClass($('.nbf-nav-item')) 846 this.contentInit(); 847 this.orderDeliveryInformationInit(); 848 this.orderTrackingListItemInit(); 849 this.orderTrackingStatusHistoryInit(); 850 this.centerCurrentSlide($('.nb-nav-item-wrapper')); 851 852 if ($('.nbf-nav-item-wrapper').length > 0) { 853 NB7_slider.initSlider($('.nbf-nav-item-wrapper')); 854 } 855}; 856 857$(document).ready(function () { 858 modelNBUI_OrderSplitTabs1.init(); 859}) 860/* 861/* NB Fajl:'./components/complex/elements/scroll-to-top/scroll-to-top.js.' 862*/function NBUI_ScrollToTop() { 863 this.lastScrollTop = 0; 864} 865 866var modelNBUI_ScrollToTop = new NBUI_ScrollToTop(); 867 868NBUI_ScrollToTop.prototype.handleScroll = function () { 869 const currentScrollTop = $(window).scrollTop(); 870 const $el = $('.nbf-scroll-to-top'); 871 872 if (currentScrollTop < this.lastScrollTop && currentScrollTop > 100) { 873 if ($el.hasClass('hidden')) { 874 $el.removeClass('hidden').hide().fadeIn(); 875 } 876 } else { 877 $el.fadeOut(function () { 878 $(this).addClass('hidden'); 879 }); 880 } 881 882 this.lastScrollTop = currentScrollTop; 883}; 884 885NBUI_ScrollToTop.prototype.scrollPage = function () { 886 const throttledScroll = nbThrottle(this.handleScroll.bind(this), 200); 887
888 $(window).off('scroll.scrollToTop').on('scroll.scrollToTop', throttledScroll); 889 890 $(document).off('click', '.nbf-scroll-to-top a').on('click', '.nbf-scroll-to-top a', function (e) { 891 e.preventDefault(); 892 window.scrollTo({ top: 0, behavior: 'smooth' }); 893 }); 894}; 895 896NBUI_ScrollToTop.prototype.cleanup = function () { 897 $(window).off('scroll.scrollToTop'); 898 $('.nbf-scroll-to-top a').off('click'); 899}; 900 901NBUI_ScrollToTop.prototype.init = function () { 902 this.cleanup(); 903 this.scrollPage(); 904}; 905 906$(document).ready(function () { 907 modelNBUI_ScrollToTop.init(); 908}); 909 910$(window).on('loadproductsevent reloadcartevent loadproductstatebystore loadlastviewedproductevent', function () { 911 modelNBUI_ScrollToTop.init(); 912}); 913/* 914/* NB Fajl:'./static/js/nbjs/ui.components/cookie-consent/NBUI_CookieConsent.js.' 915*/function NBUI_CookieConsent(){} 916var modelNBUI_CookieConsent = new NBUI_CookieConsent(); 917 918NBUI_CookieConsent.prototype.learnMore = function () { 919 $('.nbf-cookie-learn-more').on('click', function () { 920 $('.nbf-cookie-read-more-wrapper').toggleClass('active'); 921 }) 922} 923 924NBUI_CookieConsent.prototype.activateTabContent = function () { 925 let $tabs = $('.nbf-cookie-tabs-wrapper').children(); 926 let $contents = $('.nbf-cookie-tabs-content-wrapper').children(); 927 928 if ($tabs.length > 0) { 929 let firstTabID = $tabs.first().attr('id'); 930 $tabs.first().addClass('active'); 931 if (firstTabID) { 932 $contents.removeClass('active'); 933 $('.nbf-cookie-tabs-content-wrapper').find(`#${firstTabID}`).addClass('active'); 934 } 935 } 936 937 $tabs.each(function () { 938 let tabID = $(this).attr('id'); 939 940 if (tabID) { 941 $(this).on('click', function () { 942 $tabs.removeClass('active'); 943 $contents.removeClass('active'); 944 945 $(this).addClass('active'); 946 $('.nbf-cookie-tabs-content-wrapper').find(`#${tabID}`).addClass('active'); 947 }); 948 } 949 }); 950}; 951 952NBUI_CookieConsent.prototype.acceptEverything = function () { 953 $(".nbf-cookie-accept-everything-btn").click(function() { 954 var $consent = $(this).closest('.nbf-cookie-consent'); 955 $consent.find('input[type="checkbox"]:not(:checked)').prop("checked", true); 956 957 setTimeout(function () { 958 $consent.addClass('cookie-disappear'); 959 }, 500); 960 }); 961}; 962 963NBUI_CookieConsent.prototype.showCookieContent = function () { 964 const cookieBanner = $(".nbf-cookie-consent"); 965 cookieBanner.addClass('cookie-appear'); 966} 967 968NBUI_CookieConsent.prototype.hideConsentIfCookieExists = function () { 969 const cookieName = "site_cookie_info"; 970 if (document.cookie && new RegExp(`(?:^|; )${cookieName}=`).test(document.cookie)) { 971 document.querySelector(".nbf-cookie-consent")?.classList.add("hidden"); 972 } 973} 974 975NBUI_CookieConsent.prototype.handleCookieConsentInModal = function () { 976 977 let DDEdit = $(".block-editing"); // ako se trenutno nalazimo na DD edit strani 978 979 if (typeof DDEdit !== "undefined" && DDEdit.length > 0) return; 980 981 const cookieName = "site_cookie_info"; 982 const declinedCookieName = "declineCookies"; 983 984 const cookieConsentInModal = document.querySelector(".nbf-cookie-consent-2"); 985 const modal = document.querySelector(".nb-cookie-popup-1 .modal"); 986 987 if (!cookieConsentInModal || !modal) { 988 return; 989 } 990 991 const hasCookie = document.cookie && 992 new RegExp(`(?:^|; )${cookieName}=`).test(document.cookie); 993 994 const declinedCookies = document.cookie && 995 new RegExp(`(?:^|; )${declinedCookieName}=`).test(document.cookie); 996 997 if (hasCookie || declinedCookies) { 998 modal.classList.add("hidden"); 999 } else { 1000 const bsModal = new bootstrap.Modal(modal); 1001 bsModal.show(); 1002 } 1003 1004 let declineCookiesBtn = document.querySelector(".nbf-decline-cookies"); 1005 if(declineCookiesBtn) { 1006 declineCookiesBtn.addEventListener("click", function () { 1007 createCookie("declineCookies", "1", 1); 1008 }) 1009 } 1010 1011}; 1012NBUI_CookieConsent.prototype.handleCookieConsentInModal2 = function () { 1013 1014 let DDEdit = $(".block-editing"); // ako se trenutno nalazimo na DD edit strani 1015 1016 if (typeof DDEdit !== "undefined" && DDEdit.length > 0) return; 1017 1018 const cookieName = "site_cookie_info"; 1019 const declinedCookieName = "declineCookies"; 1020 1021 const cookieConsentInModal = document.querySelector(".nbf-cookie-consent-3"); 1022 const modal = document.querySelector(".nb-cookie-modal-1 .modal"); 1023 1024 if (!cookieConsentInModal || !modal) { 1025 return; 1026 } 1027 1028 const hasCookie = document.cookie && 1029 new RegExp(`(?:^|; )${cookieName}=`).test(document.cookie); 1030 1031 const declinedCookies = document.cookie && 1032 new RegExp(`(?:^|; )${declinedCookieName}=`).test(document.cookie); 1033 1034 if (hasCookie || declinedCookies) { 1035 modal.classList.add("hidden"); 1036 } else { 1037 const bsModal = new bootstrap.Modal(modal); 1038 bsModal.show(); 1039 } 1040 1041 let declineCookiesBtn = document.querySelector(".nbf-decline-cookie
1041s"); 1042 if (declineCookiesBtn) { 1043 declineCookiesBtn.addEventListener("click", function () { 1044 createCookie("declineCookies", "1", 1); 1045 }) 1046 } 1047 1048}; 1049NBUI_CookieConsent.prototype.handleCookieConsent3Settings = function () { 1050 1051 const $cookieConsent3 = $('.nbf-cookie-consent-3'); 1052 if (!$cookieConsent3.length) { 1053 return; 1054 } 1055 1056 $('.nbf-cookie-consent-3 .nb-cookie-settings-btn') 1057 .off('click.cookieConsent3Settings') 1058 .on('click.cookieConsent3Settings', function () { 1059 const $root = $(this).closest('.nbf-cookie-consent-3'); 1060 if (!$root.length) { 1061 return; 1062 } 1063 1064 const $offcanvas = $('.nb-cookie-settings-offcanvas'); 1065 if (!$offcanvas.length) { 1066 return; 1067 } 1068 }); 1069 1070 $('.nb-cookie-settings-offcanvas .nb-cookie-accept-everything-btn') 1071 .off('click.cookieConsent3Settings') 1072 .on('click.cookieConsent3Settings', function () { 1073 $('.nb-cookie-settings-offcanvas') 1074 .find('input[type="checkbox"]:not(:disabled)') 1075 .prop('checked', true); 1076 }); 1077 1078 $('.nb-cookie-settings-offcanvas .nb-cookie-reject-all-btn') 1079 .off('click.cookieConsent3Settings') 1080 .on('click.cookieConsent3Settings', function () { 1081 $('.nb-cookie-settings-offcanvas') 1082 .find('input[type="checkbox"]:not(:disabled)') 1083 .prop('checked', false); 1084 }); 1085 1086 $('.nb-cookie-settings-offcanvas .nb-cookie-confirm-choices-btn') 1087 .off('click.cookieConsent3Settings') 1088 .on('click.cookieConsent3Settings', function () { 1089 createCookie("site_cookie_info", "1", 1); 1090 1091 const modalEl = document.querySelector('.nb-cookie-modal-1 .modal.show'); 1092 if (modalEl) { 1093 const modalInstance = bootstrap.Modal.getInstance(modalEl); 1094 if (modalInstance) { 1095 modalInstance.hide(); 1096 } 1097 } 1098 1099 const offcanvasEl = document.querySelector('.nb-cookie-settings-offcanvas.show'); 1100 if (offcanvasEl) { 1101 const offcanvasInstance = bootstrap.Offcanvas.getInstance(offcanvasEl); 1102 if (offcanvasInstance) { 1103 offcanvasInstance.hide(); 1104 } 1105 } 1106 }); 1107}; 1108 1109NBUI_CookieConsent.prototype.init = function () { 1110 this.showCookieContent(); 1111 this.learnMore(); 1112 this.activateTabContent(); 1113 this.acceptEverything(); 1114 this.hideConsentIfCookieExists(); 1115 this.handleCookieConsentInModal(); 1116 this.handleCookieConsentInModal2(); 1117 this.handleCookieConsent3Settings(); 1118} 1119 1120$(document).ready(function () { 1121 modelNBUI_CookieConsent.init(); 1122}) 1123/* 1124/* NB Fajl:'./static/js/nbjs/ui.components/loader/NBUI_Loader.js.' 1125*/function NBUI_Loader() {}; 1126 1127NBUI_Loader.prototype.hideLoader = function ($loader) { 1128 if ($loader.length > 0) { 1129 $loader.addClass('hidden'); 1130 } 1131} 1132 1133NBUI_Loader.prototype.showLoader = function ($loader) { 1134 if ($loader.length > 0) { 1135 $loader.removeClass('hidden'); 1136 } 1137} 1138/* 1139/* NB Fajl:'./static/js/nbjs/ui.components/cart/NBUI_MiniCartOffcanvas.js.' 1140*/function NBUI_MiniCartOffcanvas() { 1141 //mogu naknadno da se dodaju i setteri 1142 this.miniCartPlaceholdereElement = $('.nb-mini-cart-offcanvas-placeholder-1') 1143 this.miniCartElement = $('#nb-mini-cart') 1144 this.deleteProductCartItem = 'nbf-delete-product-cart-item'; 1145 this.deleteProductCartItemElement = $('.nbf-delete-product-cart-item'); 1146 this.sizeValueMiniCartOffcanvasElement = $('.nbf-size-value'); 1147 this.loaderMiniCartElement = $('.nbf-loader-mini-cart'); 1148 this.miniCartOffcanvasWrapper = '.nbf-mini-cart-offcanvas-ajax-wrapper'; 1149 this.miniCartOffcanvasWrapperElement = $('.nbf-mini-cart-offcanvas-ajax-wrapper'); 1150 this.miniCartQuantity = $('.mini-cart-quantity'); 1151 this.miniCartQuantityInput = '.nb-quantity-input'; 1152} 1153
1154var modelNBUI_MiniCartOffcanvas = new NBUI_MiniCartOffcanvas(); 1155var modelNBUI_CartReload = new NBUI_CartReload(); 1156var modelNBUI_Loader = new NBUI_Loader(); 1157 1158NBUI_MiniCartOffcanvas.prototype.deleteItem = function($element){ 1159 1160 var modelNBCartItem = new NBCartItem(); 1161 1162 var params = { 1163 id : $element.data('cart-item-delete-key'), 1164 modelOrdering : $element.data('cart-item-delete-model-ordering') 1165 } 1166 1167 var textQuestion = $element.data('cart-item-delete-text-question'); 1168 var confirmMessage = $element.data('cart-item-delete-confirm-message'); 1169 var cancelMessage = $element.data('cart-item-delete-cancel-message'); 1170 1171 nb7ConfirmDialog(textQuestion, ()=>{ 1172 modelNBUI_Loader.showLoader($('.nbf-loader-mini-cart')); 1173 setTimeout(()=>{ 1174 var result = modelNBCartItem.delete(params); 1175 if(result.flag){ 1176 if(result.ret.flag){ 1177 modelNBUI_MiniCartOffcanvas.reload(); 1178 nb_custom_event_trigger('deleteProductFromCartOnePage', { id : params.id }); 1179 } 1180 } 1181 modelNBUI_Loader.hideLoader($('.nbf-loader-mini-cart')); 1182 }, 0); 1183 },confirmMessage,cancelMessage); 1184 return false; 1185}; 1186 1187NBUI_MiniCartOffcanvas.prototype.changeAmount = function (element) { 1188 let miniCartQuantity = $('.nbf-mini-cart-quantity'); 1189 let miniCartQuantityInput = '.nb-quantity-input'; 1190 let fMiniCartQuantityInput = '.nbf-quantity-input'; 1191 1192 let changeInput = element.closest(miniCartQuantity); 1193 let key = changeInput.data('cart-item-quantity-key'); 1194 let id = changeInput.data('cart-item-quantity-id'); 1195 let size = changeInput.data('cart-item-quantity-size'); 1196 let price = changeInput.data('cart-item-quantity-price'); 1197 let combId = changeInput.data('cart-item-quantity-combination-id'); 1198 let modelOrdering = changeInput.data('cart-item-quantity-model-ordering'); 1199 1200 let quantityInput = element.closest(miniCartQuantity).find(fMiniCartQuantityInput); 1201 let amount = quantityInput.val(); 1202 element.attr('disabled', true).addClass('disabled'); 1203 1204 let params = { 1205 key, 1206 id, 1207 size, 1208 price, 1209 combId, 1210 amount, 1211 modelOrdering 1212 }; 1213
1214 let modelNBCartItem = new NBCartItem(); 1215 1216 modelNBUI_Loader.showLoader($('.nbf-loader-mini-cart')); 1217 1218 setTimeout(() => { 1219 try { 1220 let result = modelNBCartItem.edit(params); 1221 1222 if (result.flag) { 1223 if (result.ret.flag) { 1224 modelNBUI_MiniCartOffcanvas.reload(); 1225 } else { 1226 nb7_infoError(result.ret.info); 1227 } 1228 } else { 1229 nb7_infoError(result.info); 1230 } 1231 } catch (err) { 1232 console.error('GreÅ¡ka pri promjeni koliÄine:', err); 1233 } finally { 1234 modelNBUI_Loader.hideLoader($('.nbf-loader-mini-cart')); 1235 } 1236 }, 100); 1237}; 1238 1239 1240NBUI_MiniCartOffcanvas.prototype.changeSize = function(element){ 1241 1242 let self = this; 1243 var sizeValueMiniCartElement = $('.nbf-size-value'); //self.sizeValueMiniCartOffcanvasElement; 1244 var loaderMiniCartElement = $('.nbf-loader-mini-cart'); //self.loaderMiniCartElement; 1245 1246 modelNBUI_Loader.showLoader(loaderMiniCartElement); 1247 1248 sizeValueMiniCartElement.removeClass('active'); 1249 element.addClass('active'); 1250 1251 var params = { 1252 key : element.data('cart-item-change-size-key'), 1253 productId : element.data('productsize-productid'), 1254 combId : element.data('productsize-combid'), 1255 quantity : element.data('cart-item-change-size-quantity') 1256 } 1257 1258 var modelNBCartItemChangeSize = new NBCartItemChangeSize(); 1259 1260 1261 setTimeout(()=>{ 1262 var result = modelNBCartItemChangeSize.edit(params); 1263 if(result.flag){ 1264 if(result.ret.flag){ 1265 modelNBUI_MiniCartOffcanvas.reload(); 1266 modelNBUI_Loader.hideLoader(loaderMiniCartElement); 1267 // $('.nb-offcanvas').focus(); 1268 }else{ 1269 nb7_infoError(result.ret.info); 1270 } 1271 }else{ 1272 nb7_infoError(result.info); 1273 } 1274 modelNBUI_Loader.hideLoader($('.nbf-loader-mini-cart')); 1275 }, 0); 1276} 1277 1278//reload ugnjezdenog bloka; mini cart offcanvas - sa ugnjezdenim blokom 1279NBUI_MiniCartOffcanvas.prototype.reload = function(){ 1280 1281 let self = this; 1282 let blockElement = $('.nb-mini-cart-offcanvas-placeholder-1'); //self.miniCartPlaceholdereElement; 1283 1284 var pageId = blockElement.data('site-page-id'); 1285 var layoutId = blockElement.data('layout-id'); 1286 var sitePageBlockId = blockElement.data('block-id'); 1287 var position = blockElement.data('block-position'); 1288 var secretKey = ""; //blockElement.data('block-public-key'); 1289 1290 var params = { 1291 pageId : pageId, 1292 layoutId : layoutId, 1293 sitePageBlockId : sitePageBlockId, 1294 position : position, 1295 secretKey : secretKey, 1296 block : pageId+':'+layoutId+':'+sitePageBlockId+":"+position+':'+secretKey, 1297 typegetdata : 'html' 1298 } 1299 1300 var modelNBCartMiniReload = new NBCartMiniReload(); 1301 var result = modelNBCartMiniReload.load(params); 1302 1303 1304 modelNBUI_Loader.showLoader($('.nbf-loader-mini-cart')); 1305 setTimeout(function (){ 1306 let wrapperElement = '.nbf-mini-cart-offcanvas-ajax-wrapper'; //self.miniCartOffcanvasWrapper; 1307 let loadBlockElement = blockElement.find(wrapperElement) 1308 1309 if(result.ret.flag === true){ 1310 let countProduct = result.ret.countProduct; 1311 modelNBUI_MiniCartOffcanvas.reloadPlaceholderTitleCount(blockElement, countProduct) 1312 modelNBUI_CartReload.reloadCartForMiniCart(); 1313 loadBlockElement.html(result.ret.html); 1314 modelNBUI_MiniCartOffcanvas.init(); 1315 $('.nbf-cart-total').html(countProduct); 1316 nb_custom_event_trigger('miniCartOpen'); 1317 } 1318 else if(result.ret.flag === false){ 1319 loadBlockElement.html(''); 1320 } 1321 else{ 1322 loadBlockElement.html(''); 1323 } 1324 1325 1326 modelNBUI_Loader.hideLoader($('.nbf-loader-mini-cart')); 1327 1328 }, 0); 1329 1330 return true; 1331} 1332 1333NBUI_MiniCartOffcanvas.prototype.reloadPlaceholderTitleCount = function(element, count){ 1334 let placeholderTitleCount = element.find('.mini-cart-offcanvas-title-count'); 1335 if(placeholderTitleCount.length > 0){ 1336 placeholderTitleCount.text('(' + count + ')') 1337 } 1338} 1339 1340NBUI_MiniCartOffcanvas.prototype.init = function(){ 1341 1342 let self = this; 1343 let deleteProductCartItemElement = $('.nbf-delete-product-cart-item'); //self.deleteProductCartItemElement; 1344 let deleteProductCartItem = 'nbf-delete-product-cart-item'; //self.deleteProductCartItem; 1345 1346 deleteProductCartItemElement.off('click').on('click', function(event){ 1347 event.stopPropagation(); 1348 modelNBUI_MiniCartOffcanvas.deleteItem($(this)); 1349 }); 1350 1351 if (window.NBAccessibility) { 1352 modelNBUI_MiniCartOffcanvas.clickWithKeyboard(deleteProductCartItem); 1353 } 1354 return true; 1355}; 1356 1357$(document).ready(function(){ 1358 modelNBUI_MiniCartOffcanvas.init(); 1359}); 1360 1361$(window).on("loadminicart", function(){ 1362 if (window.NBAccessibility){ 1363 modelNBAccessibility.openMiniCartWithKeyboard(); 1364 } 1365 modelNBUI_MiniCartOffcanvas.init(); 1366}); 1367/* 1368/* NB Fajl:'./components/complex/cart/mini-cart/cart-reserve-item-change-data/cart-reserve-item-change-data.js.' 1369*/function getEditCartItemModalFromMiniCart(enableButton = false, passedActiveSizeGlobal = false, elementCard = false, selectedQuantity = false){ 1370 1371 let $blockElement = $('.nb-click-and-reserve-modal-placeholder-1'); 1372 let $childBlockWrapper = $('.product-reservation-block-wrapper');
1373 let modelClickAndReserveLoadEdit= new NBClickAndReserve(); 1374 let loader = $(".nb-loader-click-and-reserve-loader") 1375 1376 $("#click_and_reserve_modal").modal("show"); 1377 1378 loader.removeClass("hidden") 1379 $(".click-and-reserve-modal .modal-content .content-wrapper-body > .nb-btn-wrapper").addClass("unvisible") 1380 1381 localStorage.setItem("CRActiveScreen", "edit") 1382 1383 setTimeout(showEditCartItemModal, 300) 1384 1385 function showEditCartItemModal(passedActiveSize = passedActiveSizeGlobal) { 1386 let pageId = $blockElement.data('site-page-id'); 1387 let layoutId = $blockElement.data('layout-id'); 1388 let blockId = $blockElement.data('block-id'); 1389 let position = $childBlockWrapper.data('position'); 1390 let secretKey = ""; 1391 1392 let item = $(".click-and-reserve-modal .nb-slider-item.nbf-slider-item.click-and-reserve-cart-item.slick-slide.slick-current.slick-active"); 1393 1394 if(typeof elementCard !== "undefined" && elementCard) { 1395 item = elementCard; 1396 } 1397 1398 let productId = item.data("productId"); 1399 let combId = item.data("productcmbinationid"); 1400 let itemQuantity = item.data("quantity"); 1401 let key = item.data("key"); 1402 1403 let params = { 1404 block : pageId+':'+layoutId+':'+blockId+":"+position+':'+secretKey, 1405 key : key, 1406 productId : productId, 1407 combinationId : combId, 1408 quantity : itemQuantity, // proslediti pravi 1409 mode : "edit", 1410 indicator : "" 1411 } 1412 1413 let result = modelClickAndReserveLoadEdit.load(params); 1414 1415 let loadBlockElement = $blockElement.find(".product-reservation-block-wrapper"); 1416 1417 1418 if(result.ret.flag === true){ 1419 loadBlockElement.empty(); 1420 loadBlockElement.html(result.ret.html); 1421 1422 let selectedCombination = $(CRSizeClassString + "[data-productsize-combid='" + combId + "']") 1423 1424 if(passedActiveSize) { 1425 selectedCombination = $(CRSizeClassString + "[data-productsize-combid='" + $(passedActiveSize).data("productsizeCombid") + "']") 1426 } 1427 1428 if(selectedCombination){ 1429 $(".click-and-reserve-sizes .nb-product-size-list-1 .nb-size-value-box-1").removeClass("active") 1430 selectedCombination.addClass("active"); 1431 } 1432 1433 }else if(result.ret.flag === false){ 1434 loadBlockElement.html(''); 1435 }else{ 1436 loadBlockElement.html(''); 1437 } 1438 1439 nb_custom_event_trigger('editConfirmedItem'); 1440 nb_custom_event_trigger('CRModalContentReloaded'); 1441 1442 waitForInitFunction(() => { 1443 initAllModalActions(result); 1444 }); 1445 1446 if(enableButton) { 1447 enableButtons(); 1448 } 1449 1450 CRModalSelectSize(showEditCartItemModal); 1451 1452 let quantityElement = $(".click-and-reserve-product .nb-quantity-product .nb-quantity-wrapper .nb-quantity-input input"); 1453 if(!selectedQuantity) { 1454 CRSelectedQuantity = itemQuantity 1455 } 1456 if(selectedQuantity === 'plus') { 1457 CRSelectedQuantity++; 1458 $(quantityElement).val(CRSelectedQuantity) 1459 $(quantityElement).attr("value", CRSelectedQuantity) 1460 } else if((selectedQuantity === 'minus') && CRSelectedQuantity > 1) { 1461 CRSelectedQuantity--; 1462 $(quantityElement).val(CRSelectedQuantity) 1463 $(quantityElement).attr("value", CRSelectedQuantity) 1464 } 1465 1466 setTimeout(() => { 1467 loader.addClass("hidden") 1468 $(".click-and-reserve-modal .modal-content .content-wrapper-body > .nb-btn-wrapper").removeClass("unvisible") 1469 }, 200) 1470 } 1471 1472} 1473 1474$(document).ready(function () { 1475 $(".nbf-cart-reserve-item-change-data").click(function () { 1476 getEditCartItemModalFromMiniCart(false, false, 1477 $(this).closest('.nbf-cart-product-item')) 1478 }) 1479 $(window).on('miniCartOpen', function() { 1480 $(".nbf-cart-reserve-item-change-data").click(function () { 1481 getEditCartItemModalFromMiniCart(false, false, 1482 $(this).closest('.nbf-cart-product-item')) 1483 }) 1484 }); 1485}); 1486/* 1487/* NB Fajl:'./components/complex/cart/mini-cart/reservation-pricing-quick-basket-1/reservation-pricing-quick-basket-1.js.' 1488*/function NBUI_PricingQuickBasket() {} 1489var modelNBUI_PricingQuickBasket = new NBUI_PricingQuickBasket(); 1490 1491NBUI_PricingQuickBasket.prototype.onClickInitLoader = function () { 1492 let $btn = $('.nbf-btn-reservation-pricing-quick-basket'); 1493 1494 $btn.on('click', function () { 1495 $(this).addClass('addingItem'); 1496 }); 1497}; 1498 1499NBUI_PricingQuickBasket.prototype.init = function () { 1500 this.onClickInitLoader(); 1501}; 1502 1503$(document).ready(function () { 1504 modelNBUI_PricingQuickBasket.init(); 1505}); 1506 1507/* 1508/* NB Fajl:'./components/core/quantity/quantity-1/quantity-1.js.' 1509*/function NBUI_Quantity1() {} 1510var modelNBUI_Quantity1 = new NBUI_Quantity1(); 1511 1512// mobile check 1513NBUI_Quantity1.prototype.isMobile = function() { 1514 return window.matchMedia("(max-width: 768px)").matches; 1515}; 1516 1517NBUI_Quantity1.prototype.quantityIncDec = function(el, value, operand) { 1518 if (operand === '-') { 1519 value = value > 1 ? value - 1 : 1; 1520 } else { 1521 value += 1; 1522 } 1523 1524 el.val(value); 1525 el.attr('value', value); 1526 1527 return value; 1528}; 1529 1530NBUI_Quantity1.prototype.resetInputValue = function(el, value) { 1531 el.val(value <= 0 ? 1 : value); 1532}; 1533 1534NBUI_Quantity1.prototype.onInput = function(el) { 1535 let self = this; 1536 1537 el.on('input', function () { 1538 let value = el.val(); 1539 1540 value = value.replace(/[^0-9]/g, ''); 1541 1542 if (self.isMobile()) { 1543 1544 if (value === '') { 1545 el.val(''); 1546 el.attr('value', ''); 1547 return; 1548 } 1549 1550 value = value.replace(/^0+/, ''); 1551 1552 if (value === '') { 1553 value = '1'; 1554 } 1555 1556 } else { 1557 value = value === '' ? '1' : value; 1558 } 1559 1560 el.val(value); 1561 el.attr('value', value); 1562 }); 1563}; 1564 1565NBUI_Quantity1.prototype.setQuantityDataToButton = function(elementQuantity, button, quantityData){ 1566 if(elementQuantity.length < 1){ 1567 return; 1568 } 1569 1570 let quantity = elementQuantity.val(); 1571 let quantityBtn = button.attr(quantityData); 1572 1573 if(quantity !== quantityBtn){ 1574 button.attr(quantityData, quantity); 1575 } 1576} 1577 1578NBUI_Quantity1.prototype.init = function(elements) { 1579 let self = this; 1580 1581 $(elements).each(function () { 1582 let minus = $(this).find('.nbf-minus'); 1583 let plus = $(this).find('.nbf-plus'); 1584 let input = $(this).find('.nbf-quantity-input'); 1585 let inputValue = parseInt(input.val(), 10); 1586 1587 self.onInput(input); 1588 1589 input.change(function (){ 1590 inputValue = parseInt(input.val(), 10); 1591 }); 1592 1593 if (self.isMobile()) { 1594 input.on('blur', function () { 1595 let value = parseInt(input.val(), 10); 1596 1597 if (!value || value < 1) { 1598 value = 1; 1599 } 1600 1601 input.val(value); 1602 input.attr('value', value); 1603 inputValue = value; 1604 }); 1605 } 1606 1607 minus.on('click', function () { 1608 inputValue = self.quantityIncDec(input, inputValue, '-'); 1609 }); 1610 1611 plus.on('click', function () { 1612 inputValue = self.quantityIncDec(input, inputValue, '+'); 1613 }); 1614 }); 1615}; 1616 1617$(document).ready(() => { 1618 modelNBUI_Quantity1.init($('.nb-quantity-1.nbf-quantity')); 1619}); 1620 1621$(window).on('outfitModalLoaded', function () { 1622 modelNBUI_Quantity1.init($('.nb-quantity-1.nbf-quantity')); 1623}); 1624/* 1625/* NB Fajl:'./components/complex/product/product-size-list/product-size-list-1/product-size-list-1.js.' 1626*/ 1627function NBUI_ProductSizeList1() {};
1628// var modelNBUI_ProductSizeList1 = new NBUI_ProductSizeList1(); 1629 1630var modelNBUI_ProductSizeList1 = new NBUI_ProductSizeList1(); 1631var modelNBUI_ProductSizeList = new NBUI_ProductSizeList(); 1632var modelNBUI_ProductPrice = new NBUI_ProductPrice(); 1633 1634NBUI_ProductSizeList1.prototype.init = function () { 1635 let $sizes = $('.nbf-size-value'); 1636 modelNBUI_ProductSizeList.setActive($sizes); 1637 modelNBUI_ProductPrice.init($sizes); 1638} 1639 1640$(document).ready(function () { 1641 modelNBUI_ProductSizeList1.init(); 1642}) 1643 1644$(window).on('loadproductsevent loadminicart', function () { 1645 modelNBUI_ProductSizeList1.init(); 1646}) 1647 1648// Obrisati nakon testiranja 1649 1650// $(document).ready(function () { 1651// modelNBUI_ProductSizeList1.setActive($('.nbf-size-value')); 1652// }); 1653// 1654// $(window).on('loadSearchProductsEvent', function() { 1655// modelNBUI_ProductSizeList1.setActive($('.nb-search-results-wrapper .nbf-size-value')); 1656// }); 1657/* 1658/* NB Fajl:'./components/complex/product/product-determine-size/product-determine-size-1/product-determine-size-1.js.' 1659*/$(document).ready(function (){ 1660 $(".nbf-product-determine-size-1").on('click', loadModal); 1661 $(".nbf-product-determine-size-1").on('keydown', function (e) { 1662 if (e.key === 'Enter' && e.target === $(".nbf-product-determine-size-1")[0]) { 1663 $(".nbf-product-determine-size-1 div").click(); 1664 } 1665 }); 1666 if (window.NBAccessibility) { 1667 modelNBAccessibility.closeModalWithKeyboard('.nbf-product-determine-size-1'); 1668 } 1669}) 1670 1671function loadModal(e){ 1672 e.preventDefault() 1673 1674 let blockElement = $(this).closest(".block") 1675 let childBlockWrapper = $("#size_chart_modal_wrapper"); 1676 if(childBlockWrapper.hasClass('loaded')){ 1677 return; 1678 } 1679 1680 let modelProductSizeChart = new NBProductSizeChart(); 1681 1682 let productId = childBlockWrapper.data('product-id'); 1683 let position = childBlockWrapper.data('position'); 1684 let secretKey = ""; //childBlockWrapper.data('secret-key-for-load-block'); 1685 let pageId = blockElement.data('site-page-id'); 1686 let layoutId = blockElement.data('layout-id'); 1687 let blockId = blockElement.data('block-id'); 1688 1689 let params = { 1690 productId : productId, 1691 block : pageId+':'+layoutId+':'+blockId+":"+position+':'+secretKey, 1692 } 1693 1694 let result = modelProductSizeChart.load(params); 1695 1696 if(result.ret.flag === true){ 1697 $('.loadblock'+'-'+pageId+'-'+layoutId+'-'+blockId+'-'+position).html(result.ret.html); 1698 childBlockWrapper.addClass('loaded'); 1699 $('#determineSizeModal').modal('show'); 1700 } 1701} 1702/* 1703/* NB Fajl:'./components/complex/size/size-picker/tab-size-picker/tab-size-picker-1/tab-size-picker-1.js.' 1704*/ 1705function NBUI_TabSizePicker1() {}; 1706var modelNBUI_TabSizePicker1 = new NBUI_TabSizePicker1(); 1707var modelNBUI_ProductSizeList1 = new NBUI_ProductSizeList1(); 1708 1709NBUI_TabSizePicker1.prototype.selectSizes = function($sizeField, $element){ 1710 $element.each(function (i) { 1711 $(this).find('>span').html($(this).data($sizeField)); 1712 }); 1713} 1714NBUI_TabSizePicker1.prototype.showSizeIndicator = function($element, $elementIndicator){ 1715 if(!$elementIndicator || !$elementIndicator.length){ 1716 return false; 1717 } 1718 let lastClass = ''; 1719 $element.each(function(){ 1720 1721 let message = $(this).data('productsize-indicator-availability-label'); 1722 let parentClass = $(this).data('productsize-indicator-color'); 1723 let type = $(this).data('productsize-indicator-type'); 1724 1725 $(this).click(function(){ 1726 if(lastClass !== ''){ 1727 $elementIndicator.parent().removeClass(lastClass); 1728 } 1729 $elementIndicator.text(message); 1730 $elementIndicator.parent().addClass(parentClass); 1731 lastClass = parentClass; 1732 }) 1733 }) 1734 1735} 1736NBUI_TabSizePicker1.prototype.init = function($typeSizeElement, $elementSizeValue, $elementSizeIndicator){ 1737 1738 modelNBUI_ProductSizeList1.init(); 1739 modelNBUI_TabSizePicker1.showSizeIndicator($('.nbf-tab-size-picker .nbf-size-value'), $elementSizeIndicator); 1740 1741 if($typeSizeElement.length > 0){ 1742 1743 if (window.NBAccessibility) { 1744 modelNBAccessibility.clickWithKeyboard($typeSizeElement); 1745 } 1746 $typeSizeElement.click( function() { 1747 var $sizeField = $(this).data('type-size-field'); 1748 modelNBUI_TabSizePicker1.selectSizes($sizeField, $elementSizeValue); 1749 $typeSizeElement.removeClass('active'); 1750 $(this).addClass('active'); 1751 }); 1752 1753 $typeSizeElement.each(function (i) { 1754 if($(this).hasClass('active')){ 1755 1756 var $sizeField = $(this).data('type-size-field'); 1757 if(typeof $sizeField != 'undefined'){ 1758 modelNBUI_TabSizePicker1.selectSizes($sizeField, $elementSizeValue); 1759 } 1760 } 1761 }); 1762 } 1763} 1764 1765$(document).ready(function(){ 1766 $('.nbf-product').each(function() { 1767 var $product = $(this); 1768 var sizeType = $product.find('.nbf-size-type'); 1769 var sizeValue = $product.find('.nbf-size-value'); 1770 var sizeIndicator = $product.find('.nbf-product-size-availability-indicator-value'); 1771 modelNBUI_TabSizePicker1.init(sizeType, sizeValue, sizeIndicator); 1772 }); 1773}); 1774 1775$(window).on('loadproductsevent loadSearchProductsEvent nbOpenSearch miniCartOpen loadminicart outfitModalLoaded', function () { 1776 $('.nbf-product').each(function() { 1777 var $product = $(this); 1778 var sizeType = $product.find('.nbf-size-type'); 1779 var sizeValue = $product.find('.nbf-size-value'); 1780 var sizeIndicator = $product.find('.nbf-product-size-availability-indicator-value'); 1781 modelNBUI_TabSizePicker1.init(sizeType, sizeValue, sizeIndicator); 1782 }); 1783}) 1784 1785/* 1786/* NB Fajl:'./components/complex/product/product-button-with-bubble/product-button-with-bubble-5/product-button-with-bubble-5.js.' 1787*/function NBUI_ProductButtonWithBubble5() {} 1788
1789var modelNBUI_ProductAddToCart = new NBUI_ProductAddToCart(); 1790var modelNBUI_MiniCartOffcanvas = new NBUI_MiniCartOffcanvas(); 1791 1792NBUI_ProductButtonWithBubble5.prototype.appendBubbleWrapper = function ($element) { 1793 let $wrapperWhereToAppend = $element.closest('.nb-mini-cart-offcanvas').find('.nbf-wrapper-for-size-picker'); 1794 if (!$wrapperWhereToAppend.length) return; 1795 1796 let $bubbleButtons = $element.find('.nbf-open-bubble'); 1797 1798 $bubbleButtons.off('click.nbAppendBubble').on('click.nbAppendBubble', function (e) { 1799 e.preventDefault(); 1800 e.stopPropagation(); 1801 1802 let $bubbleButton = $(this); 1803 1804 let quantity = $bubbleButton.closest('.nbf-product-item').find('.nbf-quantity-input').val(); 1805 1806 $bubbleButton.closest('.nbf-product-item').find('.nbf-product-bubble .nbf-add-to-cart').attr('data-product-quantity', quantity); 1807 1808 1809 let $wrapperToAppend = $bubbleButton.siblings('.nbf-product-bubble'); 1810 1811 if (!$wrapperWhereToAppend.hasClass('active')) { 1812 $wrapperWhereToAppend.empty() 1813 .append($wrapperToAppend.clone(true, true)) 1814 .addClass('active'); 1815 } else { 1816 $element.append($wrapperToAppend); 1817 $wrapperWhereToAppend.removeClass('active'); 1818 } 1819 1820 }); 1821}; 1822 1823NBUI_ProductButtonWithBubble5.prototype.openBubble = function ($element) { 1824 let $bubbleButtons = $element.find('.nbf-open-bubble'); 1825 1826 $bubbleButtons.off('click.nbOpenBubble').on('click.nbOpenBubble', function () { 1827 let $bubbleButton = $(this); 1828 let $bubbleWrapper = $bubbleButton.closest('.nbf-product-button-with-bubble'); 1829 1830 $('.nbf-product-button-with-bubble').removeClass('active'); 1831 $bubbleWrapper.toggleClass('active'); 1832 }); 1833}; 1834 1835NBUI_ProductButtonWithBubble5.prototype.closeBubble = function ($element) { 1836 1837 let $bubbleWrapper = $element.closest('.nb-mini-cart-offcanvas').find('.nbf-wrapper-for-size-picker'); 1838 let $closeBubbleButtons = $element.find('.nbf-close-bubble-btn'); 1839 1840 $closeBubbleButtons.off('click.nbCloseBubbleBtn').on('click.nbCloseBubbleBtn', function () { 1841 1842 let $closeBubbleBtn = $(this); 1843 1844 if ($bubbleWrapper.length && $bubbleWrapper.hasClass('active')) { 1845 $bubbleWrapper.empty(); 1846 $bubbleWrapper.removeClass('active'); 1847 } 1848 1849 $closeBubbleBtn.closest('.nbf-product-button-with-bubble').removeClass('active'); 1850 }); 1851 1852 $(document).off('click.nbDocumentCloseBubbleBtn').on('click.nbDocumentCloseBubbleBtn', function () { 1853 $element.find('.nbf-product-button-with-bubble.active').each(function () { 1854 let $bubbleWrapper = $(this).find('.nbf-bubble-wrapper'); 1855 if ($bubbleWrapper.length) $bubbleWrapper.empty(); 1856 $(this).removeClass('active'); 1857 }); 1858 }); 1859}; 1860 1861NBUI_ProductButtonWithBubble5.prototype.checkQuantity = function(elementQuantity, $btnAddToCart){ 1862 let quantity = elementQuantity.val(); 1863 let quantityBtn = $btnAddToCart.attr('data-product-quantity'); 1864 if(quantity != quantityBtn){ 1865 $btnAddToCart.attr('data-product-quantity', quantity); 1866 } 1867 1868 return true; 1869}; 1870 1871NBUI_ProductButtonWithBubble5.prototype.addToCart = function ($element) { 1872 let self = this; 1873 1874 let $btn = $element.find('.nbf-add-to-cart'); 1875 1876 $btn.off('click.nbAddToCart').on('click.nbAddToCart', function (e) { 1877 e.preventDefault(); 1878 1879 let addToCartBtn = $(this); 1880 let clickedProductSize = addToCartBtn.find('.nbf-size-value.active'); 1881 let addToCartBtnCombID = addToCartBtn.attr('data-productsize-combid'); 1882 let addToCartBtnSizeName = addToCartBtn.attr('data-productsize-name'); 1883 let miniCartType = $('#nb-mini-cart').data('mini-cart-type'); 1884 var elementQuantity = $(this).parents('.nbf-product-item').find('.nbf-quantity-input'); 1885 1886 if(elementQuantity.length > 0){ 1887 self.checkQuantity(elementQuantity, addToCartBtn); 1888 } 1889 1890 if (addToCartBtnCombID != '-1' && addToCartBtnSizeName != '') { 1891 let addToCart = modelNBUI_ProductAddToCart.addToCart(addToCartBtn); 1892 1893 if (addToCart.flag) { 1894 setTimeout(function () { 1895 if (addToCart.ret.flag) { 1896 addToCartBtn.addClass('addingItem'); 1897 1898 modelNBUI_ProductAddToCart.resetButtonText(addToCartBtn); 1899 modelNBUI_ProductAddToCart.resetSize(clickedProductSize, addToCartBtn); 1900 1901 setTimeout(function () { 1902 addToCartBtn.removeClass('addingItem'); 1903 if (miniCartType === '1') { 1904 openMiniCart(); 1905 } else { 1906 modelNBUI_MiniCartOffcanvas.reload(); 1907 } 1908 }, 300); 1909 1910 } else { 1911 modelNBUI_ProductAddToCart.resetButton(addToCartBtn); 1912 modelNBUI_ProductAddToCart.resetSize(clickedProductSize, addToCartBtn); 1913 nb7_infoError(addToCart.ret.info); 1914 } 1915 }, 0); 1916 } else { 1917 modelNBUI_ProductAddToCart.errorMesage(addToCartBtn, addToCart.info); 1918 } 1919 } else { 1920 return false;
1921 } 1922 }); 1923}; 1924 1925NBUI_ProductButtonWithBubble5.prototype.init = function ($element) { 1926 this.addToCart($element); 1927 this.openBubble($element); 1928 this.closeBubble($element); 1929 this.appendBubbleWrapper($element); 1930}; 1931/* 1932/* NB Fajl:'./components/complex/product/product-box/product-box-9/product-box-9.js.' 1933*/function NBUI_ProductBox9(){} 1934 1935var modelNBUI_ProductBox9 = new NBUI_ProductBox9(); 1936var modelNBUI_ProductButtonWithBubble5 = new NBUI_ProductButtonWithBubble5(); 1937 1938NBUI_ProductBox9.prototype.init = function () { 1939 modelNBUI_ProductButtonWithBubble5.init($('.nbf-product-item')); 1940} 1941 1942$(document).ready(function () { 1943 modelNBUI_ProductBox9.init(); 1944}) 1945 1946$(window).on('loadminicart loadlastviewedproductevent miniCartOpen', function() { 1947 modelNBUI_ProductBox9.init(); 1948}); 1949/* 1950/* NB Fajl:'./components/complex/cart/cart-item-change-size/cart-item-change-size-3/cart-item-change-size-3.js.' 1951*/function NBCartItemChangeSize3(){} 1952 1953var modelNBCartItemChangeSize3 = new NBCartItemChangeSize3(); 1954var modelNBUICartItemChangeSize = new NBUI_CartItemChangeSize(); 1955 1956NBCartItemChangeSize3.prototype.openChangeSizeModal = function(){ 1957 let openModalIcon = $(".nbf-cart-item-change-size-2-open-modal"); 1958 openModalIcon.each(function () { 1959 $(this).click(function (){ 1960 1961 let cartItemChangeSizeElement = $(this).closest('.nbf-cart-product-item'); 1962 let cartProductSizePickerElement = $('#nb-change-size-modal').closest('.block'); 1963 1964 modelNBUICartItemChangeSize.openChangeSizeModal(cartItemChangeSizeElement, cartProductSizePickerElement); 1965 }) 1966 }) 1967 1968} 1969 1970NBCartItemChangeSize3.prototype.init = function(){ 1971 modelNBCartItemChangeSize3.openChangeSizeModal(); 1972} 1973 1974$(document).ready(function (){ 1975 modelNBCartItemChangeSize3.init(); 1976}) 1977 1978$(window).on('reloadcartevent loadminicart miniCartOpen', function () { 1979 modelNBCartItemChangeSize3.init(); 1980}); 1981 1982/* 1983/* NB Fajl:'./components/complex/cart/cart-item-size-picker/cart-item-size-picker-1/cart-item-size-picker-1.js.' 1984*/function NBUI_CartItemSizePicker1(){} 1985 1986var modelNBUI_CartItemSizePicker1 = new NBUI_CartItemSizePicker1(); 1987var modelNBUI_CartSizeType = new NBUI_CartSizeType(); 1988 1989NBUI_CartItemSizePicker1.prototype.init = function () { 1990 modelNBUI_CartSizeType.init(); 1991} 1992 1993$(document).ready(function () { 1994 modelNBUI_CartItemSizePicker1.init(); 1995}) 1996 1997$(window).on('loadminicart loadlastviewedproductevent miniCartOpen', function() { 1998 modelNBUI_CartItemSizePicker1.init(); 1999}); 2000/* 2001/* NB Fajl:'./components/complex/cart/mini-cart/cart-box-9/cart-box-9.js.' 2002*/function NBCartBox9(){} 2003var modelNBCartBox9 = new NBCartBox9(); 2004var modelNBUI_MiniCartOffcanvas = new NBUI_MiniCartOffcanvas(); 2005var modelNBUI_Quantity1 = new NBUI_Quantity1(); 2006 2007NBCartBox9.prototype.changeAmountInit = function () { 2008 $('.nbf-cart-product-item.nb-cart-box-9 .nb-quantity-arrows').off('click').on('click', function (){ 2009 setTimeout(()=>{ 2010 modelNBUI_MiniCartOffcanvas.changeAmount($(this)); 2011 }, 0); 2012 }); 2013 $('.nbf-cart-product-item.nb-cart-box-9 .nbf-quantity-input').each(function () { 2014 $(this).on('change', function (){ 2015 setTimeout(()=>{ 2016 modelNBUI_MiniCartOffcanvas.changeAmount($(this)); 2017 }, 0); 2018 }); 2019 }) 2020} 2021 2022NBCartBox9.prototype.init = function(){ 2023 let self = this; 2024 2025 self.changeAmountInit(); 2026} 2027 2028$(window).on('loadminicart loadlastviewedproductevent miniCartOpen', function() { 2029 modelNBCartBox9.init(); 2030 modelNBUI_Quantity1.init($('.nb-quantity-1.nbf-quantity')); 2031}); 2032/* 2033/* NB Fajl:'./static/js/nbjs/models/quickpurchase/NBQuickPurchaseOffcanvas.js.' 2034*/if (!window.NBQuickPurchaseOffcanvas) { 2035 class NBQuickPurchaseOffcanvas extends NBModel { 2036 2037 constructor(){ 2038 super(); 2039 } 2040 2041 formatLoad = function(params){ 2042 2043 var data = { 2044 block : params.block, 2045 allLib : params.allLib 2046 2047 } 2048 2049 return data; 2050 }; 2051 2052 validateFormLoad = function (params){ 2053 return true; 2054 2055 if(typeof params.id == 'undefined' || params.id == -1){ 2056 throw new Error("Error, invalid ID"); 2057 } 2058 2059 2060 }; 2061 } 2062 2063 window.NBQuickPurchaseOffcanvas = NBQuickPurchaseOffcanvas; 2064} 2065 2066/* 2067/* NB Fajl:'./static/js/nbjs/ui.components/quickpurchase/NBUI_QuickPurchaseModal.js.' 2068*/function NBUI_QuickPurchaseModal(){ 2069 this.clickedElement = null; 2070} 2071 2072var modelNBUI_QuickPurchaseModal = new NBUI_QuickPurchaseModal(); 2073 2074NBUI_QuickPurchaseModal.prototype.reload = function (element = '', blockClass = '', modalId = "", callback = () => {}){ 2075 2076 let $blockElement = $('.'+blockClass); 2077 let pageId = $blockElement.data('site-page-id'); 2078 let layoutId = $blockElement.data('layout-id'); 2079 let parentBlockId = $blockElement.data('parent-block-id'); 2080 let blockId = $blockElement.data('block-id'); 2081 let position = $blockElement.data('block-position'); 2082 let block = pageId+":"+layoutId+":"+parentBlockId+":"+position+":"+blockId; 2083 2084 let permalink = element.data('quick-view-product-permalink'); 2085 2086 let params = { 2087 block : block, 2088 allLib : 1 2089 } 2090 2091 let modelNBQuickPurchaseOffcanvas = new NBQuickPurchaseOffcanvas(); 2092 2093 modelNBQuickPurchaseOffcanvas.urlLoad = permalink; 2094 2095 setTimeout(()=>{ 2096 let result = modelNBQuickPurchaseOffcanvas.load(params); 2097 if(result.flag && result.ret.flag){ 2098 $blockElement.replaceWith(result.ret.html); 2099 modelNBUI_QuickPurchaseModal.clickedElement = element; 2100 nb_custom_event_trigger('quickPurchaseModalLoaded'); 2101 if($('#'+modalId).length != 0) { 2102 $('#'+modalId).nb7_modal('show'); 2103 } 2104 }else{ 2105 $blockElement.replaceWith(''); 2106 } 2107 callback(); 2108 }, 0); 2109 2110} 2111/* 2112/* NB Fajl:'./components/complex/product/product-button-with-modal-size-picker-1/product-button-with-modal-size-picker-1.js.' 2113*/function ProductButtonWithModalSizePicker1(){} 2114var modelProductButtonWithModalSizePicker1 = new ProductButtonWithModalSizePicker1(); 2115var modelNBUI_QuickPurchaseModal = new
2115NBUI_QuickPurchaseModal(); 2116var modelNBUI_ProductAddToCart = new NBUI_ProductAddToCart(); 2117 2118ProductButtonWithModalSizePicker1.prototype.openQuickPurchaseModal = function(){ 2119 $(".nbf-product-button-with-modal-size-picker .nbf-add-to-cart").off("click"); 2120 $(".nbf-product-button-with-modal-size-picker .nbf-add-to-cart").click(function (){ 2121 var addToCartBtnCombID = $(this).attr('data-product-comb-id'); 2122 var addToCartBtnSizeName = $(this).attr('data-product-size-name'); 2123 2124 console.log(addToCartBtnCombID); 2125 console.log(addToCartBtnSizeName); 2126 2127 if (addToCartBtnCombID == '-1' && addToCartBtnSizeName == '') { 2128 $(this).addClass('addingItem'); 2129 modelNBUI_QuickPurchaseModal.reload($(this), 'nb-product-size-picker-modal-1', 'nb-choose-size-modal'); 2130 } else { 2131 modelProductButtonWithModalSizePicker1.addToCart($(this)); 2132 } 2133 2134 }) 2135} 2136 2137ProductButtonWithModalSizePicker1.prototype.addToCart = function (addToCartBtn) { 2138 2139 var addToCart = modelNBUI_ProductAddToCart.addToCart(addToCartBtn); 2140 2141 if(addToCart.flag){ 2142 2143 addToCartBtn.addClass('addingItem'); 2144 2145 setTimeout(function (){ 2146 if (addToCart.ret.flag) { 2147 modelNBUI_ProductAddToCart.resetButtonText(addToCartBtn); 2148 openMiniCart(); 2149 } else { 2150 modelNBUI_ProductAddToCart.resetButton(addToCartBtn); 2151 nb7_infoError(addToCart.ret.info); 2152 } 2153 addToCartBtn.removeClass('addingItem'); 2154 },150); 2155 }else{ 2156 modelNBUI_ProductAddToCart.errorMesage(addToCartBtn, addToCart.info); 2157 return false; 2158 } 2159 2160} 2161 2162ProductButtonWithModalSizePicker1.prototype.init = function(){ 2163 let self = this; 2164 self.openQuickPurchaseModal(); 2165} 2166 2167$(document).ready(function (){ 2168 modelProductButtonWithModalSizePicker1.init(); 2169}) 2170 2171$(window).on('loadproductsevent reloadcartevent loadminicart miniCartOpen loadlastviewedproductevent', function (){ 2172 modelProductButtonWithModalSizePicker1.init(); 2173}) 2174 2175$(window).on('quickPurchaseModalLoaded reloadcartevent',function(){ 2176 $(".nbf-product-button-with-modal-size-picker .nbf-add-to-cart").removeClass('addingItem'); 2177}) 2178 2179 2180 2181 2182/* 2183/* NB Fajl:'./components/complex/cart/mini-cart/pricing-quick-basket-1/pricing-quick-basket-1.js.' 2184*/function NBUI_PricingQuickBasket() {} 2185var modelNBUI_PricingQuickBasket = new NBUI_PricingQuickBasket(); 2186 2187NBUI_PricingQuickBasket.prototype.onClickInitLoader = function () { 2188 let $btn = $('.nbf-btn-pricing-quick-basket'); 2189 2190 $btn.on('click', function () { 2191 $(this).addClass('addingItem'); 2192 }); 2193}; 2194 2195NBUI_PricingQuickBasket.prototype.init = function () { 2196 this.onClickInitLoader(); 2197}; 2198 2199$(document).ready(function () { 2200 modelNBUI_PricingQuickBasket.init(); 2201}); 2202 2203/* 2204/* NB Fajl:'./_blocks/checkout/mini-cart/mini-cart-offcanvas/mini-cart-offcanvas-4/mini-cart-offcanvas-4.js.' 2205*/function NBMiniCartOffcanvas4(){} 2206var modelNBMiniCartOffcanvas4 = new NBMiniCartOffcanvas4(); 2207 2208NBMiniCartOffcanvas4.prototype.reInitSlider = function () { 2209 let $slider = $('.nbf-recommended-product-list-slider-init'); 2210 2211 NB7_slider.initSlider($slider); 2212} 2213 2214NBMiniCartOffcanvas4.prototype.init = function(){ 2215 let self = this; 2216 2217 self.reInitSlider(); 2218} 2219 2220$(document).ready(function (){ 2221 modelNBMiniCartOffcanvas4.init() 2222}) 2223 2224$(window).on('loadminicart miniCartOpen', function() { 2225 modelNBMiniCartOffcanvas4.init(); 2226}); 2227/* 2228/* NB Fajl:'./components/complex/form/password/NBShowHidePassword/NBShowHidePassword.js.' 2229*/$(document).ready(function (){ 2230 $('.nbf-toggle-password').click(function (){ 2231 let $input = $(this).closest('.nb-form-group').find('input'); 2232 2233 if ($input.attr('type') === "password") { 2234 $input.attr('type', 'text'); 2235 $(this).addClass('visible-password'); 2236 } else { 2237 $input.attr('type', 'password'); 2238 $(this).removeClass('visible-password'); 2239 } 2240 }) 2241}) 2242 2243/* 2244/* NB Fajl:'./components/complex/form/checkbox/register-privacy-policy-consent-checkbox/register-privacy-policy-consent-checkbox.js.' 2245*/function NBUI_RegisterPrivacyPolicyConsentCheckbox(){} 2246 2247var modelNBUI_RegisterPrivacyPolicyConsentCheckbox = new NBUI_RegisterPrivacyPolicyConsentCheckbox(); 2248 2249NBUI_RegisterPrivacyPolicyConsentCheckbox.prototype.checkAll = function () {
2250 let checkAllBtn = $('.nbf-check-all-btn'); 2251 2252 if (!checkAllBtn.length) { 2253 return; 2254 } 2255 2256 checkAllBtn.on('click', function () { 2257 let container = $(this).parent(); 2258 let checkboxes = container.find('input.nbf-form-field[type="checkbox"]:not(:disabled)'); 2259 2260 let allChecked = checkboxes.length && checkboxes.filter(':checked').length === checkboxes.length; 2261 2262 checkboxes.each(function () { 2263 $(this).prop('checked', !allChecked).trigger('change'); 2264 }); 2265 }); 2266}; 2267 2268 2269NBUI_RegisterPrivacyPolicyConsentCheckbox.prototype.init = function () { 2270 this.checkAll(); 2271} 2272 2273$(document).ready(function () { 2274 modelNBUI_RegisterPrivacyPolicyConsentCheckbox.init(); 2275}) 2276 2277/* 2278/* NB Fajl:'./components/complex/forms/registration-forms/register-form-1/register-form-1.js.' 2279*///26.06 - KN - Zakomentarisano dok se ne potvrdi /static/js/nbjs/ui.components/user/NBUI_Register.js 2280// function selectGroupCheck(fakeField, ...fields){ 2281// 2282// let checked = true; 2283// for (let arg of fields) { 2284// $('#'+arg).closest('.nb-form-check').addClass('hidden'); 2285// 2286// if(!$('#'+arg).attr('checked')){ 2287// checked = false; 2288// } 2289// } 2290// 2291// if(checked){ 2292// $('#'+fakeField).attr('checked',true); 2293// $('#'+fakeField).change(); 2294// } 2295// 2296// 2297// $('#'+fakeField).click(function (){ 2298// for (let arg of fields) { 2299// 2300// if(($('#'+fakeField).is(':checked') && !$('#'+arg).is(':checked')) || (!$('#'+fakeField).is(':checked') && $('#'+arg).is(':checked'))){ 2301// $('#'+arg).click(); 2302// } 2303// 2304// } 2305// }); 2306// } 2307// 2308// function registerAction(e){ 2309// e.preventDefault(); 2310// 2311// let form = $(this); 2312// let formFields = form.find('.nb-form-fields-wrapper'); 2313// let submitButton = form.find('button[type="submit"]'); 2314// submitButton.addClass('active'); 2315// 2316// let modelRegister = new NBRegister(); 2317// modelRegister.urlAdd = form.data('permalink'); 2318// 2319// let alertElement = form.find('.nbf-alert'); 2320// 2321// //1. sakupljanje parametara sa elementa 2322// let params = form.serializeObject(); 2323// 2324// //2. pozivanje funkcije iz modela 2325// setTimeout(function (){ 2326// let result = modelRegister.add(params); 2327// 2328// //3. UI akcije 2329// submitButton.removeClass('active'); 2330// 2331// if(result.ret.flag === true){ 2332// alertElement.html(result.ret.info); 2333// alertElement.removeClass('hidden'); 2334// alertElement.removeClass('nb-alert-2-danger'); 2335// alertElement.addClass('nb-alert-2-success'); 2336// submitButton.removeClass('active'); 2337// formFields.hide(); 2338// } else if(result.ret.flag === false){ 2339// alertElement.html(result.ret.info); 2340// alertElement.removeClass('hidden'); 2341// alertElement.addClass('nb-alert-2-danger'); 2342// } else{ 2343// alertElement.html(result.info); 2344// alertElement.removeClass('hidden'); 2345// alertElement.addClass('nb-alert-2-danger'); 2346// } 2347// }, 0); 2348// } 2349// $(document).ready(function() { 2350// 2351// $(".nbf-register-form").on("submit", registerAction); 2352// 2353// if($('.nb-reg-checkbox-group-wrapper').length > 0){ 2354// selectGroupCheck('reg_email_checkgroup','reg_sendNewsletter'); 2355// selectGroupCheck('reg_phone_checkgroup','reg_sendSMS'); 2356// 2357// if(!$('#reg_email_checkgroup').is(':checked') && !$('#reg_phone_checkgroup').is(':checked')){ 2358// $('#reg_email_checkgroup, #reg_phone_checkgroup').closest('.nb-form-check').css({'pointerEvents':'none','opacity':'.5'}); 2359// } 2360// } 2361// if($('.nb-reg-checkbox-group-wrapper').length > 0){ 2362// selectGroupCheck('reg_page_email_checkgroup','reg_page_sendNewsletter_f'); 2363// selectGroupCheck('reg_page_phone_checkgroup','reg_page_sendSMS_f'); 2364// 2365// if(!$('#reg_page_email_checkgroup').is(':checked') && !$('#reg_page_phone_checkgroup').is(':checked')){
2366// $('#reg_page_email_checkgroup, #reg_page_phone_checkgroup').closest('.nb-form-check').css({'pointerEvents':'none','opacity':'.5'}); 2367// } 2368// } 2369// 2370// $('#reg_sendUserAdditionalData, #reg_callMeOnPhone').click(function (){ 2371// if($(this).is(':checked')){ 2372// 2373// if(!$('#reg_email_checkgroup').is(':checked')){ 2374// $('#reg_email_checkgroup').click().change(); 2375// } 2376// if(!$('#reg_phone_checkgroup').is(':checked')){ 2377// $('#reg_phone_checkgroup').click().change(); 2378// } 2379// $('#reg_email_checkgroup, #reg_phone_checkgroup').closest('.nb-form-check').css({'pointerEvents':'','opacity':''}); 2380// } 2381// 2382// if(!$('#reg_sendUserAdditionalData').is(':checked') && !$('#reg_callMeOnPhone').is(':checked')){ 2383// if($('#reg_email_checkgroup').is(':checked')){ 2384// $('#reg_email_checkgroup').click().change(); 2385// } 2386// if($('#reg_phone_checkgroup').is(':checked')){ 2387// $('#reg_phone_checkgroup').click().change(); 2388// } 2389// } 2390// }) 2391// $('#reg_page_sendUserAdditionalData_f, #reg_page_callMeOnPhone_f').click(function (){ 2392// if($(this).is(':checked')){ 2393// if(!$('#reg_page_email_checkgroup').is(':checked')){ 2394// $('#reg_page_email_checkgroup').click().change(); 2395// } 2396// if(!$('#reg_page_phone_checkgroup').is(':checked')){ 2397// $('#reg_page_phone_checkgroup').click().change(); 2398// } 2399// $('#reg_page_email_checkgroup, #reg_page_phone_checkgroup').closest('.nb-form-check').css({'pointerEvents':'','opacity':''}); 2400// } 2401// 2402// if(!$('#reg_page_sendUserAdditionalData_f').is(':checked') && !$('#reg_page_callMeOnPhone_f').is(':checked')){ 2403// if($('#reg_page_email_checkgroup').is(':checked')){ 2404// $('#reg_page_email_checkgroup').click().change(); 2405// } 2406// if($('#reg_page_phone_checkgroup').is(':checked')){ 2407// $('#reg_page_phone_checkgroup').click().change(); 2408// } 2409// } 2410// }) 2411// }) 2412 2413/* 2414/* NB Fajl:'./static/js/nbjs/ui.components/user/NBUI_Register.js.' 2415*//* NB SHOP JS script 2416 * By NB SHOP & NB SOFT 2417 * www.nbsoft.rs www.nbshop.rs 2418 * NB SOFT Licensed. 2419 */ 2420 2421function NBUI_Register(){} 2422 2423var modelNBUI_Register = new NBUI_Register(); 2424 2425/* AKCIJA ZA RELOAD FORME */ 2426NBUI_Register.prototype.changeTypePerson = function (typePersonElement = '', suffix = ''){ 2427 2428 let $blockElement = typePersonElement.closest('form').closest('.nbf-registration-form-block'); //forma za registraciju, pa njen roditeljski blok 2429 2430 let modelNBRegister = new NBRegister(); 2431 2432 let pageId = $blockElement.data('site-page-id'); 2433 let layoutId = $blockElement.data('layout-id'); 2434 let parentBlockId = $blockElement.data('parent-block-id'); 2435 let blockId = $blockElement.data('block-id'); 2436 let position = $blockElement.data('block-position'); 2437 let typePerson = typePersonElement.val(); 2438 2439 let block = pageId+":"+layoutId+":"+parentBlockId+":"+position+":"+blockId; 2440 2441 let params = { 2442 block : block, 2443 typePerson : typePerson, 2444 allLib : -1, 2445 reg_prefixNameField : suffix 2446 } 2447 2448 setTimeout(()=>{ 2449 let result = modelNBRegister.load(params); 2450 if(result.flag && result.ret.flag){ 2451 $blockElement.replaceWith(result.ret.html); 2452 modelNBUI_Register.init(); 2453 nb_custom_event_trigger('reinitRegisterForm'); 2454 nb_custom_event_trigger('reInitCaptcha'); 2455 if(typeof initNB7AutocompleteEvents === "function"){ 2456 initNB7AutocompleteEvents(); 2457 } 2458 }else{ 2459 $blockElement.replaceWith(''); 2460 } 2461 }, 0); 2462 2463} 2464 2465/* AKCIJA ZA REGISTRACIJU */ 2466NBUI_Register.prototype.registerAction = function (e){ 2467 e.preventDefault(); 2468 2469 let form = $(this); 2470 let formFields = form.find('.nb-form-fields-wrapper'); 2471 let formFieldsTitle = form.find('.nb-register-title'); 2472 let submitButton = form.find('button[type="submit"]');
2473 let captchaDivGoogleV2 = form.find('.g-recaptcha')[0]; 2474 submitButton.addClass('active'); 2475 2476 let modelNBRegister = new NBRegister(); 2477 modelNBRegister.urlAdd = form.data('permalink'); 2478 let alertElement = form.find('.nbf-alert'); 2479 2480 //1. sakupljanje parametara sa elementa 2481 let params = form.serializeObject(); 2482 2483 //2. pozivanje funkcije iz modela 2484 setTimeout(function (){ 2485 //3. UI akcije 2486 submitButton.removeClass('active'); 2487 2488 let result = modelNBRegister.add(params); 2489 if(result.ret.flag === true){ 2490 alertElement.html(result.ret.info); 2491 alertElement.removeClass('hidden'); 2492 alertElement.removeClass('nb-alert-2-danger'); 2493 alertElement.addClass('nb-alert-2-success'); 2494 submitButton.removeClass('active'); 2495 formFields.hide(); 2496 if(formFieldsTitle.length !== 0) { 2497 formFieldsTitle.hide(); 2498 } 2499 } else if(result.ret.flag === false){ 2500 alertElement.html(result.ret.info); 2501 alertElement.removeClass('hidden'); 2502 alertElement.addClass('nb-alert-2-danger'); 2503 } else{ 2504 alertElement.html(result.info); 2505 alertElement.removeClass('hidden'); 2506 alertElement.addClass('nb-alert-2-danger'); 2507 } 2508 if(captchaType === "NB_RECAPTCHA_GOOGLE"){ 2509 grecaptcha.reset(captchaDivGoogleV2); 2510 } 2511 if(captchaType === "NB_HCAPTCHA"){ 2512 hcaptcha.reset(window.hCaptchaRegisterForm1WidgetId); 2513 } 2514 }, 0); 2515} 2516 2517/* CEKIRANJE DODATNIH PODATAKA */ 2518NBUI_Register.prototype.checkAdditionalDataByMainCheckbox = function (){ 2519 let element = $(this); 2520 let form = element.closest('form'); 2521 let additionalCheckboxes = form.find('#reg_page_email_checkgroup, #reg_page_phone_checkgroup, #reg_email_checkgroup, #reg_phone_checkgroup'); 2522 2523 //ukoliko je element cekiran; cekiraj sve ukoliko nije 2524 if(element.is(':checked')){ 2525 additionalCheckboxes.prop('checked', true); 2526 additionalCheckboxes.closest('.nb-form-check').css({'pointerEvents':'','opacity':''}); 2527 } 2528 2529 //ukoliko su checkboxovi za sendUserAdditionalData i callMeOnPhone (klasa nbf-register-additional-data-checkbox) oba odcekirana; odcekiraj sve ostale 2530 if (form.find('input.nbf-register-additional-data-checkbox[type="checkbox"]:checked').length === 0) { 2531 additionalCheckboxes.prop('checked', false); 2532 } 2533 2534 if(additionalCheckboxes.filter(':checked').length === 0){ 2535 additionalCheckboxes.closest('.nb-form-check').css({'pointerEvents':'none','opacity':'.5'}); 2536 } 2537} 2538 2539NBUI_Register.prototype.checkAdditionalDataInit = function (){ 2540 if($('.nb-reg-checkbox-group-wrapper').length > 0){ 2541 let fakeFieldsEmail = $('#reg_email_checkgroup, #reg_page_email_checkgroup'); 2542 let fakeFieldsPhone = $('#reg_phone_checkgroup, #reg_page_phone_checkgroup'); 2543 let fakeFields = fakeFieldsEmail.add(fakeFieldsPhone); 2544 2545 this.selectGroupCheck(fakeFieldsEmail,'reg_sendNewsletter'); 2546 this.selectGroupCheck(fakeFieldsPhone,'reg_sendSMS'); 2547 2548 if(fakeFieldsEmail.filter(':checked').length === 0 && fakeFieldsPhone.filter(':checked').length === 0){ 2549 fakeFields.closest('.nb-form-check').css({'pointerEvents':'none','opacity':'.5'}); 2550 } 2551 } 2552} 2553 2554NBUI_Register.prototype.selectGroupCheck = function (fakeFields, ...fields){ 2555 let checked = fields.every(arg => { 2556 $('#'+arg).closest('.nb-form-check').addClass('hidden'); 2557 return $('#'+arg).is(':checked'); 2558 }); 2559 2560 if (checked) { 2561 $('#' + fakeField).prop('checked', true).change(); 2562 } 2563 2564 fakeFields.on('click', function () { 2565 const isFakeChecked = $(this).is(':checked'); 2566 fields.forEach(arg => { 2567 const isFieldChecked = $('#'+arg).is(':checked'); 2568 if ((isFakeChecked && !isFieldChecked) || (!isFakeChecked && isFieldChecked)) { 2569 $('#'+arg).click(); 2570 } 2571 }); 2572 }); 2573} 2574 2575/* PROVERA DA LI JE ZAPOCET PROCES REGISTRACIJE */ 2576//akcija za proveru da li je zapocet proces registracije sa ovim mejlom 2577NBUI_Register.prototype.checkEmailExistsForRegistration = function (){ 2578 var modelNBRegister = new NBRegister(); 2579 2580 let element = $(this); 2581 let email = $.trim(element.val()); 2582 2583 modelNBRegister.urlCheck = element.data('remote-url'); 2584 2585 //1. sakupljanje parametara sa elementa 2586 var params = { 2587 email : email 2588 } 2589 2590 //2. pozivanje funkcije iz modela 2591 var result = modelNBRegister.check(params); 2592 2593 //samo ukoliko je zapocet proces registracije; ta info se dobija ako imamo data u rezultatu 2594 if(result.ret.flag === false && result.ret.data != null){ 2595 //3. UI komponenta 2596 NBUI_Register.prototype.showFinishRegistrationBootbox(element); 2597 } 2598} 2599 2600//otvaranje bootbox-a sa porukom za opciju zavrsavanja procesa registracije 2601NBUI_Register.prototype.showFinishRegistrationBootbox = function (element){ 2602 let question = element.data('message-label') 2603 let messageYes = element.data('confirm-label') 2604 let messageNo = element.data('cancel-label') 2605 2606 nb7ConfirmDialog(question, ()=>{ 2607 this.finishRegistration(element); 2608 }, messageYes, messageNo); 2609} 2610 2611//akcija za nastavak registracije ukoliko je vec zapocet proces sa tim mejlom 2612NBUI_Register.prototype.finishRegistration = function (element){ 2613 var modelNBRegister = new NBRegister(); 2614 2615 let email = $.trim(element.val()); 2616 modelNBRegister.urlSend = element.data('remote-url'); 2617 2618 //1. sakupljanje parametara sa elementa 2619 var params = { 2620 email : email 2621 } 2622 2623 //2. pozivanje funkcije iz modela 2624 var result = modelNBRegister.send(params); 2625 2626 if(result.ret.flag === true){ 2627 //3. UI komponenta 2628 nb7_info(result.ret.info); 2629 location.reload(); 2630 2631 }else if(result.ret.flag === false){ 2632 nb7_infoError(result.ret.info); 2633 } else{ 2634 nb7_infoError(result.info); 2635 } 2636} 2637 2638/* INICIJALIZACIJA */ 2639NBUI_Register.prototype.init = function (){ 2640 //registracija korisnika 2641 $(".nbf-register-form").on('submit', this.registerAction); 2642
2643 //cekiranje dodatnih podataka 2644 this.checkAdditionalDataInit() 2645 $(".nbf-register-additional-data-checkbox").on('click', this.checkAdditionalDataByMainCheckbox); 2646 2647 //bootbox za zapocet proces registracije 2648 $(".nbf-register-email").focusout(this.checkEmailExistsForRegistration); 2649} 2650 2651$(document).ready(function (){ 2652 modelNBUI_Register.init(); 2653}); 2654/* 2655/* NB Fajl:'./components/complex/product/product-size-list/product-size-list-5/product-size-list-5.js.' 2656*/function NBUI_ProductSizeList5(){} 2657 2658var modelNBUI_ProductSizeList5 = new NBUI_ProductSizeList5(); 2659var modelNBUI_ProductSizeList = new NBUI_ProductSizeList(); 2660var modelNBUI_ProductPrice = new NBUI_ProductPrice(); 2661 2662NBUI_ProductSizeList5.prototype.init = function () { 2663 let $sizes = $('.nbf-size-value'); 2664 modelNBUI_ProductSizeList.setActive($sizes); 2665 modelNBUI_ProductPrice.init($sizes); 2666} 2667 2668$(document).ready(function () { 2669 modelNBUI_ProductSizeList5.init(); 2670}) 2671 2672$(window).on('loadproductsevent', function () { 2673 modelNBUI_ProductSizeList5.init(); 2674}) 2675/* 2676/* NB Fajl:'./components/complex/size/size-picker/tab-size-picker/tab-size-picker-3/tab-size-picker-3.js.' 2677*/ 2678function NBUI_TabSizePicker3() {}; 2679var modelNBUI_TabSizePicker3 = new NBUI_TabSizePicker3(); 2680var modelNBUI_ProductSizeList = new NBUI_ProductSizeList(); 2681var modelNBUI_ProductPrice = new NBUI_ProductPrice(); 2682 2683NBUI_TabSizePicker3.prototype.selectSizes = function($sizeField, $element){ 2684 $element.each(function (i) { 2685 $(this).find('>span').html($(this).data($sizeField)); 2686 }); 2687 2688 let selectedSize = $('.nbf-selected-size .nbf-selected-size-value'); 2689 2690 if(selectedSize.length !== 0) { 2691 $element.each(function (i) { 2692 if($(this).hasClass('active')) { 2693 selectedSize.html($(this).find('.nbf-size-value-span').text()); 2694 return false; 2695 } 2696 }); 2697 } 2698} 2699NBUI_TabSizePicker3.prototype.showSizeIndicator = function($element, $elementIndicator){ 2700 if(!$elementIndicator || !$elementIndicator.length){ 2701 return false; 2702 } 2703 let lastClass = ''; 2704 $element.each(function(){ 2705 2706 let message = $(this).data('productsize-indicator-availability-label'); 2707 let parentClass = $(this).data('productsize-indicator-color'); 2708 2709 $(this).click(function(){ 2710 if(lastClass !== ''){ 2711 $elementIndicator.parent().removeClass(lastClass); 2712 } 2713 $elementIndicator.text(message); 2714 $elementIndicator.parent().addClass(parentClass); 2715 lastClass = parentClass; 2716 }) 2717 }) 2718 2719} 2720NBUI_TabSizePicker3.prototype.init = function($typeSizeElement, $elementSizeValue, $elementSizeIndicator){ 2721 2722 modelNBUI_ProductSizeList.setActive($('.nbf-tab-size-picker .nbf-size-value')); 2723 modelNBUI_ProductPrice.init($('.nbf-tab-size-picker .nbf-size-value')); 2724 modelNBUI_TabSizePicker3.showSizeIndicator($('.nbf-tab-size-picker .nbf-size-value'), $elementSizeIndicator); 2725 2726 if($typeSizeElement.length > 0){ 2727 2728 if (window.NBAccessibility) { 2729 modelNBAccessibility.clickWithKeyboard($typeSizeElement); 2730 } 2731 $typeSizeElement.click( function() { 2732 var $sizeField = $(this).data('type-size-field'); 2733 modelNBUI_TabSizePicker3.selectSizes($sizeField, $elementSizeValue); 2734 $typeSizeElement.removeClass('active'); 2735 $(this).addClass('active'); 2736 }); 2737 2738 $typeSizeElement.each(function (i) { 2739 if($(this).hasClass('active')){ 2740 2741 var $sizeField = $(this).data('type-size-field'); 2742 if(typeof $sizeField != 'undefined'){ 2743 modelNBUI_TabSizePicker3.selectSizes($sizeField, $elementSizeValue); 2744 } 2745 } 2746 }); 2747 } 2748} 2749 2750$(document).ready(function(){ 2751 $('.nbf-product').each(function() { 2752 var $product = $(this); 2753 var sizeType = $product.find('.nbf-size-type'); 2754 var sizeValue = $product.find('.nbf-size-value'); 2755 var sizeIndicator = $product.find('.nbf-product-size-availability-indicator-value'); 2756 modelNBUI_TabSizePicker3.init(sizeType, sizeValue, sizeIndicator); 2757 }); 2758}); 2759 2760$(window).on('loadproductsevent loadSearchProductsEvent nbOpenSearch miniCartOpen loadminicart quickPurchaseModalLoaded', function () { 2761 $('.nbf-product').each(function() { 2762 var $product = $(this); 2763 var sizeType = $product.find('.nbf-size-type'); 2764 var sizeValue = $product.find('.nbf-size-value'); 2765 var sizeIndicator = $product.find('.nbf-product-size-availability-indicator-value'); 2766 modelNBUI_TabSizePicker3.init(sizeType, sizeValue, sizeIndicator); 2767 }); 2768}) 2769 2770/* 2771/* NB Fajl:'./components/complex/product/product-box/product-box-14/product-box-14.js.' 2772*/ 2773function modelNBUI_ProductBox14() {}; 2774 2775var modelmodelNBUI_ProductBox14 = new modelNBUI_ProductBox14(); 2776var modelNBUI_ProductAddToCart= new NBUI_ProductAddToCart(); 2777 2778modelNBUI_ProductBox14.prototype.init = function () { 2779 2780 const $productElement = $('.nbf-product-box-choose-size'); 2781 2782 modelmodelNBUI_ProductBox14.addToCart($productElement); 2783 modelmodelNBUI_ProductBox14.changeBtnText(); 2784 2785} 2786 2787modelNBUI_ProductBox14.prototype.changeBtnText = function(){ 2788 var addToCartBtn = $('.nbf-product-box-choose-size .nbf-add-to-cart'); 2789 var sizes = $('.nbf-product-box-choose-size .nbf-size-value'); 2790 var addToCartBtnText = addToCartBtn.attr('data-btn-text-addtocart'); 2791 2792 sizes.click(function () { 2793 addToCartBtn.text(addToCartBtnText); 2794 }) 2795} 2796 2797modelNBUI_ProductBox14.prototype.addToCart = function ($productElement) { 2798 2799 var $addToCartBtn = $productElement.find('.nbf-add-to-cart'); 2800 2801 $addToCartBtn.off("click"); 2802 2803 $addToCartBtn.click(function (e) { 2804 2805 var addToCartBtn = $(this); 2806 var addToCartBtnCombID = addToCartBtn.attr('data-product-comb-id'); 2807 var addToCartBtnSizeName = addToCartBtn.attr('data-product-size-name'); 2808 var addToCartBtnChooseSizeText = addToCartBtn.attr('data-btn-text-select-size'); 2809 var addToCartBtnText = addToCartBtn.attr('data-btn-text-addtocart'); 2810 2811 if (modelNBUI_QuickPurchaseModal.clickedElement.hasClass('nbf-bundle-choose-product-btn') && addToCartBtnCombID != '-1' && addToCartBtnSizeName != '') { 2812 2813 let addToCartBtnProductId = addToCartBtn.attr('data-product-id'); 2814 let addToCartBtnProductCombId = addToCartBtn.attr('data-product-comb-id'); 2815 let addToCartBtnProductPrice = addToCartBtn.attr('data-product-price'); 2816 let selectedSizeValue = addToCartBtn.attr('data-product-size-name'); 2817 let selectedSize = modelNBUI_QuickPurchaseModal.clickedElement.closest('.nbf-product-box').find('.nbf-selected-size'); 2818 2819 selectedSize.text(selectedSizeValue); 2820 modelNBUI_QuickPurchaseModal.clickedElement.attr('data-product-id', addToCartBtnProductId); 2821 modelNBUI_QuickPurchaseModal.clickedElement.attr('data-product-combinationcode', addToCartBtnProductCombId); 2822 modelNBUI_QuickPurchaseModal.clickedElement.attr('data-product-price', addToCartBtnProductPrice); 2823 2824 $productElement.closest('.modal').nb7_modal('hide'); 2825 2826 modelNBUI_ActionDetail.showSelectedProduct(modelNBUI_QuickPurchaseModal.clickedElement); 2827 2828 } else { 2829 addToCartBtn.text(addToCartBtnText); 2830 2831 if (addToCartBtnCombID != '-1' && addToCartBtnSizeName != '') { 2832 2833 var addToCart = modelNBUI_ProductAddToCart.addToCart(addToCartBtn); 2834 2835 if(addToCart.flag){ 2836 2837 addToCartBtn.addClass('addingItem'); 2838 2839 setTimeout(function (){ 2840 if (addToCart.ret.flag) { 2841 2842 modelNBUI_ProductAddToCart.resetButtonText(addToCartBtn); 2843 2844 $productElement.closest('.modal').nb7_modal('hide'); 2845 openMiniCart(); 2846 2847 } else { 2848 2849 modelNBUI_ProductAddToCart.resetButton(addToCartBtn); 2850 2851 nb7_infoError(addToCart.ret.info); 2852 } 2853 addToCartBtn.removeClass('addingItem'); 2854 },150); 2855 }else{ 2856 modelNBUI_ProductAddToCart.errorMesage(addToCartBtn, addToCart.info); 2857 return false;
2858 } 2859 } else { 2860 addToCartBtn.text(addToCartBtnChooseSizeText); 2861 } 2862 } 2863 2864 }); 2865} 2866 2867$(document).ready(function () { 2868 modelmodelNBUI_ProductBox14.init(); 2869}) 2870 2871$(window).on('quickPurchaseModalLoaded', function(){ 2872 modelmodelNBUI_ProductBox14.init(); 2873}) 2874 2875 2876/* 2877/* NB Fajl:'./components/complex/user/mandatory-login/mandatory-login-1/mandatory-login-1.js.' 2878*/$(document).ready(function () { 2879 $("#btnMandatoryLogin").on('click', function () { 2880 2881 if (NB7.isActiveCI) { 2882 $("#nb_mandatory_login_modal_1").modal('hide') 2883 ci_login(); 2884 } 2885 else { 2886 let loginModal = $('#loginModal') 2887 //ako ima modal prikazi modal 2888 if (loginModal.length > 0) { 2889 $("#nb_mandatory_login_modal_1").modal('hide') 2890 loginModal.nb7_modal('show'); 2891 } 2892 //ako nema modal redirektuj na login 2893 else { 2894 window.location.href = $("#btnMandatoryLogin").data('permalink-login'); 2895 } 2896 } 2897 }) 2898}) 2899/* 2900/* NB Fajl:'./components/complex/user/mandatory-login/mandatory-register-1/mandatory-register-1.js.' 2901*/$(document).ready(function () { 2902 $("#btnMandatoryRegister").on('click', function (e) { 2903 2904 if (NB7.isActiveCI) { 2905 $("#nb_mandatory_login_modal_1").modal('hide') 2906 ci_register(e); 2907 } 2908 else { 2909 let registerModal = $('#registrationModal') 2910 //ako ima modal prikazi modal 2911 if (registerModal.length > 0) { 2912 $("#nb_mandatory_login_modal_1").modal('hide') 2913 registerModal.nb7_modal('show'); 2914 } 2915 //ako nema modal redirektuj na register 2916 else { 2917 window.location.href = $("#btnMandatoryRegister").data('permalink-register'); 2918 } 2919 } 2920 }) 2921}) 2922/* 2923/* NB Fajl:'./nbthemes/nbshop_vulkani/js/nb7.custom.js.' 2924*/function handleMobileLinksDropdown() { 2925 if($(window).width() <= 991) { 2926 $(".nbf-main-navigation").addClass("enable-mobile-links"); 2927 } 2928} 2929 2930function handleProductNotAvailable() { 2931 2932 const notAvailableBlock = $(".nb-product-available-notification-link .nb-notify-about-availability"); 2933 2934 if(typeof notAvailableBlock === "undefined" || notAvailableBlock.length === 0) return; 2935 2936 notAvailableBlock.on("click", function (e) { 2937 const $link = $(this).find(".nbf-notify-about-availability-link"); 2938 2939 if ($(e.target).closest($link).length) { 2940 return; 2941 } 2942 2943 $link[0].click(); 2944 }); 2945 2946} 2947 2948function handlePaymentAccordionsOnMobile() { 2949 let paymentAccordionContent = $(".tp-cart .accordion-collapse[data-bs-parent='#paymentOptions']") 2950 let paymentAccordionHeading = $(".nb-payment-method-options-list-2 .nb-accordion-item .nb-accordion-button") 2951 2952 if($(window).width() <= 576) { 2953 setTimeout(function () { 2954 paymentAccordionHeading.removeClass('collapsed') 2955 paymentAccordionContent.addClass('show') 2956 }, 1) 2957 } 2958 2959} 2960 2961$(document).ready(function () { 2962 handleMobileLinksDropdown(); 2963 handleProductNotAvailable(); 2964 handlePaymentAccordionsOnMobile(); 2965}) 2966 2967if (typeof window.NBUI_HowToBuyBanner1 !== 'undefined') { 2968 NBUI_HowToBuyBanner1.prototype.nbCloseSideBar = function () { 2969 let $sideBar = $('.nb-how-to-buy-banner-1'); 2970 let $class = 'nb-closed' 2971 2972 $sideBar.each(function () { 2973 let $this = $(this); 2974 let $btn = $(this).find('.nbf-toggle-sidebar'); 2975 2976 $btn.on('click',function () { 2977 if($this.hasClass($class)){ 2978 $this.removeClass($class); 2979 }else{ 2980 $this.addClass($class); 2981 } 2982 }) 2983 }) 2984 }; 2985}
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.