function detailActivityMap(act_id) {
	$.post(window.bUrl+"/ajax/load-activity/act_id/"+act_id+'/act/'+window.act, {}, function(data){
		data = evaluate(data)
		if((data.lat && data.lng)&&(data.lat != "0" && data.lng != "0")) {
			initializeGM(data.lat, data.lng);
		} else {
			var map = new GMap2(document.getElementById("google-map"));
	        map.setCenter(new GLatLng(40, -95), 4);
	        var customUI = map.getDefaultUI();
	        // Remove MapType.G_HYBRID_MAP
	        customUI.maptypes.hybrid = false;
	        map.setUI(customUI);
	        map.setMapType(G_PHYSICAL_MAP);
	        map.disableScrollWheelZoom();
		}
	});
			
}

function initializeGM(lat, lng) {
	if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById("google-map"));
        map.setCenter(new GLatLng(lat, lng), 10);
        
        var point = new GLatLng(lat, lng);
        var selected_marker = new GMarker(point, { icon: getIcon('1') });

        var bounds = map.getBounds();
        var southWest = bounds.getSouthWest();
        var northEast = bounds.getNorthEast();
        
        var trails = selectInBoundsTrails(lat, lng, northEast.lng(), northEast.lat(), southWest.lng(), southWest.lat());
        ///*
        
        var markers = [];
        for (var i = 0; i < trails.length; i++) {
        	var point = new GLatLng(trails[i].lat, trails[i].lng);
            marker = new GMarker(point, { icon: getIcon(trails[i].selected), clickable: true });
            map.addOverlay(marker);
            markers[i] = marker;
        }
        
        $(markers).each(function(i,marker){
            GEvent.addListener(marker, "click", function(){
                //alert(trails[i].id);
            	detailActivity(trails[i].id);
            });
            GEvent.addListener(marker, "mouseover", function() {
            	 marker.openInfoWindowHtml(trails[i].name);
            });
        });
        
        var customUI = map.getDefaultUI();
        // Remove MapType.G_HYBRID_MAP
        customUI.maptypes.hybrid = false;
        map.setUI(customUI);
        map.setMapType(G_PHYSICAL_MAP);
        map.disableScrollWheelZoom();
      }
}

function getIcon(selected) {
	selected = (selected == '1') ? '_selected' : '';
	var_host = $("#host").val();
	
    var icon = new GIcon();
    icon.image = "http://"+var_host+window.bUrl+"/img/marker_"+window.act+selected+".png";
    icon.iconAnchor = new GPoint(16, 15);
    icon.infoWindowAnchor = new GPoint(10, 5);
    icon.iconSize = new GSize(24, 30);
    icon.shadow = "http://www.google.com/mapfiles/shadow50.png";
    icon.shadowSize = new GSize(38, 30);
    return icon;
}


function selectInBoundsTrails(lat, lng, northEast_lng, northEast_lat, southWest_lng, southWest_lat) {
	data = $("#data_store").html();
	data = eval("("+data+")");

	var points = [];
	var j = 0;

	for(i=0; i<data.length; i++) {
		if(data[i].lat>southWest_lat && data[i].lat<northEast_lat && data[i].lng>southWest_lng && data[i].lng<northEast_lng ) {
			point = {};
			if(lat == data[i].lat && lng == data[i].lng)
				point.selected = 1;
			else
				point.selected = 0;
			point.lat = data[i].lat;
			point.lng = data[i].lng;
			
			str = "<b>" + data[i].name + "</b><br />";
			if(window.act == 'ski') {
				gc = '<img src="'+window.bUrl+'/img/green_circle.png" title="green circle" />';
				bs = '<img src="'+window.bUrl+'/img/blue_square.png" title="blue square" />';
				bd = '<img src="'+window.bUrl+'/img/black_diamond.png" title="black diamond" />';
				dd = '<img src="'+window.bUrl+'/img/double_diamond.png" title="double diamond" />';
				str += "Rating: " + Math.round(data[i].rating)+"<br />";
				str += "Number of trails: " + data[i].number_trails+"<br />";
				str += "Longest trail: " + unitConvert(data[i].longest_trail, 'mi', 'float')+"<br />";
				str += gc+ data[i].green_circle + '% '+bs+data[i].blue_square+'% '+bd+data[i].black_diamond +'% '+dd+data[i].double_diamond+"%<br />";
				
				str += "<table style='width:190px; color: #000'><tr><td>GPS coordinates:</td><td>"+ data[i].lat +"</td></tr><tr><td>&nbsp;</td><td>"+ data[i].lng + "</td></tr></table>";
			} else if(window.act == 'hike') {
				str += "Difficulty: " + Math.round(data[i].difficulty)+"<br />";
				str += "Elevation gain: " + unitConvert(data[i].elevation_gain, 'ft', 'int') + "<br />";
				str += "High point: " + unitConvert(data[i].high_point, 'ft', 'int')+"<br />";
				str += "<table style='width:190px; color: #000'><tr><td>Trailhead GPS:</td><td>"+ data[i].lat +"</td></tr><tr><td>&nbsp;</td><td>"+ data[i].lng + "</td></tr></table>";
			}
			point.name = str;
			point.id = data[i].id;
			points[j] = point;
			j++;	
		}
	}
	return points;
}


