PageSourceSearch

https://isa.org.br/themes/isa/assets/js/banner-language-switcher.js?v=11.2.4

js isa.org.br collected 2026-09-27 01:13:34 UTC 2,544 bytes, 91 lines download raw bytes

1(function () {
2  'use strict';
3
4  var LANGUAGE_FALLBACK_ORDER = [
5    'en', 'ar', 'zh-CN', 'nl', 'fr', 'de', 'it', 'ja', 'ko', 'no', 'es', 'eo'
6  ];
7
8  function resolveValue(map, targetLang) {
9    if (!map) {
10      return '';
11    }
12    if (targetLang && map[targetLang] && map[targetLang].trim()) {
13      return map[targetLang].trim();
14    }
15    if (map['en'] && map['en'].trim()) {
16      return map['en'].trim();
17    }
18    if (map['pt-br'] && map['pt-br'].trim()) {
19      return map['pt-br'].trim();
20    }
21    for (var i = 0; i < LANGUAGE_FALLBACK_ORDER.length; i++) {
22      var lang = LANGUAGE_FALLBACK_ORDER[i];
23      if (map[lang] && map[lang].trim()) {
24        return map[lang].trim();
25      }
26    }
27    return '';
28  }
29
30  function applyBanner(scriptEl) {
31    var nid = scriptEl.getAttribute('data-banner-nid');
32    var bannerEl = document.querySelector('.main-banner-item[data-banner-nid="' + nid + '"]');
33    if (!bannerEl) {
34      return;
35    }
36
37    var data;
38    try {
39      data = JSON.parse(scriptEl.textContent);
40    } catch (e) {
41      return;
42    }
43
44    var targetLang = document.documentElement.lang;
45
46    var image = resolveValue(data.image, targetLang);
47    var linkUrl = resolveValue(data.linkUrl, targetLang);
48    var linkLabel = resolveValue(data.linkLabel, targetLang);
49    var videoUrl = resolveValue(data.videoUrl, targetLang);
50
51    var imageEl = bannerEl.querySelector('img.image');
52    if (imageEl && image) {
53      imageEl.setAttribute('src', image);
54    }
55
56    var knowMoreEl = bannerEl.querySelector('a.button-know-more');
57    if (knowMoreEl) {
58      if (linkUrl) {
59        knowMoreEl.setAttribute('href', linkUrl);
60        knowMoreEl.style.display = '';
61      } else {
62        knowMoreEl.style.display = 'none';
63      }
64      if (linkLabel) {
65        knowMoreEl.textContent = linkLabel;
66      }
67    } else {
68      var wrapperLinkEl = bannerEl.querySelector(':scope > a');
69      if (wrapperLinkEl && linkUrl) {
70        wrapperLinkEl.setAttribute('href', linkUrl);
71      }
72    }
73
74    var playEl = bannerEl.querySelector('a.main-banner-button-play');
75    if (playEl) {
76      if (videoUrl) {
77        playEl.setAttribute('href', videoUrl);
78        playEl.style.display = '';
79      } else {
80        playEl.style.display = 'none';
81      }
82    }
83  }
84
85  document.addEventListener('DOMContentLoaded', function () {
86    document.querySelectorAll('script.banner-language-data').forEach(applyBanner);
87    document.querySelectorAll('.main-banner-item').forEach((item) => {
88      item.classList.remove('hide');
89    });
90  });
91})();

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.