function googlemap() { 		
if (GBrowserIsCompatible()) { 			
geocoder = new GClientGeocoder();		
map = new GMap2(document.getElementById("map_canvas"));		
map.addControl(new GLargeMapControl()); 		
map.addControl(new GMapTypeControl()); 		
map.addControl(new GScaleControl());	
}}

var tinyIcon = new GIcon();
tinyIcon.image = "../images/houseicon.png";
tinyIcon.shadow = "../images/houseiconshadow.png";
tinyIcon.iconSize = new GSize(20, 20);
tinyIcon.shadowSize = new GSize(25, 20);
tinyIcon.iconAnchor = new GPoint(6, 20);
tinyIcon.infoWindowAnchor = new GPoint(5, 1);

var markerOptions = { icon:tinyIcon };

var cityIcon = new GIcon();
cityIcon.image = "map/mm_20_red.png";
cityIcon.shadow = "map/mm_20_shadow.png";
cityIcon.iconSize = new GSize(12, 20);
cityIcon.shadowSize = new GSize(22, 20);
cityIcon.iconAnchor = new GPoint(6, 20);
cityIcon.infoWindowAnchor = new GPoint(5, 1);
var cityMarkerOptions = { icon:cityIcon };

function showCity(){
	if(citygeo){
		var point = new GLatLng(citylat, citylong);
		map.setCenter(point, izoom);
		var marker = new GxMarker(point,cityMarkerOptions,address,{"offset": new GSize(20, -20),"isStatic":false});
		map.addOverlay(marker);
		map.savePosition();
	}
	else{
	geocoder.getLatLng(address, function(latlng) {					
		map.setCenter(latlng,izoom);
		var marker = new GxMarker(latlng,cityMarkerOptions,address,{"offset": new GSize(20, -20),"isStatic":false});
		map.addOverlay(marker);
		map.savePosition();
	});
	}
 }
	
function zoomOut(factor){	zoom = izoom;
	map.setZoom(zoom-factor);
}
function doZoom(maxdist,zoom,itemid){	
	map.returnToSavedPosition();
	zoomOut(zoom);
	setAllOff();
	setToOn(itemid);
	searchLocations(maxdist);
}

function doZoomTwo(maxdist,zoom){
	zoomOut(zoom);
	searchLocations(maxdist);
}

function setRegion(){

	 map.setCenter(new GLatLng(ilat, ilong), izoom);

}

function doRegion(){
	
	searchLocationsNearRegion();

}
	
var onText = "#000000";
var offText = "#952918";

function setToOn(item){	var el = document.getElementById(item);
 	el.style.color=onText;
}
	
function setAllOff(){	
	var textarray = new Array("downtown","onemile","fivemile","tenmile","twentyfivemile","fiftymile");
	for ( var i=textarray.length-1; i>=0; --i ){			
		var el = document.getElementById(textarray[i]);
 		el.style.color=offText;
	}
}
			
function searchLocations(radius) { 
	if(citygeo){
		var point = new GLatLng(citylat, citylong);
		searchLocationsNear(point,radius);
		
	}
	else {
	geocoder.getLatLng(address, function(latlng) {       
		if (!latlng) {         
			alert(address + ' not found');
       } else {        
		searchLocationsNear(latlng,radius);
       }     
	});
	}
}
   
function searchLocationsNear(center,radius) {          
var searchUrl = 'map/phpsqlsearch_genxml.php?lat=' + center.lat() + '&lng=' + center.lng() + '&radius=' + radius;
//alert(searchUrl);
 GDownloadUrl(searchUrl, function(data,responseCode) {	 if(responseCode == 200){       var xml = GXml.parse(data);
       var markers = xml.documentElement.getElementsByTagName('marker');
       	   for ( var q=0, len=markersArray.length;
 q<len;
 ++q ){				if(markersArray[q] != null){					map.removeOverlay(markersArray[q]);
				}	}       for (var i = 0;
 i < markers.length;
 i++) {         var name = markers[i].getAttribute('bbnm');
         var address = markers[i].getAttribute('bbadd');
         var distance = parseFloat(markers[i].getAttribute('distance'));
         var point = new GLatLng(parseFloat(markers[i].getAttribute('bblat')),                                 parseFloat(markers[i].getAttribute('bblong')));
		 var link = markers[i].getAttribute('link');
         var marker = createMarker(point, name, address, link, distance);
         map.addOverlay(marker);
		 markersArray[i] = marker;
       }     }	 });
   }    
   
function searchLocationsNearRegion() { 
	var searchUrl = 'map/phpsqlregion_genxml.php?region=' + reg;
	GDownloadUrl(searchUrl, function(data,responseCode) {	 
		if(responseCode == 200){       var xml = GXml.parse(data);
		var markers = xml.documentElement.getElementsByTagName('marker');
       	for ( var q=0, len=markersArray.length; q<len; ++q ){				
			if(markersArray[q] != null){					
				map.removeOverlay(markersArray[q]);
			}
		}
		for (var i = 0; i < markers.length; i++) {         
			var name = markers[i].getAttribute('bbnm');
			var address = markers[i].getAttribute('bbadd');
			var point = new GLatLng(parseFloat(markers[i].getAttribute('bblat')),                                 
			parseFloat(markers[i].getAttribute('bblong')));
			var link = markers[i].getAttribute('link');
			distance = null;
			var marker = createMarker(point, name, address, link,distance);
			map.addOverlay(marker);
			markersArray[i] = marker;
		}     
	}	 
	});
}    
   
   function createMarker(point, name, address, link, distance) {			
		if(distance != null){
		var dist = distance.toString();
		dist = dist.substring(0,4);
		var display = name + " - " + dist + " miles";
		}
		else{ display = name; }
		
		var marker = new GxMarker(point,markerOptions,display,{"offset": new GSize(20, -20),"isStatic":false});
		GEvent.addListener(marker, "click", function() { top.location=link;
 });
            return marker;
    }