var map;
var localSearch = new GlocalSearch();

var icon = new GIcon();
icon.image = "http://www.google.com/mapfiles/marker.png";
icon.shadow = "http://www.google.com/mapfiles/shadow50.png";
icon.iconSize = new GSize(20, 34);
icon.shadowSize = new GSize(37, 34);
icon.iconAnchor = new GPoint(10, 34);
/*var icon2 = new GIcon();
icon2.image = "http://maps.google.com/mapfiles/ms/micons/caution.png";
icon2.shadow = "http://www.google.com/mapfiles/caution.shadow.png";
icon2.iconSize=new GSize(32,32); 
icon2.shadowSize=new GSize(56,32); 
icon2.iconAnchor=new GPoint(16,32); 
icon2.infoWindowAnchor=new GPoint(16,0); 

var icon3 = new GIcon();
icon3.image = "http://maps.google.com/mapfiles/ms/micons/cabs.png";
icon3.shadow = "http://www.google.com/mapfiles/cabs.shadow.png";
icon3.iconSize=new GSize(32,32); 
icon3.shadowSize=new GSize(56,32); 
icon3.iconAnchor=new GPoint(16,32); 
icon3.infoWindowAnchor=new GPoint(16,0); 

var icon4 = new GIcon();
icon4.image = "http://maps.google.com/mapfiles/ms/micons/homegardenbusiness.png";
icon4.shadow = "http://www.google.com/mapfiles/homegardenbusiness.shadow.png";
icon4.iconSize=new GSize(32,32); 
icon4.shadowSize=new GSize(56,32); 
icon4.iconAnchor=new GPoint(16,32); 
icon4.infoWindowAnchor=new GPoint(16,0);
*/

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("Postcode not found!");
			}
		});	
		
	localSearch.execute(postcode + ", UK");
}

function usePointFromPostcodeNoError(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{
				//return a dummy point object instead of issuing an error
				point = {
					lat : function(){return "";},
					lng : function(){return "";}
				};
				callbackFunction(point);
				//alert("Postcode not found!");
			}
		});	
		
	localSearch.execute(postcode + ", UK");
}




function placeMarkerAtPoint(point)
{
	var marker = new GMarker(point,icon);
	map.addOverlay(marker);
}

function setCenterToPoint(point,zoomlevel)
{
	map.setCenter(point, zoomlevel);
}

function showPointLatLng(point)
{
	alert("Latitude: " + point.lat() + "\nLongitude: " + point.lng());
}

function mapLoad(lat,lng) {
	if (GBrowserIsCompatible()) {
		map = new GMap2(document.getElementById("map"));
		map.addControl(new GLargeMapControl());
		map.addControl(new GMapTypeControl());
		map.setCenter(new GLatLng(lat,lng), 11, G_NORMAL_MAP);
		//GoSetup();
	}
}
function mapLoad2(lat,lng,divid) {
	if (GBrowserIsCompatible()) {
		map = new GMap2(document.getElementById(divid));
		map.addControl(new GLargeMapControl());
		map.addControl(new GMapTypeControl());
		map.setCenter(new GLatLng(lat,lng), 11, G_HYBRID_MAP );
		//GoSetup();
	}
}

function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      oldonload();
      func();
    }
  }
}

function addUnLoadEvent(func) {
	var oldonunload = window.onunload;
	if (typeof window.onunload != 'function') {
	  window.onunload = func;
	} else {
	  window.onunload = function() {
	    oldonunload();
	    func();
	  }
	}
}

//addLoadEvent(mapLoad);
//addUnLoadEvent(GUnload);
