var markerData;
var map;

function load() {
if (GBrowserIsCompatible()) {
		var actionUrl = "/localsearchinterface.php?interfacetype=googlelocalsearch&category="+category+"&loc="+loc;
		GDownloadUrl(actionUrl, callbackMapData);

	}//end if
	
}

function callbackMapData(data, responseCode)
{
	if (responseCode==200)
	{
		if (data != null)
		{
			var content = eval("(" + data + ")");
			if ((content.responseData != null))
			{
				markerData = content.responseData.results;
				plotter();
			}
		}
	}	
}

function plotter()
{
	if (document.getElementById("map") != null)
	{
		map = new GMap2(document.getElementById("map"));
		map.addControl(new GSmallMapControl());
		map.addControl(new GMapTypeControl());
		map.setCenter(new GLatLng(10, 10), 14);
	
		map.enableDoubleClickZoom();
		map.enableScrollWheelZoom();
	
		geocoder = new GClientGeocoder();
	
		var bounds = new GLatLngBounds();

		bounds = generateMarker(bounds);
			
		map.setZoom(map.getBoundsZoomLevel(bounds));
		map.setCenter(bounds.getCenter());

	}
}


function generateMarker(bounds)
{	
	var imgIndex= 0;
	for(var i=0; i<markerData.length; i++)
	{
		var name = markerData[i].titleNoFormatting;
		var address = markerData[i].streetAddress;
		var city = markerData[i].city;
		var state = markerData[i].region;
		var lat = markerData[i].lat;
		var lng = markerData[i].lng;
		var phone  = markerData[i].phoneNumbers[0].number;
		var point = new GLatLng(lat,lng);
		
		var marker = createMarker(point, name,  address, city, state, phone, imgIndex);
		
		map.addOverlay(marker);
		bounds.extend(marker.getPoint());									
		
		imgIndex++;		
	}	
	
	return bounds;
}

function createMarker(point, name, address, city, state, phone, index) {
var baseIcon = new GIcon();
baseIcon.iconSize =  new GSize(20, 34);
baseIcon.iconAnchor = new GPoint(9, 34);
baseIcon.infoWindowAnchor = new GPoint(9, 2);
	
var letter = String.fromCharCode("A".charCodeAt(0) + index);
baseIcon.image = "/images/marker" + letter + ".png";

markerOptions = { icon:baseIcon, title:name  };

var marker = new GMarker(point, markerOptions);

var html = "<b>" + name + "</b> <br/>";

if (address != null)
	html = html + address;

if (city != null)
	html = html + "<br />"+ city;
	
if (state != null)
	html = html + ", "+state;
	
if (phone != null)
	html = html + "<br /> "+phone;

	
html = html + "<br />";


GEvent.addListener(marker, 'click', function() {
marker.openInfoWindowHtml(html);
});


return marker;
}

window.onload = load;
window.onunload = GUnload;
