var iconImage = '/images/hotel.png';

var map = null;

var markerBounds = {
    'minLat': 0,
    'maxLat': 0,
    'minLon': 0,
    'maxLon': 0
};

var openInfoWindow = null;

function setupMarkers(markers)
{
    $(markers).each(function(index,hotel) {

        if (markerBounds.minLat>hotel.lat || markerBounds.minLat==0) {
            markerBounds.minLat = hotel.lat;
        }
        if (markerBounds.maxLat<hotel.lat || markerBounds.maxLat==0) {
            markerBounds.maxLat = hotel.lat;
        }
        if (markerBounds.minLon>hotel.lon || markerBounds.minLon==0) {
            markerBounds.minLon = hotel.lon;
        }
        if (markerBounds.maxLon<hotel.lon || markerBounds.maxLon==0) {
            markerBounds.maxLon = hotel.lon;
        }

        var marker = new google.maps.Marker({
            position: new google.maps.LatLng(hotel.lat, hotel.lon),
            map: map,
            icon: iconImage
        });

        var infowindow = new google.maps.InfoWindow({
            content: '<div class="mapinfo"><strong>'+hotel.name+'</strong><br>'+hotel.strasse+'<br>'+hotel.plz+' '+hotel.ort+'<br><a href="/hotel/detail_'+hotel.id+'.html">Mehr Infos und Buchung</a>'+'</div>',
            size: new google.maps.Size(50,50)
        });
        google.maps.event.addListener(marker, 'click', function() {
            if (openInfoWindow && openInfoWindow.content!=infowindow.content) {
                openInfoWindow.close();
                infowindow.open(map,marker);
            } else {
                infowindow.open(map,marker);
            }
            openInfoWindow = infowindow;
        });

    });

    if (markerBounds.maxLat>0) {
        if (markerBounds.maxLat>markerBounds.minLat) {
            map.fitBounds(new google.maps.LatLngBounds(
                new google.maps.LatLng(markerBounds.maxLat,markerBounds.minLon),
                new google.maps.LatLng(markerBounds.minLat,markerBounds.maxLon)
            ));
        } else {
            map.setCenter(new google.maps.LatLng(markerBounds.maxLat,markerBounds.minLon));
        }
    }
}

$(document).ready(function() {

    var userPositionLatLng = new google.maps.LatLng(51.35022, 12.31778);

    var myOptions = {
        zoom: 13,
        center: userPositionLatLng,
        panControl: true,
        zoomControl: true,
        scaleControl: true,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    map = new google.maps.Map(document.getElementById("Map"), myOptions);

    setupMarkers(hotelMarkers);

});

