﻿
var map;
var localSearch = new GlocalSearch();

var centres = new Array();
var longitude = new Array();
var latitude = new Array();

function usePointFromPostcode(postcode, name, 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,name);
	        }else{
		        alert("Postcode not found!");
	        }
        });	
		
    localSearch.execute(postcode + ", UK");
}

function placeMarkerAtPoint(point, name, info, url)
{
    var marker = new GMarker(point);
    GEvent.addListener(marker, "click", function() {
        marker.openInfoWindowHtml("<b>" + name + "</b>"
                                  + "<p>" + info + "</p>"
                                  + "<a href=" + url + "title=" + name + ">" + "Click here for more information</a>");
    });
    map.addOverlay(marker);
}
function placeMarkerAtDistillery(point, name, postcode)
{
    var marker = new GMarker(point);
    GEvent.addListener(marker, "mouseover", function() {
        marker.openInfoWindowHtml("<b>" + name + "</b>"
                                  + "<p>" + postcode + "</p>");
    });
    map.addOverlay(marker);
}
function setCenterToPoint(point, name)
{
    map.setCenter(point, 17);
}

function showPointLatLng(point, name)
{
    alert("Latitude: " + point.lat() + "\nLongitude: " + point.lng());
}

function mapLoad() {
    if (GBrowserIsCompatible()) {
        map = new GMap2(document.getElementById("map"));
        map.enableScrollWheelZoom();
        map.addControl(new GLargeMapControl());
        map.addControl(new GMapTypeControl());
        map.setCenter(new GLatLng(56.57, -4.13), 5);
    }
}

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 plotPoints()
{
    var count = 0;
     for (var i in centres) {
        count++;
    }
    // show the values stored
    for (var i in centres) {
        var resultLat = centres[i][2];
        var resultLng = centres[i][1];
        var point = new GLatLng(resultLat,resultLng);
       if (count == '1'){
                setCenterToPoint(point, name)
                placeMarkerAtDistillery(point, centres[i][0],centres[i][3])
        }else{
        placeMarkerAtPoint(point, centres[i][0],centres[i][4],centres[i][3])
        }
    }
 } 

addLoadEvent(mapLoad);
addLoadEvent(plotPoints);
addUnLoadEvent(GUnload);