    function initialize() {
      if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById("map_canvas"));
         map.setCenter(new GLatLng(49.05159, -122.32885), 7);
         map.addControl(new GLargeMapControl ());

		// create pop up windows for each marker when its clicked
		function createMarker(point, name, address, phone, url) {
		  var marker = new GMarker(point, iconBlue);
		  var html = "<center><p class='popup_title'>" + name + "</p>" 
		  			 + "<p class='popup_body'>" + address + "</p>"
					 + "<p class='popup_body'>" + phone + "</p></center>"
		  if(url != '')
		  	  html += "<center><p class='popupbody'><a class='popup' href='http://" + url + "' target='_blank>" + url + "</a></p></center>";						 
		  GEvent.addListener(marker, 'click', function() {
			marker.openInfoWindowHtml(html);
		  });
		  return marker;
		}

		// create a marker icon
		var iconBlue = new GIcon(); 
		iconBlue.image = 'http://labs.google.com/ridefinder/images/mm_20_blue.png';
		iconBlue.shadow = 'http://labs.google.com/ridefinder/images/mm_20_shadow.png';
		iconBlue.iconSize = new GSize(12, 20);
		iconBlue.shadowSize = new GSize(22, 20);
		iconBlue.iconAnchor = new GPoint(6, 20);
		iconBlue.infoWindowAnchor = new GPoint(5, 1);

		

		var bounds = map.getBounds();
		var southWest = bounds.getSouthWest();
		var northEast = bounds.getNorthEast();
		var lngSpan = northEast.lng() - southWest.lng();
		var latSpan = northEast.lat() - southWest.lat();
		
		// iterate through all locations and add a marker on the map for each one
    	for (var i = 0; i < markers.length; i++) {  
			var name = markers[i]['name'];
			var address = markers[i]['address'];
			var url = markers[i]['url'];
			var phone = markers[i]['phone'];
			var point = new GLatLng(parseFloat(markers[i]['lat']), parseFloat(markers[i]['lng']));
			var marker = createMarker(point, name, address, phone, url);
			map.addOverlay(marker);
		}
      }
    }
