//Google Map Functions
var map = false;
var gdir;
var markers = [];
var geocoder;
//google.load("maps", "2");

function validate_address () 
{	
	if($("address").value == "")
	{
		$('verify_message').innerHTML = "<span class=\"errMsg\">Street Cannot be Blank!</span>";
		return;
	}
	// add AUSTRALIA to the address
	address = $("address").value+", "+$("postcode").value+", Australia";
	// find location
	geocoder = new GClientGeocoder();
	geocoder.getLocations(
		address, 
		function (response) {
			if (!response || response.Status.code != 200) {
				$('verify_message').innerHTML = "<span class=\"errMsg\">Street Cannot be found</span>";
				return;
			} else {
				place = response.Placemark[0];
				var addressArray = place.address.split(",");
				var postCodePart = addressArray[1];
				var realPostCode = postCodePart.split(" ");
				//real post code from google is realPostCode[2]
				//alert(realPostCode[realPostCode.length - 1]);
				if($("postcode").value != realPostCode[realPostCode.length - 1])
				{
					$('verify_message').innerHTML = "<span class=\"errMsg\">Street or Post Code Cannot be found</span>";
					return;
				}
				$('lat').value = place.Point.coordinates[1];
				$('lng').value = place.Point.coordinates[0];
				var suburb = place.address.split(", ");
				suburb = suburb[1];
				$("suburb").value = suburb;
				$("state").value = place.AddressDetails.Country.AdministrativeArea.AdministrativeAreaName;
				$('verify_message').innerHTML = "<label>Address is valid</label>";
			}
		}
	);	
}
function initialize() 
{
	new Ajax.Request('./inc/ajax/location_ajax.php', 
	{
		method:'get',
		parameters: {
			action: 'getAllLocations'
		},
		onSuccess: function (r) 
		{
			//alert(r.responseText);
			if(r.responseText == "")
			{
				//document.getElementById("map_canvas").style.display = "none";
				document.getElementById("map_canvas").innerHTML = "<label>No Location Added Yet </label>";
				return false;
			}
			var returnArr =  r.responseText.split(",");
			var crossLayer = new GTileLayer(new GCopyrightCollection(""), 0, 15);

			crossLayer.getTileUrl =  function(tile, zoom) {
			  return "./include/tile_crosshairs.png";
			}
			crossLayer.isPng = function() {return true;}
		
			// Create a new map type incorporating the tile layer
			var layerTerCross = [ G_PHYSICAL_MAP.getTileLayers()[0], crossLayer ];
			var mtTerCross = new GMapType(layerTerCross,
			  G_PHYSICAL_MAP.getProjection(), "Ter+");
							var map = new GMap2(document.getElementById("map_canvas"));
							map.addMapType(G_PHYSICAL_MAP);
			map.addMapType(mtTerCross);
			var mapControl = new GHierarchicalMapTypeControl();
			
			// Set up map type menu relationships
			mapControl.clearRelationships();
			mapControl.addRelationship(G_SATELLITE_MAP, G_HYBRID_MAP, "Labels", false);
			mapControl.addRelationship(G_PHYSICAL_MAP, mtTerCross, "Crosshairs");
			
			// Add control after you've specified the relationships
			map.addControl(mapControl);
			map.enableScrollWheelZoom();
			map.addControl(new GLargeMapControl());
			for (var i = 0; i < returnArr.length; i++) 
			{
			
				var pointArr = returnArr[i].split("+");
				var point = new GLatLng(pointArr[0],pointArr[1]);
				if(i == 0)
				{
					map.setCenter(new GLatLng(pointArr[0], pointArr[1]), 10);
				}
				map.addOverlay(new GMarker(point));
				
			}
		}
	});
	
        //map.setCenter(new GLatLng(37.4419, -122.1419), 13);
        // Add 10 markers to the map at random locations
		//call an ajax file to get all locations 
		/*new Ajax.Request('/inc/ajax/location_ajax.php', 
		{
			method: 'get',
			parameters: {
				action: 'getAllLocations'
			},
			onSuccess: function (r) 
			{
				var returnArr =  r.responseText.split(",");
				var crossLayer = new GTileLayer(new GCopyrightCollection(""), 0, 15);

				crossLayer.getTileUrl =  function(tile, zoom) {
				  return "./include/tile_crosshairs.png";
				}
				crossLayer.isPng = function() {return true;}
			
				// Create a new map type incorporating the tile layer
				var layerTerCross = [ G_PHYSICAL_MAP.getTileLayers()[0], crossLayer ];
				var mtTerCross = new GMapType(layerTerCross,
				  G_PHYSICAL_MAP.getProjection(), "Ter+");
								var map = new GMap2(document.getElementById("map_canvas"));
								map.addMapType(G_PHYSICAL_MAP);
				map.addMapType(mtTerCross);
				map.setCenter(new GLatLng(37.4419, -122.1419), 2);
				var mapControl = new GHierarchicalMapTypeControl();
				
				// Set up map type menu relationships
				mapControl.clearRelationships();
				mapControl.addRelationship(G_SATELLITE_MAP, G_HYBRID_MAP, "Labels", false);
				mapControl.addRelationship(G_PHYSICAL_MAP, mtTerCross, "Crosshairs");
				
				// Add control after you've specified the relationships
				map.addControl(mapControl);
				map.enableScrollWheelZoom();
				map.addControl(new GLargeMapControl());
				for (var i = 0; i < returnArr.length; i++) 
				{
				
					var pointArr = returnArr[i].split("+");
					var point = new GLatLng(pointArr[0],pointArr[1]);
					if(i == 0)
					{
						map.setCenter(new GLatLng(pointArr[0], pointArr[1]), 10);
					}
					map.addOverlay(new GMarker(point));
					
				}
			}
		});*/
		
    
    }