MediaWiki:Common.js: Difference between revisions

From Riverview Legal Group
Access restrictions were established for this page. If you see this message, you have no access to this page.
mNo edit summary
mNo edit summary
Line 22: Line 22:
             var popup = $('<div id="popup-overlay">' +
             var popup = $('<div id="popup-overlay">' +
                 '<div id="popup-box">' +
                 '<div id="popup-box">' +
                 '<h2>Free Legal Consultation</h2>' +
                 '<h2>Free Legal Consultation <br> Riverview Legal Group (Ontario)</h2>' +
                 '<p>Our primary focus is the Ontario Landlord and Tenant Board.</p>' +
                 '<p>Our primary focus is the Ontario Landlord and Tenant Board.</p>' +
                 '<p>Call us for help at (888) 655-1076</p>' +
                 '<p>Call us for help at (888) 655-1076</p>' +

Revision as of 05:01, 18 February 2025

console.log("Common.js is loading correctly!");

mw.loader.using(['jquery'], function () {
    $(document).ready(function () {
        var popupShown = sessionStorage.getItem("popupShown");
        var popupTimeout = 120000; // 2 minutes in milliseconds
        var timeoutTriggered = false;

        function sendAnalyticsEvent() {
            if (typeof gtag === "function") {
                gtag('event', 'popup_shown', {
                    'event_category': 'Engagement',
                    'event_label': 'Legal Consultation Popup',
                    'value': 1
                });
            } else {
                console.warn("Google Analytics not detected.");
            }
        }

        function showPopup() {
            var popup = $('<div id="popup-overlay">' +
                '<div id="popup-box">' +
                '<h2>Free Legal Consultation <br> Riverview Legal Group (Ontario)</h2>' +
                '<p>Our primary focus is the Ontario Landlord and Tenant Board.</p>' +
                '<p>Call us for help at (888) 655-1076</p>' +
                '<a href="https://riverview.legal/about-us/" target="_blank" class="popup-button">Book a Consultation</a>' +
                '<span id="popup-close">×</span>' +
                '</div>' +
                '</div>');

            $("body").append(popup);
            sessionStorage.setItem("popupShown", "true");

            // Send Google Analytics event
            sendAnalyticsEvent();

            // Close popup on click
            $("#popup-close").click(function () {
                $("#popup-overlay").fadeOut();
            });

            // Remove scroll listener after triggering
            $(document).off("scroll", scrollHandler);
        }

        function scrollHandler() {
            if (!popupShown || timeoutTriggered) {
                showPopup();
            }
        }

        // Reset popup flag on new page load
        sessionStorage.removeItem("popupShown");

        // Trigger popup when user scrolls
        $(document).one("scroll", scrollHandler);

        // Set timeout to allow popup after 2 minutes
        setTimeout(function () {
            timeoutTriggered = true;
            $(document).one("scroll", scrollHandler);
        }, popupTimeout);
    });
});

// Add CSS styles
mw.util.addCSS(
    "#popup-overlay {" +
    "position: fixed;" +
    "top: 0;" +
    "left: 0;" +
    "width: 100%;" +
    "height: 100%;" +
    "background: rgba(0, 0, 0, 0.6);" +
    "display: flex;" +
    "justify-content: center;" +
    "align-items: center;" +
    "z-index: 9999;" +
    "}" +
    "#popup-box {" +
    "background: white;" +
    "padding: 20px;" +
    "border-radius: 10px;" +
    "text-align: center;" +
    "width: 300px;" +
    "box-shadow: 0 0 10px rgba(0, 0, 0, 0.5);" +
    "position: relative;" +
    "}" +
    ".popup-button {" +
    "display: inline-block;" +
    "background: #007bff;" +
    "color: white;" +
    "padding: 10px;" +
    "text-decoration: none;" +
    "border-radius: 5px;" +
    "margin-top: 10px;" +
    "}" +
    "#popup-close {" +
    "position: absolute;" +
    "top: 10px;" +
    "right: 15px;" +
    "cursor: pointer;" +
    "font-size: 20px;" +
    "}"
);