	var smmap = null;
	var smgeocoder = null;
 
	var baseIcon = new GIcon();
	baseIcon.shadow = "/Images/Shadow50.png";
	baseIcon.iconSize = new GSize(20, 34);
	baseIcon.shadowSize = new GSize(37, 34);
	baseIcon.iconAnchor = new GPoint(9, 34);
	baseIcon.infoWindowAnchor = new GPoint(9, 2);
	baseIcon.infoShadowAnchor = new GPoint(18, 25);
	

	function verifyAddressProximity(response) {
		if (!response || response.Status.code != 200 || response.Placemark[0].AddressDetails.Accuracy < 4) {
			alert("Sorry!  To insure accurate results, please enter a more specific address as your starting location.  i.e.  175 Scott Swamp Rd, Farmington, CT.");
			// EMF - Renable go button if applicable
			document.getElementById('txAdrs').focus(); } 
		else {
			point = new GLatLng(response.Placemark[0].Point.coordinates[1], response.Placemark[0].Point.coordinates[0]);
			document.getElementById('LatLng').value = point;
			var theform;
			theform = document.forms["frmMain"];
			theform.submit(); }
	}

	function checkAddressProximity(address) {
		if(document.getElementById('chkDistance').checked == true) {
			if(document.getElementById('DistanceSearch') != 'undefined') {
				var distCtls = new Array();
				distCtls[0] = 'rb5mi';
				distCtls[1] = 'rb10mi';
				distCtls[2] = 'rb20mi';
				distCtls[3] = 'rb30mi';
				distCtls[4] = 'rb50mi';
						
				var c;
				var checked;
				for (c in distCtls) {
					var ctrl = document.getElementById(distCtls[c]);
					if(ctrl != null)
						if(ctrl.checked == true) {
							checked = true;
							break; }
						else
							checked = false;
					}
				if(checked == false)
					alert('When searching by distance, distance is required. Please select number of miles and try again.');
				else {
					if (smgeocoder == null) {
						smgeocoder = new GClientGeocoder(); }
					smgeocoder.getLocations(address, verifyAddressProximity);
					return true;						
				}//Radio checked end
			}//DistanceSearch end
		}//address end
		else {	
			var theform;
			theform = document.forms["frmMain"];
			theform.submit(); }
	}

	function selectFromAddress(editcontrol) {
		if (editcontrol.value == "Enter your address here")
			editcontrol.value = "";
		else
			editcontrol.select();
		return true;
	}

    function verifyAddress(response) {
		if (!response || response.Status.code != 200 || response.Placemark[0].AddressDetails.Accuracy < 7) {
			alert("Sorry!  To insure accurate results, please enter a more specific address as your starting location.  i.e.  175 Scott Swamp Rd, Farmington, CT."); }
		else {
			point = new GLatLng(response.Placemark[0].Point.coordinates[1], response.Placemark[0].Point.coordinates[0]);
			document.getElementById('LatLng').value = point;
			var theform;
			theform = document.forms["frmMain"];
			theform.target = '_blank';
			theform.submit();
		}
	}

	function checkAddress(myControl) {
		if (document.forms['frmMain'].elements['to'].value == "" ) {
			alert("Please select an office as your destination!");
			return false; }
		else {
			if (document.forms['frmMain'].elements['from'].value == "" || document.forms['frmMain'].elements['from'].value == "Enter your address here") {
				alert("You must enter a starting address!");
				return false; }
			else {
				if (smgeocoder == null) {
					smgeocoder = new GClientGeocoder(); }
				smgeocoder.getLocations(document.forms['frmMain'].elements['from'].value, verifyAddress);
				return true;
			}
		}
		return false;
	}

	function changeDestination(compaddress) {
		//window.goingto.innerHTML = compaddress;
		//window.frmMain.to.value = compaddress;
		document.getElementById("goingto").innerHTML = compaddress;
		document.getElementById("to").value = compaddress;
		return true;	
	}

	function createMarker(point, name, address, citystzip, phonenumber, facility) {
		var letteredIcon = new GIcon(baseIcon);
		if (facility == 'Y')
			letteredIcon.image = "/Images/marker-fac.png";
		else
			letteredIcon.image = "/Images/marker-dr.png";
		markerOptions = { icon:letteredIcon };  
		var marker = new GMarker(point, markerOptions);
		GEvent.addListener(marker, "click", function() {    marker.openInfoWindowHtml("<table cellspacing='0' cellpadding='5' border='0'><tr><td align='left'><b>" + name + "</b></td></tr><tr><td align='left'>" + address + "<br>" + citystzip + "</td></tr><tr><td align='right'>" + phonenumber + "</td></tr></table>"); changeDestination(address + ", " + citystzip);  });
		return marker;
	}
  	
    function MapInitialize() {
		if (GBrowserIsCompatible()) {
			smmap = new GMap2(document.getElementById('map'), {matTypes:[G_HYBRID_MAP,G_SATELLITE_MAP,G_NORMAL_MAP]});
			smmap.enableScrollWheelZoom();
			smmap.setCenter(new GLatLng(0,0),0);
			smmap.addControl(new GSmallZoomControl());

			var mapControl = new GMapTypeControl();
			smmap.addControl(mapControl);
			if (smgeocoder == null) {
				smgeocoder = new GClientGeocoder(); }
			smmap.setMapType(G_HYBRID_MAP);
		}
	}

	function MapMyDocs(myDocs) {
		
		var bounds = new GLatLngBounds(); 
		smmap.clearOverlays();
		for (var i = 0; i < myDocs.length; i++) {
			searchUrl='GetProviderData.aspx?Prov=' + myDocs[i];
			GDownloadUrl(searchUrl, function(data) {
				var xml = GXml.parse(data);
				var markers = xml.documentElement.getElementsByTagName('marker');
				for (var i = 0; i < markers.length; i++) {
					var name = markers[i].getAttribute('name');
					var address = markers[i].getAttribute('address');
					var citystzip = markers[i].getAttribute('citystzip');
					var facility = markers[i].getAttribute('facility');
					var phonenumber = markers[i].getAttribute('phonenumber');
					var point = new GLatLng(parseFloat(markers[i].getAttribute('lat')),
                              parseFloat(markers[i].getAttribute('lng')));
					bounds.extend(point);
					var marker = createMarker(point, name, address, citystzip, phonenumber, facility);
					smmap.addOverlay(marker);
					if (myDocs.length < 2)
						changeDestination(address + ", " + citystzip);
				}
				smmap.setZoom(smmap.getBoundsZoomLevel(bounds));
				smmap.panTo(bounds.getCenter());
			} );
		} 
	}