var map;

var iconSize = new GSize(10, 10);
var iconAnchor = new GPoint(5, 5);

// Create an icon object.
var partnerIcon = new GIcon();
partnerIcon.image = "/images/blue.png";
partnerIcon.iconSize = iconSize;
partnerIcon.iconAnchor = iconAnchor;
partnerIcon.infoWindowAnchor = new GPoint(5, 5);

var artistIcon = new GIcon();
artistIcon.image = "/images/red.png";
artistIcon.iconSize = iconSize;
artistIcon.iconAnchor = iconAnchor;
artistIcon.infoWindowAnchor = new GPoint(5, 5);

function createMarker(point, content, markerIcon)
{
	var marker = new GMarker(point, { icon:markerIcon });
	marker.bindInfoWindowHtml(content);
	return marker;
}

function initialize(markerId)
{
	map = new GMap2(document.getElementById('map'));
	
	var centreSet = false;
	
	map.addControl(new GLargeMapControl());
	GDownloadUrl("/services/geocode.xml.php?type=partners", function(data, responseCode) {
		var xml = GXml.parse(data);

		var markers = xml.documentElement.getElementsByTagName("marker");
		for (var i = 0; i < markers.length; i++) {
			
			if (markers[i].getAttribute('lat') != '' && markers[i].getAttribute('lng') != '') {
				var point = new GLatLng(parseFloat(markers[i].getAttribute('lat')), parseFloat(markers[i].getAttribute('lng')));
				
				var markerIcon;
				if (markers[i].getAttribute('type') == 'artist')	{ markerIcon = artistIcon; }
				if (markers[i].getAttribute('type') == 'partner')	{ markerIcon = partnerIcon; }
				
				var hasTextContent = (markers[i].textContent != undefined) ? true : false;
				
				var htmlContent;
	
				if (hasTextContent)
					htmlContent = markers[i].textContent;
				else
					htmlContent = markers[i].text;

				var marker = createMarker(point, htmlContent, markerIcon);
				
				marker.textContent = htmlContent;
				marker.bindInfoWindowHtml(htmlContent);
			
				map.addOverlay(marker);
				
				if (markers[i].getAttribute('id') == markerId) {
					var centre = new GLatLng(parseFloat(markers[i].getAttribute('lat')), parseFloat(markers[i].getAttribute('lng')));
					map.setCenter(centre, 16);
					marker.openInfoWindowHtml(htmlContent);
					centreSet = true;
				}
			}
		}
	});
	
	if (!centreSet) {
		map.setCenter(new GLatLng(49.259270, -123.103902), 13);
	}
}