var mapMarker;
var largeMapMarker;

function initializeHC() 
{
  if (GBrowserIsCompatible()) 
  {
    var map = new GMap2(document.getElementById("map_canvas"));
    //map.removeMapType(G_HYBRID_MAP);
    map.setCenter(new GLatLng(1.285421,103.841228), 12);
    map.addControl(new GSmallMapControl());
    map.addControl(new GMapTypeControl());
    
    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);

    function createMarker(point) {
      var letter = String.fromCharCode("A".charCodeAt(0));
      var letteredIcon = new GIcon(baseIcon);
      letteredIcon.image = "http://www.google.com/mapfiles/marker" + letter + ".png";
      markerOptions = { icon:letteredIcon };
      var marker = new GMarker(point, markerOptions);
      GEvent.addListener(marker, "click", function() {
        marker.openInfoWindowHtml("<b>ApeSnap - Hitchoo Inc</b><br/>" +
          "195 Pearl's Hill Terrace<br/>" +
          "#03-46 Singapore 168976.<br/>" +
          "See you here!");
      });
      return marker;
    }
    /* Hitchoo Inc. in Chinatown */ 
    map.addOverlay(createMarker(new GLatLng(1.285421,103.841228)));
  }
}

function initialize() {
  map = new GMap2(document.getElementById("map_canvas"));
  //map.removeMapType(G_HYBRID_MAP);
  map.setCenter(new GLatLng(1.285421,103.841228), 12);
  map.addControl(new GSmallMapControl());
  map.addControl(new GMapTypeControl());
  geocoder = new GClientGeocoder();
}

function addAddressToMap(response) {
  map.clearOverlays();
  if (!response || response.Status.code != 200) {
    //alert("Ops, we were unable to find the place.");
  } 
  else {
    place = response.Placemark[0];
    point = new GLatLng(place.Point.coordinates[1],
                        place.Point.coordinates[0]);
    marker = new GMarker(point);
    map.addOverlay(marker);
    map.setCenter(point,12);
    GEvent.addListener(marker, "click", function() {
      marker.openInfoWindowHtml(mapMarker);
    });
  }
}

function showLocation(place, city, country, marker) {
  mapMarker = '<b>'+marker+'</b><br/>'+place+'<br/>'+city+', '+country;
  geocoder.getLocations(place+','+city+','+country, addAddressToMap);
}

function showLargeMap(place, city, country, marker) {
  largeMap = new GMap2(document.getElementById("large_map_canvas"));
  //largeMap.setCenter(new GLatLng(1.285421,103.841228), 12);
  largeMap.addControl(new GLargeMapControl3D());
  largeMap.addControl(new GScaleControl());
  largeMap.addControl(new GMapTypeControl());
  largeMap.setUIToDefault();
  geocoderLM = new GClientGeocoder();
  largeMapMarker = '<b>'+marker+'</b><br/>'+place+'<br/>'+city+', '+country;
  geocoderLM.getLocations(place+','+city+','+country, addAddressToLargeMap);
}

function addAddressToLargeMap(response) {
  largeMap.clearOverlays();
  if (!response || response.Status.code != 200) {
    //alert("Ops, we were unable to find the place.");
  } 
  else {
    placeLM = response.Placemark[0];
    pointLM = new GLatLng(placeLM.Point.coordinates[1],
                        placeLM.Point.coordinates[0]);
    markerLM = new GMarker(pointLM);
    largeMap.addOverlay(markerLM);
    largeMap.setCenter(pointLM,14);
    GEvent.addListener(markerLM, "click", function() {
      markerLM.openInfoWindowHtml(largeMapMarker);
    });
  }
}
