    var map;
    var geocoder;

	var iconBlue = new GIcon();     
	iconBlue.image = 'images/house.png';    
	iconBlue.shadow = 'images/shadow.png';    
	iconBlue.iconSize = new GSize(21, 31);    
	iconBlue.shadowSize = new GSize(22, 40);    
	iconBlue.iconAnchor = new GPoint(6, 35);    
	iconBlue.infoWindowAnchor = new GPoint(5, 1);

var iconRed = new GIcon();     
	iconRed.image = 'images/entertain.png';    
	iconRed.shadow = 'images/shadow.png';    
	iconRed.iconSize = new GSize(21, 31);    
	iconRed.shadowSize = new GSize(22, 40);    
	iconRed.iconAnchor = new GPoint(6, 35);    
	iconRed.infoWindowAnchor = new GPoint(5, 1);

    function load() {
      if (GBrowserIsCompatible()) {
        geocoder = new GClientGeocoder();
        map = new GMap2(document.getElementById('map'));
        map.addControl(new GSmallMapControl());
        map.addControl(new GMapTypeControl());
        map.setCenter(new GLatLng(51.510887,-0.154582), 12);
      }
    }


 function searchLocations() {
     var address = document.getElementById('addressInput').value;
     geocoder.getLatLng(address, function(latlng) {
       if (!latlng) {
         alert(address + ' not found');
       } else {
         searchLocationsNear(latlng);
	
       }
     });
   }




   function searchLocationsNear(center) {
     var radius = document.getElementById('radiusSelect').value;
     var searchUrl = 'phpsqlsearch_genxml.php5?lat=' + center.lat() + '&lng=' + center.lng() + '&radius=' + radius;
     GDownloadUrl(searchUrl, function(data) {
       var xml = GXml.parse(data);
	
       var markers = xml.documentElement.getElementsByTagName('marker');
       map.clearOverlays();

       var sidebar = document.getElementById('sidebar');
       sidebar.innerHTML = '';
       if (markers.length == 0) {
         sidebar.innerHTML = 'No results found.';
         map.setCenter(new GLatLng(51.510887,-0.154582), 12);
         return;
       }

       var bounds = new GLatLngBounds();
       for (var i = 0; i < markers.length; i++) {
         var name = markers[i].getAttribute('name');
var photo1 = markers[i].getAttribute('photo1');
var inrate1 = markers[i].getAttribute('inrate1');
var outrate1 = markers[i].getAttribute('outrate1');
var age = markers[i].getAttribute('age');
var role = markers[i].getAttribute('role');
var npp = markers[i].getAttribute('npp');
         var address = markers[i].getAttribute('address');
	
         var distance = parseFloat(markers[i].getAttribute('distance'));
         var point = new GLatLng(parseFloat(markers[i].getAttribute('lat')),
                                 parseFloat(markers[i].getAttribute('lng')));
	var pointx = new GLatLng((parseFloat(markers[i].getAttribute('lat')) + 0.0005),
                                 parseFloat((markers[i].getAttribute('lng'))+ 0.0005));
         var marker = createMarker(point, name, address, photo1, age, role, inrate1, outrate1, npp );
         

var div = document.createElement('div');

	sidebar.appendChild(div);

createSidebarEntry(marker, name,  distance, div);
        map.addOverlay(marker); 

         bounds.extend(point);	
	bounds.extend(pointx);	
       }
	var marker1 = createMarker1(center);
         map.addOverlay(marker1);	
	bounds.extend(center);
var adjcenterlat = center.lat() + 0.0005;
var adjcenterlng = center.lng() + 0.0005;
var adjcenter = new GLatLng(parseFloat(adjcenterlat), parseFloat(adjcenterlng))
bounds.extend(adjcenter);
       map.setCenter(bounds.getCenter(), map.getBoundsZoomLevel(bounds));
     });
   }

    function createMarker(point, name, address, photo1, age, role, inrate1, outrate1, npp) {
      var marker = new GMarker(point, iconRed);
      var html = '<div style="float:left; height: 104px;"><img src="/photos/thumb_' + photo1 + '" border=0  height="100" hspace = 3 width=75 alt ="escort" style="border-top: 2px solid #bd3121; border-bottom: 2px solid #bd3121;"></div><div style="color:#000000; height: 104px;"><a href="show.php?boy=' + npp + ' " style="color:#000000"><b>' + name + '</b></a><br>' + age + ' years old<br>' + role + '<br>1 hour incall &pound;' + inrate1 + ' <br>1 hour outcall &pound;' + outrate1 + ' </div>';
      GEvent.addListener(marker, 'click', function() {
        marker.openInfoWindowHtml(html);
      });
      return marker;
    }

	function createMarker1(point) {      
	var marker1 = new GMarker(point, iconBlue);      
	var html = '<div style="color:#000000"><b>YOUR LOCATION</b></div>' ;      
	GEvent.addListener(marker1, 'click', function() {        marker1.openInfoWindowHtml(html);      });      
	return marker1;    
	}

    function createSidebarEntry( marker, name,  distance, div) {
         
	
      var html = '<b>' + name + '<\/b> (' + distance.toFixed(1) + ' miles)<br>';
      
      div.style.cursor = 'pointer';
      div.style.marginBottom = '5px'; 
      GEvent.addDomListener(div, 'click', function() {
        GEvent.trigger(marker, 'click');
      });
GEvent.addDomListener(div, 'mouseover', function() {
        div.style.backgroundColor = '#600000';
      });
      GEvent.addDomListener(div, 'mouseout', function() {
        div.style.backgroundColor = '#900000';
      });   
      div.innerHTML = html;
	return;
    }
