MediaWiki:Common.js

From WikiPatents
Jump to navigation Jump to search

Note: After saving, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Internet Explorer: Hold Ctrl while clicking Refresh, or press Ctrl-F5
  • Opera: Go to Menu → Settings (Opera → Preferences on a Mac) and then to Privacy & security → Clear browsing data → Cached images and files.
mw.loader.load('https://static.addtoany.com/menu/page.js');

mw.loader.load(function() {
    var script = document.createElement('script');
    script.async = true;
    script.src = "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8564930964635372";
    script.setAttribute('crossorigin', 'anonymous');
    document.head.appendChild(script);
});


$(document).ready(function() {
    if ($('#content').length) {
        $('#content').append('<div class="a2a_kit a2a_kit_size_32 a2a_default_style">' +
            '<a class="a2a_dd" href="https://www.addtoany.com/share"></a>' +
            '<a class="a2a_button_email"></a>' +
            '<a class="a2a_button_x"></a>' +
            '<a class="a2a_button_telegram"></a>' +
            '<a class="a2a_button_whatsapp"></a>' +
            '<a class="a2a_button_facebook"></a>' +
            '<a class="a2a_button_facebook_messenger"></a>' +
            '<a class="a2a_button_google_gmail"></a>' +
            '</div>');
    }
});


(function() {
    // Use a unique key for this script
    var SCRIPT_KEY = 'patentAlertScriptExecuted';
    var POPUP_KEY = 'patentAlertPopupCreated';

    // Function to check if the script has already run
    function hasScriptRun() {
        return window[SCRIPT_KEY] === true;
    }

    // Function to mark the script as run
    function markScriptAsRun() {
        window[SCRIPT_KEY] = true;
    }

    // Function to check if popup has been created
    function hasPopupBeenCreated() {
        return window[POPUP_KEY] === true;
    }

    // Function to mark popup as created
    function markPopupAsCreated() {
        window[POPUP_KEY] = true;
    }

    // Main function to create popup and banner
    function createPatentAlert() {
        // Check if the script has already been executed
        if (hasScriptRun()) return;

        // Mark the script as run
        markScriptAsRun();

        // Check if the alert has been shown in the last 24 hours
        var lastShown = localStorage.getItem('patentAlertLastShown');
        var now = new Date().getTime();
        
        if (!lastShown || now - lastShown > 24 * 60 * 60 * 1000) {
            // Create and show popup
            createPopup();
            
            // Create and show banner
            createBanner();
        }
    }

    function createPopup() {
        // Check if popup has already been created
        if (hasPopupBeenCreated()) return;

        // Mark popup as created
        markPopupAsCreated();

        var $popup = $('<div>')
            .attr('id', 'patentAlertPopup')
            .css({
                position: 'fixed',
                top: '50%',
                left: '50%',
                transform: 'translate(-50%, -50%)',
                backgroundColor: 'rgba(255, 255, 255, 0.95)',
                padding: '30px',
                borderRadius: '20px',
                border: '8px solid #ffbe18',
                boxShadow: '0 10px 40px rgba(0,0,0,0.2)',
                width: '400px',
                maxWidth: '90%',
                zIndex: 1000,
                fontFamily: 'Arial, sans-serif',
                textAlign: 'center',
                display: 'none' // Start hidden
            })
            .html('<h2 style="color: #333; font-size: 24px; margin-bottom: 20px;">Patent Application Monitoring</h2>' +
                  '<p style="color: #555; font-size: 16px; line-height: 1.5; margin-bottom: 25px;">Want to monitor Patent Applications? Submit your custom request and get a free weekly report!</p>' +
                  '<button id="patentAlertButton">Get Alerts</button>')
            .appendTo('body');

        $('#patentAlertButton').css({
            display: 'inline-block',
            padding: '12px 24px',
            backgroundColor: '#ffbe18',
            color: '#333',
            border: 'none',
            borderRadius: '25px',
            fontSize: '18px',
            fontWeight: 'bold',
            cursor: 'pointer',
            transition: 'background-color 0.3s, transform 0.1s',
            outline: 'none'
        }).on('click', function() {
            window.open('https://docs.google.com/forms/d/e/1FAIpQLSfvGeHyDW-ND9TqqVhbPOrYsKWsvUgFp9Rl-gfsyZCaLp7fXA/viewform?usp=sf_link', '_blank');
            $popup.fadeOut(300);
            localStorage.setItem('patentAlertLastShown', new Date().getTime());
        }).on('mouseover', function() {
            $(this).css('backgroundColor', '#e5ab16');
        }).on('mouseout', function() {
            $(this).css('backgroundColor', '#ffbe18');
        }).on('mousedown', function() {
            $(this).css('transform', 'scale(0.95)');
        }).on('mouseup', function() {
            $(this).css('transform', 'scale(1)');
        });

        // Add close button
        $('<button>')
            .text('×')
            .css({
                position: 'absolute',
                top: '10px',
                right: '10px',
                background: 'none',
                border: 'none',
                fontSize: '24px',
                color: '#666',
                cursor: 'pointer'
            })
            .on('click', function() {
                $popup.fadeOut(300);
                localStorage.setItem('patentAlertLastShown', new Date().getTime());
            })
            .appendTo($popup);

        // Show popup with fade-in effect after a short delay
        setTimeout(function() {
            $popup.fadeIn(500);
        }, 1000);
    }

function createBanner() {
        var $banner = $('<div>')
            .css({
                position: 'fixed',
                top: '0',
                left: '0',
                width: '100%',
                backgroundColor: '#ffbe18',
                padding: '10px',
                boxShadow: '0 2px 10px rgba(0,0,0,0.1)',
                zIndex: 999,
                fontFamily: 'Arial, sans-serif',
                textAlign: 'center',
                display: 'flex',
                justifyContent: 'center',
                alignItems: 'center'
            })
            .html('<p style="color: #333; font-size: 16px; margin: 0 20px 0 0;">Want to monitor Patent Applications? Get a free weekly report!</p>' +
                  '<button id="patentAlertBannerButton">Get Alerts</button>')
            .prependTo('body');

        $('#patentAlertBannerButton').css({
            display: 'inline-block',
            padding: '8px 16px',
            backgroundColor: '#333',
            color: '#fff',
            border: 'none',
            borderRadius: '25px',
            fontSize: '14px',
            fontWeight: 'bold',
            cursor: 'pointer',
            transition: 'background-color 0.3s',
            outline: 'none'
        }).on('click', function() {
            window.open('https://docs.google.com/forms/d/e/1FAIpQLSfvGeHyDW-ND9TqqVhbPOrYsKWsvUgFp9Rl-gfsyZCaLp7fXA/viewform?usp=sf_link', '_blank');
        }).on('mouseover', function() {
            $(this).css('backgroundColor', '#555');
        }).on('mouseout', function() {
            $(this).css('backgroundColor', '#333');
        });

        // Add close button for banner
        $('<button>')
            .text('×')
            .css({
                background: 'none',
                border: 'none',
                fontSize: '20px',
                color: '#333',
                cursor: 'pointer',
                marginLeft: '20px'
            })
            .on('click', function() {
                $banner.slideUp(300);
            })
            .appendTo($banner);

        // Show banner with slide-down effect
        $banner.hide().slideDown(500);

        // Adjust body padding to accommodate the banner
        $('body').css('padding-top', $banner.outerHeight());
    }

    // Use a more reliable method to ensure the script runs only once when the DOM is ready
    if (document.readyState === 'loading') {
        document.addEventListener('DOMContentLoaded', createPatentAlert);
    } else {
        createPatentAlert();
    }
})();