var map, base, bmng, route;

function init() {
	OpenLayers.ImgPath = "http://tiles.bylandandsea.org/img/";

	OpenLayers.IMAGE_RELOAD_ATTEMPTS = 3;
	OpenLayers.Util.onImageLoadErrorColor = "transparent";

	var options = {
		controls: [
			new OpenLayers.Control.MouseDefaults(),
			new OpenLayers.Control.KeyboardDefaults(),
			new OpenLayers.Control.PanZoomBar(),
			new OpenLayers.Control.LayerSwitcher(),
			new OpenLayers.Control.Permalink()
		],
		projection: new OpenLayers.Projection("EPSG:900913"),
		displayProjection: new OpenLayers.Projection("EPSG:4326"),
		units: "m",
		maxResolution: 156543.0339,
		maxExtent: new OpenLayers.Bounds(-20037508, -20037508, 20037508, 20037508.34),
		theme: 'http://tiles.bylandandsea.org/theme/default/style.css'
	};

	map = new OpenLayers.Map('map', options);

	var gphy = new OpenLayers.Layer.Google(
		"Google Physical",
		{type: G_PHYSICAL_MAP, 'sphericalMercator': true}
	);
	
	var gmap = new OpenLayers.Layer.Google(
		"Google Streets",
		{'sphericalMercator': true}
	);
	
	var ghyb = new OpenLayers.Layer.Google(
	   "Google Hybrid",
	   {type: G_HYBRID_MAP, 'sphericalMercator': true}
   );
   
	var gsat = new OpenLayers.Layer.Google(
		"Google Satellite",
	   {type: G_SATELLITE_MAP, 'sphericalMercator': true}
	);

	formatHack = OpenLayers.Util.alphaHack() ? 'image/gif' : 'image/png';

	route = new OpenLayers.Layer.WMS(
			"Route",
			[ 
				"http://tiles1.bylandandsea.org/tilecache.fcgi?",
				"http://tiles2.bylandandsea.org/tilecache.fcgi?",
				"http://tiles3.bylandandsea.org/tilecache.fcgi?",
				"http://tiles4.bylandandsea.org/tilecache.fcgi?",
				"http://tiles5.bylandandsea.org/tilecache.fcgi?",
				"http://tiles6.bylandandsea.org/tilecache.fcgi?",
				"http://tiles7.bylandandsea.org/tilecache.fcgi?",
				"http://tiles8.bylandandsea.org/tilecache.fcgi?"
			],
			{
				layers: 'blas-route',
				format: formatHack,
				transparent: true,
				wrapDateLine: true
			},
			{
				isBaseLayer: false
			}
	);

	boundaries = new OpenLayers.Layer.WMS(
			"Boundaries",
			[
				"http://tiles1.bylandandsea.org/tilecache.fcgi?",
				"http://tiles2.bylandandsea.org/tilecache.fcgi?",
				"http://tiles3.bylandandsea.org/tilecache.fcgi?",
				"http://tiles4.bylandandsea.org/tilecache.fcgi?",
				"http://tiles5.bylandandsea.org/tilecache.fcgi?",
				"http://tiles6.bylandandsea.org/tilecache.fcgi?",
				"http://tiles7.bylandandsea.org/tilecache.fcgi?",
				"http://tiles8.bylandandsea.org/tilecache.fcgi?"
			],
			{
				layers: 'blas-boundaries',
				format: formatHack,
				transparent: true,
				wrapDateLine: true
			},
			{
				isBaseLayer: false
			}
	);

	map.addLayers([gphy, gmap, ghyb, gsat, route]);

	// ogrinfo -so . blas_trk_edg
	// Extent: (-124.110520, 11.925492) - (-73.949690, 47.627553)
	
	corner1 = OpenLayers.Layer.SphericalMercator.forwardMercator(-124.11, 11.92);
   corner2 = OpenLayers.Layer.SphericalMercator.forwardMercator(-73.94, 47.62);

	map.zoomToExtent(new OpenLayers.Bounds(corner1.lon, corner1.lat, corner2.lon, corner2.lat)); 
}
