var Map = {
	initialize: function(element, markers) {
		if (GBrowserIsCompatible()) 
		{
			Map.map = new GMap2(document.getElementById(element));
			Map.geocoder = new GClientGeocoder();
			Map.bounds = new GLatLngBounds();

			Map.map.setUIToDefault();

			Map.recursiveAddMarkers(markers, 0);
		}  
	},

	recursiveAddMarkers: function(markers, i) {
		if (i < markers.length)
		{
			var address = markers[i].address;
			var city = markers[i].city;
			var state = markers[i].state;
			var zip = markers[i].zip_code;
			var latitude = markers[i].latitude;
			var longitude = markers[i].longitude;
			var geocode_string = address + ', ' + city + ', ' + state + ' ' + zip;

			Map.geocoder.getLatLng(geocode_string, function(point) {
				if (latitude != '' && longitude != '')
					point = new GLatLng(latitude, longitude);

				if (point)
				{
					var marker = new GMarker(point);
					var location = markers[i];

					var str = '<p>' +
						location.name + '<br />' + 
						location.address + '<br />' + 
						location.city + ', ' + location.state + '  ' + location.zip_code + '<br />';

					str += "</p>";

					GEvent.addListener(marker, "click", function() {
						marker.openInfoWindowHtml(str);
					});

					Map.map.addOverlay(marker);
					Map.bounds.extend(point);
				}
				
				i++;
				Map.recursiveAddMarkers(markers, i);
			});
		}
		else
		{
			Map.map.setCenter(Map.bounds.getCenter());
			//Map.map.setZoom(12);
		}
	}
};


