var map = '';
var theHost = $('#CLIENT_URL').val();
$(document).ready( function() {
  $('#addressForm').bind('submit',function () {
    $('#SubmitForm').click();
  return false;	
})
	

if (GBrowserIsCompatible()) {
  map = new GMap2(document.getElementById("map_canvas"));
  map.setCenter(new GLatLng(-41.3019, 174.8049), 13);
  map.setUIToDefault();
		
  GEvent.addListener(map,"click", function(overlay, latlng) {     
    if (latlng) {
      $('#id_image_title').val('Address unknown');
  	  $('#addressID').val('Address unknown'); 
	  setMarkerToPoint(latlng);
    }
  });
}

$("#SubmitForm").bind("click", function(e) {
  $('#id_image_title').val($('#addressID').val());
  showAddress($('#addressID').val());
  })

var geocoder = new GClientGeocoder();
geocoder.setBaseCountryCode("nz");

	function showAddress(address) {
		geocoder.getLatLng(address, function(point) {
			if (!point) {
				alert(address + " not found");
			} else {	
				map.setCenter(point, 13);
				marker = setMarkerToPoint(point);
				marker.openInfoWindowHtml(address);
			}
		});
	}
	
	function setMarkerToPoint(point){	
		clearMap();
		var marker = new GMarker(point);
		map.addOverlay(marker);
		$('#id_WGS84_latitude').val(point.lat());
		$('#id_WGS84_longitude').val(point.lng());
		 $('.error_message').remove();
		 ajax_request = $.getJSON(
			      theHost+"/convert.php", {
				    x: point.lng(), 
				    y: point.lat(),
				    type:'WGS84'
				   },
				   function  (json){
					   $('.error').remove();
					   if (json.NZMG.Easting!="null") {  
			           $('#id_NZMG_easting').val(json.NZMG.Easting);
					 } else {
						   displayError ('NZMG_field','Location is out of range for NZMG','NZMG_field')
					 }
					 if (json.NZMG.Northing!="null") { 
			           $('#id_NZMG_northing').val(json.NZMG.Northing);
					 }
 					 
					 if (json.NZGD1949.Latitude!="null") { 
			           $('#id_NZGD1949_latitude').val(json.NZGD1949.Latitude);
					 }else {
						   displayError ('NZGD1949_field','Location is out of range for NZGD1949','NZGD1949_field')
					 }
					 if (json.NZGD1949.Longitude!="null") { 
			           $('#id_NZGD1949_longitude').val(json.NZGD1949.Longitude);
					 }
				     if (json.NZTM2000.Easting!="null") { 
			           $('#id_NZTM_easting').val(json.NZTM2000.Easting);
				     }else {
						   displayError ('NZTM2000_field','Location is out of range for NZTM2000','NZTM2000_field')
					 }
				     if (json.NZTM2000.Northing!="null") { 
			           $('#id_NZTM_northing').val(json.NZTM2000.Northing);
				     }
			       }
			    )
		
		
		return marker;
	}
	function clearMap() { map.clearOverlays(); } 
    
	  function displayError ($errorFieldId,$errorMessage,$fieldToAppendTo) 
	  {
	    $('<div id="er_'+$errorFieldId+'" class="error">'+$errorMessage+'</div>').appendTo($('#'+$fieldToAppendTo));
	  }		

})
