var map = null;
var geocoder = null;

function createMarker(point, text) {
	var marker = new GMarker(point);
	GEvent.addListener(marker, "click", function() {
		marker.openInfoWindowHtml(text);
	});
  return marker;
}

function showAddress() 
{
	if(map == null)
	{
		alert('map is unavailable');
		return;
	}
	if(geocoder == null)
	{
		alert('geocoder is unavailable');
		return;
	}
	map.clearOverlays();
	var address = document.getElementById("m_address").value;
	geocoder.getLatLng(address,	function(point) 
		{
			if (!point) 
			{
				alert(address + " not found");
			} 
			else 
			{
				map.setCenter(point, 13);
				BuildPushPins(point.x, point.y);

				// As this is user-generated content, we display it as
				// text rather than HTML to reduce XSS vulnerabilities.
				marker.openInfoWindow(document.createTextNode(address));
			}
		}
	);
}

function BuildPushPins(lat, lon)
{
	GDownloadUrl("PushPinLookUp.aspx?longitude=" + lat + "&latitude=" + lon + "", function(data, responseCode) 
		{
			var xml = GXml.parse(data);
			var markers = xml.documentElement.getElementsByTagName("marker");
			for (var i = 0; i < markers.length ; i++) 
			{
				var point = new GLatLng(parseFloat(markers[i].getAttribute("latitude")),
										parseFloat(markers[i].getAttribute("longitude")));
				var business_activity = ""+markers[i].getAttribute("business_activity"); 			
				var first_name = ""+markers[i].getAttribute("first_name"); 			
				var last_name = ""+markers[i].getAttribute("last_name"); 			
				var user_name = ""+markers[i].getAttribute("user_name"); 	
				var dist = ""+markers[i].getAttribute("dist"); 	
				var html = "";
				//if(m_showList == "true")
				{
					html = "<a href=\"ContactHomePageView.aspx?user_name=" + user_name + "\">" + first_name + " " + last_name + "</a><br/>Distance: "+dist+" km<br/>"+business_activity;
				}
/*				else
				{
					html = "<a href=\"ContactHomePageView.aspx?user_name=" + user_name + "\">" + first_name + " " + last_name + "</a><br/>"+business_activity;
				}*/
				
				var opts = new Object();
				opts.clickable = true;
				opts.bouncy = true;
				opts.title = business_activity; 			
				var marker = createMarker(point, html);
				map.addOverlay(marker);
				
//				if(m_showList == "true")
				/*{
					var row = m_contactsList.insertRow(-1);
					row.insertCell(-1).innerHTML = "<a href=\"ContactHomePageView.aspx?user_name=" + user_name + "\">" + first_name + " " + last_name +  "</a>";
					row.insertCell(-1).innerHTML = dist +  " km";
				}*/
			}
		}
	);
}

function load() 
{
	if (GBrowserIsCompatible()) 
	{
		map = new GMap2(document.getElementById("map"));
		geocoder = new GClientGeocoder();

		map.addControl(new GSmallMapControl());
		map.addControl(new GMapTypeControl());
		var longitude_field = document.getElementById("m_longitude");
		var latitude_field = document.getElementById("m_latitude");
		var zoom_level_field = document.getElementById("m_zoomLevel");
		map.setCenter(new GLatLng(latitude_field.value, longitude_field.value), 5);

//		var m_contactsList = document.getElementById("m_contactsList");
//		var m_showList = document.getElementById("m_showList").value;
		BuildPushPins(latitude_field.value, longitude_field.value)
	}
}

