PageSourceSearch

https://spreademail.net/Resource/Theme/9/js/NavContainer.js

js spreademail.net collected 2026-10-02 14:40:28 UTC 2,951 bytes, 83 lines download raw bytes

1var tabPositions = [];
2var elemList;
3var tabsList;
4var tabsListItems;
5var prevArrow;
6var nextArrow;
7$(function () {
8    elemList = document.querySelectorAll(".dmc-inpage-nav .nav-container ul li");
9    tabsList = document.querySelector(".dmc-inpage-nav .nav-container ul");
10    tabsListItems = document.querySelectorAll(".dmc-inpage-nav .nav-container ul li");
11    prevArrow = document.querySelector(".dmc-inpage-nav .nav-container .ctrl.prev");
12    nextArrow = document.querySelector(".dmc-inpage-nav .nav-container .ctrl.next");
13    var tabWidth = 0;
14    if (elemList.length > 0) {
15        tabWidth = elemList[0].offsetWidth;
16        tabPositions[0] = 0;
17        for (var i = 1; i < elemList.length; i++) {
18            tabPositions[i] = tabWidth - 30;
19            tabWidth += elemList[i].offsetWidth;
20        }
21    }
22});
23
24
25function prevClickHandler() {
26    try {
27        nextArrow.classList.remove("hide");
28        var elemList = tabsListItems,
29            tabsListWidth = tabsList.offsetWidth,
30            currentScrollPosition = Math.ceil(Math.abs(tabsList.scrollLeft)),
31            tabsScrollWidth = tabsList.scrollWidth,
32            newScrollPosition = 0;
33        for (var i = elemList.length; i >= 0; i--) {
34            if (tabPositions[i] < currentScrollPosition) {
35                newScrollPosition = tabPositions[i];
36                break;
37            }
38        }
39
40        tabsList.scrollLeft = newScrollPosition;
41        navScrollHandler();
42        event.preventDefault();
43    } catch (e) { }
44};
45
46function nextClickHandler() {
47    try {
48        prevArrow.classList.remove("hide");
49        var elemList = tabsListItems,
50            tabsListWidth = tabsList.offsetWidth,
51            currentScrollPosition = Math.ceil(Math.abs(tabsList.scrollLeft)),
52            tabsScrollWidth = tabsList.scrollWidth,
53            newScrollPosition = 0;
54        for (var i = 0; i < elemList.length; i++) {
55            if (tabPositions[i] > currentScrollPosition) {
56                newScrollPosition = tabPositions[i];
57                break;
58            }
59        }
60
61        tabsList.scrollLeft = newScrollPosition;
62        navScrollHandler();
63        event.preventDefault();
64    } catch (e) { }
65};
66
67function navScrollHandler() {
68    try {
69        var tabsListWidth = tabsList.offsetWidth,
70            currentScrollPosition = Math.ceil(Math.abs(tabsList.scrollLeft)),
71            tabsScrollWidth = tabsList.scrollWidth;
72        if (currentScrollPosition <= 1) {
73            prevArrow.classList.add("hide");
74            nextArrow.classList.remove("hide");
75        } else if (currentScrollPosition + tabsListWidth >= tabsScrollWidth - 1) {
76            prevArrow.classList.remove("hide");
77            nextArrow.classList.add("hide");
78        } else {
79            prevArrow.classList.remove("hide");
80            nextArrow.classList.remove("hide");
81        }
82    } catch (e) { }
83};

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.