PageSourceSearch

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

js buzzsneakers.sk collected 2026-10-06 20:00:40 UTC 288,419 bytes, 7,307 lines download raw bytes

1/*start*/
2function NBShopJS(){
3    window.nbFormError = [];
4
5    /** VALIDACIJA FORMI I HELPER FUNKCIJE ZA FORME */
6    var Validate = function (element, options) {
7        this.$element = $(element);
8        this.$parsley;
9        this.options = {
10            formData: {},
11            remoteUrl: this.$element.data('remote-url'),
12            alertContainer: this.$element.find('.alert'),
13            refreshPage : false,
14            goToUrl: this.$element.data('go-to-url'),
15            validateOnFocusOut: true
16        };
17
18        this.options = $.extend( {}, this.options, options) ;
19        this.init(options);
20
21    };
22
23    Validate.prototype = {
24
25        init: function (options) {
26            $.extend(this.options, options);
27            this.$parsley = this.$element.parsley();
28            this.listenFieldValidatedSuccess();
29            this.listenFieldValidatedError();
30            this.listenFieldFocusOut();
31            this.listenFormValidated();
32            this.trigger('initialize');
33        },
34
35        listenFormValidated: function(){
36            var self = this;
37
38            this.$parsley.subscribe('parsley:form:validated', function(formInstance) {
39
40                if(typeof self.options.remoteUrl !== "undefined" && self.options.remoteUrl){
41                    formInstance.submitEvent.preventDefault();
42                } else {
43                    self.setButtonSubmitted();
44                    return;
45                }
46
47                if(!formInstance.isValid()){
48                    return;
49                }
50
51                //submit remote if it has been setted
52                self.submitRemote();
53            });
54        },
55
56        listenFieldValidatedSuccess: function(){
57            this.$parsley.subscribe('parsley:field:success', function (fieldInstance) {
58                fieldInstance.$element.parents('.form-group').removeClass('form-group-error');
59            });
60        },
61
62        listenFieldValidatedError: function(){
63            this.$parsley.subscribe('parsley:field:error', function (fieldInstance) {
64                fieldInstance.$element.parents('.form-group').addClass('form-group-error');
65                window.nbFormError.push(fieldInstance.$element[0].name);
66            });
67        },
68
69        resetForm: function(){
70            this.$element.find('input, textarea').val('').prop('checked', false);
71            this.$parsley.reset();
72            this.resetAlertContainer();
73        },
74
75        resetAlertContainer: function(){
76            this.options.alertContainer.removeClass('alert-danger alert-success').addClass('hidden').html('');
77        },
78
79        hideAlertContainer: function(){
80            this.options.alertContainer.addClass('hidden');
81        },
82
83        showAlertContainer: function(){
84            this.options.alertContainer.removeClass('hidden');
85        },
86
87        setAlertSuccess: function(msg){
88            this.resetAlertContainer();
89            this.showAlertContainer();
90            this.options.alertContainer.addClass('alert-success').html(msg);
91        },
92
93        setAlertError: function(msg){
94            this.resetAlertContainer();
95            this.showAlertContainer();
96            this.options.alertContainer.addClass('alert-danger').html(msg);
97        },
98
99        setRemoteSuccess: function(msg,noreset){
100            if(!noreset){
101                this.resetForm();
102            }
103            this.setAlertSuccess(msg);
104            this.trigger('remoteSuccess');
105            // Generisanje novog Google reCaptcha V3 tokena jer je iskorišćen na prethodni submit
106            if(typeof(initGoogleRecaptchaV3) !== 'undefined'){
107                initGoogleRecaptchaV3();
108            }
109        },
110        setremoteUrlRedirect: function(msg){
111            this.trigger('remoteUrlRedirect');
112        },
113        setRemoteError: function(msg){
114            this.setAlertError(msg);
115            this.trigger('remoteError');
116        },
117
118        setButtonSubmitted: function($btn){
119            //get added hidden fields that associates to the submitted button
120            var $originallyClicked = this.$element.find('input[rel=originallyclicked]');
121
122            //for has been submitted and some hidden field that associates
123            //to the submitted button has been already added
124            if(typeof $btn === "undefined" && $originallyClicked.length){
125                return;
126            }
127
128            //no hidden fields that associates to the submitted button has been added
129            if(typeof $btn === "undefined" && !$originallyClicked.length){
130                $btn = this.$element.find('[type=submit]');
131            }
132
133            //remove previously added hidden fields
134            if($originallyClicked.length){
135                $originallyClicked.remove();
136            }
137
138            //add hidden field that associates to the latest submitted button
139            this.$element.append($("<input>").attr("type", "hidden")
140                .attr("name", $btn.attr('name'))
141                .attr("rel", 'originallyclicked')
142                .val("1"));
143        },
144
145        submitRemote: function(){
146            var self = this;
147            var idForm = this.$element.attr('id');
148            var noreset = false;
149            window.NB_AJAX_RET='';
150            var formData = self.$element.serializeObject();
151            $.extend(formData, self.options.formData);
152
153            if(formData.hasOwnProperty('regmarketingpermisions')){
154                let checkfiled = app.serilizeSSOCheckbox();
155
156                if(typeof smartform === "undefined") {
157                    formData.regmarketingpermisions = $.param(checkfiled);
158                }
159            }
160
161
162            //todo cuvanje podatala u bazi
163            var saveData = function(self, formData){
164                var loaderbtn               = $(self.options.alertContainer.context).find('.confirm-loader');
165                $(loaderbtn).addClass('active');
166
167                /*if(self.options.goToUrl){
168                    let getmetod = '';
169                    let count = 0;
170                    let prefix = '?';
171                    for (var key in formData) {
172                        if(count > 0){
173                            prefix = '&';
174                        }
175                        if (formData.hasOwnProperty(key)) {
176                            getmetod+= prefix+key + "=" + formData[key];
177                            count++;
178                        }
179                    }
180                    window.location.href = nb_site_url+'/'+encodeURI(self.options.remoteUrl+getmetod);
181                    self.setremoteUrlRedirect(formData);
182                    return
183                }*/
184                $.ajax({
185                    type: "POST",
186                    url: self.options.remoteUrl,
187                    // data: $.extend(formData, self.options.formData),
188                    data: formData,
189                    contentType: "application/x-www-form-urlencoded;charset=UTF-8",
190                    dataType: 'json',
191                    success: function(ret){
192
193                        if(ret.flag){
194                            window.NB_AJAX_RET = ret;
195                            if(self.options.formData.returnStatus){
196                                window.NB_AJAX_STATUS = ret.status;
197                            }
198                            if(self.options.formData.noreset){
199                                noreset = true;
200                            }
201
202                            self.setRemoteSuccess(ret.info,noreset);
203
204                            if(self.$element.hasClass('login_form')){
205                                nbshopJS.CustomEventTrigger('loginUser',ret.f_user_gtm);
206                                nbshopJS.CustomEventTrigger('loginUserNew',ret.f_USER_PUBLIC_gtm);
207                                nbshopJS.CustomEventTrigger('LoginEvent', { userInfo: ret.f_USER_PUBLIC_gtm, event_id: generateEventId() } ); // FB CAPI event
208                            }
209
210                            if(formData.nbTask === "newsletter" && typeof ret.userEmailHashed !== "undefined" && ret.userEmailHashed) {
211                                nbshopJS.CustomEventTrigger('NewsletterLoginEvent', { userInfo: { userEmailHashed: ret.userEmailHashed } } ); // FB CAPI event
212                            }
213
214                            if(self.options.refreshPage){
215                                if(ret.flagRefreshPage){
216                                    let newLink = ret.backUrl;
217                                    //pokretanje login-a sa bloka loyalty korpe
218                                    if(ret.backUrl.includes("#start_login")){
219                                        newLink =  ret.backUrl.replace("#start_login","");
220                                        createCookie('vc_start_login',1);
221                                    }
222                                    setTimeout(window.location = newLink, 2000);
223                                }
224                            }
225                            $(loaderbtn).removeClass('active');
226
227                        }else{
228                            window.NB_AJAX_RET = ret;
229                            if(typeof grecaptcha !== 'undefined' ){
230                                $('.g-recaptcha').each(function (index) {
231                                    grecaptcha.reset(index);
232                                });
233                            }
234                            self.setRemoteError(ret.info);
235                            $(loaderbtn).removeClass('active');
236                        }
237                    }
238                });
239            };
240
241            if(idForm != "undefined" && $("#"+idForm+" .files_input").length > 0){
242
243                var counterFiles = 0;
244                var numberFiles  = 0; //$( "#"+idForm+" .files_input" ).size();
245                var filesObject  = [];
246
247                var flagSave = false;
248                $("#"+idForm+" .files_input").each(function (event) {
249                    if($(this).val() != ''){
250                        flagSave = true;
251                        numberFiles++;
252                    }
253                });
254
255                if(flagSave){
256                    $("#"+idForm+" .files_input").each(function (event) {
257                        if($(this).val() != '') {
258                            //todo radimo upload fajlova
259                            var files = this.files,
260                                name_field = $(this).attr('name');
261                            $.each(this.files, function (index, file) {
262                                var reader = new FileReader();
263                                reader.onload = function (event) {
264                                    counterFiles++;
265                                    object = {};
266                                    object.file_name = file.name;
267                                    object.name_field = name_field;
268                                    object.data = event.target.result;
269                                    filesObject.push(object);
270
271                                    if (numberFiles == counterFiles) {
272                                        formData = $.extend(formData, {files: filesObject});
273                                        //todo ukoliko prebaceni na server onda radimo cuvanje registracije
274                                        saveData(self, formData);
275                                    }
276                                };
277                                reader.readAsDataURL(file);
278                            });
279                        }
280
281                    });
282                }else{
283                    saveData(self, formData);
284                };
285            }else{
286                saveData(self, formData);
287            }
288        },
289
290        addFieldRemoteValidate: function($field, query){
291            var self = this,
292                dataRemoteURL = $field.data('parsley-remote'),
293                dataRemoteRuleName = $field.data('parsley-remote-validator');
294
295            if(!dataRemoteURL || !dataRemoteRuleName){
296                return;
297            }
298            $field.parsley().addAsyncValidator(
299                dataRemoteRuleName, function(xhr){
300                    var rule = $field.parsley();
301                    var ret = $.parseJSON(xhr.responseText);
302
303                    window.ParsleyUI.removeError(rule, 'remote');
304                    window.ParsleyUI.removeError(rule, dataRemoteRuleName);
305
306                    if(ret.flag){
307                        if(typeof ret.data !== "undefined"){
308                            self.triggerField($field, 'remoteSuccessData', ret.data);
309                        }
310                        return 200;
311                    }
312
313                    window.ParsleyUI.addError(rule, dataRemoteRuleName, ret.info);
314
315                    if(typeof ret.data !== "undefined"){
316                        self.triggerField($field, 'remoteErrorData', ret.data);
317                    }
318                    return false;
319                }, dataRemoteURL, { data: query }
320            );
321        },
322
323        trigger: function(name, data){
324            this.triggerField(this.$element, name, data);
325        },
326
327        triggerField: function($field, name, data){
328            $field.trigger('nb.validate.'+name, data);
329        },
330
331        listenFieldFocusOut: function(){
332            if(!this.options.validateOnFocusOut) return;
333
334            this.$element.find('.form-control, .styled-select select').on('focusout change', function(){
335                var $field = $(this).parsley();
336                $field.validate();
337            });
338        }
339
340    };
341
342    /** The jQuery Plugin for the form validation */
343    $.fn.validate = function(option) {
344        var args = Array.prototype.slice.call(arguments, 1);
345
346        return this.each(function() {
347            var $this = $(this),
348                data = $this.data('nb.validate');
349
350            if (!data) {
351                data = new Validate(this, typeof option == 'object' && option);
352                $this.data('nb.validate', data);
353            }
354
355            if (typeof option == 'string' && option.charAt(0) !== '_') {
356                data[option].apply(data, args);
357            }
358        });
359    };
360
361    /** The constructor for the jQuery Plugin */
362    $.fn.validate.Constructor = Validate;
363
364    /** IMPORTED PLUGINS - pravi od svih vrednosti input polja niz */
365    $.fn.serializeObject = function(){
366        var obj = {};
367
368        $.each( this.serializeArray(), function(i,o){
369            var n = o.name,
370                v = o.value;
371
372            obj[n] = obj[n] === undefined ? v
373                : $.isArray( obj[n] ) ? obj[n].concat( v )
374                    : [ obj[n], v ];
375        });
376
377        return obj;
378    };
379
380    /** SLICK SLIDER FUNKCIJA */
381    $.fn.nbHandleSlider = function(options){
382        var $this = this,
383            $wrapper        = $this.parent('.slider'),
384            $navigation     = $wrapper.children('.slider-arrows');
385
386        var settings = $.extend({
387            //options go here
388            swipeToSlide: true,
389            appendArrows: $navigation,
390            prevArrow: '<div class="slider-arrow slider-prev"><i class="fa fa-angle-left" aria-hidden="true"></i></div>',
391            nextArrow: '<div class="slider-arrow slider-next"><i class="fa fa-angle-right" aria-hidden="true"></i></div>'
392        }, options );
393        $this.find('img.lozad').each(function () {
394            //$(this).removeClass('lozad').attr('');
395        })
396
397        var slider = $this.not('.slick-initialized').slick(settings);
398        return slider;
399    };
400
401    /** SLIDER - PROSLEDJIVANJE OPCIJE SLIDER-A DO GLAVNE FUNKCIJE*/
402    var initSlider = function(elementId, options){
403        var $slider = $(elementId);
404        if($slider.length < 1){
405            return false;
406        }
407        $slider.nbHandleSlider(options);
408
409        if($(elementId).parent('.lists-tabs').length > 0){
410            $slider.on('beforeChange', function(event, slick, currentSlide, nextSlide){
411                elt = slick.$slides.get(nextSlide);
412                $(this).parent().find('.tab-pane').removeClass('active');
413
414                if ($(elt).find('a').attr('href') !== undefined) {
415                    var tabId = $(elt).find('a').attr('href').toString();
416
417                    if ($(elt).hasClass("tab-items")){
418                        $(tabId).addClass('active');
419                    }
420                }
421
422                $('.slick-slide[data-index=' + nextSlide + ']').addClass('active');
423            });
424        }
425    };
426
427    /** SLICK SLIDER FUNKCIJA ZA SLIDER DRUGOG NIVOA */
428    $.fn.nbHandleSliderLev2 = function(options){
429        var $this = this,
430            $wrapper        = $this.closest('.slider-level2'),
431            $navigation     = $wrapper.find('.slider-arrows');
432
433        var settings = $.extend({
434            //options go here
435            appendArrows: $navigation,
436            prevArrow: '<div class="slider-arrow slider-prev"><i class="fa fa-angle-left" aria-hidden="true"></i></div>',
437            nextArrow: '<div class="slider-arrow slider-next"><i class="fa fa-angle-right" aria-hidden="true"></i></div>'
438        }, options );
439        $this.find('img.lozad').each(function () {
440            //$(this).removeClass('lozad');
441        })
442
443        var slider = $this.slick(settings);
444        return slider;
445    };
446
447    /** SLIDER LEVEL 2 - PROSLEDJIVANJE OPCIJE SLIDER-A DO GLAVNE FUNKCIJE DRUGOG NIVOA */
448    var initSliderLev2 = function(elementId, options){
449        var $slider = $(elementId);
450        $slider.nbHandleSliderLev2(options);
451
452        if($(elementId).parent('.lists-tabs').length > 0){
453            $slider.on('beforeChange', function(event, slick, currentSlide, nextSlide){
454                elt = slick.$slides.get(nextSlide);
455                $(this).parent().find('.tab-pane').removeClass('active');
456                var tabId = $(elt).find('a').attr('href').toString();
457                if ($(elt).hasClass("tab-items")){
458                    $(tabId).addClass('active');
459                }
460                $('.slick-slide[data-index=' + nextSlide + ']').addClass('active');
461            });
462        }
463    };
464
465    /** SLIDER - Init slider with each class */
466    var initSliderEach = function(elementId, options){
467        var $slider = $(elementId);
468        $slider.each(function(){
469            $(this).nbHandleSlider(
470                options
471            );
472        });
473    };
474
475    /** SLIDERE TREBA PREBACITI U nbHandleSlider FUNKCIJU I OBRISATI OVU FUNKCIJU */
476    $.fn.handleSlider = function(options){
477        var $this = this,
478            $wrapper        = $this.parents('.slider-wrapper'),
479            $navigation     = $wrapper.find('.slider-arrows'),
480            dataItems       = $this.data('items'),
481            dataItemsXXS    = $this.data('items-xxs'),
482            dataItemsXS     = $this.data('items-xs'),
483            dataItemsSM     = $this.data('items-sm'),
484            dataItemsMD     = $this.data('items-md'),
485            dataSpeed       = $this.data('speed');
486
487        var settings = $.extend({
488            //options go here
489            speed: dataSpeed > 0 ? dataSpeed : 300,
490            slidesToShow: dataItems,
491            slidesToScroll: dataItems,
492            arrows: true,
493            appendArrows: $navigation,
494            prevArrow: '<div class="slider-arrow slider-prev"><i class="fa fa-angle-left" aria-hidden="true"></i></div>',
495            nextArrow: '<div class="slider-arrow slider-next"><i class="fa fa-angle-right" aria-hidden="true"></i></div>',
496            responsive: [
497                {
498                    breakpoint: 1400,
499                    settings: {
500                        slidesToShow: dataItemsMD,
501                        slidesToScroll: dataItemsMD
502                    }
503                },
504                {
505                    breakpoint: 1024,
506                    settings: {
507                        slidesToShow: dataItemsSM > 0 ? dataItemsSM : Math.round(dataItems / 2),
508                        slidesToScroll: dataItemsSM > 0 ? dataItemsSM : Math.round(dataItems / 2)
509                    }
510                },
511                {
512                    breakpoint: 768,
513                    settings: {
514                        slidesToShow: dataItemsXS > 0 ? dataItemsXS : Math.round(dataItems / 2),
515                        slidesToScroll: dataItemsXS > 0 ? dataItemsXS : Math.round(dataItems /2)
516                    }
517                },
518                {
519                    breakpoint: 480,
520                    settings: {
521                        slidesToShow: dataItemsXXS > 0 ? dataItemsXXS : Math.round(dataItems / 2),
522                        slidesToScroll: dataItemsXXS > 0 ? dataItemsXXS : Math.round(dataItems /2)
523                    }
524                }
525            ]
526        }, options );
527
528        var slider = $this.slick(settings);
529
530        return slider;
531
532    };
533
534    /** REINICIJALIZACIJA SLIDER-A */
535    $.fn.reinitSlider = function(){
536        var $this = this;
537        var slider = $this.slick('setPosition');
538        return slider;
539    };
540
541    /** GET WINDOW WIDTH */
542    var windowWidth = function(){
543        return (window.innerWidth) ?
544            window.innerWidth :
545            document.documentElement.clienWidth || document.body.clienWidth || 0;
546    };
547
548    /** GET WINDOW HEIGHT */
549    var windowHeight = function(){
550        return (window.innerHeight) ?
551            window.innerHeight :
552            document.documentElement.clientHeight || document.body.clientHeight || 0;
553    };
554
555    /** MOBILE Breakpoint */
556    var mobileBreakpoint = function(width){
557        if(width > 0){
558            return width;
559        }
560        return 767;
561    };
562
563    /** PRINT ELEMENT * Description: Print element with given ID */
564    var printFrame = function(elementId, frameId) {
565        var frameElementId = frameId;
566        if (typeof frameId === 'undefined') {
567            frameElementId = 'print_frame';
568        }
569
570        var printFrame = window.frames[frameElementId];
571        printFrame.document.body.innerHTML=document.getElementById(elementId).innerHTML;
572        printFrame.window.focus();
573        printFrame.window.print();
574    };
575
576    /** LOAD TAB ON CLICK OF AN ELEMENT */
577    var handleBindedToTab = function(eventElementId, targetElementId, speed){
578        $(eventElementId).click(function(e){
579            e.preventDefault();
580            if (typeof speed === 'undefined') {
581                var speed = 300;
582            }
583            var $elClicked = $(this);
584            var $tab = $('a[href="'+$elClicked.attr('href')+'"]').tab('show').first(); //nb:check
585
586            if(windowWidth() <= 1024){
587                $($elClicked.attr('href')).addClass('in'); //nb:check
588            }
589            var sHeader = $(this).hasClass('sticky-header');
590            let headerHeight = $('.header').height();
591            if(!sHeader){
592                he = $($elClicked.attr('href')).offset().top-headerHeight;
593                $(targetElementId).animate({scrollTop: he}, speed);
594            }
595        });
596    };
597
598    var clickOpenVerticalTabTab = function(element,targetElementId,an_speed,headerHeight){
599        if(!headerHeight){
600            headerHeight = 0;
601        }
602        $(element).click(function(e){
603            e.preventDefault();
604            if (typeof an_speed === 'undefined') {
605                an_speed = 800;
606            }
607            var $elClicked = $(this);
608            var targetid = $elClicked.attr('href');
609            $(targetid).collapse('show');
610            $(targetElementId).animate({scrollTop: $(targetid).offset().top+headerHeight}, an_speed);
611
612        });
613    };
614    /** Animate tp anchor links */
615    var handleAnchorLinks = function(elementId, targetElementId, marginTop, speed){
616        $(elementId).on('click', function(event){
617            event.preventDefault();
618            if(typeof ($(this.hash).offset()) != 'undefined') {
619                $(targetElementId).animate({scrollTop:($(this.hash).offset().top - marginTop)}, speed);
620            }
621        });
622    };
623
624    var closeOpendElementOnOutClick = function(element, activeClass,exception){
625        $(element).click(function (e) {
626            a = 0;
627        });
628        if(!exception){
629            exception = element;
630        }
631        $('body').click(function(e){
632            if($(element).hasClass(activeClass)  && a > 0){
633                if ($(e.target).closest(exception).length === 0 ) {
634                    $(element).removeClass(activeClass);
635                }
636            }
637            a++;
638        });
639    }
640
641
642    function initCzechMapWithMarkerOnly(elementClass) {
643        var center = SMap.Coords.fromWGS84(elementClass.data('lng'), elementClass.data('lat'));
644        var m = new SMap(JAK.gel("map-container"), center, 13);
645        m.addDefaultLayer(SMap.DEF_BASE).enable();
646        m.addDefaultControls();
647
648        var layer = new SMap.Layer.Marker();
649        m.addLayer(layer);
650        layer.enable();
651
652        var options = {};
653        var marker = new SMap.Marker(center, "myMarker", options);
654        layer.addMarker(marker);
655    }
656
657    /** GOOGLE MAPS */
658    var handleMap = function(elementId,style, options, markerOptions, scroll){
659        if(nb_enableCzMap){
660/*            $map.data('lat', $mapTriggerInstance.data('lat'));
661            $map.data('lng', $mapTriggerInstance.data('lng'));*/
662            // handleMap($map,style);
663            //initCzechMapWithMarkerOnly(elementId);
664
665        }else{
666            if(!elementId.length) return;
667
668            var Wscroll = scroll;
669            var styles = style;
670
671            Wscroll = (Wscroll && Wscroll>'')? true : false;
672            if(style == false || style == '') {
673                styles = [];
674            }
675
676            var _options = {
677                center: new google.maps.LatLng(elementId.data('lat'), elementId.data('lng')),
678                zoom: 16,
679                scrollwheel: Wscroll,
680                mapTypeControl: false,
681                mapTypeId: google.maps.MapTypeId.ROADMAP,
682                styles: styles
683            };
684
685            var map = new google.maps.Map(elementId[0], $.extend(_options, options));
686
687            if(markerOptions === false) return map;
688
689            var _markerOptions = {
690                position: new google.maps.LatLng(elementId.data('lat'), elementId.data('lng')),
691                icon: elementId.data('map-marker') ? new google.maps.MarkerImage(elementId.data('map-marker')) : null,
692                map: map
693            };
694
695            var marker = new google.maps.Marker($.extend(_markerOptions, markerOptions));
696
697            marker.setMap(map);
698            return map;
699        }
700
701    };
702
703    /** GOOGLE MAP MODAL */
704    var handleModalMap = function($mapTrigger,style, elementId){
705
706        if(!$mapTrigger.length) return;
707        var $mapModal = elementId, //$('#map_modal')
708            $map = $mapModal.find('.modal-map');
709
710        //modal with map is requested
711        $mapTrigger.click(function(){
712            var $mapTriggerInstance = $(this);
713            //vertically align modal before displaying
714            handleModalCenter();
715            //get its title by title of map trigger link
716            //$mapModal.find('.modal-title').html($mapTriggerInstance.data('title'));
717            //modal is ready, show it
718            $mapModal.modal('show');
719            //empty map
720            $map.empty();
721            //once showed initialize map with its coordinates
722            //map CANNOT be initialized before this event, because its CONTAINER HAS TO BE VISIBLE!
723            $mapModal.on('shown.bs.modal', function(){
724                $(".modal-backdrop.in").hide();
725                $map.data('lat', $mapTriggerInstance.data('lat'));
726                $map.data('lng', $mapTriggerInstance.data('lng'));
727                setTimeout(function () {
728                    handleMap($map,style);
729                }, 300)
730            });
731        });
732    };
733
734    /** Center modal */
735    var handleModalCenter = function(){
736        var centerModal = function() {
737
738            $('.modal').not($(this)).modal('hide');
739
740            $(this).css('display', 'block');
741
742            var $dialog = $(this).find(".modal-dialog");
743            var offset = ($(window).height() - $dialog.height()) / 2;
744            var $images = $dialog.find('img');
745
746            if ($images.length) {
747                $images.load(function () {
748                    offset = ($(window).height() - $dialog.height()) / 2;
749
750                    if(offset <= 0){
751                        return;
752                    }
753
754                    // Center modal vertically in window
755                    $dialog.css("margin-top", offset);
756
757
758                });
759            } else {
760                if(offset <= 0){
761                    return;
762                }
763
764                // Center modal vertically in window
765                $dialog.css("margin-top", offset);
766            }
767
768        };
769
770        $('.modal').on('show.bs.modal', centerModal);
771        $(window).on("resize", function () {
772            $('.modal:visible').each(centerModal);
773        });
774    };
775
776    /** PROVERITI */
777        //dodato da ne javlja gresku ako nismo na strani radnje
778    var handleNearestStoresMap = function(){
779            return;
780        };
781
782    /** Finkcija koja dodaje klasu na elemente  */
783    var handleAddElementClasse = function(elementId, className){
784        var element = $(elementId);
785        if (!element.hasClass("selected")) {
786            element.addClass(className);
787        }
788    };
789
790    /** ACCORDION */
791    var handleAccordion = function($panelsGroup){
792
793
794        var collapsing = function(){
795
796            //on shown pannel set all panels to not opened, except the collapsed panel
797            $panelsGroup.on('shown.bs.collapse', function(e){
798                //set all to not opened
799                $panelsGroup.find('.panel-top').children('.panel-heading').removeClass('opened');
800                if($(e.target).parents('.panel').children('.collapse.in').length === 0) return;
801                $(e.target).parents('.panel').children('.panel-heading').addClass('opened');
802            });
803
804            $panelsGroup.on('hide.bs.collapse', function(e){
805                if($(e.target).parent('.panel').children('.collapse.in').length === 0) return;
806                $(e.target).parent('.panel').children('.panel-heading').removeClass('opened');
807            });
808        };
809
810        //If top panel (parent panel) has only one child panel,
811        //automatically expand that child panel
812        var expandSinglePanels = function(){
813
814            //panel group has only one child panel, expand it
815            if($panelsGroup.children('.panel').length === 1){
816                $panelsGroup.children('.panel').find('.collapse').addClass('in');
817                return;
818            }
819
820            //panel group has multiple child panels
821            //loop through them
822            $panelsGroup.children('.panel').each(function(){
823                var $panel = $(this),
824                    $panelHeading = $panel.children('.panel-heading');
825
826                //top panel is toggled,
827                //if there is only one child panel, expand it
828                $panelHeading.click(function(){
829                    if($panel.find('.panel').length > 1) return;
830                    $panel.find('.panel > .collapse').addClass('in');
831                });
832            });
833        };
834
835        collapsing();
836        expandSinglePanels();
837    };
838
839    /** PROVERITI - OVO NE MORA DA STOJI OVDE */
840    var initDatepicker = function(date,options){
841        $(date).datepicker(options);
842    };
843
844
845    /** INICIJALIZACIJA PINTEREST GALERIJE */
846    var handleMasonry = function() {
847        var $container = $('.js-masonry');
848        if (typeof ($container.masonry) === 'function') {
849            // initialize
850            // apply mansory to the grid items
851            setTimeout(function(){
852                $container.masonry({
853                    //          columnWidth: 200,
854                    itemSelector: '.masonry-item'
855                });
856            }, 800);
857
858        }
859    };
860
861    var handleSliderCountdown = function(wrapper){
862
863        if(typeof setTimeZone === "function") {
864            setTimeZone(wrapper); // nalazi e u timezone.js
865        }
866
867        if (!$('div.cf.counter').length) return false;
868
869        wrapper.each(function (e) {
870            var finalDate = $(this).data("time");
871            var textDay = $(this).data("day");
872            var textDays = $(this).data("days");
873            var textHour = $(this).data("hour");
874            var textHours = $(this).data("hours");
875            var textHoursMore = $(this).data("hours-more");
876            var textMinute = $(this).data("minute");
877            var textMinutes = $(this).data("minutes");
878            var textSecond = $(this).data("second");
879            var textSeconds = $(this).data("seconds");
880            var textSecondsMore = $(this).data("seconds-more");
881            var $html;
882            var textDaysTrans;
883            var textHoursTrans;
884            var textMinutesTrans;
885            var textSecondsTrans;
886            var showHoursAfterZero = true;
887            var uname = $(this).data('countdown-uname');
888
889            if(!uname){
890                uname = 'countdown';
891            }
892
893            $(this).countdown(finalDate)
894                .on('update.countdown', function(event) {
895
896                    if($(this).data('showhoursafterzero')==='hide'){
897                        showHoursAfterZero = false;
898                    }
899
900                    if(event.offset.hours == 1){
901                        textHoursTrans = textHour;
902                    } else if(event.offset.hours > 5 || event.offset.hours == 0) {
903                        textHoursTrans = textHoursMore;
904                    } else {
905                        textHoursTrans = textHours;
906                    }
907
908                    if(event.offset.minutes == 1){
909                        textMinutesTrans = textMinute;
910                    } else {
911                        textMinutesTrans = textMinutes;
912                    }
913
914                    if(event.offset.seconds == 1){
915                        textSecondsTrans = textSecond;
916                    } else if(event.offset.seconds > 5 || event.offset.seconds == 0) {
917                        textSecondsTrans = textSecondsMore;
918                    } else {
919                        textSecondsTrans = textSeconds;
920                    }
921
922                    if(event.offset.totalDays > 0){
923                        if(event.offset.totalDays == 1){
924                            textDaysTrans = textDay;
925                        } else {
926                            textDaysTrans = textDays;
927                        }
928
929                        $html = '<div class="item-countdown item-days"><span>%D <em>'+textDaysTrans+'</em></span></div>' +
930                            '<div class="item-countdown item-hours"><span>%H <em>'+textHoursTrans+'</em></span></div>' +
931                            '<div class="item-countdown item-minutes"><span>%M <em>'+textMinutesTrans+'</em></span></div>' +
932                            '<div class="item-countdown item-seconds"><span>%S <em>'+textSecondsTrans+'</em></span></div>';
933                    }else {
934                        if(showHoursAfterZero){
935                            $html ='<div class="item-countdown item-hours"><span>%H <em>'+textHoursTrans+'</em></span></div>' +
936                                '<div class="item-countdown item-minutes"><span>%M <em>'+textMinutesTrans+'</em></span></div>' +
937                                '<div class="item-countdown item-seconds"><span>%S <em>'+textSecondsTrans+'</em></span></div>';
938                        }else{
939                            $html ='<div class="item-countdown item-minutes"><span>%M <em>'+textMinutesTrans+'</em></span></div>' +
940                                '<div class="item-countdown item-seconds"><span>%S <em>'+textSecondsTrans+'</em></span></div>';
941                        }
942
943                    }
944
945                    $(this).html(event.strftime($html));
946
947                }).on('finish.countdown', function(){
948                $(this).parent().remove();
949                CustomEventTrigger('countdownEnd_'+uname);
950            });
951        });
952
953
954        /*$('div.cf.counter').countdown(finalDate)
955                .on('stop.countdown', function(event) {
956                $(this).html(event.strftime('gotovo'));
957            });*/
958
959    };
960
961    /** Funkcija za parallax pozadine - PROVERITI */
962    var handleParallaxOld = function(firstElementSpeed, firstElementPosition, secondElementSpeed, secondElementPosition){
963        var headerHeight = $('.header').height();
964
965        if(app.width() > app.mobileBreakpoint) {
966            $(window).scroll(function (e) {
967                parallax();
968            });
969        };
970
971        function parallax(){
972            var scrolled = $(window).scrollTop();
973            var parallaxItem = $(".parallax .item");
974            var windowHeight = $(window).height();
975            parallaxItem.each(function(){
976                var paralaxheight = $(this).height();
977                var positionDiff = (((windowHeight-paralaxheight)/2)-headerHeight);
978                parallaxItemPosition = $(this).position().top;
979                $(this).find(".main-img").css(firstElementPosition,(scrolled*firstElementSpeed-(parallaxItemPosition-positionDiff)*firstElementSpeed)+'px');
980                $(this).find(".second-img").css(secondElementPosition,(scrolled*secondElementSpeed-(parallaxItemPosition-positionDiff)*secondElementSpeed)+'px');
981                if(parallaxItemPosition <= scrolled+(+300)){
982                    $(this).addClass("active");
983                } else {
984                    $(this).removeClass("active");
985                }
986            });
987        }
988
989    };
990
991    /** PARALLAX INICIJALIZACIJA */
992    var handleParallax = function(){
993        $(window).scroll(function(e){
994            parallax();
995        });
996        function parallax(){
997            var scrolled = $(window).scrollTop()+(+300);
998            var par = $(".parallax");
999            par.each(function(){
1000                var parpos = $(this).position().top;
1001                $(this).children(".item1").css('bottom',(scrolled-parpos)+'px');
1002                $(this).children(".item2").css('bottom',(scrolled*2-parpos*2)+'px');
1003                if(parpos <= scrolled){
1004                    $(this).addClass("active");
1005                } else {
1006                    $(this).removeClass("active");
1007                }
1008            });
1009        }
1010    };
1011
1012    /** PROVERITI */
1013    var handleWarningCart = function(wrapper,item,popup){
1014        //popup je podesavanje za BUZZ
1015        var $wrapper = wrapper;
1016        var country_item = item;
1017        var tekst = $wrapper.data('text');
1018        var activecountry;
1019        if(tekst === '') return;
1020        if(popup){
1021
1022            activecountry = country_item.data('country');
1023            country_item.each(function(){
1024                if($(this).data('country') !=='' ){
1025                    $(this).css('pointer-events','none');
1026                }
1027            });
1028
1029        }
1030        country_item.click(function(e){
1031            if($(this).hasClass('active')){}else{
1032                if (confirm(tekst) != true) {
1033                    e.preventDefault()
1034                }
1035            }
1036        });
1037
1038    };
1039
1040    /** Funkcija za stavku "item-product-list-grid" na mbilnim uredjajima */
1041    function itemProductListGrid(){
1042        $('.item-product-list-grid .mobile-list-grid .item .arrow-wrapper').click(function () {
1043            $('.item-product-list-grid').addClass('open-items');
1044        });
1045        $('.item-product-list-grid .close-items').click(function () {
1046            $('.item-product-list-grid').removeClass('open-items');
1047        });
1048    };
1049
1050    /** Funkcija za toggle footer menija na mobilnim uredjajima */
1051    var handleCollapsingFooterMenu = function(){
1052        if(windowWidth() < 768){
1053            $itemTitle = $('.collapse-menu .heading-wrapper');
1054            $itemTitle.click(function(){
1055                if($(this).parent().hasClass('open')){
1056                    $('.collapse-menu .heading-wrapper').parent().removeClass('open');
1057                } else {
1058                    $('.collapse-menu .heading-wrapper').parent().removeClass('open');
1059                    $(this).parent().addClass('open')
1060                }
1061            });
1062        }
1063    };
1064
1065    /** Prebacivanje heandle slidera na razlivčitim rezolucijama */
1066    var handleAppendtoHandlinesSlider = function(){
1067        if(windowWidth() < 1025 && windowWidth() >= 768 ){
1068            $(".header-top .handlines-sldier").appendTo(".header-top").addClass('append-handlines');
1069        } else if(windowWidth() < 768){
1070            $(".header-top .handlines-sldier").prependTo("body > .hidden-fullscreen").addClass('append-handlines');
1071        }
1072        $(window).resize(function(){
1073            if(windowWidth() < 1025 && windowWidth() >= 768 ){
1074                $(".handlines-sldier.append-handlines").appendTo(".header-top");
1075            } else if (windowWidth() < 768){
1076                $(".handlines-sldier.append-handlines").prependTo("body > .hidden-fullscreen");
1077            } else {
1078                $(".handlines-sldier.append-handlines").appendTo(".header-top .midle-coll");
1079            }
1080        });
1081    };
1082
1083    /** Slider sa tekstom umesto pagiacije */
1084    var articleSliderWithPagination = function() {
1085        $('.article-slider-with-custopm-pagination > .slider-init').each(function(){
1086            var customPaginationSliderOptions   = {
1087                speed: 500,
1088                slidesToShow: 1,
1089                slidesToScroll: 1,
1090                autoplay: false,
1091                arrows: true,
1092                dots: true,
1093                fade: true,
1094                adaptiveHeight: true,
1095                customPaging : function(slider, i) {
1096                    var thumb = $(slider.$slides[i]).data('slide-name');
1097                    return '<span>'+thumb+'</span>';
1098                },
1099                responsive: [
1100                    {breakpoint: 768, settings: {asNavFor: '.article-slider-with-custopm-pagination > .slider-init .slick-dots'}}
1101                ]
1102            };
1103            initSlider(this, customPaginationSliderOptions);
1104        });
1105        if ($(window).width() < 768) {
1106            $('.article-slider-with-custopm-pagination > .slider-init .slick-dots').each(function(){
1107                var customPaginationThumbsSliderOptions   = {
1108                    dots: false,
1109                    infinite: true,
1110                    speed: 300,
1111                    slidesToShow: 1,
1112                    centerMode: true,
1113                    arrows: false,
1114                    asNavFor: '.article-slider-with-custopm-pagination > .slider-init'
1115                };
1116                initSlider(this, customPaginationThumbsSliderOptions);
1117            })
1118        }
1119    };
1120
1121    /** Pomeranje glavne slika proizvoda kada je fullscrean */
1122    var handleFullscreenMouseoverZoom = function ($image) {
1123        var height = $(window).height();
1124        var pImage = $image;
1125        var pImageHeight = $(pImage).height();
1126        var marginTop = 0;
1127
1128        handleFullscreenMouseoverZoomBtn(pImage);
1129
1130        $(pImage).parent().mousemove(function(e){
1131
1132            marginTop = (e.pageY/height)*(pImageHeight-height);
1133            pImage.css('margin-top','-'+marginTop+'px');
1134        });
1135    };
1136
1137    var handleFullscreenMouseoverZoomBtn = function (image){
1138        var imageWrapper = $(image).closest('.fullscreen.fullscreen-product-slider');
1139        var zoomBtn = imageWrapper.find('.zoom-btn-wrapper .icon');
1140        var imageWidth;
1141        var imageHeight;
1142        var multiplier = 1.5;
1143        var maxZoomLevel = 2;
1144        var imageOriginalWidth = $(image).prop("naturalWidth");
1145        var winHeight = $(window).height();
1146        var marginTop;
1147        $(image).css("cssText", "max-width: initial !important");
1148        zoomBtn.click(function (){
1149
1150            marginTop = 0;
1151            imageWidth = $(image).prop("width");
1152            imageHeight = $(image).prop("height");
1153            if($(this).hasClass('icon-plus') && imageWidth*multiplier <= imageOriginalWidth*Math.pow(multiplier,maxZoomLevel)){
1154                $(image).width(imageWidth*multiplier);
1155            } else if ($(this).hasClass('icon-minus') && imageWidth/multiplier >= imageOriginalWidth){
1156                $(image).width(imageWidth/multiplier);
1157            }
1158
1159            imageHeight = $(image).prop("height");
1160            $(image).css('margin-top',+winHeight-imageHeight+'px');
1161            $(image).parent().mousemove(function(e){
1162
1163                marginTop = (e.pageY/winHeight)*(imageHeight-winHeight);
1164                $(image).css('margin-top','-'+marginTop+'px');
1165            });
1166        })
1167
1168    }
1169
1170    /** Tekst na kursoru */
1171    var handleMouseText = function (wrapper, element) {
1172
1173        wrapper.on( "mousemove", function( event ) {
1174            element.css({
1175                "left" : event.pageX,
1176                "top" : event.pageY,
1177                "display": "block"
1178            });
1179        });
1180
1181        wrapper.on( "mouseout", function( event ) {
1182            element.css({
1183                "display": "none"
1184            });
1185        });
1186    };
1187
1188    /** Funkcija za prikazivanj "više teksta" kada se klikne na dugme sa klasom "show-more-text" */
1189    var handleShowMoreText = function () {
1190        $('.show-more-text').each(function() {
1191            var wrapper = $(this).parent(),
1192                textWrapper = wrapper.find('.show-more-text'),
1193                showBtn = wrapper.find('.show-more-btn'),
1194                totalLineHeight = (parseInt(textWrapper.css('line-height')) * 3), /* miltiple 3 for 3 row */
1195                textWrapperHeight = parseInt(textWrapper.css('height')),
1196                showMoreText = $(this).attr("data-moreText"),
1197                showLessText = $(this).attr("data-lessText");
1198            if(textWrapperHeight > totalLineHeight){
1199                textWrapper.css("height", totalLineHeight+"px");
1200                $(showBtn).removeClass('hidden')
1201            }
1202
1203            $(showBtn).click(function(){
1204                textWrapper.toggleClass('active');
1205                if ($(this).text() == showMoreText)
1206                    $(this).text(showLessText);
1207                else
1208                    $(this).text(showMoreText);
1209            });
1210
1211        });
1212    };
1213
1214    /** Funkcija koja na klik menja dezen gift kartice na procesu kupovine */
1215    var HandleGiftCardOptionsCheck = function(){
1216        var $wrapper = $('.gifcards-option');
1217        var viewDiv = $('#gc-view');
1218        var $image ;
1219        var firstItem = $('.gifcards-option li:first-child.item');
1220        var element = firstItem.find('img').data('img-big');
1221        $image = viewDiv.html('<img id="theImg" src="'+element+'" />');
1222        firstItem.addClass('active');
1223
1224        $wrapper.find('li.item').click(function(){
1225            $('li.item').removeClass('active');
1226            $(this).toggleClass('active');
1227            $(this).find('input').icheck('checked');
1228            $image = $(this).find('img').data('img-big');
1229            viewDiv.html('<img id="theImg" src="'+$image+'" />');
1230        });
1231    };
1232
1233    /** Store on map | list toggle button */
1234    var toggleMapStoreList = function(){
1235        $('.show-store-list').click(function () {
1236            $('.store-map-wrapper').removeClass('active');
1237            $('.nicescroll-rails').removeClass('hidden');
1238        })
1239    };
1240
1241    /** AspectRatio za YouTube video */
1242    var handleYoutubeAspectRatioArticleVideo = function(){
1243        var $video = $('.article-video').find("iframe");
1244        // Figure out and save aspect ratio for video
1245        if(app.width() < 768){
1246            var $heightV = $video.height();
1247            $('.article-video').height($heightV);
1248        }
1249    };
1250
1251    /** Zatvaranje mini korpe na klik */
1252    var handleCartClose = function(){
1253        var $cart = $('.header-cart-toggle');
1254        $cart.toggleClass('invisible');
1255        $cart.removeClass('slideEffect');
1256    };
1257
1258    /** Funkcija koja na listingu na klik veličine proizvoda aktivira veličinu za brzu kupovinu */
1259    var handleProductSizeSelector = function (slider) {
1260        if(!slider){
1261            slider = '';
1262        }
1263        $(slider+' .sizes-selector-wrapper .sizes-selector').each(function() {
1264            var selectorWrapper = $(this).parent(),
1265                selectorBtn = selectorWrapper.find('.item');
1266
1267            if(!$(this).hasClass('init')) {
1268                $(this).click(function(){
1269                    selectorWrapper.toggleClass('active');
1270                });
1271                $(this).addClass('init');
1272            }
1273
1274
1275            $(this).closest('.product-item').mouseenter(function(){
1276                selectorWrapper.removeClass('active');
1277            });
1278
1279            selectorBtn.click(function(){
1280                var sizeName = $(this).data('productsize-name');
1281                selectorWrapper.find('.sizes-selector').css('background','transparent').text(sizeName);
1282                if(!selectorWrapper.closest('.options-wrapper').hasClass('product-sizes-v3')){
1283                    selectorWrapper.removeClass('active');
1284                }
1285            });
1286        });
1287    };
1288
1289    /** Product list change quantity */
1290    var changeProductQuantity = function (wrapper) {
1291
1292        var quantityBtn = $('.product-list-quantity-arrows');
1293        if(wrapper){
1294            quantityBtn = $(wrapper+'.product-list-quantity-arrows');
1295        }
1296
1297        quantityBtn.off('click');
1298        quantityBtn.on('click', function() {
1299            var submitBtn = $(this).parent().parent().find('.buyButtonOnLists'),
1300                quantity = submitBtn.data('product-quantity'),
1301                input = $(this).parent().find('.product-list-quantity-input');
1302            if($(this).hasClass('quantity-up')){
1303                submitBtn.data('product-quantity', (parseInt(quantity)+1));
1304                input.val(parseInt(quantity)+1);
1305            } else if ($(this).hasClass('quantity-down') && quantity > 1) {
1306                submitBtn.data('product-quantity', (parseInt(quantity)-1));
1307                input.val(parseInt(quantity)-1);
1308            }
1309        });
1310
1311        $('.product-list-quantity-wrapper .product-list-quantity input').change(function () {
1312            var submitBtn = $(this).closest('.product-sizes').find('.buyButtonOnLists'),
1313                quantity = $(this).val();
1314
1315            submitBtn.data('product-quantity', quantity);
1316        });
1317    };
1318
1319    /** Funkcija za filtere koji su u intro baru na listingu proizvoda - klikom se otvara dropdown sa filterima */
1320    var filterSelectorActive = function (){
1321        $('.product-listing .filter-selector-wrapper .filter-group-wrapper .title').on('click', function() {
1322            if($(this).parent().hasClass('active')){
1323                $('.product-listing .filter-selector-wrapper .filter-group-wrapper').removeClass('active');
1324            } else {
1325                $('.product-listing .filter-selector-wrapper .filter-group-wrapper').removeClass('active');
1326                $(this).parent().addClass('active');
1327            }
1328        })
1329    };
1330
1331    var HandlePdfCatalog = function(element){
1332        if(typeof(element.wowBook) == 'function'){
1333            if(!element) return;
1334            var $file = element.attr("data-url-file");
1335            var bookOptions = {
1336                height   : 800
1337                ,width    : 1000
1338                // ,maxWidth : 800
1339                ,maxHeight : 1000
1340                ,centeredWhenClosed : true
1341                ,hardcovers : true
1342                ,pageNumbers: false
1343                ,toolbar : "lastLeft, left, right, lastRight, zoomin, zoomout, slideshow, thumbnails, download"
1344                ,thumbnailsPosition : 'left'
1345                ,responsiveHandleWidth : 50
1346                ,container: window
1347                ,containerPadding: "20px"
1348                ,pdf: $file
1349            };
1350            element.wowBook( bookOptions ); // create the book // $('#book')
1351        }
1352    };
1353
1354    /* Scroll to readonly geo selsctor in cart*/
1355    var scrollToGeoSelector = function (){
1356
1357        var geoSelector = $('#cart_onepage_delivery_country_form .form-group .styled-select');
1358        $('#cart_onepage_country_geo, .country_geo_id-input-wrapper .styled-select').click(function(){
1359            $('html, body').animate({scrollTop : 0},800);
1360            setTimeout(function(){geoSelector.addClass('active');}, 800);
1361        });
1362        geoSelector.click(function () {
1363            geoSelector.removeClass('active')
1364        });
1365    };
1366
1367    /* Position relativ for 4level menu if menu have container*/
1368    var menu4levelRelative = function () {
1369        $('li.level4').mouseover(function(){
1370            $(this).parent().css("position", "relative");
1371        }).mouseout(function(){
1372            $(this).parent().css("position", "static");
1373        });
1374    };
1375
1376    /* Ukolikok ne postoji 3 nivo da se obrišu strelice pored naslova 2. nivoa*/
1377    var removeArrow2levlonly = function () {
1378        $('.level4 .nav-main-submenu > li,.level3 .nav-main-submenu > li').each(function () {
1379            var twoLevItem = $(this);
1380            if(twoLevItem.find('.nav-main-dropdown-wrapper').length == 0){
1381                twoLevItem.find('.icon').addClass('hidden').removeClass('visible-xs');
1382            }
1383        });
1384    };
1385
1386    /* Disable click on tel link for PC device  */
1387    var disableDesktopTelLink = function (){
1388        return false;
1389        if(windowWidth() > 1024){
1390            $('a[href^="tel:"]').each(function(i, obj) {
1391                $(this).off("click").attr('href', "javascript: void(0);");
1392            });
1393        }
1394    };
1395
1396    /* Sizeguide show description in modal with content from slider */
1397    var sizeGuideShowDescription = function(){
1398        $("#product_sizeguide_shoes_modal_slider .img-wrapper div[class^='item-']").hover(function(){
1399            var itemClassName = $(this).attr('class').replace('item-','');
1400            $('.description-'+itemClassName).show();
1401        }, function(){
1402            var itemClassName = $(this).attr('class').replace('item-','');
1403            $('.description-'+itemClassName).hide();
1404        });
1405    };
1406
1407    var firstProductTabActive = function(){
1408        var activeElement = false;
1409        $('.product-generic-tabs li.item').each(function() {
1410            if($(this).hasClass('active')) {
1411                activeElement = true;
1412            }
1413        });
1414        if(!activeElement){
1415            $('.product-generic-tabs .items-wrapper').find(".item.tab-items:first-child").addClass('active');
1416            $('.product-generic-tabs .tab-content ').find(".tab-pane:first-child").addClass('active');
1417        }
1418    };
1419
1420    var showMoreFilters = function(){
1421        $('.limited-filters .filter-group .show-all-filters').click(function () {
1422            var showMore = $(this).data('show-more'),
1423                showLess = $(this).data('show-less');
1424            $(this).toggleClass('active');
1425            $(this).parent('.filter-group').find('.hidden-items').toggleClass('hidden');
1426            if($(this).hasClass('active')){
1427                $(this).html(showLess);
1428            } else {
1429                $(this).html(showMore);
1430            }
1431        })
1432    };
1433
1434    var activeColorFilterLabele = function(){
1435        $('.filter-group .items-wrapper > li.color-item-wrapper').each(function(){
1436            if ($(this).find('.icheckbox_flat').hasClass('checked')) {
1437                $(this).find('label').addClass('checked');
1438            }
1439        });
1440    };
1441
1442    var handleHTMLEditorTableResponsive = function(){
1443        var tabela = $('.post-content, .text-wrapper').find('table');
1444        $(tabela).each(function(){
1445            if ($(tabela).hasClass('table')){
1446
1447            }else{
1448                $(this).addClass('table');
1449            }
1450
1451            if ($(tabela).parent('.table-responsive').length == 0) {
1452                $(tabela).wrap( "<div class='table-responsive'></div>" );
1453            }else{
1454                // $(tabela).wrap( "<div class='table-responsive'></div>" );
1455            }
1456        })
1457    };
1458
1459    var initMapInStoreLoaction = function () {
1460        $('.promotion-wrapper-witouth-modal .panel .panel-toggle').click(function () {
1461            $('.panel .panel-group .promo-store-of-city .collapse').removeClass('in');
1462            var mapWrapper = $(this).parents('.promo-store-of-city').find('.map-link-wrapper'),
1463                lat = mapWrapper.data('lat'),
1464                lng = mapWrapper.data('lng');
1465
1466            $('.map-link-wrapper').each(function () {
1467                $(this).html('');
1468            });
1469            mapWrapper.html('<div id="map-container" data-lat="'+lat+'" data-lng="'+lng+'"></div>');
1470            var $map = $('#map-container');
1471            handleMap($map);
1472        })
1473    };
1474
1475    var initMapInStoreDetail = function () {
1476        if($('.store-details #map-canvas').length){
1477            handleMap($('#map-canvas'));
1478        }
1479    };
1480
1481    var initMapInStoreLoactionWithSelector = function () {
1482        $('.promotion-wrapper-with-selector .promo-store-of-city .heading-wrapper').each(
1483            function () {
1484                var itemHeight = $(this).height();
1485                $(this).height(itemHeight);
1486            }
1487        );
1488        $('.promotion-wrapper-with-selector .map-link').click(function () {
1489            var lat = $(this).data('lat'),
1490                lng = $(this).data('lng');
1491
1492            $('.promo-store-of-city').parent().removeClass('selected');
1493            var topOfPanelWrapper = $(this).parents('.panel-group').offset().top,
1494                topOfWrapper = $(this).parents('.promo-store-of-city').offset().top,
1495                heightOfWrapper = $(this).parents('.promo-store-of-city').height(),
1496                distance = (topOfWrapper + heightOfWrapper) - topOfPanelWrapper;
1497
1498            $('#store-map-wrapper').css('top', distance);
1499            $('.promo-store-of-city').css('height', '100%');
1500            $(this).parents('.promo-store-of-city').css('height', heightOfWrapper);
1501            $(this).parents('.promo-store-of-city').parent().addClass('selected');
1502            $('#store-map-wrapper').html('<div id="map-container" data-lat="'+lat+'" data-lng="'+lng+'"></div>').addClass('active');
1503            var $map = $('#map-container');
1504            handleMap($map);
1505        })
1506    };
1507
1508    var toggleCommentInputs = function(){
1509        $('.comments .toggle-button-wrapper').click(function(){
1510            $(this).parent().find('.inputs-wrapper').toggleClass('hidden')
1511        })
1512    };
1513
1514    var onYouTubeIframeAPIReady = function() {
1515        var tag = document.createElement('script');
1516        tag.src = "https://www.youtube.com/iframe_api";
1517        var firstScriptTag = document.getElementsByTagName('script')[0];
1518        firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
1519
1520        var ytId,
1521            ytWidth,
1522            ytHeight,
1523            loop;
1524        var player=[];
1525
1526        window.videoPlayers = {};
1527
1528        var numberP = 0;
1529        var checkYT = setInterval(function () {
1530            if((typeof YT !== "undefined") && YT.loaded){
1531                console.log($( ".mainSliderVideo" ).length);
1532                if ( $( ".mainSliderVideo" ).length ) {
1533                    $( ".mainSliderVideo" ).each(function(i){
1534                        var localId = $(this).data('videoid');
1535
1536                        ytId        = $(this).data('videoid');
1537
1538                        if(app.width() < 768 && $(this).data('videoidmob') !== '' && typeof $(this).data('videoidmob') !== "undefined" ){
1539                            ytId    =  $(this).data('videoidmob')
1540                            $(this).attr('id', ytId);
1541                        }
1542                        ytWidth     = $(this).data('videowidth');
1543                        ytHeight    = $(this).data('videoheight');
1544                        loop        = $(this).data('loop');
1545
1546                        if(app.width() < 768 && $(this).length > 0 ){
1547                            ytWidth =$(this).width();
1548                            ytHeight = app.width() / $(this).data('videowidthmob')*$(this).data('videoheightmob');
1549                        }
1550                        player[numberP] = new YT.Player(ytId, {
1551                            videoId: ytId,
1552                            width: ytWidth,
1553                            height: ytHeight,
1554                            playerVars: {
1555                                rel: 0,
1556                                autoplay: 1,
1557                                controls: 0,
1558                                mute: 1,
1559                                playsinline: 1,
1560                                modestbranding: 1,
1561                                suggestedQuality: 'hd1080'/*,
1562                                origin: window.location.origin,
1563                                version: 3,
1564                                showinfo: 0,
1565                                wmode: 'transparent',
1566                                branding: 0,
1567                                fs: 0,
1568                                cc_load_policty: 1,
1569                                iv_load_policy: 3,
1570                                autohide: 0*/
1571                            },
1572                            events: {
1573                                'onReady': function (event) {
1574                                    if($('.main-slider .slider-init').find('.item.slick-current').hasClass('item-video')) {
1575                                        $('.main-slider .slider-init').slick('slickPause');
1576                                    }
1577                                    if(player[i]){
1578                                        window.videoPlayers[localId] = player[i];
1579                                        player[i].playVideo();
1580                                    }
1581                                },
1582                                'onStateChange': function (event) {
1583                                    if(loop == 'enable'){
1584                                        if (event.data === YT.PlayerState.ENDED) {
1585                                            if(player[i]){
1586                                                player[i].playVideo();
1587                                                player[i].setLoop(true);
1588                                            }
1589                                        }
1590                                    } else {
1591                                        if (event.data === 0) {
1592                                            $('.main-slider .slider-init').slick('slickNext');
1593                                            $('.main-slider .slider-init').slick('slickPlay');
1594                                        }
1595                                    }
1596
1597                                }
1598                            }
1599                        });
1600                        if ( $( ".mainSliderVideo" ).length > 1 ){
1601                            numberP++;
1602                        }
1603
1604                    });
1605                    var i;
1606
1607                    $('.main-slider').on('afterChange', function(event, slick, currentSlide) {
1608                        for(i=0; i<=numberP;i++){
1609
1610                            if(player[i] && typeof player[i].stopVideo == 'function'){
1611                                player[i].stopVideo();
1612                            }
1613                        }
1614                        if($(this).find('.item.slick-current').hasClass('item-video')) {
1615                            $('.main-slider .slider-init').slick('slickPause');
1616                            for(i=0; i<=numberP;i++){
1617
1618                                if(player[i] && typeof player[i].playVideo == 'function'){
1619                                    if($(player[i].f).closest('slick-current')) {
1620                                        player[i].playVideo();
1621
1622                                    }
1623                                }
1624                            }
1625                        }
1626
1627                    });
1628                }
1629
1630                clearInterval(checkYT);
1631
1632            }
1633
1634        }, 100);
1635
1636        function resizeMainSliderVideo(manual){
1637
1638            $('.mainSliderVideo').each(function () {
1639
1640                var $sliderWidth = $(this).data('videowidth');
1641                var $sliderHeight = $(this).data('videoheight');
1642                var $sliderMobHeight = $(this).data('videoheightmob');
1643                var $sliderMobWidth = $(this).data('videowidthmob');
1644                var $viewWidht = $(window).width();
1645                var $viewHeight = $(window).height();
1646                var h ='';
1647                setTimeout(function () {
1648                    if(manual){
1649                        //$('.item-video iframe').height($sliderMobHeight);
1650                        if(app.width() < 768 && $('.item-video iframe').length !== 0){
1651                            $('.item-video iframe').height($sliderMobHeight);
1652                            $(".item-video iframe")[0].style.cssText = 'height: '+$sliderMobHeight+'px !important;'
1653                        }
1654
1655                    }else{
1656                    h = $('.mainSliderVideo').parents('.slider-init').height()
1657                    if( h > 0){
1658                        $('.item-video iframe').height(h);
1659                    }else{
1660                        $(this).width($viewWidht).height(($sliderHeight / $sliderWidth * $viewWidht));
1661                    }
1662                    }
1663
1664
1665                }, 2500);
1666
1667
1668            });
1669        };
1670
1671        resizeMainSliderVideo(true);
1672        $(window).resize(function() {
1673            //resizeMainSliderVideo();
1674        }).resize();
1675
1676    };
1677
1678    var flowPlayerAPI = function() {
1679
1680        var ytId,
1681            ytWidth,
1682            ytHeight;
1683        var flowPlayerVideo=[];
1684
1685        var numberP = 0;
1686
1687            if ( $( ".mainSliderFPVideo" ).length && flowplayeryToken != '') {
1688                $( ".mainSliderFPVideo" ).each(function(i){
1689                    console.log(i);
1690
1691                    $(this).addClass('mainSliderFPVideo-id'+numberP);
1692
1693                    fpVideoId        = $(this).data('videoid');
1694                    fpVideoIdMob     = $(this).data('video-mob');
1695                    if (typeof fpVideoIdMob  !== "undefined" && app.width() < 768){
1696                        fpVideoId = fpVideoIdMob.replace('fp:', '');
1697                    }
1698                    fpVideoWidth     = $(this).data('videowidth');
1699                    fpVideoHeight    = $(this).data('videoheight');
1700
1701                    if(app.width() < 768 && $(this).length > 0 ){
1702                        fpVideoWidth =$(this).width();
1703                        fpVideoHeight = app.width() / $(this).data('videowidthmob')*$(this).data('videoheightmob');
1704                    }
1705
1706                    flowPlayerVideo[numberP] = flowplayer('.mainSliderFPVideo-id'+numberP, {
1707                            "src"      : fpVideoId,
1708                            "token"    : flowplayeryToken,
1709                            "muted"    : true,
1710                            "ratio"    : fpVideoWidth+":"+fpVideoHeight,
1711                            //"autoplay" : true,
1712                            "ui"       : flowplayer.ui.NO_CONTROLS
1713                        }
1714                    );
1715
1716                    $('.volume-icons-wrapper').on('click', function(){
1717
1718                        flowPlayerVideo[numberP].toggleMute();
1719                        $(this).find('.fa-volume-up').toggleClass('hidden');
1720                        $(this).find('.fa-volume-off').toggleClass('hidden');
1721                    });
1722
1723                    flowPlayerVideo[numberP].on(Object.values(flowplayer.events), function(e) {
1724                        if(e.type == 'play'){
1725                            //console.log('krenulo');
1726                            $('.main-slider .slider-init').slick('slickPause');
1727                        } else if(e.type == 'ended'){
1728                            //console.log('stalo');
1729                            $('.main-slider .slider-init').slick('slickNext');
1730                            $('.main-slider .slider-init').slick('slickPlay');
1731                        }
1732                    })
1733                    if ( $( ".mainSliderFPVideo" ).length > 1 ){
1734                        numberP++;
1735                    }
1736                });
1737                $('.main-slider').on('init', function(event, slick, currentSlide) {
1738                    activeSliderClasses = $('.main-slider .item.slick-current .mainSliderFPVideo').attr('class');
1739                    if (typeof activeSliderClasses  !== "undefined"){
1740                        activeSliderClassesArray = activeSliderClasses.split(' ');
1741                        videoNbCalss = $.grep(activeSliderClassesArray, function (item, index) {
1742                            return item.trim().match(/^mainSliderFPVideo-id/);
1743                        });
1744                        $activeVideoNb = videoNbCalss.join("").replace('mainSliderFPVideo-id', '');
1745                        console.log($activeVideoNb);
1746                        setTimeout(function (){
1747                            flowPlayerVideo[$activeVideoNb].togglePlay(true);
1748                            $('.main-slider .slider-init').slick('slickPause');
1749                        }, 1000);
1750                    }
1751                });
1752
1753                var activeSliderClasses;
1754                $('.main-slider').on('afterChange', function(event, slick, currentSlide) {
1755                    if($(this).find('.item.slick-current').hasClass('item-flowplayery')) {
1756                        activeSliderClasses = $('.main-slider .item.slick-current .mainSliderFPVideo').attr('class');
1757                        activeSliderClassesArray = activeSliderClasses.split(' ');
1758                        videoNbCalss = $.grep(activeSliderClassesArray, function (item, index) {
1759                            return item.trim().match(/^mainSliderFPVideo-id/);
1760                        });
1761                        $activeVideoNb = videoNbCalss.join("").replace('mainSliderFPVideo-id', '');
1762                        $('.main-slider .slider-init').slick('slickPause');
1763                        //for(var i = 0; i <= numberP; i++){
1764                            if($(flowPlayerVideo[$activeVideoNb]).closest('slick-current')) {
1765                                flowPlayerVideo[$activeVideoNb].togglePlay(true);
1766                            }
1767                        //}
1768                    }
1769
1770                });
1771            }
1772
1773        function resizeMainSliderVideo(){
1774            $('.mainSliderVideo').each(function () {
1775
1776                var $sliderWidth = $(this).data('videowidth');
1777                var $sliderHeight = $(this).data('videoheight');
1778                var $sliderMobHeight = $(this).data('videoheightmob');
1779                var $sliderMobWidth = $(this).data('videowidthmob');
1780                var $viewWidht = $(window).width();
1781                var $viewHeight = $(window).height();
1782                var h ='';
1783                setTimeout(function () {
1784                    console.log($('.mainSliderVideo').parents('.slider-init').height());
1785                    h = $('.mainSliderVideo').parents('.slider-init').height()
1786                    if( h > 0){
1787                        $('.item-video iframe').height(h);
1788                    }else{
1789                        $(this).width($viewWidht).height(($sliderHeight / $sliderWidth * $viewWidht));
1790                    }
1791                }, 2500);
1792
1793
1794            });
1795        };
1796
1797        //resizeMainSliderVideo();
1798        $(window).resize(function() {
1799            //resizeMainSliderVideo();
1800        }).resize();
1801
1802    };
1803
1804    var onYouTubeIframeAPIReadyItemsVideo = function($element) {
1805        var tag = document.createElement('script');
1806        tag.src = "https://www.youtube.com/iframe_api";
1807        var firstScriptTag = document.getElementsByTagName('script')[0];
1808        firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
1809
1810        var ytId,
1811            ytWidth,
1812            ytHeight,
1813            loop;
1814        var player=[];
1815
1816        window.videoPlayers = {};
1817
1818        var numberP = 0;
1819        var checkYT = setInterval(function () {
1820
1821
1822            if((typeof YT !== "undefined") && YT.loaded){
1823                if ( $element.length ) {
1824                    $element.each(function(i){
1825                        /* Dimenzije slike
1826                        * container_subitem_grid6
1827                        * */
1828
1829                        let $img =  $(this).parents('.item-has-video').find('.img-wrapper .main-img img');
1830
1831                        if($img.length === 0){
1832                            /* Dimenzije slike
1833                        * item_image_grid6
1834                        * */
1835                            $img =  $(this).parents('.item-has-video').find('.img-wrapper img');
1836                        }
1837
1838                        let imgW = $img.width();
1839                        let imgH = $img.height();
1840
1841                        var localId = $(this).data('videoid');
1842
1843                        ytId        = $(this).data('videoid');
1844                        ytWidth     = imgW;
1845                        ytHeight    = imgH;
1846                        loop        = $(this).data('loop');
1847
1848                        /*if(app.width() < 768 && $(this).length > 0 ){
1849                            ytWidth =$(this).width();
1850                            ytHeight = app.width() / $(this).data('videowidthmob')*$(this).data('videoheightmob');
1851                        }*/
1852                        player[numberP] = new YT.Player(ytId, {
1853                            videoId: ytId,
1854                            width: ytWidth,
1855                            height: ytHeight,
1856                            playerVars: {
1857                                rel: 0,
1858                                loop: 1,
1859                                playlist: ytId,
1860                                autoplay: 1,
1861                                controls: 0,
1862                                mute: 1,
1863                                playsinline: 1,
1864                                modestbranding: 1,
1865                                suggestedQuality: 'hd1080'/*,
1866                                origin: window.location.origin,
1867                                version: 3,
1868                                showinfo: 0,
1869                                wmode: 'transparent',
1870                                branding: 0,
1871                                fs: 0,
1872                                cc_load_policty: 1,
1873                                iv_load_policy: 3,
1874                                autohide: 0*/
1875                            },
1876                            events: {
1877                                'onReady': function (event) {
1878                                    if(player[i]){
1879                                        window.videoPlayers[localId] = player[i];
1880                                        player[i].playVideo();
1881                                    }
1882                                },
1883                                'onStateChange': function (event) {
1884                                    if(loop == 'enable'){
1885                                        if (event.data === YT.PlayerState.ENDED) {
1886                                            if(player[numberP]){
1887                                                player[numberP].playVideo();
1888                                                player[numberP].setLoop(true);
1889                                            }
1890                                        }
1891                                    }
1892
1893                                }
1894                            }
1895                        });
1896                        if ( $element.length > 1 ){
1897                            numberP++;
1898                        }
1899                        $img.addClass('hidden')
1900                    });
1901
1902                }
1903
1904                clearInterval(checkYT);
1905
1906            }
1907
1908        }, 100);
1909
1910
1911
1912    };
1913
1914    var PromoLocationCountryFilter = function(){
1915        var $country = $('.promo-location-country-wrapper .item-promo-country a');
1916
1917        function country_filter($item){
1918
1919            if($item.attr('rel')) {
1920                $('.panel').hide().filter('[rel="' + $item.attr('rel') + '"]').show();
1921            } else {
1922                $('.panel').show();
1923            }
1924        }
1925        $country.each(function () {
1926            if($(this).hasClass('active')) {
1927                country_filter($(this));
1928            }
1929        });
1930
1931        $country.click(function() {
1932            country_filter($(this));
1933            $country.removeClass('active');
1934            $(this).addClass('active');
1935            return false;
1936        });
1937    };
1938
1939    var promoLocationSelector = function () {
1940        $('#select-promo-city').on('change', function() {
1941            $('#store-map-wrapper').removeClass('active');
1942            $(this).parent().find('.panel-group').addClass('hidden');
1943            $('#citystore-content-'+this.value).removeClass('hidden');
1944        });
1945
1946        $('.promotion-wrapper-with-selector .item-promo-country a').on('click', function () {
1947            $('#select-promo-city').val(0);
1948        })
1949    };
1950
1951    var GdprPage = function(){
1952
1953        var gpdr_form_validate = function(){
1954            var form = $('.gdpr_checklist_form, .gdpr_form.gdpr-style, .gdpr_form_newsletter');
1955            if(!form.length) return;
1956            var validate = form.validate().data('nb.validate');
1957        };
1958
1959        $('.gdpr_checklist_form').each(function(){
1960
1961            var formRequestForToken = $(this).serialize();
1962
1963            var validate = $(this).validate({
1964                formData: { nbAjax: 1, ajax: 'yes', nbTask: 'gdpr', task: 'requestfortoken' }
1965            }).data('nb.validate');
1966
1967            validate.$element.bind('nb.validate.remoteSuccess', function(e){
1968                validate.$element.find('.form-control, .btn, .form-group label, .form-group').addClass('hidden');
1969            });
1970        });
1971
1972        $('.gdpr_form').each(function(){
1973
1974            var gdprForm = $(this).serialize();
1975
1976            var validate = $(this).validate({
1977                formData: { nbAjax: 1, ajax: 'yes', nbTask: 'gdpr', task: 'save' }
1978            }).data('nb.validate');
1979
1980            validate.$element.bind('nb.validate.remoteSuccess', function(e){
1981                validate.$element.find('.form-control, .btn, .form-group label, .form-group, .title').addClass('hidden');
1982            });
1983        });
1984
1985        $('.gdpr_form_newsletter').each(function(){
1986
1987            var gdprFormNewsletter = $(this).serialize();
1988
1989            var validate = $(this).validate({
1990                formData: { nbAjax: 1, ajax: 'yes', nbTask: 'gdpr_newsletter', task: 'save' }
1991            }).data('nb.validate');
1992
1993            validate.$element.bind('nb.validate.remoteSuccess', function(e){
1994                validate.$element.find('.form-control, .btn, .form-group label, .form-group, .title').addClass('hidden');
1995            });
1996        });
1997
1998        var $form = $('gdpr_form, .gdpr_form_newsletter');
1999        var $form_checkbox = $('.gdpr_form input:checkbox, .gdpr_form_newsletter input:checkbox');
2000        $form.find('input').hide();
2001        $form.find('label[for^="gdpr_aditionaldata"]').hide();
2002        $form.find('label[for^="gdpr_aditionaldata"]').filter('label[for *=_check]').show();
2003        $form.find('input[type=radio]').parent().hide();
2004        $form.find('.additional-data').hide();
2005
2006        function showHideInput(name_check){ //show it when the checkbox is clicked
2007
2008            var name = name_check.replace('_check','');
2009            var $checkbox = $('input[name="'+name_check+'"]');
2010            var $confirm_name = 'gdpr_confirm_user';
2011
2012
2013            var $input = $('input[name^="'+name+'"]');
2014            var $label = $('label[for^="'+name+'"]');
2015            var elementclass = '.list-items-wrapper .additional-data';
2016            var eltype = 'input[type=radio]';
2017            if ($checkbox.prop('checked')) {
2018                if($input.attr('name')=='gdpr_confirm_user'){
2019                    $input.prop('required',true);
2020                }
2021                $input.prop('required',true).fadeIn();
2022                $label.fadeIn();
2023                $input.filter(eltype).parent().fadeIn();
2024                $input.filter(eltype).parents(elementclass).fadeIn();
2025                $input.parent().children().filter('.validation-errors-list').show();
2026            }
2027            else {
2028                $input.prop('required',false).hide();
2029                $input.parent().children().filter('.validation-errors-list').hide();
2030                if($input.attr('name') == $confirm_name){
2031                    $input.prop('required',true);
2032                    $input.parent().children().filter('.validation-errors-list').show();
2033                }
2034                $label.hide();
2035                $input.filter(eltype).parent().hide();
2036                $input.filter(eltype).parents(elementclass).hide();
2037                $label.filter('label[for="'+name_check+'"]').show();
2038            }
2039
2040        }
2041
2042        $form_checkbox.each(function(){
2043            var input_name = $(this).attr('name');
2044            showHideInput(input_name);
2045        });
2046
2047        $form_checkbox.click(function(){
2048            var input_name = $(this).attr('name');
2049            showHideInput(input_name);
2050        });
2051
2052        gpdr_form_validate();
2053
2054        function additionCheckbox($addData, $all){
2055            $all.change(function(){
2056                if($(this).prop('checked')){
2057                    $(this).prop('checked', true).parent().addClass('checked');
2058                }else{
2059                    $(this).prop('checked', false).parent().removeClass('checked');
2060                }
2061
2062            });
2063        }
2064
2065        //Checkbox conditions for registrations
2066        var additonaldatacheck             = 'input[name="reg_sendUserAdditionalData"]',
2067            additonaldataSMScheck          = 'input[name="reg_sendSMS"]';
2068        additonaldataEmailcheck        = 'input[name="reg_sendNewsletter"]',
2069            additonaldataPhoneCall        = 'input[name="reg_callMeOnPhone"]',
2070            $additonaldatacheck        = $(additonaldatacheck),
2071            $additonaldataSMScheck     = $(additonaldataSMScheck),
2072            $additonaldataEmailcheck   = $(additonaldataEmailcheck),
2073            $additonaldataPhoneCall   = $(additonaldataPhoneCall),
2074            $adddataAll                    = $additonaldataSMScheck.add(additonaldataEmailcheck),
2075            $all                           = $additonaldatacheck.add(additonaldataEmailcheck).add(additonaldataSMScheck).add($additonaldataPhoneCall);
2076
2077        additionCheckbox($adddataAll, $all);
2078
2079        //uncheck if additaional SMS and EMAIL are not checked
2080        $adddataAll.change(function(){
2081            if(!$additonaldataSMScheck.prop('checked') && !$additonaldataEmailcheck.prop('checked')){
2082                $additonaldatacheck.prop('checked',false).parent().removeClass('checked');
2083                $additonaldataPhoneCall.prop('checked',false).parent().removeClass('checked');
2084                $('#reg_email_checkgroup, #reg_phone_checkgroup').closest('.form-group-checklabel').css({'pointerEvents':'none','opacity':'.5'});
2085            }
2086
2087        });
2088        // Reg page
2089        var additonaldatacheckPage             = 'input[name="reg_page_sendUserAdditionalData"]',
2090            additonaldataSMScheckPage          = 'input[name="reg_page_sendSMS"]';
2091        additonaldataEmailcheckPage               = 'input[name="reg_page_sendNewsletter"]',
2092            additonaldataPhoneCallPage              = 'input[name="reg_page_callMeOnPhone"]',
2093            $additonaldatacheckPage        = $(additonaldatacheckPage),
2094            $additonaldataSMScheckPage     = $(additonaldataSMScheckPage),
2095            $additonaldataEmailcheckPage   = $(additonaldataEmailcheckPage),
2096            $additonaldataPhoneCallPage   = $(additonaldataPhoneCallPage),
2097            $adddataAllPage                  = $additonaldataSMScheckPage.add(additonaldataEmailcheckPage),
2098            $allPage                         = $additonaldatacheckPage.add(additonaldataEmailcheckPage).add(additonaldataSMScheckPage).add($additonaldataPhoneCallPage);
2099
2100        additionCheckbox($adddataAllPage, $allPage);
2101
2102        //uncheck if additaional SMS and EMAIL are not checked
2103        $adddataAllPage.change(function(){
2104            if(!$additonaldataSMScheckPage.prop('checked') && !$additonaldataEmailcheckPage.prop('checked')){
2105                $additonaldatacheckPage.prop('checked',false).parent().removeClass('checked');
2106                $additonaldataPhoneCallPage.prop('checked',false).parent().removeClass('checked');
2107                $('#reg_page_email_checkgroup, #reg_page_phone_checkgroup').closest('.form-group-checklabel').css({'pointerEvents':'none','opacity':'.5'});
2108            }
2109
2110        });
2111
2112        //ako je cekiran dodatni podaci da cekira email i SMS
2113        $disableGDPRCheckFlag = true;
2114        if(typeof $disableGDPRCheck !== 'undefined' && $disableGDPRCheck){
2115            $disableGDPRCheckFlag = false;
2116        }
2117        if($disableGDPRCheckFlag){
2118            $additonaldatacheck.change(function(){
2119                if($additonaldatacheck.prop('checked')){
2120                    $additonaldataSMScheck.prop('checked', true).parent().addClass('checked');
2121                    $additonaldataEmailcheck.prop('checked', true).parent().addClass('checked');
2122                }
2123
2124            });
2125        }
2126
2127    };
2128    var cookieInfoNew = function(){
2129        var $buttonRM = $('.cokie-info-wrapper .read-more-cookie'),
2130            $container = $('.cookie-read-more-wrapper'),
2131            $button_close = $('.cookie-agree');
2132        $buttonRM.click(function(){
2133            $buttonRM.toggleClass('active');
2134            $container.toggleClass('active');
2135        });
2136        $button_close.click(function(){
2137            if(!$(this).hasClass('cookie-disagree')){
2138                $('.cookie-info-slider').hide( "slow" );
2139            }
2140
2141        })
2142    };
2143
2144    var closeMenu = function(){
2145        var $menu = $('.nav-main-dropdown-wrapper');
2146        $menu.removeClass('loaded');
2147        $menu.addClass('hidden');
2148
2149        if(windowWidth() < 769){
2150            $menu = $('.nav-main-wrapper');
2151            $menu.removeClass('loaded');
2152            $menu.hide();
2153        }
2154
2155    };
2156
2157    var showMoreSimilarProductInList = function(){
2158        $('.product .color-wrapper .similar-color-wrapper .item.show-more').on('click', function () {
2159            $(this).parent().find('.hidden-items').removeClass('hidden');
2160        });
2161        $('.product .product-item').on('mouseleave', function () {
2162            $(this).find('.hidden-items').addClass('hidden');
2163        })
2164    };
2165
2166    var getBrandsPermalinkFromMenu = function () {
2167        $('.nav-main > li.brand').hover(
2168            function () {
2169                var permalink = $(this).children('a').attr('href');
2170                $(this).find('a.show-all-breands').attr("href", permalink);
2171            }
2172        )
2173    };
2174
2175    var showMoreSimilarProductByColor = function () {
2176        var limitToShowItem = $('.similar-products-by-color .items-wrapper').data('limit-nb');
2177        if(!limitToShowItem) return;
2178        $('.similar-products-by-color .show-more-colors').click( function () {
2179            $(this).parent().find('.items-wrapper .item').each( function () {
2180                $(this).removeClass('hidden');
2181            })
2182        });
2183
2184        $('.product-listing .product-item').mouseleave( function () {
2185            $(this).find('.similar-products-by-color .item:nth-child(n + '+(limitToShowItem+1)+')').each( function () {
2186                $(this).addClass('hidden');
2187            })
2188        });
2189    };
2190
2191    var dropdownLoginForm = function () {
2192        $('.user-witouth-modal .login-btn, .user-witouth-modal .item-username a').click(function () {
2193            $('.login-dd-wrappper').toggleClass('active');
2194            $(this).toggleClass('active');
2195        });
2196        $('.login-dd-wrappper .wrapper-overlayer').click(function () {
2197            $('.login-dd-wrappper, .user-witouth-modal .login-btn').removeClass('active');
2198        });
2199
2200    };
2201
2202    var handleScrollToTop =  function(){
2203        var buttontop = $('.scroll-to-top');
2204        //if($(window).width() > 767) {
2205        $(window).scroll(function () {
2206            if ($(this).scrollTop() > ($(window).height()/2)) {
2207                buttontop.fadeIn();
2208            } else {
2209                buttontop.fadeOut();
2210            }
2211        });
2212        //}
2213
2214        buttontop.click(function(){
2215            $('html, body').animate({scrollTop : 0},800);
2216        });
2217    };
2218
2219    var handledropdownLogin = function(){
2220        var s,a=0;
2221
2222        $('.user .item-login.loged-in').click(function (e) {
2223            $(this).find('.login-dropdown').addClass('active');
2224            s = true;
2225            a = 0;
2226        });
2227        $('body').click(function(e){
2228            if($('.login-dropdown').hasClass('active') && a > 0){
2229                if ($(e.target).closest('.login-dropdown').length === 0) {
2230                    $('.login-dropdown').removeClass('active');
2231                }
2232            }
2233            a++;
2234        });
2235    };
2236
2237    /* Aktiviranje i deaktiviranje polja na procesu kupovine kada je proces kupovine "u koracima" */
2238    var cartWithStepsButtons = function(){
2239
2240        if($('.container.cart').hasClass('cart-in-steps')){
2241            var activeTab = false;
2242            $('.cart-steps-btn-wrapper .step').each(function () {
2243                if($(this).hasClass('active')){
2244                    activeTab = true;
2245                }
2246            });
2247            if(!activeTab){
2248                $('.cart-steps-btn-wrapper .step-cart-table').addClass('active');
2249            }
2250
2251            if($('.cart-steps-btn-wrapper .step-cart-table').hasClass('active') && !$('.cart-steps-btn-wrapper .step-cart-table').hasClass('checked')){
2252                $('#cart_onepage_form > div').each(function () {
2253                        if(!$(this).hasClass('cart-loader')){
2254                            $(this).addClass('hidden');
2255                        }
2256                    }
2257                );
2258                $('.cart-step.next-btn-wrapper').removeClass('hidden');
2259                $('#order_cart_content, #order_ticket_content').removeClass('hidden');
2260            } else if($('.cart-steps-btn-wrapper .step-delivery').hasClass('active') && !$('.cart-steps-btn-wrapper .step-delivery').hasClass('checked')) {
2261                $('#cart_onepage_form > div').each(function () {
2262                        if(!$(this).hasClass('cart-loader')){
2263                            $(this).addClass('hidden');
2264                        }
2265                    }
2266                );
2267                $('.cart-step.next-btn-wrapper').removeClass('hidden');
2268                $('#order_address_content, #order_carrier_and_payment_content').removeClass('hidden');
2269                $('.cart .cart-carrier-and-payment .cart-payment-wrapper').addClass('hidden');
2270                $('.cart .cart-carrier-and-payment .carrier-wrapper').removeClass('hidden');
2271            } else if($('.cart-steps-btn-wrapper .step-payment').hasClass('active') && !$('.cart-steps-btn-wrapper .step-payment').hasClass('checked')) {
2272                $('#cart_onepage_form > div').each(function () {
2273                        if(!$(this).hasClass('cart-loader')){
2274                            $(this).addClass('hidden');
2275                        }
2276                    }
2277                );
2278                $('#order_carrier_and_payment_content').removeClass('hidden');
2279                $('.cart .cart-carrier-and-payment .carrier-wrapper').addClass('hidden');
2280                $('.cart .cart-carrier-and-payment .cart-payment-wrapper').removeClass('hidden');
2281                $('.cart-step.next-btn-wrapper').removeClass('hidden');
2282            } else {
2283                $('#cart_onepage_form > div').each(function () {
2284                        if(!$(this).hasClass('cart-loader')){
2285                            $(this).addClass('hidden');
2286                        }
2287                    }
2288                );
2289                $('#order_total_confirm_content').removeClass('hidden');
2290                $('.cart-step.next-btn-wrapper').addClass('hidden');
2291            }
2292        }
2293    };
2294
2295    $('.cart-step.next-btn-wrapper').click(function(){
2296        //if (!$("#order_cart_content .alert.alert-danger")[0]){
2297            $('.cart-steps-btn-wrapper .step.active').each(function () {
2298                if(!$(this).hasClass('checked')){
2299                    $(this).next().click();
2300                }
2301            })
2302        //}
2303    });
2304
2305    /* Za menjanje tabova na procesu kupovine*/
2306    $('.cart-steps-btn-wrapper .step').click(function(){
2307        $('html, body').animate({scrollTop : 0},300);
2308        $(this).addClass('active').removeClass('checked');
2309        $(this).nextAll().removeClass('active').removeClass('checked');
2310        $(this).prevAll().addClass('checked').addClass('active');
2311        cartWithStepsButtons();
2312    });
2313
2314    /* Validacija postanskog broja za isporuku */
2315    var notAllowePostCodesForDeliveryCheck = function () {
2316        if(typeof notAllowePostCodesForDelivery !== 'undefined' && notAllowePostCodesForDelivery != ''){
2317            var notAllowePostCodesForDeliveryArray = notAllowePostCodesForDelivery.split(",");
2318            $('#cart_onepage_postcode').on('keyup', function(){
2319                var postCode = $(this).val();
2320                if(notAllowePostCodesForDeliveryArray.indexOf(postCode) > -1){
2321                    toastr.error(notAllowePostCodesInfo);
2322                    $(this).addClass('disable-post-code');
2323                } else {
2324                    $(this).removeClass('disable-post-code');
2325                }
2326            });
2327        };
2328    };
2329
2330    /* Koristi se za brzu kupovinu na LISTINGU PROIZVODA, kada je izbor količine i veličie u oblaku "booble"-u, radjeno za Nespresso */
2331    var quickBuyButtonV3 = function () {
2332        /* Kada se klikne dugme "kupite" da proizvod dobije aktivnu klasu, veći z-index i da se otvori booble sa izvorom količine i veličine */
2333        $('.product .item .options-wrapper.product-sizes-v3 .product-sizes').each(function () {
2334            $(this).click(function () {
2335                $('.product .product-item.active').each(function () {
2336                    $(this).removeClass('active');
2337                });
2338                $('.product .item .options-wrapper.product-sizes-v3 .sizes-selector-wrapper').each(function () {
2339                    $(this).removeClass('down-position');
2340                });
2341                $(this).closest('.item').addClass('active');
2342                var scrollTop     = $(window).scrollTop(),
2343                    elementOffset = $(this).offset().top,
2344                    distance      = (elementOffset - scrollTop),
2345                    sizewrapper = $(this).find('.sizes-selector-wrapper');
2346                if(distance < 315 && sizewrapper.parents('.slider').length == 0){
2347                    sizewrapper.addClass('down-position');
2348                }
2349
2350            })
2351        });
2352
2353        /* Ako se klikne bilo gde van proizvoda gubi klasu active i zatvara se booble sa izvorom količine i veličine */
2354        $('body').click(function(e){
2355            if ($(e.target).closest('.product .item.product-item.active').length === 0) {
2356                $('.product .item.product-item.active').removeClass('active');
2357            }
2358        });
2359
2360        var removeBobbleAfterBuy = function(){
2361            setTimeout(function () {
2362                $('.product .item.product-item.active').each(function () {
2363                    $(this).removeClass('active');
2364                });
2365            }, 500);
2366        };
2367
2368        /* Klikom na dugme "ok" uzima vrednost iz inputa, menja quantity u dugmetu "kupite" i klikne na dugme "kupite" */
2369        $('.product .options-wrapper.product-sizes-v3 .add-to-cart-button').click(function () {
2370            var quantity = $(this).parent().find('.quantity-nb').val();
2371            if(typeof quantity == 'undefined'){quantity = 1;}
2372            $(this).closest('.options-wrapper').find('.buyButtonOnLists').data('product-quantity', quantity).click();
2373            removeBobbleAfterBuy();
2374        });
2375
2376        /* Kada se izabere veličina upisuje količinu u input */
2377        $('.product .options-wrapper.product-sizes-v3 .size-select-wrapper .item').click(function () {
2378            $(this).closest('.options-wrapper').find('.input-quantity-wraper input').val('1');
2379            $(this).closest('.options-wrapper').find('.input-quantity-wraper label').removeClass('empty-input');
2380            removeBobbleAfterBuy();
2381        });
2382
2383        /* Kada se klikne na količinu u booble-u menja data quantity i ubacuje proizvod u korpu */
2384        $('.product .options-wrapper.product-sizes-v3 .quantity-select-wrapper .item').click(function () {
2385            var quantity = $(this).attr('data-quantity');
2386            $(this).closest('.options-wrapper').find('.buyButtonOnLists').data('product-quantity', quantity).data('content', '+'+quantity).click();
2387            removeBobbleAfterBuy();
2388        });
2389    };
2390
2391    /* Koristi se za brzu kupovinu na DETALJU PROIZVODA, kada je izbor količine i veličie u oblaku "booble"-u, radjeno za Nespresso */
2392    var productQuickBuyBobble = function(){
2393
2394        // /* Kada se klikne dugme "kupite" da proizvod dobije aktivnu klasu, veći z-index i da se otvori booble sa izvorom količine i veličine */
2395        $('.product-detail-buy > .btn-wrapper').click(function () {
2396            $('.product-detail-wrapper .product-buy-bobble, .modal-quick-view .modal-content-product-details-quick-view .product-buy-bobble').toggleClass('active');
2397            $('.product-buy-bobble.active .product-buy-size-bobble').removeClass('down-position');
2398            var scrollTop     = $(window).scrollTop(),
2399                elementOffset = $(this).offset().top,
2400                distance      = (elementOffset - scrollTop);
2401            if(distance < 375){
2402                $('.product-buy-bobble.active .product-buy-size-bobble').addClass('down-position');
2403            }
2404        });
2405
2406        /* Ako se klikne bilo gde van proizvoda gubi klasu active i zatvara se booble sa izvorom količine i veličine */
2407        $('body').click(function(e){
2408            if ($(e.target).closest('.product-detail-wrapper .product-buy-bobble, .modal-quick-view .modal-content-product-details-quick-view .product-buy-bobble').length === 0) {
2409                $('.product-detail-wrapper .product-buy-bobble, .modal-quick-view .modal-content-product-details-quick-view .product-buy-bobble').removeClass('active');
2410            }
2411        });
2412
2413        /* Klikom na dugme "ok" uzima vrednost iz inputa, menja quantity i klikne na dugme "kupite" */
2414        $('.product-buy-bobble .product-buy-size-bobble .input-quantity-wraper .add-to-cart-button').click(function () {
2415            var quantity = $(this).parent().find('.quantity-nb').val();
2416            if(typeof quantity == 'undefined'){quantity = 1;}
2417            $('#product_quantity').val(quantity);
2418            $('#nb_addToCartButton').click();
2419        });
2420
2421        /* Kada se izabere veličina upisuje količinu u input */
2422        $('.product-buy-bobble .product-buy-size-bobble .product-attributes li').click(function () {
2423            $('.input-quantity-wraper input').val('1');
2424            $(this).closest('.product-buy-bobble').find('.input-quantity-wraper label').removeClass('empty-input');
2425        });
2426
2427        /* Dada se klikne na količinu u booble-u menja data quantity i ubacuje proizvod u korpu */
2428        $('.product-buy-bobble .product-buy-size-bobble .quantity-button-wrapper .item').click(function () {
2429            var quantity = $(this).attr('data-quantity');
2430            $('#product_quantity').val(quantity);
2431            $('#nb_addToCartButton').click();
2432        });
2433    };
2434
2435    /* Koristi se na filterima listinga proizvoda da doda klasu na wrapper check-irani box */
2436    var filterButtonActive = function(){
2437        $('.filter-group .items-wrapper > li.form-group-checklabel label').each(function () {
2438            if($(this).parent().children('.icheck-item').hasClass('checked')){
2439                $(this).addClass('checked-label');
2440            } else {
2441                $(this).removeClass('checked-label');
2442            }
2443        });
2444    };
2445
2446    /* Koristi se za blok navigation/user_witouth_modal da umesto modala otvara dropdown ili redirektuje na stranu registracije*/
2447    var loginPopupToDoprdown = function(){
2448        if($('.user').hasClass('user-witouth-modal')){
2449            $('a').each(function () {
2450                if($(this).data('target') == '#login_modal') {
2451                    $(this).attr('data-toggle','');
2452                    $(this).click(function () {
2453                        setTimeout(function(){ $('.login-dd-wrappper').addClass('active'); }, 1);
2454
2455                    })
2456                } else if($(this).data('target') == '#register_modal'){
2457                    var permalink = $('.registration-btn-wrapper a.register-btn').attr('href');
2458                    $(this).attr('data-toggle','');
2459                    $(this).click(function () {
2460                        setTimeout(function(){
2461                            window.location.href = permalink;
2462                        }, 1);
2463
2464                    })
2465                }
2466            })
2467        }
2468    };
2469
2470    /* Skripta za item-e "product with similar color" */
2471    var productSimilarItem = function () {
2472
2473        $('.product-with-similar-color-grid12 .slider-init .item .img-wrapper > div').click(function () {
2474            if(!$(this).hasClass('active')){
2475                $('.product-with-similar-color-grid12 .slider-init .item .img-wrapper > div').each(function () {
2476                    $(this).toggleClass('active');
2477                })
2478            }
2479        });
2480
2481
2482        setTimeout(function(){
2483            $('.product-with-similar-color-grid12 .slick-dots li').each(function () {
2484                var dotIndex = $(this).attr('aria-controls');
2485                var colorHex = '';
2486                dotIndex = dotIndex.split('navigation');
2487                dotIndex = dotIndex[1];
2488                $(this).parent().parent().find('.item').each(
2489                    function () {
2490                        if($(this).attr('aria-describedby') == 'slick-slide'+dotIndex) {
2491                            colorHex = $(this).data('color');
2492                        }
2493                    }
2494                );
2495                $(this).find('button').css('background', colorHex);
2496            });
2497
2498            var colorLabel = $('.product-with-similar-color-grid12').data('thumbs-text');
2499            $('.product-with-similar-color-grid12.slider .slick-dots').before('<span class="color-label">'+colorLabel+'</span>');
2500
2501        }, 800);
2502
2503
2504    };
2505
2506    /* Items product slider v3 */
2507    var initProductSliderV3 = function () {
2508        var productListElementId = '.item-product-slider-v3 > .slider-init';
2509        var productListOptions   = {
2510            slidesToShow: 3,
2511            dots: true,
2512            arrows: false,
2513            responsive: [
2514                {breakpoint: 800,  settings: { slidesToShow: 2}},
2515                {breakpoint: 480,  settings: { slidesToShow: 1}}
2516            ]
2517        };
2518        $(productListElementId).each(function () {
2519            initSlider(this, productListOptions);
2520        });
2521
2522    };
2523
2524    /* Items block accordian */
2525    var toggleItemsAccordian = function () {
2526        $('.background-toggle-text-item .text-wrapper .acordian-items-wrapper .item,.popup-wrapper .popup-right .accordian-items-wrapper .item ').click(function () {
2527            $(this).toggleClass('active');
2528        });
2529    };
2530
2531    /* Parallax za iteme na landing-u*/
2532    function parallaxIt() {
2533        // create variables
2534        var $fwindow = $(window);
2535        var scrollTop = window.pageYOffset || document.documentElement.scrollTop;
2536
2537        var $backgrounds = [];
2538
2539        // for each of background parallax element
2540        $('[data-type="background"]').each(function() {
2541            var $backgroundObj = $(this);
2542
2543            $backgroundObj.__speed = ($backgroundObj.data('speed') || 1);
2544            $backgroundObj.__fgOffset = $backgroundObj.offset().top;
2545            $backgrounds.push($backgroundObj);
2546        });
2547
2548        // update positions
2549        $fwindow.on('scroll resize', function() {
2550            scrollTop = window.pageYOffset || document.documentElement.scrollTop;
2551
2552
2553            $backgrounds.forEach(function($backgroundObj) {
2554                var yPos = -((scrollTop - $backgroundObj.offset().top) / $backgroundObj.__speed);
2555
2556                $backgroundObj.css({
2557                    backgroundPosition: '50% ' + yPos + 'px'
2558                });
2559            });
2560        });
2561
2562        // triggers winodw scroll for refresh
2563        $fwindow.trigger('scroll');
2564    };
2565
2566    var dropdownLangFromSlider = function () {
2567        /* Ako kliknes na title dodaje se klasa na parent i otvara se dropdown*/
2568        $('.lang-from-slider .title').click(function () {
2569            $(this).parent().toggleClass('active');
2570        });
2571
2572        /* Ako klikneš bilo gde van selektora dropdown se zatvara */
2573        $('body').click(function(e){
2574            if ($(e.target).closest('.lang-from-slider').length === 0) {
2575                $('.lang-from-slider').removeClass('active');
2576            }
2577        });
2578    };
2579
2580    var toggleReadMoreItem = function () {
2581        $('.read-more-itme .button-show-more').click(function () {
2582            $(this).parent().toggleClass('active');
2583        })
2584    };
2585
2586    var getOffset = function ( el ) {
2587        var _x = 0;
2588        var _y = 0;
2589        while( el && !isNaN( el.offsetLeft ) && !isNaN( el.offsetTop ) ) {
2590            _x += el.offsetLeft - el.scrollLeft;
2591            _y += el.offsetTop - el.scrollTop;
2592            el = el.offsetParent;
2593        }
2594        return { top: _y, left: _x };
2595    }
2596
2597    /* unkcija za stavku sa mapom i mapiranjem stavki na mapi*/
2598    !function(t,e){function r(t){return t.x===e&&t.y===e?!1:(t.x=parseFloat(t.x)||0,t.y=parseFloat(t.y)||0,t)}function a(e,r,a){var n=[e.x,e.y,r.x,r.y,a.w,a.h].join(",");if(o[n])return t.extend({},o[n]);var i,s=Math.abs(r.x-e.x),l=Math.abs(r.y-e.y),h=s&&l?Math.sqrt(s*s+l*l):s||l,d=Math.min(e.x,r.x),u=Math.min(e.y,r.y),x=d+s/2,c=u+l/2,p=x-h/2,y=c,b=o[n]={width:h};return a.w>1&&(b.width-=a.w-1),a.h>1&&(y-=a.h/2),a.bw&&(p+=a.bw/2),a.bh&&(y+=a.bh/2),t.support.matrixFilter||(p-=a.l,y-=a.t),p=Math.round(p),y=Math.round(y),b.width=Math.round(b.width),i=s?l?(180+180*Math.atan2(e.y-r.y,e.x-r.x)/Math.PI+360)%360:e.x<r.x?0:180:e.y<r.y?90:270,b.transform="rotate("+i+"deg)",b.left=p,b.top=y,b.extra={center:{x:x,y:c},rotation:{deg:i,rad:i%360*Math.PI/180}},t.extend({},b)}var o={};t.line=function(e,o,n){if(e=r(e),o=r(o),!e||!o)return!1;var i,s,l,h=t.extend({},t.line.defaults,n||{}
2598),d=h.elem?t(h.elem):t("<div/>",{"class":h.className}),u={position:"absolute",backgroundColor:h.lineColor,width:1,height:h.lineWidth},x=d;return d.css(u),d.length&&!d[0].parentNode&&d.appendTo("body"),s={w:d.outerWidth(),h:d.outerHeight(),l:parseFloat(d.css("marginLeft"))||0,t:parseFloat(d.css("marginTop"))||0},t.support.matrixFilter&&(s.bw=(parseFloat(d.css("borderLeftWidth"))||0)+(parseFloat(d.css("borderRightWidth"))||0),s.bh=(parseFloat(d.css("borderTopWidth"))||0)+(parseFloat(d.css("borderBottomWidth"))||0)),i=a(e,o,s),l=i.extra,delete i.extra,d.css(i),h.returnValues&&(x={from:e,to:o,center:l.center,rotation:l.rotation}),x},t.line.defaults={elem:"",className:"cafe-line",lineWidth:1,lineColor:"#000",returnValues:!1}}(jQuery);
2599    var drowLineOnMapItems = function(){
2600
2601        var firstClick = false;
2602
2603        setTimeout(function () {
2604            $('.products-map-item .product-slider > .slider-init .item.product-item.slick-current').click();
2605        }, 500);
2606
2607        var fromPoint;
2608        var toPoint;
2609
2610        $('.products-map-item .product-slider .product-item').click(function () {
2611
2612            $('.products-map-item .product-slider .product-item').each(function () {
2613                $(this).css('pointer-events', 'none');
2614                $(this).removeClass('selected');
2615            });
2616
2617            var item = $(this);
2618            var productId = item.data('productid');
2619
2620            item.addClass('selected');
2621
2622            if($(window).width() > 767) {
2623                $('.map-item-description-wrapper .item.product-item').each(function () {
2624                    if($(this).data('productid') == productId){
2625                        $(this).removeClass('hidden');
2626                    } else {
2627                        $(this).addClass('hidden');
2628                    }
2629                });
2630            }
2631
2632            $('.products-map-item .product-map-wrapper .map-marker').each(function () {
2633                var marker = $(this);
2634                marker.removeClass('open');
2635                setTimeout(function(){ marker.removeClass('active');}, 1500);
2636            });
2637
2638            var drawLine = function(){
2639                $('.cafe-line').each(function () {
2640                    $(this).remove();
2641                });
2642
2643                $('.map-pId-'+productId).each(function () {
2644                    fromPoint = getOffset($(this)[0]);
2645                    toPoint = getOffset($('.selected.item-pId-'+productId)[0]);
2646
2647                    var marker = $(this);
2648
2649                    setTimeout(function(){ marker.addClass('active');}, 1500);
2650                    setTimeout(function(){ marker.addClass('open'); }, 2000);
2651
2652                    var fromElements = function () {},
2653                        toElements = new String('to');
2654                    fromElements.y = fromPoint.top+35;
2655                    fromElements.x = fromPoint.left+10;
2656                    toElements.y = toPoint.top-10;
2657                    toElements.x = toPoint.left+55;
2658
2659                    $.line(fromElements, toElements);
2660
2661                });
2662
2663                $('.cafe-line').each(function () {
2664                    $(this).addClass('active');
2665                });
2666
2667                $('.products-map-item .product-slider .product-item').each(function () {
2668                    $(this).css('pointer-events', 'all');
2669                });
2670            };
2671
2672            if(firstClick){
2673                setTimeout(function(){
2674                    drawLine();
2675                }, 2000);
2676            } else {
2677                drawLine();
2678                firstClick = true;
2679            }
2680
2681
2682        });
2683
2684        $(".products-map-item .product-slider > .slider-init").on("beforeChange", function (){
2685            $('.products-map-item .product-slider .product-item').each(function () {
2686                $(this).removeClass('selected');
2687                $(this).css('pointer-events', 'all');
2688            });
2689            $('.cafe-line').each(function () {
2690                $(this).remove();
2691            });
2692            $('.products-map-item .product-map-wrapper .map-marker').each(function () {
2693                var marker = $(this);
2694                marker.removeClass('open');
2695                marker.removeClass('active');
2696            });
2697            firstClick = false;
2698        })
2699
2700        if($(window).width() < 768) {
2701            $('.products-map-item .product-slider > .slider-init .item.product-item .slide-item-wrapper .read-more').click(function(){
2702                var productId = $(this).data('item-id');
2703                $('.map-item-description-wrapper .item.product-item').each(function () {$(this).addClass('hidden');});
2704                $('.map-item-description-wrapper .item.product-item.item-pId-'+productId).removeClass('hidden');
2705            });
2706
2707            $('.map-item-description-wrapper .item.product-item .close-product-popup').click(function () {
2708                $('.map-item-description-wrapper .item.product-item').each(function () {$(this).addClass('hidden');});
2709            })
2710
2711            $('.products-map-item .product-slider > .slider-init').on('afterChange', function(event, slick, currentSlide, nextSlide){
2712                $('.products-map-item .product-slider > .slider-init .item.product-item.slick-current').click()
2713            });
2714        }
2715
2716
2717    };
2718
2719    /* funkcionalnost za stavku sa listama proizvoda u tabovima */
2720    var itemListProductInTabs = function () {
2721        $('.product-list-tabs-items .product-slider > .slider-init .item').click(function () {
2722            if($(window).width() > 767) {
2723
2724                $('.product-list-tabs-items .product-slider > .slider-init .item').each(function () {
2725                    $(this).removeClass('selected');
2726                });
2727
2728                var item = $(this);
2729                var productId = item.data('productid');
2730
2731                item.addClass('selected');
2732
2733                $('.product-list-tabs-items .product-tabs-description-wrapper .item.product-item').each(function () {
2734                    if ($(this).data('productid') == productId) {
2735                        $(this).removeClass('hidden');
2736                    } else {
2737                        $(this).addClass('hidden');
2738                    }
2739                });
2740            }
2741        });
2742
2743        if($(window).width() < 768) {
2744            $('.product-list-tabs-items .product-slider > .slider-init .item').click(function(){
2745                var productId = $(this).data('productid');
2746                $('.product-list-tabs-items .product-tabs-description-wrapper .item.product-item').each(function () {$(this).addClass('hidden');});
2747                $('.product-list-tabs-items .product-tabs-description-wrapper .item.product-item.item-pId-'+productId).removeClass('hidden');
2748            });
2749
2750            $('.product-list-tabs-items .product-tabs-description-wrapper .item.product-item .close-product-popup').click(function () {
2751                $('.product-list-tabs-items .product-tabs-description-wrapper .item.product-item').each(function () {$(this).addClass('hidden');});
2752            })
2753        }
2754
2755
2756    };
2757
2758    var itemProductListTabsWithFilters = function(){
2759
2760        /* Doadavanje klase na wrapper filtera prilikom promene liste */
2761        $('.product-list-tabs-with-filters.lists-tabs ul.items-wrapper li a').click(function () {
2762            var tabId = $(this).attr('href');
2763            var orderName = $(""+tabId+"").data('order-by');
2764
2765            var classes = $(".product-list-tabs-with-filters .filter-wrapper").attr("class").split(' ');
2766            $.each(classes, function(i, c) {
2767                if (c.indexOf("order-") == 0) {
2768                    $(".product-list-tabs-with-filters .filter-wrapper").removeClass(c);
2769                }
2770            });
2771            $('.product-list-tabs-with-filters .filter-wrapper').addClass('order-'+orderName);
2772            resetAllFilters();
2773        });
2774
2775        /* da se vide/saktiju filteri */
2776        $('.product-list-tabs-with-filters .filter-wrapper .show-all-filters').click(function () {
2777            $(this).parent().parent().toggleClass('active');
2778        });
2779
2780        /* Provera da li su aktivni dugmići */
2781        var checkFilters = function(){
2782
2783            /* Proverava da li su aktivirani filteri koji nisu "intensity" */
2784            var checkNoIntesBtn = false;
2785            $('.product-list-tabs-with-filters .filter-wrapper > div:not(.intensity-wrapper) .item').each(function () {
2786                if($(this).hasClass('active')){
2787                    checkNoIntesBtn = true;
2788                }
2789            });
2790
2791            /* Prov deaktiviraj sve filtere */
2792            $('.product-list-tabs-with-filters .filter-wrapper .item').each(function () {
2793                $(this).addClass('disabled');
2794            });
2795
2796            /* Ako nije aktiviran samo "intensity" filter*/
2797            if(checkNoIntesBtn){
2798
2799                /* Traži data atribute u proizvodima, ako imaju istu vrednos kao dugme filtera filter postaje aktivan */
2800                $('.product-list-tabs-with-filters .tab-pane.active .product-lists-tab .product .group-wrapper .item').each(function () {
2801                    if(!$(this).hasClass('disabled')){
2802                        /* Proverava intensity filtere */
2803                        if($(this).data('intensity') != ''){
2804                            var intensity = $(this).data('intensity');
2805                            $('#intensity'+intensity).removeClass('disabled');
2806                        }
2807                        /* Proverava low-cup filtere */
2808                        if($(this).data('low-cup') == '1'){
2809                            $('#cup-low').removeClass('disabled');
2810                        }
2811                        /* Proverava midle-cup filtere */
2812                        if($(this).data('midle-cup') == '1'){
2813                            $('#cup-midle').removeClass('disabled');
2814                        }
2815                        /* Proverava full-cup filtere */
2816                        if($(this).data('full-cup') == '1'){
2817                            $('#cup-full').removeClass('disabled');
2818                        }
2819                        /* Proverava big-cup filtere */
2820                        if($(this).data('big-cup') == '1'){
2821                            $('#cup-big').removeClass('disabled');
2822                        }
2823                        /* Provera aroma / ISBN */
2824                        if($(this).data('isbn') != ''){
2825                            var isbn = $(this).data('isbn');
2826                            $('#isbn-'+isbn).removeClass('disabled');
2827                        }
2828
2829                    }
2830                });
2831            } else {
2832                /* Ako je aktiviran samo "intensity" filter*/
2833                $('.product-list-tabs-with-filters .tab-pane.active .product-lists-tab .product .group-wrapper .item').each(function () {
2834                    var intensity = $(this).data('intensity');
2835                    $('#intensity'+intensity).removeClass('disabled');
2836                    if(!$(this).hasClass('disabled')){
2837                        if($(this).data('low-cup') == '1'){
2838                            $('#cup-low').removeClass('disabled');
2839                        }
2840                        if($(this).data('midle-cup') == '1'){
2841                            $('#cup-midle').removeClass('disabled');
2842                        }
2843                        if($(this).data('full-cup') == '1'){
2844                            $('#cup-full').removeClass('disabled');
2845                        }
2846                        if($(this).data('big-cup') == '1'){
2847                            $('#cup-big').removeClass('disabled');
2848                        }
2849                        /* Provera aroma / ISBN */
2850                        if($(this).data('isbn') != ''){
2851                            var isbn = $(this).data('isbn');
2852                            $('#isbn-'+isbn).removeClass('disabled');
2853                        }
2854                    }
2855                });
2856            }
2857
2858        };
2859
2860        /* setuje filtere na osnovu aktivnih proizvoda */
2861        var activateItems = function(){
2862
2863            /*Proverava da li su aktivni samo "intensity" filtere */
2864            var checkNoIntesBtn = false,
2865                checkNoRangeBtn = false,
2866                intensityActive = false,
2867                activeRange = false;
2868
2869            /* provera da li su aktivni koji nisu intensity */
2870            $('.product-list-tabs-with-filters .filter-wrapper > div:not(.intensity-wrapper) .item').each(function () {
2871                if($(this).hasClass('active')){
2872                    checkNoIntesBtn = true;
2873                }
2874            });
2875
2876            /* Prover da li su aktivni filteri u wrapperu filtera, bez donjih filtera */
2877            $('.product-list-tabs-with-filters .filter-wrapper > div .item').each(function () {
2878                if($(this).hasClass('active')){
2879                    checkNoRangeBtn = true;
2880                }
2881            });
2882
2883            /* da li su aktivni filteri van filter wrappera / donji filtera */
2884            $('.product-list-tabs-with-filters .product-lists-tab > .product .group-wrapper').each(function () {
2885                if($(this).hasClass('active')){
2886                    activeRange = true
2887                }
2888            });
2889
2890            /* Ako nisu aktivni samo "intensity" filteri */
2891            if(checkNoIntesBtn){
2892
2893                /* Proverava da li nisu aktivni filteri za 'intensity' */
2894                $('.product-list-tabs-with-filters .filter-wrapper > .intensity-wrapper .item').each(function () {
2895                    if($(this).hasClass('active')){
2896                        intensityActive = true;
2897                    }
2898                });
2899
2900                if(intensityActive){
2901                    /* Svi proizvodi budu aktivirani */
2902                    $('.product-list-tabs-with-filters .tab-pane.active .product-lists-tab .product .group-wrapper .item').each(function (){
2903                        $(this).addClass('disabled');
2904                    });
2905
2906                    /* deaktiviraj sve proizvode koji nemaju navedene intezitete */
2907                    $('.product-list-tabs-with-filters .filter-wrapper .intensity-wrapper .intensity-filters-wrapper .item.active').each(function () {
2908                        var intensity = $(this).attr('id').split('intensity');
2909                        intensity = intensity[1];
2910                        $('.product-list-tabs-with-filters .tab-pane.active .product-lists-tab .product .group-wrapper .item').each(function (){
2911                            if($(this).data('intensity') == intensity){
2912                                $(this).removeClass('disabled');
2913                            }
2914                        });
2915                    });
2916                } else {
2917
2918                    $('.product-list-tabs-with-filters .tab-pane.active .product-lists-tab .product .group-wrapper .item').each(function (){
2919                        $(this).removeClass('disabled');
2920                    });
2921
2922                }
2923
2924                /* deaktiviraj sve proizvode koji nemaju izbrane solje */
2925                $('.product-list-tabs-with-filters .filter-wrapper .cup-size-wrapper .cup-size-filters-wrapper .item.active').each(function () {
2926                    var cup = $(this).attr('id').split('cup-');
2927                    cup = cup[1];
2928                    $('.product-list-tabs-with-filters .tab-pane.active .product-lists-tab .product .group-wrapper .item').each(function (){
2929                        if($(this).data(cup+'-cup') != 1){
2930                            $(this).addClass('disabled');
2931                        }
2932                    });
2933                });
2934
2935            } else {
2936
2937                $('.product-list-tabs-with-filters .tab-pane.active .product-lists-tab .product .group-wrapper .item').each(function (){
2938                    $(this).addClass('disabled');
2939                });
2940
2941                $('.product-list-tabs-with-filters .filter-wrapper .intensity-wrapper .intensity-filters-wrapper .item.active').each(function () {
2942                    var intensity = $(this).attr('id').split('intensity');
2943                    intensity = intensity[1];
2944                    $('.product-list-tabs-with-filters .tab-pane.active .product-lists-tab .product .group-wrapper .item').each(function (){
2945                        if($(this).data('intensity') == intensity){
2946                            $(this).removeClass('disabled');
2947                        }
2948                    });
2949                });
2950
2951            }
2952
2953            /* deaktiviraj sve proizvode koji nemaju izbrane aromu */
2954            $('.product-list-tabs-with-filters .filter-wrapper .aromatic-profiles-wrapper .aromatic-profiles-filters-wrapper .item.active').each(function () {
2955                var isbn = $(this).attr('id').split('isbn-');
2956                isbn = isbn[1];
2957                $('.product-list-tabs-with-filters .tab-pane.active .product-lists-tab .product .group-wrapper .item').each(function (){
2958                    if($(this).data('isbn') != isbn){
2959                        $(this).addClass('disabled');
2960                    }
2961                });
2962            });
2963
2964            /* deaktiviraj sve proizvode koji nemaju izbranu kategoriju */
2965            var rangeId = $('.product-list-tabs-with-filters .filter-wrapper .range-profiles-wrapper #ranges').val();
2966            if(rangeId != 'default'){
2967
2968                if(!checkNoIntesBtn && !checkNoRangeBtn && !intensityActive && !activeRange){
2969                    $('.product-list-tabs-with-filters .tab-pane.active .product-lists-tab .product .group-wrapper .item').each(function (){
2970                        if($(this).data('category') == rangeId){
2971                            $(this).removeClass('disabled');
2972                        }
2973                    });
2974                } else {
2975                    $('.product-list-tabs-with-filters .tab-pane.active .product-lists-tab .product .group-wrapper .item').each(function (){
2976                        if($(this).data('range') != rangeId){
2977                            $(this).addClass('disabled');
2978                        }
2979                    });
2980                }
2981            }
2982
2983            if(activeRange){
2984                if(!checkNoRangeBtn){
2985                    $('.product-list-tabs-with-filters .product-lists-tab > .product .group-wrapper .item').each(function () {
2986                        $(this).removeClass('disabled');
2987                    });
2988                };
2989
2990                $('.product-list-tabs-with-filters .product-lists-tab > .product .group-wrapper').each(function () {
2991                    if(!$(this).hasClass('active')){
2992                        $(this).find('.item').addClass('disabled');
2993                    }
2994                });
2995            }
2996
2997            if($(window).width() < 767) {
2998                $('.product-list-tabs-with-filters .product-lists-tab > .product .group-wrapper').each(function () {
2999                    var activeItemsWrapperGroup = false;
3000                    $(this).find('.item').each(function () {
3001                        if(!$(this).hasClass('disabled')){
3002                            activeItemsWrapperGroup = true;
3003                        }
3004                    });
3005                    if(activeItemsWrapperGroup){
3006                        $(this).removeClass('hidden');
3007                    } else {
3008                        $(this).addClass('hidden');
3009                    }
3010                })
3011
3012            }
3013
3014
3015        };
3016
3017        var resetAllFilters = function () {
3018            $('.product-list-tabs-with-filters .filter-wrapper .filter-buttons-wrapper .reset-all-filters').removeClass('active');
3019            $('.product-list-tabs-with-filters .tab-pane.active .product-lists-tab .product .group-wrapper .item').each(function (){ $(this).removeClass('disabled'); });
3020            $('.product-list-tabs-with-filters .product-lists-tab > .product .group-wrapper').each(function (){ $(this).removeClass('active'); });
3021            $('.product-list-tabs-with-filters .filter-wrapper .item').each(function (){ $(this).removeClass('active'); });
3022            $('.product-list-tabs-with-filters .filter-wrapper .range-profiles-wrapper #ranges').val('default');
3023        };
3024
3025        var filterBtns = function (){
3026            var avtiveFilterBtn;
3027            var activeGroupWrapperBtn;
3028            $('.product-list-tabs-with-filters .filter-wrapper .item, .product-list-tabs-with-filters .product-lists-tab > .product .group-wrapper h3.category-title').click(function () {
3029                filterBtnFunction(this);
3030            });
3031
3032            $('.product-list-tabs-with-filters .filter-wrapper .range-profiles-wrapper #ranges').change(function () {
3033                filterBtnFunction();
3034            });
3035
3036            var filterBtnFunction= function(item){
3037                avtiveFilterBtn = false;
3038                activeGroupWrapperBtn = false;
3039
3040                if($(item).hasClass('item')){
3041                    $(item).toggleClass('active');
3042                } else {
3043                    $(item).parent().toggleClass('active');
3044                }
3045                $('.product-list-tabs-with-filters .filter-wrapper .item, .product-list-tabs-with-filters .product-lists-tab > .product .group-wrapper').each(function () {
3046                    if($(this).hasClass('active')){
3047                        avtiveFilterBtn = true;
3048                    }
3049                    if($('.product-list-tabs-with-filters .filter-wrapper .range-profiles-wrapper #ranges').val() != 'default'){
3050                        avtiveFilterBtn = true;
3051                    }
3052                });
3053                $('.product-list-tabs-with-filters .product-lists-tab > .product .group-wrapper').each(function () {
3054                    if($(this).hasClass('active')){
3055                        activeGroupWrapperBtn = true;
3056                    }
3057                });
3058
3059                if(avtiveFilterBtn || activeGroupWrapperBtn){
3060                    $('.product-list-tabs-with-filters .filter-wrapper .filter-buttons-wrapper .reset-all-filters').addClass('active');
3061                } else {
3062                    resetAllFilters();
3063                }
3064
3065                if(avtiveFilterBtn){
3066                    activateItems();
3067                } else {
3068                    $('.product-list-tabs-with-filters .tab-pane.active .product-lists-tab .product .group-wrapper .item').each(function (){ $(this).removeClass('disabled'); });
3069                }
3070
3071                checkFilters();
3072
3073            }
3074        };
3075
3076        $('.product-list-tabs-with-filters .filter-wrapper .filter-buttons-wrapper .reset-all-filters').click(function () {
3077            resetAllFilters();
3078        });
3079
3080        filterBtns();
3081        checkFilters();
3082
3083        $('.product-list-tabs-with-filters.lists-tabs ul.items-wrapper li.active a').click();
3084    };
3085
3086
3087    var itemMp4VideoPlayer = function () {
3088
3089        $.fn.isInViewport = function() {
3090            var elementTopPosition = $(this).offset().top;
3091            var windowHeight = $(window).height();
3092            var elementTop = (elementTopPosition + (windowHeight / 2));
3093            var elementBottom = elementTop + $(this).outerHeight();
3094            var viewportTop = $(window).scrollTop();
3095            var viewportBottom = viewportTop + windowHeight;
3096            return elementBottom > viewportTop && elementTop < viewportBottom;
3097        };
3098
3099        var $fwindow = $(window);
3100        $fwindow.on('scroll resize', function() {
3101            $('.mp4-video-bg-grid12 .item-video').each(function () {
3102                if ($(this).isInViewport(true) && !$(this).hasClass('played')) {
3103                    $(this)[0].play();
3104                    $(this).addClass('played');
3105                }
3106            })
3107        });
3108    };
3109
3110    var threeSixtyView = function(){
3111
3112        var $mainwrapper = $('#modal360');
3113        var originalImg = $('#myImg');
3114        var originalImgSrc = originalImg.attr('src');
3115        var $conteiner =    $('#preload-imgs');
3116        var imgs = $(".img-container"); // the element that will be swipeable
3117        var $buttons = $('.threed-buttons-wrapper .btn');
3118
3119        var folderImg = '';
3120
3121        /*if((typeof NB_METRIC_DATA !== "undefined")){
3122                folderImg = NB_METRIC_DATA.productCode;
3123            }*/
3124
3125        var num = $mainwrapper.data('has3d'); // the total number of images
3126        var imgchange = 360/parseInt(num);
3127        imgchange = parseInt(imgchange);
3128        if(num === 'undefined' || typeof(num)==='undefined' ) return;
3129
3130        //var imgname = folderImg+'-';
3131        var imgExt = '.'+originalImgSrc.split('.').pop();
3132
3133
3134        var imgname = originalImgSrc.split('/').pop();
3135
3136        imgname = imgname.split('.').shift();
3137
3138        //var imgname = originalImgSrc.split('.').shift().split('/').pop();
3139
3140        imgname = imgname.split('-').shift()+'-';
3141
3142        //var imgpath = nb_site_url+'/files/images/360view/'+folderImg+'/';
3143        var imgpath = originalImg.attr('src').split(imgname).shift();
3144
3145        if(num <= 0) return;
3146        //if(!folderImg) return;
3147
3148
3149        if(!$conteiner.length) return;
3150        // Preload all the images into hidden div
3151        if(galery3dImgType == 'product1'){
3152            for (var i=0 ; i<num ; i++) {
3153                var img = document.createElement('img')
3154                img.src = imgpath+imgname+i+'.jpg';
3155                img.setAttribute("data-no", i);
3156                //img.attr('data-number',i);
3157
3158                $conteiner[0].appendChild(img);
3159                $conteiner.children().addClass('hidden');
3160            }
3161        }
3162        num = num-1;//smanjujemo za jedan jer krece od 0
3163
3164        var swipeOptions=
3165            {
3166                triggerOnTouchEnd : true,
3167                swipeStatus : swipeStatus,
3168                allowPageScroll:"vertical",
3169                threshold:75
3170            }
3171        imgs.swipe( swipeOptions );
3172
3173        function swipeStatus(event, phase, direction, distance) {
3174            var duration = 0;
3175            if(direction == "left") {
3176                changeImg(distance);
3177            }
3178            else if (direction == "right") {
3179                changeImgR(-distance);
3180            }
3181        }
3182        function changeImg (imgNum,button) {
3183
3184            // divide by 8 (or any number) to spread
3185            // it out so it doesn't load new img
3186            // every single px of swipe distance
3187            if(!button){
3188                imgNum = Math.floor(imgNum/imgchange);//57/8
3189
3190                if (imgNum < 1) {
3191                    imgNum += num;
3192                }
3193                if (imgNum > num) {
3194                    imgNum -= num;
3195                }
3196            }
3197            var numR= +num + +1;
3198
3199            //imgNum-=1;
3200
3201            if(imgNum < 0){
3202                numR+=imgNum;
3203                imgNum=numR;
3204            }
3205            //imgNum+=1;
3206
3207
3208            // change the image src
3209            // document.getElementById("myImg").src=imgpath+imgname+imgNum+".jpg";
3210
3211            //originalImg.attr('src',imgpath+imgname+imgNum+imgExt);
3212            if($('.img360').hasClass('hidden')){
3213            }else{
3214                $('.img360').addClass('hidden');
3215            }
3216
3217            $('img[data-no]').addClass('hidden');
3218            $('img[data-no]').removeClass('active');
3219            $('img[data-no="'+imgNum+'"]').removeClass('hidden');
3220            $('img[data-no="'+imgNum+'"]').addClass('active');
3221
3222        }
3223
3224        function changeImgR (imgNum,button) {
3225
3226            // divide by 8 (or any number) to spread
3227            // it out so it doesn't load new img
3228            // every single px of swipe distance
3229            if(!button){
3230                imgNum = Math.floor(imgNum/imgchange);//57/8
3231                var num2 = -Math.abs(num);
3232                if (imgNum > num2) {
3233                    imgNum += num;
3234                }
3235                if (imgNum <= num2) {
3236                    imgNum += num*2;
3237                }
3238            }
3239
3240            // change the image src
3241            //document.getElementById("myImg").src=imgpath+imgname+imgNum+".jpg";
3242
3243            //originalImg.attr('src',imgpath+imgname+imgNum+imgExt);
3244            $('img[data-no]').addClass('hidden');
3245            $('img[data-no]').removeClass('active');
3246            $('img[data-no="'+imgNum+'"]').removeClass('hidden');
3247            $('img[data-no="'+imgNum+'"]').addClass('active');
3248        }
3249
3250        var counter = 0;
3251        var direction;
3252        var status;
3253        var current,currentNew;
3254        var icon;
3255        var end,endNew,endNewSrc;
3256
3257        $buttons.click(function(){
3258
3259            end = $('#myImg').attr('src');
3260            endNew = $('#preload-imgs > img.active');
3261            endNewSrc = $('#preload-imgs > img.active').attr('src');
3262
3263            if(galery3dImgType == 'product1'){
3264                if(endNew.length === 0){
3265                    currentNew = end.split('/').pop().split('-').pop().split('.').shift()
3266                }else{
3267                    currentNew = endNewSrc.split('/').pop().split('-').pop().split('.').shift();
3268                }
3269                current = end.split('/').pop().split('-').pop().split('.').shift();
3270            } else {
3271                currentNew = 0
3272                if(endNew.length !== 0){
3273                    currentNew = endNew.data('no');
3274                }
3275
3276            }
3277            console.log(currentNew);
3278
3279
3280            // counter = parseInt(current);
3281            counter = parseInt(currentNew);
3282            direction = $(this).data('direction');
3283            status = $(this).attr('data-status');
3284            icon = $(this).attr('class');
3285
3286            if(direction==='play'){
3287                if(status==='false'){
3288                    $(this).find('i').addClass('fa-pause').removeClass('fa-play');
3289
3290                    $(this).attr('data-status','true');
3291                    this.iid = setInterval(function() {
3292
3293                        if(Math.abs(counter) > num){
3294                            counter = 0;
3295                        }
3296                        changeImg(counter,true);
3297                        counter+=1;
3298                    }, 110);
3299                }else{
3300                    $(this).attr('data-status','false');
3301                    $(this).find('i').addClass('fa-play').removeClass('fa-pause');
3302                    this.iid && clearInterval(this.iid);
3303                }
3304
3305
3306            }
3307            if(direction==='left'){
3308                counter-=1;
3309            }
3310            if(direction==='right'){
3311                counter+=1;
3312            }
3313            if(Math.abs(counter) > num){
3314                counter = 0;
3315            }
3316            changeImg(counter,true);
3317
3318        });
3319
3320
3321        $('.threed-icon-wrapper,.caption-360-new').click(function(){
3322            //var $modal = $("#modal360");
3323            var $modalId = $(this).data('activemodal');
3324            if(!$modalId){
3325                $modal = $("#modal360");
3326            }else{
3327                $modal=$($modalId);
3328            }
3329
3330            $modal.modal({backdrop: 'static', keyboard: false});//ne zatvara se klikom van modala
3331        });
3332        $mainwrapper.on("hidden", function() {  // remove the actual elements from the DOM when fully hidden
3333            $mainwrapper.remove();
3334        });
3335    };
3336
3337    var initSliderOnCart = function(reinit){
3338        if($('.product-list-cart').length > 0){
3339            //init product slider in cart
3340            var productInCartLisrElementId = '.product-list-cart > .items-wrapper';
3341            var productInCartLisrOptions   = {dots: true, slidesToShow: 4,
3342                responsive: [
3343                    {breakpoint: 768,  settings: { slidesToShow: 3}},
3344                    {breakpoint: 480,  settings: { slidesToShow: 2}}
3345                ]};
3346
3347            if(reinit){
3348                $(productInCartLisrElementId).slick('unslick');
3349            }
3350            initSlider(productInCartLisrElementId, productInCartLisrOptions);
3351        };
3352    };
3353
3354    var showMoreItemTabImg =function () {
3355        $('.items-tabs.lists-tabs .product-lists-tab .read-more-btn').click(function () {
3356            $('.items-tabs.lists-tabs .product-lists-tab .read-more-btn span').each(function () {
3357                $(this).toggleClass('hidden')
3358            });
3359            $('.items-tabs.lists-tabs .product-lists-tab .item-img .img-wrapper').toggleClass('hidden');
3360        });
3361
3362        $('.items-tabs.lists-tabs ul.items-wrapper .item a').click(function () {
3363            var tabId = $(this).attr('href');
3364            tabId = tabId.split('#tab_');
3365            tabId = tabId[1];
3366            $('.items-tabs.lists-tabs .product-list-wrapper').each(function () {
3367                $(this).addClass('hidden');
3368            });
3369            $('.items-tabs.lists-tabs #product-list-id-'+tabId).removeClass('hidden');
3370        });
3371
3372        $('.items-tabs.lists-tabs .product-list-wrapper > .container .product-item .select-product-wrapper').click(function () {
3373            $('.items-tabs.lists-tabs .product-list-wrapper > .container .product-item .select-product-wrapper').removeClass('selected');
3374            $(this).addClass('selected');
3375            $('.items-tabs.lists-tabs .buy-btn-wrapper > .container .btn').removeClass('disabled');
3376        });
3377
3378        $('.items-tabs.lists-tabs .buy-btn-wrapper > .container .btn').click(function(){
3379            $('.items-tabs.lists-tabs .product-list-wrapper > .container .select-product-wrapper.selected .buyButtonOnLists').click();
3380            setTimeout(function () {
3381                $('.items-tabs.lists-tabs > .tab-content > .tab-pane.active .product-lists-tab .product-item .buyButtonOnLists').click();
3382            }, 400);
3383            setTimeout(function () {
3384                window.location.href = $('.items-tabs.lists-tabs .buy-btn-wrapper > .container .btn').data('cart-permalink');
3385            }, 800);
3386        });
3387    };
3388
3389    var mobileSideCartDinamicHeight = function(){
3390        if($(window).width() < 767) {
3391            var calcMiniCartHeight = function () {
3392                $('.header-cart .header-cart-item.header-cart-item-side .header-cart-toggle').css({height: window.innerHeight});
3393            };
3394            calcMiniCartHeight();
3395
3396            $(window).on("resize", function () {
3397                calcMiniCartHeight();
3398            });
3399        }
3400    };
3401
3402    var textFirstLabel = function () {
3403        $('.mobile-select-attrclass').each(function () {
3404            var selectedFilterArray = [];
3405            $(this).find('label').each(function () {
3406                if($(this).hasClass('checked-label')){
3407                    selectedFilterArray.push($(this).text());
3408                }
3409            });
3410            if (selectedFilterArray.length !== 0) {
3411                $(this).find('li.select-all label').text(selectedFilterArray.toString());
3412            }
3413        });
3414    };
3415
3416    var filterCheeckToSelect = function(){
3417        if($(window).width() < 767) {
3418            $('.mobile-select-attrclass').each(function () {
3419                $(this).find('ul.items-wrapper').prepend("<li class='item form-group-checklabel select-all'><label>Izaberi</label><i class=\"fa fa-angle-down\" aria-hidden=\"true\"></i></li>");
3420                $(this).find('ul.items-wrapper >
3420 li.select-all').click(function () {
3421                    $(this).parent().toggleClass('active');
3422                });
3423            });
3424
3425            textFirstLabel();
3426        }
3427    };
3428    var getUrlParameter = function getUrlParameter(sParam) {
3429        var sPageURL = window.location.search.substring(1),
3430            sURLVariables = sPageURL.split('&');
3431
3432        for (var i = 0; i < sURLVariables.length; i++) {
3433            var sParameterName = sURLVariables[i].split('=');
3434
3435            if (sParameterName[0] === sParam) {
3436                try {
3437                    return sParameterName[1]
3438                        ? decodeURIComponent(sParameterName[1].replace(/\+/g, ' '))
3439                        : true;
3440                } catch (e) {
3441                    return null;
3442                }
3443            }
3444        }
3445    };
3446
3447    var removeUiRole = function(){
3448        $("[role=log].ui-helper-hidden-accessible").remove();
3449    };
3450
3451    /* Item description with popup active product description */
3452    var activProductInPopupItem = function(){
3453        $('.product-description-with-popup .container > .row .text-wrapper .open-item-popup,.item-subitem-slider .description-slider .item .open-item-popup').click(function () {
3454            var productId = $(this).find('a').data('product-id');
3455            setTimeout(function () {
3456                $('.product-description-popup-wrapper .items-wrapper.product .item').each(function () {
3457                    if(typeof $(this).data('productid') != 'undefined' && $(this).data('productid') == productId){
3458                        $(this).addClass('selected');
3459                    } else if(typeof $(this).data('productid') != 'undefined' && $(this).data('productid') != productId) {
3460                        $(this).removeClass('selected');
3461                    }
3462                });
3463                $('.product-description-popup-wrapper .text-wrapper.product .item.product-item').each(function () {
3464                    if(typeof $(this).data('productid') != 'undefined' && $(this).data('productid') == productId){
3465                        $(this).removeClass('hidden');
3466                    } else if(typeof $(this).data('productid') != 'undefined' && $(this).data('productid') != productId) {
3467                        $(this).addClass('hidden');
3468                    }
3469                });
3470            }, 50);
3471        });
3472
3473        $('.product-description-popup-wrapper .items-wrapper.product .item').click(function (e) {
3474
3475            var productId = $(this).data('productid');
3476            $('.product-description-popup-wrapper .items-wrapper.product .item').each(function () {
3477                $(this).removeClass('selected');
3478            });
3479            $(this).addClass('selected');
3480            $('.product-description-popup-wrapper .text-wrapper.product .item.product-item').each(function () {
3481                if(typeof $(this).data('productid') != 'undefined' && $(this).data('productid') == productId){
3482                    $(this).removeClass('hidden');
3483                } else if(typeof $(this).data('productid') != 'undefined' && $(this).data('productid') != productId){
3484                    $(this).addClass('hidden');
3485                }
3486            });
3487        });
3488
3489        $('.product-description-popup-wrapper .items-wrapper.product .item .options-wrapper.product-sizes-v3 .product-sizes').click(function () {
3490            setTimeout(function () {
3491                $('.product-description-popup-wrapper .text-wrapper.product .item.product-item').each(function () {
3492                    //$(this).addClass('hidden');
3493                });
3494            }, 51);
3495        });
3496
3497        $('.product-description-popup-wrapper .text-wrapper.product .close-product-description').click(function () {
3498            $(this).parent().addClass('hidden')
3499        })
3500    };
3501
3502    var inportProductListOnClick = function () {
3503
3504    };
3505
3506    var exitMouseModal = function (){
3507
3508        var cookieValue = readCookie('exitslidermodal');
3509        var ageRestriction = $(".age-restriction-active");
3510
3511        var openExitModal = function(){
3512            if(cookieValue != 1 && ageRestriction.length === 0) {
3513                if($('.exit-modal-slider').hasClass('newsleter')){
3514                    $("#onload_modal").modal('show');
3515                } else {
3516                    $("#exit-slider-modal").modal('show');
3517                }
3518            }
3519            if($('.exit-modal-slider').hasClass('exit_slider_question-sli
3519der')){
3520                var btnWrapper = $('.exit-modal-slider .modal-body .item .btn-wrapper');
3521                btnWrapper.find('.btn-confirm').click(function () {
3522                    createCookie('exitslidermodal', "1", '365');
3523                });
3524                btnWrapper.find('.btn-cancel').click(function () {
3525                    createCookie('exitslidermodal', "1", btnWrapper.data('day-repeat'));
3526                    $('#exit-slider-modal .close').click();
3527                });
3528                cookieValue = 1;
3529            } else {
3530                createCookie('exitslidermodal', "1", 1);
3531                cookieValue = 1;
3532            }
3533            $('.exit-modal-slider .slider .modal-body').nbHandleSlider({slidesToShow: 1, arrows: true, dots: false});
3534        };
3535
3536        $(document).mouseleave(function () {
3537            openExitModal();
3538        });
3539    };
3540
3541    var openModalAfterTime = function(){
3542        function openCartModalSlider(){
3543
3544            function ShowModalFn(){
3545                $("#cart-duration-modal").modal('show');
3546                createCookie('cart-duration-modal', '',0);
3547            }
3548
3549            var t;
3550
3551            if($("#cart-duration-modal").length > 0) {
3552                var initTimeDelay = 2700000;
3553                console.log(initTimeDelay);
3554
3555                if (!readCookie('cart-duration-modal')) {
3556                    console.log('ne postoji');
3557                }else{
3558                    var time = Date.now();
3559                    var cookieCreationTime = readCookie('cart-duration-modal');
3560                    var timeout = initTimeDelay - (time - cookieCreationTime);
3561                    t = setTimeout(ShowModalFn,timeout)
3562                }
3563
3564                window.addEventListener('cartButtonClick', function (e) {
3565                    if (!readCookie('cart-duration-modal')) {
3566                        cookieCreationTime = Date.now();
3567                        createCookie('cart-duration-modal', cookieCreationTime);
3568                        t = setTimeout(ShowModalFn,initTimeDelay)
3569                    }
3570                });
3571
3572                window.addEventListener('initCartOnePage', function (e) {
3573
3574                    if($('.header-cart-item').length === 0){
3575                        clearTimeout(t);
3576                    }
3577
3578                });
3579
3580            }
3581
3582        };
3583
3584        openCartModalSlider();
3585    };
3586
3587    var addMoreThenFiveProductToFavorite = function(){
3588        function openFavoriteModalSlider(){
3589
3590            function ShowModalFnFav(){
3591                $("#add-to-favorite-modal").modal('show');
3592            }
3593            if($("#add-to-favorite-modal").length > 0) {
3594
3595                if (!readCookie('add-to-favorite-modal')) {
3596                    if (parseInt($('.favorite-header-total').text()) === 5) {
3597                        ShowModalFnFav();
3598                        createCookie('add-to-favorite-modal', '1', 365);
3599
3600                    }
3601                } else {
3602                    console.log($('.favorite-header-total').text());
3603                }
3604
3605                window.addEventListener('addToFavoritesProduct', function (e) {
3606                    if(parseInt($('.favorite-header-total').text()) === 4) {
3607                        ShowModalFnFav();
3608                        console.log($('.favorite-header-total').text());
3609
3610                    }else{
3611                        console.log($('.favorite-header-total').text());
3612                    }
3613
3614                });
3615
3616                window.addEventListener('removeFavoritesProduct', function (e){
3617                    if(parseInt($('.favorite-header-total').text()) === 6) {
3618                        ShowModalFnFav();
3619                        console.log($('.favorite-header-total').text());
3620                    }else{
3621                        console.log($('.favorite-header-total').text());
3622                    }
3623                });
3624
3625
3626            }
3627        };
3628
3629        openFavoriteModalSlider();
3630    };
3631
3632    var redirectToSomePageNewLang = function (forwardedLangItems = false) {
3633
3634        let langItems = $('.lang-from-slider .dropdown-wrapper a');
3635
3636        if(forwardedLangItems) {
3637            langItems = forwardedLangItems;
3638        }
3639
3640        if(typeof langItems === "undefined" || langItems.length === 0) return;
3641
3642        langItems.each(function () {
3643            if(typeof $(this).data('redirect-lang') !== "undefined" && $(this).data('redirect-lang') && $(this).data('redirect-lang') != ''){
3644                $(this).attr('href', '');
3645                var redirectLang = $(this).data('redirect-lang');
3646                $(this).click(function (e) {
3647                    e.preventDefault()
3648                    let otherParams = location.search;
3649                    redirectToSameObjectForLang(redirectLang,otherParams);
3650                })
3651            }
3652        });
3653    };
3654
3655    var travelBookingForm = function(){
3656        var $form1 = $('.booking-travel-form');
3657        var $returndate = $("input[name='return_date']");
3658        function isReturnChecked(el){
3659            if($(el).is(':checked')){
3660
3661                if (el.value === '1') {
3662                    $('.return-fields').hide();
3663                    $('.return-only').show();
3664                    $returndate.attr('required', false);
3665                    $returndate.val('');
3666                    $('.background-image').removeClass('more-hight');
3667                }else{
3668                    setTimeout(function () {
3669                        $('.return-fields').show();
3670                    }, 50);
3671
3672                    if($('#return_only').is(":checked")) {
3673                        $('#return_only').click();
3674                    }
3675                    $('.return-only').hide();
3676                    $returndate.attr('required', true);
3677                    $('.background-image').addClass('more-hight');
3678                    $('#return_pickup_location').parents('.styled-select').removeClass('validation-error');
3679                    $('#return_dropoff_location').parents('.styled-select').removeClass('validation-error');
3680                    $('#return_pickup_location').attr('required',false);
3681                    $('#return_pickup_location').removeAttr('data-validation-id');
3682                    $('#return_dropoff_location').attr('required',false);
3683                    $('#return_dropoff_location').removeAttr('data-validation-id');
3684                    //$p_location_return.parents('.styled-select').removeClass('validation-error');
3685                }
3686                $(el).closest('.item-choice').addClass('active');
3687            }
3688        }
3689
3690        function resetFormBookingTravelForm(returnOnlyReset) {
3691
3692            if(returnOnlyReset){
3693                $('#return_only').attr("disabled", false);
3694            }
3695
3696            $('#pickup_location').val("");
3697            $('#dropof_location').val("");
3698            $('#date_arrive').val("");
3699            $('#adults').val("");
3700            $('#children').val("");
3701            $('#babys').val("");
3702            $('#arrival_flight_number').val("");
3703            $('#arrival_flight_time').val("");
3704            //$('#country_departure').val("");
3705            $('#return_pickup_location').val("");
3706            $('#return_dropoff_location').val("");
3707            $('#return_date').val("");
3708            $('#return_arrival_flight_number').val("");
3709            $('#return_arrival_flight_time').val("");
3710        }
3711
3712        var checkReturnOnly = function(){
3713            if($('#return_only').is(":checked")) {
3714                $('.people-select-wrapper').insertAfter('.return-date-wrapper');
3715                $('.return-fields').show();
3716                $('.disable-on-return').each(function () {
3717                    $(this).hide();
3718                });
3719                $('#return_pickup_location,#return_dropoff_location').attr("disabled", false);
3720                $('.disable-on-return input,.disable-on-return select').each(function () {
3721                    $(this).attr("disabled", true);
3722                    $(this).attr("required", false);
3723                });
3724            }else{
3725                $('.people-select-wrapper').insertAfter('.start-date-wrapper');
3726                $('.return-fields').hide();
3727                $('.disable-on-return').each(function () {
3728                    $(this).show();
3729                });
3730                $('#return_pickup_location,#return_dropoff_location').attr("disabled", true);
3731                $('.disable-on-return input,.disable-on-return select').each(function () {
3732                    $(this).attr("disabled", false);
3733                    $(this).attr("required", true);
3734                });
3735            }
3736            resetFormBookingTravelForm(false);
3737        };
3738
3739        $( document ).ready(function() {
3740            checkReturnOnly();
3741        });
3742
3743        $('#return_only').change(function() {
3744            checkReturnOnly();
3745        });
3746
3747        $form1.find("input[name='travel_choice']").each(function(){
3748            isReturnChecked(this);
3749        });
3750
3751        $form1.find("input[name='travel_choice']").change(function(){
3752            if($('#return_only').is(":checked")) {
3753                $('#return_only').click();
3754            }
3755            $form1.find("input[name='travel_choice']").closest('.item-choice').removeClass('active');
3756            $(this).closest('.item-choice').removeClass('active');
3757            isReturnChecked(this);
3758            resetFormBookingTravelForm(true);
3759        });
3760
3761
3762        var $p_location,$d_locationo,$p_location_return,$d_locationo_return;
3763
3764        $d_locationo =  $form1.find("select[name='dropof_location']");
3765        $d_locationo_return = $form1.find("select[name='return_pickup_location']");
3766        $p_location =  $form1.find("select[name='pickup_location']");
3767        $p_location_return = $form1.find("select[name='return_dropoff_location']");
3768        $d_locationo_return.attr("disabled", true);
3769        $p_location_return.attr("disabled", true);
3770        $d_locationo.change(function(){
3771            $d_locationo_return.val($(this).val());
3772        });
3773        $p_location.change(function(){
3774            $p_location_return.val($(this).val());
3775        });
3776
3777        var permalink = $form1.attr('action');
3778
3779        $('.booking-travel-form button').click(function(e){
3780            //e.preventDefault();
3781
3782            var formdata = $(".booking-travel-form").serializeArray();
3783            var data = {};
3784            var quantity,travelreturn='',quantitystring = '',plus, pickupLocation, dropofLocation;
3785
3786            $(formdata).each(function(index, obj){
3787                data[obj.name] = obj.value;
3788            });
3789
3790            pickupLocation = data.pickup_location;
3791            dropofLocation = data.dropof_location;
3792
3793            quantity = +data.adults+ +data.children+ +data.babys;
3794            travelreturn = '/one_way';
3795
3796            if(data.travel_choice == '2'){
3797                travelreturn += '+return';
3798            }
3799            if(data.travel_choice == '1' && data.return_only == '1'){
3800                travelreturn = '/return';
3801
3802                pickupLocation = data.return_pickup_location;
3803                dropofLocation = data.return_dropoff_location;
3804            }
3805
3806            /*for(var i=1; i<=quantity;i++){
3807                    plus = '+';
3808                    if(quantity === i){
3809                        plus = '';
3810                    }
3811                    quantitystring+='k'+i+plus;
3812                }*/
3813            quantitystring = 'k'+quantity;
3814
3815            data.product_permalink = permalink+'/'+pickupLocation+'/'+dropofLocation+travelreturn+'/'+quantitystring;
3816            $form1.attr('action', data.product_permalink);
3817            saveInSesionBookingTravelForm($form1, data.product_permalink);
3818
3819            //window.location.href = 'http://'+data.product_permalink;
3820        });
3821
3822        var saveInSesionBookingTravelForm = function($form1, $permalink){
3823
3824            var $d_locationo_return,$p_location_return;
3825
3826            $d_locationo_return = $form1.find("select[name='return_pickup_location']");
3827            $p_location_return = $form1.find("select[name='return_dropoff_location']");
3828
3829            $d_locationo_return.attr("disabled", false);
3830            $p_location_return.attr("disabled", false);
3831
3832            var data = $form1.serializeObject();
3833
3834            $.ajax({
3835                type: "POST",
3836                url: nb_active_page_url,
3837                data: {
3838                    nbAjax: 1,
3839                    ajax: 'yes',
3840                    task: 'saveorderadditionaldatainsession',
3841                    dataForm : data
3842                },
3843                dataType: 'json',
3844                success: function(ret){
3845                    if(ret.flag){
3846                        if($permalink == wwwroot_site+'/transfers'){
3847
3848                        }else{
3849                            $form1.attr('action', $permalink);
3850                            setTimeout(function () {
3851                                $form1.submit();
3852                            }, 50);
3853                        }
3854                    }
3855                }
3856            });
3857            if(!$('#return_only').is(":checked")) {
3858                $d_locationo_return.attr("disabled", true);
3859                $p_location_return.attr("disabled", true);
3860                $d_locationo_return.attr("required", false);
3861                $p_location_return.attr("required", false);
3862            }else{
3863                $d_locationo_return.attr("required", "");
3864                $p_location_return.attr("required", "");
3865            }
3866
3867        };
3868    };
3869
3870    var mainImageMapDescription = function () {
3871
3872        /* Tlocrt */
3873        $('.image-map-area .mapImage').each(function () {
3874            var imageMapWraper = $(this).closest('.image-map-area'),
3875                borderColor = "3973b5";
3876            if(imageMapWraper.data('border-color') && imageMapWraper.data('border-color') != ''){
3877                borderColor = imageMapWraper.data('border-color');
3878            }
3879            let dataimageMapWraper = imageMapWraper.data();
3880            let fillColor = dataimageMapWraper.fillcolor;
3881            let strokeColor = dataimageMapWraper.strokecolor;
3882            if(!fillColor){
3883                fillColor = '000000';
3884            }
3885            if(!strokeColor){
3886                if(borderColor){
3887                    strokeColor = borderColor
3888                }else{
3889                    strokeColor = '000000';
3890                }
3891
3892            }
3893
3894            if(borderColor != 'noborder'){
3895                $(this).maphilight({
3896                    fill: true,
3897                    fillColor: fillColor,
3898                    fillOpacity: 0.2,
3899                    stroke: true,
3900                    strokeColor: strokeColor,
3901                    strokeOpacity: 1,
3902                    strokeWidth: 1,
3903                    fade: true,
3904                    alwaysOn: false,
3905                    neverOn: false,
3906                    groupBy: false,
3907                    wrapClass: true,
3908                    shadow: false,
3909                    shadowX: 0,
3910                    shadowY: 0,
3911                    shadowRadius: 6,
3912                    shadowColor: '000000',
3913                    shadowOpacity: 0,
3914                    shadowPosition: 'outside',
3915                    shadowFrom: false
3916                });
3917            }
3918        });
3919
3920        $('.image-map-area .image-wrapper .item-tlocrt.not-active').each(function () {
3921            $(this).removeClass('not-active').addClass('hidden');
3922        });
3923
3924        var fun = function(){
3925            var itemId = $('.image-map-area .sidebar-menu ul.tabs li.active').data('item-id');
3926            $('.image-map-area .image-wrapper .item-tlocrt').each(function () {
3927                if($(this).data('tab-id') == itemId){
3928                    var tabItem = $(this);
3929                    tabItem.removeClass('hidden');
3930                    tabItem.find('map').imageMapResize();
3931                    tabItem.find('mapImage').maphilight();
3932                    setTimeout(function () {
3933                        tabItem.find('map').imageMapResize();
3934                        tabItem.find('mapImage').maphilight();
3935                    }, 500);
3936                } else {
3937                    $(this).addClass('hidden');
3938                }
3939            });
3940        };
3941
3942        fun();
3943
3944        $('.image-map-area .sidebar-menu ul.tabs li').click(function () {
3945            var thisItem = $(this);
3946            var itemId = $(this).data('item-id');
3947            $('.image-map-area .sidebar-menu ul.tabs li').each(function () {
3948                $(this).removeClass('active');
3949            });
3950            thisItem.addClass('active');
3951            $('.image-map-area .image-wrapper .item-tlocrt').each(function () {
3952                if($(this).data('tab-id') == itemId){
3953                    var tabItem = $(this);
3954                    tabItem.removeClass('hidden');
3955                    tabItem.find('map').imageMapResize();
3956                    tabItem.find('mapImage').maphilight();
3957                    setTimeout(function () {
3958                        tabItem.find('map').imageMapResize();
3959                        tabItem.find('mapImage').maphilight();
3960                    }, 500);
3961                } else {
3962                    $(this).addClass('hidden');
3963                }
3964            });
3965        });
3966
3967        /* Product slider map */
3968        $('.slider.product-main .mapImage').each(function () {
3969            $(this).maphilight({
3970                alwaysOn: true,
3971                strokeWidth: 0,
3972                strokeColor: "F3712A",
3973                fillColor: "574747",
3974                fillOpacity: 0.2,
3975                singleSelect: true
3976            });
3977        });
3978
3979        $(".item map area").mouseenter(function() {
3980            $('.products-detail-wrapper .product-image-wrapper .product-item-overlay').addClass('map-hovered');
3981            var areaClass = $(this).attr('class');
3982            areaClass = areaClass.split('position_');
3983            areaClass = areaClass[1];
3984            $('.map-description > .map-item_'+areaClass).addClass('hovered');
3985        }).mouseleave(function() {
3986            $('.map-description > span').each(function () {
3987                $(this).removeClass('hovered');
3988            });
3989            $('.products-detail-wrapper .product-image-wrapper .product-item-overlay').removeClass('map-hovered');
3990        });
3991    };
3992
3993    var popupWithSliderItems = function () {
3994        $('.popup-with-slider-items a.item').click(function () {
3995            var sliderId = $(this).data('src'),
3996                slider = $(sliderId+' .popup-item-slider .slider-init'),
3997                sliderOptions = {
3998                    dots: true,
3999                    speed: 300,
4000                    slidesToShow: 1,
4001                    slidesToScroll: 1,
4002                    autoplay: true,
4003                    autoplaySpeed: 5000,
4004                    arrows: false,
4005                    pauseOnHover: false,
4006                    pauseOnDotsHover: false,
4007                    fade: true,
4008                    customPaging : function(slider, i) {
4009                        var thumb = $(slider.$slides[i]).data('description');
4010                        return '<span class="icons-wrapper">' +
4011                            '<i class="fa fa-circle-o-notch fa-spin fa-fw margin-bottom"></i> ' +
4012                            '</span>' +
4013                            '<span class="slide-desc">'+thumb+'</span>';
4014                    }
4015                };
4016
4017            //slider.slick('unslick');
4018            setTimeout(function () {
4019                initSlider(slider, sliderOptions);
4020            }, 50);
4021
4022            slider.on('afterChange', function(event, slick, currentSlide) {
4023                slider.slick('slickPause');
4024                var videoId = $(this).find('.slick-current').data('video-id');
4025                if(videoId){
4026                    $.fancybox.close();
4027                    $('.popup-video').click();
4028                }
4029            });
4030        });
4031    };
4032    /*      var initCustomEvent = function () {
4033            if ( typeof window.CustomEvent === "function" ) return false;
4034
4035            function CustomEvent ( event, params ) {
4036                params = params || { bubbles: false, cancelable: false, detail: null };
4037                var evt = document.createEvent( 'CustomEvent' );
4038                evt.initCustomEvent( event, params.bubbles, params.cancelable, params.detail );
4039                return evt;
4040            }
4041
4042            window.CustomEvent = CustomEvent;
4043        };*/
4044
4045    var CustomEventTrigger = function(EventName,obj){
4046
4047        /*     var evt = new CustomEvent(EventName, { detail: obj || true });
4048            window.dispatchEvent(evt);*/
4049        var evt;
4050        if (navigator.userAgent.indexOf('MSIE') !== -1 || navigator.appVersion.indexOf('Trident/') > 0) {
4051            evt = document.createEvent('Event');
4052            evt.initEvent(EventName, false, true);
4053        } else {
4054            evt = new CustomEvent(EventName, { detail: obj });
4055            window.dispatchEvent(evt);
4056        }
4057
4058
4059        /*      if(navigator.userAgent.indexOf('MSIE') !== -1 || navigator.appVersion.indexOf('Trident/') > 0){
4060                var event;
4061                if (typeof(Event) === 'function') {
4062                    event = new Event(EventName);
4063                } else { //IS IE
4064                    event = document.createEvent('Event');
4065                    event.initEvent(EventName, false, true);
4066                }
4067                //return event;
4068                window.dispatchEvent(event)
4069            }else{
4070                //radi svuda osim na IE
4071                var evt = new CustomEvent(EventName, { detail: obj });
4072                window.dispatchEvent(evt);
4073            }*/
4074
4075    };
4076
4077    var searchProductFromListIntro = function(){
4078        $('.product-listing-intro .product-intro-input-search .btn-wrapper .btn-search').click(function () {
4079            loadProductForPage(0);
4080            var searchWord = $('.product-listing-intro .product-intro-input-search #intro_search').val();
4081            $('.product-listing-filters #search').val(searchWord);
4082            $('.product-listing-filters .btn-search').click();
4083        });
4084    };
4085
4086    var addInputtsToReclamationForm = function () {
4087        if('#product-input-wrapper'.length){
4088            $('#reclamation_additem').click(function () {
4089                var lastInputContent = $('#product-input-wrapper').data('item-nb');
4090                lastInputContent = (lastInputContent+1);
4091                var typeheadUrl = window.location+'?nbAjax=1&ajax=yes&task=search_products_reclamation&search=%QUERY';
4092                var inputContent = '<div class="row">' +
4093                    '<div class="col-xs-12 col-sm-3">\n' +
4094                    '                        <div class="form-group">\n' +
4095                    '                            <input type="text" name="reclamation_documentcode_'+lastInputContent+'" class="form-control reclamation-product-code-'+lastInputContent+' reclamation-product-code" data-typehead-url="'+typeheadUrl+'" value="" placeholder="">\n' +
4096                    '                        </div>\n' +
4097                    '                    </div>\n' +
4098                    '\n' +
4099                    '                    <div class="col-xs-12 col-sm-6">\n' +
4100                    '                        <div class="form-group">\n' +
4101                    '                            <input type="text" name="reclamation_documentname_'+lastInputContent+'" class="form-control reclamation-product-name" value="" placeholder="">\n' +
4102                    '                        </div>\n' +
4103                    '                    </div>\n' +
4104                    '\n' +
4105                    '                    <div class="col-xs-12 col-sm-3">\n' +
4106                    '                        <div class="form-group">\n' +
4107                    '                            <input type="text" name="reclamation_documentquantity_'+lastInputContent+'" class="form-control" value="" placeholder="">\n' +
4108                    '                        </div>\n' +
4109                    '                        </div>\n' +
4110                    '                    </div>';
4111                $('#product-input-wrapper .product-item-inputs').append(inputContent);
4112                $('#product-input-wrapper').data('item-nb', lastInputContent);
4113                $('#counter').val(lastInputContent);
4114                app.initTypeheadProductsReclamation('.reclamation-product-code-'+lastInputContent);
4115            });
4116        }
4117
4118    };
4119
4120    var getProductThumbColor = function () {
4121        $('.slider-init2 .slick-dots li' ).each(function () {
4122            var dotIndex = $(this).attr('aria-controls');
4123            var colorHex = '';
4124            dotIndex = dotIndex.split('navigation');
4125            dotIndex = dotIndex[1];
4126            $(this).parent().parent().find('.item-data').each(
4127                function () {
4128                    if($(this).attr('aria-describedby') == 'slick-slide'+dotIndex) {
4129                        colorHex = $(this).attr('data-color');
4130                    }
4131                }
4132            );
4133            $(this).find('button').css('background', colorHex);
4134        })
4135    };
4136
4137    //init product list slider
4138    var initSlimilarColorSlider = function () {
4139        var productListElementId = '.product-item > .slider-product-slider-grid',
4140            productListOptions   = {slidesToShow: 1,
4141                fade: true,
4142                dots: true,
4143                arrows: false,
4144                responsive: [
4145                    {breakpoint: 768,  settings: { slidesToShow: 1}},
4146                    {breakpoint: 480,  settings: { slidesToShow: 1}}
4147                ]};
4148        $('.slider .slider-init2').each(function () {
4149            initSlider(this, productListOptions);
4150            getProductThumbColor();
4151        });
4152
4153    };
4154
4155    var changeThemeStyle = function () {
4156        $('.change-theme-wrapper .item .color-wrapper').click(function () {
4157            $('.change-theme-wrapper .item').each(function () {
4158                $(this).removeClass('active');
4159            });
4160            $(this).parent().addClass('active');
4161            var themeName = $(this).parent().data('class-name');
4162            $('body').removeClass (function (index, className) {
4163                return (className.match (/(^|\s)bt-\S+/g) || []).join(' ');
4164            });
4165            $('body').addClass('bt-'+themeName);
4166            createCookie('selectedTheme', 'bt-'+themeName, (24*60*60*1000));
4167        });
4168
4169        $('.change-theme-wrapper i').click(function () {
4170            $('.change-theme-wrapper').toggleClass('active');
4171        });
4172    };
4173
4174    var fullSreenMenu = function(){
4175        if ($(".nav-main-fullscreen")[0]){
4176
4177            $('.open-fullscreen-menu').click(function () {
4178                $('.nav-main-fullscreen').addClass('active');
4179                $(this).addClass('hidden');
4180                $('body').addClass('open-fullscreeen-menu');
4181            });
4182
4183            $('.close-fullscreen-menu').click(function () {
4184                $('.nav-main-fullscreen').removeClass('active');
4185                $('.open-fullscreen-menu').removeClass('hidden');
4186                $('body').removeClass('open-fullscreeen-menu');
4187            });
4188
4189            $('.nav-main-fullscreen .nav > ul > li > a').click(function () {
4190                var parentLi = $(this).closest('li');
4191                if(parentLi.hasClass('active')){
4192                    parentLi.removeClass('active');
4193                } else {
4194                    $('.nav-main-fullscreen .nav > ul > li,.nav-main-fullscreen .nav > ul > li .sub-nav ul').each(function () {
4195                        $(this).removeClass('active');
4196                    });
4197                    parentLi.addClass('active');
4198                }
4199            });
4200
4201            $('.nav-main-fullscreen .nav > ul > li .sub-nav a').click(function () {
4202                var parentUl = $(this).parent().find('ul');
4203                if(parentUl.hasClass('active')){
4204                    parentUl.removeClass('active');
4205                } else {
4206                    $('.nav-main-fullscreen .nav > ul > li .sub-nav ul').each(function () {
4207                        $(this).removeClass('active');
4208                    });
4209                    parentUl.addClass('active');
4210                }
4211            });
4212
4213        }
4214    };
4215
4216    var enableCheckAndAddToCart = function(){
4217
4218        $('.action-item .item .check-enable').click(function () {
4219
4220            $('.action-item .item .check-enable').each(function () {
4221                $(this).removeAttr('disabled');
4222                $(this).parent().removeClass('disabled');
4223            });
4224
4225            var itemWrapper = $(this).closest('.action-item');
4226
4227            itemWrapper.nextAll().find('.check-enable').prop('checked', false).attr("disabled", true);
4228            itemWrapper.nextAll().find('.icheck-item').addClass('disabled');
4229
4230            if($(this).is(":checked")){
4231                itemWrapper.next().find('.check-enable').removeAttr('disabled');
4232                itemWrapper.next().find('.icheck-item').removeClass('disabled');
4233            }
4234
4235        });
4236
4237        $('.product-action-item .buy-all-products').click(function () {
4238            $('.action-item.checked-item').each(function () {
4239                $(this).removeClass('checked-item');
4240            });
4241            $('.action-item .item .check-enable').each(function () {
4242                if($(this).is(':checked')){
4243                    $(this).closest('.action-item').addClass('checked-item');
4244                }
4245            });
4246            $('.action-item.cekirano .item .icheck-item').each(function () {
4247                if($(this).hasClass('disabled')){
4248                    $(this).closest('.action-item').removeClass('checked-item');
4249                }
4250            });
4251
4252            $('.action-item.checked-item .buyButtonOnLists').each(function () {
4253                $(this).click();
4254            });
4255
4256        });
4257    };
4258
4259    var slimilarColorFlag = true;
4260    var slimilarColorInProductList = function (parent) {
4261        var parentClass = '';
4262        if (typeof parent  !== "undefined"){
4263            parentClass = parent+' ';
4264        }
4265        if(slimilarColorFlag){
4266            $(parentClass+'.similar-products-by-color-slider').each(function () {
4267                $(this).closest('.item').addClass('have-similar-product-slider');
4268            });
4269            var originalImg, productWrapper;
4270            $(parentClass+'.similar-products-by-color-slider .item img').mouseenter(function() {
4271                originalImg = $(this).closest('.product-item').find('.img-wrapper > a > img').attr('src');
4272                var img = $(this).attr('src');
4273                productWrapper = $(this).closest('.product-item');
4274                productWrapper.find('.img-wrapper > a > img').attr('src', img);
4275            }).mouseleave(function() {
4276                productWrapper.find('.img-wrapper > a > img').attr('src', originalImg);
4277            });
4278            slimilarColorFlag = false;
4279        }
4280        setTimeout(function(){
4281            slimilarColorFlag = true;
4282        }, 500);
4283    };
4284
4285    var closeMobileMenu = function () {
4286        if($(window).width() < 767) {
4287            $(".nav-main-wrapper").click(function (e) {
4288                if (e.target !== e.currentTarget) return;
4289                $('.nav-mobile-icon').click();
4290            });
4291        }
4292    };
4293
4294    var SizesTabsOnDetail = function(){
4295        var $buttons = $('.filters-choice');
4296        var $buttonsEach = $('.product-attributes li');
4297        var $sizes = $('.product-attributes li .original-size');
4298        var $sizes_eu = $('.product-attributes li .eur-size');
4299        var $sizes_cm = $('.product-attributes li .cm-size');
4300
4301        if($buttons.length > 0) {
4302            $buttonsEach.children().hide();
4303        }
4304
4305        if($buttons.length == 0) {/*$sizes.show();*/ return;}
4306
4307        if($buttons.length > 0){
4308            $buttons.each(function(){
4309                if($(this).hasClass('active')){
4310                    switch ($(this).data('filter')) {
4311                        case 'sizes':
4312                            $sizes.show();
4313                            break;
4314                        case 'sizes_eu':
4315                            $sizes_eu.show();
4316                            filterByMappedSize($buttonsEach,'filter_eu');
4317                            break;
4318                        case 'sizes_cm':
4319                            $sizes_cm.show();
4320                            filterByMappedSize($buttonsEach,'filter_cm');
4321                            break;
4322                        default:
4323                            $sizes.show();
4324                    }
4325                }
4326            });
4327        }else{
4328            $sizes.show();
4329        }
4330
4331        //$sizes.show();
4332        var filter = '';
4333
4334        function filterByMappedSize(element, filter){
4335            element.each(function(){
4336                if(!$(this).data(filter)){
4337                    $(this).hide();
4338                }
4339            });
4340        }
4341
4342        $buttons.click(function(){
4343            $buttons.removeClass('active');
4344            $(this).addClass('active');
4345            $buttonsEach.children().hide();
4346            $buttonsEach.show();
4347            filter = $(this).data('filter');
4348            switch (filter) {
4349                case 'sizes':
4350                    $sizes.show();
4351
4352                    break;
4353                case 'sizes_eu':
4354                    $sizes_eu.show();
4355                    filterByMappedSize($buttonsEach,'filter_eu');
4356                    break;
4357                case 'sizes_cm':
4358                    $sizes_cm.show();
4359                    filterByMappedSize($buttonsEach,'filter_cm');
4360
4361                    break;
4362                default:
4363                    $sizes.show();
4364            }
4365        });
4366    };
4367
4368    var newAdressTriger = function () {
4369        $('#cart_onepage_new_address_list_id_triger').change(function () {
4370            var selectedValue = $(this).val();
4371            $("#cart_onepage_new_address_list_id").val(selectedValue);
4372        });
4373
4374        $('#cart_onepage_new_address_list_id').change(function () {
4375            var selectedValue = $(this).val();
4376            $("#cart_onepage_new_address_list_id_triger").val(selectedValue);
4377        });
4378    };
4379
4380    var selectStoreProductSize = function(){
4381        var $productSizes = $('.product-attributes-wrapper li');
4382        var combId;
4383        $productSizes.each(function(){
4384            if($(this).hasClass('active')) {
4385                combId = $(this).data('productsize-combid');
4386                $('.sizes-wrapper .product-attributes li').each(function () {
4387                    if(typeof $(this).data("productsize-combid") !== "undefined" && $(this).data("productsize-combid") === combId &&
4388                        $('.sizes-wrapper .product-attributes li.active').data("productsize-combid") !== combId) {
4389                        $(this).click();
4390                    }
4391                })
4392            }
4393        });
4394        $productSizes.click(function(){
4395            combId = $(this).data('productsize-combid');
4396
4397            if ($(".productstate-product").closest(".item-no-tabs").length > 0 && typeof productStateInViewportCheck !== "undefined" && !productStateInViewportCheck) return;
4398
4399            $('.sizes-wrapper .product-attributes li').each(function () {
4400                var item = $(this);
4401                var itemCombId = item.data("productsize-combid");
4402                if(typeof itemCombId !== "undefined" && combId === itemCombId && !$(this).hasClass("active")
4403                        && $('.sizes-wrapper .product-attributes li.active').data("productsize-combid") !== combId){
4404                    item.click();
4405                }
4406            });
4407        });
4408    };
4409
4410
4411    var OpenAdminRibbon = function(){
4412        var $ribbon = $('.icon-admin-login');
4413        $ribbon.click(function(){
4414            $('.header-top-nav-autocomplete').toggleClass('inactive');
4415            $(this).toggleClass('fa-cog');
4416            $(this).toggleClass('fa-times');
4417        });
4418    };
4419
4420    var handleProductListImgSlider = function(){
4421        var $slider = $('.product-list-slider-with-items .product-list-slider-button-wrapper .product-list-img-slider');
4422
4423        $slider.each(function(){
4424            if(app.width() >= 1024) {
4425                $(this).handleSlider({
4426                    arrows: true,
4427                    dots: false,
4428                    items: 6,
4429                    autoplay: false,
4430                    fade: false,
4431                    slidesPerRow: 3,
4432                    rows: 2,
4433                    responsive: [
4434                        {
4435                            breakpoint: 1400,
4436                            settings: {
4437                                slidesPerRow: 3,
4438                                rows: 2
4439                            }
4440                        }
4441                    ]
4442                });
4443            } else {
4444                $(this).handleSlider({
4445                    arrows: true,
4446                    dots: false,
4447                    items: 3,
4448                    autoplay: false,
4449                    fade: false,
4450                    slidesPerRow: 3,
4451                    rows: 1,
4452                    responsive: [
4453                        {
4454                            breakpoint: 1400,
4455                            settings: {
4456                                slidesPerRow: 3,
4457                                rows: 1,
4458                                slidesToShow: 3,
4459                                slidesToScroll: 3
4460                            }
4461                        }
4462                    ]
4463                });
4464            }
4465
4466        });
4467    };
4468
4469
4470    var loginOnCart= function(){
4471        var loginInput = $('.login_form_cart #login_email');
4472        var loginPass = $('.login_form_cart #login_password');
4473        var button = $('.buttons-wrapper-customerss .btn');
4474
4475        loginInput.data('parsley-required', 'false');
4476        loginInput.prop("required", "false");
4477        loginInput.removeAttr('required');
4478
4479        loginPass.data('parsley-required', 'false');
4480        loginPass.prop("required", "false");
4481        loginPass.removeAttr('required');
4482
4483        button.click(function(){
4484            if($(this).data('element') === 'reg'){
4485                loginInput.data('parsley-required', 'true');
4486                loginInput.prop("required", "true");
4487
4488                loginPass.data('parsley-required', 'true');
4489                loginPass.prop("required", "true");
4490
4491            }else{
4492                loginInput.data('parsley-required', 'false');
4493                loginInput.prop("required", "false");
4494                loginInput.removeAttr('required');
4495
4496                loginPass.data('parsley-required', 'false');
4497                loginPass.prop("required", "false");
4498                loginPass.removeAttr('required');
4499
4500            }
4501        });
4502
4503    };
4504
4505    var NCXcartMobile = function() {
4506
4507        loginOnCart();
4508
4509        if(app.width() > 769) return;
4510        var $buttons = $('.buttons-wrapper-customerss .btn');
4511        $('.cart-step .reg').addClass('hidden');
4512        $('.cart-step .new').addClass('hidden');
4513        var elements = $('.eltoggle');
4514
4515        $buttons.click(function (e) {
4516            if($(this).hasClass('active')) return;
4517
4518            $('.no-reg').addClass('hidden');
4519            var $this = $(this);
4520            $buttons.toggleClass('active');
4521            var el = $(this).data('element');
4522
4523            elements.each(function(){
4524                $(this).addClass('hidden');
4525                if($(this).hasClass(el)){
4526                    $('.'+el).toggleClass('hidden');
4527                }
4528            });
4529
4530        });
4531        $('.shownoreg').click(function (e) {
4532            $('.no-reg').toggleClass('hidden');
4533            elements.addClass('hidden');
4534        });
4535    };
4536
4537    var gridSliderImageLoad = function () {
4538        var imgParth, eazyImg;
4539        if($(window).width() < 767) {
4540            eazyImg = $('.mobile-img img.grid-lazy,.main-img:not(.hide-main-img) img.grid-lazy,.double-img-grid-slider img.grid-lazy');
4541        } else {
4542            eazyImg = $('.main-img img.grid-lazy,.double-img-grid-slider img.grid-lazy');
4543        }
4544        eazyImg.each(function () {
4545            imgParth = $(this).data('original-img');
4546            if(isSafari){
4547                if(imgParth.endsWith(".webp")){
4548                    imgParth = imgParth.slice(0, -5);
4549                }
4550            }
4551            $(this).attr('src', imgParth);
4552        });
4553    };
4554
4555    var safariWebP = function () {
4556        if(isSafari){
4557            $('img').each(function () {
4558                imgParth = $(this).attr('src');
4559                if(imgParth && imgParth.endsWith(".webp")){
4560                    $(this).attr('src', imgParth.slice(0, -5));
4561                }
4562            });
4563        }
4564    };
4565
4566    /* Funkciju treba ili osposobiti ili obrisati, verovatno je trebalo da ima ulogu kao i getString php funkcija*/
4567    function getSTRING(string){
4568        return string;
4569    }
4570
4571    /* Items JS */
4572
4573    /* Parallax horizontal two img items */
4574    var parallaxHorizontalTwoImgItems = function(){
4575        var lastScrollTop = 0;
4576        var backgroundImages = $('.parallax-horizontal-two-img-items > img');
4577
4578        $(window).scroll(function(e){
4579            var st = $(this).scrollTop();
4580            var ah = $(this).height();
4581            backgroundImages.each(function(i){
4582                var img = $(this);
4583                var pos = img.position().top;
4584                var hei = img.height();
4585                var factor = 4;
4586                if(windowWidth() < 768){
4587                    factor = 1;
4588                }
4589                if ((st + ah) > pos){
4590                    var p = ((pos - st)/ah/factor);
4591                    if(p > 0){
4592                        p = 0;
4593                    } else if(p < -0.6){
4594                        p = -0.6;
4595                    }
4596                    if(img.hasClass('left-image')){
4597                        img.css('margin-left', (p*100)+'%');
4598                    } else {
4599                        img.css('margin-right', (p*100)+'%');
4600                    }
4601                }
4602            });
4603            lastScrollTop = st;
4604        });
4605
4606        $(window).scroll();
4607    };
4608
4609    /* Scaling scroll items */
4610    var scrollScaleItems = function(){
4611        var itemImage = $('.scroll-scale-items .container');
4612
4613        $(window).scroll(function(e){
4614            var st = $(this).scrollTop();
4615            var ah = $(this).height();
4616            itemImage.each(function(i){
4617                var img = $(this);
4618                var pos = img.offset().top;
4619
4620                if (pos < (st + ah)){
4621                    var p = (st + ah - pos);
4622
4623                    var opacityRes = (p / 1000);
4624                    var res = 6 - (p / 100);
4625                    if(res > 4){
4626                        res = 4;
4627                        opacityRes = 0;
4628                    } else if(res < 1) {
4629                        res = 1;
4630                        opacityRes = 1;
4631                    }
4632
4633                    img.find('.items-wrapper').css({'transform': 'scale('+(res)+')', 'opacity': opacityRes});
4634                }
4635
4636            });
4637        });
4638
4639        $(window).scroll();
4640    };
4641
4642    /* scroll title */
4643    var itemScrollTitle = function () {
4644        $('.text_grid12.parallax-title > .description .marker').each(function () {
4645            var originalText = $(this).html();
4646            var newText = '<span class="top-text">'+originalText.replace(/<br>/g,'</span><br /><span>')+'</span>';
4647            $(this).html(newText);
4648            $('.text_grid12.parallax-title > .description .marker span:last-child').addClass("bottom-text");
4649        });
4650
4651        var lastScrollTop = 0;
4652        var textItem = $('.text_grid12.parallax-title > .description .marker span');
4653
4654        $(window).scroll(function(e){
4655            var pt = $(this).scrollTop();
4656            var ph = $(this).height();
4657            textItem.each(function(i){
4658                var thisTextItem = $(this);
4659                var ip = thisTextItem.offset().top;
4660                var ih = thisTextItem.height();
4661                if ((pt + ph) > ip && pt < (ip + ph)){
4662                    var p = ((ip - pt - 200)/2);
4663                    if(p < 0){
4664                        p = 0;
4665                    }
4666                    if(thisTextItem.hasClass('top-text')){
4667                        thisTextItem.css('margin-right', p+'px');
4668                    } else if (thisTextItem.hasClass('bottom-text')){
4669                        thisTextItem.css('margin-left', p+'px');
4670                    }
4671                }
4672            });
4673            lastScrollTop = pt;
4674        });
4675
4676        $(window).scroll();
4677    };
4678
4679    var ShopByLookOneClick = function(){
4680
4681        var $buttonShop = $('.oneclick-shop');
4682        var $shopbylookitem = $('.shopbylook-slider .item.product-item');
4683        var errorMsg = $('.oneclick-shop-wrapper .description').text();
4684        var products = [];
4685        var oneproductcomb = '';
4686        if($buttonShop.length === 0 || $shopbylookitem.length === 0){
4687            return;
4688        }
4689
4690        $buttonShop.on('click',function(){
4691            var activeSize = false;
4692            products = [];
4693
4694            $shopbylookitem.each(function(i){
4695
4696                $item = $(this);
4697                if($item.find('.abs-button-reserve.buyButtonOnLists').length > 0 ){
4698                    var combinationID = $item.find('.abs-button-reserve.buyButtonOnLists').data('product-comb-id');
4699                    oneproductcomb = $item.data('productid')+'#'+combinationID+'#1';
4700                }else{
4701                    if($item.find('.sizes-btn-wrapper .btn-sizes.active').length == 0){
4702                        activeSize = false;
4703
4704                        return false;
4705                    }else{
4706
4707                    }
4708                    oneproductcomb = $item.data('productid')+'#'+$item.find('.sizes-btn-wrapper .btn-sizes.active').data('productsize-combid')+'#1';
4709                }
4710
4711                products.push(oneproductcomb);
4712                activeSize = true;
4713
4714            });
4715            if(activeSize){
4716                //sve ima velicine
4717                ShopByLookAddToCart(products);
4718            }else{
4719                toastr.error(errorMsg);
4720            }
4721
4722        });
4723
4724    };
4725
4726    /* Item product info slider */
4727    $('.item-product-info .item-wrapper').each(function () {
4728        $(this).nbHandleSlider({
4729            slidesToShow: 1,
4730            infinite: false,
4731            arrows: true,
4732            dots: false
4733        });
4734    });
4735
4736    /* Item subitem slider */
4737    $('.item-subitem-slider .item-wrapper').each(function () {
4738        var slider = $(this);
4739        var sliderParent = slider.closest('.item-subitem-slider')
4740        if(sliderParent.hasClass('class-three-item-slider')){
4741            slider.nbHandleSlider({
4742                slidesToShow: 3,
4743                infinite: false,
4744                arrows: true,
4745                dots: false,
4746                centerMode: false,
4747                draggable: false,
4748                responsive: [
4749                    {breakpoint: 480,  settings: { slidesToShow: 1}}
4750                ]
4751            });
4752        } else {
4753            slider.nbHandleSlider({
4754                slidesToShow: 1,
4755                infinite: false,
4756                arrows: true,
4757                dots: true,
4758                centerMode: true
4759            });
4760        }
4761    });
4762
4763    /* Item subitem slider */
4764    $('.item-subitem-slider-with-product-v2 .item-wrapper').each(function () {
4765        $(this).nbHandleSlider({
4766            slidesToShow: 3,
4767            infinite: false,
4768            arrows: true,
4769            dots: false,
4770            responsive: [
4771                {breakpoint: 480,  settings: { slidesToShow: 1}}
4772            ]
4773        });
4774    });
4775
4776    /* Item slider in tabs */
4777    var slidersTabsItems = function () {
4778        if($('.block.sliders-tabs-items').length){
4779            $('.sliders-tabs-items .subitem-slider .slider-init').each(function () {
4780                $(this).nbHandleSlider({
4781                    slidesToShow: 1,
4782                    infinite: false,
4783                    arrows: true,
4784                    dots: false,
4785                    centerMode: true
4786                });
4787            });
4788        }
4789    }
4790
4791    var scrollToNextItem = function () {
4792        var btn = $('.button-scroll-to-item');
4793        btn.click(function () {
4794
4795            $([document.documentElement, document.body]).animate({
4796                scrollTop: ($(this).offset().top - 200)
4797            }, 500);
4798        });
4799
4800        $(window).scroll(function(e){
4801            var dt = $(this).scrollTop();
4802            var dh = $(this).height();
4803            btn.each(function(i){
4804                var thisBtn = $(this);
4805                var bp = thisBtn.offset().top;
4806                if ((dt + dh) > bp && bp < (dt + dh)){
4807                    var p = (1 - (((dt + dh) - bp - 200) / 500));
4808                    if(p < 0){
4809                        p = 0;
4810                    } else if(p > 1) {
4811                        p = 1;
4812                    }
4813                    thisBtn.css('opacity', p);
4814                }
4815            });
4816        });
4817
4818        $(window).scroll();
4819    };
4820
4821    var scrollToItemLink = function () {
4822        $('.scroll-scale-items .items-wrapper .item .btn-wrapper a').click(function (e) {
4823            e.preventDefault();
4824            var linkLocation = $(this).attr('href').substring(1);
4825
4826            $('.text_grid12').each(function () {
4827                if($(this).data('link') == linkLocation){
4828                    $([document.documentElement, document.body]).animate({
4829                        scrollTop: ($(this).offset().top - 0)
4830                    }, 500);
4831                }
4832            });
4833        });
4834    };
4835
4836    var itemMainSlider = function () {
4837        $('.landing-main-selected-slider > .slider-init').each(function(){
4838            var slidesToShowData = $(this).parent().data('slider-item');
4839            var landingMainSliderOptions   = {
4840                dots: true,
4841                infinite: true,
4842                speed: 300,
4843                slidesToShow: slidesToShowData,
4844                arrows: true,
4845                responsive: [
4846                    {breakpoint: 480,  settings: { slidesToShow: 1}}
4847                ]
4848            };
4849            initSlider(this, landingMainSliderOptions);
4850        })
4851    };
4852
4853    var itemSliderWithTwoImg = function () {
4854        $('.slider-with-two-img .block-slider  > .slider-init').each(function(){
4855            var itemWithTwoImgSliderOptions   = {
4856                dots: true,
4857                infinite: true,
4858                speed: 300,
4859                slidesToShow: 1,
4860                arrows: false
4861            };
4862            initSlider(this, itemWithTwoImgSliderOptions);
4863        });
4864    };
4865
4866    var removetooltipSizesMob = function(){
4867        if(app.width() < 768) {
4868            $('.product-attributes-two-sizes li').each(function () {
4869                $(this).tooltip('destroy');
4870            });
4871        }
4872    };
4873
4874    var productListBanerSlider = function () {
4875        $('.product-listing .product-item.product-baner-item:not(.have-template) .row').each(function(){
4876            var productListBanerSliderOptions   = {
4877                dots: true,
4878                infinite: true,
4879                speed: 300,
4880                slidesToShow: 1,
4881                arrows: true,
4882                fade: true
4883            };
4884            initSlider(this, productListBanerSliderOptions);
4885        });
4886    };
4887
4888    var GetFormSubmitCityOld = function(form,prefix){
4889        if(form.length === 0){
4890            return false;
4891        }
4892        var submitlink = form.attr('action');
4893        var sufix = '?';
4894        var first = true;
4895
4896        form.find('select').each(function(){
4897
4898            $(this).change(function(){
4899                var name = $(this).attr('id');
4900                var value = $(this).val();
4901                name = name.replace(prefix,'');
4902                if(!first){
4903                    sufix = '&';
4904                }
4905                submitlink = submitlink+sufix+name+'='+value;
4906                first = false;
4907                form.attr('action',submitlink);
4908            });
4909        });
4910
4911        $('button[type="submit"]').click(function(e){
4912            e.preventDefault();
4913            window.location.replace(submitlink);
4914        });
4915    }
4916
4917    var GetFormSubmitCity = function(form,prefix){
4918        if(form.length === 0){
4919            return false;
4920        }
4921
4922        form.find('button[type="submit"]').click(function(e){
4923            e.preventDefault();
4924
4925            var submitlink = form.attr('action');
4926            var sufix = '?';
4927            var first = true;
4928
4929            form.find('select').each(function(){
4930
4931                var name = $(this).attr('id');
4932                var value = $(this).val();
4933                name = name.replace(prefix,'');
4934                if(!first){
4935                    sufix = '&';
4936                }
4937                submitlink = submitlink+sufix+name+'='+value;
4938                first = false;
4939                form.attr('action',submitlink);
4940
4941            });
4942
4943            window.location.replace(submitlink);
4944        });
4945    }
4946
4947    var bookingAjaxForm = function(form){
4948        if(form.length === 0){
4949            return false;
4950        }
4951
4952        $('button[type="submit"]').click(function(e){
4953            e.preventDefault();
4954            var submitlink = form.attr('action');
4955            let adults = $('select[name=adults]').val();
4956            let nights = $('select[name=nights]').val();
4957
4958            $.ajax({
4959                type: "POST",
4960                url: submitlink,
4961                data: {
4962
4963                    ajax: 'yes',
4964                    task: 'booking_ajax',
4965                    adults: adults,
4966                    nights: nights
4967                },
4968                dataType: 'json',
4969                success: function (ret) {
4970                    window.open(ret, '_blank').focus();
4971                }
4972            });
4973        });
4974    }
4975
4976    function PromoSidePopup(){
4977        var $countdownwrapper = $('.widget-countdown-slider-wrapper');
4978        if($countdownwrapper.length < 1){
4979            return false;
4980        }
4981        var $main_item = $('.item-main');
4982        $countdownwrapper.find('.item-main').each(function(){
4983            $this =$(this);
4984            console.log(readCookie('promo-sidepopup'+$this.data('slideid')));
4985            if(!readCookie('promo-sidepopup'+$this.data('slideid'))){
4986                createCookie('promo-sidepopup'+$this.data('slideid'),1,10);
4987                setTimeout(function () {
4988                    $this.parent().addClass('active');
4989                }, 1000);
4990            }
4991            console.log($this);
4992            if(readCookie('promo-sidepopup'+$this.data('slideid')) == 1){
4993                $this.parent().addClass('active');
4994            }
4995            if(app.width() < 769){
4996                createCookie('promo-sidepopup'+$this.data('slideid'),0,10);
4997            }
4998
4999        });
5000
5001        $('.open-promo').click(function(){
5002            $(this).parents('.widget-countdown-slider').addClass('active');
5003            createCookie('promo-sidepopup'+$(this).parents('.item-main').data('slideid'),1,10);
5004        });
5005        $('.close-promo').click(function(){
5006            $(this).parents('.widget-countdown-slider').removeClass('active');
5007            createCookie('promo-sidepopup'+$(this).parents('.item-main').data('slideid'),0,10);
5008        });
5009
5010    }
5011
5012    var tlocartGalleryInit = function () {
5013        var sliderOptions   = {slidesToShow: 3, infinite: false, arrows: true, dots: false,
5014            responsive: [
5015                {breakpoint: 1024, settings: { slidesToShow: 3}},
5016                {breakpoint: 768,  settings: { slidesToShow: 2}},
5017                {breakpoint: 480,  settings: { slidesToShow: 1}}
5018            ]};
5019
5020        $('area').click(function () {
5021            if($(this).data('item-id')){
5022                var tabId = $(this).data('item-id');
5023                $('.image-map-area-v2 .sidebar-menu .tabs-wrapper .tabs .item').each(function () {
5024                    if($(this).data('item-id') == tabId){
5025                        $(this).click();
5026                    }
5027                });
5028            } else {
5029                var id = $(this).data('src');
5030                setTimeout(function () {
5031                    $(id+' .subitems-gallery > .slider-init').each(function () {
5032                        $(this).nbHandleSlider(sliderOptions);
5033                    });
5034                }, 0)
5035            }
5036
5037        });
5038
5039        $('.image-map-area-v2-item .items-wrapper .item').click(function () {
5040            var id = $(this).children('a').attr('href').substring(1);
5041            app.reinitOpenslider($('#'+id+' .subitems-gallery > .slider-init'),sliderOptions);
5042        });
5043    };
5044
5045    var viewMoreArticleList = function () {
5046        $('.list-grid-with-custom-link a.view-more').click(function () {
5047            var itemContent = $(this).closest('.content');
5048            if(itemContent.hasClass('active')){
5049                itemContent.removeClass('active');
5050            } else {
5051                $('.list-grid-with-custom-link .content.active').each(function () {
5052                    $(this).removeClass('active');
5053                });
5054                itemContent.addClass('active');
5055            }
5056        });
5057    };
5058
5059    var selectFieldOfWork = function () {
5060        var selectWrapperFW = $('select[name=career_fieldofwork]').parents('.form-group');
5061
5062        selectWrapperFW.addClass('hidden');
5063
5064        $('select[name=career_desiredposition]').change(function(){
5065
5066            if($(this).val()==='Ostalo'){
5067                selectWrapperFW.removeClass('hidden');
5068                $('select[name=career_fieldofwork]').val('');
5069            }else{
5070                selectWrapperFW.addClass('hidden');
5071                $('select[name=career_fieldofwork]').val('-1');
5072            }
5073        });
5074    };
5075
5076    var chackBoxRequired = function () {
5077
5078        var elementCareerTermsOfUse = $('.confirm-checkbox-wrapper .icheckbox_flat');
5079        var elementCareerCv = $('input[name=career_cv]');
5080        var elementCareerImg = $('input[name=career_image]');
5081        if(elementCareerTermsOfUse.length === 0){
5082            return false;
5083        }
5084
5085        $('button[name=career_submit]').click(function(){
5086
5087            if(!elementCareerTermsOfUse.hasClass('checked')){
5088                elementCareerCv.removeAttr('required');
5089                elementCareerCv.val('');
5090                $('.cv-handler').addClass('active');
5091                elementCareerImg.removeAttr('required');
5092                elementCareerImg.val('');
5093                $('.img-handler').addClass('active');
5094
5095            }else{
5096                elementCareerCv.attr("required", "");
5097                elementCareerImg.attr("required", "");
5098                $('.cv-handler').removeClass('active');
5099                $('.img-handler').removeClass('active');
5100            }
5101
5102        });
5103
5104    };
5105
5106    var shopByLookSizesTabs = function (){
5107        var $item = $('.shopbylook-slider .product-item');
5108        var filter;
5109        $item.each(function(){
5110
5111            var $thisItem = $(this);
5112
5113            $thisItem.find('.product-filters-choice').click(function(){
5114                $thisItem.find('.product-filters-choice').removeClass('active');
5115                filter = $(this).data('filter');
5116                $(this).addClass('active');
5117                switchCaseFn(filter,$thisItem);
5118            });
5119
5120            $thisItem.find('.product-filters-choice').each(function(){
5121                if($(this).hasClass('active')){
5122                    filter = $(this).data('filter');
5123                    console.log(filter);
5124                }
5125
5126            });
5127
5128            switchCaseFn(filter,$thisItem);
5129        });
5130
5131        function switchCaseFn(filter,$thisItem){
5132
5133            $thisItem.find('.btn-sizes').each(function () {
5134                $(this).children().hide();
5135            });
5136            switch (filter) {
5137
5138                case 'sizes':
5139                    showSizes($thisItem,'.original-size');
5140                    break;
5141                case 'sizes_eu':
5142
5143                    showSizes($thisItem,'.eur-size');
5144                    break;
5145                case 'sizes_cm':
5146                    showSizes($thisItem,'.cm-size');
5147                    break;
5148                default:
5149                    showSizes($thisItem,'.original-size');
5150
5151            }
5152        }
5153
5154        function showSizes($thisItem,size_class){
5155            $thisItem.find(size_class).each(function(){
5156                $(this).show();
5157            });
5158        }
5159    };
5160
5161    var  SizesTabsOnDetailSBL = function(){
5162        var $item = $('.shopbylook-slider .product-item');
5163
5164        $item.each(function(){
5165            var $buttons = $(this).find('.product-filters-choice');
5166            var $buttonsEach = $(this).find('.sizes-btn-wrapper .item');
5167            var $sizes = $(this).find('.sizes-btn-wrapper .item .original-size');
5168            var $sizes_eu = $(this).find('.sizes-btn-wrapper .item .eur-size');
5169            var $sizes_cm = $(this).find('.sizes-btn-wrapper .item .cm-size');
5170            var $sizesWrapper = $(this).find('.sizes-selector-wrapper');
5171            var $activeSizeNZS = $sizesWrapper.find('.item.btn.btn-sizes.active');
5172
5173            if($sizesWrapper.hasClass('hidden')){
5174                if($activeSizeNZS.length === 1){
5175                    $activeSizeNZS.click();
5176                }
5177            }
5178
5179            if($buttons.length > 0){
5180
5181                $buttons.each(function(){
5182
5183                    if($(this).hasClass('active')){
5184                        $buttonsEach.children().hide();
5185                        $buttonsEach.show();
5186                        switch ($(this).data('filter')) {
5187                            case 'sizes':
5188                                break;
5189                            case 'sizes_eu':
5190                                $sizes_eu.show();
5191                                filterByMappedSize($buttonsEach,'filter_eu');
5192
5193                                break;
5194                            case 'sizes_cm':
5195                                $sizes_cm.show();
5196                                filterByMappedSize($buttonsEach,'filter_cm');
5197
5198                                break;
5199                            default:
5200                                $sizes.show();
5201                        }
5202                    }
5203                });
5204            }else{
5205                $sizes.show();
5206            }
5207
5208            $buttons.click(function(){
5209                $buttons.removeClass('active');
5210                $(this).addClass('active');
5211                $buttonsEach.children().hide();
5212                $buttonsEach.show();
5213                filter = $(this).data('filter');
5214                switch (filter) {
5215                    case 'sizes':
5216                        $sizes.show();
5217                        break;
5218                    case 'sizes_eu':
5219                        $sizes_eu.show();
5220                        filterByMappedSize($buttonsEach,'filter_eu');
5221                        break;
5222                    case 'sizes_cm':
5223                        $sizes_cm.show();
5224                        filterByMappedSize($buttonsEach,'filter_cm');
5225
5226                        break;
5227                    default:
5228                        $sizes.show();
5229                }
5230            });
5231            if($buttons.length == 0) {/*$sizes.show();*/ return;}
5232
5233            $sizes.show();
5234        });
5235
5236
5237        var filter = '';
5238
5239        function filterByMappedSize(element, filter){
5240            console.log('sssss '+filter);
5241            element.each(function(){
5242                if(!$(this).data(filter)){
5243                    $(this).hide();
5244                }
5245            });
5246        }
5247
5248
5249    };
5250
5251
5252    var  SizesTabsOnCart = function(){
5253        var $item = $('.cart-product .popup-sizes-wrapper, .product-item-size-popup-wrapper .popup-sizes-wrapper');
5254
5255        $item.each(function(){
5256            if($(this).hasClass('init')){
5257                return false;
5258            }
5259
5260            var $buttons = $(this).find('.filters-choice');
5261            var $buttonsEach = $(this).find('.sizes-wrapper .size-item');
5262            var $sizes = $(this).find('.sizes-wrapper .size-item > .original-size');
5263            var $sizes_eu = $(this).find('.sizes-wrapper .size-item > .eur-size');
5264            var $sizes_cm = $(this).find('.sizes-wrapper .size-item > .cm-size');
5265
5266            if($buttons.length > 0){
5267
5268                $buttons.each(function(){
5269
5270                    if($(this).hasClass('active')){
5271                        $buttonsEach.children().hide();
5272                        $buttonsEach.show();
5273                        switch ($(this).data('filter')) {
5274                            case 'sizes':
5275                                $sizes.show();
5276                                break;
5277                            case 'sizes_eu':
5278                                $sizes_eu.show();
5279                                filterByMappedSize($buttonsEach,'filter_eu');
5280
5281                                break;
5282                            case 'sizes_cm':
5283                                $sizes_cm.show();
5284                                filterByMappedSize($buttonsEach,'filter_cm');
5285
5286                                break;
5287                            default:
5288                                $sizes.show();
5289                        }
5290                    }
5291                });
5292            }else{
5293                $sizes.show();
5294            }
5295
5296            $buttons.click(function(){
5297
5298                $buttons.removeClass('active');
5299                $(this).addClass('active');
5300                $buttonsEach.children().hide();
5301                $buttonsEach.show();
5302                filter = $(this).data('filter');
5303                switch (filter) {
5304                    case 'sizes':
5305                        $sizes.show();
5306                        break;
5307                    case 'sizes_eu':
5308                        $sizes_eu.show();
5309                        filterByMappedSize($buttonsEach,'filter_eu');
5310                        break;
5311                    case 'sizes_cm':
5312                        $sizes_cm.show();
5313                        filterByMappedSize($buttonsEach,'filter_cm');
5314                        break;
5315                    default:
5316                        $sizes.show();
5317                }
5318            });
5319            if($buttons.length == 0) {/*$sizes.show();*/ return;}
5320
5321            $(this).addClass('init')
5322        });
5323
5324
5325        var filter = '';
5326
5327        function filterByMappedSize(element, filter){
5328            element.each(function(){
5329                if(!$(this).data(filter)){
5330                    $(this).hide();
5331                }
5332            });
5333        }
5334
5335
5336    };
5337
5338    var hideChangeSizePopup = function(){
5339        var a=0;
5340        $('body').click(function(e){
5341            if($('.popup-sizes-wrapper').hasClass('active') && a > 0){
5342                if ($(e.target).closest('.nbf-change-size').length === 0 && $(e.target).closest('.popup-sizes-wrapper').length === 0) {
5343                    $('.popup-sizes-wrapper.active').removeClass('active');
5344                }
5345            }
5346            a++;
5347        });
5348    }
5349
5350    var productDetailTabsToVertical = function(tabs,addTo,verticalTabs){
5351        var detail_tabs = tabs;//tabs
5352        var detail_tabs_addTo = addTo;//addTo
5353        var detail_tabs_vertical = verticalTabs;//verticalTabs
5354        var x,y;
5355
5356        x = detail_tabs.detach();
5357        y = detail_tabs_vertical.detach();
5358        if(app.width() < 768){
5359            detail_tabs_addTo.prepend(y);
5360        }else{
5361            detail_tabs_addTo.prepend(x);
5362        }
5363
5364        $(window).resize(function(){
5365            if(app.width() < 768){
5366                detail_tabs.detach();
5367                detail_tabs_addTo.prepend(y);
5368            }else{
5369                detail_tabs_vertical.detach();
5370                detail_tabs_addTo.prepend(x);
5371            }
5372        });
5373    };
5374
5375    var productDetailAttributesAccordion = function () {
5376        $('.attributes-accordion .panel-group button.btn').click(function () {
5377            var btn = $(this);
5378            var btnTitle = btn.text();
5379            var itemWrapper = btn.closest('.pan-description');
5380            var selectedItemWrapper = itemWrapper.find('.panel-heading .selected-item');
5381            selectedItemWrapper.text(btnTitle);
5382            itemWrapper.find('button.btn').each(function () {
5383                $(this).removeClass('active');
5384            });
5385            btn.addClass('active');
5386            if(btn.data('info')){
5387                var infoTitle = btn.data('info');
5388                $('.attributes-info .phone-info').removeClass('hidden');
5389                $('.attributes-info .phone-info .title .phone-number').text(infoTitle);
5390            }
5391        });
5392    };
5393
5394    var paymentCardPopup = function () {
5395        $('.payment-popup-btn').click(function () {
5396            var description = $(this).find('.popup-description').html();
5397            console.log(description);
5398            $('#payment-card-modal .modal-body').html(description);
5399        });
5400    };
5401
5402    printPdf = function (url) {
5403        var iframe = this._printIframe;
5404        if (!this._printIframe) {
5405            iframe = this._printIframe = document.createElement('iframe');
5406            document.body.appendChild(iframe);
5407
5408            iframe.style.display = 'none';
5409            iframe.onload = function() {
5410                setTimeout(function() {
5411                    iframe.focus();
5412                    iframe.contentWindow.print();
5413                }, 1);
5414            };
5415        }
5416
5417        iframe.src = url;
5418    };
5419
5420    var checkoutRedirectBank = function(){
5421
5422        var buttonForm = $('#form-confirm-card-payments-redirect .btn.btn-success');
5423        if(nb_type_page === 'cart_confirm' && buttonForm.length > 0){
5424            $('<i class="spin fa fa-spinner"></i>').appendTo('.cart-step .title H2').css('float','right');
5425            setTimeout(function() {
5426                buttonForm.click();
5427            }, 3000);
5428
5429        }
5430
5431
5432    };
5433
5434    var videoSliderHtml = function(mainSliderElementId){
5435        if(!mainSliderElementId){
5436            console.log('prazno');
5437            mainSliderElementId = '.main-slider > .slider-init';
5438        }
5439
5440        var $videohtml = $('.slick-current video');
5441        var vid = $videohtml.get(0);
5442        var sourceVideo = $videohtml.find('source').attr('src');
5443        var videoExt = '.mp4';
5444        var mobileExt = 'mob';
5445
5446        function mobVideo(slider,videoExt,mobileExt){
5447            var videos = slider.find('video > source');
5448            if(videos.length === 0){
5449                return false;
5450            }
5451            videos.each(function(){
5452                var oldSource;
5453                var $this = $(this);
5454                oldSource = sourceVideo = $this.attr('src');
5455                sourceVideo = sourceVideo.split(videoExt);
5456                sourceVideo = sourceVideo[0]+mobileExt+videoExt;
5457                $this.attr('src',sourceVideo);
5458                vidid = $this.parent().attr('id');
5459                if(vidid !=''){
5460
5461                    $('#'+vidid).get(0).load();
5462
5463                    $('#'+vidid).get(0).addEventListener('error', function(event,vidid) {
5464                        $this.attr('src',oldSource);
5465                        vidid = $(this).attr('id');
5466                        $('#'+vidid).get(0).load();
5467                    }, true);
5468                }
5469
5470            });
5471
5472        }
5473
5474        function vidPlay(video){
5475            if(typeof video !== 'undefined'){
5476                video.play();
5477                video.onended = function() {
5478                    $(mainSliderElementId).slick('slickNext');
5479                };
5480            }
5481
5482        }
5483
5484        if(screen.width < 769) {
5485            mobVideo($(mainSliderElementId),videoExt,mobileExt);
5486        }
5487
5488        vidPlay(vid);
5489
5490        $(mainSliderElementId).on('afterChange', function(event, slick, currentSlide) {
5491            vid = $(this).find('.slick-current .htmlVideoSlide > video');
5492            if(vid.length > 0){
5493                vidPlay(vid.get(0));
5494            }
5495        });
5496
5497        $(mainSliderElementId).on('beforeChange', function(event, slick, currentSlide) {
5498            vid = $(this).find('.slick-current .htmlVideoSlide > video');
5499            if(vid.length > 0){
5500                vid.get(0).pause();
5501            }
5502        });
5503    };
5504
5505    var cartGiftPopup = function(){
5506
5507
5508        // function isDisabledBtn(){
5509        //     if ($('#cart_onepage_donation_flag_want_product').is(':checked')) {
5510        //         $('.gift-btn').removeClass('btn-disabled');
5511        //     } else {
5512        //         $('.gift-btn').addClass('btn-disabled');
5513        //     }
5514        // };
5515
5516        // $('#cart_onepage_donation_flag_want_product').change(function() {
5517        //     isDisabledBtn()
5518        // });
5519
5520        //isDisabledBtn();
5521
5522
5523        $("#cart_onepage_donation_flag_want_product").on('change', function() {
5524            checkShowBaner();
5525        });
5526
5527        function checkShowBaner() {
5528            return false
5529
5530            if(!$("#cart_onepage_donation_flag_want_product").prop('checked')){
5531                $(".donation-image .img-responsive").removeClass('hidden');
5532                $(".donation-image .product-wrapper-chosen").addClass('hidden');
5533                eraseCookie('cart_gift_popup');
5534            }
5535        }
5536
5537        checkShowBaner();
5538
5539
5540
5541        var combinationDonationId = -1;
5542        var productDonationId = -1;
5543        let textButtonSelect = '';
5544        $(".gift-product-modal .gift-product .product-info .product-sizes .item").on("click", function(e){
5545
5546            //e.preventDefault();
5547            combinationDonationId = $(this).attr("data-productsize-combid");
5548            productDonationId = $(this).attr("data-productsize-productid");
5549
5550            //alert("The data-id of clicked item is: " + combinationDonationId);
5551
5552            $(".gift-product-modal .gift-product .product-info .product-sizes .item").removeClass('active');
5553
5554            var product = $(this).closest('.gift-product');
5555
5556            // product.find(".choose-gift-btn").text('Izaberi');
5557            // product.find(".choose-gift-btn").removeClass('btn-disabled');
5558
5559
5560            var size = $(this);
5561
5562            $(this).addClass('active');
5563
5564            $(this).siblings().removeClass('active')
5565
5566            $('.gift-product-modal .gift-product').each(function(){
5567
5568                if(product.find('.size-select-wrapper .item.active').length) {
5569                    textButtonSelect = product.find(".choose-gift-btn").data('text-select');
5570                    product.find(".choose-gift-btn").text(textButtonSelect);
5571                    product.find(".choose-gift-btn").removeClass('btn-disabled');
5572                }
5573            });
5574
5575        });
5576
5577        // function loadDataForDonationProductOrderOnePage(){
5578        //     if($('input[type="radio"][name="cart_onepage_donation_productId"]').length){
5579        //         getCombinationsForDonationProductOrderOnePage($('.choose-gift-btn'));
5580        //         $('.choose-gift-btn').on('click', function(event){
5581        //             getCombinationsForDonationProductOrderOnePage($(this));
5582        //         });
5583        //     }
5584        // }
5585
5586        var curSrc = '';
5587
5588        $(".choose-gift-btn").on("click", function(e){
5589
5590            e.preventDefault();
5591
5592            let textButtonSelectSize = $(this).data('text-select-size');
5593
5594            var product = $(this).closest('.gift-product');
5595            var selectedCat = product.find('.category').text();
5596            var selectedName = product.find('.name').text();
5597            var selectedSize = '';
5598            if(product.find('.btn-sizes.active').length){
5599                selectedSize = product.find('.btn-sizes.active').text();
5600                productDonationId = product.find('.btn-sizes.active').data('productsizeProductid');
5601                combinationDonationId = product.find('.btn-sizes.active').data('productsizeCombid');
5602            }
5603            var selectedImg = product.find('.product-image').attr('src');
5604            var cookieVal = selectedCat+','+selectedName+','+selectedSize+','+selectedImg+','+productDonationId+','+combinationDonationId;
5605
5606            //createCookie('cart_gift_popup', cookieVal, 365);
5607
5608            //if(!product.find('.size-select-wrapper .item.active').length) {
5609            if(!product.find('.size-select-wrapper .item.active').length && !product.find('.btn-sizes.active').length) {
5610                $(this).text(textButtonSelectSize);
5611                $(this).addClass('btn-disabled');//
5612                return false;
5613            }
5614
5615            //loadDataForDonationProductOrderOnePage();
5616            // console.log(productDonationId);
5617            // console.log(combinationDonationId);
5618            // $('#cart_onepage_donation_productId').val(productDonationId);
5619            // $('#cart_onepage_donation_combinationId').val(combinationDonationId);
5620            cartChangeDonationProductAndCombinationId(productDonationId, combinationDonationId);
5621            //calculateValueOrderOnePage();
5622
5623            var productx = $('.product-wrapper-chosen');
5624
5625            product.find('.name').text();
5626
5627            productx.find('.name').text(product.find('.name').text());
5628
5629            product.find('.category').text();
5630
5631            productx.find('.category').text(product.find('.category').text());
5632
5633            product.find('.product-info .product-sizes .item.active').text();
5634
5635            productx.find('.size-number').text(product.find('.product-info .product-sizes .item.active').text());
5636
5637
5638            curSrc = product.find('img').attr('src');
5639
5640            console.log(curSrc);
5641
5642            productx.find('img').attr('src', curSrc);
5643
5644            $(".gift-product-modal .close").click();
5645
5646            $(".donation-image .img-responsive").addClass('hidden');
5647
5648            $(".donation-image .product-wrapper-chosen").removeClass('hidden');
5649
5650            dataText = $('.gift-btn').attr("data-text");
5651
5652            $(".gift-btn").text(dataText);
5653
5654            $('.donation-content .icheck-item').addClass('checked');
5655
5656
5657            // kada kreira cookie on poyiva funkciju ispod
5658            //insertProductDataCookie();
5659
5660        });
5661
5662        var divWrapper = $('.donation-wrapper').length;
5663
5664        if(divWrapper < 0){
5665            eraseCookie('cart_gift_popup');
5666        }
5667
5668    };
5669
5670
5671
5672    function insertProductDataCookie(){
5673
5674        /* ova funkcija ;ita cookie i puni vrednosti u blok */
5675
5676        // if (readCookie('cart_gift_popup')) {
5677        //     var productData = readCookie('cart_gift_popup');
5678        //     console.log(productData);
5679        //     if (productData != '') {
5680        //         if(!$("#cart_onepage_donation_flag_want_product").prop('checked')){
5681        //             $("#cart_onepage_donation_flag_want_product").click();
5682        //         }
5683        //         var productWrapper = $('.product-wrapper-chosen');
5684        //         var productDataArray = productData.split(",");
5685        //         var productCat = productDataArray[0];
5686        //         var productName = productDataArray[1];
5687        //         var productSize = productDataArray[2];
5688        //         var productImg = productDataArray[3];
5689        //         var productDonationIdCookie = productDataArray[4];
5690        //         var combinationDonationIdCookie = productDataArray[5];
5691        //
5692        //         productWrapper.find('.category').text(productCat);
5693        //         productWrapper.find('.name').text(productName);
5694        //         productWrapper.find('.size-number').text(productSize);
5695        //         productWrapper.find('.product-image').attr('src', productImg);
5696        //
5697        //         $(".donation-image .img-responsive").addClass('hidden');
5698        //
5699        //         $(".donation-image .product-wrapper-chosen").removeClass('hidden');
5700        //
5701        //     }
5702        // }
5703
5704    }
5705
5706    function checkCartCityValue($cityInput,$cityIdInput,$postCodeInput){
5707        if(checkCartCityValueEnable){
5708            $($cityInput).on('focus',function () {
5709                $('#submit_order_one_page').addClass('no-click');
5710            })
5711            $($cityInput).on('blur', function(){
5712                setTimeout(function () {
5713                    if($($cityIdInput).val() == '-1' || $($cityIdInput).val() == ''){
5714                        cartChangeCityIdAndPostCodeOnePage(-1, '');
5715                        //kometarisano - nastaje loop kada je polje prazno
5716
5717                        //$($cityInput).focus();
5718                    }else{
5719                        cartChangeCityIdAndPostCodeOnePage($($cityIdInput).val(), $($postCodeInput).val());
5720                    }
5721                    $('#submit_order_one_page').removeClass('no-click');
5722                }, 100);
5723                $('#submit_order_one_page').removeClass('no-click');
5724            });
5725        }
5726    }
5727
5728    function checkCityValue($cityInput,$cityIdInput,$postCodeInput,$addressInput,$addressNumberInput){
5729
5730        var additionalStreetNbSufix = '';
5731        if(showStreetAditionalFields){
5732            additionalStreetNbSufix = '_new';
5733        }
5734
5735        if(typeaheadStrictType){
5736
5737            var textCity = '';
5738            if($('.strictTextCity').length > 0){
5739                textCity = $('.strictTextCity').data('strict-city');
5740            }
5741
5742            $($cityInput).on('focusout change', function(){
5743                $.when($($cityIdInput).change()).then(function() {
5744                    setTimeout(function () {
5745                        if($($cityIdInput).val() == '-1' || $($cityIdInput).val() == ''){
5746                            $($cityInput).val('');
5747                            $($cityInput).text('');
5748                            if($($postCodeInput).length){
5749                                $($postCodeInput).val('').text('');
5750                            }
5751                            if($($addressInput).length){
5752                                $($addressInput).val('').text('').attr('data-street-name', '');
5753                            }
5754                            if(typeaheadStrictType == 'postCodeAutoFillByStreetNumber'){
5755                                if($($addressNumberInput+additionalStreetNbSufix).length){
5756                                    $($addressNumberInput+additionalStreetNbSufix).val('').text('');
5757                                }
5758                            }
5759                            $('.strictTextCity').text(textCity);
5760                            $('.strictTextCity').removeClass('hidden');
5761                        }else{
5762                            $('.strictTextCity').html('');
5763                            $('.strictTextCity').addClass('hidden');
5764                        }
5765                    }, 1000);
5766                });
5767            });
5768        }
5769    }
5770
5771    function checkAddressValue($addressInput,$addressNumberInput,$addressIdInput,$cityInput,$postCodeInput){
5772        var additionalStreetNbSufix = '';
5773        if(showStreetAditionalFields){
5774            additionalStreetNbSufix = '_new';
5775        }
5776        if(typeaheadStrictType == 'postCodeAutoFillByStreet' || typeaheadStrictType == 'postCodeAutoFillByStreetNumber'){
5777            console.log('uslov')
5778            var textStreet='';
5779            if($('.strictTextStreet').length > 0){
5780                textStreet = $('.strictTextStreet').data('strict-street');
5781            }
5782            $($addressInput).on('focus',function () {
5783                $('#submit_order_one_page').addClass('no-click');
5784            })
5785            $($addressInput).on('focusout change', function(){
5786
5787                setTimeout(function () {
5788
5789                    if(($($addressIdInput).val() == '-1' || $($addressIdInput).val() == '')  && ($($addressInput).attr('data-street-name') == '' || typeof $($addressInput).attr('data-street-name') == 'undefined')){
5790                        $($addressInput).val('').text('');
5791                        $('#submit_order_one_page').removeClass('no-click');
5792                        if($('.form-group label[for='+$addressInput.replace('#','')+'] span').length){
5793                            $('.form-group label[for='+$addressInput.replace('#','')+'] span').removeClass('hidden');
5794                        }
5795                        $('.strictTextStreet').text(textStreet);
5796                        $('.strictTextStreet').removeClass('hidden');
5797                        if($($postCodeInput).length){
5798                            $($postCodeInput).val('').text('');
5799
5800                        }
5801                        if(typeaheadStrictType == 'postCodeAutoFillByStreetNumber'){
5802
5803                            if($($addressNumberInput+additionalStreetNbSufix).length){
5804                                $($addressNumberInput+additionalStreetNbSufix).val('').text('');
5805
5806                            }
5807                        }
5808                    }else{
5809
5810                        $('.strictTextStreet').html('');
5811                        $('.strictTextStreet').addClass('hidden');
5812                        if($('.form-group label[for='+$addressInput.replace('#','')+'] span').length){
5813                            $('.form-group label[for='+$addressInput.replace('#','')+'] span').addClass('hidden');
5814                        }
5815                        if($($addressInput).attr('data-street-name')){
5816                            $($addressInput).val($($addressInput).attr('data-street
5816-name'));
5817                        }
5818                        $('#submit_order_one_page').removeClass('no-click');
5819
5820                    }
5821                }, 100);
5822            });
5823        }else if(addressfromautocompleteStrict){
5824            $($addressInput).on('focusout change', function(){
5825                setTimeout(function () {
5826                    if(($($addressIdInput).val() == '-1' || $($addressIdInput).val() == '')  && ($($addressInput).attr('data-street-name') == '' || typeof $($addressInput).attr('data-street-name') == 'undefined')){
5827                        $($addressInput).val('').text('');
5828                    }
5829                }, 100);
5830            });
5831        }
5832    }
5833
5834    function typeaheadAddScript() {
5835
5836
5837        checkCartCityValue("#cart_onepage_city","#cart_onepage_city_id","#cart_onepage_postcode");
5838
5839        checkCityValue("#cart_onepage_city","#cart_onepage_city_id","#cart_onepage_postcode","#cart_onepage_street","#cart_onepage_street_no");
5840        checkCityValue("#reg_city","#reg_city_id","#reg_postcode","#reg_address", "reg_street_no");
5841        checkCityValue("#reg_page_city","#reg_page_city_id","#reg_page_postcode","#reg_page_address", "reg_page_street_no");
5842        checkCityValue("#enrollment_deliveryplace","#enrollment_deliveryplace_id","#enrollment_deliverypostnumber","#enrollment_deliveryaddress","#enrollment_deliveryaddress_no");
5843        checkCityValue("#city","#city_id","#zipcode","#street", "#streetnumber");
5844        checkCityValue("#profile_city","#profile_city_id","#profile_postcode","#profile_address", "profile_street_no");
5845
5846        checkAddressValue("#cart_onepage_street","#cart_onepage_street_no","#cart_onepage_street_id","#cart_onepage_city","#cart_onepage_postcode", "cart_onepage_street_no");
5847        checkAddressValue("#reg_address","#reg_street_no","#reg_address_id","#reg_city","#reg_postcode");
5848        checkAddressValue("#reg_page_address","#reg_page_street_no","#reg_page_address_id","#reg_page_city","#reg_page_postcode");
5849        checkAddressValue("#enrollment_deliveryaddress","#enrollment_deliveryaddress_no","#enrollment_deliveryaddress_id","#enrollment_deliveryplace","#enrollment_deliverypostnumber");
5850        checkAddressValue("#street","#streetnumber","#street_id","#city","#zipcode");
5851        checkAddressValue("#profile_address","#profile_street_no","#profile_address_id","#profile_city","#profile_postcode", "profile_street_no");
5852
5853        if(sortCityByRegionId){
5854            var prefix = 'cart_onepage,reg_page,reg,profile';
5855            var prefixArray = prefix.split(',');
5856            for (var i = 0; i < prefixArray.length; ++i) {
5857                sortCityByPage(prefixArray[i]);
5858            }
5859
5860            function sortCityByPage(prefixItem){
5861                $('#'+prefixItem+'_region_id').on('change', function() {
5862                    var selectedRegion = $(this).val();
5863                    $("#"+prefixItem+"_city").val('').text('');
5864                    $("#"+prefixItem+"_postcode").val('').text('');
5865                    $("#"+prefixItem+"_address").val('').text('').attr('data-street-name', '');
5866                    $("#"+prefixItem+"_street").val('').text('');
5867                    if ( $.isNumeric(selectedRegion) == false && selectedRegion != '' ) {
5868                        selectedRegion = 0;
5869                    }
5870                    var link = $('#'+prefixItem+'_city').attr('data-typehead-url');
5871                    var linkArray = link.split('&regionId=');
5872                    $('#'+prefixItem+'_city').attr('data-typehead-url', linkArray[0]+'&regionId='+selectedRegion);
5873
5874                    $.ajax({
5875                        type: "POST",
5876                        url: nb_active_page_url,
5877                        data: {
5878                            nbAjax: '1',
5879                            ajax: 'yes',
5880                            task: 'checks_city_name',
5881                            regionId: selectedRegion
5882                        },
5883                        dataType: 'json',
5884                        success: function (ret) {
5885                            if (ret.flag) {
5886                                if(ret.list.length == 1){
5887                                    $("#"+prefixItem+"_city").val(ret.list[0].name).change();
5888                                    $("#"+prefixItem+"_city_id").val(ret.list[0].id).change();
5889                                }
5890                            } else {
5891
5892                            }
5893                        }
5894                    });
5895
5896                });
5897            };
5898
5899
5900        }
5901
5902    }
5903
5904    var handleBackButtonProductListing = function(){
5905
5906        if($('#f_page').length > 0 ){
5907            var pagenumber;
5908            if (window.history && window.history.pushState) {
5909                $(window).on('popstate', function() {
5910                    pagenumber  = window.location.href.split('page-').pop();
5911                    let searchNumber = pagenumber;
5912                    if(pagenumber.indexOf('?') !== -1 ){
5913                        searchNumber = pagenumber.split('?').shift();
5914                    }
5915                    loadProductForPage(searchNumber,false,true);
5916                });
5917            }
5918        }
5919    };
5920
5921    var handleSavedPaymentCards = function(){
5922        var checkid;
5923        var checkboxfield = $('.show-saved-cards-wrapper input:checkbox');
5924        window.addEventListener('initCartOnePage', function (e) {
5925            $('.cards-wrapper-hidden').addClass('hidden');
5926            checkboxfield.parent().removeClass('checked');
5927        });
5928
5929
5930        checkboxfield.click(function(){
5931            checkid = $(this).data('cardid');
5932
5933            if($(this).is(':checked')){
5934                $('#cart_onepage_tokenization_content_'+checkid).removeClass('hidden');
5935            } else {
5936                $('#cart_onepage_tokenization_content_'+checkid).addClass('hidden');
5937            }
5938        });
5939    }
5940
5941    var storeOnMapCategoryHideFilters = function(){
5942        var category = $('.storelocator-panel').data('store-category');
5943        var showFilters = $('.storelocator-panel').data('hide-filters');
5944        var filterwrapper = $('.storelocator-panel .storelocator-filter .feature-filter');
5945        if(showFilters && category && category > 0){
5946            filterwrapper.addClass('hidden');
5947        }
5948    };
5949
5950    var defaultCartEmailValue =  function(){
5951        if($('.emailValClass').length == 0){
5952            return false;
5953        }
5954
5955        function addvalue(element, value){
5956            element.val(value);
5957            element.parent().find('.parsley-required').remove();
5958        }
5959
5960        var $email = $('#cart_onepage_email');
5961        var mailPH = $email.attr('placeholder');
5962        addvalue($email,mailPH);
5963
5964        $('#submit_order_one_page').click(function(){
5965            addvalue($email,mailPH);
5966        });
5967        $email.blur(function(){
5968            if($email.val() === ''){
5969                addvalue($email,mailPH);
5970            }
5971        });
5972
5973        $email.click(function(){
5974            if($email.val() === mailPH){
5975                $email.val('');
5976            }
5977
5978        });
5979
5980    };
5981
5982    var contactSubmitLoadButton = function(button){
5983        var $button = button;
5984        var formblock = $button.parents('form');
5985        $button.click(function (e) {
5986            setTimeout(function(){
5987                if(formblock.find('.validation-errors-list.filled').length === 0){
5988                    $button.addClass('active');
5989                }
5990            },100);
5991
5992        });
5993
5994    };
5995
5996    var verificationLoyaltyCard = function () {
5997
5998        /*SLANJE TOKENA - MODAL */
5999        $("#verification_loyalty_card_modal .verify-item-step-1 .btn-verify").click(function(e){
6000
6001            e.preventDefault();
6002
6003            var url             = $('#verification_loyalty_card_modal_form').attr("action");
6004            var ticketCode      = $("#verification_loyalty_card_modal #verificationLoyaltyCode").val();
6005
6006            $.ajax({
6007                type: "POST",
6008                url: url,
6009                data: {
6010                    ajax: 'yes',
6011                    task: 'verificationloyaltycard',
6012                    ticketCode: ticketCode
6013                },
6014                dataType: 'json',
6015                success: function(ret){
6016                    if(ret.flag){
6017                        /*uspesno*/
6018                        $('#verification_loyalty_card_modal .alert').removeClass('hidden').removeClass('alert-danger').addClass('alert-success').text(ret.info);
6019                        $("#verification_loyalty_card_modal .verify-item-step-1").addClass("hidden");
6020                        $("#verification_loyalty_card_modal .verify-item-step-2").removeClass("hidden");
6021                    } else {
6022                        /*greska*/
6023                        $('#verification_loyalty_card_modal .alert').removeClass('hidden').removeClass('alert-success').addClass('alert-danger').text(ret.info);
6024                    }
6025                }
6026            });
6027
6028        });
6029
6030        /*POTVRDA TOKENA - MODAK*/
6031        $("#verification_loyalty_card_modal .verify-item-step-2 .btn-confirm-token").click(function(e){
6032
6033            e.preventDefault();
6034
6035            var url                 = $('#verification_loyalty_card_modal_form').attr("action");
6036            var ticketCode          = $("#verification_loyalty_card_modal #verificationLoyaltyCode").val();
6037            var verificationToken   = $("#verification_loyalty_card_modal #verificationToken").val();
6038
6039            $.ajax({
6040                type: "POST",
6041                url: url,
6042                data: {
6043                    ajax: 'yes',
6044                    task: 'confirmverificationtoken',
6045                    ticketCode: ticketCode,
6046                    verificationToken: verificationToken
6047                },
6048                dataType: 'json',
6049                success: function(ret){
6050                    if(ret.flag){
6051                        /*uspesno*/
6052                        $('#verification_loyalty_card_modal .alert').removeClass('hidden').removeClass('alert-danger').addClass('alert-success').text(ret.info);
6053                        $("#verification_loyalty_card_modal .verify-item-step-2").addClass("hidden");
6054                        $("#verification_loyalty_card_btn_modal").addClass("hidden");
6055                        location.reload();
6056                    } else {
6057                        /*greska*/
6058                        $('#verification_loyalty_card_modal .alert').removeClass('hidden').removeClass('alert-success').addClass('alert-danger').text(ret.info);
6059                    }
6060                }
6061            });
6062
6063        });
6064
6065        /*SLANJE TOKENA - KORPA*/
6066        $(".send-verification-token").each(function(e) {
6067
6068            $(this).on("click", function(event){
6069
6070                var btnId = event.target.id;
6071                var url             = $(this).data('loyalty-code-url');
6072                var ticketCode      = $(this).data('ticket');
6073                var loyaltyCode     = $(this).data('loyalty-code');
6074                var $this = $(this);
6075
6076                $this.addClass('active');
6077
6078                $.ajax({
6079                    type: "POST",
6080                    url: url,
6081                    data: {
6082                        ajax: 'yes',
6083                        task: 'verificationloyaltycard',
6084                        ticketCode: ticketCode,
6085                        loyaltyCode: loyaltyCode,
6086                        type: 'unregister'
6087                    },
6088                    dataType: 'json',
6089                    success: function(ret){
6090                        if(ret.flag){
6091                            /*uspesno*/
6092                            $('#cart_verification_loyalty_card_'+loyaltyCode+' .alert').removeClass('hidden').removeClass('alert-danger').addClass('alert-success').text(ret.info);
6093                            $('#btn_send_verification_token_'+loyaltyCode).prop("disabled", true);
6094                            CustomEventTrigger('loyaltyVerifiedToken');
6095                        } else {
6096                            /*greska*/
6097                            $('#cart_verification_loyalty_card_'+loyaltyCode+' .alert').removeClass('hidden').removeClass('alert-success').addClass('alert-danger').text(ret.info);
6098                        }
6099                        $this.removeClass('active');
6100                    }
6101                });
6102            });
6103        });
6104
6105        /*POTVRDA TOKENA - KORPA*/
6106        $(".confirm-verification-token").each(function(e) {
6107            $(this).on("click", function(event){
6108
6109                var btnId = event.target.id;
6110                var url                 = $(this).data('loyalty-code-url');
6111                var ticketCode          = $(this).data('ticket');
6112                var loyaltyCode         = $(this).data('loyalty-code');
6113                var verificationToken   = $("#ticket_verification_token_"+loyaltyCode).val();
6114                var $this = $(this);
6115
6116                $this.addClass('active');
6117
6118                $.ajax({
6119                    type: "POST",
6120                    url: url,
6121                    data: {
6122                        ajax: 'yes',
6123                        task: 'confirmverificationtoken',
6124                        ticketCode: ticketCode,
6125                        loyaltyCode: loyaltyCode,
6126                        type: 'unregister',
6127                        verificationToken: verificationToken
6128                    },
6129                    dataType: 'json',
6130                    success: function(ret){
6131                        if(ret.flag){
6132                            /*uspesno*/
6133                            $('#cart_verification_loyalty_card_'+loyaltyCode+' .alert').removeClass('hidden').removeClass('alert-danger').addClass('alert-success').text(ret.info);
6134                            $('#btn_confirm_verification_token_'+loyaltyCode).prop("disabled", true);
6135                            $("#verification_loyalty_card_btn_modal").addClass("hidden");
6136                            CustomEventTrigger('loyaltyVerifiedToken');
6137                        } else {
6138                            /*greska*/
6139                            $('#cart_verification_loyalty_card_'+loyaltyCode+' .alert').removeClass('hidden').removeClass('alert-success').addClass('alert-danger').text(ret.info);
6140                        }
6141                        $this.removeClass('active');
6142                    }
6143                });
6144            });
6145        });
6146    };
6147
6148    var userRemoveLoyaltyCard = function (editPage) {
6149        let $buttonRemove = $("#profile_remove_loyalty");
6150        var url = $("#profile_remove_loyalty").data('profile-url');
6151        let message = $buttonRemove.data('alert');
6152        let editPageNew = editPage;
6153
6154        function callRemoveAjax(editPage,url){
6155            let reloadpage = true;
6156            if(editPage){
6157                reloadpage = false;
6158            }
6159            $.ajax({
6160                type: "POST",
6161                url: url,
6162                data: {
6163                    ajax: 'yes',
6164                    task: 'removeloyaltycard',
6165                },
6166                dataType: 'json',
6167                success: function(ret){
6168                    if(ret.flag){
6169                        /*uspesno*/
6170                        if(reloadpage){
6171                            location.reload();
6172                        }
6173
6174                    } else {
6175                        /*greska*/
6176                        alert('Nastala je greška prilikom brisanja Loyalty kartice');
6177                        if(reloadpage){
6178                            location.reload();
6179                        }
6180                    }
6181                }
6182            });
6183        }
6184        if(editPageNew){
6185            callRemoveAjax(editPageNew,url);
6186            return false;
6187        }
6188
6189        $buttonRemove.on("click", function(event){
6190            if(confirm(message)){
6191                callRemoveAjax(editPage,url);
6192            }
6193
6194        });
6195    };
6196
6197    var removeVirtualCardOnPhoneChange = function (){
6198        let phone = $('#profile_phone');
6199        let inputStartVal = phone.val();
6200        let message = phone.data('alert');
6201        if(!message){
6202            console.log('Poruka ne postoji');
6203            return;
6204        }
6205        phone.on('change',function(){
6206            bootbox.confirm(message, function(result) {
6207                if(!result){
6208                    phone.val(inputStartVal);
6209                    return;
6210                }else{
6211                    userRemoveLoyaltyCard(true);
6212                }
6213            });
6214        });
6215    }
6216
6217
6218    function checkStoreDeliveryTime(productId, productCombId, catalogId){
6219
6220        if($('.block.detail-product-info-delivery').length < 1){
6221            return true;
6222        }
6223
6224        $.ajax({
6225            type: "POST",
6226            url: nb_active_page_url,
6227            dataType : 'html',
6228            data: {
6229                ajax: "yes",
6230                task: "storeDeliveryTime",
6231                productId: productId,
6232                productCombId: productCombId,
6233                catalogId: catalogId,
6234                inserBlock: 'product/product_detail/delivery_info',
6235                nbAjax: 1
6236            },
6237            cache: false,
6238            contentType: "application/x-www-form-urlencoded;charset=UTF-8",
6239            success: function(ret) {
6240                $('.block.detail-product-info-delivery').replaceWith(ret);
6241            }
6242        });
6243    }
6244
6245    var newAddressFromList = function (){
6246        var listID = $('#cart_onepage_new_address_list_id');
6247        if(listID.length > 0){
6248            $('.address-setnew input').prop('readonly',true);
6249            $('.address-setnew .twitter-typeahead').css('pointer-events','none');
6250            $('.address-setnew .form-group:not(.main-select-field)').addClass('hidden');
6251            listID.change(function(){
6252                if(listID.val()){
6253                    $('.address-setnew .form-group').removeClass('hidden');
6254                }else{
6255                    $('.address-setnew .form-group:not(.main-select-field)').addClass('hidden');
6256                }
6257            })
6258        }
6259    };
6260
6261    var addImgSrcToLink = function (wrapper){
6262        var a_src='';
6263        wrapper.find('img').each(function(){
6264            a_src = $(this).attr('src');
6265            console.log(a_src);
6266            $(this).parents('a').attr('href',a_src);
6267        });
6268    }
6269
6270    var pageZoomLevel = function(){
6271        window.addEventListener("resize", getSizes, false);
6272        function getSizes() {
6273            var $body = $('body');
6274            var zoom = ((window.outerWidth - 10) / window.innerWidth) * 100;
6275            zoom = Math.round(zoom);
6276            $body.removeClass(function (index, css) {
6277                return (css.match(/(^|\s)wpzm-\S+/g) || []).join(' ');
6278            });
6279            $body.addClass('wpzm-'+zoom);
6280        }
6281        getSizes();
6282    }
6283
6284
6285    var cookieInfoReadMoreV2 = function(){
6286        $('.cookie-info-slider-v2 .read-more-description').click(function (){
6287            $(this).parent().toggleClass('more-text');
6288
6289            if($(this).parent().hasClass('more-text')){
6290                $(this).html($(this).attr('data-less-text'));
6291            } else{
6292                $(this).html($(this).attr('data-more-text'));
6293            }
6294        })
6295    }
6296
6297    var soonSaleProduct = function(){
6298        $('#modal_soon_sale_product').on('shown.bs.modal', function (e) {
6299            $(".newsletter-form .send-request-add-soon-sale").click(function(e){
6300                NbSoonSales.prototype.addProductSoonInSale(e);
6301            });
6302        });
6303    }
6304
6305    function confirmGDPR(){
6306         createCookie('confirm_gdpr', 1, 365);
6307         createCookie('site_cookie_info', 2, 365)
6308        location.reload();
6309    }
6310
6311    //    New script
6312    function confirmGDPR_v2(){
6313        createCookie('site_cookie_info', 2, 365)
6314        $('.cokie-info-wrapper .items-wrapper .item input').each(function () {
6315            var cookieName = $(this).attr('name');
6316            if($(this).is(':checked') && $(this).val() == '1' && cookieName.includes('site_')){
6317                createCookie(cookieName, 2, 365);
6318
6319                if(cookieName === 'site_marketing_info'){
6320                    createCookie('confirm_gdpr', 1, 365);
6321                    location.reload();
6322                }
6323            }
6324        });
6325        //location.reload();
6326    }
6327
6328    function declineCookieGDPR(btn){
6329        if(!btn){
6330            createCookie('confirm_gdpr', 0, 1);
6331            createCookie('site_cookie_info', 2, 1);
6332            location.reload();
6333            return false;
6334        }
6335        question = '';
6336        if(btn.data('question') !== ''){
6337            question = btn.data('question');
6338        }
6339        if(question){
6340            bootbox.confirm(question, function(result){
6341                if(result){
6342                    //deleteAllCookies();
6343                    createCookie('confirm_gdpr', 0, 1);
6344                    //eraseCookie('site_cookie_info');
6345                    createCookie('site_cookie_info', 2, 1);
6346                    location.reload();
6347                }
6348
6349            })
6350        }else{
6351            $('.cookie-info-slider').hide( "slow" );
6352            createCookie('confirm_gdpr', 0, 1);
6353            createCookie('site_cookie_info', 2, 1);
6354        }
6355
6356    }
6357
6358    function deleteAllCookies() {
6359        var allCookies = document.cookie.split(';');
6360
6361        // The "expire" attribute of every cookie is
6362        // Set to "Thu, 01 Jan 1970 00:00:00 GMT"
6363        for (var i = 0; i < allCookies.length; i++)
6364            document.cookie = allCookies[i] + "=;expires="
6365                + new Date(0).toUTCString();
6366
6367
6368    }
6369
6370    var ckEditorAccordian = function (){
6371        var $wrapper = $('.ckeditor-acordian.acordian-items-wrapper');
6372        if($wrapper.length === 0){
6373            return false;
6374        }
6375        $wrapper.each(function (){
6376            var $item = $(this).find('.item');
6377            $item.each(function(){
6378                var thisItem = $(this);
6379                $(this).find('.title').on('click',function(){
6380                    if(thisItem.hasClass('active')){
6381                        thisItem.removeClass('active');
6382                    }else{
6383                        $item.removeClass('active');
6384                        thisItem.toggleClass('active');
6385                    }
6386
6387                })
6388            });
6389        });
6390    }
6391
6392    var showHidePassword = function(id_element,eyeElement){
6393        console.log('click');
6394        eyeElement.toggleClass('active');
6395        if(id_element.attr('type') == 'password'){
6396            id_element.attr('type','text');
6397        }else{
6398            id_element.attr('type','password');
6399        }
6400    }
6401
6402    var logoutUser = function(){
6403        CustomEventTrigger('logoutUserEvent');
6404    }
6405
6406    var validateTaxFromWebservice = function(input){
6407        var inputField = $('#'+input);
6408        var companynameField = $('#'+input.replace(/_company_pib/g, '_company_name'));
6409        var idendificationField = $('#'+input.replace(/_company_pib/g, '_user_identification'));
6410        var identificationType = $('#'+input.replace(/_company_pib/g, '_user_identification_type'));
6411        var identificationCode = $('#'+input.replace(/_company_pib/g, '_user_identification_code'));
6412        if (inputField.length && inputField.data('check-tax') && inputField.attr('data-check-tax') != '') {
6413            idendificationField.prop('disabled', false).prop('readonly', true);
6414            inputField.on('keyup', function(){
6415                var typeIdentification = '';
6416                if($('#'+input.replace(/_company_pib/g, '_user_identification_type')).val() != ''){
6417                    typeIdentification = $('#'+input.replace(/_company_pib/g, '_user_identification_type')+' option:selected').text()
6418                };
6419                var vatNumber = inputField.val();
6420                var initCheck = inputField.attr('data-check-tax');
6421                var validateTaxFromWebserviceUrl = nb_site_url+'/webservis/users/check_user_vat_number.php?vatNumber='+vatNumber+'&init='+initCheck+'&typeIdentification='+typeIdentification;
6422                $.ajax({
6423                    type: "POST",
6424                    url: validateTaxFromWebserviceUrl,
6425                    dataType: 'json',
6426                    success: function(ret){
6427                        window.ParsleyValidator.addValidator(input,
6428                            function (value, requirement) {
6429                                return ret.flag;
6430                            }, 34)
6431                            .addMessage($('html')[0].lang, input, ret.info);
6432                        inputField.parsley().validate();
6433                        idendificationField.val(ret.regNumber);
6434                        identificationType.val(ret.userPublicIdentificationTypeId);
6435                        identificationCode.val(ret.userPublicIdentificationCode);
6436                        companynameField.val(ret.companyName);
6437                    }
6438                });
6439            });
6440        }
6441    }
6442
6443    var getMenuSubcategories = function() {
6444        let $categorymenuajax = $('#categorymenuajax').length;
6445
6446        if($categorymenuajax === 0){
6447            $.ajax({
6448                type: "POST",
6449                url: nb_active_page_url,
6450                dataType: 'json',
6451                data: {
6452                    ajax: "yes",
6453                    task: "get_menu_subcategories",
6454                    nbAjax: 1
6455                },
6456                contentType: "application/x-www-form-urlencoded;charset=UTF-8",
6457                success: function(ret){
6458                    if(ret.flag){
6459                        $('.menu-generic-subcategories').html(ret.html);
6460                        getLinkFromSession();
6461                        if($(window).width() > 767){
6462                            $('#categorymenuajax ul > li').mouseover(function(){
6463                                $(this).find('.nav-main-dropdown-wrapper').removeClass('hidden');
6464                            });
6465                            $('#categorymenuajax ul > li').mouseout(function(){
6466                                $(this).find('.nav-main-dropdown-wrapper').addClass('hidden');
6467                            });
6468
6469                            $('#categorymenuajax .nav-main-dropdown-item.third-level').mouseover(function(){
6470                                $(this).addClass('active');
6471                            });
6472                            $('#categorymenuajax .nav-main-dropdown-item.third-level').mouseout(function(){
6473                                $(this).removeClass('active');
6474                            });
6475                        }else{
6476                            /*Mob*/
6477                            $('#categorymenuajax ul > li > a > i').on('click',function (e){
6478                                e.preventDefault();
6479                                e.stopPropagation();
6480                                let idd = $(this).parents('li').attr('id');
6481                                $('#categorymenuajax ul > li').each(function (e){
6482                                    if($(this).attr('id') !== idd){
6483                                        $(this).find('.nav-main-dropdown-wrapper').addClass('hidden');
6484                                    }
6485                                });
6486                                $('li#'+idd).find('.nav-main-dropdown-wrapper').toggleClass('hidden');
6487                            });
6488                            $('#categorymenuajax .nav-main-dropdown-item.third-level a > i').on('click',function (e){
6489                                e.preventDefault();
6490                                e.stopPropagation();
6491                                $(this).parents('.third-level').toggleClass('active');
6492                                $(this).parents('.third-level').find('.nav-main-dropdown-wrapper').addClass('hidden');
6493                                $(this).parents('.third-level.active').find('.nav-main-dropdown-wrapper').removeClass('hidden');
6494
6495                            });
6496
6497                        }
6498
6499                    }
6500                }
6501            });
6502        }
6503
6504    }
6505
6506    var getLinkFromSession = function(){
6507
6508        let ajaxWrapperlink = $('#categorymenuajax a.special');
6509
6510        ajaxWrapperlink.on('click',function(e){
6511            e.preventDefault();
6512            e.stopPropagation();
6513            let link = $(this).attr('href');
6514
6515            $.ajax({
6516                type: "POST",
6517                url: nb_active_page_url,
6518                dataType: 'json',
6519                data: {
6520                    ajax: "yes",
6521                    task: "format_url",
6522                    url: link,
6523                    nbTask: 'product_group_engines',
6524                    nbAjax: 1
6525                },
6526                contentType: "application/x-www-form-urlencoded;charset=UTF-8",
6527                success: function(ret){
6528                    window.location.href = ret.url;
6529                }
6530            });
6531
6532        });
6533    }
6534
6535    var validateAllTaxFromWebservice = function (){
6536        validateTaxFromWebservice('reg_page_company_pib');
6537        validateTaxFromWebservice('reg_company_pib');
6538        validateTaxFromWebservice('profile_pib');
6539        validateTaxFromWebservice('cart_onepage_company_pib');
6540        validateTaxFromWebservice('cart_onepage_company_pib_natural');
6541        validateTaxFromWebservice('cart_onepage_billing_company_pib');
6542        validateTaxFromWebservice('cart_onepage_billing_company_pib_natural');
6543        validateTaxFromWebservice('reclamation_public_request_iban');
6544
6545    };
6546
6547    var addRequiredFieldsApostrophe = function(){
6548        let id,text,label;
6549        $('.address-no-registration input,' +
6550            '.address-no-registration select, ' +
6551            '.address-registrated input, ' +
6552            '.address-registrated select').each(function(){
6553            if($(this).prop('required') === true){
6554                id = $(this).attr('id');
6555                label = $('label[for="'+id+'"]');
6556                text = label.html();
6557                label.html('*'+text);
6558            }
6559        });
6560    }
6561
6562    function RateCommentsShow(){
6563        if(nb_type_page === 'product'){
6564            var id = window.location.hash;
6565            if(!id){
6566                return false;
6567            }
6568            let tabid = id.replace('#','');
6569
6570            setTimeout(function (e) {
6571                $("a[href='"+id+"']").click();
6572                if(typeof ($(id).offset()) != 'undefined') {
6573                    //$('html, body').animate({scrollTop:($(id).offset().top - 220)}, 'slow');
6574                    document.getElementById(tabid).scrollIntoView({
6575                        behavior: 'auto',
6576                        block: 'center',
6577                        inline: 'center'
6578                    });
6579                }
6580            },500)
6581
6582        }
6583
6584    }
6585
6586    function modalAfterAddToCartProducts(product) {
6587
6588            if(typeof disableMultipleProductsLoad !== "undefined" && !disableMultipleProductsLoad) return;
6589
6590            if(!$('#modal_after_add_to_cart').length){
6591                console.log('nije ukluceno')
6592                return false;
6593            }
6594
6595             //var product = product;
6596             var product = JSON.parse(window.localStorage.getItem("addedToCartProduct"));
6597             let productId;
6598             let productCombId;
6599             let productAmount;
6600             let productSize;
6601
6602            if(typeof product === "object" && product === null){
6603                console.log('No product');
6604                return false;
6605            }
6606
6607            if(typeof product === 	"object" && product != null){
6608                productId = product.id;
6609                productCombId = product.combId;
6610                productAmount = product.amount;
6611                productSize = product.size;
6612            }else{
6613                productId = product;
6614                productCombId = false;
6615                productAmount = false;
6616                productSize = false;
6617            }
6618
6619        //init ater add  products slider
6620            function initAfterAddToCartSlider() {
6621                var afterAddToCartproductsSliderElementId = '.after-add-to-cart > .slider-init';
6622                var afterAddToCartrproductsSliderOptions   = {dots: true, arrows: false,  slidesToShow: 4,
6623                    responsive: [
6624                        {breakpoint: 1400, settings: { slidesToShow: 4}},
6625                        {breakpoint: 1025, settings: { slidesToShow: 3}},
6626                        {breakpoint: 768,  settings: { slidesToShow: 3}},
6627                        {breakpoint: 480,  settings: { slidesToShow: 1.5}}
6628                    ]};
6629
6630                initSlider(afterAddToCartproductsSliderElementId, afterAddToCartrproductsSliderOptions);
6631            }
6632
6633
6634            $.ajax({
6635                type: "POST",
6636                url: nb_active_page_url,
6637                dataType: 'json',
6638                data: {
6639                    nbAjax:1,
6640                    task: "products_after_add_to_cart",
6641                    block: "product/product_slider/product_slider_after_add_to_cart",
6642                    productId: productId,
6643                    productCombId: productCombId,
6644                    amount: productAmount,
6645                    size: productSize
6646                },
6647                cache: false,
6648                contentType: "application/x-www-form-urlencoded;charset=UTF-8",
6649                success: function(ret) {
6650                    if(ret.flag && ret.html !== "" && ret.html !== " "){
6651                        $('#add-to-cart-ajax-wrapper').html(ret.html);
6652                        nbshopJS.CustomEventTrigger('products_after_add_to_cart');
6653                        window.localStorage.removeItem("addedToCartProduct");
6654                        initAfterAddToCartSlider();
6655                        app.handlePopover($('.product-item [rel=popover]'));
6656
6657                        if(typeof disableMultipleProductsLoad !== "undefined" && disableMultipleProductsLoad) disableMultipleProductsLoad = false;
6658
6659                    }else{
6660                        window.localStorage.removeItem("addedToCartProduct");
6661                        console.log('nema proizvoda');
6662                    }
6663                }
6664            });
6665
6666        $("#modal_after_add_to_cart").on("hidden.bs.modal", function () {
6667            if(typeof disableMultipleProductsLoad !== "undefined" && !disableMultipleProductsLoad) disableMultipleProductsLoad = true;
6668        })
6669
6670    };
6671
6672    function initSugestiveShopping() {
6673        if($('#modal_after_add_to_cart').length === 0){
6674            return false;
6675        }
6676       /* window.addEventListener('cartButtonClick', function (e){
6677            nbshopJS.modalAfterAddToCartProducts(e.detail);
6678        });*/
6679
6680        let optionsBtn = $(".options-wrapper");
6681
6682        if(nb_type_page !== 'home' || (typeof optionsBtn != "undefined" && optionsBtn.length > 0)) {
6683            $(window).on('products_after_add_to_cart', function (){
6684                $('#modal_after_add_to_cart').modal('show');
6685            })
6686        }
6687    }
6688
6689    function modalHeadlinesActionTicket(){
6690        let $modal = $('#headlines_action_modal');
6691        if($modal.length === 0){
6692            return false;
6693        }
6694        let $showModal = false;
6695        let cookieValue = readCookie('NBheadlinesActionModal');
6696
6697        let now = new Date();
6698        let time = now.getTime();
6699        //time += 3600 * 1000;
6700        time += (3600 * 1000)*3; //3h
6701
6702        now.setTime(time);
6703
6704        if(cookieValue != '1'){
6705            setTimeout(function(){
6706                $modal.modal('show');
6707            },500)
6708
6709        }
6710
6711        $modal.on('hide.bs.modal', function(e){
6712            createCookie('NBheadlinesActionModal', "1", 0.21);
6713        });
6714
6715    }
6716
6717    function checkAllCookies() {
6718        $('.cokie-info-wrapper .check-cookies-wrapper .item input, .cookie-info-slider-items .item input').each(function () {
6719            if(!$(this).is(':checked')){
6720                $(this).trigger('click');
6721            }
6722        })
6723
6724        $('.cookie-agree, .cookie-agree-gdpr').trigger('click')
6725    }
6726
6727    function acceptAllCookies() {
6728        $('.cookie-info-slider-v2 .cokie-info-wrapper .check-cookies-wrapper .item input, .checkbox-options-wrapper .item input').each(function () {
6729            if(!$(this).is(':checked')){
6730                $(this).trigger('click');
6731            }
6732        })
6733
6734        confirmGDPR_v2();
6735    }
6736
6737    function acceptNecessaryCookies() {
6738        $('.cookie-info-slider-v2 .cokie-info-wrapper .check-cookies-wrapper .item input').each(function () {
6739            if($(this).is(':checked')){
6740                $(this).trigger('click');
6741            }
6742        })
6743
6744        createCookie('site_cookie_info', 2, 1);
6745        location.reload();
6746    }
6747
6748    function checkAll($wrapper,element){
6749        if($wrapper.hasClass('chcekcedall')){
6750            $wrapper.find('input').icheck('unchecked');
6751            $wrapper.removeClass('chcekcedall');
6752            element.text(element.data('checkedalltext'));
6753
6754        }else{
6755            $wrapper.find('input').icheck('checked');
6756            $wrapper.addClass('chcekcedall');
6757            element.text(element.data('uncheckedalltext'));
6758        }
6759
6760    }
6761
6762    function openCookieDescription(){
6763        $('.cookie-read-more-wrapper').toggleClass('active');
6764    }
6765
6766    var formPhoneMask = function(){
6767        let phonefield = $('input[type="tel"]');
6768
6769        phonefield.each(function(){
6770
6771            let $tel_input = $(this);
6772            let id = $tel_input.attr('id');
6773            let $wrapper = $tel_input.parents('.form-group ');
6774            let label_text = $('label[for="'+id+'"]').text();
6775            let prefix = id.replace('phone','');
6776            let init_val = $tel_input.val();
6777            let readonly = $tel_input.attr('readonly');
6778
6779            let $template = $('#tmp-phone-with-prefix');
6780            let testhtml = $template.html();
6781            if(testhtml){
6782                $tel_input.addClass('hidden');
6783                let newtest = testhtml.replaceAll('--',prefix)
6784                $wrapper.append(newtest);
6785                fillOnChange($tel_input,prefix,readonly);
6786                if($tel_input.val()){
6787                    prepopulated($tel_input,prefix);
6788                }
6789            }
6790/*
6791            $.ajax({
6792                type: "POST",
6793                url: nb_active_page_url,
6794                dataType: 'json',
6795                data: {
6796                    nbAjax:1,
6797                    task:"form_phone_mask",
6798                    prefix:prefix,
6799                    label: label_text
6800                },
6801                contentType: "application/x-www-form-urlencoded;charset=UTF-8",
6802                success: function(ret) {
6803                    if(ret.flag){
6804                        $tel_input.addClass('hidden');
6805                        $wrapper.append(ret.html);
6806                        fillOnChange($tel_input,prefix,readonly);
6807                        if($tel_input.val()){
6808                            prepopulated($tel_input,prefix);
6809                        }
6810                    }else{
6811
6812                    }
6813                }
6814            });
6815            */
6816        });
6817
6818        function fillOnChange(OriginalElement, prefix,readonly){
6819            let select_id = '#'+prefix+'p_prefix'
6820            let select = $(select_id);
6821            let newInput = $('#'+prefix+'p_after_prefix');
6822            let selval = select.val();
6823            let selinp = '';
6824            let fullinp = '';
6825
6826            if(readonly){
6827                select.attr('readonly',true);
6828                newInput.attr('readonly',true);
6829            }
6830
6831            select.on('change', function(){
6832                selval = $(this).val();
6833                selinp = newInput.val();
6834                fullinp = selval+selinp;
6835                changeInput(OriginalElement,fullinp)
6836            })
6837
6838            newInput.on('keyup', function(){
6839                selinp = $(this).val();
6840                fullinp = selval+selinp;
6841                changeInput(OriginalElement,fullinp)
6842
6843            })
6844
6845        }
6846        function prepopulated(originalValue,prefix){
6847            let value = originalValue.val();
6848            let select_id = '#'+prefix+'p_prefix';
6849            let newInput = $('#'+prefix+'p_after_prefix');
6850            let options = $(select_id+' option');
6851            let newVal = '';
6852            options.each(function(){
6853                if(originalValue.val().includes($(this).val())){
6854                    newVal = originalValue.val().replace($(this).val(),'');
6855                    $(select_id).val($(this).val());
6856                    newInput.val(newVal);
6857                }else{
6858                    originalValue.val('')
6859                }
6860
6861            });
6862
6863        }
6864
6865        function changeInput(element,value){
6866            element.val(value)
6867            element.trigger('change');
6868        }
6869
6870    }
6871
6872    var successAddToCartBtn = function(){
6873        let product = JSON.parse(window.localStorage.getItem("addedToCartProduct"));
6874        if(product){
6875
6876            let $btn = $('.btn-activated');
6877            let $btnHtml = $btn;
6878            if($btn.hasClass('quick-buy-color-size-btn')){
6879                $btnHtml = $('.btn-activated span');
6880            }
6881            $btnHtml.html($btn.data('btn-text-addedtocart'));
6882            setTimeout(function(){
6883                $btnHtml.html($btn.data('btn-text-addtocart'));
6884                $btnHtml.attr('data-content', '');
6885                $btnHtml.removeClass('cart-increased');
6886                $btnHtml.removeClass('btn-activated');
6887            }, 2000);
6888        }
6889    }
6890
6891    var autocompleteValidation = function(){
6892
6893        if(typeof nb_countryGeoId === "undefined"){
6894            return false
6895        }
6896        if(typeof nb_addressByCountryGeoId === "undefined"){
6897            return false
6898        }
6899        if(nb_addressByCountryGeoId == ''){
6900            return false
6901        }
6902        console.log('Validacija adrese po drzavi');
6903
6904        let activeCountry = nb_countryGeoId;
6905        let countryid = '_country_geo_id';
6906        var $selectCountry = $('[id$='+countryid+']');
6907        let sel_val ='';
6908        let field_prefix= '';
6909        let $adressField ='';
6910        let $cityField ='';
6911        let $cityFieldId ='';
6912        let $postcodeField ='';
6913
6914
6915        $('#cart_onepage_country_geo_id').parent().addClass('up-change');
6916
6917        $selectCountry.each(function(){
6918            sel_val = $(this).val();
6919            field_prefix = $(this).attr('id').replace(countryid,'');
6920
6921            $cityField = $('#'+field_prefix+'_city');
6922            $cityFieldId = $('#'+field_prefix+'_city_id');
6923            $postcodeField = $('#'+field_prefix+'_postcode');
6924            if(sel_val === activeCountry){
6925                //ne inicijalizuje se posto je vec prosla inicijalizacija
6926                $postcodeField.renameAttr('data-parsley-lengthone-false','data-
6926parsley-lengthone')
6927                //initFormAutocomplete(field_prefix,$postcodeField);
6928            }else{
6929                /* Gasenje autocomplete */
6930                //$cityField.removeEventListener("focusout");
6931                $cityField.unbind('focusout change');
6932                $cityField.on('focusout change', function(){
6933                    return false;
6934                })
6935
6936                removeFormAutocomplete($cityField,$postcodeField,$cityFieldId,field_prefix)
6937            }
6938        });
6939
6940            $selectCountry.on('change',function(){
6941            sel_val = $(this).val();
6942            field_prefix = $(this).attr('id').replace(countryid,'');
6943
6944                $cityField = $('#'+field_prefix+'_city');
6945                $postcodeField = $('#'+field_prefix+'_postcode');
6946
6947                /*Brisanje predhodne vrednosti*/
6948                $cityField.val('');
6949                $postcodeField.val('');
6950
6951            if(sel_val === activeCountry){
6952                initFormAutocomplete(field_prefix,$postcodeField);
6953                $postcodeField.renameAttr('data-parsley-lengthone-false','data-parsley-lengthone')
6954            }else{
6955                /*Gasenje autocomplete*/
6956                $cityField.unbind('focusout change');
6957                removeFormAutocomplete($cityField,$postcodeField,$cityFieldId,field_prefix)
6958            }
6959        });
6960
6961            function resetFields(){
6962
6963            }
6964
6965            function initFormAutocomplete(field_prefix,$postcodeField){
6966                app.handleTypehead().initTypeheadCities(field_prefix+'_city_id', field_prefix+'_city', field_prefix+'_address', field_prefix+'_postcode', field_prefix+'_region_id');
6967                $postcodeField.attr('readonly',true);
6968                $postcodeField.renameAttr('data-parsley-lengthone-false','data-parsley-lengthone')
6969            }
6970
6971            function removeFormAutocomplete($cityField,$postcodeField,$cityFieldId,prefix){
6972                $cityField.typeahead('destroy');
6973                $cityFieldId.attr('id',field_prefix+'_city_id_no');
6974                console.log($cityFieldId)
6975                $cityFieldId.attr('name',field_prefix+'_city_id_no');
6976                $postcodeField.attr('readonly',false);
6977                $postcodeField.renameAttr('data-parsley-lengthone','data-
6977parsley-lengthone-false')
6978            }
6979
6980
6981    }
6982
6983    var intNewCommentsAjax = function(){
6984        if($("#tab_product_comments").hasClass('active') || $("#tab_product_comments_two").hasClass('active') || $("#tab_product_comments_two_v1").hasClass('active')){
6985            loadCommentsData(0);
6986        }
6987
6988        if(($('#commentsContent *').length == 0) && $('#commentsContent').length && $('#commentsContent').parents(".product-generic-tabs").length == 0){
6989            loadCommentsData(0);
6990        }
6991
6992        $('a[href="#tab_product_comments"]').click(function(){
6993            loadCommentsData(0);
6994        });
6995        $('a[href="#tab_product_comments_two"]').click(function(){
6996            loadCommentsData(0);
6997        });
6998        $('a[href="#tab_product_comments_two_v1"]').click(function(){
6999            loadCommentsData(0);
7000        });
7001    }
7002
7003    var handleProductSizeTransition = function () {
7004        $(window).on("storeAvailabilityLoaded", function () {
7005
7006            let productStateWrapper = $(".productstate-product");
7007
7008            if (typeof productStateWrapper === "undefined" || productStateWrapper.length === 0 || nb_type_page !== "product") return;
7009
7010            const observer = new IntersectionObserver(entries => {
7011                entries.forEach(entry => {
7012                    if (entry.isIntersecting) {
7013                        productStateInViewportCheck = true;
7014                        nbshopJS.selectStoreProductSize();
7015                    } else {
7016                        productStateInViewportCheck = false;
7017                    }
7018                });
7019            }, {
7020                rootMargin: "50px 50px"
7021            });
7022
7023            productStateWrapper.each(function() {
7024                observer.observe(this);
7025            });
7026        });
7027    }
7028
7029    var downloadCartProformaInvoice = function(sessionId, secureKey){
7030        var formData = $("#cart_onepage_form").serialize();
7031
7032        $.ajax({
7033            type: "POST",
7034            url: getCartPageUrl(),
7035            data: formData+'&ajax=yes&reload=no&task=downloadProformaInvoice&sessionId='+sessionId+'&secureKey='+secureKey,
7036            contentType: "application/x-www-form-urlencoded;charset=UTF-8",
7037            dataType: 'json',
7038            success: function(ret) {
7039                if(ret.flag && ret.file){
7040
7041                    var url = '?ajax=yes&reload=no&task=downloadProformaInvoice&preview=yes&file='+ret.file;
7042                    window.open(url);
7043                    return;
7044                }
7045                return;
7046            }
7047        });
7048    };
7049
7050    return {
7051        mobileBreakpoint: mobileBreakpoint,
7052        //setLocales: setLocales,
7053        init: function(){
7054            //initCustomEvent();
7055            //mozda bude visa, mozda bi trebalo samo osnovno da se inicijalizuje
7056            windowWidth();
7057            windowHeight();
7058            handleAddElementClasse('.text-wrapper table','table');
7059            handleAccordion($('#accordion'));
7060            handleModalCenter();
7061            handleProductListImgSlider();
7062            handleCollapsingFooterMenu();
7063            itemProductListGrid();
7064            handleAppendtoHandlinesSlider();
7065            handleShowMoreText();
7066            handleProductSizeSelector();
7067            handleMasonry();
7068            HandleGiftCardOptionsCheck();
7069            toggleMapStoreList();
7070            changeProductQuantity();
7071            handleYoutubeAspectRatioArticleVideo();
7072            filterSelectorActive();
7073            mobileSideCartDinamicHeight();
7074            if($(".counter").length){
7075                handleSliderCountdown($(".counter"));
7076            }
7077            articleSliderWithPagination();
7078            handleParallax();
7079            //handleParallaxOld();
7080            scrollToGeoSelector();
7081            getBrandsPermalinkFromMenu();
7082            menu4levelRelative();
7083            HandlePdfCatalog($('#book'));
7084            disableDesktopTelLink();
7085            sizeGuideShowDescription();
7086            onYouTubeIframeAPIReady();
7087            flowPlayerAPI();
7088            onYouTubeIframeAPIReadyItemsVideo($( ".smallItemVideo" ));
7089            firstProductTabActive();
7090            showMoreFilters();
7091            activeColorFilterLabele();
7092            handleModalMap($('.contact-map-modal .map-link'), '', $('#map_modal')); /* Map modal on Contact page */
7093            handleHTMLEditorTableResponsive();
7094            toggleCommentInputs();
7095            PromoLocationCountryFilter();
7096            promoLocationSelector();
7097            GdprPage();
7098            handledropdownLogin();
7099            cookieInfoNew();
7100            showMoreSimilarProductInList();
7101            showMoreSimilarProductByColor();
7102            dropdownLoginForm();
7103            handleScrollToTop();
7104            cartWithStepsButtons();
7105            notAllowePostCodesForDeliveryCheck();
7106            quickBuyButtonV3();
7107            filterButtonActive();
7108            productQuickBuyBobble();
7109            loginPopupToDoprdown();
7110            productSimilarItem();
7111            initProductSliderV3();
7112            toggleItemsAccordian();
7113            parallaxIt();
7114            dropdownLangFromSlider();
7115            drowLineOnMapItems();
7116            toggleReadMoreItem();
7117            itemListProductInTabs();
7118            itemProductListTabsWithFilters();
7119            threeSixtyView();
7120            itemMp4VideoPlayer();
7121            initSliderOnCart(false);
7122            showMoreItemTabImg();
7123            textFirstLabel();
7124            removeUiRole();
7125            activProductInPopupItem();
7126            inportProductListOnClick();
7127            if($('map').length){
7128                $('map').imageMapResize();
7129            }
7130            exitMouseModal();
7131            travelBookingForm();
7132            redirectToSomePageNewLang();
7133            mainImageMapDescription();
7134            popupWithSliderItems();
7135            searchProductFromListIntro();
7136            addInputtsToReclamationForm();
7137            initMapInStoreDetail();
7138            initSlimilarColorSlider();
7139            changeThemeStyle();
7140            fullSreenMenu();
7141            enableCheckAndAddToCart();
7142            removeArrow2levlonly();
7143            slimilarColorInProductList();
7144            closeMobileMenu();
7145            SizesTabsOnDetail();
7146            newAdressTriger();
7147            OpenAdminRibbon();
7148            NCXcartMobile();
7149            gridSliderImageLoad();
7150            parallaxHorizontalTwoImgItems();
7151            scrollScaleItems();
7152            itemScrollTitle();
7153            slidersTabsItems();
7154            scrollToNextItem();
7155            scrollToItemLink();
7156            removetooltipSizesMob();
7157            itemMainSlider();
7158            itemSliderWithTwoImg();
7159            productListBanerSlider();
7160            PromoSidePopup();
7161            tlocartGalleryInit();
7162            viewMoreArticleList();
7163            selectFieldOfWork();
7164            chackBoxRequired();
7165            SizesTabsOnDetailSBL();
7166            shopByLookSizesTabs();
7167            productDetailAttributesAccordion();
7168            paymentCardPopup();
7169            checkoutRedirectBank();
7170            //openModalAfterTime();
7171            cartGiftPopup();
7172            insertProductDataCookie();
7173            addMoreThenFiveProductToFavorite();
7174            typeaheadAddScript();
7175            handleBackButtonProductListing();
7176            handleSavedPaymentCards();
7177            storeOnMapCategoryHideFilters();
7178            verificationLoyaltyCard();
7179            userRemoveLoyaltyCard();
7180            addImgSrcToLink($('.profile-my-vaucher-list'));
7181            soonSaleProduct();
7182            contactSubmitLoadButton($('.career-form-wrapper .btn.confirm-loader'));
7183            contactSubmitLoadButton($('#contact_submit'));
7184            ckEditorAccordian();
7185            validateAllTaxFromWebservice();
7186            modalHeadlinesActionTicket();
7187            //modalAfterAddToCartProducts();
7188            initSugestiveShopping();
7189            defaultCartEmailValue();
7190            hideChangeSizePopup();
7191            cookieInfoReadMoreV2();
7192            if(typeof(nbFormPhoneMaskEnable) != "undefined" && nbFormPhoneMaskEnable) {
7193                formPhoneMask();
7194            }
7195            autocompleteValidation();
7196            //newAddressFromList();
7197
7198            if(lozadJsFlag){
7199                lozad('.lozad', {
7200                    load: function(el) {
7201                        if (!el.classList.contains('lazy-loaded')) {
7202                            el.src = el.dataset.originalImg;
7203                            if(el.src !== undefined){
7204                                el.onload = function() {
7205                                    el.classList.add('fade');
7206                                }
7207                            }
7208                        }
7209                    }
7210                }).observe();
7211            }
7212            safariWebP();
7213            CustomEventTrigger('NBShopJSLoaded');
7214            intNewCommentsAjax();
7215        },
7216        width: windowWidth,
7217        height: windowHeight,
7218        initSlider: initSlider,
7219        initSliderEach:initSliderEach,
7220        filterSelectorActive:filterSelectorActive,
7221        initSliderLev2: initSliderLev2,
7222        printFrame: printFrame,
7223        handleBindedToTab: handleBindedToTab,
7224        clickOpenVerticalTabTab: clickOpenVerticalTabTab,
7225        handleAnchorLinks: handleAnchorLinks,
7226        handleMap: handleMap,
7227        handleSliderCountdown: handleSliderCountdown,
7228        initMapInStoreLoaction: initMapInStoreLoaction,
7229        initMapInStoreLoactionWithSelector: initMapInStoreLoactionWithSelector,
7230        handleAccordion: handleAccordion,
7231        handleModalMap: handleModalMap,
7232        handleNearestStoresMap:handleNearestStoresMap,
7233        handleParallax: handleParallax,
7234        handleParallaxOld: handleParallaxOld,
7235        initDatepicker: initDatepicker,
7236        handleWarningCart: handleWarningCart,
7237        handleCollapsingFooterMenu: handleCollapsingFooterMenu,
7238        handleFullscreenMouseoverZoom: handleFullscreenMouseoverZoom,
7239        handleMouseText:handleMouseText,
7240        handleProductSizeSelector:handleProductSizeSelector,
7241        changeProductQuantity:changeProductQuantity,
7242        handleCartClose:handleCartClose,
7243        HandlePdfCatalog:HandlePdfCatalog,
7244        handleHTMLEditorTableResponsive: handleHTMLEditorTableResponsive,
7245        showMoreFilters: showMoreFilters,
7246        activeColorFilterLabele: activeColorFilterLabele,
7247        showMoreSimilarProductByColor: showMoreSimilarProductByColor,
7248        closeMenu: closeMenu,
7249        quickBuyButtonV3: quickBuyButtonV3,
7250        handleAppendtoHandlinesSlider: handleAppendtoHandlinesSlider,
7251        filterButtonActive: filterButtonActive,
7252        loginPopupToDoprdown: loginPopupToDoprdown,
7253        handleScrollToTop:handleScrollToTop,
7254        filterCheeckToSelect:filterCheeckToSelect,
7255        initSliderOnCart:initSliderOnCart,
7256        getUrlParameter:getUrlParameter,
7257        mobileSideCartDinamicHeight:mobileSideCartDinamicHeight,
7258        CustomEventTrigger:CustomEventTrigger,
7259        initSlimilarColorSlider: initSlimilarColorSlider,
7260        getProductThumbColor: getProductThumbColor,
7261        productQuickBuyBobble: productQuickBuyBobble,
7262        slimilarColorInProductList: slimilarColorInProductList,
7263        removeArrow2levlonly: removeArrow2levlonly,
7264        selectStoreProductSize:selectStoreProductSize,
7265        handleProductListImgSlider: handleProductListImgSlider,
7266        ShopByLookOneClick:ShopByLookOneClick,
7267        productListBanerSlider: productListBanerSlider,
7268        GetFormSubmitCity:GetFormSubmitCity,
7269        productDetailTabsToVertical:productDetailTabsToVertical,
7270        printPdf:printPdf,
7271        videoSliderHtml:videoSliderHtml,
7272        insertProductDataCookie:insertProductDataCookie,
7273        cartGiftPopup:cartGiftPopup,
7274        checkCityValue:checkCityValue,
7275        contactSubmitLoadButton:contactSubmitLoadButton,
7276        checkStoreDeliveryTime:checkStoreDeliveryTime,
7277        pageZoomLevel:pageZoomLevel,
7278        newAddressFromList:newAddressFromList,
7279        removeVirtualCardOnPhoneChange:removeVirtualCardOnPhoneChange,
7280        verificationLoyaltyCard:verificationLoyaltyCard,
7281        confirmGDPR:confirmGDPR,
7282        confirmGDPR_v2:confirmGDPR_v2,
7283        declineCookieGDPR:declineCookieGDPR,
7284        showHidePassword:showHidePassword,
7285        logoutUser:logoutUser,
7286        getMenuSubcategories: getMenuSubcategories,
7287        getLinkFromSession: getLinkFromSession,
7288        addRequiredFieldsApostrophe: addRequiredFieldsApostrophe,
7289        RateCommentsShow:RateCommentsShow,
7290        modalHeadlinesActionTicket:modalHeadlinesActionTicket,
7291        modalAfterAddToCartProducts:modalAfterAddToCartProducts,
7292        bookingAjaxForm:bookingAjaxForm,
7293        closeOpendElementOnOutClick:closeOpendElementOnOutClick,
7294        SizesTabsOnCart:SizesTabsOnCart,
7295        acceptAllCookies:acceptAllCookies,
7296        checkAllCookies:checkAllCookies,
7297        acceptNecessaryCookies:acceptNecessaryCookies,
7298        checkAll:checkAll,
7299        openCookieDescription:openCookieDescription,
7300        successAddToCartBtn:successAddToCartBtn,
7301        handleMasonry:handleMasonry,
7302        handleProductSizeTransition: handleProductSizeTransition,
7303        downloadCartProformaInvoice: downloadCartProformaInvoice,
7304        redirectToSomePageNewLang: redirectToSomePageNewLang
7305    };
7306}
7307/* end  */

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.