// Load Google Map Modal

var map;

function load() {
	doLoad();
	addMarkers();
}

function doLoad() {
	if (GBrowserIsCompatible()) {
	    var centerPoint = new GLatLng(40.078071,-101.689453);
		map = new GMap2(document.getElementById("map"), {logoPassive: true});
		map.setCenter(centerPoint, 7);
		// map.addControl(new GScaleControl());
		map.addControl(new GSmallMapControl());
		// map.addControl(new GMapTypeControl());
	}
}

function addMarkers() {
		
	var icon = new GIcon();
	
	if(icontype == 'sts') {
		icon.image = '/images/icons/google_icon_sts.png';
	 	icon.shadow = '/images/icons/google_icon_sts_shadow.png';
		icon.iconSize = new GSize(25, 25);
		icon.shadowSize = new GSize(40, 30);
		icon.iconAnchor = new GPoint(9, 34);
		icon.infoWindowAnchor = new GPoint(9, 2);
		icon.infoShadowAnchor = new GPoint(18, 25);
	} else {
		icon.image = '/images/icons/google_icon.png';
	 	icon.shadow = '/images/icons/google_icon_shadow.png';
		icon.iconSize = new GSize(20, 34);
		icon.shadowSize = new GSize(37, 34);
		icon.iconAnchor = new GPoint(9, 34);
		icon.infoWindowAnchor = new GPoint(9, 2);
		icon.infoShadowAnchor = new GPoint(18, 25);
	}

	if (data.length) {
	
 
		var bounds = new GLatLngBounds();

		for (n=0 ; n < data.length ; n++ ) {
			if(data[n].lat) {
			
				var point = new GLatLng(data[n].lat, data[n].lng);
				var marker = createMarker(point, data[n].tag, icon);
				map.addOverlay(marker);
				bounds.extend(point);
			}
		}


		var latSpan = bounds.toSpan().lat();
		
        map.setCenter(bounds.getCenter(), map.getBoundsZoomLevel(bounds));
		var newBounds = map.getBounds();
	    var newLatSpan = newBounds.toSpan().lat();
	    
	    if(data.length == 1) {
			map.setZoom(11);
	    } else if (latSpan/newLatSpan > .90) { 
	    	map.zoomOut(); 
	    }
		
	}
}

function createMarker(point, tag, icon) {
	if(icon) {
		var marker = new GMarker(point, icon);
	} else {
		var marker = new GMarker(point);
	}

	GEvent.addListener(marker, "click", function() {
		marker.openInfoWindowHtml('<div class="map-tag">' + tag + '</div>');
	});
	return marker;
}

function mapClick(marker, point) {
	if (!marker) {
		oLat = document.getElementById("lat");
		oLat.value = point.y;
		oLon = document.getElementById("lon");
		oLon.value = point.x;
		oDesc = document.getElementById("desc");
		oDesc.value = 'New point';
	}
}