//<![CDATA[

var map;
var geocoder;

var mapLocations =  [ 

  {locId: 1, lat: -16.9146150, lng: 145.7721458, title: 'Muddy\'s Playground', address: '145 The Esplanade, Cairns QLD 4870, Australia', type: 'marker'},
  {locId: 2, lat: -16.912578, lng: 145.765765, title: 'Cock And Bull Restaurant', address: '6 Grove Street, Cairns, Queensland, Australia', type: 'marker'},
  {locId: 3, lat: -16.9124150, lng: 145.7634740, title: 'IGA Super Market', address: '', type: 'marker'},
  {locId: 4, lat: -16.912793, lng: 145.767545, title: 'Reef Gateway Apartments Cairns', address: '239 Lake Street, Cairns, Queensland, Australia', type: 'special'},
  ] ;		

specialMarker = {};
    
  function initGoogleMap() {

    var map = new GMap2(document.getElementById("map"));

    map.addControl(new GLargeMapControl());
    map.addControl(new GMapTypeControl());

    map.setCenter(new GLatLng(-16.912793, 145.767545), 15);
    window.onunload = GUnload;

    var markers = fetchMarkers();

    for (var i = 0; i < markers.length; i++) {
      map.addOverlay(markers[i]);
    }

    return true;
  }
  function fetchMarkers()
  {
    var markers = new Array();

    for (var i= 0; i < mapLocations.length; i++) {
      locRec = mapLocations[i];

      if (locRec.lat == 0)
        continue;

      markers.push(createMarker(locRec));
    }

    return markers;
  }

  function createMarker(locRec)
  {
    if(locRec.type=='marker')
      var marker = new GMarker(new GLatLng(locRec.lat, locRec.lng));
    else
      var marker = new GMarker(new GLatLng(locRec.lat, locRec.lng), new GIcon(G_DEFAULT_ICON, "http://www.google.com/uds/samples/places/temp_marker.png"));

    locRec.marker = marker;

    GEvent.addListener(marker, "click", function() { marker.openInfoWindowHtml(locRec.title); });
    return marker;
  }


  function findLocationWithId(locId)
  {
    for (var i= 0; i < mapLocations.length; i++) {
      if (mapLocations[i].locId == locId)
        return mapLocations[i];
    }

    return 0;
  }

  function highlightMapLocation(locId)
  {
    locRec = findLocationWithId(locId);

    map.panTo(locRec.marker.getPoint());

  }

  function setMapCentreandZoom(lat,lng,centre){
    map.setCenter(new GLatLng(lat,lng),centre);
  }


  if (GBrowserIsCompatible()){
    initGoogleMap();
  }
  else {
    alert("The Google Maps API is not compatible with this browser");
  }
    