
	function propertyTypeChanged(updateCount)
	{
		var newSelectedTypes = '';
		
		if (apartments)
		{
			newSelectedTypes = 'rn';
		}
		else
		{
			if(document.getElementById('type-atsf') != null && document.getElementById('type-atsf').checked)
				newSelectedTypes += 'atsf,';
			if(document.getElementById('type-de') != null && document.getElementById('type-de').checked)
				newSelectedTypes += 'de,';
			if(document.getElementById('type-mu') != null && document.getElementById('type-mu').checked)
				newSelectedTypes += 'mu,';
		}
		
		selectedTypes = newSelectedTypes;
		
		if(updateCount)
			searchSales();
		
	}
	
	
	function propertyStatusChanged(updateCount)
	{
		var newSelected = '';

		if(document.getElementById('status-active') != null && document.getElementById('status-active').checked)
			newSelected += 'active,';
		if(document.getElementById('status-undercontract') != null && document.getElementById('status-undercontract').checked)
			newSelected += 'undercontract,';
		if(document.getElementById('status-closed') != null && document.getElementById('status-closed').checked)
			newSelected += 'closed,';
		
		selectedStatuses = newSelected;
		
		if(updateCount)
			searchSales();	
	}

	function areaNameChanged(s, updateCount)
	{
		if(String(s) != 'undefined') 
		{
			var newSelectedAreas = '';
			
			for(var i=0 ; i<s.options.length ; i++)
			{
				if(s.options[i].selected)
					newSelectedAreas += s.options[i].value + ',';
			}
			
			if(newSelectedAreas != selectedAreas)
			{
				selectedAreas = newSelectedAreas;
				
				if(updateCount)
					searchSales();
			}
		}
	}

	function neighborhoodChanged(s, updateCount)
	{
		var newSelectedneighborhoods = '';
		
		for(var i=0 ; i<s.options.length ; i++)
		{
			if(s.options[i].selected)
				newSelectedneighborhoods += s.options[i].value + ',';
		}
		
		if(newSelectedneighborhoods != selectedNeighborhoods)
		{
			selectedNeighborhoods = newSelectedneighborhoods;
			
			if(updateCount)
				searchSales();
		}
	}


	function bedroomChanged(rb, updateCount)
	{
		if(rb.value != minBedroom)
		{
			minBedroom = rb.value;
			
			if(updateCount)
				searchSales()
		}
	}

	function bathroomChanged(rb, updateCount)
	{
		if(rb.value != minBathroom)
		{
			minBathroom = rb.value;
			
			if(updateCount)
				searchSales()
		}
	}
	
	function excludePropertiesTaggedAsNotInterestedChanged(cb)
	{
		if (cb.checked)
			excludePropertiesTaggedAsNotInterested = 1;
		else
			excludePropertiesTaggedAsNotInterested = 0;
		searchSales()
	}

	function locationChanged()
	{
		searchSales();
	}

	function searchSales()
	{
		var url = '/AjaxPropertyCount.aspx';
		var pars = 'p=' + minPrice;
		if (maxPrice != '')
			pars += '-' + maxPrice;
		pars += '&bd=' + minBedroom + '&bt=' + minBathroom;
		pars += '&ar=' + escape(selectedAreas);
		pars += '&type=' + escape(selectedTypes);
		pars += '&status=' + escape(selectedStatuses);
		
		var excludeCheckBox = document.getElementById('ex');
		if (excludeCheckBox != null && excludeCheckBox.checked)
			pars += '&ex=' + escape(excludeCheckBox.value);
			
		if (document.getElementById('locationType') != null)
		{
			var locationType = document.getElementById('locationType').value;
			
			if (locationType == 'address')
				pars += '&ad=' + escape(document.getElementById('ad').value);
			else if (locationType == 'neighborhood')
				pars += '&n=' + escape(selectedNeighborhoods);

		}
		else
		{
			pars += '&n=' + escape(selectedNeighborhoods);
		}
		
		//prompt('', pars);

		var myAjax = new Ajax.Request(
			url,
			{
				method: 'get',
				parameters: pars,
				onComplete: showResponse
			});

	}

	function showResponse(originalRequest)
	{
		if (originalRequest.responseText != '') {
			var counts = originalRequest.responseText.split(':');
			document.getElementById('propertyCount').innerHTML = counts[0] + ' properties';
			
			if (counts.length > 1 && counts[1] > 0 && document.getElementById('propertyCountExcluded') != null)
				document.getElementById('propertyCountExcluded').innerHTML = '(Excludes ' + counts[1] + ' properties marked \'Not Interested\')';
			else
				document.getElementById('propertyCountExcluded').innerHTML = '&nbsp;';
	    }
	    else
	    {
	        document.getElementById('propertyCount').innerHTML = '0';
	    }
	}


var minPriceIndex;
var maxPriceIndex;

//var minPrice -- defined by caller
//var maxPrice -- defined by caller
//var prices -- defined by caller
//var apartments -- defined by caller
var minBedroom = 0;
var minBathroom = 0;
var selectedAreas = '';
var selectedNeighborhoods = '';
var selectedTypes = '';
var selectedStatuses = 'active';
var excludePropertiesTaggedAsNotInterested = 0;

var slider;

function sliderValueChanged2()
{
	var p1 = slider.getValue();
	var p2 = slider.getValue2();
	
	var low  = prices[Math.min(p1, p2)];
	var high = prices[Math.max(p1, p2)];

	minPriceIndex = document.getElementById('minIndex').value = Math.min(p1, p2);
	maxPriceIndex = document.getElementById('maxIndex').value = Math.max(p1, p2);

	document.getElementById('minPrice').innerHTML = '$' + Comma(low);
	document.getElementById('maxPrice').innerHTML = '$' + Comma(high);
	
	if(maxPriceIndex+1 >= prices.length)
	{
		document.getElementById('maxPrice').innerHTML += '+';
		high = '';
	}

	minPrice = low;
	maxPrice = high;
	
	document.getElementById('minp').value = minPrice;
	document.getElementById('maxp').value = maxPrice;

	if(!slider.isSliding())
	{
		searchSales();
	}
}

function g(id)
{
	return(document.getElementById(id));
}

window.onload = function()
{
	propertyTypeChanged(false);
	areaNameChanged(document.forms[0].ar, false);
	neighborhoodChanged(document.forms[0].n, false);
	bedroomChanged(document.forms[0].bd, false);
	bathroomChanged(document.forms[0].bt, false);

	minPriceIndex = g('minIndex').value;
	maxPriceIndex = g('maxIndex').value;

	var low = prices[minPriceIndex];
	var high = prices[maxPriceIndex]

	document.getElementById('minPrice').innerHTML = "$" + Comma(low);
	document.getElementById('maxPrice').innerHTML = '$' + Comma(high);
	
	var sliderEl = document.getElementById ? document.getElementById("slider-1") : null;
	var inputEl = document.forms[0]["slider-input-1"];
	var s = new Slider(sliderEl, inputEl);
	slider = s;
	s.onchange =  sliderValueChanged2;

	s.setValue(minPriceIndex);
	s.setValue2(maxPriceIndex);
	s.recalculate();
	s.onchange()
}

/*
<!-- Original:  Martin Webb -->
<!-- Web Site:  http://www.irt.org -->

<!-- This script and many more are available free online at -->
<!-- The JavaScript Source!! http://javascript.internet.com -->
*/

function Comma(number) {
number = '' + number;
if (number.length > 3) {
var mod = number.length % 3;
var output = (mod > 0 ? (number.substring(0,mod)) : '');
for (i=0 ; i < Math.floor(number.length / 3); i++) {
if ((mod == 0) && (i == 0))
output += number.substring(mod+ 3 * i, mod + 3 * i + 3);
else
output+= ',' + number.substring(mod + 3 * i, mod + 3 * i + 3);
}
return (output);
}
else return number;
}