var map;
var bounds;
var locations = new Array();
var maxZoomLevel = 18;
var mapPadFactor = .000001;
var MapControl;
var executeOnLoad = "";

function createSimpleGMap(id){
	var map = new GMap2(document.getElementById(id));

	//map.disableDragging();
	//map.disableDoubleClickZoom();
	//map.disableScrollWheelZoom();
	map.addControl(new GSmallMapControl());
	//map.addControl(new GMapTypeControl());
	
	return map;
}
function addMarkerToMap(marker,addToBounds){
	if(addToBounds){
		bounds.extend(marker.getLatLng());
	}
	map.addOverlay(marker);
}
function centerMapOnBounds(){
	 var ne = bounds.getNorthEast();
	 var sw = bounds.getSouthWest();
	 var addSize=.5;
	 var vertD = ne.distanceFrom(new GLatLng(sw.lat(),ne.lng()));
	 var vertPad = vertD * mapPadFactor;
	 var horiD = ne.distanceFrom(new GLatLng(ne.lat(),sw.lng()));
	 var horiPad = horiD * mapPadFactor;
	 
	 //alert("b4=" +bounds.getNorthEast().distanceFrom(bounds.getSouthWest()));
	 var newNE = new GLatLng(ne.lat()+vertPad,ne.lng()+horiPad);
	 
	 var newSW = new GLatLng(sw.lat()-vertPad,sw.lng()-horiPad);
	 bounds.extend(newNE);
	 bounds.extend(newSW);
	 //alert("afta=" +bounds.getNorthEast().distanceFrom(bounds.getSouthWest()));
	
	// var zoom = map.getBoundsZoomLevel(bounds);
	var zoom = 18;
	if(false){
		zoom = 18;
	}else if(zoom>maxZoomLevel){
		zoom=maxZoomLevel;
	}
	
	//alert(zoom);
	//map.setCenter(bounds.getCenter(), 16);
	
	if(bounds.length>10){
		alert("so many");
	}
	
  
	
}
function clearMap(){
	bounds = new GLatLngBounds();
	map.clearOverlays();
	
	if(MapControl){
		map.removeControl(MapControl);
	}
}
function createMapLocation (lat, long, title, addy1, addy2,linkto,addToBounds,iconURL,featured) {
	var point = new GLatLng(lat,long);
	if(iconURL ){
		var icon = new GIcon();
		
		 icon.image = iconURL;
		//icon.shadow = iconURL;
		//icon.iconSize = new GSize(16, 23);
		icon.iconSize = new GSize(23, 34);
		
		//icon.iconSize = new GSize(21, 28);
		//icon.shadowSize = new GSize(50, 50);
		icon.iconAnchor = new GPoint(5, 22);
		icon.infoWindowAnchor = new GPoint(12,2); 
		if(featured){
			var options = { 
				zIndexProcess: function(){return 99;},
				icon: icon
				};
			var marker = new GMarker(point,options);
		}else{
			var marker = new GMarker(point,icon);
		}

	}else{
		var marker = new GMarker(point);
	}
	var infoHTML = "<font size='2' color='#333333'>" + title + "<br>" + addy1 + "<br>" + addy2;
	if(linkto && linkto != ""){
	  infoHTML += "<br><a href='" + linkto + "'><font color='#AB0000'>Click to view more information</font></a></font>";
	}
	  
	GEvent.addListener(marker, "click", function() {
		marker.openInfoWindowHtml(infoHTML);
	});
	if(addToBounds){
		bounds.extend(marker.getLatLng());
	}

	map.addOverlay(marker);
	//addMarkerToMap(marker,true);

}
function loadGoogleMap () {
	if (GBrowserIsCompatible()) {
		map = createSimpleGMap("google_map");

		//map = new GMap2(document.getElementById("google_map"));
		//map.addControl(new GSmallMapControl());
		//map.addControl(new GMapTypeControl());
		bounds = new GLatLngBounds();
		//map.setCenter(new GLatLng(26.249083,-80.991211),7, G_SATELLITE_MAP);
		// map.setCenter(new GLatLng(26.249083,-80.991211),7);
		map.setCenter(new GLatLng(25.9337310,-80.1211490),12);
		//showAllCounties();
		//makePropMarkers();
		//centerMapOnBounds();
		if(locations.length > 0){
			makeLocationMarkers();
			centerMapOnBounds();
			//map.setCenter(bounds.getCenter(), 9);
		}else if(executeOnLoad != ""){
			eval(executeOnLoad);
		}
	}
}
/*
function makeLocationMarkers(){
	clearMap();
	for(var i=0;i<locations.length;i++){
		createMapLocation(locations[i].latitude,locations[i].longitude,locations[i].title,locations[i].address1,locations[i].address2,locations[i].link,locations[i].BoundsUse,locations[i].icon ,locations[i].featured);
	}
}
*/
function makeLocationMarkers(theLocs,hideMarkers){
	clearMap();
	if(hideMarkers == null ){ hideMarkers = 0; }
	if(theLocs == null ){ theLocs = locations; }
		
	for(var i=0;i<theLocs.length;i++){
		if(hideMarkers){marker = '';}else{marker = theLocs[i].icon }
		createMapLocation(theLocs[i].latitude,theLocs[i].longitude,theLocs[i].title,theLocs[i].address1,theLocs[i].address2,theLocs[i].link,theLocs[i].BoundsUse,marker ,theLocs[i].featured);
	}
	centerMapOnBounds();
}

function makeRegionLocationMarkers(region){
	locations = regionLocations[region];
	/*if(pointLocations){
		locations = locations.concat(pointLocations);
	}*/
	makeLocationMarkers();
	centerMapOnBounds();
}