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 3: Line 3:
mw.loader.using(['jquery'], function () {
mw.loader.using(['jquery'], function () {
     $(document).ready(function () {
     $(document).ready(function () {
         var popupLastShown = localStorage.getItem("popupLastShown");
         var popupShown = sessionStorage.getItem("popupShown");
         var popupShownThisSession = sessionStorage.getItem("popupShownThisSession");
         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() {
         function showPopup() {
Line 10: Line 23:
                 '<div id="popup-box">' +
                 '<div id="popup-box">' +
                 '<h2>Free Legal Consultation</h2>' +
                 '<h2>Free Legal Consultation</h2>' +
                '<h3>Riverview Legal Group (Ontario)</h3>' +
                 '<p>Our primary focus is the Ontario Landlord and Tenant Board.</p>' +
                 '<p>We specialize in helping Landlords and Tenants at the 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>' +
                 '<a href="https://riverview.legal/about-us/" target="_blank" class="popup-button">Book a Consultation</a>' +
                 '<a href="https://riverview.legal/about-us/" target="_blank" class="popup-button">Book a Consultation</a>' +
Line 19: Line 31:


             $("body").append(popup);
             $("body").append(popup);
             localStorage.setItem("popupLastShown", Date.now());
             sessionStorage.setItem("popupShown", "true");
             sessionStorage.setItem("popupShownThisSession", "true");
 
             // Send Google Analytics event
            sendAnalyticsEvent();


             // Close popup on click
             // Close popup on click
Line 28: Line 42:


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


         function shouldShowPopup() {
         function scrollHandler() {
             var now = Date.now();
             if (!popupShown || timeoutTriggered) {
            var lastShown = popupLastShown ? parseInt(popupLastShown) : 0;
                showPopup();
             var twoMinutesPassed = (now - lastShown) > (2 * 60 * 1000); // 2 minutes in milliseconds
             }
        }


            // Show popup if it's a new session (new page load) or 2 minutes have passed
        // Reset popup flag on new page load
            return !popupShownThisSession || twoMinutesPassed;
        sessionStorage.removeItem("popupShown");
         }
 
        // Trigger popup when user scrolls
         $(document).one("scroll", scrollHandler);


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

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</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;" +
    "}"
);