google.load("maps", "2");

$(document).unload(function() {
  google.maps.Unload();
});

var Map = function(element) {
  var map = new google.maps.Map2(element);
  this.getMap = function() {
    return map;
  };

  this.centre = function(lat,lon) {
    map.setCenter(new google.maps.LatLng(lat,lon), 15);
  };

  this.centreWithZoom = function(lat,lon, zoom) {
    map.setCenter(new google.maps.LatLng(lat,lon), zoom);
  };

  this.mini_centre = function(lat,lon) {
    map.setCenter(new google.maps.LatLng(lat,lon-0.003), 13);
  };
  this.addControls = function() {
    map.addControl(
      new google.maps.LargeMapControl(),
      new google.maps.ControlPosition(
        google.maps.ANCHOR_BOTTOM_RIGHT,
        new google.maps.Size(5, 50)
      )
    );
    map.addControl(
      new google.maps.MapTypeControl(),
      new google.maps.ControlPosition(
        google.maps.ANCHOR_BOTTOM_RIGHT,
        new google.maps.Size(5, 18)
      )
    );
  };
  this.addMarker = function(lat,lon, message,iconUrl) {
    var point = new google.maps.LatLng(lat,lon);
    var icon = new GIcon(G_DEFAULT_ICON);
	icon.image = iconUrl;
	icon.shadow = "";
	icon.iconSize = new GSize(24, 24);
	markerOptions = { icon:icon };
    var marker = new GMarker(point, markerOptions);
    //marker.openInfoWindowHtml(message);
    map.addOverlay(marker);
    GEvent.addListener(marker, "click", function() {
       marker.openInfoWindowHtml(message);
    });
  };
  this.addSimpleMarker = function(lat,lon,message,iconUrlmini) {
  //alert(iconUrlmini);
    var point = new google.maps.LatLng(lat,lon);
    var icon2 = new GIcon(G_DEFAULT_ICON);
	icon2.image = iconUrlmini;
	icon2.shadow = "";
	icon2.iconSize = new GSize(24, 24);
	markerOptions = { icon:icon2 };
    var markerS = new GMarker(point);
    map.addOverlay(markerS,markerOptions);
    GEvent.addListener(markerS, "click", function() {
       markerS.openInfoWindowHtml(message);
    });
  };
  this.getBounds = function(){
    return map.getBounds();
  };
  this.addLayer = function(layer){
    map.addOverlay(layer);
  };
  
  this.getDirections = function(travelMode, directionPanelID){
  	map.clearOverlays();
  	var directionsPanel = document.getElementById(directionPanelID);
  	var directions = new GDirections(map, directionsPanel);
  	directions.load("from: 500 Memorial Drive, Cambridge, MA to: 4 Yawkey Way, Boston, MA 02215 (Fenway Park)",{travelMode:travelMode});
  }

};
