PageSourceSearch

https://www.sportvision.ba/nb-public/themes/nbshop5_v5_8/_static/js/nbscript/nbshop.gdpr.js?ver=1053_5.2

js sportvision.ba collected 2026-09-26 11:07:44 UTC 11,606 bytes, 289 lines download raw bytes

1/* NB SHOP Demo JS script
2 * By NB SHOP & NB SOFT
3 * www.nbsoft.rs www.nbshop.rs
4 * NB SOFT Licensed.
5 */
6function NbGdpr(){
7
8    var GdprPage = function(){
9
10        var gpdr_form_validate = function(){
11            var form = $('.gdpr_checklist_form, .gdpr_form.gdpr-style, .gdpr_form_newsletter');
12            if(!form.length) return;
13            var validate = form.validate().data('nb.validate');
14        };
15
16        $('.gdpr_checklist_form').each(function(){
17
18            var formRequestForToken = $(this).serialize();
19
20            var validate = $(this).validate({
21                formData: { nbAjax: 1, ajax: 'yes', nbTask: 'gdpr', task: 'requestfortoken' }
22            }).data('nb.validate');
23
24            validate.$element.bind('nb.validate.remoteSuccess', function(e){
25                validate.$element.find('.form-control, .btn, .form-group label, .form-group').addClass('hidden');
26            });
27        });
28
29        $('.gdpr_form').each(function(){
30
31            var gdprForm = $(this).serialize();
32
33            var validate = $(this).validate({
34                formData: { nbAjax: 1, ajax: 'yes', nbTask: 'gdpr', task: 'save' }
35            }).data('nb.validate');
36
37            validate.$element.bind('nb.validate.remoteSuccess', function(e){
38                validate.$element.find('.form-control, .btn, .form-group label, .form-group, .title').addClass('hidden');
39            });
40        });
41
42        $('.gdpr_form_newsletter').each(function(){
43
44            var gdprFormNewsletter = $(this).serialize();
45
46            var validate = $(this).validate({
47                formData: { nbAjax: 1, ajax: 'yes', nbTask: 'gdpr_newsletter', task: 'save' }
48            }).data('nb.validate');
49
50            validate.$element.bind('nb.validate.remoteSuccess', function(e){
51                validate.$element.find('.form-control, .btn, .form-group label, .form-group, .title').addClass('hidden');
52            });
53        });
54
55        var $form = $('gdpr_form, .gdpr_form_newsletter');
56        var $form_checkbox = $('.gdpr_form input:checkbox, .gdpr_form_newsletter input:checkbox');
57        $form.find('input').hide();
58        $form.find('label[for^="gdpr_aditionaldata"]').hide();
59        $form.find('label[for^="gdpr_aditionaldata"]').filter('label[for *=_check]').show();
60        $form.find('input[type=radio]').parent().hide();
61        $form.find('.additional-data').hide();
62
63        function showHideInput(name_check){ //show it when the checkbox is clicked
64
65            var name = name_check.replace('_check','');
66            var $checkbox = $('input[name="'+name_check+'"]');
67            var $confirm_name = 'gdpr_confirm_user';
68
69
70            var $input = $('input[name^="'+name+'"]');
71            var $label = $('label[for^="'+name+'"]');
72            var elementclass = '.list-items-wrapper .additional-data';
73            var eltype = 'input[type=radio]';
74            if ($checkbox.prop('checked')) {
75                if($input.attr('name')=='gdpr_confirm_user'){
76                    $input.prop('required',true);
77                }
78                $input.prop('required',true).fadeIn();
79                $label.fadeIn();
80                $input.filter(eltype).parent().fadeIn();
81                $input.filter(eltype).parents(elementclass).fadeIn();
82                $input.parent().children().filter('.validation-errors-list').show();
83            }
84            else {
85                $input.prop('required',false).hide();
86                $input.parent().children().filter('.validation-errors-list').hide();
87                if($input.attr('name') == $confirm_name){
88                    $input.prop('required',true);
89                    $input.parent().children().filter('.validation-errors-list').show();
90                }
91                $label.hide();
92                $input.filter(eltype).parent().hide();
93                $input.filter(eltype).parents(elementclass).hide();
94                $label.filter('label[for="'+name_check+'"]').show();
95            }
96
97        }
98
99        $form_checkbox.each(function(){
100            var input_name = $(this).attr('name');
101            showHideInput(input_name);
102        });
103
104        $form_checkbox.click(function(){
105            var input_name = $(this).attr('name');
106            showHideInput(input_name);
107        });
108
109        gpdr_form_validate();
110
111        function additionCheckbox($addData, $all){
112            $all.change(function(){
113                if($(this).prop('checked')){
114                    $(this).prop('checked', true).parent().addClass('checked');
115                }else{
116                    $(this).prop('checked', false).parent().removeClass('checked');
117                }
118
119            });
120        }
121
122        //Checkbox conditions for registrations
123        var additonaldatacheck             = 'input[name="reg_sendUserAdditionalData"]',
124            additonaldataSMScheck          = 'input[name="reg_sendSMS"]';
125            additonaldataEmailcheck        = 'input[name="reg_sendNewsletter"]',
126            additonaldataPhoneCall        = 'input[name="reg_callMeOnPhone"]',
127            $additonaldatacheck        = $(additonaldatacheck),
128            $additonaldataSMScheck     = $(additonaldataSMScheck),
129            $additonaldataEmailcheck   = $(additonaldataEmailcheck),
130            $additonaldataPhoneCall   = $(additonaldataPhoneCall),
131            $adddataAll                    = $additonaldataSMScheck.add(additonaldataEmailcheck),
132            $all                           = $additonaldatacheck.add(additonaldataEmailcheck).add(additonaldataSMScheck).add($additonaldataPhoneCall);
133
134        additionCheckbox($adddataAll, $all);
135
136        //uncheck if additaional SMS and EMAIL are not checked
137        $adddataAll.change(function(){
138            if(!$additonaldataSMScheck.prop('checked') && !$additonaldataEmailcheck.prop('checked')){
139                $additonaldatacheck.prop('checked',false).parent().removeClass('checked');
140                $additonaldataPhoneCall.prop('checked',false).parent().removeClass('checked');
141                $('#reg_email_checkgroup, #reg_phone_checkgroup').closest('.form-group-checklabel').css({'pointerEvents':'none','opacity':'.5'});
142            }
143
144        });
145
146        // Reg page
147        var additonaldatacheckPage             = 'input[name="reg_page_sendUserAdditionalData"]',
148            additonaldataSMScheckPage          = 'input[name="reg_page_sendSMS"]';
149            additonaldataEmailcheckPage               = 'input[name="reg_page_sendNewsletter"]',
150            additonaldataPhoneCallPage              = 'input[name="reg_page_callMeOnPhone"]',
151            $additonaldatacheckPage        = $(additonaldatacheckPage),
152            $additonaldataSMScheckPage     = $(additonaldataSMScheckPage),
153            $additonaldataEmailcheckPage   = $(additonaldataEmailcheckPage),
154            $additonaldataPhoneCallPage   = $(additonaldataPhoneCallPage),
155            $adddataAllPage                  = $additonaldataSMScheckPage.add(additonaldataEmailcheckPage),
156            $allPage                         = $additonaldatacheckPage.add(additonaldataEmailcheckPage).add(additonaldataSMScheckPage).add($additonaldataPhoneCallPage);
157
158        additionCheckbox($adddataAllPage, $allPage);
159
160        //uncheck if additaional SMS and EMAIL are not checked
161        $adddataAllPage.change(function(){
162            if(!$additonaldataSMScheckPage.prop('checked') && !$additonaldataEmailcheckPage.prop('checked')){
163                $additonaldatacheckPage.prop('checked',false).parent().removeClass('checked');
164                $additonaldataPhoneCallPage.prop('checked',false).parent().removeClass('checked');
165                $('#reg_page_email_checkgroup, #reg_page_phone_checkgroup').closest('.form-group-checklabel').css({'pointerEvents':'none','opacity':'.5'});
166            }
167
168        });
169        //  ---
170
171        //ako je cekiran dodatni podaci da cekira email i SMS
172        $disableGDPRCheckFlag = true;
173        if(typeof $disableGDPRCheck !== 'undefined' && $disableGDPRCheck){
174            $disableGDPRCheckFlag = false;
175        }
176        if($disableGDPRCheckFlag){
177            $additonaldatacheck.change(function(){
178                if($additonaldatacheck.prop('checked')){
179                    $additonaldataSMScheck.prop('checked', true).parent().addClass('checked');
180                    $additonaldataEmailcheck.prop('checked', true).parent().addClass('checked');
181                }
182
183            });
184        }
185
186    };
187
188    function confirmGDPR(){
189        createCookie('site_cookie_info', 2, 365)
190        $('.cokie-info-wrapper .items-wrapper .item input').each(function () {
191            var cookieName = $(this).attr('name');
192            if($(this).is(':checked') && $(this).val() == '1' && cookieName.includes('site_')){
193                createCookie(cookieName, 1, 365);
194
195                if(cookieName === 'site_marketing_info'){
196                    createCookie('confirm_gdpr', 1, 365);
197                    location.reload();
198                }
199            }
200        });
201        //location.reload();
202    }
203
204    function acceptAllCookies() {
205        $('.cokie-info-wrapper .checkbox-options-wrapper .item input').each(function () {
206            if(!$(this).is(':checked')){
207                $(this).trigger('click');
208            }
209        })
210        confirmGDPR();
211    }
212
213    function declineCookieGDPR(btn){
214        if(!btn){
215            createCookie('confirm_gdpr', 0, 1);
216            //eraseCookie('site_cookie_info');
217            createCookie('site_cookie_info', 2, 1);
218            location.reload();
219            return false;
220        }
221        question = '';
222        if(btn.data('question') !== ''){
223            question = btn.data('question');
224        }
225        if(question){
226            bootbox.confirm(question, function(result){
227                if(result){
228                    //deleteAllCookies();
229                    createCookie('confirm_gdpr', 0, 1);
230                    if(_nb_fakeDecline){
231                        createCookie('confirm_gdpr', 1, 1);
232                    }
233                    //eraseCookie('site_cookie_info');
234                    createCookie('site_cookie_info', 2, 1);
235                    location.reload();
236                }
237
238            })
239        }else{
240            $('.cookie-info-slider').hide( "slow" );
241            createCookie('confirm_gdpr', 0, 1);
242            //eraseCookie('site_cookie_info');
243            createCookie('site_cookie_info', 2, 1);
244        }
245
246    }
247
248    function openCookieDescription(){
249        $('.cookie-read-more-wrapper').toggleClass('active');
250    }
251
252    function deleteAllCookies() {
253        var allCookies = document.cookie.split(';');
254
255        // The "expire" attribute of every cookie is
256        // Set to "Thu, 01 Jan 1970 00:00:00 GMT"
257        for (var i = 0; i < allCookies.length; i++)
258            document.cookie = allCookies[i] + "=;expires="
259                + new Date(0).toUTCString();
260    }
261    function checkAllCookies() {
262        $('.cokie-info-wrapper .check-cookies-wrapper .item input, .cookie-info-slider-items .item input').each(function () {
263            if(!$(this).is(':checked')){
264                $(this).trigger('click');
265            }
266        })
267
268        $('.cookie-agree, .cookie-agree-gdpr').trigger('click')
269    }
270
271    return {
272        init: function(){
273            GdprPage();
274        },
275        GdprPage: GdprPage,
276        confirmGDPR: confirmGDPR,
277        acceptAllCookies: acceptAllCookies,
278        openCookieDescription: openCookieDescription,
279        declineCookieGDPR: declineCookieGDPR,
280        checkAllCookies:checkAllCookies
281    };
282
283};
284
285window.nbGdpr = new NbGdpr();
286
287$(document).ready(function(){
288    nbGdpr.init();
289});

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.