    //<![CDATA[
    var map;
    var geocoder;

    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(35.7809, -80.9105), 14);
		map.checkResize();
      }
    }

   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.php?lat=' + center.lat() + '&lng=' + center.lng() + '&radius=' + radius;
	 if(styles)searchUrl += '&styles='+styles;
     //alert(searchUrl);
	 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 = '<br /><br /><span style=\"margin: 20px 0px 0px 50px; font-size: 18px; color: #666; font-family: arial;\">No results found.</span>';
         map.setCenter(new GLatLng(40, -100), 4);
         return;
       }

       var bounds = new GLatLngBounds();
       for (var i = 0; i < markers.length; i++) {
	     var company_id = markers[i].getAttribute('company_id');
         var name = markers[i].getAttribute('name');
         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 telephone = markers[i].getAttribute('telephone');
		 var review_count = markers[i].getAttribute('review_count');
         var distance = parseFloat(markers[i].getAttribute('distance'));
         var point = new GLatLng(parseFloat(markers[i].getAttribute('lat')),
                                 parseFloat(markers[i].getAttribute('lng')));

		var icon = new GIcon();
		icon.image = 'http://www.thorlo.com/mapmarkers/' + markers[i].getAttribute('image_png');
		icon.shadow = 'http://www.thorlo.com/mapmarkers/' + markers[i].getAttribute('shadow_png');
		icon.iconSize = new GSize(parseInt(markers[i].getAttribute('image_width')), parseInt(markers[i].getAttribute('image_height')));
		icon.shadowSize =  new GSize(parseInt(markers[i].getAttribute('shadow_width')), parseInt(markers[i].getAttribute('shadow_height')));
		icon.iconAnchor =  new GPoint(parseInt(markers[i].getAttribute('map_x')), parseInt(markers[i].getAttribute('map_y')));
		icon.infoWindowAnchor = new GPoint(parseInt(markers[i].getAttribute('info_x')), parseInt(markers[i].getAttribute('info_y')));
			 
         var marker = createMarker(point, company_id, name, address, city, state, zip, telephone, review_count, icon);
         map.addOverlay(marker);
         var sidebarEntry = createSidebarEntry(marker, company_id, name, address, city, state, zip, telephone, review_count, distance, icon.image, markers[i].getAttribute('promotion'), markers[i].getAttribute('experia'));
         sidebar.appendChild(sidebarEntry);
         bounds.extend(point);
       }
       map.setCenter(bounds.getCenter(), map.getBoundsZoomLevel(bounds));
     });
   }

    function createMarker(point, company_id, name, address, city, state, zip, telephone, review_count, icon, disableclick) {
	  if(!disableclick){disableclick=false;}else{disableclick=true;}
	  var marker = new GMarker(point, icon, disableclick);
      if(!disableclick){
		  var html = '<span class=\"store_title\"><strong>' + name + '</strong></span> <br/><span class=\"store_addy_marker\">' + address + '<br />' + city + ', ' + state + '  ' + zip + '<br /><strong>' + telephone + '</strong></span><br /><a href=\"retailer_detail.php?id=' + company_id + '\" target=\"_blank\" class=\"store_links\">view store details</a> | <a href=\"retailer_detail.php?id=' + company_id + '\" target=\"_blank\" class=\"store_links\">driving directions</a><br />';	  
		  
		  GEvent.addListener(marker, 'click', function() {
			marker.openInfoWindowHtml(html);
		  });
	  }
		
return marker;
    }

    function createSidebarEntry(marker, company_id, name, address, city, state, zip, telephone, review_count, distance, icon, promotion, experia) {
      var div = document.createElement('div');
      var html = '<div id=\"store_block\"><span class=\"store_title\">' + name + '</span> (' + distance.toFixed(1) + ') <br/><span class=\"store_addy\">' + address + '<br />' + city + ', ' + state + '  ' + zip + '<br /><span style=\"font-weight: bold; margin-bottom: 10px;\">' + telephone + '</span>';
      if(promotion != ''){
		html = html + '<br /><apan style="font-size:14px;font-weight:bold; color:#AA0000;"><img src="' + icon + '" />' + promotion + '</span>';  
		div.style.backgroundColor = '#AAFFAA';
	    GEvent.addDomListener(div, 'mouseover', function() {
    	    div.style.backgroundColor = '#88DD88';
      	});
      	GEvent.addDomListener(div, 'mouseout', function() {
        	div.style.backgroundColor = '#AAFFAA';
      	});
	  }
		if(experia == 'TRUE'){
			html = html + '<br /><span style="font-size:12px; color:#666;"><img src="http://www.thorlo.com/ws6/library/images/experia/locator.gif" align="absmiddle" style="margin: 10px 5px 0px 0px;" /> Experia&reg; Sold Here!</span>';  
			div.style.backgroundColor = '#ffcccc';
			GEvent.addDomListener(div, 'mouseover', function() {
				div.style.backgroundColor = '#fbadad';
			});
			GEvent.addDomListener(div, 'mouseout', function() {
				div.style.backgroundColor = '#ffcccc';
			});
		}else{
			GEvent.addDomListener(div, 'mouseover', function() {
				div.style.backgroundColor = '#E1E1E1';
			});
			GEvent.addDomListener(div, 'mouseout', function() {
				div.style.backgroundColor = '#F3F3F3';
			});
		}
	  html = html + '</div>';
	  div.innerHTML = html;
      div.style.cursor = 'pointer';
      div.style.marginBottom = '0px'; 
      GEvent.addDomListener(div, 'click', function() {
        GEvent.trigger(marker, 'click');
      });
      return div;
    }
	
    //]]>
