PageSourceSearch

https://www.buzzsneakers.sk/nb-public/themes/nbshop5_v5_8/_static/js/archive/scriptnb.js?ver=1008_7.1

js buzzsneakers.sk collected 2026-10-06 20:00:41 UTC 376,266 bytes, 10,088 lines download raw bytes

1/* Start */
2//1. scriptnb.js
3$(function() {
4    $('#search-text').keyup(nb_timeWait(function(){
5        var type = $(this).attr('nb-type');
6        var $loader = $(".autocomplete-loader");
7        $loader.removeClass('hidden');
8        setTimeout(function(){
9        showSuggest(type);
10        },100)
11    }));
12
13});
14
15function nb_timeWait(f, delay){
16    var timer = null;
17    return function(){
18        var context = this, args = arguments;
19        clearTimeout(timer);
20        timer = window.setTimeout(function(){
21                f.apply(context, args);
22            },
23            delay || 800);
24    };
25}
26
27function generateEventId() {
28    return typeof crypto.randomUUID === "function" ? crypto.randomUUID() : Date.now()
29}
30
31//NB LIB core js
32function validateEmail(email){
33    var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
34    if(!re.test(email)) {
35        return false;
36    }
37    return true;
38}
39
40function openInTopWindow(url){
41    top.location.href = url;
42}
43
44function createCookie(name, value, days) {
45    if (days) {
46        var date = new Date();
47        date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
48        var expires = "; expires=" + date.toGMTString();
49    }
50    else var expires = "";
51    document.cookie = name + "=" + value + expires + "; path=/";
52}
53
54function readCookie(name) {
55    var nameEQ = name + "=";
56    var ca = document.cookie.split(';');
57    for (var i = 0; i < ca.length; i++) {
58        var c = ca[i];
59        while (c.charAt(0) == ' ') c = c.substring(1, c.length);
60        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
61    }
62    return null;
63}
64
65function eraseCookie(name) {
66    createCookie(name, "", -1);
67}
68
69//reload google analytics
70function reloadGoogleAnalytics(){
71    if (typeof _gaq != 'undefined'){
72        _gaq.push(['_trackPageview', window.location.pathname]);
73    }
74    if (typeof _em != 'undefined'){
75        _em.trackAjaxPageview(window.location.pathname);
76    }
77}
78
79//reload new google analytics universal
80function reloadGoogleAnalyticsUniversal(){
81    if (typeof ga != 'undefined'){
82        var url = window.location.pathname;
83        ga('send', 'pageview', url);
84    }
85}
86
87function reloadDFPBanners(){
88    if (typeof googletag != 'undefined'){
89        googletag.pubads().refresh();
90    }
91}
92
93var gemView = 1;
94function gemiusReloadSkript(){
95    var pp_gemius_identifier2 = $('#gemiusCodeAjax').val();
96    //pp_gemius_event(pp_gemius_identifier2);
97    if (typeof pp_gemius_hit != 'undefined'){
98        pp_gemius_hit(pp_gemius_identifier2);
99    }
100}
101
102//rewrite url-a
103function rewriteURL(newTitle, newURL){
104    newURL = removeSleshFromEndOfUrl(newURL);
105    window.history.pushState(newURL, newTitle, newURL);
106    window.history.replaceState(newURL, newTitle, newURL);
107    reloadGoogleAnalyticsUniversal();
108    gemiusReloadSkript();
109    //reloadGoogleAnaliticksCode(newURL);
110}
111
112function selectedSize(thisElement, price){
113    $('#product_size').val(thisElement.val());
114    $('#prodoctPriceValue').val(price);
115    $('#productPrice').text(thisElement.prev().val());
116}
117
118function showloader() {}
119
120var findSearchWord = function (query,$title) {
121    var searchWord = query.toUpperCase();
122    if(!$title){
123        $title = $('.autocomplete-results .product-title');
124    }
125    $title.each(function () {
126
127        $(this).html(function(_, html) {
128            return  html.replace(searchWord, '<span class="search-word">'+searchWord+'</span>')
129        });
130    });
131};
132
133function saveActiveCatalogIdInSession(catalogId, question){
134    bootbox.confirm(question, function(result) {
135        if(!result) return;
136        $.ajax({
137            type: "POST",
138            url: nb_active_page_url,
139            dataType: 'json',
140            data: {
141                nbAjax:1,
142                task:"save_active_catalog_id_in_session",
143                catalogId:catalogId
144            },
145            contentType: "application/x-www-form-urlencoded;charset=UTF-8",
146            success: function(ret) {
147                if(ret.flag){
148                    window.location.replace(nb_site_url);
149                }
150            }
151        });
152    });
153};
154
155function showSuggest(typeSearch){
156    if(typeSearch == null || typeSearch == 'undefined'){
157        typeSearch = 'product';
158    }
159    typeSearch = 'product';
160    var $suggest = $(".autocomplete-results"),
161        activeTab = $suggest.attr('data-active-tab'),
162        $search = $(".autocomplete-input"),
163        $searchText = $("#search-text"),
164        $autocompleteProductsWrapper = $(".autocomplete-heading-and-products-wrapper"),
165        $autocompleteProductslist = $(".autocomplete-products-list"),
166        $autocompleteNewslist = $(".autocomplete-news-list"),
167        $autocompleteCataloglist = $(".autocomplate-catalog-list"),
168        $autocomplateCategories = $(".autocomplate-product-categories, .autocomplate-article-categories"),
169        $autocompleteTabs = $(".tabs-items-article, .tabs-items-catalog"),
170        $autocompleteSliderQuery = $(".slider-query"),
171        $autocompleteSliderNoQuery = $(".slider-no-query"),
172        $loader = $(".autocomplete-loader"),
173        query = $search.val(),
174        query = query.replace(/´|“|ᵒ|°|\|\||„|”|®|™|’’|’|`|®|>|<|$|^|\\|"|:|'/g,'');
175        $allProductTabBtn = $('.autocomplete-popup-wrapper .lists-tabs .item[data-tab="tab-products"]');
176
177    if(query.length == 0) {
178        if($searchText.hasClass('search-v1')){
179            // Sklanja tablove za izdvojene kategorije
180            $("item tab-items div[class*=' tabs-items-product-']").addClass('hidden');
181
182            $autocompleteProductsWrapper.hide();
183            $autocompleteNewslist.hide();
184            $autocompleteCataloglist.hide();
185            $autocomplateCategories.hide();
186            $autocompleteProductslist.show();
187            $autocompleteTabs.hide();
188            $autocompleteSliderQuery.hide();
189            $autocompleteSliderNoQuery.show();
190            $suggest.removeClass('active');
191            $loader.addClass('hidden');
192        } else {
193            $suggest.hide();
194            $loader.addClass('hidden');
195        }
196        if ($allProductTabBtn && $allProductTabBtn.length ) {
197            $allProductTabBtn.click();
198        }
199    }else {
200
201        if($searchText.hasClass('search-v1')){
202            $autocompleteProductsWrapper.hide();
203            $autocompleteNewslist.hide();
204            $autocompleteCataloglist.hide();
205            $autocomplateCategories.hide();
206            $autocompleteProductslist.show();
207            $autocompleteTabs.hide();
208            $autocompleteSliderQuery.show();
209            $autocompleteSliderNoQuery.hide();
210            $suggest.removeClass('active');
211        } else {
212            $suggest.show();
213        }
214
215        var categoryIdUlr = '';
216        if(activeTab > 0){
217            categoryIdUlr = '&categoryid='+activeTab;
218        }
219
220        let eventId = generateEventId();
221
222        $loader.removeClass('hidden');
223        $.ajax({
224            type: "POST",
225            url: nb_active_page_url,
226            dataType: 'json',
227            data: 'nbAjax=1&task=live_search&returnType=json&query='+query+'&typeSearch='+typeSearch+categoryIdUlr,
228            contentType: "application/x-www-form-urlencoded;charset=UTF-8",
229            async: false,
230            success: function(ret) {
231                if(ret.flag){
232
233                    $suggest.html(ret.info);
234                    $loader.addClass('hidden');
235                    $suggest.addClass('active');
236                    $autocompleteProductsWrapper.show();
237                    $autocompleteNewslist.show();
238                    $autocompleteCataloglist.show();
239                    $autocomplateCategories.show();
240                    $autocompleteProductslist.hide();
241                    $autocompleteTabs.show();
242                    $autocompleteSliderQuery.show();
243                    $autocompleteSliderNoQuery.hide();
244                    $('.autocomplete-popup-wrapper .lists-tabs .tabs-wrapper').removeClass('hidden');
245                    //findSearchWord(query,$('.autocomplete-product-item .heading-wrapper h4'));
246                    nbshopJS.CustomEventTrigger('searchSuggestAutocomplateNew', { event_id: eventId });
247
248                    $(".tabs-items-product-category").each(function (){
249                        $(this).removeClass('hidden');
250                    });
251
252                }
253            }
254        });
255    }
256}
257
258function showSuggestByProductGroup($productGroupId){
259
260    setTimeout(function (){
261        typeSearch = 'product';
262        var activeTabClass = '.tabs-items-product-'+$productGroupId;
263        var categoryIdUlr = '&categoryid='+$productGroupId;
264        var $loader = $(".autocomplete-loader");
265        var $suggest = $(".autocomplete-results");
266        var $search = $(".autocomplete-input");
267        var $searchText = $("#search-text");
268        var $autocompleteProductsWrapper = $(".autocomplete-heading-and-products-wrapper-"+$productGroupId);
269        var query = $search.val();
270
271        $suggest.attr('data-active-tab',$productGroupId);
272
273        if($productGroupId == '0'){
274            activeTabClass = '.tabs-items-product';
275        }
276        $loader.removeClass('hidden');
277        query = query.replace(/´|“|ᵒ|°|\|\||„|”|®|™|’’|’|`|®|>|<|$|^|\\|"|:|'/g,'');
278
279        if(query.length != 0) {
280
281            if($searchText.hasClass('search-v1')){
282                $autocompleteProductsWrapper.hide();
283                $suggest.removeClass('active');
284            } else {
285                $suggest.show();
286            }
287
288            $.ajax({
289                type: "POST",
290                url: nb_active_page_url,
291                dataType: 'json',
292                data: 'nbAjax=1&task=live_search&returnType=json&query='+query+'&typeSearch='+typeSearch+categoryIdUlr,
293                contentType: "application/x-www-form-urlencoded;charset=UTF-8",
294                async: false,
295                success: function(ret) {
296                    if(ret.flag){
297                        $loader.addClass('hidden');
298                        $suggest.html(ret.info);
299                        $suggest.addClass('active');
300                        $autocompleteProductsWrapper.show();
301                        $('.autocomplete-popup-wrapper .lists-tabs ul.items-wrapper .item.active').removeClass('active');
302                        $('.autocomplete-popup-wrapper .lists-tabs .item'+activeTabClass).addClass('active');
303                        nbshopJS.CustomEventTrigger('searchSuggestAutocomplateNew');
304
305                        $(".tabs-items-product-category").each(function (){
306                            $(this).removeClass('hidden');
307                        });
308                    }
309                }
310            });
311        } else {
312            $loader.addClass('hidden');
313        }
314
315    }, 0);
316}
317
318
319function submitAutocombliteForm(){
320    var input = $("#search-text");
321    var search = input.val();
322    search = search.replace(/´|“|ᵒ|°|\|\||„|”|®|™|’’|’|`|®|>|<|$|^|\\|"|:|'/g,'');
323    input.val(search).change();
324    if($('#search-text-append').length){
325        $('#search-text-append').val(search).change();
326    }
327    $("#search-form").submit();
328}
329
330$("#search-form").on("submit", function(e){
331    e.preventDefault();
332    var input = $("#search-text");
333    var search = input.val();
334    search = search.replace(/´|“|ᵒ|°|\|\||„|”|®|™|’’|’|`|®|>|<|$|^|\\|"|:|'/g,'');
335    input.val(search);
336    this.submit();
337});
338
339function deleteFavoritesProduct(thisElement, id, e) {
340    e.preventDefault();
341    e.stopPropagation();
342    bootbox.confirm(thisElement.data('question'), function(result) {
343        if(!result) return;
344        $.ajax({
345            type: "POST",
346            url: nb_active_page_url,
347            data: 'nbAjax=1&nbTask=product_favorites&flag=yes&ajax=yes&task=delete_favorites_product&id='+id,
348            contentType: "application/x-www-form-urlencoded;charset=UTF-8",
349            dataType: 'json',
350            success: function(ret) {
351                if (ret.flag) {
352                    refreshFavoritesList();
353                } else{
354                    toastr.error(ret.info);
355                }
356            }
357        });
358    });
359}
360
361function deleteFavoritesList(thisElement) {
362    bootbox.confirm(thisElement.data('question'), function(result) {
363        if(!result) return;
364        $.ajax({
365            type: "POST",
366            url: nb_active_page_url,
367            data: 'nbAjax=1&nbTask=product_favorites&flag=yes&ajax=yes&task=delete_list_favorites',
368            contentType: "application/x-www-form-urlencoded;charset=UTF-8",
369            dataType: 'json',
370            success: function(ret) {
371                if (ret.flag) {
372                    refreshFavoritesList();
373                } else{
374                    toastr.error(ret.info);
375                }
376            }
377        });
378    });
379}
380
381function refreshFavoritesList() {
382    $.ajax({
383        type: "POST",
384        url: nb_active_page_url,
385        data: 'nbAjax=1&nbTask=product_favorites&flag=yes&ajax=yes&task=refresh_list_favorites',
386        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
387        success: function(ret) {
388            if (ret) {
389                $("#myfavorites").html(ret);
390            }
391        }
392    });
393}
394
395function deleteFavoritesObject(thisElement, id, typeObject, e) {
396    e.preventDefault();
397    e.stopPropagation();
398    bootbox.confirm(thisElement.data('question'), function(result) {
399        if(!result) return;
400        $.ajax({
401            type: "POST",
402            url: nb_active_page_url,
403            data: 'nbAjax=1&nbTask=product_favorites&flag=yes&ajax=yes&task=delete_favorites_product&id='+id+'&typeObject='+typeObject,
404            contentType: "application/x-www-form-urlencoded;charset=UTF-8",
405            dataType: 'json',
406            success: function(ret) {
407                if (ret.flag) {
408                    window.location = thisElement.data('url');
409                    //refreshFavoritesObjectList(typeObject);
410                } else{
411                    toastr.error(ret.info);
412                }
413            }
414        });
415    });
416}
417
418function deleteFavoritesObjectList(thisElement, typeObject) {
419    bootbox.confirm(thisElement.data('question'), function(result) {
420        if(!result) return;
421        $.ajax({
422            type: "POST",
423            url: nb_active_page_url,
424            data: 'nbAjax=1&nbTask=product_favorites&flag=yes&ajax=yes&task=delete_list_favorites&typeObject='+typeObject,
425            contentType: "application/x-www-form-urlencoded;charset=UTF-8",
426            dataType: 'json',
427            success: function(ret) {
428                if (ret.flag){
429                    //refreshFavoritesObjectList(typeObject);
430                    window.location = thisElement.data('url');
431                } else{
432                    toastr.error(ret.info);
433                }
434            }
435        });
436    });
437}
438
439function sendFavoritesProductForQuery(thisElement, typeObject, productUserFavoritesGroupId){
440    bootbox.confirm(thisElement.data('question'), function(result) {
441        if(!result) return;
442        $.ajax({
443            type: "POST",
444            url: nb_active_page_url,
445            data: 'nbAjax=1&nbTask=product_favorites&flag=yes&ajax=yes&task=send_favorites_product_for_query&typeObject='+typeObject+'&productUserFavoritesGroupId='+productUserFavoritesGroupId,
446            contentType: "application/x-www-form-urlencoded;charset=UTF-8",
447            dataType: 'json',
448            success: function(ret) {
449                if (ret.flag){
450                    //refreshFavoritesObjectList(typeObject);
451                    window.location = thisElement.data('url');
452                } else{
453                    toastr.error(ret.info);
454                }
455            }
456        });
457    });
458}
459
460function deleteFavoritesProductGroup(thisElement, typeObject, productUserFavoritesGroupId){
461    bootbox.confirm(thisElement.data('question'), function(result) {
462        if(!result) return;
463        $.ajax({
464            type: "POST",
465            url: nb_active_page_url,
466            data: 'nbAjax=1&nbTask=product_favorites&flag=yes&ajax=yes&task=delete_favorites_product_group&typeObject='+typeObject+'&productUserFavoritesGroupId='+productUserFavoritesGroupId,
467            contentType: "application/x-www-form-urlencoded;charset=UTF-8",
468            dataType: 'json',
469            success: function(ret) {
470                if (ret.flag){
471                    //refreshFavoritesObjectList(typeObject);
472                    window.location = thisElement.data('url');
473                } else{
474                    toastr.error(ret.info);
475                }
476            }
477        });
478    });
479}
480
481function refreshFavoritesObjectList(typeObject) {
482    $.ajax({
483        type: "POST",
484        url: nb_active_page_url,
485        data: 'nbAjax=1&nbTask=product_favorites&flag=yes&ajax=yes&task=refresh_list_favorites&typeObject='+typeObject,
486        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
487        success: function(ret) {
488            if (ret) {
489                $(".tab_content_favorites_"+typeObject).html(ret);
490            }
491        }
492    });
493}
494
495function deleteProductFromListPriceChanges(thisElement, id, e){
496    e.preventDefault();
497    e.stopPropagation();
498    bootbox.confirm(thisElement.data('question'), function(result) {
499        if(!result) return;
500        $.ajax({
501            type: "POST",
502            url: nb_active_page_url,
503            data: 'nbAjax=1&nbTask=product_price_changes&flag=yes&ajax=yes&task=delete_product_from_list_price_changes&id='+id,
504            contentType: "application/x-www-form-urlencoded;charset=UTF-8",
505            dataType: 'json',
506            success: function(ret) {
507                if (ret.flag) {
508                    refreshPriceChangesList();
509                }else{
510                    toastr.error(ret.info);
511                }
512            }
513        });
514    });
515}
516
517function deleteListPriceChanges(thisElement) {
518    bootbox.confirm(thisElement.data('question'), function(result) {
519        if(!result) return;
520        $.ajax({
521            type: "POST",
522            url: nb_active_page_url,
523            data: 'nbAjax=1&nbTask=product_price_changes&flag=yes&ajax=yes&task=delete_list_price_changes',
524            contentType: "application/x-www-form-urlencoded;charset=UTF-8",
525            dataType: 'json',
526            success: function(ret) {
527                if (ret.flag) {
528                    refreshPriceChangesList();
529                } else{
530                    toastr.error(ret.info);
531                }
532            }
533        });
534    });
535}
536
537function refreshPriceChangesList() {
538    $.ajax({
539        type: "POST",
540        url: nb_active_page_url,
541        data: 'nbAjax=1&nbTask=product_price_changes&flag=yes&ajax=yes&task=refresh_list_price_changes',
542        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
543        success: function(ret) {
544            if (ret) {
545                $("#profilepricechange").html(ret);
546                $("#myproductchangeprice").html(ret);
547            }
548        }
549    });
550}
551
552//available sizes
553function deleteProductFromListAvailableSizes(id, e){
554    e.preventDefault();
555    e.stopPropagation();
556    $.ajax({
557        type: "POST",
558        url: nb_active_page_url,
559        data: 'nbAjax=1&nbTask=product_available_sizes&flag=yes&ajax=yes&task=delete_size_from_list_available_sizes&id='+id,
560        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
561        dataType: 'json',
562        success: function(ret) {
563            if (ret.flag) {
564                refreshListSizeAvailable();
565            }else{
566                toastr.error(ret.info);
567            }
568        }
569    });
570}
571
572function deleteListAvailableSizes() {
573    $.ajax({
574        type: "POST",
575        url: nb_active_page_url,
576        data: 'nbAjax=1&nbTask=product_available_sizes&flag=yes&ajax=yes&task=delete_list_available_sizes',
577        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
578        dataType: 'json',
579        success: function(ret) {
580            if (ret.flag) {
581                refreshListSizeAvailable();
582            } else{
583                toastr.error(ret.info);
584            }
585        }
586    });
587}
588
589function refreshListSizeAvailable() {
590    $.ajax({
591        type: "POST",
592        url: nb_active_page_url,
593        data: 'nbAjax=1&nbTask=product_available_sizes&flag=yes&ajax=yes&task=refresh_list_available_sizes',
594        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
595        success: function(ret) {
596            if (ret) {
597                $("#profilesizeavailable").html(ret);
598                $("#myproductsizeavailable").html(ret);
599            } else{
600                toastr.error(ret.info);
601            }
602        }
603    });
604}
605//end available sizes
606function activeSubMenuProfile(thisElement, url, task){
607    $(thisElement).parent().parent().find( "li" ).removeClass('active');
608    $(thisElement).parent().addClass('active');
609    loadTicketsOnProfile(url, task);
610}
611
612function loadTicketsOnProfile(url, task){
613    $('.loader-wrapper').removeClass('hidden');
614    $.ajax({
615        type: "POST",
616        url: url,
617        data: 'ajax=yes&task='+task,
618        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
619        success: function(ret) {
620            if (ret) {
621                $("#mytickets").html(ret);
622            }
623            $('.loader-wrapper').addClass();
624        }
625    });
626}
627
628function loadTransaction(url, tranId){
629    $.ajax({
630        type: "POST",
631        url: url,
632        data: 'ajax=yes&task=transaction&tranId='+tranId,
633        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
634        success: function(ret){
635            if(ret){
636                $("#mytickets").html(ret);
637            }
638        }
639    });
640}
641
642function checkIfInputIsChecked(thisElement) {
643    if(thisElement.is(':checked')){
644        thisElement.closest('.confirm-deletion-wrapper').find('.error').addClass('hidden');
645    } else {
646        thisElement.closest('.confirm-deletion-wrapper').find('.error').removeClass('hidden');
647    }
648}
649
650function deactivateProfile(url, thisElement) {
651    let pageWrap = $('.btn-delete-user-wrapper .btn-wrapper');
652
653    let confirmDeleteonCheckbox = $('.btn-delete-user-wrapper .confirm-deletion-wrapper');
654    if(confirmDeleteonCheckbox.length > 0) {
655        if(!confirmDeleteonCheckbox.find('#deleteProfileConfirm').is(':checked')){
656            confirmDeleteonCheckbox.find('.error').removeClass('hidden');
657            return false;
658        } else {
659            confirmDeleteonCheckbox.find('.error').addClass('hidden');
660        }
661    }
662
663    bootbox.confirm(thisElement.data('question'), function(result) {
664        if(!result) return;
665        $.ajax({
666            type: "POST",
667            url: url,
668            data: 'flag=yes&ajax=yes&task=deactivateuserinticketing',
669            contentType: "application/x-www-form-urlencoded;charset=UTF-8",
670            dataType: 'json',
671            success: function(ret) {
672                if (ret.flag) {
673                    if(pageWrap.length){
674                        $('.btn-delete-user-wrapper .btn-wrapper').hide();
675                        $('.btn-delete-user-wrapper .alert')
676                            .addClass('alert-success')
677                            .removeClass('hidden')
678                            .text(ret.info);
679                        setTimeout(function(){
680                            window.open(ret.redirectUrl,'_self');
681                        },2000)
682                    }else{
683                        window.open(ret.redirectUrl,'_self');
684                    }
685
686                }else{
687                    toastr.error(ret.info);
688                }
689            }
690        });
691    });
692}
693
694function createTicketCode(url){
695    var phone    = $("#reg_phone").val();
696    $.ajax({
697        type: "POST",
698        url: url,
699        data: '&phone='+phone+'&ajax=yes&task=createticketcode',
700        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
701        dataType: 'json',
702        success: function(ret) {
703            if(ret.flag){
704                $('.content-confirm_ticket_code .error').hide();
705                $('#confirmPhoneNumberFancy').show();
706                $(".fancybox-confirm_ticket_code" ).trigger( "click" );
707            }else{
708                $('#confirmPhoneNumberFancy').hide();
709                $('.content-confirm_ticket_code .error').show();
710                $('.content-confirm_ticket_code .error').text(ret.info);
711                $(".fancybox-confirm_ticket_code" ).trigger( "click" );
712            }
713        }
714    });
715}
716
717function confirmTicketCode(url){
718    var ticketCode    = $("#confirmation_ticket_code").val();
719    $.ajax({
720        type: "POST",
721        url: url,
722        data: '&ticketCode='+ticketCode+'&ajax=yes&task=confirmticketcode',
723        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
724        dataType: 'json',
725        success: function(ret) {
726            if(ret.flag){
727                $('.content-confirm_ticket_code .success').show();
728                $('.content-confirm_ticket_code .error').hide();
729                $('#confirmPhoneNumberFancy').hide();
730                $('.content-confirm_ticket_code .success').text(ret.info);
731                $('.btn-red-profile.confirm-btn').hide();
732                $( ".form-profile_info .form-control.textfield" ).removeClass("textfield-small" );
733            }else{
734                $('#confirmPhoneNumberFancy').hide();
735                $('.content-confirm_ticket_code .success').hide();
736                $('.content-confirm_ticket_code .error').show();
737                $('.content-confirm_ticket_code .error').text(ret.info);
738            }
739        }
740    });
741}
742
743function loadProductsInCatalogFrst(thisElement){
744    $('#content_products_in_catalog').html("");
745    loadProductsInCatalog(thisElement);
746}
747
748function loadProductsInCatalog(thisElement){
749    var $productListingInCatalog = $('.products-list-in-catalog'),
750        $loaderWrapper = $productListingInCatalog.find('.loader-wrapper');
751    $productListingInCatalog.find(".load-more").remove();
752    $loaderWrapper.removeClass('hidden');
753    $.ajax({
754        type: "POST",
755        url: thisElement.data('url'),
756        data: {
757            ajax:'yes',
758            task:'loadproductincatalog',
759            catalogId: thisElement.data('catalogid'),
760            page: thisElement.data('page'),
761            limit: thisElement.data('limit')
762        },
763        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
764        success: function(ret) {
765            $loaderWrapper.addClass('hidden');
766            if(ret){
767                $('#content_products_in_catalog').append(ret);
768                new app.handleFavoriteProduct($productListingInCatalog.find('.favorite'));
769            }
770        }
771    });
772}
773
774function addUserRecommdedAttribtue(url, attributeId) {
775    $.ajax({
776        type: "POST",
777        url: nb_active_page_url,
778        data: 'nbAjax=1&nbTask=user_recommended&flag=yes&ajax=yes&task=save&attributeId='+attributeId,
779        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
780        dataType: 'json',
781        success: function(ret) {
782            if (ret.flag) {
783
784            } else{
785                toastr.error(ret.info);
786            }
787        }
788    });
789}
790
791function userViewedRecommdedProducts(thisElement, url, viewed) {
792    $.ajax({
793        type: "POST",
794        url: nb_active_page_url,
795        data: 'nbAjax=1&nbTask=user_recommended&flag=yes&ajax=yes&task=user_viewed_re
795commended_products&viewed='+viewed,
796        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
797        dataType: 'json',
798        success: function(ret) {
799            if (ret.flag) {
800                window.location = url;
801            } else{
802                toastr.error(ret.info);
803            }
804        }
805    });
806}
807
808function getMyUserPublic(page) {
809    var mayUsers = $('.profile-my-users');
810    if(mayUsers.length > 0){
811        $loaderWrapper = mayUsers.find('.loader-wrapper');
812        $loaderWrapper.removeClass('hidden');
813        $.ajax({
814            type: "POST",
815            url: nb_active_page_url,
816            data: 'nbAjax=1&nbTask=user_create&flag=yes&ajax=yes&task=getmyusers&page='+page,
817            contentType: "application/x-www-form-urlencoded;charset=UTF-8",
818            dataType: 'json',
819            success: function(ret) {
820                if (ret.flag){
821                    $('#content_my_users').html(ret.html);
822                    $('#profile_my_users_pagination').html(ret.pagination)
823                }else{
824
825                }
826                $loaderWrapper.addClass('hidden');
827            }
828        });
829    }
830}
831
832function createUserPublic(formName, taskAction, event) {
833    var form = $('#'+formName);
834    var formData = form.serialize();
835    event.preventDefault();
836    form.parsley().validate();
837    typePersonCreateUserProfile('user_create_type_person', true, taskAction);
838
839    if (!form.parsley().isValid()){
840        return;
841    }
842
843    $loaderWrapper = form.find('.loader-wrapper');
844    $loaderWrapper.removeClass('hidden');
845    $('#'+formName+' .alert-success').addClass('hidden');
846    $('#'+formName+' .alert-danger').addClass('hidden');
847
848    $.ajax({
849        type: "POST",
850        url: nb_active_page_url,
851        data: 'nbAjax=1&nbTask=user_create&flag=yes&ajax=yes&task='+taskAction+'&'+formData,
852        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
853        dataType: 'json',
854        success: function(ret) {
855            if (ret.flag){
856                $loaderWrapper.addClass('hidden');
857                //todo posle odredjeni broj sekundi resetujemo formu
858                $('#'+formName+' .alert-success').removeClass('hidden');
859                $('#'+formName+' .alert-success').html(ret.message);
860                if(taskAction == 'add'){
861                    form[0].reset();
862                }
863                setInterval(function(){
864                    window.location = ret.backUrl;
865                }, 3000);
866            }else{
867                $loaderWrapper.addClass('hidden');
868                $('#'+formName+' .alert-danger').removeClass('hidden');
869                $('#'+formName+' .alert-danger').html(ret.message);
870            }
871        }
872    });
873}
874
875function typePersonCreateUserProfile($idElement, resetParsley, taskAction){
876
877    var validateTypePerson = function(thisElement, resetParsley){
878
879        var $naturalPerson = $('#user_create_form .naturalPerson');
880        var $legalEntity = $('#user_create_form .legalEntity');
881
882        if(thisElement.val() == 2){
883            $legalEntity.removeClass('hidden');
884            if(!$naturalPerson.hasClass('hidden')){
885                $naturalPerson.addClass('hidden');
886            }
887            //TEXT FILDS
888            $legalEntity.find('.form-control').data('parsley-required', 'true');
889            $legalEntity.find('.form-control').prop("required", "true");
890            $naturalPerson.find('.form-control').data('parsley-required', 'false');
891            $naturalPerson.find('.form-control').prop("required", "false");
892            $naturalPerson.find('.form-control').removeAttr('required');
893            //SELECT FILDS
894            $legalEntity.find('select').data('parsley-required', 'true');
895            $legalEntity.find('select').prop("required", "true");
896            $naturalPerson.find('select').data('parsley-required', 'false');
897            $naturalPerson.find('select').prop("required", "false");
898            $naturalPerson.find('select').removeAttr('required');
899        }else{
900            $naturalPerson.removeClass('hidden');
901            if(!$legalEntity.hasClass('hidden')){
902                $legalEntity.addClass('hidden');
903            }
904            //TEXT FILDS
905            $naturalPerson.find('.form-control').data('parsley-required', 'true');
906            $naturalPerson.find('.form-control').prop("required", "true");
907            $legalEntity.find('.form-control').data('parsley-required', 'false');
908            $legalEntity.find('.form-control').prop("required", "false");
909            $legalEntity.find('.form-control').removeAttr('required');
910            //SELECT FILDS
911            $naturalPerson.find('select').data('parsley-required', 'true');
912            $naturalPerson.find('select').prop("required", "true");
913            $legalEntity.find('select').data('parsley-required', 'false');
914            $legalEntity.find('select').prop("required", "false");
915            $legalEntity.find('select').removeAttr('required');
916        }
917
918        if(taskAction == 'edit'){
919            $('#user_create_password').data('parsley-required', 'false');
920            $('#user_create_password').prop("required", "false");
921            $('#user_create_password').removeAttr('required');
922            $('#user_create_password_repeat').data('parsley-required', 'false');
923            $('#user_create_password_repeat').prop("required", "false");
924            $('#user_create_password_repeat').removeAttr('required');
925        }
926
927        if(resetParsley){
928            $('#user_create_form').parsley().reset();
929        }
930
931    };
932
933    $( "#"+$idElement).change(function() {
934        validateTypePerson($(this), resetParsley);
935    });
936
937    if($("#"+$idElement).length > 0){
938        validateTypePerson($("#"+$idElement), resetParsley);
939    }
940
941};
942
943function subscribeOrUnsubscribeUserNewsletter(thisElement, url) {
944    var sendNewsletter = -1;
945    if(thisElement.is(':checked')){
946        sendNewsletter = 1;
947    }
948    $.ajax({
949        type: "POST",
950        url: nb_active_page_url,
951        data: 'nbAjax=1&nbTask=user_recommended&flag=yes&ajax=yes&task=subscribeorunsubscribeuser&sendNewsletter='+sendNewsletter,
952        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
953        dataType: 'json',
954        success: function(ret) {
955            if (ret.flag){
956
957            }else{
958                toastr.error(ret.info);
959            }
960        }
961    });
962}
963
964function changeNewsletterSubscribeOrUnsubscribe(url) {
965
966    var sendNewsletter  = -1;
967    var callMeOnPhone   = -1;
968    var sendSMS         = -1;
969    var sendUserAdditionalData = -1;
970
971    if($('#profile_sendNewsletter').is(':checked')){
972        sendNewsletter  = 1;
973    }
974
975    if($('#profile_callMeOnPhone').is(':checked')){
976        callMeOnPhone   = 1;
977    }
978
979    if($('#profile_sendSMS').is(':checked')){
980        sendSMS         = 1;
981    }
982
983    if($('#profile_sendUserAdditionalData').is(':checked')){
984        sendUserAdditionalData = 1;
985    }
986
987    $.ajax({
988        type: "POST",
989        url: nb_active_page_url,
990        data: 'nbAjax=1&nbTask=user_recommended&flag=yes&ajax=yes&task=changenewslettersubscribeorunsubscribe&sendNewsletter='+sendNewsletter+'&callMeOnPhone='+callMeOnPhone+'&sendSMS='+sen
990dSMS+'&sendUserAdditionalData='+sendUserAdditionalData,
991        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
992        dataType: 'json',
993        success: function(ret) {
994            if (ret.flag){
995
996            }else{
997                toastr.error(ret.info);
998            }
999        }
1000    });
1001}
1002
1003function searchLocationOnMap(search){
1004    $('#store_listing_map_search').val(search);
1005    $('#store_listing_map_search').keypress();
1006}
1007
1008//2. filter.js
1009//filter products
1010var filterListIds = new Array();
1011function formatListValue(listId, idElemet){
1012    if($('#'+idElemet).data('type-element') == 'radio'){
1013        filterListIds = new Array();
1014        $("input[name='fl_listId']").each( function () {
1015            if($('#'+idElemet).val() != $(this).val()){
1016                $(this).icheck('unchecked');
1017            }
1018        });
1019    }
1020
1021    if(filterListIds.indexOf(listId) == -1 || filterListIds[listId] == 'undefined'){
1022        filterListIds[listId] = listId;
1023    }else{
1024        filterListIds[listId] = 'undefined';
1025    }
1026
1027    var text = "";
1028    var first = true;
1029    for (key in filterListIds){
1030        if(first){
1031            if(filterListIds[key] != 'undefined' && filterListIds[key] != -1 && filterListIds[key] != ''){text += key; first = false;}
1032        }else{
1033            if(filterListIds[key] != 'undefined' && filterListIds[key] != -1 && filterListIds[key] != ''){text += ","+key;}
1034        }
1035    }
1036
1037    if(!$('#'+idElemet).is(':checked')){
1038        text = "";
1039    }
1040
1041    $('#listId').val(text);
1042    load_products();
1043}
1044
1045var filterStarsIds = new Array();
1046function formatStarsValue(starsId, idElemet){
1047
1048    if($('#'+idElemet).data('type-element') == 'radio'){
1049        filterStarsIds = new Array();
1050        $("input[name='fs_starsId']").each( function () {
1051            if($('#'+idElemet).val() != $(this).val()){
1052                $(this).icheck('unchecked');
1053            }
1054        });
1055    }
1056
1057    if(filterStarsIds.indexOf(starsId) == -1 || filterStarsIds[starsId] == 'undefined'){
1058        filterStarsIds[starsId] = starsId;
1059    }else{
1060        filterStarsIds[starsId] = 'undefined';
1061    }
1062
1063    var text = "";
1064    var first = true;
1065    for (key in filterStarsIds){
1066        if(first){
1067            if(filterStarsIds[key] != 'undefined' && filterStarsIds[key] != -1 && filterStarsIds[key] != ''){text += key; first = false;}
1068        }else{
1069            if(filterStarsIds[key] != 'undefined' && filterStarsIds[key] != -1 && filterStarsIds[key] != ''){text += ","+key;}
1070        }
1071    }
1072
1073    if(!$('#'+idElemet).is(':checked')){
1074        text = "";
1075    }
1076
1077    $('#starsId').val(text);
1078    load_products();
1079}
1080
1081function selectOutletFilter(){
1082    var flagOutlet = $('#outlet').val();
1083    if(flagOutlet == 'no'){
1084        flagOutlet = 'yes';
1085    }else{
1086        flagOutlet = 'no';
1087    }
1088    $('#outlet').val(flagOutlet);
1089    loadProductForPage(0);
1090}
1091
1092var filterSizeEuIds = new Array();
1093if($('#sizeEUId').length){
1094    var sizeEUIdValue = $('#sizeEUId').val();
1095    if(typeof sizeEUIdValue !== 'undefined' && sizeEUIdValue != ''){
1096        var sizeEUIdArray = sizeEUIdValue.split(',');
1097        $.each(sizeEUIdArray, function (index, value) {
1098            filterSizeEuIds[value] = value;
1099        });
1100    }
1101}
1102
1103function formatFilterSizeEUValue(sizeEuPermalink, sizeEu){
1104    let isDelete = false;
1105    //if(filterSizeEuIds.indexOf(sizeEuPermalink) == -1 || filterSizeEuIds[sizeEuPermalink] == 'undefined'){
1106    if(!checkInArraySizeEUValue(sizeEuPermalink)){
1107        filterSizeEuIds[sizeEuPermalink] = sizeEuPermalink;
1108    }else{
1109        filterSizeEuIds[sizeEuPermalink] = 'undefined';
1110    }
1111
1112    updateSizeEuSearchValue(isDelete);
1113}
1114
1115function checkInArraySizeEUValue(sizeEuPermalink){
1116    for (key in filterSizeEuIds) {
1117        if(filterSizeEuIds[key] === sizeEuPermalink){
1118            return true;
1119        }
1120    }
1121    return false;
1122}
1123
1124function deleteSelctedEuSize(sizeEuPermalink, sizeEu){
1125    let isDelete = true;
1126    var sizeEuPermalinkFormated = sizeEuPermalink.replace(/ /g, "+");
1127    filterSizeEuIds[sizeEuPermalinkFormated] = 'undefined';
1128    updateSizeEuSearchValue(isDelete);
1129}
1130
1131function updateSizeEuSearchValue(isDelete){
1132    text = "";
1133    var first = true;
1134    for (key in filterSizeEuIds) {
1135        if(first){
1136            if(filterSizeEuIds[key] != 'undefined' && filterSizeEuIds[key] != -1 && filterSizeEuIds[key] != ''){text += key; first = false;}
1137        }else{
1138            if(filterSizeEuIds[key] != 'undefined' && filterSizeEuIds[key] != -1 && filterSizeEuIds[key] != ''){text += ","+key;}
1139        }
1140    }
1141
1142    $('#sizeEUId').val(text);
1143    if(getOrderTypeSearch() > 0 || isDelete == true) {
1144        loadProductForPage(0);
1145    }
1146}
1147
1148var filterPricelistItems = new Array();
1149var filterPricelistItemsSliderRange = new Array();
1150
1151function formatFilterPriceList(priceFrom, priceTo){
1152    let isDelete = false;
1153    var priceItem = {
1154        key: priceTo,
1155        value: String(priceFrom)+'-'+String(priceTo)
1156    };
1157
1158    var fined = false;
1159
1160    for (key in filterPricelistItems) {
1161        if(filterPricelistItems[key].key == priceTo && filterPricelistItems[key].key != -1){
1162            //ako je prosao kroz niz i pronasao element, onda ga obrisi
1163            filterPricelistItems[key].key =  -1;
1164            fined = true;
1165        }
1166    }
1167
1168    if(!fined){
1169        filterPricelistItems.push(priceItem);
1170    }
1171    updateFilterPricelistItems(isDelete);
1172}
1173
1174function deleteFilterPricelistItemsPriceRange(priceFrom, priceTo){
1175    filterPricelistItemsSliderRange = [];
1176    updateFilterPricelistItems(priceFrom, priceTo, true);
1177}
1178
1179function deleteFilterPricelistItems(priceFrom, priceTo){
1180    let isDelete = true;
1181    for (key in filterPricelistItems) {
1182        if(filterPricelistItems[key].key == priceTo && filterPricelistItems[key].key != -1){
1183            //ako je prosao kroz niz i pronasao element, onda ga obrisi
1184            filterPricelistItems[key].key =  -1;
1185            fined = true;
1186        }
1187    }
1188    updateFilterPricelistItems(isDelete);
1189}
1190
1191let priceFilterInit = false;
1192
1193function priceFilterRange() {
1194    function handlePriceRangeSlider() {
1195
1196        var priceRange = [],
1197            minPriceRange = $('#prices-range-from').val(),
1198            maxPriceRange = $('#prices-range-to').val(),
1199            selectedMinPric,
1200            selectedMaxPric,
1201            currency = $('.filter-price-range-wrapper #amount').data('currency');
1202
1203        if(typeof nbshopJS.getUrlParameter('prices') != 'undefined'){
1204            priceRange = nbshopJS.getUrlParameter('prices').split('-');
1205            selectedMinPric = priceRange[0];
1206            selectedMaxPric = priceRange[1];
1207        } else {
1208            selectedMinPric = minPriceRange;
1209            selectedMaxPric = maxPriceRange;
1210        }
1211
1212        let sliderRange = $( "#slider-range" );
1213
1214        sliderRange.removeClass("initialized");
1215
1216        if(typeof sliderRange !== "undefined" && sliderRange.length > 0){
1217            sliderRange.slider({
1218                range: true,
1219                min: parseFloat(minPriceRange),
1220                max: parseFloat(maxPriceRange),
1221                values: [ selectedMinPric, selectedMaxPric ],
1222                slide: function( event, ui ) {
1223                    $("#amount").val(ui.values[0] + " " + currency + " - " + ui.values[1] + " " + currency);
1224                },
1225                stop: function( event, ui ) {
1226                    if(typeof priceRange != 'undefined') {
1227                        deleteFilterPricelistItemsPriceRange(priceRange[0], priceRange[1]);
1228                    }
1229                    updateFilterPricelistItemsPriceRange(ui.values[ 0 ], ui.values[ 1 ])
1230                    let filtersOpen = typeof $(".filter-open") !== "undefined" && $(".filter-open").length > 0;
1231                    let closeButtonExists = typeof $(".filters-close") !== "undefined" && $(".filters-close").length > 0;
1232                    if($(window).width() <= 900 && filtersOpen && closeButtonExists) {
1233                        $(".filters-close").trigger("click");
1234                    }
1235                }
1236            });
1237            if(typeof nbshopJS.getUrlParameter('prices') != 'undefined') {
1238                $("#amount").val(priceRange[0] + ' ' + currency + " - " + priceRange[1] + ' ' + currency);
1239            } else {
1240                $("#amount").val(minPriceRange + ' ' + currency + " - " + maxPriceRange + ' ' + currency);
1241            }
1242
1243            sliderRange.addClass("initialized");
1244        }
1245    }
1246
1247    handlePriceRangeSlider();
1248
1249    if(!priceFilterInit) {
1250        $(window).on("loadproductsevent", function () {
1251            handlePriceRangeSlider(true);
1252        })
1253        priceFilterInit = true;
1254    }
1255}
1256
1257function updateFilterPricelistItemsPriceRange(priceFrom, priceTo, deletePrice = false){
1258
1259    if(deletePrice) {
1260        $('#prices').val('');
1261        loadProductForPage(0);
1262        return;
1263    }
1264
1265    var text    = "";
1266
1267    if(filterPricelistItemsSliderRange.length > 0) {
1268
1269        if(parseFloat(priceFrom) !== filterPricelistItemsSliderRange[0].priceFrom) {
1270            filterPricelistItemsSliderRange[0].priceFrom = parseFloat(priceFrom);
1271        }
1272        if(parseFloat(priceTo) !== filterPricelistItems[0].priceTo) {
1273            filterPricelistItemsSliderRange[0].priceTo = parseFloat(priceTo);
1274        }
1275
1276    } else {
1277        filterPricelistItemsSliderRange.push({
1278            priceFrom: parseFloat(priceFrom),
1279            priceTo: parseFloat(priceTo),
1280        })
1281    }
1282
1283    filterPricelistItemsSliderRange.forEach((priceItem) => {
1284        text += priceItem.priceFrom + "-" + priceItem.priceTo
1285    })
1286
1287    $('#prices').val(text);
1288    loadProductForPage(0);
1289}
1290
1291function updateFilterPricelistItems(isDelete){
1292    var text    = "";
1293    var first   = true;
1294    for (key in filterPricelistItems) {
1295        if(first){
1296            if(filterPricelistItems[key].key != 'undefined' && filterPricelistItems[key].key != -1 && filterPricelistItems[key].key != ''){text += filterPricelistItems[key].value; first = false;}
1297        }else{
1298            if(filterPricelistItems[key].key != 'undefined' && filterPricelistItems[key].key != -1 && filterPricelistItems[key].key != ''){text += "_"+filterPricelistItems[key].value;}
1299        }
1300    }
1301    $('#prices').val(text);
1302    if(getOrderTypeSearch() > 0 || isDelete == true) {
1303        loadProductForPage(0);
1304    }
1305}
1306
1307/* Distance filter */
1308var filterDistancelistItems = new Array();
1309
1310function formatFilterDistanceList(distanceFrom, distanceTo){
1311
1312    var distanceItem = {
1313        key: distanceTo,
1314        value: String(distanceFrom)+'-'+String(distanceTo)
1315    };
1316
1317    var fined = false;
1318
1319    for (key in filterDistancelistItems) {
1320        if(filterDistancelistItems[key].key == distanceTo && filterDistancelistItems[key].key != -1){
1321            //ako je prosao kroz niz i pronasao element, onda ga obrisi
1322            filterDistancelistItems[key].key =  -1;
1323            fined = true;
1324        }
1325    }
1326
1327    if(!fined){
1328        filterDistancelistItems.push(distanceItem);
1329    }
1330    updateFilterDistancelistItems();
1331}
1332
1333function deleteFilterDistancelistItems(distanceFrom, distanceTo){
1334    for (key in filterDistancelistItems) {
1335        if(filterDistancelistItems[key].key == distanceTo && filterDistancelistItems[key].key != -1){
1336            //ako je prosao kroz niz i pronasao element, onda ga obrisi
1337            filterDistancelistItems[key].key =  -1;
1338            fined = true;
1339        }
1340    }
1341    updateFilterDistancelistItems();
1342}
1343
1344function distanceFilterRange() {
1345    var distanceRange = nbshopJS.getUrlParameter('distances'),
1346        minDistanceRange = $('#distances-range-from').val(),
1347        maxDistanceRange = $('#distances-range-to').val(),
1348        selectedMinDistance,
1349        selectedMaxDistance,
1350        currency = $('.filter-distance-range-wrapper #amount').data('currency');
1351
1352    if(typeof distanceRange != 'undefined'){
1353        distanceRange = distanceRange.split('-');
1354        selectedMinDistance = distanceRange[0];
1355        selectedMaxDistance = distanceRange[1];
1356    } else {
1357        selectedMinDistance = minDistanceRange;
1358        selectedMaxDistance = maxDistanceRange;
1359    }
1360
1361    $( function() {
1362        if($( "#distance-slider-range" ).length ){
1363
1364
1365            $( "#distance-slider-range" ).slider({
1366                range: true,
1367                min: minDistanceRange,
1368                max: ((maxDistanceRange*0.1) + 2),
1369                values: [ selectedMinDistance, selectedMaxDistance ],
1370                slide: function( event, ui ) {
1371                    $( ".filter-distance-range-wrapper #amount" ).val( ui.values[ 0 ] + " " + currency + " - " + ui.values[ 1 ] + " " + currency );
1372                },
1373                stop: function( event, ui ) {
1374                    if(typeof distanceRange != 'undefined') {
1375                        deleteFilterDistancelistItems(distanceRange[0], distanceRange[1]);
1376                    }
1377                    formatFilterDistanceList(ui.values[ 0 ], ui.values[ 1 ]);
1378                }
1379            });
1380            $( ".filter-distance-range-wrapper #amount" ).val( $( "#distance-slider-range" ).slider( "values", 0 ) + ' ' + currency + " - " + $( "#distance-slider-range" ).slider( "values", 1 ) + ' ' + currency );
1381        }
1382    });
1383}
1384
1385function updateFilterDistancelistItems(){
1386    var text    = "";
1387    var first   = true;
1388    for (key in filterDistancelistItems) {
1389        if(first){
1390            if(filterDistancelistItems[key].key != 'undefined' && filterDistancelistItems[key].key != -1 && filterDistancelistItems[key].key != ''){text += filterDistancelistItems[key].value; first = false;}
1391        }else{
1392            if(filterDistancelistItems[key].key != 'undefined' && filterDistancelistItems[key].key != -1 && filterDistancelistItems[key].key != ''){text += "_"+filterDistancelistItems[key].value;}
1393        }
1394    }
1395    $('#distances').val(text);
1396    loadProductForPage(0);
1397}
1398
1399/* Info price filter */
1400var filterInfoPricelistItems = new Array();
1401
1402function formatFilterInfoPriceList(infoPriceFrom, infoPriceTo){
1403
1404    var infoPriceItem = {
1405        key: infoPriceTo,
1406        value: String(infoPriceFrom)+'-'+String(infoPriceTo)
1407    };
1408
1409    var fined = false;
1410
1411    for (key in filterInfoPricelistItems) {
1412        if(filterInfoPricelistItems[key].key == infoPriceTo && filterInfoPricelistItems[key].key != -1){
1413            //ako je prosao kroz niz i pronasao element, onda ga obrisi
1414            filterInfoPricelistItems[key].key =  -1;
1415            fined = true;
1416        }
1417    }
1418
1419    if(!fined){
1420        filterInfoPricelistItems.push(infoPriceItem);
1421    }
1422    updateFilterInfoPricelistItems();
1423}
1424
1425function deleteFilterInfoPricelistItems(infoPriceFrom, infoPriceTo){
1426    for (key in filterInfoPricelistItems) {
1427        if(filterInfoPricelistItems[key].key == infoPriceTo && filterInfoPricelistItems[key].key != -1){
1428            //ako je prosao kroz niz i pronasao element, onda ga obrisi
1429            filterInfoPricelistItems[key].key =  -1;
1430            fined = true;
1431        }
1432    }
1433    updateFilterInfoPricelistItems();
1434}
1435
1436function infoPriceFilterRange() {
1437    var infoPriceRange = nbshopJS.getUrlParameter('infoprice'),
1438        minInfoPriceRange = $('#infoprice-range-from').val(),
1439        maxInfoPriceRange = $('#infoprice-range-to').val(),
1440        selectedMinInfoPrice,
1441        selectedMaxInfoPrice,
1442        currency = $('.filter-infoprice-range-wrapper #amount').data('currency');
1443
1444    if(typeof infoPriceRange != 'undefined'){
1445        infoPriceRange = infoPriceRange.split('-');
1446        selectedMinInfoPrice = infoPriceRange[0];
1447        selectedMaxInfoPrice = infoPriceRange[1];
1448    } else {
1449        selectedMinInfoPrice = minInfoPriceRange;
1450        selectedMaxInfoPrice = maxInfoPriceRange;
1451    }
1452
1453    $( function() {
1454        if($( "#infoprice-slider-range" ).length ){
1455
1456
1457            $( "#infoprice-slider-range" ).slider({
1458                range: true,
1459                min: minInfoPriceRange,
1460                max: ((maxInfoPriceRange*0.1) + 2),
1461                values: [ selectedMinInfoPrice, selectedMaxInfoPrice ],
1462                slide: function( event, ui ) {
1463                    $( ".filter-infoprice-range-wrapper #amount" ).val( ui.values[ 0 ] + " " + currency + " - " + ui.values[ 1 ] + " " + currency );
1464                },
1465                stop: function( event, ui ) {
1466                    if(typeof infoPriceRange != 'undefined') {
1467                        deleteFilterInfoPricelistItems(infoPriceRange[0], infoPriceRange[1]);
1468                    }
1469                    formatFilterInfoPriceList(ui.values[ 0 ], ui.values[ 1 ]);
1470                }
1471            });
1472            $( ".filter-infoprice-range-wrapper #amount" ).val( $( "#infoprice-slider-range" ).slider( "values", 0 ) + ' ' + currency + " - " + $( "#infoprice-slider-range" ).slider( "values", 1 ) + ' ' + currency );
1473        }
1474    });
1475}
1476
1477function updateFilterInfoPricelistItems(){
1478    var text    = "";
1479    var first   = true;
1480    for (key in filterInfoPricelistItems) {
1481        if(first){
1482            if(filterInfoPricelistItems[key].key != 'undefined' && filterInfoPricelistItems[key].key != -1 && filterInfoPricelistItems[key].key != ''){text += filterInfoPricelistItems[key].value; first = false;}
1483        }else{
1484            if(filterInfoPricelistItems[key].key != 'undefined' && filterInfoPricelistItems[key].key != -1 && filterInfoPricelistItems[key].key != ''){text += "_"+filterInfoPricelistItems[key].value;}
1485        }
1486    }
1487    $('#infoprice').val(text);
1488    loadProductForPage(0);
1489}
1490
1491/* price discount filter */
1492function formatFilterDiscountedProducts(){
1493    loadProductForPage(0);
1494};
1495
1496function formatFilterFreeDelivery(){
1497    loadProductForPage(0);
1498};
1499
1500//limit, sort, type view
1501function initTableSort(){
1502
1503    $('#sort_fixed').change( function() {
1504        $('#sort').val($(this).val()).change();
1505    });
1506
1507    //call reload products
1508    $('#sort').change( function() {
1509        $('#f_sort').val($(this).val());
1510    });
1511
1512    $('#limit').change( function() {
1513        $('#f_limit').val($(this).val());
1514    });
1515
1516    //init order select with cookie
1517    initOrderSelect();
1518}
1519
1520//sort, limit, type view save in cookie
1521function initOrderSelect(){
1522    var orders = $('.orderElement');
1523    orders.each(function (i) {
1524        var curr = readCookie("order_"+$(this).attr('id'));
1525        $(this).change( function() {
1526            var name = "order_"+$(this).attr('id');
1527            var value = $(this).val();
1528            var newC = readCookie("order_"+$(this).attr('id'));
1529            $('#f_'+$(this).attr('id')).val($(this).val());
1530            loadProductForPage(0,false);
1531        });
1532    });
1533
1534    $('.list-types-wrapper .item').click( function() {
1535        var name    = "order_typeView";
1536        var value   = $(this).attr('rel');
1537        createCookie(name, value, 10);
1538        var newC    = readCookie("order_typeView");
1539        loadProductForPage(0,false);
1540    });
1541
1542    $('.order-element-type-search').click( function() {
1543
1544        var name    = "order_typesearch";
1545        var value   = $(this).attr('rel');
1546
1547        if(value == 1){
1548            value = -1;
1549        }else{
1550            value = 1;
1551        }
1552
1553        $(this).attr('rel', value);
1554        $(this).attr('value', value);
1555        createCookie(name, value, 10);
1556        var newC    = readCookie("order_typesearch");
1557        load_products();
1558    });
1559}
1560
1561function getOrderTypeSearch(){
1562    var flag = $('#typesearch').is(':checked');
1563    if(flag){
1564        return 1;
1565    }
1566    return -1;
1567}
1568
1569function loadProductForPageWithEvent(e, page){
1570    e.preventDefault();
1571    loadProductForPage(page);
1572}
1573
1574//load product for page
1575function loadProductForPage(page,scroll,backUrl,refreshEntireProductListFleg = true){
1576    if(typeof scroll == 'undefined'){
1577        scroll = true;
1578    }
1579    if(scroll) {
1580        $("html, body").animate({scrollTop: 0}, 500);
1581    }
1582    $('#f_page').val(page);
1583    showHideLoadProductBtn(page);
1584    load_products(backUrl, refreshEntireProductListFleg);
1585}
1586
1587// AUTOLOAD PAGINATION * START
1588function autoLoadProductForPage(goToPage, totalPages, loadPrevProducts = false, e){
1589    e.preventDefault();
1590
1591    $('#f_page').val(parseInt(goToPage));
1592
1593    // Ukoliko se učitava prethodna strana
1594    if(loadPrevProducts){
1595        changeBtnLink(goToPage,totalPages,'prev');
1596        showHideLoadProductBtn(goToPage);
1597    // Ukoliko se učitava sledeća strana
1598    } else {
1599        changeBtnLink(goToPage,totalPages);
1600        showHideLoadProductBtn(goToPage, totalPages);
1601    }
1602
1603    load_products(0, false, true, loadPrevProducts);
1604}
1605
1606// Ažuriranj informacije koliko je učitano proizvoda od ukupnog borja
1607function updateLoadMoreInfo(curentPage = 0){
1608    if ($('.pager-center-wrapper .info').length) {
1609
1610        /*var firsProductPage = $('.product-listing .product-item').first().attr('data-product-page');
1611            firsProductPage = parseInt(firsProductPage);*/
1612
1613        var info = $('.pager-center-wrapper .info');
1614        var productPrePage = info.attr('data-product-pre-page');
1615        //var totalViewedProduct = parseInt((curentPage-firsProductPage)*productPrePage);
1616        var totalViewedProduct = parseInt(curentPage*productPrePage);
1617        var totalProduct = parseInt(info.find('.total-product').html());
1618        if(totalViewedProduct > totalProduct){
1619            totalViewedProduct = totalProduct;
1620        }
1621        info.find('.viewed-products').html(totalViewedProduct);
1622    }
1623}
1624
1625function initAutoLoaderAfterLoadProduct(){
1626    setTimeout(function (){
1627        if($('.autoload-without-button-pagination .btn-loader').length){
1628            $('.autoload-without-button-pagination .btn-loader').addClass('hidden');
1629        }
1630        if($('.pager-center-wrapper .next-load-btn').length){
1631            loadFlag = true;
1632            //loadProductOnScroll('.pager-center-wrapper .next-load-btn');
1633        }
1634    },1000);
1635}
1636
1637// Memorisanje poslednjeg otvorenog proizvoda na listi
1638function setProductListBackPosition(){
1639    $(".product-listing .product-item a").on("click", function(e) {
1640
1641        var productWrapper = $(this).closest('.product-item');
1642
1643        // Setovanje strane pre redirekcije kako bi se na back korisnik vratio na tu stranu
1644        var productPage = productWrapper.attr('data-product-page');
1645        $('#f_page').val(parseInt(productPage)+startPager);
1646        var newUrl          = removeSleshFromEndOfUrl(nbFilterPermalink());
1647        rewriteURL('', newUrl);
1648
1649        // Čuvanje proizvoda na koju treba da se fokusira strana klikom na back
1650        var postionForProductCode = productWrapper.attr('data-productcode');
1651        localStorage.setItem('postionForProductCode',postionForProductCode);
1652    });
1653}
1654
1655// Pozicioniranje na proizvod koji je otvoren pre back dugmeta
1656function getProductListBackPosition(){
1657    setTimeout(function(){
1658        var productPosition= localStorage.getItem('postionForProductCode');
1659        if($(".product-listing .product-item[data-productcode='"+productPosition+"']").length){
1660            scrollToCenter($(".product-listing .product-item[data-productcode='"+productPosition+"']"),50);
1661        }
1662    }, 1);
1663}
1664
1665// Funkcija caz centriranje klase na nentar ekrana !!! ovo može da bude helper funkcija u core !!!
1666function scrollToCenter(element, speed = 1000){
1667    var elOffset = element.offset().top;
1668    var elHeight = element.height();
1669    var windowHeight = $(window).height();
1670    var offset = elOffset;
1671    if (elHeight < windowHeight) {
1672        offset = elOffset - ((windowHeight / 2) - (elHeight / 2));
1673    }
1674    $('html, body').animate({scrollTop:offset}, speed);
1675}
1676
1677function showHideLoadProductBtn(goToPage = 1, totalPages = 0){
1678    if(typeof startPager === 'undefined' || startPager === null) {
1679        startPager = 1;
1680    }
1681    /* ukoliko je učitana prva strana skloniti dugme za učitavanje prethodne strane */
1682    if(parseInt(goToPage) < 1+startPager){
1683        $('.pagination.autoload-pagination .pager-center-wrapper .btn.prev-load-btn').addClass('hidden');
1684    }
1685
1686    /* ukoliko je učitana poslednja strana skloniti dugme za učitavanje */
1687    if(totalPages > 0 && totalPages == parseInt(goToPage)+1-startPager){
1688        $('.pagination.autoload-pagination .pager-center-wrapper .btn.next-load-btn').addClass('hidden');
1689    }
1690}
1691
1692function changeBtnLink(goToPage,totalPages = 0, type = 'next'){
1693
1694    var nextPage = parseInt(goToPage)+1;
1695    var btnClass = 'next-load-btn';
1696    var typeBtn = 'false';
1697    var pageUrl;
1698    var pageUrlWithoutPage;
1699    if(type == 'prev'){
1700        nextPage = parseInt(goToPage)-1;
1701        btnClass = 'prev-load-btn';
1702        typeBtn = 'true';
1703    }
1704
1705    if ($('.pager-center-wrapper .'+btnClass).length) {
1706        var btn = $('.pager-center-wrapper .'+btnClass);
1707        if(totalPages == 0){
1708            totalPages = parseInt(btn.attr('data-total-pages'));
1709        }
1710        if(nextPage < 0 && type == 'prev'){
1711            $('.pager-center-wrapper .'+btnClass).remove();
1712        }
1713        $('.pager-center-wrapper .'+btnClass).attr('onclick','autoLoadProductForPage('+nextPage+', '+totalPages+', '+typeBtn+', event)');
1714
1715        /* Korekcija permalinka dugmeta nakon ajax-a */
1716        pageUrl = $('.pager-center-wrapper .'+btnClass).attr('href');
1717        if (typeof pageUrl  !== "undefined"){
1718            pageUrlWithoutPage = pageUrl.slice(0, pageUrl.lastIndexOf('/page-'));
1719            if(type == 'prev' && nextPage == startPager){
1720                $('.pager-center-wrapper .'+btnClass).attr('href', pageUrlWithoutPage);
1721            } else {
1722                $('.pager-center-wrapper .'+btnClass).attr('href', pageUrlWithoutPage+'/page-'+nextPage);
1723            }
1724        }
1725
1726    }
1727}
1728
1729// Even koji registruje da je stranica otvorena sa back strane
1730if (performance.navigation.type == 2) {
1731    window.history.scrollRestoration = 'manual';
1732}
1733// AUTOLOAD PAGINATION * START
1734
1735// load heading with breands
1736function changeHeadingTitle(metaObject){
1737    if(metaObject.getBrandsInProductHeading > 0){
1738        var headingTitleElement = $('.product-listing-intro .title > h1 span, .product-listing-intro .title > span');
1739        var headingTitleText = metaObject.categoryHeadingTitle;
1740        headingTitleElement.text(headingTitleText);
1741    }
1742    if(metaObject.getBrandsInMetaTitle > 0){
1743        var metaTitle = metaObject.categoryMetaTitle;
1744        $('title').text(metaTitle);
1745    }
1746}
1747
1748//set selected filter to form
1749function setFilterForm(cat_permalink, element) {
1750    $('#f_category_permalink').val(cat_permalink);
1751    loadProductForPage(0);
1752}
1753
1754function removeSleshFromEndOfUrl(newUrl){
1755    var urlEnd = newUrl.indexOf("?");
1756    if(urlEnd == -1){
1757        urlEnd = newUrl.length;
1758    }
1759    if (urlEnd > 0){
1760        if (newUrl[urlEnd - 1] == "/" && nb_url_end_slesh == ''){
1761            newUrl = newUrl.substr(0, urlEnd-1) + newUrl.substr(urlEnd);
1762        }
1763    }
1764    return newUrl;
1765}
1766
1767//load products
1768function load_products(backUrl, refreshEntireProductListFleg = true, autoLoadFleg = false, loadPrevProducts = false){
1769
1770    var formData        = $("#filter_form").serialize();
1771    var newUrl          = removeSleshFromEndOfUrl(nbFilterPermalink());
1772    var $productListing = $('.listing-products'),
1773        $loaderWrapper  = $productListing.find('.loader-wrapper');
1774    var separate_products_filters = $productListing.data('separate-ajax');
1775    var filtersWrapperAjax = '';
1776    if(separate_products_filters == 'undefined' || separate_products_filters == ''){
1777        separate_products_filters = 'no';
1778    }
1779    if(separate_products_filters){
1780        filtersWrapperAjax = $('.filters-wrapper-ajax');
1781    }
1782
1783    var autoLoad = ''
1784    if(autoLoadFleg){
1785        autoLoad = '&autoload=yes'
1786        $('#auto-load-marker .btn-loader').removeClass('hidden');
1787    }
1788
1789    var refreshEntireProductList = ''
1790    if(!refreshEntireProductListFleg){
1791        refreshEntireProductList = '&refreshentireproductlist=no'
1792    }
1793
1794    /* Load se učitava uvek osim kada je u pitanju auto loasd */
1795    if(!autoLoadFleg || refreshEntireProductListFleg){
1796        $loaderWrapper.removeClass('hidden');
1797    }
1798
1799    //if ajax is already called, abort it then call a new one
1800    (typeof app.ajaxFilter === 'undefined' || app.ajaxFilter === null) ? null : app.ajaxFilter.abort();
1801
1802    app.ajaxFilter = $.ajax({
1803        cache: false,
1804        sync: true,
1805        type: "POST",
1806        url: newUrl,
1807        data: formData+'&ajax=yes&separateAjax='+separate_products_filters+autoLoad+refreshEntireProductList,
1808        dataType: 'json',
1809        accepts: {
1810            text: "text/plain",
1811            html: "text/html",
1812            xml: "application/xml, text/xml",
1813            json: "application/json, text/javascript"
1814        },
1815        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
1816        success: function(ret) {
1817
1818            deleteCacheIphone();
1819            $loaderWrapper.addClass('hidden');
1820
1821            if(ret.flag){
1822                var html = ret.info;
1823
1824                if(ret.autoLoad){
1825                    // Ukoliko je auto load na dugme pa se append-uju novi proizodi na kraj liste
1826                    if(loadPrevProducts){
1827                        $('.products-listing.product-listing-items > .row.products-new-list-wrapper').prepend(html);
1828                    } else {
1829                        $('.products-listing.product-listing-items > .row.products-new-list-wrapper').append(html);
1830                        updateLoadMoreInfo(parseInt($('#f_page').val())+1-startPager);
1831                    }
1832                    $('#auto-load-marker .btn-loader').addClass('hidden');
1833                } else if(!ret.refreshEntireProductList) {
1834                    // Ukoliko se menja sort ili limit, pa se ne menja deo za filtere već se samo menja sadržaj liste proizoda
1835                    $('.pagination.autoload-pagination .pager-center-wrapper .btn.next-load-btn').removeClass('hidden');
1836                    $('.products-listing.product-listing-items > .row.products-new-list-wrapper').html(html);
1837                    updateLoadMoreInfo(1-startPager);
1838                    changeBtnLink($('#f_page').val());
1839                } else {
1840                    // Ukoliko je klasičan ajax i učitavaju se kategorije, filteri, proizodi i info deo
1841                    if(separate_products_filters === 'yes'){
1842                        filtersWrapperAjax.html(ret.onlyFilters);
1843                        $productListing.html(html);
1844                    }else{
1845                        //stampanje product_list_ajax layouta
1846                        $productListing.html(html);
1847                    }
1848                }
1849
1850                // Ukoliko se osvezaža ceo listing deo (kategorije, filteri i sve ostalo na listi) treb da se reinicijalizuju sve ove funkcije
1851                if(ret.refreshEntireProductList){
1852                    initDelSelectedFilter();
1853                    new app.handleProductListing($productListing);
1854                    new app.handleCheckboxRadio($('.product-listing-filters input[type="checkbox"], .product-listing-filters label, .filter-selector-wrapper input[type="checkbox"], .product-listing-filters input[type="radio"]'));
1855                    //app.handlefiltershowhide();
1856                    nbshopJS.filterSelectorActive();
1857                    nbshopJS.showMoreFilters();
1858                    nbshopJS.activeColorFilterLabele();
1859                    app.handleFilterDropdown();
1860
1861                    // Ove dve metode ne treba da se učitavaju više ukoliko su već inicijalizovane.
1862                    // Ukoliko imamo projekat gde se fulteri unutra listing-products klase ona to treba drugačije da se reši
1863                    if($('.listing-products.dropdown-filters-wrapper').length || $('.listing-products .product-listing-intro').length !== 0){
1864                        initTableSort();
1865                        initOrderSelect();
1866                    }
1867
1868
1869                    nbshopJS.filterButtonActive();
1870                    // app.handleProductsThumbsSlider(); //dodao FrontEnd
1871                    if(typeof app.handleFixedFiltersButton() != undefined || typeof app.handleFixedFiltersButton() != null){
1872                        app.handleFixedFiltersButton();
1873                    }
1874                    initNBFilter();
1875
1876                    //product list description - remove H1 from intro
1877                    var description = $('.list-description');
1878                    var pagetitle   = $('.product-listing-intro .headding-wrapper span');
1879                    if(description.length > 0){
1880                        if ( pagetitle.parent().is( "h1" ) ) {
1881                            pagetitle.unwrap();
1882                        }
1883                    }else{
1884                        if ( pagetitle.parent().is( "h1" ) ) {
1885
1886                        } else {
1887                            pagetitle.wrap( "<h1></h1>" );
1888                        }
1889                    }
1890
1891                    //reinit thumbnail slider
1892                    if(app.width() > 767){
1893                        $('.product-thumbs-slider').each(function(){
1894                            var $slider = $(this);
1895                            $slider.handleSlider({
1896                                navigation: $(this).parent('.product-thumbs-wrapper').find('.slider-arrows')
1897                            });
1898                        });
1899                    }
1900                    var orders = $('#limit');
1901                    var value = orders.val();
1902                    createCookie("order_limit", value, 10);
1903                    //set ajax call to null
1904                    app.ajaxFilter = null;
1905                } else {
1906                    setProductListBackPosition()
1907                }
1908
1909                if(typeof backUrl == 'undefined'){
1910                    rewriteURL('', newUrl);
1911                }
1912
1913                initAutoLoaderAfterLoadProduct();
1914                // Ostatak funkcija koje moraju da se izvrše nakon učitanih novi proizoda
1915                if(typeof ret.metaObject  !== "undefined" && ret.metaObject != ''){
1916                    changeHeadingTitle(ret.metaObject);
1917                }
1918                $productListing.find('.product-item').addClass('appeared');
1919                new app.handleAppearing($productListing.find('.product-item'));
1920                new app.handlePopover($productListing.find('.product-item [rel=popover]'));
1921                let favorites = $productListing.find('.favorite');
1922                favorites.each(function () {
1923                    if(!$(this).hasClass('favorite-init')) {
1924                        new app.handleFavoriteProduct($(this));
1925                    }
1926                })
1927
1928                app.handleBuyProductOnListing();
1929                nbshopJS.changeProductQuantity();
1930                nbshopJS.handleProductListImgSlider();
1931                nbshopJS.handleProductSizeSelector();
1932                nbshopJS.slimilarColorInProductList();
1933                nbshopJS.productListBanerSlider();
1934                nbshopJS.quickBuyButtonV3();
1935                if(lozadJsFlag){
1936                    lozad('.lozad', {
1937                        load: function(el) {
1938                            if (!el.classList.contains('lazy-loaded')) {
1939                                el.src = el.dataset.originalImg;
1940                                if(el.src !== undefined){
1941                                    el.onload = function() {
1942                                        el.classList.add('fade');
1943                                    }
1944                                }
1945                            }
1946                        }
1947                    }).observe();
1948                }
1949                if($productListing.find('.product-item .showProductDetailsQuickViewOnModal').length > 0){
1950                    new app.handleProductDetailsQuickViewOnModal($productListing.find('.product-item .showProductDetailsQuickViewOnModal'));
1951                }
1952                if($productListing.find('.product-item .showProductQueryViewOnModal').length > 0){
1953                    new app.handleProductQueryViewOnModal($productListing.find('.product-item .showProductQueryViewOnModal'));
1954                }
1955            } else {
1956                $('.autoload-without-button-pagination .btn-loader').addClass('hidden');
1957                loadFlag = false;
1958            }
1959            nbshopJS.CustomEventTrigger('loadproductsevent');
1960        }
1961    });
1962}
1963
1964//FILTER START
1965//FILTER
1966function NBFilter(form, category, sep1, sep2, pageId) {
1967    this.form               = form;
1968    this.category           = category;
1969    this.atributes          = new Array();
1970    this.sep1               = sep1;
1971    this.sep2               = sep2;
1972    this.pageId             = pageId;
1973    this.pageName           = 'page-';
1974    this.searchId           = 'search';
1975    this.authorId           = 'f_author';
1976    this.listId             = 'listId';
1977    this.pricesId           = 'prices';
1978    this.distancesId        = 'distances';
1979    this.infopriceId        = 'infoprice';
1980    this.saleId             = 'sale';
1981    this.outletId           = 'outlet';
1982    this.storeId            = 'storeId';
1983    this.sizeEUId           = 'sizeEUId';
1984    this.filterDiscountedProducts = 'f_discountedProducts';
1985    this.filterFreeDelivery = 'f_freeDelivery';
1986};
1987
1988NBFilter.prototype.setAtribute = function(id, value) {
1989    if( typeof this.atributes[id] != "undefined" ) {
1990        this.atributes[id][value] = value;
1991    }else{
1992        this.atributes[id] = new Array();
1993        this.atributes[id][value] = value;
1994    }
1995};
1996
1997NBFilter.prototype.deleteAtribute = function(id, value) {
1998    if( typeof this.atributes[id] != "undefined" ) {
1999        if( typeof this.atributes[id][value] != "undefined" ) {
2000            delete this.atributes[id][value];
2001        }
2002    }
2003};
2004
2005NBFilter.prototype.deleteAllSelectedAtributes = function() {
2006    if( typeof this.atributes != "undefined" ) {
2007        this.atributes = new Array();
2008    }
2009};
2010
2011NBFilter.prototype.deleteAllRestSelectedFilter = function() {
2012    this.deleteSelSizeEU();
2013    this.deleteSelList(false);
2014    this.deleteSelOutlet(false);
2015    this.deleteSelSale(false);
2016    this.deleteSelSearchText(false);
2017    this.deleteSelPrice('','',false);
2018};
2019
2020NBFilter.prototype.deleteSelSizeEU = function() {
2021    $('#'+this.sizeEUId).val('');
2022};
2023
2024NBFilter.prototype.deleteSelAtribute = function(value) {
2025    //atributes
2026    for (var i in this.atributes) {
2027        for (var a in this.atributes[i]) {
2028            if(a == value){
2029                $('#'+i+'_'+value).icheck('unchecked');
2030                loadProductForPage(0);
2031                break;
2032            }
2033        }
2034    }
2035};
2036
2037NBFilter.prototype.deleteSelPrice = function(from, to,reloadprod) {
2038    if(typeof reloadprod == 'undefined' || reloadprod){
2039        loadProductForPage(0);
2040    }
2041};
2042
2043NBFilter.prototype.deleteSelList = function(reloadprod) {
2044    $('#'+this.listId).val(0);
2045    if(typeof reloadprod == 'undefined' || reloadprod){
2046        loadProductForPage(0);
2047    }
2048};
2049
2050NBFilter.prototype.deleteSelSearchText = function(reloadprod) {
2051    $('#'+this.searchId).val('');
2052    if(typeof reloadprod == 'undefined' || reloadprod){
2053        loadProductForPage(0);
2054    }
2055};
2056
2057NBFilter.prototype.deleteSelSale = function(reloadprod) {
2058    $('#'+this.saleId).val('no');
2059    if(typeof reloadprod == 'undefined' || reloadprod){
2060        loadProductForPage(0);
2061    }
2062};
2063
2064NBFilter.prototype.deleteSelOutlet = function(reloadprod) {
2065    $('#'+this.outletId).val('no');
2066    if(typeof reloadprod == 'undefined' || reloadprod){
2067        loadProductForPage(0);
2068    }
2069};
2070
2071NBFilter.prototype.getCategory = function() {
2072    return $('#'+this.category).val();
2073};
2074
2075NBFilter.prototype.getPage = function() {
2076    return $('#'+this.pageId).val();
2077};
2078
2079NBFilter.prototype.getSearch = function() {
2080    return $('#'+this.searchId).val();
2081};
2082
2083NBFilter.prototype.getAuthor = function() {
2084    return $('#'+this.authorId).val();
2085};
2086
2087NBFilter.prototype.getList = function() {
2088    return $('#'+this.listId).val();
2089};
2090
2091NBFilter.prototype.getSizeEU = function() {
2092    return $('#'+this.sizeEUId).val();
2093};
2094
2095NBFilter.prototype.getPrices = function() {
2096    return $('#'+this.pricesId).val();
2097};
2098
2099NBFilter.prototype.getDistances = function() {
2100    return $('#'+this.distancesId).val();
2101};
2102
2103NBFilter.prototype.getStoreId = function() {
2104    return $('#'+this.storeId).val();
2105};
2106
2107NBFilter.prototype.getInfoPrice = function() {
2108    return $('#'+this.infopriceId).val();
2109};
2110
2111NBFilter.prototype.getDiscountedProducts = function() {
2112    if ($('#'+this.filterDiscountedProducts).is(':checked')) {
2113        return $('#'+this.filterDiscountedProducts).val();
2114    }
2115};
2116
2117NBFilter.prototype.getFreeDelivery = function() {
2118    if ($('#'+this.filterFreeDelivery).is(':checked')) {
2119        return $('#'+this.filterFreeDelivery).val();
2120    }
2121};
2122
2123NBFilter.prototype.getSale = function() {
2124    return $('#'+this.saleId).val();
2125};
2126
2127NBFilter.prototype.getOutlet = function() {
2128    return $('#'+this.outletId).val();
2129};
2130
2131NBFilter.prototype.getNbpMake = function() {
2132    return $('#my_package_form #nbpMake').val()
2133};
2134
2135//NBFilter.prototype.getNbpUniversalModel = function() {
2136//return $('#my_package_form #nbpModel :selected').parent().attr('label');
2137//};
2138
2139NBFilter.prototype.getNbpModel = function() {
2140    return $('#my_package_form #nbpModel').val();
2141};
2142
2143NBFilter.prototype.getNbpSubModel = function() {
2144    return $('#my_package_form #nbpSubModel').val();
2145};
2146
2147NBFilter.prototype.getNbpEngineId = function() {
2148    return $('#my_package_form #nbpEngineId').val();
2149};
2150
2151NBFilter.prototype.permalink = function() {
2152
2153    var formatArray = [];
2154    var startPage = 1;
2155    if(typeof(startPager) != "undefined" && startPager !== null) {
2156        startPage = startPager;
2157    }
2158
2159    //site and category
2160    var permalink = this.getCategory();
2161
2162    if(permalink.substr(permalink.length - 1) != '/'){
2163        permalink += '/';
2164    }
2165
2166    var atrUrl = '';
2167    for (var i in this.atributes) {
2168
2169        var formatSubArray = [];
2170        for (var a in this.atributes[i]) {
2171            formatSubArray.push(a);
2172        }
2173
2174        if(formatSubArray.length > 0){
2175            formatArray.push(formatSubArray.join(this.sep2));
2176        }
2177    }
2178
2179    atrUrl = formatArray.join(this.sep1);
2180    if(atrUrl != ''){
2181        permalink += atrUrl+'/';
2182    }
2183
2184    if(this.getList() != 0 && typeof this.getList() != 'undefined'){
2185        permalink += this.getList()+'/';
2186    }
2187
2188    if(this.getPage() != '' && this.getPage() > startPage && typeof this.getPage() != 'undefined'){
2189        permalink += this.pageName+this.getPage();
2190    }
2191
2192    var customPermalink     = '';
2193    var firstCustomFilter   = true;
2194
2195    if(this.getSizeEU() != '' && typeof this.getSizeEU() != 'undefined'){
2196        if(!firstCustomFilter){customPermalink += '&';}
2197        firstCustomFilter = false;
2198        var sizeText = this.getSizeEU();
2199        var resultTextFormatPermalinkSizeEU = sizeText.replace(/ /g, "+");
2200        //customPermalink += 'sizeEU='+encodeURIComponent(resultTextFormatPermalinkSizeEU);
2201        customPermalink += 'sizeEU='+resultTextFormatPermalinkSizeEU;
2202    }
2203
2204    if(this.getSearch() != ''){
2205        if(!firstCustomFilter){customPermalink += '&';}
2206        firstCustomFilter = false;
2207        customPermalink += this.searchId+'='+this.getSearch();
2208    }
2209
2210    if(this.getAuthor() != ''){
2211        if(!firstCustomFilter){customPermalink += '&';}
2212        firstCustomFilter = false;
2213        customPermalink += 'author='+this.getAuthor();
2214    }
2215
2216    if(this.getPrices() != '' && typeof this.getPrices() != 'undefined'){
2217        if(!firstCustomFilter){customPermalink += '&';}
2218        firstCustomFilter = false;
2219        customPermalink += this.pricesId+'='+this.getPrices();
2220    }
2221
2222    if(this.getDistances() != '' && typeof this.getDistances() != 'undefined'){
2223        if(!firstCustomFilter){customPermalink += '&';}
2224        firstCustomFilter = false;
2225        customPermalink += this.distancesId+'='+this.getDistances();
2226    }
2227
2228    if(this.getStoreId() != '' && typeof this.getStoreId() != 'undefined'){
2229        if(!firstCustomFilter){customPermalink += '&';}
2230        firstCustomFilter = false;
2231        customPermalink += this.storeId+'='+this.getStoreId();
2232    }
2233
2234    if(this.getInfoPrice() != '' && typeof this.getInfoPrice() != 'undefined'){
2235        if(!firstCustomFilter){customPermalink += '&';}
2236        firstCustomFilter = false;
2237        customPermalink += this.infopriceId+'='+this.getInfoPrice();
2238    }
2239
2240    if(this.getDiscountedProducts() != '' && typeof this.getDiscountedProducts() != 'undefined'){
2241        if(!firstCustomFilter){customPermalink += '&';}
2242        firstCustomFilter = false;
2243        customPermalink += 'discountedProducts='+this.getDiscountedProducts();
2244    }
2245
2246    if(this.getFreeDelivery() != '' && typeof this.getFreeDelivery() != 'undefined'){
2247        if(!firstCustomFilter){customPermalink += '&';}
2248        firstCustomFilter = false;
2249        customPermalink += 'freeDelivery='+this.getFreeDelivery();
2250    }
2251
2252    if(this.getSale() != 'no'){
2253        //customPermalink += this.saleId+'='+this.getSale();
2254        if(!firstCustomFilter){customPermalink += '&';}
2255        firstCustomFilter = false;
2256        customPermalink += this.saleId+'='+this.getSale();
2257    }
2258
2259    if(this.getOutlet() != 'no'){
2260        if(!firstCustomFilter){customPermalink += '&';}
2261        firstCustomFilter = false;
2262        customPermalink += this.outletId+'='+this.getOutlet();
2263    }
2264
2265    if (this.getNbpMake() != '' && typeof this.getNbpMake() !== 'undefined') {
2266
2267        if(!firstCustomFilter){customPermalink += '&';}
2268        firstCustomFilter = false;
2269        customPermalink += 'nbpMake='+this.getNbpMake();
2270
2271        if (this.getNbpModel() != '' && typeof this.getNbpModel() !== 'undefined' ) {
2272            customPermalink += '&nbpModel='+encodeURIComponent(this.getNbpModel());
2273
2274            if (this.getNbpSubModel() != '' && typeof this.getNbpSubModel() !== 'undefined' ) {
2275                customPermalink += '&nbpSubModel='+this.getNbpSubModel();
2276
2277                if (this.getNbpEngineId() != '' && typeof this.getNbpEngineId() !== 'undefined' ) {
2278                    customPermalink += '&nbpEngineId='+this.getNbpEngineId();
2279                }
2280            }
2281        }
2282
2283    }
2284
2285    if(customPermalink != ''){
2286        //permalink += '/?'+customPermalink;
2287        permalink += '?'+customPermalink;
2288    }
2289
2290    //permalink = permalink.replace(/^\/|\/$/g, '').replace('/?', '?');
2291
2292    return permalink;
2293};
2294
2295var nbFilter = new NBFilter('filter_form', 'f_page_url', '/', '+', 'f_page');
2296function initNBFilter(){
2297    var filters = $('.nb-filter');
2298    filters.each(function (i, object) {
2299        var element = $(this);
2300        var id      = $(this).attr('nb-id');
2301        var value   = $(this).attr('nb-value');
2302
2303        if(element.is(':checked')){
2304            nbFilter.setAtribute(id, value);
2305        }
2306
2307        element.change( function() {
2308            if(element.is(':checked')){
2309                nbFilter.setAtribute(id, value);
2310            }else{
2311                nbFilter.deleteAtribute(id, value);
2312            }
2313            if(getOrderTypeSearch() > 0){
2314                loadProductForPage(0);
2315            }
2316        });
2317    });
2318
2319    $('input.nb-filter').on('ifChecked', function(event){
2320        nbFilter.setAtribute($(this).attr('nb-id'), $(this).attr('nb-value'));
2321    });
2322
2323    $('input.nb-filter').on('ifUnchecked', function(event){
2324        nbFilter.deleteAtribute($(this).attr('nb-id'), $(this).attr('nb-value'));
2325    });
2326
2327    $('#listId').change( function() {
2328        if(getOrderTypeSearch() > 0){
2329            loadProductForPage(0);
2330        }
2331    });
2332
2333    $('.irs').click( function() {
2334        if(getOrderTypeSearch() > 0){
2335            loadProductForPage(0);
2336        }
2337    });
2338    initDelSelectedFilter();
2339    nbshopJS.filterCheeckToSelect();
2340    priceFilterRange();
2341    distanceFilterRange();
2342    infoPriceFilterRange();
2343}
2344
2345function initDelSelectedFilter(){
2346
2347    var selFilters = $('.tags .sel-filter');
2348
2349    selFilters.each(function (i, object) {
2350        $(this).click( function() {
2351            var value   = $(this).attr('nb-value');
2352            nbFilter.deleteSelAtribute(value);
2353        });
2354    });
2355
2356    $('.tags .sel-filter-price').click( function() {
2357        var from   = $(this).attr('nb-from');
2358        var to     = $(this).attr('nb-to');
2359        nbFilter.deleteSelPrice(from, to);
2360    });
2361
2362    $('.tags .sel-filter-list').click( function() {
2363        nbFilter.deleteSelList();
2364    });
2365
2366    $('.tags .sel-filter-search').click( function() {
2367        nbFilter.deleteSelSearchText();
2368    });
2369
2370    $('.tags .sel-filter-sale').click( function() {
2371        nbFilter.deleteSelSale();
2372    });
2373
2374    $('.tags .sel-filter-outlet').click( function() {
2375        nbFilter.deleteSelOutlet();
2376    });
2377}
2378
2379function deleteAllSelectedAtributes(){
2380    nbFilter.deleteAllSelectedAtributes();
2381    nbFilter.deleteAllRestSelectedFilter();
2382    filterSizeEuIds = new Array();
2383    loadProductForPage(0);
2384}
2385
2386function nbFilterPermalink(){
2387    return nbFilter.permalink();
2388}
2389
2390//mobile filters if apply button exist
2391let mobileFiltersWithApplyBtn = () => {
2392    if($('#apply_filters_btn').length > 0 && $(window).innerWidth() <= 991){
2393        $('#apply_filters_btn').removeClass('hidden');
2394
2395        if($('#f_typesearch').val() !== '-1'){
2396            $('#typesearch').click().change();
2397        }
2398
2399        $('#apply_filters_btn .btn').click(function (){
2400            $('.filter-input-search .btn-wrapper .btn-search').click();
2401            $('html').css('overflow','');
2402        })
2403
2404        $('.action-filters').click(function (){
2405            $('html').css('overflow','hidden');
2406        })
2407        $('.filters-close').click(function (){
2408            $('html').css('overflow','');
2409        })
2410    }
2411}
2412//FILTER END
2413
2414////product list preview
2415function init_view_change(){}
2416
2417//3. nbsoft.cart.js
2418function removeRequiredFromInputs(){
2419    $('.cart-step .address-new .form-control, .cart-step .address-no-registration .form-control,.cart-step .address-registrated .form-control, .new-billing-addess .form-control').each(function(){
2420        $(this).attr('type','text');
2421        $(this).renameAttr('data-parsley-lengthone', 'data-parsley-lengthone-false' );
2422        $(this).renameAttr('data-parsley-length', 'data-parsley-length-false' );
2423        $(this).data('parsley-required', 'false');
2424        $(this).prop("required", "false");
2425        $(this).removeAttr('required');
2426        $(this).renameAttr('pattern','pattern-false');
2427    });
2428    $('.cart-step .address-new select, .cart-step .address-no-registration select, .cart-step select, .store-recive select, .store-recive-input > input,.cart-step .address-registrated select').each(function(){
2429        $(this).attr('type','text');
2430        $(this).renameAttr('data-parsley-lengthone', 'data-parsley-lengthone-false' );
2431        $(this).renameAttr('data-parsley-length', 'data-parsley-length-false' );
2432        $(this).data('parsley-required', 'false');
2433        $(this).prop("required", "false");
2434        $(this).removeAttr('required');
2435        $(this).renameAttr('pattern-false','pattern');
2436    });
2437    $('.cart-step .address-new .form-group.form-group-checklabel input').each(function (){
2438        $(this).data('parsley-required', 'false');
2439        $(this).prop("required", "false");
2440        $(this).removeAttr('required');
2441        $(this).renameAttr('pattern','pattern-false');
2442    });
2443}
2444
2445function initLoader(){
2446    var cartLoader = $('.cart-loader');
2447    cartLoader.removeClass('hidden');
2448}
2449//CART functions
2450function initInsertTicket(){
2451    $('.insert-ticket').click(function(){
2452        var typeTicket = $('#cart_ticket_type').val();
2453        $('#ticket_id').val($('#ticket_id_'+typeTicket).val());
2454        removeRequiredFromInputs();
2455        $('#cart_insert_ticket').trigger( "click" );
2456        initLoader();
2457    });
2458    initLoader();
2459    reloadTicketsActionLoyalityHtmlBlock();
2460}
2461
2462function initChangeTabTicket(){
2463    $('.tickets-type li').click(function(){
2464        var ticketType     =  $(this).data('ticket-type');
2465        cartChangeTicketType(ticketType);
2466        //loadTicketForType($(this));
2467        $('#cart_ticket').data('bootbox-question', $(this).data('bootbox-question'));
2468        $('#cart_ticket').data('bootbox-btn-yes', $(this).data('bootbox-btn-yes'));
2469        $('#cart_ticket').data('bootbox-btn-no', $(this).data('bootbox-btn-no'));
2470    });
2471}
2472
2473function actionInsertTicket(){
2474    var typeTicket = $('#cart_ticket_type').val();
2475    $('#ticket_id').val($('#ticket_id_'+typeTicket).val());
2476    removeRequiredFromInputs();
2477    $('#cart_insert_ticket').trigger( "click" );
2478    initLoader();
2479    initLoader();
2480    reloadTicketsActionLoyalityHtmlBlock();
2481    eraseCookie('applyAnotherTicket');
2482}
2483
2484function initRemoveTicket(){
2485    $('.remove-ticket').click(function(){
2486        var typeTicket = $('#cart_ticket_type').val();
2487        removeRequiredFromInputs();
2488        $('#cart_remove_ticket').trigger( "click" );
2489        initLoader();
2490    });
2491}
2492
2493function getCartPageUrl(){
2494    return cart_page_url;
2495}
2496
2497function checkTicket(refTask){
2498    $.ajax({
2499        type: "POST",
2500        url: getCartPageUrl(),
2501        data: 'ajax=yes&checkticket=true&reftask='+refTask,
2502        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
2503        async :false,
2504        beforeSend: function(http) {
2505            http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
2506        },
2507        success: function(ret) {
2508            if (ret) {
2509                $('#f_modal').html(ret);
2510                app.handleProductsSlider();
2511            }
2512        }
2513    });
2514}
2515
2516function refreshMinCart(refTask, page, typePageSite, checkTicketApply){
2517    refTask = 'refreshmincart';
2518    page = typeof page !== 'undefined' ? page : '';
2519    var reloadPage = 'yes';
2520    checkTicketApply    = typeof checkTicketApply !== 'undefined' ? checkTicketApply : 'no';
2521    if(typePageSite == 'cart'){
2522        reloadPage = 'no';
2523    }
2524
2525    reloadCartOnePage(refTask, reloadPage, 'no', checkTicketApply);
2526}
2527
2528function emptyCart(element){
2529    bootbox.confirm(element.data('question'), function(result) {
2530        if(!result) return;
2531        $.ajax({
2532            type: "POST",
2533            url: getCartPageUrl(),
2534            data: 'ajax=yes&task=emptycart',
2535            contentType: "application/x-www-form-urlencoded;charset=UTF-8",
2536            async :false,
2537            beforeSend: function(http) {
2538                http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
2539            },
2540            success: function(ret) {
2541                if (ret) {
2542                    nbshopJS.CustomEventTrigger('deleteAllProductsFromCartOnePage');
2543                    window.location.reload();
2544                }
2545            }
2546        });
2547    });
2548}
2549
2550function emptyCartClear(){
2551    $.ajax({
2552        type: "POST",
2553        url: getCartPageUrl(),
2554        data: 'ajax=yes&task=emptycart',
2555        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
2556        async :false,
2557        beforeSend: function(http) {
2558            http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
2559        },
2560        success: function(ret) {
2561        }
2562    });
2563}
2564function refreshMinCartToggle(refTask, checkTicketApply){
2565    refTask = 'refreshmincarttoggle';
2566    checkTicketApply    = typeof checkTicketApply !== 'undefined' ? checkTicketApply : 'no';
2567    reloadCartOnePage(refTask, 'yes', 'no', checkTicketApply);
2568}
2569
2570function changeCartStep(currentStep, typeChangeStep, errorNotValidRequestMsg){
2571
2572    var cartLoader = $('.cart-loader');
2573    cartLoader.removeClass('hidden');
2574
2575    var $returnObject = {}
2576    $returnObject.flag          = false;
2577    $returnObject.currentStep   = currentStep;
2578    $returnObject.info          = errorNotValidRequestMsg;
2579
2580    $.ajax({
2581        type: "POST",
2582        url: getCartPageUrl(),
2583        data: 'ajax=yes&task=changecartstep&currentStep='+currentStep+'&typeChangeStep='+typeChangeStep,
2584        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
2585        async: false,
2586        dataType: 'json',
2587        success: function(ret) {
2588            if (ret.flag){
2589                $returnObject.flag          = true;
2590                $returnObject.info          = ret.info;
2591                $returnObject.currentStep   = ret.currentStep;
2592            }else{
2593                $returnObject.flag = false;
2594                $returnObject.info = ret.info;
2595            }
2596        }
2597    });
2598
2599    cartLoader.addClass('hidden');
2600    return $returnObject;
2601}
2602
2603function checkOrderCartAction(stepsString, currentStep, errorNotValidRequestMsg){
2604
2605    var cartLoader = $('.cart-loader');
2606    cartLoader.removeClass('hidden');
2607
2608    var $returnObject = {}
2609    $returnObject.flag          = false;
2610    $returnObject.currentStep   = currentStep;
2611    $returnObject.info          = errorNotValidRequestMsg
2612    $returnObject.arrayErrors   = [];
2613
2614    var formData    = $("#cart_onepage_form").serialize();
2615    $.ajax({
2616        type: "POST",
2617        url: getCartPageUrl(),
2618        data: formData+'&ajax=yes&steps='+stepsString+'&task=checkordercart',
2619        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
2620        dataType: 'json',
2621        async: false,
2622        success: function(ret) {
2623            if (ret.flag){
2624                $returnObject.flag          = true;
2625                $returnObject.info          = ret.info;
2626                $returnObject.currentStep   = ret.currentStep;
2627                $returnObject.arrayErrors   = ret.arrayErrors;
2628
2629
2630                if(ret.typeReloadCart != "undefined" && ret.typeReloadCart != ""){
2631                    reloadCartOnePage(ret.typeReloadCart);
2632                }
2633
2634            }else{
2635                $returnObject.flag = false;
2636                $returnObject.info = ret.info;
2637                $returnObject.arrayErrors = ret.arrayErrors;
2638            }
2639        }
2640    });
2641    cartLoader.addClass('hidden');
2642    return $returnObject;
2643};
2644
2645
2646function changeOrderAddressDataAction(){
2647    var formData    = $("#cart_onepage_form").serialize();
2648    $.ajax({
2649        type: "POST",
2650        url: getCartPageUrl(),
2651        data: formData+'&ajax=yes&task=changeorderaddressdata',
2652        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
2653        dataType: 'json',
2654        async: true,
2655        success: function(ret) {
2656            if (ret.flag){
2657
2658            }else{
2659
2660            }
2661        }
2662    });
2663};
2664
2665function setCartDataInSession(){
2666
2667    var cartLoader = $('.cart-loader');
2668    cartLoader.removeClass('hidden');
2669
2670    var $returnObject = {}
2671    $returnObject.flag          = false;
2672    $returnObject.info          = '';
2673
2674    var formData    = $("#cart_onepage_form").serialize();
2675    $.ajax({
2676        type: "POST",
2677        url: getCartPageUrl(),
2678        data: formData+'&ajax=yes&task=setcartdatainsession',
2679        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
2680        dataType: 'json',
2681        async: false,
2682        success: function(ret) {
2683            if (ret.flag){
2684                $returnObject.flag          = true;
2685                $returnObject.info          = '';
2686
2687                if(ret.typeReloadCart != "undefined" && ret.typeReloadCart != ""){
2688                    reloadCartOnePage(ret.typeReloadCart);
2689                }
2690
2691            }else{
2692                $returnObject.flag = false;
2693                $returnObject.info = '';
2694            }
2695        }
2696    });
2697
2698    cartLoader.addClass('hidden');
2699    return $returnObject;
2700};
2701
2702
2703function showCartActionPopup(htmlContent){
2704    let actionModalPopup = $('#cart_action_popup');
2705    let actionModalPopupContent = $('#cart_action_popup_content');
2706    if(actionModalPopup.length !== 0) {
2707        actionModalPopupContent.html(htmlContent);
2708        actionModalPopup.modal('show');
2709    }
2710}
2711
2712function reloadCartOnePage(refTask, reload, chackCartEmpty, checkTicketApply){
2713    refTask = typeof refTask !== 'undefined' ? refTask : 'all';
2714    reload = typeof reload !== 'undefined' ? reload : 'yes';
2715    chackCartEmpty = typeof chackCartEmpty !== 'undefined' ? chackCartEmpty : 'no';
2716    checkTicketApply    = typeof checkTicketApply !== 'undefined' ? checkTicketApply : 'no';
2717
2718    var cartLoader = $('.cart-loader');
2719    cartLoader.removeClass('hidden');
2720    var cartMessageVal;
2721    var cartMessage = $('#cart_onepage_message');
2722    var addresPersonType = -1;
2723    if($('#cart_onepage_type_person').length){
2724        addresPersonType = $('#cart_onepage_type_person').val();
2725    }
2726
2727    var reloadCartProductsSummary = -1;
2728    if($('#order_cart_products_table_summary_content').length){
2729        reloadCartProductsSummary = 1;
2730    }
2731
2732    if(cartMessage.length > 0){
2733        cartMessageVal = cartMessage.val();
2734    };
2735
2736    $.ajax({
2737        type: "POST",
2738        url: getCartPageUrl(),
2739        data: 'ajax=yes&task=reloadcartonepage&reload='+reload+'&refTask='+refTask+'&chackCartEmpty='+chackCartEmpty+'&checkTicketApply='+checkTicketApply+'&addresPersonType='+addresPersonType+'&reloadCartProductsSummary='+reloadCartProductsSummary,
2740        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
2741        async :true,
2742        dataType: 'json',
2743        beforeSend: function(http) {
2744            http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
2745        },
2746        success: function(ret) {
2747            if (ret.flag) {
2748
2749                if(typeof ret.minicartempty != 'undefined') {
2750                    reloadMiniCartHtmlBloc(ret.minicartempty.html, false);
2751                }
2752
2753                if(typeof ret.cart != 'undefined') {
2754                    reloadCartHtmlBlock(ret.cart.html);
2755                }
2756
2757                if(reloadCartProductsSummary == 1 && typeof ret.cartProductsSummary != 'undefined') {
2758                    reloadCartProductsSummaryHtmlBlock(ret.cartProductsSummary.html);
2759                }
2760
2761                if(typeof ret.minicart != 'undefined'){
2762                    var flagToggle = false;
2763                    if(refTask == 'refreshmincarttoggle'){
2764                        flagToggle = true;
2765                    }
2766
2767                    reloadMiniCartHtmlBloc(ret.minicart.html, flagToggle);
2768                }
2769
2770                if(typeof ret.ticketsAction != 'undefined') {
2771                    reloadTicketsActionHtmlBlock(ret.ticketsAction.html);
2772
2773                }
2774                
2775                // if(typeof ret.reloadCartVoucherProducts != 'undefined') {
2776                //     reloadCartVoucherProductsHtmlBlock(ret.reloadCartVoucherProducts.html);
2777                // }                
2778                
2779                if(typeof ret.reloadChosenVouchers != 'undefined') {
2780                    reloadChosenVouchersHtmlBlock(ret.reloadChosenVouchers.html);
2781                }              
2782                
2783                if(typeof ret.reloadUserInformation != 'undefined') {
2784                    reloadUserInformationHtmlBlock(ret.reloadUserInformation.html);
2785                }              
2786                
2787                if(typeof ret.reloadVoucherCarrier != 'undefined') {
2788                    reloadVoucherCarrierHtmlBlock(ret.reloadVoucherCarrier.html);
2789                }      
2790                
2791                if(typeof ret.reloadVoucherPaymentType != 'undefined') {
2792                    reloadVoucherPaymentTypeHtmlBlock(ret.reloadVoucherPaymentType.html);
2793                }     
2794                
2795                if(typeof ret.reloadCartVoucherSum != 'undefined') {
2796                    reloadCartVoucherSumHtmlBlock(ret.reloadCartVoucherSum.html);
2797                }
2798
2799                if(typeof ret.orderAddress != 'undefined') {
2800                    if(ret.orderAddress.address){
2801                        reloadOrderAddressBlock(ret.orderAddress.address);
2802                    }
2803
2804                }
2805
2806                if(typeof ret.orderTickets != 'undefined') {
2807                    reloadOrderTicketsHtmlBlock(ret.orderTickets.html);
2808                }
2809
2810                if(typeof ret.multiTicketsAction != 'undefined') {
2811                    reloadMultiTicketsHtmlBlock(ret.multiTicketsAction.html);
2812                }
2813
2814                if(typeof ret.deliveryCity != 'undefined') {
2815                    reloadDeliveryCityHtmlBlock(ret.deliveryCity.html);
2816                }
2817
2818                if(typeof ret.carriers != 'undefined') {
2819                    reloadCarriersHtmlBlock(ret.carriers.html);
2820                    nbshopJS.CustomEventTrigger('carrierHTMLreload');
2821                    initCartOnePageStoreRecive();
2822
2823                }
2824
2825                if(typeof ret.payments != 'undefined') {
2826                    reloadPaymentsHtmlBlock(ret.payments.html);
2827                }
2828
2829                if(typeof ret.total != 'undefined') {
2830                    reloadCartTotalValueBloc(ret.total);
2831                }
2832
2833                if(typeof ret.ticketActionPopup != 'undefined') {
2834                    showCartActionPopup(ret.ticketActionPopup.html)
2835                }
2836
2837                 if(typeof ret.deliveryCountry != 'undefined') {
2838                     reloadDeliveryCountryHtmlBlock(ret.deliveryCountry);
2839                 }
2840
2841            }else{
2842                if(ret.reloadPage === true){
2843                    window.location.reload();
2844                }
2845            }
2846
2847            if((refTask == 'cart_order_delete'  || refTask == 'changeAmount') && nb_type_page == 'cart') {
2848                app.handleBuyProductOnListing();
2849                app.reloadCartAfterBuy();
2850                nbshopJS.CustomEventTrigger('initCartOnePageAll');
2851            };
2852            
2853            // if((refTask == 'cart_voucher_product_delete') && nb_type_page == 'cart') {
2854            // };
2855
2856            if(refTask == 'deleteorderticket'){
2857                $('.cart-payment-wrapper.ncx-v2.cart-step').addClass('expand');
2858            }
2859
2860            toggleClassItems();
2861            //cartMessage.val(cartMessageVal);
2862            cartLoader.addClass('hidden');
2863            nbshopJS.CustomEventTrigger(refTask);
2864            nbshopJS.CustomEventTrigger('initCartOnePage', { taskName: refTask });
2865            validateClickCollectField('#cart_onepage_storeReciveId');
2866            nbshopJS.insertProductDataCookie();
2867            nbshopJS.cartGiftPopup();
2868            app.handleTooltip($('[rel=tooltip]'));
2869            nbshopJS.SizesTabsOnCart();
2870        }
2871    });
2872};
2873
2874
2875window.addEventListener('initCartOnePage', function (e) {
2876    if($('.tp-cart .ncx-mob-cart-v2').length !== 0) {
2877        nbProduct.productQuantityParentClass('.tp-cart .ncx-mob-cart-v2');
2878    }
2879});
2880
2881
2882var sameIdArray = [];
2883function toggleClassItems() {
2884    $('.cart-table-group .selected-arrtibutes-wrapper > .toggle-selected-item').click(function () {
2885        $(this).toggleClass('active');
2886        $(this).closest('tr').next('tr').toggleClass('active');
2887        var sameId = $(this).closest('tr').prev('tr').data('sameitemid');
2888        if($(this).hasClass('active')){
2889            if(jQuery.inArray(sameId, sameIdArray) == -1) {
2890                sameIdArray.push(sameId);
2891            }
2892        } else {
2893            sameIdArray = jQuery.grep(sameIdArray, function(value) {
2894                return value != sameId;
2895            });
2896        }
2897    });
2898
2899    $('.cart-table-group .selected-arrtibutes-wrapper > .title').click(function () {
2900        $(this).parent().find('.toggle-selected-item').click();
2901    });
2902
2903    $('.cart-table-group.cart-table.table > tbody > tr.item').each(function () {
2904        var item = $(this);
2905        if(jQuery.inArray($(this).data('sameitemid'), sameIdArray) != -1) {
2906            item.next('tr').find('.toggle-selected-item').click();
2907        }
2908    });
2909}
2910
2911function validateClickCollectField(name){
2912    var inputSelected = 'input[type=radio][name=carierId]';
2913    if($(name).parents('li').find(inputSelected).length === 0){
2914        return false;
2915    }
2916    if($(name).parents('li').find(inputSelected)[0].checked){
2917        $(name).data('parsley-required', 'true');
2918        $(name).prop("required", "true");
2919        $(name).attr('required');
2920        $(name).parents('li').find('li.parsley-required').show();
2921    }else{
2922        $(name).data('parsley-required', 'false');
2923        $(name).prop("required", "false");
2924        $(name).parents('li').find('li.parsley-required').hide();
2925        $(name).removeAttr('required');
2926    }
2927}
2928
2929function reloadCartHtmlBlock(cartHtml){
2930    var $orderCartContent = $('#order_cart_content');
2931    $orderCartContent.html(cartHtml);
2932    app.handleAppearing($orderCartContent.find('.appear'));
2933    if($('.donation-products-wrapper').find('.donation-products').length > 0){
2934        app.handleCheckboxRadio($('input[type="checkbox"][name="cart_onepage_donation_is_anonymously"], input[type="checkbox"][name="cart_onepage_donation_flag_want_product"], input[type="radio"][name="cart_onepage_is_donation"], input[type="radio"][name="cart_onepage_donation_productId"], input[type="radio"][name="cart_onepage_donation_articleId"], input[type="radio"][name="cart_onepage_donation_productId_model"]'));
2935        loadDataForDonationProductOrderOnePage();
2936        showAndHideElementDonation();
2937        showAndHodeGiftDescriptionModal();
2938        app.handleTooltip($('[rel=tooltip]'));
2939    }
2940}
2941
2942function reloadCartProductsSummaryHtmlBlock(cartProductsSummaryHtml){
2943    var $orderCartProductsTableSummaryContent = $('#order_cart_products_table_summary_content');
2944    $orderCartProductsTableSummaryContent.html(cartProductsSummaryHtml);
2945    app.handleAppearing($orderCartProductsTableSummaryContent.find('.appear'));
2946}
2947
2948function reloadMiniCartHtmlBloc(minicartHtml, flagToggle){
2949    $('.miniCartContent').html(minicartHtml);
2950    $('#sidebar-minicart-content').html($('#sidebar-minicard-prepare-content-for-sidebar').html());
2951    $('#sidebar-minicard-prepare-content-for-sidebar').html('');
2952    flagToggle = typeof flagToggle !== 'undefined' ? flagToggle : false;
2953    var miniCartDlayTime;
2954
2955    if(typeof disableMiniCartOpening !== "undefined" && disableMiniCartOpening) {
2956        return;
2957    }
2958
2959    if(!$('#miniCartContent .mini-cart').hasClass('mini-cart-side')){
2960        var d = $('.header-cart-item .items-wrapper');
2961        d.scrollTop(d.prop("scrollHeight"));
2962        if(flagToggle){
2963            clearTimeout(miniCartDlayTime);
2964            miniCartDlayTime = window.setTimeout(function(){
2965                $('.header-cart-toggle').removeClass('invisible');
2966                $('.header-cart-toggle').addClass('slideEffect');
2967                $('.header-carthor-total').addClass('addedItem');
2968            }, 1500);
2969            setTimeout(function(){
2970                $('.header-cart-toggle').removeClass('slideEffect');
2971                $('.header-cart-toggle').addClass('invisible');
2972                $('.header-carthor-total').removeClass('addedItem');
2973            }, 5000);
2974        }
2975    }
2976    app.miniCartSider();
2977    app.handleHeaderCart();
2978    nbshopJS.mobileSideCartDinamicHeight();
2979    nbshopJS.modalAfterAddToCartProducts();
2980    nbshopJS.successAddToCartBtn();
2981}
2982
2983function reloadTicketsActionHtmlBlock(ticketsActionHtml){
2984    var $orderTicketsActionContent = $('#order_ticket_content');
2985    $orderTicketsActionContent.html(ticketsActionHtml);
2986    app.handleAppearing($orderTicketsActionContent.find('.appear'));
2987    initChangeTabTicket();
2988    initInsertTicket();
2989    initRemoveTicket();
2990    app.handleForms().cart(false);
2991    nbshopJS.loginPopupToDoprdown();
2992}
2993
2994// function reloadCartVoucherProductsHtmlBlock(cartVoucherProductsHtml){
2995//     var $cartVoucherProductsHtmlNew = $('#cart-voucher-data-form-wrapper');
2996//     if($cartVoucherProductsHtmlNew.length > 0) {
2997//         $cartVoucherProductsHtmlNew.html(cartVoucherProductsHtml);
2998//     } 
2999//   
3000//     // app.handleAppearing($orderTicketsContent.find('.appear'));
3001// }
3002
3003function reloadChosenVouchersHtmlBlock(cartVoucherProductsHtml){
3004    var $cartVoucherProductsHtmlNew = $('#cart-voucher-chosen-vouchers-form-wrapper');
3005    if($cartVoucherProductsHtmlNew.length > 0) {
3006        $cartVoucherProductsHtmlNew.html(cartVoucherProductsHtml);
3007    }
3008    // app.handleAppearing($orderTicketsContent.find('.appear'));
3009}
3010
3011function reloadUserInformationHtmlBlock(cartVoucherProductsHtml){
3012    var $cartVoucherProductsHtmlNew = $('#cart-voucher-user-information-form-wrapper');
3013    if($cartVoucherProductsHtmlNew.length > 0) {
3014        $cartVoucherProductsHtmlNew.html(cartVoucherProductsHtml);
3015        handleEgiftUserInfo();
3016    }
3017    // app.handleAppearing($orderTicketsContent.find('.appear'));
3018}
3019
3020function reloadVoucherCarrierHtmlBlock(cartVoucherProductsHtml){
3021    var $cartVoucherProductsHtmlNew = $('#cart-voucher-carrier-form-wrapper');
3022    if($cartVoucherProductsHtmlNew.length > 0) {
3023        $cartVoucherProductsHtmlNew.html(cartVoucherProductsHtml);
3024
3025        if(typeof handleAfterAddToCart == "function") {
3026            handleAfterAddToCart();
3027            rememberVoucher();
3028
3029            let chosenVouchersBlock = $("#cart-voucher-user-information-form-wrapper");
3030
3031            if(typeof chosenVouchersBlock !== "undefined" && chosenVouchersBlock.length > 0) {
3032                $('html, body').animate({
3033                    scrollTop: chosenVouchersBlock.offset().top - 200
3034                }, 800);
3035            }
3036
3037        }
3038    }
3039    // app.handleAppearing($orderTicketsContent.find('.appear'));
3040}
3041
3042function reloadVoucherPaymentTypeHtmlBlock(cartVoucherProductsHtml){
3043    var $cartVoucherProductsHtmlNew = $('#cart-voucher-payment-form-wrapper');
3044    if($cartVoucherProductsHtmlNew.length > 0) {
3045        $cartVoucherProductsHtmlNew.html(cartVoucherProductsHtml);
3046
3047        if(typeof app !== "undefined") {
3048            app.handleCheckboxRadio($('#cart_onepage_form input[type="radio"]'));
3049        } else {
3050            nbshopJS.handleCheckboxRadio($('#cart_onepage_form input[type="radio"]'));
3051        }
3052    }
3053    // app.handleAppearing($orderTicketsContent.find('.appear'));
3054}
3055
3056function reloadCartVoucherSumHtmlBlock(cartVoucherProductsHtml){
3057    var $cartVoucherProductsHtmlNew = $('#cart-voucher-sum-table-form-wrapper');
3058    if($cartVoucherProductsHtmlNew.length > 0) {
3059        $cartVoucherProductsHtmlNew.html(cartVoucherProductsHtml);
3060    }
3061    // app.handleAppearing($orderTicketsContent.find('.appear'));
3062
3063    if(typeof app !== "undefined") {
3064        app.handleCheckboxRadio($('#cart_onepage_form input[type="checkbox"]'));
3065    } else {
3066        nbshopJS.handleCheckboxRadio($('#cart_onepage_form input[type="checkbox"]'));
3067    }
3068}
3069
3070function reloadTicketsActionLoyalityHtmlBlock(){
3071    var typeAction = $('#cart_ticket_type').val();
3072    var ticketsActionLoyalityContent = $('.'+typeAction+'.ticketsActionLoyalityContent');
3073
3074    if(ticketsActionLoyalityContent.length > 0){
3075        var cartLoader = $('.cart-loader');
3076        cartLoader.removeClass('hidden');
3077        var nameFile            = ticketsActionLoyalityContent.data('file-name');
3078        var pathFile            = ticketsActionLoyalityContent.data('path-file');
3079        var uniquenameObject    = ticketsActionLoyalityContent.data('uniquename-object');
3080        $.ajax({
3081            type: "POST",
3082            url: getCartPageUrl(),
3083            data: 'ajax=yes&task=reloadticketsdescriptioncontent&nameFile='+nameFile+'&pathFile='+pathFile+'&uniquenameObject='+uniquenameObject,
3084            contentType: "application/x-www-form-urlencoded;charset=UTF-8",
3085            async :true,
3086            dataType: 'json',
3087            beforeSend: function(http) {
3088                http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
3089                http.setRequestHeader("Connection", "close");
3090            },
3091            success: function(ret) {
3092                if(ret.flag){
3093                    ticketsActionLoyalityContent.html(ret.html);
3094                    app.handleAppearing(ticketsActionLoyalityContent.find('.appear'));
3095                    actionTicketAddInCart(typeAction, $('.loyaltyItem'));
3096                    nbshopJS.CustomEventTrigger('reloadTicketsActionLoyalityHtmlBlock');
3097                }
3098                cartLoader.addClass('hidden');
3099            }
3100        });
3101    }
3102};
3103
3104function actionTicketAddInCart(typeloyalty, $elements){
3105    $elements.click(function(e){
3106        var $favIcon = $(this);
3107        e.preventDefault();
3108        e.stopPropagation();
3109        var value = $favIcon.data('loyalty-value');
3110        $favIcon.addClass('pulse');
3111        $('#ticket_id').val(value);
3112        $('#cart_ticket_type').val(typeloyalty);
3113        $('#cart_insert_ticket').trigger( "click" );
3114    });
3115}
3116
3117function reloadOrderAddressBlock(orderAddress){
3118
3119    if(orderAddress){
3120
3121        if(!orderAddress.changeAllData){
3122
3123            if($('#cart_onepage_city').length > 0 && orderAddress.city != ""){
3124                $('#cart_onepage_city').val(orderAddress.city);
3125            }
3126
3127            if($('#cart_onepage_city_id').length > 0 && orderAddress.cityId > 0){
3128                $('#cart_onepage_city_id').val(orderAddress.cityId);
3129            }
3130
3131            if($('#cart_onepage_postcode').length > 0){
3132                $('#cart_onepage_postcode').val(orderAddress.postcode);
3133            }
3134
3135            if($('#cart_onepage_street').length > 0 && typeof orderAddress.street !== "undefined" && orderAddress.street != ""){
3136                $('#cart_onepage_street').val(orderAddress.street);
3137            }
3138
3139            if($('#cart_onepage_street_no').length > 0 && typeof orderAddress.street_no !== "undefined" && orderAddress.street_no != ""){
3140                $('#cart_onepage_street_no').val(orderAddress.street_no);
3141            }
3142
3143        }else{
3144
3145            if(orderAddress.userAddressId < 1){
3146                orderAddress.userAddressId = "";
3147            }
3148
3149            $('#cart_onepage_new_address_list_id').val(orderAddress.userAddressId);
3150            $('#cart_onepage_firstname').val(orderAddress.firstname);
3151            $('#cart_onepage_lastname').val(orderAddress.lastname);
3152
3153            if(orderAddress.flagUserCompanyNameAndShortnameMerged){
3154                if($('#cart_onepage_company_name').length > 0){
3155                    $('#cart_onepage_company_name').val(orderAddress.firstname);
3156                }
3157            }else{
3158                if($('#cart_onepage_company_name').length > 0){
3159                    $('#cart_onepage_company_name').val(orderAddress.lastname);
3160                }
3161
3162                if($('#cart_onepage_company_shortname').length > 0){
3163                    $('#cart_onepage_company_shortname').val(orderAddress.firstname);
3164                }
3165            }
3166
3167            $('#cart_onepage_email').val(orderAddress.email);
3168            $('#cart_onepage_phone').val(orderAddress.phone);
3169
3170            if($('#cart_onepage_company_pib').length > 0){
3171                $('#cart_onepage_company_pib').val(orderAddress.personalNumber);
3172            }
3173
3174            if($('#cart_onepage_company_id_number').length > 0){
3175                $('#cart_onepage_company_id_number').val(orderAddress.idNumber);
3176            }
3177
3178            if($('#cart_onepage_chief_executive_officer').length > 0){
3179                $('#cart_onepage_chief_executive_officer').val(orderAddress.chiefExecutiveOfficer);
3180            }
3181
3182            if($('#cart_onepage_street').length > 0){
3183                $('#cart_onepage_street').val(orderAddress.street);
3184            }
3185
3186            if($('#cart_onepage_street_id').length > 0){
3187                $('#cart_onepage_street_id').val(orderAddress.streetId);
3188            }
3189
3190            if($('#cart_onepage_street_no').length > 0){
3191                $('#cart_onepage_street_no').val(orderAddress.street_no);
3192            }
3193
3194            if($('#cart_onepage_city').length > 0){
3195                $('#cart_onepage_city').val(orderAddress.city);
3196            }
3197
3198            if($('#cart_onepage_city_id').length > 0){
3199                $('#cart_onepage_city_id').val(orderAddress.cityId);
3200            }
3201
3202            if($('#cart_onepage_postcode').length > 0){
3203                $('#cart_onepage_postcode').val(orderAddress.postcode);
3204            }
3205
3206            if($('#cart_onepage_region').length > 0){
3207                $('#cart_onepage_region').val(orderAddress.region);
3208            }
3209
3210            if($('#cart_onepage_region_id').length > 0){
3211                $('#cart_onepage_region_id').val(orderAddress.regionId);
3212            }
3213
3214            if(orderAddress.isChangeCountryGeo != 'undefined'){
3215                if(orderAddress.isChangeCountryGeo){
3216                    if($('#cart_onepage_country_geo').length > 0){
3217                        $('#cart_onepage_country_geo').val(orderAddress.countryGeo);
3218                    }
3219
3220                    if($('#cart_onepage_country_geo_id').length > 0){
3221                        $('#cart_onepage_country_geo_id').val(orderAddress.countryGeoId);
3222                    }
3223                }
3224            }
3225
3226            if($('#cart_onepage_date_birthday').length > 0){
3227                $('#cart_onepage_date_birthday').val(orderAddress.dateBirthday);
3228            }
3229
3230            if($('#cart_onepage_daybirth').length > 0){
3231                $('#cart_onepage_daybirth').val(orderAddress.dayBirth);
3232            }
3233
3234            if($('#cart_onepage_monthbirth').length > 0){
3235                $('#cart_onepage_monthbirth').val(orderAddress.monthBirth);
3236            }
3237
3238            if($('#cart_onepage_yearbirth').length > 0){
3239                $('#cart_onepage_yearbirth').val(orderAddress.yearBirth);
3240            }
3241        }
3242    }
3243}
3244
3245function reloadDeliveryCountryHtmlBlock(deliveryCountry){
3246    let cartOnepageDeliveryCountryGeo = $("#cart_onepage_delivery_country_geo");
3247    if(deliveryCountry != 'undefined' && deliveryCountry.deliveryCountryGeoId != 'undefined'){
3248        if(cartOnepageDeliveryCountryGeo.length > 0){
3249            let beforeDeliveryCountryGeoId =  cartOnepageDeliveryCountryGeo.val();
3250
3251            if(beforeDeliveryCountryGeoId != deliveryCountry.deliveryCountryGeoId){
3252            cartOnepageDeliveryCountryGeo.val(deliveryCountry.deliveryCountryGeoId);
3253                $("#cart_onepage_delivery_country_geo").trigger("change");
3254                localStorage.setItem('scrollToCountryGeoId', 'true');
3255            }
3256        }
3257    }
3258}
3259
3260function reloadOrderTicketsHtmlBlock(ticketsActionHtml){
3261    var $orderTicketsContent = $('#order_order_tickets_content');
3262
3263    var $orderTicketsContentNew = $('.gift-card-payment-wrapper');
3264    if($orderTicketsContentNew.length > 0) {
3265        $orderTicketsContentNew.html(ticketsActionHtml);
3266    } else {
3267        $orderTicketsContent.html(ticketsActionHtml);
3268    }
3269
3270    app.handleAppearing($orderTicketsContent.find('.appear'));
3271}
3272
3273function reloadMultiTicketsHtmlBlock(multiticketsActionHtml){
3274    var $multiTicketsContent = $('#multi-ticket-contetnt');
3275    $multiTicketsContent.html(multiticketsActionHtml);
3276    app.handleAppearing($multiTicketsContent.find('.appear'));
3277}
3278
3279function reloadDeliveryCityHtmlBlock(deliveryCityActionHtml){
3280    var $deliveryCityContent = $('#order_delivery_city_content');
3281    $deliveryCityContent.html(deliveryCityActionHtml);
3282
3283    $('#order_delivery_city_content #cart_onepage_block_delivery_city_id').change(function(){
3284        var blockDeliveryCityId = $(this).val();
3285        cartChangeDeliveryCityOnePage(blockDeliveryCityId);
3286    });
3287};
3288
3289function reloadCarriersHtmlBlock(carriersActionHtml){
3290    var $carrierContent = $('#cart-carrier-content');
3291
3292    $carrierContent.html(carriersActionHtml);
3293    //za dexy - revrajtovan blok
3294
3295    app.handleCheckboxRadio($('input[type="radio"][name="carierId"]'));
3296
3297    app.handleForms().cart(false);
3298
3299    $('.cartonepage_carierId').on('ifChecked', function(event){
3300
3301        var carrierId = $(this).val();
3302        var deliveryTime = -1;
3303
3304        if($('#carierId_fastDelivery_'+carrierId).length > 0){
3305            if($('#carierId_fastDelivery_'+carrierId).is(':checked')){
3306                deliveryTime = 1;
3307                $('#cart_onepage_deliveryTime_'+carrierId).val(deliveryTime);
3308            }else{
3309                deliveryTime = -1;
3310                $('#cart_onepage_deliveryTime_'+carrierId).val(deliveryTime);
3311            }
3312        }
3313        cartChangeCarrierOnePage(carrierId, deliveryTime, checkDataOnFormAddressForCarrier());
3314        //calculateValueOrderOnePage(); //todo novo pod kometar
3315        if($('#cart_onepage_storeReciveId').length > 0){
3316            $('#cart_onepage_storeReciveId').val($("#cart_onepage_storeReciveId option:first").val());
3317        }
3318    });
3319}
3320
3321function reloadPaymentsHtmlBlock(paymentsActionHtml){
3322    var $paymentContent = $('#cart-payment-content');
3323    $paymentContent.html(paymentsActionHtml);
3324    //za dexy revrajtovan stari blok /**/
3325
3326    app.handleCheckboxRadio($('input[type="radio"][name="typepayment"]'));//todo postavljena inicijalizacija posto se menja HTML/**/
3327    app.handleCheckboxRadio($('input[type="checkbox"][id^="cart_onepage_installments_"]'));
3328
3329    app.handleForms().cart(false);
3330    $('.cartonepage_typepayment').on('ifChecked', function(event){
3331        cartChangePaymentTypeOnePage($(this).val());
3332
3333        //calculateValueOrderOnePage(); //todo stavljeno pod komentar
3334    });
3335    //
3336    //app.handleAppearing($orderTicketsContent.find('.appear'));
3337}
3338
3339//todo reload total cart value
3340function reloadCartTotalValueBloc(total){
3341    $('#onepage-price-total-cart').html(total.formattedTotalCartPriceListProducts);
3342    $('#onepage-product-carrier-text').html(total.formattedTotalCarrierText);
3343    $('#onepage-product-price-value').html(total.formattedTotalValue);
3344    $('#onepage-basic-price-total-cart').html(total.formattedtotalCartPriceBasic);
3345
3346    $('#onepage-product-cart-montage-price').html(total.formattedTotalCartMontagePrice);
3347
3348    if($('.cart-table-summary').find('.content-onepage-saving-price-total-cart').length > 0){
3349        if(total.flagCartSavingPrice){
3350            if($('.cart-table-summary .content-onepage-saving-price-total-cart').hasClass("hidden")){
3351                $('.cart-table-summary .content-onepage-saving-price-total-cart').removeClass('hidden');
3352            }
3353        }else{
3354            if(!$('.cart-table-summary .content-onepage-saving-price-total-cart').hasClass("hidden")){
3355                $('.cart-table-summary .content-onepage-saving-price-total-cart').addClass('hidden');
3356            }
3357        }
3358    }
3359
3360    if($('#onepage-total-cart-sale-price-with-tax').length > 0){
3361        if(total.formattedTotalCartSalePriceWithTax){
3362            $('#onepage-total-cart-sale-price-with-tax').html(total.formattedTotalCartSalePriceWithTax);
3363        }
3364    }
3365
3366    if($('.cart-table-summary').find('.cart-voucher-total').length > 0){
3367        if(parseInt(total.formattedTicketTotalValue) != 0){
3368            if($('.cart-table-summary').find('.cart-voucher-total').hasClass("hidden")){
3369                $('.cart-table-summary').find('.cart-voucher-total').removeClass('hidden');
3370            }
3371        }else{
3372            if(!$('.cart-table-summary').find('.cart-voucher-total').hasClass("hidden")){
3373                $('.cart-table-summary').find('.cart-voucher-total').addClass('hidden');
3374            }
3375        }
3376        $('#onepage-product-voucher-text').html(total.formattedTicketTotalValue);
3377    }
3378
3379    if($('#contentTotalSumServicesHtml').length){
3380        if(total.formattedTotalServicesSumCartHtml != ''){
3381            $('#contentTotalSumServicesHtml').parent('.contentTotalSumServices').removeClass('hidden');
3382        }else{
3383            $('#contentTotalSumServicesHtml').parent('.contentTotalSumServices').addClass('hidden');
3384        }
3385        $('#contentTotalSumServicesHtml').html(total.formattedTotalServicesSumCartHtml);
3386    }
3387
3388    $('#onepage-saving-price-total-cart').html(total.formattedTotalCartSavingPrice);
3389    $('#onepage-saving-sale-price-total-cart').html(total.formattedTotalCartSavingSalePrice);
3390    $('#onepage-product-price-no-tax-value').html(total.formattedTotalValueNoTax);
3391    $('#onepage-product-price-sale-value').html(total.formattedtotalCartSalePrice);
3392    $('#onepage-product-tax-value').html(total.formattedTotalTaxValue);
3393    $('#onepage-price-total-advance').html(total.formattedTotalAdvancePayment);
3394    $('#onepage-price-rest-advance').html(total.formattedRestAdvancePayment);
3395
3396    if($(".voucher-payment_total").length) {
3397        if(total.flagOrderTicketPayment) {
3398            $("#onepage-product-voucher-text").html(total.formattedTicketTotalValue);
3399            $(".voucher-payment_total").removeClass('hidden');
3400        }else {
3401            $("#onepage-product-voucher-text").html('');
3402            if(!$(".voucher-payment_total").hasClass("hidden")) {
3403                $(".voucher-payment_total").addClass('hidden');
3404            }
3405        }
3406    }
3407
3408    if(total.flagAdvancePayment){
3409        $('.advance-payment-wrapper').each(function (){
3410            $(this).removeClass('hidden');
3411            $('.cart-summary .product-item-prices').each(function (){
3412                $(this).removeClass('cart-total')
3413            });
3414            $('.advance-payment-wrapper.cart-summary .product-item-prices').addClass('cart-total');
3415        });
3416    } else {
3417        $('.advance-payment-wrapper').each(function (){
3418            $('.cart-summary .product-item-prices').each(function (){
3419                $(this).addClass('cart-total')
3420            });
3421            $('.advance-payment-wrapper.cart-summary .product-item-prices').removeClass('cart-total');
3422            $(this).addClass('hidden');
3423        });
3424    }
3425}
3426
3427
3428function calculateValueOrderOnePage(){
3429    var formData    = $("#cart_onepage_form").serialize();
3430    $.ajax({
3431        type: "POST",
3432        url: getCartPageUrl(),
3433        data: formData+'&ajax=yes&task=calculatetotalprice&test=test',
3434        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
3435        dataType: 'json',
3436        async: true,
3437        success: function(ret) {
3438            if (ret.flag){
3439                $('#onepage-price-total-cart').text(ret.totalCartPrice);
3440                $('#onepage-product-carrier-text').text(ret.totalCarrierText);
3441                $('#onepage-product-price-value').text(ret.totalValue);
3442                if($('.cart-table-summary').find('.content-onepage-saving-price-total-cart').length > 0){
3443                    if(ret.flagCartSavingPrice){
3444                        if($('.cart-table-summary .content-onepage-saving-price-total-cart').hasClass("hidden")){
3445                            $('.cart-table-summary .content-onepage-saving-price-total-cart').removeClass('hidden');
3446                        }
3447                    }else{
3448                        if(!$('.cart-table-summary .content-onepage-saving-price-total-cart').hasClass("hidden")){
3449                            $('.cart-table-summary .content-onepage-saving-price-total-cart').addClass('hidden');
3450                        }
3451                    }
3452                }
3453
3454                if($('#onepage-total-cart-sale-price-with-tax').length > 0){
3455                    if(ret.formattedTotalCartSalePriceWithTax){
3456                        $('#onepage-total-cart-sale-price-with-tax').html(ret.formattedTotalCartSalePriceWithTax);
3457                    }
3458                }
3459
3460                $('#onepage-saving-price-total-cart').text(ret.totalCartSavingPrice);
3461                $('#onepage-product-price-no-tax-value').text(ret.totalValueNoTax);
3462                $('#onepage-product-tax-value').text(ret.totalTaxValue);
3463            }else{
3464                $('#content-value-total-onepage').hide();
3465            }
3466        }
3467    });
3468};
3469
3470function cartChangeTicketType(tycketType){
3471    var cartLoader = $('.cart-loader');
3472    cartLoader.removeClass('hidden');
3473    $.ajax({
3474        type: "POST",
3475        url: getCartPageUrl(),
3476        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
3477        data: 'ajax=yes&task=changetyckettype&tyckettype='+tycketType,
3478        async: true,
3479        dataType: 'json',
3480        beforeSend: function(http) {
3481            http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
3482        },
3483        success: function(ret) {
3484            if (ret.flag) {
3485                reloadCartOnePage('changetyckettype');//todo novo
3486                $('#ticket_type').val(tycketType);
3487            } else {
3488                toastr.error(ret.info);
3489                cartLoader.addClass('hidden');
3490            }
3491        }
3492    });
3493};
3494
3495
3496function cartChangeDonationFlagWantProduct(){
3497    var cartLoader = $('.cart-loader');
3498    cartLoader.removeClass('hidden');
3499
3500    var donationFlagWantProduct = 1;
3501    if(!$('#cart_onepage_donation_flag_want_product').is(':checked')){
3502        donationFlagWantProduct = -1;
3503    }
3504
3505    $.ajax({
3506        type: "POST",
3507        url: getCartPageUrl(),
3508        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
3509        data: 'ajax=yes&task=changedonationflagwantproduct&donationFlagWantProduct='+donationFlagWantProduct,
3510        async: true,
3511        dataType: 'json',
3512        beforeSend: function(http) {
3513            http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
3514        },
3515        success: function(ret) {
3516            if (ret.flag) {
3517                 reloadCartOnePage('donationflagwantproduct');//todo novo
3518                //calculateValueOrderOnePage();
3519                cartLoader.addClass('hidden');
3520                ///app.handleCheckboxRadio($('input[type="checkbox"][name="cart_onepage_donation_flag_want_product"]'));
3521
3522                //$('#ticket_type').val(tycketType);
3523            } else {
3524                toastr.error(ret.info);
3525                cartLoader.addClass('hidden');
3526            }
3527        }
3528    });
3529};
3530
3531
3532function cartChangeDonationProductAndCombinationId(productId, combinationId){
3533    var cartLoader = $('.cart-loader');
3534    cartLoader.removeClass('hidden');
3535
3536    $.ajax({
3537        type: "POST",
3538        url: getCartPageUrl(),
3539        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
3540        data: 'ajax=yes&task=changedonationproductidandcombinationId&productId='+productId+'&combinationId='+combinationId,
3541        async: true,
3542        dataType: 'json',
3543        beforeSend: function(http) {
3544            http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
3545        },
3546        success: function(ret) {
3547            if (ret.flag) {
3548                $('#cart_onepage_donation_productId').val(productId);
3549                $('#cart_onepage_donation_combinationId').val(combinationId);
3550                //calculateValueOrderOnePage();
3551                reloadCartOnePage('donationflagwantproduct');
3552                cartLoader.addClass('hidden');
3553
3554            } else {
3555                toastr.error(ret.info);
3556                cartLoader.addClass('hidden');
3557            }
3558        }
3559    });
3560};
3561
3562function addAddadditionalTicket(){
3563    var cartLoader = $('.cart-loader');
3564    cartLoader.removeClass('hidden');
3565    var additionalTicketNumber  = $("#additional_ticket").val();
3566    var additionalTicketType    = $("#additional_ticket_type").val();
3567    $.ajax({
3568        type: "POST",
3569        url: getCartPageUrl(),
3570        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
3571        data: 'ajax=yes&task=addadditionalticket&additionalticketnumber='+additionalTicketNumber+'&additionaltickettype='+additionalTicketType,
3572        async: true,
3573        dataType: 'json',
3574        beforeSend: function(http) {
3575            http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
3576        },
3577        success: function(ret) {
3578            if (ret.flag){
3579                reloadCartOnePage('addaddadditionalticket');
3580                $("#cart_remove_additional_ticket").removeClass('hidden');
3581                $("#cart_insert_additional_ticket").addClass('hidden');
3582            } else {
3583                toastr.error(ret.info);
3584                cartLoader.addClass('hidden');
3585            }
3586        }
3587    });
3588};
3589
3590function removeAddadditionalTicket(){
3591    var cartLoader = $('.cart-loader');
3592    cartLoader.removeClass('hidden');
3593    var additionalTicketNumber  = $("#additional_ticket").val();
3594    var additionalTicketType    = $("#additional_ticket_type").val();
3595
3596    $.ajax({
3597        type: "POST",
3598        url: getCartPageUrl(),
3599        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
3600        data: 'ajax=yes&task=removeadditionalticket&additionalticketnumber='+additionalTicketNumber+'&additionaltickettype='+additionalTicketType,
3601        async: true,
3602        dataType: 'json',
3603        beforeSend: function(http) {
3604            http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
3605        },
3606        success: function(ret) {
3607            if (ret.flag){
3608                reloadCartOnePage('addaddadditionalticket');
3609                $("#additional_ticket").val('');
3610                $("#cart_remove_additional_ticket").addClass('hidden');
3611                $("#cart_insert_additional_ticket").removeClass('hidden');
3612            } else {
3613                toastr.error(ret.info);
3614                cartLoader.addClass('hidden');
3615            }
3616        }
3617    });
3618};
3619
3620function changeMultiTypeTicket(thisElement){
3621
3622    var cartLoader = $('.cart-loader');
3623    cartLoader.removeClass('hidden');
3624
3625    var multiTicketType = thisElement.val();
3626
3627    $.ajax({
3628        type: "POST",
3629        url: getCartPageUrl(),
3630        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
3631        data: 'ajax=yes&task=changemultitypeticket&multitickettype='+multiTicketType,
3632        async: true,
3633        dataType: 'json',
3634        beforeSend: function(http) {
3635            http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
3636        },
3637        success: function(ret){
3638            if (ret.flag){
3639
3640                $("#multi_ticket_desription_content").html(ret.html);
3641                if(ret.multiLoyalty){
3642
3643                }
3644                cartLoader.addClass('hidden');
3645            } else {
3646                toastr.error(ret.info);
3647                cartLoader.addClass('hidden');
3648            }
3649        }
3650    });
3651};
3652
3653function addMultiTicket(){
3654    var cartLoader = $('.cart-loader');
3655    cartLoader.removeClass('hidden');
3656    var multiTicketNumber  = $("#multi_ticket_number").val();
3657    var multiTicketType    = $("#multi_ticket_type").val();
3658    $.ajax({
3659        type: "POST",
3660        url: getCartPageUrl(),
3661        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
3662        data: 'ajax=yes&task=multiticket&multiticketnumber='+multiTicketNumber+'&multitickettype='+multiTicketType,
3663        async: true,
3664        dataType: 'json',
3665        beforeSend: function(http) {
3666            http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
3667        },
3668        success: function(ret) {
3669            if (ret.flag){
3670                $("#multi_ticket_type").val('');
3671                $("#multi_ticket_number").val('');
3672                reloadCartOnePage('multiticket');
3673            } else {
3674                toastr.error(ret.info);
3675                cartLoader.addClass('hidden');
3676            }
3677        }
3678    });
3679};
3680
3681function deleteMultiTickets(multiTicketType, multiTicketNumber,textQuestion){
3682    bootbox.confirm(textQuestion, function(result) {
3683        if(!result){
3684            return;
3685        }
3686        $.ajax({
3687            type: "POST",
3688            url: getCartPageUrl(),
3689            data: {
3690                ajax : "yes",
3691                task : "deletemultiticket",
3692                multiTicketType: multiTicketType,
3693                multiTicketNumber: multiTicketNumber
3694            },
3695            contentType: "application/x-www-form-urlencoded;charset=UTF-8",
3696            dataType: 'json',
3697            success: function(ret){
3698                if (ret.flag){
3699                    reloadCartOnePage('multiticket');
3700                    //getOrderTickets();
3701                }else{
3702                    toastr.error(ret.info);
3703                }
3704            }
3705        });
3706    });
3707}
3708
3709function checkDataOnFormAddressForCarrier() {
3710    $flagCheck = -1;
3711    var onepageRegion = '';
3712    var onepageCity = '';
3713    var onepageStreet = '';
3714    var onepagePostcode = '';
3715
3716    if ($('#cart_onepage_region').length) {
3717        onepageRegion = $('#cart_onepage_region').val();
3718        if (onepageRegion != '') {
3719            $flagCheck = 1;
3720        }
3721    } else {
3722        onepageRegion = $('#cart_onepage_region_id').val();
3723        if (onepageRegion > 0) {
3724            $flagCheck = 1;
3725        }
3726    }
3727
3728    if ($('#cart_onepage_city').length) {
3729        onepageCity = $('#cart_onepage_city').val();
3730        if (onepageCity != '') {
3731            $flagCheck = 1;
3732        }
3733    } else {
3734        onepageCity = $('#cart_onepage_city_id').val();
3735        if (onepageCity > 0) {
3736            $flagCheck = 1;
3737        }
3738    }
3739
3740    if ($('#cart_onepage_street').length) {
3741        onepageStreet = $('#cart_onepage_street').val();
3742        if (onepageStreet != '') {
3743            $flagCheck = 1;
3744        }
3745    } else {
3746        onepageStreet = $('#cart_onepage_street_id').val();
3747        if (onepageStreet > 0) {
3748            $flagCheck = 1;
3749        }
3750    }
3751
3752    onepagePostcode = $('#cart_onepage_postcode').val();
3753    if (onepagePostcode != '') {
3754        $flagCheck = 1;
3755    }
3756
3757    return $flagCheck;
3758}
3759
3760function cartChangeCarrierOnePage(carrierId, deliveryTime , checkCodeBookAddress){
3761
3762    $.ajax({
3763        type: "POST",
3764        url: getCartPageUrl(),
3765        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
3766        data: 'ajax=yes&task=changecarrier&carrierId='+carrierId+'&deliveryTime='+deliveryTime+'&checkCodeBookAddress='+checkCodeBookAddress,
3767        async: true,
3768        dataType: 'json',
3769        beforeSend: function(http) {
3770            http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
3771        },
3772        success: function(ret) {
3773            if (ret.flag) {
3774
3775                //skrivanje i prikazivanje polja na formi
3776                controlAddressFieldsForCarrier(ret.carrierConfigAddress);
3777
3778                if (ret.resetCodebookData){
3779                    resetCodebookFieldsData();
3780                }
3781
3782                if(ret.showNoteForCarrier == 1 && ret.oldCarrierId > 0){
3783                    $('#cart_onepage_message_'+ret.oldCarrierId).val(ret.messageForCarrier);
3784                }
3785
3786                reloadCartOnePage('changecarrier');
3787                nbshopJS.CustomEventTrigger('ChangeCarrierEvent', { carrierId: carrierId });
3788                // if($('.donation-products-wrapper').find('.donation-products').length > 0){
3789                //     app.handleCheckboxRadio($('input[type="checkbox"][name="cart_onepage_donation_is_anonymously"], input[type="checkbox"][name="cart_onepage_donation_flag_want_product"], input[type="radio"][name="cart_onepage_is_donation"], input[type="radio"][name="cart_onepage_donation_productId"], input[type="radio"][name="cart_onepage_donation_articleId"]'));
3790                //     loadDataForDonationProductOrderOnePage();
3791                //     showAndHideElementDonation();
3792                //     showAndHodeGiftDescriptionModal();
3793                // }
3794                //calculateValueOrderOnePage();
3795                if(ret.additionalinfo != ''){
3796                    toastr.info(ret.additionalinfo);
3797                }
3798            } else if(ret.flagInsertNewAddress){
3799                var $cartCarrierAddressChangeModal = $('#cart_carrier_address_change_modal');
3800                $cartCarrierAddressChangeModal.modal('show');
3801                loadCarrierAddressFieldsOnePage(ret.newCarrierId);
3802            }else {
3803                toastr.error(ret.info);
3804            }
3805        }
3806    });
3807}
3808
3809function resetCodebookFieldsData(){
3810    $('#cart_onepage_region_ex_code').val('');
3811    $('#cart_onepage_region_id').val('');
3812    $('#cart_onepage_region_codebook_id').val('');
3813
3814    $('#cart_onepage_city_ex_code').val('');
3815    $('#cart_onepage_city_codebook_id').val('');
3816    $('#cart_onepage_city_id').val('');
3817
3818    $('#cart_onepage_street_ex_code').val('');
3819    $('#cart_onepage_street_id').val('');
3820    $('#cart_onepage_street_codebook_id').val('');
3821
3822    $('#cart_onepage_postcode').val('');
3823}
3824
3825function cartChangeCarrierOnePageOnForm(carrierId){
3826
3827    var formData  = $('#cart_carrier_address_change').serialize();
3828
3829    $.ajax({
3830        type: "POST",
3831        url: getCartPageUrl(),
3832        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
3833        data: formData+'&ajax=yes&task=changecarrierandaddress',
3834        async: true,
3835        dataType: 'json',
3836        beforeSend: function(http) {
3837            http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
3838        },
3839        success: function(ret) {
3840            if (ret.flag) {
3841
3842                controlAddressFieldsForCarrier(ret.carrierConfigAddress);
3843
3844                reloadCartOnePage('changeAmount');
3845
3846                if(ret.additionalinfo != ''){
3847                    toastr.info(ret.additionalinfo);
3848                }
3849
3850                $('#cart_onepage_region').val(ret.newAddress.region);
3851                $('#cart_onepage_region_id').val(ret.newAddress.regionId);
3852                $('#cart_onepage_region_ex_code').val(ret.newAddress.regionExCode);
3853                $('#cart_onepage_region_codebook_id').val(ret.newAddress.regionCodebookId);
3854
3855                $('#cart_onepage_city').val(ret.newAddress.city);
3856                $('#cart_onepage_city_id').val(ret.newAddress.cityId);
3857                $('#cart_onepage_city_ex_code').val(ret.newAddress.cityExCode);
3858                $('#cart_onepage_city_codebook_id').val(ret.newAddress.cityCodebookId);
3859
3860                $('#cart_onepage_postcode').val(ret.newAddress.postcode);
3861
3862                $('#cart_onepage_street').val(ret.newAddress.street);
3863                $('#cart_onepage_street_id').val(ret.newAddress.streetId);
3864                $('#cart_onepage_street_ex_code').val(ret.newAddress.streetExCode);
3865                $('#cart_onepage_street_codebook_id').val(ret.newAddress.streetCodebookId);
3866
3867                $('#cart_onepage_block').val(ret.newAddress.block);
3868
3869                $('#cart_onepage_floor').val(ret.newAddress.floor);
3870
3871                $('#cart_onepage_street_no').val(ret.newAddress.streetNo);
3872
3873                $('#cart_onepage_street_microlocation').val(ret.newAddress.streetMicrolocation);
3874
3875                $('#cart_onepage_appartment_number').val(ret.newAddress.aptNumber);
3876                //ovde ide validacija podataka
3877                var $cartCarrierAddressChangeModal = $('#cart_carrier_address_change_modal');
3878                $cartCarrierAddressChangeModal.modal('hide');
3879
3880            } else {
3881                toastr.error(ret.info);
3882            }
3883        }
3884    });
3885}
3886
3887function loadCarrierAddressFieldsOnePage(carrierId){
3888    $('.content-cart-carrier-address-change').html("");
3889    $('.modal-cart-carrier-address-change .loader-wrapper').removeClass('hidden');
3890    $.ajax({
3891        type: "POST",
3892        url: getCartPageUrl(),
3893        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
3894        data: 'ajax=yes&task=load_carrier_address_fields&carrierId='+carrierId,
3895        async: true,
3896        dataType: 'json',
3897        beforeSend: function(http) {
3898            http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
3899        },
3900        success: function(ret) {
3901            if (ret.flag) {
3902                $('.content-cart-carrier-address-change').html(ret.html);
3903                app.handleTypehead().initTypeheadCities('cart_carrier_address_change_onepage_city_id', 'cart_carrier_address_change_onepage_city', 'cart_carrier_address_change_onepage_street', 'cart_carrier_address_change_onepage_postcode', 'cart_carrier_address_change_onepage_region_id', '#cart_carrier_address_change_onepage_carrier_id','#cart_carrier_address_change_onepage_city_ex_code','cart_carrier_address_change_onepage_city_codebook_id');
3904                app.handleTypehead().initTypeheadStreets('cart_carrier_address_change_onepage_street_id', 'cart_carrier_address_change_onepage_street', 'cart_carrier_address_change_onepage_city_id', 'cart_carrier_address_change_onepage_postcode', '#cart_carrier_address_change_onepage_carrier_id','#cart_carrier_address_change_onepage_street_ex_code','cart_carrier_address_change_onepage_street_codebook_id');
3905                app.handleTypehead().initTypeheadRegions('cart_carrier_address_change_onepage_region_id', 'cart_carrier_address_change_onepage_region', 'cart_carrier_address_change_onepage_country_geo_id', '#cart_carrier_address_change_onepage_carrier_id','#cart_carrier_address_change_onepage_region_ex_code','cart_carrier_address_change_onepage_region_codebook_id');
3906            }
3907            reloadCartOnePage('changecarrieronly');
3908            $('.modal-cart-carrier-address-change .loader-wrapper').addClass('hidden');
3909        }
3910    });
3911}
3912
3913function loadMyShipmentDeliveryAddressModal(shipmentId){
3914
3915    let shipmentStatusModal = $('#shipment_delivery_address_modal');
3916    let modalTitle = shipmentStatusModal.find('.modal-title');
3917    let element = $("#shipment_delivery_address_modal .modal-dialog .modal-body .shipment-delivery-address-modal-wrapper");
3918    let loader = $(".shipment-delievry-address-loader");
3919    function insertModalContent() {
3920
3921        $.ajax({
3922            type: "POST",
3923            url: nb_active_page_url,
3924            data: {
3925                ajax: 'yes',
3926                task: "get_shipment_delivery_address_data",
3927                id: shipmentId,
3928            },
3929            async: true,
3930            contentType: "application/x-www-form-urlencoded;charset=UTF-8",
3931            dataType: 'json',
3932            success: function (ret) {
3933
3934                if(ret.flag && ret.html !== "") {
3935                    shipmentStatusModal.modal("show");
3936                    let titleLabel = modalTitle.data('label');
3937                    modalTitle.html(titleLabel+' #'+shipmentId);
3938                    element.html(ret.html);
3939
3940                    app.handleTypehead().initTypeheadCities('shipment_delivery_address_city_id', 'shipment_delivery_address_city', 'shipment_delivery_address_address', 'shipment_delivery_address_postcode');
3941
3942                }else{
3943                    toastr.clear();
3944                    toastr.error(ret.info);
3945                }
3946
3947                loader.addClass('hidden');
3948
3949            }
3950        })
3951    }
3952
3953    loader.removeClass('hidden');
3954
3955    insertModalContent();
3956
3957}
3958
3959function changeCarrierAddressFieldsData(){
3960
3961    var flag = $('#cart_carrier_address_change').parsley().validate();
3962    if(flag){
3963        var carrierId = $('#cart_carrier_address_change_onepage_carrier_id').val();
3964        cartChangeCarrierOnePageOnForm(carrierId, -1);
3965    }
3966}
3967
3968function controlAddressFieldsForCarrier(carrierConfigAddress){
3969
3970
3971    if(carrierConfigAddress){
3972
3973        if($('.region-id-input-wrapper').length){
3974            if(carrierConfigAddress.showRegion == 1){
3975                if($('.region-id-input-wrapper').hasClass('hidden')){
3976                    $('.region-id-input-wrapper').removeClass('hidden');
3977                }
3978
3979                if($('#cart_onepage_region_id').is('select')){
3980                    $('#cart_onepage_region_id').data('parsley-required', 'true');
3981                    $('#cart_onepage_region_id').prop("required", "true");
3982                    $('#cart_onepage_region').val('');
3983                }else{
3984                    $('#cart_onepage_region').data('parsley-required', 'true');
3985                    $('#cart_onepage_region').prop("required", "true");
3986                    $('#cart_onepage_region').val('');
3987                    $('#cart_onepage_region_id').val(-1);
3988                }
3989
3990            }else if(carrierConfigAddress.showRegion == -1){
3991
3992                if(!$('.region-id-input-wrapper').hasClass('hidden')){
3993                    $('.region-id-input-wrapper').addClass('hidden');
3994                }
3995
3996                if($('#cart_onepage_region_id').is('select')){
3997                    $('#cart_onepage_region_id').data('parsley-required', 'false');
3998                    $('#cart_onepage_region_id').prop("required", "false");
3999                    $('#cart_onepage_region_id').removeAttr('required');
4000                    $('#cart_onepage_region_id').val('');
4001                }else{
4002                    $('#cart_onepage_region').data('parsley-required', 'false');
4003                    $('#cart_onepage_region').prop("required", "false");
4004                    $('#cart_onepage_region').removeAttr('required');
4005                    $('#cart_onepage_region').val('');
4006                    $('#cart_onepage_region_id').val(-1);
4007                }
4008            }
4009        }
4010
4011
4012        if($('.city-input-wrapper').length){
4013            if(carrierConfigAddress.showCity == 1){
4014                if($('.city-input-wrapper').hasClass('hidden')){
4015                    $('.city-input-wrapper').removeClass('hidden');
4016                }
4017
4018                $('#cart_onepage_city').data('parsley-required', 'true');
4019                $('#cart_onepage_city').prop("required", "true");
4020
4021            }else if(carrierConfigAddress.showCity == -1){
4022                if(!$('.city-input-wrapper').hasClass('hidden')){
4023                    $('.city-input-wrapper').addClass('hidden');
4024                }
4025                $('#cart_onepage_city').val('');
4026                $('#cart_onepage_city').data('parsley-required', 'false');
4027                $('#cart_onepage_city').prop("required", "false");
4028                $('#cart_onepage_city').removeAttr('required');
4029            }
4030
4031        }else if($('.city-id-input-wrapper').length){
4032
4033            if(carrierConfigAddress.showCity == 1){
4034
4035                if($('.city-id-input-wrapper').hasClass('hidden')){
4036                    $('.city-id-input-wrapper').removeClass('hidden');
4037                }
4038
4039                $('#cart_onepage_city_id').data('parsley-required', 'true');
4040                $('#cart_onepage_city_id').prop("required", "true");
4041            }else if(carrierConfigAddress.showCity == -1){
4042                if(!$('.city-id-input-wrapper').hasClass('hidden')){
4043                    $('.city-id-input-wrapper').addClass('hidden');
4044                }
4045
4046                $('#cart_onepage_city_id').data('parsley-required', 'false');
4047                $('#cart_onepage_city_id').prop("required", "false");
4048                $('#cart_onepage_city_id').removeAttr('required');
4049                $('#cart_onepage_city_id').val(-1);
4050            }
4051        }
4052
4053        if($('.postcode-input-wrapper').length){
4054            if(carrierConfigAddress.showPostcode == 1){
4055                if($('.postcode-input-wrapper').hasClass('hidden')){
4056                    $('.postcode-input-wrapper').removeClass('hidden');
4057                }
4058
4059                $('#cart_onepage_postcode').data('parsley-required', 'true');
4060                $('#cart_onepage_postcode').prop("required", "true");
4061
4062            }else if(carrierConfigAddress.showPostcode == -1){
4063                if(!$('.postcode-input-wrapper').hasClass('hidden')){
4064                    $('.postcode-input-wrapper').addClass('hidden');
4065                }
4066
4067                $('#cart_onepage_postcode').data('parsley-required', 'false');
4068                $('#cart_onepage_postcode').prop("required", "false");
4069                $('#cart_onepage_postcode').removeAttr('required');
4070            }
4071
4072        }
4073
4074        if($('.address-input-wrapper').length){
4075            if(carrierConfigAddress.showStreet == 1){
4076                if($('.address-input-wrapper').hasClass('hidden')){
4077                    $('.address-input-wrapper').removeClass('hidden');
4078                }
4079
4080                $('#cart_onepage_street').data('parsley-required', 'true');
4081                $('#cart_onepage_street').prop("required", "true");
4082
4083            }else if(carrierConfigAddress.showStreet == -1){
4084                if(!$('.address-input-wrapper').hasClass('hidden')){
4085                    $('.address-input-wrapper').addClass('hidden');
4086                }
4087
4088                $('#cart_onepage_street').data('parsley-required', 'false');
4089                $('#cart_onepage_street').prop("required", "false");
4090                $('#cart_onepage_street').removeAttr('required');
4091            }
4092
4093        }else if($('.address-id-input-wrapper').length){
4094
4095            if(carrierConfigAddress.showStreet == 1){
4096
4097                if($('.address-id-input-wrapper').hasClass('hidden')){
4098                    $('.address-id-input-wrapper').removeClass('hidden');
4099                }
4100
4101                $('#cart_onepage_street_id').data('parsley-required', 'true');
4102                $('#cart_onepage_street_id').prop("required", "true");
4103            }else if(carrierConfigAddress.showStreet == -1){
4104                if(!$('.address-id-input-wrapper').hasClass('hidden')){
4105                    $('.address-id-input-wrapper').addClass('hidden');
4106                }
4107
4108                $('#cart_onepage_street_id').data('parsley-required', 'false');
4109                $('#cart_onepage_street_id').prop("required", "false");
4110                $('#cart_onepage_street_id').removeAttr('required');
4111            }
4112        }
4113
4114        if($('.street-no-input-wrapper').length){
4115            if(carrierConfigAddress.showStreetNo == 1){
4116                if($('.street-no-input-wrapper').hasClass('hidden')){
4117                    $('.street-no-input-wrapper').removeClass('hidden');
4118                }
4119
4120                $('#cart_onepage_street_no').data('parsley-required', 'true');
4121                $('#cart_onepage_street_no').prop("required", "true");
4122
4123            }else if(carrierConfigAddress.showStreetNo == -1){
4124                if(!$('.street-no-input-wrapper').hasClass('hidden')){
4125                    $('.street-no-input-wrapper').addClass('hidden');
4126                }
4127
4128                $('#cart_onepage_street_no').data('parsley-required', 'false');
4129                $('#cart_onepage_street_no').prop("required", "false");
4130                $('#cart_onepage_street_no').removeAttr('required');
4131            }
4132
4133        }
4134
4135        if($('.floor-input-wrapper').length){
4136            if(carrierConfigAddress.showFloor == 1){
4137                if($('.floor-input-wrapper').hasClass('hidden')){
4138                    $('.floor-input-wrapper').removeClass('hidden');
4139                }
4140
4141                if(carrierConfigAddress.requiredFloor == 1) {
4142                    $('#cart_onepage_floor').data('parsley-required', 'true');
4143                    $('#cart_onepage_floor').prop("required", "true");
4144                }
4145
4146            }else if(carrierConfigAddress.showFloor == -1){
4147                if(!$('.floor-input-wrapper').hasClass('hidden')){
4148                    $('.floor-input-wrapper').addClass('hidden');
4149                }
4150
4151                $('#cart_onepage_floor').data('parsley-required', 'false');
4152                $('#cart_onepage_floor').prop("required", "false");
4153                $('#cart_onepage_floor').removeAttr('required');
4154            }
4155        }
4156
4157        if($('.interphone-input-wrapper').length){
4158            if(carrierConfigAddress.showInterphone == 1){
4159                if($('.interphone-input-wrapper').hasClass('hidden')){
4160                    $('.interphone-input-wrapper').removeClass('hidden');
4161                }
4162
4163                if(carrierConfigAddress.requiredInterphone == 1) {
4164                    $('#cart_onepage_interphone').data('parsley-required', 'true');
4165                    $('#cart_onepage_interphone').prop("required", "true");
4166                }
4167
4168            }else if(carrierConfigAddress.showInterphone == -1){
4169                if(!$('.interphone-input-wrapper').hasClass('hidden')){
4170                    $('.interphone-input-wrapper').addClass('hidden');
4171                }
4172
4173                $('#cart_onepage_interphone').data('parsley-required', 'false');
4174                $('#cart_onepage_interphone').prop("required", "false");
4175                $('#cart_onepage_interphone').removeAttr('required');
4176            }
4177        }
4178
4179        if($('.microlocation-input-wrapper').length){
4180            if(carrierConfigAddress.showMicrolocation == 1){
4181                if($('.microlocation-input-wrapper').hasClass('hidden')){
4182                    $('.microlocation-input-wrapper').removeClass('hidden');
4183                }
4184
4185                $('#cart_onepage_street_microlocation').data('parsley-required', 'true');
4186                $('#cart_onepage_street_microlocation').prop("required", "true");
4187
4188            }else if(carrierConfigAddress.showMicrolocation == -1){
4189                if(!$('.microlocation-input-wrapper').hasClass('hidden')){
4190                    $('.microlocation-input-wrapper').addClass('hidden');
4191                }
4192
4193                $('#cart_onepage_street_microlocation').data('parsley-required', 'false');
4194                $('#cart_onepage_street_microlocation').prop("required", "false");
4195                $('#cart_onepage_street_microlocation').removeAttr('required');
4196            }
4197        }
4198
4199        if($('.appartment_number-input-wrapper').length){
4200            if(carrierConfigAddress.showAptNumber == 1){
4201                if($('.appartment_number-input-wrapper').hasClass('hidden')){
4202                    $('.appartment_number-input-wrapper').removeClass('hidden');
4203                }
4204
4205                if(carrierConfigAddress.requiredAptNumber == 1){
4206                    $('#cart_onepage_appartment_number').data('parsley-required', 'true');
4207                    $('#cart_onepage_appartment_number').prop("required", "true");
4208                }
4209
4210            }else if(carrierConfigAddress.showAptNumber == -1){
4211                if(!$('.appartment_number-input-wrapper').hasClass('hidden')){
4212                    $('.appartment_number-input-wrapper').addClass('hidden');
4213                }
4214
4215                $('#cart_onepage_appartment_number').data('parsley-required', 'false');
4216                $('#cart_onepage_appartment_number').prop("required", "false");
4217                $('#cart_onepage_appartment_number').removeAttr('required');
4218            }
4219        }
4220
4221        if($('.user_address_block-input-wrapper').length){
4222            if(carrierConfigAddress.showAptNumber == 1){
4223                if($('.user_address_block-input-wrapper').hasClass('hidden')){
4224                    $('.user_address_block-input-wrapper').removeClass('hidden');
4225                }
4226
4227                $('#cart_onepage_block').data('parsley-required', 'true');
4228                $('#cart_onepage_block').prop("required", "true");
4229
4230            }else if(carrierConfigAddress.showAptNumber == -1){
4231                if(!$('.user_address_block-input-wrapper').hasClass('hidden')){
4232                    $('.user_address_block-input-wrapper').addClass('hidden');
4233                }
4234
4235                $('#cart_onepage_block').data('parsley-required', 'false');
4236                $('#cart_onepage_block').prop("required", "false");
4237                $('#cart_onepage_block').removeAttr('required');
4238            }
4239        }
4240
4241
4242    }else{
4243
4244        $('.region-id-input-wrapper,.city-input-wrapper,.postcode-input-wrapper,.address-input-wrapper,.street-no-new-input,.street-no-input-wrapper').removeClass('hidden');
4245
4246        if($('#cart_onepage_region_id').length && $('#cart_onepage_region_id').is('select')){
4247            $('#cart_onepage_region_id').data('parsley-required', 'false');
4248            $('#cart_onepage_region_id').prop("required", "false");
4249            $('#cart_onepage_region_id').removeAttr('required');
4250        }else if($('#cart_onepage_region_id').length){
4251            $('#cart_onepage_region').data('parsley-required', 'false');
4252            $('#cart_onepage_region').prop("required", "false");
4253            $('#cart_onepage_region').removeAttr('required');
4254        }
4255
4256        if($('.city-input-wrapper').length){
4257            $('#cart_onepage_city').data('parsley-required', 'true');
4258            $('#cart_onepage_city').prop("required", "true");
4259        }else if($('.city-id-input-wrapper').length){
4260            $('#cart_onepage_city_id').data('parsley-required', 'true');
4261            $('#cart_onepage_city_id').prop("required", "true");
4262        }
4263
4264        if($('.postcode-input-wrapper').length){
4265            $('#cart_onepage_postcode').data('parsley-required', 'true');
4266            $('#cart_onepage_postcode').prop("required", "true");
4267        }
4268
4269        if($('.address-input-wrapper').length){
4270            $('#cart_onepage_street').data('parsley-required', 'true');
4271            $('#cart_onepage_street').prop("required", "true");
4272        }else if($('.address-id-input-wrapper').length){
4273            $('#cart_onepage_street_id').data('parsley-required', 'true');
4274            $('#cart_onepage_street_id').prop("required", "true");
4275        }
4276
4277        if($('.street-no-input-wrapper').length){
4278            $('#cart_onepage_street_no').data('parsley-required', 'true');
4279            $('#cart_onepage_street_no').prop("required", "true");
4280        }
4281
4282        if($('.floor-input-wrapper').length){
4283            $('#cart_onepage_floor').data('parsley-required', 'true');
4284            $('#cart_onepage_floor').prop("required", "true");
4285        }
4286
4287        if($('.microlocation-input-wrapper').length){
4288            $('#cart_onepage_street_microlocation').data('parsley-required', 'true');
4289            $('#cart_onepage_street_microlocation').prop("required", "true");
4290        }
4291
4292        if($('.appartment_number-input-wrapper').length){
4293            $('#cart_onepage_appartment_number').data('parsley-required', 'true');
4294            $('#cart_onepage_appartment_number').prop("required", "true");
4295        }
4296
4297        if($('.user_address_block-input-wrapper').length){
4298            $('#cart_onepage_block').data('parsley-required', 'true');
4299            $('#cart_onepage_block').prop("required", "true");
4300        }
4301    }
4302
4303}
4304
4305function cartChangeStoreReciveIdOnePage(storeReciveId){
4306    $.ajax({
4307        type: "POST",
4308        url: getCartPageUrl(),
4309        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
4310        data: 'ajax=yes&task=changestorereciveid&storeReciveId='+storeReciveId,
4311        async: true,
4312        dataType: 'json',
4313        beforeSend: function(http) {
4314            http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
4315        },
4316        success: function(ret) {
4317            if (ret.flag) {
4318                reloadCartOnePage('changestorereciveid');
4319                //reloadCartOnePage('changecarrierparcelmachine');
4320            } else {
4321                toastr.error(ret.info);
4322            }
4323        }
4324    });
4325}
4326
4327function cartChangeCarrierParcelMachineOnePage(carrierParcelMachineId){
4328    $.ajax({
4329        type: "POST",
4330        url: getCartPageUrl(),
4331        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
4332        data: 'ajax=yes&task=changecarrierparcelmachine&carrierParcelMachineId='+carrierParcelMachineId,
4333        async: true,
4334        dataType: 'json',
4335        beforeSend: function(http) {
4336            http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
4337        },
4338        success: function(ret) {
4339            if (ret.flag) {
4340                //reloadCartOnePage('changecarrierparcelmachine');
4341            } else {
4342                toastr.error(ret.info);
4343            }
4344        }
4345    });
4346}
4347
4348function cartChangePaymentTypeOnePage(paymenttypecode){
4349    $.ajax({
4350        type: "POST",
4351        url: getCartPageUrl(),
4352        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
4353        data: 'ajax=yes&task=changepaymenttype&paymenttypecode='+paymenttypecode,
4354        async: true,
4355        dataType: 'json',
4356        beforeSend: function(http) {
4357            http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
4358        },
4359        success: function(ret) {
4360            if (ret.flag) {
4361                if($('[id^=cart_onepage_installments_]').length){
4362                    $('[id^=cart_onepage_installments_]').data('parsley-required', 'false');
4363                    $('[id^=cart_onepage_installments_]').prop("required", "false");
4364                    $('[id^=cart_onepage_installments_]').removeAttr('required');
4365                    $('[id^=cart_onepage_installments_]').parent().find('li.parsley-required').hide();
4366                    $('[id^=cart_onepage_number_installments_]').data('parsley-required', 'false');
4367                    $('[id^=cart_onepage_number_installments_]').prop("required", "false");
4368                    $('[id^=cart_onepage_number_installments_]').removeAttr('required');
4369
4370                    if($('#cart_onepage_installments_'+paymenttypecode).parents('.isrequired').length){
4371                        $('#cart_onepage_installments_'+paymenttypecode).attr("required", true);
4372                        $('#cart_onepage_installments_'+paymenttypecode).parent().find('li.parsley-required').show();
4373                        $('#cart_onepage_number_installments_'+paymenttypecode).attr("required", "true");
4374                    }
4375                }
4376
4377                reloadCartOnePage('changepaymenttype');
4378                // if($('.donation-products-wrapper').find('.donation-products').length > 0){
4379                //     app.handleCheckboxRadio($('input[type="checkbox"][name="cart_onepage_donation_is_anonymously"], input[type="checkbox"][name="cart_onepage_donation_flag_want_product"], input[type="radio"][name="cart_onepage_is_donation"], input[type="radio"][name="cart_onepage_donation_productId"], input[type="radio"][name="cart_onepage_donation_articleId"]'));
4380                //     loadDataForDonationProductOrderOnePage();
4381                //     showAndHideElementDonation();
4382                //     showAndHodeGiftDescriptionModal();
4383                // }
4384                //calculateValueOrderOnePage();
4385            } else {
4386                toastr.error(ret.info);
4387            }
4388        }
4389    });
4390};
4391
4392function cartChangeDeliveryCityOnePage(cityId){
4393    $.ajax({
4394        type: "POST",
4395        url: getCartPageUrl(),
4396        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
4397        data: 'ajax=yes&task=changedeliverycity&cityId='+cityId,
4398        async: true,
4399        dataType: 'json',
4400        beforeSend: function(http) {
4401            http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
4402        },
4403        success: function(ret) {
4404            if (ret.flag){
4405                reloadCartOnePage('changedeliverycity');//todo novo
4406            }else{
4407                toastr.error(ret.info);
4408            }
4409        }
4410    });
4411};
4412
4413
4414function cartChangeCityIdAndPostCodeOnePage(cityId, postCode, cityName = ''){
4415    $.ajax({
4416        type: "POST",
4417        url: getCartPageUrl(),
4418        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
4419        data: 'ajax=yes&task=changecityandpostcode&cityId='+cityId+'&postCode='+postCode+'&cityName='+cityName,
4420        async: true,
4421        dataType: 'json',
4422        beforeSend: function(http) {
4423            http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
4424        },
4425        success: function(ret) {
4426            if (ret.flag){
4427                reloadCartOnePage('changecityandpostcode');//todo novo
4428                $('#submit_order_one_page').removeClass('no-click');
4429            }else{
4430                toastr.error(ret.info);
4431            }
4432        }
4433    });
4434};
4435
4436function cartChangeOrderAddressOnePage(orderaddress, countryCartDelivery, addressListId, addressListName, citiSelectedId, postCodeSelected){
4437    $.ajax({
4438        type: "POST",
4439        url: getCartPageUrl(),
4440        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
4441        data: 'ajax=yes&task=changeorderaddress&orderaddress='+orderaddress+'&countryCartDelivery='+countryCartDelivery+'&addressListId='+addressListId+'&addressListName='+addressListName+'&citiId='+citiSelectedId+'&postCode='+postCodeSelected,
4442        async: true,
4443        dataType: 'json',
4444        beforeSend: function(http) {
4445            http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
4446        },
4447        success: function(ret) {
4448            if (ret.flag){
4449                reloadCartOnePage('changeorderaddress');//todo novo
4450                //calculateValueOrderOnePage();
4451            }else{
4452                if(ret.flagInfo){
4453                    $('.cart-address-alert').removeClass('hidden');
4454                    $('.cart-address-alert').text(ret.info);
4455                    //$('#orderAddress').prop('checked', true);
4456                    $('#orderAddress').trigger("click");
4457                }else{
4458                    toastr.error(ret.info);
4459                }
4460            }
4461        }
4462    });
4463};
4464
4465function cartChangeAddressOnListOnePage(addressListId, addressListName){
4466    $.ajax({
4467        type: "POST",
4468        url: getCartPageUrl(),
4469        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
4470        data: 'ajax=yes&task=changeaddressonlist&addressListId='+addressListId+'&addressListName='+addressListName,
4471        async: true,
4472        dataType: 'json',
4473        beforeSend: function(http) {
4474            http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
4475        },
4476        success: function(ret) {
4477            if (ret.flag) {
4478                reloadCartOnePage('changeaddressonlist');
4479
4480                // if($('.donation-products-wrapper').find('.donation-products').length > 0){
4481                //     app.handleCheckboxRadio($('input[type="checkbox"][name="cart_onepage_donation_is_anonymously"], input[type="checkbox"][name="cart_onepage_donation_flag_want_product"], input[type="radio"][name="cart_onepage_is_donation"], input[type="radio"][name="cart_onepage_donation_productId"], input[type="radio"][name="cart_onepage_donation_articleId"]'));
4482                //     loadDataForDonationProductOrderOnePage();
4483                //     showAndHideElementDonation();
4484                //     showAndHodeGiftDescriptionModal();
4485                // }
4486
4487            } else {
4488                toastr.error(ret.info);
4489            }
4490        }
4491    });
4492}
4493
4494function cartChangeAmountOnePage(id, amount, size, price, combId, modelOrdering){
4495    var $orderCartContent = $('#order_cart_content');
4496    $.ajax({
4497        type: "POST",
4498        url: getCartPageUrl(),
4499        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
4500        data: 'ajax=yes&task=changeAmount&id='+id+'&amount='+amount+'&size='+size+'&price='+price+'&combId='+combId+'&modelOrdering='+modelOrdering,
4501        async: true,
4502        dataType: 'json',
4503        beforeSend: function(http) {
4504            http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
4505        },
4506        success: function(ret) {
4507            if (ret.flag) {
4508                $orderCartContent.html(ret.html);
4509                app.handleAppearing($orderCartContent.find('.appear'));
4510                refreshMinCart('changeAmount');
4511                reloadCartOnePage('changeAmount');
4512                //calculateValueOrderOnePage();
4513
4514                // if($('.donation-products-wrapper').find('.donation-products').length > 0){
4515                //     app.handleCheckboxRadio($('input[type="checkbox"][name="cart_onepage_donation_is_anonymously"], input[type="checkbox"][name="cart_onepage_donation_flag_want_product"], input[type="radio"][name="cart_onepage_is_donation"], input[type="radio"][name="cart_onepage_donation_productId"], input[type="radio"][name="cart_onepage_donation_articleId"]'));
4516                //     loadDataForDonationProductOrderOnePage();
4517                //     showAndHideElementDonation();
4518                //     showAndHodeGiftDescriptionModal();
4519                // }
4520
4521            } else {
4522                toastr.error(ret.info);
4523                $('#quantity').val(ret.quantity);
4524            }
4525        }
4526    });
4527}
4528
4529function cartAddAditionalProductOnePageNew(productId, combId, amount, addAditionalProduct, sameItemId){
4530
4531    $.ajax({
4532        type: "POST",
4533        url: getCartPageUrl(),
4534        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
4535        data: 'ajax=yes&task=cartInsert&id='+productId+'&combId='+combId+'&amount='+amount+'&addAditionalProduct='+addAditionalProduct+'&sameItemId='+sameItemId,
4536        async: true,
4537        dataType: 'json',
4538        beforeSend: function(http) {
4539            http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
4540        },
4541        success: function(ret) {
4542            if (ret.flag) {
4543                reloadCartOnePage('addAditionalProduct');
4544            } else {
4545                toastr.error(ret.info);
4546            }
4547        }
4548    });
4549}
4550
4551function applyTicketOnRefresh(refTask, applyTicketOnRefresh, reload, chackCartEmpty, checkTicketApply){
4552
4553    reload = typeof reload !== 'undefined' ? reload : 'yes';
4554    chackCartEmpty = typeof chackCartEmpty !== 'undefined' ? chackCartEmpty : 'no';
4555    checkTicketApply    = typeof checkTicketApply !== 'undefined' ? checkTicketApply : 'yes';
4556    applyTicketOnRefresh    = typeof applyTicketOnRefresh !== 'undefined' ? applyTicketOnRefresh : 'yes';
4557
4558    var cartLoader = $('.cart-loader');
4559    cartLoader.removeClass('hidden');
4560
4561    $.ajax({
4562        type: "POST",
4563        url: getCartPageUrl(),
4564        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
4565        data: 'ajax=yes&task=applyticketonrefresh&reload='+reload+'&chackCartEmpty='+chackCartEmpty+'&applyTicketOnRefresh='+applyTicketOnRefresh,
4566        async: true,
4567        dataType: 'json',
4568        beforeSend: function(http) {
4569            http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
4570        },
4571        success: function(ret) {
4572            if (ret.flag) {
4573                cartLoader.addClass('hidden');
4574                // apply ticket
4575                reloadCartOnePage(refTask, reload, chackCartEmpty, checkTicketApply);
4576            }else{
4577                cartLoader.addClass('hidden');
4578            }
4579        }
4580    });
4581
4582    //cartLoader.addClass('hidden');
4583};
4584
4585function cartChangeAmountOnePageNew(key, id, amount, size, price, combId, modelOrdering, element = false){
4586    var $orderCartContent = $('#order_cart_content');
4587    $.ajax({
4588        type: "POST",
4589        url: getCartPageUrl(),
4590        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
4591        data: 'ajax=yes&task=changeAmount&key='+key+'&id='+id+'&amount='+amount+'&size='+size+'&price='+price+'&combId='+combId+'&modelOrdering='+modelOrdering,
4592        async: true,
4593        dataType: 'json',
4594        beforeSend: function(http) {
4595            http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
4596        },
4597        success: function(ret) {
4598            if (ret.flag) {
4599                // apply ticket
4600                applyTicketOnRefresh('changeAmount', 'yes');
4601                //reloadCartOnePage('changeAmount');
4602                // if($('.donation-products-wrapper').find('.donation-products').length > 0){
4603                //     app.handleCheckboxRadio($('input[type="checkbox"][name="cart_onepage_donation_is_anonymously"], input[type="checkbox"][name="cart_onepage_donation_flag_want_product"], input[type="radio"][name="cart_onepage_is_donation"], input[type="radio"][name="cart_onepage_donation_productId"], input[type="radio"][name="cart_onepage_donation_articleId"]'));
4604                //     loadDataForDonationProductOrderOnePage();
4605                //     showAndHideElementDonation();
4606                //     showAndHodeDonationDescriptionModal();
4607                //     showAndHodeGiftDescriptionModal();
4608                // }
4609
4610            } else {
4611                toastr.error(ret.info);
4612
4613                if(element){
4614                    let quantityBeforeChange = element.parents('tr').data('quantity');
4615                    element.val(quantityBeforeChange);
4616                }else{
4617                    if(key != ""){
4618                        let counterNumberKeyArray = key.split("-");
4619                        if(counterNumberKeyArray[0] != 'undefined'){
4620                            let quantityBeforeChange = $('#quantity_'+counterNumberKeyArray[0]).parents('tr').data('quantity');
4621                            $('#quantity_'+counterNumberKeyArray[0]).val(quantityBeforeChange);
4622                        }else{
4623                            $('#quantity').val(ret.quantity);
4624                        }
4625                    }else{
4626                        $('#quantity').val(ret.quantity);
4627                    }
4628                }
4629            }
4630        }
4631    });
4632}
4633
4634function changeModalAmout(productId,productCode){
4635    if(typeof productCode !== 'undefined' && productCode != ''){
4636        $.ajax({
4637            type: "POST",
4638            url: nb_site_url,
4639            data: {
4640                nbAjax: 1,
4641                nbTask: 'product_tecdoc',
4642                task: 'getProductPriceInfoInCart',
4643                productid: productId,
4644                productcode: productCode
4645            },
4646            dataType: 'json',
4647            success: function (ret) {
4648                if(ret.flag){
4649                    $html = '';
4650                    $('#add_to_cart_by_store_modal').modal('show');
4651                    $('#store-wrapper').html(ret.result);
4652                    changeQuantity();
4653                }
4654            }
4655        });
4656    }
4657}
4658
4659function cartChangeAmountOnePageNewForSameItemId(sameItemId, amount, modelOrdering){
4660    var $orderCartContent = $('#order_cart_content');
4661    $.ajax({
4662        type: "POST",
4663        url: getCartPageUrl(),
4664        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
4665        data: 'ajax=yes&task=changeAmountForSameItemId&sameItemId='+sameItemId+'&amount='+amount+'&modelOrdering='+modelOrdering,
4666        async: true,
4667        dataType: 'json',
4668        beforeSend: function(http) {
4669            http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
4670        },
4671        success: function(ret) {
4672            if (ret.flag) {
4673                reloadCartOnePage('changeAmount');
4674            } else {
4675                toastr.error(ret.info);
4676                $('#quantity').val(ret.quantity);
4677            }
4678        }
4679    });
4680}
4681
4682function cartChangeMessageOnePage(message,id){
4683    $.ajax({
4684        type: "POST",
4685        url: getCartPageUrl(),
4686        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
4687        data: 'ajax=yes&task=changemessage&message='+message+'&carrierid='+id,
4688        async: true,
4689        dataType: 'json',
4690        beforeSend: function(http) {
4691            http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
4692        },
4693        success: function(ret) {
4694            if (ret.flag) {
4695                //reloadCartOnePage('changemessage');
4696            } else {
4697                toastr.error(ret.info);
4698            }
4699        }
4700    });
4701}
4702
4703function profileOrderItemsQuantity(itemNumber, amount){
4704    $('.profile-orderitems .item.item-addincart .item-btn-'+itemNumber).data('product-quantity', amount);
4705}
4706
4707function cartCommentOnePage(itemId, modelOrdering){
4708    var comment = $('.modal-open .modal.fade.in textarea').val();
4709    $.ajax({
4710        type: "POST",
4711        url: getCartPageUrl(),
4712        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
4713        data: 'ajax=yes&task=changeCartComment&itemId='+itemId+'&comment='+comment+'&modelOrdering='+modelOrdering,
4714        async: true,
4715        dataType: 'json',
4716        beforeSend: function(http) {
4717            http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
4718        },
4719        success: function(ret) {
4720            if (ret.flag) {
4721                reloadCartOnePage();
4722            } else {
4723                toastr.error(ret.info);
4724                $('#quantity').val(ret.quantity);
4725            }
4726            $('.modal-backdrop').remove();
4727        }
4728    });
4729}
4730
4731function cartCommentOnePageNewForSameItemId(sameItemId, modelOrdering){
4732    var comment = $('.modal-open .modal.fade.in textarea').val();
4733    $.ajax({
4734        type: "POST",
4735        url: getCartPageUrl(),
4736        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
4737        data: 'ajax=yes&task=changeCommentForSameItemId&sameItemId='+sameItemId+'&comment='+comment+'&modelOrdering='+modelOrdering,
4738        async: true,
4739        dataType: 'json',
4740        beforeSend: function(http) {
4741            http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
4742        },
4743        success: function(ret) {
4744            if (ret.flag) {
4745                reloadCartOnePage();
4746            } else {
4747                toastr.error(ret.info);
4748                $('#quantity').val(ret.quantity);
4749            }
4750            $('.modal-backdrop').remove();
4751        }
4752    });
4753}
4754
4755
4756
4757function deleteProductFromCartOnePageForSameItemId(sameItemId, modelOrdering, textQuestion){
4758    bootbox.confirm(textQuestion, function(result) {
4759        if(!result){
4760            return;
4761        }
4762        setTimeout(function () {
4763            if(!$('.header-cart .mini-cart').hasClass('not-empty')){
4764                $('body').removeClass('search');
4765            }
4766        }, 500);
4767        var $orderCartContent = $('#order_cart_content');
4768        $.ajax({
4769            type: "POST",
4770            url: getCartPageUrl(),
4771            data: 'ajax=yes&task=cart_order_delete_for_same_item_id&sameItemId='+sameItemId+'&modelOrdering='+modelOrdering,
4772            contentType: "application/x-www-form-urlencoded;charset=UTF-8",
4773            async :true,
4774            dataType: 'json',
4775            beforeSend: function(http) {
4776                http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
4777                //http.setRequestHeader("Connection", "close");
4778            },
4779            success: function(ret) {
4780                if (ret.info) {
4781                    if($orderCartContent.length > 0){
4782                        reloadCartOnePage('cart_order_delete', 'yes' , 'yes');
4783                    }else{
4784                        reloadCartOnePage('cart_order_delete', 'yes' , 'no');
4785                    }
4786
4787                    // if($('.donation-products-wrapper').find('.donation-products').length > 0){
4788                    //     app.handleCheckboxRadio($('input[type="checkbox"][name="cart_onepage_donation_is_anonymously"], input[type="checkbox"][name="cart_onepage_donation_flag_want_product"], input[type="radio"][name="cart_onepage_is_donation"], input[type="radio"][name="cart_onepage_donation_productId"], input[type="radio"][name="cart_onepage_donation_articleId"]'));
4789                    //     loadDataForDonationProductOrderOnePage();
4790                    //     showAndHideElementDonation();
4791                    //     showAndHodeGiftDescriptionModal();
4792                    // }
4793
4794                    nbshopJS.CustomEventTrigger('deleteProductFromCartOnePage');
4795                }
4796            }
4797        });
4798    });
4799}
4800
4801function deleteProductFromCartOnePage(id, modelOrdering, textQuestion, refTask = 'cart_order_delete'){
4802    bootbox.confirm(textQuestion, function(result) {
4803
4804        if(!result){
4805            return;
4806        }
4807        setTimeout(function () {
4808            if(!$('.header-cart .mini-cart').hasClass('not-empty')){
4809                $('body').removeClass('search');
4810            }
4811        }, 500);
4812        var $orderCartContent = $('#order_cart_content');
4813        var $voucherCartContent = $('#block-chosen-vouchers');
4814        $.ajax({
4815            type: "POST",
4816            url: getCartPageUrl(),
4817            data: 'ajax=yes&task=cart_order_delete&id='+id+'&modelOrdering='+modelOrdering,
4818            contentType: "application/x-www-form-urlencoded;charset=UTF-8",
4819            async :true,
4820            dataType: 'json',
4821            beforeSend: function(http) {
4822                http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
4823                //http.setRequestHeader("Connection", "close");
4824            },
4825            success: function(ret) {
4826                if (ret.info) {
4827                    if($orderCartContent.length > 0 || $voucherCartContent.length > 0){
4828                        //reloadCartOnePage('cart_order_delete', 'yes' , 'yes');
4829                        applyTicketOnRefresh(refTask, 'yes' , 'yes', 'yes');
4830                    }else{
4831                        //reloadCartOnePage('cart_order_delete', 'yes' , 'no');
4832                        applyTicketOnRefresh(refTask, 'yes' , 'yes' , 'no');
4833                    }
4834
4835                    // if($('.donation-products-wrapper').find('.donation-products').length > 0){
4836                    //     app.handleCheckboxRadio($('input[type="checkbox"][name="cart_onepage_donation_is_anonymously"], input[type="checkbox"][name="cart_onepage_donation_flag_want_product"], input[type="radio"][name="cart_onepage_is_donation"], input[type="radio"][name="cart_onepage_donation_productId"], input[type="radio"][name="cart_onepage_donation_articleId"]'));
4837                    //     loadDataForDonationProductOrderOnePage();
4838                    //     showAndHideElementDonation();
4839                    //     showAndHodeGiftDescriptionModal();
4840                    // }
4841
4842                    nbshopJS.CustomEventTrigger('deleteProductFromCartOnePage', { id: id });
4843                }
4844            }
4845        });
4846    });
4847}
4848
4849/*Promena velicine na korpi */
4850
4851function changeCartProductSize(element,key){
4852    //nbshopJS.closeOpendElementOnOutClick('.popup-sizes-wrapper','active','.nbf-change-size');
4853    let popup = element.parents('.product-item-size-popup-wrapper').find('.popup-sizes-wrapper');
4854    $('.popup-sizes-wrapper').removeClass('active');
4855    popup.addClass('active');
4856}
4857
4858function nb_changeProductSizeInCartAjax(productId,combId,quantity,key){
4859    $.ajax({
4860        type: "POST",
4861        url: getCartPageUrl(),
4862        data: {
4863            ajax: 'yes',
4864            task: 'changeProductSizeinCart',
4865            id: productId,
4866            combId: combId,
4867            amount: quantity,
4868            key: key
4869        },
4870        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
4871        dataType: 'json',
4872        success: function(ret) {
4873            if (ret.flag){
4874                reloadCartOnePage('cart_change_product_size', 'yes' , 'no');
4875                nbshopJS.CustomEventTrigger('changeSizeCart');
4876            }else{
4877                toastr.error(ret.info);
4878            }
4879            if($('.modal.change-cart-size-modal').length !== 0) {
4880                $('.modal.change-cart-size-modal').modal('hide');
4881            }
4882        }
4883    });
4884}
4885
4886
4887function getUserByJMBG(){
4888    $.ajax({
4889        type: "POST",
4890        url: getCartPageUrl(),
4891        data: '&ajax=yes&task=getuserbyjmbg&jmbg='+$('#cart_onepage_jmbg').val(),
4892        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
4893        dataType: 'json',
4894        async: false,
4895        success: function(ret) {
4896            if (ret.flag){
4897                $('#cart_az_uzer_firstname').html(ret.firstname);
4898                $('#cart_az_uzer_lastname').html(ret.lastname);
4899                $('#cart_az_uzer_email').html(ret.email);
4900                $('#cart_az_uzer_phone').html(ret.phone);
4901                $('#cart_az_uzer_limit').html(ret.limit);
4902                $('#cart_az_uzer_message').html(ret.message);
4903                $('#cart_az_uzer_limit_order').val(ret.limit);
4904                var dataUserInComments = "";
4905                dataUserInComments += $('#cart_onepage_jmbg').val()+' \n';
4906                dataUserInComments += ret.firstname+' '+ret.lastname+' \n';
4907                dataUserInComments += ret.email+' \n';
4908                dataUserInComments += ret.phone+' \n';
4909                dataUserInComments += ret.limit+' \n';
4910                dataUserInComments += ret.message+' \n';
4911                $('#cart_onepage_message').val(dataUserInComments);
4912                $('#payment_az_info').show();
4913            }else{
4914                toastr.error('Nastala je greška prilikom provere korisnika!');
4915            }
4916        }
4917    });
4918}
4919
4920function getCombinationsForGiftProductOrderOnePage(thisElement){
4921    getCombinationsForGiftProductOrderOnePageData(thisElement.val(), -1);
4922}
4923
4924function userIdentificationChange(element){
4925    var inputId = $(element).data('input');
4926    var selectCode = $(element).find(':selected').data('code');
4927    var selectRegex = $(element).find(':selected').data('regex');
4928    var selectRegexText = $(element).find(':selected').data('regex-text');
4929
4930    if($(element).find(':selected').val() > 0 && selectRegex != '' && selectRegex != '//'){
4931        $('#'+inputId).attr('disabled', false).data('parsley-required', 'true').prop("required", "true");
4932    } else if($(element).find(':selected').val() > 0 && $('#'+inputId).is('[readonly]')) {
4933        $('#'+inputId).data('parsley-required', 'false').prop("required", "false");
4934    } else {
4935        $('#'+inputId).attr('disabled', true).data('parsley-required', 'false').prop("required", "false").removeAttr('required').val('');
4936    }
4937
4938    $('#'+inputId).attr('pattern', selectRegex).attr('data-parsley-pattern-message', selectRegexText);
4939    $('#'+inputId+'_code').val(selectCode);
4940
4941    var pibInput = inputId.replace(/_user_identification/g, '_company_pib');
4942    if($('#'+pibInput).length){
4943        $('#'+pibInput).keyup();
4944    }
4945}
4946
4947function userIdentificationChangePerson(element,wrapper){
4948    var personType = element.val();
4949    var personTypeSelect = element.attr('id');
4950    let wrapper1 = ' '+wrapper;
4951    var formId = element.closest('form').attr('id')+wrapper1;
4952    var userIdentificationTypeSelect = personTypeSelect.replace(/_type_person/g, '_user_identification_type');
4953    var options = '';
4954    $.ajax({
4955        type: "POST",
4956        url: nb_active_page_url,
4957        dataType: 'json',
4958        data: {
4959            ajax: "yes",
4960            task: "user_public_identification_type",
4961            personType: personType,
4962            nbAjax: 1
4963        },
4964        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
4965        dataType: 'json',
4966        success: function(ret){
4967            //ZS: If we do not have any identification hide input field and wrapper
4968            if(!ret) {
4969                $('#'+formId+' .user-identification-type-input-wrapper').addClass('hidden');
4970                $('#'+formId+' .user-identification-input-wrapper').addClass('hidden');
4971            }
4972            options = '';
4973            $('#'+userIdentificationTypeSelect).find('option').not(':first').remove();
4974            $('#'+userIdentificationTypeSelect+' option').filter(function() {
4975                    return this.value || $.trim(this.value).length != 0 || $.trim(this.text).length != 0;
4976                }).remove();
4977            $.each(ret, function (key, value){
4978                options  += '<option data-regex="'+value.regEx+'" data-regex-text="'+value.regExText+'" data-code="'+value.code+'" value="'+value.id+'">'+value.name+'</option>';
4979            });
4980            $('#'+formId+' #'+userIdentificationTypeSelect).append(options);
4981            if(options != ''){
4982                $('#'+formId+' .user-identification-type-input-wrapper').removeClass('hidden');
4983                $('#'+formId+' .user-identification-input-wrapper').removeClass('hidden');
4984            }else if (!$('.user-identification-type-input-wrapper').hasClass('hidden')){
4985                $('#'+formId+' .user-identification-type-input-wrapper').addClass('hidden');
4986                $('#'+formId+' .user-identification-input-wrapper').addClass('hidden');
4987            }
4988        }
4989    });
4990}
4991
4992function getCombinationsForGiftProductOrderOnePageData(productId, combinationid){
4993    $.ajax({
4994        type: "POST",
4995        url: getCartPageUrl(),
4996        data: 'ajax=yes&task=combinationsforgiftproduct&productId='+productId,
4997        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
4998        dataType: 'json',
4999        success: function(ret) {
5000            if (ret.flag){
5001
5002                var optionsIzaberi = '<option value="-1">'+'Izaberi'+'</option>';
5003                if(ret.sizes.length > 0){
5004                    optionsIzaberi = '<option value="">
5004'+'Izaberi'+'</option>';
5005                    for(var i in ret.sizes){
5006                        var disabledCombination = '';
5007                        if(ret.sizes[i].quantity <= 0){
5008                            disabledCombination = 'disabled';
5009                        }
5010
5011                        var selected = "";
5012                        if(combinationid > 0 && combinationid == ret.sizes[i].productCombinationId){
5013                            selected = 'selected';
5014                        }
5015
5016                        optionsIzaberi += '<option value="' + ret.sizes[i].productCombinationId + '" '+disabledCombination+'>' + ret.sizes[i].name + '</option>';
5017                    }
5018                }
5019                $("#cart_onepage_gift_combinationId").html(optionsIzaberi);
5020            }
5021        }
5022    });
5023}
5024
5025function getProductsForDonationOrderOnePage(isDonation){
5026    $('.donation-products-wrapper').html('');
5027    $.ajax({
5028        type: "POST",
5029        url: getCartPageUrl(),
5030        data: 'ajax=yes&task=productsfordonation&isDonation='+isDonation,
5031        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
5032        dataType: 'json',
5033        success: function(ret) {
5034            if(ret.flag){
5035                $('.donation-products-wrapper').html(ret.productsHtml);
5036                app.handleCheckboxRadio($('input[type="radio"][name="cart_onepage_donation_productId"]'));
5037                initParsleyRequiredForDonationProductCombination(isDonation);
5038                loadDataForDonationProductOrderOnePage();
5039                //calculateValueOrderOnePage();
5040                reloadCartOnePage('donationflagwantproduct');
5041            }
5042        }
5043    });
5044}
5045
5046function getCombinationsForDonationProductOrderOnePage(thisElement){
5047    getCombinationsForDonationProductOrderOnePageData(thisElement.val(), -1);
5048}
5049
5050function getCombinationsForDonationProductOrderOnePageData(productId, combinationid){
5051    var elementDonationCombination = $('#cart_onepage_donation_combinationId');
5052    $.ajax({
5053        type: "POST",
5054        url: getCartPageUrl(),
5055        data: 'ajax=yes&task=combinationsforgiftproduct&productId='+productId,
5056        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
5057        dataType: 'json',
5058        success: function(ret) {
5059            if (ret.flag){
5060
5061                var optionsIzaberi = '<option value="-1">'+'Izaberi'+'</option>';
5062                if(ret.sizes.length > 0){
5063                    optionsIzaberi = '<option value="">'+'Izaberi'+'</option>';
5064                    for(var i in ret.sizes){
5065
5066                        var disabledCombination = '';
5067                        if(ret.sizes[i].quantity <= 0){
5068                            disabledCombination = 'disabled';
5069                        }
5070
5071                        var selected = "";
5072                        if(ret.defaultCombinationId > 0 && ret.defaultCombinationId == ret.sizes[i].productCombinationId){
5073                            selected = 'selected';
5074                        }
5075
5076                        if(combinationid > 0 && combinationid == ret.sizes[i].productCombinationId){
5077                            selected = 'selected';
5078                        }
5079
5080                        optionsIzaberi += '<option '+selected+' value="' + ret.sizes[i].productCombinationId + '" '+disabledCombination+'>' + ret.sizes[i].name + '</option>';
5081                    }
5082                }
5083                elementDonationCombination.html(optionsIzaberi);
5084
5085                if(ret.flagHiddenSize){
5086                    $("#content-doantion-combinationId").hide();
5087                }
5088
5089                //calculateValueOrderOnePage();
5090                reloadCartOnePage('donationflagwantproduct');
5091            }
5092        }
5093    });
5094}
5095
5096function handleProductStateSizeMessage() {
5097
5098    $(window).on("storeAvailabilityLoaded", function () {
5099        let sizeMessage= $(".productstate-product .sizes-wrapper .filter-size");
5100
5101        if(typeof sizeMessage === "undefined" || sizeMessage.length === 0 || nb_type_page !== "product") return;
5102
5103        sizeMessage.addClass("hidden");
5104
5105        let sizes = $(".product-attributes-wrapper .product-attributes > li, .productstate-product .product-attributes li");
5106        let activeSize = $(".product-attributes-wrapper .product-attributes > li:not(.disabled).active");
5107        let resetBtn = $(".product-attrs-reset");
5108
5109        if(activeSize.length > 0) {
5110            sizeMessage.addClass("hidden")
5111        } else sizeMessage.removeClass("hidden")
5112
5113        sizes.click(function () {
5114            sizeMessage.addClass("hidden");
5115        })
5116
5117        if(typeof resetBtn !== "undefined" && resetBtn.length > 0) {
5118            resetBtn.click(function () {
5119                sizeMessage.removeClass("hidden")
5120            })
5121        }
5122
5123    })
5124}
5125
5126function showAndHideElementDonation(){
5127
5128    $('input[type="radio"][name="cart_onepage_is_donation"]').click(function(e){
5129        var elementDonationArticle = $('input[type="radio"][name="cart_onepage_donation_articleId"]');
5130        getProductsForDonationOrderOnePage($(this).val());
5131        if($(this).val() == 1){
5132            $("#content-doantion-is-anonymously").removeClass('hide');
5133            $("#content-doantion-articleId").removeClass('hide');
5134            $("#name_choose_product_for_donate_id").removeClass('hide');
5135            $("#name_choose_product_for_gift_id").addClass('hide');
5136            // 2. ovde bi za instituciju trebali da kazemo da je obavezna
5137            elementDonationArticle.data('parsley-required', 'true');
5138            elementDonationArticle.prop("required", "true");
5139        }else{
5140            $("#content-doantion-is-anonymously").addClass('hide');
5141            $("#content-doantion-articleId").addClass('hide');
5142            $("#name_choose_product_for_donate_id").addClass('hide');
5143            $("#name_choose_product_for_gift_id").removeClass('hide');
5144            // 2. ovde bi za instituciju trebali da kazemo da nije obavezna
5145            elementDonationArticle.data('parsley-required', 'false');
5146            elementDonationArticle.prop("required", "false");
5147            elementDonationArticle.removeAttr('required');
5148        }
5149    });
5150
5151    $('input[type="radio"][name="cart_onepage_donation_productId"]').on('ifChecked', function(event){
5152        //calculateValueOrderOnePage();
5153        reloadCartOnePage('donationflagwantproduct');
5154    });
5155
5156    $('#cart_onepage_donation_combinationId').change(function(e){
5157        //calculateValueOrderOnePage();
5158        reloadCartOnePage('donationflagwantproduct');
5159    });
5160}
5161
5162function showAndHodeDonationDescriptionModal(){
5163    if($('#donation_modal').length){
5164        $('#donation_modal').modal('show');
5165        return true;
5166    }
5167    return false;
5168}
5169
5170function showAndHodeGiftDescriptionModal(){
5171    if($('#gift_modal').length){
5172        $('#gift_modal').modal('show');
5173        return true;
5174    }
5175    return false;
5176}
5177
5178function loadDataForDonationProductOrderOnePage(){
5179    if($('input[type="radio"][name="cart_onepage_donation_productId"]').length){
5180        getCombinationsForDonationProductOrderOnePage($('input[type="radio"][name="cart_onepage_donation_productId"]:checked'));
5181        $('input[type="radio"][name="cart_onepage_donation_productId"]').on('ifChecked', function(event){
5182            getCombinationsForDonationProductOrderOnePage($(this));
5183        });
5184    }
5185}
5186
5187function initParsleyRequiredForDonationProductCombination(isDonation){
5188    if($("#cart_onepage_donation_combinationId").length != 0) {
5189        var elementDonationCombination = $('#cart_onepage_donation_combinationId');
5190        if (isDonation == 1) {
5191            // 1. ovde bi za kombinaciju trebali da kazemo da nije obavesna
5192            elementDonationCombination.data('parsley-required', 'false');
5193            elementDonationCombination.prop("required", "false");
5194            elementDonationCombination.removeAttr('required');
5195        } else {
5196            //  1. ovde bi za kombinaciju trebali da kazemo da je obavesna ukoliko proizvod ima kombinacije
5197            elementDonationCombination.data('parsley-required', 'true');
5198            elementDonationCombination.prop("required", "true");
5199        }
5200        elementDonationCombination.parsley().reset();
5201    }
5202}
5203
5204function loadProductLabelInfo(id, e){
5205
5206    e.preventDefault();
5207
5208    if($(".body-product-label-info").hasClass("hidden")){
5209        $.ajax({
5210            type: "POST",
5211            url: nb_active_page_url,
5212            dataType: 'json',
5213            data: {
5214                ajax: "yes",
5215                task: "load_product_label_info",
5216                productId: id,
5217                nbAjax: 1
5218            },
5219            contentType: "application/x-www-form-urlencoded;charset=UTF-8",
5220            success: function(ret){
5221                if(ret.flag){
5222                    $('.body-product-label-info').html(ret.html);
5223                    $('.body-product-label-info').removeClass("hidden");
5224                    $('.details-info-attributes').addClass("rotate");
5225                }
5226            }
5227        });
5228
5229    }else{
5230        $('.body-product-label-info').addClass("hidden");
5231        $('.details-info-attributes').removeClass("rotate");
5232    }
5233
5234};
5235
5236function loginFromCartOnePage(url){
5237    var login_email_element     = $("#login_email");
5238    var login_password_element  = $("#login_password");
5239    var back_url_element        = $("#back_url");
5240    if(!validateLoginFromCartOnePage()){
5241        return false;
5242    }
5243    $.ajax({
5244        type: "POST",
5245        url: url,
5246        data: {
5247            ajax : "yes",
5248            task : "login",
5249            login_email: login_email_element.val(),
5250            login_password: login_password_element.val(),
5251            back_url: back_url_element.val()
5252        },
5253        dataType: 'json',
5254        success: function(ret){
5255            if (ret.flag){
5256                nbshopJS.CustomEventTrigger('loginUserNew',ret.f_USER_PUBLIC_gtm);
5257                window.location = ret.backUrl;
5258            }else{
5259                $(".login_form_cart .alert").removeClass('hidden');
5260                $(".login_form_cart .alert").text(ret.info);
5261            }
5262        }
5263    });
5264}
5265
5266function validateLoginFromCartOnePage(){
5267    return true;
5268}
5269
5270function loadTicketForType($thisElement){
5271    var ticket_type     =  $thisElement.data('ticket-type');
5272    var slide_id        =  $thisElement.data('slide-id');
5273    loadTicketType(ticket_type, slide_id);
5274}
5275
5276function loadTicketType(ticket_type, slide_id){
5277    $.ajax({
5278        type: "POST",
5279        url: getCartPageUrl(),
5280        data: {
5281            //nbAjax: 1,
5282            ajax : "yes",
5283            task : "loadtickettype",
5284            ticket_type: ticket_type,
5285            slide_id: slide_id
5286        },
5287        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
5288        dataType: 'json',
5289        success: function(ret){
5290            if (ret.flag){
5291                $('#ticket-type-desription').html(ret.ticketTypeHtml);
5292                $('#content-ticket-type .title-number-ticket').text($("#ticket-type-desription .ticket-tab-desription").data('title-number-ticket-tab'));
5293                $('#content-ticket-type .title-use-ticket').text($("#ticket-type-desription .ticket-tab-desription").data('title-use-ticket-tab'));
5294                $('#content-ticket-type #cart_ticket').data('bootbox-question', $("#ticket-type-desription .ticket-tab-desription").data('bootbox-question-tab'));
5295                $('#content-ticket-type #cart_ticket').data('bootbox-btn-yes', $("#ticket-type-desription .ticket-tab-desription").data('bootbox-btn-yes-tab'));
5296                $('#content-ticket-type #cart_ticket').data('bootbox-btn-no', $("#ticket-type-desription .ticket-tab-desription").data('bootbox-btn-no-tab'));
5297            }else{
5298                toastr.error(ret.info);
5299            }
5300        }
5301    });
5302}
5303
5304function addOrderTickets(btn){
5305    var order_ticket            = $("#cart_onepage_order_ticket");
5306    var order_security_code     = $("#cart_onepage_order_security_code");
5307    btn.addClass('active');
5308    var errorText = btn.data('error-text');
5309
5310    if(!order_ticket.val()){
5311        toastr.error(errorText);
5312        btn.removeClass('active');
5313        return false;
5314    }
5315
5316    $.ajax({
5317        type: "POST",
5318        url: getCartPageUrl(),
5319        data: {
5320            ajax : "yes",
5321            task : "addorderticket",
5322            order_ticket: order_ticket.val(),
5323            order_security_code: order_security_code.val(),
5324            order_ticket_type: function(){
5325                var order_ticket_type       = '';
5326                if($("#cart_onepage_order_ticket_type").length > 0){
5327                    order_ticket_type = $("#cart_onepage_order_ticket_type").val();
5328                }
5329                return order_ticket_type;
5330            },
5331            order_ticket_value: function(){
5332                var order_ticket_value       = '';
5333                if($("#cart_onepage_order_ticket_value").length > 0){
5334                    order_ticket_value = $("#cart_onepage_order_ticket_value").val();
5335                }
5336                return order_ticket_value;
5337            }
5338        },
5339        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
5340        dataType: 'json',
5341        success: function(ret){
5342            if (ret.flag){
5343                order_ticket.val("");
5344                order_security_code.val("");
5345                $("#cart_onepage_order_ticket_type").val("");
5346                $("#cart_onepage_order_ticket_value").val("");
5347            }else{
5348                toastr.error(ret.info);
5349            }
5350            btn.removeClass('active');
5351            applyTicketOnRefresh('deleteorderticket', 'yes');
5352            //reloadCartOnePage('deleteorderticket');
5353            //getOrderTickets();
5354        }
5355    });
5356}
5357
5358function deleteOrderTickets(order_ticket, textQuestion){
5359    bootbox.confirm(textQuestion, function(result) {
5360        if(!result){
5361            return;
5362        }
5363        $.ajax({
5364            type: "POST",
5365            url: getCartPageUrl(),
5366            data: {
5367                ajax : "yes",
5368                task : "deleteorderticket",
5369                order_ticket: order_ticket
5370            },
5371            contentType: "application/x-www-form-urlencoded;charset=UTF-8",
5372            dataType: 'json',
5373            success: function(ret){
5374                if (ret.flag){
5375                    reloadCartOnePage('deleteorderticket');
5376                    //getOrderTickets();
5377                }else{
5378                    toastr.error(ret.info);
5379                }
5380            }
5381        });
5382    });
5383}
5384
5385function getOrderTickets(){
5386    $.ajax({
5387        type: "POST",
5388        url: getCartPageUrl(),
5389        data: {
5390            ajax : "yes",
5391            task : "getordertickets"
5392        },
5393        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
5394        dataType: 'json',
5395        success: function(ret){
5396            if (ret.flag){
5397                $('#content-ordertickets').html(ret.orderticketsHtml);
5398            }
5399        }
5400    });
5401}
5402
5403function checkOrderTickets(url){
5404    var order_ticket            = $("#check_order_tickets_ticket");
5405    var order_security_code     = $("#check_order_tickets_security_code");
5406    $('.block-check-order-tickets-form-wrapper .loader-wrapper').removeClass('hidden');
5407    $.ajax({
5408        type: "POST",
5409        url: url,
5410        data: {
5411            ajax : "yes",
5412            task : "ckeckorderticket",
5413            order_ticket: order_ticket.val(),
5414            order_security_code: order_security_code.val(),
5415        },
5416        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
5417        dataType: 'json',
5418        success: function(ret){
5419            if (ret.flag){
5420                order_ticket.val("");
5421                order_security_code.val("");
5422                $("#check_order_tickets_content").html(ret.html);
5423            }else{
5424                toastr.error(ret.info);
5425            }
5426            $('.block-check-order-tickets-form-wrapper .loader-wrapper').addClass('hidden');
5427        }
5428    });
5429}
5430
5431function newBillingAddress(thisElement){
5432    $billingAddress =  $('.order-billing-address');
5433    if(thisElement.is(":checked")){
5434        $('.new-billing-addess').removeClass('hidden');
5435        $billingAddress.find('.form-control').data('parsley-required', 'true');
5436        $billingAddress.find('.form-control').prop("required", "true");
5437        $billingAddress.find('select').data('parsley-required', 'true');
5438        $billingAddress.find('select').prop("required", "true");
5439    }else{
5440        $('.new-billing-addess').addClass('hidden');
5441        $billingAddress.find('.form-control').data('parsley-required', 'false');
5442        $billingAddress.find('.form-control').prop("required", "false");
5443        $billingAddress.find('.form-control').removeAttr('required');
5444        $billingAddress.find('select').data('parsley-required', 'false');
5445        $billingAddress.find('select').prop("required", "false");
5446        $billingAddress.find('select').removeAttr('required');
5447    }
5448}
5449
5450//4. nbshop.productcompare.js
5451var NbCompareProduct = new NbCompareProducts();
5452function NbCompareProducts() {};
5453
5454NbCompareProducts.prototype.initLoadProductsSlider = function() {
5455    $(".product-compare-slider .slider").handleSlider();
5456};
5457
5458NbCompareProducts.prototype.loadProducts = function(url) {
5459    $.ajax({
5460        type: "POST",
5461        url: url,
5462        data: 'task=loadProducts&ajax=yes',
5463        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
5464        success: function(ret) {
5465            $('#product-compare-content').html(ret);
5466            NbCompareProduct.initLoadProductsSlider();
5467        }
5468    });
5469};
5470
5471NbCompareProducts.prototype.loadSidebarProducts = function(url) {
5472    $.ajax({
5473        type: "POST",
5474        url: url,
5475        data: 'task=loadSidebarProducts&ajax=yes',
5476        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
5477        success: function(ret) {
5478            $('#product-compare-sidebar-content').html(ret);
5479        }
5480    });
5481};
5482
5483NbCompareProducts.prototype.deleteProduct = function(id, url) {
5484    $.ajax({
5485        type: "POST",
5486        url: url,
5487        data: 'task=deleteProduct&id='+id+'&ajax=yes',
5488        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
5489        dataType: 'json',
5490        success: function(ret) {
5491            if(ret.flag){
5492                toastr.success(ret.info);
5493                NbCompareProduct.loadProducts(url);
5494            }else{
5495                toastr.error(ret.info);
5496            }
5497        }
5498    });
5499};
5500
5501NbCompareProducts.prototype.deleteProductFromSidebar = function(id, url, thisElement) {
5502    $.ajax({
5503        type: "POST",
5504        url: url,
5505        data: 'task=deleteProduct&id='+id+'&ajax=yes',
5506        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
5507        dataType: 'json',
5508        success: function(ret) {
5509            if(ret.flag){
5510                toastr.success(ret.info);
5511                thisElement.parent().remove();
5512                $('.sidebar-product-compare .total .total-nb').html($('#compare-product-sidebar-total').text() - 1);
5513            }else{
5514                toastr.error(ret.info);
5515            }
5516        }
5517    });
5518};
5519
5520NbCompareProducts.prototype.addProduct = function(id, url) {
5521    if ($(window).width() <= 768) {
5522        $(".product-compare a").popover('hide');
5523    }
5524    $.ajax({
5525        type: "POST",
5526        url: url,
5527        data: 'task=addProduct&id='+id+'&ajax=yes',
5528        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
5529        dataType: 'json',
5530        success: function(ret) {
5531            if(ret.flag){
5532                toastr.success(ret.info);
5533                NbCompareProduct.loadSidebarProducts(url);
5534                $(".product-compare-icon-"+id).addClass("active");
5535                $('.sidebar-product-compare').addClass('active').delay(1000).queue(function(next){
5536                    $(this).removeClass('active');
5537                    next();
5538                });
5539            }else{
5540                toastr.error(ret.info);
5541            }
5542        }
5543    });
5544
5545};
5546
5547//5. nbshop.shoppinglist.js
5548//compare products
5549var NbShoppingList = new NbShoppinglist();
5550function NbShoppinglist() {};
5551
5552NbShoppinglist.prototype.resetForm = function() {
5553    $('#shoppinglist_name').val('');
5554    $('#shoppinglist_date').val('');
5555};
5556
5557NbShoppinglist.prototype.initDatepicker = function() {
5558    $('.date').datepicker();
5559};
5560
5561NbShoppinglist.prototype.handleFile = function($file){
5562    $file.on('change', function(){
5563        var input = $(this),
5564            numFiles = input.get(0).files ? input.get(0).files.length : 1,
5565            label = input.val().replace(/\\/g, '/').replace(/.*\//, '');
5566        input.trigger('fileselect', [numFiles, label]);
5567    });
5568
5569    $file.on('fileselect', function(event, numFiles, label){
5570        var input = $(this).parents('.input-group').find(':text'),
5571            log = numFiles > 1 ? numFiles + ' files selected' : label;
5572        if(input.length){
5573            input.val(log);
5574        }
5575    });
5576}
5577
5578NbShoppinglist.prototype.openModal = function(productId, catalogId, url) {
5579    NbShoppingList.loadShoppinglist(productId, catalogId, url);
5580};
5581
5582NbShoppinglist.prototype.loadShoppinglist = function(productId, catalogId, url) {
5583    $.ajax({
5584        type: "POST",
5585        url: url,
5586        data: 'task=loadShoppinglist&ajax=yes&productId='+productId+'&catalogId='+catalogId,
5587        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
5588        success: function(ret) {
5589            $('#shopping-list-modal-content').html(ret);
5590            NbShoppingList.initDatepicker();
5591            NbShoppingList.handleFile($('.btn-file :file'));
5592        }
5593    });
5594};
5595
5596NbShoppinglist.prototype.addShoppinglist = function(url) {
5597    var formData                 = $('#shoppinglist_form').serializeObject();
5598    var shoppingListProductId    = $('#shoppinglist_productId').val();
5599    var shoppingListCatalogId    = $('#shoppinglist_catalogId').val();
5600
5601    var saveShoppinglist = function(formData, shoppingListProductId, shoppingListCatalogId, url){
5602        $.ajax({
5603            type: "POST",
5604            url: url,
5605            data: $.extend(formData, {task:"addShoppinglist", ajax:"yes"}),
5606            contentType: "application/x-www-form-urlencoded;charset=UTF-8",
5607            dataType: 'json',
5608            success: function(ret) {
5609                if(ret.flag){
5610                    toastr.success(ret.info);
5611                    NbShoppingList.resetForm();
5612                    NbShoppingList.loadShoppinglist(shoppingListProductId, shoppingListCatalogId, url);
5613                }else{
5614                    toastr.error(ret.info);
5615                }
5616            }
5617        });
5618    };
5619
5620    if($("#shoppinglist_form .shoppinglist_files_input").length > 0){
5621
5622        var counterFiles    = 0;
5623        var numberFiles     = 0;
5624        var filesObject     = [];
5625        var flagSave        = false;
5626        $("#shoppinglist_form .shoppinglist_files_input").each(function (event) {
5627            if($(this).val() != ''){
5628                flagSave = true;
5629                numberFiles++;
5630            }
5631        });
5632
5633        if(flagSave){
5634            $("#shoppinglist_form .shoppinglist_files_input").each(function (event) {
5635                if($(this).val() != '') {
5636                    var files = this.files,
5637                        name_field = $(this).attr('name');
5638                    $.each(this.files, function (index, file) {
5639                        var reader = new FileReader();
5640                        reader.onload = function (event) {
5641                            counterFiles++;
5642                            object = {};
5643                            object.file_name = file.name;
5644                            object.name_field = name_field;
5645                            object.data = event.target.result;
5646                            filesObject.push(object);
5647                            if (numberFiles == counterFiles) {
5648                                formData = $.extend(formData, {files: filesObject});
5649                                saveShoppinglist(formData, shoppingListProductId, shoppingListCatalogId, url);
5650                            }
5651                        };
5652                        reader.readAsDataURL(file);
5653                    });
5654                }
5655            });
5656        }else{
5657            saveShoppinglist(formData, shoppingListProductId, shoppingListCatalogId, url);
5658        };
5659    }else{
5660        saveShoppinglist(formData, shoppingListProductId, shoppingListCatalogId, url);
5661    }
5662};
5663
5664NbShoppinglist.prototype.deleteShoppinglist = function(id, url, thisElement) {
5665    $.ajax({
5666        type: "POST",
5667        url: url,
5668        data: 'task=deleteShoppinglist&id='+id+'&ajax=yes',
5669        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
5670        dataType: 'json',
5671        success: function(ret) {
5672            if(ret.flag){
5673                toastr.success(ret.info);
5674                thisElement.parent().parent().parent().remove();
5675            }else{
5676                toastr.error(ret.info);
5677            }
5678        }
5679    });
5680};
5681
5682NbShoppinglist.prototype.sendShoppinglist = function(id, email, url) {
5683    $.ajax({
5684        type: "POST",
5685        url: url,
5686        data: 'task=sendShoppinglist&shoppingListId='+id+'&email='+email+'&ajax=yes',
5687        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
5688        dataType: 'json',
5689        success: function(ret) {
5690            if(ret.flag){
5691                toastr.success(ret.info);
5692            }else{
5693                toastr.error(ret.info);
5694            }
5695        }
5696    });
5697};
5698
5699NbShoppinglist.prototype.addShoppinglistItem = function(shoppingLisId, productId, catalogId, url) {
5700    $.ajax({
5701        type: "POST",
5702        url: url,
5703        data: '&task=addShoppinglistItem&shoppingListId='+shoppingLisId+'&productId='+productId+'&catalogId='+catalogId+'&ajax=yes',
5704        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
5705        dataType: 'json',
5706        success: function(ret) {
5707            if(ret.flag){
5708                toastr.success(ret.info);
5709                NbShoppingList.loadShoppinglist(productId, catalogId, url);
5710            }else{
5711                toastr.error(ret.info);
5712            }
5713        }
5714    });
5715};
5716
5717NbShoppinglist.prototype.buyUserShoppinglistItem = function(shoppingListItemId, url) {
5718    $.ajax({
5719        type: "POST",
5720        url: url,
5721        data: '&task=buyusershoppinglistitem&id='+shoppingListItemId+'&ajax=yes',
5722        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
5723        dataType: 'json',
5724        success: function(ret) {
5725            if(ret.flag){
5726                if(!$('.btnWrapperShoppingBuy_'+shoppingListItemId).hasClass("hidden")){
5727                    $('.btnWrapperShoppingBuy_'+shoppingListItemId).addClass("hidden");
5728                }
5729                if($('.btnWrapperShoppedBuy_'+shoppingListItemId).hasClass("hidden")){
5730                    $('.btnWrapperShoppedBuy_'+shoppingListItemId).removeClass("hidden");
5731                }
5732                toastr.success(ret.info);
5733            }else{
5734                toastr.error(ret.info);
5735            }
5736        }
5737    });
5738};
5739
5740NbShoppinglist.prototype.cancelBuyUserShoppinglistItem = function(shoppingListItemId, url) {
5741    $.ajax({
5742        type: "POST",
5743        url: url,
5744        data: '&task=cancelbuyusershoppinglistitem&id='+shoppingListItemId+'&ajax=yes',
5745        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
5746        dataType: 'json',
5747        success: function(ret) {
5748            if(ret.flag){
5749                if($('.btnWrapperShoppingBuy_'+shoppingListItemId).hasClass("hidden")){
5750                    $('.btnWrapperShoppingBuy_'+shoppingListItemId).removeClass("hidden");
5751                }
5752                if(!$('.btnWrapperShoppedBuy_'+shoppingListItemId).hasClass("hidden")){
5753                    $('.btnWrapperShoppedBuy_'+shoppingListItemId).addClass("hidden");
5754                }
5755                toastr.success(ret.info);
5756            }else{
5757                toastr.error(ret.info);
5758            }
5759        }
5760    });
5761};
5762
5763NbShoppinglist.prototype.deleteShoppinglistItem = function(id, url, thisElement) {
5764    $.ajax({
5765        type: "POST",
5766        url: url,
5767        data: '&task=deleteShoppinglistItem&id='+id+'&ajax=yes',
5768        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
5769        dataType: 'json',
5770        success: function(ret) {
5771            if(ret.flag){
5772                toastr.success(ret.info);
5773                thisElement.parent().parent().remove();
5774            }else{
5775                toastr.error(ret.info);
5776            }
5777        }
5778    });
5779};
5780
5781//7. nbshop.recurringpurchas.js
5782var NbRecurringPurchas = new NBRecurringPurchas();
5783function NBRecurringPurchas() {};
5784
5785NBRecurringPurchas.prototype.resetForm = function() {
5786    $('#recurringpurchas_name').val('');
5787    $('#recurringpurchas_message').val('');
5788};
5789
5790NBRecurringPurchas.prototype.initDatepicker = function() {
5791    $('.date').datepicker();
5792};
5793
5794NBRecurringPurchas.prototype.handleFile = function($file){
5795    // $file.on('change', function(){
5796    //     var input = $(this),
5797    //         numFiles = input.get(0).files ? input.get(0).files.length : 1,
5798    //         label = input.val().replace(/\\/g, '/').replace(/.*\//, '');
5799    //     input.trigger('fileselect', [numFiles, label]);
5800    // });
5801    //
5802    // $file.on('fileselect', function(event, numFiles, label){
5803    //     var input = $(this).parents('.input-group').find(':text'),
5804    //         log = numFiles > 1 ? numFiles + ' files selected' : label;
5805    //     if(input.length){
5806    //         input.val(log);
5807    //     }
5808    // });
5809};
5810
5811NBRecurringPurchas.prototype.openModal = function(productId, catalogId, saleStoreId, recurringPurchaseId, url, infoNoSelectedCombination, infoNoCharacteristicValue) {
5812    //todo
5813    //todo ovde moramo da vidimo koju velicinu treba da odabere
5814    var combinationId = $('#product_comb_id').val();
5815    if(combinationId < 1){
5816        toastr.info(infoNoSelectedCombination);
5817        return;
5818    }
5819
5820    var characteristicValue = '';
5821    var hasCharacteristic = -1;
5822    if($("#product_has_characteristic").val() == 1 && $('#product_characteristic_value').length > 0){
5823        characteristicValue = $('#product_characteristic_value').val();
5824        hasCharacteristic = $("#product_has_characteristic").val();
5825        if(characteristicValue == ''){
5826            toastr.info(infoNoCharacteristicValue);
5827            return;
5828        }
5829    }
5830
5831    $("#product_subscribe_modal").modal('show');
5832
5833    $('#recurringpurchas_productId').val(productId);
5834    $('#recurringpurchas_combinationId').val(combinationId);
5835    $('#recurringpurchas_characteristicValue').val(characteristicValue);
5836    $('#recurringpurchas_hasCharacteristic').val(hasCharacteristic);
5837    $('#recurringpurchas_catalogId').val(catalogId);
5838    $('#recurringpurchas_saleStoreId').val(saleStoreId);
5839
5840    NbRecurringPurchas.loadRecurringPurchas(recurringPurchaseId, productId, combinationId, catalogId, url, 'modal');
5841};
5842
5843NBRecurringPurchas.prototype.backOnModalRecurringPurchas = function(url){
5844    var recurringPurchaseId     = $('#recurring_purchas_update_id').val();
5845    var productId               = $('#recurring_purchas_update_productId').val();
5846    var combinationId           = $('#recurring_purchas_update_combinationId').val();
5847    var hasCharacteristic       = $('#recurring_purchas_update_hasCharacteristic').val();
5848    var characteristicValue     = $('#recurring_purchas_update_characteristicValue').val();
5849    var catalogId               = $('#recurring_purchas_update_catalogId').val();
5850    var saleStoreId             = $('#recurring_purchas_update_saleStoreId').val();
5851
5852    $("#product_subscribe_modal").modal('show');
5853
5854    $('#recurringpurchas_productId').val(productId);
5855    $('#recurringpurchas_combinationId').val(combinationId);
5856    $('#recurringpurchas_hasCharacteristic').val(hasCharacteristic);
5857    $('#recurringpurchas_characteristicValue').val(characteristicValue);
5858    $('#recurringpurchas_catalogId').val(catalogId);
5859    $('#recurringpurchas_saleStoreId').val(saleStoreId);
5860
5861    NbRecurringPurchas.loadRecurringPurchas(recurringPurchaseId, productId, combinationId, catalogId, url, 'modal');
5862};
5863
5864NBRecurringPurchas.prototype.showIconsData = function($thisElement){
5865    //$thisElement.children('.hide-icons').toggleClass('show');
5866    $('.hide-icons').removeClass('show');
5867    if($thisElement.find('.hide-icons').hasClass('show')){
5868        $('.show-icons').find('.hide-icons').removeClass('show');
5869    }else{
5870        $thisElement.find('.hide-icons').addClass('show');
5871    }
5872};
5873
5874NBRecurringPurchas.prototype.loadRecurringPurchas = function(recurringPurchaseId, productId, combinationId, catalogId, url, type) {
5875    $.ajax({
5876        type: "POST",
5877        url: url,
5878        data: 'task=loadRecurringPurchas&ajax=yes&id='+recurringPurchaseId+'&productId='+productId+'&combinationId='+combinationId+'&catalogId='+catalogId+'&type='+type,
5879        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
5880        success: function(ret) {
5881
5882            switch (type) {
5883                case 'profile':
5884                    $('#my_recurring_purchas_profile_list_products').html(ret);
5885                    break;
5886                case 'delails':
5887                    $('#my_recurring_purchas_list_products').html(ret);
5888                    break;
5889                case 'modal':
5890                    $('#my_recurring_purchas_list').html(ret);
5891                    break;
5892                default:
5893                    $('#my_recurring_purchas_list').html(ret);
5894                    break;
5895            }
5896
5897            if(recurringPurchaseId > 0){
5898                $('#collapseListGroupHeading-'+recurringPurchaseId+' .panel-title a.toggle-tab').click();
5899            }
5900        }
5901    });
5902};
5903
5904NBRecurringPurchas.prototype.loadRecurringPurchasForId = function(recurringPurchaseId, url) {
5905    $.ajax({
5906        type: "POST",
5907        url: url,
5908        data: 'task=loadRecurringPurchasForId&ajax=yes&id='+recurringPurchaseId,
5909        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
5910        dataType: 'json',
5911        success: function(ret) {
5912            if(ret.flag){
5913
5914                if($('#recurring_purchas_total_quantity').length > 0){
5915                    $('#recurring_purchas_total_quantity').text(ret.formateSumQuantity);
5916                }
5917
5918                if($('#recurring_purchas_total_value').length > 0){
5919                    $('#recurring_purchas_total_value').text(ret.formateSumTotalPrice);
5920                }
5921
5922                $('#my_recurring_purchas_list_products').html(ret.html);
5923            }
5924        }
5925    });
5926};
5927
5928
5929NBRecurringPurchas.prototype.addRecurringPurchas = function(url, typeLoad) {
5930    //var formData                 = $('#shoppinglist_form').serialize();
5931    var formData                            = $('#recurringpurchas_form').serializeObject();
5932    var recurringPurchasPriductId           = $('#recurringpurchas_productId').val();
5933    var recurringPurchasCombinationIdId     = $('#recurringpurchas_combinationId').val();
5934    var recurringPurchasCatalogId           = $('#recurringpurchas_catalogId').val();
5935
5936    var saveRecurringPurchas = function(formData, recurringPurchasProductId, recurringPurchasCombinationIdId, recurringPurchasCatalogId, url){
5937        $.ajax({
5938            type: "POST",
5939            url: url,
5940            data: $.extend(formData, {task:"addRecurringPurchas", ajax:"yes"}),
5941            contentType: "application/x-www-form-urlencoded;charset=UTF-8",
5942            dataType: 'json',
5943            success: function(ret) {
5944                if(ret.flag){
5945                    toastr.success(ret.info);
5946                    NbRecurringPurchas.resetForm();
5947                    NbRecurringPurchas.loadRecurringPurchas(ret.recurringPurchaseId, recurringPurchasProductId, recurringPurchasCombinationIdId, recurringPurchasCatalogId, url, typeLoad);
5948                }else{
5949                    toastr.error(ret.info);
5950                }
5951            }
5952        });
5953    };
5954
5955    saveRecurringPurchas(formData, recurringPurchasPriductId, recurringPurchasCombinationIdId, recurringPurchasCatalogId, url);
5956
5957};
5958
5959NBRecurringPurchas.prototype.updateRecurringPurchas = function(url) {
5960    var formData                            = $('#recurringpurchas_form_update').serializeObject();
5961    var typeLoad                            = $('#recurringpurchas_form_update').val();
5962
5963    var editRecurringPurchas = function(formData, typeLoad, url){
5964        $.ajax({
5965            type: "POST",
5966            url: url,
5967            data: $.extend(formData, {task:"updateRecurringPurchas", ajax:"yes"}),
5968            contentType: "application/x-www-form-urlencoded;charset=UTF-8",
5969            dataType: 'json',
5970            success: function(ret) {
5971                if(ret.flag){
5972                    toastr.success(ret.info);
5973
5974                    if(ret.typeLoad == 'profile'){
5975                        NbRecurringPurchas.loadRecurringPurchas(ret.id, -1, -1, -1, url, ret.typeLoad);
5976                    }else{
5977                        if($('#recurring_purchas_date_text').length > 0){
5978                            $('#recurring_purchas_date_text').text(ret.dateFormat);
5979                        }
5980
5981                        if($('#recurring_purchas_date_next_delivery_text').length > 0){
5982                            $('#recurring_purchas_date_next_delivery_text').text(ret.dateNextDeliveryFormat);
5983
5984                            if(ret.status == 1){
5985                                if($('#recurring_purchas_date_next_delivery_text_content').hasClass('hidden')){
5986                                    $('#recurring_purchas_date_next_delivery_text_content').removeClass('hidden');
5987                                }
5988                            }else{
5989                                if(!$('#recurring_purchas_date_next_delivery_text_content').hasClass('hidden')){
5990                                    $('#recurring_purchas_date_next_delivery_text_content').addClass('hidden');
5991                                }
5992                            }
5993                        }
5994                    }
5995
5996
5997                }else{
5998                    toastr.error(ret.info);
5999                }
6000            }
6001        });
6002    };
6003
6004    editRecurringPurchas(formData, typeLoad, url);
6005
6006};
6007
6008NBRecurringPurchas.prototype.openEditModal = function(id, url, showBackButton, typeLoad) {
6009
6010    $("#product_subscribe_modal_list").modal('show');
6011
6012    if($('#recurring_purchas_update_productId').length > 0 && $('#recurringpurchas_productId').length > 0 ){
6013        $('#recurring_purchas_update_productId').val($('#recurringpurchas_productId').val());
6014    }
6015
6016    if($('#recurring_purchas_update_combinationId').length > 0 && $('#recurringpurchas_combinationId').length > 0 ){
6017        $('#recurring_purchas_update_combinationId').val($('#recurringpurchas_combinationId').val());
6018    }
6019
6020    if($('#recurring_purchas_update_hasCharacteristic').length > 0 && $('#recurringpurchas_hasCharacteristic').length > 0 ){
6021        $('#recurring_purchas_update_hasCharacteristic').val($('#recurringpurchas_hasCharacteristic').val());
6022    }
6023
6024    if($('#recurring_purchas_update_characteristicValue').length > 0 && $('#recurringpurchas_characteristicValue').length > 0 ){
6025        $('#recurring_purchas_update_characteristicValue').val($('#recurringpurchas_characteristicValue').
6025val());
6026    }
6027
6028    if($('#recurring_purchas_update_catalogId').length > 0 && $('#recurringpurchas_catalogId').length > 0 ){
6029        $('#recurring_purchas_update_catalogId').val($('#recurringpurchas_catalogId').val());
6030    }
6031
6032    if($('#recurring_purchas_update_saleStoreId').length > 0 && $('#recurringpurchas_saleStoreId').length > 0 ){
6033        $('#recurring_purchas_update_saleStoreId').val($('#recurringpurchas_saleStoreId').val());
6034    }
6035
6036    if($('#recurring_purchas_update_typeLoad').length > 0 && $('#recurring_purchas_update_typeLoad').length > 0 ){
6037        $('#recurring_purchas_update_typeLoad').val(typeLoad);
6038    }
6039
6040    if(showBackButton){
6041        $('#recurring_purchas_back_button').removeClass('hidden');
6042    }else{
6043        $('#recurring_purchas_back_button').addClass('hidden');
6044    }
6045
6046    NbRecurringPurchas.getDataRecurringPurchas(id, url);
6047};
6048
6049NBRecurringPurchas.prototype.openModalSendEmail = function(id){
6050    $('#product_subscribe_modal_email').modal('show');
6051
6052    $('#recurring_purchas_send_email_id').val(id);
6053};
6054
6055NBRecurringPurchas.prototype.getDataRecurringPurchas = function(id, url) {
6056    $.ajax({
6057        type: "POST",
6058        url: url,
6059        data: 'task=getDataRecurringPurchas&id='+id+'&ajax=yes',
6060        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
6061        dataType: 'json',
6062        success: function(ret) {
6063            if(ret.flag){
6064
6065                $('#recurring_purchas_name_text').text(ret.name);
6066                $('#recurring_purchas_total_text').text(ret.formateSumTotalPrice);
6067
6068                $("#recurring_purchas_update_status_"+ret.status).icheck('checked');
6069                $(".activation-subscribtion-wrapper .activation-option-image").each(
6070                    function(){
6071                        $(this).removeClass('active');
6072                    }
6073                );
6074                $("#recurring_purchas_update_status_"+ret.status).closest('.activation-option-image').addClass('active');
6075
6076                $('#recurring_purchas_update_order_create_options').val(ret.orderCreateOptions);
6077                //$('#recurring_purchas_update_number').val(ret.number);
6078                $('#recurring_purchas_update_number').html(ret.htmlOptionsnumberOrdersCreate);
6079                $('#recurring_purchas_update_next_delivery').val(ret.nextDelivery);
6080
6081                $('#recurring_purchas_update_date').val(ret.formateDate);
6082                if(ret.counterCreateOrder > 0){
6083                    $('#recurring_purchas_update_date').prop("disabled", true);
6084                    $('#recurring_purchas_update_date').next('.input-group-addon').hide();
6085                }else{
6086                    $('#recurring_purchas_update_date').prop("disabled", false);
6087                    $('#recurring_purchas_update_date').next('.input-group-addon').show();
6088                }
6089
6090                $('#recurring_purchas_update_id').val(ret.id);
6091
6092            }else{
6093                toastr.error(ret.info);
6094            }
6095        }
6096    });
6097};
6098
6099NBRecurringPurchas.prototype.deleteRecurringPurchas = function(id, url, typeLoad, textQuestion, thisElement) {
6100
6101    var flagDelete = true;
6102    bootbox.confirm(textQuestion, function(result) {
6103        if(result){
6104            $.ajax({
6105                type: "POST",
6106                url: url,
6107                data: 'task=deleteRecurringPurchas&id='+id+'&ajax=yes',
6108                contentType: "application/x-www-form-urlencoded;charset=UTF-8",
6109                dataType: 'json',
6110                success: function(ret) {
6111                    if(ret.flag){
6112                        toastr.success(ret.info);
6113                        if(typeLoad == 'redirect'){
6114                            window.location = ret.url;
6115                        }else{
6116                            NbRecurringPurchas.loadRecurringPurchas(id, -1, -1, -1, url, typeLoad);
6117                        }
6118                        //thisElement.parent().parent().parent().remove();
6119                    }else{
6120                        toastr.error(ret.info);
6121                    }
6122                }
6123            });
6124        }
6125    });
6126};
6127
6128NBRecurringPurchas.prototype.sendRecurringPurchas = function(url) {
6129
6130    var id      = $('#recurring_purchas_send_email_id').val();
6131    var email   = $('#recurring_purchas_email_for_send').val();
6132
6133    $.ajax({
6134        type: "POST",
6135        url: url,
6136        data: 'task=sendRecurringPurchas&recurringPurchasId='+id+'&email='+email+'&ajax=yes',
6137        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
6138        dataType: 'json',
6139        success: function(ret) {
6140            if(ret.flag){
6141                toastr.success(ret.info);
6142            }else{
6143                toastr.error(ret.info);
6144            }
6145        }
6146    });
6147};
6148
6149NBRecurringPurchas.prototype.addRecurringPurchasItemOnModal = function(recurringPurchasId, url, infoNoSelectedCombination, infoNoSelectedCharacteristicValue) {
6150
6151    var catalogId                           = $('#recurringpurchas_catalogId').val();
6152    var productId                           = $('#recurringpurchas_productId').val();
6153    var combinationId                       = $('#recurringpurchas_combinationId').val();
6154    var hasCharacteristic                   = $('#recurringpurchas_hasCharacteristic').val();
6155    var characteristicValue                 = $('#recurringpurchas_characteristicValue').val();
6156
6157    if(combinationId < 1){
6158        toastr.info(infoNoSelectedCombination);
6159        exit;
6160    }
6161
6162    if(hasCharacteristic == 1){
6163        if(characteristicValue == ''){
6164            toastr.info(infoNoSelectedCharacteristicValue);
6165            exit;
6166        }
6167    }
6168
6169    NbRecurringPurchas.addRecurringPurchasItem(recurringPurchasId, productId, combinationId, characteristicValue, catalogId, url, 'modal');
6170};
6171
6172NBRecurringPurchas.prototype.addRecurringPurchasItem = function(recurringPurchasId, productId, combinationId, characteristicValue, catalogId, url, typeLoad) {
6173
6174    $.ajax({
6175        type: "POST",
6176        url: url,
6177        data: '&task=addRecurringPurchasItem&recurringPurchasId='+recurringPurchasId+'&productId='+productId+'&combinationId='+combinationId+'&characteristicValue='+characteristicValue+'&catalogId='+catalogId+'&ajax=yes',
6178        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
6179        dataType: 'json',
6180        success: function(ret) {
6181            if(ret.flag){
6182                toastr.success(ret.info);
6183                NbRecurringPurchas.loadRecurringPurchas(recurringPurchasId, productId, combinationId, catalogId, url, typeLoad);
6184            }else{
6185                toastr.error(ret.info);
6186            }
6187        }
6188    });
6189};
6190
6191NBRecurringPurchas.prototype.deleteRecurringPurchasItem = function(id, url, typeLoad, textQuestion, thisElement) {
6192
6193    bootbox.confirm(textQuestion, function(result) {
6194        if(result){
6195            $.ajax({
6196                type: "POST",
6197                url: url,
6198                data: '&task=deleteRecurringPurchasItem&id=' + id + '&ajax=yes',
6199                contentType: "application/x-www-form-urlencoded;charset=UTF-8",
6200                dataType: 'json',
6201                success: function (ret) {
6202                    if (ret.flag) {
6203                        toastr.success(ret.info);
6204                        switch (typeLoad) {
6205                            case 'delails':
6206                                NbRecurringPurchas.loadRecurringPurchasForId(ret.recurringPurchaseId, url);
6207                                break;
6208                            default:
6209                                NbRecurringPurchas.loadRecurringPurchas(ret.recurringPurchaseId, ret.productId, ret.combinationId, ret.catalogId, url, typeLoad);
6210                                break;
6211                        }
6212                        ///thisElement.parent().parent().remove();
6213                    } else {
6214                        toastr.error(ret.info);
6215                    }
6216                }
6217            });
6218        }
6219    });
6220};
6221
6222NBRecurringPurchas.prototype.changeQuantityRecurringPurchasItem = function(id, quantity, type, url, thisElement) {
6223    $.ajax({
6224        type: "POST",
6225        url: url,
6226        data: '&task=changeQuantityRecurringPurchasItem&id='+id+'&quantity='+quantity+'&type='+type+'&ajax=yes',
6227        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
6228        dataType: 'json',
6229        success: function(ret) {
6230            if(ret.flag){
6231                toastr.success(ret.info);
6232
6233                $('#recurring_purchas_product_quantity_'+id).val(ret.newQuantity);
6234
6235                if($('#recurring_purchas_product_total_quantity_'+ret.recurringPurchaseId).length > 0){
6236                    $('#recurring_purchas_product_total_quantity_'+ret.recurringPurchaseId).text(ret.formateSumQuantity);
6237                }
6238
6239                if($('#recurring_purchas_total_quantity').length > 0){
6240                    $('#recurring_purchas_total_quantity').text(ret.formateSumQuantity);
6241                }
6242
6243                if($('#recurring_purchas_product_total_value_'+ret.recurringPurchaseId).length > 0){
6244                    $('#recurring_purchas_product_total_value_'+ret.recurringPurchaseId).text(ret.formateSumTotalPrice);
6245                }
6246
6247                if($('#recurring_purchas_total_value').length > 0){
6248                    $('#recurring_purchas_total_value').text(ret.formateSumTotalPrice);
6249                }
6250
6251                //NbRecurringPurchas.loadRecurringPurchas(ret.productId, ret.combinationId, ret.catalogId, url);
6252                ///thisElement.parent().parent().remove();
6253            }else{
6254                toastr.error(ret.info);
6255            }
6256        }
6257    });
6258};
6259
6260//6. nbshop.catalog.js
6261function NbCatalog() {};
6262
6263NbCatalog.prototype.jumpToSlideBook = function(slide){
6264    $('.catalog-slider').slick('slickGoTo', slide);
6265};
6266
6267NbCatalog.prototype.jumpToSlideBookalt = function(slide){
6268    $('.catalog-slider-bookalt').slick('slickGoTo', slide);
6269};
6270
6271NbCatalog.prototype.test = function(slide){
6272
6273};
6274
6275NbCatalog.prototype.initReloadCatalogReaderUrl = function(position){
6276    var activeSlide             = 0;
6277    var elementCatalogSlider    = $(".catalog-slider .slick-slide.slick-current");
6278    $('.catalog-slider').on('afterChange', function(){
6279        var itemId          = elementCatalogSlider.data("itemid");
6280        var itemUrl         = elementCatalogSlider.data("itemurl");
6281        var itemPage        = elementCatalogSlider.data("itemcounter");
6282        if(typeof itemId != 'undefined' && activeSlide != itemId && activeSlide != 0){
6283            nbCatalog.reloadCatalogReaderUrl(itemId, itemUrl);
6284            nbCatalog.setCatalogReaderActivePage(itemPage);
6285            activeSlide = itemId;
6286        }else if(typeof itemId != 'undefined' && activeSlide != itemId && activeSlide == 0){
6287            activeSlide = itemId;
6288        }else if(typeof itemId != 'undefined' && activeSlide == itemId && activeSlide != 0){
6289
6290        }
6291    });
6292
6293    var activeSlideAlt              = 0;
6294    var elementCatalogSliderBookalt = $(".catalog-slider-bookalt .slick-slide.slick-current");
6295    $('.catalog-slider-bookalt').on('afterChange', function(){
6296        var itemId          = elementCatalogSliderBookalt.data("itemid");
6297        var itemUrl         = elementCatalogSliderBookalt.data("itemurl");
6298        var itemPage        = elementCatalogSliderBookalt.data("itemcounter");
6299        if(typeof itemId != 'undefined' && activeSlideAlt != itemId && activeSlideAlt != 0){
6300            nbCatalog.reloadCatalogReaderUrl(itemId, itemUrl);
6301            nbCatalog.setCatalogReaderActivePage(itemPage);
6302            activeSlideAlt = itemId;
6303        }else if(typeof itemId != 'undefined' && activeSlideAlt != itemId && activeSlideAlt == 0){
6304            activeSlideAlt = itemId;
6305        }else if(typeof itemId != 'undefined' && activeSlideAlt == itemId && activeSlideAlt != 0){
6306
6307        }
6308    });
6309};
6310
6311NbCatalog.prototype.reloadCatalogReaderUrl = function(itemId, itemUrl){
6312    if (typeof itemUrl != 'undefined'){
6313        rewriteURL('', itemUrl);
6314        if(typeof gtag != 'undefined'){
6315            gtag('event', 'page_view')
6316        }
6317        //reloadDFPBanners();
6318    }
6319};
6320
6321NbCatalog.prototype.initCatalog = function() {
6322    $('.orderCatalog').change( function() {
6323        var elementId = $(this).attr('filter-name');
6324        $('#'+elementId).val($(this).val());
6325        nbCatalog.loadForPage(0);
6326    });
6327};
6328
6329NbCatalog.prototype.rewriteURL = function(newUrl) {
6330    rewriteURL('', newUrl);
6331    //reloadDFPBanners();
6332};
6333
6334NbCatalog.prototype.setCatalogReaderActivePage = function(page){
6335    $('#catalogActivePage').html(page);
6336};
6337
6338NbCatalog.prototype.initCatalogListing = function() {
6339    $('.orderCatalog').change( function() {
6340        var elementId = $(this).attr('filter-name');
6341        $('#'+elementId).val($(this).val());
6342        nbCatalog.loadForPage(0);
6343    });
6344};
6345
6346NbCatalog.prototype.loadForPage = function(page) {
6347    $('#f_page').val(page);
6348    nbCatalog.load();
6349};
6350
6351NbCatalog.prototype.load = function() {
6352    var formData    = $("#filter_form").serialize();
6353    var url         = $('#f_page_url').val();
6354    var $productListing = $('.listing-products'),
6355        $loaderWrapper = $productListing.find('.loader-wrapper');
6356    $loaderWrapper.removeClass('hidden');
6357
6358    $.ajax({
6359        type: "POST",
6360        url: url,
6361        data: formData+'&task=load&ajax=yes',
6362        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
6363        success: function(ret) {
6364            $loaderWrapper.addClass('hidden');
6365            nbCatalog.rewriteURL(url);
6366            //remove scroll instances, as its containers are just about to get removed as well
6367            //new app.scroll.remove($productListing.find('.filter-group-items'));
6368            $productListing.html(ret);
6369            $productListing.find('.product-item').addClass('appeared');
6370            new app.handleProductListing($productListing);
6371            new app.handleAppearing($productListing.find('.product-item'));
6372            new app.handlePopover($productListing.find('.product-item [rel=popover]'));
6373            new app.handleFavoriteProduct($productListing.find('.favorite'));
6374            new app.handleCheckboxRadio($productListing.find('.product-listing-filters input[type="checkbox"], .product-listing-filters input[type="radio"]'));
6375            app.ajaxFilter = null;
6376        }
6377    });
6378};
6379
6380NbCatalog.prototype.deleteTagSearch = function() {
6381    $('#search').val('');
6382    nbCatalog.loadForPage(0);
6383};
6384
6385NbCatalog.prototype.addProduct = function(id, url) {};
6386
6387var nbCatalog = new NbCatalog();
6388nbCatalog.initCatalog();
6389nbCatalog.initReloadCatalogReaderUrl(0);
6390
6391//7. promo.js
6392function activeSubMenuPromotion(thisElement, url, task){
6393    $(thisElement).parent().parent().find( "li" ).removeClass('active');
6394    $(thisElement).parent().addClass('active');
6395    loadPromoData(url, task);
6396}
6397
6398function getPromoId(){
6399    return $('#promo-id').val();
6400}
6401
6402function loadPromoData(url, task){
6403    var $promotionWrapper = $(".promotion-wrapper"),
6404        $promotionContent = $promotionWrapper.find("#promotion-content");
6405    $promotionWrapper.find('.loader-wrapper').removeClass('hidden');
6406
6407    $.ajax({
6408        type: "POST",
6409        url: url,
6410        data: {
6411            ajax: "yes",
6412            task: task,
6413            id: getPromoId()
6414        },
6415        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
6416        success: function(ret) {
6417            $promotionContent.html(ret);
6418            $promotionContent.imagesLoaded(function(){
6419                $promotionWrapper.find('.loader-wrapper').addClass('hidden');
6420            });
6421            nbshopJS.handleModalMap($promotionContent.find('.map-link'),MAP_STYLE,$('#map_modal'));//MAP_STYLE is defined intheme.script.js
6422            nbshopJS.handleAccordion($promotionContent.children('.panel-group'));
6423        }
6424    });
6425}
6426
6427function getPromotionTicket(url, promoId){
6428    $('.promotion-wrapper .loader-wrapper').removeClass('hidden');
6429    $.ajax({
6430        type: "POST",
6431        url: url,
6432        data: {
6433            ajax: "yes",
6434            task: "getticket",
6435            id: promoId
6436        },
6437        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
6438        dataType: 'json',
6439        success: function(ret) {
6440            if(ret.flag){
6441                toastr.success(ret.info);
6442                refreshPromotion(url, promoId);
6443            }else{
6444                toastr.error(ret.info);
6445            }
6446            $('.promotion-wrapper .loader-wrapper').addClass('hidden');
6447        }
6448    });
6449}
6450
6451function refreshPromotion(url, promoId){
6452    $.ajax({
6453        type: "POST",
6454        url: url,
6455        data: {
6456            ajax: "yes",
6457            task: "details",
6458            id: promoId
6459        },
6460        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
6461        success: function(ret) {
6462            if (ret) {
6463                $("#promotion-content").html(ret);
6464            } else{
6465                toastr.error(getSTRING('Nastala je greška!'));
6466            }
6467        }
6468    });
6469}
6470
6471function loadStoresForCity(url, city, counter){
6472
6473    var $promotionWrapper = $('.promotion-wrapper'),
6474        $loaderWrapper = $promotionWrapper.find('.loader-wrapper'),
6475        $store = $("#citystore-content-"+counter);
6476
6477    //stop if store has already been populated with locations,
6478    // or it does not even exists
6479    if($store.find('.panel').length) return;
6480    $loaderWrapper.removeClass('hidden');
6481
6482    $.ajax({
6483        type: "POST",
6484        url: url,
6485        data: {
6486            ajax: "yes",
6487            task: "loadstoresforcity",
6488            city: city
6489        },
6490        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
6491        dataType: 'json' ,
6492        success: function(ret) {
6493            if(ret.flag){
6494                $store.html(ret.html);
6495                $loaderWrapper.addClass('hidden');
6496                if($promotionWrapper.hasClass('promotion-wrapper-witouth-modal')){
6497                    $('.map-link').each(function(){
6498                        var lat = $(this).data('lat'),
6499                            lng = $(this).data('lng');
6500                        $(this).parent().attr('data-lat', lat);
6501                        $(this).parent().attr('data-lng', lng);
6502                    });
6503                    nbshopJS.initMapInStoreLoaction();
6504                } else if ($promotionWrapper.hasClass('promotion-wrapper-with-selector')){
6505                    $('.map-link').each(function(){
6506                        var lat = $(this).data('lat'),
6507                            lng = $(this).data('lng');
6508                        $(this).parent().attr('data-lat', lat);
6509                        $(this).parent().attr('data-lng', lng);
6510                    });
6511                    nbshopJS.initMapInStoreLoactionWithSelector();
6512                } else {
6513                    nbshopJS.handleModalMap($store.find('.map-link'),MAP_STYLE,$('#map_modal'));//MAP_STYLE is defined intheme.script.js
6514                }
6515                nbshopJS.handleAccordion($store);
6516
6517                if($store.find('.panel').length == 1){
6518                    loadActionsForStore(url, $store.find('.panel').data('storeid'));
6519                }
6520            }
6521        }
6522    });
6523}
6524
6525function loadStoresForCapitalCity(url, capitalcity, counter){
6526
6527    var $promotionWrapper = $('.promotion-wrapper'),
6528        $loaderWrapper = $promotionWrapper.find('.loader-wrapper'),
6529        $store = $("#citystore-content-"+counter);
6530
6531    //stop if store has already been populated with locations,
6532    // or it does not even exists
6533    if($store.find('.panel').length) return;
6534
6535    $loaderWrapper.removeClass('hidden');
6536
6537    $.ajax({
6538        type: "POST",
6539        url: url,
6540        data: {
6541            ajax: "yes",
6542            task: "loadstoresforcapitalcity",
6543            capitalcity: capitalcity
6544        },
6545        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
6546        dataType: 'json' ,
6547        success: function(ret) {
6548            if(ret.flag){
6549                $store.html(ret.html);
6550                $loaderWrapper.addClass('hidden');
6551                if($promotionWrapper.hasClass('promotion-wrapper-witouth-modal')){
6552                    $('.map-link').each(function(){
6553                        var lat = $(this).data('lat'),
6554                            lng = $(this).data('lng');
6555                        $(this).parent().attr('data-lat', lat);
6556                        $(this).parent().attr('data-lng', lng);
6557                    });
6558                    nbshopJS.initMapInStoreLoaction();
6559                } else if ($promotionWrapper.hasClass('promotion-wrapper-with-selector')){
6560                    $('.map-link').each(function(){
6561                        var lat = $(this).data('lat'),
6562                            lng = $(this).data('lng');
6563                        $(this).parent().attr('data-lat', lat);
6564                        $(this).parent().attr('data-lng', lng);
6565                    });
6566                    nbshopJS.initMapInStoreLoactionWithSelector();
6567                } else {
6568                    nbshopJS.handleModalMap($store.find('.map-link'),MAP_STYLE,$('#map_modal'));//MAP_STYLE is defined intheme.script.js
6569                }
6570                nbshopJS.handleAccordion($store);
6571
6572                if($store.find('.panel').length == 1){
6573                    loadActionsForStore(url, $store.find('.panel').data('storeid'));
6574                }
6575            }
6576        }
6577    });
6578}
6579
6580function loadActionsForStore(url, storeId){
6581    $('.promotion-wrapper .loader-wrapper').removeClass('hidden');
6582    $.ajax({
6583        type: "POST",
6584        url: url,
6585        data: {
6586            ajax: "yes",
6587            task: "loadactionsforstore",
6588            storeId: storeId
6589        },
6590        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
6591        success: function(ret) {
6592            $('#store-actions-'+storeId).html(ret);
6593            $('.promotion-wrapper .loader-wrapper').addClass('hidden');
6594        }
6595    });
6596}
6597
6598function loadStoreDataByCode(url, storeCode, sizes){
6599    var $promotionWrapper = $('.promotion-wrapper'),
6600        $loaderWrapper = $promotionWrapper.find('.loader-wrapper'),
6601        $storeContent = $('#data-store-content-'+storeCode);
6602    if($storeContent.html().trim()){
6603        return;
6604    }
6605    $loaderWrapper.removeClass('hidden');
6606    $.ajax({
6607        type: "POST",
6608        url: url,
6609        data: {
6610            ajax: "yes",
6611            task: "storesforcode",
6612            storeCode: storeCode,
6613            sizes: sizes
6614        },
6615        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
6616        success: function(ret) {
6617            $storeContent.html(ret);
6618            $loaderWrapper.addClass('hidden');
6619            nbshopJS.handleModalMap($storeContent.find('.map-link'),MAP_STYLE,$('#map_modal'));//MAP_STYLE is defined intheme.script.js
6620            nbshopJS.handleAccordion($storeContent);
6621        }
6622    });
6623}
6624
6625function searchProductDataEnter(ev, url){
6626    if (((ev.which && ev.which == 13) || (ev.keyCode && ev.keyCode == 13))){
6627        searchProductData(url);
6628    }
6629}
6630
6631function searchProductData(url){
6632    var search = $('#promotion-search').val();
6633    $('.promotion-wrapper .loader-wrapper').removeClass('hidden');
6634    $('.autocomplete-loader').removeClass('hidden');
6635    element.siblings().removeClass('active');
6636    element.addClass('active');
6637    $.ajax({
6638        type: "POST",
6639        url: url,
6640        dataType: 'json',
6641        data: 'task=searchproduct&returnType=json&search='+search+'&ajax=yes',
6642        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
6643        success: function(ret) {
6644            if(ret.flag){
6645                $('#search-result').html(ret.info);
6646                nbshopJS.handleModalMap($('.stores-wrapper .map-link'),MAP_STYLE,$('#map_modal'));//MAP_STYLE is defined intheme.script.js
6647                $('.promotion-wrapper .loader-wrapper').addClass('hidden');
6648                nbshopJS.handleAccordion($('#accordion'));
6649            }
6650        }
6651    });
6652}
6653
6654function searchProductDataTab(url, productCode){
6655    var search = productCode;
6656    $('.promotion-wrapper .loader-wrapper').removeClass('hidden');
6657    $.ajax({
6658        type: "POST",
6659        url: url,
6660        dataType: 'json',
6661        data: 'task=searchproduct&returnType=json&tabview=yes&search='+search+'&ajax=yes',
6662        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
6663        success: function(ret) {
6664            if(ret.flag){
6665                $('#tab_product_check').html(ret.info)
6666                nbshopJS.handleModalMap($('.stores-wrapper .map-link'),MAP_STYLE,$('#map_modal'));//MAP_STYLE is defined intheme.script.js
6667                $('.promotion-wrapper .loader-wrapper').addClass('hidden');
6668                nbshopJS.handleAccordion($('#accordion'));
6669                nbshopJS.selectStoreProductSize();
6670                handleStoreCitySelect();
6671                nbshopJS.CustomEventTrigger('storeAvailabilityLoaded');
6672            }
6673        }
6674    });
6675    //dodajemo da se prati klik na proveru dostupnosti po radnjama
6676    if(typeof ga == 'function'){
6677        ga('send', 'event', 'CHECK_AVAILABILITY_IN_STORE', 'action');
6678    }
6679
6680    if(typeof gtag == 'function'){
6681        gtag('event', 'CHECK_AVAILABILITY_IN_STORE', {'productcode': productCode});
6682    }
6683}
6684
6685function searchProductDataTabSapCar(url, productCode){
6686    var search = productCode;
6687    $('.promotion-wrapper .loader-wrapper').removeClass('hidden');
6688    $.ajax({
6689        type: "POST",
6690        url: url,
6691        dataType: 'json',
6692        data: 'task=searchproductsapcar&returnType=json&tabview=yes&search='+search+'&ajax=yes',
6693        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
6694        success: function(ret) {
6695            if(ret.flag){
6696                $('#tab_product_check_sapcar').html(ret.info)
6697                nbshopJS.selectStoreProductSize();
6698                nbshopJS.CustomEventTrigger('storeAvailabilityLoaded');
6699            }
6700        }
6701    });
6702}
6703
6704function handleStoreCitySelect() {
6705    let cityStoreSelect = $("#city_store_availability_filter");
6706
6707    if(typeof cityStoreSelect === "undefined" || cityStoreSelect.length === 0) return;
6708
6709    cityStoreSelect.on('change', function () {
6710
6711        let stores = $(".store-content");
6712
6713        if(typeof stores === "undefined" || stores.length === 0) return;
6714
6715        stores.removeClass("hidden");
6716
6717        var selectedOption = $(this).val();
6718
6719        if(selectedOption === "default") return;
6720
6721        for(let store of stores) {
6722            let storeCityId = $(store).data('store-city-id');
6723            if(typeof storeCityId !== "undefined" && storeCityId !== parseFloat(selectedOption)) {
6724                $(store).addClass("hidden");
6725            }
6726        }
6727
6728    });
6729}
6730
6731function checkSizeAvailabilityInSapCar(url, productId, productCode, productCombinationId, element){
6732
6733    $('.promotion-wrapper .loader-wrapper').removeClass('hidden');
6734    $('.autocomplete-loader').removeClass('hidden');
6735    element.siblings().removeClass('active');
6736    element.addClass('active');
6737    $.ajax({
6738        type: "POST",
6739        url: url,
6740        dataType: 'json',
6741        data: 'task=checksizeavailabilityinsapcar&returnType=json&tabview=yes&productId='+productId+'&productCode='+productCode+'&id='+productCombinationId+'&ajax=yes',
6742        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
6743        success: function(ret) {
6744            if(ret.flag){
6745                $('.autocomplete-loader').removeClass('hidden');
6746                $('#tab_product_check_by_store_sapcar').html(ret.info);
6747                nbshopJS.handleModalMap($('.map-link'),MAP_STYLE,$('#map_modal'));
6748                handleStoreCitySelect();
6749                if(typeof $('#map_modal') === "undefined" || $('#map_modal').length === 0) {
6750                    $('body').append($('#map_modal'));
6751                }
6752                nbshopJS.CustomEventTrigger('checkSizeAvailabilityInSapCar');
6753            }
6754        }
6755    });
6756}
6757
6758function searchProductXmlDataTab(url, productCode){
6759    var search = productCode;
6760    $('.promotion-wrapper .loader-wrapper').removeClass('hidden');
6761    $.ajax({
6762        type: "POST",
6763        url: url,
6764        dataType: 'json',
6765        data: 'task=searchproductxml&returnType=json&tabview=yes&search='+search+'&ajax=yes',
6766        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
6767        success: function(ret) {
6768            if(ret.flag){
6769                $('#tab_product_check').html(ret.info)
6770                nbshopJS.handleModalMap($('.stores-wrapper .map-link'),MAP_STYLE,$('#map_modal'));//MAP_STYLE is defined intheme.script.js
6771                $('.promotion-wrapper .loader-wrapper').addClass('hidden');
6772                nbshopJS.handleAccordion($('#accordion'));
6773                nbshopJS.selectStoreProductSize();
6774            }
6775        }
6776    });
6777    //dodajemo da se prati klik na proveru dostupnosti po radnjama
6778    if(typeof ga == 'function'){
6779        ga('send', 'event', 'CHECK_AVAILABILITY_IN_STORE', 'action');
6780    }
6781
6782    if(typeof gtag == 'function'){
6783        gtag('event', 'CHECK_AVAILABILITY_IN_STORE', {'productcode': productCode});
6784    }
6785}
6786
6787
6788function getProductPricesForCountries(productId){
6789
6790    $('.promotion-wrapper .loader-wrapper').removeClass('hidden');
6791    $.ajax({
6792        type: "POST",
6793        url: nb_active_page_url,
6794        dataType: 'json',
6795        data: {
6796            ajax: "yes",
6797            tabview: "yes",
6798            task: "getproductpriceforcountries",
6799            productId: productId,
6800            nbAjax: 1
6801        },
6802        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
6803        success: function(ret){
6804            if(ret.flag){
6805                $('#tab_product_pricesforcountries').html(ret.htmlData);
6806            }
6807        }
6808    });
6809}
6810
6811function searchListsProductsItemsTab(productCode){
6812    var search = productCode;
6813    $('.lists-products-items-wrapper .loader-wrapper').removeClass('hidden');
6814    $.ajax({
6815        type: "POST",
6816        url: nb_active_page_url,
6817        dataType : 'html',
6818        data: {
6819            ajax: "yes",
6820            tabview: "yes",
6821            task: "searchlistsproductsitems",
6822            search: search,
6823            nbAjax: 1
6824        },
6825        cache: false,
6826        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
6827        success: function(ret) {
6828            $('#tab_product_lists_products_items').html(ret);
6829            nbshopJS.CustomEventTrigger('listsProductsItemsProductDetail');
6830        }
6831    });
6832}
6833
6834function searchShowHideSizes(thisElement, size_s){
6835
6836    if($('.stores-wrapper#accordion').hasClass('collapse')) {
6837        $('.stores-wrapper#accordion').removeClass('collapse')
6838    }
6839
6840    thisElement.parent().find( "li" ).removeClass('active');
6841    thisElement.addClass('active');
6842    var sizeFound = false;
6843    $('.storeavaliability-msg').addClass('hidden');
6844    $('.store-content').each(function(){
6845        var $store = $(this),
6846            sizes = $store.data('sizes-avaliable'),
6847            sizesArr = sizes ? sizes.split('|') : [];
6848
6849        $store.hide();
6850        if(!sizesArr.length) return;
6851        sizesArr.forEach(function(sizeName){
6852            if(sizeName === size_s){
6853                $store.show();
6854                sizeFound = true;
6855                return;
6856            }
6857        });
6858    });
6859    if(!sizeFound){
6860        $('.storeavaliability-msg').removeClass('hidden');
6861    }
6862}
6863
6864function cancelSizeAvailability(){
6865    $('.store-content').show();
6866    $('.storeavaliability-msg').addClass('hidden');
6867    $('.product-attributes').find( "li" ).removeClass('active');
6868}
6869
6870//8. comments.js
6871function clickReview(review, typeObject, objectId, commentId, userPublicId, type){
6872    var commentReviewId = "#commentReviewId-"+commentId;
6873    var id              = $(commentReviewId).val();
6874    var data = {
6875        'nbAjax': 1,
6876        'task': 'reviewing',
6877        'id': id,
6878        'review': review,
6879        'typeObject': typeObject,
6880        'objectId': objectId,
6881        'commentId': commentId,
6882        'userPublicId': userPublicId,
6883        'type': type
6884    };
6885    $.ajax({
6886        type: "POST",
6887        url: nb_active_page_url,
6888        data: data,
6889        dataType: 'json',
6890        success: function(ret){
6891            $(commentReviewId).val(ret);
6892            reloadNumberReviews(typeObject, objectId, commentId, userPublicId, type);
6893        }
6894    });
6895}
6896
6897function reloadNumberReviews(typeObject, objectId, commentId, userPublicId, type){
6898    var data = {
6899        'nbAjax': 1,
6900        'task': 'getreview',
6901        'typeObject': typeObject,
6902        'objectId': objectId,
6903        'commentId': commentId
6904    };
6905    $.ajax({
6906        type: "POST",
6907        url: nb_active_page_url,
6908        data: data,
6909        dataType: 'json',
6910        success: function(ret){
6911            if(typeof type != 'undefined' && type == 'helpful'){
6912                setHelpfulButton(typeObject, objectId, commentId, userPublicId);
6913            } else {
6914                $("#numberLikes-"+commentId).html(ret.positive);
6915                $("#numberDislikes-"+commentId).html(ret.negative);
6916                setIconColor(typeObject, objectId, commentId, userPublicId);
6917            }
6918        }
6919    });
6920}
6921
6922function setHelpfulButton(typeObject, objectId, commentId, userPublicId){
6923    var data = {
6924        'nbAjax': 1,
6925        'task': 'checkcommentreview',
6926        'type': 'helpful',
6927        'typeObject': typeObject,
6928        'objectId': objectId,
6929        'commentId': commentId,
6930        'userPublicId': userPublicId
6931    };
6932    $.ajax({
6933        type: "POST",
6934        url: nb_active_page_url,
6935        data: data,
6936        dataType: 'json',
6937        success: function(ret){
6938            var positive        = '';
6939            var negative        = '';
6940            var positiveDisable = false;
6941            var negativeDisable = false;
6942
6943            if(ret.review == 1){
6944                negative = 'useless';
6945                negativeDisable = true;
6946            } else if (ret.review == 2){
6947                positive = 'helpful';
6948                positiveDisable = true;
6949            }
6950            //removeClass
6951            $("#button-helpful-"+commentId).removeClass('helpful');
6952            $("#button-useless-"+commentId).removeClass('useless');
6953            //addClass
6954            $("#button-helpful-"+commentId).addClass(positive);
6955            $("#button-useless-"+commentId).addClass(negative);
6956            //remove or add Disabled
6957            $("#button-helpful-"+commentId).prop('disabled', positiveDisable);
6958            $("#button-useless-"+commentId).prop('disabled', negativeDisable);
6959        }
6960    });
6961}
6962
6963function setIconColor(typeObject, objectId, commentId, userPublicId){
6964    var data = {
6965        'nbAjax': 1,
6966        'task': 'checkcommentreview',
6967        'type': 'like',
6968        'typeObject': typeObject,
6969        'objectId': objectId,
6970        'commentId': commentId,
6971        'userPublicId': userPublicId
6972    };
6973    $.ajax({
6974        type: "POST",
6975        url: nb_active_page_url,
6976        data: data,
6977        dataType: 'json',
6978        success: function(ret){
6979            var positive        = '';
6980            var negative        = '';
6981            var positiveDisable = false;
6982            var negativeDisable = false;
6983            if(ret.review == 1){
6984                negative = 'red';
6985                negativeDisable = true;
6986            } else if (ret.review == 2){
6987                positive = 'green';
6988                positiveDisable = true;
6989            }
6990            $("#icon-like-"+commentId).css('color', positive);
6991            $("#icon-dislike-"+commentId).css('color', negative);
6992            $("#icon-like-"+commentId).prop('disabled', positiveDisable);
6993            $("#icon-dislike-"+commentId).prop('disabled', negativeDisable);
6994        }
6995    });
6996}
6997
6998//RATING
6999function init_ratingStarsOrderAll(){
7000    if($('.rateYoInitialOrder').length){
7001        $(".rateYoInitialOrder").each(function(){
7002            var orderId         = $(this).data("order-id");
7003            var productId       = $(this).data("product-id");
7004            var data = {
7005                'orderId': orderId,
7006                'productId': productId
7007            };
7008            init_ratingStarsOrder(data, this);
7009        });
7010    }
7011}
7012
7013//inicijalizujemo rejting prilikom ostavljanja komentara
7014function init_ratingStars(rateWholeNumberStar){
7015
7016    // Zaokruživanje na ceo broj prilikom ocenjivanja
7017    var num = false;
7018    let finalVal = 0;
7019    if(rateWholeNumberStar){
7020        num = 20;
7021        if(rateWholeNumberStar === 'halfstar'){
7022            num = 10;
7023        }
7024    }
7025
7026    if($("#rateYo").length){
7027        var element = $('#rateYo'),
7028            rateWrapper = element.find('.rate-wrapper');
7029        var setedRatio = 0;
7030        var wrapperWidth = $('#rateYo .rate-wrapper').width();
7031
7032        if ($('#require-comment-array').length) {
7033            $('label[for=comment_message] span').hide();
7034        }
7035
7036        var relX = 0;
7037        rateWrapper.mousemove(function(event){
7038            var rateWrapperOffset = $(this).offset();
7039            var relX = event.pageX - rateWrapperOffset.left;
7040            if(num){
7041                relX = Math.ceil(relX / num) * num;
7042            }
7043            if(relX > 100){
7044                relX = 100;
7045            }
7046            $(this).find('.front-stars').css('width', relX);
7047        });
7048
7049        rateWrapper.click(function(event) {
7050            var rateWrapperOffset = $(this).offset();
7051            var relX = event.pageX - rateWrapperOffset.left;
7052
7053            // Zaokruživanje na ceo broj prilikom ocenjivanja
7054            if(num){
7055                var addRelX = 1;
7056                if(relX/num == Math.floor(relX/num)){
7057                    addRelX = 0;
7058                }
7059                relX = (Math.floor(relX/num)+addRelX)*num;
7060            }
7061
7062            requireCommentValidation(relX);
7063            commentTooltip(relX)
7064
7065            setedRatio = relX;
7066
7067            setedRatio = (setedRatio > 100) ? 100 : setedRatio;
7068
7069            finalVal = ((relX/wrapperWidth)*100);
7070
7071            if(finalVal > 100){
7072                finalVal = 100;
7073            }
7074            $('#rating_stars').val(finalVal);
7075
7076        });
7077
7078        element.mouseout(function(){
7079            $(this).find('.front-stars').css('width', setedRatio);
7080        });
7081    }
7082}
7083
7084function requireCommentValidation(relX){
7085    if ($('#require-comment-array').length) {
7086        var requireComment = $('#require-comment-array').val().split(",");
7087        var ratingRequireSelected = Math.floor(relX/20);
7088        if(ratingRequireSelected != relX/20){
7089            ratingRequireSelected = ratingRequireSelected+1;
7090        }
7091
7092        var ratingRequireSelectedFlag = false;
7093        switch (ratingRequireSelected) {
7094            case 1:
7095                if (jQuery.inArray('one', requireComment) != -1) {
7096                    ratingRequireSelectedFlag = true;
7097                }
7098                break;
7099            case 2:
7100                if (jQuery.inArray('two', requireComment) != -1) {
7101                    ratingRequireSelectedFlag = true;
7102                }
7103                break;
7104            case 3:
7105                if (jQuery.inArray('three', requireComment) != -1) {
7106                    ratingRequireSelectedFlag = true;
7107                }
7108                break;
7109            case 4:
7110                if (jQuery.inArray('four', requireComment) != -1) {
7111                    ratingRequireSelectedFlag = true;
7112                }
7113                break;
7114            case 5:
7115                if (jQuery.inArray('five', requireComment) != -1) {
7116                    ratingRequireSelectedFlag = true;
7117                }
7118        }
7119
7120        setTimeout(function (){
7121            if(ratingRequireSelectedFlag) {
7122                $('#comment_message').prop("required", true);
7123                    $('#comment_message').next('.validation-errors-list').show();
7124                    $('label[for=comment_message] span').show();
7125            } else {
7126                $('#comment_message').prop("required", false);
7127                    $('#comment_message').parsley().reset();
7128                    $('#comment_message').next('.validation-errors-list').hide();
7129                    $('label[for=comment_message] span').hide();
7130            }
7131        }, 100);
7132
7133    }
7134}
7135
7136function commentTooltip(relX){
7137    var ratingRequireSelected = Math.floor(relX/20);
7138    if(ratingRequireSelected != relX/20){
7139        ratingRequireSelected = ratingRequireSelected+1;
7140    }
7141    $("label[for='comment_message'] i").hide();
7142    switch (ratingRequireSelected) {
7143        case 1:
7144            if($('#tooltip-one').length && $('#tooltip-one').val() != ''){
7145                $("label[for='comment_message'] i").attr('data-original-title', $('#tooltip-one').val());
7146                $("label[for='comment_message'] i").show();
7147            }
7148            break;
7149        case 2:
7150            if($('#tooltip-two').length && $('#tooltip-two').val() != ''){
7151                $("label[for='comment_message'] i").attr('data-original-title', $('#tooltip-two').val());
7152                $("label[for='comment_message'] i").show();
7153            }
7154            break;
7155        case 3:
7156            if($('#tooltip-three').length && $('#tooltip-three').val() != ''){
7157                $("label[for='comment_message'] i").attr('data-original-title', $('#tooltip-three').val());
7158                $("label[for='comment_message'] i").show();
7159            }
7160            break;
7161        case 4:
7162            if($('#tooltip-four').length && $('#tooltip-four').val() != ''){
7163                $("label[for='comment_message'] i").attr('data-original-title', $('#tooltip-four').val());
7164                $("label[for='comment_message'] i").show();
7165            }
7166            break;
7167        case 5:
7168            if($('#tooltip-five').length && $('#tooltip-five').val() != ''){
7169                $("label[for='comment_message'] i").attr('data-original-title', $('#tooltip-five').val());
7170                $("label[for='comment_message'] i").show();
7171            }
7172    }
7173
7174}
7175
7176//COMMENT IN ORDER
7177function openCommentFormOrder(productId){
7178    var data = {
7179        'nbAjax': 1,
7180        'task': 'form_comment_product_order',
7181        'productId': productId
7182    };
7183    $.ajax({
7184        type: "POST",
7185        url: nb_active_page_url,
7186        data: data,
7187        dataType: 'json',
7188        success: function(ret){
7189            if(ret.flag){
7190                $("#form-comment-product-order").html(ret.html);
7191                init_ratingStars();
7192                $('#comment_order_product').modal('show');
7193            }
7194        }
7195    });
7196}
7197
7198function saveCommentFromProfile(orderId, productId) {
7199    var formData = $("#forma-comment-product-order-"+orderId+"-"+productId+"").serialize();
7200    formData += "&orderId="+orderId+"&productId="+productId;
7201    $.ajax({
7202        type: "POST",
7203        url: nb_active_page_url,
7204        data: 'nbAjax=1&task=save_comment&'+formData,
7205        dataType: 'json',
7206        success: function(ret){
7207            $('#form-comment-product-order-'+orderId+"-"+productId+"").html('<div class="alert-success">'+ret.info+'</div>');
7208        }
7209    });
7210}
7211
7212//10 Contact JS
7213var NbContact = new NbContacts();
7214function NbContacts() {};
7215
7216NbContacts.prototype.addContactServiceIntervention = function(e) {
7217    e.preventDefault();
7218    var url         = $('#contact_service_intervention').attr("action");
7219    var formData    = $('#contact_service_intervention').serialize();
7220    $.ajax({
7221        type: "POST",
7222        url: url,
7223        data: formData+'&task=addcontactserviceintervention&ajax=yes',
7224        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
7225        dataType: 'json',
7226        success: function(ret) {
7227            if(ret.flag){
7228                //toastr.success(ret.info);
7229                $('#contact_service_intervention').hide();
7230                $('.alert-success.contact_service_intervention').removeClass('hidden').text(ret.info);
7231            }else{
7232                toastr.error(ret.info);
7233                $("#contact_service_intervention .send-request-service-intervention").removeClass('active');
7234            }
7235        }
7236    });
7237};
7238
7239NbContacts.prototype.sendRequestPriceCatalogQuery = function(e) {
7240
7241    e.preventDefault();
7242
7243    var url                         = $('#price_catalog_query_form').attr("action");
7244
7245    var product_query_firstname     = $('#price_catalog_query_firstname').val();
7246    var product_query_lastname      = $('#price_catalog_query_lastname').val();
7247    var product_query_phone         = $('#price_catalog_query_phone').val();
7248    var product_query_email         = $('#price_catalog_query_email').val();
7249    var product_query_message       = $('#price_catalog_query_message').val();
7250    var product_query_product_id    = $('#price_catalog_query_product_id').val();
7251    var product_query_anti_spam     = $('#price_catalog_query_anti_spam').val();
7252    var product_query_type          = $('#price_catalog_query_type').val();
7253
7254    $.ajax({
7255        type: "POST",
7256        url: url,
7257        data: 'task=productquery&ajax=yes' +
7258            '&product_query_firstname='+product_query_firstname+
7259            '&product_query_lastname='+product_query_lastname+
7260            '&product_query_phone='+product_query_phone+
7261            '&product_query_email='+product_query_email+
7262            '&product_query_message='+product_query_message+
7263            '&product_query_product_id='+product_query_product_id+
7264            '&product_query_anti_spam='+product_query_anti_spam+
7265            '&product_query_type='+product_query_type,
7266        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
7267        dataType: 'json',
7268        success: function(ret) {
7269            if(ret.flag){
7270                //toastr.success(ret.info);
7271                $('#price_catalog_query_form').hide();
7272                $('.alert-success.price_catalog_query_info').removeClass('hidden').text(ret.info);
7273                $("#price_catalog_query_form .send-request-price-catalog-query").removeClass('active');
7274            }else{
7275                toastr.error(ret.info);
7276                $("#price_catalog_query_form .send-request-price-catalog-query").removeClass('active');
7277            }
7278        }
7279    });
7280};
7281
7282
7283NbContacts.prototype.addContactBookingIntervention = function(e) {
7284    e.preventDefault();
7285    var url         = $('#contact_booking').attr("action");
7286    var formData    = $('#contact_booking').serialize();
7287    $.ajax({
7288        type: "POST",
7289        url: url,
7290        data: formData+'&task=addcontactbookingintervention&ajax=yes',
7291        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
7292        dataType: 'json',
7293        success: function(ret) {
7294            if(ret.flag){
7295                //toastr.success(ret.info);
7296                $('#contact_booking').hide();
7297                $('.alert-success.contact_booking').removeClass('hidden').text(ret.info);
7298                nbshopJS.CustomEventTrigger('directClinicBooking');
7299            }else{
7300                toastr.error(ret.info);
7301                $("#contact_booking .send-request-contact-booking").removeClass('active');
7302            }
7303        }
7304    });
7305};
7306
7307NbContacts.prototype.addContactOrderSparePart = function(e) {
7308    e.preventDefault();
7309    var url         = $('#contact_order_spare_part').attr("action");
7310    var formData    = $('#contact_order_spare_part').serialize();
7311    $.ajax({
7312        type: "POST",
7313        url: url,
7314        data: formData+'&task=addcontactordersparepart&ajax=yes',
7315        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
7316        dataType: 'json',
7317        success: function(ret) {
7318            if(ret.flag){
7319                $('#contact_order_spare_part').hide();
7320                $('.alert-success.contact_order_spare_part').removeClass('hidden').text(ret.info);
7321            }else{
7322                toastr.error(ret.info);
7323                $("#contact_order_spare_part .send-request-order-spare-part").removeClass('active');
7324            }
7325        }
7326    });
7327};
7328
7329NbContacts.prototype.addContactFormReservation = function(e) {
7330    e.preventDefault();
7331    var url         = $('#contact_form_reservation').attr("action");
7332    var formData    = $('#contact_form_reservation').serialize();
7333    $.ajax({
7334        type: "POST",
7335        url: url,
7336        data: formData+'&task=addcontactformreservation&ajax=yes',
7337        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
7338        dataType: 'json',
7339        success: function(ret) {
7340            if(ret.flag){
7341                $('#contact_form_reservation').hide();
7342                nbshopJS.CustomEventTrigger('eventReservationSuccess');
7343                $('.alert-success.contact_form_reservation').removeClass('hidden').text(ret.info);
7344            }else{
7345                toastr.error(ret.info);
7346                $("#contact_form_reservation .send-request-form-reservation").removeClass('active');
7347            }
7348        }
7349    });
7350};
7351
7352NbContacts.prototype.addcontactv8formreservation = function(e) {
7353    e.preventDefault();
7354    var url         = $('#contact_v8_form_reservation').attr("action");
7355    var formData    = $('#contact_v8_form_reservation').serialize();
7356    $.ajax({
7357        type: "POST",
7358        url: url,
7359        data: formData+'&task=addcontactv8formreservation&ajax=yes',
7360        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
7361        dataType: 'json',
7362        success: function(ret) {
7363            if(ret.flag){
7364                $('#contact_v8_form_reservation').hide();
7365                $('.alert-success.contact_form_reservation').removeClass('hidden').text(ret.info);
7366            }else{
7367                toastr.error(ret.info);
7368                $("#contact_v8_form_reservation .send-request-form-reservation").removeClass('active');
7369            }
7370        }
7371    });
7372};
7373
7374NbContacts.prototype.addContactFormCustomReservation = function(e) {
7375    e.preventDefault();
7376    var url         = $('#contact_form_custom_reservation').attr("action");
7377    var formData    = $('#contact_form_custom_reservation').serialize();
7378    $.ajax({
7379        type: "POST",
7380        url: url,
7381        data: formData+'&task=addcontactformcustomreservation&ajax=yes',
7382        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
7383        dataType: 'json',
7384        success: function(ret) {
7385            if(ret.flag){
7386                $('#contact_form_custom_reservation').hide();
7387                $('.alert-success.contact_form_custom_reservation').removeClass('hidden').text(ret.info);
7388            }else{
7389                toastr.error(ret.info);
7390                $("#contact_form_custom_reservation .send-request-form-custom-reservation").removeClass('active');
7391            }
7392        }
7393    });
7394};
7395
7396NbContacts.prototype.addContactEventApplication = function(e) {
7397    e.preventDefault();
7398    var url         = $('#event_form').attr("action");
7399    var formData    = $('#event_form').serialize();
7400    $.ajax({
7401        type: "POST",
7402        url: url,
7403        data: formData+'&task=addcontacteventapplication&ajax=yes',
7404        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
7405        dataType: 'json',
7406        success: function(ret) {
7407            if(ret.flag){
7408                toastr.success(ret.info);
7409                $('.block.event-form').hide();
7410                nbshopJS.CustomEventTrigger('eventContactSuccess');
7411            }else{
7412                toastr.error(ret.info);
7413                $("#event_form .send-request-event-application").removeClass('active');
7414            }
7415        }
7416    });
7417};
7418
7419//11 Search document JS
7420NbSearchDocuments.prototype.searchDocuments = function(e) {
7421    var redirectSearch = $('#redirectSearch').val();
7422    if(redirectSearch == true){
7423        e.preventDefault();
7424    }
7425    var url         = $('#item_search_form').attr("action");
7426    var formData    = $('#item_search_form').serialize();
7427    var $suggest    = $(".content-search-result"),
7428        $loader     = $(".autocomplete-loader");
7429    $.ajax({
7430        type: "POST",
7431        url: url,
7432        data: formData+'&task=search_guide&ajax=yes',
7433        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
7434        dataType: 'json',
7435        success: function(ret) {
7436            if(ret.flag){
7437                $suggest.html(ret.html);
7438                app.handleTooltip($('[rel=tooltip]'));
7439            }else{
7440                $suggest.html(ret.html);
7441            }
7442        }
7443    });
7444};
7445
7446var NbSearchDocument = new NbSearchDocuments();
7447function NbSearchDocuments() {};
7448
7449//12 USER PUBLIC MY PRODUCT START
7450var NbUserMyProduct = new NbUserMyProducts();
7451function NbUserMyProducts() {};
7452
7453NbUserMyProducts.prototype.deleteProduct = function(id, url) {
7454    $.ajax({
7455        type: "POST",
7456        url: url,
7457        data: 'task=deleteProduct&id='+id+'&ajax=yes',
7458        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
7459        dataType: 'json',
7460        success: function(ret) {
7461            if(ret.flag){
7462                toastr.success(ret.info);
7463                NbUserMyProduct.initLoadMyProductsList(url);
7464            }else{
7465                toastr.error(ret.info);
7466            }
7467        }
7468    });
7469};
7470
7471NbUserMyProducts.prototype.initLoadMyProductsList = function(url) {
7472    $.ajax({
7473        type: "POST",
7474        url: url,
7475        data: 'task=loadmyproductslist&ajax=yes',
7476        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
7477        dataType: 'json',
7478        success: function(ret) {
7479            if(ret.flag){
7480                $('.content-user-my-products-list').html(ret.html);
7481            }else{
7482                toastr.error(ret.info);
7483            }
7484        }
7485    });
7486
7487};
7488
7489NbUserMyProducts.prototype.addMyProduct = function(e) {
7490    e.preventDefault();
7491    var form = $('#my_product_form');
7492    var url      = form.attr("action");
7493    var formData = form.serialize();
7494    form.parsley().validate();
7495
7496    if (!form.parsley().isValid()){
7497        return;
7498    }
7499    $.ajax({
7500        type: "POST",
7501        url: url,
7502        data: formData+'&task=addMyProduct&ajax=yes',
7503        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
7504        dataType: 'json',
7505        success: function(ret) {
7506            if(ret.flag){
7507                toastr.success(ret.info);
7508            }else{
7509                toastr.error(ret.info);
7510            }
7511        }
7512    });
7513}
7514
7515NbUserMyProducts.prototype.updateMyProduct = function(e) {
7516    e.preventDefault();
7517    var form = $('#my_product_form');
7518    var url      = form.attr("action");
7519    var formData = form.serialize();
7520
7521    form.parsley().validate();
7522
7523    if (!form.parsley().isValid()){
7524        return;
7525    }
7526
7527    $.ajax({
7528        type: "POST",
7529        url: url,
7530        data: formData+'&task=updateMyProduct&ajax=yes',
7531        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
7532        dataType: 'json',
7533        success: function(ret) {
7534            if(ret.flag){
7535                toastr.success(ret.info);
7536            }else{
7537                toastr.error(ret.info);
7538            }
7539        }
7540    });
7541}
7542
7543//13 Loyalty Purchasing
7544var LoyaltyPurchasing = new LoyaltyPurchasings();
7545function LoyaltyPurchasings() {};
7546
7547LoyaltyPurchasings.prototype.checkIsValidLoyaltyUser = function(e) {
7548    e.preventDefault();
7549    var url         = $('#check_is_valid_loyalty_user').attr("action");
7550    var formData    = $('#check_is_valid_loyalty_user').serialize();
7551    $.ajax({
7552        type: "POST",
7553        url: url,
7554        data: formData+'&task=chek_is_valid_loyalty_user&ajax=yes',
7555        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
7556        dataType: 'json',
7557        success: function(ret) {
7558            if(ret.flag){
7559                toastr.success(ret.info);
7560                //Hiden form chek is valid user
7561                $('.content-block-check-is-valid-loyalty-user').addClass('hidden');
7562                LoyaltyPurchasing.loadLoyaltyListPurchasing(url, ret.cardNumber);
7563            }else{
7564                toastr.error(ret.info);
7565            }
7566        }
7567    });
7568};
7569
7570LoyaltyPurchasings.prototype.loadLoyaltyListPurchasing = function(url, cardNumber) {
7571    $.ajax({
7572        type: "POST",
7573        url: url,
7574        data: 'task=loadloyaltylistpurchasing&ajax=yes&cardNumber='+cardNumber,
7575        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
7576        dataType: 'json',
7577        success: function(ret) {
7578            if(ret.flag){
7579                $('.content-block-loyalty-purchasing').html(ret.html);
7580                $('.loyalty-list-purchasing').removeClass('hidden');
7581            }else{
7582                $('.content-block-loyalty-purchasing').html(ret.html);
7583                $('.loyalty-list-purchasing').removeClass('hidden');
7584            }
7585        }
7586    });
7587}
7588
7589//13 Loyalty Purchasing
7590function nb_get_translate_page_url(newLang, typePage, objectId,other){
7591    if(!other){
7592        other = '';
7593    }
7594
7595    $.ajax({
7596        type: "POST",
7597        url: nb_site_url_with_country_lang+'/',
7598        data: 'nbAjax=1&task=change_lang&typePage='+typePage+'&newLang='+newLang+'&id='+objectId,
7599        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
7600        dataType: 'json',
7601        success: function(ret) {
7602            if(ret.url){
7603                window.location.href = ret.url+other;
7604            }
7605        }
7606    });
7607}
7608
7609function redirectToSameObjectForLang(newLang,other){
7610    nb_get_translate_page_url(newLang, nb_type_page, nb_type_page_object_id,other);
7611}
7612
7613function nb_loginWithUser(){
7614    var userId = $('#admin_userPublicId').val();
7615    $.ajax({
7616        type: "POST",
7617        url: nb_site_url_with_country_lang+'/',
7618        data: 'nbAjax=1&task=loginWithUser&userId='+userId,
7619        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
7620        dataType: 'json',
7621        success: function(ret) {
7622            if(ret.flag){
7623                setTimeout(function(){window.location.href = nb_active_page_url;}, 500);
7624            }else{
7625                toastr.error(ret.info);
7626            }
7627        }
7628    });
7629}
7630
7631function enabledSearchUsers(){
7632    var input = document.getElementById("admin_userPublic");
7633    if(input){
7634        input.addEventListener("keyup", function(event) {
7635            // Number 13 is the "Enter" key on the keyboard
7636            if (event.keyCode === 13) {
7637                nb_loginWithUser();
7638                event.preventDefault();
7639            }
7640        });
7641    }
7642}
7643
7644//14 RegisterDevice
7645var RegisterDevice = new RegisterDevices();
7646function RegisterDevices(){};
7647
7648/* select store */
7649$('#register_devices_type_buy').change(function () {
7650    if ($(this).val() == 'inStore') {
7651        $('.store-input-wrapper').removeClass('hidden');
7652        $('#my_product_store_id').attr('required',true);
7653
7654    } else {
7655        $('.store-input-wrapper').addClass('hidden');
7656        $('#my_product_store_id').removeAttr('required');
7657        $('#my_product_store_id').data('parsley-required', 'false');
7658    }
7659});
7660
7661RegisterDevices.prototype.addDevice = function(e) {
7662    e.preventDefault();
7663    var url                 = $('#register_devices_form').attr("action");
7664    var formData            = $('#register_devices_form').serialize();
7665    var redirectAfterAdd    = $('#register_redirect_after_add').val();
7666    $.ajax({
7667        type: "POST",
7668        url: url,
7669        data: formData+'&task=addDevice&ajax=yes',
7670        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
7671        dataType: 'json',
7672        success: function(ret) {
7673            if(ret.flag){
7674                toastr.success(ret.info);
7675                if(redirectAfterAdd != ""){
7676                    window.setTimeout(function(){
7677                        window.location.href = redirectAfterAdd;
7678                    }, 1500);
7679                }
7680            }else{
7681                toastr.error(ret.info);
7682            }
7683        }
7684    });
7685
7686};
7687
7688RegisterDevices.prototype.editDevice = function(e) {
7689    e.preventDefault();
7690    var url                     = $('#register_devices_form').attr("action");
7691    var formData                = $('#register_devices_form').serialize();
7692    var redirectAfterEdit       = $('#register_redirect_after_edit').val();
7693    $.ajax({
7694        type: "POST",
7695        url: url,
7696        data: formData+'&task=editDevice&ajax=yes',
7697        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
7698        dataType: 'json',
7699        success: function(ret) {
7700            if(ret.flag){
7701                toastr.success(ret.info);
7702                if(redirectAfterEdit != ""){
7703                    window.setTimeout(function(){
7704                        window.location.href = redirectAfterEdit;
7705                    }, 1500);
7706                }
7707            }else{
7708                toastr.error(ret.info);
7709            }
7710        }
7711    });
7712}
7713
7714RegisterDevices.prototype.deleteDevice = function(id, url) {
7715    $.ajax({
7716        type: "POST",
7717        url: url,
7718        data: 'task=deleteDevice&id='+id+'&ajax=yes',
7719        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
7720        dataType: 'json',
7721        success: function(ret) {
7722            if(ret.flag){
7723                toastr.success(ret.info);
7724                window.setTimeout(function(){
7725                    window.location.href = url;
7726                }, 1500);
7727            }else{
7728                toastr.error(ret.info);
7729            }
7730        }
7731    });
7732
7733};
7734
7735//15 Offers
7736var Offer = new Offers();
7737function Offers() {};
7738
7739Offers.prototype.addOffer = function(type, typeObject, objectId, e, urlRedirect) {
7740
7741    e.preventDefault();
7742
7743    var exist = 0;
7744
7745    if(urlRedirect != ""){
7746        exist = 1;
7747    }
7748
7749    $.ajax({
7750        type: "POST",
7751        url: nb_active_page_url,
7752        data: 'nbAjax=1&nbTask=offer&task=addOffer&type='+type+'&typeObject='+typeObject+'&objectId='+objectId+'&exist='+exist+'&ajax=yes',
7753        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
7754        dataType: 'json',
7755        success: function(ret) {
7756            if(ret.flag){
7757                toastr.success(ret.info);
7758                Offers.prototype.loadSidebarOffers();
7759                if(urlRedirect != ""){
7760                    window.setTimeout(function(){
7761                        window.location.href = urlRedirect;
7762                    }, 500)
7763                }
7764
7765            }else{
7766                toastr.error(ret.info);
7767            }
7768        }
7769    });
7770};
7771
7772Offers.prototype.addOfferVer2 = function(type, typeObject, objectId, e, urlRedirect) {
7773
7774    e.preventDefault();
7775
7776    var exist = 0;
7777
7778    if(urlRedirect != ""){
7779        exist = 1;
7780    }
7781
7782    $.ajax({
7783        type: "POST",
7784        url: nb_active_page_url,
7785        data: 'nbAjax=1&nbTask=offer&task=addOfferVer2&type='+type+'&typeObject='+typeObject+'&objectId='+objectId+'&exist='+exist+'&ajax=yes',
7786        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
7787        dataType: 'json',
7788        success: function(ret) {
7789            if(ret.flag){
7790
7791                toastr.success(ret.info);
7792                nbshopJS.CustomEventTrigger('addOfferVer2',true);
7793                if(urlRedirect != ""){
7794                    window.setTimeout(function(){
7795                        window.location.href = urlRedirect;
7796                    }, 500)
7797                }
7798
7799            }else{
7800                toastr.error(ret.info);
7801            }
7802        }
7803    });
7804};
7805
7806Offers.prototype.removeOffer = function(type, typeObject, objectId, e, refresPage) {
7807    if(!refresPage || refresPage ===''){
7808        refresPage = false;
7809    }
7810
7811    e.preventDefault();
7812
7813    $.ajax({
7814        type: "POST",
7815        url: nb_active_page_url,
7816        data: 'nbAjax=1&nbTask=offer&task=removeOffer&type='+type+'&typeObject='+typeObject+'&objectId='+objectId+'&ajax=yes',
7817        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
7818        dataType: 'json',
7819        success: function(ret) {
7820            if(ret.flag){
7821
7822                toastr.success(ret.info);
7823
7824                Offers.prototype.loadSidebarOffers();
7825
7826                if(refresPage){
7827                    setTimeout(function(){window.location.href = nb_active_page_url;}, 500);
7828                }
7829
7830            }else{
7831                toastr.error(ret.info);
7832            }
7833        }
7834    });
7835};
7836
7837Offers.prototype.seeResponse = function(offerId, e) {
7838
7839    e.preventDefault();
7840
7841    $.ajax({
7842        type: "POST",
7843        url: nb_active_page_url,
7844        data: 'nbAjax=1&nbTask=offer&task=seeResponse&offerId='+offerId+'&ajax=yes',
7845        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
7846        dataType: 'json',
7847        success: function(ret) {
7848            if(ret.flag){
7849                $('#content-offers-response-modal').html(ret.html);
7850                $('#offers_response_modal').modal('toggle');
7851                $('#offers_response_modal').modal('show');
7852            }
7853        }
7854    });
7855};
7856
7857Offers.prototype.seeRequests = function(offerId, e) {
7858
7859    e.preventDefault();
7860
7861    $.ajax({
7862        type: "POST",
7863        url: nb_active_page_url,
7864        data: 'nbAjax=1&nbTask=offer&task=seeRequests&offerId='+offerId+'&ajax=yes',
7865        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
7866        dataType: 'json',
7867        success: function(ret) {
7868            if(ret.flag){
7869                $('#content-offers-request-modal').html(ret.html);
7870                $('#offers_request_modal').modal('toggle');
7871                $('#offers_request_modal').modal('show');
7872                nbshopJS.CustomEventTrigger('responseOfferOpen',true);
7873            }
7874        }
7875    });
7876};
7877
7878Offers.prototype.saveResponseForOffer = function(e) {
7879
7880    e.preventDefault();
7881
7882    var formData                 = $('#offers_response_modal_form').serializeObject();
7883
7884    var saveOfferResponse          = function(formData){
7885        $.ajax({
7886            type: "POST",
7887            url: nb_active_page_url,
7888            data: $.extend(formData, {task:"saveResponseForOffer", ajax:"yes", nbAjax: "1", nbTask:"offer"}),
7889            contentType: "application/x-www-form-urlencoded;charset=UTF-8",
7890            dataType: 'json',
7891            success: function(ret) {
7892                if(ret.flag){
7893                    toastr.success(ret.info);
7894                    $('#offers_response_modal').modal('hide');
7895                    setTimeout(function(){window.location.href = ret.backUrl;}, 500);
7896                }else{
7897                    toastr.error(ret.info);
7898                }
7899            }
7900        });
7901    };
7902
7903    //todo ukoliko posotje fajlovi na formi
7904    if($("#offers_response_modal_form .offerResponseDocuments").length > 0){
7905
7906        var counterFiles    = 0;
7907        var numberFiles     = 0;
7908        var filesObject     = [];
7909        var flagSave        = false;
7910        $("#offers_response_modal_form .offerResponseDocuments").each(function (event) {
7911            if($(this).val() != ''){
7912                flagSave = true;
7913                numberFiles++;
7914            }
7915        });
7916
7917        if(flagSave){
7918            $("#offers_response_modal_form .offerResponseDocuments").each(function (event) {
7919                if($(this).val() != '') {
7920                    //todo radimo upload fajlova
7921                    var files = this.files,
7922                        name_field = $(this).attr('name');
7923                    $.each(this.files, function (index, file) {
7924                        var reader = new FileReader();
7925                        reader.onload = function (event) {
7926                            counterFiles++;
7927                            object = {};
7928                            object.file_name = file.name;
7929                            object.name_field = name_field;
7930                            object.data = event.target.result;
7931                            filesObject.push(object);
7932                            if (numberFiles == counterFiles) {
7933                                formData = $.extend(formData, {files: filesObject});
7934                                saveOfferResponse(formData);
7935                            }
7936                        };
7937                        reader.readAsDataURL(file);
7938                    });
7939                }
7940            });
7941        }else{
7942            saveOfferResponse(formData);
7943        };
7944    }else{
7945        saveOfferResponse(formData);
7946    }
7947};
7948
7949Offers.prototype.saveOffers = function(e) {
7950
7951    e.preventDefault();
7952
7953    var formData                 = $('#contact_form_offers').serializeObject();
7954
7955    var saveOffersList          = function(formData){
7956        $.ajax({
7957            type: "POST",
7958            url: nb_active_page_url,
7959            data: $.extend(formData, {task:"saveOffer", ajax:"yes", nbAjax: "1", nbTask:"offer"}),
7960            contentType: "application/x-www-form-urlencoded;charset=UTF-8",
7961            dataType: 'json',
7962            success: function(ret) {
7963                if(ret.flag){
7964                    toastr.success(ret.info);
7965                    nbshopJS.CustomEventTrigger('saveOffersList');
7966                    setTimeout(function(){window.location.href = ret.backUrl;}, 500);
7967                }else{
7968                    toastr.error(ret.info);
7969                }
7970            }
7971        });
7972    };
7973
7974    //todo ukoliko posotje fajlovi na formi
7975    if($("#contact_form_offers .offer_document").length > 0){
7976
7977        var counterFiles    = 0;
7978        var numberFiles     = 0;
7979        var filesObject     = [];
7980        var flagSave        = false;
7981        $("#contact_form_offers .offer_document").each(function (event) {
7982            if($(this).val() != ''){
7983                flagSave = true;
7984                numberFiles++;
7985            }
7986        });
7987
7988        if(flagSave){
7989            $("#contact_form_offers .offer_document").each(function (event) {
7990                if($(this).val() != '') {
7991                    //todo radimo upload fajlova
7992                    var files = this.files,
7993                        name_field = $(this).attr('name');
7994                    $.each(this.files, function (index, file) {
7995                        var reader = new FileReader();
7996                        reader.onload = function (event) {
7997                            counterFiles++;
7998                            object = {};
7999                            object.file_name = file.name;
8000                            object.name_field = name_field;
8001                            object.data = event.target.result;
8002                            filesObject.push(object);
8003                            if (numberFiles == counterFiles) {
8004                                formData = $.extend(formData, {files: filesObject});
8005                                saveOffersList(formData);
8006                            }
8007                        };
8008                        reader.readAsDataURL(file);
8009                    });
8010                }
8011            });
8012        }else{
8013            saveOffersList(formData);
8014        };
8015    }else{
8016        saveOffersList(formData);
8017    }
8018};
8019
8020Offers.prototype.loadSidebarOffers = function() {
8021    $.ajax({
8022        type: "POST",
8023        url: nb_active_page_url,
8024        data: 'nbAjax=1&nbTask=offer&task=reloadOffers&ajax=yes',
8025        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
8026        //contentType: "application/json;charset=UTF-8",
8027        dataType: 'json',
8028        success: function(ret) {
8029            $('#offers-sidebar-content').html(ret.html);
8030            $('.sidebar-product-compare').addClass('active').delay(5000).queue(function(next){
8031                $(this).removeClass('active');
8032                next();
8033            });
8034        }
8035    });
8036};
8037
8038var PromoLocation = new PromoLocations();
8039function PromoLocations() {};
8040
8041PromoLocations.prototype.reloadPromoLocationRoute = function(e) {
8042
8043    e.preventDefault();
8044
8045    var date = $('#track_date').val();
8046
8047    $.ajax({
8048        type: "POST",
8049        url: nb_active_page_url,
8050        data: 'nbAjax=1&nbTask=city_route&task=get_route_for_date&date='+date+'&ajax=yes',
8051        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
8052        dataType: 'html',
8053        success: function(ret) {
8054            $('.content-location-route').html(ret);
8055        }
8056    });
8057};
8058
8059var PaymentTokenization = new PaymentTokenizations();
8060function PaymentTokenizations() {};
8061
8062PaymentTokenizations.prototype.changeToken = function(paymentTypeCode, url = '') {
8063
8064    var tokenPayment = $('#cart_onepage_token_'+paymentTypeCode).val();
8065
8066    var ajaxUrl = nb_active_page_url;
8067    var data = 'nbAjax=1&nbTask=payment_'+paymentTypeCode+'&task=get_number_installment&ajax=yes&tokenPayment='+tokenPayment;
8068    if(url !== ''){
8069        ajaxUrl = url;
8070        data = 'typeSource=2&tokenPayment='+tokenPayment+'&paymentTypeCode='+paymentTypeCode;
8071    }
8072
8073    $.ajax({
8074        type: "POST",
8075        url: ajaxUrl,
8076        data: data,
8077        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
8078        dataType: 'json',
8079        success: function(ret) {
8080
8081            if(ret.htmlNumberInstallments == ''){
8082                $('.number-installments').addClass('hidden');
8083                $('.group-number-installments').addClass('hidden');
8084            }else{
8085                $('.number-installments').html(ret.htmlNumberInstallments);
8086                $('.group-number-installments label').html(ret.htmlNumberInstallmentsLabel);
8087                $('.number-installments').removeClass('hidden');
8088                $('.group-number-installments').removeClass('hidden');
8089            }
8090
8091            if(ret.htmlGracePeriod == ''){
8092                $('.grace-period').addClass('hidden');
8093                $('.group-grace-period').addClass('hidden');
8094            }else{
8095                $('.grace-period').html(ret.htmlGracePeriod);
8096                $('.group-grace-period label').html(ret.htmlGracePeriodLabel);
8097                $('.grace-period').removeClass('hidden');
8098                $('.group-grace-period').removeClass('hidden');
8099            }
8100        }
8101    });
8102};
8103
8104PaymentTokenizations.prototype.deleteToken = function(thisElement, url, data) {
8105
8106    bootbox.confirm(thisElement.data('question'), function(result) {
8107        if(!result) return;
8108
8109        $.ajax({
8110            type: "POST",
8111            url: url,
8112            data: data,
8113            contentType: "application/x-www-form-urlencoded;charset=UTF-8",
8114            dataType: 'json',
8115            success: function(ret) {
8116                if(ret.flag){
8117                    toastr.success(ret.info);
8118                    setTimeout(function(){window.location.href = nb_active_page_url;}, 750);
8119                }else{
8120                    toastr.error(ret.info);
8121                }
8122            }
8123        });
8124    });
8125};
8126
8127function sendPayByLinkMailCatalogSale(thisElement, secKey, url){
8128    if(typeof(thisElement) !== "object"){
8129        toastr.error($(thisElement).data('error'));
8130        return;
8131    }
8132    if(typeof(secKey) === "undefined" || secKey === ""){
8133        toastr.error($(thisElement).data('error'));
8134        return;
8135    }
8136    if(typeof(url) === "undefined" || url === ""){
8137        toastr.error($(thisElement).data('error'));
8138        return;
8139    }
8140
8141    $(thisElement).addClass("active")
8142    $(thisElement).children().first().addClass("hidden");
8143
8144    $.ajax({
8145        type: "POST",
8146        url: url,
8147        data: "sec_key="+secKey,
8148        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
8149        dataType: 'json',
8150        success: function (ret) {
8151            if (ret.flag) {
8152                $(thisElement).html($(thisElement).data('success'))
8153            } else {
8154                $(thisElement).removeClass("active")
8155                $(thisElement).children().first().removeClass("hidden");
8156                if(ret.info !== ""){
8157                    toastr.error(ret.info);
8158                } else{
8159                    toastr.error($(thisElement).data('error'));
8160                }
8161            }
8162        }
8163    });
8164}
8165
8166function loadCitiesForCountryAndStores(thisElement){
8167
8168    $.ajax({
8169        type: "POST",
8170        data: 'nbAjax=1&task=loadcitiesforcountryandstores&countryId='+thisElement.val(),
8171        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
8172        dataType: 'json',
8173        success: function(ret) {
8174
8175            if(ret.flag){
8176                var loadCities = $('#mainSlider_cityId').attr('data-inittext');
8177                var optionsIzaberi = '<option value="-1">'+loadCities+'</option>';
8178
8179                for (var id in ret.cities){
8180                    if (ret.cities.hasOwnProperty(id)) {
8181                        optionsIzaberi += '<option value="' + id + '">' + ret.cities[id] + '</option>';
8182                    }
8183                }
8184
8185                $("#mainSlider_cityId").html(optionsIzaberi);
8186                loadProductGroupsByCitiesForCountryAndStores($('#mainSlider_cityId'), thisElement);
8187            }
8188        }
8189    });
8190
8191}
8192
8193function loadProductGroupsByCitiesForCountryAndStores(thisElement, countryGeoElement){
8194
8195    $.ajax({
8196        type: "POST",
8197        data: 'nbAjax=1&task=loadproductgroupsforcountryandstores&countryId='+countryGeoElement.val()+'&cityId='+thisElement.val(),
8198        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
8199        dataType: 'json',
8200        success: function(ret) {
8201
8202            if(ret.flag){
8203
8204                var loadProductGroups = $('#mainSlider_productGroupId').attr('data-inittext');
8205                var optionsIzaberi = '<option value="-1">'+loadProductGroups+'</option>';
8206
8207                for (var id in ret.productGroups){
8208                    if (ret.productGroups.hasOwnProperty(id)) {
8209                        optionsIzaberi += '<option value="' + ret.productGroups[id].id + '">' + ret.productGroups[id].name + '</option>';
8210                    }
8211                }
8212
8213                $("#mainSlider_productGroupId").html(optionsIzaberi);
8214
8215            }
8216        }
8217    });
8218
8219}
8220
8221function loadProductsByCitiesForCountryAndStores(productGroupElement, countryGeoElement, cityElement){
8222
8223    $.ajax({
8224        type: "POST",
8225        data: 'nbAjax=1&task=loadproductsforcountryandstores&countryId='+countryGeoElement.val()+'&cityId='+cityElement.val()+'&productGroupId='+productGroupElement.val(),
8226        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
8227        dataType: 'json',
8228        success: function(ret) {
8229
8230        }
8231    });
8232
8233}
8234
8235function controlShowBodySearchForm(flag) {
8236
8237    if(flag){
8238        if($('.form-group-search-engines-body-wrapper').hasClass('hidden')){
8239            $('.form-group-search-engines-body-wrapper').removeClass('hidden');
8240        }else{
8241            $('.form-group-search-engines-body-wrapper').addClass('hidden');
8242        }
8243    }
8244}
8245
8246
8247
8248function loadLastViewdProducts(thisElement, productIdElement) {
8249
8250    thisElement.each(function(){
8251
8252        var productId = productIdElement.val();
8253
8254        $.ajax({
8255            type: "POST",
8256            async: true,
8257            url: nb_active_page_url,
8258            data: 'nbAjax=1&ajax=yes&task=load_last_view_products&productId='+productId,
8259            contentType: "application/x-www-form-urlencoded;charset=UTF-8",
8260            dataType: 'json',
8261            success: function(ret) {
8262                if(ret.flag){
8263                    thisElement.html(ret.html);
8264                    //slider se inicijalizuje u theme.script na event ispod
8265                    nbshopJS.CustomEventTrigger('lastviewedproducts_load');
8266                }
8267                nbshopJS.handleProductSizeSelector('.last-viewed-slider');
8268                app.handleBuyProductOnListing(''+thisElement.selector+'');
8269                app.handleFavoriteProduct($('#product_slider_last_viewed_products .favorite'));
8270                nbshopJS.changeProductQuantity('#product_slider_last_viewed_products ');
8271                if($('.product-slider .product-item .showProductQueryViewOnModal').length > 0){
8272                    new app.handleProductQueryViewOnModal($('.product-slider .product-item .showProductQueryViewOnModal'));
8273                }
8274
8275            }
8276        });
8277    });
8278}
8279
8280function loadBestSellersProducts(thisElement, productGroupIdElement) {
8281
8282    thisElement.each(function(){
8283
8284        var productGroupId = productGroupIdElement.val();
8285
8286        $.ajax({
8287            type: "POST",
8288            async: true,
8289            url: nb_active_page_url,
8290            data: 'nbAjax=1&ajax=yes&task=load_best_sellers_products&productgroupid='+productGroupId,
8291            contentType: "application/x-www-form-urlencoded;charset=UTF-8",
8292            dataType: 'json',
8293            success: function(ret) {
8294                if(ret.flag){
8295                    thisElement.html(ret.html);
8296                    //slider se inicijalizuje u theme.script na event ispod
8297                    nbshopJS.CustomEventTrigger('best_sellers_products_load');
8298                }
8299                nbshopJS.handleProductSizeSelector('.best-sellers-slider');
8300                app.handleBuyProductOnListing(''+thisElement.selector+'');
8301                app.handleFavoriteProduct($('#product_slider_best_sellers_products .favorite'));
8302
8303                if($('.product-slider.best-sellers-slider .product-item .showProductQueryViewOnModal').length > 0){
8304                    new app.handleProductQueryViewOnModal($('.product-slider.best-sellers-slider .product-item .showProductQueryViewOnModal'));
8305                }
8306
8307            }
8308        });
8309    });
8310}
8311
8312function loadPaketomatStores(thisElement,pickupPointType = '') {
8313    $('.loader-wrapper').removeClass('hidden');
8314    thisElement.each(function(){
8315
8316        $.ajax({
8317            type: "POST",
8318            async: true,
8319            url: nb_active_page_url,
8320            data: 'ajax=yes&task=load_packetomat_stores&pickupPointType='+pickupPointType,
8321            contentType: "application/x-www-form-urlencoded;charset=UTF-8",
8322            dataType: 'json',
8323            success: function(ret) {
8324                if(ret.flag){
8325                    thisElement.html(ret.html);
8326                    //slider se inicijalizuje u theme.script na event ispod
8327                    nbshopJS.CustomEventTrigger('paketomat_stores_load',pickupPointType);
8328                    $('.loader-wrapper').addClass('hidden');
8329                }
8330
8331            }
8332        });
8333    });
8334}
8335function checkStoresDataFeed(carrierId,region,city){
8336
8337    $.ajax({
8338        type: "POST",
8339        async: true,
8340        data: 'nbAjax=1&task=carrierparcelmachines&carrierId='+carrierId+'&region='+region+'&city='+city,
8341        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
8342        dataType: 'json',
8343        success: function(ret) {
8344            if(ret.stores){
8345                nbshopJS.CustomEventTrigger('stores_true');
8346            }else{
8347                nbshopJS.CustomEventTrigger('stores_false');
8348            }
8349
8350        }
8351    });
8352}
8353
8354function loadPaketomatStoresForCart(thisElement,region,city,button) {
8355
8356    var cartstores = thisElement.data('parcelmachine');
8357    var carrierID = thisElement.data('carrierid');
8358    //checkStoresDataFeed(carrierID,region,city);
8359
8360    if(region != ''){
8361
8362    }
8363    var storeREgion = '&region='+region;
8364    var storeCity = '&city='+city;
8365    if(!cartstores){
8366        return false;
8367    }
8368    if(city || region){
8369        cartstores = cartstores+storeREgion+storeCity;
8370    }
8371
8372    var modalMapCart = $('#cart_store_modal');
8373    var modalMapHtml = $('#modal-packetomat-stores-wrapper-ajax-load');
8374    $('.loader-wrapper').removeClass('hidden');
8375    // window.addEventListener('stores_true', function (e){
8376    thisElement.each(function(){
8377        $.ajax({
8378            type: "POST",
8379            async: true,
8380            url: nb_active_page_url,
8381            data: {
8382                ajax: 'yes',
8383                task: 'load_packetomat_stores',
8384                ajaxstores: cartstores,
8385                carrier: carrierID
8386            },
8387            //data: 'ajax=yes&task=load_packetomat_stores',
8388            contentType: "application/x-www-form-urlencoded;charset=UTF-8",
8389            dataType: 'json',
8390            success: function(ret) {
8391                if(ret.flag){
8392                    modalMapCart.modal('show');
8393                    modalMapHtml.html(ret.html);
8394                    if(!nb_enableCzMap){
8395                        nbshopJS.handleMap($("#packetomat-stores-wrapper-ajax #stores-map"), false);
8396                    }
8397                    let modalTitle = $('div[data-carrierid="'+carrierID+'"]').data('originaltext');
8398                    modalMapCart.find('.h4.title').text(modalTitle);
8399                    //slider se inicijalizuje u theme.script na event ispod
8400                    nbshopJS.CustomEventTrigger('paketomat_stores_for_cart_load');
8401                    $('.loader-wrapper').addClass('hidden');
8402                }
8403
8404            }
8405        });
8406    });
8407    // });
8408
8409    /*  window.addEventListener('stores_false', function (e){
8410          $('.loader-wrapper').addClass('hidden');
8411          button.text('Nema paketomata');
8412
8413      });*/
8414}
8415
8416//SOON Sale
8417var NbSoonSale = new NbSoonSales();
8418
8419function NbSoonSales() {
8420
8421};
8422
8423NbSoonSales.prototype.addProductSoonInSale = function(e) {
8424
8425    e.preventDefault();
8426
8427    var type        = $('#prduct_soon_sale_type').val();
8428    var typeObject  = $('#prduct_soon_sale_type_object').val();
8429    var productId   = $('#prduct_soon_sale_product_id').val();
8430    var userId      = $('#prduct_soon_sale_user_id').val();
8431    var email       = $('#prduct_soon_sale_email').val();
8432
8433    NbSoonSales.prototype.addSoonInSale(type, typeObject, productId, email);
8434};
8435
8436NbSoonSales.prototype.addSoonInSale = function(type, typeObject, objectId, email) {
8437
8438    email = email || '';
8439
8440    $.ajax({
8441        type: "POST",
8442        url: nb_active_page_url,
8443        dataType: 'json',
8444        data: 'nbAjax=1&task=add_soon_in_sale&type='+type+'&typeObject='+typeObject+'&objectId='+objectId+'&email='+email,
8445        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
8446        success: function(ret) {
8447            if(ret.flag){
8448                toastr.success(ret.info);
8449            }else{
8450                toastr.error(ret.info);
8451            }
8452        },
8453    });
8454
8455};
8456
8457
8458function OpenAdminRibbon(){
8459    $('.header-top-nav-autocomplete').toggleClass('inactive');
8460    $('.icon-admin-login').toggleClass('fa-cog');
8461    $('.icon-admin-login').toggleClass('fa-times');
8462}
8463
8464function openCookieInfoAlert(cookieName, openModalElmentId, days){
8465    var resetCookie = null;
8466    if(typeof resetCookieConfirm !== 'undefined' && resetCookieConfirm){
8467        resetCookie = readCookie('resetconfirmcookie');
8468        if(resetCookie == null){
8469            createCookie('resetconfirmcookie',1,days);
8470            eraseCookie('confirm_gdpr');
8471            eraseCookie('site_cookie_info');
8472        }
8473    }
8474
8475    var showCookieOld = readCookie(cookieName);
8476    if(showCookieOld == null){
8477        showCookieOld = 1;
8478        createCookie(cookieName, showCookieOld, days);
8479    }
8480    if(showCookieOld == 1){
8481        $('#'+openModalElmentId).removeClass('hidden');
8482    }
8483}
8484
8485function openCookieModals(cookieName, openModalElmentId, days){
8486    var showCookieOld = readCookie(cookieName);
8487    var showOnHome = false;
8488    var ageRestriction = $(".age-restriction-active");
8489    if(showAllwaysOnHomePage && nb_type_page === 'home'){
8490        showOnHome = true;
8491    }
8492    if(showCookieOld == null){
8493        showCookieOld = 1;
8494        //createCookie(cookieName, showCookieOld, days);
8495    }else{
8496        showCookieOld = (parseInt(showCookieOld) + 1);
8497        //createCookie(cookieName, showCookieOld, days);
8498    }
8499
8500    if((typeof ageRestriction === "undefined" || ageRestriction.length === 0) && (showCookieOld == 1 || showOnHome)){
8501        setTimeout(function(){
8502            $('#'+openModalElmentId).modal('show');
8503        },100);
8504
8505        $('#'+openModalElmentId).on("hidden.bs.modal", function () {
8506            createCookie(cookieName, showCookieOld, days);
8507        });
8508
8509        // Kada se klikne na link unutar modal-a, proveri da li taj link ima samo '#' (nije setovan)
8510        // ili je pak u pitanju link koji vodi na drugu stranicu. U tom slucaju, setuj cookie kao se modal
8511        // nebi ponovo prikazao.
8512        $('#'+openModalElmentId).find('a').click(function () {
8513            if ($(this).attr('href') != '#') {
8514                createCookie(cookieName, showCookieOld, days);
8515            }
8516        });
8517
8518    }
8519}
8520
8521function openCookieModalsMobile(cookieName, openModalElmentClass, days){
8522
8523    var isMobile = false; //initiate as false
8524    if(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|ipad|iris|kindle|Android|Silk|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(navigator.userAgent)
8525        || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|
8525sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(navigator.userAgent.substr(0,4))) {
8526        isMobile = true;
8527    }
8528
8529    var showCookieOld = readCookie(cookieName);
8530    if(showCookieOld == null){
8531        showCookieOld = 1;
8532        createCookie(cookieName, showCookieOld, days);
8533    }else{
8534        //ne radi dobro otvara se samo jednom - Autodragstor
8535        //showCookieOld = (parseInt(showCookieOld) + 1);
8536        createCookie(cookieName, showCookieOld, days);
8537    }
8538    if(isMobile && showCookieOld == 1 && $(window).width() < 1025){
8539        $('.'+openModalElmentClass).removeClass('hidden');
8540    }
8541
8542    $('.mobile-cookie-baner .close-btn').click(function () {
8543        createCookie(cookieName, 2, days);
8544        $('.'+openModalElmentClass).addClass('hidden');
8545    });
8546}
8547
8548jQuery.fn.extend({
8549    renameAttr: function( name, newName) {
8550        var val;
8551        return this.each(function() {
8552            val = jQuery.attr( this, name );
8553            jQuery.attr( this, newName, val );
8554            jQuery.removeAttr( this, name );
8555        });
8556    }
8557});
8558
8559//Aca: srediti
8560function printShoppingList(){
8561    if (typeof printShoppingList === 'undefined' || printShoppingList === null) {
8562
8563    }else if(printShoppingList){
8564        //window.onload = function() { window.print(); }
8565    }
8566}
8567
8568function ShopByLookAddToCart(productsArray, productsComment,redirectToCartPage){
8569    if(typeof productsComment == 'undefined'){
8570        productsComment = '';
8571    }
8572
8573    let redirectUrl = nb_cart_page_url;
8574
8575    if(!redirectToCartPage){
8576        redirectToCartPage = false;
8577    }
8578
8579
8580    $.ajax({
8581        type: "POST",
8582        url: getCartPageUrl(),
8583        data: {
8584            flag: 'yes',
8585            ajax: 'yes',
8586            task: 'cartInsertOutfit',
8587            dataForProducts: productsArray,
8588            dataProductComment: productsComment,
8589        },
8590        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
8591        dataType: 'json',
8592        success: function(ret) {
8593            if(ret.flag) {
8594                //toastr.success(ret.info);
8595                refreshMinCartToggle('refreshmincarttoggle', 'no');
8596            }else{
8597                toastr.info(ret.info);
8598            }
8599            nbshopJS.CustomEventTrigger('shopByLookAddToCart', ret);
8600            if(redirectToCartPage){
8601                location.href = redirectUrl;
8602            }
8603        }
8604    });
8605}
8606
8607function AddToCartByProductCode(productsArray, productsComment){
8608    if(typeof productsComment == 'undefined'){
8609        productsComment = '';
8610    }
8611    $.ajax({
8612        type: "POST",
8613        url: getCartPageUrl(),
8614        data: {
8615            flag: 'yes',
8616            ajax: 'yes',
8617            task: 'cartInsertByProdutCode',
8618            dataForProducts: productsArray,
8619            dataProductComment: productsComment,
8620        },
8621        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
8622        dataType: 'json',
8623        success: function(ret) {
8624            if(ret.flag) {
8625                toastr.success(ret.info);
8626                refreshMinCartToggle('refreshmincarttoggle', 'no');
8627            }else{
8628                toastr.info(ret.info);
8629            }
8630            nbshopJS.CustomEventTrigger('shopByLookAddToCart', ret);
8631        }
8632    });
8633}
8634
8635function ShopByLookAddToCartArray(productsArray, productsComment){
8636    if(typeof productsComment == 'undefined'){
8637        productsComment = '';
8638    }
8639    $.ajax({
8640        type: "POST",
8641        url: getCartPageUrl(),
8642        data: {
8643            flag: 'yes',
8644            ajax: 'yes',
8645            task: 'cartInsertOutfitArray',
8646            dataForProducts: productsArray,
8647            dataProductComment: productsComment,
8648        },
8649        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
8650        dataType: 'json',
8651        success: function(ret) {
8652            if(ret.flag) {
8653                //toastr.success(ret.info);
8654                refreshMinCartToggle('refreshmincarttoggle', 'no');
8655            }else{
8656                toastr.info(ret.info);
8657            }
8658            nbshopJS.CustomEventTrigger('shopByLookAddToCartArray', ret);
8659        }
8660    });
8661}
8662
8663function nb_addAsWantedOnProductListing(productId, attrCombId){
8664
8665    if(!app.logged_in){
8666        $('#login_modal').modal('show');
8667        return;
8668    }
8669
8670    $.ajax({
8671        type: "POST",
8672        url: nb_active_page_url,
8673        data: {
8674            nbAjax: 1,
8675            nbTask: 'product_available_sizes',
8676            flag: 'yes',
8677            ajax: 'yes',
8678            task: 'add_product_available_sizes',
8679            productId: productId,
8680            combinationId: attrCombId
8681        },
8682        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
8683        dataType: 'json',
8684        success: function(ret) {
8685            if(ret.flag) {
8686                toastr.success(ret.info);
8687            }else{
8688                toastr.info(ret.info);
8689            }
8690        }
8691    });
8692};
8693
8694function sendMailNotAvailableOnList(productId){
8695    if(!productId){
8696        return false;
8697    }
8698    if(!app.logged_in){
8699        $('#login_modal').modal('show');
8700        return;
8701    }
8702    attrCombId = -1;
8703
8704    //attrCombId
8705    $.ajax({
8706        type: "POST",
8707        url: nb_active_page_url,
8708        dataType: 'json',
8709        data: {
8710            nbAjax:1,
8711            task: "quickBuyColorSize",
8712            block: "product/product_list/product_list_color_size_ajax",
8713            productId: productId
8714        },
8715        cache: false,
8716        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
8717        success: function(ret) {
8718            if(ret.flag){
8719
8720                if(ret.productCombinations.length === 1){
8721                    attrCombId = ret.productCombinations[0].combinationId;
8722                }
8723            }
8724        }
8725    }).done(
8726        function(){
8727            if(!attrCombId){
8728                return false;
8729            }
8730            nb_addAsWantedOnProductListing(productId,attrCombId)
8731        }
8732    );
8733}
8734
8735
8736function nbGetproductdata(productId){
8737    if(!productId){
8738        return false;
8739    }
8740
8741    let newProduct = {};
8742
8743    $.ajax({
8744        type: "POST",
8745        url: nb_active_page_url,
8746        dataType: 'json',
8747        async: false,
8748        data: {
8749            nbAjax:1,
8750            task: "getproductdata",
8751            productId: productId
8752        },
8753        cache: false,
8754        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
8755        success: function(ret) {
8756            if(ret.flag){
8757                newProduct.sizes = ret.sizes
8758                newProduct.product = ret.product
8759
8760            }
8761        }
8762    })
8763    return newProduct;
8764}
8765
8766function NBupdateCart(product,quantity){
8767    if(!product){
8768        return false;
8769    }
8770
8771    let productid = product.product_ext_id;
8772    let productCombId = product.unit_ext_id
8773
8774    $.ajax({
8775        type: "POST",
8776        url: cart_page_url,
8777        dataType: 'json',
8778        async: false,
8779        data: {
8780            ajax:'yes',
8781            task: "updatecartwithajax",
8782            productId: productid,
8783            productCombId: productCombId,
8784            quantity: quantity
8785        },
8786        cache: false,
8787        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
8788        success: function(ret) {
8789            if(ret.flag){
8790                refreshMinCartToggle('refreshmincarttoggle', 'yes');
8791            }
8792            if(!ret.flag){
8793            }
8794        }
8795    }).done();
8796}
8797
8798
8799
8800function NBGetCartAjax(event){
8801    var a = [];
8802    $.ajax({
8803        type: "POST",
8804        url: cart_page_url,
8805        dataType: 'json',
8806        async: false,
8807        data: {
8808            ajax:'yes',
8809            task: "getproductincart",
8810        },
8811        cache: false,
8812        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
8813        success: function(ret) {
8814            if(ret.flag){
8815                a = ret.resultsShopping;
8816                nbshopJS.CustomEventTrigger('getCartProductsSuccess', a);
8817            }
8818        }
8819    }).done(
8820        function(){
8821            //fieworkUpdateCart(a,event)
8822        }
8823
8824    );
8825
8826    return a;
8827}
8828
8829
8830
8831function initReadyNbMetricData(){
8832
8833    if (typeof window.nbMetricObject.NB_METRIC_DATA === 'undefined' || window.nbMetricObject.NB_METRIC_DATA === null) {
8834        window.nbMetricObject.NB_METRIC_DATA = false;
8835    }
8836
8837    if (typeof window.nbMetricObject.NB_METRIC_PAGE_TYPE === 'undefined' || window.nbMetricObject.NB_METRIC_PAGE_TYPE === null) {
8838        window.nbMetricObject.NB_METRIC_PAGE_TYPE = false;
8839    }
8840
8841    if (typeof window.nbMetricObject.NB_SHOW_FACBOOK_METRIC === 'undefined' || window.nbMetricObject.NB_SHOW_FACBOOK_METRIC === null) {
8842        window.nbMetricObject.NB_SHOW_FACBOOK_METRIC = false;
8843    }
8844
8845    if(window.nbMetricObject.NB_SHOW_GoogleGTMGA4_METRIC){
8846        if (typeof googleTagManagerGA4_metricData === 'function') googleTagManagerGA4_metricData(window.nbMetricObject.NB_METRIC_DATA, window.nbMetricObject.NB_METRIC_PAGE_TYPE);
8847    }
8848
8849    if(window.nbMetricObject.NB_SHOW_iProm_METRIC){
8850        if (typeof iProm_metricData === 'function') iProm_metricData(window.nbMetricObject.NB_METRIC_DATA, window.nbMetricObject.NB_METRIC_PAGE_TYPE);
8851    }
8852
8853    if (typeof window.nbMetricObject.NB_SHOW_Google_METRIC === 'undefined' || window.nbMetricObject.NB_SHOW_Google_METRIC === null) {
8854        window.nbMetricObject.NB_SHOW_Google_METRIC = false;
8855    }
8856
8857    if (typeof window.nbMetricObject.NB_SHOW_GoogleTag_METRIC === 'undefined' || window.nbMetricObject.NB_SHOW_GoogleTag_METRIC === null) {
8858        window.nbMetricObject.NB_SHOW_GoogleTag_METRIC = false;
8859    }
8860
8861    if (typeof window.nbMetricObject.NB_SHOW_iframeBts_METRIC === 'undefined' || window.nbMetricObject.NB_SHOW_iframeBts_METRIC === null) {
8862        window.nbMetricObject.NB_SHOW_iframeBts_METRIC = false;
8863    }
8864
8865    if (typeof window.nbMetricObject.NB_SHOW_GlamiTag_METRIC === 'undefined' || window.nbMetricObject.NB_SHOW_GlamiTag_METRIC === null) {
8866        window.nbMetricObject.NB_SHOW_GlamiTag_METRIC = false;
8867    }
8868
8869    if (typeof window.nbMetricObject.NB_SHOW_SmEvents_METRIC === 'undefined' || window.nbMetricObject.NB_SHOW_SmEvents_METRIC === null) {
8870        window.nbMetricObject.NB_SHOW_SmEvents_METRIC = false;
8871    }
8872
8873    if (typeof window.nbMetricObject.NB_SHOW_CriteoTag_METRIC === 'undefined' || window.nbMetricObject.NB_SHOW_CriteoTag_METRIC === null) {
8874        window.nbMetricObject.NB_SHOW_CriteoTag_METRIC = false;
8875    }
8876    if (typeof window.nbMetricObject.NB_SHOW_VisualSearch_METRIC === 'undefined' || window.nbMetricObject.NB_SHOW_VisualSearch_METRIC === null) {
8877        window.nbMetricObject.NB_SHOW_VisualSearch_METRIC = false;
8878    }
8879
8880    if(window.nbMetricObject.NB_SHOW_FACBOOK_METRIC){
8881        facebook_metricData(window.nbMetricObject.NB_METRIC_DATA, window.nbMetricObject.NB_METRIC_PAGE_TYPE);
8882    }
8883
8884    if(window.nbMetricObject.NB_SHOW_Google_METRIC){
8885        if (typeof google_metricData === 'function') google_metricData(window.nbMetricObject.NB_METRIC_DATA, window.nbMetricObject.NB_METRIC_PAGE_TYPE);
8886    }
8887
8888    if(window.nbMetricObject.NB_SHOW_GoogleTag_METRIC){
8889        if (typeof googleTagManager_metricData === 'function') googleTagManager_metricData(window.nbMetricObject.NB_METRIC_DATA, window.nbMetricObject.NB_METRIC_PAGE_TYPE);
8890    }
8891
8892    if(window.nbMetricObject.NB_SHOW_iframeBts_METRIC){
8893        iframe_rtb_analytics(window.nbMetricObject.NB_METRIC_DATA, window.nbMetricObject.NB_METRIC_PAGE_TYPE);
8894    }
8895
8896    if(window.nbMetricObject.NB_SHOW_GlamiTag_METRIC){
8897        glamyMetricData(window.nbMetricObject.NB_METRIC_DATA, window.nbMetricObject.NB_METRIC_PAGE_TYPE);
8898    }
8899
8900    if(window.nbMetricObject.NB_SHOW_SmEvents_METRIC){
8901        external_events_metricData(window.nbMetricObject.NB_METRIC_DATA, window.nbMetricObject.NB_METRIC_PAGE_TYPE);
8902    }
8903
8904    if(window.nbMetricObject.NB_SHOW_CriteoTag_METRIC){
8905        if (typeof CriteoTag_metricData === 'function') CriteoTag_metricData(window.nbMetricObject.NB_METRIC_DATA, window.nbMetricObject.NB_METRIC_PAGE_TYPE);
8906    }
8907    if(window.nbMetricObject.NB_SHOW_VisualSearch_METRIC){
8908        VisualSearch_metricData(window.nbMetricObject.NB_METRIC_DATA, window.nbMetricObject.NB_METRIC_PAGE_TYPE);
8909    }
8910
8911    if(window.nbMetricObject.NB_SHOW_BestPrice_METRIC){
8912        if (typeof bestPrice_metricData === 'function') bestPrice_metricData(window.nbMetricObject.NB_METRIC_DATA, window.nbMetricObject.NB_METRIC_PAGE_TYPE);
8913    }
8914
8915    if (typeof NBPRODUCT_LIST_CART_CONFIRM_METRIC === 'undefined' || NBPRODUCT_LIST_CART_CONFIRM_METRIC === null) {
8916        var NBPRODUCT_LIST_CART_CONFIRM_METRIC = false;
8917    }
8918
8919    if(NBPRODUCT_LIST_CART_CONFIRM_METRIC){
8920        NBMetric.viewProductsCartConfirm(NBPRODUCT_LIST_CART_CONFIRM_METRIC);
8921    }
8922
8923    if (typeof NBPRODUCT_LIST_CART_METRIC === 'undefined' || NBPRODUCT_LIST_CART_METRIC === null) {
8924        var NBPRODUCT_LIST_CART_METRIC = false;
8925    }
8926
8927    if(NBPRODUCT_LIST_CART_METRIC){
8928        NBMetric.viewProductsCart(NBPRODUCT_LIST_CART_METRIC);
8929    }
8930
8931    if (typeof NBPRODUCT_LIST_METRIC === 'undefined' || NBPRODUCT_LIST_METRIC === null) {
8932        var NBPRODUCT_LIST_METRIC = false;
8933    }
8934
8935    if(NBPRODUCT_LIST_METRIC){
8936        NBMetric.viewProductList(NBPRODUCT_LIST_METRIC);
8937    }
8938
8939    if (typeof NBPRODUCT_LIST_SIMILAR_METRIC === 'undefined' || NBPRODUCT_LIST_SIMILAR_METRIC === null) {
8940        var NBPRODUCT_LIST_SIMILAR_METRIC = false;
8941    }
8942
8943    if(NBPRODUCT_LIST_SIMILAR_METRIC){
8944        NBMetric.gtmViewProductListSimilar(NBPRODUCT_LIST_SIMILAR_METRIC);
8945    }
8946
8947    if (typeof NB_METRIC_PRODUCT === 'undefined' || NB_METRIC_PRODUCT === null) {
8948        var NB_METRIC_PRODUCT = false;
8949    }
8950
8951    if (typeof NB_FB_METRIC_PRODUCT === 'undefined' || NB_FB_METRIC_PRODUCT === null) {
8952        var NB_FB_METRIC_PRODUCT = false;
8953    }
8954
8955    if(NB_METRIC_PRODUCT && NB_FB_METRIC_PRODUCT){
8956        fb_viewProductPage(NB_METRIC_PRODUCT);
8957    }
8958
8959}
8960
8961function profile_addUserOrderTickets(question){
8962
8963    var tikcet      = $('#profile_order_ticket').val();
8964    var secureKay   = $('#profile_order_security_code').val();
8965    var form = $('#my_product_form');
8966    var btn = form.find('.confirm-loader');
8967
8968    form.parsley().validate();
8969    if (!form.parsley().isValid()){
8970        return;
8971    }
8972    btn.addClass('active');
8973    $.ajax({
8974        type: "POST",
8975        url: nb_active_page_url,
8976        dataType: 'json',
8977        data: {
8978            ajax:'yes',
8979            task:"addUserOrderTickets",
8980            tikcet:tikcet,
8981            secureKey:secureKay
8982        },
8983        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
8984        success: function(ret) {
8985            if(ret.flag){
8986                $('#alert-info-add-tickets').html(ret.info);
8987                form.find('.alert')
8988                    .removeClass('hidden')
8989                    .removeClass('alert-danger')
8990                    .addClass('alert-success');
8991                btn.removeClass('active');
8992            }else{
8993                $('#alert-info-add-tickets').html(ret.info);
8994                form.find('.alert')
8995                    .removeClass('hidden')
8996                    .removeClass('alert-success')
8997                    .addClass('alert-danger');
8998
8999
9000            }
9001            btn.removeClass('active');
9002            $('#profile_order_ticket').val('');
9003            $('#profile_order_security_code').val('');
9004        }
9005    });
9006
9007};
9008
9009var NbShipmentList = new NbShipmentlist();
9010
9011function NbShipmentlist() {};
9012
9013NbShipmentlist.prototype.createLabel = function (url){
9014    var formData                 = $('#shipmentlist_form').serializeObject();
9015    const checkboxes = document.querySelectorAll('.select-row');
9016
9017    console.log(checkboxes)
9018    checkboxes.forEach((checkbox) => {
9019        const selectedIds = [];
9020        checkboxes.forEach((cb) => {
9021            if (cb.checked) {
9022                const rowId = cb.closest('tr').id;
9023                selectedIds.push(rowId);
9024            }
9025        });
9026        $("#gridSelectedIds").val(selectedIds);
9027        console.log($("#gridSelectedIds").val())
9028    });
9029    $.ajax({
9030        type: "POST",
9031        url: url,
9032        data: $.extend(formData, {task:"createLabel", ajax:"yes"}),
9033        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
9034        dataType: 'json',
9035        success: function(ret) {
9036            if(ret.flag){
9037                toastr.success(ret.info);
9038
9039            }else{
9040                toastr.error(ret.info);
9041            }
9042        }
9043    });
9044}
9045
9046NbShipmentlist.prototype.downloadLabelFile = function (url,label){
9047    var formData                 = $('#shipmentlist_form').serializeObject();
9048
9049    var url = '?ajax=yes&reload=no&task=downloadLabelFile&preview=yes&file='+label;
9050    window.open(url);
9051}
9052
9053NbShipmentlist.prototype.importShipments = function(url) {
9054    var formData                 = $('#shipmentlist_form').serializeObject();
9055
9056    var saveShipmentlist = function(formData, url){
9057        $.ajax({
9058            type: "POST",
9059            url: url,
9060            data: $.extend(formData, {task:"importShipments", ajax:"yes"}),
9061            contentType: "application/x-www-form-urlencoded;charset=UTF-8",
9062            dataType: 'json',
9063            success: function(ret) {
9064                if(ret.flag){
9065                    toastr.success(ret.info);
9066                    // NbShipmentlist.resetForm();
9067                    $('#shipmentlist_file').val('');
9068                    $('#shipment-list-modal-content').html(ret.html);
9069
9070                }else{
9071                    toastr.error(ret.info);
9072                }
9073            }
9074        });
9075    };
9076
9077    if($("#shipmentlist_form .shipmentlist_files_input").length > 0){
9078
9079        var counterFiles    = 0;
9080        var numberFiles     = 0;
9081        var filesObject     = [];
9082        var flagSave        = false;
9083        $("#shipmentlist_form .shipmentlist_files_input").each(function (event) {
9084            if($(this).val() != ''){
9085                flagSave = true;
9086                numberFiles++;
9087            }
9088        });
9089
9090        if(flagSave){
9091            $("#shipmentlist_form .shipmentlist_files_input").each(function (event) {
9092                if($(this).val() != '') {
9093                    var files = this.files,
9094                        name_field = $(this).attr('name');
9095                    $.each(this.files, function (index, file) {
9096                        var reader = new FileReader();
9097                        reader.onload = function (event) {
9098                            counterFiles++;
9099                            object = {};
9100                            object.file_name = file.name;
9101                            object.name_field = name_field;
9102                            object.data = event.target.result;
9103                            filesObject.push(object);
9104                            if (numberFiles == counterFiles) {
9105                                formData = $.extend(formData, {files: filesObject});
9106                                saveShipmentlist(formData, url);
9107                            }
9108                        };
9109                        reader.readAsDataURL(file);
9110                    });
9111                }
9112            });
9113        }else{
9114            saveShipmentlist(formData, url);
9115        };
9116    }else{
9117        saveShipmentlist(formData, url);
9118    }
9119};
9120
9121
9122
9123var ResetPassword = new ResetPasswords();
9124function ResetPasswords() {};
9125
9126ResetPasswords.prototype.saveNewPassword = function (e) {
9127
9128    var form   = $('#formResetPassword');
9129    e.preventDefault();
9130    form.parsley().validate();
9131
9132    if (!form.parsley().isValid()){
9133        return;
9134    }
9135
9136    formData = $("#formResetPassword").serialize();
9137    $('#lost_password_new_submit').addClass('active');
9138    $.ajax({
9139        type: "POST",
9140        url: nb_active_page_url,
9141        data: '&task=save&'+formData+'&ajax=yes',
9142        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
9143        dataType: 'json',
9144        success: function(ret) {
9145            $("#message").html(ret.info);
9146            $("#message").removeClass('hidden');
9147            $('#lost_password_new_submit').removeClass('active');
9148            if(ret.flag){
9149                $("#message").removeClass('alert-danger');
9150                $("#message").addClass('alert-success');
9151                $("#reset-pass-new-form").addClass('hidden');
9152                $("#info-timelink").addClass('hidden');
9153                $("#login_again").removeClass('hidden');
9154            }else {
9155                if(ret.time == 1) {
9156                    $("#reset-pass-new-form").addClass('hidden');
9157                    $("#login_password_repeat_submit").removeClass('hidden');
9158                    $("#info-timelink").addClass('hidden');
9159                    $("#message").removeClass('alert-danger');
9160                }
9161                $("#message").addClass('alert-danger');
9162            }
9163
9164        }
9165    });
9166}
9167
9168ResetPasswords.prototype.sendAgainLink = function (e) {
9169
9170    formData = $("#formResetPassword").serialize();
9171    $('#login_password_repeat_submit').addClass('active');
9172    $.ajax({
9173        type: "POST",
9174        url: nb_active_page_url,
9175        data: 'task=sendagain&ajax=yes&'+formData,
9176        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
9177        dataType: 'json',
9178        success: function(ret) {
9179            $("#message").html(ret.info);
9180            $("#message").removeClass('hidden');
9181            $("#info-error-resetpass").addClass('hidden');
9182            $('#login_password_repeat_submit').removeClass('active');
9183            if(ret.flag){
9184                $("#login_password_repeat_submit").addClass('hidden');
9185                $("#message").removeClass('alert-danger');
9186                $("#message").addClass('alert-success');
9187            }else {
9188                $("#message").removeClass('alert-success');
9189                $("#message").addClass('alert-danger');
9190            }
9191        }
9192    });
9193}
9194
9195function deleteCacheIphone() {
9196    window.onpageshow = function(event) {
9197        if (event.persisted) {
9198            window.location.reload();
9199        }
9200    };
9201}
9202
9203/* Novi nacin rada Komentara */
9204function loadCommentsData(page){
9205
9206    $(".loader-wrapper-comments").removeClass("hidden");
9207
9208    $.ajax({
9209        type: "POST",
9210        url: nb_active_page_url,
9211        data: {
9212            ajax: 'yes',
9213            nbAjax: 1,
9214            task: 'get_comments',
9215            page: page
9216        },
9217        dataType: 'json',
9218        success: function (ret) {
9219            if(ret.flag){
9220                // $('#comments-list-content').html(ret.html);
9221                $('#commentsContent').html(ret.html);
9222            }
9223
9224            $(".loader-wrapper-comments").addClass("hidden");
9225        }
9226    });
9227}
9228
9229function selectGroupCheck(fakeField, ...fields){
9230
9231    let checked = true;
9232    for (let arg of fields) {
9233        $('#'+arg).closest('.form-group').addClass('hidden');
9234
9235        if(!$('#'+arg).attr('checked')){
9236            checked = false;
9237        }
9238    }
9239
9240    if(checked){
9241        $('#'+fakeField).attr('checked',true);
9242        $('#'+fakeField).change();
9243    }
9244
9245
9246    $('#'+fakeField).click(function (){
9247        for (let arg of fields) {
9248
9249            if(($('#'+fakeField).is(':checked') && !$('#'+arg).is(':checked')) || (!$('#'+fakeField).is(':checked') && $('#'+arg).is(':checked'))){
9250                $('#'+arg).click();
9251            }
9252
9253        }
9254    });
9255}
9256
9257function removeTicketActionOnCart(){
9258    var cartLoader = $('.cart-loader');
9259    cartLoader.removeClass('hidden');
9260    $.ajax({
9261        type: "POST",
9262        url: getCartPageUrl(),
9263        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
9264        data: 'ajax=yes&task=removeticketaction',
9265        async: true,
9266        dataType: 'json',
9267        beforeSend: function(http) {
9268            http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
9269        },
9270        success: function(ret) {
9271            if (ret.flag) {
9272                actionInsertTicket();
9273            } else {
9274                toastr.error(ret.info);
9275                cartLoader.addClass('hidden');
9276            }
9277        }
9278    });
9279};
9280
9281function loadVoucherProductDataBlock(){
9282    $('#open_product_voucher_modal').addClass('active');
9283    var modalWrapper = $('#voucher-items-wrapper');
9284    var ajaxData = 'ajax=yes&task=loadVoucherProductDataBlock';
9285    $.ajax({
9286        type: "POST",
9287        url: nb_active_page_url,
9288        data: ajaxData,
9289        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
9290        dataType: 'json',
9291        success: function(ret) {
9292            modalWrapper.html(ret.html);
9293            $('#product_voucher_modal').modal('show');
9294            $('#open_product_voucher_modal').removeClass('active');
9295            multipleInput('.multi-email-wrapper input');
9296            $('#product_voucher_form .voucher-item-wrapper:not(.inactive) .voucher-multi-email-flag-wrapper input:checked').each(function (){
9297                togleMultiUserData($(this));
9298            });
9299            initinsetmailsOnLoad();
9300            nbshopJS.CustomEventTrigger('voucherProductDataBlockLoaded');
9301        }
9302    });
9303}
9304
9305function loadVoucherProductDataBlockNew(){
9306    // console.log('drugi kn new')
9307    $('#open_product_voucher_modal').addClass('active');
9308    var modalWrapper = $('#voucher-items-wrapper');
9309    var ajaxData = 'ajax=yes&nbAjax=yes&task=loadVoucherProductDataBlockNew';
9310    $.ajax({
9311        type: "POST",
9312        url: nb_active_page_url,
9313        data: ajaxData,
9314        contentType: "application/x-www-form-urlencoded;charset=UTF-8",
9315        dataType: 'json',
9316        success: function(ret) {
9317            modalWrapper.html(ret.html);
9318            $('#product_voucher_modal').modal('show');
9319            $('#open_product_voucher_modal').removeClass('active');
9320            nbshopJS.CustomEventTrigger('voucherProductDataBlockLoadedNew');
9321        }
9322    });
9323}
9324
9325function multipleInput(input) {
9326
9327    $(input).each(function () {
9328        $list = $('<ul />');
9329        var $input = $('<textarea type="text" rows="5" class="form-control"  />')
9330            .keyup(function (event){insertEmail(event, $input)})
9331            .focusout(function(){insertEmail('focusout', $input)})
9332            .bind('paste', function(){
9333                setTimeout(function() {
9334                    insertEmail('focusout', $input);
9335                }, 100);
9336            });
9337        var $container = $('<div class="multipleInput-container" />').click(function () {
9338            $input.focus();
9339        });
9340
9341        $container.append($list).append($input).insertAfter($(this));
9342
9343        // add onsubmit handler to parent form to copy emails into original input as csv before submitting
9344        var $orig = $(this);
9345        $(this).closest('form').submit(function (e) {
9346
9347            var emails = new Array();
9348            $('.multipleInput-email span').each(function () {
9349                emails.push($(this).html());
9350            });
9351            emails.push($input.val());
9352
9353            $orig.val(emails.join());
9354
9355        });
9356
9357        return $(this).hide();
9358
9359    });
9360
9361};
9362
9363function insertEmail(event, element){
9364    // key press is space or comma
9365    if (event.which == 32 || event.which == 188 || event == 'focusout') {
9366        var val = element.val(); // remove space/comma from value
9367        val = val.replace(/ /g, ",");
9368        val = val.replace(/\n/g, ",");
9369        val = $.trim(val);
9370        var list = element.parent().find('ul');
9371        var emailArray = val.split(',');
9372        console.log(emailArray)
9373        for (var i = 0; i < emailArray.length; ++i) {
9374            if(emailArray[i] != ''){
9375                var emailValidation = '';
9376                if(!validateEmail(emailArray[i])){
9377                    var emailValidation = 'error';
9378                }
9379                list.append($('<li class="multipleInput-email '+emailValidation+'" data-user-email="' + emailArray[i] + '"><span>' + emailArray[i] + '</span></li>')
9380                    .append($('<a href="#" class="multipleInput-close" title="Remove">×</a>')
9381                        .click(function (e) {
9382                            $(this).parent().remove();
9383                            e.preventDefault();
9384                        })
9385                    )
9386                );
9387            }
9388        }
9389
9390        element.attr('placeholder', '');
9391        element.val('');
9392    }
9393}
9394
9395function togleMultiUserData(item){
9396    var parent = item.closest('.inputs-wrapper');
9397    var combinationId = parent.parent().data('product-code');
9398    var voucherItem = $(".voucher-item-wrapper[data-product-code='" + combinationId + "']");
9399    if (item.is(':checked')) {
9400        parent.find('.multi-email-wrapper').removeClass('hidden');
9401        parent.find('.multi-email-wrapper input').prop('required',false);
9402        parent.find('.voucher-receiver-wrapper').addClass('hidden');
9403        parent.find('.voucher-receiver-wrapper input').prop('required',false).addClass('disabled');
9404        parent.find('.voucher-second-email-wrapper').addClass('hidden');
9405        parent.find('.voucher-second-email-wrapper input').prop('required',false).addClass('disabled');
9406        voucherItem.each(function (){
9407            var voucherItem = $(this);
9408            voucherItem.addClass('inactive').hide();
9409            item.closest(".modal-body").find(".voucher-item-wrapper[data-product-code='" + combinationId + "']:first").removeClass('inactive').show();
9410        });
9411    } else {
9412        item.closest(".modal-body").find(".voucher-item-wrapper[data-product-code='" + combinationId + "'] .multi-email-wrapper input").prop('checked', false);
9413        item.closest(".modal-body").find(".voucher-item-wrapper[data-product-code='" + combinationId + "'] .voucher-multi-email-flag-wrapper input").prop('checked', false);
9414        item.closest(".modal-body").find(".voucher-item-wrapper[data-product-code='" + combinationId + "'] .multi-email-wrapper").addClass('hidden');
9415        item.closest(".modal-body").find(".voucher-item-wrapper[data-product-code='" + combinationId + "'] .voucher-second-email-wrapper").removeClass('hidden');
9416        item.closest(".modal-body").find(".voucher-item-wrapper[data-product-code='" + combinationId + "'] .voucher-second-email-wrapper input").prop('required',true).removeClass('disabled');
9417        item.closest(".modal-body").find(".voucher-item-wrapper[data-product-code='" + combinationId + "'] .voucher-receiver-wrapper").removeClass('hidden');
9418        item.closest(".modal-body").find(".voucher-item-wrapper[data-product-code='" + combinationId + "'] .voucher-receiver-wrapper input").prop('required',true).removeClass('disabled');
9419        voucherItem.each(function (){
9420            var voucherItem = $(this);
9421            voucherItem.removeClass('inactive').show();
9422        });
9423    }
9424}
9425
9426function initinsetmailsOnLoad(){
9427    $('#product_voucher_form .voucher-item-wrapper .multi-email-wrapper input').each(function (){
9428        var input = $(this).val();
9429        var emailArray = input.split(',');
9430
9431        var inputParent = $(this).closest('.voucher-item-wrapper');
9432        var inputParentCombId = inputParent.data('product-code');
9433        var activeparent = $("#product_voucher_form .voucher-item-wrapper[data-
9433product-code='" + inputParentCombId + "']");
9434        var list = activeparent.find('ul');
9435
9436        for (var i = 0; i < emailArray.length; ++i) {
9437            if(emailArray[i] != ''){
9438                var emailValidation = '';
9439                if(!validateEmail(emailArray[i])){
9440                    var emailValidation = 'error';
9441                }
9442                list.append($('<li class="multipleInput-email '+emailValidation+'" data-user-email="' + emailArray[i] + '"><span>' + emailArray[i] + '</span></li>')
9443                    .append($('<a href="#" class="multipleInput-close" title="Remove">×</a>')
9444                        .click(function (e) {
9445                            $(this).parent().remove();
9446                            e.preventDefault();
9447                        })
9448                    )
9449                );
9450            }
9451        }
9452    });
9453}
9454
9455function showCartActionListOnCartTable(element) {
9456    var actionListItems = element.closest('.cart-action-wrapper').find('.items-wrapper');
9457
9458    if(actionListItems.length === 0) {
9459        return false;
9460    }
9461
9462    if(actionListItems.hasClass('hidden')) {
9463        $('.cart-action-wrapper .items-wrapper').addClass('hidden');
9464        actionListItems.removeClass('hidden');
9465    } else {
9466        actionListItems.addClass('hidden');
9467    }
9468}
9469
9470function initCartOnePageStoreRecive(){
9471    $('#cart_onepage_storeReciveId').change(function(){
9472        var carrierId = $('input[type="radio"][name="carierId"]:checked').val();
9473        var carrierStoreReciveId =  $('#cart_onepage_storeReciveId').val();
9474        cartChangeStoreReciveIdOnePage(carrierStoreReciveId);
9475    });
9476}
9477
9478function handleCountryFocus() {
9479
9480    if(nb_type_page === "cart") {
9481
9482        let countryGeoCart = $('#cart_onepage_country_geo_id');
9483
9484        if(typeof countryGeoCart === "undefined" || countryGeoCart.length === 0) return;
9485
9486        $(countryGeoCart).on('change', function () {
9487            localStorage.setItem('scrollToCountryGeoId', 'true');
9488        });
9489
9490        if (localStorage.getItem('scrollToCountryGeoId') === 'true') {
9491            localStorage.removeItem('scrollToCountryGeoId');
9492            const $el = $(countryGeoCart);
9493            if ($el.length) {
9494                $('html, body').animate({
9495                    scrollTop: $el.offset().top - 450
9496                }, 600);
9497            }
9498        }
9499    }
9500}
9501
9502$(document).ready(function() {
9503
9504    // Even koji registruje da je stranica otvorena sa back strane
9505    if (performance.navigation.type == 2) {
9506        setProductListBackPosition();
9507        getProductListBackPosition();
9508    }
9509
9510    if($('.reg-checkbox-group-wrapper').length > 0){
9511        selectGroupCheck('reg_email_checkgroup','reg_sendNewsletter');
9512        selectGroupCheck('reg_phone_checkgroup','reg_sendSMS');
9513
9514        if(!$('#reg_email_checkgroup').is(':checked') && !$('#reg_phone_checkgroup').is(':checked')){
9515            $('#reg_email_checkgroup, #reg_phone_checkgroup').closest('.form-group-checklabel').css({'pointerEvents':'none','opacity':'.5'});
9516        }
9517    }
9518    if($('.reg-page-checkbox-group-wrapper').length > 0){
9519        selectGroupCheck('reg_page_email_checkgroup','reg_page_sendNewsletter_f');
9520        selectGroupCheck('reg_page_phone_checkgroup','reg_page_sendSMS_f');
9521
9522        if(!$('#reg_page_email_checkgroup').is(':checked') && !$('#reg_page_phone_checkgroup').is(':checked')){
9523            $('#reg_page_email_checkgroup, #reg_page_phone_checkgroup').closest('.form-group-checklabel').css({'pointerEvents':'none','opacity':'.5'});
9524        }
9525
9526    }
9527
9528    $('#reg_sendUserAdditionalData, #reg_callMeOnPhone').click(function (){
9529        if($(this).is(':checked')){
9530            if(!$('#reg_email_checkgroup').is(':checked')){
9531                $('#reg_email_checkgroup').click().change();
9532            }
9533            if(!$('#reg_phone_checkgroup').is(':checked')){
9534                $('#reg_phone_checkgroup').click().change();
9535            }
9536            $('#reg_email_checkgroup, #reg_phone_checkgroup').closest('.form-group-checklabel').css({'pointerEvents':'','opacity':''});
9537        }
9538
9539        if(!$('#reg_sendUserAdditionalData').is(':checked') && !$('#reg_callMeOnPhone').is(':checked')){
9540            if($('#reg_email_checkgroup').is(':checked')){
9541                $('#reg_email_checkgroup').click().change();
9542            }
9543            if($('#reg_phone_checkgroup').is(':checked')){
9544                $('#reg_phone_checkgroup').click().change();
9545            }
9546        }
9547    })
9548    $('#reg_page_sendUserAdditionalData_f, #reg_page_callMeOnPhone_f').click(function (){
9549        if($(this).is(':checked')){
9550            if(!$('#reg_page_email_checkgroup').is(':checked')){
9551                $('#reg_page_email_checkgroup').click().change();
9552            }
9553            if(!$('#reg_page_phone_checkgroup').is(':checked')){
9554                $('#reg_page_phone_checkgroup').click().change();
9555            }
9556            $('#reg_page_email_checkgroup, #reg_page_phone_checkgroup').closest('.form-group-checklabel').css({'pointerEvents':'','opacity':''});
9557        }
9558
9559        if(!$('#reg_page_sendUserAdditionalData_f').is(':checked') && !$('#reg_page_callMeOnPhone_f').is(':checked')){
9560            if($('#reg_page_email_checkgroup').is(':checked')){
9561                $('#reg_page_email_checkgroup').click().change();
9562            }
9563            if($('#reg_page_phone_checkgroup').is(':checked')){
9564                $('#reg_page_phone_checkgroup').click().change();
9565            }
9566        }
9567    })
9568
9569    //filteri init
9570    initTableSort();
9571    initNBFilter();
9572    typePersonCreateUserProfile('user_create_type_person', false);
9573    getMyUserPublic(0);
9574    refreshMinCart('', 'product');
9575    loadLastViewdProducts($('#product_slider_last_viewed_products'), $('#product_slider_last_viewed_productId'));
9576    loadBestSellersProducts($('#product_slider_best_sellers_products'), $('#product_slider_best_sellers_productGroupId'));
9577
9578    //cart init
9579    $('#cart_onepage_delivery_country_form #cart_onepage_delivery_country_geo').change(function(){
9580        var form                    = $("#cart_onepage_delivery_country_form");
9581        // var orderAddress            = $('input[type="radio"][name="orderAddress"]:checked').val();;
9582        var typePerson              = $('#cart_onepage_type_person').val();
9583        var newAddressList          = $('#cart_onepage_new_address_list').val();
9584        var newAddressListId        = $('#cart_onepage_new_address_list_id').val();
9585        var firstname               = $('#cart_onepage_firstname').val();
9586        var lastname                = $('#cart_onepage_lastname').val();
9587        var email                   = $('#cart_onepage_email').val();
9588        var phone                   = $('#cart_onepage_phone').val();
9589        var companyName             = $('#cart_onepage_company_name').val();
9590        var companyShortname        = $('#cart_onepage_company_shortname').val();
9591        var companyPib              = $('#cart_onepage_company_pib').val();
9592        var companyIdNumber         = $('#cart_onepage_company_id_number').val();
9593        // $('#cart_onepage_delivery_country_order_address').val(orderAddress);
9594        $('#cart_onepage_delivery_country_type_person').val(typePerson);
9595        $('#cart_onepage_delivery_country_new_address_list_id').val(newAddressListId);
9596        $('#cart_onepage_delivery_country_new_address_list').val(newAddressList);
9597        $('#cart_onepage_delivery_country_firstname').val(firstname);
9598        $('#cart_onepage_delivery_country_lastname').val(lastname);
9599        $('#cart_onepage_delivery_country_email').val(email);
9600        $('#cart_onepage_delivery_country_phone').val(phone);
9601        $('#cart_onepage_delivery_country_company_name').val(companyName);
9602        $('#cart_onepage_delivery_country_company_shortname').val(companyShortname);
9603        $('#cart_onepage_delivery_country_company_pib').val(companyPib);
9604        $('#cart_onepage_delivery_country_company_id_number').val(companyIdNumber);
9605        form.submit()
9606    });
9607
9608    $('#cart_onepage_type_person').change(function(){
9609        reloadCartOnePage('changeorderaddress');
9610    });
9611
9612    //cart init
9613    $('#cart_onepage_delivery_city_form #cart_onepage_delivery_city_id').change(function(){
9614        var form                    = $("#cart_onepage_delivery_city_form");
9615        form.submit();
9616    });
9617
9618    $('#order_delivery_city_content #cart_onepage_block_delivery_city_id').change(function(){
9619        var blockDeliveryCityId = $(this).val();
9620        cartChangeDeliveryCityOnePage(blockDeliveryCityId);
9621    });
9622
9623    var checkNewAdressInput = function(){
9624
9625        if($("#orderAddress").is(':checked')){
9626            $("#cart_onepage_phone").attr('type','tel');
9627            $("#cart_onepage_email").attr('type','email');
9628            $(".address-new-login input, .address-new-login select").each(function(){
9629                $(this).data('parsley-required', 'true');
9630                $(this).prop("required", "true");
9631                $(this).renameAttr('data-parsley-lengthone-false', 'data-parsley-lengthone' );
9632                $(this).renameAttr('data-parsley-length-false', 'data-parsley-length' );
9633                $(this).renameAttr('data-pattern', 'pattern' );
9634            });
9635            $(".address-new-login .street-no-new-input input, .street-no-new-input select").each(function(){
9636                $(this).renameAttr('data-parsley-lengthone', 'data-parsley-lengthone-false' );
9637                $(this).renameAttr('data-parsley-length', 'data-parsley-length-false' );
9638                $(this).renameAttr('pattern', 'data-pattern' );
9639                $(this).data('parsley-required', 'false');
9640                $(this).prop("required", "false");
9641                $(this).removeClass("validation-error");
9642                $(this).parent().removeClass("form-group-error");
9643                $(this).removeAttr('required');
9644            });
9645        } else {
9646            $(".address-new-login input, .address-new-login select").each(function(){
9647                $("#cart_onepage_phone").attr('type','text');
9648                $("#cart_onepage_email").attr('type','text');
9649                $("#cart_onepage_postcode").attr('type','text');
9650                $(this).renameAttr('data-parsley-lengthone', 'data-parsley-lengthone-false' );
9651                $(this).renameAttr('data-parsley-length', 'data-parsley-length-false' );
9652                $(this).renameAttr('pattern', 'data-pattern' );
9653                $(this).data('parsley-required', 'false');
9654                $(this).prop("required", "false");
9655                $(this).removeClass("validation-error");
9656                $(this).parent().removeClass("form-group-error");
9657                $(this).removeAttr('required');
9658            });
9659        }
9660
9661        /*$('input[data-parsley-group="adress_new"],select[data-parsley-group="adress_new"]').each(function(){
9662        $(this).parsley().destroy();
9663        $(this).parsley();
9664        });*/
9665        // $('input[name="cart_onepage_firstname"]').parsley();
9666
9667        //$('input[data-parsley-group="adress_new"]').parsley().destroy();
9668        //$('input[data-parsley-group="adress_new"]').parsley();
9669    };
9670
9671    checkNewAdressInput();
9672
9673    $('input[type="radio"][name="orderAddress"]').change(function(){
9674
9675        var countryCartDelivery = 0;
9676        var countryProfile = 0;
9677        if($('#cart_onepage_delivery_country_geo').length > 0){
9678            countryCartDelivery = $('#cart_onepage_delivery_country_geo').val();
9679        };
9680
9681        if($("#orderAddress").is(':checked') && $('#cart_onepage_new_address_list_id').hasClass('required-select-newaddress')){
9682            $("#cart_onepage_new_address_list_id").data('parsley-required', 'true');
9683            $("#cart_onepage_new_address_list_id").prop("required", "true");
9684        } else {
9685            $("#cart_onepage_new_address_list_id").data('parsley-required', 'false');
9686            $("#cart_onepage_new_address_list_id").prop("required", "false");
9687            $("#cart_onepage_new_address_list_id").removeAttr('required');
9688        }
9689
9690        checkNewAdressInput();
9691
9692        var validate = $('#cart_onepage_form').validate().data('nb.validate');
9693        validate.$element.parsley().reset();
9694        //$('#cart_onepage_form').parsley().reset();
9695
9696        var orderAddress = $(this).val();
9697        var new_address_list_id     = $('#cart_onepage_new_address_list_id').val();
9698        var new_address_list_name   = $('#cart_onepage_new_address_list').val();
9699        if(orderAddress == 'no'){
9700            var citiSelectedId = $('#p_cityId').val();
9701            var postCodeSelected = $('#p_postcode').val();
9702        }else{
9703            var citiSelectedId = $('#cart_onepage_city_id').val();
9704            var postCodeSelected = $('#cart_onepage_postcode').val();
9705        }
9706        cartChangeOrderAddressOnePage(orderAddress, countryCartDelivery, new_address_list_id, new_address_list_name, citiSelectedId, postCodeSelected);
9707
9708        // if(orderAddress == 'no'){
9709        //     var citiProfileId = $('#p_cityId').val();
9710        //     var postcodeProfile = $('#p_postcode').val();
9711        //     cartChangeCityIdAndPostCodeOnePage(citiProfileId, postcodeProfile);
9712        // }else{
9713        //     var citiProfileId = $('#cart_onepage_city_id').val();
9714        //     var postcodeProfile = $('#cart_onepage_postcode').val();
9715        //     cartChangeCityIdAndPostCodeOnePage(citiProfileId, postcodeProfile);
9716        // }
9717
9718    });
9719
9720    //if change carrier
9721    $('.cartonepage_carierId').on('ifChecked', function(event){
9722
9723        var carrierId = $(this).val();
9724        var deliveryTime = -1;
9725
9726        if($('#carierId_fastDelivery_'+carrierId).length > 0){
9727            if($('#carierId_fastDelivery_'+carrierId).is(':checked')){
9728                deliveryTime = 1;
9729                $('#cart_onepage_deliveryTime_'+carrierId).val(deliveryTime);
9730            }else{
9731                deliveryTime = -1;
9732                $('#cart_onepage_deliveryTime_'+carrierId).val(deliveryTime);
9733            }
9734        }
9735
9736        cartChangeCarrierOnePage(carrierId, deliveryTime,checkDataOnFormAddressForCarrier());
9737        //calculateValueOrderOnePage(); //todo novo pod kometar
9738        if($('#cart_onepage_storeReciveId').length > 0){
9739            $('#cart_onepage_storeReciveId').val($("#cart_onepage_storeReciveId option:first").val());
9740        }
9741    });
9742
9743    //if change payment
9744    $('.cartonepage_typepayment').on('ifChecked', function(event){
9745        cartChangePaymentTypeOnePage($(this).val());
9746        //calculateValueOrderOnePage(); //todo stavljeno pod komentar
9747    });
9748
9749    $('.cart_onepage_deliveryTime').change(function(){
9750        var carrierId = $('input[type="radio"][name="carierId"]:checked').val();
9751        var deliveryTime =  $('#cart_onepage_deliveryTime_'+carrierId).val();
9752        cartChangeCarrierOnePage(carrierId, deliveryTime,-1);
9753    });
9754
9755    //$('#cart_onepage_message').blur(function(){
9756    $('[id^="cart_onepage_message"]').each(function(){
9757        $(this).blur(function(){
9758            let carrierID = $('input[type="radio"][name="carierId"]:checked').val();
9759            cartChangeMessageOnePage($(this).val().trim(),carrierID);
9760        });
9761    });
9762//ovde
9763    initCartOnePageStoreRecive();
9764
9765    //todo change ticket tipe
9766    initChangeTabTicket();
9767    initInsertTicket();
9768    initRemoveTicket();
9769
9770    if($('.donation-products-wrapper').find('.donation-products').length > 0){
9771        //calculateValueOrderOnePage();
9772    }
9773
9774    // $('#cart_onepage_donation_flag_want_product').on('ifChecked', function(event){
9775    //     calculateValueOrderOnePage();
9776    // });
9777
9778    // $('#cart_onepage_donation_flag_want_product').change(function(event){
9779    //        event.preventDefault();
9780    //      var donationFlagWantProductId = 1; //$('input[type="checkbox"][name="cart_onepage_donation_flag_want_product"]:checked').val();
9781    //      if(!$('#cart_onepage_donation_flag_want_product').is(':checked')){
9782    //          donationFlagWantProductId = -1;
9783    //      }
9784    //      cartChangeDonationFlagWantProduct(donationFlagWantProductId);
9785    //      //calculateValueOrderOnePage();
9786    //  });
9787
9788    //$("#cart_onepage_country_geo_id").bind("change", function() {
9789
9790
9791
9792/*    $('#cart_onepage_country_geo_id').on('change' ,function(){
9793        var country_geo_id = $(this).val();
9794        if(country_geo_id > 0){
9795            $( "#cart_onepage_delivery_country_geo" ).val(country_geo_id);
9796            $( "#cart_onepage_delivery_country_geo" ).trigger( "change" );
9797        }
9798
9799    });*/
9800    let prevSelectedCountry;
9801    if($('#cart_onepage_country_geo_id').length !== 0) {
9802        prevSelectedCountry = $('#cart_onepage_country_geo_id').prop('selectedIndex');
9803    }
9804    $('#cart_onepage_country_geo_id').on('change' ,function(element){
9805
9806        if($('#cart_onepage_country_geo_id').data('active-cart-steps') == 1) {
9807            bootbox.confirm($('#cart_onepage_country_geo_id').data('question-change-country'), function (result) {
9808                if (!result) {
9809                    $('#cart_onepage_country_geo_id').prop('selectedIndex',prevSelectedCountry);
9810                    return;
9811                }
9812
9813                var country_geo_id = $('#cart_onepage_country_geo_id').val();
9814                if (country_geo_id > 0) {
9815                    $("#cart_onepage_delivery_country_geo").val(country_geo_id);
9816                    $("#cart_onepage_delivery_country_geo").trigger("change");
9817                }
9818            });
9819        }else{
9820            var country_geo_id = $('#cart_onepage_country_geo_id').val();
9821            if (country_geo_id > 0) {
9822                $("#cart_onepage_delivery_country_geo").val(country_geo_id);
9823                $("#cart_onepage_delivery_country_geo").trigger("change");
9824            }
9825        }
9826    });
9827
9828
9829    $('#cart_onepage_new_address_list_id').on('change' ,function(){
9830        var new_address_list_id     = $(this).val();
9831        var new_address_list_name   = $('#cart_onepage_new_address_list').val();
9832        var orderAddress            = $('input[type="radio"][name="orderAddress"]:checked').val(); //$('input[type="radio"][name="orderAddress"]').val();
9833
9834        if(orderAddress == "yes"){
9835            cartChangeAddressOnListOnePage(new_address_list_id, new_address_list_name);
9836        }
9837    });
9838
9839    loadDataForDonationProductOrderOnePage();
9840    showAndHideElementDonation();
9841    handleCountryFocus();
9842    //showAndHodeDonationDescriptionModal();
9843    showAndHodeGiftDescriptionModal();
9844    //loadTicketForType($('.tickets-type li.active'));
9845    //end cart init
9846
9847    var search = $('#promotion-search').val();
9848    if(search != ''){
9849        $('#promo-btn-search').trigger('click');
9850    }
9851
9852    //enabled serach users
9853    enabledSearchUsers();
9854
9855    // Za inicijalizaciju zvezdica prilikom pisanja komentara
9856    init_ratingStars();
9857
9858    $("#contact_service_intervention .send-request-service-intervention").click(function(e){
9859        NbContacts.prototype.addContactServiceIntervention(e);
9860        $(this).addClass('active');
9861    });
9862
9863    $("#price_catalog_query_form .send-request-price-catalog-query").click(function(e){
9864        NbContacts.prototype.sendRequestPriceCatalogQuery(e);
9865        $(this).addClass('active');
9866    });
9867
9868    $("#contact_booking .send-request-contact-booking").click(function(e){
9869        NbContacts.prototype.addContactBookingIntervention(e);
9870        $(this).addClass('active');
9871    });
9872
9873    $("#contact_order_spare_part .send-request-order-spare-part").click(function(e){
9874        NbContacts.prototype.addContactOrderSparePart(e);
9875        $(this).addClass('active');
9876    });
9877
9878    $("#contact_form_reservation .send-request-form-reservation").click(function(e){
9879        NbContacts.prototype.addContactFormReservation(e);
9880        $(this).addClass('active');
9881    });
9882
9883    $("#contact_v8_form_reservation .send-request-form-reservation").click(function(e){
9884        NbContacts.prototype.addcontactv8formreservation(e);
9885        $(this).addClass('active');
9886    });
9887
9888    $("#contact_form_custom_reservation .send-request-form-custom-reservation").click(function(e){
9889        NbContacts.prototype.addContactFormCustomReservation(e);
9890        $(this).addClass('active');
9891    });
9892
9893    $("#event_form .send-request-event-application").click(function(e){
9894        NbContacts.prototype.addContactEventApplication(e);
9895        $(this).addClass('active');
9896    });
9897
9898    $("#item_search_form .send-request-search-documents").click(function(e){
9899        NbSearchDocuments.prototype.searchDocuments(e);
9900    });
9901
9902    $("#my_product_form .send-request-add-my-product").click(function(e){
9903        NbUserMyProducts.prototype.addMyProduct(e);
9904    });
9905
9906    $("#my_product_form .send-request-edit-my-product").click(function(e){
9907        NbUserMyProducts.prototype.updateMyProduct(e);
9908    });
9909
9910    $("#contact_form_offers .send-request-save-offers").click(function(e){
9911        Offers.prototype.saveOffers(e);
9912    });
9913
9914    window.addEventListener('responseOfferOpen', function (e) {
9915
9916        $("#offers_response_modal_form .save-response-offer").click(function (e) {
9917            Offers.prototype.saveResponseForOffer(e);
9918        });
9919
9920    });
9921
9922    /* Select product */
9923    $('.profile-products-product-group-select .product-group-wrapper .item').click(function () {
9924        var selectedProductId = $(this).data('groupid');
9925        $('h2.second-step-title').removeClass('hidden');
9926        $('.product-items-list-wrapper').addClass('hidden');
9927        $('#group_'+selectedProductId).removeClass('hidden');
9928        $('.profile-products-product-group-select .product-group-wrapper .item').each(function(){
9929            $(this).removeClass('active');
9930        });
9931        $(this).addClass('active');
9932        $('.content-add-form-my-product-data').addClass('hidden');
9933        $('#my_product_productId').val(-1);
9934        $('#my_product_serial_number').val("");
9935        $('#my_product_type_buy').val(-1);
9936        $('#my_product_store_id').val(-1);
9937
9938        var date = new Date();
9939
9940        $('#my_product_year').val(date.getFullYear());
9941        $('#my_product_month').val(date.getMonth()+1);
9942        $('#my_product_day').val(date.getDay());
9943
9944        $('.title.third-step-title').addClass('hidden');
9945        $('.profile-products-product-group-select .product-items-list-wrapper .item').each(function(){
9946            $(this).removeClass('active');
9947        });
9948    });
9949
9950    /* select color */
9951    $('.profile-products-product-group-select .product-items-list-wrapper .item').click(function () {
9952        $('.profile-products-product-group-select .product-items-list-wrapper .item').each(function(){
9953            $(this).removeClass('active');
9954        });
9955        $(this).addClass('active');
9956        var selectedProductId = $(this).data('selected-product-id');
9957        $('#my_product_productId').val(selectedProductId);
9958        $('.content-add-form-my-product-data').removeClass('hidden');
9959        $('.title.third-step-title').removeClass('hidden');
9960        var productName = $(this).find('.title').text();
9961        var productImg = $(this).find('img.img-responsive').attr('src');
9962        $('.my_product_form .product-title span.selected-product-name').text(productName);
9963        $('.my_product_form .selected-img-wrapper img.img-responsive').attr('src', productImg);
9964    });
9965
9966    /* select store */
9967    $('#my_product_type_buy').change(function () {
9968
9969        if ($(this).val() == 'inStore') {
9970            $('.store-input-wrapper').removeClass('hidden');
9971            $('.my-product-partner-id-wrapper').addClass('hidden');
9972
9973            $('#my_product_store_id').attr('required',true);
9974            $('#my_product_partner_id').removeAttr('required');
9975            $('#my_product_partner_id').data('parsley-required', 'false');
9976
9977        }else if($(this).val() == 'partner'){
9978            $('.my-product-partner-id-wrapper').removeClass('hidden');
9979            $('.store-input-wrapper').addClass('hidden');
9980
9981            $('#my_product_partner_id').attr('required',true);
9982            $('#my_product_store_id').removeAttr('required');
9983            $('#my_product_store_id').data('parsley-required', 'false');
9984        } else {
9985            $('.my-product-partner-id-wrapper').addClass('hidden');
9986            $('.store-input-wrapper').addClass('hidden');
9987            $('#my_product_partner_id').removeAttr('required');
9988            $('#my_product_partner_id').data('parsley-required', 'false');
9989            $('#my_product_store_id').removeAttr('required');
9990            $('#my_product_store_id').data('parsley-required', 'false');
9991        }
9992    });
9993
9994    var typeProductBay = $('#my_product_type_buy').val();
9995    if(typeProductBay == 'inStore'){
9996        $('.store-input-wrapper').removeClass('hidden');
9997        $('.my-product-partner-id-wrapper').addClass('hidden');
9998        $('#my_product_partner_id').val(-1);
9999
10000        $('#my_product_store_id').attr('required',true);
10001        $('#my_product_partner_id').removeAttr('required');
10002        $('#my_product_partner_id').data('parsley-required', 'false');
10003
10004    }else if(typeProductBay == 'partner'){
10005        $('.my-product-partner-id-wrapper').removeClass('hidden');
10006        $('.store-input-wrapper').addClass('hidden');
10007        $('#my_product_store_id').val(-1);
10008
10009        $('#my_product_partner_id').attr('required',true);
10010        $('#my_product_store_id').removeAttr('required');
10011        $('#my_product_store_id').data('parsley-required', 'false');
10012
10013    }else{
10014        $('#my_product_store_id').val(-1);
10015        $('#my_product_partner_id').val(-1);
10016        $('.my-product-partner-id-wrapper').addClass('hidden');
10017        $('.store-input-wrapper').addClass('hidden');
10018        $('#my_product_partner_id').removeAttr('required');
10019        $('#my_product_partner_id').data('parsley-required', 'false');
10020        $('#my_product_store_id').removeAttr('required');
10021        $('#my_product_store_id').data('parsley-required', 'false');
10022    }
10023
10024    $("#check_is_valid_loyalty_user .send-request-is-valid-loyalty-u
10024ser").click(function(e){
10025        LoyaltyPurchasings.prototype.checkIsValidLoyaltyUser(e);
10026    });
10027
10028    $("#register_devices_form .send-request-register_devices").click(function(e){
10029        RegisterDevices.prototype.addDevice(e);
10030    });
10031
10032    $("#register_devices_form .send-request-edit-register-devices").click(function(e){
10033        RegisterDevices.prototype.editDevice(e);
10034    });
10035
10036    $("#register_devices_form .send-request-edit-register-devices").click(function(e){
10037        RegisterDevices.prototype.editDevice(e);
10038    });
10039
10040    /* prebaceno iz blokova */
10041    //openCookieInfoAlert('site_cookie_info_alert', 'modal-cookie-info-alert', 365);
10042    openCookieInfoAlert('site_cookie_info', 'modal-cookie-info', 365);
10043
10044    if (typeof promoModalPopNumberDaysInit === 'undefined') {
10045        var promoModalPopNumberDays = 1;
10046    } else {
10047        promoModalPopNumberDays = promoModalPopNumberDaysInit;
10048    }
10049    printShoppingList();
10050    //setovanje delay u temi
10051    if(window.nbPopupDelay === undefined){
10052        window.nbPopupDelay = 10000;
10053    }
10054    /*setTimeout(function () {
10055        openCookieModals('PromoModal', 'onload_modal', promoModalPopNumberDays);
10056    }, window.nbPopupDelay);*/
10057
10058    promoModalSetTimeout = setTimeout(function(){
10059        openCookieModals('PromoModal', 'onload_modal', promoModalPopNumberDays);
10060    }, window.nbPopupDelay);
10061
10062    //exit popup newsletter
10063    if($('.exit-modal-slider').hasClass('newsleter')){
10064        clearTimeout(promoModalSetTimeout);
10065    }
10066
10067    $('#login_modal,#register_modal,#popup-notification-modal').on('shown.bs.modal', function (e) {
10068        clearTimeout(promoModalSetTimeout);
10069    });
10070
10071    $('#lost_password_new_submit').click(function (e) {
10072        ResetPasswords.prototype.saveNewPassword(e);
10073    });
10074
10075    $('#login_password_repeat_submit').click(function (e) {
10076        ResetPasswords.prototype.sendAgainLink(e);
10077    });
10078
10079    openCookieModalsMobile('mobile_cookie_baner', 'mobile-cookie-baner', 365);
10080    initReadyNbMetricData();
10081
10082    mobileFiltersWithApplyBtn();
10083    $(window).on('loadproductsevent', function (){
10084        mobileFiltersWithApplyBtn();
10085    });
10086});
10087/* end */
10088

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.