PageSourceSearch

https://www.jecats.net/template-one-column_2023.js

js jecats.net collected 2026-10-06 23:51:58 UTC 3,260 bytes, 82 lines download raw bytes

1document.addEventListener("DOMContentLoaded", function(event) {
2    const banner = document.getElementById('banner');
3    if (typeof banner !== 'undefined' && banner !== null) {
4        const header = document.querySelector('header.d-print-none');
5        if (typeof header !== 'undefined' && header !== null) {
6            header.setAttribute('id', 'has-banner');
7        }
8    }
9
10    const homeHeader = document.getElementById('headers-content-container');
11    if (typeof homeHeader !== 'undefined' && homeHeader !== null) {
12        const headerH1 = document.querySelector('.header-get-function');
13        if (typeof headerH1 !== 'undefined' && headerH1 !== null) {
14            if(headerH1.classList.contains('home-header')){
15                homeHeader.classList.add('home-header-container');
16            }
17        }
18    }
19});
20
21$(function () {
22    if(window.isAdBlockActive){
23        let modalAdBlockerWarning = $('.modal.adblocker-warning');
24        if(modalAdBlockerWarning.length > 0){
25            $(modalAdBlockerWarning).modal('show');
26        }
27    }
28
29
30  // Remove any previously injected trigger
31  var existing = document.querySelector('.search-mobile-trigger');
32  if (existing) existing.remove();
33
34  var searchContainer = document.querySelector('#search_content_container');
35  var breadcrumbsContainer = document.querySelector('#breadcrumbs_content_container');
36  if (!searchContainer || !breadcrumbsContainer) return;
37
38  searchContainer.classList.remove('search-expanded');
39
40  // Create trigger button
41  var triggerDiv = document.createElement('div');
42  triggerDiv.className = 'search-mobile-trigger';
43
44  var btn = document.createElement('button');
45  btn.setAttribute('title', 'Start site search');
46  btn.className = 'btn btn-sm btn-success';
47  btn.innerHTML = '<span class="co-search"></span>';
48  triggerDiv.appendChild(btn);
49
50  breadcrumbsContainer.insertAdjacentElement('afterend', triggerDiv);
51
52  btn.addEventListener('click', function (e) {
53    e.stopPropagation();
54    var isExpanded = searchContainer.classList.contains('search-expanded');
55    if (!isExpanded) {
56      // Show search row 2, hide trigger button
57      searchContainer.classList.add('search-expanded');
58      triggerDiv.classList.add('search-trigger-hidden');
59      var input = document.querySelector('#search_query_solr');
60      if (input) setTimeout(function () { input.focus(); }, 50);
61    } else {
62      // Hide search row 2, restore trigger button
63      searchContainer.classList.remove('search-expanded');
64      triggerDiv.classList.remove('search-trigger-hidden');
65    }
66  });
67
68  // Close on outside click — register only once
69  if (!window._searchMobileDocListener) {
70    window._searchMobileDocListener = function (e) {
71      if (window.innerWidth >= 400) return;
72      var sc = document.querySelector('#search_content_container');
73      var td = document.querySelector('.search-mobile-trigger');
74      if (!sc || !td) return;
75      if (!sc.contains(e.target) && !td.contains(e.target)) {
76        sc.classList.remove('search-expanded');
77        td.classList.remove('search-trigger-hidden');
78      }
79    };
80    document.addEventListener('click', window._searchMobileDocListener);
81  }
82});

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.