var map;

$(document).ready(function() {
	// Hide the image and create a div after it to contain the map
	$('div#pageContent img:first').hide();
	$('div#pageContent img:first').after('<div id="generatedMap"></div>');

	initialize_map('generatedMap');
});

function initialize_map(divId)
{
	if (GBrowserIsCompatible() && document.getElementById(divId))
	{
		//GDraggableObject.setDraggableCursor('default');
		
		map = new GMap2(document.getElementById(divId));
		map.addControl(new GSmallZoomControl());
		map.disableDoubleClickZoom();
		
		//map.setCenter(new GLatLng(44.46320612355044, -93.15178871154785),16 );
		map.setCenter(new GLatLng(44.46116927955635, -93.153076171875),16 );
		
		// Empty copyright info. The text just gets jumbled on the small maps and they're
		// already on our copyrighted pages.		
		var copyright = new GCopyright(1, new GLatLngBounds(new GLatLng(44, -94), new GLatLng(45, -93)), 0, "");
		copyrightCollection = new GCopyrightCollection(''); 
		copyrightCollection.addCopyright(copyright);

		// Basically augment the google maps tiles with transparent tiles at
		// zoom levels greater than 18
		var transparentMapLayer = new GTileLayer(copyrightCollection, 0, 19);
		transparentMapLayer.getTileUrl = function(p,z) {
			if (z < 18) { return G_NORMAL_MAP.getTileLayers()[0].getTileUrl(p,z); }
			else { return '/global_stock/images/campus_map/tiles/transparent.png'; }
		}
		transparentMapLayer.isPng = function() { return true; };
		transparentMapLayer.getOpacity = function() { return 1.0; };

		var baseLayer = new GTileLayer(copyrightCollection, 12, 19);
		baseLayer.getTileUrl = GetBaseTileUrl;
		baseLayer.isPng = function() { return true; };
		baseLayer.getOpacity = function() { return 1.0; };
	
		var allBuildingsLayer = new GTileLayer(copyrightCollection, 12, 19);
		allBuildingsLayer.getTileUrl = GetAllBuildingsTileUrl;
		allBuildingsLayer.isPng = function() { return true; };
		allBuildingsLayer.getOpacity = function() { return 1.0; };
	
		var labelLayer = new GTileLayer(copyrightCollection, 12, 18);
		labelLayer.getTileUrl = GetLabelTileUrl;
		labelLayer.isPng = function() { return true; };
		labelLayer.getOpacity = function() { return 1.0; };		
	
		var baseTileLayers = new Array();
		baseTileLayers[0] = transparentMapLayer;
		baseTileLayers[1] = baseLayer;
		baseTileLayers[2] = allBuildingsLayer;
		baseTileLayers[3] = labelLayer;
	
		baseMapType = new GMapType(baseTileLayers, new GMercatorProjection(21), "Map", {errorMessage:"No campus data available"});
		
		var satelliteLayer = new GTileLayer(copyrightCollection, 0, 18);
		satelliteLayer.getTileUrl = function(p,z) {
			return G_SATELLITE_MAP.getTileLayers()[0].getTileUrl(p,z);
		}
		satelliteLayer.isPng = function() { return true; };
		satelliteLayer.getOpacity = function() { return 1.0; };
		
		var satelliteMapLayers = new Array();
		satelliteMapLayers[0] = satelliteLayer;
		satelliteMapLayers[1] = labelLayer;
		
		satelliteMapType = new GMapType(satelliteMapLayers, new GMercatorProjection(21), "Satellite", {errorMessage:"No satellite data available"});
		
		
		map.addMapType(baseMapType);
		map.addMapType(satelliteMapType);
		map.removeMapType(G_NORMAL_MAP);
		map.removeMapType(G_SATELLITE_MAP);
		map.removeMapType(G_HYBRID_MAP);
		
		map.addControl(new GMapTypeControl());
		map.setMapType(baseMapType);
		
		// Add a map of the US in the corner with a star on Northfield
		map.addControl(new USOverviewControl({size:new GSize(180,105), latlng: new GLatLng(44.46141431718051, -93.15384864807129)}));
		
				
		tinyRedIcon = new GIcon();
		tinyRedIcon.image = "/global_stock/js/admissions/map_pins/mm_20_red.png";
		tinyRedIcon.shadow = "/global_stock/js/admissions/map_pins/mm_20_shadow.png";
		tinyRedIcon.iconSize = new GSize(12, 20);
		tinyRedIcon.shadowSize = new GSize(22, 20);
		tinyRedIcon.iconAnchor = new GPoint(6, 20);
		tinyRedIcon.infoWindowAnchor = new GPoint(5, 1);
	}
}

function GetBaseTileUrl(a,b) {
	var z = 19 - b;
	var f = "/global_stock/images/campus_map/tiles/base/"+b+"_"+a.x+"_"+a.y+".png";
	return f;
}

function GetLabelTileUrl(a,b) {
	var z = 19 - b;
	var f = "/global_stock/images/campus_map/tiles/labels/"+b+"_"+a.x+"_"+a.y+".png";
	return f;
}

function GetAllBuildingsTileUrl(a,b) {
	var z = 19 - b;
	var f = "/global_stock/images/campus_map/tiles/all_buildings/"+b+"_"+a.x+"_"+a.y+".png";
	return f;
}