function bookmarksite(title, url){

	if (document.all)
	{	
		window.external.AddFavorite(url, title);
	}
	else if (window.sidebar)
	{
		window.sidebar.addPanel(title, url, "")
	}

}	


var gmarkers = [];
var map = null;
var mgr = null;
var markerCount = 1;
//var i=1;
//var geocoder;
//var enableCustomIcon = false;

function myclick(i) {
  GEvent.trigger(gmarkers[i], "click");
}

function myzoom(a) {
  map.setZoom(0);
  map.setZoom(map.getZoom() + a);
}


    function setupMap() {
     
      if (GBrowserIsCompatible()) {
        map = new GMap2(document.getElementById("map_canvas"));
        map.addControl(new GLargeMapControl());
        map.setCenter(new GLatLng(43.641833, -79.387285), 3);
        map.addControl(new GMapTypeControl());
        map.setMapType(G_NORMAL_MAP); 
        map.enableDoubleClickZoom();
        map.enableContinuousZoom();
        map.enableScrollWheelZoom();
        map.setUIToDefault();
        setupMarkers();

        centerAndZoomOnMarkers(map, gmarkers);
      }
    }

    function getIcon(iconPath) {
        var icon = new GIcon();
        icon.image = iconPath;
        icon.iconAnchor = new GPoint(10, 15);
        icon.infoWindowAnchor = new GPoint(16, 0);
        icon.iconSize = new GSize(18, 18);

        return icon;
    }




    function setupMarkers() {
      mgr = new MarkerManager(map);
      mgr.addMarkers(getMarkers(), 0);
      mgr.refresh();
    } 

    function createMarker(point, iconPath, number, description) {
        var marker;
        
        if (iconPath == ""){
            marker = new GMarker(point);
        }
        else {
            marker = new GMarker(point, { icon: getIcon(iconPath) });
        }
        
        marker.value = number;
        gmarkers[markerCount] = marker;
    
        GEvent.addListener(marker,"click", function() {
        var myHtml = description;
        map.openInfoWindowHtml(point, myHtml);
        });
        markerCount++
        
        return marker;
    }
    


    function centerAndZoomOnMarkers(map, markers) {
        var bounds = new GLatLngBounds(markers[1].getPoint(), markers[1].getPoint());
        var i;
        for (i=1; i<markers.length; i++) {
            bounds.extend(markers[i].getPoint());
        }
        var lat = (bounds.getNorthEast().lat() + bounds.getSouthWest().lat()) / 2.0;
        var lng = (bounds.getNorthEast().lng() + bounds.getSouthWest().lng()) / 2.0;
        if(bounds.getNorthEast().lng() < bounds.getSouthWest().lng()){
            lng += 180;
        }
        var center = new GLatLng(lat,lng)
        map.setCenter(center, map.getBoundsZoomLevel(bounds));
    }

/*
To be removed



function BuildMap(MapID,addressArray, CustomIcon)
{
    if (GBrowserIsCompatible()) {
        map = new GMap2(document.getElementById(MapID));
        map.setCenter(new GLatLng(44, -70), 2);
        map.addControl(new GLargeMapControl());
        map.addControl(new GMapTypeControl());
        map.setMapType(G_HYBRID_TYPE); 
        map.enableDoubleClickZoom();
        map.enableContinuousZoom();
        map.enableScrollWheelZoom();
          
        if (enableCustomIcon == true)
        {
            // Create our marker icon
            var funkyIcon = new GIcon(G_DEFAULT_ICON);
            funkyIcon.image = CustomIcon;
            funkyIcon.iconSize = new GSize(16, 16);
            funkyIcon.iconAnchor = new GPoint(10, 15);
            funkyIcon.shadow = "";

            // Set up our GMarkerOptions object
            markerOptions = { icon:funkyIcon };
        }
 
        geocoder = new GClientGeocoder();
        
        for (x=0; x<addressArray.length; x++)
        {
            addLatLng(addressArray[x][0],addressArray[x][1],addressArray[x][2]);
        }

        centerAndZoomOnMarkers(map, gmarkers);
    }
}


// Creates a marker at the given point
// Clicking the marker will hide it
function createMarker(point, number, description) {
    var marker;
    if (enableCustomIcon == true)
    {
        marker = new GMarker(point, markerOptions);
    }
    else
    {
        marker = new GMarker(point);
    }
    
    marker.value = number;
    gmarkers[i] = marker;
    GEvent.addListener(marker,"click", function() {
    var myHtml = "<b>" + description + "</b><p><p/>";
    map.openInfoWindowHtml(point, myHtml);
    });
    i++
    return marker;
}

// addAddressToMap() is called when the geocoder returns an
// answer.  It adds a marker to the map with an open info window
// showing the nicely formatted version of the address and the country code.
function addAddressToMap(response) {
  if (!response || response.Status.code != 200) {
    //alert("Sorry, we were unable to geocode that address");
  } else {
    place = response.Placemark[0];
    point = new GLatLng(place.Point.coordinates[1], place.Point.coordinates[0]);
    map.addOverlay(createMarker(point, 1, place.address));
  }
}



function addLatLng(CoordX, CoordY, Description)
{
    point = new GLatLng(CoordX, CoordY);
    map.addOverlay(createMarker(point, 1, Description));
}

*/
