﻿
	function LoadGMap(divId)
	{
		if (GBrowserIsCompatible() == false)
			alert("Sorry, the Google Maps API is not compatible with this browser");
			
		gMap = new GMap(document.getElementById(divId));
		gMap.addControl(new GSmallMapControl());
		gMap.addControl(new GMapTypeControl());
	}
	
	function AddMapToGMap(getTileUrl, mapName)
	{
		var typeMap_array = new Array();
		var typeMap_base = new GTileLayer();
		typeMap_base.getTileUrl = getTileUrl;
		typeMap_array[0] = typeMap_base;
		var typeMap = new GMapType(typeMap_array, G_NORMAL_MAP.getProjection(), mapName, {shortName:mapName, maxResolution:16, minResolution:13, errorMessage:""});
		gMap.addMapType(typeMap);
		
		gMap.removeMapType(G_NORMAL_MAP);
		gMap.removeMapType(G_HYBRID_MAP);
		gMap.removeMapType(G_SATELLITE_MAP);
		
		return typeMap;
	}
	
	function SetGMap(mapType, location, zoom)
	{
		gMap.setMapType(mapType);
		gMap.centerAndZoom(location, zoom);
	}
	
	function AddGMapEvent(eventName, functionObj)
	{
		GEvent.addListener(gMap, eventName, functionObj);
	}
	
	var gMap;
	LoadGMap("itemMap");
	
	var GetCustomTileUrl_TpHCM = function(a, b)
	{
		return "/maps/TpHCM/" + "zoom=" + (17-b) + ".x=" + (a.x) + ".y=" + (a.y) + ".gif";
	}
	var GetCustomTileUrl_HaNoi = function(a, b)
	{
		return "/maps/HaNoi/" + "zoom=" + (17-b) + ".x=" + (a.x) + ".y=" + (a.y) + ".gif";
	}
	var GetCustomTileUrl_DaNang = function(a, b)
	{
		return "/maps/DaNang/" + "zoom=" + (17-b) + "&x=" + (a.x) + "&y=" + (a.y) + ".gif";
	}
	
	var defaultLocationTpHCM = new GPoint(106.67617321014404, 10.778673942331343);
	var defaultLocationHaNoi = new GPoint(106.0414981842041, 20.764661328796087);
	var defaultLocationDaNang = new GPoint(108.58586311340332,15.793079478596201);
	
	var mapTpHCM = AddMapToGMap(GetCustomTileUrl_TpHCM, "TpHCM");
	var mapHaNoi = AddMapToGMap(GetCustomTileUrl_HaNoi, "Hà Nội");
	var mapDaNang = AddMapToGMap(GetCustomTileUrl_DaNang, "Đà Nẵng");
	
	var mapNameList = new Array("TpHCM", "Hà Nội", "Đà Nẵng");
	var mapObjList = new Array(mapTpHCM, mapHaNoi, mapDaNang);
	var mapLocationList = new Array(defaultLocationTpHCM, defaultLocationHaNoi, defaultLocationDaNang);
	function GetMapIdByName(mapName) { for (var i = 0; i < mapNameList.length; i++) if (mapNameList[i] == mapName) return i; }
	
	function SetGMapById(mapId, location) { SetGMap(mapObjList[mapId], location != null ? location : mapLocationList[mapId], defaultZoom); }
	
	AddGMapEvent('maptypechanged', 
		function()
		{
			curMapId = GetMapIdByName(gMap.getCurrentMapType().getName());
			gMap.centerAndZoom(mapLocationList[curMapId], defaultZoom);
		}
	);
	
	var curMapId = 0;
	var defaultZoom = 3;
