var map;
var localSearch = new GlocalSearch();
var blueIcon = new GIcon();
      blueIcon.image = "images/golf.png";
      blueIcon.shadow = "http://www.google.com/mapfiles/shadow50.png";
      blueIcon.iconSize = new GSize(25, 44);
      blueIcon.shadowSize = new GSize(37, 34);
      blueIcon.iconAnchor = new GPoint(9, 34);
      blueIcon.infoWindowAnchor = new GPoint(9, 2);
      blueIcon.infoShadowAnchor = new GPoint(18, 25);
      blueIcon.transparent = "http://www.google.com/intl/en_ALL/mapfiles/markerTransparent.png";



function usePointFromPostcode1(postcode,cname,callbackFunction) {

	localSearch.setSearchCompleteCallback(null,
		function() { alert("2"+cname);

			if (localSearch.results[0])
			{
				var resultLat = localSearch.results[0].lat;
				var resultLng = localSearch.results[0].lng;
				maybe1 =  resultLat;
				maybe2 = resultLng;

				point = new GLatLng(resultLat,resultLng);

				callbackFunction(maybe2,maybe1,cname);

			}
		});

	localSearch.execute(postcode + ", UK");

}

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 placeMarkerAtPoint(maybe2,maybe1,cname)
{
var point = new GPoint( maybe2,maybe1);
var marker = createTabbedMarker(point, cname, "Another page<br> of marker zero contents", "Truth", "Beauty");
      map.addOverlay(marker);

}



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

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

function mapLoad() {
	if (GBrowserIsCompatible()) {
		map = new GMap2(document.getElementById("map_canvas"));
    	map.setCenter(new GLatLng(52.043440, -1.826904), 16, G_HYBRID_MAP);
        var point = new GLatLng(52.043440, -1.826904);
		map.openInfoWindow(map.setCenter(), "Hello" + '<br>' + "world");
		}
}


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();
	  }
	}
}



function usePointFromPostcode2(postcode,cname,callbackFunction,cid) {

	localSearch.setSearchCompleteCallback(null,
		function() {

			if (localSearch.results[0])
			{
				var resultLat = localSearch.results[0].lat;
				var resultLng = localSearch.results[0].lng;
				maybe1 =  resultLat;
				maybe2 = resultLng;

				point = new GLatLng(resultLat,resultLng);
				document.getElementById("result").innerHTML = "Result for " + postcode + " came from Google.";
  				var ajax_connection = createRequest();
  				ajax_connection.open('get', "cache.php?postcode=" + postcode + "&latitude=" + resultLat + "&longitude=" + resultLng);
  				ajax_connection.send(null);

				callbackFunction(maybe2,maybe1,cname,cid);

			}
			else{
				document.getElementById("result").innerHTML = "Result not found for " + postcode + " came from Google.";
  				var ajax_connection = createRequest();
  				ajax_connection.open('get', "cache.php?postcode=" + postcode + "&latitude=1" + resultLat + "&longitude=1" + resultLng);
  				ajax_connection.send(null);
			}
		});

	localSearch.execute(postcode + ", UK");

}

function placeMarkerAtPoint2(maybe2,maybe1,cname,cid,id)
{

var point = new GPoint( maybe2,maybe1);
var marker = createTabbedMarker2(point, cname+"<br><table><tr><td><a href=map.php?cid="+cid+" target=left>Driving Directions</a></td><td><a href=c_reviews2.php?cid="+cid+" target=left>Course Reviews</a></td></tr><tr><td><a href=scorecard.php?nc="+cid+" target=left>Score Card</a></td><td></td></tr></table>", "<a href=ttime.php?id="+id+"&tt=Go&cid="+cid+" target=left>Request your teetime from 4left.com</a>","<a href=socdeals.php?cid="+cid+" target=left>Book Society Specials</a>","Course","TeeTimes","Society Deals",cname);
      map.addOverlay(marker);

}

function placeMarkerAtPoint(maybe2,maybe1,cname,cid)
{

var point = new GPoint( maybe2,maybe1);
var marker = createTabbedMarker2(point, cname+"<br><table><tr><td><a href=map.php?cid="+cid+" target=left>Driving Directions</a></td><td><a href=c_reviews2.php?cid="+cid+" target=left>Course Reviews</a></td></tr><tr><td><a href=scorecard.php?nc="+cid+" target=left>Score Card</a></td><td></td></tr></table>", "<a href=ttime.php?tt=Go&cid="+cid+" target=left>Request your teetime from 4left.com</a>","<a href=socdeals.php?cid="+cid+" target=left>Book Society Specials</a>","Course","TeeTimes","Society Deals",cname);
      map.addOverlay(marker);

}

// ==================================================
      // A function to create a tabbed marker and set up the event window
      function createTabbedMarker2(point,html1,html2,html3,label1,label2,label3,cname) {
        var marker = new GMarker(point,{icon:blueIcon,title:cname});
        GEvent.addListener(marker, "click", function() {
          marker.openInfoWindowTabsHtml([new GInfoWindowTab(label1,"<div style=width:264px>"+html1+"</div>"), new GInfoWindowTab(label2,"<div style=width:264px>"+html2+"</div>"), new GInfoWindowTab(label3,html3)]);
        });
        return marker;
      }

function createTabbedMarker(point,html1,html2,html3,label1,label2,label3,cname) {
        var marker = new GMarker(point,{title:cname});
        GEvent.addListener(marker, "click", function() {
          marker.openInfoWindowTabsHtml([new GInfoWindowTab(label1,"<div style=width:264px>"+html1+"</div>"), new GInfoWindowTab(label2,"<div style=width:264px>"+html2+"</div>"), new GInfoWindowTab(label3,html3)]);
        });
        return marker;
      }
addLoadEvent(mapLoad);
addUnLoadEvent(GUnload);
