/*
Functions used internally
*/

function ClearSelect(SelectBox)
{
	for(i=0; i < SelectBox.options.length; i)
	{
		SelectBox.options[i] = null;
	}
}

function AddOption(oSelect, oOption, iIndex)
{
	if(window.clientInformation != null)
	{
		if(window.clientInformation.appName == 'Microsoft Internet Explorer')
		{
			if(iIndex != null)
			{
				oSelect.add(oOption,iIndex);
			}
			else
			{
				oSelect.add(oOption);
			}
		}
		else
		{
			if(iIndex != null)
			{
				oSelect.add(oOption,oSelect.options[iIndex]);
			}
			else
			{
				oSelect.add(oOption,null);
			}
		}
	}
	else
	{
			if(iIndex != null)
			{
				oSelect.add(oOption,oSelect.options[iIndex]);
			}
			else
			{
				oSelect.add(oOption,null);
			}
	}
}

function GetAreaIndexFromID(AreaID)
{
	for(var i=0; i < geo_AreaArray.length;i++)
	{
		if(geo_AreaArray[i][geo_AreaID] == AreaID)
		{
			return i;
		}
	}	
}

function LoadStateWithSelectFullName(stateSelect, SelectedState, FullName)
{
	ClearSelect(stateSelect);
	var newOption;
	newOption = document.createElement("OPTION");
	newOption.text = "Select State";
	newOption.value = "0";
	if(SelectedState == "0")
	{
		newOption.selected = true;
	}
	AddOption(stateSelect,newOption,null);
	for(i=0; i < geo_StateArray.length; i++)
	{
		var newOption1 = document.createElement("OPTION");
		
		if(FullName == true)
		{
			newOption1.text = geo_StateArray[i][geo_StateName];
		}
		else
		{
			newOption1.text = geo_StateArray[i][geo_StateInitial];
		}
		newOption1.value = geo_StateArray[i][geo_StateID];
		if(geo_StateArray[i][geo_StateID] == SelectedState)
		{
			newOption1.selected = true;
		}
		AddOption(stateSelect,newOption1,null);
	}
}

function LoadCity2(CitySelect, AreaID, Clear, Multi)
{
	if(Clear == true)
	{
		ClearSelect(CitySelect);
	}
	if(AreaID == "-1")
	{
			var newOption;
			newOption = document.createElement("OPTION");
			newOption.text = "---";
			newOption.value = "-1";
			AddOption(CitySelect,newOption,null);
	}
	else
	{
		if(Multi == false)
		{
			var newOption;
//			newOption = document.createElement("OPTION");
//			newOption.text = "Select";
//			newOption.value = "-1";
//			AddOption(CitySelect,newOption,null);

			newOption = document.createElement("OPTION");
			newOption.text = "--- All " + geo_AreaArray[GetAreaIndexFromID(AreaID)][geo_AreaName] + " Cities ---";
			newOption.value = AreaID + "-ALL";
			AddOption(CitySelect,newOption,null);
		}
		else
		{
			var newOption;

			newOption = document.createElement("OPTION");
			newOption.text = "--- All " + geo_AreaArray[GetAreaIndexFromID(AreaID)][geo_AreaName] + " Cities ---";
			newOption.value = AreaID + "-ALL";
			newOption.selected = true;
			AddOption(CitySelect,newOption,null);
		}

		for(i=0; i < geo_CityArray.length; i++)
		{
			if(geo_CityArray[i][geo_CityAreaID] == AreaID)
			{
				newOption = document.createElement("OPTION");
				newOption.text = geo_CityArray[i][geo_CityName];
				newOption.value = AreaID + '-' + geo_CityArray[i][geo_CityID];
				AddOption(CitySelect,newOption,null);
			}
		}
	}	
}

function LoadCityWithSelect(CitySelect, AreaID, Clear, Multi, SelectedCities)
{
	var AreaIndex = -1;
	if(Clear == true)
	{
		ClearSelect(CitySelect);
	}
	if(AreaID == "-1")
	{
			var newOption;
			newOption = document.createElement("OPTION");
			newOption.text = "---";
			newOption.value = "-1";
			AddOption(CitySelect,newOption,null);
	}
	else
	{
		if(Multi == false)
		{
			var newOption;
			newOption = document.createElement("OPTION");
			newOption.text = "Select";
			newOption.value = "-1";
			AddOption(CitySelect,newOption,null);

			var newOption1 = document.createElement("OPTION");
			newOption.text = "All";
			newOption.value = "0";
			AddOption(CitySelect,newOption1,null);
		}
		else
		{
			var newOption;

			newOption = document.createElement("OPTION");
			newOption.text = "--- All " + geo_AreaArray[GetAreaIndexFromID(AreaID)][geo_AreaName] + " Cities ---";
			newOption.value = AreaID + "-ALL";
			newOption.selected = true;
			AddOption(CitySelect,newOption,null);
			AreaIndex = CitySelect.options.length-1;
		}
		var CitySelected = 0;

		for(i=0; i < geo_CityArray.length; i++)
		{
			if(geo_CityArray[i][geo_CityAreaID] == AreaID)
			{
				var newOption1 = document.createElement("OPTION");
				newOption1.text = geo_CityArray[i][geo_CityName];
				newOption1.value = AreaID + '-' + geo_CityArray[i][geo_CityID];
				if(SelectedCities.indexOf(geo_CityArray[i][geo_CityID]) >= 0)
				{
					newOption1.selected = true;
					CitySelected++;
				}
				AddOption(CitySelect,newOption1,null);
			}
		}
		if(CitySelected > 0)
		{
			CitySelect[AreaIndex].selected = false;
		}
	}	
}

/*
Functions used in Default and QuickSearch
*/
function LoadState(stateSelect)
{
	var newOption;

	for(i=0; i < geo_StateArray.length; i++)
	{
		newOption = document.createElement("OPTION");
		newOption.text = geo_StateArray[i][geo_StateInitial];
		newOption.value = geo_StateArray[i][geo_StateID];
		AddOption(stateSelect,newOption,null);
	}
}

function LoadStateSmallWithSelect(stateSelect, SelectedStateID)
{
	ClearSelect(stateSelect);
	var newOption;
	newOption = document.createElement("OPTION");
	newOption.text = "Select";
	newOption.value = "0";
	if(SelectedStateID == "0")
	{
		newOption.selected = true;
	}
	AddOption(stateSelect,newOption,null);
	for(i=0; i < geo_StateArray.length; i++)
	{
		var newOption1 = document.createElement("OPTION");
		
		newOption1.text = geo_StateArray[i][geo_StateInitial];
		newOption1.value = geo_StateArray[i][geo_StateID];
		if(geo_StateArray[i][geo_StateID] == SelectedStateID)
		{
			newOption1.selected = true;
		}
		AddOption(stateSelect,newOption1,null);
	}
}

function LoadArea(AreaSelect, StateID)
{
	for(i=0; i < AreaSelect.options.length; i)
	{
		AreaSelect.options[i] = null;
	}
	if(StateID == "-1")
	{
			var newOption;
			newOption = document.createElement("OPTION");
			newOption.text = "---";
			newOption.value = "-1";
			AddOption(AreaSelect,newOption,null);
	}
	else
	{
		var newOption;
		newOption = document.createElement("OPTION");
		newOption.text = "Select";
		newOption.value = "-1";
		AddOption(AreaSelect,newOption,null);
		for(i=0; i < geo_AreaArray.length; i++)
		{
			if(geo_AreaArray[i][geo_AreaStateID] == StateID)
			{
				newOption = document.createElement("OPTION");
				newOption.text = geo_AreaArray[i][geo_AreaName];
				newOption.value = geo_AreaArray[i][geo_AreaID];
				AddOption(AreaSelect,newOption,null);
			}
		}
	}
}

function LoadCity(CitySelect, AreaID)
{
	LoadCity2(CitySelect,AreaID,true, false);
}

/*
Functions used in SearchCounty and SearchMetro
*/
function LoadAreaMultiSelect(AreaSelect, StateID)
{
	ClearSelect(AreaSelect);

	if(StateID == "-1")
	{
			var newOption;
			newOption = document.createElement("OPTION");
			newOption.text = "---";
			newOption.value = "-1";
			AddOption(AreaSelect,newOption,null);
	}
	else
	{
		var newOption;
		for(i=0; i < geo_AreaArray.length; i++)
		{
			if(geo_AreaArray[i][geo_AreaStateID] == StateID)
			{
				newOption = document.createElement("OPTION");
				newOption.text = geo_AreaArray[i][geo_AreaName];
				newOption.value = geo_AreaArray[i][geo_AreaID];
				AddOption(AreaSelect,newOption,null);
			}
		}
	}
}

function LoadMultiSelectCities(CitySelect, AreaSelect)
{
	var allCityListCount = 0;
	
	ClearSelect(CitySelect);

	for(var i = 0; i < AreaSelect.length; i++)
	{
		if(AreaSelect.options[i].selected == true)
		{

			LoadCity2(CitySelect, AreaSelect.options[i].value, false,true)
			allCityListCount++;			
		}
	}

	if(allCityListCount > 0)
	{
		newOption = document.createElement("OPTION");
		newOption.text = "----- All Cities -----";
		newOption.value = "ALL";
		newOption.selected = true;
		AddOption(CitySelect,newOption,0);
	}
	else
	{
	
		newOption = document.createElement("OPTION");
		newOption.text = "Please select a county.";
		newOption.value = "-1";
		newOption.selected = false;
		AddOption(CitySelect,newOption,0);
	}

	
}

function GetAreaIDFromName(StateID, AreaName)
{
	var returnValue = 0;
	for(var i=0; i < geo_AreaArray.length; i++)
	{
		if(geo_AreaArray[i][geo_AreaStateID] == StateID && geo_AreaArray[i][geo_AreaName] == AreaName)
		{
			returnValue = geo_AreaArray[i][geo_AreaID];
		}
	}
	return returnValue;
}

/*
Functions used in ReviseSearch, PropertySearch, and SearchAdvanced
*/
function ScrollSelectedIntoView(selectbox)
{
	var area = document.getElementById(selectbox);
	if(area.selectedIndex >= 0 && area.options.length > area.size)
	{
		var index = area.selectedIndex;
		index = index + area.size - 1;
		if(index >= area.options.length)
		{
			index = area.options.length-1;
		}
		if(area[index].selected == true)
		{
			area[index].selected = false;
			area[index].selected = true;
		}
		else
		{
			area[index].selected = true;
			area[index].selected = false;
		}
	}
}

function LoadStateWithSelect(stateSelect, SelectedState)
{
	LoadStateWithSelectFullName(stateSelect, SelectedState, false);
}

function LoadAreaMultiSelectWithSelect(AreaSelect, StateID, AreasSelected)
{
	ClearSelect(AreaSelect);

	if(StateID == "0")
	{
			var newOption;
			newOption = document.createElement("OPTION");
			newOption.text = "Please select a State.";
			newOption.value = "0";
			AddOption(AreaSelect,newOption,null);
	}
	else
	{
		var newOption;
		newOption = document.createElement("OPTION");
		newOption.text = "Select County";
		newOption.value = "0";
		AddOption(AreaSelect,newOption,null);
		for(i=0; i < geo_AreaArray.length; i++)
		{
			if(geo_AreaArray[i][geo_AreaStateID] == StateID)
			{
				newOption = document.createElement("OPTION");
				newOption.text = geo_AreaArray[i][geo_AreaName];
				newOption.value = geo_AreaArray[i][geo_AreaID];
				if(AreasSelected.indexOf(geo_AreaArray[i][geo_AreaID]) >= 0)
				{
					newOption.selected = true;
				}
				else
				{
					newOption.selected = false;
				}
				AddOption(AreaSelect,newOption,null);
			}
		}
	}
}

function LoadMultiSelectCitiesWithSelect(CitySelect, AreaSelect, SelectedCities)
{
	var allCityListCount = 0;
	
	ClearSelect(CitySelect);

	for(var i = 0; i < AreaSelect.length; i++)
	{
		if(AreaSelect.options[i].selected == true && AreaSelect.options[i].value != "0")
		{

			LoadCityWithSelect(CitySelect, AreaSelect.options[i].value, false,true, SelectedCities)
			allCityListCount++;			
		}
	}

	if(allCityListCount > 0)
	{
		var newOption = document.createElement("OPTION");
		newOption.text = "----- All Cities -----";
		newOption.value = "ALL";
		if(SelectedCities.length <= 0 || SelectedCities == "0")
		{
			newOption.selected = true;
		}
		AddOption(CitySelect,newOption,0);
	}
	else
	{
	
		var newOption = document.createElement("OPTION");
		newOption.text = "Please select a county.";
		newOption.value = "-1";
		newOption.selected = false;
		AddOption(CitySelect,newOption,null);
	}
}

function SetPriceFromDefault(PriceSelect, AreaID)
{
	var AreaIndex = GetAreaIndexFromID(AreaID);
	var Price = geo_AreaArray[AreaIndex][geo_AreaPriceFrom];
	if(Price > 0)
	{
		for(i=0; i < PriceSelect.options.length; i++)
		{
			if(PriceSelect.options[i].value > Price)
			{
				PriceSelect.options[i-1].selected = true;
				break;
			}
		}
	}
}

function SetPriceToDefault(PriceSelect, AreaID)
{
	var AreaIndex = GetAreaIndexFromID(AreaID);
	var Price = geo_AreaArray[AreaIndex][geo_AreaPriceTo];
	if(Price < 2147483647)
	{
		for(i=0; i < PriceSelect.options.length; i++)
		{
			if(PriceSelect.options[i].value > Price)
			{
				PriceSelect.options[i].selected = true;
				break;
			}
		}
	}
	else
	{
		PriceSelect.options[PriceSelect.options.length-1].selected = true;
	}
}


