Jump to content

MediaWiki:Common.js: Difference between revisions

From International Treaty Law Wiki
No edit summary
No edit summary
Tag: Manual revert
 
(10 intermediate revisions by the same user not shown)
Line 1: Line 1:
/* Any JavaScript here will be loaded for all users on every page load. */
/* Any JavaScript here will be loaded for all users on every page load. */
/* Optimized Vector-2022 Utilities + Search Extensions + InfinityFree Failover */


/* Clean Print mode + PDF & Share buttons for Vector-2022 */
(function () {


$(function () {
    'use strict';


     // --- 1. Inject Clean Print CSS (full-width A4, desktop + mobile) ---
     mw.loader.using(['mediawiki.util', 'jquery']).then(function () {
    var printCss = ''
        + '@media print {'
        + ' #mw-page-base, #mw-head-base, #mw-navigation, #mw-panel, #footer,'
        + ' .vector-header, .vector-page-toolbar, .vector-toc, .vector-sticky-header,'
        + ' .vector-page-tools, .vector-menu, .mw-indicators, .vector-user-links,'
        + ' .vector-search-box, .vector-pinned-container { display:none!important; }'
        + ' #content, .mw-body, .mw-content-container, .mw-body-content {'
        + ' margin:0!important; padding:0!important; width:100%!important; max-width:none!important; }'
        + ' body, #content { background:white!important; }'
        + ' .mw-body-content { font-size:14pt!important; line-height:1.5!important; }'
        + '}';


    var styleEl = document.createElement('style');
        $(function () {
    styleEl.type = 'text/css';
    styleEl.appendChild(document.createTextNode(printCss));
    document.head.appendChild(styleEl);


    // --- 2. Add PDF + Share buttons to Vector-2022 action bar ---
            /* =========================================================
    if (mw.config.get('wgNamespaceNumber') === 0) {
              GLOBAL MEDIAWIKI VARIABLES
        var $actions = $('.vector-page-toolbar .vector-page-tools .vector-menu-content-list');
            ========================================================= */
        if ($actions.length) {


             // Entferne alte PDF-Links
             var ns      = mw.config.get('wgCanonicalNamespace');
             $actions.find('li').filter(function () {
             var special  = mw.config.get('wgCanonicalSpecialPageName');
                var t = $(this).text() || '';
            var page    = mw.config.get('wgPageName');
                return t.toLowerCase().indexOf('pdf') !== -1;
            var groups  = mw.config.get('wgUserGroups') || [];
             }).remove();
            var userName = mw.config.get('wgUserName');
             var wikiTitle = mw.config.get('wgTitle') || document.title;


             // PDF
             var isAdmin =
            $actions.prepend(
                groups.includes('sysop') ||
                 '<li class="vector-menu-content-list-item"><a href="javascript:window.print()" title="Download clean PDF">PDF</a></li>'
                 groups.includes('bureaucrat');
            );


             // Share
             var isAnon = (userName === null);
            $actions.prepend(
                '<li class="vector-menu-content-list-item"><a href="javascript:(function(){if(navigator.share){navigator.share({title:document.title,url:location.href});}else{prompt(\'Copy link:\',location.href);}})()" title="Share this page">Share</a></li>'
            );
            // --- Custom Search Options unterhalb der Share-Funktion ---


// PSE
            /* =========================================================
$actions.prepend(
              GLOBAL CSS
    '<li class="vector-menu-content-list-item">' +
            ========================================================= */
    '<a href="https://cse.google.com/cse?cx=86021a982e3a14848&q=' +
    encodeURIComponent(document.title) +
    '" target="_blank" title="Search via Google PSE">Special Search</a></li>'
);


// GitHub Search 1
            if (!document.getElementById('mw-global-custom-css')) {
$actions.prepend(
    '<li class="vector-menu-content-list-item">' +
    '<a href="https://github.com/ET-Pioneer/Electric-Technocracy-Pioneers-Community/wiki/search?q=' +
    encodeURIComponent(document.title) +
    '" target="_blank" title="Search in GitHub Wiki 1">GitHub 1</a></li>'
);


// GitHub Search 2
                var globalCss = `
$actions.prepend(
                @media print {
    '<li class="vector-menu-content-list-item">' +
 
    '<a href="https://github.com/MrAnonymousNWO/One_World/wiki/search?q=' +
                    #mw-page-base,
    encodeURIComponent(document.title) +
                    #mw-head-base,
    '" target="_blank" title="Search in GitHub Wiki 2">GitHub 2</a></li>'
                    #mw-navigation,
);
                    #mw-panel,
        }
                    #footer,
    }
                    .vector-header,
                    .vector-page-toolbar,
                    .vector-toc,
                    .vector-sticky-header,
                    .vector-page-tools,
                    .vector-menu,
                    .mw-indicators,
                    .vector-user-links,
                    .vector-search-box,
                    .vector-pinned-container {
                        display: none !important;
                    }
 
                    #content,
                    .mw-body,
                    .mw-content-container,
                    .mw-body-content {
                        margin: 0 !important;
                        padding: 0 !important;
                        width: 100% !important;
                        max-width: none !important;
                    }


    // --- 3. Google Search Results under MediaWiki Search ---
                    body,
    mw.loader.using('mediawiki.util', function () {
                    #content {
                        background: white !important;
                    }


        if (mw.config.get('wgCanonicalSpecialPageName') !== 'Search') return;
                    .mw-body-content {
                        font-size: 14pt !important;
                        line-height: 1.5 !important;
                    }
                }


        var query = mw.util.getParamValue('search');
                #extra-search-results {
        if (!query) return;
                    margin-top: 2em;
                    border-top: 1px solid #ddd;
                    padding-top: 1em;
                }


        // CSS für collapsable Menüs
                .search-collapse-section {
        var collapseCss = ''
                    margin-bottom: 1.5em;
            + '#extra-search-results { margin-top:2em; border-top:1px solid #ddd; padding-top:1em; }'
                    border: 1px solid #d8dee8;
            + '.search-collapse-section { margin-bottom:1.5em; border:1px solid #e0e0e0; border-radius:4px; }'
                    border-radius: 6px;
            + '.search-collapse-header { background:#f8f9fa; padding:12px 15px; cursor:pointer; font-weight:bold; border-radius:4px 4px 0 0; }'
                    overflow: hidden;
            + '.search-collapse-header:hover { background:#e8e9ea; }'
                    background: #ffffff;
            + '.search-collapse-header::before { content:"▼ "; display:inline-block; transition:transform .2s; }'
                }
            + '.search-collapse-header.collapsed::before { transform:rotate(-90deg); }'
            + '.search-collapse-content { padding:15px; display:block; }'
            + '.search-collapse-content.collapsed { display:none; }'
            + '.gcse-searchresults-only { min-height:200px; }'
            + '.search-engine-link { display:block; padding:8px 0; font-size:16px; border-bottom:1px solid #f0f0f0; }'
            + '.search-engine-link:last-child { border-bottom:none; }'
            + '.search-engine-link a { text-decoration:none; color:#0645ad; }'
            + '.search-engine-link a:hover { text-decoration:underline; }'
            + '.pse-direct-link { margin-bottom:15px; padding:10px; background:#f0f7ff; border-radius:4px; }'
            + '.pse-direct-link a { font-size:15px; color:#0066cc; text-decoration:none; }'
            + '.pse-direct-link a:hover { text-decoration:underline; }';


        var collapseStyle = document.createElement('style');
                .search-collapse-header {
        collapseStyle.appendChild(document.createTextNode(collapseCss));
                    background: #f3f6fb;
        document.head.appendChild(collapseStyle);
                    padding: 12px 15px;
                    cursor: pointer;
                    font-weight: 600;
                    transition: background .15s ease;
                    user-select: none;
                }


        // Finde die Paginierung
                .search-collapse-header:hover {
        var pagination = $('.mw-search-pager-bottom, .results-info').last();
                    background: #e9eef7;
        var insertPoint = pagination.length ? pagination : $('#mw-search-results');
                }


        if (insertPoint.length) {
                .search-collapse-header::before {
                    content: "▼ ";
                    display: inline-block;
                    transition: transform .2s ease;
                }


            var container = document.createElement('div');
                .search-collapse-header.collapsed::before {
            container.id = 'extra-search-results';
                    transform: rotate(-90deg);
                }


            // --- PSE Block ---
                .search-collapse-content {
            var pseSection = document.createElement('div');
                    padding: 15px;
            pseSection.className = 'search-collapse-section';
                    display: block;
                    background: #fff;
                }


            var pseDirectUrl = 'https://cse.google.com/cse?cx=86021a982e3a14848&q=' + encodeURIComponent(query);
                .search-collapse-content.collapsed {
                    display: none;
                }


            pseSection.innerHTML =
                .gcse-searchresults-only {
                '<div class="search-collapse-header" data-target="pse-content">Programmable Search Engine</div>' +
                    min-height: 200px;
                '<div class="search-collapse-content" id="pse-content">' +
                 }
                '<div class="pse-direct-link">' +
                '<a href="' + pseDirectUrl + '" target="_blank" rel="noopener noreferrer">🔗 Open in Programmable Search Engine</a>' +
                '</div>' +
                '<div class="gcse-searchresults-only" data-queryParameterName="gq"></div>' +
                 '</div>';


            // --- GitHub Wikis Block ---
                .search-engine-link {
            var githubSection = document.createElement('div');
                    display: block;
            githubSection.className = 'search-collapse-section';
                    padding: 8px 0;
                    font-size: 15px;
                    border-bottom: 1px solid #f0f0f0;
                }


            var githubLinksHtml = '';
                .search-engine-link:last-child {
                    border-bottom: none;
                }


            githubLinksHtml +=
                 .search-engine-link a {
                 '<div class="search-engine-link">' +
                    text-decoration: none;
                '<a href="https://github.com/ET-Pioneer/Electric-Technocracy-Pioneers-Community/wiki/search?q=' + encodeURIComponent(query) + '" target="_blank" rel="noopener noreferrer">' +
                    color: #0645ad;
                '📘 Search in Electric Technocracy Pioneers GitHub Wiki' +
                 }
                 '</a>' +
                '</div>';


            githubLinksHtml +=
                 .search-engine-link a:hover {
                 '<div class="search-engine-link">' +
                    text-decoration: underline;
                '<a href="https://github.com/MrAnonymousNWO/One_World/wiki/search?q=' + encodeURIComponent(query) + '" target="_blank" rel="noopener noreferrer">' +
                 }
                '📗 Search in One World GitHub Wiki' +
                 '</a>' +
                '</div>';


            githubSection.innerHTML =
                .pse-direct-link {
                '<div class="search-collapse-header" data-target="github-wikis-content">GitHub Wikis</div>' +
                    margin-bottom: 15px;
                '<div class="search-collapse-content" id="github-wikis-content">' +
                    padding: 10px;
                githubLinksHtml +
                    background: #eef5ff;
                 '</div>';
                    border-radius: 5px;
                 }


            // --- Alternative Suchmaschinen ---
                .pse-direct-link a {
            var searchEngines = [
                     color: #005fcc;
                {
                     text-decoration: none;
                     name: 'Google',
                     font-weight: 500;
                     url: 'https://www.google.com/search?q=' + encodeURIComponent(query),
                    icon: '🔍'
                },
                {
                    name: 'Bing',
                    url: 'https://www.bing.com/search?q=' + encodeURIComponent(query),
                    icon: '🔎'
                },
                {
                    name: 'DuckDuckGo',
                    url: 'https://duckduckgo.com/?q=' + encodeURIComponent(query),
                    icon: '🦆'
                },
                {
                    name: 'Yandex',
                    url: 'https://yandex.com/search/?text=' + encodeURIComponent(query),
                    icon: '🔍'
                },
                {
                     name: 'Brave Search',
                    url: 'https://search.brave.com/search?q=' + encodeURIComponent(query),
                    icon: '🦁'
                },
                {
                    name: 'Ecosia',
                    url: 'https://www.ecosia.org/search?q=' + encodeURIComponent(query),
                    icon: '🌳'
                 }
                 }
            ];


            var searchSection = document.createElement('div');
                .pse-direct-link a:hover {
            searchSection.className = 'search-collapse-section';
                    text-decoration: underline;
                }


            var searchLinksHtml = '';
                .mw-recommended-footer {
                    margin-top: 30px;
                    padding: 15px;
                    border: 2px solid #3a6ea5;
                    background: #eef4fb;
                    border-radius: 6px;
                    color: #1a1a1a;
                    font-size: 14px;
                    line-height: 1.5;
                }


            searchEngines.forEach(function (engine) {
                .mw-recommended-footer-title {
                 searchLinksHtml +=
                    font-size: 18px;
                     '<div class="search-engine-link">' +
                    font-weight: bold;
                     '<a href="' + engine.url + '" target="_blank" rel="noopener noreferrer">' +
                    color: #2a4d7a;
                     engine.icon + ' Search on ' + engine.name +
                    margin-bottom: 10px;
                     '</a>' +
                }
                     '</div>';
 
            });
                 .mw-recommended-footer-subtitle {
                     font-size: 18px;
                    font-weight: bold;
                     color: #2a4d7a;
                     margin: 20px 0 10px;
                }
 
                .mw-recommended-footer ul {
                     margin-left: 15px;
                }
 
                .mw-recommended-footer a {
                     word-break: break-word;
                }
                `;
 
                var styleEl = document.createElement('style');


            searchSection.innerHTML =
                styleEl.id = 'mw-global-custom-css';
                '<div class="search-collapse-header" data-target="search-engines-content">Alternative Search Engines</div>' +
                 styleEl.type = 'text/css';
                 '<div class="search-collapse-content" id="search-engines-content">' +
                searchLinksHtml +
                '</div>';


            // --- Reihenfolge: PSE → GitHub Wikis → Alternative Engines ---
                styleEl.appendChild(
            container.appendChild(pseSection);
                    document.createTextNode(globalCss)
            container.appendChild(githubSection);
                );
            container.appendChild(searchSection);


            // Einfügen nach Paginierung
                 document.head.appendChild(styleEl);
            if (pagination.length) {
                 pagination.after(container);
            } else {
                insertPoint.after(container);
             }
             }


             // Toggle-Funktionalität
             /* =========================================================
             $('.search-collapse-header').on('click', function () {
            /* =========================================================
                 var targetId = $(this).data('target');
  VECTOR-2022 ACTION TOOLBAR (TOOLS-MENÜ)
                 var content = $('#' + targetId);
========================================================= */
                $(this).toggleClass('collapsed');
 
                content.toggleClass('collapsed');
if (mw.config.get('wgNamespaceNumber') === 0) {
 
    var toolbar =
        document.querySelector(
             '#vector-page-tools .vector-menu-content-list'
        );
 
    if (toolbar && !document.getElementById('mw-custom-toolbar-buttons')) {
 
        var currentTitle = encodeURIComponent(wikiTitle);
 
        var toolbarHtml = `
        <div id="mw-custom-toolbar-buttons">
 
            <li class="vector-menu-content-list-item">
                <a href="#" class="mw-share-trigger" title="Share this page">Share</a>
            </li>
 
            <li class="vector-menu-content-list-item">
                <a href="#" class="mw-print-trigger" title="Download clean PDF">PDF</a>
            </li>
 
            <li class="vector-menu-content-list-item">
                <a href="https://cse.google.com/cse?cx=86021a982e3a14848&q=${currentTitle}"
                  target="_blank" rel="noopener noreferrer">Special Search</a>
            </li>
 
            <li class="vector-menu-content-list-item">
                <a href="https://github.com/MrAnonymousNWO/One_World/wiki/search?q=${currentTitle}"
                  target="_blank" rel="noopener noreferrer">One World Wiki</a>
            </li>
 
            <li class="vector-menu-content-list-item">
                <a href="https://github.com/ET-Pioneer/Electric-Technocracy-Pioneers-Community/wiki/search?q=${currentTitle}"
                  target="_blank" rel="noopener noreferrer">E.Tech. Wiki</a>
            </li>
 
        </div>
        `;
 
        toolbar.insertAdjacentHTML('beforeend', toolbarHtml);
    }
}
/* =========================================================
  GLOBAL EVENT DELEGATION
========================================================= */
 
            document.addEventListener('click', function (e) {
 
                /* PDF */
 
                var printTrigger =
                    e.target.closest('.mw-print-trigger');
 
                if (printTrigger) {
 
                    e.preventDefault();
 
                    window.print();
 
                    return;
                }
 
                /* SHARE */
 
                 var shareTrigger =
                    e.target.closest('.mw-share-trigger');
 
                if (shareTrigger) {
 
                    e.preventDefault();
 
                    if (navigator.share) {
 
                        navigator.share({
                            title: document.title,
                            url: location.href
                        });
 
                    } else {
 
                        prompt('Copy link:', location.href);
                    }
 
                    return;
                }
 
                /* COLLAPSE TOGGLE */
 
                var header =
                    e.target.closest('.search-collapse-header');
 
                 if (header) {
 
                    var targetId =
                        header.getAttribute('data-target');
 
                    var content =
                        document.getElementById(targetId);
 
                    header.classList.toggle('collapsed');
 
                    if (content) {
 
                        content.classList.toggle('collapsed');
                    }
 
                    return;
                }
             });
             });


             // Google CSE Script laden und Suche ausführen
             /* =========================================================
             if (!window.googleCSELoaded) {
              SEARCH PAGE EXTENSIONS
                window.googleCSELoaded = true;
            ========================================================= */
 
             if (special === 'Search') {
 
                var query =
                    mw.util.getParamValue('search');
 
                if (query) {
 
                    var encodedQuery =
                        encodeURIComponent(query);
 
                    var pagination =
                        $('.mw-search-pager-bottom, .results-info').last();
 
                    var insertPoint =
                        pagination.length
                            ? pagination
                            : $('#mw-search-results');
 
                    if (insertPoint.length) {
 
                        var container =
                            document.createElement('div');
 
                        container.id =
                            'extra-search-results';
 
                        /* =============================================
                          PSE SECTION
                        ============================================= */
 
                        var pseSection =
                            document.createElement('div');
 
                        pseSection.className =
                            'search-collapse-section';
 
                        var pseDirectUrl =
                            'https://cse.google.com/cse?cx=86021a982e3a14848&q=' +
                            encodedQuery;
 
                        pseSection.innerHTML = `
                        <div class="search-collapse-header"
                            data-target="pse-content">
                            Programmable Search Engine
                        </div>
 
                        <div class="search-collapse-content"
                            id="pse-content">
 
                            <div class="pse-direct-link">
                                <a href="${pseDirectUrl}"
                                  target="_blank"
                                  rel="noopener noreferrer">
                                    🔗 Open in Programmable Search Engine
                                </a>
                            </div>
 
                            <div class="gcse-searchresults-only"
                                data-queryParameterName="gq">
                            </div>
 
                        </div>
                        `;
 
                        container.appendChild(pseSection);
 
                        /* =============================================
                          GITHUB WIKIS
                        ============================================= */
 
                        var githubSection =
                            document.createElement('div');
 
                        githubSection.className =
                            'search-collapse-section';
 
                        githubSection.innerHTML = `
                        <div class="search-collapse-header"
                            data-target="github-wikis-content">
                            GitHub Wikis
                        </div>
 
                        <div class="search-collapse-content"
                            id="github-wikis-content">
 
                            <div class="search-engine-link">
                                <a href="https://github.com/ET-Pioneer/Electric-Technocracy-Pioneers-Community/wiki/search?q=${encodedQuery}"
                                  target="_blank"
                                  rel="noopener noreferrer">
                                    📘 Search in Electric Technocracy Pioneers GitHub Wiki
                                </a>
                            </div>
 
                            <div class="search-engine-link">
                                <a href="https://github.com/MrAnonymousNWO/One_World/wiki/search?q=${encodedQuery}"
                                  target="_blank"
                                  rel="noopener noreferrer">
                                    📗 Search in One World GitHub Wiki
                                </a>
                            </div>
 
                        </div>
                        `;
 
                        container.appendChild(githubSection);
 
                        /* =============================================
                          SEARCH ENGINES
                        ============================================= */
 
                        var searchEngines = [
                            {
                                name: 'Google',
                                icon: '🔍',
                                url: 'https://www.google.com/search?q=' + encodedQuery
                            },
                            {
                                name: 'Bing',
                                icon: '🔎',
                                url: 'https://www.bing.com/search?q=' + encodedQuery
                            },
                            {
                                name: 'DuckDuckGo',
                                icon: '🦆',
                                url: 'https://duckduckgo.com/?q=' + encodedQuery
                            },
                            {
                                name: 'Yandex',
                                icon: '🔍',
                                url: 'https://yandex.com/search/?text=' + encodedQuery
                            },
                            {
                                name: 'Brave Search',
                                icon: '🦁',
                                url: 'https://search.brave.com/search?q=' + encodedQuery
                            },
                            {
                                name: 'Ecosia',
                                icon: '🌳',
                                url: 'https://www.ecosia.org/search?q=' + encodedQuery
                            }
                        ];
 
                        var searchLinksHtml = '';
 
                        searchEngines.forEach(function (engine) {
 
                            searchLinksHtml += `
                            <div class="search-engine-link">
                                <a href="${engine.url}"
                                  target="_blank"
                                  rel="noopener noreferrer">
                                    ${engine.icon} Search on ${engine.name}
                                </a>
                            </div>
                            `;
                        });
 
                        var searchSection =
                            document.createElement('div');
 
                        searchSection.className =
                            'search-collapse-section';
 
                        searchSection.innerHTML = `
                        <div class="search-collapse-header"
                            data-target="search-engines-content">
                            Alternative Search Engines
                        </div>
 
                        <div class="search-collapse-content"
                            id="search-engines-content">
                            ${searchLinksHtml}
                        </div>
                        `;
 
                        container.appendChild(searchSection);
 
                        /* =============================================
                          FOOTER BLOCK
                        ============================================= */


                window.__gcse = {
                        var footerBlock =
                    parsetags: 'explicit',
                            document.createElement('div');
                    callback: function () {
 
                        footerBlock.className =
                            'mw-recommended-footer';
 
                        footerBlock.innerHTML = `
                        <div class="mw-recommended-footer-title">
                            Recommended GPT Tools by ChatGPT
                        </div>
 
                        <ul>
 
                            <li>
                                <b>World Succession Deed GPT</b><br>
                                <a href="https://chatgpt.com/g/g-69d82340e27081918e08803ce62e46e1-new-international-law-world-succession-deed-1400"
                                  target="_blank"
                                  rel="noopener noreferrer">
                                  https://chatgpt.com/...world-succession-deed-1400
                                </a>
                            </li>
 
                            <li>
                                <b>Juridical Singularity GPT</b><br>
                                <a href="https://chatgpt.com/g/g-69d95a89896081918fcb207e1665bf26-juridical-singularity-domestic-international-law"
                                  target="_blank"
                                  rel="noopener noreferrer">
                                  https://chatgpt.com/...juridical-singularity
                                </a>
                            </li>
 
                            <li>
                                <b>Electric Technocracy GPT</b><br>
                                <a href="https://chatgpt.com/g/g-69d8635591d48191adc315b8f2b8be32-electric-technocracy-a-new-form-of-government"
                                  target="_blank"
                                  rel="noopener noreferrer">
                                  https://chatgpt.com/...electric-technocracy
                                </a>
                            </li>
 
                            <li>
                                <b>AGE OF TRANSITION & THE MENTAL SINGULARITY GPT</b><br>
                                <a href="https://chatgpt.com/g/g-69d99f78d6a081919cd29d8d33531852-age-of-transition-the-mental-singularity"
                                  target="_blank"
                                  rel="noopener noreferrer">
                                  https://chatgpt.com/...mental-singularity
                                </a>
                            </li>
 
                        </ul>
 
                        <div class="mw-recommended-footer-subtitle">
                            Recommended External Resources
                        </div>
 
                        <ul>
 
                            <li>
                                🌐 <b>WSD – World Succession Deed 1400/98</b><br>
                                <a href="https://worldsold.wixsite.com/world-sold/en"
                                  target="_blank"
                                  rel="noopener noreferrer">
                                  https://worldsold.wixsite.com/world-sold/en
                                </a>
                            </li>
 
                            <li>
                                🌐 <b>WSD – Global Legal Succession Archive</b><br>
                                <a href="https://worldsold.wixsite.com/global-archive"
                                  target="_blank"
                                  rel="noopener noreferrer">
                                  https://worldsold.wixsite.com/global-archive
                                </a>
                            </li>
 
                            <li>
                                🌐 <b>Electric Technocracy</b><br>
                                <a href="https://worldsold.wixsite.com/electric-technocracy"
                                  target="_blank"
                                  rel="noopener noreferrer">
                                  https://worldsold.wixsite.com/electric-technocracy
                                </a>
                            </li>
 
                            <li>
                                📘 <b>Read the eBooks & Download free PDF</b><br>
                                <a href="https://4u.free.nf"
                                  target="_blank"
                                  rel="noopener noreferrer">
                                  https://4u.free.nf
                                </a>
                            </li>
 
                            <li>
                                🎥 <b>YouTube Channel</b><br>
                                <a href="https://www.youtube.com/@Staatensukzessionsurkunde-1400"
                                  target="_blank"
                                  rel="noopener noreferrer">
                                  https://youtube.com/@Staatensukzessionsurkunde-1400
                                </a>
                            </li>
 
                            <li>
                                🎙️ <b>Podcast Show</b><br>
                                <a href="https://creators.spotify.com/pod/show/world-succession-deed"
                                  target="_blank"
                                  rel="noopener noreferrer">
                                  https://spotify.com/...world-succession-deed
                                </a>
                            </li>
 
                            <li>
                                🚀 <b>Start-Page WSD & Electric Paradise</b><br>
                                <a href="https://electric-paradise.start.page"
                                  target="_blank"
                                  rel="noopener noreferrer">
                                  https://electric-paradise.start.page
                                </a>
                            </li>
 
                        </ul>
                        `;
 
                        container.appendChild(footerBlock);
 
                        /* =============================================
                          INSERT SEARCH BLOCK
                        ============================================= */
 
                        if (pagination.length) {
 
                            pagination.after(container);
 
                        } else {
 
                            insertPoint.after(container);
                        }


                         var element = document.querySelector('.gcse-searchresults-only');
                         /* =============================================
                         if (element) {
                          GOOGLE CSE LAZY LOAD
                         ============================================= */


                            google.search.cse.element.render({
                        function loadGoogleCSE() {
                                div: element,
                                tag: 'searchresults-only',
                                gname: 'pse_search'
                            });


                            var searchControl = google.search.cse.element.getElement('pse_search');
                             if (window.googleCSELoaded) {
                             if (searchControl) {
                                 return;
                                 searchControl.execute(query);
                             }
                             }
                            window.googleCSELoaded = true;
                            window.__gcse = {
                                parsetags: 'explicit',
                                callback: function () {
                                    if (
                                        !window.google ||
                                        !google.search ||
                                        !google.search.cse
                                    ) {
                                        return;
                                    }
                                    var element =
                                        document.querySelector(
                                            '.gcse-searchresults-only'
                                        );
                                    if (!element) {
                                        return;
                                    }
                                    google.search.cse.element.render({
                                        div: element,
                                        tag: 'searchresults-only',
                                        gname: 'pse_search'
                                    });
                                    var searchControl =
                                        google.search.cse.element.getElement(
                                            'pse_search'
                                        );
                                    if (searchControl) {
                                        searchControl.execute(query);
                                    }
                                }
                            };
                            var s =
                                document.createElement('script');
                            s.async = true;
                            s.src =
                                'https://cse.google.com/cse.js?cx=86021a982e3a14848';
                            document.head.appendChild(s);
                        }
                        if ('IntersectionObserver' in window) {
                            var observer =
                                new IntersectionObserver(
                                    function (entries) {
                                        if (
                                            entries[0].isIntersecting
                                        ) {
                                            loadGoogleCSE();
                                            observer.disconnect();
                                        }
                                    },
                                    {
                                        rootMargin: '300px'
                                    }
                                );
                            observer.observe(container);
                        } else {
                            setTimeout(loadGoogleCSE, 1000);
                         }
                         }
                     }
                     }
                 };
                 }
            }
 
            /* =========================================================
              INFINITYFREE FAILOVER
            ========================================================= */
 
            if (isAdmin) return;
 
            if (page === 'MediaWiki:Common.js') return;
 
            var isArticle = (ns === '');
            var isSearch  = (special === 'Search');
 
            if (!isArticle && !isSearch) return;
 
            setTimeout(function () {
 
                if (!document.body) return;
 
                var html =
                    document.body.innerHTML || '';
 
                var text =
                    document.body.innerText || '';
 
                var injectedHTML =
 
                    html.includes('infinityfree.net/errors/') ||
 
                    html.includes('free hosting limits') ||
 
                    html.includes(
                        'This site is suspended due to exceeding'
                    ) ||
 
                    (
                        html.includes('InfinityFree') &&
                        html.includes('suspended')
                    );
 
                if (injectedHTML && isAnon) {
 
                    window.location.href =
                        'https://singularity-news.github.io/wiki/';
                }
 
            }, 1000);
 
        });


                var s = document.createElement('script');
                s.async = true;
                s.src = 'https://cse.google.com/cse.js?cx=86021a982e3a14848';
                document.head.appendChild(s);
            }
        }
     });
     });


}); // Ende: $(function(){})
})();

Latest revision as of 01:30, 21 May 2026

/* Any JavaScript here will be loaded for all users on every page load. */
/* Optimized Vector-2022 Utilities + Search Extensions + InfinityFree Failover */

(function () {

    'use strict';

    mw.loader.using(['mediawiki.util', 'jquery']).then(function () {

        $(function () {

            /* =========================================================
               GLOBAL MEDIAWIKI VARIABLES
            ========================================================= */

            var ns       = mw.config.get('wgCanonicalNamespace');
            var special  = mw.config.get('wgCanonicalSpecialPageName');
            var page     = mw.config.get('wgPageName');
            var groups   = mw.config.get('wgUserGroups') || [];
            var userName = mw.config.get('wgUserName');
            var wikiTitle = mw.config.get('wgTitle') || document.title;

            var isAdmin =
                groups.includes('sysop') ||
                groups.includes('bureaucrat');

            var isAnon = (userName === null);

            /* =========================================================
               GLOBAL CSS
            ========================================================= */

            if (!document.getElementById('mw-global-custom-css')) {

                var globalCss = `
                @media print {

                    #mw-page-base,
                    #mw-head-base,
                    #mw-navigation,
                    #mw-panel,
                    #footer,
                    .vector-header,
                    .vector-page-toolbar,
                    .vector-toc,
                    .vector-sticky-header,
                    .vector-page-tools,
                    .vector-menu,
                    .mw-indicators,
                    .vector-user-links,
                    .vector-search-box,
                    .vector-pinned-container {
                        display: none !important;
                    }

                    #content,
                    .mw-body,
                    .mw-content-container,
                    .mw-body-content {
                        margin: 0 !important;
                        padding: 0 !important;
                        width: 100% !important;
                        max-width: none !important;
                    }

                    body,
                    #content {
                        background: white !important;
                    }

                    .mw-body-content {
                        font-size: 14pt !important;
                        line-height: 1.5 !important;
                    }
                }

                #extra-search-results {
                    margin-top: 2em;
                    border-top: 1px solid #ddd;
                    padding-top: 1em;
                }

                .search-collapse-section {
                    margin-bottom: 1.5em;
                    border: 1px solid #d8dee8;
                    border-radius: 6px;
                    overflow: hidden;
                    background: #ffffff;
                }

                .search-collapse-header {
                    background: #f3f6fb;
                    padding: 12px 15px;
                    cursor: pointer;
                    font-weight: 600;
                    transition: background .15s ease;
                    user-select: none;
                }

                .search-collapse-header:hover {
                    background: #e9eef7;
                }

                .search-collapse-header::before {
                    content: "▼ ";
                    display: inline-block;
                    transition: transform .2s ease;
                }

                .search-collapse-header.collapsed::before {
                    transform: rotate(-90deg);
                }

                .search-collapse-content {
                    padding: 15px;
                    display: block;
                    background: #fff;
                }

                .search-collapse-content.collapsed {
                    display: none;
                }

                .gcse-searchresults-only {
                    min-height: 200px;
                }

                .search-engine-link {
                    display: block;
                    padding: 8px 0;
                    font-size: 15px;
                    border-bottom: 1px solid #f0f0f0;
                }

                .search-engine-link:last-child {
                    border-bottom: none;
                }

                .search-engine-link a {
                    text-decoration: none;
                    color: #0645ad;
                }

                .search-engine-link a:hover {
                    text-decoration: underline;
                }

                .pse-direct-link {
                    margin-bottom: 15px;
                    padding: 10px;
                    background: #eef5ff;
                    border-radius: 5px;
                }

                .pse-direct-link a {
                    color: #005fcc;
                    text-decoration: none;
                    font-weight: 500;
                }

                .pse-direct-link a:hover {
                    text-decoration: underline;
                }

                .mw-recommended-footer {
                    margin-top: 30px;
                    padding: 15px;
                    border: 2px solid #3a6ea5;
                    background: #eef4fb;
                    border-radius: 6px;
                    color: #1a1a1a;
                    font-size: 14px;
                    line-height: 1.5;
                }

                .mw-recommended-footer-title {
                    font-size: 18px;
                    font-weight: bold;
                    color: #2a4d7a;
                    margin-bottom: 10px;
                }

                .mw-recommended-footer-subtitle {
                    font-size: 18px;
                    font-weight: bold;
                    color: #2a4d7a;
                    margin: 20px 0 10px;
                }

                .mw-recommended-footer ul {
                    margin-left: 15px;
                }

                .mw-recommended-footer a {
                    word-break: break-word;
                }
                `;

                var styleEl = document.createElement('style');

                styleEl.id = 'mw-global-custom-css';
                styleEl.type = 'text/css';

                styleEl.appendChild(
                    document.createTextNode(globalCss)
                );

                document.head.appendChild(styleEl);
            }

            /* =========================================================
            /* =========================================================
   VECTOR-2022 ACTION TOOLBAR (TOOLS-MENÜ)
========================================================= */

if (mw.config.get('wgNamespaceNumber') === 0) {

    var toolbar =
        document.querySelector(
            '#vector-page-tools .vector-menu-content-list'
        );

    if (toolbar && !document.getElementById('mw-custom-toolbar-buttons')) {

        var currentTitle = encodeURIComponent(wikiTitle);

        var toolbarHtml = `
        <div id="mw-custom-toolbar-buttons">

            <li class="vector-menu-content-list-item">
                <a href="#" class="mw-share-trigger" title="Share this page">Share</a>
            </li>

            <li class="vector-menu-content-list-item">
                <a href="#" class="mw-print-trigger" title="Download clean PDF">PDF</a>
            </li>

            <li class="vector-menu-content-list-item">
                <a href="https://cse.google.com/cse?cx=86021a982e3a14848&q=${currentTitle}"
                   target="_blank" rel="noopener noreferrer">Special Search</a>
            </li>

            <li class="vector-menu-content-list-item">
                <a href="https://github.com/MrAnonymousNWO/One_World/wiki/search?q=${currentTitle}"
                   target="_blank" rel="noopener noreferrer">One World Wiki</a>
            </li>

            <li class="vector-menu-content-list-item">
                <a href="https://github.com/ET-Pioneer/Electric-Technocracy-Pioneers-Community/wiki/search?q=${currentTitle}"
                   target="_blank" rel="noopener noreferrer">E.Tech. Wiki</a>
            </li>

        </div>
        `;

        toolbar.insertAdjacentHTML('beforeend', toolbarHtml);
    }
}
/* =========================================================
   GLOBAL EVENT DELEGATION
========================================================= */

            document.addEventListener('click', function (e) {

                /* PDF */

                var printTrigger =
                    e.target.closest('.mw-print-trigger');

                if (printTrigger) {

                    e.preventDefault();

                    window.print();

                    return;
                }

                /* SHARE */

                var shareTrigger =
                    e.target.closest('.mw-share-trigger');

                if (shareTrigger) {

                    e.preventDefault();

                    if (navigator.share) {

                        navigator.share({
                            title: document.title,
                            url: location.href
                        });

                    } else {

                        prompt('Copy link:', location.href);
                    }

                    return;
                }

                /* COLLAPSE TOGGLE */

                var header =
                    e.target.closest('.search-collapse-header');

                if (header) {

                    var targetId =
                        header.getAttribute('data-target');

                    var content =
                        document.getElementById(targetId);

                    header.classList.toggle('collapsed');

                    if (content) {

                        content.classList.toggle('collapsed');
                    }

                    return;
                }
            });

            /* =========================================================
               SEARCH PAGE EXTENSIONS
            ========================================================= */

            if (special === 'Search') {

                var query =
                    mw.util.getParamValue('search');

                if (query) {

                    var encodedQuery =
                        encodeURIComponent(query);

                    var pagination =
                        $('.mw-search-pager-bottom, .results-info').last();

                    var insertPoint =
                        pagination.length
                            ? pagination
                            : $('#mw-search-results');

                    if (insertPoint.length) {

                        var container =
                            document.createElement('div');

                        container.id =
                            'extra-search-results';

                        /* =============================================
                           PSE SECTION
                        ============================================= */

                        var pseSection =
                            document.createElement('div');

                        pseSection.className =
                            'search-collapse-section';

                        var pseDirectUrl =
                            'https://cse.google.com/cse?cx=86021a982e3a14848&q=' +
                            encodedQuery;

                        pseSection.innerHTML = `
                        <div class="search-collapse-header"
                             data-target="pse-content">
                             Programmable Search Engine
                        </div>

                        <div class="search-collapse-content"
                             id="pse-content">

                            <div class="pse-direct-link">
                                <a href="${pseDirectUrl}"
                                   target="_blank"
                                   rel="noopener noreferrer">
                                    🔗 Open in Programmable Search Engine
                                </a>
                            </div>

                            <div class="gcse-searchresults-only"
                                 data-queryParameterName="gq">
                            </div>

                        </div>
                        `;

                        container.appendChild(pseSection);

                        /* =============================================
                           GITHUB WIKIS
                        ============================================= */

                        var githubSection =
                            document.createElement('div');

                        githubSection.className =
                            'search-collapse-section';

                        githubSection.innerHTML = `
                        <div class="search-collapse-header"
                             data-target="github-wikis-content">
                             GitHub Wikis
                        </div>

                        <div class="search-collapse-content"
                             id="github-wikis-content">

                            <div class="search-engine-link">
                                <a href="https://github.com/ET-Pioneer/Electric-Technocracy-Pioneers-Community/wiki/search?q=${encodedQuery}"
                                   target="_blank"
                                   rel="noopener noreferrer">
                                    📘 Search in Electric Technocracy Pioneers GitHub Wiki
                                </a>
                            </div>

                            <div class="search-engine-link">
                                <a href="https://github.com/MrAnonymousNWO/One_World/wiki/search?q=${encodedQuery}"
                                   target="_blank"
                                   rel="noopener noreferrer">
                                    📗 Search in One World GitHub Wiki
                                </a>
                            </div>

                        </div>
                        `;

                        container.appendChild(githubSection);

                        /* =============================================
                           SEARCH ENGINES
                        ============================================= */

                        var searchEngines = [
                            {
                                name: 'Google',
                                icon: '🔍',
                                url: 'https://www.google.com/search?q=' + encodedQuery
                            },
                            {
                                name: 'Bing',
                                icon: '🔎',
                                url: 'https://www.bing.com/search?q=' + encodedQuery
                            },
                            {
                                name: 'DuckDuckGo',
                                icon: '🦆',
                                url: 'https://duckduckgo.com/?q=' + encodedQuery
                            },
                            {
                                name: 'Yandex',
                                icon: '🔍',
                                url: 'https://yandex.com/search/?text=' + encodedQuery
                            },
                            {
                                name: 'Brave Search',
                                icon: '🦁',
                                url: 'https://search.brave.com/search?q=' + encodedQuery
                            },
                            {
                                name: 'Ecosia',
                                icon: '🌳',
                                url: 'https://www.ecosia.org/search?q=' + encodedQuery
                            }
                        ];

                        var searchLinksHtml = '';

                        searchEngines.forEach(function (engine) {

                            searchLinksHtml += `
                            <div class="search-engine-link">
                                <a href="${engine.url}"
                                   target="_blank"
                                   rel="noopener noreferrer">
                                    ${engine.icon} Search on ${engine.name}
                                </a>
                            </div>
                            `;
                        });

                        var searchSection =
                            document.createElement('div');

                        searchSection.className =
                            'search-collapse-section';

                        searchSection.innerHTML = `
                        <div class="search-collapse-header"
                             data-target="search-engines-content">
                             Alternative Search Engines
                        </div>

                        <div class="search-collapse-content"
                             id="search-engines-content">
                             ${searchLinksHtml}
                        </div>
                        `;

                        container.appendChild(searchSection);

                        /* =============================================
                           FOOTER BLOCK
                        ============================================= */

                        var footerBlock =
                            document.createElement('div');

                        footerBlock.className =
                            'mw-recommended-footer';

                        footerBlock.innerHTML = `
                        <div class="mw-recommended-footer-title">
                            Recommended GPT Tools by ChatGPT
                        </div>

                        <ul>

                            <li>
                                <b>World Succession Deed GPT</b><br>
                                <a href="https://chatgpt.com/g/g-69d82340e27081918e08803ce62e46e1-new-international-law-world-succession-deed-1400"
                                   target="_blank"
                                   rel="noopener noreferrer">
                                   https://chatgpt.com/...world-succession-deed-1400
                                </a>
                            </li>

                            <li>
                                <b>Juridical Singularity GPT</b><br>
                                <a href="https://chatgpt.com/g/g-69d95a89896081918fcb207e1665bf26-juridical-singularity-domestic-international-law"
                                   target="_blank"
                                   rel="noopener noreferrer">
                                   https://chatgpt.com/...juridical-singularity
                                </a>
                            </li>

                            <li>
                                <b>Electric Technocracy GPT</b><br>
                                <a href="https://chatgpt.com/g/g-69d8635591d48191adc315b8f2b8be32-electric-technocracy-a-new-form-of-government"
                                   target="_blank"
                                   rel="noopener noreferrer">
                                   https://chatgpt.com/...electric-technocracy
                                </a>
                            </li>

                            <li>
                                <b>AGE OF TRANSITION & THE MENTAL SINGULARITY GPT</b><br>
                                <a href="https://chatgpt.com/g/g-69d99f78d6a081919cd29d8d33531852-age-of-transition-the-mental-singularity"
                                   target="_blank"
                                   rel="noopener noreferrer">
                                   https://chatgpt.com/...mental-singularity
                                </a>
                            </li>

                        </ul>

                        <div class="mw-recommended-footer-subtitle">
                            Recommended External Resources
                        </div>

                        <ul>

                            <li>
                                🌐 <b>WSD – World Succession Deed 1400/98</b><br>
                                <a href="https://worldsold.wixsite.com/world-sold/en"
                                   target="_blank"
                                   rel="noopener noreferrer">
                                   https://worldsold.wixsite.com/world-sold/en
                                </a>
                            </li>

                            <li>
                                🌐 <b>WSD – Global Legal Succession Archive</b><br>
                                <a href="https://worldsold.wixsite.com/global-archive"
                                   target="_blank"
                                   rel="noopener noreferrer">
                                   https://worldsold.wixsite.com/global-archive
                                </a>
                            </li>

                            <li>
                                🌐 <b>Electric Technocracy</b><br>
                                <a href="https://worldsold.wixsite.com/electric-technocracy"
                                   target="_blank"
                                   rel="noopener noreferrer">
                                   https://worldsold.wixsite.com/electric-technocracy
                                </a>
                            </li>

                            <li>
                                📘 <b>Read the eBooks & Download free PDF</b><br>
                                <a href="https://4u.free.nf"
                                   target="_blank"
                                   rel="noopener noreferrer">
                                   https://4u.free.nf
                                </a>
                            </li>

                            <li>
                                🎥 <b>YouTube Channel</b><br>
                                <a href="https://www.youtube.com/@Staatensukzessionsurkunde-1400"
                                   target="_blank"
                                   rel="noopener noreferrer">
                                   https://youtube.com/@Staatensukzessionsurkunde-1400
                                </a>
                            </li>

                            <li>
                                🎙️ <b>Podcast Show</b><br>
                                <a href="https://creators.spotify.com/pod/show/world-succession-deed"
                                   target="_blank"
                                   rel="noopener noreferrer">
                                   https://spotify.com/...world-succession-deed
                                </a>
                            </li>

                            <li>
                                🚀 <b>Start-Page WSD & Electric Paradise</b><br>
                                <a href="https://electric-paradise.start.page"
                                   target="_blank"
                                   rel="noopener noreferrer">
                                   https://electric-paradise.start.page
                                </a>
                            </li>

                        </ul>
                        `;

                        container.appendChild(footerBlock);

                        /* =============================================
                           INSERT SEARCH BLOCK
                        ============================================= */

                        if (pagination.length) {

                            pagination.after(container);

                        } else {

                            insertPoint.after(container);
                        }

                        /* =============================================
                           GOOGLE CSE LAZY LOAD
                        ============================================= */

                        function loadGoogleCSE() {

                            if (window.googleCSELoaded) {
                                return;
                            }

                            window.googleCSELoaded = true;

                            window.__gcse = {

                                parsetags: 'explicit',

                                callback: function () {

                                    if (
                                        !window.google ||
                                        !google.search ||
                                        !google.search.cse
                                    ) {
                                        return;
                                    }

                                    var element =
                                        document.querySelector(
                                            '.gcse-searchresults-only'
                                        );

                                    if (!element) {
                                        return;
                                    }

                                    google.search.cse.element.render({
                                        div: element,
                                        tag: 'searchresults-only',
                                        gname: 'pse_search'
                                    });

                                    var searchControl =
                                        google.search.cse.element.getElement(
                                            'pse_search'
                                        );

                                    if (searchControl) {

                                        searchControl.execute(query);
                                    }
                                }
                            };

                            var s =
                                document.createElement('script');

                            s.async = true;

                            s.src =
                                'https://cse.google.com/cse.js?cx=86021a982e3a14848';

                            document.head.appendChild(s);
                        }

                        if ('IntersectionObserver' in window) {

                            var observer =
                                new IntersectionObserver(
                                    function (entries) {

                                        if (
                                            entries[0].isIntersecting
                                        ) {

                                            loadGoogleCSE();

                                            observer.disconnect();
                                        }

                                    },
                                    {
                                        rootMargin: '300px'
                                    }
                                );

                            observer.observe(container);

                        } else {

                            setTimeout(loadGoogleCSE, 1000);
                        }
                    }
                }
            }

            /* =========================================================
               INFINITYFREE FAILOVER
            ========================================================= */

            if (isAdmin) return;

            if (page === 'MediaWiki:Common.js') return;

            var isArticle = (ns === '');
            var isSearch  = (special === 'Search');

            if (!isArticle && !isSearch) return;

            setTimeout(function () {

                if (!document.body) return;

                var html =
                    document.body.innerHTML || '';

                var text =
                    document.body.innerText || '';

                var injectedHTML =

                    html.includes('infinityfree.net/errors/') ||

                    html.includes('free hosting limits') ||

                    html.includes(
                        'This site is suspended due to exceeding'
                    ) ||

                    (
                        html.includes('InfinityFree') &&
                        html.includes('suspended')
                    );

                if (injectedHTML && isAnon) {

                    window.location.href =
                        'https://singularity-news.github.io/wiki/';
                }

            }, 1000);

        });

    });

})();