PageSourceSearch

https://www.buzzsneakers.sk/nb-public/themes/nbshop5_v5_8/blocks/p…/script.js?ver=1008_7.1

js buzzsneakers.sk collected 2026-10-06 20:00:30 UTC 15,382 bytes, 402 lines download raw bytes

1function NBUI_AccessibilityOptions(){}
2let body = 'body';
3let elementsClass = 'body * :not(.nb-accessibility-widget-component-1 *)';
4let modalNBUI_AccessibilityOptions = new NBUI_AccessibilityOptions()
5let originalFontSizes = new Map();
6let fontSizeSteps = new Map();
7
8NBUI_AccessibilityOptions.prototype.openAccessibilityOptions = function (element, component){
9    if (window.NBAccessibility) {
10        modelNBAccessibility.clickWithKeyboard(element);
11    }
12    $(element).click(function (){
13        $(component).toggleClass('active');
14        $(component).find('.nb-accessibility-options, .nb-accessibility-options .nb-custom-text-with-icon-1, .nb-options-heading').attr('tabindex','0');
15        if (window.NBAccessibility) {
16            modelNBAccessibility.trapFocus('.nb-accessibility-options');
17        }
18    })
19}
20NBUI_AccessibilityOptions.prototype.closeAccessibilityOptions = function (element, component){
21    if (window.NBAccessibility) {
22        modelNBAccessibility.clickWithKeyboard(element);
23    }
24    $(element).click(function (){
25        $(component).removeClass('active');
26        $(component).find('.nb-accessibility-options').attr('tabindex','-1');
27        $(component).find('.nb-accessibility-options .nb-custom-text-with-icon-1').attr('tabindex','-1');
28        $(component).find('.nbf-accessibility-trigger').focus();
29    })
30}
31NBUI_AccessibilityOptions.prototype.changeCursorSize = function (element){
32    if (window.NBAccessibility) {
33        modelNBAccessibility.clickWithKeyboard(element);
34    }
35    $(element).click(function (){
36        $(body).toggleClass('enlarge-cursor');
37        modalNBUI_AccessibilityOptions.cursorPointer('enlarge-cursor');
38        if($(body).hasClass('enlarge-cursor')){
39            modalNBUI_AccessibilityOptions.addToCookie('enlarge-cursor');
40        }else{
41            modalNBUI_AccessibilityOptions.removeFromCookie('enlarge-cursor');
42        }
43    })
44}
45NBUI_AccessibilityOptions.prototype.cursorPointer = function(bodyClass){
46    if($(body).hasClass(bodyClass)){
47        $('*').each(function() {
48            let cursorStyle = window.getComputedStyle(this).cursor;
49            if (cursorStyle === 'pointer') {
50                $(this).toggleClass('nb-pointer');
51            }
52        });
53    }
54}
55NBUI_AccessibilityOptions.prototype.changeCursorColor = function(element){
56    if (window.NBAccessibility) {
57        modelNBAccessibility.clickWithKeyboard(element);
58    }
59    $(element).click(function (){
60        $(body).toggleClass('dark-cursor');
61        modalNBUI_AccessibilityOptions.cursorPointer('dark-cursor');
62        if($(body).hasClass('dark-cursor')){
63            modalNBUI_AccessibilityOptions.addToCookie('dark-cursor');
64        }else{
65            modalNBUI_AccessibilityOptions.removeFromCookie('dark-cursor');
66        }
67
68        modalNBUI_AccessibilityOptions.cursorPointer('dark-cursor');
69    })
70}
71NBUI_AccessibilityOptions.prototype.changeFontSize = function (element, direction) {
72    let updatedElements = [];
73    let lastFontStepClass;
74
75    element.each(function () {
76        let computedStyle = window.getComputedStyle(this);
77        let currentFontSize = parseFloat(computedStyle.fontSize);
78
79        if (!originalFontSizes.has(this)) {
80            originalFontSizes.set(this, currentFontSize);
81            fontSizeSteps.set(this, 0);
82        }
83
84        let originalSize = originalFontSizes.get(this);
85        let step = fontSizeSteps.get(this);
86
87        if ((direction === 1 && step < 3) || (direction === -1 && step > -2)) {
88            let newFontSize = originalSize + (step + direction) * 2;
89            updatedElements.push({element: this, newFontSize});
90            fontSizeSteps.set(this, step + direction);
91        }
92    });
93
94    // Primeni sve promene odjednom
95    updatedElements.forEach(item => {
96        item.element.style.setProperty('font-size', `${item.newFontSize}px`);
97        lastFontStepClass = 'nbf-font-' + fontSizeSteps.get(item.element);
98    });
99
100    if (lastFontStepClass) {
101        $('body').removeClass(function(index, className) {
102            return (className.match(/nbf-font-[^\s]+/g) || []).join(' ');
103        });
104
105        $('body').addClass(lastFontStepClass);
106        modalNBUI_AccessibilityOptions.addToCookie(lastFontStepClass);
107    }
108
109};
110
111NBUI_AccessibilityOptions.prototype.smallerFontSize = function (element){
112    if (window.NBAccessibility) {
113        modelNBAccessibility.clickWithKeyboard(element);
114    }
115
116    $(element).click(function (){
117        let elementAll = $(elementsClass);
118        let elementwithText = elementAll.filter(function () {
119            var justText = $(this).contents().filter(function () {
120                return this.nodeType === 3;
121            }).text().trim();
122
123            return justText !== "";
124        })
125        modalNBUI_AccessibilityOptions.changeFontSize(elementwithText, -1);
126    })
127
128}
129NBUI_AccessibilityOptions.prototype.largerFontSize = function (element){
130    if (window.NBAccessibility) {
131        modelNBAccessibility.clickWithKeyboard(element);
132    }
133    $(element).click(function (){
134        let elementAll = $(elementsClass);
135        let elementwithText = elementAll.filter(function () {
136            var justText = $(this).contents().filter(function () {
137                return this.nodeType === 3;
138            }).text().trim();
139
140            return justText !== "";
141        })
142        modalNBUI_AccessibilityOptions.changeFontSize(elementwithText, 1);
143    })
144}
145NBUI_AccessibilityOptions.prototype.resetFontSize = function (element){
146    if (window.NBAccessibility) {
147        modelNBAccessibility.clickWithKeyboard(element);
148    }
149
150    $(element).click(function (){
151        originalFontSizes.forEach((originalSize, el) => {
152            fontSizeSteps.set(el, 0);
153        });
154
155        let elementAll = $(elementsClass);
156        let elementwithText = elementAll.filter(function () {
157            var justText = $(this).contents().filter(function () {
158                return this.nodeType === 3;
159            }).text().trim();
160
161            return justText !== "";
162        })
163
164        let bodyClasses = $('body').attr('class');
165        let classList = bodyClasses ? bodyClasses.split(/\s+/) : [];
166
167        let fontClasses = classList.filter(function(cls) {
168            return cls.startsWith('nbf-font-');
169        });
170        let stepClass = fontClasses.length > 0 ? fontClasses[0] : null;
171        let step = stepClass ? stepClass.replace('nbf-font-', '') : '0';
172
173        elementwithText.each(function (){
174            $(this).css('font-size', '');
175        })
176
177        $(body).removeClass('nbf-font-'+step);
178
179        modalNBUI_AccessibilityOptions.removeFromCookie('nbf-font-0');
180        modalNBUI_AccessibilityOptions.removeFromCookie('nbf-font-1');
181        modalNBUI_AccessibilityOptions.removeFromCookie('nbf-font-2');
182        modalNBUI_AccessibilityOptions.removeFromCookie('nbf-font-3');
183        modalNBUI_AccessibilityOptions.removeFromCookie('nbf-font--1');
184        modalNBUI_AccessibilityOptions.removeFromCookie('nbf-font--2');
185
186    })
187}
188
189NBUI_AccessibilityOptions.prototype.zoomSite = function (element){
190    if (window.NBAccessibility) {
191        modelNBAccessibility.clickWithKeyboard(element);
192    }
193    $(element).click(function (){
194        $(body).toggleClass('zoomed-site');
195        if($(body).hasClass('zoomed-site')){
196            modalNBUI_AccessibilityOptions.addToCookie('zoomed-site');
197        }else{
198            modalNBUI_AccessibilityOptions.removeFromCookie('zoomed-site');
199        }
200    })
201}
202NBUI_AccessibilityOptions.prototype.darkTheme = function (element){
203    if (window.NBAccessibility) {
204        modelNBAccessibility.clickWithKeyboard(element);
205    }
206    $(element).click(function (){
207        if($(body).hasClass('dark-theme')){
208            $(body).removeClass('dark-theme');
209        }else{
210            $(body).removeClass('bright-theme').removeClass('monochrome-theme');
211            $(body).addClass('dark-theme');
212        }
213        if($(body).hasClass('dark-theme')){
214            modalNBUI_AccessibilityOptions.addToCookie('dark-theme');
215            modalNBUI_AccessibilityOptions.removeFromCookie('monochrome-theme');
216            modalNBUI_AccessibilityOptions.removeFromCookie('bright-theme');
217        }else{
218            modalNBUI_AccessibilityOptions.removeFromCookie('dark-theme');
219        }
220    })
221}
222NBUI_AccessibilityOptions.prototype.brightTheme = function (element){
223    if (window.NBAccessibility) {
224        modelNBAccessibility.clickWithKeyboard(element);
225    }
226    $(element).click(function (){
227        if($(body).hasClass('bright-theme')){
228            $(body).removeClass('bright-theme');
229        }else{
230            $(body).removeClass('dark-theme').removeClass('monochrome-theme');
231            $(body).addClass('bright-theme');
232        }
233        if($(body).hasClass('bright-theme')){
234            modalNBUI_AccessibilityOptions.addToCookie('bright-theme')
235            modalNBUI_AccessibilityOptions.removeFromCookie('dark-theme');
236            modalNBUI_AccessibilityOptions.removeFromCookie('monochrome-theme');
237        }else{
238            modalNBUI_AccessibilityOptions.removeFromCookie('bright-theme');
239        }
240    })
241}
242NBUI_AccessibilityOptions.prototype.monochromeTheme = function (element){
243    if (window.NBAccessibility) {
244        modelNBAccessibility.clickWithKeyboard(element);
245    }
246    $(element).click(function (){
247        if($(body).hasClass('monochrome-theme')){
248            $(body).removeClass('monochrome-theme');
249        }else{
250            $(body).removeClass('bright-theme').removeClass('dark-theme');
251            $(body).addClass('monochrome-theme');
252        }
253        if($(body).hasClass('monochrome-theme')){
254            modalNBUI_AccessibilityOptions.addToCookie('monochrome-theme')
255            modalNBUI_AccessibilityOptions.removeFromCookie('dark-theme');
256            modalNBUI_AccessibilityOptions.removeFromCookie('bright-theme');
257        }else{
258            modalNBUI_AccessibilityOptions.removeFromCookie('monochrome-theme');
259        }
260
261    })
262}
263NBUI_AccessibilityOptions.prototype.addToCookie = function (newClass){
264    let cookieValue = modalNBUI_AccessibilityOptions.getCookie('accessibilityOptions');
265
266    if (cookieValue?.startsWith('"') && cookieValue.endsWith('"')) {
267        cookieValue = cookieValue.slice(1, -1);
268    }
269
270    let classes = cookieValue ? cookieValue.split(' ') : [];
271
272    if(newClass.startsWith('nbf-font-')){
273        classes = classes.filter(className => !className.startsWith('nbf-font-'));
274    }
275    classes.push(newClass);
276
277    let updatedCookieValue = '"' + classes.join(' ') + '"';
278    createCookie('accessibilityOptions', updatedCookieValue);
279}
280NBUI_AccessibilityOptions.prototype.removeFromCookie = function (exClass){
281    let cookieValue = modalNBUI_AccessibilityOptions.getCookie('accessibilityOptions');
282    if (cookieValue?.startsWith('"') && cookieValue.endsWith('"')) {
283        cookieValue = cookieValue.slice(1, -1);
284    }
285
286    let classes = cookieValue ? cookieValue.split(' ') : [];
287
288    classes = classes.filter(function(option){
289        return option !== exClass;
290    })
291
292    let updatedCookieValue = '"' + classes.join(' ') + '"';
293    createCookie('accessibilityOptions', updatedCookieValue);
294}
295
296
297NBUI_AccessibilityOptions.prototype.setParameters = function (){
298    let cookieValue = modalNBUI_AccessibilityOptions.getCookie('accessibilityOptions');
299    if (cookieValue) {
300        let classes = cookieValue.replace(/^"|"$/g, ''); // skida navodnike
301
302        $(body).addClass(classes);
303
304        let bodyClasses = $('body').attr('class');
305        let classesList = bodyClasses ? bodyClasses.split(/\s+/) : [];//razdvajanje po space-u
306        let fontClasses = classesList.filter(function (cls) {
307            return cls.startsWith('nbf-font-');
308        });
309        let stepClass = fontClasses.length > 0 ? fontClasses[0] : null;
310
311        if(stepClass) {
312            let step = stepClass ? stepClass.replace('nbf-font-', '') : '0';
313            let stepVal = parseInt(step);
314
315            let newFontSize
316            let updatedElements = [];
317            let elementAll = $(elementsClass);
318            let elementwithText = elementAll.filter(function () {
319                var justText = $(this).contents().filter(function () {
320                    return this.nodeType === 3;
321                }).text().trim();
322
323                return justText !== "";
324            })
325
326            elementwithText.each(function () {
327                let fontSize = parseFloat($(this).css('font-size'));
328                newFontSize = fontSize + stepVal * 2;
329                updatedElements.push({element: this, newFontSize});
330
331            })
332            updatedElements.forEach(item => {
333                item.element.style.setProperty('font-size', `${item.newFontSize}px`);
334            });
335        }
336
337    }
338}
339NBUI_AccessibilityOptions.prototype.getCookie = function (name) {
340    const value = `; ${document.cookie}`;
341    const parts = value.split(`; ${name}=`);
342    if (parts.length === 2) return parts.pop().split(';').shift();
343    return null;  // Kolačić ne postoji
344}
345
346NBUI_AccessibilityOptions.prototype.resetAllSettings = function (resetBtn){
347    $(resetBtn).click(function (){
348        $('.nbf-reset-font-size').click();
349
350        $(body).removeClass('enlarge-cursor dark-cursor accessible-font zoomed-site dark-theme bright-theme monochrome-theme');
351        let cookieValue = ''
352        createCookie('accessibilityOptions', cookieValue);
353    })
354}
355
356$(document).ready(function (){
357    modalNBUI_AccessibilityOptions.setParameters();
358    setTimeout(function () {
359        modalNBUI_AccessibilityOptions.cursorPointer('enlarge-cursor');
360        modalNBUI_AccessibilityOptions.cursorPointer('dark-cursor');
361    },300);
362
363    //otvaranje i zatvaranje opcija
364    let openElement = '.nbf-accessibility-trigger';
365    let closeElement = '.nbf-close';
366    let accessibilityComponent = '.nb-accessibility-widget-component-1';
367
368    modalNBUI_AccessibilityOptions.openAccessibilityOptions(openElement, accessibilityComponent);
369    modalNBUI_AccessibilityOptions.closeAccessibilityOptions(closeElement, accessibilityComponent);
370    // promena boje i velicine kursora
371    let cursorColorElement = '.nbf-cursor-color';
372    let cursorSizeElement = '.nbf-cursor-size';
373
374    modalNBUI_AccessibilityOptions.changeCursorSize(cursorSizeElement);
375    modalNBUI_AccessibilityOptions.changeCursorColor(cursorColorElement);
376
377    // promena font-size-a
378    let smallerFontSizeElement = '.nbf-smaller-font-size';
379    let largerFontSizeElement = '.nbf-larger-font-size';
380    let resetFontSizeElement = '.nbf-reset-font-size';
381
382    modalNBUI_AccessibilityOptions.smallerFontSize(smallerFontSizeElement);
383    modalNBUI_AccessibilityOptions.largerFontSize(largerFontSizeElement);
384    modalNBUI_AccessibilityOptions.resetFontSize(resetFontSizeElement);
385    //zoom sajta
386    let siteZoomElement = '.nbf-site-zoom';
387
388    modalNBUI_AccessibilityOptions.zoomSite(siteZoomElement);
389    // tema sajta
390    let darkThemeElement = '.nbf-dark-theme';
391    let brightThemeElement = '.nbf-bright-theme';
392    let monoThemeElement = '.nbf-monochrome-theme';
393
394    modalNBUI_AccessibilityOptions.darkTheme(darkThemeElement);
395    modalNBUI_AccessibilityOptions.brightTheme(brightThemeElement);
396    modalNBUI_AccessibilityOptions.monochromeTheme(monoThemeElement);
397
398    //reset all settings
399    let resetBtn = '.nbf-reset-settings';
400    modalNBUI_AccessibilityOptions.resetAllSettings(resetBtn);
401
402})

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.