var mapOverlays = ["map_canvas_overlay_link", "map_canvas_overlay_email" ];

function getCurrentStateLink() {
	var center = map.getCenter();
	var params = "?loc=" + center.lat() + "," + center.lng() + "&z=" + map.getZoom();
	if(iconMgr.isMarkerOpen()) {
		var marker = iconMgr.getCurrentOpenMarker();
		if(marker != null) {
			if(marker.getGazetteer) {
				var gp = marker.getGazetteer();
				params += "&tid=" + gp.tileID + "&feature=" + URLencode(gp.gaz.featureName);
			} else if(marker.getTitle) {
				var text = marker.getTitle();
				params += "&addr=" + URLencode(text) + 
						  "&addrloc=" + marker.getPoint().lat() + "," + marker.getPoint().lng();
			}
		}
	}
	
	return "http://" + window.location.host + window.location.pathname + params;
}

function displayLinkBox() {
	removeMapOverlays();
	document.getElementById("map_canvas_overlay_link").style.display = "block";
	document.getElementById("link_text").value = getCurrentStateLink();
	document.getElementById("link_text").select();
}

function displayEmailBox() {
	removeMapOverlays();
	document.getElementById("map_canvas_overlay_email").style.display = "block";
	document.getElementById("email_to").focus();
	var message = "Hi, \nI'd like to share an interesting link with you.\nLink: <" + getCurrentStateLink() + ">";
	document.getElementById('email_message').value = message;
}

function validateEmail(email) {
	if(email.indexOf("@") == -1)
		return false;
	return true;
}

function sendEmail() {
	var to = document.getElementById("email_to").value.trim();
	var from = document.getElementById("email_from").value.trim();
	var message = document.getElementById("email_message").value.trim();
	var subject = "Interesting Link to Share";
	var funcParams = [];

	var errorMsg = "";
	if(validateEmail(to) == false) {
		errorMsg = "Please enter valid 'to' address";
		document.getElementById("email_to").focus();
	} else if(validateEmail(from) == false) {
		errorMsg = "Please enter valid 'from' address";
		document.getElementById("email_from").focus();
	} else if(message == "") {
		errorMsg = "Please enter the message body";
		document.getElementById("email_message").focus();
	}
		
	if(errorMsg != "") {
		document.getElementById('emailError').innerHTML = errorMsg;
		return;
	}

	var params = "from=" + URLencode(from)
				+ "&to=" + URLencode(to) 
				+ "&subject=" + URLencode(subject)
				+ "&message=" + URLencode(message);
	var service = getServer() + "/sendEmail";
	document.getElementById('emailError').innerHTML = "";
	document.getElementById('emailNonError').innerHTML = "Sending Email...";
	HttpPostRequest(service, "/sendEmail", params, 
		function(response, funcParams2) {
			if(response.trim() == "true") {
				document.getElementById('emailError').innerHTML = "";
				document.getElementById('emailNonError').innerHTML = "Email Successfully Sent.";
				window.setTimeout(removeMapOverlays, 3000);
			} else {
				document.getElementById('emailError').innerHTML = response.trim();
			}
		}
		, funcParams);
}

function removeMapOverlays() {
	for(var i=0; i<mapOverlays.length; i++) {
		if(document.getElementById(mapOverlays[i])) {
			document.getElementById(mapOverlays[i]).style.display = "none";
		}
	}
}

function GX_getSearchParams() {  
	var params = new Map();
	var searchStr = window.location.search.substring(1);
	if(searchStr.length > 0) {
	  	var parameters = searchStr.split("&");
	  	for(var i=0; i<parameters.length; i++) {
		    var temp = parameters[i].split("=");
	    	var name = temp[0];
	    	var value = unescape(temp[1]);
	    	params.put(name, value);
	    }
	}
    //alert(searchStr + ":" + params.size());
    return params;
 }

 function GX_getParamZoom() {
 	var params = GX_getSearchParams();
 	return params.get("z");
 }
 
 function GX_interpretSearchParams() {
 	var params = GX_getSearchParams();
 	if(params.size() > 0) {
 		var tid = params.get("tid");
 		var feature = params.get("feature");
 		if(tid != null && feature != null) {
	 		GX_tile_active_feature[tid] = feature;
	 		GX_tile_active_news[tid] = feature;
	 	}
	 	
 		var location = params.get("loc");
 		var zoom = params.get("z");
 		if(location != null) { 			
 			var latlon = location.split(",");
 			GX_setCenter(latlon[0], latlon[1]);
 			if(zoom != null) {
 				GX_setZoom(parseInt(zoom));
 			} 
 		}
 		
 		if(tid != null && feature != null) {
 			if(GX_isGazetteerTileLoaded(tid)) {
 				GX_showGazetteer(tid, GX_getGazetteerIndex(tid, feature), 0);
 			}
 			if(GX_isNewsTileLoaded(tid)) {
 				GX_drawNews(tid, GX_getGazetteerIndex(tid, feature), 0);
 			}
 		} else {
 			var addr = params.get("addr");
 			var addrloc = params.get("addrloc");
 			if(addr != null && addrloc != null) {
 				var latlon = addrloc.split(",");
 				var point = new GLatLng(latlon[0], latlon[1]);
		       	var marker = GX_createMarker(point, GX_iconParcel, addr);  		 	
     			iconMgr.addMarker(marker, minZoom);
				GX_showMarker(marker, addr + "<BR><BR>", false);
 			}
 		}
 	}
 }
 
 	
