
/*
 * wikiMyGMaps-geoxml3.js
 *
 * ZMIANA 1:
 * Nie ładujemy tutaj Google Maps API.
 * Ładowanie API i callback są zdefiniowane w pliku HTML.
 *
 * ZMIANA 2:
 * Zakładamy, że biblioteka geoXML3 jest już załadowana.
 */

function initializeWikiMAP1(
    wikiLat, wikiLon, wikiZoom, wikiWidth, wikiHeight,
    wikiType, wikiControls, wikiScale, wikiUnits,
    wikiSelectors, wikiUrlFit,
    wikiUrl1, wikiUrl2, wikiUrl3, wikiUrl4, wikiUrl5,
    wikiUrl6, wikiUrl7, wikiUrl8, wikiUrl9, wikiUrl10,
    wikiUrl11, wikiUrl12, wikiUrl13, wikiUrl14, wikiUrl15,
    wikiUrl16, wikiUrl17, wikiUrl18, wikiUrl19, wikiUrl20
) {
    // ZMIANA 3: sprawdzamy, czy obie biblioteki są dostępne.
    if (!window.google || !google.maps) {
        console.error("Google Maps API nie jest załadowane.");
        return;
    }

    if (!window.geoXML3 || !geoXML3.parser) {
        console.error(
            "Nie znaleziono geoXML3.parser. Sprawdź plik geoXML3.js."
        );
        return;
    }

    var mapElement = document.getElementById("wikiMyGMapsMAP1");

    if (!mapElement) {
        console.error("Nie znaleziono elementu wikiMyGMapsMAP1.");
        return;
    }

    // Zachowujemy początkowe centrum, zoom i typ mapy.
    var map = new google.maps.Map(mapElement, {
        center: {
            lat: Number(wikiLat),
            lng: Number(wikiLon)
        },
        zoom: Number(wikiZoom),
        mapTypeId: wikiType,
        scaleControl: wikiScale,
        fullscreenControl: true
    });

    /*
     * ZMIANA 4:
     * Wszystkie adresy przechowujemy w tablicy.
     * wikiUrlFit pozostaje pierwszy, jak w Twoim oryginalnym kodzie.
     */
    var urls = [
        wikiUrlFit,
        wikiUrl1, wikiUrl2, wikiUrl3, wikiUrl4, wikiUrl5,
        wikiUrl6, wikiUrl7, wikiUrl8, wikiUrl9, wikiUrl10,
        wikiUrl11, wikiUrl12, wikiUrl13, wikiUrl14, wikiUrl15,
        wikiUrl16, wikiUrl17, wikiUrl18, wikiUrl19, wikiUrl20
    ];

    var parsers = [];

    // ZMIANA 5: pomijamy puste lub nieprzekazane adresy.
    urls.forEach(function (url) {
        if (typeof url !== "string" || url.trim() === "") {
            return;
        }

        var parser = new geoXML3.parser({
            map: map,
            processStyles: true,
            singleInfoWindow: true,

            afterParse: function (documents) {
                console.log(
                    "Zakończono parsowanie KML/KMZ:",
                    url,
                    documents
                );
            }
        });

        parsers.push(parser);

        // Parser odczytuje wskazany plik.
        parser.parse(url);
    });

    /*
     * ZMIANA 6:
     * Zachowujemy referencje do parserów na obiekcie mapy.
     * Przyda się to przy późniejszym zarządzaniu warstwami.
     */
    map.wikiKmlParsers = parsers;

    return map;
}
