PageSourceSearch

https://bskw.pl/templates/bskw/js/dostepnosc.js?v=1790837616

js bskw.pl collected 2026-10-09 02:49:23 UTC 4,465 bytes, 118 lines download raw bytes

1/**
2 * Dostepnosc: nazwy ramek (iframe) dla czytnikow ekranu (WCAG 4.1.2) oraz
3 * pasek dostepnosci (prawa krawedz ekranu): powiekszenie / pomniejszenie tekstu, wysoki kontrast,
4 * podkreslenie linkow, powrot do domyslnego wygladu.
5 *
6 * Ustawienia sa zapisywane w przegladarce odwiedzajacego (localStorage, klucz "bskw-dostepnosc"),
7 * a skrypt w <head> (index.php) stosuje je przed wyswietleniem kolejnej strony.
8 * Wyglad i dzialanie trybow: css/style.css (sekcja "Pasek dostepnosci").
9 */
10(function () {
11    'use strict';
12
13    var KLUCZ = 'bskw-dostepnosc';
14    var MAKS_TEKST = 2; // 0 = normalny, 1 = +15%, 2 = +30%
15
16    function wczytaj() {
17        try {
18            return JSON.parse(window.localStorage.getItem(KLUCZ) || '{}') || {};
19        } catch (e) {
20            return {};
21        }
22    }
23
24    function zapisz(ustawienia) {
25        try {
26            window.localStorage.setItem(KLUCZ, JSON.stringify(ustawienia));
27        } catch (e) {
28            // brak dostepu do localStorage – ustawienie dziala tylko na tej stronie
29        }
30    }
31
32    /*
33     * WCAG 4.1.2: kazda ramka (iframe) musi miec nazwe – czytnik ekranu odczytuje ja przed wejsciem do ramki.
34     * Ramki wklejane w tresc artykulow (kalkulatory BSI, mapy Google, filmy) czesto nie maja "title",
35     * wiec uzupelniamy go tutaj na podstawie adresu.
36     */
37    function nazwijRamki() {
38        document.querySelectorAll('iframe:not([title])').forEach(function (ramka) {
39            var adres = ramka.getAttribute('src') || '';
40            var nazwa = 'Treść osadzona';
41
42            if (adres.indexOf('bsi.gs-net.pl') !== -1) {
43                nazwa = 'Kalkulator kredytowy';
44            } else if (adres.indexOf('google.') !== -1 && adres.indexOf('map') !== -1) {
45                nazwa = 'Mapa Google – dojazd do banku';
46            } else if (adres.indexOf('youtube') !== -1) {
47                nazwa = 'Film YouTube';
48            } else if (adres.indexOf('facebook') !== -1) {
49                nazwa = 'Facebook Banku Spółdzielczego w Kątach Wrocławskich';
50            }
51
52            ramka.setAttribute('title', nazwa);
53        });
54    }
55
56    document.addEventListener('DOMContentLoaded', function () {
57        nazwijRamki();
58
59        var pasek = document.getElementById('dost-pasek');
60
61        if (!pasek) {
62            return;
63        }
64
65        var h = document.documentElement;
66        var u = wczytaj();
67        u.tekst = parseInt(u.tekst, 10) || 0;
68
69        function zastosuj() {
70            if (u.tekst > 0) {
71                h.setAttribute('data-dost-tekst', u.tekst);
72            } else {
73                h.removeAttribute('data-dost-tekst');
74            }
75            h.classList.toggle('dost-kontrast', !!u.kontrast);
76            h.classList.toggle('dost-linki', !!u.linki);
77
78            pasek.querySelector('[data-dost="kontrast"]').setAttribute('aria-pressed', u.kontrast ? 'true' : 'false');
79            pasek.querySelector('[data-dost="linki"]').setAttribute('aria-pressed', u.linki ? 'true' : 'false');
80            pasek.querySelector('[data-dost="wiecej"]').disabled = u.tekst >= MAKS_TEKST;
81            pasek.querySelector('[data-dost="mniej"]').disabled = u.tekst <= 0;
82
83            zapisz(u);
84        }
85
86        pasek.querySelectorAll('[data-dost]').forEach(function (przycisk) {
87            przycisk.addEventListener('click', function () {
88                switch (przycisk.getAttribute('data-dost')) {
89                    case 'wiecej':
90                        u.tekst = Math.min(MAKS_TEKST, u.tekst + 1);
91                        break;
92                    case 'mniej':
93                        u.tekst = Math.max(0, u.tekst - 1);
94                        break;
95                    case 'kontrast':
96                        u.kontrast = !u.kontrast;
97                        break;
98                    case 'linki':
99                        u.linki = !u.linki;
100                        break;
101                    case 'reset':
102                        u = { tekst: 0 };
103                        break;
104                }
105                zastosuj();
106            });
107        });
108
109        // telefon: pasek zwiniety do jednego przycisku
110        var przelacz = pasek.querySelector('.dost-pasek__przelacz');
111        przelacz.addEventListener('click', function () {
112            var otwarty = pasek.classList.toggle('dost-pasek--otwarty');
113            przelacz.setAttribute('aria-expanded', otwarty ? 'true' : 'false');
114        });
115
116        zastosuj();
117    });
118})();

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.