// source --> https://lirema.no/wp-content/themes/lirema-shared/inc/elementor/google-maps/script.js?ver=6.8.5 
jQuery(document).ready(function ($) {
    var maps = {};

    window.loadMaps = function loadMaps() {
        $('.gmap').each(function () {
            if ($(this).is(":visible")) {
                if (!$(this).attr('id')) {
                    $(this).attr('id', 'map-' + (new Date()).getTime());
                }

                var id = $(this).attr('id');
                var positions = $(this).data('positions');
                var ln = positions.length;
                var latC = 0;
                var lngC = 0;

                if ($(this).data('height') == 100) {
                    $(this).css('height', $(this).parent().height() + 'px');
                }

                // find map center
                for (var i = 0; i < ln; i++) {
                    latC += positions[i][0];
                    lngC += positions[i][1];
                }

                var myOptions = {
                    zoom: 17,
                    center: new google.maps.LatLng(latC / ln, lngC / ln),
                    mapTypeId: google.maps.MapTypeId.ROADMAP
                };

                if (!maps[id]) {
                    maps[id] = new google.maps.Map(this, myOptions);
                }

                if (ln > 1) {
                    var bounds = new google.maps.LatLngBounds();
                }

                //add markers
                for (i = 0; i < ln; i++) {
                    var marker = new google.maps.Marker({
                        map: maps[id], position: new google.maps.LatLng(positions[i][0], positions[i][1])
                    });
                    if (ln > 1) {
                        bounds.extend(marker.getPosition());
                    }
                }

                if (ln > 1) {
                    maps[id].fitBounds(bounds);
                }

                google.maps.event.trigger(maps[id], 'resize');
            }
        });
    };

    $(window).on('elementor/frontend/init', function () {
        if (typeof elementor != 'undefined') {
            elementorFrontend.hooks.addAction('frontend/element_ready/widget', function ($scope) {
                if ($scope.hasClass('elementor-widget-lirema-google-maps')) {
                    loadMaps();
                }
            });
        }
    });

    $('.elementor-tab-title').on('click touch focus focusin focusout', function () {
        setTimeout(function () {
            loadMaps();
        }, 50);
    });

    google.maps.event.addDomListener(window, 'load', loadMaps);
});