
var map;
var localSearch = new GlocalSearch();

function usePointFromPostcode(postcode, distance, inthecountry, 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, distance);
			}else{
				//Postcode not found
			}
		});	

  switch (inthecountry)
      {
      case 'GBR':
        extrastuff = ", UK";
      break;
      case 'USA':
        extrastuff = ", USA";
      break;
      case 'CAN':
        extrastuff = ", Canada";
      break;
      case 'AUS':
        extrastuff = ", Australia";
      break;
      case 'DEU':
        extrastuff = ", Germany";
      }

	localSearch.execute(postcode + extrastuff);
}

function plotLetter (point, letter)
{
//alert(point);
//alert(letter);
//Create the marker and add it to the map
map.addOverlay(createMarker(point, letter));
}

function markerCenter(point, distance)
{
  var zoomy;
  switch(distance)
  {
  case '10':
    zoomy = 10;
    break;    
  case '25':
    zoomy = 9;
    break;    
  case '50':
    zoomy = 8;
    break;    
  case '100':
    zoomy = 7;
    break;
  case '200':
    zoomy = 6;
    break;
  case '250':
    zoomy = 6;
    break;
  default:
    zoomy = 6;
  }

  map.addOverlay(createHomeMarker(point));
  map.setCenter(point,zoomy);
}

function premapLoad()
{
mapLoad(visitor_country);
}

function mapLoad(thecountry) {
	if (GBrowserIsCompatible()) {
		map = new GMap2(document.getElementById("map"));

    var lat;
    var lng;
    
    switch(thecountry)
        {
        case 'GBR':
          lat = 54.8 ; 
          lng = -3.8;
          zmm = 5;
        break;
        case 'USA':
          lat = 42.934265; 
          lng = -91.218652;
          zmm = 3;
        break;
        case 'CAN':
          lat = 59.934265; 
          lng = -94.218652;
          zmm = 3;
        break;
        case 'AUS':
          lat = -28.43468; 
          lng = 133.945313;
          zmm = 3;
        break;
        case 'DEU':
          lat = 51; 
          lng = 10;
          zmm = 5;
        break;
        default:
        break;
        
        }
		
		map.addControl(new GLargeMapControl());
		map.addControl(new GMapTypeControl());
		map.setCenter(new GLatLng(lat, lng), zmm, G_NORMAL_MAP);
	}
}

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


// Creates a marker whose info window displays the letter corresponding
// to the given index.
function createMarker(point, letter) {

  // Create a base icon for all of our markers that specifies the
  // shadow, icon dimensions, etc.
  var baseIcon = new GIcon(G_DEFAULT_ICON);
  baseIcon.shadow = "http://www.google.com/mapfiles/shadow50.png";
  baseIcon.iconSize = new GSize(20, 34);
  baseIcon.shadowSize = new GSize(37, 34);
  baseIcon.iconAnchor = new GPoint(9, 34);
  baseIcon.infoWindowAnchor = new GPoint(9, 2);

  // Create a lettered icon for this point using our icon class
  var letteredIcon = new GIcon(baseIcon);
  letteredIcon.image = "http://www.google.com/mapfiles/marker" + letter + ".png";

  // Set up our GMarkerOptions object
  markerOptions = { icon:letteredIcon };
  var marker = new GMarker(point, markerOptions);

 // GEvent.addListener(marker, "click", function() {
 //   marker.openInfoWindowHtml("Marker <b>" + letter + "</b>");
 // });
  return marker;
}

function createHomeMarker(point) {

  // Create a base icon for all of our markers that specifies the
  // shadow, icon dimensions, etc.
  var homeIcon = new GIcon();
  homeIcon.image = "images/googlemaps/home.gif";
  homeIcon.iconSize = new GSize(24, 24);
  homeIcon.iconAnchor = new GPoint(12, 12);

  // Set up our GMarkerOptions object
  markerOptions = { icon:homeIcon };
  var marker = new GMarker(point, markerOptions);

 // GEvent.addListener(marker, "click", function() {
 //   marker.openInfoWindowHtml("Marker <b>" + letter + "</b>");
 // });
  return marker;
}

addLoadEvent(premapLoad);
addUnLoadEvent(GUnload);
