var map;
var localSearch = new GlocalSearch();

var baseIcon = new GIcon();
baseIcon.iconSize = new GSize(20, 34);
baseIcon.iconAnchor = new GPoint(10, 34);
//var pushpin = new GIcon(baseIcon, '/js_shared/google-maps/icon.png', null, null);
var pushpin = new GIcon(G_DEFAULT_ICON);
pushpin.image = '/js_shared/google-maps/custom_pin2.png';

function showGoogleMap(referer) {
	var offset = $(referer).offset();
	var offset_top = offset.top + 10;
	$('#googlemap').css('position', 'absolute');
	$('#googlemap').css('top', offset_top);
	$('#googlemap').show();
	mapLoad();
}

function hideGoogleMap() {
	$('#googlemap').hide();
}

function mapLoad() {
	if (GBrowserIsCompatible()) {
		map = new GMap2(document.getElementById('googlemaparea'));
		map.addControl(new GLargeMapControl());
		map.addControl(new GMapTypeControl());
		map.setCenter(new GLatLng(54.622978, -2.592773), 5, G_NORMAL_MAP); // G_NORMAL_MAP, G_SATELLITE_MAP, G_HYBRID_MAP
	}
}

function placeMarkerAtPoint(point) {
	map.setCenter(point, 11);
	map.clearOverlays();
	var marker = new GMarker(point, pushpin);
	map.addOverlay(marker);
}

function setCenterToPoint(point) {
	map.setCenter(point, 11);
}

function usePointFromLocation(searchtext, county, 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('Location not found!');
		}
	});  
	localSearch.execute(searchtext + ', ' + county + ', UK');
}

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);