// source --> https://www.riverislands.com/wp-content/plugins/ri-ga4/js/main.js 
; 'use strict';
/* global gc_ga4 */

document.addEventListener('DOMContentLoaded', function() {

    // Variables
    window.dataLayer = window.dataLayer || [];
    const locPath = window.location.pathname;
    const locSearch = window.location.search;
    let pathParts = locPath.split('/'),
        pagePath = [],
        pathLen = pathParts.length,
        i;
    for(i = 0; i < pathLen; i++) pathParts[i] && pagePath.push(pathParts[i]);

    // ✅ Fire view_content on all post pages
    if (gc_ga4.slug.length > 0 && gc_ga4.title.length > 0) {
        let ga4ContentEvent = {
            'event': 'view_content',
        };
        ga4ContentEvent['content_slug'] = gc_ga4.slug;
        ga4ContentEvent['content_name'] = gc_ga4.title;
        ga4ContentEvent['content_type'] = gc_ga4.type;
        if (gc_ga4.categories.length > 0) {
            ga4ContentEvent['content_categories'] = gc_ga4.categories.join(',');
        }
        // console.log(ga4ContentEvent);
        window.dataLayer.push(ga4ContentEvent);
    }

    // ✅ Fire view_aerial_tour event on aerial tour page
    if (locPath.indexOf('/aerial-tour-today/') >= 0) {
        window.dataLayer.push({ 'event': 'view_aerial_tour' })
    }

    // ✅ Fire view_neighborhood passing neighborhood_name param event on neighborhoods page
    if (locPath.indexOf('/find-homes/neighborhoods/') >= 0 && pagePath.length > 0) {
        const neighborhoodName = pagePath[pagePath.length - 1];
        if (neighborhoodName !== 'neighborhoods') {
            let ga4NeighborhoodEvent = {
                'event': 'view_neighborhood',
                'neighborhood_name': pagePath[pagePath.length - 1],
            };
            window.dataLayer.push(ga4NeighborhoodEvent);
        }
    }

    // ✅ Fire view_plan event passing plan_name param on plans page
    if (locPath.indexOf('/plans/') >= 0 && pagePath.length > 0) {
        const planName = pagePath[pagePath.length - 1];
        if (planName !== 'plans') {
            let ga4PlanEvent = {
                'event': 'view_plan',
                'plan_name': pagePath[pagePath.length - 1],
            };
            window.dataLayer.push(ga4PlanEvent);
        }
    }

    // ✅ Fire homefinder_search event on the homefinder page
    if (locPath === '/find-homes/' && locSearch.length > 0) {
        const searchParams = new URLSearchParams(locSearch);
        if (searchParams.has("submit_search")) {
            let ga4HomefinderEvent = {
                'event': 'homefinder_search',
            }
            searchParams.forEach((val, key) => {
                // Collection
                if (key === 'filter_collection' && val.length > 0) {
                    ga4HomefinderEvent['search_collection'] = val;
                }
                // Prize
                if (key === 'min_price' && val.length > 0) {
                    ga4HomefinderEvent['search_price_min'] = val;
                }
                if (key === 'max_price' && val.length > 0) {
                    ga4HomefinderEvent['search_price_max'] = val;
                }
                // Beds
                if ( key === 'filter_beds' && val.length > 0) {
                    ga4HomefinderEvent['search_beds'] = val;
                }
                // Baths
                if ( key === 'filter_bath' && val.length > 0) {
                    ga4HomefinderEvent['search_baths'] = val;
                }
                // Stories
                if ( key === 'filter_stories' && val.length > 0) {
                    ga4HomefinderEvent['search_stories'] = val;
                }
                // Garage
                if ( key === 'filter_garages' && val.length > 0) {
                    ga4HomefinderEvent['search_garages'] = val;
                }
            });
            // console.log('homefinder_search', ga4HomefinderEvent);
            window.dataLayer.push(ga4HomefinderEvent);
        }
    }

    // Form Submission Events
    const newsletterForm = document.querySelector('#form_newslettersignup');
    if (newsletterForm) {
        newsletterForm.addEventListener('submit', function(event) {
            const formId = $(event.target).find('input[name="form_id"]').val();
            let ga4SignUpEvent = {
                'event': 'newsletter_signup',
                'form_id': formId,
            };
            window.dataLayer.push(ga4SignUpEvent);
        });
    }
    const requestMoreInfoForm = document.querySelector('#form_request_more_info');
    if (requestMoreInfoForm) {
        requestMoreInfoForm.addEventListener('submit', function(event) {
            const formId = $(event.target).find('input[name="form_id"]').val();
            let ga4RequestMoreInfoEvent = {
                'event': 'request_more_info_signup',
                'form_id': formId,
            };
            window.dataLayer.push(ga4RequestMoreInfoEvent);
        });
    }
});