var map = null;

function body_load_impl() {
	if (GBrowserIsCompatible()) {
		var mapElement = document.getElementById("map");
		if(mapElement != null) { //check element exists for when users are logged out.
			map = new GMap2(mapElement);
			map.addMapType(G_PHYSICAL_MAP);
			map.setMapType(G_PHYSICAL_MAP);
			map.setCenter(new GLatLng(56.2, 12.0), 6);
			map.addControl(new GLargeMapControl());
			map.addControl(new GMapTypeControl());

			showRegionPolygons();

			if(navigator.userAgent.indexOf("MSIE 8.0") > -1) {
			  document.getElementById("ie8note").style.display = "block";
			}
		}
	}
}

var mouseX = 0;
var mouseY = 0;
function getMouseXY(e) {
  if(e && e.pageX) { // -- NS-style
    mouseX = e.pageX;
    mouseY = e.pageY;
  } else {           // -- IE-style
    mouseX = event.clientX + document.documentElement.scrollLeft;
    mouseY = event.clientY + document.documentElement.scrollTop;
  }
  var mapOverDiv = document.getElementById("mapOverDiv");
  if(mapOverDiv != null) {
    mapOverDiv.style.left = (mouseX + 10) + "px";
    mapOverDiv.style.top  = (mouseY - 8) + "px";
  }
}
document.onmousemove = getMouseXY;


function showRegionPolygons(except) {
	for (regionKey in regionArr) {
		//alert("addOnePolygon('" + regionArr[regionKey].displayName + "')");
		var r = regionArr[regionKey];
		if(r != except) {
			addOnePolygon(r);
		}
	}
}
function addOnePolygon(obj) {
	var color = obj.color;
	if(obj.region) {
		color = obj.region.color;
	}
	var newGPolygon = new GPolygon(obj.polygon, color, 0.5, 1.0, color, 0.3);
	newGPolygon.AtkeLand_dataObj = obj;
	obj.gPolygon = newGPolygon;
	map.addOverlay(newGPolygon);
	GEvent.addListener(newGPolygon, "mouseover", polyOver);
	GEvent.addListener(newGPolygon, "mouseout",  polyOut);
	GEvent.addListener(newGPolygon, "click",     polyClick);
}

function polyOver() {
	this.opacity = 0.6;
	this.redraw(true);
	//map.openInfoWindowHtml(this.getBounds().getCenter(), "<i>" + this.AtkeLand_dataObj.displayName + "</i>");
	var mapOverDiv = document.getElementById("mapOverDiv");
	mapOverDiv.innerHTML = "<b>" + this.AtkeLand_dataObj.displayName + "</b><br />" + this.AtkeLand_dataObj.memberIDs.length + " støttepersoner";
	mapOverDiv.style.display = "block";
}
function polyOut() {
	this.opacity = 0.3;
	this.redraw(true);
	//map.closeInfoWindow();
	document.getElementById("mapOverDiv").style.display = "none";
}
function polyClick() {
	if(this.AtkeLand_dataObj.kommuneArr) {
		//Clicked a Region
		map.clearOverlays();
		showRegionPolygons(this.AtkeLand_dataObj);

		for (kKey in this.AtkeLand_dataObj.kommuneArr) {
			var k = this.AtkeLand_dataObj.kommuneArr[kKey];
			addOnePolygon(k);
		}

		map.setZoom(7);
		map.panTo(this.getBounds().getCenter());

		var regionID = "";
		for(key in regionArr) {
			if(regionArr[key] == this.AtkeLand_dataObj) {
				regionID = key;
				break;
			}
		}
		selectRegion(regionID);
	} else {
		//Clicked a Kommune
		selectKommune(this.AtkeLand_dataObj);
	}
	//map.openInfoWindowHtml(this.getBounds().getCenter(), "<i>" + this.AtkeLand_dataObj.displayName + "</i>");
}

function addTestObjects() {
	map.addOverlay(new GMarker(new GLatLng(55.67296,12.55818)));
	map.addOverlay(new GMarker(new GLatLng(55.6,12)));

	var BirtePoint = new GLatLng(55.84434,12.43533);
	map.addOverlay(new GMarker(BirtePoint));
	map.openInfoWindow(BirtePoint, document.createTextNode("Her bor Birte"));
}
