1/* 5792 */ 2function App(){ 3 4 var mobileBreakRes = 768; 5 if($('header').hasClass('mobilesm')){ 6 mobileBreakRes = 995; 7 } 8 9 var defaultLang = ''; 10 var clickedLetter = false; 11 12 /** GET WINDOW WIDTH */ 13 var windowWidth = function(){ 14 return (window.innerWidth) ? 15 window.innerWidth : 16 document.documentElement.clienWidth || document.body.clienWidth || 0; 17 }; 18 19 /** GET WINDOW HEIGHT 20 */ 21 var windowHeight = function(){ 22 return (window.innerHeight) ? 23 window.innerHeight : 24 document.documentElement.clientHeight || document.body.clientHeight || 0; 25 }; 26 27 /* 28 * PRINT ELEMENT 29 * Description: Print element with given ID 30 */ 31 function printFrame(elId) { 32 var printFrame = window.frames["print_frame"]; 33 printFrame.document.body.innerHTML=document.getElementById(elId).innerHTML; 34 printFrame.window.focus(); 35 printFrame.window.print(); 36 } 37 38 //LOAD TAB ON CLICK OF AN ELEMENT 39 var handleBindedToTab = function(){ 40 $('.binded-to-tab').click(function(e){ 41 e.preventDefault(); 42 43 var $elClicked = $(this); 44 var $tab = $('a[href="'+$elClicked.attr('href')+'"]').tab('show').first(); 45 46 $("html, body").animate({scrollTop: $tab.offset().top}, 900); 47 }); 48 }; 49 50 /* 51 * Animate anchor links 52 */ 53 54 var handleAnchorLinks = function(){ 55 56 }; 57 58 /* 59 * SET LOCALES 60 * TODO: active language should be dynamically setted 61 * based on some global variable 62 * app.locale for example 63 * Plugins used: Bootstraps Bootbox, ParsleyValidator 64 */ 65 var setLocales = function(lang){ 66 bootbox.setDefaults({ locale: lang }); 67 window.ParsleyValidator.setLocale(lang); 68 setDefaultLang(lang); 69 }; 70 71 var setDefaultLang = function(lang){ 72 defaultLang = lang; 73 }; 74 75 var getDefaultLang = function(){ 76 return defaultLang; 77 }; 78 79 /* 80 * GET LOGIN MODAL 81 * Description: return modal that is globally being used for login 82 */ 83 var getLoginModal = function(){ 84 85 let quizModalLogin = $('#quiz_modal_loyalty'); 86 if(typeof quizModalLogin !== "undefined" && quizModalLogin.length > 0) { 87 return quizModalLogin; 88 } 89 90 return $('#login_modal'); 91 }; 92 93 /* 94 * SET TOASTR OPTIONS 95 * Plugin used: Bootstraps Toastr 96 */ 97 var setToastrOptions = function(){ 98 toastr.options.positionClass = 'toast-middle-center'; 99 }; 100 101 /* 102 * MAIN NAVIGATION 103 * Plugin used: scrollToFixed, 104 */ 105 var handleNavMain = function(){ 106 107 var $header = $('.header'), 108 $navWrapper = $('.nav-main-wrapper'), 109 $navDropdown = $('.nav-main-submenu-wrapper,.nav-main-dropdown-wrapper'), 110 $nav = $(".nav-main"); 111 var header_fixed = $header.data('fixed'); 112 113 header_fixed = (header_fixed)? true:false; 114 115 116 //fix header using plugin scrollToFixed 117 function fixedHeader(){ 118 $header.scrollToFixed(); 119 }; 120 121 //fix main navigation using plugin scrollToFixed 122 function fixedNavMain(){ 123 var adminheader = $('.header-top-nav-autocomplete'); 124 var tm; 125 126 if(adminheader.length > 0){ 127 tm = $(".header-top").outerHeight(); 128 }else{ 129 tm = $(".header-top").outerHeight(); 130 } 131 132 if(header_fixed){ 133 $navWrapper.scrollToFixed({ 134 dontSetWidth: true, 135 marginTop: tm, 136 preFixed: function() { 137 $(".header-top").addClass("fixed-style"); 138 } 139 }); 140 141 }else{ 142 $navWrapper.scrollToFixed({ 143 dontSetWidth: true, 144 marginTop: tm, 145 preFixed: function() { 146 $(".header-top,.fixed-banner").addClass("fixed-style"); 147 }, 148 unfixed: function() { 149 $(".header-top,.fixed-banner").removeClass("fixed-style"); 150 } 151 }); 152 153 } 154 }; 155 156 //show dropdown on hover of main navigation 157 var dropdownHover = function(){ 158 $navDropdown.each(function(){ 159 var $dropdown = $(this), 160 $li = $dropdown.parent('li'); 161 162 var show = function(){ 163 $li.addClass('active'); 164 $dropdown.removeClass('hidden'); 165 $dropdown.css({ top: $li.outerHeight(true)}); 166 $dropdown.addClass('loaded'); 167 var sliderss = $dropdown.find('.slider-init'); 168 if($dropdown.parent('.level4').length === 0){ 169 setTimeout(function(){ dropdownSlider(sliderss); }, 1); 170 } 171 }; 172 173 var hide = function(){ 174 $li.removeClass('active'); 175 $dropdown.removeClass('loaded').addClass('hidden'); 176 }; 177 178 var timer; 179 $li.on('mouseover', function(){ 180 if($li.parent('.nav-main').length === 0 || $li.hasClass('delay-show')){ 181 $(document).on('mousemove', function(e){ 182 clearTimeout(timer); 183 184 timer = setTimeout(function() { 185 show(); 186 }, 200); 187 }); 188 } else { 189 show(); 190 } 191 }); 192 193 $li.on('mouseleave', function(){ 194 if($li.parent('.nav-main').length === 0 || $li.hasClass('delay-show')){ 195 $(document).on('mousemove', function(e){ 196 clearTimeout(timer); 197 198 timer = setTimeout(function() { 199 hide(); 200 }, 200); 201 }); 202 } else { 203 hide(); 204 } 205 }); 206 207 $dropdown.find('.nav-main-dropdown-inner').hover(function(){ 208 $(this).find(".nav-main-dropdown-inner").removeClass("hidden"); 209 }, function(){ 210 $(this).find(".nav-main-dropdown-inner").addClass("hidden"); 211 }); 212 213 }); 214 215 }; 216 217 /* Zbog problema na modalima u Safariju linkovi za modal se menjaju linkovima za strane */ 218 /* var safariUserBtns = function(){ 219 if (navigator.userAgent.indexOf('Safari') != -1 && navigator.userAgent.indexOf('Chrome') == -1 && windowWidth() < 768) { 220 var buttonLogin = $('.nav-main-useractions .login-btn, .nav-main-useractions .register-btn'); 221 buttonLogin.click(function(){ 222 $(this).removeAttr('data-toggle').removeAttr('data-target'); 223 var permalink = $(this).data('permalink'); 224 window.location.replace(permalink); 225 }); 226 } 227 };*/ 228
229 var $navMobileIcon = $('.nav-mobile-icon'), 230 $navMainWrapper = $('.nav-main-wrapper'), 231 $shopOptions = $('.header .user'), 232 $header = $('.header'), 233 $topLangOptions = $('.lang-dropdown .dropdown-menu'); 234 235 function menuAdjustSize() { 236 $navMainWrapper.removeClass('loaded'); /* Zatvara mobilni meni */ 237 $navMobileIcon.removeClass('active'); /* Deaktivira dugme za mob meni */ 238 $('.nav-main > li > a').css({'display': 'block'}); 239 $('.nav-main-dropdown-wrapper').addClass('hidden'); 240 if($(window).width() < mobileBreakRes) { 241 $navMainWrapper.find('.nav-main-toplang').html($topLangOptions.html()); /* Probacuje lang bar u mobile menu */ 242 $navMainWrapper.find('.nav-main-useractions').html($shopOptions.html()); /* prebaci user links */ 243 $navMainWrapper.css({'display': 'none'}); /* Sakrij meni*/ 244 } else { 245 $navMainWrapper.find('.nav-main-toplang').find('.lang-dropdown').hide(); /* Sakriva lang meni iz glavne navigacija */ 246 $navMainWrapper.find('.nav-main-useractions').hide(); /* Sakriva user linkove iz glavnog menija */ 247 $navMainWrapper.css({'margin-top': '0px', 'display': 'block'}); /* Prikazuje glavni meni i skida marginu veliÄinu header-a */ 248 $("body").removeClass("body-overflow"); 249 } 250 }; 251 252 var w = $(window).width(); 253 $(window).resize(function(){ 254 if ($(window).width()==w) return; 255 w = $(window).width(); 256 menuAdjustSize(); 257 }); 258 259 $navMobileIcon.click(function(){ 260 261 $navMainWrapper.find('.nav-main-toplang').html($topLangOptions.html()); /* Probacuje lang bar u mobile menu na klik ako je pocetna rez bila mob */ 262 $navMainWrapper.find('.nav-main-useractions').html($shopOptions.html()); /* prebaci user links na klik ako je pocetna rez bila mob */ 263 $("body").toggleClass("body-overflow"); /* Dodaje klasu da ne može da se skroluje ekran dok je otvoren meni */ 264 $navMobileIcon.toggleClass('active'); 265 $navMainWrapper.find('.nav-simple').removeClass('nav-simple hidden-xs').addClass('nav-main').find('a').removeClass('underline-effect'); 266 $navMainWrapper.toggleClass('loaded').css({'margin-top': ($header.outerHeight() - 1)}); /* Prikazuje meni i dodaje gornju marginu visine headera */ 267 $navMainWrapper.toggle(); 268 /* Prikazuje i sklanja meni */ 269 var safariUserBtns = function(){ 270 271 if (navigator.userAgent.indexOf('Safari') != -1 && navigator.userAgent.indexOf('Chrome') == -1 && windowWidth() < mobileBreakRes) { 272 273 var buttonLogin = $('.item-register .register-btn, .item-login .login-btn'); 274 buttonLogin.removeAttr('data-toggle').removeAttr('data-target'); 275 buttonLogin.click(function(){ 276 var permalink = $(this).data('permalink'); 277 $(this).attr('href',permalink); 278 //window.location.replace(permalink); 279 }); 280 281 } 282 283 }(); 284 285 /* Funkcija za zatvaranje menija kada se klikne na sivu povrÅ¡inu pored stavki menija */ 286 if(app.width() < mobileBreakRes && false){ 287 $(".nav-main-wrapper.loaded").click(function(){ 288 nbshopJS.closeMenu(); 289 }).children().click(function(e) { 290 }); 291 } 292 nbshopJS.removeArrow2levlonly(); 293 }); 294 295 //show dropdown on click of main navigation 296 var dropdownToggle = function(){ 297 298 if($('.header').find('.user').length !== 0) { 299 $('#search-form').hide(); 300 } 301 302 $navMainWrapper.find('.nav-main > li > a').click(function(e){ 303 e.preventDefault(); 304 e.stopPropagation(); 305 window.location.href = $(this).attr('href'); 306 }); 307
308 //go to url once icon within link is clicked 309 $navMainWrapper.find('.nav-main > li > a > i').click(function(e){ 310 e.preventDefault(); 311 e.stopPropagation(); 312 }); 313 314 //dropdowns within menu 315 var dropdowns = function(){ 316 317 //loop through each dropdown 318 $navDropdown.each(function(){ 319 var $dropdown = $(this), 320 $li = $dropdown.parent('li'); 321 322 //dont go to link when it is clicked 323 $dropdown.find('.nav-main-dropdown-item > a > h5, .nav-main-dropdown-item > ul > li:not(.level-wrapper) > a, nav-main-submenu > li > a').click(function(e){ 324 e.stopPropagation(); 325 window.location.href = $(this).attr('href'); 326 }); 327 328 $li.children('a').children('i').click(function(e){ 329 e.preventDefault(); 330 331 if($dropdown.is(':visible')){ 332 $dropdown.addClass('hidden'); 333 $(this).parents('.nav-main-submenu').removeClass('active'); 334 $(this).parent().parent('li').removeClass('active'); 335 $(this).removeClass("fa fa-angle-left"); 336 $(this).toggleClass("fa fa-angle-right"); 337 } else { 338 //app.scroll.resize($navMainWrapper); 339 $dropdown.removeClass('hidden'); 340 $(this).parents('.nav-main-submenu').addClass('active'); 341 $(this).parent().parent('li').addClass('active'); 342 $(this).removeClass("fa fa-angle-right"); 343 $(this).toggleClass("fa fa-angle-left"); 344 } 345 }); 346 347 $li.children('i').click(function(e){ 348 e.stopImmediatePropagation(); 349 350 $(this).parent('level4').children('a').toggleClass('hidden'); 351 352 if($(e.delegateTarget)[0] !== $(this)[0]) return; 353 354 if($dropdown.is(':visible')){ 355 $dropdown.addClass('hidden'); 356 $li.removeClass('active'); 357 $(this).removeClass("fa fa-angle-left"); 358 $(this).toggleClass("fa fa-angle-right"); 359 } else { 360 //app.scroll.resize($navMainWrapper); 361 $dropdown.removeClass('hidden'); 362 $li.addClass('active'); 363 $(this).removeClass("fa fa-angle-right"); 364 $(this).toggleClass("fa fa-angle-left"); 365 } 366 }); 367 368 }); 369 }; 370 371 var collapsedAllMobileItems = function(){ 372 $('.collapsed-mobile .nav-main-dropdown-item ul').each(function () { 373 var dropdownWrapper = $(this).parent(); 374 dropdownWrapper.addClass('has-sub-items'); 375 dropdownWrapper.children('a').append('<i class="icon visible-xs fa fa-angle-right"></i>'); 376 dropdownWrapper.children('a').click(function(e) { 377 e.preventDefault(); 378 if($(this).parent().hasClass('active')){ 379 dropdownWrapper.closest('li.active.child-is-open').removeClass('child-is-open'); 380 dropdownWrapper.removeClass('active'); 381 } else { 382 dropdownWrapper.closest('li.active').addClass('child-is-open'); 383 dropdownWrapper.addClass('active'); 384 } 385 }); 386 }); 387 }; 388 389 dropdowns(); 390 if($('.nav-main-wrapper').hasClass('collapsed-mobile')){ 391 collapsedAllMobileItems(); 392 }; 393 }; 394 395 var dropdownSlider = function(slider){
396 if(!slider.hasClass("slick-initialized")){ 397 slider.each(function(){ 398 399 //var $slider = $(this); 400 401 slider.handleSlider({ 402 arrows:true, 403 lazyLoad: 'ondemand', 404 dots: true 405 }); 406 }); 407 } 408 }; 409 410 var dropdownSliderReinit = function(dropdownSliderReinit){ 411 412 var initSliderMenu = function(dropdownSliderReinit) { 413 414 var $slider = dropdownSliderReinit.find('.slider-init');//.children('.slider-init'); 415 416 if (!$slider.hasClass("slick-initialized")) { 417 $slider.handleSlider({ 418 arrows: true 419 }); 420 } else { 421 $slider.reinitSlider(); 422 } 423 424 }; 425 initSliderMenu(dropdownSliderReinit); 426 }; 427 428 if(app.width() < mobileBreakRes){ 429 dropdownToggle(); 430 fixedHeader(); 431 } else { 432 dropdownHover(); 433 if (!$navWrapper.hasClass('disable-fix')) { 434 fixedNavMain(); 435 } 436 $('.fixed-nav-wrapper').scrollToFixed({ 437 marginTop: $('.header-top').outerHeight() + $('.nav-main-wrapper').outerHeight() 438 }); 439 if(header_fixed){ 440 fixedHeader(); 441 } 442 } 443 444 }; 445 446 // 447 var handleReadMore = function(){ 448 449 $('.read-more-text').each(function(){ 450 //carierId_fastDelivery 451 if($(this).parents("li").find( "input[id^='carierId_fastDelivery']" ).length > 0){ 452 return false; 453 } 454 455 var $preserveFormat = $(this).hasClass('preserve-format'); 456 457 var showChar = $(this).attr("data-characters"); // How many characters are shown by default 458 var showCharMob = $(this).attr("data-characters-mobile"); // How many characters are shown by default on mobile 459 var ellipsestext = "..."; 460 var moretext = $(".read-more-text").attr("data-moreText"); 461 var content = $preserveFormat ? $(this).html() : $(this).text(); 462 // var formatcontent = $(this).html(); 463 var formatcontent = $(this).find("img").remove().end().html(); 464 465 if(app.width() < mobileBreakRes) { 466 if(content.replace(/(<([^>]+)>)/gi, "").length > showCharMob) { 467 468 var c = content.substr(0, showCharMob); 469 var h = content.substr(showCharMob, content.length - showCharMob); 470 471 var html = '<span class="lesstext">'+c+'</span>' + '<span class="moreellipses">' + ellipsestext+ ' </span><span class="morecontent"><span class="more-content" style="display: none;">' + h + '</span>'+'<span class="full-content">' + formatcontent +'</span><a href="" class="morelink btn btn-sm btn-ghost read-more-btn">' + moretext + '</a></span>'; 472 473 $(this).html(html); 474 } 475 476 }else{ 477 478 if(content.replace(/(<([^>]+)>)/gi, " ").length > showChar) { 479 480 var c = content.substr(0, showChar); 481 var h = content.substr(showChar, content.length - showChar); 482 483 var html = '<span class="lesstext">'+c+'</span>' + '<span class="moreellipses">' + ellipsestext+ ' </span><span class="morecontent"><span class="more-content" style="display: none;">' + h + '</span>'+'<span class="full-content">' + formatcontent +'</span><a href="" class="morelink btn btn-sm btn-ghost read-more-btn">' + moretext + '</a></span>'; 484 485 $(this).html(html); 486 } 487 488 } 489 490 }); 491 492/* $(".morelink").each(function(){ 493 $(this).click(function(){ 494 $(this).parents('li').find(".lesstext").toggleClass('hidden'); 495 if($(this).parents(".read-more-text").hasClass("less")){ 496 $(this).parents(".read-more-text").removeClass("less"); 497 $(this).html($(this).parents(".read-more-text").attr("data-lessText")); 498 $(".lesstext").addClass('hidden'); 499 $(".full-content").addClass('content-full'); 500 } else { 501 $(this).parents(".read-more-text").addClass("less"); 502 $(this).html($(this).parents(".read-more-text").attr("data-moreText")); 503 $(".lesstext").removeClass('hidden'); 504 $(".full-content").removeClass('content-full'); 505 } 506 $(this).parents(".read-more-text").find(".moreellipses").toggle(); 507 $(this).prev().toggle(); 508 return false;
509 }); 510 });*/ 511 512 /* AKsa redizajn */ 513 $(".morelink").on('click',function(e){ 514 e.preventDefault() 515 listID = $(this).parents('.item-list-info').data('id'); 516 517 $parent = $('div[data-id="'+listID+'"]'); 518 $parent.find(".lesstext").toggleClass('hidden'); 519 //$(this).parents('.detail-product-info-lists').find(".lesstext").toggleClass('hidden'); 520 if(!listID){ 521 $parent = $(this).parents('.read-more-text'); 522 // console.log($(this)[0].innerText = 'test2') 523 524 if($parent.hasClass("less")){ 525 $parent.removeClass("less"); 526 $(this).text($(this).parents(".read-more-text").attr("data-lessText")); 527 $parent.find(".lesstext").addClass('hidden'); 528 $parent.find(".full-content").addClass('content-full'); 529 530 }else{ 531 $(this).text($(this).parents(".read-more-text").attr("data-moreText")); 532 $parent.find(".lesstext").removeClass('hidden'); 533 $parent.find(".full-content").removeClass('content-full'); 534 $parent.addClass("less"); 535 } 536 }else{ 537 if($parent.find(".read-more-text").hasClass("less")){ 538 $parent.find(".read-more-text").removeClass("less"); 539 $(this).html($(this).parents(".read-more-text").attr("data-lessText")); 540 $parent.find(".lesstext").addClass('hidden'); 541 $parent.find(".full-content").addClass('content-full'); 542 } else { 543 $parent.find(".read-more-text").addClass("less"); 544 $(this).html($(this).parents(".read-more-text").attr("data-moreText")); 545 $parent.find(".lesstext").removeClass('hidden'); 546 $parent.find(".full-content").removeClass('content-full'); 547 } 548 } 549 550 $(this).parents(".read-more-text").find(".moreellipses").toggle(); 551 $(this).prev().toggle(); 552 return false; 553 }); 554 555 }; 556 557 558 /* 559 * Slide toggle 560 * $button is clicked element that interacts with $object 561 */ 562 var handleSlideToggle = function($button){ 563 $button.each(function(){ 564 565 var $thisButton = $(this); 566 var $object = $(this).parent().find(".slidetoggle-object").first(); 567 568 if($object){ 569 $object.parent().addClass("has-dropdown"); 570 } 571 572 $thisButton.click(function(){ 573 toggleElements(); 574 }); 575 576 var toggleElements = function(){ 577 if($thisButton.hasClass("closed")){ 578 openElements(); 579 } 580 else { 581 closeElements(); 582 } 583 }; 584 585 var openElements = function(){ 586 $object.slideDown(); 587 $thisButton.removeClass("closed"); 588 $object.removeClass("closed"); 589 }; 590 591 var closeElements = function(){ 592 $object.slideUp(); 593 $thisButton.addClass("closed"); 594 $object.addClass("closed"); 595 }; 596 }); 597 }; 598 599 var handleAutocomplete = function(){ 600 var $wrapper = $('.autocomplete-wrapper'), 601 $input = $('.autocomplete-input'), 602 $buttons = $('.autocomplete-button, .autocomplete-close'), 603 $results = $('.autocomplete-results'), 604 $header = $('.header'), 605 $logoHidden = $('.search-logo'), 606 $hideElements = $('.hidden-fullscreen'), 607 scrollWidth = $results.data('scroll-width'), 608 scrollPadding = $results.data('scroll-padding'), 609 $Searchshowmenu = $('.search-show-menu .nav-main-wrapper.hidden-fullscreen'); 610 611 $buttons.click(function(e){ 612 e.stopPropagation(); 613 handleAutocompleteFun(); 614 reinitOpenslider($('.main-slider > .slider-init'),window.mainslideroptions); 615 reinitOpenslider($('.handlines-sldier .slider-init'),window.topslideroptions); 616 nbshopJS.CustomEventTrigger('openNBSearch'); 617 }); 618 619 if($('.main-4level').hasClass('main-4level-with-search-input')){ 620 $('html').click(function(e) { 621 if(app.width() >= mobileBreakRes) { 622 var clickCheck = true; 623 if ($(e.target).hasClass('autocomplete-wrapper') || $(e.target).hasClass('autocomplete-button') || $(e.target).hasClass('autocomplete-input')) { 624 var clickCheck = false;
625 } 626 if (clickCheck == true) { 627 $('.autocomplete-wrapper').addClass('hidden'); 628 $('#search-text').val(''); 629 } 630 } 631 }); 632 } 633 634 var handleAutocompleteFun = function(){ 635 636 $('.autocomplete-button-wrapper').toggleClass('hidden'); 637 $wrapper.toggleClass('hidden'); 638 $logoHidden.toggleClass('hidden'); 639 640 if($('.main-4level').hasClass('main-4level-with-search-input') && app.width() > app.mobileBreakpoint) { 641 $('#search-form').appendTo('.main-4level-with-search-input .nav > .container'); 642 $input.focus(); 643 } else if ($('.autocomplete-button').hasClass('autocomplete-button-one-row') && app.width() > app.mobileBreakpoint) { 644 $('#search-form').appendTo('.header > .container'); 645 $input.focus(); 646 }else { 647 $('body').scrollTop(); 648 $('body').toggleClass('srch'); 649 650 $('.cart-wrapper').toggleClass('hidden'); 651 $hideElements.toggleClass('hidden'); 652 if($Searchshowmenu.length > 0){ 653 $Searchshowmenu.removeClass('hidden'); 654 $('.autocomplete-button').toggleClass('hidden'); 655 656 $('.autocomplete-close').click(function(){ 657 $('.autocomplete-button').removeClass('hidden'); 658 } 659 ) 660 } 661 662 $input.focus(); 663 664 var headerHeight = $header.outerHeight(true); 665 $wrapper.height(app.height() - headerHeight - 1); 666 $results.height(app.height() - headerHeight - 61); 667 668 $('.header').next().toggleClass('scroll-to-fixed-css'); 669 $('.scroll-to-fixed-css').css("max-height", $(".header").height() + 1); 670 671 if (app.width() > mobileBreakRes) { 672 /*app.scroll.set($results, { 673 curcursorcolor: "rgba(255, 255, 255, 0.4)", 674 railpadding: {right: scrollPadding}, 675 zindex: 2500, 676 cursorwidth: scrollWidth 677 }); 678 679 app.scroll.resize($results);*/ 680 } else { 681 $results.css('overflow', 'scroll'); 682 } 683 }; 684 }; 685 686 $buttons.focusin(function(){ 687 $(this).css("background-color", "#FFFFCC"); 688 }); 689 }; 690 691 var handleProfile = function(){ 692 693 var removeWishlistItem = function(){ 694 $('#tab_profile_wish_list .product-item .remove-item').click(function(e){ 695 e.preventDefault(); 696 $(this).parents('.product-item').parent().remove(); 697 }); 698 }; 699 700 var removePricechangeItem = function(){ 701 $('#tab_profile_price_change .product-item .remove-item').click(function(e){ 702 e.preventDefault(); 703 $(this).parents('.product-item').parent().remove(); 704 }); 705 }; 706 707 $('.show-vertical-menu').click(function(){ 708 $(this).next(".nav").slideToggle(); 709 }); 710 711 function checkProfileStrict(typeaheadStrictTypeVal){ 712 var cityId = $('#profile_city_id').val(); 713 var city = $('#profile_city'); 714 var adress = $('#profile_address'); 715 var adressId = $('#profile_address_id').val(); 716 if(typeaheadStrictTypeVal == 'postCodeAutoFillByCity'){ 717 if(cityId == '-1'){ 718 city.val(''); 719 $('#profile_postcode').val(''); 720 } 721 } else if(typeaheadStrictTypeVal == 'postCodeAutoFillByStreet'){ 722 if(cityId == '-1'){ 723 city.val(''); 724 } 725 if(adressId == '-1'){ 726 adress.val(''); 727 $('#profile_postcode').val(''); 728 } 729 730 } 731 } 732 checkProfileStrict(typeaheadStrictType); 733 removeWishlistItem(); 734 removePricechangeItem(); 735 }; 736 737 var handleToggle = function(){ 738 var button = $(".toggle-init"); 739 button.click(function(){ 740 $(this).parents(".toggle-wrapper").toggleClass("closed-toggle"); 741 $(this).parents(".toggle-wrapper").find(".toggle-elem").slideToggle(); 742 }); 743 744 if(app.width() < 768){ 745 $(".toggle-init").parents(".toggle-wrapper").toggleClass("closed-toggle"); 746 $(".toggle-init").parents(".toggle-wrapper").find(".toggle-elem").slideToggle(); 747 } 748 }; 749 750 var handleTooltip = function($object){ 751 $object.tooltip(); 752 }; 753 754 var handleCountdown = function(){ 755 756 var countDownTimer = $(".countdown-timer"); 757 var deadLine = $(".countdown-timer").data("until"); 758 var deadLineHours = $(".countdown-timer").data("until-hours"); 759 var deadLineMinutes = $(".countdown-timer").data("until-minutes"); 760 var deadLineSeconds = $(".countdown-timer").data("until-seconds"); 761 762 var myDate = new Date(deadLine); 763 myDate.setHours(parseInt(deadLineHours)); 764 myDate.setMinutes(parseInt(deadLineMinutes)); 765 myDate.setSeconds(parseInt(deadLineSeconds)); 766 767 initRegionalOptionsCountdown($, getDefaultLang()); 768 769 countDownTimer.countdown({ 770 until: myDate, 771 timeSeparator: ':', 772 timezone: +2, 773 padZeroes: true, 774 format: 'HMS' 775 }); 776 777 }; 778 779 /* Sidebar functionality for tablets */ 780 var handleSidebarInfo = function(){
781 $(".sidebar-info .icon-item").click(function(){ 782 if($(this).hasClass("clicked")){ 783 $(".sidebar-info .icon-item").removeClass("clicked"); 784 } 785 else{ 786 $(".sidebar-info .icon-item").removeClass("clicked"); 787 $(this).addClass("clicked"); 788 } 789 }); 790 }; 791 792 /* function to create same style for banner as seen on articles*/ 793 var articleBannerStyle = function(){ 794 var article = $(".article-big-item"), 795 banner = $(".article-banner .banner-img"), 796 catalogItem = $(".product-item-col"), 797 catalogBanner = $(".catalog-banner"); 798 799 article.find('img').batchImageLoad({ 800 loadingCompleteCallback: function(){ 801 banner.height(article.height() - 21); 802 banner.css("padding-top", (banner.height()-250)/2 ); 803 } 804 }); 805 806 catalogItem.find('img').batchImageLoad({ 807 loadingCompleteCallback: function(){ 808 catalogBanner.height(catalogItem.height() - 21); 809 catalogBanner.css("padding-top", (catalogBanner.height()-250)/2 ); 810 } 811 }); 812 813 }; 814 815 var handleFavoriteProduct = function($elements){ 816 817 if($elements.length !== 0) { 818 $elements.each(function() { 819 $(this).addClass('favorite-init'); 820 }) 821 } 822 823 var addFavoriteProductSession = function($favIcon){ 824 825 $.ajax({ 826 type: "POST", 827 url: nb_active_page_url, 828 data: { 829 nbAjax: 1, 830 nbTask: 'product_favorites', 831 flag: "yes", 832 ajax: "yes", 833 task: "add_session_favorites_product", 834 productId: $favIcon.parents('.product-item').length 835 ? $favIcon.parents('.product-item').data('productid') 836 : $favIcon.data('productid'), 837 typeObject: $favIcon.data('favoritetypeobject') === 'undefined' 838 ? 'product' 839 : $favIcon.data('favoritetypeobject') 840 }, 841 contentType: "application/x-www-form-urlencoded;charset=UTF-8", 842 dataType: 'json', 843 success: function(ret) { 844 if (ret.flag){ 845 846 }else{ 847 toastr.error(ret.info); 848 } 849 } 850 }); 851 }; 852 853 var favoriteProduct = function($favIcon){ 854 855 let eventId = generateEventId(); 856 857 if(!app.logged_in){ 858 addFavoriteProductSession($favIcon); 859 getLoginModal().modal('show'); 860 } else { 861 $.ajax({ 862 type: "POST", 863 url: nb_active_page_url, 864 data: { 865 nbAjax: 1, 866 nbTask: 'product_favorites', 867 flag: "yes", 868 ajax: "yes", 869 task: "add_favorites_product", 870 productId: $favIcon.parents('.product-item').length 871 ? $favIcon.parents('.product-item').data('productid') 872 : $favIcon.data('productid'), 873 typeObject: $favIcon.data('favoritetypeobject') === 'undefined' 874 ? 'product' 875 : $favIcon.data('favoritetypeobject') 876 }, 877 contentType: "application/x-www-form-urlencoded;charset=UTF-8", 878 dataType: 'json', 879 success: function(ret) { 880 if (ret.flag) { 881 console.log(ret); 882 if(ret.quantity === "1"){ 883 $("#last-piece-modal").modal('show'); 884 } 885 $favIcon.data('favoriteid', ret.id); 886 $favIcon.attr('data-content', $favIcon.data('favorite-text-delete')); 887 $favIcon.attr('data-original-title', $favIcon.data('favorite-text-delete')); 888 var delFavText = '<span class="icon icon-heart-f"></span><span class="text">'+$favIcon.data('favorite-text-delete')+'</span>'; 889 if ($favIcon.parents('.products-detail-wrapper').length) { 890 $favIcon.html(delFavText); 891 } 892 893 if($favIcon.parents('.product-item').length){ 894 $favIcon.parents('.product-item').find('.favorite').addClass('active'); 895 var buttonNoNotifyMe = $favIcon.parents('.product-item').find('.notifyme'); 896 if(typeof(buttonNoNotifyMe.data('button-no-notify-me')) != 'undefined' && buttonNoNotifyMe.data('button-no-notify-me') != null){ 897 buttonNoNotifyMe.text(buttonNoNotifyMe.data('button-no-notify-me')); 898 buttonNoNotifyMe.data('favoriteid', ret.id) 899 } 900 901 buttonNoNotifyMe.addClass('active'); 902 903 }else{ 904 $favIcon.addClass('active'); 905 } 906 907 toastr.success(ret.info); 908 refreshFavoritesList(); 909 910 let productId = nbMetricObject.NB_METRIC_DATA.id; 911 912 if( typeof $($favIcon).closest(".product-item") !== "undefined" && $($favIcon).closest(".product-item").length > 0) { 913 productId = $($favIcon).closest(".product-item").data('productid'); 914 } 915 916 nbshopJS.CustomEventTrigger('addToFavoritesProduct', { id: productId, event_id: eventId }); 917 var favoriteTotal = (parseInt($('.favorite-header-total').html()) + 1); 918 $('.favorite-header-total').html(favoriteTotal); 919 } else{ 920 toastr.error(ret.info); 921 } 922 $favIcon.removeClass('pulse'); 923 } 924 }); 925 } 926 }; 927 928 var unfavoriteProduct = function($favIcon){ 929 if(!app.logged_in){ 930 getLoginModal().modal('show'); 931 } else { 932 $.ajax({ 933 type: "POST", 934 url: nb_active_page_url, 935 data: { 936 nbAjax: 1, 937 nbTask: 'product_favorites', 938 flag: "yes", 939 ajax: "yes", 940 task: "delete_favorites_product", 941 id: $favIcon.data('favoriteid'), 942 typeObject: $favIcon.data('favoritetypeobject') === 'undefined' 943 ? 'product' 944 : $favIcon.data('favoritetypeobject') 945 }, 946 contentType: "application/x-www-form-urlencoded;charset=UTF-8", 947 dataType: 'json', 948 success: function(ret) { 949 if (ret.flag) { 950 951 $favIcon.attr('data-content', $favIcon.data('favorite-text-add')); 952 $favIcon.attr('data-original-title', $favIcon.data('favorite-text-add')); 953 var addFavText = '<span class="icon icon-heart"></span><span class="text">'+$favIcon.data('favorite-text-add')+'</span>'; 954 if ($favIcon.parents('.products-detail-wrapper').length) { 955 $favIcon.html(addFavText); 956 } 957 958 if($favIcon.parents('.product-item').length){ 959 $favIcon.parents('.product-item').find('.favorite').removeClass('active'); 960 var buttonNotifyMe = $favIcon.parents('.product-item').find('.notifyme'); 961 if(typeof(buttonNotifyMe.data('button-notify-me')) != 'undefined' && buttonNotifyMe.data('button-notify-me') != null){ 962 buttonNotifyMe.text(buttonNotifyMe.data('button-notify-me')); 963 } 964 buttonNotifyMe.removeClass('active'); 965 }else{ 966 $favIcon.removeClass('active'); 967 } 968 969 let productId = nbMetricObject.NB_METRIC_DATA.id; 970 971 if( typeof $($favIcon).closest(".product-item") !== "undefined" && $($favIcon).closest(".product-item").length > 0) { 972 productId = $($favIcon).closest(".product-item").data('productid'); 973 } 974 975 toastr.info(ret.info); 976 refreshFavoritesList(); 977 nbshopJS.CustomEventTrigger('removeFavoritesProduct', {id: productId}); 978 var favoriteTotal = (parseInt($('.favorite-header-total').html()) - 1); 979 $('.favorite-header-total').html(favoriteTotal); 980 } else{ 981 toastr.error(ret.info); 982 } 983 $favIcon.removeClass('pulse'); 984 } 985 }); 986 } 987 }; 988 989 $elements.click(function(e){ 990 991 var $favIcon = $(this); 992 993 e.preventDefault(); 994 e.stopPropagation(); 995 996 // Sakrivanje toltip-a, zato sto tooltip ostaje prikazan nakon sto se klikne na dugme cak i kad se menja slajd 997 $favIcon.popover('hide'); 998 $favIcon.tooltip('hide'); 999 1000 $favIcon.addClass('pulse'); 1001 if($favIcon.hasClass('active')){ 1002 unfavoriteProduct($favIcon); 1003 } else { 1004 favoriteProduct($favIcon); 1005 } 1006 }); 1007 }; 1008 1009 var handleLowerPriceProduct = function($elements){ 1010 1011 var lowerPrice = function($product){ 1012 if(!app.logged_in){ 1013 getLoginModal().modal('show'); 1014 } else if($('#product_has_comb').val() > 0 && $('#product_comb_id').val() <= 0){ 1015 toastr.error($('#product_no_comb_msg').val()); 1016 } else { 1017 $.ajax({ 1018 type: "POST", 1019 url: nb_active_page_url, 1020 data: { 1021 nbAjax: 1, 1022 nbTask: 'product_price_changes', 1023 flag: "yes", 1024 ajax: "yes", 1025 task: "add_product_price_changes", 1026 productId: $('#product_id').val(), 1027 combinationId: $('#product_comb_id').val(), 1028 }, 1029 contentType: "application/x-www-form-urlencoded;charset=UTF-8", 1030 dataType: 'json', 1031 success: function(ret) { 1032 if (ret.flag) { 1033 toastr.success(ret.info); 1034 refreshPriceChangesList(); 1035 } else{ 1036 toastr.info(ret.info); 1037 } 1038 } 1039 }); 1040 } 1041 }; 1042 1043 $elements.click(function(e){ 1044 e.preventDefault(); 1045 if(!$(this).hasClass('active')){ 1046 lowerPrice($(this)); 1047 } 1048 }); 1049 }; 1050 1051 var handleLowerPriceProductCombinations = function($elements){ 1052 1053 var lowerPriceCombinations = function($product){ 1054 1055 var products = []; 1056 var lowerpricecomb = ''; 1057 var $allCombinations = $('.product-details .product-attributes li'); 1058 $allCombinations.each(function(i){ 1059 $item = $(this); 1060 lowerpricecomb = $('#product_id').val()+'#'+$item.data('productsize-combid'); 1061 console.log(lowerpricecomb); 1062 products.push(lowerpricecomb); 1063 }); 1064 1065 if(!app.logged_in){ 1066 getLoginModal().modal('show'); 1067 } else if(products.length < 1){ 1068 toastr.error($('#product_no_comb_msg').val()); 1069 } else { 1070 1071 $.ajax({ 1072 type: "POST", 1073 url: nb_active_page_url, 1074 data: { 1075 nbAjax: 1, 1076 nbTask: 'product_price_changes', 1077 flag: "yes", 1078 ajax: "yes", 1079 task: "add_product_all_combinations_price_changes", 1080 products: products 1081 }, 1082 contentType: "application/x-www-form-urlencoded;charset=UTF-8", 1083 dataType: 'json', 1084 success: function(ret) { 1085 if (ret.flag) { 1086 toastr.success(ret.info); 1087 refreshPriceChangesList(); 1088 } else{ 1089 toastr.info(ret.info); 1090 } 1091 } 1092 }); 1093 } 1094 }; 1095 1096 $elements.click(function(e){ 1097 e.preventDefault(); 1098 if(!$(this).hasClass('active')){ 1099 lowerPriceCombinations($(this)); 1100 } 1101 }); 1102 }; 1103 1104 var handleBuyProductOnListing = function(){ 1105 1106 var $productItem = $('.product-item'); 1107 if(!$productItem.length) return; 1108 var addToCartPtoduct = function(){ 1109 1110 var $btn = $productItem.find('.buyButtonOnLists'); 1111 if (typeof element !== "undefined"){ 1112 $btn = $(element).find('.buyButtonOnLists'); 1113 } 1114 if(!$btn.length) return; 1115 var values = {}; 1116 1117 $btn.click(function(e){ 1118 e.preventDefault(); 1119 $btn = $(this); 1120 let eventId = generateEventId(); 1121 validate($btn, eventId); 1122 }); 1123 1124 $btn.bind('shop-button.reset', function(){ 1125 resetButton(); 1126 }); 1127 1128 var setValues = function($elements){ 1129 values = { 1130 productId: $elements.parents('.product-item').data('productid'), 1131 productHasComb: $elements.data('product-has-comb'),
1132 productCombId: $elements.data('product-comb-id'), 1133 size: $elements.data('product-size-name'), 1134 price: $elements.data('productprice'), 1135 quantity: $elements.data('product-quantity'), 1136 dataProductComment: $('#order-message').val(), 1137 errorMsg: $elements.data('product-no-comb-msg') 1138 }; 1139 }; 1140 1141 var validate = function($elements, eventId){ 1142 setValues($elements); 1143 startBouncingIcon(); 1144 1145 if(values.productHasComb > 0 && (!values.size && values.size !== 0)){ 1146 stopBouncingIcon(); 1147 $btn.html($btn.data('btn-text-select-size')) 1148 .removeClass('btn-success') 1149 .addClass('btn-danger'); 1150 } else { 1151 addAJAX($elements, eventId); 1152 } 1153 }; 1154 1155 var addAJAX = function($elements, eventId){ 1156 1157 $btn.attr('disabled', true); 1158 1159 $.ajax({ 1160 type: "POST", 1161 url: getCartPageUrl(), 1162 data: { 1163 ajax: 'yes', 1164 task: 'cartInsert', 1165 id: values.productId, 1166 combId: values.productCombId, 1167 amount: values.quantity, 1168 dataProductComment: values.dataProductComment, 1169 size: values.size 1170 }, 1171 contentType: "application/x-www-form-urlencoded;charset=UTF-8", 1172 dataType: 'json', 1173 success: function(ret) { 1174 console.log(values.dataProductComment); 1175 if (ret.flag){ 1176 var productValues = { 1177 id: values.productId, 1178 combId: values.productCombId, 1179 amount: values.quantity, 1180 size: values.size 1181 } 1182 stopBouncingIcon($btn.data('btn-text-addedtocart')); 1183 addSuccess(values.quantity); 1184 nbshopJS.CustomEventTrigger('cartButtonClick', { 1185 ...productValues, 1186 event_id: eventId 1187 }); 1188 setTimeout(function () { 1189 $btn.removeAttr('disabled'); 1190 }, 1000) 1191 window.localStorage.setItem("addedToCartProduct", JSON.stringify(productValues)); 1192 }else{ 1193 stopBouncingIcon($btn.data('btn-text-addtocart')); 1194 addFailed(ret.info); 1195 setTimeout(function () { 1196 $btn.removeAttr('disabled'); 1197 }, 1000) 1198 } 1199 } 1200 }); 1201 }; 1202 1203 var startBouncingIcon = function(){ 1204 $btn.addClass('icon-bounce'); 1205 $btn.html('...'); 1206 }; 1207 1208 var stopBouncingIcon = function(msg){ 1209 $btn.removeClass('icon-bounce'); 1210 $btn.html(msg).removeClass('btn-danger').addClass('btn-success'); 1211 }; 1212 1213 var resetButton = function(){ 1214 stopBouncingIcon(); 1215 $btn.html($btn.data('btn-text-addtocart')); 1216 }; 1217 1218 var addSuccess = function(qnt){ 1219 $btn.addClass('btn-activated'); 1220 $btn.addClass('cart-increased'); 1221 $btn.attr('data-content', '+'+qnt); 1222 1223 setTimeout(function(){ 1224 $btn.removeClass('btn-activated'); 1225 }, 1000); 1226 1227 setTimeout(function(){ 1228 $btn.html($btn.data('btn-text-addtocart')); 1229 $btn.attr('data-content', ''); 1230 $btn.removeClass('cart-increased'); 1231 $btn.removeClass('btn-success.autocomplete-button'); 1232 }, 4000); 1233 1234 refreshMinCartToggle('refreshmincarttoggle', 'no'); 1235 if($('body').hasClass('uc-cart')){ 1236 reloadCartOnePage(); 1237 } 1238 }; 1239 1240 var addFailed = function(msg){ 1241 $btn.html($btn.data('btn-text-no-state')) 1242 .removeClass('btn-success') 1243 .addClass('btn-danger');
1244 toastr.info(msg); 1245 }; 1246 1247 //setValues(); 1248 }; 1249 1250 var addAsWantedOnProductListing = function(productId, attrCombId){ 1251 1252 if(!app.logged_in){ 1253 getLoginModal().modal('show'); 1254 return; 1255 } 1256 1257 $.ajax({ 1258 type: "POST", 1259 url: nb_active_page_url, 1260 data: { 1261 nbAjax: 1, 1262 nbTask: 'product_available_sizes', 1263 flag: 'yes', 1264 ajax: 'yes', 1265 task: 'add_product_available_sizes', 1266 productId: productId, 1267 combinationId: attrCombId 1268 }, 1269 contentType: "application/x-www-form-urlencoded;charset=UTF-8", 1270 dataType: 'json', 1271 success: function(ret) { 1272 if(ret.flag) { 1273 toastr.success(ret.info); 1274 }else{ 1275 toastr.info(ret.info); 1276 } 1277 } 1278 }); 1279 }; 1280 1281 var selectSize = function($elements){ 1282 1283 if(!$elements.length) return; 1284 1285 $elements.off('click'); 1286 $elements.click(function(){ 1287 $atribute = $(this); 1288 1289 let attrPrice = $atribute.data('productsize-price'); 1290 let loyaltyPrice = $atribute.data('productsize-loyalty-price'); 1291 1292 $atribute.parents('.product-sizes').find('.item').removeClass('active'); 1293 $atribute.addClass('active'); 1294 1295 var $btnBuy = $(this).parents('.product-item').find('.buyButtonOnLists'); 1296 1297 if($atribute.hasClass('disabled')){ 1298 addAsWantedOnProductListing($atribute.parents('.product-item').data('productid'), $atribute.data('productsize-combid')); 1299 return; 1300 }; 1301 1302 $btnBuy.data('product-size-name', $atribute.data('productsize-name')); 1303 $btnBuy.data('product-comb-id', $atribute.data('productsize-combid')); 1304 1305 if($btnBuy.data('product-comb-id') > 0){ 1306 $btnBuy.removeClass('btn-danger'); 1307 $btnBuy.html($btnBuy.data('btn-text-addtocart')); 1308 }; 1309 1310 if(attrPrice) { 1311 let priceValue = $atribute.closest('.product-item').find('.prices-wrapper .current-price .value'); 1312 if(priceValue.length !== 0) { 1313 priceValue.text(attrPrice); 1314 } 1315 } 1316 1317 if(loyaltyPrice) { 1318 let loyaltyPriceValue = $atribute.closest('.product-item').find('.loyalty-price .loyalty-price-value'); 1319 if(loyaltyPriceValue.length !== 0){ 1320 loyaltyPriceValue.text(loyaltyPrice); 1321 } 1322 } 1323 1324 }); 1325 }; 1326 1327 1328 1329 1330 selectSize($('.product-item .product-sizes .item')); 1331 addToCartPtoduct(); 1332 }; 1333 1334 var handleProductDetails = function(){ 1335 1336 var $productDetails = $('.product-details'), 1337 id = $('#product_id').val(), 1338 $combId = $('#product_comb_id'), 1339 hasComb = $('#product_has_comb').val(), 1340 $size = $('#product_size'), 1341 $quantity = $('#product_quantity'), 1342 errorMsg = $('#product_no_comb_msg').val(), 1343 $productPriceQueryCombinationId = $('#product_price_query_combination_id'), 1344 $productPriceQueryCombinationName = $('#product_price_query_combinationName'), 1345 $productCharacteristicValue = $('#product_characteristic_value'), 1346 hasCharacteristic = $('#product_has_characteristic').val() 1347 ; 1348 1349 if(!$productDetails.length) return; 1350 1351 var addToCart = function(){ 1352 1353 var $btn = $productDetails.find('.shop-button-qnt'); 1354 var values = {}; 1355 $btn.click(function(){ 1356 cantbuymodal = $('#modal_buy'); 1357 if($('.shop-button-qnt.no-buyy').length){ 1358 cantbuymodal.modal('show'); 1359 return false 1360 } 1361 $btn = $(this); 1362 let eventId = generateEventId(); 1363 validate(eventId); 1364 }); 1365 1366 $btn.bind('shop-button.reset', function(){ 1367 resetButton(); 1368 }); 1369 1370 var setValues = function(){ 1371 values = { 1372 productId: id,
1373 productCombId: $combId.val(), 1374 productHasComb: hasComb, 1375 size: $size.val(), 1376 quantity: $quantity.val(), 1377 productCharacteristicValue: $productCharacteristicValue.val(), 1378 productHasCharacteristic: hasCharacteristic, 1379 dataProductComment: $('#order-message').val(), 1380 errorMsg: errorMsg, 1381 personalizationId: $('#savedPersonalizations .item.active').data('saved-personalization-id') 1382 }; 1383 }; 1384 1385 var validate = function(eventId){ 1386 setValues(); 1387 startBouncingIcon(); 1388 if(values.productHasCharacteristic > 0 && values.productCharacteristicValue == "" && $productCharacteristicValue.prop('required')){ 1389 stopBouncingIcon(); 1390 $(".product-attributes-wrapper").addClass("select-size-error"); 1391 $btn.html($btn.data('btn-text-select-characteristic')) 1392 .removeClass('btn-success') 1393 .addClass('btn-danger'); 1394 } else if(values.productHasComb > 0 && !values.size){ 1395 stopBouncingIcon(); 1396 $(".product-attributes-wrapper").addClass("select-size-error"); 1397 $btn.html($btn.data('btn-text-select-size')) 1398 .removeClass('btn-success') 1399 .addClass('btn-danger'); 1400 } else { 1401 addAJAX(eventId); 1402 } 1403 }; 1404 1405 var addAJAX = function(eventId){ 1406 $.ajax({ 1407 type: "POST", 1408 url: getCartPageUrl(), 1409 data: { 1410 ajax: 'yes', 1411 task: 'cartInsert', 1412 id: values.productId, 1413 combId: values.productCombId, 1414 amount: values.quantity, 1415 size: values.size, 1416 dataProductComment: values.dataProductComment, 1417 productCharacteristicValue: values.productCharacteristicValue, 1418 personalizationId: values.personalizationId 1419 }, 1420 contentType: "application/x-www-form-urlencoded;charset=UTF-8", 1421 dataType: 'json', 1422 success: function(ret) { 1423 console.log(values.dataProductComment); 1424 let sendObj = {}; 1425 sendObj.id = values.productId; 1426 sendObj.combId = values.productCombId; 1427 sendObj.amount = values.quantity; 1428 sendObj.size = values.size; 1429 1430 if (ret.flag){ 1431 //stopBouncingIcon($btn.data('btn-text-addedtocart')); 1432 addSuccess(values.quantity); 1433 //nbshopJS.CustomEventTrigger('cartButtonClick',ret); 1434 nbshopJS.CustomEventTrigger('cartButtonClick', { 1435 ...sendObj, 1436 event_id: eventId 1437 }); //nbshopJS.modalAfterAddToCartProducts(values.productId); 1438 window.localStorage.setItem("addedToCartProduct", JSON.stringify(sendObj)); 1439 }else{ 1440 nbshopJS.CustomEventTrigger('cartButtonClickFailed', ret.info); 1441 stopBouncingIcon($btn.data('btn-text-addtocart')); 1442 addFailed(ret.info,ret.requirePaternQuantity); 1443 } 1444 } 1445 }); 1446 }; 1447 1448 var startBouncingIcon = function(){ 1449 //$btn.addClass('icon-bounce'); 1450 // $btn.html('...'); 1451 $btn.html('<span class="nb-dot-flashing"></span> '); 1452 }; 1453 1454 var stopBouncingIcon = function(msg){ 1455 //$btn.removeClass('icon-bounce'); 1456 $btn.html(msg).removeClass('btn-danger').addClass('btn-success'); 1457 }; 1458 1459 var resetButton = function(){ 1460 stopBouncingIcon(); 1461 $btn.html($btn.data('btn-text-addtocart')); 1462 }; 1463 1464 var addSuccess = function(qnt){ 1465 $btn.addClass('btn-activated'); 1466 $btn.addClass('cart-increased'); 1467 $btn.attr('data-content', '+'+qnt); 1468/* 1469 setTimeout(function(){ 1470 $btn.removeClass('btn-activated'); 1471 }, 1000); 1472 1473 setTimeout(function(){ 1474 $btn.html($btn.data('btn-text-addtocart')); 1475 $btn.attr('data-content', ''); 1476 $btn.removeClass('cart-increased'); 1477 }, 4000);*/ 1478 1479 refreshMinCartToggle('refreshmincarttoggle', 'no'); 1480 }; 1481 1482 var requirePaternQuantity = false;
1483 var addFailed = function(msg,requirePaternQuantity){ 1484 if(!requirePaternQuantity){ 1485 $btn.html($btn.data('btn-text-no-state')); 1486 } 1487 $btn.removeClass('btn-success').addClass('btn-danger'); 1488 toastr.info(msg); 1489 }; 1490 1491 if($('#product_quantity').length !== 0) { 1492 $('#product_quantity').on( "change keyup", function() { 1493 resetButton(); 1494 }); 1495 } 1496 setValues(); 1497 }; 1498 1499 //stop video on modal close 1500 $("#product_video_modal").on('hidden.bs.modal', function (e) { 1501 $("#product_video_modal iframe").attr("src", $("#product_video_modal iframe").attr("src")); 1502 }); 1503 1504 var setProductPrice = function(price){ 1505 $('.product-price .product-price-value').text(price); 1506 }; 1507 1508 var setProductLoyaltyPrice = function(price){ 1509 if(price){ 1510 $('.product-price-loyalty .loyalty-price-value').text(price); 1511 } 1512 }; 1513 1514 var setCombinationQuantitySegment = function(combId){ 1515 $('.combination-quantity-segment').addClass("hidden"); 1516 $('#combination-quantity-segment-'+combId).removeClass('hidden'); 1517 }; 1518 1519 var setCombinationQuantity = function(combId){ 1520 $('.combination-quantity-wrapper').addClass("hidden"); 1521 $('#combination-quantity-wrapper-'+combId).removeClass('hidden'); 1522 }; 1523 1524 var setProductPriceWithoutDiscount = function(hasDiscount, price, priceWithoutDiscount, attrShowBasePrice){ 1525 1526 var formatPriceWithoutDiscount = 0; 1527 var formatPrice = 0; 1528 1529 if(typeof priceWithoutDiscount == "undefined" || typeof price == "undefined"){ 1530 return false; 1531 } 1532 1533 if(typeof priceWithoutDiscount == "number"){ 1534 priceWithoutDiscount = priceWithoutDiscount.toString(); 1535 } 1536 1537 if(typeof price == "number"){ 1538 price = price.toString(); 1539 } 1540 1541 var flagControlShowBasePrice = false; 1542 if(typeof attrShowBasePrice !== "undefined"){ 1543 flagControlShowBasePrice = true; 1544 } 1545 1546 if(priceWithoutDiscount.indexOf(".") !== -1 || priceWithoutDiscount.indexOf(",") !== -1){ 1547 var formatPriceWithoutDiscount = priceWithoutDiscount.replace(".", ""); 1548 formatPriceWithoutDiscount = formatPriceWithoutDiscount.replace(",", ""); 1549 formatPriceWithoutDiscount = parseFloat(formatPriceWithoutDiscount); 1550 }else{ 1551 formatPriceWithoutDiscount = parseFloat(priceWithoutDiscount); 1552 } 1553 1554 if(price.indexOf(".") !== -1 || price.indexOf(",") !== -1) { 1555 formatPrice = price.replace(".", ""); 1556 formatPrice = formatPrice.replace(",", ""); 1557 formatPrice = parseFloat(formatPrice); 1558 }else{ 1559 formatPrice = parseFloat(price); 1560 } 1561 1562 var priceWithoutDiscountShow = formatPriceWithoutDiscount - formatPrice; 1563 1564 if(flagControlShowBasePrice){ 1565 if(attrShowBasePrice == 1 && formatPriceWithoutDiscount > formatPrice && (priceWithoutDiscountShow) > 0){ 1566 $('.product-prev-price.product-pricewithoutdiscount').removeClass('hide'); 1567 }else{ 1568 $('.product-prev-price.product-pricewithoutdiscount').addClass('hide'); 1569 } 1570 }else{ 1571 if(formatPriceWithoutDiscount > formatPrice && (priceWithoutDiscountShow) > 0){ 1572 $('.product-prev-price.product-pricewithoutdiscount').removeClass('hide'); 1573 }else{ 1574 $('.product-prev-price.product-pricewithoutdiscount').addClass('hide'); 1575 } 1576 } 1577 1578 $('.product-prev-price .product-price-without-discount-value:not(.price-converted)').text(priceWithoutDiscount); 1579 1580 }; 1581 1582 var setProductOldPrice = function(hasDiscount, showOldPrice, price, priceWithoutDiscount, oldPrice){ 1583 1584 var formatPriceWithoutDiscount = 0; 1585 var formatPrice = 0; 1586 1587 if(typeof priceWithoutDiscount == "undefined" || typeof price == "undefined"){ 1588 return false;
1589 } 1590 1591 if(typeof priceWithoutDiscount == "number"){ 1592 priceWithoutDiscount = priceWithoutDiscount.toString(); 1593 } 1594 1595 if(typeof price == "number"){ 1596 price = price.toString(); 1597 } 1598 1599 if(priceWithoutDiscount.indexOf(".") !== -1){ 1600 formatPriceWithoutDiscount = priceWithoutDiscount.replace(".", ""); 1601 formatPriceWithoutDiscount = formatPriceWithoutDiscount.replace(",", ""); 1602 formatPriceWithoutDiscount = parseFloat(formatPriceWithoutDiscount); 1603 }else{ 1604 formatPriceWithoutDiscount = parseFloat(priceWithoutDiscount); 1605 } 1606 1607 if(price.indexOf(".") !== -1) { 1608 formatPrice = price.replace(".", ""); 1609 formatPrice = formatPrice.replace(",", ""); 1610 formatPrice = parseFloat(formatPrice); 1611 }else{ 1612 formatPrice = parseFloat(price); 1613 } 1614 1615 if(hasDiscount == 1 && formatPriceWithoutDiscount > formatPrice){ 1616 $('.product-prev-price.product-oldprice').addClass('product-prev-price-third'); 1617 }else{ 1618 $('.product-prev-price.product-oldprice').removeClass('product-prev-price-third'); 1619 } 1620 1621 if(showOldPrice == 1){ 1622 $('.product-prev-price.product-oldprice').removeClass('hide'); 1623 }else{ 1624 $('.product-prev-price.product-oldprice').addClass('hide'); 1625 } 1626 1627 $('.product-prev-price.product-oldprice .product-oldprice-value').text(oldPrice); 1628 }; 1629 1630 var setProductPriceWithoutTax = function(showPriceWithoutTax,priceWithoutTax){ 1631 1632 if(typeof showPriceWithoutTax == "undefined" || typeof priceWithoutTax == "undefined"){ 1633 return false; 1634 } 1635 1636 if(showPriceWithoutTax == 1){ 1637 $('.current-price-without-tax product-price-without-tax').removeClass('hide'); 1638 }else{ 1639 $('.current-price-without-tax product-price-without-tax').addClass('hide'); 1640 } 1641 1642 $('.current-price-without-tax product-price-without-tax .product-price-without-tax-value').text(showPriceWithoutTax); 1643 }; 1644 1645 var setDiscount = function(showDiscount, showCaptionPlusconnector, discount, oldDiscount){ 1646 1647 if(showDiscount == 1){ 1648 $('.products-detail-wrapper .caption-discount').removeClass('hide'); 1649 1650 if(showCaptionPlusconnector == 1){ 1651 $('.products-detail-wrapper .caption-discount .caption-plusconnector').removeClass('hide'); 1652 }else{ 1653 $('.products-detail-wrapper .caption-discount .caption-plusconnector').addClass('hide'); 1654 } 1655 }else{ 1656 $('.products-detail-wrapper .caption-discount').addClass('hide'); 1657 } 1658 1659 if(showCaptionPlusconnector == 1 && oldDiscount != ''){ 1660 $('.products-detail-wrapper .caption-discount').addClass('sum-discount'); 1661 $('.products-detail-wrapper .caption-discount .discount-old-wraper').removeClass('hide'); 1662 }else{ 1663 $('.products-detail-wrapper .caption-discount').removeClass('sum-discount'); 1664 $('.products-detail-wrapper .caption-discount .discount-old-wraper').addClass('hide'); 1665 } 1666 1667 $('.products-detail-wrapper .caption-discount .text-old-discount .text-old-discount-value').text(oldDiscount); 1668 $('.products-detail-wrapper .caption-discount .text-discount-value').text(discount); 1669 }; 1670 1671 var seCombinationCode = function(showCombinationCode, combinationCode){ 1672 1673 var containerId = '#combination-code-container'; 1674 var valueId = '#combination-code-preview-value'; 1675 1676 if(showCombinationCode == 1){ 1677 $(containerId).show(); 1678 $(valueId).html(combinationCode); 1679 } 1680 }; 1681 1682 var setCombinationBarCode = function(combinationBarcode){ 1683
1684 var containerCombinationBarcodeId = '#product-barcode-container'; 1685 var combinationBarcodevalueId = '#product-barcode-preview-value'; 1686 1687 if($(containerCombinationBarcodeId).length > 0 && typeof combinationBarcode != "undefined" && combinationBarcode != ''){ 1688 $(containerCombinationBarcodeId).show(); 1689 $(combinationBarcodevalueId).html(combinationBarcode); 1690 } 1691 }; 1692 1693 var setProductPriceSaved = function(priceSaved,hasDiscount){ 1694 1695 var formatPriceSavedValue = 0; 1696 1697 if(typeof priceSaved == "undefined"){ 1698 return false; 1699 } 1700 1701 if(typeof priceSaved == "number"){ 1702 priceSaved = priceSaved.toString(); 1703 } 1704 1705 1706 if(priceSaved.indexOf(".") !== -1) { 1707 formatPriceSavedValue = priceSaved.replace(".", ""); 1708 formatPriceSavedValue = formatPriceSavedValue.replace(",", ""); 1709 formatPriceSavedValue = parseFloat(formatPriceSavedValue); 1710 }else{ 1711 formatPriceSavedValue = parseFloat(priceSaved); 1712 } 1713 1714 if(formatPriceSavedValue > 0 && hasDiscount == 1){ 1715 $('.product-price-wrapper .product-price-saved').removeClass('hide'); 1716 }else{ 1717 $('.product-price-wrapper .product-price-saved').addClass('hide'); 1718 } 1719 1720 $('.product-price-wrapper .product-price-saved .product-price-saved-value').text(priceSaved); 1721 }; 1722 1723 function setPriceConvert(flagPriceConver, priceConvert, currencyConvert){ 1724 1725 if((typeof priceConvert == "undefined" || typeof currencyConvert == "undefined")){ 1726 return false; 1727 } 1728 1729 if(flagPriceConver == 1){ 1730 var formatPriceConvertValue = priceConvert.replace(".", ""); 1731 formatPriceConvertValue = formatPriceConvertValue.replace(",", "."); 1732 formatPriceConvertValue = parseFloat(formatPriceConvertValue); 1733 1734 $('.product-detail-wrapper .product-convert-price .product-price-convert-value').text(priceConvert); 1735 $('.product-detail-wrapper .product-convert-price .product-currency-convert-value').text(currencyConvert); 1736 1737 1738 } 1739 } 1740 1741 var productQuantity = function(){ 1742 1743 var $productQuantity = $('.product-quantity-input'); 1744 1745 console.log($productQuantity.hasClass("quantity-initialized")) 1746 1747 if($productQuantity.hasClass("quantity-initialized")) { 1748 return; 1749 } 1750 1751 $productDetails.find('.product-quantity-arrows i').click(function(){ 1752 var $arrow = $(this), 1753 $productQuantity = $('.product-quantity-input'), 1754 $productQuantityHelper = $('.product-quantity-helper-pre'), 1755 productQuantityVal = parseInt($productQuantity.val()); 1756 1757 $productQuantity.removeClass('ease-slow active-down active-up'); 1758 $productQuantityHelper.removeClass('active ease-slow'); 1759 1760 if($arrow.hasClass('quantity-up')){ 1761 var productQuantityNewVal = productQuantityVal+1; 1762 $productQuantity.addClass('active-up'); 1763 1764 } else if($arrow.hasClass('quantity-down')){ 1765 if(productQuantityVal == 1) return; 1766 var productQuantityNewVal = productQuantityVal-1; 1767 1768 //$productQuantityHelper = $('.product-quantity-helper-post'); 1769 //$productQuantity.addClass('active-down'); 1770 } 1771 1772 $productQuantity.addClass('ease-slow'); 1773 $productQuantityHelper.html(productQuantityNewVal).addClass('active ease-slow'); 1774 1775 setTimeout(function(){ 1776 $productQuantityHelper.removeClass('active ease-slow'); 1777 $productQuantity.removeClass('active-up active-down ease-slow'); 1778 $productQuantity.val(productQuantityNewVal); 1779 var quantityNb = $('.product-quantity-helper-pre').text(); 1780 $('.product-detail-buy .title span.packaging-quantity').text(quantityNb); 1781 }, 10); 1782 }); 1783 $('#product_quantity').change(function () { 1784 var quantityNb = $('#product_quantity').val(); 1785 $('.product-detail-buy .title span.packaging-quantity').text(quantityNb); 1786 }); 1787 }; 1788 1789 var productAttribute = function(){ 1790 1791 var setSelectedAttr = function(sizeName, price, combId, attrShowDiscount, attrShowCaptionPlusconnector, attrDiscount, attrOldDiscount, priceWithoutDiscount, showOldPrice, oldPrice, priceSaved, showCombinationCode, combinationCode, flagPriceConver, priceConvert, currencyConvert, showPriceWithoutTax, priceWithoutTax, attrShowBasePrice, combinationBarc
1791ode, attrloyaltyPrice){ 1792 $size.val(sizeName); 1793 $combId.val(combId); 1794 setProductPrice(price); 1795 setProductLoyaltyPrice(attrloyaltyPrice); 1796 setProductPriceWithoutDiscount(attrShowDiscount, price, priceWithoutDiscount, attrShowBasePrice); 1797 setProductOldPrice(attrShowDiscount, showOldPrice, price, priceWithoutDiscount, oldPrice); 1798 setProductPriceWithoutTax(showPriceWithoutTax,priceWithoutTax); 1799 setProductPriceSaved(priceSaved,attrShowDiscount); 1800 setDiscount(attrShowDiscount, attrShowCaptionPlusconnector, attrDiscount, attrOldDiscount); 1801 seCombinationCode(showCombinationCode, combinationCode); 1802 $productPriceQueryCombinationId.val(combId); 1803 $productPriceQueryCombinationName.val(sizeName); 1804 setPriceConvert(flagPriceConver, priceConvert, currencyConvert); 1805 setCombinationQuantitySegment(combId); 1806 setCombinationQuantity(combId); 1807 setCombinationBarCode(combinationBarcode); 1808 }; 1809 1810 var addAsWanted = function(attrCombId){ 1811 1812 if(!app.logged_in){ 1813 getLoginModal().modal('show'); 1814 return; 1815 } 1816 1817 $.ajax({ 1818 type: "POST", 1819 url: nb_active_page_url, 1820 data: { 1821 nbAjax: 1, 1822 nbTask: 'product_available_sizes', 1823 flag: 'yes', 1824 ajax: 'yes', 1825 task: 'add_product_available_sizes', 1826 productId: $('#product_id').val(), 1827 combinationId: attrCombId 1828 }, 1829 contentType: "application/x-www-form-urlencoded;charset=UTF-8", 1830 dataType: 'json', 1831 success: function(ret) { 1832 if(ret.flag) { 1833 toastr.success(ret.info); 1834 }else{ 1835 toastr.info(ret.info); 1836 } 1837 } 1838 }); 1839 1840 }; 1841 1842 $('#product_characteristic_value').change(function(){ 1843 $productDetails.find('.shop-button-qnt').trigger('shop-button.reset'); 1844 }); 1845 1846 if(!$productDetails.hasClass('quick-view-category-wrapper')){ 1847 1848 var $productAttrs = $productDetails.find('.product-attributes'); 1849 1850 $productAttrs.find('li').click(function(){ 1851 1852 var $attrClicked = $(this), 1853 attrName = $attrClicked.data('productsize-name'), 1854 attrPrice = $attrClicked.data('productsize-price'), 1855 attrShowDiscount = $attrClicked.data('productsize-show-dicount'), 1856 attrShowCaptionPlusconnector = $attrClicked.data('productsize-show-caption-plusconnector'), 1857 attrDiscount = $attrClicked.data('productsize-dicount'), 1858 attrOldDiscount = $attrClicked.data('productsize-olddicount'), 1859 attrShowBasePrice = $attrClicked.data('productsize-show-base-price'), 1860 attrPriceWithoutDiscount = $attrClicked.data('productsize-price-without-discount'), 1861 attrShowOldPrice = $attrClicked.data('productsize-show-oldprice'), 1862 attrOldPrice = $attrClicked.data('productsize-oldprice'), 1863 attrShowPriceWithoutTax = $attrClicked.data('productsize-show-price-without-tax'), 1864 attrPriceWithoutTax = $attrClicked.data('productsize-price-without-tax'), 1865 priceSaved = $attrClicked.data('productsize-pricesaved'), 1866 attrCombId = $attrClicked.data('productsize-combid'), 1867 attrLabel = $attrClicked.closest('.product-attributes-wrapper').find('label'), 1868 attrloyaltyPrice = $attrClicked.data('productsize-loyalty-price'); 1869 if(!$attrClicked.hasClass('disabled')){ 1870 attrLabel.find('span').remove(); 1871 attrLabbelText = attrLabel.html(); 1872 attrLabel.html(attrLabbelText+"<span>"+attrName+"</span>"); 1873 } 1874 showCombinationCode = $attrClicked.data('show-combination-code'); 1875 combinationCode = $attrClicked.data('combination-code');
1876 combinationBarcode = $attrClicked.data('combination-barcode'); 1877 attrproductsizeFlagPriceConvert = $attrClicked.data('productsize-flag-price-convert'); 1878 attrproductsizePriceConvert = $attrClicked.data('productsize-price-convert'); 1879 attrproductsizeCurrencyConvert = $attrClicked.data('productsize-currency-convert'); 1880 1881 if($attrClicked.hasClass('disabled') && $attrClicked.parents('.no-disable-click').length){ 1882 return; 1883 } 1884 1885 if($attrClicked.hasClass('disabled') && !$attrClicked.hasClass('hasChild')){ 1886 addAsWanted(attrCombId); 1887 return; 1888 } 1889 1890 if($attrClicked.hasClass('disabled') && $attrClicked.hasClass('second-level')){ 1891 addAsWanted(attrCombId); 1892 return; 1893 } 1894 1895 if(!$productAttrs.hasClass('multiple-choice')){ 1896 $productAttrs.find('li').removeClass('active'); 1897 } 1898 1899 if(!$attrClicked.hasClass('disabled')){ 1900 $attrClicked.hasClass('multiple-choice') ? $attrClicked.removeClass('active') : ''; 1901 1902 $attrClicked.hasClass('active') 1903 ? $attrClicked.removeClass('active') 1904 : $attrClicked.addClass('active'); 1905 } 1906 1907 if($attrClicked.hasClass('active')){ 1908 $productDetails.find('.shop-button-qnt').trigger('shop-button.reset'); 1909 } 1910 1911 setSelectedAttr(attrName, attrPrice, attrCombId, attrShowDiscount, attrShowCaptionPlusconnector, attrDiscount, attrOldDiscount, attrPriceWithoutDiscount, attrShowOldPrice, attrOldPrice, priceSaved, showCombinationCode, combinationCode, attrproductsizeFlagPriceConvert, attrproductsizePriceConvert, attrproductsizeCurrencyConvert, attrShowPriceWithoutTax, attrPriceWithoutTax, attrShowBasePrice, combinationBarcode, attrloyaltyPrice); 1912 1913 if($attrClicked.parent().hasClass('item-price-v2')){ 1914 var addToCartButton = $('.shop-button-qnt'), 1915 btnTextAddedtocart = $('.shop-button-qnt').data('btn-text-addedtocart'), 1916 btnTextAddtocart = $('.shop-button-qnt').data('btn-text-addtocart'), 1917 btnTextNoState = $('.shop-button-qnt').data('btn-text-no-state'), 1918 $attrClickedButton = $attrClicked.find('.buyButtonOnLists'); 1919 addToCartButton.click(); 1920 $attrClicked.removeClass('active'); 1921 window.addEventListener('cartButtonClick', function (e){ 1922 $attrClickedButton.text(btnTextAddedtocart).addClass('btn-successed'); 1923 setTimeout(function () { 1924 $attrClickedButton.text(btnTextAddtocart).removeClass('btn-successed'); 1925 }, 3000); 1926 }); 1927 window.addEventListener('cartButtonClickFailed', function (e){ 1928 $attrClickedButton.text(btnTextNoState).addClass('btn-danger'); 1929 }); 1930 1931 } 1932 }); 1933 1934 //only one active size is avaliable, check it automatically 1935 if($productAttrs.find('> li').length === 1 && $productAttrs.find('> li:not(.disabled)').length === 1 && !$productAttrs.hasClass('item-price-v2')){ 1936 $productAttrs.find('> li:not(.disabled)').click(); 1937 } 1938 1939 } 1940 1941 }; 1942 1943 var productImages = function(){ 1944 1945 var $images = $('.product-main'); 1946 var indexID; 1947 1948 1949 var videoId; 1950 var api; 1951 var flowPlayerFlag = false; 1952 if($("#item-flowplayery").length != 0 && flowplayeryToken != '') { 1953 flowPlayerFlag = true; 1954 videoId = $('#item-flowplayery').data('video-id'); 1955 api = flowplayer('#item-flowplayery', { 1956 "src" : videoId, 1957 "token" : flowplayeryToken, 1958 "autoplay" : true, 1959 "muted" : true, 1960 "loop" : true, 1961 "ui" : flowplayer.ui.NO_CONTROLS 1962 }); 1963 } 1964 1965 function mainSlider(){ 1966 var mainImgNoSlider = ''; 1967 if($(window).width() < 768){ 1968 mainImgNoSlider = ", .product-images-gallery .slider-init"; 1969 } 1970 $navigation = $('.slider.product-main, .product-images-gallery').find('.slider-navigation-absolute'); 1971 $slider = $('.product-main.slider .slider-init'+mainImgNoSlider); 1972 1973 $slider.on('init', function(event, slick){ 1974 setTimeout(function(){ 1975 var itemVideo = $('.item-flowplayery'); 1976 var MainSldierProduct = $('.slider.product-main'); 1977 var MainSldierProductHeight = MainSldierProduct.height(); 1978 itemVideo.height(MainSldierProductHeight); 1979 },1000); 1980 }); 1981 1982 $('.volume-icons-wrapper').on('click', function(){ 1983 api.toggleMute(); 1984 $('.volume-icons-wrapper .fa-volume-off').toggleClass('hidden'); 1985 $('.volume-icons-wrapper .fa-volume-up').toggleClass('hidden'); 1986 }); 1987 1988 $slider.nbHandleSlider({ 1989 speed: 1, 1990 appendArrows: $navigation, 1991 prevArrow: '<div class="slider-arrow slider-prev"><i class="fa fa-angle-left" aria-hidden="true"></i></div>', 1992 nextArrow: '<div class="slider-arrow slider-next"><i class="fa fa-angle-right" aria-hidden="true"></i></div>', 1993 arrows: true, 1994 asNavFor: '.product-images-thumbs .slider-init,.product-images-thumbs-vertical .slider-init', 1995 responsive: [ 1996 {breakpoint: 768, settings: { dots: true}} 1997 ] 1998 }); 1999 2000 if(flowPlayerFlag){ 2001 var itemVideo = $('.item-flowplayery'); 2002 var MainSldierProduct = $('.slider.product-main'); 2003 var MainSldierProductHeight = MainSldierProduct.height(); 2004 $slider.on('afterChange', function(event, slick, currentSlide) { 2005 if($('.product-main .slider-init .item.slick-current').hasClass('item-flowplayery')){ 2006 itemVideo.height(MainSldierProductHeight); 2007 api.togglePlay(true); 2008 } else { 2009 api.pause(true); 2010 } 2011 }); 2012 } 2013 2014 $(".slider.product-main .item").click(function(){ 2015 indexID = $('.slider.product-main .slick-current img').data("index"); 2016 }); 2017 2018 $(".product-images-gallery .item .img-wrapper").click(function(){ 2019 indexID = $(this).data("index"); 2020 $('.fullscreen > .slider-init').slick('slickGoTo', indexID); 2021 }); 2022 2023 }; 2024 2025 // Fullscreen slider 2026 var fullscreenSlider = function(){ 2027 2028 var $fullscreenWrapper = $('.fullscreen'), 2029 $fullscreenSlider = $('.fullscreen > .slider-init'), 2030 $zoomOpenBtn = $('.product-images-zoom-open, .slider.product-main .item:not(.video,.item-flowplayery), .product-images-gallery .item:not(.video,.item-flowplayery) .img-wrapper'), //.slider.product-main .item 2031 $zoomCloseBtn = $('.fullscreen .close'), 2032 $thumbsFullscreenSlider = $('.product-images-thumbs-vertical-fullscreen .slider-init'); 2033 var imgWrapper = $('.fullscreen > .slider-init .img-wrapper'); 2034 2035 if(!$fullscreenWrapper.length) return; 2036 2037 //Fullscreen slider
2038 var $navigation = $('.fullscreen > .slider-navigation-absolute'); 2039 2040 $fullscreenSlider.handleSlider({ 2041 arrows: false, 2042 fade:true, 2043 appendArrows: $navigation, 2044 prevArrow: '<div class="slider-arrow slider-prev"><i class="fa fa-angle-left" aria-hidden="true"></i></div>', 2045 nextArrow: '<div class="slider-arrow slider-next"><i class="fa fa-angle-right" aria-hidden="true"></i></div>' 2046 }); 2047 2048 $(".fullscreen").click(function(){ 2049 indexID = $('.slider-init.fscrren .slick-current img').data("index"); 2050 }); 2051 2052 imgWrapper.click(function(){ 2053 closeZoom(); 2054 }).children().click(function(e) { 2055 return false; 2056 }); 2057 2058 var thumbsItems = $('.product-images').data('slider-items'); 2059 if(typeof(thumbsItems) == 'undefined' || thumbsItems == null || thumbsItems == ""){ 2060 thumbsItems = 4; 2061 } 2062 2063 2064 //Fullscreen slider thumbs 2065 $thumbsFullscreenSlider.handleSlider({ 2066 speed: 200, 2067 slidesToShow: thumbsItems, 2068 vertical: true, 2069 arrows: true, 2070 focusOnSelect: true, 2071 appendArrows: $('.product-images-thumbs-vertical-fullscreen .slider-navigation'), 2072 prevArrow: '<div class="slider-arrow slider-prev"><i class="fa fa-angle-left" aria-hidden="true"></i></div>', 2073 nextArrow: '<div class="slider-arrow slider-next"><i class="fa fa-angle-right" aria-hidden="true"></i></div>', 2074 asNavFor: '.slider-init.fscrren, .product-images-thumbs .slider-init' 2075 }); 2076 2077 2078 var openZoom = function(){ 2079 if(app.width() <= app.mobileBreakpoint) return; 2080 2081 //goto(mainSliderInstance.getCurrentIndex()); 2082 2083 $fullscreenWrapper.addClass('loaded').css('height', (app.height()-$('.header').outerHeight(true)-30)+"px"); 2084 $fullscreenWrapper.addClass('loaded').css('height', (app.height()-70)+"px"); 2085 $fullscreenWrapper.find("img").addClass('loaded').css('max-height', (app.height()-$('.header').outerHeight(true)-30)+"px"); 2086 $fullscreenWrapper.find(".slider-navigation").removeClass('hidden'); 2087 $('.header').addClass("hidden"); 2088 2089 bindEscapeButton(); 2090 2091 setTimeout(function(){ 2092 $('.hideon-fullscreen').addClass('hidden'); 2093 }, 500); 2094 2095 $('.header').next().addClass('scroll-to-fixed-pos'); 2096 $('.fixed-header-cart').hide(); 2097 2098 setTimeout(function(){ 2099 $fullscreenSlider.reinitSlider(); 2100 $('.fullscreen > .slider-init').slick('slickGoTo', indexID); 2101 }, 100); 2102 setTimeout(function(){ 2103 $thumbsFullscreenSlider.reinitSlider(); 2104 }, 500); 2105 2106 }; 2107 2108 var bindEscapeButton = function(){ 2109 $(document).keyup(function(e) { 2110 if (e.keyCode == 27) { 2111 closeZoom(); 2112 var $slider =$('.handlines-sldier .slider-init'); 2113 $slider.slick('unslick'); 2114 $slider.nbHandleSlider({ 2115 autoplay: true, 2116 speed: 1000 2117 }); 2118 } 2119 }); 2120 }; 2121 2122 var unbindEscapeButton = function(){ 2123 $(document).unbind('keyup'); 2124 }; 2125 2126 var closeZoom = function(){ 2127 $('.hideon-fullscreen').removeClass('hidden'); 2128 $fullscreenWrapper.removeClass('loaded'); 2129 $fullscreenWrapper.find(".slider-navigation").addClass('hidden'); 2130 $('.header').removeClass("hidden"); 2131 2132 setTimeout(function(){ 2133 $('.hideon-fullscreen').removeClass('hidden'); 2134 }, 500); 2135 2136 unbindEscapeButton(); 2137 2138 $('.header').next().removeClass('scroll-to-fixed-pos'); 2139 2140 $('.fixed-header-cart').show(); 2141 2142 2143 $('.product-main.slider .slider-init').slick('slickGoTo', indexID); 2144 2145 }; 2146 2147 $zoomOpenBtn.click(function(e){ 2148 e.preventDefault(); 2149 openZoom(); 2150 2151 }); 2152 2153 $zoomCloseBtn.click(function(e){ 2154 e.preventDefault(); 2155 closeZoom(); 2156 var $slider =$('.handlines-sldier .slider-init'); 2157 $slider.slick('unslick'); 2158 $slider.nbHandleSlider({ 2159 autoplay: true, 2160 speed: 1000 2161 }); 2162 }); 2163 2164 }; 2165 2166 var sliderThumbs = function(){ 2167 2168 var vertical = $('.product-images').data('vertical'); 2169 var items = $('.product-images').data('slider-items'); 2170 $slider = $('.product-images-thumbs .slider-init'); 2171 2172 if(typeof(vertical) == 'undefined' || vertical == null || vertical == ""){ 2173 vertical = false;
2174 }else{ 2175 vertical = true; 2176 } 2177 2178 if(typeof(items) == 'undefined' || items == null || items == ""){ 2179 items = 3; 2180 } 2181 window.nbSlider = {}; 2182 2183 window.nbSlider.productDetailThumbs = { 2184 speed: 200, 2185 slidesToShow: items, 2186 vertical: vertical, 2187 arrows: true, 2188 focusOnSelect: true, 2189 appendArrows: $('.product-images-thumbs .slider-navigation'), 2190 prevArrow: '<div class="slider-arrow slider-prev"><i class="fa fa-angle-left" aria-hidden="true"></i></div>', 2191 nextArrow: '<div class="slider-arrow slider-next"><i class="fa fa-angle-right" aria-hidden="true"></i></div>', 2192 asNavFor: '.product-main .slider-init, .product-images-thumbs-vertical-fullscreen .slider-init' 2193 }; 2194 2195 $slider.nbHandleSlider(window.nbSlider.productDetailThumbs); 2196 }; 2197 2198 var sliderThumbsVertical = function(){ 2199 2200 var vertical = $('.product-images').data('vertical'); 2201 var items = $('.product-images').data('slider-items'); 2202 var $slider = $('.product-images-thumbs-vertical .slider-init'); 2203 2204 if(typeof(vertical) == 'undefined' || vertical == null || vertical == ""){ 2205 vertical = false;
2206 }else{ 2207 vertical = true; 2208 } 2209 2210 if(typeof(items) == 'undefined' || items == null || items == ""){ 2211 items = 3; 2212 } 2213 2214 $slider.nbHandleSlider({ 2215 speed: 200, 2216 slidesToShow: items, 2217 vertical: vertical, 2218 arrows: true, 2219 focusOnSelect: true, 2220 appendArrows: $('.product-images-thumbs-vertical .slider-navigation'), 2221 prevArrow: '<div class="slider-arrow slider-prev"><i class="fa fa-angle-left" aria-hidden="true"></i></div>', 2222 nextArrow: '<div class="slider-arrow slider-next"><i class="fa fa-angle-right" aria-hidden="true"></i></div>', 2223 asNavFor: '.product-main .slider-init' 2224 }); 2225 2226 }; 2227 2228 //Thumbs 2229 var minigallery = function(mainSliderInstance){ 2230 2231 var $miniGalleryThumbs = $images.find('.minigallery-thumbs'), 2232 $thumbsOpenBtn = $('.minigallery-thumbs-open'), 2233 $thumbsCloseBtn = $images.find('.minigallery-thumbs-close'), 2234 $imageThumb = $images.find('.minigallery-thumb-item'); 2235 2236 if(!$miniGalleryThumbs.length) return; 2237 2238 var openThumbs = function(){ 2239 $miniGalleryThumbs.addClass('active'); 2240 $thumbsCloseBtn.removeClass('hidden'); 2241 $thumbsOpenBtn.addClass('hidden'); 2242 2243 /*app.scroll.set($miniGalleryThumbs, { 2244 curcursorcolor: "rgba(255, 255, 255, 0.4)", 2245 railpadding: {right: 5}, 2246 zindex: 1500 2247 }); 2248 2249 app.scroll.show($miniGalleryThumbs);*/ 2250 }; 2251 2252 var closeThumbs = function(){ 2253 $miniGalleryThumbs.removeClass('active'); 2254 $thumbsOpenBtn.removeClass('hidden'); 2255 $thumbsCloseBtn.addClass('hidden'); 2256 //app.scroll.hide($miniGalleryThumbs); 2257 }; 2258 2259 $('html').click(function(e) { 2260 if( $miniGalleryThumbs.hasClass('active') && !$(e.target).closest($imageThumb).length && 2261 !$(e.target).closest($imageThumb).length && !$(e.target).closest($thumbsOpenBtn).length){ 2262 closeThumbs(); 2263 } 2264 }); 2265 2266 $thumbsOpenBtn.click(function(e){ 2267 e.preventDefault(); 2268 openThumbs(); 2269 }); 2270 2271 $thumbsCloseBtn.click(function(e){ 2272 e.preventDefault(); 2273 closeThumbs(); 2274 }); 2275 2276 $imageThumb.click(function(e){ 2277 //mainSliderInstance.goto($(this).data('index')); 2278 $miniGalleryThumbs.removeClass('active'); 2279 closeThumbs(); 2280 }); 2281 }; 2282 2283 var slider = new mainSlider; 2284 new fullscreenSlider(slider); 2285 new sliderThumbs(slider); 2286 new sliderThumbsVertical(slider); 2287 }; 2288 2289 var youtubeAspectRatio = function(){ 2290 var $video = $productDetails.find("iframe[src^='http://www.youtube.com']"); 2291 2292 // Figure out and save aspect ratio for video 2293 $video 2294 .data('aspectRatio', $video.height() / $video.width()) 2295 2296 // and remove the hard coded width/height 2297 .removeAttr('height') 2298 .removeAttr('width'); 2299 2300 // When the window is resized 2301 // (You'll probably want to debounce this) 2302 $(window).resize(function() { 2303 2304 // The element that is fluid width 2305 var $fluidEl = $video.parents('.tab-content').find('.tab-pane.active'); // $productDetails.find('.tab-pane:visible'); 2306 var newWidth = $fluidEl.width(); 2307 2308 // Resize video according to its own aspect ratio 2309 $video 2310 .width(newWidth) 2311 .height(newWidth * $video.data('aspectRatio')); 2312 2313 // Kick off one resize to fix all videos on page load 2314 }).resize(); 2315 2316 $('a[href="#tab_product_video"]').on('shown.bs.tab', function (e) { 2317 $(window).resize(); 2318 }); 2319 }; 2320 2321 var horizontalDivider = function(){ 2322 $productDetails.imagesLoaded(function(){ 2323 $('.product-horizontal-divider').css('margin-top', $('.product-intro').height() + 20).addClass('loaded'); 2324 }); 2325 }; 2326 2327 var productBrandClicked = function(){ 2328 $productDetails.find('.product-brand a').click(function(e){ 2329 e.preventDefault(); 2330 e.stopPropagation(); 2331 window.open($(this).attr('href'), $(this).attr('target')); 2332 }); 2333 }; 2334 2335 var addProductIsAvailable = function(){ 2336 2337 var $productIsAvailable = $productDetails.find('#actionInfoProductIsAvailable'); 2338 $productIsAvailable.click(function() { 2339 $productDetails.find('.product-attributes .infoSizeIsAvailable').trigger( "click" ); 2340 }); 2341 }; 2342 2343 addToCart(); 2344 // productQuantity(); 2345 productAttribute(); 2346 productImages(); 2347 youtubeAspectRatio(); 2348 //horizontalDivider(); 2349 productBrandClicked(); 2350 2351 /*autodragstor dva puta salje zahtev zbog ove funkcije 2352 //funkcija vec postoji u bloku*/ 2353 //addProductIsAvailable(); 2354 }; 2355 2356 /* 2357 * PRODUCT LISTING 2358 * Description: Everything that has to do with listing of a products: 2359 * types of a listing, filters, toggling filters etc. 2360 * Plugins used: niceScroll, ionRangeSlider 2361 */ 2362 var handleProductListing = function($productListing){ 2363 2364 //define objects 2365 var $filtersWrapper = $productListing.find('.product-listing-filters'); 2366 if($(window).width() < 900) { 2367 $filterGroup = $productListing.find('.filter-group'); 2368 }else{ 2369 $filterGroup = $productListing.find('.filter-group:not(.filter-group-1)'); 2370 } 2371 $filterGroupItems = $productListing.find('.filter-group .items-wrapper'); 2372 2373 //changing the type of listing 2374 var listTypes = function(){ 2375 var $listTypes = $('.list-types-wrapper .item'); 2376 //type of a listing is changed 2377 $listTypes.click(function(){ 2378 var $typeClicked = $(this); 2379 //set all types to inactive 2380 $listTypes.removeClass('active'); 2381 //set clicked type to active 2382 $typeClicked.addClass('active'); 2383 }); 2384 }; 2385 2386 //MOBILE DEVICES ONLY!!! 2387 var mobileDeviceFilters = function(){ 2388 var $labelFilters = $('.action-filters,.label-filters'), 2389 $closeBtn = $filtersWrapper.find('.filter-search, .filters-close, .product-listing-filters-close'), 2390 $resetTagBtn = $filtersWrapper.find('.reset-tag-wrapper'); 2391 2392 if($(window).width() < 768) { 2393 $resetTagBtn.click( function () { 2394 $filtersWrapper.removeClass('loaded'); 2395 }) 2396 } 2397 2398 //label filter is clicked 2399 $labelFilters.on('click', function(){ 2400 $filtersWrapper.addClass('loaded'); 2401 if($('.filters-wrapper-mob').length === 0){ 2402 $filtersWrapper.parent().append( "<div class='filters-wrapper-mob'></div>" ); 2403 } 2404 //go to top of a window 2405 $filtersWrapper.animate({scrollTop: 0}, 0); 2406 //resize niceScroll, some weird bug OMG 2407 //app.scroll.resize($filterGroupItems); 2408 }); 2409 2410 //close filters 2411 $closeBtn.click(function(){ 2412 //yeah, close it 2413 $filtersWrapper.removeClass('loaded'); 2414 $('.filters-wrapper-mob').remove(); 2415 //app.scroll.hide($filtersWrapper); 2416 //app.scroll.hide($filterGroupItems); 2417 }); 2418 }; 2419 2420 var priceRange = function(){ 2421 2422 }; 2423 2424 //every group of filter items must have max-height setted 2425 //if real height is bigger, scroll will be visible using a niceScroll plugin 2426 var setScrolls = function(){ 2427 2428 //AN: srediti
2429 // app.scroll.set($filterGroupItems, { 2430 // cursorcolor: $filtersWrapper.data('scroll-color'), 2431 // background: $filtersWrapper.data('background') ? $filtersWrapper.data('background') : "#f0f0f0", 2432 // cursorwidth: $filtersWrapper.data('cursor-width') ? $filtersWrapper.data('cursor-width') : 7, 2433 // zindex: 1 2434 // }); 2435 // 2436 // //resize niceScroll on scroll event, some weird bug OMG 2437 // $(window).scroll(function() { 2438 // app.scroll.resize($filterGroupItems); 2439 // }); 2440 }; 2441 2442 var toggleSubcategoryFilters = function (){ 2443 if($('.toggle-subcategory-enable .items-wrapper > li.active > a').length){ 2444 var activlinkParent = $('.toggle-subcategory-enable .items-wrapper > li.active').closest('.filter-group-items'); 2445 if(activlinkParent.data('lvl') == 1){ 2446 $('.toggle-subcategory-enable .items-wrapper > li.active .filter-category-menu').removeClass('hidden'); 2447 $('.toggle-subcategory-enable .items-wrapper > li.active .toggle-subcategory-wrapper .icon').each(function (){ 2448 $(this).toggleClass('active'); 2449 }); 2450 } else if(activlinkParent.data('lvl') == 2){ 2451 $('.toggle-subcategory-enable .items-wrapper > li.active > a').closest('.filter-category-menu').removeClass('hidden'); 2452 activlinkParent.closest('.filter-group-items-wrapper').parent().find('.toggle-subcategory-wrapper .icon').each(function (){ 2453 $(this).toggleClass('active'); 2454 }); 2455 } 2456 2457 } 2458 $('.filter-group .toggle-subcategory-wrapper > .icon').click(function (){ 2459 if($(this).hasClass('icon-minus')){ 2460 $(this).closest('li').find('.filter-category-menu').addClass('hidden'); 2461 $(this).parent().find('.icon').each(function (){$(this).toggleClass('active')}); 2462 } else if($(this).hasClass('icon-plus')) { 2463 $(this).closest('li').find('.filter-category-menu').removeClass('hidden'); 2464 $(this).parent().find('.icon').each(function (){$(this).toggleClass('active')}); 2465 } 2466 }); 2467 } 2468 2469 var toggleFilterGroup = function(){ 2470 2471 $filtersMenuDropdown = $('.filters-dropdown-menu'); 2472 if($filtersMenuDropdown.length > 0 && $(window).width() > 768){ 2473 $filterGroup.find('.icon.icon-open').removeClass('active'); 2474 $filterGroup.find('.icon.icon-close').addClass('active'); 2475 $('body').click(function(e){ 2476 if ($(e.target).closest('.filter-group .headline-wrapper ').length === 0) { 2477 $filterGroup.find('.icon.icon-open').removeClass('active'); 2478 $filterGroup.find('.icon.icon-close').addClass('active'); 2479 $filterGroup.find('.items-wrapper').addClass('hidden'); 2480 } 2481 }); 2482 } 2483 2484 $filterGroup.each(function(){ 2485 2486 //set objects for clicked filter group 2487 var $itemsWrapper = $(this).find('.items-wrapper'), 2488 $headline = $(this).find('.headline-wrapper'), 2489 $openIcon = $headline.find('.icon.icon-open'), 2490 $closeIcon = $headline.find('.icon.icon-close'); 2491 2492 if($(window).width() < 768) { 2493 $openIcon.removeClass('active'); 2494 $closeIcon.addClass('active'); 2495 $itemsWrapper.addClass('hidden'); 2496 if($itemsWrapper.parent('.filter-category-menu').length > 0){ 2497 $itemsWrapper.removeClass('hidden'); 2498 } 2499 }; 2500 2501 //show or hide items, and set correct icon 2502 $headline.click(function() { 2503 2504 if($(window).width() < 768) { 2505 $openIcon.toggleClass('active'); 2506 $closeIcon.toggleClass('active'); 2507 $itemsWrapper.toggleClass('hidden'); 2508 } else { 2509 if($itemsWrapper.is(':visible')){ 2510 2511 $openIcon.removeClass('active'); 2512 $closeIcon.addClass('active'); 2513 $(this).removeClass('active'); 2514 if($(window).width() >= 768) { 2515 //app.scroll.hide($itemsWrapper.find('.items-wrapper')); 2516 2517 $itemsWrapper.slideUp({ 2518 duration: 'fast', 2519 progress: function(){ 2520 // app.scroll.resize($filterGroupItems); 2521 } 2522 }); 2523 2524 } 2525 $(this).parent().find('.show-all-filters').hide(); 2526 } else { 2527 if($filtersMenuDropdown.length > 0){ 2528 $filterGroup.find('.icon.icon-open').removeClass('active'); 2529 $filterGroup.find('.icon.icon-close').addClass('active'); 2530 $filterGroup.find('.items-wrapper').addClass('hidden'); 2531 $filterGroup.find('.headline-wrapper').removeClass('active'); 2532 $(this).addClass('active'); 2533 } 2534 $itemsWrapper.removeClass('hidden'); 2535 $openIcon.addClass('active'); 2536 $closeIcon.removeClass('active'); 2537 2538 $itemsWrapper.slideDown({ 2539 duration: 'fast', 2540 progress: function(){ 2541 //app.scroll.resize($filterGroupItems); 2542 }, 2543 done: function(){
2544 //app.scroll.show($itemsWrapper.find('.items-wrapper')); 2545 } 2546 }); 2547 $(this).parent().find('.show-all-filters').show(); 2548 } 2549 } 2550 }); 2551 }); 2552 2553 //app.scroll.resize($filterGroupItems); 2554 }; 2555 2556 var toggleFilterGroupOld = function(){ 2557 2558 $filterGroup.each(function(){ 2559 2560 //set objects for clicked filter group 2561 var $itemsWrapper = $(this).find('.filter-group-items-wrapper'), 2562 $headline = $(this).find('.filter-group-headline'), 2563 $openIcon = $headline.find('.filter-group-headline-icon.open-icon'), 2564 $closeIcon = $headline.find('.filter-group-headline-icon.close-icon'); 2565 2566 //show or hide items, and set correct icon 2567 $headline.click(function() { 2568 if($itemsWrapper.is(':visible')){ 2569 //app.scroll.hide($itemsWrapper.find('.filter-group-items')); 2570 $openIcon.removeClass('active'); 2571 $closeIcon.addClass('active'); 2572 2573 $itemsWrapper.slideUp({ 2574 duration: 'fast', 2575 progress: function(){ 2576 //app.scroll.resize($filterGroupItems); 2577 } 2578 }); 2579 } else { 2580 $itemsWrapper.removeClass('hidden'); 2581 $openIcon.addClass('active'); 2582 $closeIcon.removeClass('active'); 2583 2584 $itemsWrapper.slideDown({ 2585 duration: 'fast', 2586 progress: function(){ 2587 //app.scroll.resize($filterGroupItems); 2588 }, 2589 done: function(){ 2590 //app.scroll.show($itemsWrapper.find('.filter-group-items')); 2591 } 2592 }); 2593 } 2594 }); 2595 }); 2596 2597 //app.scroll.resize($filterGroupItems); 2598 }; 2599 2600 listTypes(); 2601 mobileDeviceFilters(); 2602 priceRange(); 2603 //app.scroll.remove($filterGroupItems); 2604 setScrolls(); 2605 toggleFilterGroup(); 2606 toggleSubcategoryFilters(); 2607 toggleFilterGroupOld(); 2608 handleShowHideFiltersDropdown(); 2609 }; 2610 2611 /* 2612 * CHECKBOX AND RADIO ELEMENTS 2613 * Description: Sets custom html for checkbox and radio elementsm 2614 * Looks a lot more pretty :D 2615 * Plugins used: icheck 2616 */ 2617 var handleCheckboxRadio = function($elements){ 2618 $elements.icheck({ 2619 checkboxClass: 'icheckbox_flat', 2620 radioClass: 'iradio_flat', 2621 increaseArea: '20%' // optional 2622 }); 2623 }; 2624 2625 /* 2626 * APPEARING OF ELEMENTS 2627 * Description: Fade in elements once appeared on screen 2628 * Elements must have "appear" class 2629 * CSS is a lot of help here --> .appear with opacity: 0 2630 * .appearead with opacity: 1 2631 * Plugins used: appear 2632 */ 2633 var handleAppearing = function($elements){ 2634 //once appeared add "appeared" class with opacity: 1 2635 var setAppeared = function($el){ 2636 $el.addClass('appeared'); 2637 }; 2638 2639 if($elements.length) { 2640 //loop through each element 2641 $elements.each(function(){ 2642 var $el = $(this); 2643 $el.appear(function(){ 2644 //on appear event add appeared class for that element 2645 setAppeared($el); 2646 }); 2647 }); 2648 } 2649 2650 $('[data-transition]:not([data-transition=""])').each(function(){ 2651 var $el = $(this), 2652 delay = $el.data('transition-delay') ? $el.data('transition-delay') : 0, 2653 accuracy = $el.data('appear-accuracy') ? $el.data('appear-accuracy') : 0; 2654 2655 $el.data('transition-duration') ? $el.css('transition-duration', $el.data('transition-duration')) : ''; 2656 2657 $el.appear(function(){ 2658 setTimeout(function(){ 2659 $el.addClass($el.data('transition')); 2660 }, delay); 2661 }, {accY: accuracy}); 2662 }); 2663 }; 2664 2665 /* 2666 * Market 2667 * Description: Set scrolls 2668 */ 2669 var handleCatalogZoomer = function(){ 2670 var catalogZoomer = $(".catalog-zoomer"); 2671 if(catalogZoomer.length > 0){ 2672 catalogZoomer.panzoom({ 2673 contain: 'invert', 2674 minScale: 1, 2675 maxScale: 1.90, 2676 $zoomIn: $(".catalog-zoomer-buttons .zoom-in"), 2677 $zoomOut: $(".catalog-zoomer-buttons .zoom-out"), 2678 $zoomRange: $(".catalog-zoomer-buttons .zoom-range") 2679 }); 2680 } 2681 2682 }; 2683 2684 // Product Zoomer 2685 var productzoomer = function(){ 2686 if($('.fullscreen').length){ 2687 var zoomerHeight = app.height()- 80; 2688 $(".zoomer-container, .zoomer_wrapper").height(zoomerHeight); 2689 $(".fullscreen").height(zoomerHeight + 20); 2690 $(".zoomer_basic").zoomer("destroy"); 2691 $(".zoomer_basic").zoomer(); 2692 2693 var fullscreenWidth = $(".fullscreen").width(); 2694 if ($(".fullscreen").width() !== fullscreenWidth ) { 2695 $(".zoomer_basic").zoomer("destroy"); 2696 $(".zoomer_basic").zoomer(); 2697 var zoomerHeight = app.height()-$('.header').outerHeight(true)- 50; 2698 $(".zoomer-container, .zoomer_wrapper").height(zoomerHeight); 2699 $(".fullscreen").height(zoomerHeight + 20); 2700 2701 $(window).trigger('resolutionchange'); 2702 } 2703 $(window).bind('resolutionchange'); 2704 } 2705 }; 2706 2707 /* 2708 * LANGUAGE SELECTOR 2709 * Description: Show or hide avaliable languages on language selector hover 2710 */ 2711 var handleLangToggle = function(){ 2712 var $selector = $('.language-selector'), 2713 $options = $selector.find('.dropdown-options'); 2714 2715 if(!$selector.length) return; 2716 2717 //show or hide options using a hidden class 2718 $selector.hover(function(){ 2719 $options.removeClass('hidden'); 2720 }, function(){ 2721 $options.addClass('hidden'); 2722 }); 2723 }; 2724 2725 var handleCurrencyToggle = function(){ 2726 var $selector = $('.currency-selector'), 2727 $options = $selector.find('.dropdown-options'); 2728 2729 if(!$selector.length) return; 2730 2731 //show or hide options using a hidden class 2732 $selector.hover(function(){ 2733 $options.removeClass('hidden'); 2734 }, function(){ 2735 $options.addClass('hidden'); 2736 }); 2737 2738 //stop executing that link! 2739 $selector.find('a').click(function(e){ 2740 e.preventDefault(); 2741 }); 2742 }; 2743 2744 var handleHeaderCart = function(){ 2745 var $cart = $('.header-cart-flat,.header-cart'), 2746 $cartPreview = $('.header-cart-preview'), 2747 $cartToggle = $('.header-cart-toggle'), 2748 $fixedHeaderCart = $('.fixed-header-cart'), 2749 $cartItems = $('.header-cart-items'); 2750 2751 if(!$cart.length || !$cartToggle.length){ 2752 return; 2753 } 2754 2755 var hover = function(){ 2756 $cartToggle.css({top: $cartPreview.outerHeight(true)}); 2757 2758 if(!$cart.children('.mini-cart').hasClass('mini-cart-side')){ 2759 $cart.hover(function(){ 2760 $cartToggle.removeClass('invisible'); 2761 setTimeout(function(){ 2762 $cartToggle.css({opacity: 1}); 2763 }, 1); 2764 }, function(){ 2765 $cartToggle.addClass('invisible'); 2766 $cartToggle.css({opacity: 0}); 2767 }); 2768 2769 $fixedHeaderCart.hover(function(){ 2770 $(this).prev().addClass("fhc-hover"); 2771 }, function(){ 2772 $(this).prev().removeClass("fhc-hover"); 2773 }); 2774 } 2775 2776 }; 2777 2778 var removeItem = function(){ 2779 $cartItems.find('.remove-item').click(function(e){ 2780 e.preventDefault(); 2781 $(this).parents('li').remove(); 2782 }); 2783 }; 2784 2785 hover(); 2786 removeItem(); 2787 }; 2788 2789 var handleGalleryImagesSlider = function(){ 2790 var $slider = $('.gallery-images.slider'), 2791 dataItems = $slider.data('items'); 2792 2793 $slider.handleSlider({ 2794 margin: 5, 2795 navText: ['<i class="icon-angle-fat-left slider-prev ease-slow"></i>', '<i class="icon-angle-fat-right slider-next ease-slow"></i>'], 2796 navContainer: false, 2797 items: dataItems ? dataItems : 3 2798 }); 2799 }; 2800 2801 /* proveriti - ovaj script na kraju update-a teme treba obrisati posto ima staru html strukturu slider-a */ 2802 var handleProductsSlider = function(){ 2803 if(!$('.product-slider-wrapper .slider').hasClass("slick-initialized")) { 2804 2805 $('.product-slider-wrapper').each(function(){ 2806 2807 var $slider = $(this).find('.slider'); 2808 var vertical = $slider.data('vertical'); 2809 2810 vertical = (vertical > '')? true:false; 2811 2812 $slider.handleSlider({ 2813 dots: true, 2814 vertical: vertical, 2815 navText: ['<i class="arrow fullwidth-slider-prev fa fa-angle-left icon-lg ease-slow"></i>', '<i class="arrow fullwidth-slider-next fa fa-angle-right icon-lg ease-slow"></i>'], 2816 prevArrow: '<div class="slider-arrow slider-prev"><i class="fa fa-angle-left" aria-hidden="true"></i></div>', 2817 nextArrow: '<div class="slider-arrow slider-next"><i class="fa fa-angle-right" aria-hidden="true"></i></div>' 2818 }); 2819 2820 2821 $('a[data-toggle="tab"]').on('shown.bs.tab', function(){ 2822 $slider.reinitSlider(); 2823 }); 2824 }); 2825 } 2826 }; 2827 2828 var handleRelatedProductsSlider = function(){ 2829 2830 var $slider = $('.related-products-slider'); 2831 2832 $slider.handleSlider({ 2833 appendArrows: $('.product-related-wrapper .slider-arrows'), 2834 dots: false, 2835 prevArrow: '<div class="slider-arrow slider-prev"><i class="fa fa-angle-left" aria-hidden="true"></i></div>', 2836 nextArrow: '<div class="slider-arrow slider-next"><i class="fa fa-angle-right" aria-hidden="true"></i></div>' 2837 2838 }); 2839 2840 }; 2841 2842 var handlePromoSliderBig = function(){ 2843 $('.promo-slider-big').each(function(){ 2844 var $slider = $(this), 2845 dataItems = $slider.data('items'); 2846 2847 $slider.handleSlider({ 2848 items: dataItems ? dataItems : 5, 2849 dots: true 2850 }); 2851 2852 $('.promo-slider-big').find('img').batchImageLoad({ 2853 loadingCompleteCallback: function(){ 2854 $(".promo-bg-big").height($(".promo-slider-big").height()); 2855 2856 $(".promo-bg-big").niceScroll({ 2857 cursorcolor: $(this).data('scroll-color') ? $(this).data('scroll-color') : "#ff8f02" 2858 }); 2859 2860 2861 } 2862 }); 2863 }); 2864 }; 2865 2866 var handlePostsSlider = function(){ 2867 $('.posts-slider').each(function(){ 2868 var $slider = $(this); 2869 2870 $slider.HandleSlider({ 2871 dots: false 2872 }); 2873 }); 2874 }; 2875 2876 var handleSliderOnLandingPage = function(){ 2877 var slider = $('.landing-slider').handleSlider({ 2878 items: 1, 2879 lazyLoad: true, 2880 animateIn: 'fadeIn', 2881 animateOut: 'fadeOut', 2882 autoplay: true, 2883 navText: ['<i class="arrow landing-slider-prev fa fa-angle-left icon-lg ease-slow"></i>', '<i class="arrow landing-slider-next fa fa-angle-right icon-lg ease-slow"></i>'] 2884 }); 2885 2886 }; 2887 2888 var handleAtributeSlider = function(){ 2889 2890 var centerPadding = ($(".fullwidth-slider-wrapper").width() - $(".container").width()) / 2 + "px"; 2891 2892 $('.atributes-slider').handleSlider({ 2893 dots: true, 2894 centerMode: true, 2895 autoplay: true, 2896 centerPadding: centerPadding 2897 }); 2898 }; 2899 2900 var handleMainSliderPlaneta = function(){ 2901 var $slider = $('.main-slider-full'); 2902 var padding = ($slider.width() - 1200)/2 +'px'; 2903 var sliderwidth =$slider.width()+'px'; 2904 $slider.handleSlider({ 2905 dots: true, 2906 slidesToShow: 1, 2907 centerMode: true, 2908 centerPadding: padding, 2909 adaptiveHeight: true 2910 2911 }); 2912 $('.main-slider-wrapper.slider-wrapper-full .slider-navigation-absolute').css('left', padding); 2913 $('.main-slider-wrapper.slider-wrapper-full .slider-navigation-absolute').css('width','sliderwidth'); 2914 $slider.on('beforeChange', function(event, slick, currentSlide, nextSlide){ 2915 var slika = currentSlide; 2916 //$('.main-slider-wrapper.slider-wrapper-full .slider-next').css("background","red"); 2917 }); 2918 }; 2919 2920 var handleHandlinesSlider = function(){ 2921 var $slider = $('.handlines-sldier .slider-init'); 2922 var $options = { 2923 autoplay: true, 2924 speed: 1000 2925 }; 2926 $slider.nbHandleSlider($options); 2927 window.topslideroptions = $options; 2928 }; 2929 2930 var handleGenericSlider = function(){ 2931 var $slider = $('.slider-generic'); 2932 2933 $slider.each(function(){ 2934 2935 var $this = $(this); 2936 var dataArrows = $this.data('arrows'); 2937 var dataName = $this.data('uname'); 2938 var dataDots = $this.data('dots'); 2939 var dataItems = $this.data('items'); 2940 var dataVertical = $this.data('vertical'); 2941 var dataSync = $this.data('sync'); 2942 var dataAuto = $this.data('autoplay'); 2943 var dataNavWidth = $this.data('navwidth'); 2944 var dataAutoplaySpeed = $this.data('autoplayspeed'); 2945 var dataSpeed = $this.data('speed'); 2946 var dataFade = $this.data('fade'); 2947 var dataDrag = $this.data('draggable'); 2948 2949 2950 dataArrows = dataArrows == 1 ? true : false;
2951 dataDots = dataDots == 1 ? true : false; 2952 dataAuto = dataAuto == 1 ? true : false; 2953 dataVertical = dataVertical == 1 ? true : false; 2954 dataSync = dataSync >'' ? dataSync : false; 2955 dataAutoplaySpeed = dataAutoplaySpeed >'' ? dataAutoplaySpeed : 1000; 2956 dataSpeed = dataSpeed >'' ? dataSpeed : 500; 2957 var Focus = dataSync >'' ? true : false; 2958 dataFade = dataFade == 1 ? true : false; 2959 2960 $this.handleSlider({ 2961 arrows: dataArrows, 2962 dots: dataDots, 2963 items: dataItems, 2964 autoplay: dataAuto, 2965 vertical: dataVertical, 2966 asNavFor: dataSync, 2967 focusOnSelect: Focus, 2968 speed: dataSpeed, 2969 autoplaySpeed: dataAutoplaySpeed, 2970 fade: dataFade, 2971 draggable: dataDrag, 2972 cssEase: 'linear' 2973 2974 }); 2975 if(dataNavWidth > '' && dataNavWidth == 'image') { 2976 2977 var navwidth = $('.slider-generic .slick-current.slick-active img').width(); 2978 //var padding = ($slider.width() - navwidth)/2 +'px'; 2979 navwidth = navwidth+'px'; 2980 2981 $(dataName+'-slider-wrapper .slider-arrows.slider-navigation-absolute').css({"width":"1400px"}); 2982 // $(dataName+'-slider-wrapper .slider-navigation-absolute').css('width', 'navwidth'); 2983 2984 } 2985 }); 2986 }; 2987 2988 var handleSliderWithText = function(){ 2989 var $slider = $('.caption-slider'); 2990 $slider.handleSlider({ 2991 dots: false, 2992 slidesToScroll: 1, 2993 lazyLoad: true, 2994 animateIn: 'fadeIn', 2995 animateOut: 'fadeOut', 2996 autoplay: true, 2997 vertical: true, 2998 speed: 300 2999 }); 3000 }; 3001 3002 var handleSliderWithPadding = function(){ 3003 var $slider = $('.center-slider'); 3004 var padding = ($slider.width() - 1200)/2 +'px'; 3005 $('.sldier-with-padding-wrapper .slider-navigation-absolute').css('width','1200px'); 3006 //$('.main-slider-wrapper .slider-navigation-absolute').css('left',padding); 3007 $slider.handleSlider({ 3008 dots: false, 3009 slidesToShow: 1, 3010 centerMode: true, 3011 centerPadding: padding, 3012 adaptiveHeight: true, 3013 prevArrow: '<div class="slider-arrow slider-prev"><i class="icon-caret-down icon-rotate-90"></i></div>', 3014 nextArrow: '<div class="slider-arrow slider-next"><i class="icon-caret-down icon-rotate-270"></i></div>' 3015 3016 }); 3017 3018 $slider.on('beforeChange', function(event, slick, currentSlide, nextSlide){ 3019 var slika = currentSlide; 3020 }); 3021 3022 }; 3023 3024 var handleTabsSlider = function(){ 3025 if($(window).width() < 768) { 3026 var $slider = $('.contact-page .tabs-slider, .page-cooperation .tabs-slider,.page-career .tabs-slider, .product-specification-tabs .tabs-slider, .product-tab .tabs-slider'); 3027 $slider.slick({ 3028 dots: false, 3029 infinite: true, 3030 speed: 300, 3031 slidesToShow: 1, 3032 centerMode: true, 3033 arrows: false, 3034 adaptiveHeight: true, 3035 touchMove:true 3036 }); 3037 $slider.on('beforeChange', function(event, slick, current_slide_index, next_slide_index){ 3038 3039 $('.slick-slide').removeClass('active'); 3040 $('.slick-slide[data-index=' + next_slide_index + ']').addClass('active'); 3041 }); 3042 } 3043 3044 }; 3045 3046 var handleCatalog = function(){ 3047 3048 var slider = $('.catalog-slider'), 3049 sliderAlt = $('.catalog-slider-bookalt'), 3050 sliderHTML = $('.catalog-slider-html'), 3051 slideWidth = $('.book-view .catalog-slider img').width(), 3052 bookPagination = $(".book-pagination"), 3053 bookPaginationAlt = $('.bookalt-pagination'), 3054 bookPaginationHTML = $('.catalog-html-pagination'), 3055 catalogReaderIcons = $('.catalog-reader-footer i'), 3056 catalogContent = $('.catalog-content'), 3057 zoomerButtons = $('.catalog-zoomer-buttons'),
3058 catalogPagination = $('.catalog-pagination'), 3059 catalogZoomerMobile = $(".catalog-zoomer-mobile"), 3060 catalogZoomer = $(".catalog-zoomer"); 3061 3062 3063 let activeSlide = 0; 3064 let pageUrl = window.location.href; 3065 let slides = slider.find('.slide'); 3066 slides.each(function() { 3067 let dataUrl = $(this).data("itemurl"); 3068 if(pageUrl == dataUrl) { 3069 return false; 3070 } 3071 activeSlide++; 3072 }) 3073 3074 if($(window).width() > 767){ 3075 zoomerButtons.hide(); 3076 catalogContent.width(slideWidth); 3077 catalogPagination.width(slideWidth); 3078 slider.slick({ 3079 appendArrows: bookPagination, 3080 initialSlide: activeSlide, 3081 prevArrow: '<div class="slider-arrow slider-prev"><i class="fa fa-angle-left" aria-hidden="true"></i></div>', 3082 nextArrow: '<div class="slider-arrow slider-next"><i class="fa fa-angle-right" aria-hidden="true"></i></div>' 3083 }); 3084 if(catalogZoomerMobile.length > 0){ 3085 catalogZoomerMobile.panzoom({ 3086 contain: 'invert', 3087 minScale: 1, 3088 maxScale: 1.90, 3089 $zoomIn: $(".catalog-zoomer-buttons .zoom-in"), 3090 $zoomOut: $(".catalog-zoomer-buttons .zoom-out"), 3091 $zoomRange: $(".catalog-zoomer-buttons .zoom-range") 3092 }); 3093 } 3094 $('.footer-wrapper').css("padding-bottom", 40); 3095 } 3096 3097 else{ 3098 slider.slick({ 3099 appendArrows: bookPagination, 3100 prevArrow: '<div class="slider-arrow slider-prev"><i class="fa fa-angle-left" aria-hidden="true"></i></div>', 3101 nextArrow: '<div class="slider-arrow slider-next"><i class="fa fa-angle-right" aria-hidden="true"></i></div>', 3102 initialSlide: activeSlide, 3103 swipe: false, 3104 touchMove: false, 3105 infinite: false 3106 }); 3107 if(catalogZoomerMobile.length > 0){ 3108 catalogZoomerMobile.panzoom({ 3109 contain: 'invert', 3110 minScale: 1, 3111 maxScale: 1.90, 3112 $zoomIn: $(".catalog-zoomer-buttons .zoom-in"), 3113 $zoomOut: $(".catalog-zoomer-buttons .zoom-out"), 3114 $zoomRange: $(".catalog-zoomer-buttons .zoom-range") 3115 }); 3116 } 3117 zoomerButtons.show(); 3118 3119 slider.on('beforeChange', function(){ 3120 catalogZoomerMobile.panzoom("reset"); 3121 }); 3122 } 3123 3124 // number of initial slide 3125 $("#catalogActivePage").html($(".catalog-reader-outer-wrapper").attr("data-slide")); 3126 3127 $('.catalog-reader-footer i.icon-book').click(function(){ 3128 catalogReaderIcons.removeClass('active'); 3129 $(this).addClass('active'); 3130 catalogContent.removeClass("grid-view bookalt-view"); 3131 catalogContent.addClass("book-view"); 3132 catalogContent.width(slideWidth); 3133 catalogPagination.width(slideWidth); 3134 slider.slick('setPosition'); 3135 if($(window).width() > 767){ 3136 zoomerButtons.hide(); 3137 catalogPagination.width($('.book-view .catalog-slider img').width()); 3138 } 3139 else{ 3140 zoomerButtons.show(); 3141 } 3142 3143 3144 $(".catalog-branding .banner-branding-left").css("margin-left","-1460px"); 3145 $(".catalog-branding .banner-branding-right").css("margin-right","-1460px"); 3146 3147 }); 3148 3149 $('.catalog-reader-footer i.icon-2x').click(function(){ 3150 catalogReaderIcons.removeClass('active'); 3151 $(this).addClass('active'); 3152 catalogContent.removeClass("book-view grid-view"); 3153 catalogContent.addClass("bookalt-view"); 3154 $('.catalog-slider-bookalt, .catalog-content.bookalt-view').width(slideWidth*1.4); 3155 catalogPagination.width($('.catalog-slider-bookalt').width()); 3156 catalogPagination.width(slideWidth*1.4); 3157 $('.catalog-reader .zoomer').height(); 3158 $('.fotoer-wrapper').hide(); 3159
3160 if(!sliderAlt.hasClass("slick-initialized")){ 3161 sliderAlt.slick({ 3162 slidesToShow: 2, 3163 slidesToScroll: 2, 3164 appendArrows: bookPaginationAlt, 3165 prevArrow: '<div class="slider-arrow slider-prev"><i class="fa fa-angle-left" aria-hidden="true"></i></div>', 3166 nextArrow: '<div class="slider-arrow slider-next"><i class="fa fa-angle-right" aria-hidden="true"></i></div>', 3167 swipe: false, 3168 touchMove: false 3169 }); 3170 } 3171 3172 sliderAlt.on('beforeChange', function(){ 3173 catalogZoomer.panzoom("reset"); 3174 }); 3175 3176 //$('.catalog-zoomer-buttons').show(); 3177 3178 handleCatalogZoomer(); 3179 3180 $(".catalog-branding .banner-branding-left").css("margin-left","-1560px !important"); 3181 $(".catalog-branding .banner-branding-right").css("margin-right","-1560px !important"); 3182 3183 setTimeout(function(){ 3184 setPositionOnAreaElement('.catalog-slider-bookalt .slick-slide '); 3185 },500) 3186 3187 setTimeout(function(){ 3188 handleProductDetailsQuickViewOnModal('.showProductDetailsQuickViewOnModal'); 3189 },2000) 3190 3191 }); 3192 3193 $('.catalog-reader-footer i.icon-gridalt').click(function(){ 3194 catalogReaderIcons.removeClass('active'); 3195 $(this).addClass('active'); 3196 catalogContent.removeClass("bookalt-view book-view"); 3197 catalogContent.addClass("grid-view"); 3198 $('.catalog-reader').width(); 3199 zoomerButtons.hide(); 3200 $('body').css("overflow","auto"); 3201 }); 3202 3203 function NbCatalog() {} 3204 3205 NbCatalog.prototype.jumpToSlideBook = function(slide){ 3206 $('.catalog-slider').slick('slickGoTo', slide); 3207 }; 3208 3209 NbCatalog.prototype.jumpToSlideBookalt = function(slide){ 3210 $('.catalog-slider-bookalt').slick('slickGoTo', slide); 3211 }; 3212 3213 NbCatalog.prototype.initReloadCatalogReaderUrl = function(position){ 3214 var activeSlide = -1; 3215 $('.catalog-slider').on('afterChange', (event, slick, currentSlide) => { 3216 var elementCatalogSlider = $(".catalog-slider .slick-slide.slick-current"); 3217 var itemId = elementCatalogSlider.data("itemid"); 3218 var itemUrl = elementCatalogSlider.data("itemurl"); 3219 var itemPage = elementCatalogSlider.data("itemcounter"); 3220 3221 if (typeof itemId !== 'undefined' && activeSlide !== itemId && activeSlide !== 0) { 3222 this.reloadCatalogReaderUrl(itemId, itemUrl); 3223 this.setCatalogReaderActivePage(itemPage); 3224 activeSlide = itemId; 3225 } else if (typeof itemId !== 'undefined' && activeSlide !== itemId && activeSlide === 0) { 3226 activeSlide = itemId; 3227 } 3228 }); 3229 3230 var activeSlideAlt = -1; 3231 $('.catalog-slider-bookalt').on('afterChange', (event, slick, currentSlide) => { 3232 var elementCatalogSliderBookalt = $(".catalog-slider-bookalt .slick-slide.slick-current"); 3233 var itemId = elementCatalogSliderBookalt.data("itemid"); 3234 var itemUrl = elementCatalogSliderBookalt.data("itemurl"); 3235 var itemPage = elementCatalogSliderBookalt.data("itemcounter"); 3236 3237 if (typeof itemId !== 'undefined' && activeSlideAlt !== itemId && activeSlideAlt !== 0) { 3238 this.reloadCatalogReaderUrl(itemId, itemUrl); 3239 this.setCatalogReaderActivePage(itemPage); 3240 activeSlideAlt = itemId; 3241 } else if (typeof itemId !== 'undefined' && activeSlideAlt !== itemId && activeSlideAlt === 0) { 3242 activeSlideAlt = itemId; 3243 } 3244 }); 3245 }; 3246 3247 NbCatalog.prototype.reloadCatalogReaderUrl = function(itemId, itemUrl){ 3248 if (typeof itemUrl !== 'undefined') { 3249 this.rewriteURL(itemUrl); 3250 if (typeof gtag !== 'undefined') { 3251 gtag('event', 'page_view'); 3252 } 3253 } 3254 }; 3255 3256 NbCatalog.prototype.rewriteURL = function(newUrl) { 3257 rewriteURL('', newUrl); 3258 // reloadDFPBanners(); 3259 }; 3260 3261 NbCatalog.prototype.setCatalogReaderActivePage = function(page){ 3262 $('#catalogActivePage').html(page); 3263 }; 3264 3265 NbCatalog.prototype.initCatalog = function() { 3266 $('.orderCatalog').change(() => { 3267 var elementId = $(this).attr('filter-name'); 3268 $('#' + elementId).val($(this).val()); 3269 this.loadForPage(0); 3270 }); 3271 }; 3272 3273 NbCatalog.prototype.initCatalogListing = function() { 3274 $('.orderCatalog').change(() => { 3275 var elementId = $(this).attr('filter-name'); 3276 $('#' + elementId).val($(this).val()); 3277 this.loadForPage(0); 3278 }); 3279 }; 3280 3281 NbCatalog.prototype.loadForPage = function(page) { 3282 $('#f_page').val(page); 3283 this.load(); 3284 }; 3285 3286 NbCatalog.prototype.load = function() { 3287 var formData = $("#filter_form").serialize(); 3288 var url = $('#f_page_url').val(); 3289 var $productListing = $('.listing-products'), 3290 $loaderWrapper = $productListing.find('.loader-wrapper'); 3291 $loaderWrapper.removeClass('hidden'); 3292 3293 $.ajax({ 3294 type: "POST", 3295 url: url, 3296 data: formData + '&task=load&ajax=yes', 3297 contentType: "application/x-www-form-urlencoded;charset=UTF-8", 3298 success: (ret) => { 3299 $loaderWrapper.addClass('hidden'); 3300 this.rewriteURL(url); 3301 $productListing.html(ret); 3302 $productListing.find('.product-item').addClass('appeared'); 3303 new app.handleProductListing($productListing); 3304 new app.handleAppearing($productListing.find('.product-item')); 3305 new app.handlePopover($productListing.find('.product-item [rel=popover]')); 3306 new app.handleFavoriteProduct($productListing.find('.favorite')); 3307 new app.handleCheckboxRadio($productListing.find('.product-listing-filters input[type="checkbox"], .product-listing-filters input[type="radio"]')); 3308 app.ajaxFilter = null; 3309 } 3310 }); 3311 }; 3312 3313 NbCatalog.prototype.deleteTagSearch = function() { 3314 $('#search').val(''); 3315 this.loadForPage(0); 3316 }; 3317 3318 NbCatalog.prototype.addProduct = function(id, url) { 3319 3320 }; 3321
3322 var nbCatalog = new NbCatalog(); 3323 nbCatalog.initCatalog(); 3324 nbCatalog.initReloadCatalogReaderUrl(0); 3325 3326 3327 // image map fix for iOS devices 3328 // $(".catalog-reader map").on("touchstart", function (evt){ 3329 // evt.preventDefault(); 3330 // if (evt.target.tagName.toLowerCase() === "area"){ 3331 // location.href = evt.target.href; 3332 // } 3333 // }); 3334 3335 bookPaginationHTML.width($('.catalog-slider-html').width()-20); 3336 3337 sliderHTML.slick({ 3338 slidesToShow: 2, 3339 slidesToScroll: 1, 3340 appendArrows: $('.bookalt-pagination'), 3341 prevArrow: '<div class="slider-arrow slider-prev"><i class="fa fa-angle-left" aria-hidden="true"></i></div>', 3342 nextArrow: '<div class="slider-arrow slider-next"><i class="fa fa-angle-right" aria-hidden="true"></i></div>', 3343 responsive: [{ 3344 breakpoint: 1025, 3345 settings: { 3346 slidesToShow: 1, 3347 slidesToScroll: 1, 3348 adaptiveHeight: true 3349 } 3350 }] 3351 3352 }); 3353 3354 $(".catalog-reader-html .icon-book").click(function(){ 3355 sliderHTML.slick('slickSetOption','slidesToShow','1'); 3356 sliderHTML.slick('slickSetOption','adaptiveHeight','true'); 3357 $('.catalog-content-html').addClass("half-width"); 3358 sliderHTML.slick('setPosition'); 3359 bookPaginationHTML.width($('.catalog-slider-html').width()-20); 3360 }); 3361 3362 $(".catalog-reader-html .icon-grid").click(function(){ 3363 sliderHTML.slick('slickSetOption','slidesToShow','2'); 3364 sliderHTML.slick('slickSetOption','adaptiveHeight','false'); 3365 $('.catalog-content-html').removeClass("half-width"); 3366 sliderHTML.slick('setPosition'); 3367 bookPaginationHTML.width($('.catalog-slider-html').width()-20); 3368 }); 3369 3370 $(".catalog-reader-html .catalog-pagination .slider-prev").click(function(){ 3371 $("#catalogActivePage").html(sliderHTML.slick('slickCurrentSlide')+1); 3372 }); 3373 3374 $(".catalog-reader-html .catalog-pagination .slider-next").click(function(){ 3375 $("#catalogActivePage").html(sliderHTML.slick('slickCurrentSlide')+1); 3376 }); 3377 3378 }; 3379 3380 function getTemplateContent(idTemplate) { 3381 var template = document.querySelector(idTemplate); 3382 var clon = template.content.cloneNode(true); 3383 3384 return clon; 3385 } 3386 3387 function setPositionOnAreaElement(element) { 3388 if(!$('.area').length) { 3389 return false; 3390 } 3391 3392 let elementDefault = '.catalog-slider .slick-slide '; 3393 if(element) { 3394 elementDefault = element; 3395 } 3396 3397 setTimeout(function(){ 3398 $(elementDefault + '.area').each(function(){ 3399 3400 let parentWrapper = $(this).closest('.slide').find('img'); 3401 3402 let imgWidth = parentWrapper.data("originalWidth"); 3403 let imgHeight = parentWrapper.data("originalHeight"); 3404 3405 let mapCords= $(this).attr("coords").split(','); 3406 3407 let xCords = 0; 3408 let yCords = 0; 3409 3410 for(let i=0; i < mapCords.length; i++) { 3411 if(i === 0 || i%2 === 0) { 3412 xCords+= parseInt(mapCords[i]); 3413 } else { 3414 yCords+= parseInt(mapCords[i]); 3415 } 3416 } 3417 3418 let positionX = Math.ceil(xCords / (mapCords.length/2)); 3419 let positionXpercentage = Math.round(positionX * 100 / imgWidth); 3420 3421 let positionY = Math.ceil(yCords / (mapCords.length/2)); 3422 let positionYpercentage = Math.round(positionY * 100 / imgHeight); 3423 3424 3425 $(this).css("position", "absolute"); 3426 $(this).css("top", " "+positionYpercentage+"% "); 3427 $(this).css("left", " "+positionXpercentage+"% "); 3428 3429 var pinPopupStructure = getTemplateContent('#catalog-popup-content'); 3430 3431 if($(this).find('.pin-icon').length === 0) { 3432 $(this).append(pinPopupStructure); 3433 3434 let pinIcon = $(this).find('.pin-icon'); 3435 3436 let type = $(this).data('type'); 3437 3438 if($(window).width() < 767 && type !== 'quick-view' && type !== 'custom-link') { /*Na manjim rezolucijama za
3438sve otvori modal*/ 3439 pinIcon.attr("data-toggle", "modal"); 3440 pinIcon.attr("data-target", "#modal_catalog"); 3441 } else if(type === 'simple-text' || type === 'default') { 3442 pinIcon.addClass('custom-popup'); 3443 $(this).addClass('custom-popup'); 3444 } else if(type === 'custom-link') { 3445 pinIcon.addClass('custom-link'); 3446 } else if(type === 'quick-view') { 3447 $(this).addClass('showProductDetailsQuickViewOnModal'); 3448 } else { 3449 pinIcon.attr("data-toggle", "modal"); 3450 pinIcon.attr("data-target", "#modal_catalog"); 3451 } 3452 } 3453 3454 }) 3455 showPopupOnClick(elementDefault); 3456 },500) 3457 3458 } 3459 3460 function showPopupOnClick(element) { 3461 let areas = $(element + '.area'); 3462 let allPinIcons = areas.find('.pin-icon'); 3463 let allPopupContents = areas.find('.popup-content'); 3464 3465 if(areas.length === 0) { 3466 return false; 3467 } 3468 3469 areas.each(function () { 3470 $(this).click(function () { 3471 3472 let thisPinIcon = $(this).find('.pin-icon'); 3473 let thisPopupContent = $(this).find('.popup-content'); 3474 3475 if(thisPinIcon.hasClass('active')) { 3476 if(thisPinIcon.hasClass('custom-popup')) { 3477 thisPopupContent.addClass('hidden'); 3478 } 3479 thisPinIcon.removeClass('active'); 3480 } else { 3481 allPinIcons.removeClass('active'); 3482 thisPinIcon.addClass('active'); 3483 if(thisPinIcon.hasClass('custom-popup')) { 3484 allPopupContents.addClass('hidden'); 3485 thisPopupContent.removeClass('hidden'); 3486 } 3487 } 3488 }) 3489 }) 3490 3491 closePopupOnCloseIcon(); 3492 3493 $('.custom-popup .popup-content, .area:has(.custom-popup)').click(function(event){ 3494 event.stopPropagation(); 3495 }); 3496 } 3497 3498 function calculatePosition(element) { 3499 3500 let areaTop = element.css("top"); 3501 areaTop = Math.ceil(areaTop.substring(0, areaTop.length -2)); 3502 let areaLeft = element.css("left"); 3503 areaLeft = Math.ceil(areaLeft.substring(0, areaLeft.length -2)); 3504 let areaRight = element.css("right"); 3505 areaRight = Math.ceil(areaRight.substring(0, areaRight.length -2)); 3506 let areaBottom = element.css("bottom"); 3507 areaBottom = Math.ceil(areaBottom.substring(0, areaBottom.length -2)); 3508 3509 let popupContent = element.find('.popup-content'); 3510 3511 let popupContentHeight = popupContent.innerHeight(); 3512 let popupContentWidth = popupContent.innerWidth(); 3513 3514 if(popupContentHeight > (areaTop - 20) && popupContentHeight > (areaBottom - 20)) { 3515 popupContent.css('max-height', '230px'); 3516 popupContent.css('overflow-x', 'hidden'); 3517 popupContent.css('overflow-y', 'auto'); 3518 popupContent.addClass('top'); 3519 } else if(popupContentHeight > areaTop || areaTop < 350) { 3520 popupContent.addClass('bottom'); 3521 } else { 3522 popupContent.addClass('top'); 3523 } 3524 3525 if((popupContentWidth/2) > areaLeft) { 3526 popupContent.addClass('right'); 3527 let value = "+"+popupContentWidth/2+"px"; 3528 popupContent.css('left', value); 3529 } else if((popupContentWidth/2) > areaRight) { 3530 3531 popupContent.addClass('left'); 3532 let value = "-"+popupContentWidth/2+"px"; 3533 popupContent.css('right', value); 3534 } 3535 3536 } 3537 3538 function closePopupOnCloseIcon() { 3539 let areas = $('.catalog-reader-outer-wrapper .area'); 3540 let allPopupContents = areas.find('.popup-content'); 3541 let allPinIcons = areas.find('.pin-icon'); 3542 let allPinIconsCustom = areas.find('.pin-icon.custom-popup'); 3543 3544 $('body, .popup-content .close-icon').click(function(e) { 3545 allPopupContents.addClass('hidden'); 3546 allPinIconsCustom.removeClass('active'); 3547 }); 3548 3549 $("#modal_catalog").on("hidden.bs.modal", function () { 3550 allPinIcons.removeClass('active'); 3551 }); 3552 3553 } 3554 3555 function infoForAjax(block, sizeModal, parameter) { 3556 3557 let info = {}; 3558 let modalCatalog = $('#modal_catalog'); 3559 3560 info.block = block; 3561 info.options = {}; 3562 3563 if(block === "pinterest_gallery") { 3564 info.options.sliderId = parameter; 3565 } else if(block === "product_item") { 3566 info.options.productId = parameter; 3567 } else if (block === "product_slider") { 3568 info.options.productlistId = parameter; 3569 } 3570 3571 /*modal sizes*/ 3572 if(sizeModal === "sm-modal") { 3573 modalCatalog.removeClass('lg-modal'); 3574 modalCatalog.removeClass('xl-modal'); 3575 } else if(sizeModal === "lg-modal") { 3576 modalCatalog.addClass('lg-modal'); 3577 modalCatalog.removeClass('xl-modal'); 3578 } else { 3579 modalCatalog.removeClass('lg-modal'); 3580 modalCatalog.addClass('xl-modal'); 3581 } 3582 3583 return info; 3584 } 3585 3586 function setPopupContent($this, modalCatalog, loaderWrapper, title, shortDescription) { 3587 3588 let popupContentAjax = $this.find('.popup-content-ajax'); 3589 let catalogModalAjaxWrapper = modalCatalog.find('.catalog-ajax-wrapper'); 3590 3591 if($(window).width() > 767) { 3592 if(popupContentAjax.children().length === 0) { 3593 popupContentAjax.append("<div class='title'>"+ title +"</div>"); 3594 popupContentAjax.append("<div class='description'>
3594"+ shortDescription +"</div>"); 3595 setTimeout(function(){ 3596 calculatePosition($this); 3597 },300) 3598 } 3599 $this.find('.loader-wrapper').addClass('hidden'); 3600 } else { 3601 catalogModalAjaxWrapper.append("<div class='title'>"+ title +"</div>"); 3602 catalogModalAjaxWrapper.append("<div class='description'>"+ shortDescription +"</div>"); 3603 } 3604 loaderWrapper.addClass('hidden'); 3605 } 3606 3607 function addAjaxContentInPopup($this, ret) { 3608 if($this.find('.pin-icon').hasClass('custom-popup') && $(window).width() > 767) { 3609 $this.find('.pin-icon .popup-content-ajax').html(ret.html); 3610 $this.find('.loader-wrapper').addClass('hidden'); 3611 $this.addClass('loaded-block'); 3612 setTimeout(function(){ 3613 calculatePosition($this); 3614 },200) 3615 } 3616 } 3617 3618 function loadBlock() { 3619 3620 let areas = $('.catalog-reader-outer-wrapper .area'); 3621 let modalCatalog = $('#modal_catalog'); 3622 let modalAjaxWrapper = modalCatalog.find('.catalog-ajax-wrapper'); 3623 let loaderWrapper = modalCatalog.find('.loader-wrapper'); 3624 3625 if(areas.length == 0) { 3626 return false; 3627 } 3628 3629 areas.each(function () { 3630 3631 /*Opcije*/ 3632 3633 let productlistId = $(this).data('productListId'); 3634 let productId = $(this).data('productId'); 3635 let shortDescription = $(this).data('shortDescription'); 3636 let sliderId = $(this).data('slider'); 3637 let title = $(this).data('title'); 3638 let type = $(this).data('type'); 3639 let galleryItemId = $(this).closest('.slide').data('itemid'); 3640 let callAjax = true; 3641 let id = $(this).attr("id"); 3642 3643 let info; 3644 3645 $(this).click(function(){ 3646 3647 let $this = $(this); 3648 3649 loaderWrapper.removeClass('hidden'); 3650 3651 3652 if($this.hasClass('custom-popup') && !$this.hasClass('loaded-block') ) { 3653 $this.find('.loader-wrapper').removeClass('hidden'); 3654 } else if($this.hasClass('custom-popup') && $this.hasClass('loaded-block')) { 3655 $this.find('.loader-wrapper').addClass('hidden'); 3656 } 3657 3658 modalAjaxWrapper.html(""); 3659 3660 if(type) { 3661 switch (type) { 3662 case 'html-text': 3663 info = infoForAjax("html_text", "sm-modal"); 3664 break; 3665 case 'simple-text': 3666 setPopupContent($this, modalCatalog, loaderWrapper, title, shortDescription); 3667 callAjax = false; 3668 break; 3669 case 'image-gallery': 3670 info = infoForAjax("pinterest_gallery", "lg-modal", sliderId); 3671 break; 3672 case 'default': 3673 info = infoForAjax("product_item", "", productId); 3674 $this.find('.popup-content').addClass('small'); 3675 break; 3676 case 'quick-view': 3677 modalCatalog.addClass('xl-modal'); 3678 modalCatalog.removeClass('lg-modal'); 3679 $(this).addClass('showProductDetailsQuickViewOnModal'); 3680 callAjax = false; 3681 break; 3682 case 'list': 3683 info = infoForAjax("product_slider", "xl-modal", productlistId); 3684 break; 3685 case 'custom-link': 3686 callAjax = false; 3687 break; 3688 default: 3689 info = infoForAjax("product_item", "", productId); 3690 $this.find('.popup-content').addClass('small'); 3691 } 3692 } 3693 3694 if(callAjax && !$this.hasClass('loaded-block')) { 3695 $.ajax({ 3696 type: "POST", 3697 url: nb_active_page_url, 3698 data: { 3699 ajax: "yes", 3700 task: "modalcontentcatalog", 3701 pinId:id, 3702 galleryItemId: galleryItemId, 3703 block: info.block, 3704 options: info.options, 3705 sliderId: sliderId, 3706 productListId: productlistId, 3707 productId: productId, 3708 }, 3709 dataType: 'json', 3710 success: function(ret){ 3711 3712 if(ret.flag){ 3713 modalAjaxWrapper.html(ret.html);
3714 if(type !== 'image-gallery') { 3715 loaderWrapper.addClass('hidden'); 3716 } else { 3717 setTimeout(function(){ 3718 loaderWrapper.addClass('hidden'); 3719 }, 800); 3720 } 3721 3722 addAjaxContentInPopup($this, ret); 3723 3724 initModalProductSlider(); 3725 3726 nbPinterest.handleMasonry(); 3727 3728 nbshopJS.handleProductSizeSelector('.catalog-ajax-wrapper'); 3729 handleBuyProductOnListing('.catalog-ajax-wrapper '); 3730 handleFavoriteProduct($('.catalog-ajax-wrapper .favorite')); 3731 nbshopJS.changeProductQuantity('.catalog-ajax-wrapper '); 3732 handleFavoriteProduct($('.popup-content-ajax .favorite')); 3733 if($('.catalog-ajax-wrapper .product-item .showProductQueryViewOnModal').length > 0){ 3734 new handleProductQueryViewOnModal($('.catalog-ajax-wrapper .product-item .showProductQueryViewOnModal')); 3735 } 3736 3737 } 3738 } 3739 }); 3740 } 3741 }); 3742 }) 3743 3744 }; 3745 3746 var handleStoreMap = function(){ 3747 var storeMapWrapper = $('.store-map-wrapper'); 3748 var storePanel = $('.storelocator-panel'); 3749 storeMapWrapper.height($(window).height() - $('.header').height()); 3750 storePanel.height(storeMapWrapper.height() - 50); 3751 }; 3752 3753 var handleScrollSlider = function(){ 3754 var sliderWrapper = $('.scroll-slider-wrapper'); 3755 var scrollSlider = sliderWrapper.next(".scroll-slider-object"); 3756 var totalWidth = scrollSlider.find(".scroll-slider-width").width(); 3757 var prevButton = sliderWrapper.find('.slider-prev'); 3758 var nextButton = sliderWrapper.find('.slider-next'); 3759 var step = scrollSlider.outerWidth(); 3760 var animationSpeed = 500; 3761 3762 if(scrollSlider.width() > totalWidth){ 3763 prevButton.hide(); 3764 nextButton.hide(); 3765 } 3766 3767 prevButton.click(function(){ 3768 scrollSlider.animate({ scrollLeft: '-='+step }, animationSpeed); 3769 }); 3770 3771 nextButton.click(function(){ 3772 scrollSlider.animate({ scrollLeft: '+='+step }, animationSpeed); 3773 }); 3774 3775 }; 3776 3777 /* 3778 * SLIDER WITH ONE ITEM PER PAGE 3779 */ 3780 var handleOneitemSlider = function(){
3781 var $slider = $('.oneitem-slider'); 3782 3783 $slider.handleSlider({ 3784 slidesToShow: 1, 3785 slidesToScroll: 1, 3786 dots: true, 3787 responsive: [ 3788 { 3789 breakpoint: 1024, 3790 settings: { 3791 slidesToShow: 1, 3792 slidesToScroll: 1 3793 } 3794 } 3795 ] 3796 }); 3797 }; 3798 3799 var handleScrollDown = function(){ 3800 if($(window).width() > 768){ 3801 var buttontop = $('.scroll-down'); 3802 3803 buttontop.click(function(){ 3804 $('html, body').animate({ 3805 scrollTop: $(".background-slider-div").offset().top 3806 }, 1000); 3807 }); 3808 } 3809 }; 3810 3811 var handleMainNavMobile = function(){ 3812 var caret = $('.nav-main > li > a > i'); 3813 if($(window).width() < mobileBreakRes) { 3814 caret.click(function () { 3815 $(this).parent().toggleClass('show',0); 3816 $('.nav-main > li > a').fadeToggle(200, "linear" ,'hidden'); 3817 $('.nav-main > li.has-bg img').fadeToggle(200, "linear" ,'hidden'); 3818 $('.nav-main-useractions').fadeToggle(0, "linear" ,'hidden'); 3819 $('.menu-login-wrapper').toggleClass('hide',0); 3820 }); 3821 } 3822 }; 3823 3824 /* 3825 * PROMO MODAL 3826 * Description: Modal that is showed 2 seconds as page gets loaded 3827 * Plugin used: Bootstrap's Modal 3828 */ 3829 var handleModalPromo = function($modal){ 3830 if(!$modal.length || app.width() <= 767) return; 3831 3832 var $images = $modal.find('img'), 3833 $virtualImages = $(), //images that exists only in browser's memory, those are not printed 3834 width = 0; 3835 3836 $images.each(function(){ 3837 //get source of real images and add them to memory 3838 $virtualImages = $virtualImages.add($('<img>').attr('src', $(this).attr('src'))); 3839 }); 3840 3841 var show = function(){ 3842 //once all images have been loaded begin show modal 3843 $virtualImages.imagesLoaded(function(){ 3844 if($modal.hasClass('promo-modal')){ 3845 //calculate modal's width in order to get him centered 3846 $virtualImages.each(function(){ 3847 if($(this)[0].width > width){ 3848 width = $(this)[0].width; 3849 } 3850 }); 3851 //add 40px as modal-dialog has 20px padding-left and padding-right 3852 $modal.find('.modal-dialog').width(width + 40); 3853 } 3854 3855 }); 3856 }; 3857 3858 setTimeout(show, $modal.data('delay')); 3859 }; 3860 3861 var handleForms = function(){ 3862 3863 var initiateValidationByDataAttr = function(){ 3864 $('[data-validation-validate]').validate(); 3865 }; 3866 3867 var login = function(){ 3868 $('.login_form').each(function(){ 3869 var validate = $(this).validate({ 3870 formData: { ajax: 'yes', task: 'login' }, 3871 refreshPage: true, 3872 }).data('nb.validate'); 3873 3874 validate.$element.bind('nb.validate.remoteSuccess', function(e){ 3875 validate.$element.find('.modal-body :not(.alert), .modal-footer').addClass('hidden'); 3876 //window.location.reload(); 3877 3878 }); 3879 }); 3880 }; 3881 3882 var sendTockenWithoutPassword = function(){ 3883 3884 $('.login_form_with_token_without_pass #login_email').on("change", function(e) { 3885 var value = $(this).val(); 3886 $('.login_form_send_token_without_pass #login_email').val($(this).val()); 3887 }) 3888 3889 $('.login_form_with_token_without_pass').each(function(){ 3890 3891 var form = $('.login_form_send_token_without_pass'); 3892 var submitBtn = form.find('#send_number'); 3893 submitBtn.addClass('active'); 3894 3895 var validate = $(this).validate({ 3896 formData: { ajax: 'yes', task: 'login_with_token_without_password' }, 3897 refreshPage: false, 3898 }).data('nb.validate'); 3899 3900 $('.login_form_with_token_without_pass .validation-errors-list').addClass('hidden '); 3901 3902 validate.$element.bind('nb.validate.remoteSuccess', function(e){ 3903 if(window.NB_AJAX_RET){ 3904 if(window.NB_AJAX_RET.flag){ 3905 3906 $('.login_form_with_token_without_pass').addClass('hidden'); 3907 $('.login_form_send_token_without_pass').removeClass('hidden'); 3908 3909 $('.login_form_send_token_without_pass #login_email').val(window.NB_AJAX_RET.email); 3910 3911 form.find('.alert').html(window.NB_AJAX_RET.info); 3912 form.find('.alert').removeClass('hidden').removeClass('alert-danger').addClass('alert-success'); 3913 submitBtn.removeClass('active'); 3914 }else{ 3915 form.find('.alert').html(window.NB_AJAX_RET.info); 3916 form.find('.alert').removeClass('hidden').removeClass('alert-success').addClass('alert-danger'); 3917 submitBtn.removeClass('active'); 3918 } 3919 } 3920 }); 3921 3922 validate.$element.bind('nb.validate.remoteError', function(e){ 3923 form.find('.alert').html(window.NB_AJAX_RET.info); 3924 form.find('.alert').removeClass('hidden').removeClass('alert-success').addClass('alert-danger'); 3925 submitBtn.removeClass('active'); 3926 }); 3927 }); 3928 }; 3929 3930 var loginWithTockenWithoutPasswordAfterAjax = function(){ 3931 if($(window).width() > 1200) { 3932 $('body').click(function(e){ 3933 if($('.login-dropdown').hasClass('active') && $(e.target).closest('.login-dropdown').length === 0) { 3934 $('.login-dropdown').removeClass('active'); 3935 } else if(!$('.login-dropdown').hasClass('active') && $(e.target).closest('.user .item-login.loged-in').length === 1){ 3936 $('.user .item-login.loged-in .login-dropdown').addClass('active'); 3937 } 3938 }); 3939 } 3940 }; 3941 3942 var loginWithTockenWithoutPassword = function(){ 3943 $('.login_form_send_token_without_pass').each(function(){ 3944
3945 var validate = $(this).validate({ 3946 formData: { ajax: 'yes', task: 'check_token_for_login' }, 3947 refreshPage: true, 3948 }).data('nb.validate'); 3949 3950 validate.$element.bind('nb.validate.remoteSuccess', function(e){ 3951 if(window.NB_AJAX_RET.ajaxLogin){ 3952 $(".block.user.user-with-dropdown").replaceWith(window.NB_AJAX_RET.html); 3953 loginWithTockenWithoutPasswordAfterAjax(); 3954 $('#quiz_modal_loyalty').modal('hide'); 3955 $('.quiz-product-finder-questions .buttons .btn-wrapper.quiz-result-question .btn.quiz-submit-modal').addClass('hidden'); 3956 $('.quiz-product-finder-questions .buttons .btn-wrapper.quiz-result-question .btn.quiz-submit-btn').removeClass('hidden'); 3957 if(!$('body').hasClass('uc-quiz_listing')) { 3958 window.location.reload(); 3959 } 3960 } else { 3961 window.location.reload(); 3962 } 3963 }); 3964 }); 3965 }; 3966 3967 var loginVirtualCard = function(){ 3968 $('.login_form_sb').each(function(){ 3969 var validate = $(this).validate({ 3970 formData: { nbAjax: 1, task: 'loyalty_virtual_card',type:'login',refreshPage:true }, 3971 refreshPage: true, 3972 }).data('nb.validate'); 3973 3974 validate.$element.bind('nb.validate.remoteSuccess', function(e){ 3975 validate.$element.find('.modal-body :not(.alert), .modal-footer').addClass('hidden'); 3976 window.location.reload(); 3977 }); 3978 }); 3979 }; 3980 var lostPassword = function(){ 3981 $('.lost_password_form').each(function(){ 3982 var validate = $(this).validate({ 3983 formData: { ajax: 'yes', task: 'lostpassword' } 3984 }).data('nb.validate'); 3985 3986 validate.$element.bind('nb.validate.remoteSuccess', function(e){ 3987 validate.$element.find('.modal-body :not(.alert), .modal-footer').addClass('hidden'); 3988 }); 3989 3990 $('#lost_password_modal').on('show.bs.modal', function(){ 3991 validate.$element.find('#lost_password_email').val('').removeClass('parsley-success parsley-error'); 3992 validate.$element.find('.modal-body :not(.alert), .modal-footer').removeClass('hidden'); 3993 validate.resetAlertContainer(); 3994 }); 3995 }); 3996 }; 3997 3998 var lostPasswordSSO = function(){ 3999 $('.sso_lost_password_form').each(function(){ 4000 var validate = $(this).validate({ 4001 formData: { ajax: 'yes', type: 'request_password_change' } 4002 }).data('nb.validate'); 4003 validate.$element.bind('nb.validate.remoteSuccess', function(e){ 4004 validate.$element.find('.form-group').addClass('hidden'); 4005 validate.$element.find('.button-wrapper').addClass('hidden'); 4006 }); 4007 4008 }); 4009 }; 4010 4011 var resetPasswordSSO = function(){ 4012 $('#ssoFormResetPassword').each(function(){ 4013 var validate = $(this).validate({ 4014 formData: { ajax: 'yes', type: 'confirm_password_change' } 4015 }).data('nb.validate'); 4016 validate.$element.bind('nb.validate.remoteSuccess', function(e){ 4017 validate.$element.find('.form-group').addClass('hidden'); 4018 validate.$element.find('.button-wrapper').addClass('hidden'); 4019 }); 4020 4021 }); 4022 }; 4023 4024 var resetPassword = function(){ 4025 var form = $('#formResetPassword'); 4026 if(!form.length) return; 4027 var validate = form.validate({ 4028 formData: { submit: true } 4029 }).data('nb.validate'); 4030 }; 4031 4032 var replacment = function(){ 4033 4034 $('.only-for-return').addClass('hidden'); 4035 $('.only-for-return').find('.form-control').prop("required", "false"); 4036 $('.only-for-return').find('.form-control').removeAttr('required'); 4037 $("select.replacement-type").change(function(){ 4038 var selectedCountry = $(this).children("option:selected").val(); 4039 //alert("You have selected the country - " + selectedCountry); 4040 4041 if(selectedCountry == 1 || selectedCountry == 2){ 4042 4043 $('.only-for-return').removeClass('hidden'); 4044 $('.only-for-return').find('.form-control').prop("required", "true"); 4045 $('.only-for-return').find('.form-control').addAttr('required'); 4046 4047 }else{ 4048 $('.only-for-return').addClass('hidden'); 4049 $('.only-for-return').find('.form-control').prop("required", "false"); 4050 $('.only-for-return').find('.form-control').removeAttr('required'); 4051 } 4052 }); 4053 }; 4054 4055 var registration = function(){ 4056 4057 var typePerson = function($idElement, prefixName, validate){ 4058
4059 var validateTypePerson = function(thisElement, prefixName, validate){ 4060 4061 var $naturalPerson = $('.registration_form .'+prefixName+'naturalPerson'); 4062 var $legalEntity = $('.registration_form .'+prefixName+'legalEntity'); 4063 4064 if(thisElement.val() == 2){ 4065 var redirectLegalRegister = thisElement.data('redirect-login-user-url'); 4066 if(redirectLegalRegister !== '' && typeof redirectLegalRegister !== 'undefined'){ 4067 window.location = redirectLegalRegister; 4068 thisElement.val(1); 4069 } 4070 4071 $('.not-required-labele').addClass('hidden'); 4072 $('.not-required-labele').closest('.form-group').find('input').attr('required', true); 4073 4074 $legalEntity.removeClass('hidden'); 4075 4076 if(!$naturalPerson.hasClass('hidden')){ 4077 $naturalPerson.addClass('hidden'); 4078 } 4079 4080 //TEXT FILDS 4081 $legalEntity.find('.form-control').data('parsley-required', 'true'); 4082 $legalEntity.find('.form-control').prop("required", "true"); 4083 $legalEntity.find('.form-control').renameAttr('data-parsley-lengthone-false', 'data-parsley-lengthone'); 4084 $naturalPerson.find('.form-control').renameAttr('data-parsley-lengthone', 'data-parsley-lengthone-false'); 4085 4086 $naturalPerson.find('.form-control').data('parsley-required', 'false'); 4087 $naturalPerson.find('.form-control').prop("required", "false"); 4088 $naturalPerson.find('.form-control').removeAttr('required'); 4089 $naturalPerson.find('.form-control').renameAttr('pattern','pattern-false'); 4090 $legalEntity.find('.form-control').renameAttr('pattern-false','pattern'); 4091 4092 4093 //SELECT FILDS 4094 $legalEntity.find('select').data('parsley-required', 'true'); 4095 $legalEntity.find('select').prop("required", "true"); 4096 4097 $naturalPerson.find('select').data('parsley-required', 'false'); 4098 $naturalPerson.find('select').prop("required", "false"); 4099 $naturalPerson.find('select').removeAttr('required'); 4100 $naturalPerson.find('.form-control').renameAttr('pattern','pattern-false'); 4101 4102 4103 $naturalPerson.find('#reg_' + prefixName + 'age').data('parsley-required', 'false'); 4104 $naturalPerson.find('#reg_' + prefixName + 'age').prop("required", "false"); 4105 $naturalPerson.find('#reg_' + prefixName + 'age').removeAttr('required'); 4106 }else{ 4107 4108 $('.not-required-labele').removeClass('hidden'); 4109 $('.not-required-labele').closest('.form-group').find('input').attr('required', false); 4110 4111 $naturalPerson.removeClass('hidden'); 4112 4113 if(!$legalEntity.hasClass('hidden')){ 4114 $legalEntity.addClass('hidden'); 4115 } 4116 4117 //TEXT FILDS 4118 $naturalPerson.find('.form-control').data('parsley-required', 'true'); 4119 $naturalPerson.find('.form-control').prop("required", "true"); 4120 $naturalPerson.find('.form-control').renameAttr('data-parsley-lengthone-false', 'data-parsley-lengthone'); 4121 $legalEntity.find('.form-control').renameAttr('data-parsley-lengthone', 'data-parsley-lengthone-false'); 4122 4123 $legalEntity.find('.form-control').data('parsley-required', 'false'); 4124 $legalEntity.find('.form-control').prop("required", "false"); 4125 $legalEntity.find('.form-control').removeAttr('required'); 4126 $legalEntity.find('.form-control').renameAttr('pattern','pattern-false'); 4127 4128 //SELECT FILDS 4129 $naturalPerson.find('select').data('parsley-required', 'true'); 4130 $naturalPerson.find('select').prop("required", "true"); 4131 $naturalPerson.find('.form-control').renameAttr('pattern-false','pattern'); 4132 $naturalPerson.find('.form-control').renameAttr('pattern-false','pattern'); 4133 4134 $legalEntity.find('.form-control').renameAttr('pattern','pattern-false'); 4135 $legalEntity.find('select').data('parsley-required', 'false'); 4136 $legalEntity.find('select').prop("required", "false"); 4137 $legalEntity.find('select').removeAttr('required'); 4138 4139 4140 4141 } 4142 4143 $naturalPerson.find('#reg_'+prefixName+'company_work').data('parsley-required', 'false'); 4144 $naturalPerson.find('#reg_'+prefixName+'company_work').prop("required", "false"); 4145 $naturalPerson.find('#reg_'+prefixName+'company_work').removeAttr('required'); 4146 4147 $naturalPerson.find('#reg_'+prefixName+'company_work').data('parsley-required', 'false'); 4148 $naturalPerson.find('#reg_'+prefixName+'company_work').prop("required", "false"); 4149 $naturalPerson.find('#reg_'+prefixName+'company_work').removeAttr('required'); 4150 4151 $naturalPerson.find('#reg_'+prefixName+'position_in_company').data('parsley-required', 'false'); 4152 $naturalPerson.find('#reg_'+prefixName+'position_in_company').prop("required", "false"); 4153 $naturalPerson.find('#reg_'+prefixName+'position_in_company').removeAttr('required'); 4154 4155 $naturalPerson.find('#reg_'+prefixName+'social_status').data('parsley-required', 'false'); 4156 $naturalPerson.find('#reg_'+prefixName+'social_status').prop("required", "false"); 4157 $naturalPerson.find('#reg_'+prefixName+'social_status').removeAttr('required'); 4158 4159 $naturalPerson.find('#reg_' + prefixName + 'age').data('parsley-required', 'false'); 4160 $naturalPerson.find('#reg_' + prefixName + 'age').prop("required", "false"); 4161 $naturalPerson.find('#reg_' + prefixName + 'age').removeAttr('required'); 4162 4163 $naturalPerson.find('#reg_'+prefixName+'marriage_status').data('parsley-required', 'false'); 4164 $naturalPerson.find('#reg_'+prefixName+'marriage_status').prop("required", "false"); 4165 $naturalPerson.find('#reg_'+prefixName+'marriage_status').removeAttr('required'); 4166 4167 validate.$element.parsley().reset(); 4168 }; 4169 4170 $( "#"+$idElement).change(function() { 4171 userIdentificationChangePerson($(this)); 4172 validateTypePerson($(this), prefixName, validate); 4173 }); 4174 4175 if($("#"+$idElement).length > 0){ 4176 validateTypePerson($("#"+$idElement), prefixName, validate); 4177 } 4178 4179 }; 4180 4181 $('.registration_form').each(function() { 4182 4183 var formRegistration = $(this); 4184 4185 var flagRefreshPage = false;
4186 if ($(this).data('refresh-page') == 1) { 4187 flagRefreshPage = true; 4188 } 4189 4190 /*INput fileds*/ 4191 var dataCheckBox = ''; 4192 4193 var validate = $(this).validate({ 4194 formData: {ajax: 'yes', task: 'registration',regmarketingpermisions:dataCheckBox}, 4195 refreshPage: flagRefreshPage, 4196 }).data('nb.validate'); 4197 4198 validate.$element.bind('nb.validate.remoteSuccess', function (e) { 4199 validate.$element.find('.modal-body :not(.alert), .modal-footer, .registration-page-form-inputs :not(.alert)').addClass('hidden'); 4200 validate.$element.find('.clac-top,.clac-medium,.clac-bottom').removeClass('hidden'); 4201 validate.$element.find('.modal-header').addClass('hidden'); 4202 4203 if($('.clac-top').length > 0){ 4204 $('.clac-top').parents('.alert').addClass('sso-alert'); 4205 } 4206 $("html, body").animate({scrollTop:$('body').offset().top},1000); 4207 var tp = $('#reg_type_person').val(); 4208 if($(this).hasClass('registration_page')){ 4209 tp = $('#reg_page_type_person').val(); 4210 } 4211 nbshopJS.CustomEventTrigger('registerUserSuccess',tp); 4212 }); 4213 4214 typePerson("reg_type_person", '', validate); 4215 typePerson("reg_page_type_person", 'page_', validate); 4216 4217 var $emailLoginTokenField = $('.login_form_with_token_without_pass #login_email'); 4218 4219 var $emailField = validate.$element.find('#reg_email'); 4220 validate.addFieldRemoteValidate( 4221 $emailField, { 4222 ajax: 'yes', 4223 task: 'check_email', 4224 email: function () { 4225 return $emailField.val(); 4226 } 4227 } 4228 ); 4229 4230 var $phoneField = validate.$element.find('#reg_phone'); 4231 validate.addFieldRemoteValidate( 4232 $phoneField, { 4233 ajax: 'yes', 4234 task: 'check_phone', 4235 phone: function () { 4236 return $phoneField.val(); 4237 } 4238 } 4239 ); 4240 4241 var $emailPageField = validate.$element.find('#reg_page_email'); 4242 validate.addFieldRemoteValidate( 4243 $emailPageField, { 4244 ajax: 'yes', 4245 task: 'check_email', 4246 email: function () { 4247 return $emailPageField.val(); 4248 } 4249 } 4250 ); 4251 4252 var $phonePageField = validate.$element.find('#reg_page_phone'); 4253 validate.addFieldRemoteValidate( 4254 $phonePageField, { 4255 ajax: 'yes', 4256 task: 'check_phone', 4257 phone: function () { 4258 return $phonePageField.val(); 4259 } 4260 } 4261 ); 4262 4263 var $myProductSerialNumberPageField = validate.$element.find('#reg_page_my_product_serial_number'); 4264 if($myProductSerialNumberPageField.length > 0){ 4265 validate.addFieldRemoteValidate( 4266 $myProductSerialNumberPageField, { 4267 ajax: 'yes', 4268 task: 'check_product_serial_number', 4269 productSerialNumber: function(){ 4270 return $myProductSerialNumberPageField.val(); 4271 } 4272 } 4273 ); 4274 }; 4275 4276 var $ticketNumberPageField = validate.$element.find('#reg_page_ticket_number'); 4277 if($ticketNumberPageField.length > 0){ 4278 validate.addFieldRemoteValidate( 4279 $ticketNumberPageField, { 4280 ajax: 'yes', 4281 task: 'check_ticket_number', 4282 ticketNumber: function(){ 4283 return $ticketNumberPageField.val(); 4284 } 4285 } 4286 ); 4287 }; 4288 4289 var $registrationModal = $('#register_modal'); 4290 $emailField.bind('nb.validate.remoteErrorData', function(e, msg){ 4291 $registrationModal.modal('hide'); 4292 e.preventDefault(); 4293 4294 /* Ukoliko se prosledi podateka sa login forme sa tokenom proverava se vresnost ize tog polja */ 4295 var $emailVal = $emailField.val(); 4296 if($emailLoginTokenField.val()){ 4297 $emailVal = $emailLoginTokenField.val(); 4298 } 4299 4300 if(!$('.activate-account-modal').hasClass('in')){ 4301 bootbox.dialog({ 4302 message: msg, 4303 title: $registrationModal.data('reg-modal-label'), 4304 className: "activate-account-modal", 4305 buttons: { 4306 success: { 4307 label: $registrationModal.data('reg-modal-success-label'), 4308 className: "btn-success", 4309 callback: function(){ 4310 var $bootboxConfirm = $('.activate-account-modal'), 4311 $bootboxConfirmBody = $bootboxConfirm.find('.modal
4311-body'); 4312 4313 var $loaderIcon = '<div class="loader-icon loader-icon-inline loader-icon-xs"></div>'; 4314 $bootboxConfirmBody.html($registrationModal.data('reg-modal-success-text') + '...'+$loaderIcon); 4315 4316 $.ajax({ 4317 type: "POST", 4318 url: validate.$element.data('remote-url'), 4319 data: { 4320 ajax: 'yes', 4321 task: 'completionregistrationprocess', 4322 email: $emailVal 4323 }, 4324 dataType: 'json', 4325 success: function(ret){ 4326 if(ret.flag){ 4327 4328 $bootboxConfirmBody.html('<div class="alert alert-success">'+ret.info+'</div>'); 4329 $bootboxConfirm.find('.modal-footer .btn').remove(); 4330 validate.resetForm(); 4331 4332 if(ret.flagRefreshPage){ 4333 setTimeout(window.location = ret.backUrl, 2000); 4334 } 4335 4336 } else { 4337 $bootboxConfirmBody.html('<div class="alert alert-danger">'+ret.info+'</div>'); 4338 } 4339 } 4340 }); 4341 4342 //dont hide the bootbox-confirm modal 4343 return false; 4344 } 4345 }, 4346 danger: { 4347 label: $registrationModal.data('reg-modal-danger-label'), 4348 className: "btn-default btn-icon-left icon-arrow-long-left pull-left", 4349 callback: function(){ 4350 var $bootboxConfirm = $('.activate-account-modal'); 4351 $bootboxConfirm.data('modal', null); 4352 $registrationModal.modal('show'); 4353 } 4354 }, 4355 } 4356 }); 4357 } 4358 4359 }); 4360 4361 var $registrationPage = $('#registration_page'); 4362 //na strani 4363 $emailPageField.bind('nb.validate.remoteErrorData', function(e, msg){ 4364 4365 //$registrationPage.modal('hide'); 4366 bootbox.dialog({ 4367 message: msg, 4368 title: $registrationPage.data('reg-modal-label'), 4369 className: "activate-account-modal", 4370 buttons: { 4371 success: { 4372 label: $registrationPage.data('reg-modal-success-label'), 4373 className: "btn-success", 4374 callback: function(){ 4375 var $bootboxConfirm = $('.activate-account-modal'), 4376 $bootboxConfirmBody = $bootboxConfirm.find('.modal-body'); 4377 4378 var $loaderIcon = '<div class="loader-icon loader-icon-inline loader-icon-xs"></div>'; 4379 $bootboxConfirmBody.html($registrationPage.data('reg-modal-success-text') + '...'+$loaderIcon); 4380 4381 $.ajax({ 4382 type: "POST", 4383 url: validate.$element.data('remote-url'), 4384 data: { 4385 ajax: 'yes', 4386 task: 'completionregistrationprocess', 4387 email: $emailPageField.val() 4388 }, 4389 dataType: 'json', 4390 success: function(ret){ 4391 if(ret.flag){ 4392 $bootboxConfirmBody.html('<div class="alert alert-success">'+ret.info+'</div>'); 4393 $bootboxConfirm.find('.modal
4393-footer .btn').remove(); 4394 validate.resetForm(); 4395 4396 if(ret.flagRefreshPage){ 4397 setTimeout(window.location = ret.backUrl, 2000); 4398 } 4399 4400 } else { 4401 $bootboxConfirmBody.html('<div class="alert alert-danger">'+ret.info+'</div>'); 4402 } 4403 } 4404 }); 4405 4406 //dont hide the bootbox-confirm modal 4407 return false; 4408 } 4409 }, 4410 danger: { 4411 label: $registrationPage.data('reg-modal-danger-label'), 4412 className: "btn-default btn-icon-left icon-arrow-long-left pull-left", 4413 callback: function(){ 4414 var $bootboxConfirm = $('.activate-account-modal'); 4415 $bootboxConfirm.data('modal', null); 4416 //$registrationPage.modal('show'); 4417 } 4418 }, 4419 } 4420 }); 4421 4422 }); 4423 $myProductSerialNumberPageField.bind('nb.validate.remoteErrorData', function(e, msg){ 4424 e.preventDefault(); 4425 if($myProductSerialNumberPageField.val() != ''){ 4426 $myProductSerialNumberPageField.val(''); 4427 } 4428 return false; 4429 }); 4430 4431 $phoneField.bind('nb.validate.remoteErrorData', function(e, msg){ 4432 e.preventDefault(); 4433 if($phoneField.val() != ''){ 4434 $phoneField.val(''); 4435 } 4436 return false; 4437 }); 4438 4439 $myProductSerialNumberPageField.bind('nb.validate.remoteSuccessData', function(e, msg){ 4440 e.preventDefault(); 4441 if($myProductSerialNumberPageField.val() != ''){ 4442 $myProductSerialNumberPageField.data('parsley-required', 'false'); 4443 $myProductSerialNumberPageField.prop("required", "false"); 4444 $myProductSerialNumberPageField.removeAttr('required'); 4445 validate.$element.parsley().reset(); 4446 } 4447 return true; 4448 }); 4449 4450 $ticketNumberPageField.bind('nb.validate.remoteErrorData', function(e, data){ 4451 e.preventDefault(); 4452 if($ticketNumberPageField.val() != ''){ 4453 //$ticketNumberPageField.val(""); 4454 } 4455 return false; 4456 }); 4457 4458 $ticketNumberPageField.bind('nb.validate.remoteSuccessData', function(e, data){ 4459 e.preventDefault(); 4460 if($ticketNumberPageField.val() != ''){ 4461 if(data.flagVerifyAccount){ 4462 formRegistration.find(".first-step-btn").attr("disabled", false); 4463 formRegistration.find('.message-verify-account').removeClass("hidden"); 4464 formRegistration.find('.message-verify-account').html(data.accountInfo); 4465 formRegistration.find('.verify-account-btn').removeClass("hidden"); 4466 formRegistration.find(".first-step-btn").attr("disabled", true); 4467 formRegistration.find(".first-step-btn").addClass('hidden'); 4468 4469 }else{ 4470 formRegistration.find(".first-step-btn").attr("disabled", true); 4471 formRegistration.find(".first-step-btn").attr("disabled", false); 4472 formRegistration.find(".first-step-btn").removeClass('hidden'); 4473 formRegistration.find('.message-verify-account').addClass("hidden"); 4474 formRegistration.find('.message-verify-account').html(""); 4475 formRegistration.find('.verify-account-btn').addClass("hidden"); 4476 } 4477 } 4478 return false;
4479 }); 4480 4481 var verifyAccount = function(form){ 4482 //todo verifikujemo nalog koriniska 4483 var dataForm = form.serialize(); 4484 dataForm += '&ajax=yes&task=verifyaccount'; 4485 $.ajax({ 4486 type: "POST", 4487 url: form.data('remote-url'), 4488 data: dataForm, 4489 dataType: 'json', 4490 success: function(ret){ 4491 if(ret.flag){ 4492 if(ret.flagRefreshPage){ 4493 4494 setTimeout(window.location = ret.backUrl, 2000); 4495 } 4496 } 4497 } 4498 }); 4499 }; 4500 4501 formRegistration.find('.verify-account-btn').click(function (){ 4502 var flag = false; 4503 setTimeout(function () { 4504 $('.reg-step.step-general-information input').each(function () { 4505 if($(this).hasClass('validation-error')){ 4506 $(this).css('border-color', 'red').parent().children('label').css('color', 'red'); 4507 $(this).parent().parent().children('label').css('color', 'red'); 4508 flag = true; 4509 } 4510 if($('.registration-page .login-style .form-group .password-strength .label .strong').hasClass('hidden')){ 4511 flag = true; 4512 $('#reg_page_password').css('border-color', 'red'); 4513 } 4514 }); 4515 if(!flag){ 4516 verifyAccount(formRegistration); 4517 } 4518 }, 1000); 4519 }); 4520 }); 4521 }; 4522 4523 var newsletter = function(){ 4524 var form = $('#newsletter_form, #newsletter_form_sidebar'); 4525 if(!form.length) return; 4526 var newsletterValidate = form.validate({ 4527 formData: { task: 'save', nbAjax: 1, nbTask: 'newsletter' } 4528 }).data('nb.validate'); 4529 newsletterValidate.$element.bind('nb.validate.remoteError', function(e){ 4530 nbshopJS.CustomEventTrigger('newsletter_login_error'); 4531 }); 4532 newsletterValidate.$element.bind('nb.validate.remoteSuccess', function(e){ 4533 newsletterValidate.$element.find('.form-control, .btn, .form-group-checklabel, .nl-wrapper-input').addClass('hidden'); 4534 nbshopJS.CustomEventTrigger('newsletter_login_success'); 4535 }); 4536 }; 4537 4538 4539 var newsletterViber = function(){ 4540 var form = $('#viber_form, #viber_form_landing'); 4541 if(!form.length) return; 4542 var newsletterValidate = form.validate({ 4543 formData: { task: 'save_newsletter_viber', nbAjax: 1, nbTask: 'newsletter' } 4544 }).data('nb.validate'); 4545 newsletterValidate.$element.bind('nb.validate.remoteError', function(e){ 4546 nbshopJS.CustomEventTrigger('newsletter_login_error'); 4547 }); 4548 newsletterValidate.$element.bind('nb.validate.remoteSuccess', function(e){ 4549 newsletterValidate.$element.find('.form-control, .btn, .form-group-checklabel').addClass('hidden'); 4550 nbshopJS.CustomEventTrigger('newsletter_login_success'); 4551 }); 4552 }; 4553 4554 4555 var itemFormContactParts = function(){ 4556 var form = $('#itemFormContactParts'); 4557 if(!form.length) return; 4558 4559 4560 var itemFormContactPartsValidate = form.validate({ 4561 formData: { task: 'item_form_contact_parts', ajax: 'yes' } 4562 }).data('nb.validate'); 4563 itemFormContactPartsValidate.$element.bind('nb.validate.remoteSuccess', function(e){ 4564 if(window.NB_AJAX_RET.flag && window.NB_AJAX_RET.redirect != ''){ 4565 window.location = window.NB_AJAX_RET.redirect; 4566 } 4567 itemFormContactPartsValidate.$element.find('.form-group, .btn, .heading-wrapper h4.title').addClass('hidden'); 4568 }); 4569 }; 4570 4571 var itemFormContactMessage = function(){
4572 var form = $('#itemFormContactMessage'); 4573 if(!form.length) return; 4574 4575 4576 var itemFormContactMessageValidate = form.validate({ 4577 formData: { task: 'item_form_contact_message', ajax: 'yes' } 4578 }).data('nb.validate'); 4579 itemFormContactMessageValidate.$element.bind('nb.validate.remoteSuccess', function(e){ 4580 if(window.NB_AJAX_RET.flag && window.NB_AJAX_RET.redirect != ''){ 4581 window.location = window.NB_AJAX_RET.redirect; 4582 } 4583 itemFormContactMessageValidate.$element.find('.form-group, .btn').addClass('hidden'); 4584 }); 4585 }; 4586 4587 var itemFormContactMessageNew = function(){ 4588 var form = $('#itemFormContactMessageNew'); 4589 if(!form.length) return; 4590 var itemFormContactMessageNewValidate = form.validate({ 4591 formData: { task: 'item_form_contact_message_new', ajax: 'yes' } 4592 }).data('nb.validate'); 4593 itemFormContactMessageNewValidate.$element.bind('nb.validate.remoteSuccess', function(e){ 4594 itemFormContactMessageNewValidate.$element.find('.form-group, .btn, .form-group-checklabel').addClass('hidden'); 4595 }); 4596 }; 4597 var itemFormContactMessageV2 = function(){ 4598 var form = $('#itemFormContactMessageV2'); 4599 if(!form.length) return; 4600 var itemFormContactMessageNewValidate = form.validate({ 4601 formData: { task: 'item_form_contact_message_newv1', ajax: 'yes' } 4602 }).data('nb.validate'); 4603 itemFormContactMessageNewValidate.$element.bind('nb.validate.remoteSuccess', function(e){ 4604 itemFormContactMessageNewValidate.$element.find('.form-group, .btn, .form-group-checklabel').addClass('hidden'); 4605 }); 4606 }; 4607 4608 var newsletterLanding = function(){ 4609 var form = $('#newsletter_form_landing'); 4610 if(!form.length) return; 4611 $modal = $('#modal-nl-confirm'); 4612 var newsletterValidate = form.validate({ 4613 formData: { task: 'save_landing', nbAjax: 1, nbTask: 'newsletter' } 4614 }).data('nb.validate'); 4615 newsletterValidate.$element.bind('nb.validate.remoteSuccess', function(e){ 4616 newsletterValidate.$element.find('.form-control, .btn').addClass('hidden'); 4617 if($modal.length > 0){ 4618 $modal.modal('show'); 4619 } 4620 }); 4621 }; 4622 4623 var subscribe = function(){ 4624 var form = $('#subscribe_form, #subscribe_form_solo'); 4625 if(!form.length) return; 4626 var subscribeValidate = form.validate({ 4627 formData: { ajax: 'yes', task: 'save_subscribe', nbAjax: '1' } 4628 }).data('nb.validate'); 4629 subscribeValidate.$element.bind('nb.validate.remoteSuccess', function(e){ 4630 subscribeValidate.$element.find('.form-inputs').addClass('hidden'); 4631 $(document).trigger('popSubscribeSuccess'); 4632 }); 4633 }; 4634 4635 var activatePublicUser = function(){ 4636 4637 var form = $('#public_user_activatione_form'); 4638 if(form.length === 0){ 4639 return false; 4640 } 4641 4642 var mainButton = $('#acitvateUser'); 4643 var dataForm = ''; 4644 var resetButton = $('.reset-activation-button'); 4645 var mailinput = $('#public_user_activation_email'); 4646 resetButton.click(function(){ 4647 resetActivationPUForm(); 4648 }); 4649 4650 $('#onload_modal').on('shown.bs.modal', function (e) { 4651 4652 document.getElementById("login_password_activate").required = false; 4653 }); 4654 4655 form.each(function(){ 4656 4657 var validate = $(this).validate({ 4658 formData: { nbAjax: 1, task: 'check_email_status',returnStatus:true,noreset:true } 4659 }).data('nb.validate'); 4660 4661 validate.$element.bind('nb.validate.remoteSuccess', function(e){ 4662 $('.public-user-wrapper').addClass('hidden'); 4663 mainButton.addClass('hidden'); 4664 mailinput.attr('readonly',true); 4665 resetButton.removeClass('hidden'); 4666 switch (window.NB_AJAX_STATUS) { 4667 case 'register_active': 4668 UserExistsActive(form); 4669 break; 4670 case 'not_register': 4671 $('.public-user-not-registered').removeClass('hidden'); 4672 form.find('.alert').removeClass('alert-success').addClass('alert-danger'); 4673 break; 4674 case 'register_not_active': 4675 ActivateUser(form,mailinput); 4676 break; 4677 } 4678 }); 4679 }); 4680 4681 function resetActivationPUForm(){ 4682 $("#public_user_activatione_form")[0].reset(); 4683 $('.public-user-wrapper').addClass('hidden'); 4684 $('.public-user-not-acitivated').addClass('hidden'); 4685 mainButton.removeClass('hidden'); 4686 mailinput.attr('readonly',false); 4687 resetButton.addClass('hidden'); 4688 $('#user_public_activate .alert').addClass('hidden'); 4689 } 4690 4691 function ActivateUser(form,mail){ 4692 $('.public-user-not-acitivated').removeClass('hidden'); 4693 $('#activate_user').click(function(e){ 4694 $(this).addClass('active'); 4695 e.preventDefault(); 4696 $.ajax({ 4697 type: "POST", 4698 url: form.data('register-url'), 4699 data: { 4700 ajax: 'yes', 4701 task: 'completionregistrationprocess', 4702 email: mail.val() 4703 }, 4704 dataType: 'json', 4705 success: function(ret){ 4706 if(ret.flag){ 4707 4708 form.html('<div class="alert alert-success">'+ret.info+'</div>'); 4709 if(ret.flagRefreshPage){ 4710 setTimeout(window.location = ret.backUrl, 2000); 4711 } 4712 4713 } 4714 4715 } 4716 }); 4717 }); 4718 } 4719 4720 function LoginFromActivation(loginLink,dataForm,loginbutton){ 4721 $(loginbutton).addClass('active'); 4722 $.ajax({ 4723 type: "POST", 4724 url: loginLink, 4725 data: dataForm, 4726 dataType: 'json', 4727 success: function(ret){ 4728 4729 loginbutton.removeClass('active'); 4730 if(ret.flag){ 4731 console.log(ret); 4732 toastr.success(ret.info); 4733 location.reload(); 4734 }else{ 4735 toastr.error(ret.info); 4736 } 4737 } 4738 }); 4739 } 4740 4741 function UserExistsActive(form){ 4742 var loginLink = form.data('login-url'); 4743 var $emailfield = $('#public_user_activation_email'); 4744 var loginbutton = $('#loginUser'); 4745 var mainbutton = $('#acitvateUser'); 4746 var $activepass = $('#login_password_activate'); 4747 var tmp=''; 4748 4749 $emailfield.attr('readonly',true); 4750 form.find('#login_password_activate').val('').prop('checked', false); 4751 4752 $('.public-user-enter-password').removeClass('hidden'); 4753 tmp = $activepass.attr('id').replace('_activate',''); 4754 $activepass.attr('name',tmp); 4755 tmp=''; 4756 4757 form.append('<input type="hidden" id="login_mail_act" name="login_email" />'); 4758 $('#login_mail_act').val($emailfield.val()); 4759 form.attr('data-remote-url',loginLink); 4760 4761 /*Forma Ajax*/ 4762 loginbutton.click(function(e){ 4763 dataForm = form.serialize(); 4764 dataForm += '&ajax=yes&task=login'; 4765 e.preventDefault(); 4766 LoginFromActivation(loginLink,dataForm,$(this)); 4767 }); 4768 } 4769 4770 }; 4771 4772 var comment = function(){ 4773 4774 var reloadComments = function($form){ 4775 $.ajax({ 4776 type: "POST", 4777 url: nb_active_page_url, 4778 data: 'nbAjax=1&task=reload_comment&'+$form, 4779 contentType: "application/x-www-form-urlencoded;charset=UTF-8", 4780 //dataType: 'json', 4781 success: function(ret){ 4782 $('#commentsContent').html(ret); 4783 } 4784 }); 4785 }; 4786 4787 $('.form-comment').each(function(){ 4788 4789 var formComment = $(this).serialize(); 4790
4791 var validate = $(this).validate({ 4792 formData: { nbAjax: 1, ajax: 'yes', task: 'save_comment' } 4793 }).data('nb.validate'); 4794 4795 validate.$element.bind('nb.validate.remoteSuccess', function(e){ 4796 validate.$element.find('.form-control, .btn, .form-group label, .form-group .styled-select, .required-info, .rating-info, #comment_modal .comments .inputs-wrapper, .comments-input-wrapper .inputs-wrapper').addClass('hidden'); 4797 reloadComments(formComment); 4798 }); 4799 }); 4800 }; 4801 4802 var productPriceQuery = function(){ 4803 var form = $('#product_price_query_form'); 4804 if(!form.length) return; 4805 4806 var subscribeValidate = form.validate({ 4807 formData: { ajax: 'yes', task: 'productpricequery' } 4808 }).data('nb.validate'); 4809 4810 subscribeValidate.$element.bind('nb.validate.remoteSuccess', function(e){ 4811 subscribeValidate.$element.find('.form-inputs').addClass('hidden'); 4812 subscribeValidate.$element.find('.modal-footer').addClass('hidden'); 4813 }); 4814 }; 4815 4816 var productTDSDocumentationQuery = function(){ 4817 var form = $('#tds_documentation_query_form'); 4818 if(!form.length) return; 4819 4820 var subscribeValidate = form.validate({ 4821 formData: { ajax: 'yes', task: 'producttdsdocumentationquery' } 4822 }).data('nb.validate'); 4823 4824 subscribeValidate.$element.bind('nb.validate.remoteSuccess', function(e){ 4825 subscribeValidate.$element.find('.form-inputs').addClass('hidden'); 4826 subscribeValidate.$element.find('.modal-footer').addClass('hidden'); 4827 }); 4828 }; 4829 4830 var contactTeamSale = function(){ 4831 var form = $('#contact_form_teamsale'); 4832 if(!form.length) return; 4833 4834 var teamsaleValidate = form.validate({ 4835 formData: { ajax: 'yes', task: 'teamsale' } 4836 }).data('nb.validate'); 4837 4838 teamsaleValidate.$element.bind('nb.validate.remoteSuccess', function(e){ 4839 teamsaleValidate.$element.find('.form-group , .btn').addClass('hidden'); 4840 }); 4841 }; 4842 4843 var cart = function(flagIstanceSubmitTicket){ 4844 4845 var billingAddress = function($idElement, typePerson, prefixName, validate){ 4846 4847 var validateBillingAddress = function($idElement, typePerson, prefixName, validate){ 4848 4849 var $billingAddress = $('.order-billing-address'); 4850 var $naturalPerson = $('#cart_onepage_form .' + prefixName + 'naturalPerson'); 4851 var $legalEntity = $('#cart_onepage_form .' + prefixName + 'legalEntity'); 4852 4853 if($idElement.is(":checked")){ 4854 4855 $('.new-billing-addess').removeClass('hidden'); 4856 4857 $billingAddress.find('.form-control').data('parsley-required', 'true'); 4858 $billingAddress.find('.form-control').prop("required", "true"); 4859 4860 $billingAddress.find('select').data('parsley-required', 'true'); 4861 $billingAddress.find('select').prop("required", "true"); 4862 $billingAddress.find('.form-control').renameAttr('pattern-false','pattern'); 4863 4864 $("#cart_onepage_billing_user_identification_type").data('parsley-required', 'false'); 4865 $("#cart_onepage_billing_user_identification_type").prop("required", "false"); 4866 $("#cart_onepage_billing_user_identification_type").removeAttr('required'); 4867 4868 $("#cart_onepage_billing_user_identification").data('parsley-required', 'false'); 4869 $("#cart_onepage_billing_user_identification").prop("required", "false"); 4870 $("#cart_onepage_billing_user_identification").removeAttr('required'); 4871 4872 if(typePerson == 2){ 4873 //TEXT FILDS 4874 $legalEntity.find('.form-control').data('parsley-required', 'true'); 4875 $legalEntity.find('.form-control').prop("required", "true"); 4876 4877 $naturalPerson.find('.form-control').data('parsley-required', 'false'); 4878 $naturalPerson.find('.form-control').prop("required", "false"); 4879 $naturalPerson.find('.form-control').removeAttr('required'); 4880 4881 //SELECT FILDS 4882 $legalEntity.find('select').data('parsley-required', 'true'); 4883 $legalEntity.find('select').prop("required", "true"); 4884 4885 $naturalPerson.find('select').data('parsley-required', 'false'); 4886 $naturalPerson.find('select').prop("required", "false"); 4887 $naturalPerson.find('select').removeAttr('required'); 4888 $('#cart_onepage_company_pib').renameAttr('data-validation-lengthone', 'data-validation-lengthone-false'); 4889 4890 $naturalPerson.find('#cart_onepage_age').data('parsley-required', 'false'); 4891 $naturalPerson.find('#cart_onepage_age').prop("required", "false"); 4892 $naturalPerson.find('#cart_onepage_age').removeAttr('required'); 4893 4894 $naturalPerson.find('#cart_onepage_age').data('parsley-required', 'false'); 4895 $naturalPerson.find('#cart_onepage_age').prop("required", "false"); 4896 $naturalPerson.find('#cart_onepage_age').removeAttr('required'); 4897 4898 }else{ 4899 //TEXT FILDS 4900 $naturalPerson.find('.form-control').data('parsley-required', 'true'); 4901 $naturalPerson.find('.form-control').prop("required", "true"); 4902 4903 $legalEntity.find('.form-control').data('parsley-required', 'false'); 4904 $legalEntity.find('.form-control').prop("required", "false"); 4905 $legalEntity.find('.form-control').removeAttr('required'); 4906 4907 //SELECT FILDS 4908 $naturalPerson.find('select').data('parsley-required', 'true'); 4909 $naturalPerson.find('select').prop("required", "true"); 4910 4911 $legalEntity.find('select').data('parsley-required', 'false'); 4912 $legalEntity.find('select').prop("required", "false"); 4913 $legalEntity.find('select').removeAttr('required'); 4914 $('#cart_onepage_billing_phone').attr('type','text'); 4915 $('#cart_onepage_billing_postcode').attr('type','text'); 4916 $('#cart_onepage_billing_phone').renameAttr('data-parsley-lengthone-false', 'data-parsley-lengthone' ); 4917 $('#cart_onepage_billing_phone').renameAttr('data-parsley-length-false', 'data-parsley-length' ); 4918 $('#cart_onepage_billing_postcode').renameAttr('data-parsley-lengthone-false', 'data-parsley-lengthone' ); 4919 $('#cart_onepage_billing_postcode').renameAttr('data-parsley-length-false', 'data-parsley-length' ); 4920 4921 $('#cart_onepage_billing_firstname').renameAttr('data-parsley-maxlength-false', 'data-parsley-maxlength' ); 4922 $('#cart_onepage_billing_lastname').renameAttr('data-parsley-maxlength-false', 'data-parsley-maxlength' ); 4923 $('#cart_onepage_company_pib').renameAttr('data-parsley-lengthone-false', 'data-parsley-lengthone'); 4924 4925 } 4926 4927 }else{ 4928 4929 $billingAddress.find('.form-control').data('parsley-required', 'false'); 4930 $billingAddress.find('.form-control').prop("required", "false"); 4931 $billingAddress.find('.form-control').removeAttr('required'); 4932 $billingAddress.find('.form-control').renameAttr('pattern','pattern-false'); 4933 4934 $billingAddress.find('select').data('parsley-required', 'false'); 4935 $billingAddress.find('select').prop("required", "false"); 4936 $billingAddress.find('select').removeAttr('required'); 4937 $('#cart_onepage_billing_phone').attr('type','text'); 4938 $('#cart_onepage_billing_phone').removeAttr('pattern'); 4939 $('#cart_onepage_billing_postcode').attr('type','text'); 4940 $('#cart_onepage_billing_phone').renameAttr('data-parsley-lengthone', 'data-parsley-lengthone-false' ); 4941 $('#cart_onepage_billing_phone').renameAttr('data-parsley-length', 'data-parsley-length-false' ); 4942 $('#cart_onepage_billing_postcode').renameAttr('data-parsley-lengthone', 'data-parsley-lengthone-false' ); 4943 $('#cart_onepage_billing_postcode').renameAttr('data-parsley-length', 'data-parsley-length-false' ); 4944 4945 $('#cart_onepage_billing_firstname').renameAttr('data-parsley-maxlength', 'data-parsley-maxlength-false' ); 4946 $('#cart_onepage_billing_lastname').renameAttr('data-parsley-maxlength', 'data-parsley-maxlength-false' ); 4947 4948 $('.new-billing-addess').addClass('hidden'); 4949 validate.$element.parsley().isValid(true); 4950 } 4951 4952 validate.$element.parsley().reset(); 4953 }; 4954 4955 $("#" + $idElement).change(function () { 4956 if($idElement == 'cart_onepage_new_billing_address'){ 4957 if($('#cart_onepage_new_billing_address').is(':checked')){ 4958 $('#cart_onepage_billing_phone').renameAttr('data-parsley-lengthone-false', 'data-parsley-lengthone' ); 4959 $('#cart_onepage_billing_phone').renameAttr('data-parsley-length-false', 'data-parsley-length' ); 4960 $('#cart_onepage_billing_postcode').renameAttr('data-parsley-lengthone-false', 'data-parsley-lengthone' ); 4961 $('#cart_onepage_billing_postcode').renameAttr('data-parsley-length-false', 'data-parsley-length' ); 4962 4963 $('#cart_onepage_billing_phone').attr('type','number'); 4964 $('#cart_onepage_billing_phone').attr("disabled", false); 4965 $('#cart_onepage_billing_postcode').attr('type','number'); 4966 4967 } else { 4968 $('#cart_onepage_billing_phone').renameAttr('data-parsley-lengthone', 'data-parsley-lengthone-false' ); 4969 $('#cart_onepage_billing_phone').renameAttr('data-parsley-length', 'data-parsley-length-false' ); 4970 $('#cart_onepage_billing_postcode').renameAttr('data-parsley-lengthone', 'data-parsley-lengthone-false' ); 4971 $('#cart_onepage_billing_postcode').renameAttr('data-parsley-length', 'data-parsley-length-false' ); 4972 4973 $('#cart_onepage_billing_phone').attr('type','text'); 4974 $('#cart_onepage_billing_phone').removeAttr('pattern'); 4975 $('#cart_onepage_billing_postcode').attr('type','text'); 4976 4977 } 4978 }; 4979 validateBillingAddress($(this), $('#'+typePerson).val(), prefixName, validate); 4980 }); 4981 4982 if($("#" + $idElement).length > 0){ 4983 validateBillingAddress($("#"+$idElement), $('#'+typePerson).val(), prefixName, validate); 4984 } 4985 }; 4986 4987 var typePerson = function($idElement, prefixName, validate) { 4988
4989 var validateTypePerson = function (thisElement, prefixName, validate) { 4990 4991 var $naturalPerson = $('#cart_onepage_form .' + prefixName + 'naturalPerson'); 4992 var $legalEntity = $('#cart_onepage_form .' + prefixName + 'legalEntity'); 4993 4994 if (thisElement.val() == 2) { 4995 4996 var redirectLegalRegister = thisElement.data('redirect-login-user-url'); 4997 if(redirectLegalRegister !== '' && typeof redirectLegalRegister !== 'undefined'){ 4998 window.location = redirectLegalRegister; 4999 thisElement.val(1); 5000 } 5001 5002 $legalEntity.removeClass('hidden'); 5003 if (!$naturalPerson.hasClass('hidden')) { 5004 $naturalPerson.addClass('hidden'); 5005 } 5006 //TEXT FILDS 5007 $legalEntity.find('.form-control').data('parsley-required', 'true'); 5008 $legalEntity.find('.form-control').prop("required", "true"); 5009 $legalEntity.find('.form-control').attr('disabled', false); 5010 $naturalPerson.find('.form-control').data('parsley-required', 'false'); 5011 $naturalPerson.find('.form-control').prop("required", "false"); 5012 $naturalPerson.find('.form-control').removeAttr('required'); 5013 $naturalPerson.find('.form-control').renameAttr('pattern','pattern-false'); 5014 5015 $naturalPerson.find('.form-control').each(function(){ 5016 if($(this).attr('id') == 'cart_onepage_company_pib_natural' || $(this).attr('id') == 'cart_onepage_company_id_number_natural'){ 5017 $(this).text(''); 5018 $(this).val(''); 5019 } 5020 }); 5021 //SELECT FILDS 5022 $legalEntity.find('select').data('parsley-required', 'true'); 5023 $legalEntity.find('select').prop("required", "true"); 5024 $legalEntity.find('select').attr('disabled', false); 5025 $naturalPerson.find('select').data('parsley-required', 'false'); 5026 $naturalPerson.find('select').prop("required", "false"); 5027 $naturalPerson.find('select').removeAttr('required'); 5028 5029 $naturalPerson.find('#cart_onepage_age').data('parsley-required', 'false'); 5030 $naturalPerson.find('#cart_onepage_age').prop("required", "false"); 5031 $naturalPerson.find('#cart_onepage_age').removeAttr('required'); 5032 5033 } else { 5034 5035 $naturalPerson.removeClass('hidden'); 5036 if (!$legalEntity.hasClass('hidden')) { 5037 $legalEntity.addClass('hidden'); 5038 } 5039 //TEXT FILDS 5040 $naturalPerson.find('.form-control').each(function(){ 5041 if($(this).attr('id') != 'cart_onepage_company_pib_natural' && $(this).attr('id') != 'cart_onepage_company_id_number_natural'){ 5042 $(this).data('parsley-required', 'true'); 5043 $(this).prop("required", "true"); 5044 } 5045 }); 5046 5047 //$naturalPerson.find('.form-control').data('parsley-required', 'true'); 5048 //$naturalPerson.find('.form-control').prop("required", "true"); 5049 $legalEntity.find('.form-control').data('parsley-required', 'false'); 5050 $legalEntity.find('.form-control').prop("required", "false"); 5051 $legalEntity.find('.form-control').removeAttr('required'); 5052 $legalEntity.find('.form-control').attr('disabled', true); 5053 //SELECT FILDS 5054 $naturalPerson.find('select').data('parsley-required', 'true'); 5055 $naturalPerson.find('select').prop("required", "true"); 5056 $legalEntity.find('select').data('parsley-required', 'false'); 5057 $legalEntity.find('select').prop("required", "false"); 5058 $legalEntity.find('select').removeAttr('required'); 5059 $legalEntity.find('select').attr('disabled', true); 5060 $naturalPerson.find('.form-control').renameAttr('pattern-false','pattern'); 5061 } 5062 5063 $legalEntity.find('.not-required').data('parsley-required', 'false'); 5064 $legalEntity.find('.not-required').prop("required", "false"); 5065 $legalEntity.find('.not-required').removeAttr('required'); 5066 5067 $naturalPerson.find('.not-required').data('parsley-required', 'false'); 5068 $naturalPerson.find('.not-required').prop("required", "false"); 5069 $naturalPerson.find('.not-required').removeAttr('required'); 5070 5071 $("#cart_onepage_new_address_list").data('parsley-required', 'false'); 5072 $("#cart_onepage_new_address_list").prop("required", "false"); 5073 $("#cart_onepage_new_address_list").removeAttr('required'); 5074 if($('#cart_onepage_new_address_list_id').hasClass('required-select-newaddress') && $("#orderAddress").is(':checked')){ 5075 $("#cart_onepage_new_address_list_id").data('parsley-required', 'ture'); 5076 $("#cart_onepage_new_address_list_id").prop("required", "true"); 5077 } else { 5078 $("#cart_onepage_new_address_list_id").data('parsley-required', 'false'); 5079 $("#cart_onepage_new_address_list_id").prop("required", "false"); 5080 $("#cart_onepage_new_address_list_id").removeAttr('required'); 5081 } 5082 5083 $('.not_required').prop("required", "false"); 5084 $('.not_required').removeAttr('required'); 5085 $('.not_required').data('parsley-required', 'false'); 5086 5087 validate.$element.parsley().reset(); 5088 }; 5089 5090 5091 let cartstepp = prefixName; 5092 if(prefixName){ 5093 cartstepp = prefixName+'_'; 5094 } 5095 let wrapper = "#order_"+cartstepp+"address_content"; 5096 5097 $("#" + $idElement).change(function () { 5098 userIdentificationChangePerson($(this),wrapper); 5099 validateTypePerson($(this), prefixName, validate); 5100 }); 5101 5102 if($("#"+$idElement).length > 0){ 5103 validateTypePerson($("#"+$idElement), prefixName, validate); 5104 } 5105 }; 5106 5107 5108 var $form = $('#cart_onepage_form'); 5109 if(!$form.length){ 5110 return; 5111 } 5112
5113 var validate = $form.validate().data('nb.validate'); 5114 5115 //sklonjen uslov jer ne radi klik na ceo LI 5116 //if($('.cart').hasClass('cascade-cart')){ 5117 validate.$element.find('.delivery-options li').click(function(){ 5118 $(this).find('.iradio_flat input:radio').icheck('checked'); 5119 if($(this).parents('#cart-carrier-content').length > 0){ 5120 $('#cart-carrier-content .delivery-options li').removeClass('active'); 5121 } 5122 $(this).addClass('active'); 5123 }); 5124 //} 5125 5126 5127 //packetomatCart Validation for carrier 5128 function packetomatValidationforActiveCarrier(){ 5129 var selected_carrierId = validate.$element.find('input[name="carierId"]:checked').attr('id'); 5130 if(!selected_carrierId){ 5131 return false 5132 } 5133 5134 var selected_carrierIdonly = selected_carrierId.replace('carierId_',''); 5135 var slecetedCarrierMachine = $('#cart_onepage_parcelMachineId_'+selected_carrierIdonly); 5136 var slecetedCarrierMachineVal = slecetedCarrierMachine.val(); 5137 var errorText = slecetedCarrierMachine.data('error-msg'); 5138 5139 if(slecetedCarrierMachine.length > 0){ 5140 if(!slecetedCarrierMachineVal || slecetedCarrierMachineVal == ''){ 5141 toastr.error(errorText); 5142 return false; 5143 } 5144 } 5145 return true; 5146 } 5147 5148 //main submit button clicked 5149 if(flagIstanceSubmitTicket){ 5150 5151 //type person change 5152 typePerson('cart_onepage_type_person', '',validate); 5153 typePerson('cart_onepage_billing_type_person', 'billing', validate); 5154 billingAddress('cart_onepage_new_billing_address', 'cart_onepage_billing_type_person', 'billing', validate); 5155 5156 validate.$element.find('[name=submit_order_one_page]').click(function(e){ 5157 e.preventDefault(); 5158 5159 if($('#disabled-voucher-combinated-buy').length){ 5160 $('html,body').animate({ 5161 scrollTop: $('#disabled-voucher-combinated-buy').offset() - ($(window).height() / 2) 5162 }, 1000); 5163 return false; 5164 } 5165 let cartSteps = false; 5166 if($('.cart-steps-ncx').length){ 5167 cartSteps = true; 5168 } 5169 5170 if(!cartSteps && $('#p_wrong_cityId_queastion').length && typeaheadStrictType == 'postCodeAutoFillByCity' && (($('#profileAddress').parent().hasClass('checked') && $('#p_cityId').val() < 1))){ 5171 textQuestion = $('#p_wrong_cityId_queastion').val(); 5172 bootbox.confirm(textQuestion, function(result) { 5173 if(!result){ 5174 return; 5175 } else { 5176 window.location.replace($('#p_edit_profile_url').val()); 5177 } 5178 }); 5179 } else if(!cartSteps && $('#p_wrong_adressId_queastion').length && (typeaheadStrictType == 'postCodeAutoFillByStreet' || typeaheadStrictType == 'postCodeAutoFillByStreetNumber') && (($('#profileAddress').parent().hasClass('checked') && $('#p_streetId').val() < 1))){ 5180 textQuestion = $('#p_wrong_adressId_queastion').val(); 5181 bootbox.confirm(textQuestion, function(result) { 5182 if(!result){ 5183 return; 5184 } else { 5185 window.location.replace($('#p_edit_profile_url').val()); 5186 } 5187 }); 5188 } 5189 5190 else { 5191 var elementCartOnepageTermsOfUse = $('input[type="checkbox"][name="cart_onepage_terms_of_use"]'); 5192 if(elementCartOnepageTermsOfUse.length > 0){ 5193 elementCartOnepageTermsOfUse.data('parsley-required', 'true'); 5194 elementCartOnepageTermsOfUse.prop("required", "true"); 5195 }; 5196 5197 var elementCartOnepageAnti = $('#cart_onepage_anti'); 5198 if(elementCartOnepageAnti.length > 0){ 5199 elementCartOnepageAnti.data('parsley-required', 'true'); 5200 } 5201 5202 var storeRecive = $('.store-recive select'); 5203 5204 if(!packetomatValidationforActiveCarrier()){ 5205 return false;
5206 } 5207 5208 var $textFieldsAddress = validate.$element.find('.address-setnew .form-control'); 5209 $textFieldsAddress.data('parsley-required', 'true'); 5210 validate.$element.data('ticketBtnOriginalEvent', -1); 5211 validate.setButtonSubmitted($(this)); 5212 validate.$element.submit(); 5213 eraseCookie('cart_gift_popup'); 5214 eraseCookie('carrierCookie'); 5215 eraseCookie('paymentCookie'); 5216 eraseCookie('addressCookie'); 5217 } 5218 5219 5220 }); 5221 5222 } 5223 5224 //ticket submit button clicket 5225 validate.$element.find('[name=cart_insert_ticket]').click(function (e) { 5226 //stop form from submitting 5227 e.preventDefault(); 5228 5229 var elementVoucherForm = $('#gift_voucher_validation'); 5230 if (elementVoucherForm.length > 0) { 5231 elementVoucherForm.val('true'); 5232 } 5233 5234 var elementCartOnepageTermsOfUse = $('input[type="checkbox"][name="cart_onepage_terms_of_use"]'); 5235 if (elementCartOnepageTermsOfUse.length > 0) { 5236 elementCartOnepageTermsOfUse.data('parsley-required', 'false'); 5237 elementCartOnepageTermsOfUse.prop("required", "false"); 5238 elementCartOnepageTermsOfUse.removeAttr('required'); 5239 } 5240 ; 5241 5242 var elementCartOnepageAnti = $('#cart_onepage_anti'); 5243 if (elementCartOnepageAnti.length > 0) { 5244 elementCartOnepageAnti.removeAttr('required'); 5245 elementCartOnepageAnti.data('parsley-required', 'false'); 5246 } 5247 5248 var $textFieldsAddress = validate.$element.find('.address-setnew .form-control'); 5249 $textFieldsAddress.removeAttr('required'); 5250 $textFieldsAddress.data('parsley-required', 'false'); 5251 5252 //this is how we will now the ticket btn is clicked, not great solution, I know :O 5253 validate.$element.data('ticketBtnOriginalEvent', 1); 5254 5255 //set this button as submitted 5256 validate.setButtonSubmitted($(this)); 5257 5258 //and now submit the form 5259 validate.$element.submit(); 5260 5261 $cartloader = $('.cart-loader'); 5262 $cartloader.removeClass('hidden'); 5263 if($('li.parsley-required').length > 0){ 5264 $cartloader.addClass('hidden'); 5265 } 5266 }); 5267 5268 //remove ticket submit button clicket 5269 validate.$element.find('[name=cart_remove_ticket]').click(function (e) { 5270 5271 //stop form from submitting 5272 e.preventDefault(); 5273 5274 var elementCartOnepageTermsOfUse = $('input[type="checkbox"][name="cart_onepage_terms_of_use"]'); 5275 if (elementCartOnepageTermsOfUse.length > 0) { 5276 elementCartOnepageTermsOfUse.data('parsley-required', 'false'); 5277 elementCartOnepageTermsOfUse.prop("required", "false"); 5278 elementCartOnepageTermsOfUse.removeAttr('required'); 5279 } 5280 5281 var elementCartOnepageAnti = $('#cart_onepage_anti'); 5282 if (elementCartOnepageAnti.length > 0) { 5283 elementCartOnepageAnti.removeAttr('required'); 5284 elementCartOnepageAnti.data('parsley-required', 'false'); 5285 } 5286 5287 var $textFieldsAddress = validate.$element.find('.address-setnew .form-control'); 5288 $textFieldsAddress.removeAttr('required'); 5289 $textFieldsAddress.data('parsley-required', 'false'); 5290 //add 5291 validate.setButtonSubmitted($(this)); 5292 validate.$element.submit(); 5293 }); 5294 5295 5296 if(flagIstanceSubmitTicket){ 5297 5298 validate.$parsley.subscribe('parsley:form:validate', function (formInstance) { 5299 var $textFields = validate.$element.find('.address-setnew .form-control'); 5300 5301 if (!validate.$element.find('#orderAddress').prop('checked')) { 5302 $textFields.removeAttr('required'); 5303 $textFields.data('parsley-required', 'false'); 5304 } else { 5305 $textFields.data('parsley-required', 'true'); 5306 } 5307 5308 //reinit parsley validation 5309 validate.$element.parsley(); 5310 5311 if (formInstance.isValid() && validate.$element.data('ticketBtnOriginalEvent') != 1) { 5312 5313 var $ticket = validate.$element.find('#cart_ticket'); 5314 5315 if (typeof $ticket.data('denied') === "undefined" && $ticket.val() == -1) { 5316 5317 formInstance.submitEvent.preventDefault(); 5318 5319 bootbox.dialog({ 5320 message: $ticket.data('bootbox-question'), 5321 title: $ticket.data('bootbox-btn-use-ticket'), 5322 buttons: { 5323 success: { 5324 label: $ticket.data('bootbox-btn-yes'), 5325 className: "btn-success", 5326 callback: function () { 5327 $('body').animate({scrollTop: $ticket.parents('.cart
5327-step').offset().top}, 500); 5328 return; 5329 } 5330 }, 5331 danger: { 5332 label: $ticket.data('bootbox-btn-no'), 5333 callback: function () { 5334 $ticket.data('denied', 1); 5335 validate.$element.data('ticketBtnOriginalEvent', -1); 5336 validate.$element.find('#submit_order_one_page').click(); 5337 } 5338 } 5339 } 5340 }); 5341 } else { 5342 if (formInstance.isValid()) { 5343 $('#submit_order_one_page').addClass('active'); 5344 nbshopJS.CustomEventTrigger('cart_onepage_submit'); 5345 } else { 5346 $('#submit_order_one_page').removeClass('active'); 5347 } 5348 } 5349 } else { 5350 if (formInstance.isValid()) { 5351 $('#submit_order_one_page').addClass('active'); 5352 nbshopJS.CustomEventTrigger('cart_onepage_submit'); 5353 } 5354 } 5355 }); 5356 }; 5357 }; 5358 5359 var showHideCommentForm = function(){ 5360 $('.btn-display-form').click(function(e){ 5361 5362 $('.form-comment').toggleClass('active'); 5363 }); 5364 }; 5365 5366 var contact = function(){ 5367 5368 var typePerson = function($idElement, validate){ 5369 var validateTypePerson = function(thisElement, validate){ 5370 var $legalEntity = $('#contact_form .legal-entity-wrapper'); 5371 5372 if(thisElement.val() == 2){ 5373 $legalEntity.removeClass('hidden'); 5374 //TEXT FILDS 5375 $legalEntity.find('.form-control').data('parsley-required', 'true'); 5376 $legalEntity.find('.form-control').prop("required", "true"); 5377 }else{ 5378 if(!$legalEntity.hasClass('hidden')){ 5379 $legalEntity.addClass('hidden'); 5380 } 5381 $legalEntity.find('.form-control').data('parsley-required', 'false'); 5382 $legalEntity.find('.form-control').prop("required", "false"); 5383 $legalEntity.find('.form-control').removeAttr('required'); 5384 } 5385 validate.$element.parsley().reset(); 5386 }; 5387 $( "#"+$idElement).change(function() { 5388 validateTypePerson($(this), validate); 5389 }); 5390 if($("#"+$idElement).length > 0){ 5391 validateTypePerson($("#"+$idElement), validate); 5392 } 5393 }; 5394 5395 var form = $('#contact_form'); 5396 if(!form.length) return; 5397 var validate = form.validate({ 5398 formData: { task: 'save' } 5399 }).data('nb.validate'); 5400 if($('#contact_type_person').length){ 5401 typePerson("contact_type_person", validate); 5402 } 5403 validate.$element.bind('nb.validate.remoteSuccess', function(e){ 5404 validate.$element.find('.form-control, .btn').addClass('hidden'); 5405 nbshopJS.CustomEventTrigger('contactFormSent'); 5406 }); 5407 }; 5408 var contactV8FormReservation = function(){ 5409 var form = $('#contact_v8_form_reservation'); 5410 if(!form.length) return; 5411 var validate = form.validate({ 5412 formData: { task: 'save' } 5413 }).data('nb.validate'); 5414 validate.$element.bind('nb.validate.remoteSuccess', function(e){ 5415 validate.$element.find('.form-control, .btn').addClass('hidden'); 5416 }); 5417 }; 5418 var contactAssessment = function(){ 5419 5420 //var form = $('#contact_form_13'); 5421 var form = $("form[id$='contact_form_13']"); 5422 if(!form.length) return; 5423 form.each(function(){ 5424 var prefix = $(this).data('prefix');
5425 var contactAssessmentValidate = $(this).validate({ 5426 formData: { ajax: 'yes', task: 'contact_13',url: nb_active_page_url,prefix:prefix } 5427 }).data('nb.validate'); 5428 5429 contactAssessmentValidate.$element.bind('nb.validate.remoteSuccess', function(e){ 5430 contactAssessmentValidate.$element.find('.form-group').addClass('hidden'); 5431 5432 }); 5433 }); 5434 5435 5436 }; 5437 var travelBooking = function(){ 5438 var form = $('.booking-travel-form'); 5439 if(!form.length) return; 5440 var validate = form.validate({ 5441 formData: { submit: true } 5442 }).data('nb.validate'); 5443 }; 5444 var preorderForm = function(){ 5445 var form = $('#preorder_contact'); 5446 if(!form.length) return; 5447 var preorderValidate = form.validate({ 5448 formData: { task: 'save', nbAjax: 1, nbTask: '' } 5449 }).data('nb.validate'); 5450 preorderValidate.$element.bind('nb.validate.remoteSuccess', function(e){ 5451 preorderValidate.$element.find('.form-control, .btn').addClass('hidden'); 5452 }); 5453 }; 5454 var schedulingServicesForm = function(){ 5455 var form = $('#scheduling_services'); 5456 if(!form.length) return; 5457 var preorderValidate = form.validate({ 5458 formData: { task: 'save', nbAjax: 1, nbTask: '' } 5459 }).data('nb.validate'); 5460 preorderValidate.$element.bind('nb.validate.remoteSuccess', function(e){ 5461 preorderValidate.$element.find('.form-control, .btn').addClass('hidden'); 5462 }); 5463 }; 5464 5465 var bookingOfferForm = function(){ 5466 var form = $('#booking_offer'); 5467 if(!form.length) return; 5468 var preorderValidate = form.validate({ 5469 formData: { task: 'save', nbAjax: 1, nbTask: '' } 5470 }).data('nb.validate'); 5471 preorderValidate.$element.bind('nb.validate.remoteSuccess', function(e){ 5472 preorderValidate.$element.find('.form-control, .btn').addClass('hidden'); 5473 }); 5474 }; 5475 5476 var schedulingServicesTestRideForm = function(){ 5477 var form = $('#contact_scheduling_services_test_ride'); 5478 if(!form.length) return; 5479 var sSTRValidate = form.validate({ 5480 formData: { task: 'save', nbAjax: 1, nbTask: '' } 5481 }).data('nb.validate'); 5482 sSTRValidate.$element.bind('nb.validate.remoteSuccess', function(e){ 5483 sSTRValidate.$element.find('.form-control, .btn').addClass('hidden'); 5484 }); 5485 }; 5486 5487 var replacementForm = function(){ 5488 var form = $('#replacement_form'); 5489 if(!form.length) return; 5490 var sSTRValidate = form.validate({ 5491 formData: { task: 'save', nbAjax: 1, nbTask: '' } 5492 }).data('nb.validate'); 5493 sSTRValidate.$element.bind('nb.validate.remoteSuccess', function(e){ 5494 sSTRValidate.$element.find('.form-control, .btn').addClass('hidden'); 5495 }); 5496 }; 5497 5498 5499 var commercialVehiclesForm = function(){ 5500 var form = $('#commercial_vehicles'); 5501 if(!form.length) return; 5502 var sSTRValidate = form.validate({ 5503 formData: { task: 'save', nbAjax: 1, nbTask: '' } 5504 }).data('nb.validate'); 5505 sSTRValidate.$element.bind('nb.validate.remoteSuccess', function(e){ 5506 sSTRValidate.$element.find('.form-control, .btn').addClass('hidden'); 5507 }); 5508 }; 5509 5510 var schedulingServicesUsedCars = function(){ 5511 var form = $('#contact_form_used_cars'); 5512 if(!form.length) return; 5513 var sSTRValidate = form.validate({ 5514 formData: { task: 'save', nbAjax: 1, nbTask: '' } 5515 }).data('nb.validate'); 5516 sSTRValidate.$element.bind('nb.validate.remoteSuccess', function(e){ 5517 sSTRValidate.$element.find('.form-control, .btn').addClass('hidden'); 5518 }); 5519 }; 5520 5521 var contactReservation = function(){ 5522 var form = $('#contact_form_reservation'); 5523 if(!form.length) return;
5524 var validate = form.validate({ 5525 formData: { task: 'save' } 5526 }).data('nb.validate'); 5527 validate.$element.bind('nb.validate.remoteSuccess', function(e){ 5528 validate.$element.find('.form-control, .btn').addClass('hidden'); 5529 }); 5530 }; 5531 var orderStatus = function(){ 5532 var form = $('.view-order-status-form'); 5533 if(!form.length) return; 5534 var validate = form.validate({ 5535 formData: { task: 'save' } 5536 }).data('nb.validate'); 5537 validate.$element.bind('nb.validate.remoteSuccess', function(e){ 5538 validate.$element.find('.form-control, .btn').addClass('hidden'); 5539 }); 5540 validateFormAddBtnLoader(form); 5541 }; 5542 var editProfileInfo = function(){ 5543 var form = $('.form-edit-profile'); 5544 if(!form.length) return; 5545 var validate = form.validate({ 5546 formData: { task: 'save' } 5547 }).data('nb.validate'); 5548 validate.$element.bind('nb.validate.remoteSuccess', function(e){ 5549 // validate.$element.find('.form-control, .btn').addClass('hidden'); 5550 }); 5551 validateFormAddBtnLoader(form); 5552 }; 5553 var orderCancel = function(){ 5554 var form = $('#formCancelOrder'); 5555 5556 if(!form.length) return; 5557 var validate = form.validate({ 5558 formData: { task: 'save' } 5559 }).data('nb.validate'); 5560 validate.$element.bind('nb.validate.remoteSuccess', function(e){ 5561 // validate.$element.find('.form-control, .btn').addClass('hidden'); 5562 }); 5563 validateFormAddBtnLoader(form); 5564 }; 5565 var landingContactForm = function(){ 5566 var form = $('#contact_form_on_click'); 5567 if(!form.length) return; 5568 var validate = form.validate({ 5569 formData: { ajax: 'yes', task: 'addContactEventSportApplication' } 5570 }).data('nb.validate'); 5571 validate.$element.bind('nb.validate.remoteSuccess', function(e){ 5572 validate.$element.find('.form-control, .btn, .form-group ').addClass('hidden'); 5573 }); 5574 }; 5575 5576 var changePasswordSSO = function(){ 5577 var form = $('#formEditSsoPassword'); 5578 if(!form.length) return; 5579 var validate = form.validate({ 5580 formData: { task: 'ajax' } 5581 }).data('nb.validate'); 5582 validate.$element.bind('nb.validate.remoteSuccess', function(e){ 5583 if(window.NB_AJAX_RET){ 5584 if(window.NB_AJAX_RET.flag){ 5585 form.find('.alert').removeClass('hidden').addClass('alert-success'); 5586 validate.$element.find('.form-control, .btn, .form-group ').addClass('hidden'); 5587 form.find('.alert').html(window.NB_AJAX_RET.info); 5588 }else{ 5589 form.find('.alert').removeClass('hidden').addClass('alert-danger'); 5590 form.find('.alert').html(window.NB_AJAX_RET.info); 5591 } 5592 } 5593 5594 }); 5595 }; 5596 5597 var contactFormAjax = function(){ 5598 var form = $('#contact_form_ajax'); 5599 if(!form.length) return; 5600 var validate = form.validate({ 5601 formData: { task: 'saveajaxcontact',ajax:'yes' } 5602 }).data('nb.validate'); 5603 validate.$element.bind('nb.validate.remoteSuccess', function(e){ 5604 validate.$element.find('.form-group, .btn').addClass('hidden'); 5605 }); 5606 }; 5607 5608 var importProductInCart = function(){ 5609 5610 var importProductCartInCart = function(textQuestion){ 5611 5612 bootbox.confirm(textQuestion, function(result) { 5613 if (!result) { 5614 return; 5615 } 5616 $.ajax({ 5617 type: "POST", 5618 url: nb_active_page_url, 5619 data: 'nbAjax=-1&ajax=yes&task=import_product_cart_in_cart', 5620 contentType: "application/x-www-form-urlencoded;charset=UTF-8", 5621 dataType: 'json', 5622 success: function(ret){ 5623 if(ret.flag){ 5624 //ovde treba da se redirektuje 5625 window.location = ret.urlRedirect; 5626 nbshopJS.CustomEventTrigger('importProductInCart'); 5627 }else{ 5628 5629 $('#cart_import_form .alert').removeClass('hidden'); 5630 $('#cart_import_form .alert').addClass('alert-danger'); 5631 $('#cart_import_form .alert').text(ret.info); 5632 } 5633 } 5634 }); 5635 5636 }); 5637 }; 5638 5639 var resetImportProductCartInSession = function(textQuestion){ 5640 5641 bootbox.confirm(textQuestion, function(result) { 5642 if (!result) { 5643 return; 5644 } 5645 5646 $.ajax({ 5647 type: "POST", 5648 url: nb_active_page_url, 5649 data: 'nbAjax=-1&ajax=yes&task=reset_import_product_cart', 5650 contentType: "application/x-www-form-urlencoded;charset=UTF-8", 5651 dataType: 'json', 5652 success: function(ret){ 5653 if(ret.flag){ 5654 5655 reloadImportProductCartInSession(); 5656 5657 $("#cart_import_form .cart-import-form-inputs").removeClass('hidden'); 5658 $("#cart_import_form .confirm-loader").removeClass('active'); 5659 $("#cart_import_form .alert").addClass('hidden'); 5660 } 5661 } 5662 }); 5663 }); 5664 }; 5665 5666 var deleteImportProductCartInSession = function(id, textQuestion){ 5667 5668 bootbox.confirm(textQuestion, function(result) { 5669 if (!result) { 5670 return; 5671 } 5672 5673 $.ajax({ 5674 type: "POST", 5675 url: nb_active_page_url, 5676 data: 'nbAjax=-1&ajax=yes&task=delete_import_product_cart&id=' + id, 5677 contentType: "application/x-www-form-urlencoded;charset=UTF-8", 5678 dataType: 'json', 5679 success: function (ret) { 5680 if (ret.flag) { 5681 reloadImportProductCartInSession(); 5682 } 5683 } 5684 }); 5685 }); 5686 }; 5687 5688 var reloadImportProductCartInSession = function(){ 5689 5690 var form = $('#cart_import_form'); 5691 if(!form.length) return; 5692 var cartImportLoader = $('.cart-import-loader'); 5693 cartImportLoader.removeClass('hidden'); 5694 5695 $.ajax({ 5696 type: "POST", 5697 url: nb_active_page_url, 5698 data: 'nbAjax=-1&ajax=yes&task=reload_import_product_cart', 5699 contentType: "application/x-www-form-urlencoded;charset=UTF-8", 5700 dataType: 'json', 5701 success: function(ret){ 5702 if(ret.flag){ 5703 $('.cart-import-v2').addClass('product-added'); 5704 cartImportLoader.addClass('hidden'); 5705 5706 $('#importProductsCartContent').html(ret.html); 5707 5708 if(ret.html.trim() == ''){ 5709 $("#cart_import_form .cart-import-form-inputs").removeClass('hidden'); 5710 $('.cart-import-v2').removeClass('product-added'); 5711 } 5712 5713 5714 }else{ 5715 $('#importProductsCartContent').html(""); 5716 } 5717 } 5718 }); 5719 }; 5720 5721 var saveProductCartInSession = function (){ 5722 var form = $('#cart_import_form'); 5723 if(!form.length) return; 5724
5725 var validate = form.validate({ 5726 formData: { nbAjax: -1, ajax: 'yes', task: 'import_cart_product' } 5727 }).data('nb.validate'); 5728 5729 validate.$element.bind('nb.validate.remoteSuccess', function(e){ 5730 validate.$element.find('.cart-import-form-inputs').addClass('hidden'); 5731 reloadImportProductCartInSession(); 5732 }); 5733 }; 5734 5735 var saveProductCartOnProfileInSession = function(urlPage, textQuestion, orderId, userPublicId){ 5736 5737 bootbox.confirm(textQuestion, function(result) { 5738 if (!result) { 5739 return; 5740 } 5741 $.ajax({ 5742 type: "POST", 5743 url: urlPage, 5744 data: 'nbAjax=-1&ajax=yes&task=import_cart_product_on_profile&orderId='+orderId+'&userPublicId='+userPublicId, 5745 contentType: "application/x-www-form-urlencoded;charset=UTF-8", 5746 dataType: 'json', 5747 success: function(ret){ 5748 if(ret.flag){ 5749 //ovde treba da se redirektuje 5750 window.location = ret.urlRedirect; 5751 } 5752 } 5753 }); 5754 5755 }); 5756 }; 5757 5758 return{ 5759 initImportProductInCartForms: function() { 5760 saveProductCartInSession(); 5761 reloadImportProductCartInSession(); 5762 }, 5763 5764 saveProductCartInSession : saveProductCartInSession, 5765 saveProductCartOnProfileInSession : saveProductCartOnProfileInSession, 5766 deleteImportProductCartInSession : deleteImportProductCartInSession, 5767 resetImportProductCartInSession : resetImportProductCartInSession, 5768 importProductCartInCart : importProductCartInCart, 5769 importProductCartInCart : importProductCartInCart, 5770 }; 5771 5772 }; 5773 5774 function mergeStreetNbFields(streetNb, newStreetNb, blockNb, staircase, apartmentNb){ 5775 var fieeldValue = ''; 5776 5777 if($(newStreetNb).length && $(newStreetNb).val() != ''){ 5778 fieeldValue = $(newStreetNb).val(); 5779 } 5780 if($(blockNb).length && $(blockNb).val() != ''){ 5781 fieeldValue = fieeldValue+' '+$(blockNb).data('field-name')+': '+$(blockNb).val(); 5782 } 5783 if($(staircase).length && $(staircase).val() != ''){ 5784 fieeldValue = fieeldValue+' '+$(staircase).data('field-name')+': '+$(staircase).val(); 5785 } 5786 if($(apartmentNb).length && $(apartmentNb).val() != ''){ 5787 fieeldValue = fieeldValue+' '+$(apartmentNb).data('field-name')+': '+$(apartmentNb).val(); 5788 } 5789 if(fieeldValue !== ''){ 5790 $(streetNb).val(fieeldValue); 5791 } 5792 5793 5794 $(""+newStreetNb+","+blockNb+","+staircase+","+apartmentNb+"").on("keyup", function(){ 5795 5796 fieeldValue = ''; 5797 5798 if($(newStreetNb).length && $(newStreetNb).val() != ''){ 5799 fieeldValue = $(newStreetNb).val(); 5800 } 5801 if($(blockNb).length && $(blockNb).val() != ''){ 5802 fieeldValue = fieeldValue+' '+$(blockNb).data('field-name')+': '+$(blockNb).val(); 5803 } 5804 if($(staircase).length && $(staircase).val() != ''){ 5805 fieeldValue = fieeldValue+' '+$(staircase).data('field-name')+': '+$(staircase).val(); 5806 } 5807 if($(apartmentNb).length && $(apartmentNb).val() != ''){ 5808 fieeldValue = fieeldValue+' '+$(apartmentNb).data('field-name')+': '+$(apartmentNb).val(); 5809 } 5810 5811 $(streetNb).val(fieeldValue); 5812 }); 5813 } 5814 5815 mergeStreetNbFields('#profile_street_no','#profile_street_no_new','#profile_block_number','#profile_staircase','#profile_apartment_no'); 5816 mergeStreetNbFields('#cart_onepage_street_no','#cart_onepage_street_no_new','#cart_onepage_block_number','#cart_onepage_staircase','#cart_onepage_apartment_no'); 5817 mergeStreetNbFields('#cart_onepage_billing_street_no','#cart_onepage_billing_street_no_new','#cart_onepage_billing_block_number','#cart_onepage_billing_staircase','#cart_onepage_billing_apartment_no'); 5818 mergeStreetNbFields('#reg_street_no','#reg_street_no_new','#reg_block_number','#reg_staircase','#reg_apartment_no'); 5819 mergeStreetNbFields('#reg_page_street_no','#reg_page_street_no_new','#reg_page_block_number','#reg_page_staircase','#reg_page_apartment_no'); 5820 5821 return{ 5822 initForms: function() {
5823 initiateValidationByDataAttr(); 5824 showHideCommentForm(); 5825 login(); 5826 sendTockenWithoutPassword(); 5827 loginWithTockenWithoutPassword(); 5828 loginVirtualCard(); 5829 lostPassword(); 5830 registration(); 5831 replacment(); 5832 newsletter(); 5833 newsletterLanding(); 5834 activatePublicUser(); 5835 comment(); 5836 cart(true); //doto prebacno je da se pozove samo ova forma 5837 contact(); 5838 preorderForm(); 5839 schedulingServicesForm(); 5840 bookingOfferForm(); 5841 contactReservation(); 5842 orderStatus(); 5843 editProfileInfo(); 5844 orderCancel(); 5845 subscribe(); 5846 importProductInCart().initImportProductInCartForms(); 5847 productPriceQuery(); 5848 productTDSDocumentationQuery(); 5849 travelBooking(); 5850 contactV8FormReservation(); 5851 landingContactForm(); 5852 changePasswordSSO(); 5853 contactTeamSale(); 5854 contactAssessment(); 5855 schedulingServicesTestRideForm(); 5856 replacementForm(); 5857 commercialVehiclesForm(); 5858 schedulingServicesUsedCars(); 5859 newsletterViber(); 5860 itemFormContactParts(); 5861 itemFormContactMessage(); 5862 itemFormContactMessageNew(); 5863 itemFormContactMessageV2(); 5864 resetPassword(); 5865 lostPasswordSSO(); 5866 resetPasswordSSO(); 5867 contactFormAjax(); 5868 }, 5869 cart : cart, 5870 login: login, 5871 sendTockenWithoutPassword: sendTockenWithoutPassword, 5872 loginWithTockenWithoutPassword: loginWithTockenWithoutPassword, 5873 loginVirtualCard: loginVirtualCard, 5874 registration: registration, 5875 importProductInCart: importProductInCart 5876 }; 5877 }; 5878 5879 var handlePhoneVerification = function(){ 5880 var $form = $('#phoneticket_verification_form'), 5881 $ticketModal = $('#phoneticket_verification_modal'), 5882 $btnTrigger = $('.phoneticket-verification-trigger'); 5883 5884 if(!$form.length) return; 5885 5886 $btnTrigger.click(function(){ 5887 5888 bootbox.dialog({ 5889 message: $ticketModal.data('phonetikcet-modal-text'), 5890 title: $ticketModal.data('phonetikcet-modal-title'), 5891 className: "phone-verificatino-modal", 5892 buttons: { 5893 success: { 5894 label: $ticketModal.data('phonetikcet-modal-send'), 5895 className: "btn-success", 5896 callback: function(){ 5897 var $bootboxConfirm = $('.phone-verificatino-modal'), 5898 $bootboxConfirmBody = $bootboxConfirm.find('.modal-body'); 5899 5900 var $loaderIcon = '<div class="loader-icon loader-icon-inline loader-icon-xs"></div>'; 5901 $bootboxConfirmBody.html($ticketModal.data('phonetikcet-modal-send-ticket') + '...'+$loaderIcon); 5902 5903 $.ajax({ 5904 type: "POST", 5905 url: $btnTrigger.data('remote-url'), 5906 data: { 5907 ajax: 'yes', 5908 task: 'createticketcode' 5909 }, 5910 dataType: 'json', 5911 success: function(ret){ 5912 if(!ret.flag){ 5913 $bootboxConfirmBody.html('<div class="alert alert-danger">'+ret.info+'</div>'); 5914 } else { 5915 $bootboxConfirm.modal('hide'); 5916 $ticketModal.modal('show'); 5917 } 5918 } 5919 }); 5920 5921 //dont hide the bootbox-confirm modal 5922 return false;
5923 } 5924 }, 5925 danger: { 5926 label: $ticketModal.data('phonetikcet-modal-cancel'), 5927 className: "btn-default btn-cancel" 5928 }, 5929 main: { 5930 label: $ticketModal.data('phonetikcet-modal-has-ticket'), 5931 className: "btn-primary btn-ticket", 5932 callback: function(){ 5933 var $bootboxConfirm = $('.phone-verificatino-modal'); 5934 $bootboxConfirm.modal('hide'); 5935 $ticketModal.modal('show'); 5936 } 5937 } 5938 } 5939 }); 5940 5941 $div = $('<div class="footer-text"></div>'); 5942 5943 $div.insertBefore($('.btn-ticket')); 5944 5945 $text = $ticketModal.data('phonetikcet-modal-title-footer'); 5946 $div.html($text); 5947 }); 5948 5949 var validate = $form.validate({ 5950 formData: { ajax: 'yes', task: 'confirmticketcode' } 5951 }).data('nb.validate'); 5952 5953 validate.$element.bind('nb.validate.remoteSuccess', function(e){ 5954 validate.$element.find('.modal-body :not(.alert), .modal-footer').addClass('hidden'); 5955 }); 5956 }; 5957 5958 var handlePageOnModal = function($elements){ 5959 var $pageModal = $('#page_modal'); 5960 $($elements).click(function(e){ 5961 e.preventDefault(); 5962 $.ajax({ 5963 type: "POST", 5964 url: nb_active_page_url, 5965 data: { 5966 nbAjax: 1, 5967 ajax: 'yes', 5968 task: 'getpagemodal', 5969 pageId: $(this).data('remote-modal-page-id') 5970 }, 5971 //dataType: 'json', 5972 success: function(ret){ 5973 if(ret){ 5974 $('.modal-content-page').html(ret); 5975 $pageModal.modal('show'); 5976 } 5977 } 5978 }); 5979 }); 5980 }; 5981 5982 /* 5983 * INVOICE ORDER MODAL 5984 */ 5985 var handleInvoiceOrderModal = function(){ 5986 5987 $('#invoice_modal_order').on('show.bs.modal', function (e){ 5988 var total_price = $('#onepage-product-price-value').text(); 5989 total_price = total_price.trim().split(" "); 5990 $('.invoice-amount').text(total_price[0]); 5991 if($("#currency-convert-total-cart").length == 1) { 5992 $('.invoice-amount').text($("#currency-convert-total-cart").val()); 5993 } 5994 5995 var addressChecked = $("#orderAddress").prop("checked"); 5996 var firstNameData = ''; 5997 var lastNameData = ''; 5998 var streetData = ''; 5999 var streetNoData = ''; 6000 var cityData = ''; 6001 6002 var billingAddressChecked = $("#cart_onepage_new_billing_address").prop("checked"); 6003 if(billingAddressChecked){ 6004 firstNameData = $("#cart_onepage_billing_firstname").val(); 6005 lastNameData = $("#cart_onepage_billing_lastname").val(); 6006 streetData = $("#cart_onepage_billing_street").val(); 6007 streetNoData = $("#cart_onepage_billing_street_no").val(); 6008 cityData = $("#cart_onepage_billing_city").val(); 6009 }else{ 6010 if($("#p_typeSetUserDataInBillingAddress").length > 0 && $("#p_typeSetUserDataInBillingAddress").val() == "user_data_from_profile"){ 6011 firstNameData = $("#p_firstname").val(); 6012 lastNameData = $("#p_lastname").val(); 6013 streetData = $("#p_street").val(); 6014 streetNoData = $("#p_street_no").val(); 6015 cityData = $("#p_city").val(); 6016 }else{ 6017 if(addressChecked){ 6018 firstNameData = $("#cart_onepage_firstname").val(); 6019 lastNameData = $("#cart_onepage_lastname").val(); 6020 streetData = $("#cart_onepage_street").val(); 6021 streetNoData = $("#cart_onepage_street_no").val(); 6022 cityData = $("#cart_onepage_city").val(); 6023 }else{ 6024 firstNameData = $("#p_firstname").val(); 6025 lastNameData = $("#p_lastname").val(); 6026 streetData = $("#p_street").val(); 6027 streetNoData = $("#p_street_no").val(); 6028 cityData = $("#p_city").val(); 6029 } 6030 } 6031 } 6032 6033 var data = { 6034 firstName: firstNameData, 6035 lastName: lastNameData, 6036 street: streetData, 6037 streetNo: streetNoData, 6038 city: cityData 6039 }; 6040 6041 var text = ""; 6042 text += data.firstName ? data.firstName+" " : ""; 6043 text += data.lastName ? data.lastName : ""; 6044 text += (data.street || data.streetNo) ? ", " : ""; 6045 text += data.street ? data.street+" " : ""; 6046 text += data.streetNo ? data.streetNo : ""; 6047 text += data.city ? ", "+data.city : ""; 6048 $('.invoice-name').text(text); 6049 }); 6050 }; 6051 6052 var handleTypehead = function(){ 6053 6054 function initTypeheadCountriesGeo(elementId, elmentNameId){ 6055 6056 var $countryGeo = $('#'+elmentNameId); 6057 6058 if($countryGeo.length == 0 || $countryGeo.is('[readonly]')){ 6059 return; 6060 } 6061 6062 if(typeof($countryGeo.data('typehead-url')) == 'undefined' || $countryGeo.data('typehead-url') == null || $countryGeo.data('typehead-url') == ""){ 6063 return; 6064 } 6065 6066 var countryBH = new Bloodhound({ 6067 datumTokenizer: Bloodhound.tokenizers.obj.whitespace('id'), 6068 queryTokenizer: Bloodhound.tokenizers.whitespace, 6069 limit: 20, 6070 remote: { 6071 url: $countryGeo.data('typehead-url'), 6072 filter: function (streets){ 6073 $('#'+elementId).val("-1"); 6074 return $.map(streets.list, function (elem) { 6075 return elem; 6076 }); 6077 } 6078 } 6079 }); 6080 6081 countryBH.initialize(); 6082 $countryGeo.typeahead({ 6083 minLength: 1, 6084 highlight: true 6085 }, 6086 { 6087 displayKey: 'name', 6088 source: countryBH.ttAdapter() 6089 }).on('typeahead:selected', function (e, ret){ 6090 //set here the id of the selected cities, or whatever needed 6091 $countryGeo.parsley().validate(); 6092 $('#'+elementId).val(ret.id); 6093 nbshopJS.CustomEventTrigger('typeheadOptionPickedCountry'); 6094 }); 6095 $countryGeo.parent().find('.tt-hint').removeAttr('required'); 6096 } 6097 6098 function initTypeheadRegions(elementId, elmentNameId, elementCountryGeoId, elementCarrierId,elementRegionExCode,elementRegionCodebookId){ 6099 6100 var $region = $('#'+elmentNameId); 6101 if($region.length == 0){ 6102 return; 6103 } 6104 6105 if(typeof($region.data('typehead-url')) == 'undefined' || $region.data('typehead-url') == null || $region.data('typehead-url') == ""){ 6106 return; 6107 } 6108 6109 var regionBH = new Bloodhound({ 6110 datumTokenizer: Bloodhound.tokenizers.obj.whitespace('id'), 6111 queryTokenizer: Bloodhound.tokenizers.whitespace, 6112 limit: 20, 6113 remote: { 6114 url: $region.data('typehead-url'), 6115 ajax: { 6116 data: { 6117 countryGeoId: function(){ 6118 if (typeof($(elementCountryGeoId).val()) != 'undefined' && $('#'+elementCountryGeoId).val() != null){ 6119 return $('#'+elementCountryGeoId).val(); 6120 } 6121 return 0; 6122 }, 6123 carrierId: function(){ 6124 if (typeof($(elementCarrierId).val()) != 'undefined' && $(elementCarrierId).val() != null){ 6125 return $(elementCarrierId).val(); 6126 } 6127 return 0; 6128 } 6129 } 6130 }, 6131 filter: function (streets){ 6132 $('#'+elementId).val("-1"); 6133 return $.map(streets.list, function (elem) { 6134 return elem; 6135 }); 6136 } 6137 } 6138 }); 6139 6140 regionBH.initialize(); 6141 $region.typeahead({ 6142 minLength: 1, 6143 highlight: true 6144 }, 6145 { 6146 displayKey: 'name', 6147 source: regionBH.ttAdapter() 6148 }).on('typeahead:selected', function (e, ret){ 6149 //set here the id of the selected cities, or whatever needed 6150 $region.parsley().validate(); 6151 $('#'+elementId).val(ret.id).trigger('change'); 6152 if ( typeof ret.exId !== "undefined" && ret.exId != '' && ret.exId > 0){ 6153 $(elementRegionExCode).val(ret.exId).trigger('change'); 6154 } 6155 6156 if ( typeof ret.regionCodebookListId !== "undefined" && ret.regionCodebookListId !== '' && ret.regionCodebookListId > 0){ 6157 $('#'+elementRegionCodebookId).val(ret.regionCodebookListId).trigger('change'); 6158 } 6159 6160 }); 6161 6162 $region.parent().find('.tt-hint').removeAttr('required'); 6163 } 6164 6165 var initTypeheadCities = function(elementId, elmentNameId, elementStreetName, elementPostcode, elementRegionId, elementCarrierId , elementCityExCode, elementCityCodebookId){ 6166 6167 var $city = $('#'+elmentNameId); 6168 6169 if($city.length == 0){ 6170 return; 6171 } 6172 6173 if(typeof($city.data('typehead-url')) == 'undefined' || $city.data('typehead-url') == null || $city.data('typehead-url') == ""){ 6174 return; 6175 } 6176 6177 var cityBH = new Bloodhound({ 6178 datumTokenizer: Bloodhound.tokenizers.obj.whitespace('id'), 6179 queryTokenizer: Bloodhound.tokenizers.whitespace, 6180 limit: 150, 6181 remote: { 6182 url: $city.data('typehead-url'), 6183 cache: false, 6184 ajax: { 6185 data: { 6186 streetName: function(){ 6187 if (typeof($('#'+elementStreetName).val()) != 'undefined' && $('#'+elementStreetName).val() != null){ 6188 return $('#'+elementStreetName).val(); 6189 } 6190 return ''; 6191 }, 6192 regionId: function(){ 6193 if (typeof($('#'+elementRegionId).val()) != 'undefined' && $('#'+elementRegionId).val() != null){ 6194 return $('#'+elementRegionId).val(); 6195 } 6196 return 0; 6197 //return $('#'+elementRegionId).val(); 6198 }, 6199 carrierId: function(){ 6200 if (typeof($(elementCarrierId).val()) != 'undefined' && $(elementCarrierId).val() != null){ 6201 return $(elementCarrierId).val(); 6202 } 6203 return 0; 6204 } 6205 } 6206 }, 6207 filter: function (cities){ 6208 $('#'+elementId).val("-1").trigger('change'); 6209 return $.map(cities.list, function (elem) { 6210 return elem; 6211 }); 6212 } 6213 } 6214 }); 6215 6216 cityBH.initialize(); 6217 $city.typeahead({ 6218 minLength: 1, 6219 highlight: true 6220 }, 6221 { 6222 displayKey: 'name', 6223 source: cityBH.ttAdapter() 6224 }).on('typeahead:selected', function (e, ret){ 6225 //set here the id of the selected cities, or whatever needed 6226 6227 if(!disableStreetClearByCity){ 6228 $('#' + elementStreetName).attr('data-street
6228-name', '').val(''); 6229 $('#' + elementStreetName + '_id').val('-1'); 6230 } 6231 6232 $city.parsley().validate(); 6233 if ($('#'+elementId).is('#regional_centers_search_id')) storeBycityId(ret.cityId); 6234 $('#'+elementId).val(ret.id).trigger('change'); 6235 6236 if ( typeof ret.exId !== "undefined" && ret.exId != '' && ret.exId > 0){ 6237 $(elementCityExCode).val(ret.exId).trigger('change'); 6238 } 6239 6240 if (typeof ret.cityCodebookListId !== "undefined" && ret.cityCodebookListId != '' && ret.cityCodebookListId > 0){ 6241 $('#'+elementCityCodebookId).val(ret.cityCodebookListId).trigger('change'); 6242 } 6243 6244 if(typeaheadStrictType == 'postCodeAutoFillByCity'){ 6245 if(typeof elementPostcode !== "undefined" && $('#'+elementPostcode).length > 0){ 6246 $('#'+elementPostcode).val(ret.postCode).parsley().validate(); 6247 } 6248 } else { 6249 checkStreetName(elementStreetName, ret.cityId); 6250 } 6251 }); 6252 6253 $city.parent().find('.tt-hint').removeAttr('required'); 6254 }; 6255 6256 function checkStreetName(elementStreetName,cityId){ 6257 $.ajax({ 6258 type: "POST", 6259 url: nb_active_page_url, 6260 data: { 6261 nbAjax: '1', 6262 ajax: 'yes', 6263 task: 'checks_street_name', 6264 cityid: cityId 6265 }, 6266 dataType: 'json', 6267 success: function (ret) { 6268 if (ret.flag) { 6269 if(ret.list.length == 1){ 6270 $('#'+elementStreetName).attr('data-street-name',ret.list[0].name); 6271 $('#'+elementStreetName+'_id').val(('999999'+ret.list[0].id).slice(-9)); 6272 } 6273 } else { 6274 6275 } 6276 } 6277 }); 6278 }; 6279 6280 var initNBAutocompleteSystem = function(elementId, elmentNameId, elementPrintName){ 6281 6282 var $element = $('#'+elmentNameId); 6283 6284 if($element.length == 0){ 6285 return; 6286 } 6287 6288 if(typeof($element.data('typehead-url')) == 'undefined' || $element.data('typehead-url') == null || $element.data('typehead-url') == ""){ 6289 return; 6290 } 6291 6292 var elementBH = new Bloodhound({ 6293 datumTokenizer: Bloodhound.tokenizers.obj.whitespace('id'), 6294 queryTokenizer: Bloodhound.tokenizers.whitespace, 6295 limit: 150, 6296 remote: { 6297 url: $element.data('typehead-url'), 6298 ajax: { 6299 data: { 6300 rand: function(){ 6301 return Math.random(); 6302 }, 6303 param2: function(){ 6304 return 0; 6305 } 6306 } 6307 }, 6308 filter: function (records){ 6309 $('#'+elementId).val("-1").trigger('change'); 6310 return $.map(records.list, function (elem) { 6311 return elem; 6312 }); 6313 } 6314 } 6315 }); 6316 elementBH.initialize(); 6317 $element.typeahead({ 6318 minLength: 1, 6319 hint: true, 6320 highlight: true 6321 }, 6322 { 6323 displayKey: elementPrintName, 6324 source: elementBH.ttAdapter() 6325 }).on('typeahead:selected', function (e, ret){ 6326 //set here the id of the selected records, or whatever needed 6327 6328 $element.parsley().validate(); 6329 $('#'+elementId).val(ret.id).trigger('change'); 6330 $element.val(ret.showName); 6331 $element.blur(function(){ 6332 $(this).val(ret.showName); 6333 }); 6334 6335 }); 6336 6337 }; 6338 6339 function initTypeheadStreets(elementId, elmentNameId, cityId, postCode, elementCarrierId, elementStreetExCode, elementStreetCodebookId){ 6340 6341 var $street = $('#'+elmentNameId); 6342 6343 if($street.length == 0){ 6344 return; 6345 } 6346 6347 if(typeof($street.data('typehead-url')) == 'undefined' || $street.data('typehead-url') == null || $street.data('typehead-url') == ""){ 6348 return; 6349 } 6350 6351 var streetBH = new Bloodhound({ 6352 datumTokenizer: Bloodhound.tokenizers.obj.whitespace('id'), 6353 queryTokenizer: Bloodhound.tokenizers.whitespace, 6354 limit: 20, 6355 remote: { 6356 url: $street.data('typehead-url'), 6357 ajax: { 6358 data: { 6359 cityid: function(){ 6360 if (typeof($('#'+cityId).val()) != 'undefined' && $('#'+cityId).val() != null){ 6361 return $('#'+cityId).val(); 6362 } 6363 return 0; 6364 }, 6365 carrierId: function(){ 6366 if (typeof($(elementCarrierId).val()) != 'undefined' && $(elementCarrierId).val() != null){ 6367 return $(elementCarrierId).val(); 6368 } 6369 return 0; 6370 } 6371 } 6372 }, 6373 filter: function (streets){
6374 if($street.attr('data-street-name') == '' || $street.attr('data-street-name') === undefined){ 6375 $('#'+elementId).val("-1").trigger('change'); 6376 } 6377 return $.map(streets.list, function (elem) { 6378 return elem; 6379 }); 6380 } 6381 } 6382 }); 6383 6384 var streetNameKey = 'name'; 6385 if(streetNameWithType){ 6386 streetNameKey = 'nameWithType'; 6387 } 6388 6389 streetBH.initialize(); 6390 $street.typeahead({ 6391 minLength: 1, 6392 highlight: true 6393 }, 6394 { 6395 displayKey: streetNameKey, 6396 source: streetBH.ttAdapter() 6397 }).on('typeahead:selected', function (e, ret){ 6398 //set here the id of the selected cities, or whatever needed 6399 $street.parsley().validate(); 6400 $('#'+elementId).val(ret.id).trigger('change'); 6401 if ( typeof ret.exId !== "undefined" && ret.exId != '' && ret.exId > 0){ 6402 $(elementStreetExCode).val(ret.exId).trigger('change'); 6403 } 6404 6405 if (typeof ret.streetCodebookListId !== "undefined" && ret.streetCodebookListId != '' && ret.streetCodebookListId > 0){ 6406 $('#'+elementStreetCodebookId).val(ret.streetCodebookListId).trigger('change'); 6407 } 6408 6409 if(typeaheadStrictType == 'postCodeAutoFillByStreet'){ 6410 if($('#'+postCode).length){ 6411 if(ret.postcode && ret.postcode != 'null' && typeof ret.postcode != 'undefined'){ 6412 $('#'+postCode).val(ret.postcode).trigger('change'); 6413 cartChangeCityIdAndPostCodeOnePage($('#'+cityId).val(), ret.postcode); 6414 } else { 6415 $('#'+postCode).val('').trigger('change'); 6416 cartChangeCityIdAndPostCodeOnePage(-1, ''); 6417 } 6418 } 6419 } 6420 }); 6421 6422 $street.parent().find('.tt-hint').removeAttr('required'); 6423 }; 6424 6425 function initTypeheadStreetsNumber(cityId, streetName, streetNumber, postcode){ 6426 if(typeaheadStrictType == 'postCodeAutoFillByStreetNumber'){ 6427 var additionalStreetNbSufix = ''; 6428 if(showStreetAditionalFields){ 6429 additionalStreetNbSufix = '_new'; 6430 } 6431 $('#'+streetNumber+additionalStreetNbSufix).keyup(function (){ 6432 var streetNameValue = $('#'+streetName).val(); 6433 if($('#'+streetName).attr('data-street-name') != '' && typeof $('#'+streetName).attr('data-street-name') !== typeof undefined && $('#'+streetName).attr('data-street-name') !== false){ 6434 streetNameValue = $('#'+streetName).attr('data-street-name'); 6435 } 6436 if($(this).val() != '') { 6437 $.ajax({ 6438 type: "POST", 6439 url: nb_active_page_url, 6440 data: { 6441 nbAjax: '1', 6442 ajax: 'yes', 6443 task: 'search_street_nb', 6444 streetname: streetNameValue, 6445 cityid: $('#'+cityId).val(), 6446 streetnumber: $('#'+streetNumber+additionalStreetNbSufix).val() 6447 }, 6448 dataType: 'json', 6449 success: function (ret) { 6450 if (ret.flag) { 6451 $('#'+postcode).val(ret.list[0].postcode); 6452 cartChangeCityIdAndPostCodeOnePage($('#'+cityId).val(), ret.list[0].postcode); 6453 } else { 6454 $('#'+postcode).val(''); 6455 cartChangeCityIdAndPostCodeOnePage(-1, ''); 6456 } 6457 } 6458 }); 6459 } else { 6460 $('#'+postcode).val(''); 6461 } 6462 }); 6463 } 6464 }; 6465 6466 //ovo 6467 function initTypeheadStreetsNumberBilling(cityId, streetName, streetNumber, postcode){ 6468 6469 if(typeaheadStrictType == 'postCodeAutoFillByStreetNumber'){ 6470 var additionalStreetNbSufix = ''; 6471 6472 $('#'+streetNumber).keyup(function (){ 6473 var streetNameValue = $('#'+streetName).val();
6474 if($('#'+streetName).attr('data-street-name') != '' && typeof $('#'+streetName).attr('data-street-name') !== typeof undefined && $('#'+streetName).attr('data-street-name') !== false){ 6475 streetNameValue = $('#'+streetName).attr('data-street-name'); 6476 } 6477 if($(this).val() != '') { 6478 $.ajax({ 6479 type: "POST", 6480 url: nb_active_page_url, 6481 data: { 6482 nbAjax: '1', 6483 ajax: 'yes', 6484 task: 'search_street_nb', 6485 streetname: streetNameValue, 6486 cityid: $('#'+cityId).val(), 6487 streetnumber: $('#'+streetNumber).val() 6488 }, 6489 dataType: 'json', 6490 success: function (ret) { 6491 if (ret.flag) { 6492 $('#'+postcode).val(ret.list[0].postcode); 6493 cartChangeCityIdAndPostCodeOnePage(cityId, postcode); 6494 } else { 6495 $('#'+postcode).val(''); 6496 cartChangeCityIdAndPostCodeOnePage(-1, ''); 6497 } 6498 } 6499 }); 6500 } else { 6501 $('#'+postcode).val(''); 6502 } 6503 }); 6504 } 6505 }; 6506 6507 function initTypeheadNewAddressCart(elementId, elmentNameId){ 6508 6509 var $newAddressList = $('#'+elmentNameId), $newAddressListId = $('#'+elementId); 6510 6511 if(typeof($newAddressListId.data('type-selection-new-address')) != 'undefined' && $newAddressListId.data('type-selection-new-address') == 'user_public_new_address_select'){ 6512 6513 if($newAddressListId.length == 0){ 6514 return; 6515 } 6516 6517 $newAddressListId.on('change', function() { 6518 getNewUserAddress($newAddressListId.val()); 6519 }); 6520 6521 var getNewUserAddress = function(userAddressId){ 6522 $.ajax({ 6523 type: "POST", 6524 url: getCartPageUrl(), 6525 data: { 6526 ajax: 'yes', 6527 task: 'getnewuseraddress', 6528 userAddressId: userAddressId, 6529 countryGeoId : function(){ 6530 if (typeof($('#cart_onepage_country_geo_id').val()) != 'undefined' && $('#cart_onepage_country_geo_id').val() != null && $('#cart_onepage_country_geo_id').val() > 0){ 6531 return $('#cart_onepage_country_geo_id').val(); 6532 } 6533 return 0; 6534 }, 6535 }, 6536 dataType: 'json', 6537 success: function(ret){ 6538 if(ret.flag){ 6539 6540 if(ret.userPublicNewAddress){ 6541 6542 $('#cart_onepage_firstname').val(ret.userPublicNewAddress.firstname); 6543 $('#cart_onepage_lastname').val(ret.userPublicNewAddress.lastname); 6544 6545 if($('#cart_onepage_company_name').length > 0){ 6546 $('#cart_onepage_company_name').val(ret.userPublicNewAddress.lastname); 6547 } 6548 6549 if($('#cart_onepage_company_shortname').length > 0){ 6550 $('#cart_onepage_company_shortname').val(ret.userPublicNewAddress.firstname); 6551 } 6552 6553 $('#cart_onepage_email').val(ret.userPublicNewAddress.email); 6554 $('#cart_onepage_phone').val(ret.userPublicNewAddress.phone); 6555 6556 if($('#cart_onepage_company_pib').length > 0){ 6557 $('#cart_onepage_company_pib').val(ret.userPublicNewAddress.personalNumber); 6558 } 6559 6560 if($('#cart_onepage_company_id_number').length > 0){ 6561 $('#cart_onepage_company_id_number').val(ret.userPublicNewAddress.idNumber); 6562 } 6563 6564 if($('#cart_onepage_chief_executive_officer').length > 0){ 6565 $('#cart_onepage_chief_executive_officer').val(ret.userPublicNewAddress.chiefExecutiveOfficer); 6566 } 6567 6568 if($('#cart_onepage_street').length > 0){ 6569 $('#cart_onepage_street').val(ret.userPublicNewAddress.street); 6570 } 6571 6572 if($('#cart_onepage_street_id').length > 0){ 6573 $('#cart_onepage_street_id').val(ret.userPublicNewAddress.streetId); 6574 } 6575 6576 if($('#cart_onepage_street_no').length > 0){ 6577 $('#cart_onepage_street_no').val(ret.userPublicNewAddress.street_no); 6578 } 6579 6580 if($('#cart_onepage_city').length > 0){ 6581 $('#cart_onepage_city').val(ret.userPublicNewAddress.city); 6582 } 6583 6584 if($('#cart_onepage_city_id').length > 0){ 6585 $('#cart_onepage_city_id').val(ret.userPublicNewAddress.cityId); 6586 } 6587 6588 if($('#cart_onepage_postcode').length > 0){ 6589 $('#cart_onepage_postcode').val(ret.userPublicNewAddress.postcode); 6590 } 6591 6592 if($('#cart_onepage_region').length > 0){ 6593 $('#cart_onepage_region').val(ret.userPublicNewAddress.region); 6594 } 6595 6596 if($('#cart_onepage_region_id').length > 0){ 6597 $('#cart_onepage_region_id').val(ret.userPublicNewAddress.regionId); 6598 } 6599 6600 }else{ 6601 $('#cart_onepage_firstname').val(""); 6602 $('#cart_onepage_lastname').val(""); 6603 6604 if($('#cart_onepage_company_name').length > 0){ 6605 $('#cart_onepage_company_name').val(""); 6606 } 6607 6608 if($('#cart_onepage_company_
6608shortname').length > 0){ 6609 $('#cart_onepage_company_shortname').val(""); 6610 } 6611 6612 $('#cart_onepage_email').val(""); 6613 $('#cart_onepage_phone').val(""); 6614 6615 if($('#cart_onepage_company_pib').length > 0){ 6616 $('#cart_onepage_company_pib').val(""); 6617 } 6618 6619 if($('#cart_onepage_company_id_number').length > 0){ 6620 $('#cart_onepage_company_id_number').val(""); 6621 } 6622 6623 if($('#cart_onepage_chief_executive_officer').length > 0){ 6624 $('#cart_onepage_chief_executive_officer').val(""); 6625 } 6626 6627 if($('#cart_onepage_street').length > 0){ 6628 $('#cart_onepage_street').val(""); 6629 } 6630 6631 if($('#cart_onepage_street_id').length > 0){ 6632 $('#cart_onepage_street_id').val(""); 6633 } 6634 6635 if($('#cart_onepage_street_no').length > 0){ 6636 $('#cart_onepage_street_no').val(""); 6637 } 6638 6639 if($('#cart_onepage_city').length > 0){ 6640 $('#cart_onepage_city').val(""); 6641 } 6642 6643 if($('#cart_onepage_city_id').length > 0){ 6644 $('#cart_onepage_city_id').val(""); 6645 } 6646 6647 if($('#cart_onepage_postcode').length > 0){ 6648 $('#cart_onepage_postcode').val(""); 6649 } 6650 6651 if($('#cart_onepage_region').length > 0){ 6652 $('#cart_onepage_region').val(""); 6653 } 6654 6655 if($('#cart_onepage_region_id').length > 0){ 6656 $('#cart_onepage_region_id').val(""); 6657 } 6658 } 6659 } 6660 } 6661 }); 6662 }; 6663 6664 if($newAddressListId.val() != '' && $newAddressListId.val() > 0){ 6665 getNewUserAddress($newAddressListId.val()); 6666 } 6667 6668 }else{ 6669 6670 if($newAddressList.length == 0){ 6671 return; 6672 } 6673 6674 if(typeof($newAddressList.data('typehead-url')) == 'undefined' || $newAddressList.data('typehead-url') == null || $newAddressList.data('typehead-url') == ""){ 6675 return; 6676 } 6677 6678 var streetBH = new Bloodhound({ 6679 datumTokenizer: Bloodhound.tokenizers.obj.whitespace('id'), 6680 queryTokenizer: Bloodhound.tokenizers.whitespace, 6681 limit: 20, 6682 remote: { 6683 url: $newAddressList.data('typehead-url'), 6684 filter: function (newAddress){ 6685 $('#'+elementId).val("-1").trigger('change'); 6686 if(typeof newAddress.list != 'undefined'){ 6687 return $.map(newAddress.list, function (elem) { 6688 return elem; 6689 }); 6690 }else { 6691 return ""; 6692 } 6693 } 6694 } 6695 }); 6696 6697 streetBH.initialize(); 6698 $newAddressList.typeahead({ 6699 minLength: 1, 6700 highlight: true 6701 }, 6702 { 6703 displayKey: 'name', 6704 source: streetBH.ttAdapter() 6705 }).on('typeahead:selected', function (e, ret){ 6706 //set here the id of the selected cities, or whatever needed 6707 $newAddressList.parsley().validate(); 6708 $('#'+elementId).val(ret.id).trigger('change'); 6709 6710 $('#cart_onepage_firstname').val(ret.name); 6711 $('#cart_onepage_lastname').val(ret.internalName); 6712 6713 if($('#cart_onepage_company_name').length > 0){ 6714 $('#cart_onepage_company_name').val(ret.name); 6715 } 6716
6717 if($('#cart_onepage_company_shortname').length > 0){ 6718 $('#cart_onepage_company_shortname').val(ret.internalName); 6719 } 6720 6721 $('#cart_onepage_email').val(ret.email); 6722 $('#cart_onepage_phone').val(ret.phone); 6723 6724 //$('#cart_onepage_country_geo').val(ret.street); 6725 //$('#cart_onepage_country_geo_id').val(ret.street); 6726 6727 $('#cart_onepage_city').val(ret.cityName); 6728 $('#cart_onepage_city_id').val(ret.cityId); 6729 6730 $('#cart_onepage_street').val(ret.street); 6731 $('#cart_onepage_street_id').val(ret.streetId); 6732 6733 $('#cart_onepage_postcode').val(ret.postCode); 6734 6735 if($('#cart_onepage_company_pib').length > 0){ 6736 $('#cart_onepage_company_pib').val(""); 6737 } 6738 6739 if($('#cart_onepage_company_id_number').length > 0){ 6740 $('#cart_onepage_company_id_number').val(""); 6741 } 6742 6743 if($('#cart_onepage_chief_executive_officer').length > 0){ 6744 $('#cart_onepage_chief_executive_officer').val(""); 6745 } 6746 6747 }); 6748 6749 $newAddressList.parent().find('.tt-hint').removeAttr('required'); 6750 } 6751 6752 } 6753 6754 6755 6756 return { 6757 init: function(){ 6758 initTypeheadCities('regional_centers_search_id', 'regional_centers_search'); 6759 initTypeheadProductsReclamation('.reclamation-product-code'); 6760 6761 initTypeheadCities('cart_onepage_city_id', 'cart_onepage_city', 'cart_onepage_street', 'cart_onepage_postcode', 'cart_onepage_region_id', 'input[type="radio"][name="carierId"]:checked','#cart_onepage_city_ex_code','cart_onepage_city_codebook_id'); 6762 initTypeheadCities('cart_onepage_billing_city_id', 'cart_onepage_billing_city', 'cart_onepage_billing_street', '', 'cart_onepage_billing_region_id'); 6763 initTypeheadCities('reg_city_id', 'reg_city', 'reg_address', 'reg_postcode', 'reg_region_id'); 6764 initTypeheadCities('reg_page_city_id', 'reg_page_city', 'reg_page_address', 'reg_page_postcode', 'reg_page_region_id'); 6765 initTypeheadCities('profile_city_id', 'profile_city', 'profile_address', 'profile_postcode', 'profile_region_id'); 6766 initTypeheadCities('subscribe_city_id', 'subscribe_city'); 6767 initTypeheadCities('preorder_city_id', 'preorder_city', 'preorder_address', 'preorder_postcode', 'preorder_region_id'); 6768 initTypeheadCities('profile_add_shipment_delivery_city_id', 'profile_add_shipment_delivery_city', 'profile_add_shipment_delivery_address', 'profile_add_shipment_delivery_postcode', 'profile_add_shipment_delivery_region_id'); 6769 initTypeheadCities('shipment_delivery_address_city_id', 'shipment_delivery_address_city', 'shipment_delivery_address_address', 'shipment_delivery_address_postcode', 'shipment_delivery_address_id'); 6770 6771 initTypeheadCities('city_id', 'city', 'street', 'zipcode', 'street_id'); 6772 initTypeheadCities('city_shipment_id', 'city_shipment', 'street_shipment', 'zipcode', 'street_shipment_id'); 6773 initTypeheadCities('enrollment_companyheadquarter_id', 'enrollment_companyheadquarter', 'enrollment_companyaddress', 'enrollment_companypostnumber', 'enrollment_companyaddress_id'); 6774 initTypeheadCities('enrollment_deliveryplace_id', 'enrollment_deliveryplace', 'enrollment_deliveryaddress', 'enrollment_deliverypostnumber', 'enrollment_deliveryaddress_id'); 6775 initTypeheadCities('contact_upload_file_city_id', 'contact_upload_file_city', 'contact_upload_file_address', 'contact_upload_file_postcode', 'contact_upload_file_region_id'); 6776 initTypeheadCities('loyalty_card_online_request_city_id', 'loyalty_card_online_request_city', 'loyalty_card_online_request_street', 'loyalty_card_online_request_postcode', ''); 6777 6778 initTypeheadStreets('street_id', 'street'); 6779 initTypeheadStreets('street_shipment_id', 'street_shipment', 'city_shipment_id', 'zipcode'); 6780 initTypeheadStreets('enrollment_companyaddress_id', 'enrollment_companyaddress'); 6781 initTypeheadStreets('reg_page_region_id', 'reg_page_region', 'reg_page_country_geo_id'); 6782 initTypeheadStreets('profile_region_id', 'profile_region', 'profile_country_geo_id'); 6783 initTypeheadStreets('loyalty_card_online_request_street_id', 'loyalty_card_online_request_street', 'loyalty_card_online_request_city_id', 'loyalty_card_online_request_postcode'); 6784 initTypeheadStreets('profile_add_shipment_delivery_address_id', 'profile_add_shipment_delivery_address', 'profile_add_shipment_delivery_city_id', 'profile_add_shipment_delivery_postcode'); 6785 6786 initTypeheadStreets('reg_page_address_id', 'reg_page_address', 'reg_page_city_id', 'reg_page_postcode'); 6787 initTypeheadStreets('reg_address_id', 'reg_address', 'reg_city_id', 'reg_postcode'); 6788 initTypeheadStreets('profile_address_id', 'profile_address','profile_city_id', 'profile_postcode'); 6789 initTypeheadStreets('enrollment_deliveryaddress_id', 'enrollment_deliveryaddress','enrollment_deliveryplace_id', 'enrollment_deliverypostnumber'); 6790 initTypeheadStreets('cart_onepage_street_id', 'cart_onepage_street', 'cart_onepage_city_id', 'cart_onepage_postcode', 'input[type="radio"][name="carierId"]:checked','#cart_onepage_street_ex_code','cart_onepage_street_codebook_id'); 6791 initTypeheadStreets('cart_onepage_billing_street_id', 'cart_onepage_billing_street', 'cart_onepage_billing_city_id', 'cart_onepage_billing_postcode'); 6792 initTypeheadStreets('street_id', 'street', 'city_id', 'zipcode'); 6793 6794 initTypeheadStreets('contact_upload_file_address_id', 'contact_upload_file_address', 'contact_upload_file_city_id', 'contact_upload_file_postcode'); 6795 6796 initTypeheadStreetsNumber('reg_page_city_id','reg_page_address','reg_page_street_no', 'reg_page_postcode'); 6797 initTypeheadStreetsNumber('reg_city_id','reg_address','reg_street_no', 'reg_postcode'); 6798 initTypeheadStreetsNumber('cart_onepage_city_id','cart_onepage_street','cart_onepage_street_no', 'cart_onepage_postcode');
6799 initTypeheadStreetsNumberBilling('cart_onepage_billing_city_id','cart_onepage_billing_street','cart_onepage_billing_street_no', 'cart_onepage_billing_postcode'); 6800 initTypeheadStreetsNumber('profile_city_id','profile_address','profile_street_no', 'profile_postcode'); 6801 6802 6803 initTypeheadRegions('cart_onepage_region_id', 'cart_onepage_region', 'cart_onepage_country_geo_id', 'input[type="radio"][name="carierId"]:checked','#cart_onepage_region_ex_code','cart_onepage_region_codebook_id'); 6804 initTypeheadRegions('reg_region_id', 'reg_region', 'reg_country_geo_id'); 6805 initTypeheadCountriesGeo('cart_onepage_country_geo_id', 'cart_onepage_country_geo'); 6806 initTypeheadCountriesGeo('reg_country_geo_id', 'reg_country_geo'); 6807 initTypeheadCountriesGeo('reg_page_country_geo_id', 'reg_page_country_geo'); 6808 initTypeheadCountriesGeo('profile_country_geo_id', 'profile_country_geo'); 6809 initTypeheadNewAddressCart('cart_onepage_new_address_list_id', 'cart_onepage_new_address_list'); 6810 //inicijalizacija svih autocomplete opcija 6811 initNBAutocompleteSystem('admin_userPublicId', 'admin_userPublic', 'name'); 6812 initNBAutocompleteSystem('register_devices_product_id', 'register_devices_product', 'name'); 6813 initNBAutocompleteSystem('mashine_service_product_id', 'mashine_service_product', 'name'); 6814 6815 var currierPacketomat = $('.carrier-wrapper .parcelmachine-wrapper'); 6816 var currierPacketomatId; 6817 var packetomatCity,packetomatCityId,parcelMachinePostcode; 6818 if(currierPacketomat.length > 0 ){ 6819 currierPacketomatId = currierPacketomat.data('wrappercarrierid'); 6820 currierPacketomat.each(function(){ 6821 currierPacketomatId = $(this).data('wrappercarrierid'); 6822 packetomatCity = 'cart_onepage_parcelMachine_city_'+currierPacketomatId; 6823 packetomatCityId = 'cart_onepage_parcelMachine_city_id_'+currierPacketomatId; 6824 parcelMachinePostcode = 'cart_onepage_parcelMachine_postcode_'+currierPacketomatId; 6825 console.log(currierPacketomatId); 6826 initTypeheadCities(packetomatCityId, packetomatCity,null,parcelMachinePostcode); 6827 }); 6828 //data-wrapperCarrierId 6829 //cart_onepage_parcelMachine_city_14 6830 //cart_onepage_parcelMachine_city_id_14 6831 6832 } 6833 }, 6834 initTypeheadRegions : initTypeheadRegions, 6835 initTypeheadCities : initTypeheadCities, 6836 initTypeheadStreets : initTypeheadStreets 6837 } 6838 }; 6839 6840 function storeBycityId(cityId){ 6841 $.ajax({ 6842 type: "POST", 6843 data: 'nbAjax=1&task=storeBycityId&cityId='+cityId, 6844 contentType: "application/x-www-form-urlencoded;charset=UTF-8", 6845 dataType: 'json', 6846 success: function(ret) { 6847 if(ret.flag){ 6848 // popuni podatke u modal box-u 6849 populateRegionalCenterModal(ret); 6850 6851 // prikazi modal sa podacima o izabranom regionalnom centru 6852 $('#regional_center_modal').modal('show'); 6853 } 6854 } 6855 }); 6856 } 6857 6858 /** 6859 * 6860 * Funkcija popunjava modal box odgovarajucim podacima o regionalnom centru. 6861 * @param response { Object } Sadrzi informacije o regionalnom centru. 6862 * 6863 */ 6864 function populateRegionalCenterModal(response) { 6865 try { 6866 // elementi u koje treba uneti odgovarajuci sadrzaj 6867 var $contentHolders = $('#regional_center_modal .nb-insert-content'); 6868 var storeDetails = response.store.rows; 6869 6870 if (!storeDetails.length) return false; 6871 storeDetails = storeDetails[0]; 6872 6873 $contentHolders.each(function(index, value) { 6874 // if (this.id === 'categories') return this.textContent = checkCategory(this.id); 6875 if (this.id === 'phone') this.href = 'tel:' + storeDetails[this.id]; 6876 if (this.id === 'email') this.href = 'mailto:' + storeDetails[this.id]; 6877 6878 this.innerHTML = storeDetails[this.id]; 6879 6880 if (!storeDetails[this.id]) this.closest('.item').remove(); 6881 }); 6882 } catch (error) { 6883 console.log(error); 6884 } 6885 } 6886 6887 /** 6888 * 6889 * Pomocna funkcija koja prihvata indeks kategorije i vraca njeno ime. 6890 * @param categoryId { Number } indeks kategorije 6891 * returns { String } ime kategorije 6892 */ 6893 function checkCategory(categoryId) { 6894 switch (categoryId) { 6895 case 1: 6896 return 'Centar'; 6897 case 2: 6898 return 'Paketomat'; 6899 default: 6900 return 'Paket Shop'; 6901 } 6902 } 6903 6904 /* 6905 * POPOVERS 6906 * Description: Tooltips possibly containing html, images etc. 6907 * Plugins used: Bootstrap's Popover 6908 */ 6909 var handlePopover = function($elements){ 6910 $elements.each(function(){ 6911 var $el = $(this); 6912 $el.popover({ 6913 html: true, 6914 trigger: $el.data('trigger') ? $el.data('trigger') : 'hover', 6915 placement: $el.data('placement') ? $el.data('placement') : 'bottom', 6916 content: $el.find('.popover-content').length ? $el.find('.popover-content').html() : null 6917 }); 6918 }); 6919 }; 6920 6921 var handleShowHideElements = function(){ 6922 //add class c_element on element you want to click 6923 //that element must have data-element attr with name of the class tou want to show/hide 6924 //on click element gets/removes hidden class 6925 var c_elements = $('.c_element'); 6926 $(c_elements).on('click', function() { 6927 var cls = $(this).data('element'); 6928 $('.'+cls).toggleClass('hidden'); 6929 }); 6930 6931 }; 6932 6933 var handleFileSelect = function($file){ 6934 6935 $file.on('change', function(){ 6936 var input = $(this), 6937 numFiles = input.get(0).files ? input.get(0).files.length : 1, 6938 label = input.val().replace(/\\/g, '/').replace(/.*\//, ''); 6939 input.trigger('fileselect', [numFiles, label]); 6940 }); 6941 6942 $file.on('fileselect', function(event, numFiles, label){ 6943 var input = $(this).parents('.input-group').find(':text'), 6944 log = numFiles > 1 ? numFiles + ' files selected' : label; 6945 if(input.length){ 6946 input.val(log); 6947 } 6948 }); 6949 } 6950 6951 var handleBrendLettersFilter = function(){ 6952 var wrapper = $('.list-letters-wrapper'); 6953 var ltr = $('.list-letters .item'); 6954 var itmletter = $('.letters-inline .item'); 6955 if(itmletter.length === 0 ){ 6956 return false;
6957 } 6958 itmletter.click(function(){ 6959 var cl = $(this).data('letter'); 6960 var $this = $(this); 6961 6962 ltr.removeClass('hidden'); 6963 ltr.removeClass('show'); 6964 if(clickedLetter != cl){ 6965 clickedLetter = cl; 6966 itmletter.removeClass('active'); 6967 $this.addClass('active'); 6968 ltr.each(function() { 6969 6970 if(!$(this).hasClass(cl)) { 6971 $(this).addClass('hidden'); 6972 //app.scroll.hide($(this).find('.item-list-wrapper.setscrolls')); 6973 //app.scroll.remove($(this).find('.content')); 6974 }else{ 6975 //app.scroll.remove($(this).find('.content')); 6976 //app.scroll.set($(this).find('.content')); 6977 } 6978 }); 6979 } else { 6980 $this.removeClass('active'); 6981 ltr.each(function() { 6982 $(this).removeClass('hidden'); 6983 //app.scroll.set($(this).find('.content')); 6984 //app.scroll.resize($(this).find('.content')); 6985 }); 6986 clickedLetter = false; 6987 } 6988 }); 6989 6990 }; 6991 6992 var handleHTMLEditorTableResponsive = function(){ 6993 var tabela = $('.post-content').find('table'); 6994 $(tabela).each(function(){ 6995 if ($(tabela).parent('.table-responsive').length == 0) { 6996 $(tabela).wrap( "<div class='table-responsive'></div>" ); 6997 } 6998 }) 6999 }; 7000 7001 var handleMapStoreShowHide = function(type){ 7002 var $elementSearch = $('.storelocator-panel'), 7003 $elementMap = $('.stores-map'); 7004 7005 }; 7006 var reinitOpenslider = function(slider,options){ 7007 /*Reinicijalizacija glavnog slidera*/ 7008 7009 var $mainslider = slider; 7010 var $options = options; 7011 7012 if($mainslider.length === 0 || !$options){ 7013 return 7014 } 7015 7016 var currentSlide = $mainslider.slick('slickCurrentSlide'); 7017 $mainslider.slick('unslick'); 7018 $options.initialSlide = currentSlide; 7019 nbshopJS.initSlider($mainslider, $options); 7020 }; 7021 7022 var handleCountry_lang = function(){ 7023 var $wrapper = $('.country-wrapper'), 7024 $buttons = $('.country-dropdown, .country-button, .country-close'), 7025 $countrydropdown = $('.country-dropdown'), 7026 $results = $('.country-results'), 7027 $image = $('.dropdown-button img'), 7028 $header = $('.header'), 7029 $hideElements = $('.hidden-fullscreen:not(.nav-main-wrapper)'); 7030 $nicescroll = $('.nicescroll-rails'); 7031 7032 $buttons.click(function(){ 7033 $('body').scrollTop(); 7034 $countrydropdown.toggleClass('active'); 7035 $image.toggleClass('hidden'); 7036 $wrapper.toggleClass('hidden'); 7037 $hideElements.toggleClass('hidden'); 7038 $nicescroll.toggleClass('hidden'); 7039 var headerHeight = $header.outerHeight(true); 7040 $wrapper.height(app.height() - headerHeight + 1); 7041 $results.height(app.height() - headerHeight - 50); 7042 reinitOpenslider($('.main-slider > .slider-init'),window.mainslideroptions); 7043 7044 }); 7045 }; 7046 7047 var handleProductDetailsQuickViewOnModal = function($elements){ 7048 // console.log($elements) 7049 7050 var $productDetailsQuickViewModal = $('#product_details_modal'); 7051 console.log($productDetailsQuickViewModal) 7052 // console.log($(".showProductDetailsQuickViewOnModal")) 7053 $($elements).click(function(e){ 7054 e.preventDefault(); 7055 var $modalContentProductDetailsQuickView = $('.modal-content-product-details-quick-view'), 7056 $loaderWrapper = $modalContentProductDetailsQuickView.find('.loader-wrapper'); 7057 $loaderWrapper.removeClass('hidden'); 7058 $modalContentProductDetailsQuickView.find('.content-product-details-quick-view').html(""); 7059 $productDetailsQuickViewModal.modal('show'); 7060 $.ajax({ 7061 type: "POST", 7062 url: $(this).data('remote-modal-quick-wiew-product-permalink'), 7063 data: { 7064 //iframeView: 1, 7065 returnType: 'json', 7066 }, 7067 dataType: 'json', 7068 success: function(ret){ 7069 if(ret.flag){ 7070 $loaderWrapper.addClass('hidden'); 7071 $modalContentProductDetailsQuickView.find('.content-product-details-quick-view').html(ret.info); 7072 //$modalContentProductDetailsQuickView.html(ret); 7073 handleAppearing($('.appear')); 7074 handleProductDetails(); 7075 handleRelatedProductsSlider(); 7076 handleFavoriteProduct($('#product_details_modal .favorite')); 7077 handleLowerPriceProduct($('.action-lowerprice')); 7078 handleLowerPriceProductCombinations($('.action-lowerprice-combinatios')); 7079 nbshopJS.CustomEventTrigger('productQuickViewOnModal', ret.info); 7080 if($(".counter").length){ 7081 nbshopJS.handleSliderCountdown($(".counter")); 7082 } 7083 nbshopJS.productQuickBuyBobble(); 7084 productQuantityParentClass('#product_details_modal'); 7085 handleReadMore($(".read-more-btn")); 7086 } 7087 } 7088 }); 7089 }); 7090 }; 7091 7092 var handleProductQueryViewOnModal = function($elements){ 7093 7094 var $productQueryViewModal = $('#product-query-modal'); 7095 $($elements).click(function(e){ 7096 e.preventDefault(); 7097 7098 // Reset forme 7099 $("#product-query-modal .modal-content-product-query .alert").html('').addClass('hidden'); 7100 $("#product-query-modal .modal-content-product-query .form-inputs ").removeClass('hidden'); 7101 $("#product-query-modal .modal-content-product-query-footer").removeClass('hidden'); 7102 7103 var $modalContentProductQueryView = $('.modal-content-product-query'), 7104 $modalContentProductQueryViewFooter = $('.modal-content-product-query-footer'), 7105 $loaderWrapper = $modalContentProductQueryView.find('.loader-wrapper'); 7106 $loaderWrapper.removeClass('hidden'); 7107 7108 $modalContentProductQueryView.find('#product_query_firstname').val(""); 7109 $modalContentProductQueryView.find('#product_query_lastname').val(""); 7110 $modalContentProductQueryView.find('#product_query_email').val(""); 7111 $modalContentProductQueryView.find('#product_query_phone').val(""); 7112 $modalContentProductQueryView.find('#product_query_message').val(""); 7113 $modalContentProductQueryView.find('#product_query_cat').val(""); 7114 $modalContentProductQueryView.find('#product_query_pname').val(""); 7115 $modalContentProductQueryView.find('#product_query_anti_spam').val(-1); 7116 7117 $productQueryViewModal.modal('show'); 7118 7119 $.ajax({ 7120 type: "POST", 7121 url: nb_active_page_url, 7122 data: { 7123 nbAjax: 1, 7124 flag: "yes", 7125 ajax: "yes", 7126 task: "getproductdataforquery", 7127 productId: $(this).data('product-query-id') 7128 }, 7129 dataType: 'json', 7130 success: function(ret){ 7131 if(ret.flag){ 7132 7133 $modalContentProductQueryView.find('#product_query_cat').val(ret.product.productGroupName); 7134 $modalContentProductQueryView.find('#product_query_pname').val(ret.product.name); 7135 $modalContentProductQueryViewFooter.find('#product_query_product_id').val(ret.product.id); 7136 $modalContentProductQueryViewFooter.find('#product_query_combination_id').val(-1); 7137 7138 $loaderWrapper.addClass('hidden'); 7139 $modalContentProductQueryView.find('.modal
7139-content-product-query').html(ret.info); 7140 7141 } 7142 } 7143 }); 7144 }); 7145 7146 //todo product for query 7147 var productListQuery = function(){ 7148 var form = $('#product_query_form'); 7149 if(!form.length) return; 7150 7151 var subscribeValidate = form.validate({ 7152 formData: { ajax: 'yes', task: 'productquery' } 7153 }).data('nb.validate'); 7154 7155 subscribeValidate.$element.bind('nb.validate.remoteSuccess', function(e){ 7156 subscribeValidate.$element.find('.form-inputs').addClass('hidden'); 7157 subscribeValidate.$element.find('.modal-footer').addClass('hidden'); 7158 nbshopJS.CustomEventTrigger('productquerySuccess'); 7159 }); 7160 }; 7161 7162 productListQuery(); 7163 }; 7164 7165 let validateFormAddBtnLoader = (form) => { 7166 let submitBtn = form.find('.btn-success.confirm-loader'); 7167 7168 if(form !== "undefined"){ 7169 console.log(typeof form) 7170 7171 submitBtn.on('click', function(e) { 7172 const isValid = form.parsley().isValid(); 7173 7174 if (isValid) { 7175 console.log('Forma je validna.'); 7176 submitBtn.addClass('active'); 7177 } else { 7178 console.log('Forma nije validna.'); 7179 } 7180 }); 7181 } 7182 } 7183 7184 function toggleAttributesItems() { 7185 $('.quick-view-category-wrapper .product-attributes .size-item').click(function () { 7186 if(!$(this).hasClass('active')){ 7187 $('.quick-view-category-wrapper .product-attributes .size-item').each(function () { 7188 $(this).removeClass('active'); 7189 }) 7190 $('.quick-view-category-wrapper .product-attributes-wrapper .item').each(function () { 7191 $(this).removeClass('selected'); 7192 }) 7193 $(this).addClass('active'); 7194 } 7195 var productId = $(this).data('product-id'); 7196 $('.quick-view-category-wrapper .product-attributes-wrapper').each(function () { 7197 if($(this).data('product-id') == productId){ 7198 $(this).removeClass('hidden'); 7199 } else { 7200 $(this).addClass('hidden'); 7201 } 7202 }); 7203 calcPrice(); 7204 }); 7205 } 7206 7207 function calcPrice() { 7208 var sumPrice = 0; 7209 var currency = ''; 7210 if(typeof window.nbMetricObject.NB_METRIC_DATA.currency !== "undefined"){ 7211 currency = "<span>"+window.nbMetricObject.NB_METRIC_DATA.currency+"</span>"; 7212 } 7213 $('.quick-view-category-wrapper .product-attributes li.active').each(function () { 7214 sumPrice += Number($(this).data('price')); 7215 }) 7216 $('.quick-view-category-wrapper .product-attributes-wrapper .item.selected').each(function () { 7217 sumPrice += Number($(this).data('price')); 7218 }); 7219 sumPrice = sumPrice*Number($('.product-quantity-input').val()); 7220 var totalSumPrice = ''; 7221 if(sumPrice > 0){ 7222 totalSumPrice = parseFloat(sumPrice).toFixed(2)+' '+currency; 7223 } 7224 $('.price-info').html(totalSumPrice); 7225 } 7226 7227 function selectAttributesItems() { 7228 $('.quick-view-category-wrapper .product-attributes-wrapper .item').click(function () { 7229 var item = $(this); 7230 if($(this).hasClass('atributes-group-3')){ 7231 $('.quick-view-category-wrapper .product-attributes-wrapper .item.atributes-group-3').each(function(){ 7232 $(this).removeClass('selected'); 7233 }); 7234 item.addClass('selected'); 7235 } else { 7236 $(this).toggleClass('selected'); 7237 } 7238 calcPrice(); 7239 }); 7240 } 7241 7242 function productQuantityParentClass(element){ 7243 var productQuantity = $('#product_quantity'); 7244 7245 var parentClass = '' 7246 if (typeof element !== "undefined"){ 7247 parentClass = element+' ' 7248 } 7249 $(parentClass+'.product-quantity-arrows i').click(function(){ 7250 var $arrow = $(this), 7251 $productQuantity = $(parentClass+'.product-quantity-input'), 7252 $productQuantityHelper = $(parentClass+'.product-quantity-helper-pre'), 7253 productQuantityVal = parseInt($productQuantity.val()); 7254 7255 if(typeof $(this).closest(".after-add-to-cart") !== "undefined" && $(this).closest(".after-add-to-cart").length > 0) { 7256 $productQuantity = $(this).closest('.product-quantity-wrapper').find(".product-quantity-input"); 7257 productQuantityVal = parseInt($productQuantity.val()); 7258 } 7259 7260 $productQuantity.removeClass('ease-slow active-down active-up'); 7261 $productQuantityHelper.removeClass('active ease-slow'); 7262 7263 if($arrow.hasClass('quantity-up')){ 7264 var productQuantityNewVal = productQuantityVal+1; 7265 $productQuantity.addClass('active-up'); 7266 7267 } else if($arrow.hasClass('quantity-down')){ 7268 if(productQuantityVal == 1) return; 7269 var productQuantityNewVal = productQuantityVal-1; 7270 7271 //$productQuantityHelper = $('.product-quantity-helper-post'); 7272 //$productQuantity.addClass('active-down'); 7273 } 7274 7275 $productQuantity.addClass('ease-slow'); 7276 $productQuantityHelper.html(productQuantityNewVal).addClass('active ease-slow'); 7277 7278 setTimeout(function(){ 7279 $productQuantityHelper.removeClass('active ease-slow'); 7280 $productQuantity.removeClass('active-up active-down ease-slow'); 7281 $productQuantity.val(productQuantityNewVal); 7282 // var quantityNb = $(parentClass+'.product-quantity-helper-pre').text(); 7283 $(parentClass+'.packaging-quantity').text(productQuantityNewVal); 7284 calcPrice(); 7285 }, 10); 7286 7287 if(element == ('.tp-cart .ncx-mob-cart-v2')) { 7288 setTimeout(function() { 7289 $productQuantity.trigger('change'); 7290 } ,200); 7291 } 7292 }); 7293 productQuantity.on('input', function() { 7294 $(this).val($(this).val().replace(/[^0-9]/g, '')); 7295 }); 7296 productQuantity.change(function () { 7297 var quantityNb = $('#product_quantity').val(); 7298 console.log(quantityNb); 7299 console.log(parentClass); 7300 $(parentClass+'.packaging-quantity').text(quantityNb); 7301 }); 7302 }; 7303 7304 var categoryProductViewOnModal = function(){ 7305 7306 var categoryProductModal = $('#category_products_modal'); 7307 var loaderWrapper = categoryProductModal.find('.loader-wrapper'); 7308 $('.quick-view-category').click(function(e){ 7309 var btn = $(this); 7310 loaderWrapper.removeClass('hidden') 7311 e.preventDefault(); 7312 7313 categoryProductModal.modal('show'); 7314 $.ajax({ 7315 type: "POST", 7316 url: nb_active_page_url, 7317 data: { 7318 nbAjax: 1, 7319 flag: "yes", 7320 ajax: "yes", 7321 task: "getproductdatabycatid", 7322 categoryId: btn.data('category-id') 7323 }, 7324 dataType: 'json', 7325 success: function(ret){ 7326 if(ret.flag){ 7327 loaderWrapper.addClass('hidden'); 7328 categoryProductModal.find('.content-category-products-modal').html(ret.productHtml); 7329 $('#category_products_modal #product_quantity').val('1'); 7330 calcPrice(); 7331 toggleAttributesItems(); 7332 selectAttributesItems(); 7333 productQuantityParentClass('#category_products_modal'); 7334 } 7335 } 7336 }); 7337 }); 7338 7339 function addToCart(){ 7340 $('#nb_addToCartButton.nb_addToCartButton').click(function () { 7341 var btn = $(this); 7342 btn.text('...'); 7343 var productArray = []; 7344 var flagNoSelectedItem = true; 7345 var flagNoSelectedAG3 = true; 7346 var btnText = btn.data('btn-text-addtocart'); 7347 var btnAddedText = btn.data('btn-text-addedtocart'); 7348 var btnNoSizeText = btn.data('btn-text-select-size'); 7349 var btnNoAG3Text = 'Izaberite tip testenine'; 7350 var quantity = $('#product_quantity').val(); 7351 var productsComment = ''; 7352 $('.quick-view-category-wrapper .product-attributes li.active').each(function () { 7353 flagNoSelectedItem = false;
7354 oneproductcomb = $(this).data('product-id')+'#'+$(this).data('combid')+'#'+quantity; 7355 productArray.push(oneproductcomb); 7356 }) 7357 $('.quick-view-category-wrapper .product-attributes-wrapper .item.selected').each(function () { 7358 oneproductcomb = $(this).parent().data('product-id')+'#'+$(this).data('combid')+'#'+quantity; 7359 productArray.push(oneproductcomb); 7360 }); 7361 7362 $('.quick-view-category-wrapper .product-attributes-wrapper .item.atributes-group-3').each(function(){ 7363 if($(this).hasClass('selected')){ 7364 flagNoSelectedAG3 = false; 7365 } 7366 }); 7367 if(!$('.quick-view-category-wrapper .product-attributes-wrapper .item.atributes-group-3').length){ 7368 flagNoSelectedAG3 = false; 7369 } 7370 if($('#order-message').length){ 7371 productsComment = $('#order-message').val(); 7372 } 7373 if(flagNoSelectedItem){ 7374 btn.text(btnNoSizeText); 7375 setTimeout(function () { 7376 btn.text(btnText); 7377 }, 2000); 7378 } else if(flagNoSelectedAG3){ 7379 btn.text(btnNoAG3Text); 7380 setTimeout(function () { 7381 btn.text(btnText); 7382 }, 2000); 7383 } else { 7384 ShopByLookAddToCart(productArray,productsComment); 7385 } 7386 window.addEventListener("shopByLookAddToCart", function(e) { 7387 if(e.detail.flag){ 7388 setTimeout(function () { 7389 btn.text(btnAddedText); 7390 $('.mini-cart.mini-cart-side .icon-wrapper').addClass('pulse'); 7391 }, 1000); 7392 setTimeout(function () { 7393 $('.modal').modal('hide'); 7394 }, 2000); 7395 setTimeout(function () { 7396 btn.text(btnText); 7397 }, 3000); 7398 setTimeout(function () { 7399 $('.mini-cart.mini-cart-side .icon-wrapper').removeClass('pulse'); 7400 }, 5000); 7401 } else { 7402 setTimeout(function () { 7403 btn.text(btnText); 7404 }, 1000); 7405 } 7406 }, false); 7407 }); 7408 } 7409 7410 addToCart(); 7411 }; 7412 7413 var handleLocationBuyProductOnModal = function($elements){ 7414 var $locationBuyProductModal = $('#modal_location_buy'); 7415 $($elements).click(function(e){ 7416 e.preventDefault(); 7417 var $modalContentLocationBuyProduct = $('.modal-content-location-buy-product'), 7418 $loaderWrapper = $modalContentLocationBuyProduct.find('.loader-wrapper'); 7419 $loaderWrapper.removeClass('hidden'); 7420 $modalContentLocationBuyProduct.find('.content-location-buy-product').html(""); 7421 $locationBuyProductModal.modal('show'); 7422 $.ajax({ 7423 type: "POST", 7424 url: nb_active_page_url, 7425 data: { 7426 nbAjax: 1, 7427 flag: "yes", 7428 ajax: "yes", 7429 task: "location_buy_product", 7430 productId: $($elements).data('location-buy-productid'), 7431 //iframeView: 1, 7432 returnType: 'json', 7433 }, 7434 dataType: 'json', 7435 success: function(ret){ 7436 if(ret.flag){ 7437 $loaderWrapper.addClass('hidden'); 7438 $modalContentLocationBuyProduct.find('.content-location-buy-product').html(ret.productHtml); 7439 } 7440 } 7441 }); 7442 }); 7443 }; 7444 7445 var handleSoonSaleProductOnModal = function($elements){ 7446
7447 var $locationBuyProductModal = $('#modal_soon_sale_product'); 7448 7449 $($elements).click(function(e){ 7450 e.preventDefault(); 7451 7452 var $modalContentSoonSaleProduct = $('.modal-content-soon-sale-product'), 7453 $loaderWrapper = $modalContentSoonSaleProduct.find('.loader-wrapper'); 7454 $loaderWrapper.removeClass('hidden'); 7455 $modalContentSoonSaleProduct.find('.content-soon-sale-product').html(""); 7456 $locationBuyProductModal.modal('show'); 7457 $.ajax({ 7458 type: "POST", 7459 url: nb_active_page_url, 7460 data: { 7461 nbAjax: 1, 7462 flag: "yes", 7463 ajax: "yes", 7464 task: "soon_sale_product", 7465 productId: $($elements).data('soon-sale-productid'), 7466 //iframeView: 1, 7467 returnType: 'json', 7468 }, 7469 dataType: 'json', 7470 success: function(ret){ 7471 if(ret.flag){ 7472 $loaderWrapper.addClass('hidden'); 7473 $modalContentSoonSaleProduct.find('.content-soon-sale-product').html(ret.productHtml); 7474 } 7475 } 7476 }); 7477 }); 7478 }; 7479 7480 var handleMasonry = function(){ 7481 7482 var $container = $('.js-masonry'); 7483 if (typeof($container.masonry) == 'function') { 7484 // initialize 7485 $container.find('img').batchImageLoad({ 7486 loadingCompleteCallback: function(){ 7487 // apply mansory to the grid items 7488 $container.masonry({ 7489 // columnWidth: 200, 7490 itemSelector: '.masonry-item' 7491 }); 7492 } 7493 }); 7494 } 7495 7496 }; 7497 7498 var handleFilterDropdown = function(){ 7499 var $wrapper = $('.filter-headlines.block'); 7500 var oldId = ''; 7501 $wrapper.find('.item').click(function(){ 7502 var fwrapper = $(this).attr('id'); 7503 //alert(oldId); 7504 if(oldId != fwrapper){ 7505 7506 $('.product-listing-filters .filter-group').removeClass('active'); 7507 $('.filter-headlines.block .item').removeClass('active'); 7508 $('#nb_'+fwrapper).toggleClass('active'); 7509 $(this).toggleClass('active'); 7510 oldId = fwrapper; 7511 }else{ 7512 $(this).toggleClass('active'); 7513 $('#nb_'+fwrapper).toggleClass('active'); 7514 } 7515 }); 7516 }; 7517 7518 var handleFixedFiltersButton = function(){ 7519 var wrapper = $('.fixed-button-wrapper-productlist'); 7520 var productsFound = $('.products-found'); 7521 $(window).scroll(function(){ 7522 if ($(this).scrollTop() > 80) { 7523 wrapper.addClass('fixed'); 7524 productsFound.addClass('fixed'); 7525 } else { 7526 wrapper.removeClass('fixed'); 7527 productsFound.removeClass('fixed'); 7528 } 7529 }); 7530 }; 7531 7532 var handleToggleBanner = function(){ 7533 7534 var banner = $(".toggle-banner > .item"); 7535 var wholebanner = $(".toggle-banner .item, .toggle-banner .toggle-button"); 7536 var buttonIcon = $(".toggle-banner .toggle-button i"); 7537 var i = ''; 7538 7539 banner.each(function(){ 7540 var itembanner = $(this); 7541 var button = itembanner.parent().find(".toggle-button"); 7542 var name = 'banner_promo'+i; 7543 7544 7545 if(!readCookie(name) && app.width() > 1400){ 7546 itembanner.removeClass("closed"); 7547 button.addClass("expand"); 7548 7549 } 7550 if(readCookie(name)=='open' && app.width() > 1400){ 7551 itembanner.removeClass("closed"); 7552 button.addClass("expand"); 7553 } 7554 if(app.width() < 768){ 7555 console.log('da'); 7556 createCookie(name,'close',1); 7557 itembanner.addClass("closed"); 7558 button.removeClass("expand"); 7559 } 7560 button.click(function(){ 7561 if(readCookie(name)=='close'){ 7562 createCookie(name,'open',1); 7563 }else{ 7564 createCookie(name,'close',1); 7565 } 7566 itembanner.toggleClass("closed"); 7567 button.toggleClass("expand"); 7568 nbshopJS.CustomEventTrigger('sidebarBannerClick'); 7569 }); 7570 7571 Number.isInteger = Number.isInteger || function(value) { 7572 return typeof value === "number" && 7573 isFinite(value) && 7574 Math.floor(value) === value; 7575 }; 7576 7577 i = i+1; 7578 7579 7580 }); 7581 7582 }; 7583 7584 var handleFixedHeader = function(){ 7585 7586 var wrapper = $('.header'); 7587 var addFixedClassPos = 81; 7588 var removeFixedClassPos = 81; 7589 7590 if (wrapper.hasClass('[class^="add-fixed-sol"]')) { 7591 var addFixedClass = wrapper.attr('class').match(/add-fixed-sol-\d+/)[0]; 7592 7593 addFixedClassPos = parseInt(addFixedClass.replace('add-fixed-sol-', '')); 7594 } 7595 7596 if (wrapper.hasClass('[class^="remove-fixed-sol"]')) { 7597 var removeFixedClass = wrapper.attr('class').match(/remove-fixed-sol-\d+/)[0]; 7598 7599 removeFixedClassPos = parseInt(removeFixedClass.replace('remove-fixed-sol-', '')); 7600 } 7601 7602 $(window).scroll(function(){ 7603 if ($(this).scrollTop() > addFixedClassPos) wrapper.addClass('fixed'); 7604 if ($(this).scrollTop() < removeFixedClassPos) wrapper.removeClass('fixed'); 7605 }); 7606 }; 7607 7608 var handleShowHideLabel = function(){ 7609 7610 if(typeof hidelabels !== 'undefined' && hidelabels == true){ 7611 7612 var $formControl = $('.form-control'); 7613 7614 $formControl.each(function () { 7615 var fc = $(this); 7616 7617 if (fc.val() != '') { 7618 7619 $("label[for='" + $(this).attr("id") + "']").show().animate({opacity: "1", height: '100%'}, 500); 7620 } else { 7621 $("label[for='" + $(this).attr("id") + "']").hide(); 7622 } 7623 }); 7624 7625 $formControl.click(function (e) { 7626 7627 $(this).bind("keyup", function (e) { 7628 if ($(this).val() != '') { 7629 $("label[for='" + $(this).attr("id") + "']").show().animate({ 7630 opacity: "1", 7631 height: '100%' 7632 }, 500); 7633 } else { 7634 $("label[for='" + $(this).attr("id") + "']").hide().animate({opacity: "1", height: '0'}, 500); 7635 } 7636 }) 7637 7638 }); 7639 7640 $('button[type=submit]').click(function () { 7641 7642 $("label").hide(); 7643 $(".comment-notice").hide(); 7644 7645 }); 7646 } 7647 7648 }; 7649 7650 var handleFixedDetails = function(){ 7651 if( $('.end-scroll').offset()) { 7652 var summaries = $('.fixed-to-footer'); 7653 summaries.each(function (i) { 7654 var summary = $(summaries[i]); 7655 var next = summaries[i + 1]; 7656 7657 if (app.width() > 768) { 7658 summary.scrollToFixed({ 7659 marginTop: $('.header').outerHeight(true), 7660 limit: function () { 7661 var limit = 0; 7662 if (next) { 7663 limit = $(next).offset().top - $(this).outerHeight(true) - 10; 7664 } else { 7665 limit = $('.end-scroll').offset().top - $(this).outerHeight(true); 7666 } 7667 return limit; 7668 }, 7669 zIndex: 999 7670 }); 7671 } 7672 }); 7673 } 7674 }; 7675 7676 var handleContactDropdown = function(){ 7677 7678 var dropdownToggle = $(".contact-toggle"); 7679 var dropdown = $(".contact-dropdown"); 7680 var toggleMap = $(".toggle-map"); 7681 var mobileMap = $(".map-mobile"); 7682 var closeMap = $(".close-map"); 7683 var contactWrapper = $(".styled-inner-wrapper"); 7684 dropdownToggle.click(function(){ 7685 $(this).toggleClass("active"); 7686 dropdown.fadeToggle(); 7687 contactWrapper.toggleClass("active"); 7688 $('.map-wrapper').toggleClass('active') 7689 }); 7690 7691 toggleMap.click(function(){ 7692 mobileMap.addClass("active"); 7693 closeMap.addClass("active"); 7694 }); 7695 7696 closeMap.click(function(){ 7697 mobileMap.removeClass("active"); 7698 closeMap.removeClass("active"); 7699 }); 7700 }; 7701 7702 var HandleInerZoomNinia = function(){ 7703 var attr = $('.product-images img').data('zoom-image'); 7704 if (typeof attr !== typeof undefined && attr !== false) { 7705 var InerZoomReinit = function(){ 7706 if (typeof($.elevateZoom) == 'function') { 7707 $('.product-images .elevatezoom img').elevateZoom({ 7708 zoomType: "inner", 7709 cursor: "crosshair", 7710 zoomWindowFadeIn: 500, 7711 zoomWindowFadeOut: 750 7712 }); 7713 } 7714 }; 7715 InerZoomReinit(); 7716 } 7717 }; 7718 7719 var HandleInerZoom = function(){ 7720 7721 var produvtImg = $('.slider.product-main .item.slick-active > img'); 7722 var $productMainSlder = $('.product-main .slider-init'); 7723 7724 var limitImageZoom = false;
7725 if (typeof produvtImg.data('options') !== 'undefined'){ 7726 var pincZoomKey; 7727 var pincZoomOptions = produvtImg.data('options').split(';'); 7728 for (i = 0; i < pincZoomOptions.length; ++i) { 7729 pincZoomKey = pincZoomOptions[i].split(':'); 7730 if(jQuery.inArray("maxZoom", pincZoomKey) !== -1){ 7731 limitImageZoom = true; 7732 } 7733 } 7734 } 7735 7736 if(!produvtImg.length) return; 7737 7738 var InerZoomReinit = function () { 7739 if (windowWidth() > 767) { 7740 if(limitImageZoom){ 7741 $('.slider.product-main .item.slick-active:not(.image-maped) img').elevateZoom({ 7742 zoomEnabled: true, 7743 zoomActivation: "click", 7744 zoomType: "inner", 7745 cursor: "crosshair", 7746 minZoomLevel: true, 7747 scrollZoomIncrement: 0.7, 7748 zoomWindowFadeIn: 500, 7749 zoomWindowFadeOut: 750 7750 }); 7751 } else { 7752 $('.slider.product-main .item.slick-active:not(.image-maped) img').elevateZoom({ 7753 zoomEnabled: true, 7754 zoomActivation: "click", 7755 zoomType: "inner", 7756 cursor: "crosshair", 7757 zoomWindowFadeIn: 500, 7758 zoomWindowFadeOut: 750 7759 }); 7760 } 7761 } 7762 }; 7763 7764 var $zoomOpenBtn = $('.product-images-zoom-open, .slider.product-main .item'), //.slider.product-main .item 7765 $zoomCloseBtn = $('.fullscreen .close'), 7766 $thumbsArrows = $('.product-images-thumbs .item, .product-images-thumbs-vertical .item, .product-image-wrapper .slick-arrow, .product-images-thumbs-vertical .slick-arrow,.slider.product-images-thumbs .item'); 7767 7768 /*$thumbsArrows.click(function () { 7769 // remove current zoom 7770 $('.zoomContainer').remove(); 7771 $('#elevate-zoomr').removeData('elevateZoom'); 7772 InerZoomReinit(); 7773 });*/ 7774 7775 7776 7777 $productMainSlder.on('afterChange', function(event, slick, currentSlide) { 7778 $('.zoomContainer').remove(); 7779 $('#elevate-zoomr').removeData('elevateZoom'); 7780 InerZoomReinit(); 7781 7782 }); 7783 7784 $zoomOpenBtn.click( function(){ 7785 $('.zoomContainer').remove(); 7786 $('#elevate-zoomr').removeData('elevateZoom'); 7787 }); 7788 7789 $zoomCloseBtn.click( function(){ 7790 InerZoomReinit(); 7791 }); 7792 7793 setTimeout(function () { 7794 InerZoomReinit(); 7795 }, 500) 7796 7797 if (windowWidth() < 767) { 7798 $('.zoomContainer').remove(); 7799 } 7800 7801 $productMainSlder.on('afterChange', function(event, slick, currentSlide) { 7802 if($('.product-main .slider-init .item.slick-current').hasClass('video') || $('.product-main .slider-init .item.slick-current').hasClass('image-maped') || $('.product-main .slider-init .item.slick-current').hasClass('item-flowplayery')){ 7803 setTimeout(function () { 7804 $('.zoomContainer').remove(); 7805 $('#elevate-zoomr').removeData('elevateZoom'); 7806 }, 50); 7807 } 7808 }); 7809 }; 7810 7811 var handleShowHideFiltersDropdown = function(){ 7812 var $filter_dropdown = $('.filters-dropdown'); 7813 var $buttons = $('.filters-button-dropdown, .filters-dropdown .icon-close'); 7814 $filter_dropdown.hide(); 7815 $buttons.click(function(){ 7816 $filter_dropdown.toggle(500); 7817 }); 7818 }; 7819 7820 var moveSearchBtn = function () { 7821 if(app.width() <= app.mobileBreakpoint){ 7822 if($('.main-4level').hasClass('main-4level-with-logo')) { 7823 $('.nav-main-wrapper .autocomplete-button').appendTo('.header-top'); 7824 $('.header .logo').appendTo('.header-top'); 7825 $('.header .reservation').appendTo('.header-top'); 7826 } else { 7827 $('.nav-main-wrapper .autocomplete-button').appendTo('.header-top > div'); 7828 }; 7829 } 7830 }; 7831 7832 var ImagesLightboxLink = function(){ 7833 var $img = $('.page-img-wrapper img'); 7834 var href ; 7835 $img.each(function(){ 7836 if($(this).parent('a').length == 0){ 7837 $href = $(this).attr('src'); 7838 $(this).wrap( "<a href='"+$href+"' data-fancybox='roadtrip'></a>" ); 7839 } 7840 }); 7841 }; 7842 7843 var handleReservation = function(){ 7844 var dropdownToggle = $(".action-button.reservation"), 7845 dropdown = $(".reservation-dropdown"); 7846 //show/hide booking dropdown 7847 dropdownToggle.click(function(){ 7848 dropdown.fadeToggle({ 7849 easing: "swing" 7850 }); 7851 }); 7852 }; 7853 7854 var addTableClass = function(){ 7855 $('.price-page table').addClass('table'); 7856 }; 7857 7858 var groupAllPriceItem = function(){ 7859 if ($(".price-page").find(".price-item").length > 0){ 7860 $('<div class="col-xs-12 price-items-wraper"></div>').appendTo('.block.items-generic'); 7861 $('.price-item').each(function() { 7862 $(this).appendTo(".price-items-wraper"); 7863 }); 7864 } 7865 }; 7866 7867 var handleTicketModal = function(){ 7868 7869 if($('.modal-ticket').length == 0) { 7870 return false;
7871 } 7872 7873 $("#ticket_modal .btn-ticket").click(function(){ 7874 $("#ticket_modal .ticket-item").toggleClass("active"); 7875 $("#ticket_modal .modal-body .lists-tabs").toggleClass("hidden"); 7876 }); 7877 7878 $("#ticket_modal .lists-tabs .item a").click(function(){ 7879 var curentTicket = $(this).data("ticket-id"); 7880 $('input[name=ticker_id]').val(curentTicket); 7881 }); 7882 7883 $("#ticket_modal .items-wrapper .item,#ticket_modal .btn-ticket").click(function(){ 7884 $(".ticket-modal-loader.loader-wrapper").removeClass('hidden'); 7885 $('#ticket_modal .alert').addClass('hidden').removeClass (function (index, className) { 7886 return (className.match (/(^|\s)alert-\S+/g) || []).join(' '); 7887 }); 7888 setTimeout(function() { 7889 $(".ticket-modal-loader.loader-wrapper").addClass('hidden'); 7890 }, 500); 7891 }); 7892 7893 $("#ticket_modal .send-request").click(function(e){ 7894 7895 e.preventDefault(); 7896 7897 var url = $('#sticket_form').attr("action"); 7898 var ticketingSystem = $('#ticket_modal .lists-tabs .item a').data("ticket-id"); 7899 $(".ticket-modal-loader.loader-wrapper").removeClass('hidden'); 7900 $.ajax({ 7901 type: "POST", 7902 url: url, 7903 data: { 7904 ajax: 'yes', 7905 task: 'createticketcode', 7906 ticketingSystem: ticketingSystem 7907 }, 7908 dataType: 'json', 7909 success: function(ret){ 7910 if(ret.flag){ 7911 //uspesno 7912 setTimeout(function() { 7913 $(".ticket-modal-loader.loader-wrapper").addClass('hidden'); 7914 $('#ticket_modal .alert').removeClass('hidden').addClass('alert-success').text(ret.info); 7915 }, 500); 7916 } else { 7917 //greska 7918 setTimeout(function() { 7919 $(".ticket-modal-loader.loader-wrapper").addClass('hidden'); 7920 $('#ticket_modal .alert').removeClass('hidden').addClass('alert-danger').text(ret.info); 7921 }, 500); 7922 } 7923 } 7924 }); 7925 7926 }); 7927 7928 $("#ticket_modal .ticket-item .btn-verifivation").click(function(e){ 7929 7930 e.preventDefault(); 7931 7932 var url = $('#sticket_form').attr("action"); 7933 var ticketingSystem = $('#ticket_modal .lists-tabs .item a').data("ticket-id"); 7934 var ticketCode = $("#ticket_modal .ticket-item .form-control").val(); 7935 7936 $(".ticket-modal-loader.loader-wrapper").removeClass('hidden'); 7937 $.ajax({ 7938 type: "POST", 7939 url: url, 7940 data: { 7941 ajax: 'yes', 7942 task: 'confirmticketcode', 7943 ticketCode: ticketCode, 7944 ticketingSystem: ticketingSystem 7945 }, 7946 dataType: 'json', 7947 success: function(ret){ 7948 if(ret.flag){ 7949 //uspesno 7950 setTimeout(function() { 7951 $(".ticket-modal-loader.loader-wrapper").addClass('hidden'); 7952 $('#ticket_modal .alert').removeClass('hidden').addClass('alert-success').text(ret.info); 7953 }, 500); 7954 window.location.reload(); 7955 } else { 7956 //greska 7957 setTimeout(function() { 7958 $(".ticket-modal-loader.loader-wrapper").addClass('hidden'); 7959 $('#ticket_modal .alert').removeClass('hidden').addClass('alert-danger').text(ret.info); 7960 }, 500); 7961 7962 } 7963 } 7964 }); 7965 7966 }); 7967 $('#ticket_modal').on('hidden.bs.modal', function() { 7968 if($("#ticket_modal .modal-body .lists-tabs").hasClass("hidden")){ 7969 $("#ticket_modal .modal-body .lists-tabs").removeClass("hidden") 7970 $("#ticket_modal .ticket-item").toggleClass("active"); 7971 } 7972 }); 7973 7974 7975 }; 7976 7977 var handleTicketModalNew = function(){ 7978 7979 if($('.ticket-modal-new').length == 0) { 7980 return false;
7981 } 7982 7983 $(".ticket-modal-new").on('shown.bs.modal', function (e) { 7984 handleLoyaltyTab('.ticket-modal-new'); 7985 }); 7986 7987 }; 7988 7989 var handleLoyaltyTab = function(wrapper){ 7990 7991 let $wrapper = $(wrapper); 7992 7993 if($wrapper.find('.loyalty-card-form').length == 0) { 7994 return false; 7995 } 7996 7997 var url = $wrapper.find('#ticket_form').attr("action"); 7998 7999 $wrapper.find('.loyalty-card-form > .loader-wrapper').removeClass('hidden'); 8000 8001 $.ajax({ 8002 type: "POST", 8003 url: url, 8004 data: { 8005 ajax: 'yes', 8006 task: 'loadloyaltytab' 8007 }, 8008 dataType: 'json', 8009 success: function(ret){ 8010 if(ret.flag){ 8011 $wrapper.find('#create-loyalty-tab').html(ret.htmlcreatetab); 8012 $wrapper.find('#connect-loyalty-tab').html(ret.htmlconnecttab); 8013 $wrapper.find('.loyalty-card-form > .loader-wrapper').addClass('hidden'); 8014 $wrapper.find('.loyalty-card-form').addClass('loaded'); 8015 handleLoyaltyForm(wrapper); 8016 } 8017 } 8018 }); 8019 8020 } 8021 8022 var handleLoyaltyForm = function(wrapper) { 8023 8024 let $wrapper = $(wrapper); 8025 8026 let createCardScreen = $wrapper.find('.loyalty-card-form .create-card-wrapper'); 8027 let createCardConfirmScreen = $wrapper.find('.loyalty-card-form .confirm-card-creation'); 8028 let createCardSuccessScreen = $wrapper.find('.loyalty-card-form .success-card-created'); 8029 8030 let connectCardScreen = $wrapper.find('.loyalty-card-form .connect-loyalty-card .email-wrapper'); 8031 let connectCardScreenImg = $wrapper.find('.loyalty-card-form .connect-loyalty-card > .content-wrapper .img-wrapper'); 8032 let connectCardVerificationScreen = $wrapper.find('.loyalty-card-form .connect-loyalty-card .verification-code-wrapper'); 8033 let confirmCardScreen = $wrapper.find('.loyalty-card-form .connect-loyalty-card .ticket-code-wrapper'); 8034 let confirmCardScreenImg = $wrapper.find('.loyalty-card-form .connect-loyalty-card > .ticket-code-wrapper .img-wrapper'); 8035 let connectCardSuccessScreen = $wrapper.find('.loyalty-card-form .connect-loyalty-card .success-card-connect'); 8036 8037 let tabs = $wrapper.find('.loyalty-card-form .tab-link-wrapper'); 8038 8039 8040 function connectLoyaltyCardTab() { 8041 $wrapper.find('.loyalty-card-form .connect-card').click(function () { 8042 $(this).addClass('active'); 8043 $wrapper.find('.loyalty-card-form .become-member').removeClass('active'); 8044 $wrapper.find('.loyalty-card-form .create-loyalty-wrapper').addClass('hidden'); 8045 $wrapper.find('.loyalty-card-form .connect-loyalty-wrapper').removeClass('hidden'); 8046 }) 8047 } 8048 8049 function becomeLoyaltyMemberTab() { 8050 $wrapper.find('.loyalty-card-form .become-member').click(function () { 8051 $(this).addClass('active'); 8052 $wrapper.find('.loyalty-card-form .connect-card').removeClass('active'); 8053 $wrapper.find('.loyalty-card-form .connect-loyalty-wrapper').addClass('hidden'); 8054 $wrapper.find('.loyalty-card-form .create-loyalty-wrapper').removeClass('hidden'); 8055 }) 8056 } 8057 8058 function applyForLoyalty() { 8059 $wrapper.find('.loyalty-card-form .apply-for-loyalty').click(function () { 8060 createCardConfirmScreen.removeClass('hidden'); 8061 createCardScreen.addClass('hidden'); 8062 }) 8063 } 8064 8065 /*postanite clan*/ 8066 function createTicketCode() { 8067 $wrapper.find(".loyalty-card-form .send-request").click(function(e){ 8068 8069 e.preventDefault(); 8070 8071 var url = $wrapper.find('#ticket_form').attr("action"); 8072 $wrapper.find(".loyalty-card-form .loader-wrapper").removeClass('hidden'); 8073 8074 $.ajax({ 8075 type: "POST", 8076 url: url, 8077 data: { 8078 ajax: 'yes', 8079 task: 'createticketcode' 8080 }, 8081 dataType: 'json', 8082 success: function(ret){ 8083 if(ret.flag){ 8084 if(ret.ticket){ 8085 $wrapper.find('#ticket-card-created').text(ret.ticket); 8086 } 8087 if(ret.barcode){ 8088 $wrapper.find('#barcode-card-created').attr("src", ret.barcode); 8089 } 8090 $wrapper.find(".loyalty-card-form .loader-wrapper").addClass('hidden'); 8091 createCardConfirmScreen.addClass('hidden'); 8092 tabs.addClass('hidden'); 8093 createCardSuccessScreen.removeClass('hidden'); 8094 refreshPageOnModalClose(); 8095 8096 if($(wrapper).is(".profile")) { 8097 window.location.reload(); 8098 } 8099 8100 } else { 8101 $wrapper.find(".loyalty-card-form .loader-wrapper").addClass('hidden'); 8102 $wrapper.find('.loyalty-card-form .create-loyalty-card .alert').removeClass('hidden').addClass('alert-danger').text(ret.info); 8103 8104 //createCardConfirmScreen.addClass('hidden'); 8105 8106 } 8107 } 8108 }); 8109 8110 }); 8111 } 8112 8113 /*slanje verifikacionog koda za unos kartice*/ 8114 function sendVerificationCode() { 8115 $wrapper.find(".loyalty-card-form .btn-send-code, .loyalty-card-form .resend-verification-code").click(function(e){ 8116 8117 e.preventDefault(); 8118 var ticketCode = $wrapper.find(".loyalty-card-form .email-wrapper .form-control").val(); 8119 var url = $wrapper.find('#ticket_form').attr("action"); 8120 8121 $wrapper.find(".loyalty-card-form .loader-wrapper").removeClass('hidden'); 8122 $.ajax({ 8123 type: "POST", 8124 url: url, 8125 data: { 8126 ajax: 'yes', 8127 task: 'verificationloyaltycard', 8128 ticketCode: ticketCode 8129 }, 8130 dataType: 'json', 8131 success: function(ret){ 8132 if(ret.flag){ 8133 connectCardScreen.addClass('hidden'); 8134 connectCardVerificationScreen.removeClass('hidden'); 8135 $wrapper.find(".loyalty-card-form .loader-wrapper").addClass('hidden'); 8136 $wrapper.find('.loyalty-card-form .connect-loyalty-card .alert').removeClass('hidden alert-danger').addClass('alert-success').text(ret.info); 8137 } else { 8138 $wrapper.find(".loyalty-card-form .loader-wrapper").addClass('hidden'); 8139 $wrapper.find('.loyalty-card-form .connect-loyalty-card .alert').removeClass('hidden alert-success').addClass('alert-danger').text(ret.info); 8140 } 8141 } 8142 }); 8143 8144 }); 8145 } 8146 8147 /*potvrda unetog verifikacionog koda*/ 8148 function confirmVerificationToken() { 8149 $wrapper.find(".loyalty-card-form .btn-confirm-verification-code").click(function(e){ 8150 8151 e.preventDefault(); 8152 var ticketCode = $wrapper.find(".loyalty-card-form .email-wrapper .form-control").val(); 8153 var verificationToken = $wrapper.find(".loyalty-card-form .verification-code-wrapper .form-control").val(); 8154 var url = $('#ticket_form').attr("action"); 8155 8156 $wrapper.find(".loyalty-card-form .loader-wrapper").removeClass('hidden'); 8157 $.ajax({ 8158 type: "POST", 8159 url: url, 8160 data: { 8161 ajax: 'yes', 8162 task: 'confirmverificationtoken', 8163 verificationToken: verificationToken, 8164 ticketCode: ticketCode 8165 }, 8166 dataType: 'json', 8167 success: function(ret){ 8168 if(ret.flag){ 8169 //ovde ide ajax za uparivanje 8170 $.ajax({ 8171 type: "POST", 8172 url: url, 8173 data: { 8174 ajax: 'yes', 8175 task: 'confirmticketcode', 8176 ticketCode: ticketCode 8177 }, 8178 dataType: 'json', 8179 success: function(ret){ 8180 if(ret.flag){ 8181 if(ret.ticket){ 8182 $wrapper.find('#ticket-card-paired').text(ret.ticket); 8183 } 8184 if(ret.barcode){ 8185 $wrapper.find('#barcode-card-paired').attr("src", ret.barcode); 8186 } 8187 8188 connectCardSuccessScreen.removeClass('hidden'); 8189 connectCardVerificationScreen.addClass('hidden'); 8190 connectCardScreenImg.addClass('hidden'); 8191 8192 $wrapper.find(".loyalty-card-form .loader-wrapper").addClass('hidden'); 8193 tabs.addClass('hidden'); 8194 8195 refreshPageOnModalClose(); 8196 8197 if($(wrapper).is(".profile")) { 8198 window.location.reload(); 8199 } 8200 8201 } else { 8202 $wrapper.find(".loyalty-card-form .loader-wrapper").addClass('hidden'); 8203 $wrapper.find('.loyalty-card-form .verification-code-wrapper .alert').removeClass('alert-success hidden').addClass('alert-danger').text(ret.info); 8204 } 8205 } 8206 }); 8207 } else { 8208 $wrapper.find(".loyalty-card-form .loader-wrapper").addClass('hidden'); 8209 $wrapper.find('.loyalty-card-form .verification-code-wrapper .alert').removeClass('alert-success hidden').addClass('alert-danger').text(ret.info); 8210 } 8211 } 8212 }); 8213 8214 }); 8215 } 8216 8217 /*uparite karticu / bez verifikacije*/ 8218 function confirmTicketCode() { 8219 $wrapper.find(".loyalty-card-form .btn-confirm-ticket-code").click(function(e){ 8220 8221 e.preventDefault(); 8222 8223 $wrapper.find(".loyalty-card-form .loader-wrapper").removeClass('hidden'); 8224 8225 var ticketCode = $wrapper.find(".loyalty-card-form .email-wrapper .form-control").val(); 8226 var url = $wrapper.find('#ticket_form').attr("action"); 8227 let reloadPage = $wrapper.find('.loyalty-card-form').data("reload-page"); 8228 8229 $.ajax({ 8230 type: "POST", 8231 url: url, 8232 data: { 8233 ajax: 'yes', 8234 task: 'confirmticketcode', 8235 ticketCode: ticketCode 8236 }, 8237 dataType: 'json', 8238 success: function(ret){ 8239 if(ret.flag){ 8240 if(ret.ticket){ 8241 $wrapper.find('#ticket-card-paired').text(ret.ticket); 8242 } 8243 if(ret.barcode){ 8244 $wrapper.find('#barcode-card-paired').attr("src", ret.barcode); 8245 } 8246 8247 connectCardSuccessScreen.removeClass('hidden'); 8248 confirmCardScreen.addClass('hidden'); 8249 confirmCardScreenImg.addClass('hidden'); 8250 8251 $wrapper.find(".loyalty-card-form .loader-wrapper").addClass('hidden'); 8252 tabs.addClass('hidden'); 8253 8254 refreshPageOnModalClose(); 8255 8256 if($(wrapper).is(".profile")) { 8257 setTimeout(function () { 8258 window.location.reload(); 8259 }, 2000); 8260 } 8261 8262 } else { 8263 $wrapper.find(".loyalty-card-form .loader-wrapper").addClass('hidden'); 8264 $wrapper.find('.loyalty-card-form .ticket-code-wrapper .alert').removeClass('alert-success hidden').addClass('alert-danger').text(ret.info); 8265 } 8266 } 8267 }); 8268 8269 }); 8270 } 8271 8272 function modalDefaultPreview() { 8273 if($('.ticket-modal-new').length !== 0 ){ 8274 $('.ticket-modal-new').on('hidden.bs.modal', function() { 8275 createCardScreen.removeClass('hidden'); 8276 createCardConfirmScreen.addClass('hidden'); 8277 createCardSuccessScreen.addClass('hidden'); 8278 connectCardScreen.removeClass('hidden'); 8279 connectCardScreenImg.removeClass('hidden'); 8280 connectCardVerificationScreen.addClass('hidden'); 8281 connectCardSuccessScreen.addClass('hidden'); 8282 tabs.removeClass('hidden'); 8283 $('.ticket-modal-new .alert').addClass('hidden'); 8284 }); 8285 } 8286 } 8287 8288 function refreshPageOnModalClose() { 8289 let closeBtn= $('.ticket-modal-new .modal-header .close'); 8290 8291 closeBtn.click(function () { 8292 window.location.reload(); 8293 }) 8294 } 8295 8296 connectLoyaltyCardTab(); 8297 becomeLoyaltyMemberTab(); 8298 applyForLoyalty(); 8299 createTicketCode(); 8300 sendVerificationCode(); 8301 confirmVerificationToken(); 8302 confirmTicketCode(); 8303 modalDefaultPreview(); 8304 8305 } 8306 8307 8308 var handleLoyaltyOfferDetailModal = function () { 8309 let loyaltyOffer = $('.loyalty-offer-detail-modal'); 8310 8311 if(loyaltyOffer.length == 0) { 8312 return false;
8313 } 8314 8315 $('.loyalty-offer-detail-modal .generate-code').click(function (e) { 8316 e.preventDefault(); 8317 8318 $('.loyalty-offer-detail-modal .loyalty-wrapper').addClass('hidden'); 8319 $('.loyalty-offer-detail-modal .confirm-loyalty-wrapper').removeClass('hidden'); 8320 }) 8321 8322 $('.loyalty-offer-detail-modal .generate-code-confirm').click(function (e) { 8323 e.preventDefault(); 8324 8325 var url = $('#all-offers').text(); 8326 var offerId = $(this).closest('.loyalty-offer-detail-modal').find('#offer-id').text(); 8327 var ticketCode = $(this).closest('.loyalty-offer-detail-modal').find('#ticket-code'); 8328 8329 $(".loyalty-offer-detail-modal .loader-wrapper").removeClass('hidden'); 8330 8331 $.ajax({ 8332 type: "POST", 8333 url: url, 8334 data: { 8335 ajax: 'yes', 8336 actionId: offerId, 8337 task: 'generateticketcode' 8338 }, 8339 dataType: 'json', 8340 success: function(ret){ 8341 if(ret.flag){ 8342 8343 if(ret.ticket){ 8344 ticketCode.text(ret.ticket); 8345 } 8346 8347 $('.loyalty-offer-detail-modal .confirm-loyalty-wrapper').addClass('hidden'); 8348 $('.loyalty-offer-detail-modal .success-code-generated-wrapper').removeClass('hidden'); 8349 $(".loyalty-offer-detail-modal .loader-wrapper").addClass('hidden'); 8350 $('.loyalty-offer-detail-modal .success-code-generated-wrapper .alert').removeClass('hidden alert-danger').addClass('alert-success').text(ret.info); 8351 } else { 8352 $(".loyalty-offer-detail-modal .loader-wrapper").addClass('hidden'); 8353 $('.loyalty-offer-detail-modal .confirm-loyalty-wrapper .alert').removeClass('hidden alert-success').addClass('alert-danger').text(ret.info); 8354 $('.loyalty-offer-detail-modal .confirm-loyalty-wrapper .btn-wrapper').addClass('hidden'); 8355 } 8356 } 8357 }); 8358 }) 8359 8360 8361 $('.loyalty-offer-detail-modal').on('hidden.bs.modal', function() { 8362 $('.loyalty-offer-detail-modal .loyalty-wrapper').removeClass('hidden'); 8363 $('.loyalty-offer-detail-modal .confirm-loyalty-wrapper').addClass('hidden'); 8364 $('.loyalty-offer-detail-modal .success-code-generated-wrapper').addClass('hidden'); 8365 $('.loyalty-offer-detail-modal .confirm-loyalty-wrapper .btn-wrapper').removeClass('hidden'); 8366 $('.loyalty-offer-detail-modal .alert').addClass('hidden').removeClass (function (index, className) { 8367 return (className.match (/(^|\s)alert-\S+/g) || []).join(' '); 8368 });; 8369 }); 8370 8371 } 8372 8373 var handleLoyaltyCouponDetailModal = function () { 8374 let loyaltyCoupon = $('.loyalty-coupon-detail-modal'); 8375 8376 if(loyaltyCoupon.length == 0) { 8377 return false; 8378 } 8379 8380 $('.loyalty-coupon-detail-modal .generate-code').click(function (e) { 8381 e.preventDefault(); 8382 8383 $('.loyalty-coupon-detail-modal .loyalty-wrapper').addClass('hidden'); 8384 $('.loyalty-coupon-detail-modal .confirm-loyalty-wrapper').removeClass('hidden'); 8385 }) 8386 8387 $('.loyalty-coupon-detail-modal .generate-code-confirm').click(function (e) { 8388 e.preventDefault(); 8389 8390 var url = $('#all-offers').text(); 8391 var offerId = $(this).closest('.loyalty-coupon-detail-modal').find('#offer-id').text(); 8392 var ticketCode = $(this).closest('.loyalty-coupon-detail-modal').find('#ticket-code'); 8393 8394 $(".loyalty-coupon-detail-modal .loader-wrapper").removeClass('hidden'); 8395 8396 $.ajax({ 8397 type: "POST", 8398 url: url, 8399 data: { 8400 ajax: 'yes', 8401 actionId: offerId, 8402 task: 'generateexternalticketcode' 8403 }, 8404 dataType: 'json', 8405 success: function(ret){ 8406 if(ret.flag){ 8407 8408 if(ret.ticket){ 8409 ticketCode.text(ret.ticket); 8410 } 8411 8412 $('.loyalty-coupon-detail-modal .confirm-loyalty-wrapper').addClass('hidden'); 8413 $('.loyalty-coupon-detail-modal .success-code-generated-wrapper').removeClass('hidden'); 8414 $(".loyalty-coupon-detail-modal .loader-wrapper").addClass('hidden'); 8415 $('.loyalty-coupon-detail-modal .success-code-generated-wrapper .alert').removeClass('hidden alert-danger').addClass('alert-success').text(ret.info); 8416 } else { 8417 $(".loyalty-coupon-detail-modal .loader-wrapper").addClass('hidden'); 8418 $('.loyalty-coupon-detail-modal .confirm-loyalty-wrapper .alert').removeClass('hidden alert-success').addClass('alert-danger').text(ret.info); 8419 $('.loyalty-coupon-detail-modal .confirm-loyalty-wrapper .btn-wrapper').addClass('hidden'); 8420 } 8421 } 8422 }); 8423 }) 8424 8425 8426 $('.loyalty-coupon-detail-modal').on('hidden.bs.modal', function() { 8427 $('.loyalty-coupon-detail-modal .loyalty-wrapper').removeClass('hidden'); 8428 $('.loyalty-coupon-detail-modal .confirm-loyalty-wrapper').addClass('hidden'); 8429 $('.loyalty-coupon-detail-modal .success-code-generated-wrapper').addClass('hidden'); 8430 $('.loyalty-coupon-detail-modal .confirm-loyalty-wrapper .btn-wrapper').removeClass('hidden'); 8431 $('.loyalty-coupon-detail-modal .alert').addClass('hidden').removeClass (function (index, className) { 8432 return (className.match (/(^|\s)alert-\S+/g) || []).join(' '); 8433 });; 8434 }); 8435 8436 } 8437 8438 var miniCartSider = function () { 8439 $('.header-cart .mini-cart.mini-cart-side, .header-cart-item-side .cart-toggle-overlayer').click(function () { 8440 $('#miniCartContent').toggleClass('active'); 8441 $('body').toggleClass('search'); 8442 }); 8443 8444 $('.header-cart-item.header-cart-item-side .close-mini-cart').click(function () { 8445 $('#miniCartContent').removeClass('active'); 8446 $('body').removeClass('search'); 8447 }); 8448 }; 8449 8450 var w = $(window).width(); 8451 $(window).resize(function(){ 8452 if ($(window).width()==w) return; 8453 w = $(window).width(); 8454 handleNavMain(); 8455 handleAutocomplete(); 8456 handleMainNavMobile(); 8457 }); 8458 8459 window.addEventListener("orientationchange", function() { 8460 handleNavMain(); 8461 handleAutocomplete(); 8462 handleMainNavMobile(); 8463 }, false); 8464 8465 var reloadCartAfterBuy = function(){ 8466 $('.product-list-cart .buyButtonOnLists').each(function () { 8467 $(this).click(function () { 8468 setTimeout(function(){ 8469 setTimeout(function(){ 8470 reloadCartOnePage('changeAmount'); 8471 handleBuyProductOnListing(); 8472 }, 1500); 8473 }, 500); 8474 }) 8475 }) 8476 }; 8477 8478 var initTypeheadProductsReclamation = function(element){ 8479 8480 var product = $(element); 8481 var nameInput = product.closest('.row').find('.reclamation-product-name'); 8482 8483 if(product.length == 0){ 8484 return; 8485 } 8486 8487 if(typeof(product.data('typehead-url')) == 'undefined' || product.data('typehead-url') == null || product.data('typehead-url') == ""){ 8488 return; 8489 } 8490 8491 var productBH = new Bloodhound({ 8492 datumTokenizer: Bloodhound.tokenizers.obj.whitespace('id'), 8493 queryTokenizer: Bloodhound.tokenizers.whitespace, 8494 limit: 150, 8495 remote: { 8496 url: product.data('typehead-url'), 8497 ajax: { 8498 data: {
8499 productCode: function(){ 8500 if (typeof(product.val()) != 'undefined' && product.val() != null){ 8501 return product.val(); 8502 } 8503 return ''; 8504 } 8505 } 8506 } 8507 } 8508 }); 8509 8510 productBH.initialize(); 8511 product.typeahead({ 8512 minLength: 1, 8513 highlight: true 8514 }, 8515 { 8516 displayKey: 'productCode', 8517 source: productBH.ttAdapter() 8518 }).on('typeahead:selected', function (e, ret) { 8519 8520 product.parsley().validate(); 8521 8522 product.val(ret.productCode); 8523 8524 nameInput.val(ret.name); 8525 }); 8526 8527 }; 8528 8529 // var modalAfterAddToCart = function(){ 8530 // window.addEventListener('products_after_add_to_cart', function (e){ 8531 // setTimeout(function(){ 8532 // $('#modal_after_add_to_cart').modal('show'); 8533 // },2000); 8534 // 8535 // }); 8536 // }; 8537 8538 8539 $('#product_details_modal').on('show.bs.modal', function () { 8540 handleReadMore(); 8541 }); 8542 8543 var serilizeSSOCheckbox = function(){ 8544 dataCheckBox = ''; 8545 if($('.sso-check-wrapper').length > 0){ 8546 dataCheckBox = $('.sso-reg-checkbox-wrapper.inner-wrapper .inner-wrapper input:checkbox').serializeArray(); 8547 //console.log(dataCheckBox); 8548 $(".sso-reg-checkbox-wrapper.inner-wrapper .inner-wrapper input:checkbox:not(:checked)").each(function() { 8549 dataCheckBox.push({name: this.name, value: '0' }); 8550 }); 8551 //dataCheckBox = $.param(dataCheckBox); 8552 //return dataCheckBox; 8553 } 8554 return dataCheckBox; 8555 } 8556 8557 var showHideMapAsAccordion = function (mapElement, toggleElement) { // pozvati u theme.script 8558 let map = $(mapElement); 8559 let toggleMapButtonWrapper = $(toggleElement); 8560 8561 if(typeof map === "undefined" || map.length === 0 || typeof toggleMapButtonWrapper === "undefined" || toggleMapButtonWrapper.length === 0) return; 8562 8563 let toggleButton = $(toggleMapButtonWrapper).find(".item a"); 8564 8565 if(typeof toggleButton === "undefined" || toggleButton.length === 0 ) return; 8566 8567 map.addClass("accordion-map"); 8568 8569 toggleButton.removeAttr("href"); 8570 8571 let mapHeight = $(map).find(".store-map-wrapper").height(); 8572 8573 toggleButton.click(function () { 8574 if(map.hasClass("show-map-as-accordion")) { 8575 map.removeClass("show-map-as-accordion"); 8576 map.css("height", 0); 8577 8578 } else { 8579 map.addClass("show-map-as-accordion"); 8580 map.css("height", mapHeight); 8581 } 8582 }) 8583 8584 } 8585 8586 function handleStoreFocusOnStoresMap() { 8587 var storePermalink = '' + localStorage.getItem('storePermalink') + ''; 8588 if(typeof storePermalink !== 'undefined' && storePermalink && storePermalink !== '') { 8589 var storeId = localStorage.getItem('storeId'); 8590 var backUrl = localStorage.getItem('backUrl'); 8591 console.log(backUrl); 8592 if(typeof backUrl !== 'undefined' && backUrl && backUrl.includes(storePermalink)) { 8593 setTimeout(function () { 8594 $("#" + storeId).trigger('click'); 8595 }, 500) 8596 } 8597 } 8598 } 8599 8600 let initFilterHexColorOnCheckbox = () => { 8601 8602 $('.nbf-filterHexColorOnCheckbox .color-item-wrapper').each(function (){ 8603 let style = $(this).attr('style'); 8604 if(style != ''){ 8605 $(this).find('> .icheckbox_flat').attr('style', style); 8606 $(this).attr('style', ''); 8607 } 8608 }) 8609 8610 } 8611 8612 function showMiniCartAfterAddingProduct() { 8613 $(window).on("cartButtonClick", function () { 8614 $("#miniCartContent").addClass('active') 8615 }) 8616 } 8617 8618 function handlePersonalizationProductBuy() { 8619 8620 if(nb_type_page !== "product") return; 8621 8622 let personalizationActive = $('.btn-personalization'); 8623 let addToCartButton = $("#nb_addToCartButton"); 8624 let isMandatoryPersonalisation = $(".personalization-detail").data("is-mandatory-personalization"); 8625 8626 if(typeof personalizationActive === "undefined" || personalizationActive.length === 0 || typeof isMandatoryPersonalisation === "undefined" || !isMandatoryPersonalisation) return; 8627 8628 function disableButton() { 8629 addToCartButton.addClass("disabled"); 8630 addToCartButton.css("pointer-events", "none"); 8631 addToCartButton.text($(addToCartButton).data("btn-text-select-size")); 8632 } 8633 8634 function enableButton() { 8635 addToCartButton.removeClass("disabled"); 8636 addToCartButton.css("pointer-events", "all"); 8637 addToCartButton.text($(addToCartButton).data("btn-text-addtocart")); 8638 } 8639 8640 let savedPersonalization = $("#savedPersonalizations .saved-items"); 8641 8642 if(typeof isMandatoryPersonalisation !== "undefined" || !isMandatoryPersonalisation) { 8643 disableButton(); 8644 } 8645 8646 if(typeof savedPersonalization !== "undefined" && savedPersonalization.length > 0) enableButton(); 8647 8648 $(window).on("personalizations_loaded", function () { 8649 8650 let savedPersonalization = $("#savedPersonalizations .saved-items"); 8651 8652 if(typeof isMandatoryPersonalisation !== "undefined" || !isMandatoryPersonalisation) { 8653 disableButton(); 8654 } 8655 8656 if(typeof savedPersonalization !== "undefined" && savedPersonalization.length > 0) enableButton(); 8657 8658 }) 8659 8660 $("#modal_personalization").on("show.bs.modal", function () { 8661 8662 $(".personalization-modal .nav-tabs .nav-link.active").trigger("click") 8663 8664 }) 8665 8666 } 8667 8668 function handleFindbarSessionID(){ 8669 document.addEventListener('findbar_session_id_updated', function (event) { 8670 $.ajax({ 8671 type: "POST", 8672 url: nb_active_page_url, 8673 dataType: 'json', 8674 data: { 8675 nbAjax: 1, 8676 task: "save_findbar_session_id", 8677 sessionId: event.detail.sessionId 8678 }, 8679 contentType: "application/x-www-form-urlencoded;charset=UTF-8" 8680 }); 8681 }); 8682 } 8683 8684 function handleAfterClickAddOrderCart(){ 8685 if(typeof displayConfirmDialogConfirmOrderPublic === "boolean" && displayConfirmDialogConfirmOrderPublic) { 8686 let form = $('#cart_onepage_form'); 8687 let button = form.find("#submit_order_one_page"); 8688 form.on('submit', function (e) { 8689 e.preventDefault(); 8690 button.removeClass("active"); 8691 bootbox.confirm(button.data('confirm-dialog-message'), function (result) { 8692 if (result) { 8693 button.addClass("active"); 8694 document.getElementById('cart_onepage_form').submit(); 8695 } 8696 }) 8697 }); 8698 } 8699 } 8700 8701 return { 8702 mobileBreakpoint: 767, 8703 setLocales: setLocales, 8704 getDefaultLang:getDefaultLang, 8705 init: function(){ 8706 setToastrOptions(); 8707 handleTicketModal(); 8708 handleTicketModalNew(); 8709 handleLoyaltyTab('.profile'); 8710 handleLoyaltyOfferDetailModal(); 8711 handleLoyaltyCouponDetailModal(); 8712 moveSearchBtn(); 8713 handleAppearing($('.appear')); 8714 handleTooltip($('[rel=tooltip]')); 8715 handleToggle(); 8716 handleCheckboxRadio($('input[type="checkbox"], input[type="radio"]')); 8717 handleForms().initForms(); //najnovije resenje 8718 handleAnchorLinks(); 8719 handleProfile(); 8720 handleLangToggle(); 8721 productzoomer(); 8722 handleSidebarInfo(); 8723 articleBannerStyle();
8724 handleCurrencyToggle(); 8725 handleHeaderCart(); 8726 miniCartSider(); 8727 handleNavMain(); 8728 handlePhoneVerification(); 8729 handleShowHideElements(); 8730 handleBrendLettersFilter(); 8731 handleHTMLEditorTableResponsive(); 8732 handleGenericSlider(); 8733 handleToggleBanner(); 8734 handleFixedHeader(); 8735 handleShowHideLabel(); 8736 handleFixedDetails(); 8737 addTableClass(); 8738 groupAllPriceItem(); 8739 handleAutocomplete(); 8740 handleReadMore($(".read-more-btn")); 8741 handleSlideToggle($(".slidetoggle-init")); 8742 handleProductListing($('.product-listing')); 8743 handleBuyProductOnListing(); 8744 handleProductDetails(); 8745 handleGalleryImagesSlider(); 8746 handleFavoriteProduct($('.favorite')); 8747 handleLowerPriceProduct($('.action-lowerprice')); 8748 handleLowerPriceProductCombinations($('.action-lowerprice-combinatios')); 8749 handleSliderOnLandingPage(); 8750 handleAtributeSlider(); 8751 handleHandlinesSlider(); 8752 handleMainSliderPlaneta(); 8753 handleSliderWithText(); 8754 handleSliderWithPadding(); 8755 handleCatalog(); 8756 handleProductsSlider(); 8757 handleRelatedProductsSlider(); 8758 handlePromoSliderBig(); 8759 handlePostsSlider(); 8760 handleOneitemSlider(); 8761 handleScrollSlider(); 8762 handleStoreMap(); 8763 handleMainNavMobile(); 8764 handleScrollDown(); 8765 handleTabsSlider(); 8766 handlePopover($('[rel=popover]')); 8767 handleModalPromo($('#onload_modal')); 8768 handleInvoiceOrderModal(); 8769 handleFileSelect($('.btn-file :file')); 8770 handlePageOnModal('.showPageOnModal'); 8771 handleContactDropdown(); 8772 if(typeaheadJsFlag){ 8773 handleTypehead().init(); 8774 } 8775 handleCountry_lang(); 8776 handleProductDetailsQuickViewOnModal('.showProductDetailsQuickViewOnModal'); 8777 handleProductQueryViewOnModal('.showProductQueryViewOnModal'); 8778 categoryProductViewOnModal(); 8779 handleLocationBuyProductOnModal('.locationBuyProduct'); 8780 handleSoonSaleProductOnModal('.soonSaleProduct'); 8781 handleFilterDropdown(); 8782 //HandleInerZoomNinia(); 8783 HandleInerZoom(); 8784 ImagesLightboxLink(); 8785 handleReservation(); 8786 reloadCartAfterBuy(); 8787 toggleAttributesItems(); 8788 selectAttributesItems(); 8789 productQuantityParentClass('.tp-product'); 8790 productQuantityParentClass('.tp-cart .ncx-mob-cart-v2'); 8791 handleStoreFocusOnStoresMap(); 8792 //modalAfterAddToCart(); 8793 initFilterHexColorOnCheckbox(); 8794 setPositionOnAreaElement(); 8795 loadBlock(); 8796 handlePersonalizationProductBuy(); 8797 handleFindbarSessionID(); 8798 }, 8799 8800 width: windowWidth, 8801 height: windowHeight, 8802 handleBuyProductOnListing: handleBuyProductOnListing, 8803 handleTooltip: handleTooltip, 8804 handleAppearing: handleAppearing, 8805 handleCheckboxRadio: handleCheckboxRadio, 8806 handlePopover: handlePopover, 8807 handleProductListing: handleProductListing, 8808 handleFavoriteProduct: handleFavoriteProduct, 8809 handleHeaderCart: handleHeaderCart, 8810 miniCartSider: miniCartSider, 8811 handleFileSelect:handleFileSelect, 8812 handleFilterDropdown:handleFilterDropdown, 8813 handleProductsSlider: handleProductsSlider, 8814 print: printFrame, 8815 handleMapStoreShowHide: handleMapStoreShowHide, 8816 handleFixedFiltersButton: handleFixedFiltersButton, 8817 handleProductDetailsQuickViewOnModal: handleProductDetailsQuickViewOnModal, 8818 handleProductQueryViewOnModal: handleProductQueryViewOnModal, 8819 handleLocationBuyProductOnModal: handleLocationBuyProductOnModal, 8820 handleSoonSaleProductOnModal: handleSoonSaleProductOnModal, 8821 handleReadMore : handleReadMore, 8822 handleForms:handleForms, 8823 reloadCartAfterBuy: reloadCartAfterBuy, 8824 storeBycityId: storeBycityId, 8825 reinitOpenslider: reinitOpenslider, 8826 handleTypehead:handleTypehead, 8827 initTypeheadProductsReclamation:initTypeheadProductsReclamation, 8828 serilizeSSOCheckbox:serilizeSSOCheckbox, 8829 showHideMapAsAccordion:showHideMapAsAccordion, 8830 handleMasonry: handleMasonry, 8831 productQuantityParentClass:productQuantityParentClass, 8832 showMiniCartAfterAddingProduct: showMiniCartAfterAddingProduct, 8833 initFilterHexColorOnCheckbox:initFilterHexColorOnCheckbox, 8834 handleLoyaltyOfferDetailModal:handleLoyaltyOfferDetailModal, 8835 handleLoyaltyTab:handleLoyaltyTab, 8836 handleLoyaltyCouponDetailModal:handleLoyaltyCouponDetailModal, 8837 handleAfterClickAddOrderCart:handleAfterClickAddOrderCart 8838 }; 8839}; 8840 8841window.app = new App(); 8842window.nbCart = app; 8843window.nbStore = app; 8844 8845$(document).ready(function(){ 8846 app.init(); 8847 window.nbCart = app; 8848 window.nbStore = app; 8849 8850 $(window).on('loadproductsevent', function (){ 8851 app.initFilterHexColorOnCheckbox(); 8852 }); 8853
8854 $(window).on('initCartOnePage', function (){ 8855 app.handleAfterClickAddOrderCart(); 8856 }); 8857}); 8858/* end*/
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.