//<![CDATA[
var map;
var bounds;

function loadMap() {
	if (GBrowserIsCompatible()) {
		map = new GMap2(document.getElementById("map"));
		GEvent.addListener(map, "moveend", function() {
			var mapInfo = document.getElementById("message");
			var center = map.getCenter();
			var zoom = map.getZoom();
			if(mapInfo)mapInfo.innerHTML = '(Latitude, Longtitude) = '+center.toString()+', Zoom Level = '+zoom;
		});
		map.addControl(new GLargeMapControl(),new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(0, 0)));
		map.addControl(new GMapTypeControl(),new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(40, 0)));
		map.addControl(new GScaleControl(),new GControlPosition(G_ANCHOR_BOTTOM_RIGHT, new GSize(40, 20)));
		map.enableDoubleClickZoom();
		bounds = new GLatLngBounds();
		getBounds();
		if(!window["zoomlevel"])
			zoomlevel = map.getBoundsZoomLevel(bounds);
		map.setCenter(bounds.getCenter(), zoomlevel, mapIcons["maptype"]);
		setMapLocations();
	}//if (GBrowserIsCompatible()) {
}//function load() {

function getBounds(){
	if(window["mapBounds"]){
		for(var l in mapBounds){
			//alert(mapBounds[l][0]+'x'+mapBounds[l][1]);
			var position = new GLatLng(mapBounds[l][0], mapBounds[l][1]);
			bounds.extend(position);
		}//for(var i in mapBounds){
	}else{
		for(var l in mapLocations){
			var layers = mapLocations[l];
			for(var p in layers["places"]){
				var place = layers["places"][p];
				var position = new GLatLng(place["position"][0], place["position"][1]);
				bounds.extend(position);
			}//for(var p in layers["places"}){
		}//for(var i in mapLocations){
	}
}//function getBounds(){

function setMapLocations(){
	//var mapManager;
	var mapManager = new GMarkerManager(map);
	for(var l in mapLocations){
		var layers = mapLocations[l];
		var markers = [];
		for(var p in layers["places"]){
			var place = layers["places"][p];
			var icon = getIcon(place["icon"]);
			var position = new GLatLng(place["position"][0], place["position"][1]);
			var marker = createMarker(position, place["name"], icon, place["notes"], place, layers["zoom"][1]);
			//var marker = new GMarker(position);
			markers.push(marker);
			place.marker = marker;
			//bounds.extend(position);
		}//for(var p in layers["places"}){
		mapManager.addMarkers(markers, layers["zoom"][0], layers["zoom"][1]);
	}//for(var i in mapLocations){
	mapManager.refresh();
}//function setMapLocations(){
	
function createMarker(position, title, icon, notes, place, zoom){
	var title = place["name"];// + '\nClick to Zoom in';
	var marker = new GMarker(position, {title: title, icon: icon});
	//var marker = new GMarker(position, {title: place["name"]});
	GEvent.addListener(marker, "click", function(){
		var zoom2 = map.getZoom();
		//if(notes!="" && zoom==zoom2)marker.openInfoWindowHtml(title+"<br>"+notes);
		if(place["infotabs"]){
			marker.openInfoWindowTabsHtml(place["infotabs"]);
		}else{
			if(notes!="")marker.openInfoWindowHtml(notes);
		}
		//map.closeInfoWindow();
		url="relocate("+position+", "+zoom+")";
		//window.setTimeout(url, 0);
		map.setZoom(zoom);
		map.panTo(this.getPoint());
		map.setMapType(place["maptype"]);
	})
	place.marker = marker;
	return marker;
}//function createMarker(position, title, icon, notes, place, zoom){

function getIcon(images) {
  var icon = null;
  var icons = {};
  if (images) {
	if (icons[images[0]]) {
	  icon = icons[images[0]];
	} else {
	  icon = new GIcon();
	  var image = mapIcons[images[0]];
	  icon.image = mapIcons["path"] + images[0] + mapIcons["ext"];
	  if(image["printImage"])icon.printImage = mapIcons["path"] + images[0] + image["printImage"];
	  icon.iconSize = new GSize(image["size"][0], image["size"][1]);
	  icon.iconAnchor = new GPoint(image["iconAnchor"][0], image["iconAnchor"][1]);
	  icon.infoWindowAnchor = new GPoint(image["infoAnchor"][0], image["infoAnchor"][1]);
	  icon.shadow = mapIcons["path"] + images[1] + mapIcons["ext"];
	  image = mapIcons[images[1]];
	  //icon.shadowSize = new GSize(size.width, size.height);
	  icon.shadowSize = new GSize(image["size"][0], image["size"][1]);
	  icons[images[0]] = icon;
	}
  }
  return icon;
}//function getIcon(images) {
	
function relocate(position, zoom){
	alert(position);
	return;
	map.panTo(position);
	map.setZoom(zoom);
}//function relocate(position, zoom){
//]]>
