var map = null;
var geocoder = null;
var initialization_finished = false;
var locations_drawn = false;
var markers = null;

function initialize()
{
  initialization_finished = false;
  if (GBrowserIsCompatible())
  {
    map = new GMap2(document.getElementById("map"));
    map.setCenter(new GLatLng(54.16243396806781, -4.74609375), 5);
    geocoder = new GClientGeocoder();
    map.addControl(new GSmallMapControl());
	markers = new Array();
  }
  initialization_finished = true;
}

function showPlace(lat, lon, text)
{
  if (map == null || map == 'undefined')
  {
    return null;
  }
  map.setCenter(new GLatLng(lat, lon), 13);
  marker = new GMarker(new GLatLng(lat, lon));
  map.addOverlay(marker);
  //marker.openInfoWindowHtml(text);
}


function showPlaceDetails(lat, lon, text)
{
  if (map == null || map == 'undefined')
  {
    return null;
  }
  
  marker = new GMarker(new GLatLng(lat, lon));
  map.addOverlay(marker);
  map.setCenter(new GLatLng(lat, lon), 15);
}



function putMarker(lat, lon, clickText, mouseOverText, id)
{
  if (map == null || map == 'undefined')
  {
    alert('Map is null');
    return null;
  }
  markers[id] = new GMarker(new GLatLng(lat, lon));
  map.addOverlay(markers[id]);
  GEvent.addListener(markers[id], "click", function() {markers[id].openInfoWindowHtml(clickText);});
  //GEvent.addListener(markers[id], "mouseover", function() {markers[id].openInfoWindowHtml(mouseOverText);});
}

function moveTo(lat, lon)
{
  if (map == null || map == 'undefined')
  {
    alert('Map is null');
    return null;
  }
  map.setCenter(new GLatLng(lat, lon), 13);
}

function getCenterCoordinates()
{
  var coords = map.getCenter();
  var str = coords.lat() + ';' + coords.lng();
  //alert('getCenterCoordinates(): ' + str);
  return str;
}

function clearMap()
{
  if (map == null || map == 'undefined')
  {
    alert('Map is null');
    return null;
  }
  for(i=0; i<markers.length; i++)
  {
    markers.pop();
  }
  map.clearOverlays();
}
