function getPoly(zip,type,city,state,centered){
	var request = GXmlHttp.create();
	var url = '/maps/polygonXML.php?zip='+zip+'&type='+type+'&city='+city+'&state='+state;
	var points = [];
	var firstTime = true;
	request.open("GET", url, true);
	request.onreadystatechange = function(){
		if (request.readyState == 4){
			var xmlDoc = request.responseXML.documentElement;
			try	{
				var numPolys = xmlDoc.childNodes.length;
				for (var i = 0; i < numPolys; i++)	{
					var numPoints = parseInt(xmlDoc.getElementsByTagName("polygon"+i).item(0).childNodes.length);
					var notes = xmlDoc.getElementsByTagName("polygon"+i).item(0).getAttribute("notes");
					notes = "<div style='font-face: arial; font-size: 12px; white-space: nowrap;'>" + notes + "</div>";

					for (var k = 0; k < numPoints; k++){
						var lat = parseFloat(xmlDoc.getElementsByTagName("polygon"+i).item(0).childNodes[k].getAttribute("lat"));
						var lng = parseFloat(xmlDoc.getElementsByTagName("polygon"+i).item(0).childNodes[k].getAttribute("lng"));
						var point = new GLatLng(lat, lng);
						points.push(point);
						
						// Determining boundaries of polygones:
						if (firstTime == true)	{
							maxLng = lng;
							maxLat = lat;
							minLng = lng;
							minLat = lat;
							firstTime = false;
						}
						if (lat > maxLat) maxLat = lat;
						if (lng > maxLng) maxLng = lng;
						if (lat < minLat) minLat = lat;
						if (lng < minLng) minLng = lng;
						
						// Break up polylines for firefox
						if (k % 225 == 0 && k != 0){
							map.addOverlay(new GPolyline(points, "#FF0000", 3, 1));
							points = [];
						}
					} // for each point

					map.addOverlay(new GPolyline(points, "#FF0000", 3, 1));
					points = [];					
					
				} // end: for each polygon
				try	{	
					// Center map+marker based on bounding box algorithm
					var lowestZoom = 12;
					var center = new GLatLng( (maxLat+minLat)/2, (maxLng + minLng)/2 );
					var delta = new GSize(maxLng - minLng, maxLat - minLat); 
					var minZoom = 13;
					//map.spec.getLowestZoomLevel(center, delta, map.viewSize);

					if (type == 'state') lowestZoom = 6;
					if (minZoom > lowestZoom) minZoom = lowestZoom;
					
					map.setCenter(center, minZoom); 

					marker = createMarker(center, notes);
					map.addOverlay(marker);
					GEvent.trigger(marker,'click');
				}
				catch(e){
					document.getElementById('map').style.display = 'none';
					document.getElementById('gLegend').style.display = 'none';
					document.getElementById('staticMap').style.display = 'block';
					document.getElementById('staticLegend').style.display = 'block';
				}
			}
			catch(e){
				//alert("Some error occured during program processing:" + e) ;
			}       
		}
	}
	request.send(null);
}
