

var CustomMap = Class.create(GoogleMap, {
	maxZoom: 15,
	addData: function addData() {
		index = 1;

		$$('span.coordinates[title]').each(function(span) {
			
			var LatLng = this.strToLatLng(span.readAttribute('title'));
			var title = span.next('.name').innerHTML.strip();
			var text = span.next('.description').innerHTML.strip();
			if(span.next('.link')) {
				var link = span.next('.link').innerHTML.strip();
			} else {
				var link = "";
			}
			var image = span.down('img');
			
			this.bounds.extend(LatLng);

			var icon = new google.maps.MarkerImage(image.readAttribute('src'),
				new google.maps.Size(27,27),
				new google.maps.Point(0,0),
				new google.maps.Point(14,27)
			);

			var shape = { coord: [1, 1, 1, 20, 26, 20, 26, 1], type: 'poly' };
			var marker = this.addMarker(LatLng, { title: title, icon: icon, shape: shape });

			var infoWindow;
			infoWindow = new google.maps.InfoWindow({
				content: "<strong>"+title+"</strong><br />"+text+"<br />"+link
			});
			
			this.infoWindows.push(infoWindow);

			var markerClick = function clickMarker(event, marker) {
				if(event.stop) {
					event.stop();
					if(event.findElement('img.map-anchor')) {
						this.element.scrollTo();

					}
					
				}
				this.infoWindows.invoke('close');
				infoWindow.open(this.map, marker);
			}.bindAsEventListener(this, marker);			

			image.observe('click', markerClick);
			
			google.maps.event.addListener(marker, 'click', markerClick);
					
			index++;
		}.bind(this));
		this.fitBounds();
	
	}
});

document.observe("dom:loaded", function domloaded() {
	
	/* Custom Google Map */

	$$('div.google-map').each(function(container) { new CustomMap(container); });
});
