var map = null;
var geocoder = null;

function initialize() {
  
	if (GBrowserIsCompatible()) {
    	map = new GMap2($("MapContainer"));
       	map.setCenter(new GLatLng(44.228542,-71.340256), 6);
		geocoder = new GClientGeocoder();
		map.addControl(new GSmallMapControl());
  		 map.addControl(new GMapTypeControl());
	}

 }

// Create a base icon for all of our markers that specifies the
// shadow, icon dimensions, etc.
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, index) {
  // Create a lettered icon for this point using our icon class
	var letter = String.fromCharCode("A".charCodeAt(0) + index);
	var letteredIcon = new GIcon(baseIcon);
	letteredIcon.image = "http://www.google.com/mapfiles/marker" + letter + ".png";

  // Set up our GMarkerOptions object
	markerOptions = { icon:letteredIcon };
	var marker = new GMarker(point, markerOptions);

	GEvent.addListener(marker, "click", function() {
		marker.openInfoWindowHtml("Marker <b>" + letter + "</b>");
	});

	return marker;

}

function showMark(parent,index) {

	var letter = String.fromCharCode("A".charCodeAt(0) + index);
	var img_src = "http://www.google.com/mapfiles/marker" + letter + ".png";
	var new_img = new Element('img', { src: img_src });
	parent.insert(new_img);
}


function showAddress(address,url,index) {

	if (geocoder) {
    	geocoder.getLatLng(
    		address,
        	function(point) {
            	if (!point) {
              		alert(address + " not found");
            	} else {
			map.setCenter(point, 13);
             	 	var marker = createMarker(point,index);
              		map.addOverlay(marker);
              		marker.openInfoWindowHtml("<strong>"+address+"</strong><br/><a href='"+url+"'>"+url+"</a>");
            	}
          	}
        );
	}

}

	document.observe("dom:loaded", function() {

		initialize();
		if(map_location) {
			geocoder.getLatLng(map_location,function(point) { map.setCenter(point,6); }); 
		}

		var AddressLists = $$('#MapList li');
		AddressLists.each(function(ListItem,index) {

			var container = $(ListItem);
			var lat = parseFloat($(container.id+"-lat").innerHTML);
			var lng = parseFloat($(container.id+"-lng").innerHTML);
			var point = new GLatLng(lat,lng);
	
			var list_kids = ListItem.childElements();
			var location_address = list_kids[2].innerHTML;
             	 	var marker = createMarker(point,index);

			map.addOverlay(marker);
			
			//GEvent.addListener(marker, "click", function() {
 			//	showAddress(location_address, list_kids[3].innerHTML);
  		//	});

//			map.addOverlay(marker);

			Event.observe(ListItem,'click', function() {
				showAddress(location_address, list_kids[4].innerHTML);		
			});

			

		});
	});
