﻿function load() {
	if (GBrowserIsCompatible()) {
		var map = new GMap2(document.getElementById("map"));
		map.setCenter(new GLatLng(37.4419, -122.1419), 13);
	}
}

function showAddress(address, caption) {
	var map = new GMap2(document.getElementById("map"));
	map.addControl(new GMapTypeControl());
	map.addControl(new GSmallZoomControl());
	
	var geocoder = new GClientGeocoder();
	geocoder.getLatLng(address, function(point) {
		if (!point) {
			alert(address + " not found");
		}
		else {
			map.setCenter(point, 13);
			var marker = new GMarker(point);
			map.addOverlay(marker);
			//marker.openInfoWindowHtml(caption);
			GEvent.addListener(marker, "mouseover", function() { marker.openInfoWindowHtml(caption); });
		}
	});
}

function hideMap()
{
    //hide all divs for map area
    $("map").className = "hidden";
    $("mapBackground").className = "hidden";
    //$("roundedTop").className = "hidden";
    //$("roundedBottom").className = "hidden";
}

//create a single map for the page
var pageMap;
var pageNumProps;
function makeMap(numProps) {
    pageNumProps = numProps;
    var map = new GMap2(document.getElementById("map"));
    map.addControl(new GMapTypeControl());
    //map.addControl(new GScaleControl());
    map.addControl(new GSmallZoomControl());
    pageMap = map;
}

//make map must be called once first
var pagePoints = new Array();
function showProp(address, caption, photoHtml) {
    var map = pageMap;
    var points = pagePoints;
    var cnt = pageNumProps;
    var geocoder = new GClientGeocoder();
    geocoder.getLatLng(address, function(point) {
        if (!point) {
            alert(address + " not found");
        }
        else {
            map.setCenter(point, 13);
            points[points.length] = point; //add new point to the array
            var marker = new GMarker(point);
            map.addOverlay(marker);
            GEvent.addListener(marker, "click", function() { marker.openInfoWindowHtml(photoHtml); });
            GEvent.addListener(marker, "mouseover", function() { marker.openInfoWindowHtml(caption); });
            if (cnt == points.length) {
                fitMapPoints();
            }
        }
    });
}

//called once after all points have been added to points[]
function fitMapPoints() {
    var map = pageMap;
    var points = pagePoints;
    var bounds = new GLatLngBounds();
    for (var i = 0; i < points.length; i++) {
        bounds.extend(points[i]);
    }
    map.setZoom(map.getBoundsZoomLevel(bounds));
    map.setCenter(bounds.getCenter());
}




