var criteriaObject = new Object;
criteriaObject.ListPriceLow = 0;
criteriaObject.ListPriceHigh = 100000000;


$(document).ready(function(){
	
	//Adding Communities to Criteria
	var myObject = eval(filterArray);
	var CommunityArray = new Array();
	for (var i = 0; i < myObject.length; i++)
	{
		var key = myObject[i].CommunityName;
		CommunityArray.push(key);
	}
	$('#total_listings').val(filterArray.length);
	
	CommunityArray.sort();
	var uniqueArray = $.unique(CommunityArray);	
	criteriaObject.CommunitiesSelected = uniqueArray.toString();
	

	$("#listing_overview").sortable();
	$("#listing_overview").disableSelection();

	$('#filter_panel').hide();

	$("#slider-range").slider({
				range: true,
				min: 0,
				max: highListPrice * 1.1,
				step: 50000,
				values: [lowListPrice, highListPrice],
				slide: function(event, ui) {
					$("#amount").val('$' + ui.values[0] + ' - $' + ui.values[1]);
				},
				change: function(event, ui) {
					setCriteriaListprice(ui.values);
				}				
			});
			$("#amount").val('$' + $("#slider-range").slider("values", 0) + ' - $' + $("#slider-range").slider("values", 1));

});



function showhidefilter(){
	var status = $('#filter_panel').is(":visible");
	if(status == true){
	//Hide the panel
	$('#filter_panel').hide(500);
	$('#filter_title_img').attr({src:'/img/listings-show_filter.png'});
	}else if(status == false){
	//Show the panel
	$('#filter_panel').show(500);
	$('#filter_title_img').attr({src:'/img/listings-hide_filter.png'});
	}
}





function setCriteriaListprice(values)
{
	var lowRange = values[0];
	var highRange = values[1];
	criteriaObject.ListPriceLow = lowRange;
	criteriaObject.ListPriceHigh = highRange;
	filterListings();
}


function setCriteriaCommunity(id)
{

	var communityName = id.value;
	var communityList = criteriaObject.CommunitiesSelected;
	var communiyListArray = communityList.split(',');
	var tempArray = new Array();
	if(id.checked == true)
	{
		if(communityList.search(communityName) == -1)
		{
		//Is not in Object -> add
		var commList = communityList + ',' + communityName;
		criteriaObject.CommunitiesSelected = commList;
		}
	}



	if(id.checked == false)
	{
		if(communityList.search(communityName) > -1)
		{
		//Is in Object -> remove
		for (var i = 0; i < communiyListArray.length; i++) {
			switch(communiyListArray[i])
			{
				case(communityName):
				//Do not add to new array
				break;
				default:
				tempArray.push(communiyListArray[i]);
			}
		}
		
		
		}
	criteriaObject.CommunitiesSelected = tempArray.toString();
	}
	filterListings();
}





function filterListings()
{
var elementIDToShow = new Array();
var isValid = '';
var myObject = eval(filterArray);
	for (var i = 0; i < myObject.length; i++) {
		var key = myObject[i];
		var elementToShow = new Array();
		
		
		//ListPrice Filter
		if(key.ListPrice >= criteriaObject.ListPriceLow && key.ListPrice <= criteriaObject.ListPriceHigh)
		{
		elementToShow.push(true);
		}else if(key.ListPrice < criteriaObject.ListPriceLow || key.ListPrice > criteriaObject.ListPriceHigh)
		{
		elementToShow.push(false);
		}
		
		
		//Community Filter
		var communityList = criteriaObject.CommunitiesSelected;
		var communityListArray = communityList.split(',');
		result = inArray(key.CommunityName, communityListArray);
		if(result == true)
		{
		elementToShow.push(true);
		}else{
		elementToShow.push(false);		
		}






		//Search for any criteria that is false
		elementToShow.sort();
		if(elementToShow[0] == true)
		{
		var str = 'listingid_' + key.listing_id;
		elementIDToShow.push(str);
		}
	
	}//End For Loop

	
	//convert elementIDToShow to string
	//loop over filterArray
	
	//if listing_id is in string, show it else hide it 
	
	var elements = elementIDToShow.toString();
	
	for (var i = 0; i < myObject.length; i++) {
		var listing_id = myObject[i].listing_id;
		var target = '';
		target = '#listing_' + listing_id;
		var searchKey = 'listingid_' + listing_id;
		var result = '';

		result = inArray(searchKey, elementIDToShow);
		if(result == true)
		{
		$(target).show(500);
		}else{
		$(target).hide(500);		
		}
	
	}
	
	var TotalListings = elementIDToShow.length;
	$('#total_listings').val(TotalListings);
	
}




function inArray(needle, haystack)
{
	var isValid = false;
	for (var i = 0; i < haystack.length; i++)
	{
		if(needle == haystack[i])
		{
		isValid = true;
		}
	}
	return isValid;
}


