	var $j = jQuery.noConflict();
	var map;
	var geocoder;

	function loadmap() {
	  if (GBrowserIsCompatible()) {
		geocoder = new GClientGeocoder();
		map = new GMap2(document.getElementById('map'));
		map.addControl(new GSmallMapControl());
		map.addControl(new GMapTypeControl());
		map.setCenter(new GLatLng(40, -100), 4);
	  }
	}

   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 = 'http://localhost/jeffcooper/maps/dealer-search.php?lat=' + center.lat() + '&amp;lng=' + center.lng() ;
	 
	 //var searchUrl = 'http://216.98.148.40/inc/dealer-search.php?lat=' + center.lat() + '&lng=' + center.lng() ;
	 var searchUrl = '../inc/dealer-search.php?lat=' + center.lat() + '&lng=' + center.lng() ;
	 
	 //var searchUrl = 'http://216.98.133.210/inc/dealer-search.php?lat=' + center.lat() + '&amp;lng=' + center.lng() + '&amp;radius=' + radius;
	 //alert(searchUrl);
	 
	 GDownloadUrl(searchUrl, function(data) {
	   var xml = GXml.parse(data);
	   var markers = xml.documentElement.getElementsByTagName('marker');
	   map.clearOverlays();

	   
	   var sidebar = document.getElementById('retailers');
	   sidebar.innerHTML = '';
	   if (markers.length == 0) {
		 sidebar.innerHTML = 'No results found.';
		 map.setCenter(new GLatLng(40, -100), 4);
		 return;
	   }
	   
	   var bounds = new GLatLngBounds();
	   
	   for (var i = 0; i < markers.length; i++) {
		 var name = markers[i].getAttribute('name');
		 var tagline = markers[i].getAttribute('tagline');
		 var address = markers[i].getAttribute('address');
		 var city = markers[i].getAttribute('city');
		 var state = markers[i].getAttribute('state');
		 var zip = markers[i].getAttribute('zip');
		 var phone = markers[i].getAttribute('phone');
		 var url = markers[i].getAttribute('url');
		 var email = markers[i].getAttribute('email');
		 var distance = parseFloat(markers[i].getAttribute('distance'));
		 var point = new GLatLng(parseFloat(markers[i].getAttribute('lat')),
								 parseFloat(markers[i].getAttribute('lng')));
		 
		 var marker = createMarker(point, name, tagline, address, city, state, zip, phone, email, url);
		 map.addOverlay(marker);
		 var sidebarEntry = createSidebarEntry(marker, name, tagline, address, city, state, zip, phone, email, url, distance);
		 sidebar.appendChild(sidebarEntry);
		 bounds.extend(point);
	   }
	   
	   map.setCenter(bounds.getCenter(), map.getBoundsZoomLevel(bounds));
	 });
   }

	function createMarker(point, name, tagline, address, city, state, zip, phone, email, url) {
	  var marker = new GMarker(point);
	  
	  var taglineinfo = '';
	  if(tagline != '') taglineinfo = tagline+'<br/>';
	  var emailinfo = '';
	  if(email != '') emailinfo = '<a style="text-decoration:underline;font-size:1em;color:#003411;" title="'+email+'" href="mailto:' + email + '">Email</a><br/>';
	  var urlinfo = '';
	  if(url != '') urlinfo = '<a style="text-decoration:underline;font-size:1em;color:#003411;" title="'+url+'" href="' + url + '">Website</a>';
	  
	  var html = '<div style="color:#003411;font-size:.7em;"><strong style="text-transform:uppercase;">' + name + '</strong> <br/>' + taglineinfo + address + '<br/>' + city + ', ' + state + ' ' + zip + '<br />' + phone + '<br />' + emailinfo + urlinfo + '</div>';
	  GEvent.addListener(marker, 'click', function() {
		marker.openInfoWindowHtml(html);
	  });
	  return marker;
	}

	function createSidebarEntry(marker, name, tagline, address, city, state, zip, phone, email, url, distance) {
	  var div = document.createElement('div');
	  
	  var taglineinfo = '';
	  if(tagline != '') taglineinfo = '<li>'+tagline+'</li>';
	  var emailinfo = '';
	  //if(email != '') emailinfo = '<li>Email: <a href="mailto:' + email + '">' + email + '</a></li>';
	  var urlinfo = '';
	  //if(url != '') urlinfo = '<li>Website: <a href="' + url + '">' + url + '</a></li>';
	  
	  var html = '<ul><li style="text-transform:uppercase;"><strong>' + name + '</strong></li>'+taglineinfo+'<li>' + address + '</li><li>' + city + ', ' + state + ' ' + zip + '</li><li>' + phone +'</li>'+ urlinfo + emailinfo + '<li>' + distance.toFixed() + ' mi</li></ul><div class="space"></div>'; 
	  div.innerHTML = html;
	  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 = '#eee';
	  });
	  GEvent.addDomListener(div, 'mouseout', function() {
		div.style.backgroundColor = '#fff';
	  });
	  return div;
	}

	$j(document).ready(function(){
		loadmap();
		$j('#search-locations').click(function(){
			searchLocations();
		});
		
		function checkKey(e){
			if(e.keyCode == 13) $j('#search-locations').trigger('click');
		}
		if($j.browser.mozilla){
			$j(document).keypress(checkKey);
		}else{
			$j(document).keydown(checkKey);
		}
		
	});
