var displayobj = "";
var SearchByObjArray = "";
var AdditionalRegionSelectBoxDisplayElementsArray = "";

function ShowMap(MapMode)
{
	
	var FlashQuerystring = "";
	
	if (MapMode != '')
	{
		FlashQuerystring = "mode=" + MapMode;
	}
	else
	{
		FlashQuerystring = "display=";
		
		if (document.theform.SaleRental[0].checked == true)
		{
			FlashQuerystring = FlashQuerystring + "S";
		}
		else if (document.theform.SaleRental[1].checked == true)
		{
			FlashQuerystring = FlashQuerystring + "R";
		}
	}
	
	if (FlashQuerystring != "")
	{
		FlashQuerystring = "?" + FlashQuerystring;
	}

	MapWindow = window.open ("/flash/PropertySearchMap/maps.asp" + FlashQuerystring,"MapWindow","width=700,height=480,location=no,status=no,scrollbars=no,menubar=no,titlebar=no,toolbar=no");
	MapWindow.focus();
} 
							
function MakeOptionSelected(SelectedRegionID,SelectBox)	
{

	for(var j=0;j<SelectBox.options.length;j++)
	{
		if (SelectBox.options[j].value == SelectedRegionID)
		{
			SelectBox.options[j].selected = true;
			
			return true;						
		}
		
	}
	
	return false;
}	

function SearchByObj(SaleRental,RegionTypeID,DisplayDivName)
{
	this.SaleRental = SaleRental;
	this.RegionTypeID = RegionTypeID;
	this.DisplayDivName = DisplayDivName;
}
							
function SortSelectInternal(IDsString,SaleRental)
{
	var IDsArray = IDsString.split("+");
	
	SetSearchByObjArray();
	
	var SelectedID;
	var FoundID;
	var SelectBoxToDisplay = "";
	
    //For each selected region id find it in one of the select boxes and select it
    for(i=0;i<IDsArray.length;i++)
    {
	 	SelectedID = IDsArray[i]
	 	
	 	FoundID = false;

	 	for (var j = 0; j < SearchByObjArray.length; j++)
	 	{
	 		if (SearchByObjArray[j].RegionTypeID != "" && SearchByObjArray[j].SaleRental == SaleRental)
	 		{	 	
	 			SelectBox = GetSelectBox(SearchByObjArray[j]);
	 			FoundID = MakeOptionSelected(SelectedID,SelectBox);
				
	 			if (FoundID == true)
	 			{
	 	
	 				if (SelectBoxToDisplay == "") //Display the first select box that we find a selected region id in
	 				{
	 					SelectBoxToDisplay = SelectBox;
	 				}
	 				break;
	 		
	 			}
	 		}
	 	}
	 	
	 
	}

	//Move the selected optoins to the to for each of the region select boxes
	for (k = 0; k < SearchByObjArray.length; k++)
	{
		if (SearchByObjArray[k].RegionTypeID != "")
		{	 	
			SelectBox = GetSelectBox(SearchByObjArray[k]);
			MoveSelectedOptionsToTop(SelectBox);

		}
	 	
	}	
	if(SelectBoxToDisplay == "")
	{
		SelectBoxToDisplay = GetSelectBox(SearchByObjArray[0])
	 	
	}
	
	return SelectBoxToDisplay.id;

}

function GetSelectBox(SearchByObj)
{
	return document.getElementById("RegionTypeSelect_" + SearchByObj.SaleRental + "_" + SearchByObj.RegionTypeID);
}

function ShowRegionSelectObj(DisplayDiv)
{
	SetAdditionalRegionSelectBoxDisplayElementsArray();
	SetSearchByObjArray();	
	
	//Hide Everything to start with
	
	var ObjToHide;
	
	for (var i = 0; i < SearchByObjArray.length; i++)
	{
		ObjToHide = document.getElementById(SearchByObjArray[i].DisplayDivName);
		ObjToHide.style.display = 'none';
	}
	
	// Then display the DisplayDiv

	document.getElementById(DisplayDiv).style.display = 'block';
	
	//If the selected object is a select box the show the additional elements
	
	var ShowAdditionalElements = false;
	
	for (var j = 0; j < SearchByObjArray.length; j++)
	{
	 	if (SearchByObjArray[j].RegionTypeID != "" && SearchByObjArray[j].DisplayDivName == DisplayDiv)
	 	{
	 		ShowAdditionalElements = true;
		}
	}	
	
	//Either display or hide the additional elements that should be display when a region select box is displayed - link to maps etc
	
	if (AdditionalRegionSelectBoxDisplayElementsArray != "")
	{
		for (var k = 0; k < AdditionalRegionSelectBoxDisplayElementsArray.length; k++)
		{
			ObjToHide = document.getElementById(AdditionalRegionSelectBoxDisplayElementsArray[k]);
			
			if (ShowAdditionalElements == true)
			{
				ObjToHide.style.display = 'block';
			}
			else
			{
				ObjToHide.style.display = 'none';
			}
		}
	}	
}


function MoveSelectedOptionsToTop(obj) 
{
 
	obj = (typeof obj == "string") ? document.getElementById(obj) : obj;
	if (obj.tagName.toLowerCase() != "select" && obj.length < 2)
	{
		return false;
	}
	var elements = new Array();
	var selelements = new Array();
	var text = "";
	var seltext = "";
	
	for (i=0; i<obj.length; i++) {
				if (obj[i].selected) {
					//alert(obj[i].text + ":" + obj[i].value + ":" + obj[i].selected +":"+obj.name);
					selelements[selelements.length] = new Array(obj[i].text, obj[i].value, obj[i].selected);
														
				} else if (!obj[i].selected){
	
					elements[elements.length] = new Array(obj[i].text, obj[i].value,  obj[i].selected);
					//text = text + "<OPTION value=" + obj[i].value + ">" + obj[i].text + "</OPTION>";
								
				}	
	}
			
	var len = selelements.length;
				
	for (i=0; i<obj.length; i++) {

		if (i < len){
							
			obj[i].text = selelements[i][0];
			obj[i].value = selelements[i][1];
			obj[i].selected = selelements[i][2];
		} else
		{ 	obj[i].text = elements[i-len][0];
			obj[i].value = elements[i-len][1];
			obj[i].selected = elements[i-len][2];
		}
	}
		
}
