var dermacol = {
    prevInfoWindow: null,
};

dermacol.initialize = function(elementId, lat, lng, zoom, cluster) {
    // map
    var myOptions = {
      zoom: zoom,
      center: new google.maps.LatLng(lat, lng),
      mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    var map = new google.maps.Map(document.getElementById(elementId), myOptions);
    
    // marker array
    var markers = [];

    // markers
    for (i in data) {
        if (!data[i].lat || data[i].lat == -1) {
            continue;
        }
        
        (function() {
            var marker = new google.maps.Marker({
              map: map,
              position: new google.maps.LatLng(data[i].lat, data[i].lng),
              title: data[i].title,
              icon: new google.maps.MarkerImage('/media/dermacol-maps/icon-log.png', new google.maps.Size(23, 27))
            });

            var infowindow = new google.maps.InfoWindow({
              content: '<div class="infowindow">' + data[i].text + '</div>'
            });
            
            google.maps.event.addListener(marker, 'click', function(e){
                // close previous
                if (dermacol.prevInfoWindow != null) {
                    dermacol.prevInfoWindow.close();
                }
                dermacol.prevInfoWindow = infowindow;

                // open new
                infowindow.open(map, marker);
            });

            google.maps.event.addListener(marker, 'dblclick', function(e) {
              map.setCenter(marker.getPosition());
              map.setZoom(map.getZoom() + 1);
            });
            
            markers.push(marker);  
        })();
    }
    
    if (cluster) {
        // clusterer
        var clusterer = new MarkerClusterer(map, markers, {
            styles: [{
                url: '/media/dermacol-maps/icon-solo.png',
                height: 27,
                width: 23,
                textColor: 'white'
            }]
        });
    }
}


