
	var map;

	function init_map() {
		
		
		if (GBrowserIsCompatible()) {
			map = new GMap2(document.getElementById("map"));
			map.setCenter(new GLatLng(54, -2), 9);
			map.addControl(new GSmallMapControl());

			init_links();
		}
		
		
	
	}
	
	function init_links(){
		
		var list	= getElementsByClassName(document, 'ul', 'map-points');
		
		if (list){
			
			var items	= list[0].getElementsByTagName('li');
			
			var lat_total	= 0;
			var long_total	= 0;
			
			for (var i=items.length-1; i>=0; i--){
						
				var link		= items[i].getElementsByTagName('a')[0];
				var label_text	= link.innerHTML;
				var detail_id	= 'detail-' + link.id.substr(5);
				var detail		= document.getElementById(detail_id);
				var label_adr	= getElementsByClassName(detail, 'span', 'street-address')[0].innerHTML.replace(/,/g, '<br />');				
				var label		= '<h2>'+label_text+'</h2><p>'+label_adr+'</p>';
				
				var point_lat	= getElementsByClassName(detail, 'span', 'latitude')[0].innerHTML;
				var point_long 	= getElementsByClassName(detail, 'span', 'longitude')[0].innerHTML;
				
				var marker		= pin(point_lat, point_long, label, detail_id);
				
				link.onclick	= addPanClick(point_lat, point_long, marker, label, detail_id);
				
				lat_total 		+= parseFloat(point_lat);
				long_total 		+= parseFloat(point_long);
				
			}
			
			map.setCenter(new GLatLng(lat_total/items.length, long_total/items.length), 9);
			
		}
	}
	

	function pin(point_lat, point_long, label, detail_id){
		var point = new GLatLng(point_lat, point_long);
		var marker = new GMarker(point);
		GEvent.addListener(marker, "click", function() {marker.openInfoWindowHtml(label);show(detail_id);});
		map.addOverlay(marker);
		return marker;
	}

	function pan(point_lat, point_long){
		map.panTo(new GLatLng(point_lat, point_long));
		return false;
	}
	
	function flag(marker, label){
		marker.openInfoWindowHtml(label);
	}
	
	function show(id){
		// hide all
		var details	= getElementsByClassName(document.getElementById('map-col'), 'div', 'station-detail');
				
		for (var i=details.length-1; i>=0; i--){
			details[i].style.display = 'none';
		}
		// show the one we want
		document.getElementById(id).style.display = 'block';
		
	}
	
	function addPanClick(point_lat, point_long, marker, label, detail_id){
		return function(){
					pan(point_lat, point_long); 
					flag(marker, label);
					show(detail_id);
					return false;
				}
	}
	
	
	/*
	    Written by Jonathan Snook, http://www.snook.ca/jonathan
	    Add-ons by Robert Nyman, http://www.robertnyman.com
	*/

	function getElementsByClassName(oElm, strTagName, strClassName){
	    var arrElements = (strTagName == "*" && document.all)? document.all : oElm.getElementsByTagName(strTagName);
	    var arrReturnElements = new Array();
	    strClassName = strClassName.replace(/\-/g, "\\-");
	    var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
	    var oElement;
	    for(var i=0; i<arrElements.length; i++){
	        oElement = arrElements[i];      
	        if(oRegExp.test(oElement.className)){
	            arrReturnElements.push(oElement);
	        }   
	    }
	    return (arrReturnElements)
	}
	
	
	
	
	
	
	window.onload	= init_map;
	window.onunload	= GUnload;