function init(){

	// Parse and create route coordinates
	var route_points = new Array();
	var route_coords_str = document.getElementById("route").innerHTML;
	var route_coords_tuples = route_coords_str.split(" ");
	for(var i = 0; i < route_coords_tuples.length; i++){
		if(i % 4 == 0){
			var point = route_coords_tuples[i];
			var tuple = point.split(",");
			route_points.push(new GLatLng(tuple[1], tuple[0]));
		}
	}
		
	// Parse and create spur
	var spur_points = new Array();
	var spur_coords_str = document.getElementById("s12th").innerHTML;
	var spur_coords_tuples = spur_coords_str.split(" ");
	for(var i = 0; i < spur_coords_tuples.length; i++){
		var point = spur_coords_tuples[i];
		var tuple = point.split(",");
		spur_points.push(new GLatLng(tuple[1], tuple[0]));
	}
	
	// Create maps
	var mapdiv = document.getElementById("map");
	var map = new GMap(mapdiv);
	map.addMapType(G_PHYSICAL_MAP);

	// Add route to main map
	var route_line = new GPolyline(route_points, "#fdba30", 3, 1);
	var spur_line = new GPolyline(spur_points, "#fdba30", 3, 1);
		
	map.addOverlay(route_line);
	map.addOverlay(spur_line);

	// Calculate bounds
	var bounds = calculateBounds(route_points);
	
	// Set center and zoom of maps
	map.setCenter(bounds.getCenter());
	map.setZoom(map.getBoundsZoomLevel(bounds));
	map.setMapType(map.getMapTypes()[1]);
	map.addControl(new GSmallMapControl());

}

function calculateBounds(points){

	var top = null;
	var bottom = null;
	var left = null;
	var right = null;
	
	for(var i = 0; i < points.length; i++){
		
		var point = points[i];
		if(top == null){ 
			top = point;
			bottom = point;
			left = point;
			right = point;
		}
		else{
			if(parseFloat(point.lat()) > parseFloat(top.lat())){ top = point }
			if(parseFloat(point.lat()) < parseFloat(bottom.lat())){ bottom = point }
			if(parseFloat(point.lng()) > parseFloat(right.lng())){ right = point }
			if(parseFloat(point.lng()) < parseFloat(left.lng())){ left = point }
		}
	}
	
	// Build bounds
	var sw = new GLatLng(bottom.lat(), left.lng())
	var ne = new GLatLng(top.lat(), right.lng())
	var bounds = new GLatLngBounds(sw,  ne);
	return new GLatLngBounds(sw,  ne);
}

window.onload = init;
