var map;
var geocoder;
var address;
var nanIcon;

function initialize() {
  if (GBrowserIsCompatible() && $('#map_canvas').length>0) {
    var map = new GMap2(document.getElementById("map_canvas"));
    var center = new GLatLng("43.670233","-79.386755");
    map.addControl(new GLargeMapControl3D());
    map.setCenter(center, 14);

    nanIcon = new GIcon(G_DEFAULT_ICON);
		nanIcon.image = '/sites/all/themes/nan/images/nan-marker.png';
		nanIcon.shadow = '/sites/all/themes/nan/images/nan-marker-shadow.png';
		nanIcon.highlight = '/sites/all/themes/nan/images/nan-marker-hover.png';
		nanIcon.iconSize = new GSize(28, 38);
		nanIcon.shadowSize = new GSize(44, 39);
		nanIcon.iconAnchor = new GPoint(13, 38);

		var marker = new GMarker(center, {draggable:true, icon:nanIcon});
    GEvent.addListener(marker, "dragend", getAddress);
    map.addOverlay(marker);
  }
  geocoder = new GClientGeocoder();

	$('#edit-field-location-0-value, #edit-field-member-address-0-value').change(function(){
		var address = $(this).attr('value') + ' Toronto, Ontario';
		if (geocoder) {
			geocoder.getLatLng(
				address,
				function(point) {
					if (!point) {
//						alert(address + " not found");
					} else {

						$('#edit-field-latitude-0-value').attr('value',point.lat());
						$('#edit-field-longitude-0-value').attr('value',Math.round(point.lng()*1000000)/1000000);

						map.clearOverlays();
						map.panTo(point, 14);
						var marker = new GMarker(point, {draggable:true, icon:nanIcon});
						GEvent.addListener(marker, "dragend", getAddress);
						map.addOverlay(marker);
					}
				}
			);
		}
	})
	
	
}

function getAddress(latlng) {
  if (latlng != null) {
    address = latlng;
    geocoder.getLocations(latlng, showAddress);
  }
}

function showAddress(response) {
  if (!response || response.Status.code != 200) {
    alert("Status Code:" + response.Status.code);
	} else {
		if ($('body').hasClass('section-join') || $('body').hasClass('section-members-edit')) {
			$('#edit-field-member-address-0-value').attr('value',response.Placemark[0].AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality.Thoroughfare.ThoroughfareName+' (approximate)');
			$('#edit-field-member-city-0-value').attr('value',response.Placemark[0].AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality.LocalityName);
			$('#edit-field-member-province-0-value').attr('value',response.Placemark[0].AddressDetails.Country.AdministrativeArea.AdministrativeAreaName);
			$('#edit-field-member-postalcode-0-value').attr('value','');

			} else {

			$('#edit-field-location-0-value').attr('value',response.Placemark[0].address);
		}

		$('#edit-field-latitude-0-value').attr('value',response.Placemark[0].Point.coordinates[1]);
		$('#edit-field-longitude-0-value').attr('value',Math.round(1000000*response.Placemark[0].Point.coordinates[0])/1000000);

  }
}





