/* Begin: Google Map Javascript
/* created 6/09 by Rich Rudzinski
/*------------------------------------------*/

/* Initializes the google maps api. Sets up custom markers and html overlay. */
//<![CDATA[
function load(xmlMap) {
	if (GBrowserIsCompatible()) {
		// A function to create the marker and set up the event window
		function createMarker(point,name,html,markerOptions) {
			var marker = new GMarker(point, markerOptions);
			GEvent.addListener(marker, "click", function() {
				marker.openInfoWindowHtml(html);
			});
			return marker;
		}

		var map = new GMap2(document.getElementById("map"));
		map.addControl(new GLargeMapControl());
		map.addControl(new GMapTypeControl());
		map.setMapType(G_PHYSICAL_MAP);
		map.setCenter(new GLatLng(32.7860, -117.1825), 13);

		// Read the data from properties.xml
		GDownloadUrl(xmlMap, function(doc) {
			var xmlDoc = GXml.parse(doc);
			var markers = xmlDoc.documentElement.getElementsByTagName("marker");

			for (var i = 0; i < markers.length; i++) {
				// obtain the attribues of each marker
				var lat = parseFloat(markers[i].getAttribute('lat'));
				var lng = parseFloat(markers[i].getAttribute('lng'));
				var point = new GLatLng(lat,lng);
				var label = markers[i].getAttribute("label");
				
				var src = markers[i].getElementsByTagName('image')[0].childNodes[0];
				src = (src == undefined) ? '' : src.nodeValue;
				var city = markers[i].getElementsByTagName('city')[0].childNodes[0];
				city = (city == undefined) ? '' : city.nodeValue;
				var address = markers[i].getElementsByTagName('address')[0].childNodes[0];
				address = (address == undefined) ? '' : address.nodeValue;
				var phone = markers[i].getElementsByTagName('phone')[0].childNodes[0];
				phone = (phone == undefined) ? '' : phone.nodeValue;
				var moreInfo = label.toLowerCase();
				moreInfo = moreInfo.replace(/ /g, '-').replace(/,/g, '');

				var html ='<img src="'+src+'" width="380px" height="220px" style="padding-top:8px;" />' + '<h3>' + label + '</h3>' + '<p>' + address + '<br />' + city + '<br />' + phone + '</p>';
				
				var tinyIcon = new GIcon();
				tinyIcon.shadow = '';
				tinyIcon.image = 'images/icon_logo.png';
				tinyIcon.shadowSize = new GSize(32, 36);
				tinyIcon.iconSize = new GSize(25, 25);
				tinyIcon.iconAnchor = new GPoint(10, 35);
				tinyIcon.infoWindowAnchor = new GPoint(10, 5);
				var markerOptions = { icon:tinyIcon };
				// create the marker
				var marker = createMarker(point,label,html,markerOptions);
				map.addOverlay(marker);
			}
		});
	}
}