    //<![CDATA[
    var map;
    var geocoder;
	var searchAddress = "";
	var globalSearchNumResults = 0;
	var globalSearchRadius = 50;

    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(40, -100), 3);
		//loadHome();
      }
    }
	
   function loadHome(){	   
      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), 3);
		//loadHome();
     var address = "6050 Birch Dr. Flint, MI 48507";
	 addSearchLocHome();
     geocoder.getLatLng(address, function(latlng) {
       if (!latlng) {
         alert('The address "' + address + '" was not found. Please try again.');
       } else {
         searchLocationsNearFlint(latlng);
       }
     });
      }
   }
   
   function addSearchLoc(address){	   
     var searchLoc = document.getElementById('searchLoc');
     searchLoc.innerHTML = '';
     var searchLocEntry = createLocEntry(address);
     searchLoc.appendChild(searchLocEntry);
   }
   
   function addSearchLocHome(address){
     var searchLoc = document.getElementById('searchLoc');	
     searchLoc.innerHTML = '';
   }

   function searchLocations() {
     var address = document.getElementById('addressInput').value;
	 searchAddress = address;
     geocoder.getLatLng(address, function(latlng) {
       if (!latlng) {
         alert('The address "' + address + '" was not found. Please try again.');
       } else {
         searchLocationsNear(latlng);
       }
     });
   }
   
   function searchAllLocations(){
     var searchUrl = 'phpsqlsearch_genallxml.php';
     GDownloadUrl(searchUrl, function(data) {
       var xml = GXml.parse(data);
       var markers = xml.documentElement.getElementsByTagName('marker');
       map.clearOverlays();
	   
       if (markers.length == 0) {
         sidebar.innerHTML = 'No dealers found within your search radius. Please try again.';
         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 addy1 = markers[i].getAttribute('addy1');
         var addy2 = markers[i].getAttribute('addy2');
         var address = markers[i].getAttribute('address');
         var phone = markers[i].getAttribute('phone');
         var email = markers[i].getAttribute('email');
         var gauges = markers[i].getAttribute('gauges');
         var spotlights = markers[i].getAttribute('spotlights');
         var keyfobs = markers[i].getAttribute('keyfobs');
         var letters = markers[i].getAttribute('letters');
         var isActive = markers[i].getAttribute('isActive');
         var distance = parseFloat(markers[i].getAttribute('distance'));
         var point = new GLatLng(parseFloat(markers[i].getAttribute('lat')),
                                 parseFloat(markers[i].getAttribute('lng')));
         if(isActive == 1){
			 var marker = createMarker(point, name, addy1, addy2, address, phone, email, gauges, spotlights, keyfobs, letters);
			 map.addOverlay(marker);
			 //var sidebarEntry = createSidebarEntry(marker, name, addy1, addy2, address, phone, email, gauges, spotlights, keyfobs, letters, distance);
			 //sidebar.appendChild(sidebarEntry);
			 bounds.extend(point);
		 }
       }
       map.setCenter(bounds.getCenter(), map.getBoundsZoomLevel(bounds));
	   globalSearchNumResults = markers.length;
     });
	   
   }

   function searchLocationsNear(center) {
     var radius = document.getElementById('radiusSelect').value;
	 globalSearchRadius = radius;
     var searchUrl = 'phpsqlsearch_genxml.php?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 dealers found within your search radius. Please try again.';
         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 addy1 = markers[i].getAttribute('addy1');
         var addy2 = markers[i].getAttribute('addy2');
         var address = markers[i].getAttribute('address');
         var phone = markers[i].getAttribute('phone');
         var email = markers[i].getAttribute('email');
         var gauges = markers[i].getAttribute('gauges');
         var spotlights = markers[i].getAttribute('spotlights');
         var keyfobs = markers[i].getAttribute('keyfobs');
         var letters = markers[i].getAttribute('letters');
         var isActive = markers[i].getAttribute('isActive');
         var distance = parseFloat(markers[i].getAttribute('distance'));
         var point = new GLatLng(parseFloat(markers[i].getAttribute('lat')),
                                 parseFloat(markers[i].getAttribute('lng')));
         if(isActive == 1){
			 var marker = createMarker(point, name, addy1, addy2, address, phone, email, gauges, spotlights, keyfobs, letters);
			 map.addOverlay(marker);
			 var sidebarEntry = createSidebarEntry(marker, name, addy1, addy2, address, phone, email, gauges, spotlights, keyfobs, letters, distance);
			 sidebar.appendChild(sidebarEntry);
			 bounds.extend(point);
		 }
       }
       map.setCenter(bounds.getCenter(), map.getBoundsZoomLevel(bounds));
	   globalSearchNumResults = markers.length;
	   addSearchLoc(searchAddress);
     });
   }

   function searchLocationsNearFlint(center) {
     var radius = 0.1;
	 globalSearchRadius = radius;
     var searchUrl = 'phpsqlsearch_genxml.php?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(40, -100), 4);
         return;
       }

	   var marker;
       var bounds = new GLatLngBounds();
       for (var i = 0; i < markers.length; i++) {
         var name = markers[i].getAttribute('name');
         var addy1 = markers[i].getAttribute('addy1');
         var addy2 = markers[i].getAttribute('addy2');
         var address = markers[i].getAttribute('address');
         var phone = markers[i].getAttribute('phone');
         var email = markers[i].getAttribute('email');
         var gauges = markers[i].getAttribute('gauges');
         var spotlights = markers[i].getAttribute('spotlights');
         var keyfobs = markers[i].getAttribute('keyfobs');
         var letters = markers[i].getAttribute('letters');
         var isActive = markers[i].getAttribute('isActive');
         var distance = parseFloat(markers[i].getAttribute('distance'));
         var point = new GLatLng(parseFloat(markers[i].getAttribute('lat')),
                                 parseFloat(markers[i].getAttribute('lng')));
         if(isActive == 1){
			 marker = createMarker(point, name, addy1, addy2, address, phone, email, gauges, spotlights, keyfobs, letters);
			 map.addOverlay(marker);
			 var sidebarEntry = createSidebarEntry(marker, name, addy1, addy2, address, phone, email, gauges, spotlights, keyfobs, letters, distance);
			 //sidebar.appendChild(sidebarEntry);
			 bounds.extend(point);
		 }
       }
       map.setCenter(bounds.getCenter(), 6);
	   GEvent.trigger(marker);
	   globalSearchNumResults = markers.length;
	   addSearchLoc(searchAddress);
     });
   }

    function createMarker(point, name, addy1, addy2, address, phone, email, gauges, spotlights, keyfobs, letters) {
      var marker = new GMarker(point);
	  /*
      var html = '<b>' + name + '</b> <br/>' + addy1 + '<br/>' + addy2;
	  if(phone != ""){
	  	html += '<br/>' + phone;
	  }
	  if(email != ""){
	  	html += '<br/>' + email;
	  }
	  
	  
	  */
		var gaugesCode = "";
		var keyfobsCode = "";
		var spotlightsCode = "";
		var lettersCode = "";
		
		if(gauges==1){
			gaugesCode = "<div style=\"margin-right:5px; float:left;\">&bull;&nbsp;Gauges</div>";
		}
		if(keyfobs==1){
			keyfobsCode = "<div style=\"margin-right:5px; float:left;\">&bull;&nbsp;Key Fobs</div>";
		}
		if(spotlights==1){
			spotlightsCode = "<div style=\"margin-right:5px; float:left;\">&bull;&nbsp;Spotlights</div>";
		}
		if(letters==1){
			lettersCode = "<div style=\"margin-right:5px; float:left;\">&bull;&nbsp;Letters</div>";
		}
		
		
	  	//html += '<br/>' + gaugesCode + keyfobsCode + spotlightsCode + lettersCode;
		
		var markerInfo = "<div class=\"locatorWindow\"><div class=\"locatorName\">"+name+"</div><div class=\"locatorAddress\"><hr>"+addy1+"<br>"+addy2+"</div><div class=\"locatorPhone\">"+phone+"</div><div class=\"locatorEmail\"><a href=\"mailto:"+email+"\" target=\"_blank\">"+email+"</a></div><div class=\"locatorAddress\" style=\"padding-bottom:0px;\"><hr>"+gaugesCode+keyfobsCode+spotlightsCode+lettersCode+"</div><div class=\"locatorDirections\" style=\"clear:both; padding-top:3px;\"><hr><a href=\"http://maps.google.com/maps?hl=en&client=safari&rls=en-us&q="+address+"&um=1&ie=UTF-8&sa=N&tab=wl&f=d\" target=\"_blank\">Get Directions</a></div></div>";
				
		var html = markerInfo;		
				
      GEvent.addListener(marker, 'click', function() {
        marker.openInfoWindowHtml(html);
      });
      return marker;
    }

    function createSidebarEntry(marker, name, addy1, addy2, address, phone, email, gauges, spotlights, keyfobs, letters, distance) {
      var div = document.createElement('div');
      var html = '<span class="locatorSideBarName">' + name + '</span><span class="locatorSideBarDistance"> (' + distance.toFixed(1) + ' mi)</span><br/>' + addy1 + '<br/>' + addy2;
      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;
    }
	
	function createLocEntry(address){
      var div = document.createElement('div');
	  div.style.fontSize = '13px';
      div.style.marginBottom = '5px'; 
      var html = '<b>Currently displaying ' + globalSearchNumResults + ' dealers within ' + globalSearchRadius + ' miles of ' + address + '</i>';
      div.innerHTML = html;
      return div;
	}
    //]]>
