function plotpoints( data ) {
	document.getElementById('view_all').disabled = false;

	//clear existing overlays
	map.clearOverlays();
	//alert('plotpoints');
	//alert('data: ' + data);
	var xmlobj = GXml.parse( data );

	/*
	var str="xmlobj object" + "\n";
	for ( var key in xmlobj ) {
		str= 'key: ' + key + ' value: ' + xmlobj[key] + "\n";
	}
	alert( str );
	*/

	var status = false;
	var result = xmlobj.documentElement.getElementsByTagName('status');


	/*
	var str="result object" + "\n";
	for ( var key in result ) {
		str= 'key: ' + key + ' value: ' + result[key] + "\n";
	}
	alert( str );
	*/

	if ( typeof result[0] !== 'undefined' ) {
		result = result[0];
	}

	status = result.getAttribute('status');

	if ( status == 'error' ) {
		var message = "No results found for your geographic area. You can get assistance by calling this Toll Free number 1-888-767-7323 (1-888-SOS-READ)";
		var defLat = 37.269175;
		var defLng = -119.306607;
		map.setCenter(new GLatLng( defLat, defLng ), 5);
		var sidebar = document.getElementById('sidebar');
		//alert( message );
		sidebar.innerHTML = '';
		sidebar.innerHTML = message;
		return;
	}
	else {
		var center = xmlobj.documentElement.getElementsByTagName('center');

		/*
		var str = 'center: ' + "\n";
		for ( var key in center ) {
			str = 'key: ' + key + ' ' + center[key] + "\n";
		}
		alert( str );
		*/

		center = center[0];
		//alert( center );
		var bounds = new GLatLngBounds();
		//alert( bounds );
		var cLat = parseFloat(center.getAttribute('lat'));
		var cLng = parseFloat(center.getAttribute('lng'));
		var cAddress = center.getAttribute('address');
		var cType = center.getAttribute('type');
		var cPoint = new GLatLng(cLat,cLng);

		bounds.extend(cPoint);

		var cMarker = createMarker(cPoint, cAddress, cAddress, cType);
		map.addOverlay(cMarker);
		//map.setCenter( cPoint, 10 );

		var markers = xmlobj.documentElement.getElementsByTagName("library");
		//alert('number of markers found: ' + markers.length);

		var sidebar = document.getElementById('sidebar');
		sidebar.innerHTML = '';
		if (markers.length == 0) {
			sidebar.innerHTML = 'No results found.';
			map.setCenter(new GLatLng( cLat, cLng ), 4 );
			return;
		}


		for (var i = 0, len=markers.length; i < len; i++) {
			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 zipcode = markers[i].getAttribute("zipcode");
			var type = markers[i].getAttribute("type");
			var distance = parseFloat(markers[i].getAttribute("dist"));
			var url = markers[i].getAttribute("url");

			var program=markers[i].getElementsByTagName('program');
			var programs='';

			for ( var p=0, plen=program.length; p < plen; p++ ) {
				programs += '<a href="' + program[p].getAttribute('url') + '">' + program[p].getAttribute('name') + '-' + program[p].getAttribute('description') +'</a><br />';
			}

			var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
						parseFloat(markers[i].getAttribute("lng")));

			var contact=markers[i].getElementsByTagName('contact');
			var contacts='<div style="padding-left: 2em; border-bottom: 1px solid #000;">';
			for ( var c=0, clen=contact.length; c < clen; c++ ) {
				contacts += '<b>' + contact[c].getAttribute('fullname') + '</b>';

				var cprogram = contact[c].getElementsByTagName('cprogram');
				cprograms = ' | ';
				for ( var cp=0, cplen=cprogram.length; cp < cplen; cp++ ) {
					cprograms += '<span title="' + cprogram[cp].getAttribute('description') + '">';
					cprograms += '<b>' + cprogram[cp].getAttribute('name') + '</b>';
					cprograms += '</span> | ';
				}
				contacts += cprograms + '<br />';

				contacts += 'phone: ' + contact[c].getAttribute('phone') + '<br />';
				contacts += 'fax: '   + contact[c].getAttribute('fax')   + '<br />';
				contacts += 'email: ' + contact[c].getAttribute('email') + '<br />';


			}
			contacts += '</div>';

			var title = ( distance ? '(' + distance.toFixed(1) + ' miles)' : '' ) + '<b><a href="' +url+ '">'+ name + '</a></b>';
			var description = address+'<br />'+city+', '+state+', '+zipcode;
			var html = title + '<br />' + description + '<br />' + programs;

			var marker = createMarker(point, html, type);
			map.addOverlay(marker);

			var title = ( distance ? '(' + distance.toFixed(1) + ' miles)' : '' ) + '<b>'+ name + '</a></b>';
			var html = title + '<br />' + description + '<br />' + contacts;
			var sidebarEntry = createSidebarEntry(marker, html);
			sidebar.appendChild(sidebarEntry);

			bounds.extend(point);

		}//end for markers

		map.setCenter(bounds.getCenter(), map.getBoundsZoomLevel(bounds));
	}//end if typeof center[0] != 'undefined'
}//end function plotpoints

/*
function getMarkerInfo(html) {
	marker.openInfoWindowHtml(html);
}
*/

function createMarker(point, html, type) {
	var marker = new GMarker(point, customIcons[type]);
	//alert('html: ' + html);
	GEvent.addListener(marker, 'click', function() {
		map.panTo(point);
		map.setZoom(12);
		marker.openInfoWindowHtml(html);
		});

	return marker;
}


function createSidebarEntry(marker, html) {
	var div = document.createElement('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 = '#FDFDF0';
		});

	return div;
}

function findLibraries( myForm ) {
//gmap.php will take zipcode, city, or address as parameters on the query string
//var zipcode=92506;
	var lookup = myForm.lookup ? myForm.lookup.value : false;
	var distance = document.getElementById('distance') ? document.getElementById('distance').value : 10;
	var maxResults = myForm.maxResults ? myForm.maxResults.value : 10;
	var timestamp = new Date().getTime();

	var programs = document.getElementsByName('programs[]');
	var programsStr = '';
	for(var i=0, len=programs.length; i < len; i++) {
		programsStr += programs[i].checked ? '&programs[]=' + programs[i].value : '';
	}

	if( lookup ) {
		//alert('lookup: ' + lookup);
		var query = "address=" + lookup + "&distance=" + distance + "&maxResults=" + maxResults + "&timestamp=" + timestamp + programsStr;
		//alert(query);
		GDownloadUrl("gmap.php?"+query, plotpoints);
		//alert('request sent');
	}
	else {
		alert('Please enter your address first.');
	}

	return false;
}


function findAllLibraries() {
	var timestamp = new Date().getTime();
	document.getElementById('view_all').disabled = true;

	var programs = document.getElementsByName('programs[]');
	var programsStr = '';
	for(var i=0, len=programs.length; i < len; i++) {
		programsStr += programs[i].checked ? '&programs[]=' + programs[i].value : '';
	}
	var query = "address=all&timestamp=" + timestamp + programsStr;
	//alert(query);
	GDownloadUrl("gmap.php?"+query, plotpoints);
}

function findLibrariesByCounty( county ) {

	var timestamp = new Date().getTime();
	document.getElementById('view_all').disabled = true;

	var programs = document.getElementsByName('programs[]');
	var programsStr = '';
	for(var i=0, len=programs.length; i < len; i++) {
		programsStr += programs[i].checked ? '&programs[]=' + programs[i].value : '';
	}

	var query = "county=" + county + "&timestamp=" + timestamp + programsStr;
	//alert(query);
	GDownloadUrl("gmap.php?"+query, plotpoints);


}