function initializeMap(locations) {
    var myOptions = {
      zoom: 10,
      mapTypeId: google.maps.MapTypeId.TERRAIN,
      mapTypeControl: true,
      mapTypeControlOptions: {style: google.maps.MapTypeControlStyle.DROPDOWN_MENU}
    };
    var map = new google.maps.Map(document.getElementById('map'), myOptions);
    
    var points = [];
    for (var i = 0; i < locations.length; i++) {
    	points[i] = new google.maps.LatLng(locations[i][2], locations[i][3]);
    }
    
    fitMap(map, points);
    setMarkers(map, locations);
} 

function setMarkers(map, locations) {
	for (var i = 0; i < locations.length; i++) {
		var item = locations[i];
		var myLatLng = new google.maps.LatLng(item[2], item[3]);
    	var marker = new google.maps.Marker({
        	position: myLatLng,
        	map: map,
        	icon: new google.maps.MarkerImage(
        			item[5],
        			new google.maps.Size(32, 48),
        			new google.maps.Point(0,0),
        			new google.maps.Point(32, 48)
        	),
        	title: item[0]
    	});
  		
	
		//google.maps.event.addListener(marker, 'click', function() {
		//	infowindow.open(map, marker);
		//});
		
		var content = '<div class="popup"><img id="park_image" src="' + item[6] + '" alt="' + item[0] + '" /><h3><a href="' + item[4] + '">' + item[0] + '</a></h3><p>' + item[1] + '</p></div>';
		makeInfoWindow(map, marker, content);
	}
}

function makeInfoWindow(map, marker, content) {
	var infowindow = new google.maps.InfoWindow({
		maxWidth: 300,
		maxHeight: 100
	});
	google.maps.event.addListener(marker, 'click', function () {
		infowindow.setContent(content);
	    infowindow.open(map, marker);
	});
} 

function fitMap(map, points) {
	 //fit points to map
    var mapbounds = new google.maps.LatLngBounds();
    
    for(var i = 0; i < points.length; i++){
    	mapbounds.extend(points[i]);
    }

    //get center of extended points and set it on the map
    map.setCenter(mapbounds.getCenter());

    //set minmarkers if undefined
    if(!minmarkers)
        var minmarkers = 1;

    //apply user-defined zoom level to points on map
    if(points.length <= minmarkers){
    	map.setZoom(map.zoom);
    } else {
    	//fit map using map api function
        var correction = 0.001;
    	var southwest = mapbounds.getSouthWest();
    	var latlng = new google.maps.LatLng(southwest.lat() - correction, southwest.lng() - correction);
    	mapbounds.extend(latlng);
    	var northeast = mapbounds.getNorthEast();
    	var latlng = new google.maps.LatLng(northeast.lat() + correction, northeast.lng() + correction);
    	mapbounds.extend(latlng);
    	map.fitBounds(mapbounds); 
    } 
}
