///////////////////////////////////////////////////////////////////////////////
// This code was written and is copyright by Andrew H. Cooper
// If you wish to reuse it then pleases credit me
// If you wish to contact me so I can write code for you then please do so
// Either by email at andrew.cooper@the-arena.co.uk
// Or by phone on 0044 7956 430145
///////////////////////////////////////////////////////////////////////////////

var map_acvh;
var map_brvh;
var map_sl;
var map_home;

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 acvh_Lat = 51.672102;
var acvh_Lng = -0.58706836;
var acvh_address = "<b>Amersham Courses:</b><br /><b>Amersham Common Village Hall</b><br />White Lion Road<br />AMERSHAM<br />Buckinghamshire<br />HP7 9JD";

var brvh_Lat = 51.673373;
var brvh_Lng = -0.84886139;
var brvh_address = "<b>Bledlow Ridge Courses:</b><br /><b>Bledlow Ridge Village Hall</b><br />Chinnor Road<br />Bledlow Ridge<br />HIGH WYCOMBE<br />Buckinghamshire<br />HP14 4AJ";

var sl_Lat = 51.695721;
var sl_Lng = -0.84216405;
var sl_address = "<b>Saunderton Lee Agility Courses:</b><br /><b>Pauline's Agility and Dog Training Field</b><br />Longwood Farm<br />Lee Road<br />Saunderton Lee<br />PRINCES RISBOROUGH<br />Buckinghamshire<br />HP27 9NU";

function show_map_acvh() {
	map_acvh = new GMap2(document.getElementById("map_acvh"));
	map_acvh.addControl(new GLargeMapControl());
	map_acvh.addControl(new GMapTypeControl());
	map_acvh.setCenter(new GLatLng(acvh_Lat + .005,acvh_Lng + .01), 14, G_NORMAL_MAP);

	set_marker(map_acvh, acvh_Lat, acvh_Lng, acvh_address);
	set_marker(map_acvh, brvh_Lat, brvh_Lng, brvh_address);
	set_marker(map_acvh, sl_Lat, sl_Lng, sl_address);

	//map_acvh.openInfoWindow(new GLatLng(acvh_Lat,acvh_Lng),acvh_address);	
}

function show_map_brvh() {
	map_brvh = new GMap2(document.getElementById("map_brvh"));
	map_brvh.addControl(new GLargeMapControl());
	map_brvh.addControl(new GMapTypeControl());
	map_brvh.setCenter(new GLatLng(brvh_Lat + .005,brvh_Lng + .01), 14, G_NORMAL_MAP);

	set_marker(map_brvh, acvh_Lat, acvh_Lng, acvh_address);
	set_marker(map_brvh, brvh_Lat, brvh_Lng, brvh_address);
	set_marker(map_brvh, sl_Lat, sl_Lng, sl_address);

	//map_brvh.openInfoWindow(new GLatLng(brvh_Lat,brvh_Lng),brvh_address);
	//map_brvh.openInfoWindow(new GLatLng(sl_Lat, sl_Lng), sl_address);	
}

function show_map_sl() {
	map_sl = new GMap2(document.getElementById("map_sl"));
	map_sl.addControl(new GLargeMapControl());
	map_sl.addControl(new GMapTypeControl());
	map_sl.setCenter(new GLatLng(sl_Lat + .005,sl_Lng + .01), 14, G_NORMAL_MAP);

	set_marker(map_sl, acvh_Lat, acvh_Lng, acvh_address);
	set_marker(map_sl, brvh_Lat, brvh_Lng, brvh_address);
	set_marker(map_sl, sl_Lat, sl_Lng, sl_address);

	//map_sl.openInfoWindow(new GLatLng(sl_Lat,sl_Lng),sl_address);	
}

function show_map_home() {
	map_home = new GMap2(document.getElementById("map_home"));
	map_home.addControl(new GLargeMapControl());
	map_home.addControl(new GMapTypeControl());
	map_home.setCenter(new GLatLng(54.622978,-2.592773), 5, G_HYBRID_MAP);

	set_marker(map_home, acvh_Lat, acvh_Lng, acvh_address);
	set_marker(map_home, brvh_Lat, brvh_Lng, brvh_address);
	set_marker(map_home, sl_Lat, sl_Lng, sl_address);

}

function set_marker(sm_Map, sm_Lat, sm_Lng, sm_address) {
	
	var point = new GLatLng(sm_Lat,sm_Lng);
	var marker = new GMarker(point, icon);
	
	sm_Map.addOverlay(marker);
	
	GEvent.addListener(marker, "click", 
		function()
		{
			sm_Map.openInfoWindow(point,sm_address);	
		}
	);
}

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,postcode);
			}else{
				alert("Postcode not found!");
			}
		});	
		
	localSearch.execute(postcode + ", UK");
}

function usePointFromCoords(Lat, Lng, callbackFunction) {
	
	var point = new GLatLng(Lat,Lng);
	callbackFunction(point);
}

function placeMarkerAtPoint(point,postcode)
{
	var marker = new GMarker(point,icon);
	map_home.setCenter(point, 17);
	map_home.addOverlay(marker);

	GEvent.addListener(marker, "click", 
		function()
		{
			map_home.openInfoWindow(point,postcode);	
		}
	);
	
	set_marker(map_home, acvh_Lat, acvh_Lng, acvh_address);
	set_marker(map_home, brvh_Lat, brvh_Lng, brvh_address);
	set_marker(map_home, sl_Lat, sl_Lng, sl_address);
	
	map_home.openInfoWindow(point,postcode);

}

function setCenterToPoint(point)
{
	map_home.setCenter(point, 17);
}

function showPointLatLng(point)
{
	alert("Latitude: " + point.lat() + "\nLongitude: " + point.lng());
}

function mapLoad() {
	if (GBrowserIsCompatible()) {
		
		show_map_acvh();
		show_map_brvh();
		show_map_sl();
		show_map_home();
		
	}
}

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();
	  }
	}
}

 

