//<script language="jscript">
//<![CDATA[
var objMap;
var mapDivID;
var mapCenterLat;
var mapCenterLng;
var mapInitialZoom;
var mapControlsPath;
var mapIconsPath;
var listDivID;
var currentMarkers = new Array(0);
var currentSchoolMarkers = new Array(0);
var currentChurchMarkers = new Array(0);
//xxx
var currentHomeSaleMarkers = new Array(0);
var returnURL;
var draggingMode = true;
var mapData = "";
var addressSearchMarker;
var searchAddress;
var templateID;
var dataTemplateID;
var currentTab;
var CustomerToken;
var EnableSearchAgain;    
var searchLat;
var searchLon;


var gAgencyId;
var NumberOfSchools_Return;
var NumberOfPublicSchools_Return = 0;
var NumberOfPrivateSchools_Return;
var selectedAgencyId = 0;  //stores the agencyid index  when user select a new schoold district from the dropdown.
var bGetSchoolByAgencyIdSecondAttemp=false;  
var homesalesCall = 0;

// Icon Dimensions
if (!houseIconSizeX)
{
	var houseIconSizeX = 23;
	var houseIconSizeY = 39;
	var houseIconAnchorX = 12;
	var houseIconAnchorY = 39;
	var houseIconWAnchorX = 12;
	var houseIconWAnchorY = 1;
	
	// Other Map Icons (Schools & HOWs)
	var mapIconSizeX = 23;
	var mapIconSizeY = 39;
	var mapIconAnchorX = 12;
	var mapIconAnchorY = 39;
	var mapIconWAnchorX = 12;
	var mapIconWAnchorY = 1;
}

// Map Type Controls
var objImgNormal = document.getElementById("imgNormalMap");
var objImgSatellite = document.getElementById("imgSatelliteMap");
var objImgHybrid = document.getElementById("imgHybridMap");

// Create a base icon for all of our markers that specifies the
// shadow, icon dimensions, etc.
var baseIcon = new GIcon();
//baseIcon.shadow = "http://www.google.com/mapfiles/shadow50.png";
baseIcon.iconSize = new GSize(22, 24);
//baseIcon.shadowSize = new GSize(37, 34);
baseIcon.iconAnchor = new GPoint(11, 12);
baseIcon.infoWindowAnchor = new GPoint(11, 2);
//baseIcon.infoShadowAnchor = new GPoint(18, 25);

var baseHouseIcon = new GIcon();
baseHouseIcon.iconSize = new GSize(houseIconSizeX, houseIconSizeY);
baseHouseIcon.iconAnchor = new GPoint(houseIconAnchorX, houseIconAnchorY);
baseHouseIcon.infoWindowAnchor = new GPoint(houseIconWAnchorX, houseIconWAnchorY);

var baseSchoolIcon = new GIcon();
baseSchoolIcon.iconSize = new GSize(mapIconSizeX, mapIconSizeY);
baseSchoolIcon.iconAnchor = new GPoint(mapIconAnchorX, mapIconAnchorY);
baseSchoolIcon.infoWindowAnchor = new GPoint(mapIconWAnchorX, mapIconWAnchorY);

var baseChurchIcon = new GIcon();
baseChurchIcon.iconSize = new GSize(mapIconSizeX, mapIconSizeY);
baseChurchIcon.iconAnchor = new GPoint(mapIconAnchorX, mapIconAnchorY);
baseChurchIcon.infoWindowAnchor = new GPoint(mapIconWAnchorX, mapIconWAnchorY);

//xxx
var baseHomeSaleIcon = new GIcon();
baseHomeSaleIcon.iconSize = new GSize(mapIconSizeX, mapIconSizeY);
baseHomeSaleIcon.iconAnchor = new GPoint(mapIconAnchorX, mapIconAnchorY);
baseHomeSaleIcon.infoWindowAnchor = new GPoint(mapIconWAnchorX, mapIconWAnchorY);

// Cross-browser implementation of element.addEventListener()
function addListener(element, type, expression, bubbling)
 {	bubbling = bubbling || false; 	
     if(window.addEventListener)	{ // Standard
		element.addEventListener(type, expression, bubbling);
		return true;	
     } else if(window.attachEvent) { // IE
		element.attachEvent('on' + type, expression);
		return true;	
     }  else return false;
 }
 

function clearDefaultTextBox(){
  
 try
  {
	//Run some code here
	 var otext = document.forms[0].txtTargetAddress
	 otext.value = "";	 
	 otext.style.fontStyle = "normal"; 
	 otext.removeEventListener('focus',clearDefaultTextBox,false);
		 
  }
  catch(err)
  {
	 //Handle errors here
  }


}

// Polygon
var routePoints = new Array(0);
var lineColor = "#0000ff";
var editable = true;

function LoadMap() {
	if (GBrowserIsCompatible()) {
		objMap = new GMap2(document.getElementById(mapDivID));
		objMap.setCenter(new GLatLng(mapCenterLat, mapCenterLng), mapInitialZoom);
		
		// Add Controls to Map
		var pos1 = new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(10,10));
		objMap.addControl(new GLargeMapControl(), pos1);
		var pos2 = new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(10,10));
		objMap.addControl(new GMapTypeControl(), pos2);
		
		SetupMapEventListeners();
		
		if ((window.document.getElementById('txtAddress').value != "") || (searchLat != 0 && searchLon != 0)) {
			showAddress();
		}
	}
}

function SetupMapEventListeners() {
	GEvent.addListener(objMap, "click", function(marker, point) {
		if (point) {
			HideInfoWindow();
		}
	});
	
	GEvent.addListener(objMap, "movestart", function() {
		HideInfoWindow();
	});
	
	GEvent.addListener(objMap, "zoomend", function(oldLevel, newLevel) {
		HideInfoWindow();
	});
	//AddDragEndListener();
	//EnableDrawPolygon();
}

function CreateMarker(point, html, index) {
	var icon = new GIcon(baseIcon);
	icon.image = mapIconsPath + "iconb" + (index <= 25 ? index : "") + ".png";
	var marker = new GMarker(point, icon);
	GEvent.addListener(marker, "click", function() {
		marker.openInfoWindowHtml(html);
	});
	currentMarkers[index] = marker;
	
	return marker;
}

function CreateHouseMarker(point, html) {
	var icon = new GIcon(baseHouseIcon);
	icon.image = "templates/" + templateID + "/images/subject_property.png";
	var marker = new GMarker(point, icon);
	/*
	GEvent.addListener(marker, "click", function() {
		marker.openInfoWindowHtml(html);
	});
	*/
	
	return marker;
}

function CreateSchoolMarker(point, html, index, type, wHeader) {
	var icon = new GIcon(baseSchoolIcon);
	
	if (type == "Private") {
		icon.image = mapIconsPath + "PRV" + index + ".png";
	}
	else {
		icon.image = mapIconsPath + "PUG" + index + ".png";
	}
	
	var marker = new GMarker(point, icon);
	GEvent.addListener(marker, "click", function() {
		DisplayInfoWindow(marker, GetInfoWindowHTML(html, wHeader));
	});
	
	currentSchoolMarkers[index] = marker;
	
	return marker;
}

function CreateChurchMarker(point, html, index, type, wHeader) {
	var icon = new GIcon(baseChurchIcon);
	switch (type) {
		case "church":
			icon.image = mapIconsPath + "CG" + index + ".png";
			break;
		case "temple":
			icon.image = mapIconsPath + "TB" + index + ".png";
			break;
		case "synagog":
			icon.image = mapIconsPath + "SR" + index + ".png";
			break;
		case "mosque":
			icon.image = mapIconsPath + "MY" + index + ".png";
			break;
	}
	
	var marker = new GMarker(point, icon);
	GEvent.addListener(marker, "click", function() {
		//marker.openInfoWindowHtml(html);
		DisplayInfoWindow(marker, GetInfoWindowHTML(html, wHeader));
	});
	
	currentChurchMarkers[index] = marker;
	
	return marker;
}

//xxx
function CreateHomeSaleMarker(point, html, index, wHeader) {
	var icon = new GIcon(baseHomeSaleIcon);
	icon.image = mapIconsPath + "TB" + index + ".png";
	
	var marker = new GMarker(point, icon);
	GEvent.addListener(marker, "click", function() {
		DisplayInfoWindow(marker, GetInfoWindowHTML(html, wHeader));
	});
	
	currentHomeSaleMarkers[index] = marker;
	return marker;
}


function OpenMarkerInfoWindow(index) {
	GEvent.trigger(currentMarkers[index], "click");
}

function OpenSchoolMarkerInfoWindow(index) {
	objMap.setCenter(currentSchoolMarkers[index].getPoint(), objMap.getZoom());
	GEvent.trigger(currentSchoolMarkers[index], "click");
}

function OpenChurchMarkerInfoWindow(index) {
	objMap.setCenter(currentChurchMarkers[index].getPoint(), objMap.getZoom());
	GEvent.trigger(currentChurchMarkers[index], "click");
}

//xxx
function OpenHomeSaleMarkerInfoWindow(index) {
	objMap.setCenter(currentHomeSaleMarkers[index].getPoint(), objMap.getZoom());
	GEvent.trigger(currentHomeSaleMarkers[index], "click");
}

function SwitchToNormalMap() {
	objImgNormal.src = mapControlsPath + "MapNormalDown.gif";
	objImgSatellite.src = mapControlsPath + "MapSatelliteUp.gif";
	objImgHybrid.src = mapControlsPath + "MapHybridUp.gif";
	objMap.setMapType(G_NORMAL_MAP);
}

function SwitchToSatelliteMap() {
	objImgNormal.src = mapControlsPath + "MapNormalUp.gif";
	objImgSatellite.src = mapControlsPath + "MapSatelliteDown.gif";
	objImgHybrid.src = mapControlsPath + "MapHybridUp.gif";
	objMap.setMapType(G_SATELLITE_MAP);
}

function SwitchToHybridMap() {
	objImgNormal.src = mapControlsPath + "MapNormalUp.gif";
	objImgSatellite.src = mapControlsPath + "MapSatelliteUp.gif";
	objImgHybrid.src = mapControlsPath + "MapHybridDown.gif";
	objMap.setMapType(G_HYBRID_MAP);
}

function EnableDrawPolygon()
{
	// /*
	GEvent.addListener(objMap, "click", function(overlay, point) {
		if (editable) {
			if (point) {
				draggingMode = false;
				objMap.clearOverlays();
				routePoints.push(point);
				
				if (routePoints.length > 1) {
					var newPolyline = new GPolyline(routePoints, lineColor);
					objMap.addOverlay(newPolyline);
				}
				
				// Add a marker at the beginning:
				var marker = new GMarker(routePoints[0]);
				objMap.addOverlay(marker);
				
				GEvent.addListener(marker, "click", function() {
					objMap.clearOverlays();
					routePoints.push(routePoints[0]);
					objMap.addOverlay(new GPolyline(routePoints, lineColor));
					editable = false;
					RequestPolygonData();
				});
				
				
				// Add a marker at the end:
				// if ( routePoints.length > 1 ) {
				// 	objMap.addOverlay(new GMarker(routePoints[routePoints.length - 1]));
				// }
				
			}
		}
		else {
			alert('You have already closed a polygon!');
		}
	});
	// */
}

function ClearAll() {
	objMap.clearOverlays();
	routePoints = [];
	currentMarkers = [];
	currentSchoolMarkers = [];
	currentChurchMarkers = [];
	//xxx
	currentHomeSaleMarkers = [];
	editable = true;
	draggingMode = true;
	HideInfoWindow();
}

/*
function AddDragEndListener() {
	GEvent.addListener(objMap, "dragend", function() {
		if (draggingMode) {
			ClearAll();
			if (currentTab == 2) {
				SubmitDataRequest("GetPublicSchoolsT10", true);
			}
			else
			{
				if (currentTab == 4) {
					SubmitDataRequest("GetChurchesT10", true);
				}
			}
			
		}
	});
}
*/

/*
function RequestPolygonData() {
	var resultsList = document.getElementById(listDivID);
	resultsList.innerHTML = "<img src='images/loader-50X100.gif' alt=''>";

	// Polygon Points	
	var coordinates = "";
	for (i = 0; i < routePoints.length - 1; i++) {
		if (coordinates != "") {coordinates += "|";}
		coordinates += routePoints[i].y + "," + routePoints[i].x;
	}
	
	var parms = "?shape=polygon&RegionPoints=" + coordinates;
	//document.getElementById("txtRemoteCall").value = parms;
	
	if (currentTab == 2) {
		if (currentSchoolType == "private") {
			RequestData("PrivateSchool", parms);
		}
		else {
			RequestData("PublicSchool", parms);
		}
	}
	
	if (currentTab == 4) {
		RequestData("Church", parms);
	}
	
	AddAddressMarkerToMap();
	
}
*/


// ====== Create a Client Geocoder ======
var geo = new GClientGeocoder(new GGeocodeCache());
var searchAddressPoint;

// ====== Array for decoding the failure codes ======
var reasons=[];
reasons[G_GEO_SUCCESS]            = "Success";
reasons[G_GEO_MISSING_ADDRESS]    = "Missing Address: The address was either missing or had no value.";
reasons[G_GEO_UNKNOWN_ADDRESS]    = "Unknown Address: No corresponding geographic location could be found for the specified address.";
reasons[G_GEO_UNAVAILABLE_ADDRESS]= "Unavailable Address: The geocode for the given address cannot be returned due to legal or contractual reasons.";
reasons[G_GEO_BAD_KEY]            = "Bad Key: The API key is either invalid or does not match the domain for which it was given";
reasons[G_GEO_TOO_MANY_QUERIES]   = "Too Many Queries: The daily geocoding quota for this site has been exceeded.";
reasons[G_GEO_SERVER_ERROR]       = "Server error: The geocoding request could not be successfully processed.";

// ====== Geocoding ======
function showAddress() {
    searchAddress = document.getElementById("txtAddress").value;
    var blnEnableSearchAgain = EnableSearchAgain;
    
    if (searchLat == 0 || searchLon == 0)
    {
		// ====== Perform the Geocoding ======        
		geo.getLatLng(searchAddress, function (point) { 
			// ===== If that was successful, plot the point and centre the map ======
			if (point) {
				var divAddress = document.getElementById("divAddress");
				
				var s =''
				if (blnEnableSearchAgain=='True') 
				{
					s = '<table cellpadding=0 cellspacing=0 border=0><tr valign=middle><td align=right width=1><a href="javascript:ReCenterMap();">'
					s += '<img height="21px" border="0" src="templates/' + templateID + '/images/subject_property.png" alt="" style="padding-right:5px"></a>';
					s += '</td><td valign=top class="" align=center width:70%>';
					s += '<span style="padding-right:10px;float:left;">'
					s += searchAddress;
					s += '</span>'
					s += '<input id="btnSearchAgain" type="button" value="Search Again" class="SearchButton" onclick="javascript:ResetSearch();" style="display:block;display:inline;float:left" /><span style="clear:left"></span></td></tr></table>';
				}
				else
				{
					s = '<table cellpadding=0 cellspacing=0 border=0><tr valign=middle><td align=right width=1><a href="javascript:ReCenterMap();">'
					s += '<img height="21px" border="0" src="templates/' + templateID + '/images/subject_property.png" alt="" style="padding-right:5px;"></a>';
					s += '</td><td valign=top class="" align =left>';
					s += searchAddress;
					s += '</td></tr></table>';
				}
				
				divAddress.innerHTML = s;
				//divAddress.innerHTML += '&nbsp;<a href="javascript:EnableSearch();"><img src="images/search.gif" alt="" border="0"></a>';
				document.getElementById("divSearchAddress").style.display = "none";
				divAddress.style.display = "block";
				
				searchAddressPoint = point;
				addressSearchMarker = CreateHouseMarker(searchAddressPoint, "");
				AddAddressMarkerToMap();
				if (mapInitialZoom < 13)
				{
					mapInitialZoom = 13;
				}
				objMap.setCenter(searchAddressPoint, mapInitialZoom);
	            
				//***4
				SubmitDataRequest("GetMemberships", true);
			}
			// ====== Decode the error status ======
			else {
				// ==Look to see if the query was cached ==
				var result = geo.getCache().get(searchAddress);
				if (result) {
					var reason="Code " + result.Status.code;
					if (reasons[result.Status.code]) {
						reason = reasons[result.Status.code]
					}
				}
				else {
					var reason = "";
				} 
				alert('Could not find "' + searchAddress + '" ' + reason);
			}
		});
	}
	else
	{
		SetPointBasedOnLatLon();
	}
}

function SetPointBasedOnLatLon()
{
	var point = new GLatLng(searchLat, searchLon);
	if (point)
	{
		if (searchAddress == "")
		{
			searchAddress = searchLat + ", " + searchLon;
		}
		
		var divAddress = document.getElementById("divAddress");
		var s =''
		s = '<table cellpadding=0 cellspacing=0 border=0><tr valign=middle><td align=right width=1><a href="javascript:ReCenterMap();">'
		s += '<img height="21px" border="0" src="templates/' + templateID + '/images/subject_property.png" alt=""></a>';
		s += '</td><td valign=top class="Address" align =left>';
		s += searchAddress;
		s += '</td></tr></table>';
		
		divAddress.innerHTML = s;
		document.getElementById("divSearchAddress").style.display = "none";
		divAddress.style.display = "block";
		
		searchAddressPoint = point;
		addressSearchMarker = CreateHouseMarker(searchAddressPoint, "");
		AddAddressMarkerToMap();
		if (mapInitialZoom < 13)
		{
			mapInitialZoom = 13;
		}
		objMap.setCenter(searchAddressPoint, mapInitialZoom);
	    
		SubmitDataRequest("GetMemberships", true);
	}
	else
	{
		alert("Invalid Latitude or Longitude");
	}
}

function AddAddressMarkerToMap() {
	if (addressSearchMarker) {
		objMap.addOverlay(addressSearchMarker);
        GEvent.addListener(addressSearchMarker, "click", function() {
			//addressSearchMarker.openInfoWindowHtml(searchAddress);
			DisplayInfoWindow(addressSearchMarker, GetInfoWindowHTML(searchAddress, ""));
		});
	}
}

function ReCenterMap()
{
	if (searchAddressPoint) {
		objMap.setCenter(searchAddressPoint, objMap.getZoom());
		
		ClearAll();
		if (currentTab == 2) {
			SubmitDataRequest("GetPublicSchoolsT10", true);
		}
		else
		{
			if (currentTab == 4) {
				SubmitDataRequest("GetChurchesT10", true);
			}
			else	//xxx
			{
				if (currentTab == 5) {
					SubmitDataRequest("GetHomeSales", true);
				}
			}
		}
		
		AddAddressMarkerToMap();
	}
}
function ResetSearch()
{
	document.getElementById("divSearchAddress").style.display = "block";
	document.getElementById("divAddress").style.display = "none";	
	//document.getElementById("txtTargetAddress").innerText="Search by City or County and State, or Zip"
	 
}
function EnableSearch()
{
	var divAddress = document.getElementById("divAddress");
	divAddress.style.display = "none";
	divAddress.innerHTML = "";
}

function NewAddressSearch()
{
	ClearAll();
	privateSchools = new Array();
	publicSchools = new Array();
	houseOfWorship = new Array();

	document.getElementById("txtAddress").value = document.getElementById("txtTargetAddress").value;
	showAddress();
}

function UnloadMap() {
	objMap.clearOverlays();
	GUnload();
}

function SubmitDataRequest(requestType, displayLoading)
{
//***4
	if (draggingMode)
	{
		if (displayLoading)
		{
			var resultsList = document.getElementById(listDivID);
			resultsList.innerHTML = "<img src='images/loader-50X100.gif' alt=''>";
		}
		
		var parms;
		switch (requestType)
		{
			case "GetMemberships":
				var lat = searchAddressPoint.lat()
				var lng = searchAddressPoint.lng();
				parms = "?action=GetMemberships&lat=" + lat + "&lon=" + lng + "&quadrant=0&returnMembershipsFlat=1&returnMembershipBreakDown=0&CustomerToken=" + CustomerToken + "&DataTemplateID=" + dataTemplateID;
				
				break;
				
			case "GetAgencyByDistance":
				var lat = searchAddressPoint.lat()
				var lng = searchAddressPoint.lng();
				parms = "?action=GetAgencyByDistance&lat=" + lat + "&lon=" + lng + "&distance=50&recordsReturned=5&CustomerToken=" + CustomerToken + "&DataTemplateID=" + dataTemplateID;
				
				break;
				
			case "GetDataByMembershipsTemplate":
				parms = "?action=GetDataByMembershipsTemplate&CustomerToken=" + CustomerToken
					+ "&DataTemplateID=" + dataTemplateID
					+ "&StateFIPS=" + membershipInfo.StateFips
					+ "&CountyFIPS=" + membershipInfo.CountyFips
					+ "&SubCountyFIPS=" + membershipInfo.SubCountyFips
					+ "&PlaceFIPS=" + membershipInfo.PlaceFips
					+ "&TractFIPS=" + membershipInfo.TractFips
					+ "&BlockGroupFIPS=" + membershipInfo.BlockGroup
					//+ "&AgencyID=" + membershipInfo.AgencyID
					+ "&AgencyID=" + gAgencyId 					
					+ "&returnDataNames=0&returnBlock=1&returnTract=1&returnPlace=1&returnSubCounty=1&returnCounty=1"
					+ "&returnState=1&returnSchoolAgency=1";
					
				break;
				
			case "GetPublicSchoolsT10":
				// Current Map Coordinates
				var mapCenter = objMap.getCenter();
				var centerLat = mapCenter.lat();
				var centerLon = mapCenter.lng();
				var searchDistance = 50;
				var recReturn = 50;
				var parms = "?action=GetPublicSchoolsT10&centerLat=" + centerLat + "&centerLon=" + centerLon + "&searchDistance=" + searchDistance + "&recReturn=" + recReturn + "&CustomerToken=" + CustomerToken + "&DataTemplateID=" + dataTemplateID;
				
				break;
				
			case "GetPublicSchoolsByAgencyId":
				// Current Map Coordinates
				var mapCenter = objMap.getCenter();
				var centerLat = mapCenter.lat();
				var centerLon = mapCenter.lng();
				var searchDistance = 50;
				var recReturn = 50;
				var AgencyID=  gAgencyId;
				
				var parms = "?action=GetPublicSchoolsByAgencyId&centerLat=" + centerLat + "&centerLon=" + centerLon + "&searchDistance=" + searchDistance + "&recReturn=" + recReturn + "&CustomerToken=" + CustomerToken + "&DataTemplateID=" + dataTemplateID + "&AgencyID=" + AgencyID;
				
				break;
								
			case "GetPrivateSchoolsT10":
				// Current Map Coordinates
				var mapCenter = objMap.getCenter();
				var centerLat = mapCenter.lat();
				var centerLon = mapCenter.lng();
				var searchDistance = 50;
				var recReturn = 50;
				var parms = "?action=GetPrivateSchoolsT10&centerLat=" + centerLat + "&centerLon=" + centerLon + "&searchDistance=" + searchDistance + "&recReturn=" + recReturn + "&CustomerToken=" + CustomerToken + "&DataTemplateID=" + dataTemplateID;
				
				break;
								
			case "GetChurchesT10":
				// Current Map Coordinates
				var mapCenter = objMap.getCenter();
				var centerLat = mapCenter.lat();
				var centerLon = mapCenter.lng();
				var searchDistance = 50;
				var recReturn = 50;
				var parms = "?action=GetChurchesT10&centerLat=" + centerLat + "&centerLon=" + centerLon + "&searchDistance=" + searchDistance + "&recReturn=" + recReturn + "&CustomerToken=" + CustomerToken + "&DataTemplateID=" + dataTemplateID;
				
				break;
				
			//xxx
			case "GetHomeSales":
				// Current Map Coordinates
				var mapCenter = objMap.getCenter();
				var centerLat = mapCenter.lat();
				var centerLon = mapCenter.lng();
				var maxDist = 10;
				var monthsPast = 6;
				var maxReturn = 50;
				var parms = "?action=GetHomeSales&centerLat=" + centerLat + "&centerLon=" + centerLon + "&maxDist=" + maxDist + "&monthsPast=" + monthsPast + "&maxReturn=" + maxReturn + "&CustomerToken=" + CustomerToken + "&DataTemplateID=" + dataTemplateID;
				break;
		}
		
		// Send Request
		var dataURL = returnURL + parms;
		document.getElementById("divRemoteCall").innerHTML += "<a href='" + dataURL + "' target='_blank'>" + dataURL + "</a><br><br>";

		var request = GXmlHttp.create();
		request.open("GET", dataURL , true);
		
		request.onreadystatechange = function() {
			if (request.readyState == 4)
			{
				var returnedData = request.responseText;
				
				switch (requestType)
				{
					case "GetMemberships":
						ProcessMembershipData(returnedData);
						break;
						
					case "GetAgencyByDistance":
						ProcessMultipleAgencies(returnedData);						 
						break;
						
					case "GetDataByMembershipsTemplate":
						ProcessDemoData(returnedData);
						break;
						
					case "GetPublicSchoolsT10":
						publicSchools = [];
						ProcessSchoolData(returnedData, "public");
						break;
					
					case "GetPublicSchoolsByAgencyId":
						publicSchools = [];
						ProcessSchoolData(returnedData, "public");
						break;
					
					
					case "GetPrivateSchoolsT10":
						privateSchools = [];
						ProcessSchoolData(returnedData, "private");
						break;
						
					case "GetChurchesT10":
						ProcessChurchData(returnedData);
						break;
					
					//xxx
					case "GetHomeSales":
						ProcessHomeSaleData(returnedData);
						homesalesCall  += 1
						break;
				}
			}
		}
		request.send(null);
	}
}

// Initialize Data Array
var enData = new Array();
enData[0] = new Array();	// Demo BlockGroup
enData[1] = new Array();	// Demo Place
enData[2] = new Array();	// Demo County
enData[3] = new Array();	// Demo State
enData[4] = new Array();	// School Agency

function ProcessMembershipData(xmlData)
{
	var objXML = GXml.parse(xmlData);
	var stateFips = "";
	var countyFips = "";
	var subCountyFips = "";
	var placeFips = "";
	var zipCode = "";
	var SchoolAgencyId = "";
	var SchoolDistrictName="";
	var SchoolType="";
	var NumberOfSchools=""; 
	var blockGroup = "";
	var tractFips = "";
	
	
	try {stateFips = objXML.getElementsByTagName("StateFips")[0].childNodes[0].nodeValue;} catch(err) {}
	try {countyFips = objXML.getElementsByTagName("CountyFips")[0].childNodes[0].nodeValue;} catch(err) {}
	try {subCountyFips = objXML.getElementsByTagName("SubCountyFips")[0].childNodes[0].nodeValue;} catch(err) {}
	try {placeFips = objXML.getElementsByTagName("PlaceFips")[0].childNodes[0].nodeValue;} catch(err) {}
	try {zipCode = objXML.getElementsByTagName("zipcode")[0].childNodes[0].nodeValue;} catch(err) {}
	try {blockGroup = objXML.getElementsByTagName("BlockGroup")[0].childNodes[0].nodeValue;} catch(err) {}
	try {tractFips = objXML.getElementsByTagName("TractFips")[0].childNodes[0].nodeValue;} catch(err) {}
	
    var SchoolAgencys = objXML.getElementsByTagName("SchoolAgency");
	for (var i=0; i < SchoolAgencys.length; i++)
	{
		var SchoolAgency = SchoolAgencys[i];
		if (SchoolAgency.childNodes.length > 0) {
			
			try {SchoolAgencyId =SchoolAgency.getElementsByTagName("SchoolAgencyId")[0].childNodes[0].nodeValue;} catch(err) {}
			try {SchoolDistrictName =SchoolAgency.getElementsByTagName("SchoolDistrictName")[0].childNodes[0].nodeValue;} catch(err) {}
			try {SchoolType = SchoolAgency.getElementsByTagName("SchoolType")[0].childNodes[0].nodeValue;} catch(err) {}
			try {NumberOfSchools = SchoolAgency.getElementsByTagName("NumberOfSchoolRecords")[0].childNodes[0].nodeValue;} catch(err) {}
			
			 if ((isNaN(NumberOfSchools)!=null) &&  (NumberOfSchools >0))
			 {membershipSchoolAgencyInfo[i] = new membershipRecordSchoolAgency(SchoolAgencyId,SchoolDistrictName,SchoolType,NumberOfSchools)}
			 			
		}
	}
 	//populate select box
 	if (membershipSchoolAgencyInfo.length > 1) 
 	   {gAgencyId = membershipSchoolAgencyInfo[0].SchoolAgencyId;
 	    ProcessMembershipAgencies();
 	   }
 	else if (membershipSchoolAgencyInfo.length == 1)
 	   {gAgencyId = membershipSchoolAgencyInfo[0].SchoolAgencyId; 	   
 	   }   
 	
	
	/*try {stateFips = objXML.getElementsByTagName("statefips")[0].childNodes[0].nodeValue;} catch(err) {}
	try {countyFips = objXML.getElementsByTagName("countyfips")[0].childNodes[0].nodeValue;} catch(err) {}
	try {subCountyFips = objXML.getElementsByTagName("subcountyfips")[0].childNodes[0].nodeValue;} catch(err) {}
	try {placeFips = objXML.getElementsByTagName("placefips")[0].childNodes[0].nodeValue;} catch(err) {}
	try {zipCode = objXML.getElementsByTagName("zipcode")[0].childNodes[0].nodeValue;} catch(err) {}
	try {agencyID = objXML.getElementsByTagName("agencyid")[0].childNodes[0].nodeValue;} catch(err) {}
	try {blockGroup = objXML.getElementsByTagName("blockgroup")[0].childNodes[0].nodeValue;} catch(err) {}
	try {tractFips = objXML.getElementsByTagName("tractfips")[0].childNodes[0].nodeValue;} catch(err) {}
	*/
	//membershipInfo = new membershipRecord(stateFips, countyFips, subCountyFips, placeFips, zipCode, agencyID, blockGroup, tractFips);
	membershipInfo = new membershipRecord(stateFips, countyFips, subCountyFips, placeFips, zipCode, blockGroup, tractFips);
	
	objXML = null;
	
	//Store a global copy of AgencyID
	//gAgencyId = agencyID;
	
	//if (agencyID != null && agencyID != "") {
	//	SubmitDataRequest("GetDataByMembershipsTemplate", true);		 	   
	
	if (membershipSchoolAgencyInfo.length > 0 ) {
		SubmitDataRequest("GetDataByMembershipsTemplate", true);		 	   
	}
	else {
		if (currentTab == 4)
		{
			SubmitDataRequest("GetChurchesT10", true);
			currentTab = 0;
			switchTabs(4);
		}
		else
		{
			if (currentTab == 5)
			{
				SubmitDataRequest("GetHomeSales", true);
				currentTab = 0;
				switchTabs(5);
			}
		}
		
		SubmitDataRequest("GetAgencyByDistance", true);
	}
}

function ProcessMembershipAgencies() {
	
	document.getElementById(listDivID).innerHTML = "";
	var ddlAgencies = document.getElementById("ddlAgencies");
	for (i = ddlAgencies.length; i > 0; i--) {
		ddlAgencies.remove(i - 1);
	}
	 
	for (var i = 0; i < membershipSchoolAgencyInfo.length; i++)
	{
		var agencyID = membershipSchoolAgencyInfo[i].SchoolAgencyId;
		var agencyName = membershipSchoolAgencyInfo[i].SchoolDistrictName;
		var objOption = document.createElement("option");
						 
		objOption = new Option(agencyName  ,agencyID )
		ddlAgencies.options.add(objOption); 			
		 
	}

	var divMultipleAgencies = document.getElementById("divMultipleAgencies");
	divMultipleAgencies.style.display = "block";	

}
function ProcessMultipleAgencies(xmlData) {
	document.getElementById(listDivID).innerHTML = "";
	var ddlAgencies = document.getElementById("ddlAgencies");
	for (i = ddlAgencies.length; i > 0; i--) {
		ddlAgencies.remove(i - 1);
	}

	var objXML = GXml.parse(xmlData);
	//var agencies = objXML.getElementsByTagName("MultiAgency");
	var agencies = objXML.getElementsByTagName("Table1");
	
	
	// Added Fix 
	var agency = agencies[0];
	if (agency.childNodes.length > 0) {
	   if (gAgencyId ==agency.getElementsByTagName("AgencyID")[0].childNodes[0].nodeValue)
	   {  
	   //membershipInfo.AgencyID = agencies[1].getElementsByTagName("AgencyID")[0].childNodes[0].nodeValue;
	   gAgencyId = agencies[1].getElementsByTagName("AgencyID")[0].childNodes[0].nodeValue;
	   //Second Attempt to get public school by AgencyID
	   bGetSchoolByAgencyIdSecondAttemp= true;
	   }
	   else	{
	   //membershipInfo.AgencyID = agency.getElementsByTagName("AgencyID")[0].childNodes[0].nodeValue;
	   gAgencyId= agency.getElementsByTagName("AgencyID")[0].childNodes[0].nodeValue;
	   }
	   
	   //gAgencyId = membershipInfo.AgencyID;
	}
	
	//SubmitDataRequest("GetDataByMembershipsTemplate", true);
	//if (membershipInfo.AgencyID != null)
	if (gAgencyId!= null)
	{
	    // SubmitDataRequest("GetDataByMembershipsTemplate", true) is only usesd here to get the school agency information.
	    
	    SubmitDataRequest("GetPublicSchoolsByAgencyId", true);	
	    SubmitDataRequest("GetDataByMembershipsTemplate", true);	
	    
	      
	}
	
	ShowSchoolDistricSelector(xmlData);
	
	/* // Temporary fix to remove agency selector when multiple agencies
	// intead we will diplay a selector on the scool district tab
	for (var i = 0; i < agencies.length; i++)
	{
		var agency = agencies[i];
		if (agency.childNodes.length > 0) {
			var Distance2Cntr = agency.getElementsByTagName("Distance2Cntr")[0].childNodes[0].nodeValue;
			var agencyID = agency.getElementsByTagName("agencyID")[0].childNodes[0].nodeValue;
			var agencyName = agency.getElementsByTagName("agencyName")[0].childNodes[0].nodeValue;
			
			var objOption = document.createElement("option");
			objOption.text = agencyName + " (" + Distance2Cntr + " miles)";
			objOption.value = agencyID;

			ddlAgencies.add(objOption);
		}
	}

	var divMultipleAgencies = document.getElementById("divMultipleAgencies");
	divMultipleAgencies.style.left = ((getWindowWidth() - 380) / 2) + "px";
	divMultipleAgencies.style.display = "block";
	document.getElementById("btnSearch").disabled = true;
  */
}

function SelectSchoolAgency() {
	var ddlAgencies = document.getElementById("ddlAgencies");
	//membershipInfo.AgencyID = ddlAgencies.value;
	gAgencyId = ddlAgencies.value;
	//document.getElementById("divMultipleAgencies").style.display = "none";
	document.getElementById("btnSearch").disabled = false;
	//SubmitDataRequest("GetDataByMembershipsTemplate", true);
	
	if (currentSchoolType != "private") 	    
	   {
		SubmitDataRequest("GetDataByMembershipsTemplate", true);
		SubmitDataRequest("GetPublicSchoolsByAgencyId", true);		
	   }
						
	
}

function ProcessDemoData(xmlData) {
	var objXML = GXml.parse(xmlData);
	
	for (var y = 0; y < 5; y++)
	{
		try
		{
			//var nodes = objXML.documentElement.childNodes[3].childNodes[y].childNodes;
			//var mainNodeName = objXML.documentElement.childNodes[3].childNodes[y].nodeName;
			
			var nodes = objXML.documentElement.childNodes[y].childNodes;
			var mainNodeName = objXML.documentElement.childNodes[y].nodeName;
			
			var yIndex;
			switch (mainNodeName)
			{
				case "demo_blockgroup":
					yIndex = 0;
					break;
				case "demo_place":
					yIndex = 1;
					break;
				case "demo_county":
					yIndex = 2;
					break;
				case "demo_state":
					yIndex = 3;
					break;
				case "SchoolAgency":
					yIndex = 4;
					break;
			}
			
			for (var x = 0; x < nodes.length; x++)
			{
				var nodeName = "";
				var nodeValue = "";
				var itemIndex;
				
				try
				{
					nodeName = nodes.item(x).nodeName;
					nodeValue = nodes.item(x).childNodes[0].nodeValue;
					itemIndex = parseInt(nodeName.substring(1));
					
					enData[yIndex][itemIndex] = nodeValue;
				}
				catch (err) {}
			}
		}
		catch (err) {}
	}
	
	objXML = null;

	if (currentTab == 1)
	{
		currentTab = 0;
		switchTabs(1);
	}
	else
	{
		if (currentTab == 2)
		{
			
			//if (gAgencyId == null )
			  if( membershipSchoolAgencyInfo.length == 0 )
			   { if (NumberOfPublicSchools_Return == 0 )
			     {SubmitDataRequest("GetPublicSchoolsT10", true);}
			   }
			else
			   { 
			     // if (selectedAgencyId != membershipInfo.AgencyID){
			          SubmitDataRequest("GetPublicSchoolsByAgencyId", true);
			      //    selectedAgencyId = membershipInfo.AgencyID;
			      // }  
			        switchToPublicSchools();
			   }
			
		}
		else
		{
			if (currentTab == 3)
			{
				currentTab = 0;
				switchTabs(3);
			}
			else
			{
				if (currentTab == 4)
				{
					SubmitDataRequest("GetChurchesT10", true);
					currentTab = 0;
					switchTabs(4);
				}
				else	//xxx
				{
					if (currentTab == 5)
					{
						SubmitDataRequest("GetHomeSales", true);
						currentTab = 0;
						switchTabs(5);
					}
				}
			}
		}
	}
}

function ProcessSchoolData(xmlData, scType) {
	/*
	privateSchools = [];
	publicSchools = [];
	*/
	var objXML = GXml.parse(xmlData);
	//var schools = objXML.getElementsByTagName("School");
	 var schools = objXML.getElementsByTagName("Table1");
	 
	
	
	for (var i=0; i < schools.length; i++)
	{
		var school = schools[i];
		if (school.childNodes.length > 0) {
			// School Type
			//var lvl = school.getElementsByTagName("lvl")[0].childNodes[0].nodeValue;
			var lvl = "106";
			var schoolType = scType;
			var SCCategory = (scType == "public" ? "Public" : "Private")

			var strLat = school.getElementsByTagName("LAT")[0].childNodes[0].nodeValue;
			var strLng = school.getElementsByTagName("LON")[0].childNodes[0].nodeValue;
			//var lat = strLat.substring(0, strLat.length - 6) + "." + strLat.substring(strLat.length - 6);
			//var lng = strLng.substring(0, strLng.length - 6) + "." + strLng.substring(strLng.length - 6);
			
			if (strLat > 999)
			{strLat = strLat.substring(0, strLat.length - 6) + "." + strLat.substring(strLat.length - 6);}
			
			if ((strLng * -1) > 999)
			{strLng= strLng.substring(0, strLng.length - 6) + "." + strLng.substring(strLng.length - 6);}
			
			
			 var lat = strLat
			 var lng = strLng
			
			 
			
			// School Info:
			var SCName = "";
			var SCAddress = "";
			var SCCityStateZip = "";
			var SCStudents= 0;
			var SCGrade= "";
			var SCGradeLow= "";
			var SCGradeHigh= "";
			var SCDistance = 0;
			var SCPhone = "";
			var SCAffiliation = "";
			var SCMascot = "";
			var SCColors = "";

			if (schoolType == "private") {
				try {SCName = school.getElementsByTagName("SCName")[0].childNodes[0].nodeValue;} catch(err) {}
				try {SCAddress = school.getElementsByTagName("SCAddress")[0].childNodes[0].nodeValue;} catch(err) {}
				try {SCCityStateZip = school.getElementsByTagName("SCCityStateZip")[0].childNodes[0].nodeValue;} catch(err) {}
				try {SCStudents = school.getElementsByTagName("Students")[0].childNodes[0].nodeValue;} catch(err) {}
				try {SCGradeLow = school.getElementsByTagName("LowGrade")[0].childNodes[0].nodeValue;} catch(err) {}
				try {SCGradeHigh = school.getElementsByTagName("HighGrade")[0].childNodes[0].nodeValue;} catch(err) {}

				try {SCPhone = school.getElementsByTagName("SCPhone")[0].childNodes[0].nodeValue;} catch(err) {}
				
				SCPhone=FormatPhoneNumer(SCPhone)
				
				try {SCAffiliation = school.getElementsByTagName("Affiliations")[0].childNodes[0].nodeValue;} catch(err) {}
				try {SCMascot = school.getElementsByTagName("Mascot")[0].childNodes[0].nodeValue;} catch(err) {}
				try {SCColors = school.getElementsByTagName("PrimaryColor")[0].childNodes[0].nodeValue + " " + school.getElementsByTagName("SecondaryColor")[0].childNodes[0].nodeValue;} catch(err) {}
				
				SCGrade = SCGradeLow + " - " + SCGradeHigh;
				//SCDistance = dist(searchAddressPoint.lat(), searchAddressPoint.lng(), lat, lng);
				try {SCDistance = school.getElementsByTagName("Distance2Cntr")[0].childNodes[0].nodeValue;} catch(err) {}
				
				//addToSchoolArray(schoolArray, lat, lng, distance, schoolName, address, cityStateZip, category, students, grade, phone, affiliation, mascot, colors) {
				//addToSchoolArray(privateSchools, lat, lng, SCDistance, SCName, SCAddress, SCCityStateZip, "Private", SCStudents, SCGrade, SCPhone, SCAffiliation, SCMascot, SCColors);
				 addToSchoolArray(privateSchools, lat, lng, SCDistance, SCName, SCAddress, SCCityStateZip, "Private", SCStudents, SCGrade, SCPhone, SCAffiliation, SCMascot, SCColors);
				
			}
			else {
				try {SCName = school.getElementsByTagName("SCName")[0].childNodes[0].nodeValue;} catch(err) {}
				try {SCAddress = school.getElementsByTagName("SCAddress")[0].childNodes[0].nodeValue;} catch(err) {}
				try {SCCityStateZip = school.getElementsByTagName("SCCityStateZip")[0].childNodes[0].nodeValue;} catch(err) {}
				try {SCStudents = school.getElementsByTagName("SCTstud")[0].childNodes[0].nodeValue;} catch(err) {}
				try {SCGradeLow = school.getElementsByTagName("SCGradeLow")[0].childNodes[0].nodeValue;} catch(err) {}
				try {SCGradeHigh = school.getElementsByTagName("SCGradeHigh")[0].childNodes[0].nodeValue;} catch(err) {}
				
				try {SCPhone = school.getElementsByTagName("SCPhone")[0].childNodes[0].nodeValue;} catch(err) {}
				
				SCPhone=FormatPhoneNumer(SCPhone)
				
				SCAffiliation = "Public";
				try {SCMascot = school.getElementsByTagName("SCMascot")[0].childNodes[0].nodeValue;} catch(err) {}
				try {SCColors = school.getElementsByTagName("SCColorP")[0].childNodes[0].nodeValue + " " + school.getElementsByTagName("SCColorS")[0].childNodes[0].nodeValue;} catch(err) {}

				SCGrade = SCGradeLow + " - " + SCGradeHigh;
				//SCDistance = dist(searchAddressPoint.lat(), searchAddressPoint.lng(), lat, lng);
				try {SCDistance = school.getElementsByTagName("Distance2Cntr")[0].childNodes[0].nodeValue;} catch(err) {}
				
				addToSchoolArray(publicSchools, lat, lng, SCDistance, SCName, SCAddress, SCCityStateZip, "Public", SCStudents, SCGrade, SCPhone, SCAffiliation, SCMascot, SCColors);
			}
		}
		
		//Record the number of schools found. This will be used to regulate paging
		
		/* if (scType == "private")
		    { NumberOfPrivateSchools_Return = schools.length; }
		   else
		    { NumberOfPublicSchools_Return = schools.length; } 
	    */	    


		
	}
	
   
		 if (scType == "private")
		    { NumberOfPrivateSchools_Return = schools.length; }
		 else
		    { NumberOfPublicSchools_Return = schools.length; } 


	currentPageNumber = 1;
	
	if (scType == "private")
	{
		if (currentSchoolType == "private") {
			switchToPrivateSchools();
		}
		else {
			switchToPublicSchools();
	        ShowSchoolDistrictSummary();
		}
	}
	else
	{ 
	     //This situation arise when we have a AgencyID but not schools returned from db. So we need to 
	     //Get List if agencies.
	    // ((NumberOfPublicSchools_Return == 0)  &&  (gAgencyId != null)&& (bGetSchoolByAgencyIdSecondAttemp==false))
	    //   {
	    //   SubmitDataRequest("GetAgencyByDistance", true);
	   //    }
	   // else if (NumberOfPublicSchools_Return == 0) 
	   //    {
	       // if (bGetSchoolByAgencyIdSecondAttemp==true)
	      //  {//make no more calls
	      //  }
	      //  else { 
				///if (NumberOfPublicSchools_Return ==0 )
			 	//   {SubmitDataRequest("GetPublicSchoolsT10", true)}; 
		//	}
	    //   } 
	      
	      SubmitDataRequest("GetPrivateSchoolsT10", true);
	}

	objXML = null;
}

function ProcessChurchData(xmlData) {
	houseOfWorship = [];
	houseOfWorshipMaster = [];
	
	var objXML = GXml.parse(xmlData);
	//var churches = objXML.getElementsByTagName("HOW");
	var churches = objXML.getElementsByTagName("Table1");
	
	for (var i=0; i < churches.length; i++)
	{
		var church = churches[i];
		if (church.childNodes.length > 0) {
			var strLat = church.getElementsByTagName("Lat")[0].childNodes[0].nodeValue;
			var strLng = church.getElementsByTagName("Lon")[0].childNodes[0].nodeValue;
			var lat = strLat.substring(0, strLat.length - 6) + "." + strLat.substring(strLat.length - 6);
			var lng = strLng.substring(0, strLng.length - 6) + "." + strLng.substring(strLng.length - 6);
			
			// Name & Address
			var ChurchName = "";
			var Address = "";
			var City = "";
			var State = "";
			var ZipCode = "";
			var Phone = "";
			var ChurchType = "";
			var Denomination = "";
			var chDistance = 0;
			
			try {ChurchName = church.getElementsByTagName("ChurchName")[0].childNodes[0].nodeValue;} catch(err) {}
			try {Address = church.getElementsByTagName("Address")[0].childNodes[0].nodeValue;} catch(err) {}
			try {City = church.getElementsByTagName("City")[0].childNodes[0].nodeValue;} catch(err) {}
			try {State = church.getElementsByTagName("State")[0].childNodes[0].nodeValue;} catch(err) {}
			try {ZipCode = church.getElementsByTagName("ZipCode")[0].childNodes[0].nodeValue;} catch(err) {}
			try {Phone = church.getElementsByTagName("Phone")[0].childNodes[0].nodeValue;} catch(err) {}
			
			Phone = FormatPhoneNumer(Phone);
			
			try {ChurchType = church.getElementsByTagName("ChurchType")[0].childNodes[0].nodeValue;} catch(err) {}
			Denomination = ChurchType;
			//chDistance = dist(searchAddressPoint.lat(), searchAddressPoint.lng(), lat, lng);
			try {chDistance = church.getElementsByTagName("Distance2Cntr")[0].childNodes[0].nodeValue;} catch(err) {}
			
			ChurchType = ChurchType.toLowerCase();
			
			if (ChurchType.indexOf("mosque") != -1) {
				ChurchType = "mosque";
			} else if (ChurchType.indexOf("synagog") != -1) {
				ChurchType = "synagog";
			} else if (ChurchType.indexOf("temple") != -1) {
				ChurchType = "temple";
			} else {
				ChurchType = "church";
			}
			
			addToChurchArray(lat, lng, chDistance, ChurchName, Address, City, State, ZipCode, Phone, ChurchType, Denomination);
		}
		
		houseOfWorshipMaster = houseOfWorship
	}
	
	/*
	// Get Top 50 Houses of Worship
	sortChurchArray(1, "asc");
	var tempArray = [];
	for (var i = 0; i < 50; i++) {
		if (i < houseOfWorship.length) {
			tempArray[i] = houseOfWorship[i];
		}
		else {
			break;
		}
	}
	houseOfWorship = tempArray;
	*/
	
	currentPageNumber = 1;
	//switchToChurches();
	currentTab = 0;
	switchTabs(4);
	objXML = null;
}

function ProcessHomeSaleData(xmlData) {
	homeSales = [];
	var objXML = GXml.parse(xmlData);
	//var hSales = objXML.getElementsByTagName("HomeSales");
	var hSales = objXML.getElementsByTagName("Table1");
	
	for (var i=0; i < hSales.length; i++)
	{
		var hSale = hSales[i];
		if (hSale.childNodes.length > 0) {
			var strLat = hSale.getElementsByTagName("Lat")[0].childNodes[0].nodeValue;
			var strLng = hSale.getElementsByTagName("Lon")[0].childNodes[0].nodeValue;
			var lat = strLat.substring(0, strLat.length - 6) + "." + strLat.substring(strLat.length - 6);
			var lon = strLng.substring(0, strLng.length - 6) + "." + strLng.substring(strLng.length - 6);
			
			var propertyID = "";
			var preDirection = "";
			var addressRange = "";
			var streetName = "";
			var suffix = "";
			var suiteRange = "";
			var addressType = "";
			var cityName = "";
			var stateAbbrv = "";
			var zipCode = "";
			var saleDate = "";
			var salePrice = 0;
			var pubDate = "";
			var quadrant = "";
			var newConstructionFlag = "";
			var bedRooms = 0;
			var bathRooms = 0;
			var bathRoomsHalf = 0;
			var livingSqFeet = 0;
			var landSqFeet = 0;
			var yearBuilt = 0;
			var mortAmt = "";
			var residentialFlag = "";
			var dist = 0;
			
			try {propertyID = hSale.getElementsByTagName("PropertyID")[0].childNodes[0].nodeValue;} catch(err) {}
			try {preDirection = hSale.getElementsByTagName("PreDirection")[0].childNodes[0].nodeValue;} catch(err) {}
			try {addressRange = hSale.getElementsByTagName("AddressRange")[0].childNodes[0].nodeValue;} catch(err) {}
			try {streetName = hSale.getElementsByTagName("StreetName")[0].childNodes[0].nodeValue;} catch(err) {}
			try {suffix = hSale.getElementsByTagName("Suffix")[0].childNodes[0].nodeValue;} catch(err) {}
			//try {suiteRange = hSale.getElementsByTagName("SuiteRange")[0].childNodes[0].nodeValue;} catch(err) {}
			try {addressType = hSale.getElementsByTagName("AddressType")[0].childNodes[0].nodeValue;} catch(err) {}
			//try {cityName = hSale.getElementsByTagName("CityName")[0].childNodes[0].nodeValue;} catch(err) {}
			try {cityName = hSale.getElementsByTagName("CityAbbreviation")[0].childNodes[0].nodeValue;} catch(err) {}
			
			//try {stateAbbrv = hSale.getElementsByTagName("StateAbbrv")[0].childNodes[0].nodeValue;} catch(err) {}
			try {stateAbbrv = hSale.getElementsByTagName("State")[0].childNodes[0].nodeValue;} catch(err) {}
			//try {zipCode = hSale.getElementsByTagName("ZipCode")[0].childNodes[0].nodeValue;} catch(err) {}
			try {zipCode = hSale.getElementsByTagName("Zip")[0].childNodes[0].nodeValue;} catch(err) {}
			
			try {saleDate = hSale.getElementsByTagName("SaleDate")[0].childNodes[0].nodeValue;
				 saleDate=FormatDate(saleDate);	
				} 
			catch(err) {}
			
			try {salePrice = hSale.getElementsByTagName("SalePrice")[0].childNodes[0].nodeValue;} catch(err) {}
			try {pubDate = hSale.getElementsByTagName("PubDate")[0].childNodes[0].nodeValue;} catch(err) {}
			try {quadrant = hSale.getElementsByTagName("Quadrant")[0].childNodes[0].nodeValue;} catch(err) {}
			try {newConstructionFlag = hSale.getElementsByTagName("NewConstructionFlag")[0].childNodes[0].nodeValue;} catch(err) {}
			try {bedRooms = hSale.getElementsByTagName("BedRooms")[0].childNodes[0].nodeValue;} catch(err) {}
			try {bathRooms = hSale.getElementsByTagName("BathRooms")[0].childNodes[0].nodeValue;} catch(err) {}
			try {bathRoomsHalf = hSale.getElementsByTagName("BathRoomsHalf")[0].childNodes[0].nodeValue;} catch(err) {}
			try {livingSqFeet = hSale.getElementsByTagName("LivingSqFeet")[0].childNodes[0].nodeValue;} catch(err) {}
			try {landSqFeet = hSale.getElementsByTagName("LandSqFeet")[0].childNodes[0].nodeValue;} catch(err) {}
			try {yearBuilt = hSale.getElementsByTagName("YearBuilt")[0].childNodes[0].nodeValue;
				 yearBuilt= CheckNumberValue(yearBuilt);
				 } 
			catch(err) {}
			try {mortAmt = hSale.getElementsByTagName("MortAmt")[0].childNodes[0].nodeValue;} catch(err) {}
			try {residentialFlag = hSale.getElementsByTagName("ResidentialFlag")[0].childNodes[0].nodeValue;} catch(err) {}
			//try {dist = hSale.getElementsByTagName("Dist")[0].childNodes[0].nodeValue;} catch(err) {}
			try {dist =  hSale.getElementsByTagName("Proximity")[0].childNodes[0].nodeValue;
					var myval  =  (new Number(dist).round(2)) ;
					dist=myval
				} catch(err) {}
			
			
			addToHomeSalesArray(propertyID, lat, lon, preDirection, addressRange, streetName, suffix, suiteRange, addressType, cityName, stateAbbrv, zipCode, saleDate, salePrice, pubDate, quadrant, newConstructionFlag, bedRooms, bathRooms, bathRoomsHalf, livingSqFeet, landSqFeet, yearBuilt, mortAmt, residentialFlag, dist);
		}
	}
	
	currentPageNumber = 1;
	currentTab = 0;
	switchTabs(5);
	objXML = null;
}

// ************************************************************************************************************************************** //
// ************************************************************************************************************************************** //
// ************************************************************************************************************************************** //
var privateSchools = new Array();
var publicSchools = new Array();
var houseOfWorship = new Array();
var houseOfWorshipMaster = new Array();
//xxx
var homeSales = new Array();
var endxData = new Array();
var districtInfo = new Array();
var climate;
var SchoolArray;
var currentPageNumber;
//var currentTab = 2;
var currentGroup = "F";
var currentLevel = 0;
var currentTitle = "Income";
var currentSchoolType = "public";
var membershipInfo = null;
var membershipSchoolAgencyInfo =new Array();
var schoolSortIndex = 0;
var howSortIndex = 0;
//xxx
var homeSaleSortIndex = 0;

function membershipRecord(stateFips, countyFips, subCountyFips, placeFips, zipCode,  blockGroup, tractFips)
{
	this.StateFips     = stateFips;
	this.CountyFips    = countyFips;
	this.SubCountyFips = subCountyFips;
	this.PlaceFips     = placeFips;
	this.ZipCode       = zipCode;
	//this.AgencyID      = agencyID;
	this.BlockGroup    = blockGroup;
	this.TractFips     = tractFips;
}

function membershipRecordSchoolAgency(SchoolAgencyId,SchoolDistrictName,SchoolType,NumberOfSchools)
{
	this.SchoolAgencyId	= SchoolAgencyId;
	this.SchoolDistrictName = SchoolDistrictName;
	this.SchoolType	= SchoolType;
	this.NumberOfSchools = NumberOfSchools;
 }
 

function endxRecord(group, level, nodeName, nodeValue) {
	this.Group = group;
	this.Level = level;
	this.NodeName = nodeName;
	this.NodeValue = nodeValue;
}

function addToEndxData(group, level, nodeName, nodeValue) {
	endxData[endxData.length++] = new endxRecord(group, level, nodeName, nodeValue);
}

function climateRecord(level, month, low, medium, high, precipitation) {
	this.Level = level;
	this.Month = month;
	this.Low = low;
	this.Medium = medium;
	this.High = high;
	this.Precipitation = precipitation;
}

function addToClimateData(level, month, low, medium, high, precipitation) {
	climate[climate.length++] = new climateRecord(level, month, low, medium, high, precipitation);
}

function schoolRecord(lat, lng, distance, schoolName, address, cityStateZip, category, students, grade, phone, affiliation, mascot, colors) {
	this.Lat = lat;
	this.Lng = lng;
	this.Distance = distance;
	this.SchoolName = schoolName;
	this.Address = address;
	this.CityStateZip = cityStateZip;
	this.Category = category;
	this.Students = parseInt(parseFloat(students));
	this.Grade = grade;
	this.Phone = phone;
	this.Affiliation = affiliation;
	this.Mascot = mascot;
	this.Colors = colors;
}

function addToSchoolArray(schoolArray, lat, lng, distance, schoolName, address, cityStateZip, category, students, grade, phone, affiliation, mascot, colors) {
	schoolArray[schoolArray.length++] = new schoolRecord(lat, lng, distance, schoolName, address, cityStateZip, category, students, grade, phone, affiliation, mascot, colors);
}

function churchRecord(lat, lng, distance, churchName, address, city, state, zipCode, phone, churchType, denomination) {
	this.Lat = lat;
	this.Lng = lng;
	this.Distance = distance;
	this.ChurchName = churchName;
	this.Address = address;
	this.City = city;
	this.State = state;
	this.ZipCode = zipCode;
	this.Phone = phone;
	this.ChurchType = churchType;
	this.Denomination = denomination;
}

function addToChurchArray(lat, lng, distance, churchName, address, city, state, zipCode, phone, churchType, denomination) {
	houseOfWorship[houseOfWorship.length++] = new churchRecord(lat, lng, distance, churchName, address, city, state, zipCode, phone, churchType, denomination);
}

//xxx
function homeSaleRecord(propertyID, lat, lon, preDirection, addressRange, streetName, suffix, suiteRange, addressType, cityName, stateAbbrv, zipCode, saleDate, salePrice, pubDate, quadrant, newConstructionFlag, bedRooms, bathRooms, bathRoomsHalf, livingSqFeet, landSqFeet, yearBuilt, mortAmt, residentialFlag, dist) {
	this.PropertyID = propertyID;
	this.Lat = lat;
	this.Lon = lon;
	this.PreDirection = preDirection;
	this.AddressRange = addressRange;
	this.StreetName = streetName;
	this.Suffix = suffix;
	this.SuiteRange = suiteRange;
	this.AddressType = addressType;
	this.CityName = cityName;
	this.StateAbbrv = stateAbbrv;
	this.ZipCode = zipCode;
	this.SaleDate = saleDate;
	this.SalePrice = salePrice;
	this.PubDate = pubDate;
	this.Quadrant = quadrant;
	this.NewConstructionFlag = newConstructionFlag;
	this.BedRooms = bedRooms;
	this.BathRooms = bathRooms;
	this.BathRoomsHalf = bathRoomsHalf;
	this.LivingSqFeet = livingSqFeet;
	this.LandSqFeet = landSqFeet;
	this.YearBuilt = yearBuilt;
	this.MortAmt = mortAmt;
	this.ResidentialFlag = residentialFlag;
	this.Dist = dist;
}

function addToHomeSalesArray(propertyID, lat, lon, preDirection, addressRange, streetName, suffix, suiteRange, addressType, cityName, stateAbbrv, zipCode, saleDate, salePrice, pubDate, quadrant, newConstructionFlag, bedRooms, bathRooms, bathRoomsHalf, livingSqFeet, landSqFeet, yearBuilt, mortAmt, residentialFlag, dist) {
	homeSales[homeSales.length++] = new homeSaleRecord(propertyID, lat, lon, preDirection, addressRange, streetName, suffix, suiteRange, addressType, cityName, stateAbbrv, zipCode, saleDate, salePrice, pubDate, quadrant, newConstructionFlag, bedRooms, bathRooms, bathRoomsHalf, livingSqFeet, landSqFeet, yearBuilt, mortAmt, residentialFlag, dist);
}

// Sort Schools
function sortByDistanceASC(a, b) {
	var x = parseFloat(a.Distance);
	var y = parseFloat(b.Distance);
	return ((x < y) ? -1 : ((x > y) ? 1 : 0));
}

function sortByDistanceDESC(a, b) {
	var x = parseFloat(a.Distance);
	var y = parseFloat(b.Distance);
	return ((x < y) ? 1 : ((x > y) ? -1 : 0));
}

function sortBySchoolNameASC(a, b) {
	var x = a.SchoolName.toLowerCase();
	var y = b.SchoolName.toLowerCase();
	return ((x < y) ? -1 : ((x > y) ? 1 : 0));
}

function sortBySchoolNameDESC(a, b) {
	var x = a.SchoolName.toLowerCase();
	var y = b.SchoolName.toLowerCase();
	return ((x < y) ? 1 : ((x > y) ? -1 : 0));
}

function sortByStudentsASC(a, b) {
	var x = a.Students;
	var y = b.Students;
	return ((x < y) ? -1 : ((x > y) ? 1 : 0));
}

function sortByStudentsDESC(a, b) {
	var x = a.Students;
	var y = b.Students;
	return ((x < y) ? 1 : ((x > y) ? -1 : 0));
}

function sortByGradeASC(a, b) {
	var x = a.Grade.toLowerCase();
	var y = b.Grade.toLowerCase();
	return ((x < y) ? -1 : ((x > y) ? 1 : 0));
}

function sortByGradeDESC(a, b) {
	var x = a.Grade.toLowerCase();
	var y = b.Grade.toLowerCase();
	return ((x < y) ? 1 : ((x > y) ? -1 : 0));
}

function sortSchoolArray(schoolArray, column, sortDir) {
	if (schoolArray.length > 0) {
		if (sortDir == "asc") {
			switch (column) {
				case 1 :
					schoolArray.sort(sortByDistanceASC);
					break;
				case 2 :
					schoolArray.sort(sortBySchoolNameASC);
					break;
				case 3 :
					schoolArray.sort(sortByStudentsASC);
					break;
				case 4 :
					schoolArray.sort(sortByGradeASC);
					break;
			}
		}
		else {
			switch (column) {
				case 1 :
					schoolArray.sort(sortByDistanceDESC);
					break;
				case 2 :
					schoolArray.sort(sortBySchoolNameDESC);
					break;
				case 3 :
					schoolArray.sort(sortByStudentsDESC);
					break;
				case 4 :
					schoolArray.sort(sortByGradeDESC);
					break;
			}
		}
	}
	
	var DDLSortBy = document.getElementById("ddlSchoolSortBy");
	schoolSortIndex = DDLSortBy.selectedIndex;

	currentPageNumber = 1;
	buildSchoolsGrid(schoolArray, currentPageNumber);
}
// ********************************************************

// Sort Churches
function sortChurchByDistanceASC(a, b) {
	var x = parseFloat(a.Distance);
	var y = parseFloat(b.Distance);
	return ((x < y) ? -1 : ((x > y) ? 1 : 0));
}

function sortChurchByDistanceDESC(a, b) {
	var x = parseFloat(a.Distance);
	var y = parseFloat(b.Distance);
	return ((x < y) ? 1 : ((x > y) ? -1 : 0));
}

function sortByChurchNameASC(a, b) {
	var x = a.ChurchName.toLowerCase();
	var y = b.ChurchName.toLowerCase();
	return ((x < y) ? -1 : ((x > y) ? 1 : 0));
}

function sortByChurchNameDESC(a, b) {
	var x = a.ChurchName.toLowerCase();
	var y = b.ChurchName.toLowerCase();
	return ((x < y) ? 1 : ((x > y) ? -1 : 0));
}

function sortByDenominationASC(a, b) {
	var x = a.Denomination.toLowerCase();
	var y = b.Denomination.toLowerCase();
	return ((x < y) ? -1 : ((x > y) ? 1 : 0));
}

function sortByDenominationDESC(a, b) {
	var x = a.Denomination.toLowerCase();
	var y = b.Denomination.toLowerCase();
	return ((x < y) ? 1 : ((x > y) ? -1 : 0));
}

function sortChurchArray(column, sortDir) {
	if (houseOfWorship.length > 0) {
		if (sortDir == "asc") {
			switch (column) {
				case 1 :
					houseOfWorship.sort(sortChurchByDistanceASC);
					break;
				case 2 :
					houseOfWorship.sort(sortByChurchNameASC);
					break;
				case 3 :
					houseOfWorship.sort(sortByDenominationASC);
					break;
			}
		}
		else {
			switch (column) {
				case 1 :
					houseOfWorship.sort(sortChurchByDistanceDESC);
					break;
				case 2 :
					houseOfWorship.sort(sortByChurchNameDESC);
					break;
				case 3 :
					houseOfWorship.sort(sortByDenominationDESC);
					break;
			}
		}
	}
	
	var DDLSortBy = document.getElementById("ddlChurchSortBy");
	howSortIndex = DDLSortBy.selectedIndex;
	
	currentPageNumber = 1;
	buildChurchGrid(currentPageNumber);
}

//-------------------------------------------------------------

//xxx
// Sort Home Sales
function sortHSByDistanceASC(a, b) {
	var x = parseFloat(a.Dist);
	var y = parseFloat(b.Dist);
	return ((x < y) ? -1 : ((x > y) ? 1 : 0));
}

function sortHSByDistanceDESC(a, b) {
	var x = parseFloat(a.Dist);
	var y = parseFloat(b.Dist);
	return ((x < y) ? 1 : ((x > y) ? -1 : 0));
}

function sortHSByDateASC(a, b) {
	
	var x = a.SaleDate.toLowerCase();
	var y = b.SaleDate.toLowerCase();
	
	var dt1=x.substr(6,4)+x.substr(0,2)+x.substr(3,2)
	var dt2=y.substr(6,4)+y.substr(0,2)+y.substr(3,2)
	
	
	return ((dt1 < dt2) ? -1 : ((dt1 > dt2) ? 1 : 0));
	
	/*var x = a.SaleDate.toLowerCase();
	var y = b.SaleDate.toLowerCase();
	return ((x < y) ? -1 : ((x > y) ? 1 : 0));
	*/
	
	 
}

function sortHSByDateDESC(a, b) {
	
	var x = a.SaleDate.toLowerCase();
	var y = b.SaleDate.toLowerCase();
	
	var dt1=x.substr(6,4)+x.substr(0,2)+x.substr(3,2)
	var dt2=y.substr(6,4)+y.substr(0,2)+y.substr(3,2)
	
	return ((dt1 < dt2) ? 1 : ((dt1 > dt2) ? -1 : 0));
	
	/*var x = a.SaleDate.toLowerCase();
	var y = b.SaleDate.toLowerCase();
	reurn ((x < y) ? 1 : ((x > y) ? -1 : 0));
	*/
		
}

function sortHSByPriceASC(a, b) {
	var x = parseInt(a.SalePrice);
	var y = parseInt(b.SalePrice);
	return ((x < y) ? -1 : ((x > y) ? 1 : 0));
}

function sortHSByPriceDESC(a, b) {
	var x = parseInt(a.SalePrice);
	var y = parseInt(b.SalePrice);
	return ((x < y) ? 1 : ((x > y) ? -1 : 0));
}

function sortHSByBedsASC(a, b) {
	var x = a.BedRooms;
	var y = b.BedRooms;
	return ((x < y) ? -1 : ((x > y) ? 1 : 0));
}

function sortHSByBedsDESC(a, b) {
	var x = a.BedRooms;
	var y = b.BedRooms;
	return ((x < y) ? 1 : ((x > y) ? -1 : 0));
}

function sortHSByBathsASC(a, b) {
	var x = a.BathRooms;
	var y = b.BathRooms;
	return ((x < y) ? -1 : ((x > y) ? 1 : 0));
}

function sortHSByBathsDESC(a, b) {
	var x = a.BathRooms;
	var y = b.BathRooms;
	return ((x < y) ? 1 : ((x > y) ? -1 : 0));
}

function sortHSByYearASC(a, b) {
	var x = a.YearBuilt;
	var y = b.YearBuilt;
	return ((x < y) ? -1 : ((x > y) ? 1 : 0));
}

function sortHSByYearDESC(a, b) {
	var x = a.YearBuilt;
	var y = b.YearBuilt;
	return ((x < y) ? 1 : ((x > y) ? -1 : 0));
}

function sortHomeSaleArray(column, sortDir) {
	if (homeSales.length > 0) {
		if (sortDir == "asc") {
			switch (column) {
				case 1 :
					homeSales.sort(sortHSByDistanceASC);
					break;
				case 2 :
					homeSales.sort(sortHSByDateASC);
					break;
				case 3 :
					homeSales.sort(sortHSByPriceASC);
					break;
				case 4 :
					homeSales.sort(sortHSByBedsASC);
					break;
				case 5 :
					homeSales.sort(sortHSByBathsASC);
					break;
				case 6 :
					homeSales.sort(sortHSByYearASC);
					break;
			}
		}
		else {
			switch (column) {
				case 1 :
					homeSales.sort(sortHSByDistanceDESC);
					break;
				case 2 :
					homeSales.sort(sortHSByDateDESC);
					break;
				case 3 :
					homeSales.sort(sortHSByPriceDESC);
					break;
				case 4 :
					homeSales.sort(sortHSByBedsDESC);
					break;
				case 5 :
					homeSales.sort(sortHSByBathsDESC);
					break;
				case 6 :
					homeSales.sort(sortHSByYearDESC);
					break;
			}
		}
	}
	
	var DDLSortBy = document.getElementById("ddlHomeSaleSortBy");
	homeSaleSortIndex = DDLSortBy.selectedIndex;
	
	currentPageNumber = 1;
	buildHomeSalesGrid(currentPageNumber);
}

// ************************************************************************************************************************************ //
// ************************************************************************************************************************************ //
// ************************************************************************************************************************************ //
function buildEndxGrid(group, level, title) {
	ClearAll();
	AddAddressMarkerToMap();
	
	var aIndex;
	var aFormat;
	switch (group)
	{
		case "A":
			aIndex = A_index;
			aFormat = A_Format;
			break;
			
		case "B":
			aIndex = B_index;
			aFormat = B_Format;
			break;
			
		case "C":
			aIndex = C_index;
			aFormat = C_Format;
			break;
			
		case "D":
			aIndex = D_index;
			aFormat = D_Format;
			break;
			
		case "E":
			aIndex = E_index;
			aFormat = E_Format;
			break;
			
		case "F":
			aIndex = F_index;
			aFormat = F_Format;
			break;
			
		case "G":
			aIndex = G_index;
			aFormat = G_Format;
			break;
			
		case "H":
			aIndex = H_index;
			aFormat = H_Format;
			break;
			
		case "I":
			aIndex = I_index;
			aFormat = I_Format;
			break;
			
		case "J":
			aIndex = J_index;
			aFormat = J_Format;
			break;
			
		case "K":
			aIndex = K_index;
			aFormat = K_Format;
			break;
			
		case "M":
			aIndex = M_index;
			aFormat = M_Format;
			break;
	}
	
	var resultsList = document.getElementById(listDivID);
	resultsList.style.width = "554px";
	resultsList.style.height = "394px";
	//resultsList.style.overflowY = "hidden";
	
	
	var grid = "<table width='554px' class='mainTable' cellspacing='0' cellpadding='0'>";
	grid += "<tr class='mainTableHeader' valign='top'>";
	grid += "<td class='mainTableHeaderCell' width='8px'></td>";
	grid += "<td class='mainTableHeaderCell' colspan='2' align='center'>" + title + "</td>";
	grid += "<td class='mainTableHeaderCell' width='8px'></td>";
	grid += "</tr>";
	
	for (var i = 0; i < aIndex.length; i++)
	{
		grid += "<tr height='39px' valign='middle' " + ((i % 2) != 0 ? "class='GridRowAlt'" : "") + ">";
		grid += "<td width='8px'></td>";
		grid += "<td class='GridCellNoLink' align='left'><b>" + ndxlblfmt(level + aFormat[i]) + "</b></td>";
		grid += "<td class='GridCellNoLink' align='left'>" + ndxvalfmt(level + aFormat[i], enData[level][aIndex[i]]) + "</td>";
		grid += "<td width='8px'></td>";
		grid += "</tr>";
	}

	grid += "</table>";

	resultsList.innerHTML = grid;
}

function buildClimateGrid(level) {
	ClearAll();
	AddAddressMarkerToMap();
	
	var resultsList = document.getElementById(listDivID);
	resultsList.style.width = "560px";
	resultsList.style.height = "556px";
	//resultsList.style.overflowY = "scroll";
	resultsList.style.overflowY = "hidden";
	
	var grid = "<table width='560px' class='mainTable' cellspacing='0' cellpadding='0'>";
	grid += "<tr class='mainTableHeader' valign='top'>";
	grid += "<td class='mainTableHeaderCell' width='8px'></td>";
	grid += "<td width='19%' class='mainTableHeaderCell' align='left'>Month</td>";
	grid += "<td width='19%' class='mainTableHeaderCell' align='left'>Low</td>";
	grid += "<td width='19%' class='mainTableHeaderCell' align='left'>Medium</td>";
	grid += "<td width='19%' class='mainTableHeaderCell' align='left'>High</td>";
	grid += "<td width='19%' class='mainTableHeaderCell' align='left'>Precipitation</td>";
	grid += "<td class='mainTableHeaderCell' width='8px'></td>";
	grid += "</tr>";
	
	for (var m = 1; m < 13; m++)
	{
		grid += "<tr height='39px' valign='middle' " + ((m % 2) != 0 ? "class='GridRowAlt'" : "") + ">";
		grid += "<td width='8px'></td>";
		grid += "<td width='19%' class='GridCellNoLink' align='left'><b>" + monthName(m) + "</b></td>";
		grid += "<td width='19%' class='GridCellNoLink' align='left'>" + ndxvalfmt("M11Minimum_" + m, enData[level][m * 4 + 45]) + "</td>";
		grid += "<td width='19%' class='GridCellNoLink' align='left'>" + ndxvalfmt("M11Mean_" + m, enData[level][m * 4 + 47]) + "</td>";
		grid += "<td width='19%' class='GridCellNoLink' align='left'>" + ndxvalfmt("M11Maximum_" + m, enData[level][m * 4 + 46]) + "</td>";
		grid += "<td width='19%' class='GridCellNoLink' align='left'>" + ndxvalfmt("Md1Precip_" + m, enData[level][m * 4 + 48]) + "&nbsp;(inches)</td>";
		grid += "<td width='8px'></td>";
		grid += "</tr>";
	}

	grid += "</table>";

	resultsList.innerHTML = grid;
}

function monthName(monthNumber) {
	var monthNames = new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");
	return monthNames[monthNumber - 1];
}

function hideschool(v)
{
	document.getElementById('divMoreInfo').style.display='none';
	ShowInfoWindow();
}

function showschool(v)
{
/*
	this.Lat = lat;
	this.Lng = lng;
	this.Distance = distance;
	this.SchoolName = schoolName;
	this.Address = address;
	this.CityStateZip = cityStateZip;
	this.Category = category;
	this.Students = parseInt(parseFloat(students));
	this.Grade = grade;
	this.Phone = phone;
	this.Affiliation = affiliation;
	this.Mascot = mascot;
	this.Colors = colors;
*/
            var s = new String()
            var ln= new String()
            ln="<tr><td class='SchoolInfoDetail'>{0}</td><td class='SchoolInfoDetailValue'>{1}</td></tr>"
	        var markerContent = "<table width=400 border=0 >";
	        
	        markerContent += "<tr><td colspan='2'><table width=400 border='0'><tr><td align='center' class='SchoolInfoName'>" + SchoolArray[v].SchoolName + "</td><td align=right witdh='14px'><a onclick='hideschool();' style='cursor:hand;color:RED' ><img src='images/x_box.gif' alt=''>&nbsp;</a></td></tr></table></td></tr>"
	        //markerContent += s.format(ln,"Name",SchoolArray[v].SchoolName)
	        markerContent += s.format(ln,"Address",SchoolArray[v].Address)
	        markerContent += s.format(ln,"&nbsp;",SchoolArray[v].CityStateZip)
	        markerContent += s.format(ln,"Phone",SchoolArray[v].Phone)
	        markerContent += s.format(ln,"Distance",SchoolArray[v].Distance)
	        markerContent += s.format(ln,"Grade Range",SchoolArray[v].Grade)
	        //markerContent += s.format(ln,"School Type",SchoolArray[v].Address)
	        markerContent += s.format(ln,"Affiliation",SchoolArray[v].Affiliation)
	        //markerContent += s.format(ln,"Gender",SchoolArray[v].Address)
	        //markerContent += s.format(ln,"Enrollment",SchoolArray[v].Address)
	        markerContent += s.format(ln,"# of Students",SchoolArray[v].Students)
	        //markerContent += s.format(ln,"Student / Teacher Ratio",SchoolArray[v].Address)
	        markerContent += s.format(ln,"Mascot",SchoolArray[v].Mascot)
	        markerContent += s.format(ln,"School Colors",SchoolArray[v].Colors)
			markerContent += "</table>";
			
			HideInfoWindow();
			var moreinfowin =document.getElementById("divMoreInfo");
			moreinfowin.innerHTML=markerContent;
			moreinfowin.style.display="block"
			moreinfowin.style.top=document.getElementById("mapouttercell").offsetTop+110 + 'px';			 
			
			if (navigator.userAgent.indexOf("Firefox")>0)
				{moreinfowin.style.left=  (document.getElementById("mapouttercell").offsetLeft + (moreinfowin.offsetWidth/2)) + 'px'; }
			else 
				{moreinfowin.style.left=  (document.getElementById("mapouttercell").offsetLeft - (moreinfowin.offsetWidth/2)) + 'px';}

			//obj.offsetParent
			/*
			markerContent += "<b>" + "</b><br>";
			markerContent += SchoolArray[v].Address + ".&nbsp;" + SchoolArray[v].CityStateZip + "<br>";
			markerContent += "Category: " + SchoolArray[v].Category + "<br>";
			markerContent += "Number of Students: " + SchoolArray[v].Students + "<br>";
			markerContent += "Grade: " + SchoolArray[v].Grade + "<br>";
			*/
}

function buildSchoolsGrid(schoolArray, pageNumber) {
	currentPageNumber = pageNumber;
	SchoolArray = schoolArray;
	ClearAll();
	AddAddressMarkerToMap();
	
	var resultsList = document.getElementById(listDivID);
	resultsList.style.width = "571px";
	resultsList.style.height = "506px";
	resultsList.style.overflowY = "auto";
	var itemsPerPage = 10;
	var firstItem = (pageNumber - 1) * itemsPerPage;
	var lastItem = pageNumber * itemsPerPage;
	var lastPageItem = 5 * itemsPerPage;
	
	var grid = "<table width='571px' class='mainTable' cellspacing='0' cellpadding='0'>";
	grid += "<tr class='mainTableHeader' valign='top'>";
	grid += "<td class='mainTableHeaderCell' width='8px'></td>";
	grid += "<td class='mainTableHeaderCell' align='center'></td>";
	grid += "<td class='mainTableHeaderCell' align='left'>Name</td>";
	grid += "<td class='mainTableHeaderCell' align='right' title='Distance from subject property'>Distance</td>";
	grid += "<td class='mainTableHeaderCell' align='right'>Students</td>";
	grid += "<td class='mainTableHeaderCell' align='right'>Grade</td>";
	grid += "<td class='mainTableHeaderCell' width='8px'></td>";
	grid += "</tr>";

	var itemsDisplayed = 0;
	for (var i = 0; i < lastPageItem; i++) {
		if (i < schoolArray.length) {
			// Add Marker to Map
			var markerContent = "<div class='markerContent'>";
			if (CustomerToken != "3000")	// If not Remax then add header to InfoWindow content
			{
				markerContent += "<b>" + schoolArray[i].SchoolName + "</b><br>";
			}
			markerContent += schoolArray[i].Address + ".&nbsp;" + schoolArray[i].CityStateZip + "<br>";
			markerContent += "Category: " + schoolArray[i].Category + "<br>";
			markerContent += "Number of Students: " + CheckNumberValue(schoolArray[i].Students) + "<br>";
			markerContent += "Grade: " + schoolArray[i].Grade + "<br>";
			
			markerContent += "<a class='markerLink' onclick=showschool("+i+");>more info</a><br>";
			markerContent += "</div>";
			
			var newPoint = new GLatLng(schoolArray[i].Lat, schoolArray[i].Lng);
			var newMarker = CreateSchoolMarker(newPoint, markerContent, (i + 1), schoolArray[i].Category, schoolArray[i].SchoolName);
			objMap.addOverlay(newMarker);
			
			if (i >= firstItem && i < lastItem && i < schoolArray.length) {
				itemsDisplayed++;

				// Add Row to Grid
				var SchoolIconImg = (schoolArray[i].Category == "Public" ? ("PUG" + (i + 1) + ".png") : ("PRV" + (i + 1) + ".png"));
				var onClickEvent = "onclick='javascript:OpenSchoolMarkerInfoWindow(" + (i + 1) + ");'";
				
				grid += "<tr height='39px' valign='middle' " + ((i % 2) != 0 ? "class='GridRowAlt'" : "") + ">";
				grid += "<td width='8px'></td>";
				grid += "<td class='GridCell' " + onClickEvent + " align='left'><img class='Cursor' src='templates/" + templateID + "/images/mapIcons/" + SchoolIconImg + "' alt='' ></td>";
				grid += "<td class='GridCell' " + onClickEvent + " align='left'><b>" + schoolArray[i].SchoolName.toUpperCase() + "</b></td>";
				grid += "<td class='GridCell' " + onClickEvent + " align='right'>" + schoolArray[i].Distance + "&nbsp;(mi)</td>";
				grid += "<td class='GridCell' " + onClickEvent + " align='right'>" + CheckNumberValue(schoolArray[i].Students) + "</td>";
				grid += "<td class='GridCell' " + onClickEvent + " align='right'>" + schoolArray[i].Grade + "</td>";
				grid += "<td width='8px'></td>";
				grid += "</tr>";
			}
		}
		else {
			if (i >= firstItem && i < lastItem) {
				grid += "<tr height='39px' valign='middle' " + ((i % 2) != 0 ? "class='GridRowAlt'" : "") + ">";
				grid += "<td width='8px'></td>";
				grid += "<td class='GridCell' colspan='5'>&nbsp;</td>";
				grid += "<td width='8px'></td>";
				grid += "</tr>";
			}
		}
	}
	
	// Pagin Row
	var DivSortBy = document.getElementById("divDDLSchoolSortBy");
	var DivSortDir = document.getElementById("divSortDir");
	
	grid += "<tr height='34px' valign='middle'>";
	grid += "<td class='PagingCell' colspan='7' align='center'>";
	grid += "<table border='0' cellspacing='0' cellpadding='0'>";
	grid += "<tr>";
	grid += "<td width='203'>";
	grid += "<div align='right'>";
	grid += "Listings <strong>" + (firstItem + 1) + " - " + lastItem + "</strong> of <strong>" + schoolArray.length + "</strong>, Sorted By:</div>";
	grid += "</td>";
	grid += "<td width='4'></td>";
	grid += "<td>" + DivSortBy.innerHTML + "</td>";
	grid += "<td width='4'></td>";
	grid += "<td>" + DivSortDir.innerHTML + "</td>";
	grid += "<td width='4'></td>";
	grid += "<td width='26'>";
	grid += "<div align='center'>";
	grid += "<img src='templates/" + templateID + "/images/go.gif' alt='' class='Cursor' height='19' width='23' border='0' onclick='CallSortSchool();' /></div>";
	grid += "</td>";
	grid += "<td width='4'></td>";
	grid += "<td width='18'><img src='templates/" + templateID + "/images/left_arrow.gif' alt='' class='Cursor' height='16' width='16' border='0' onclick='DecreasePageNumber();' /></td>";
	grid += "<td width='4'></td>";
	grid += "<td width='91'><img src='templates/" + templateID + "/images/" + pageNumber + "_active.gif' alt='' usemap='#Paging' height='19' width='89' border='0' /></td>";
	grid += "<td width='4'></td>";
	grid += "<td width='18'><img src='templates/" + templateID + "/images/right_arrow.gif' alt='' class='Cursor' height='16' width='16' border='0' onclick='IncreasePageNumber();' /></td>";
	grid += "</tr>";
	grid += "</table>";
	grid += "</td>";
	grid += "</tr>";
	grid += "</table>";
	
	resultsList.innerHTML = grid;
	
	var t = setTimeout("document.getElementById('ddlSchoolSortBy').selectedIndex = schoolSortIndex;", 100);
}

function buildChurchGrid(pageNumber) {
	currentPageNumber = pageNumber;
	ClearAll();
	AddAddressMarkerToMap();
	
	var resultsList = document.getElementById(listDivID);
	resultsList.style.width = "571px";
	resultsList.style.height = "506px";
	resultsList.style.overflowY = "auto";
	var itemsPerPage = 10;
	var firstItem = (pageNumber - 1) * itemsPerPage;
	var lastItem = pageNumber * itemsPerPage;
	var lastPageItem = 5 * itemsPerPage;
	
	var grid = "<table width='' class='mainTable' cellspacing='0' cellpadding='0'>";
	grid += "<tr class='mainTableHeader' valign='top'>";
	grid += "<td class='mainTableHeaderCell' width='8px'></td>";
	grid += "<td class='mainTableHeaderCell' align='center'></td>";
	grid += "<td class='mainTableHeaderCell' align='left'>Name</td>";
	grid += "<td class='mainTableHeaderCell' align='left'>Denomination</td>";
	grid += "<td class='mainTableHeaderCell' align='left' title='Distance from subject property'>Distance</td>";
	grid += "<td class='mainTableHeaderCell' width='8px'></td>";
	grid += "</tr>";

	var itemsDisplayed = 0;
	for (var i = 0; i < lastPageItem; i++) {
		if (i < houseOfWorship.length) {
			// Add Marker to Map
			var markerContent = "<div class='markerContent'>";
			if (CustomerToken != "3000")	// If not Remax then add header to InfoWindow content
			{
				markerContent += "<b>" + houseOfWorship[i].ChurchName + "</b><br>"
			}
			markerContent += houseOfWorship[i].Address + "<br>" + houseOfWorship[i].City + ",&nbsp;";
			markerContent += houseOfWorship[i].State + "&nbsp;" + houseOfWorship[i].ZipCode + "<br>" + houseOfWorship[i].Phone;
			markerContent += "</div>";
			
			var newPoint = new GLatLng(houseOfWorship[i].Lat, houseOfWorship[i].Lng);
			var newMarker = CreateChurchMarker(newPoint, markerContent, (i + 1), houseOfWorship[i].ChurchType, houseOfWorship[i].ChurchName);
			objMap.addOverlay(newMarker);
			
			if (i >= firstItem && i < lastItem && i < houseOfWorship.length) {
				itemsDisplayed++;
				
				// Icon
				var ChurchIconImg;
				switch (houseOfWorship[i].ChurchType) {
					case "church":
						ChurchIconImg = "CG" + (i + 1) + ".png";
						break;
					case "temple":
						ChurchIconImg = "TB" + (i + 1) + ".png";
						break;
					case "synagog":
						ChurchIconImg = "SR" + (i + 1) + ".png";
						break;
					case "mosque":
						ChurchIconImg = "MY" + (i + 1) + ".png";
						break;
				}
				
				var onClickEvent = "onclick='javascript:OpenChurchMarkerInfoWindow(" + (i + 1) + ");'";
				
				// Add Row to Grid
				grid += "<tr height='39px' valign='middle' " + ((i % 2) != 0 ? "class='GridRowAlt'" : "") + ">";
				grid += "<td width='8px'></td>";
				grid += "<td class='GridCell' " + onClickEvent + " align='left'><img class='Cursor' src='templates/" + templateID + "/images/mapIcons/" + ChurchIconImg + "' alt='' ></td>";
				grid += "<td class='GridCell' " + onClickEvent + " align='left'><b>" + houseOfWorship[i].ChurchName.toUpperCase() + "</b></td>";
				grid += "<td class='GridCell' " + onClickEvent + " align='left'>" + houseOfWorship[i].Denomination + "</td>";
				grid += "<td class='GridCell' " + onClickEvent + " align='left'>" + houseOfWorship[i].Distance + "&nbsp;(mi)</td>";
				grid += "<td width='8px'></td>";
				grid += "</tr>";
			}
		}
		else {
			if (i >= firstItem && i < lastItem) {
				grid += "<tr height='39px' valign='middle' " + ((i % 2) != 0 ? "class='GridRowAlt'" : "") + ">";
				grid += "<td width='8px'></td>";
				grid += "<td class='GridCell' colspan='4'>&nbsp;</td>";
				grid += "<td width='8px'></td>";
				grid += "</tr>";
			}
		}
	}
	
	// Paging Row
	var DivSortBy = document.getElementById("divDDLChurchSortBy");
	var DivSortDir = document.getElementById("divSortDir");
	
	grid += "<tr height='34px' valign='middle'>";
	grid += "<td class='PagingCell' colspan='6' align='center'>";
	grid += "<table border='0' cellspacing='0' cellpadding='0'>";
	grid += "<tr>";
	grid += "<td width='203'>";
	grid += "<div align='right'>";
	grid += "Listings <strong>" + (firstItem + 1) + " - " + lastItem + "</strong> of <strong>" + houseOfWorship.length + "</strong>, Sorted By:</div>";
	grid += "</td>";
	grid += "<td width='4'></td>";
	grid += "<td>" + DivSortBy.innerHTML + "</td>";
	grid += "<td width='4'></td>";
	grid += "<td>" + DivSortDir.innerHTML + "</td>";
	grid += "<td width='4'></td>";
	grid += "<td width='26'>";
	grid += "<div align='center'>";
	grid += "<img src='templates/" + templateID + "/images/go.gif' alt='' class='Cursor' height='19' width='23' border='0' onclick='CallSortChurch();' /></div>";
	grid += "</td>";
	grid += "<td width='4'></td>";
	grid += "<td width='18'><img src='templates/" + templateID + "/images/left_arrow.gif' alt='' class='Cursor' height='16' width='16' border='0' onclick='DecreaseChurchPageNumber();' /></td>";
	grid += "<td width='4'></td>";
	grid += "<td width='91'><img src='templates/" + templateID + "/images/" + pageNumber + "_active.gif' alt='' usemap='#ChurchPaging' height='19' width='89' border='0' /></td>";
	grid += "<td width='4'></td>";
	grid += "<td width='18'><img src='templates/" + templateID + "/images/right_arrow.gif' alt='' class='Cursor' height='16' width='16' border='0' onclick='IncreaseChurchPageNumber();' /></td>";
	grid += "</tr>";
	grid += "</table>";
	grid += "</td>";
	grid += "</tr>";
	grid += "</table>";
	
	resultsList.innerHTML = grid;
	
	var t = setTimeout("document.getElementById('ddlChurchSortBy').selectedIndex = howSortIndex;", 100);
}

//xxx
function buildHomeSalesGrid(pageNumber) {
	currentPageNumber = pageNumber;
	ClearAll();
	AddAddressMarkerToMap();
	
	var resultsList = document.getElementById(listDivID);
	resultsList.style.width = "770px";
	resultsList.style.height = "506px";
	resultsList.style.overflowY = "auto";
	var itemsPerPage = 10;
	var firstItem = (pageNumber - 1) * itemsPerPage;
	var lastItem = pageNumber * itemsPerPage;
	var lastPageItem = 5 * itemsPerPage;
	
	var grid = "<table width='770px' class='mainTable' cellspacing='0' cellpadding='0'>";
	grid += "<tr class='mainTableHeader' valign='top'>";
	grid += "<td class='mainTableHeaderCell' width='8px'></td>";
	grid += "<td class='mainTableHeaderCell' align='center'></td>";
	grid += "<td class='mainTableHeaderCell' align='left'>Address</td>";
	grid += "<td class='mainTableHeaderCell' align='left'>Sale Date</td>";
	grid += "<td class='mainTableHeaderCell' align='right'>Price</td>";
	grid += "<td class='mainTableHeaderCell' align='center'>Bedrooms</td>";
	grid += "<td class='mainTableHeaderCell' align='center'>Bathrooms</td>";
	grid += "<td class='mainTableHeaderCell' align='left'>Year Built</td>";
	grid += "<td class='mainTableHeaderCell' align='left' title='Distance from subject property'>Distance</td>";
	grid += "<td class='mainTableHeaderCell' width='8px'></td>";
	grid += "</tr>";

	var itemsDisplayed = 0;
	for (var i = 0; i < lastPageItem; i++) {
		if (i < homeSales.length) {
			//var hsAddress = homeSales[i].AddressRange + " " + homeSales[i].PreDirection + " " + homeSales[i].StreetName + " " + homeSales[i].Suffix + ". " + homeSales[i].CityName + ", " + homeSales[i].StateAbbrv + " " + homeSales[i].ZipCode;
			var hsAddress = homeSales[i].AddressRange.rtrim() + " " + homeSales[i].PreDirection.rtrim() + " " + homeSales[i].StreetName.rtrim() + " " + homeSales[i].Suffix.rtrim();
			var hsCityStateZip = homeSales[i].CityName.rtrim() + ", " + homeSales[i].StateAbbrv.rtrim() + " " + homeSales[i].ZipCode.rtrim();
			
			// Add Marker to Map
			var markerContent = "<div class='markerContent'><table border='0' cellspacing='0' cellpadding='0'>";
			markerContent += "<tr><td style='white-space: nowrap;'>" + hsAddress + "</td></tr>";
			markerContent += "<tr><td style='white-space: nowrap;'>" + hsCityStateZip + "</td></tr>";
			markerContent += "<tr><td style='white-space: nowrap;'>Sale Date: " + homeSales[i].SaleDate.substring(0, 10) + " Sale Price: " + formatHomeSalesCurrency(homeSales[i].SalePrice) + "</td></tr>";
			//markerContent += "<tr><td style='white-space: nowrap;'>Sale Date: " + homeSales[i].SaleDate.substring(0, 10) + " Sale Price: " + formatCurrency(homeSales[i].SalePrice* 1000) + "</td></tr>";
			markerContent += "<tr><td style='white-space: nowrap;'>Beds: " + homeSales[i].BedRooms + " Baths: " + homeSales[i].BathRooms + " Year Built: " + CheckNumberValue(homeSales[i].YearBuilt) + "</td></tr>";
			markerContent += "</table></div>";
			
			var newPoint = new GLatLng(homeSales[i].Lat, homeSales[i].Lon);
			var newMarker = CreateHomeSaleMarker(newPoint, markerContent, (i + 1), "");
			objMap.addOverlay(newMarker);
			
			if (i >= firstItem && i < lastItem && i < homeSales.length) {
				itemsDisplayed++;
				
				var HomeSaleIconImg = "TB" + (i + 1) + ".png";
				var onClickEvent = "onclick='javascript:OpenHomeSaleMarkerInfoWindow(" + (i + 1) + ");'";
				
				// Add Row to Grid
				grid += "<tr height='39px' valign='middle' " + ((i % 2) != 0 ? "class='GridRowAlt'" : "") + ">";
				grid += "<td width='8px'></td>";
				grid += "<td class='GridCell' " + onClickEvent + " align='left'><img class='Cursor' src='images/mapIcons/" + HomeSaleIconImg + "' alt='' ></td>";
				grid += "<td class='GridCell' " + onClickEvent + " align='left'>" + hsAddress + "</td>";
				grid += "<td class='GridCell' " + onClickEvent + " align='left'>" + homeSales[i].SaleDate.substring(0, 10) + "</td>";
				//grid += "<td class='GridCell' " + onClickEvent + " align='right'>" + formatCurrency(homeSales[i].SalePrice * 1000) + "</td>";
				grid += "<td class='GridCell' " + onClickEvent + " align='right'>" + formatHomeSalesCurrency(homeSales[i].SalePrice ) + "</td>";
				grid += "<td class='GridCell' " + onClickEvent + " align='center'>" + homeSales[i].BedRooms + "</td>";
				grid += "<td class='GridCell' " + onClickEvent + " align='center'>" + homeSales[i].BathRooms + "</td>";
				grid += "<td class='GridCell' " + onClickEvent + " align='left'>" + (homeSales[i].YearBuilt > 0 ? homeSales[i].YearBuilt : "") + "</td>";
				grid += "<td class='GridCell' " + onClickEvent + " align='left'>" + homeSales[i].Dist + "&nbsp;(mi)</td>";
				grid += "<td width='8px'></td>";
				grid += "</tr>";
			}
		}
		else {
			if (i >= firstItem && i < lastItem) {
				grid += "<tr height='39px' valign='middle' " + ((i % 2) != 0 ? "class='GridRowAlt'" : "") + ">";
				grid += "<td width='8px'></td>";
				grid += "<td class='GridCell' colspan='8'>&nbsp;</td>";
				grid += "<td width='8px'></td>";
				grid += "</tr>";
			}
		}
	}
	
	// Paging Row
	var DivSortBy = document.getElementById("divDDLHomeSaleSortBy");
	var DivSortDir = document.getElementById("divSortDir");
	
	grid += "<tr height='34px' valign='middle'>";
	grid += "<td class='PagingCell' colspan='10' align='center'>";
	grid += "<table cellspacing='0' cellpadding='0'>";
	grid += "<tr>";
	grid += "<td width='243'>";
	grid += "<div align='right'>";
	grid += "Listings <strong>" + (firstItem + 1) + " - " + lastItem + "</strong> of <strong>" + homeSales.length + "</strong>, Sorted By:</div>";
	grid += "</td>";
	grid += "<td width='4'></td>";
	grid += "<td>" + DivSortBy.innerHTML + "</td>";
	grid += "<td width='4'></td>";
	grid += "<td>" + DivSortDir.innerHTML + "</td>";
	grid += "<td width='4'></td>";
	grid += "<td width='26'>";
	grid += "<div align='center'>";
	grid += "<img src='templates/" + templateID + "/images/go.gif' alt='' class='Cursor' height='19' width='23' border='0' onclick='CallSortHomeSale();' /></div>";
	grid += "</td>";
	grid += "<td width='4'></td>";
	grid += "<td width='18'><img src='templates/" + templateID + "/images/left_arrow.gif' alt=''class='Cursor'  height='16' width='16' border='0' onclick='DecreaseHomeSalePageNumber();' /></td>";
	grid += "<td width='4'></td>";
	grid += "<td width='91'><img src='templates/" + templateID + "/images/" + pageNumber + "_active.gif' alt='' usemap='#HomeSalePaging' height='19' width='89' border='0' /></td>";
	grid += "<td width='4'></td>";
	grid += "<td width='18'><img src='templates/" + templateID + "/images/right_arrow.gif' alt='' class='Cursor'  height='16' width='16' border='0' onclick='IncreaseHomeSalePageNumber();' /></td>";
	grid += "</tr>";
	grid += "</table>";
	grid += "</td>";
	grid += "</tr>";
	grid += "</table>";
	
	resultsList.innerHTML = grid;
	
	var t = setTimeout("document.getElementById('ddlHomeSaleSortBy').selectedIndex = homeSaleSortIndex;", 100);
}

function CallSortSchool() {
	var DDLSortBy = document.getElementById("ddlSchoolSortBy");
	var DDLSortDir = document.getElementById("ddlSortDir");
	
	sortSchoolArray(SchoolArray, parseInt(DDLSortBy.options[DDLSortBy.selectedIndex].value), DDLSortDir.options[DDLSortDir.selectedIndex].value);
	 
}

function CallSortChurch() {
	var DDLSortBy = document.getElementById("ddlChurchSortBy");
	var DDLSortDir = document.getElementById("ddlSortDir");
	
	//sortChurchArray(parseInt(DDLSortBy.options(DDLSortBy.selectedIndex).value), DDLSortDir.options(DDLSortDir.selectedIndex).value);
	sortChurchArray(parseInt(DDLSortBy.options[DDLSortBy.selectedIndex].value), DDLSortDir.options[DDLSortDir.selectedIndex].value);
}

//xxx
function CallSortHomeSale() {
	var DDLSortBy = document.getElementById("ddlHomeSaleSortBy");
	var DDLSortDir = document.getElementById("ddlSortDir");
	
	sortHomeSaleArray(parseInt(DDLSortBy.options[DDLSortBy.selectedIndex].value), DDLSortDir.options[DDLSortDir.selectedIndex].value);
}

// School Page Numbering
function IncreasePageNumber() {
	if (currentPageNumber < 5) {
		currentPageNumber++;
		buildSchoolsGrid(SchoolArray, currentPageNumber);
	}
}

function DecreasePageNumber() {
	if (currentPageNumber > 1) {
		currentPageNumber--;
		buildSchoolsGrid(SchoolArray, currentPageNumber);
	}
}

// Church Page Numbering
function IncreaseChurchPageNumber() {
	if (currentPageNumber < 5) {
		currentPageNumber++;
		buildChurchGrid(currentPageNumber);
	}
}

function DecreaseChurchPageNumber() {
	if (currentPageNumber > 1) {
		currentPageNumber--;
		buildChurchGrid(currentPageNumber);
	}
}

//xxx
// Home Sales Page Numbering
function IncreaseHomeSalePageNumber() {
	if (currentPageNumber < 5) {
		currentPageNumber++;
		buildHomeSalesGrid(currentPageNumber);
	}
}

function DecreaseHomeSalePageNumber() {
	if (currentPageNumber > 1) {
		currentPageNumber--;
		buildHomeSalesGrid(currentPageNumber);
	}
}

function dist(lat1, lon1, lat2, lon2) 
{
	var LatDist = gRad((lat2-lat1));
	var LonDist = gRad((lon2-lon1));
	lat1 = gRad(lat1);
	lat2 = gRad(lat2);
	var gc1 = Math.sin(LatDist/2) * Math.sin(LatDist/2) + Math.cos(lat1) * Math.cos(lat2) * Math.sin(LonDist/2) * Math.sin(LonDist/2);
	var gc2 = 2 * Math.atan2(Math.sqrt(gc1), Math.sqrt(1-gc1));
	var rtn = 3963.19* gc2;
	return Math.round(rtn * 100) / 100;
}

function gRad(v) {  
	return v * Math.PI / 180;
}

function switchToPrivateSchools() {
	currentSchoolType = "private";
	var divPrivateON = document.getElementById("divPrivScON");
	var divPrivateOFF = document.getElementById("divPrivScOFF");
	var divPublicON = document.getElementById("divPubScON");
	var divPublicOFF = document.getElementById("divPubScOFF");
	
	divPrivateON.style.display = "block";
	divPrivateOFF.style.display = "none";
	divPublicON.style.display = "none";
	divPublicOFF.style.display = "block";
	document.getElementById("divSchools").style.display = "block";
	
	sortSchoolArray(privateSchools, 1, "asc");
	buildSchoolsGrid(privateSchools, currentPageNumber);
}

function switchToPublicSchools() {
	currentSchoolType = "public";
	var divPrivateON = document.getElementById("divPrivScON");
	var divPrivateOFF = document.getElementById("divPrivScOFF");
	var divPublicON = document.getElementById("divPubScON");
	var divPublicOFF = document.getElementById("divPubScOFF");
	
	divPrivateON.style.display = "none";
	divPrivateOFF.style.display = "block";
	divPublicON.style.display = "block";
	divPublicOFF.style.display = "none";
	document.getElementById("divSchools").style.display = "block";
	
	sortSchoolArray(publicSchools, 1, "asc");
	buildSchoolsGrid(publicSchools, currentPageNumber);
}

function switchToChurches() {
	document.getElementById("divChurches").style.display = "block";
	sortChurchArray(1, "asc");
	buildChurchGrid(currentPageNumber);
}

//xxx
function switchToHomeSales() {
	//document.getElementById("divChurches").style.display = "block";
	sortHomeSaleArray(1, "asc");
	buildHomeSalesGrid(currentPageNumber);
} 

function ShowSchoolDistricSelector(xmlData){
//tdSchoolDistricSeletor

	document.getElementById(listDivID).innerHTML = "";
	var ddlAgencies = document.getElementById("ddlAgencies");
	for (i = ddlAgencies.length; i > 0; i--) {
		ddlAgencies.remove(i - 1);
	}

	var objXML = GXml.parse(xmlData);
	//var agencies = objXML.getElementsByTagName("MultiAgency");
	var agencies = objXML.getElementsByTagName("Table1");
	  
	for (var i = 0; i < agencies.length; i++)
	{
		var agency = agencies[i];
		if (agency.childNodes.length > 0) {
			var Distance2Cntr = agency.getElementsByTagName("Distance2Cntr")[0].childNodes[0].nodeValue;
			var agencyID = agency.getElementsByTagName("AgencyID")[0].childNodes[0].nodeValue;
			var agencyName = agency.getElementsByTagName("AgencyName")[0].childNodes[0].nodeValue;
			var frmtDistacne2Cntr = " (" + Distance2Cntr + " miles)";
			var objOption = document.createElement("option");
						 
			objOption = new Option(agencyName + " " + frmtDistacne2Cntr ,agencyID )
			ddlAgencies.options.add(objOption); 
			
			/*var objOption = document.createElement("option");
			objOption.text = agencyName + " (" + Distance2Cntr + " miles)";
			objOption.value = agencyID;
					
			var objOption = document.createElement("option");
			objOption.text = agencyName + " (" + Distance2Cntr + " miles)";
			objOption.value = agencyID;						

			ddlAgencies.add(objOption);
			*/
			
		}
	}

	var divMultipleAgencies = document.getElementById("divMultipleAgencies");
	//divMultipleAgencies.style.left = ((getWindowWidth() - 380) / 2) + "px";
	divMultipleAgencies.style.display = "block";
	//document.getElementById("btnSearch").disabled = true;
   
	SubmitDataRequest("GetDataByMembershipsTemplate", true);


}


function ShowSchoolDistrictSummary() {
	var oTD = document.getElementById("tdSchoolDistrictSummary");
	var content = "";
	content += "<b>" + enData[4][200] + "</b><br>";
	content += enData[4][201] + "<br>";
	content += enData[4][202] + "<br>";
	content += FormatPhoneNumer(enData[4][203]) + "<br>";
	
	//if (content == "") {
	if (!enData[4][200]) {
		content = "<br>School district information is unavailable.<br><br>";
	}
	else {
		content = "<br>" + content + "<br><img src='templates/" + templateID + "/images/view_detail_button.gif' alt='' style='cursor: hand' onclick='javascript:ShowSchoolDistrictDetails();'><br><br>";
	}
	
	oTD.innerHTML = content;
	
	var oDivSummary = document.getElementById("divDistrictSummary");
	var oDivDetails = document.getElementById("divDistrictDetails");
	oDivDetails.style.display = "none";
	oDivSummary.style.display = "block";
}

function ShowSchoolDistrictDetails() {
	var oDivSummary = document.getElementById("divDistrictSummary");
	var oDivDetails = document.getElementById("divDistrictDetails");
	oDivDetails.style.display = "block";
	oDivSummary.style.display = "none";
}

 

function switchTabs(tabNumber) {
	HideInfoWindow();
	/*
		1:	Demographics
		2:	Schools
		3:	Climate
		4:	Houses of Worship
		5:	Home Sales
	*/
	
	/* If multiple school districs are found for a particular location and no choice has been picked yet
		then prevent the user from being able to switch to Demographics, Schools or Climate
		otherwise 'NaN' and 'Undefined' will be displayed instead of data */
	// check if there is a membership object loaded
	if (membershipInfo != null) {
    	 //if (!membershipInfo.AgencyID && (tabNumber == 1 || tabNumber == 2 || tabNumber == 3)) {
    	 if (!gAgencyId && (tabNumber == 1 || tabNumber == 2 || tabNumber == 3)) {
	       	return;
	     }
	 }
	
	if ((window.document.getElementById('txtAddress').value != "") || (searchLat != 0 && searchLon != 0))
	{
		var oImage = document.getElementById("imgTab");
		var oDivDemographics = document.getElementById("divDemographics");
		var oDivSchools = document.getElementById("divSchools");
		var oDivChurches = document.getElementById("divChurches");
		var oDivClimate = document.getElementById("divClimate");
		//var oSpanMainTitle = document.getElementById("spanMainTitle");
		
		if (tabNumber != currentTab) {
			switch (tabNumber) {
				case 1:
					// Demographics
					//oSpanMainTitle.innerText = "Demographic Information";
					/*
					if (privateSchools.length == 0 || publicSchools.length == 0) {
						PrepareDataRequest("PrivateSchool");
					}
					*/
					
					oImage.src = "templates/" + templateID + "/images/demographics_active.gif";
					oDivDemographics.style.display = "block";
					oDivSchools.style.display = "none";
					oDivChurches.style.display = "none";
					oDivClimate.style.display = "none";
					
					buildEndxGrid(currentGroup, currentLevel, currentTitle);
					break;
					
				case 2:
					// Schools
					//oSpanMainTitle.innerText = "School Information";
					ShowSchoolDistrictSummary();
					if (privateSchools.length == 0 || publicSchools.length == 0) {
						
						if (bGetSchoolByAgencyIdSecondAttemp== true)
						{
						  SubmitDataRequest("GetPublicSchoolsT10", true);
						}
						else
						{ 
						
						//if (membershipInfo.AgencyID != null)
						if (gAgencyId != null)
							{
							SubmitDataRequest("GetPublicSchoolsByAgencyId", true);	
							SubmitDataRequest("GetDataByMembershipsTemplate", true);	
	    					}
	
	   				    if (currentSchoolType == "private") 
	   						{
							switchToPrivateSchools();
					     	}
						else 
							{
								switchToPublicSchools();
							}						
							
						}
						
					}
					else {
						if (currentSchoolType == "private") 
						 {
							switchToPrivateSchools();
						 }
						else {
							switchToPublicSchools();
						}
					}
					 
					oImage.src = "templates/" + templateID + "/images/school_active.gif";
					oDivDemographics.style.display = "none";
					oDivSchools.style.display = "block";
					oDivChurches.style.display = "none";
					oDivClimate.style.display = "none";
					break;
					
				case 3:
					// Climate
					//oSpanMainTitle.innerText = "Climate Information";
					oImage.src = "templates/" + templateID + "/images/climate_active.gif";
					oDivDemographics.style.display = "none";
					oDivSchools.style.display = "none";
					oDivChurches.style.display = "none";
					oDivClimate.style.display = "block";
					
					buildClimateGrid(0);
					break;
					
				case 4:
					// Houses of Worship
					//oSpanMainTitle.innerText = "Houses of Worship Information";
					if (houseOfWorship.length == 0) {
						SubmitDataRequest("GetChurchesT10", true);
					}
					else {
						oImage.src = "templates/" + templateID + "/images/houses_of_worship_active.gif";
						oDivDemographics.style.display = "none";
						oDivSchools.style.display = "none";
						oDivChurches.style.display = "block";
						oDivClimate.style.display = "none";
						
						switchToChurches();
					}
					break;
					
				case 5:
					// Home Sales
					
					if ((homeSales.length == 0) && (homesalesCall > 0 )) {
					    //This was added because if the origianl search resulted in zero results don't loop
						oImage.src = "templates/" + templateID + "/images/home_sales_active.gif";
						oDivDemographics.style.display = "none";
						oDivSchools.style.display = "none";
						oDivChurches.style.display = "none";
						oDivClimate.style.display = "none";
						
						switchToHomeSales();
						alert('No Home Sales data available for the past 6-months');
						
					}	
					else if (homeSales.length == 0) {
						SubmitDataRequest("GetHomeSales", true);
					}
					else if  (homeSales.length > 0) {
						oImage.src = "templates/" + templateID + "/images/home_sales_active.gif";
						oDivDemographics.style.display = "none";
						oDivSchools.style.display = "none";
						oDivChurches.style.display = "none";
						oDivClimate.style.display = "none";
						
						switchToHomeSales();
					
					}
				 
					break;
					
			}
			
			currentTab = tabNumber;
		}
	}
	else
	{
		alert("Please enter a target address!");
	}
}

function changeGroup(newGroup) {
	var divIncomeON = document.getElementById("divIncomeON");
	var divAgeON = document.getElementById("divAgeON");
	var divEmploymentON = document.getElementById("divEmploymentON");
	var divHouseholdON = document.getElementById("divHouseholdON");
	var divHousingON = document.getElementById("divHousingON");
	var divPopulationON = document.getElementById("divPopulationON");

	var divIncomeOFF = document.getElementById("divIncomeOFF");
	var divAgeOFF = document.getElementById("divAgeOFF");
	var divEmploymentOFF = document.getElementById("divEmploymentOFF");
	var divHouseholdOFF = document.getElementById("divHouseholdOFF");
	var divHousingOFF = document.getElementById("divHousingOFF");
	var divPopulationOFF = document.getElementById("divPopulationOFF");

	divIncomeOFF.style.display = "block";
	divAgeOFF.style.display = "block";
	divEmploymentOFF.style.display = "block";
	divHouseholdOFF.style.display = "block";
	divHousingOFF.style.display = "block";
	divPopulationOFF.style.display = "block";

	divIncomeON.style.display = "none";
	divAgeON.style.display = "none";
	divEmploymentON.style.display = "none";
	divHouseholdON.style.display = "none";
	divHousingON.style.display = "none";
	divPopulationON.style.display = "none";
	
	switch (newGroup) {
		case "F":
			divIncomeON.style.display = "block";
			divIncomeOFF.style.display = "none";
			currentTitle = "Income";
			break;
		case "G":
			divAgeON.style.display = "block";
			divAgeOFF.style.display = "none";
			currentTitle = "Age";
			break;
		case "H":
			divEmploymentON.style.display = "block";
			divEmploymentOFF.style.display = "none";
			currentTitle = "Employment";
			break;
		case "I":
			divHouseholdON.style.display = "block";
			divHouseholdOFF.style.display = "none";
			currentTitle = "Household";
			break;
		case "J":
			divHousingON.style.display = "block";
			divHousingOFF.style.display = "none";
			currentTitle = "Housing";
			break;
		case "K":
			divPopulationON.style.display = "block";
			divPopulationOFF.style.display = "none";
			currentTitle = "Population";
			break;
	}
	
	currentGroup = newGroup;
	buildEndxGrid(currentGroup, currentLevel, currentTitle);
}

function changeLevel(newLevel) {
	var divBlockON = document.getElementById("divBlockON");
	var divCityON = document.getElementById("divCityON");
	var divCountyON = document.getElementById("divCountyON");

	var divBlockOFF = document.getElementById("divBlockOFF");
	var divCityOFF = document.getElementById("divCityOFF");
	var divCountyOFF = document.getElementById("divCountyOFF");

	divBlockOFF.style.display = "block";
	divCityOFF.style.display = "block";
	divCountyOFF.style.display = "block";

	divBlockON.style.display = "none";
	divCityON.style.display = "none";
	divCountyON.style.display = "none";
	
	switch (newLevel) {
		case 0:
			divBlockON.style.display = "block";
			divBlockOFF.style.display = "none";
			break;
		case 1:
			divCityON.style.display = "block";
			divCityOFF.style.display = "none";
			break;
		case 2:
			divCountyON.style.display = "block";
			divCountyOFF.style.display = "none";
			break;
	}
	
	currentLevel = newLevel;
	buildEndxGrid(currentGroup, currentLevel, currentTitle);
}

function getWindowWidth() {
	var myWidth = 0;
	if( typeof( window.innerWidth ) == 'number' ) {
		myWidth = window.innerWidth;
	} else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
		myWidth = document.documentElement.clientWidth;
	} else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
		myWidth = document.body.clientWidth;
	}
	return myWidth;
}

// **** Custom Info Window ****
/*
function DisplayInfoWindow(marker, html) {
	var div = document.getElementById("divInfoWindow");
	div.innerHTML = html;

	var objMarker = marker;
	var objIcon = objMarker.getIcon();
	var objPoint = objMap.fromLatLngToDivPixel(objMarker.getPoint());
	var objCenterPixel = objMap.fromLatLngToDivPixel(objMap.getCenter());
	var intX = objPoint.x - objIcon.iconAnchor.x + objIcon.infoWindowAnchor.x;
	var intY = objPoint.y - objIcon.iconAnchor.y + objIcon.infoWindowAnchor.y;
	var intWidth = objMap.getSize().width;
	var intHeight = objMap.getSize().height;
	var intOffsetX = Math.ceil(intWidth/2) - objCenterPixel.x - 36;
	var intOffsetY = Math.ceil(intHeight/2) - objCenterPixel.y;
	var elMapHolder = document.getElementById(mapDivID);
	var point = FindPos(elMapHolder, 'PageWrapper');
	var mapX, mapY;
	mapX = point[0];
	mapY = point[1];
	div.style.display = 'inline';
	
	if (CustomerToken != "3000")
	{
		div.style.left = mapX + intX + intOffsetX + 12;
	}
	else
	{
		div.style.left = mapX + intX + intOffsetX + 4;	// If Remax adjust position accordingly
	}
	
	div.style.top = mapY + intY + intOffsetY - div.offsetHeight;
	div.style.visibility = 'visible';
}
*/
function DisplayInfoWindow(marker, html) {
	var oDiv = document.getElementById("divInfoWindow");
	oDiv.innerHTML = html;

	var objMarker = marker;
	var objIcon = objMarker.getIcon();
	var objPoint = objMap.fromLatLngToDivPixel(objMarker.getPoint());
	var objCenterPixel = objMap.fromLatLngToDivPixel(objMap.getCenter());
	var intX = objPoint.x - objIcon.iconAnchor.x + objIcon.infoWindowAnchor.x;
	var intY = objPoint.y - objIcon.iconAnchor.y + objIcon.infoWindowAnchor.y;
	var intWidth = objMap.getSize().width;
	var intHeight = objMap.getSize().height;
	var intOffsetX = Math.ceil(intWidth/2) - objCenterPixel.x - 36;
	var intOffsetY = Math.ceil(intHeight/2) - objCenterPixel.y;
	var elMapHolder = document.getElementById(mapDivID);
	var point = FindPos(elMapHolder, 'PageWrapper');
	var mapX, mapY;
	mapX = point[0];
	mapY = point[1];
	
	
	oDiv.style.display = 'block';
	
	if (CustomerToken != "3000")
	{
		oDiv.style.left = mapX + intX + intOffsetX + 12 + 'px';
	}
	else
	{
		oDiv.style.left = mapX + intX + intOffsetX + 4 + 'px';	// If Remax adjust position accordingly
	}
	
	oDiv.style.top = mapY + intY + intOffsetY - oDiv.offsetHeight + 'px'; ;
	oDiv.style.visibility = 'visible';
}

function HideInfoWindow() {
	var div = document.getElementById("divInfoWindow");
	div.style.visibility = 'hidden';
	div.style.display = 'none';
}

function ShowInfoWindow() {
	var div = document.getElementById("divInfoWindow");
	div.style.visibility = 'visible';
	div.style.display = 'inline';
}

function GetInfoWindowHTML(wContent, wName) {
	var sHTML = "";
	
	if (CustomerToken != "3000")	// If not Remax then use default InfoWindow
	{
		sHTML += '<table border="0" cellpadding="0" cellspacing="0" style="font-size: 10pt; font-family: arial">';
		sHTML += '	<tr>';
		sHTML += '		<td><img src="templates/' + templateID + '/images/top_left.gif" alt=""></td>';
		sHTML += '		<td style="background-image: url(templates/' + templateID + '/images/top_middle.gif);"><img src="images/spacer.gif" alt=""></td>';
		sHTML += '		<td><img src="templates/' + templateID + '/images/top_right.gif" alt=""></td>';
		sHTML += '	</tr>';
		sHTML += '	<tr class="InfoWindowTitleBar">';
		sHTML += '		<td style="background-image: url(templates/' + templateID + '/images/middle_left_2.gif);"><img src="images/spacer.gif" alt=""></td>';
		sHTML += '		<td style="padding-right: 1px; padding-left: 1px; padding-bottom: 1px; padding-top: 1px" align="right"><img src="templates/' + templateID + '/images/x_box.gif" style="cursor: hand;" onclick="javascript:HideInfoWindow();" alt=""></td>';
		sHTML += '		<td style="background-image: url(templates/' + templateID + '/images/middle_right_2.gif); width: 2px;"><img src="images/spacer.gif" alt=""></td>';
		sHTML += '	</tr>';
		sHTML += '	<tr>';
		sHTML += '		<td><img src="templates/' + templateID + '/images/middle_left_1.gif" alt=""></td>';
		sHTML += '		<td style="background-image: url(templates/' + templateID + '/images/middle_middle.gif); height: 2px"><img src="images/spacer.gif" alt=""></td>';
		sHTML += '		<td><img src="templates/' + templateID + '/images/middle_right_1.gif" alt=""></td>';
		sHTML += '	</tr>';
		sHTML += '	<tr style="background-color: #ffffff;">';
		sHTML += '		<td style="background-image: url(templates/' + templateID + '/images/middle_left_2.gif);"><img src="images/spacer.gif" alt=""></td>';
		sHTML += '		<td style="padding-right: 2px; padding-left: 2px; padding-bottom: 2px; padding-top: 2px" nowrap>';
		sHTML += wContent;
		sHTML += '		</td>';
		sHTML += '		<td style="background-image: url(templates/' + templateID + '/images/middle_right_2.gif); width: 2px;"><img src="images/spacer.gif" alt=""></td>';
		sHTML += '	</tr>';
		sHTML += '	<tr valign="top">';
		sHTML += '		<td><img src="templates/' + templateID + '/images/bottom_left.gif" alt=""></td>';
		sHTML += '		<td>';
		sHTML += '			<table width="100%" border="0" cellpadding="0" cellspacing="0" ID="Table2">';
		sHTML += '				<tr valign="top">';
		sHTML += '					<td width="20px" style="background-image: url(templates/' + templateID + '/images/bottom_middle.gif); background-repeat: repeat-x;"><img src="images/spacer.gif" alt=""></td>';
		sHTML += '					<td style="background-position-x: left; background-image: url(templates/' + templateID + '/images/ballon_tail.png); background-repeat: no-repeat; width: 24px; height: 24px;"><img src="images/spacer.gif" alt=""></td>';
		sHTML += '					<td style="background-image: url(templates/' + templateID + '/images/bottom_middle.gif); background-repeat: repeat-x;"><img src="images/spacer.gif" alt=""></td>';
		sHTML += '				</tr>';
		sHTML += '			</table>';
		sHTML += '		</td>';
		sHTML += '		<td><img src="templates/' + templateID + '/images/bottom_right.gif" alt=""></td>';
		sHTML += '	</tr>';
		sHTML += '</table>';
	}
	else
	{
		sHTML += '<table border="0" cellspacing="0" cellpadding="0">';
		sHTML += '	<tr>';
		sHTML += '		<td>';
		sHTML += '			<table border="0" cellspacing="0" cellpadding="0">';
		sHTML += '				<tr height="13">';
		//sHTML += '				<td class="topleft" width="9" height="13"></td>';
		sHTML += '					<td width="9" height="13"><img src="templates/' + templateID + '/images/bx_top_left.png" alt=""></td>';
		sHTML += '					<td class="bkred" height="13"></td>';
		//sHTML += '				<td class="topright" width="9" height="13"></td>';
		sHTML += '					<td width="9" height="13"><img src="templates/' + templateID + '/images/bx_top_right.png" alt=""></td>';
		sHTML += '				</tr>';
		sHTML += '				<tr height="15">';
		sHTML += '					<td class="bkblue" width="9" height="15"></td>';
		sHTML += '					<td class="bkblue" height="15">';
		sHTML += '						<table width="95%" border="0" cellspacing="0" cellpadding="0">';
		sHTML += '							<tr height="15">';
		sHTML += '								<td width="90%" height="15">';
		sHTML += '									<div id="divRemaxInfoWindowHeader" class="headerbox" align="left">' + wName + '</div>';
		sHTML += '								</td>';
		sHTML += '								<td class="closebox" width="20" height="15"><img src="templates/60/images/x.gif" style="cursor: hand;" onclick="javascript:HideInfoWindow();" alt="" height="15" width="20" border="0" /></td>';
		sHTML += '							</tr>';
		sHTML += '						</table>';
		sHTML += '					</td>';
		sHTML += '					<td class="bkblue" width="9" height="15"></td>';
		sHTML += '				</tr>';
		sHTML += '				<tr height="13">';
		sHTML += '					<td class="leftborder" align="left" width="9" height="13">';
		sHTML += '					</td>';
		sHTML += '					<td height="13">';
		sHTML += '						<div align="left" id="divRemaxInfoWindowContent">';
		sHTML += '							<div class="bodybox">' + wContent + '</div>';
		sHTML += '						</div>';
		sHTML += '					</td>';
		sHTML += '					<td class="rightborder" width="9" height="13"></td>';
		sHTML += '				</tr>';
		sHTML += '				<tr height="15">';
		sHTML += '					<td class="bkblue" width="9" height="15"></td>';
		sHTML += '					<td class="bkblue" height="15">';
		sHTML += '					</td>';
		sHTML += '					<td class="bkblue" width="9" height="15"></td>';
		sHTML += '				</tr>';
		sHTML += '				<tr height="13">';
		sHTML += '					<td class="btmleft" width="9" height="13"></td>';
		sHTML += '					<td class="bkred" height="13"></td>';
		sHTML += '					<td class="btmright" width="9" height="13"></td>';
		sHTML += '				</tr>';
		sHTML += '			</table>';
		sHTML += '		</td>';
		sHTML += '	</tr>';
		sHTML += '	<tr>';
		sHTML += '		<td align="left">';
		sHTML += '			<table border="0" cellspacing="0" cellpadding="0">';
		sHTML += '				<tr height="32">';
		sHTML += '					<td width="20" height="32"></td>';
		sHTML += '					<td class="ballontail" width="24" height="32"></td>';
		sHTML += '				</tr>';
		sHTML += '			</table>';
		sHTML += '		</td>';
		sHTML += '	</tr>';
		sHTML += '</table>';
	}
	
	return sHTML;
}

function FindPos(obj, ExcludeClassesAndIDs) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {		
		curleft = obj.offsetLeft;
		curtop = obj.offsetTop;
		while (obj = obj.offsetParent) {
			if (obj.className.indexOf(ExcludeClassesAndIDs) < 0 && obj.id.indexOf(ExcludeClassesAndIDs) < 0) { 
			curleft += obj.offsetLeft;
			curtop += obj.offsetTop;
			}
		}
	}	
	return [curleft,curtop];
}

function formatCurrency(num) {
	num = num.toString().replace(/\$|\,/g,'');
	if(isNaN(num))
	num = "0";
	sign = (num == (num = Math.abs(num)));
	num = Math.floor(num*100+0.50000000001);
	cents = num%100;
	num = Math.floor(num/100).toString();
	if(cents<10)
	cents = "0" + cents;
	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
	num = num.substring(0,num.length-(4*i+3))+','+
	num.substring(num.length-(4*i+3));
	//return (((sign)?'':'-') + '$' + num + '.' + cents);
	return (((sign)?'':'-') + '$' + num);
}

//---------- String Object Functions ------//
String.prototype.trim = function() {
	return this.replace(/^\s+|\s+$/g,"");
}
String.prototype.ltrim = function() {
	return this.replace(/^\s+/,"");
}
String.prototype.rtrim = function() {
	return this.replace(/\s+$/,"");
}
//-----------------------------------------//

//--------------Check if keypress was done by enter key--------//


function activateSearch(e)
{ 
	 

	if(window.event) // IE
	{
		if (e.keyCode =='13')
		  {NewAddressSearch();}
		
	}
	else if(e.which) // Netscape/Firefox/Opera
	{
		if ( e.which=='13')
		{NewAddressSearch();}
    }

}
 
 function formatHomeSalesCurrency(num)
 {   
	var re = new RegExp("Call For Price");
	
    if (re.test(num))
    { return num }
    else if( (isNaN(num)) || (num < 0) || num == 0)
	{return "N/A"}
	else
	{ return formatCurrency(num * 1000);}
	
 
 }

//]]>

