// Non-map functions
/*	-------------------------------------------------
	CONSTANTS
	-------------------------------------------------	*/
	var INT_MAPHIDE_ANIMATION_SPEED		= 250;
	var INT_SORT_PRICE					= 0;
	var INT_SORT_BEDS					= 1;
	var INT_SORT_BATHS					= 2;
	var INT_SORT_DATE					= 3;
	var STR_SEARCHBAR_LABEL				= "<li class=\"label\">[LABEL]&nbsp;&nbsp;<em>[DATA]</em></li>";
	var STR_SEARCHBAR_REMOVE			= "<li class=\"remove\"><a href=\"javascript:;\" onClick=\"[EVENT]\">&nbsp;</a></li>";
	var STR_SEARCHBAR_ALERT				= "<li class=\"alert\"><strong>&nbsp;</strong></li>";
	var INT_SEARCHBAR_MAXOPTIONS		= 5;
	var INT_SEARCH_OPTION_MAINENTRY		= 0;
	var INT_SEARCH_OPTION_SQFT			= 1;
	var INT_SEARCH_OPTION_BEDS			= 2;
	var INT_SEARCH_OPTION_BATHS			= 3;
	var INT_SEARCH_OPTION_PRICE			= 4;
	var INT_SEARCH_OPTION_NEAR			= 5;
	var INT_SEARCH_OPTION_YEARBUILT		= 6;
	var INT_SEARCH_OPTION_STORIES		= 7;
	var INT_SEARCH_OPTION_REMARKS		= 8;
	var INT_SEARCH_OPTION_TOWNS			= 9;
	var INT_SEARCH_OPTION_LOTTYPES		= 10;
	var INT_SEARCH_OPTION_PARKING		= 11;
	var INT_SEARCH_OPTION_BEACH			= 12;
	var INT_SEARCH_OPTION_DOWNTOWN		= 13;
	var INT_SEARCH_OPTION_COMMOPTIONS	= 14;
	var INT_SEARCH_OPTION_PROPTYPE		= 15;

/*	-------------------------------------------------
	VARIABLES
	-------------------------------------------------	*/
	var boolToggleInProgress			= false;
	var boolResultsVisible				= true;
	var boolSortDirection				= false;		// asc/desc
	var intCurSortType					= -1;
	var objParkingData					= new Hash();
		objParkingData.setItem("1 Car Garage", "1 Car Garage");
		objParkingData.setItem("1.5 Car Gar", "1.5 Car Garage");
		objParkingData.setItem("2 Car Garage", "2 Car Garage");
		objParkingData.setItem("3 Car Garage", "3 Car Garage");
		objParkingData.setItem("3+ Car Gar", "3+ Car Garage");
		objParkingData.setItem("1 Car C/port", "1 Car Carport");
		objParkingData.setItem("2 Car C/port", "2 Car Carport");
		objParkingData.setItem("2+ Car/port", "2+ Car Carport");
		objParkingData.setItem("Off-st Prkng", "Off-street");
	
/*	-------------------------------------------------
	FUNCTIONS
	-------------------------------------------------	*/
	function sortSidebar(intSortType, boolAlternate) {
		intCurSortType				= intSortType;
		
		var strSortDirection		= "";
		
		$("#sort_price").removeClass("sort_button_price_selected");
		$("#sort_beds").removeClass("sort_button_beds_selected");
		$("#sort_baths").removeClass("sort_button_baths_selected");
		$("#sort_new").removeClass("sort_button_new_selected");
		
		if (boolAlternate) {
			if (boolSortDirection) {
				boolSortDirection		= false;
				strSortDirection		= "asc";
			} else {
				boolSortDirection		= true;
				strSortDirection		= "desc";
			}
		} else {
			if (boolSortDirection) {
				strSortDirection		= "desc";
			} else {
				strSortDirection		= "asc";
			}
		}
				
		switch (intSortType) {
			case INT_SORT_PRICE :
				$("#sort_price").addClass("sort_button_price_selected");
				$("#map_results_frame div.mls").tsort("span.a", {attr: "title", order: strSortDirection});
				break;
				
			case INT_SORT_BEDS :
				$("#sort_beds").addClass("sort_button_beds_selected");
				$("#map_results_frame div.mls").tsort("span.b", {order: strSortDirection});
				break;
				
			case INT_SORT_BATHS :
				$("#sort_baths").addClass("sort_button_baths_selected");
				$("#map_results_frame div.mls").tsort("span.c", {order: strSortDirection});
				break;
				
			case INT_SORT_DATE :
				$("#sort_new").addClass("sort_button_new_selected");
				$("#map_results_frame div.mls").tsort({attr: "title", order: strSortDirection});
				break;
		}
		
		$(".sort_header").removeClass("sort_header_up");
		$(".sort_header").removeClass("sort_header_down");
		
		switch (strSortDirection.toLowerCase()) {
			case "asc" :
				$(".sort_header").addClass("sort_header_up");
				break;
				
			case "desc" :
				$(".sort_header").addClass("sort_header_down");
				break;
		}
		
		strSortDirection			= null;
	}

	function resetSearchToolNav() {
		$("#navigation_home").removeClass("navigation_home_selected");
		$("#navigation_town").removeClass("navigation_town_selected");
		$("#navigation_near").removeClass("navigation_near_selected");
		$("#navigation_house").removeClass("navigation_house_selected");
		$("#navigation_lot").removeClass("navigation_lot_selected");
		
		$("#search_tool_home").hide();
		$("#search_tool_town").hide();
		$("#search_tool_near").hide();
		$("#search_tool_house").hide();
		$("#search_tool_lot").hide();
	}
	
	function resetAllSearchOptions() {
		if (confirm("Are you sure you want to reset all of the search options to their default values?\n\nPress [OK] to continue, or [CANCEL] to abort.")) {
			boolDisplayTooltips			= false;

			$("#strSearchQuery").val("");
			$("#intSearchType").val("-1");
			$("#sliderSquareFootage").slider("value", 0);
			$("#sliderBedrooms").slider("value", 0);
			$("#sliderBathrooms").slider("value", 0);
			$("#sliderPrice").slider("values", 0, 0);
			$("#sliderPrice").slider("values", 1, $("#sliderPrice").slider("option", "max"));
			$("#radTown_0").attr("checked", "checked");
			$("#strNearQuery").val("");
			$("#intNearRange").val("1");
			$("#strNumStories").val("");
			$("#strParking").val("");
			$("#intBeachRange").val("");
			$("#intDowntownRange").val("");
			$("#strPropertyType").val("");
			$("#chkCommGated").attr("checked", "");
			$("#chkCommPool").attr("checked", "");
			$("#chkCommTennis").attr("checked", "");
			$("#chkCommGolf").attr("checked", "");
			$("#chkCommClubhouse").attr("checked", "");
			$("#chkCommRamp").attr("checked", "");
			$("#chkCommDock").attr("checked", "");
			$("#strRemarks").val("");
			unselectLotTypes();
			buildSearchBar();

			boolDisplayTooltips			= true;

			loadMarkers();
		}
	}
	
	function getSelectedLotTypes() {
		var intLotTypeCount		= parseInt($("#intLotTypeCount").val());
		var arrLotTypes			= new Array();
		var strLotTypes			= "";
		
		if (intLotTypeCount > 0) {
			for (var intCounter = 1; intCounter < (intLotTypeCount + 1); intCounter++) {
				if ($("#chkLotType_" + intCounter).attr("checked")) {
					arrLotTypes.push($("#strLotTypeLU_" + intCounter).val());
				}
			}
			
			if (arrLotTypes.length > 0) {
				strLotTypes		= arrLotTypes.join(",");
			}
		}
		
		if (arguments[0] != null) {
			// just send back the tally
			return arrLotTypes.length;
		} else {
			return strLotTypes;
		}
	}

	function getSelectedLotTypeIDs() {
		var intLotTypeCount		= parseInt($("#intLotTypeCount").val());
		var arrLotTypes			= new Array();
		var strLotTypes			= "";
		
		if (intLotTypeCount > 0) {
			for (var intCounter = 1; intCounter < (intLotTypeCount + 1); intCounter++) {
				if ($("#chkLotType_" + intCounter).attr("checked")) {
					arrLotTypes.push($("#chkLotType_" + intCounter).val());
				}
			}
			
			if (arrLotTypes.length > 0) {
				strLotTypes		= arrLotTypes.join(",");
			}
		}
		
		return strLotTypes;
	}

	function unselectLotTypes() {
		var intLotTypeCount		= parseInt($("#intLotTypeCount").val());
		
		for (var intCounter = 1; intCounter < (intLotTypeCount + 1); intCounter++) {
			$("#chkLotType_" + intCounter).attr("checked", false);
		}
	}	

	function getPriceRange() {
		var arrCurValues		= $("#sliderPrice").slider("values");
		var intMinSelected		= 0;
		var intMaxSelected		= ARR_PRICE_STEPPING.length - 1;
		
		if (arrCurValues.length > 0) {
			intMinSelected		= arrCurValues[0];
			intMaxSelected		= arrCurValues[1];
		}
		
		return ARR_PRICE_STEPPING[intMinSelected] + "|" + ARR_PRICE_STEPPING[intMaxSelected];
	}
	
	function buildSearchBar() {
		var strLabel;
		var strRemove;
		var strData;
		var dblData;
		var intPriceMin;
		var intPriceMax;
		var intShownOptions		= 0;
		
		// initial html
		$("#map_header_data").html("<li class=\"header_mapheader\"> </li>");
		
		// current search type
		if ((parseInt($("#intSearchType").val()) > -1) && ($("#strSearchQuery").val().length > 0) && (intShownOptions < INT_SEARCHBAR_MAXOPTIONS)) {
			strLabel			= STR_SEARCHBAR_LABEL;
			strRemove			= STR_SEARCHBAR_REMOVE;
			
			switch (parseInt($("#intSearchType").val())) {
				case INT_SEARCHTYPE_ZIPCODE :
					strLabel	= strLabel.replace("[LABEL]", "ZIP:").replace("[DATA]", $("#strSearchQuery").val());
					break;
					
				case INT_SEARCHTYPE_ADDRESS :
					strLabel	= strLabel.replace("[LABEL]", "Address:");
					strData		= $("#strSearchQuery").val().replace("\"", "");
					
					if (strData.length > 15) {
						strData		= "<abbr title=\"" + strData + "\">" + strData.substr(0, 12) + "...</abbr>";
					}
					strLabel	= strLabel.replace("[DATA]", strData);
					break;
					
				case INT_SEARCHTYPE_TOWN :
					strLabel	= strLabel.replace("[LABEL]", "Town:").replace("[DATA]", $("#strSearchQuery").val());
					break;
					
				case INT_SEARCHTYPE_NEIGHBORHOOD :
					strLabel	= strLabel.replace("[LABEL]", "Neighborhood:").replace("[DATA]", $("#strSearchQuery").val());
					break;
					
				case INT_SEARCHTYPE_MLS :
					strLabel	= strLabel.replace("[LABEL]", "MLS #:").replace("[DATA]", $("#strSearchQuery").val());
					break;
			}
			
			if (strLabel.indexOf("[LABEL]") == -1) {
				strRemove	= strRemove.replace("[EVENT]", "javascript:removeSearchType(INT_SEARCH_OPTION_MAINENTRY);");
				
				$("#map_header_data").append(strLabel + strRemove);
				intShownOptions++;
			}
		} else if (($("#strNearQuery").val().length > 0) && (intShownOptions < INT_SEARCHBAR_MAXOPTIONS)) {
			// near this
			strLabel			= STR_SEARCHBAR_LABEL;
			strRemove			= STR_SEARCHBAR_REMOVE;
			strData				= $("#strNearQuery").val().replace("\"", "");
			
			strLabel			= strLabel.replace("[LABEL]", "Near:");
			
			if (strData.length > 15) {
				strData			= "<abbr title=\"" + strData + "\">" + strData.substr(0, 12) + "...</abbr>";
			}
			
			strData				+= " (" + $("#intNearRange").val() + " mi.)";
			strLabel			= strLabel.replace("[DATA]", strData);
			strRemove			= strRemove.replace("[EVENT]", "javascript:removeSearchType(INT_SEARCH_OPTION_NEAR);");
			
			$("#map_header_data").append(strLabel + strRemove);
			intShownOptions++;
		}

		// sqft
		if (($("#sliderSquareFootage").slider("option", "value") > 0) && (intShownOptions < INT_SEARCHBAR_MAXOPTIONS)) {
			strLabel			= STR_SEARCHBAR_LABEL;
			strRemove			= STR_SEARCHBAR_REMOVE;
			dblData				= parseInt($("#sliderSquareFootage").slider("value"));
			
			strLabel			= strLabel.replace("[LABEL]", "Sq. Ft.:").replace("[DATA]", Math.round(dblData * INT_MULT_SQFT).toString());
			strRemove			= strRemove.replace("[EVENT]", "javascript:removeSearchType(INT_SEARCH_OPTION_SQFT);");
			
			$("#map_header_data").append(strLabel + strRemove);
			intShownOptions++;
		}
		
		// beds
		if (($("#sliderBedrooms").slider("option", "value") > 0) && ($("#sliderBedrooms").slider("option", "value") != $("#sliderBedrooms").slider("option", "max")) && (intShownOptions < INT_SEARCHBAR_MAXOPTIONS)) {
			strLabel			= STR_SEARCHBAR_LABEL;
			strRemove			= STR_SEARCHBAR_REMOVE;
			strData				= $("#sliderBedrooms").slider("value");
			
			strLabel			= strLabel.replace("[LABEL]", "Bedrooms:").replace("[DATA]", strData);
			strRemove			= strRemove.replace("[EVENT]", "javascript:removeSearchType(INT_SEARCH_OPTION_BEDS);");
			
			$("#map_header_data").append(strLabel + strRemove);
			intShownOptions++;
		}
		
		// baths
		if (($("#sliderBathrooms").slider("option", "value") > 0) && ($("#sliderBathrooms").slider("option", "value") != $("#sliderBathrooms").slider("option", "max")) && (intShownOptions < INT_SEARCHBAR_MAXOPTIONS)) {
			strLabel			= STR_SEARCHBAR_LABEL;
			strRemove			= STR_SEARCHBAR_REMOVE;
			strData				= $("#sliderBathrooms").slider("value");
			
			strLabel			= strLabel.replace("[LABEL]", "Bathrooms:").replace("[DATA]", strData);
			strRemove			= strRemove.replace("[EVENT]", "javascript:removeSearchType(INT_SEARCH_OPTION_BATHS);");
			
			$("#map_header_data").append(strLabel + strRemove);
			intShownOptions++;
		}
		
		// price
		intPriceMin			= parseInt($("#sliderPrice").slider("values")[0]);
		intPriceMax			= parseInt($("#sliderPrice").slider("values")[1]);
		
		if (((intPriceMin > 0) || (intPriceMax < $("#sliderPrice").slider("option", "max"))) && (intShownOptions < INT_SEARCHBAR_MAXOPTIONS)) {
			strLabel			= STR_SEARCHBAR_LABEL;
			strRemove			= STR_SEARCHBAR_REMOVE;
			strData				= "";
			
			if (intPriceMin > 0) {
				strData			= "$" + $.currency(ARR_PRICE_STEPPING[intPriceMin], {s: ",", d: ".", c: 0});
			}
			if (intPriceMax < $("#sliderPrice").slider("option", "max")) {
				if (strData.length > 0) {
					strData		+= "&nbsp;-&nbsp;";
				}
				strData			+= "$" + $.currency(ARR_PRICE_STEPPING[intPriceMax], {s: ",", d: ".", c: 0});
			}
			
			strLabel			= strLabel.replace("[LABEL]", "Price:").replace("[DATA]", strData);
			strRemove			= strRemove.replace("[EVENT]", "javascript:removeSearchType(INT_SEARCH_OPTION_PRICE);");
			
			$("#map_header_data").append(strLabel + strRemove);
			intShownOptions++;
		}
		
		if (($("input[name='radTown']:checked").val() != null) && (intShownOptions < INT_SEARCHBAR_MAXOPTIONS)) {
			strLabel			= STR_SEARCHBAR_LABEL;
			strRemove			= STR_SEARCHBAR_REMOVE;
			strData				= $("input[name='radTown']:checked").val();
			
			if (strData != "0") {
				strLabel			= strLabel.replace("[LABEL]", "Town:").replace("[DATA]", $("#strTownLU_" + strData).val());
				strRemove			= strRemove.replace("[EVENT]", "javascript:removeSearchType(INT_SEARCH_OPTION_TOWNS);");
			
				$("#map_header_data").append(strLabel + strRemove);
				intShownOptions++;
			}
		}
		
		if (($("#intYearBuilt").val() != 0) && (intShownOptions < INT_SEARCHBAR_MAXOPTIONS)) {
			strLabel			= STR_SEARCHBAR_LABEL;
			strRemove			= STR_SEARCHBAR_REMOVE;
			
			strLabel			= strLabel.replace("[LABEL]", "Year Built:");
			
			if ($("#intYearBuilt").val() == 1600) {
				strLabel		= strLabel.replace("[DATA]", "1900 or earlier");	
			} else {
				strLabel		= strLabel.replace("[DATA]", $("#intYearBuilt").val() + "+");				
			}
			
			strRemove			= strRemove.replace("[EVENT]", "javascript:removeSearchType(INT_SEARCH_OPTION_YEARBUILT);");
			
			$("#map_header_data").append(strLabel + strRemove);
			intShownOptions++;
		}
		
		if (($("#strNumStories").val() != "") && (intShownOptions < INT_SEARCHBAR_MAXOPTIONS)) {
			strLabel			= STR_SEARCHBAR_LABEL;
			strRemove			= STR_SEARCHBAR_REMOVE;
			
			strLabel			= strLabel.replace("[LABEL]", "Stories:").replace("[DATA]", $("#strNumStories").val());
			strRemove			= strRemove.replace("[EVENT]", "javascript:removeSearchType(INT_SEARCH_OPTION_STORIES);");
			
			$("#map_header_data").append(strLabel + strRemove);
			intShownOptions++;
		}

		if (($("#strParking").val() != "") && (intShownOptions < INT_SEARCHBAR_MAXOPTIONS)) {
			strLabel			= STR_SEARCHBAR_LABEL;
			strRemove			= STR_SEARCHBAR_REMOVE;
			
			strLabel			= strLabel.replace("[LABEL]", "Parking:").replace("[DATA]", objParkingData.getItem($("#strParking").val()));
			strRemove			= strRemove.replace("[EVENT]", "javascript:removeSearchType(INT_SEARCH_OPTION_PARKING);");
			
			$("#map_header_data").append(strLabel + strRemove);
			intShownOptions++;
		}
		
		if (($("#intBeachRange").val() != "") && (intShownOptions < INT_SEARCHBAR_MAXOPTIONS)) {
			strLabel			= STR_SEARCHBAR_LABEL;
			strRemove			= STR_SEARCHBAR_REMOVE;
			
			strLabel			= strLabel.replace("[LABEL]", "Dist./Beach:");
			
			if ($("#intBeachRange").val() == "1") {
				strLabel		= strLabel.replace("[DATA]", "Walking dist.");
			} else if ($("#intBeachRange").val() == "30") {
				strLabel		= strLabel.replace("[DATA]", "30+ miles");
			} else {
				strLabel		= strLabel.replace("[DATA]", $("#intBeachRange").val() + " miles");
			}
			strRemove			= strRemove.replace("[EVENT]", "javascript:removeSearchType(INT_SEARCH_OPTION_BEACH);");
			
			$("#map_header_data").append(strLabel + strRemove);
			intShownOptions++;
		}
		
		if (($("#intDowntownRange").val() != "") && (intShownOptions < INT_SEARCHBAR_MAXOPTIONS)) {
			strLabel			= STR_SEARCHBAR_LABEL;
			strRemove			= STR_SEARCHBAR_REMOVE;
			
			strLabel			= strLabel.replace("[LABEL]", "Dist./Downtown:");
			
			if ($("#intDowntownRange").val() == "1") {
				strLabel		= strLabel.replace("[DATA]", "Walking dist.");
			} else if ($("#intDowntownRange").val() == "30") {
				strLabel		= strLabel.replace("[DATA]", "30+ miles");
			} else {
				strLabel		= strLabel.replace("[DATA]", $("#intDowntownRange").val() + " miles");
			}
			strRemove			= strRemove.replace("[EVENT]", "javascript:removeSearchType(INT_SEARCH_OPTION_DOWNTOWN);");
			
			$("#map_header_data").append(strLabel + strRemove);
			intShownOptions++;
		}

		if (($("#strPropertyType").val() != "") && (intShownOptions < INT_SEARCHBAR_MAXOPTIONS)) {
			strLabel			= STR_SEARCHBAR_LABEL;
			strRemove			= STR_SEARCHBAR_REMOVE;
			
			strLabel			= strLabel.replace("[LABEL]", "Prop. Type:");
			
			switch ($("#strPropertyType").val().toUpperCase()) {
				case "SFD" :
					strLabel		= strLabel.replace("[DATA]", "House");
					break;

				case "SFA" :
					strLabel		= strLabel.replace("[DATA]", "Condo/Townhome");
					break;
			}
			
			strRemove			= strRemove.replace("[EVENT]", "javascript:removeSearchType(INT_SEARCH_OPTION_PROPTYPE);");
			
			$("#map_header_data").append(strLabel + strRemove);
			intShownOptions++;
		}		

		if ((($("#chkCommGated").attr("checked")) || ($("#chkCommPool").attr("checked")) || ($("#chkCommTennis").attr("checked")) || ($("#chkCommGolf").attr("checked")) || ($("#chkCommClubhouse").attr("checked")) || ($("#chkCommRamp").attr("checked")) || ($("#chkCommDock").attr("checked"))) && (intShownOptions < INT_SEARCHBAR_MAXOPTIONS)) {
			arrCommOptions		= new Array();
			
			strLabel			= STR_SEARCHBAR_LABEL;
			strRemove			= STR_SEARCHBAR_REMOVE;
			
			if ($("#chkCommGated").attr("checked"))		arrCommOptions.push("Gated");
			if ($("#chkCommPool").attr("checked"))		arrCommOptions.push("Pool");
			if ($("#chkCommTennis").attr("checked"))	arrCommOptions.push("Tennis");
			if ($("#chkCommGolf").attr("checked"))		arrCommOptions.push("Golf");
			if ($("#chkCommClubhouse").attr("checked"))	arrCommOptions.push("Clubhouse");
			if ($("#chkCommRamp").attr("checked"))		arrCommOptions.push("Boat Ramp");
			if ($("#chkCommDock").attr("checked"))		arrCommOptions.push("Dock Facilities");
			
			if (arrCommOptions.length > 0) {
				strLabel			= strLabel.replace("[LABEL]", "Community:");
				
				strData				= arrCommOptions.join(", ");

				if (strLabel.length > 15) {
					strData			= "<abbr title=\"" + strData + "\">" + strData.substr(0, 12) + "...</abbr>";
				}
				
				strLabel			= strLabel.replace("[DATA]", strData);
				strRemove			= strRemove.replace("[EVENT]", "javascript:removeSearchType(INT_SEARCH_OPTION_COMMOPTIONS);");
				
				$("#map_header_data").append(strLabel + strRemove);
				intShownOptions++;
			}
		}

		if (($("#strRemarks").val().length > 0) && ($("#strRemarks").val() != STR_SEARCH_REMARKS_DEFAULT) && (intShownOptions < INT_SEARCHBAR_MAXOPTIONS)) {
			strLabel			= STR_SEARCHBAR_LABEL;
			strRemove			= STR_SEARCHBAR_REMOVE;
			strData				= $("#strNearQuery").val().replace("\"", "");
			
			strLabel			= strLabel.replace("[LABEL]", "Remarks:");
			
			if (strData.length > 15) {
				strData			= "<abbr title=\"" + strData + "\">" + strData.substr(0, 12) + "...</abbr>";
			}			
			strLabel			= strLabel.replace("[DATA]", strData);
			
			strRemove			= strRemove.replace("[EVENT]", "javascript:removeSearchType(INT_SEARCH_OPTION_REMARKS);");
			
			$("#map_header_data").append(strLabel + strRemove);
			intShownOptions++;
		}

		if ((getSelectedLotTypes(false) > 0) && (intShownOptions < INT_SEARCHBAR_MAXOPTIONS)) {
			strLabel			= STR_SEARCHBAR_LABEL;
			strRemove			= STR_SEARCHBAR_REMOVE;
			
			strLabel			= strLabel.replace("[LABEL]", "Lot Type(s):").replace("[DATA]", getSelectedLotTypes(false) + " selected");
			strRemove			= strRemove.replace("[EVENT]", "javascript:removeSearchType(INT_SEARCH_OPTION_LOTTYPES);");
			
			$("#map_header_data").append(strLabel + strRemove);
			intShownOptions++;
		}

		if (intShownOptions == 0) {
			strLabel			= STR_SEARCHBAR_LABEL;
			strLabel			= strLabel.replace("[LABEL]", "No search options selected").replace("[DATA]", "");
			
			$("#map_header_data").append(strLabel + STR_SEARCHBAR_ALERT);
		}
	}

	function removeSearchType(intType) {
		boolDisplayTooltips			= false;

		switch (intType) {
			case INT_SEARCH_OPTION_MAINENTRY :
				$("#strSearchQuery").val("");
				$("#intSearchType").val(-1);
				strCurInput_Lookup			= "";
				intCurInput_Type			= -1;
				break;
				
			case INT_SEARCH_OPTION_SQFT :
				$("#sliderSquareFootage").slider("value", 0);
				break;
				
			case INT_SEARCH_OPTION_BEDS :
				$("#sliderBedrooms").slider("value", 0);
				break;
			
			case INT_SEARCH_OPTION_BATHS :
				$("#sliderBathrooms").slider("value", 0);
				break;
			
			case INT_SEARCH_OPTION_PRICE :
				$("#sliderPrice").slider("values", 0, 0);
				$("#sliderPrice").slider("values", 1, $("#sliderPrice").slider("option", "max"));
				break;
			
			case INT_SEARCH_OPTION_NEAR :
				$("#strNearQuery").val("");
				strCurInput_Near		= "";
				removeCircle();
				break;
				
			case INT_SEARCH_OPTION_YEARBUILT :
				$("#intYearBuilt").val("");
				break;
				
			case INT_SEARCH_OPTION_STORIES :
				$("#strNumStories").val("");
				break;

			case INT_SEARCH_OPTION_PARKING :
				$("#strParking").val("");
				break;

			case INT_SEARCH_OPTION_REMARKS :
				$("#strRemarks").val("");
				break;
				
			case INT_SEARCH_OPTION_TOWNS :
				if ($("input[name='radTown']:checked").val() != null) {
					$("#radTown_0").attr("checked", "checked");
					
					objMap.closeExtInfoWindow();
					objMap.setCenter(new GLatLng(arrLatLng[0], arrLatLng[1]), INT_MIN_ZOOM);
				}
				break;
				
			case INT_SEARCH_OPTION_LOTTYPES :
				unselectLotTypes();
				break;
				
			case INT_SEARCH_OPTION_BEACH :
				$("#intBeachRange").val("");
				break;
				
			case INT_SEARCH_OPTION_DOWNTOWN :
				$("#intDowntownRange").val("");
				break;
			
			case INT_SEARCH_OPTION_COMMOPTIONS :
				$("#chkCommGated").attr("checked", "");
				$("#chkCommPool").attr("checked", "");
				$("#chkCommTennis").attr("checked", "");
				$("#chkCommGolf").attr("checked", "");
				$("#chkCommClubhouse").attr("checked", "");
				$("#chkCommRamp").attr("checked", "");
				$("#chkCommDock").attr("checked", "");
				break;
				
			case INT_SEARCH_OPTION_PROPTYPE :
				$("#strPropertyType").val("");
				break;
		}

		boolDisplayTooltips			= true;

		loadMarkers();
	}
	
	function buildSearchString() {
		var strSearchText		=	"{";
		
		strSearchText			+=	"lat: \"" + objMap.getCenter().lat() + "\",";
		strSearchText			+=	"lng: \"" + objMap.getCenter().lng() + "\",";
		strSearchText			+=	"zoom: \"" + objMap.getZoom() + "\",";
		strSearchText			+=	"qry: \"" + $("#strSearchQuery").val().replace("\"", "") + "\",";
		strSearchText			+=	"type: \"" + $("#intSearchType").val() + "\",";
		strSearchText			+=	"sqft: \"" + $("#sliderSquareFootage").slider("value") + "\",";
		strSearchText			+=	"beds: \"" + $("#sliderBedrooms").slider("value") + "\",";
		strSearchText			+=	"baths: \"" + $("#sliderBathrooms").slider("value") + "\",";
		strSearchText			+=	"price: \"" + $("#sliderPrice").slider("values") + "\",";
		strSearchText			+=	"towns: \"" + $("input[name='radTown']:checked").val() + "\",";
		strSearchText			+=	"nearqry: \"" + $("#strNearQuery").val().replace("\"", "") + "\",";
		strSearchText			+=	"nearrad: \"" + $("#intNearRange").val() + "\",";
		strSearchText			+=	"yearbuilt: \"" + $("#intYearBuilt").val() + "\",";
		strSearchText			+=	"stories: \"" + $("#strNumStories").val() + "\",";
		strSearchText			+=	"parking: \"" + $("#strParking").val() + "\",";
		strSearchText			+=	"lots: \"" + getSelectedLotTypeIDs() + "\",";
		strSearchText			+=	"beach: \"" + $("#intBeachRange").val() + "\",";
		strSearchText			+=	"dt: \"" + $("#intDowntownRange").val() + "\",";
		strSearchText			+=	"pt: \"" + $("#strPropertyType").val() + "\",";

		if ($("#chkCommGated").attr("checked")) {
			strSearchText		+=	"gated: \"checked\",";
		} else {
			strSearchText		+=	"gated: \"\",";
		}
		if ($("#chkCommPool").attr("checked")) {
			strSearchText		+=	"pool: \"checked\",";
		} else {
			strSearchText		+=	"pool: \"\",";
		}
		if ($("#chkCommTennis").attr("checked")) {
			strSearchText		+=	"tennis: \"checked\",";
		} else {
			strSearchText		+=	"tennis: \"\",";
		}
		if ($("#chkCommGolf").attr("checked")) {
			strSearchText		+=	"golf: \"checked\",";
		} else {
			strSearchText		+=	"golf: \"\",";
		}
		if ($("#chkCommClubhouse").attr("checked")) {
			strSearchText		+=	"ch: \"checked\",";
		} else {
			strSearchText		+=	"ch: \"\",";
		}
		if ($("#chkCommRamp").attr("checked")) {
			strSearchText		+=	"ramp: \"checked\",";
		} else {
			strSearchText		+=	"ramp: \"\",";
		}
		if ($("#chkCommDock").attr("checked")) {
			strSearchText		+=	"dock: \"checked\",";
		} else {
			strSearchText		+=	"dock: \"\",";
		}

		strSearchText			+=	"remarks: \"" + $("#strRemarks").val().replace("\"", "") + "\"";
		strSearchText			+= 	"}";
		
		return strSearchText;
	}
	
	function restoreSearch(objSearchData) {
		var arrExplodedArray;
		var intTempID;
		
		// disable tooltips on sliders for now
		boolDisplayTooltips			= false;
		
		if (objSearchData.qry.length > 0) {
			$("#strSearchQuery").val(objSearchData.qry);
			$("#intSearchType").val(objSearchData.type);
		} else {
			$("#strSearchQuery").val("");
			$("#intSearchType").val("-1");
		}
		
		$("#sliderSquareFootage").slider("value", objSearchData.sqft);
		$("#sliderBedrooms").slider("value", objSearchData.beds);
		$("#sliderBathrooms").slider("value", objSearchData.baths);
		
		arrExplodedArray	= objSearchData.price.split(",");
		for (var intCounter = 0; intCounter < arrExplodedArray.length; intCounter++) {
			$("#sliderPrice").slider("values", intCounter, arrExplodedArray[intCounter]);
		}
		
		if (objSearchData.towns.length > 0) {
			intTempID			= parseInt(objSearchData.towns);
			
			$("#radTown_" + intTempID).attr("checked", "checked");
		}

		if (objSearchData.lots.length > 0) {
			arrExplodedArray	= objSearchData.lots.split(",");
			
			for (var intCounter = 0; intCounter < arrExplodedArray.length; intCounter++) {
				$("#chkLotType_" + intCounter).attr("checked", true);
			}
		}

		$("#strNearQuery").val(objSearchData.nearqry);
		$("#intNearRange").val(objSearchData.nearrad);
		$("#intYearBuilt").val(objSearchData.yearbuilt);
		$("#strNumStories").val(objSearchData.stories);
		$("#strParking").val(objSearchData.parking);
		$("#intBeachRange").val(objSearchData.beach);
		$("#intDowntownRange").val(objSearchData.dt);
		$("#strPropertyType").val(objSearchData.pt);
		$("#chkCommGated").attr("checked", objSearchData.gated);
		$("#chkCommPool").attr("checked", objSearchData.pool);
		$("#chkCommTennis").attr("checked", objSearchData.tennis);
		$("#chkCommGolf").attr("checked", objSearchData.golf);
		$("#chkCommClubhouse").attr("checked", objSearchData.ch);
		$("#chkCommRamp").attr("checked", objSearchData.ramp);
		$("#chkCommDock").attr("checked", objSearchData.dock);
		$("#strRemarks").val(objSearchData.remarks);
		
		// build search bar
		buildSearchBar();
		
		// enable tooltips
		boolDisplayTooltips			= false;
	}
	
	function saveSearch() {
		var boolErrorFound		= false;
		var intSaveEmail		= 0;
		var strSearchTerms		= buildSearchString();
		var strErrorText		= "";

		if (($("#strSearchSaveName").val().length < 1) || ($("#strSearchSaveName").val() == STR_SEARCH_SAVE_DEFAULT)) {
			boolErrorFound		= true;
			strErrorText		+= "- Please enter a name for this search.\n";
		}
		if ($("#chkSearchSaveEmails").attr("checked")) {
			intSaveEmail	= 1;
		}
		
		if (!boolErrorFound) {
			jQuery.facebox(function() { 
				jQuery.post(	"/search/_save-search.php",
								{
									name: $("#strSearchSaveName").val(), 
									query: strSearchTerms, 
									emails: intSaveEmail
								}, 
								function(txtData) {
									updateHeaderCounters(INT_COUNTER_SEARCHES, true);
									jQuery.facebox(txtData)
								})
			});
		} else {
			alert(STR_STANDARD_ERROR + strErrorText);
		}
	}
	
	function toggleResultsPane() {
		if (!boolToggleInProgress) {
			boolToggleInProgress		= true;
			$("#map_hideshow_button").removeClass("map_hideshow_button_show");
			$("#map_hideshow_button").removeClass("map_hideshow_button_hide");

			if (boolResultsVisible) {
				boolResultsVisible		= false;
				$("#map_hideshow_button").addClass("map_hideshow_button_show");
				$("#map_loader_object").css("left", "446px");
				
				if ($.browser.msie) {
					$("#map_results").hide();
					$("#map_frame").css("width", "957px");
					$("#map_frame").css("minWidth", "957px");
					$("#map_frame").css("maxWidth", "957px");
					$("#map_object").css("width", "947px");
					$("#map_object").css("minWidth", "947px");
					$("#map_object").css("maxWidth", "947px");
					boolToggleInProgress		= false;
				} else {
					$("#map_results").animate({width: "1px", minWidth: "1px", maxWidth: "1px"}, INT_MAPHIDE_ANIMATION_SPEED, "linear", function() { $("#map_results").hide(); boolToggleInProgress = false; });
					$("#map_frame").animate({width: "957px", minWidth: "957px", maxWidth: "957px"}, INT_MAPHIDE_ANIMATION_SPEED, "linear");
					$("#map_object").animate({width: "947px", minWidth: "947px", maxWidh: "947px"}, INT_MAPHIDE_ANIMATION_SPEED, "linear");
				}
			} else {
				boolResultsVisible		= true;
				$("#map_hideshow_button").addClass("map_hideshow_button_hide");
				$("#map_loader_object").css("left", "312px");

				if ($.browser.msie) {
					$("#map_results").show();
					$("#map_frame").css("width", "689px");
					$("#map_frame").css("minWidth", "689px");
					$("#map_frame").css("maxWidth", "689px");
					$("#map_object").css("width", "679px");
					$("#map_object").css("minWidth", "679px");
					$("#map_object").css("maxWidth", "679px");
					boolToggleInProgress		= false;
				} else {
					$("#map_results").show();
					$("#map_results").animate({width: "271px", minWidth: "271px", maxWidth: "271px"}, INT_MAPHIDE_ANIMATION_SPEED, "linear", function() { boolToggleInProgress = false; });
					$("#map_frame").animate({width: "689px", minWidth: "689px", maxWidth: "689px"}, INT_MAPHIDE_ANIMATION_SPEED, "linear");
					$("#map_object").animate({width: "679px", minWidth: "679px", maxWidh: "679px"}, INT_MAPHIDE_ANIMATION_SPEED, "linear");	
				}
			}
		}
	}
	