 // JavaScript Document for GOOGLE MAP FUNCTIONS
var isCompatible = GBrowserIsCompatible();
var bounds = null;
var imgBase = '';
var markers = new Array();
var map = null;
var bub = null;

if ( isCompatible ) {
	
	function standardControls() {
		map.addControl(new GSmallMapControl());
		map.addMapType(G_PHYSICAL_MAP);
		//map.addControl(new GMapTypeControl());
		map.addControl(new GMenuMapTypeControl()); //AS Menu
		map.enableScrollWheelZoom();
	}
	
	function mapInit(id) {
		map = new GMap2(document.getElementById(id));
		bounds = new GLatLngBounds();
		GEvent.addListener(map, "click", function() {
			if ( bub != null ) {
				bub.hide();
			}
		});
	}
	
	function cityIcon() {
		icon = new GIcon();
		icon.image = 'images/pin_city.png';
		icon.shadow = 'images/pin_city_shadow.png';
		icon.shadowSize = new GSize(37,28);
		icon.iconSize = new GSize(25,28);
		icon.iconAnchor = new GPoint(15, 35);
		icon.infoWindowAnchor = new GPoint(15, 10);
		return icon;
	}
	
	function houseIcon() {
		icon = new GIcon();
		icon.image = 'images/pin_house.png';
		icon.iconSize = new GSize(34,32);
		icon.iconAnchor = new GPoint(9, 21);
		icon.infoWindowAnchor = new GPoint(20, 15);
		return icon;
	}
		
	function rebound() {
		center = bounds.getCenter();
		newZoom = map.getBoundsZoomLevel(bounds);
		if ( map.getZoom() != newZoom ){
			map.setCenter(center, newZoom);
		} else {
			map.panTo(center);
		}
	}
	
	function addMarker(latitude,longitude,icon,contents) {
		point = new GLatLng(latitude, longitude);
		map.addOverlay(createMarker(point,icon,contents));
		bounds.extend(point);
	}
	
	function createMarker(point,icon,contents) {
		var marker = new GMarker(point, icon);
		markers.push(marker);
		if(contents!='') {
		GEvent.addListener(marker, "click", function() {
          marker.openInfoWindowHtml(contents);
        });
		}
		return marker;
	}

	function addMarkerAddress(address,icon,contents) {
	  var geocoder = new GClientGeocoder();
	  geocoder.getLatLng(
		address,
		function(point) {
		  if (!point) {
			alert(address + " not found");
		  } else {
			map.setCenter(point);
			map.addOverlay(createMarker(point,icon,contents));
			bounds.extend(point);
		  }
		}
	  );
	}
	
	function addMarkerAddress2(Lat,Long,address,icon,contents) {
		var geocoder = new GClientGeocoder();
	    var point = new GLatLng( Lat,Long );
		  if (!point) {
			alert(address + " not found");
		  } else {
			map.setCenter(point);
			map.addOverlay(createMarker(point,icon,contents));
			bounds.extend(point);
		  }		
	}
	
	function addMarkerAddressList(address,icon,contents) {
	  var geocoder = new GClientGeocoder();
	  geocoder.getLatLng(
		address,
		function(point) {
		  if (!point) {
			;
		  } else {
			map.addOverlay(createMarker(point,icon,contents));
			bounds.extend(point);
		  }
		}
	  );
	}
	
	function processLocs(arr) {
		for(i = 0; i < arr.length; i++) {
			addMarker(
				arr[i][0],
				arr[i][1],
				arr[i][2],
				arr[i][3]
			);
		}
	}
	
	function processAddress(arr) {
		for(i = 0; i < arr.length; i++) {
			addMarkerAddress(
				arr[i][0],
				arr[i][1],
				arr[i][2]
			);
		}
	}
	
	function processAddress2(arr,mapLat,mapLong) {
		for(i = 0; i < arr.length; i++) {
			addMarkerAddress2(
				mapLat,
				mapLong,
				arr[i][0],
				arr[i][1],
				arr[i][2]
			);
		}
	}
	
	function processAddressList(arr) {
		for(i = 0; i < arr.length; i++) {
			addMarkerAddressList(
				arr[i][0],
				arr[i][1],
				arr[i][2]
			);
		}
	}
	
	function streetView2(address){
		var geocoder = new GClientGeocoder();
		geocoder.getLatLng(
			address,
			function(point) {
				if (!point) {
				alert(address + " not found");
				} else {
				var center = point;
				streetviewpanorama = new GStreetviewPanorama( document.getElementById( 'divStreetViewPanorama' ) );
				streetviewpanorama.setLocationAndPOV( center );
				GEvent.addListener(streetviewpanorama, "error", onStreetError);
				}
			}
		);
	}
	
	function streetView(Lat,Long){
				var center = new GLatLng( Lat, Long );
				var divContainer = document.getElementById('divStreetViewPanorama');
				streetviewpanorama = new GStreetviewPanorama(divContainer);
				streetviewpanorama.setLocationAndPOV(center);
				GEvent.addListener(streetviewpanorama, "error", onStreetError);
	}
	
	function onStreetError(errorCode) {
		var divContainer = document.getElementById('divStreetViewPanorama');
		if(errorCode == 600) {
			divContainer.innerHTML = 'No street view available.';
			divContainer.style.height = '0px';
		} else if(errorCode == 603) {
			divContainer.innerHTML = 'Need adobe flash installed.';
			divContainer.style.height = '0px';
		}
	}
}