var localSearch = new GlocalSearch();


function usePointFromPostcode(postcode, callbackFunction) {
	
	localSearch.setSearchCompleteCallback(null, 
		function() {
			
			if (localSearch.results[0])
			{		
				var resultLat = localSearch.results[0].lat;
				var resultLng = localSearch.results[0].lng;
				var point = new GLatLng(resultLat,resultLng);
					
				callbackFunction(point);

			}else{				
				alert("Sorry - Couldn't find the postcode.");
			}
		});	
		
	localSearch.execute(postcode + ", UK");
}


function fitMap( map, points ) {
   var bounds = new GLatLngBounds();
   for (var i=0; i< points.length; i++) {
      bounds.extend(points[i]);
   }
   map.setZoom(map.getBoundsZoomLevel(bounds));
   map.setCenter(bounds.getCenter());
}

function justGetLatLng(point) {
	//alert("Latitude: " + point.lat() + "\nLongitude: " + point.lng());
	document.getElementById('llong').value = "" + point.lng() + "," + point.lat();
	document.getElementById('llong2').value = "" + point.lng() + "," + point.lat();
}

function showPointLatLng(point)
{
	var tempDistance = 0.0;
	var zfit = new Array();

	//alert("Latitude: " + point.lat() + "\nLongitude: " + point.lng());
	//alert("Distance : " + tempDistance);

	var k = 0;

	for ( var i=0, len=marker.length; i<len; ++i ){
	 		tempDistance = distance(point.lat(), point.lng(), jLat[i], jLng[i]);
			if (tempDistance > document.getElementById('dist').value) {
					map.removeOverlay(marker[i]);
			} else {
					map.removeOverlay(marker[i]);
					if (mtype[i] == "1") {
						map.addOverlay(marker[i], icon2);
					} else {
						map.addOverlay(marker[i]);
					}					
					var tPoint = new GLatLng(jLat[i], jLng[i]);
					zfit[k] = tPoint;
					k++;
			}
	}     		
	
	fitMap(map, zfit);	
	
}


function distance(p1lata, p1lona, p2lata, p2lona) {

  var p1lat = (p1lata * Math.PI / 180);
  var p2lat = (p2lata * Math.PI / 180);
  var p1lon = (p1lona * Math.PI / 180);
  var p2lon = (p2lona * Math.PI / 180);

  var R = 3959; // earth's mean radius in km
  var dLat  = p2lat - p1lat;
  var dLong = p2lon - p1lon;

  var a = Math.sin(dLat/2) * Math.sin(dLat/2) +
          Math.cos(p1lat) * Math.cos(p2lat) * Math.sin(dLong/2) * Math.sin(dLong/2);
  var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
  var d = R * c;

  return d;
}
