WME School Zones under Roads

Ensures that school zones polygons render beneath the roads layer.

// ==UserScript==
// @name         WME School Zones under Roads
// @namespace    https://greasyfork.org/en/users/your-username
// @version      1.0
// @description  Ensures that school zones polygons render beneath the roads layer.
// @author       Honkson
// @match        https://www.waze.com/*editor*
// @grant        none
// @license      MIT

// ==/UserScript==

(function () {
    'use strict';

    function moveSchoolZoneLayerBehind() {
        const mapViewport = document.querySelector('.olMapViewport');
        if (!mapViewport) return;

        const svgRoots = mapViewport.querySelectorAll('svg > g[id^="OpenLayers_Layer_Vector_"]');
        let schoolZoneGroup = null;

        svgRoots.forEach(g => {
            const path = g.querySelector('path[fill="#F18200"]');
            if (path && !schoolZoneGroup) {
                schoolZoneGroup = g;
            }
        });

        if (schoolZoneGroup && schoolZoneGroup.parentNode) {
            const parent = schoolZoneGroup.parentNode;
            const firstLayer = parent.firstChild;
            if (firstLayer && firstLayer !== schoolZoneGroup) {
                parent.insertBefore(schoolZoneGroup, firstLayer);
            }
        }
    }

    const observer = new MutationObserver(() => {
        setTimeout(moveSchoolZoneLayerBehind, 100);
    });

    const waitForMap = setInterval(() => {
        const map = document.querySelector('.olMapViewport');
        if (map) {
            clearInterval(waitForMap);
            observer.observe(map, { childList: true, subtree: true });
            moveSchoolZoneLayerBehind();
        }
    }, 500);
})();