// JavaScript Document
function display_loaded_layers()
{
	//Decalre local variables
	var loaded_layers;
	var current_layer_id;
	var current_layer;
	var base_layer; 
	
	//Set the default base layer 
	base_layer = "OS Basemap";
	
	//Loop through the loaded layers and set indication appropriately
	loaded_layers = map.layers;
	for (current_layer_id in loaded_layers)
	{
		//Get a handle on the current layer
		current_layer = loaded_layers[current_layer_id];
		//alert("Loaded Layer = " + loaded_layers[current_layer_id].name);
		
		//Is this a base layer 
		if(current_layer.isBaseLayer == true && current_layer.visibility == true)
		{
			//Store the name of the current base layer
			base_layer = current_layer.name;
		}
		else
		{
			//If the layer is visible then show it as selected
			if(current_layer.visibility == true)
			{
				//Show that the layer is on
				display_selected_overlay(current_layer.name);
				
				//If this is the aerial map then the base layer is hybrid
				if(current_layer.name == "Aerial Photos")
				{
					//The base layer is 'Hybrid'
					base_layer = "Hybrid";
				}
				
			}
			
		}
		
		
	}
	
	//Show which base layer is on
	display_selected_base_layer(base_layer);
	
}

function display_selected_base_layer(layer_name)
{
	//Declare local variables
	var radio_button_name = "";
	var radio_button; 
	
	//Determine the name of the checkbox to check
	switch(layer_name)
	{
		
		case "OS Basemap":
			radio_button_name = "osbasemap";
			break;			
		case "Aerial Base Map":
			radio_button_name = "aerialbasemap";
			break;			
		case "Hybrid":
			radio_button_name = "hybrid";
			break;			
	} 
	
	//Get a handle on the radio buttin to show selected
	if(radio_button_name != "")
	{
		radio_button = document.getElementById(radio_button_name);
		if(radio_button)
		{
			radio_button.checked = true;
		}
	}
	
}

function get_selected_layers() 
{
	var params = "";
	var layers = "overlays=";
	var base_layers = "base=";

	var first_base_layer = true;
	var first_layer = true;
	
	for(var i=0; i< map.layers.length; i++) 
	{
		var layer = map.layers[i];

		if (!layer.isBaseLayer) 
		{
			//Is the layer visible 
			if(layer.visibility)
			{
				if(first_layer)
				{
					layers += layer.name;
					first_layer = false; 
				}
				else
				{
					layers += "," + layer.name;
				}
			}

		}
		else
		{
			//Is the layer visible
			if(layer.visibility)
			{
				if(first_base_layer)
				{
					base_layers += layer.name;
					first_base_layer = false; 
				}
				else
				{
					base_layers += "," + layer.name;
				}
			}

		}
	}

	params = base_layers + "&" + layers; 

	return params;

}


function setBaseLayer(layer_name)
{	
	//Declare local variables 
	var new_base_layer;
	
	//Are we switching on the hybrid base map (OS plus Aerial)
	if(layer_name == "Hybrid Basemap")
	{
		//Hybrid layer - switch on OS basemap + Aerial Overlay

		//Get a handle on the OS base layer
		new_base_layer = map.getLayersByName("OS Basemap")[0];	
		if(new_base_layer) 
		{

			//Set the new base layer
			map.setBaseLayer(new_base_layer);
		}
		 
		//Need to switch on the Aerial Photos overlay
		setOverlay("Aerial Photos", true);
					
	}
	else
	{

		//Get a handle on the specified layer 
		new_base_layer = map.getLayersByName(layer_name)[0];
		if(new_base_layer) 
		{

			//Set the new base layer
			map.setBaseLayer(new_base_layer);
		}
		
		//Need to switch off the Aerial Photos overlay
		setOverlay("Aerial Photos", false);
		
	}
	
}


function setOverlay(overlay_name, show)
{

	//Get a handle on the aerial photos overlay 
	var layer = map.getLayersByName(overlay_name)[0];	
	if(layer) 
	{
	
		//Set the overlay on/off
		layer.setVisibility(show);
	}
	
}
	
function reset()
{
	//Get a handle on the results base layer overlay 
	var base_layer = map.getLayersByName("Results Base Layer")[0];	
	if(base_layer) 
	{
	
		//Set the overlay on/off
		base_layer.setVisibility(false);
	}
	
	//Get a handle on the results layer overlay 
	var results_layer = map.getLayersByName("Results")[0];	
	if(results_layer) 
	{
	
		//Set the overlay on/off
		results_layer.setVisibility(false);
	}

	//Get a handle on the element used to display the search results	
	results_field = document.getElementById("show_results");
	if(results_field)
	{
		//results_field.innerHTML = info_results;
		results_field.innerHTML ="<p>&nbsp;</p>";
	}

	//Remove any popups
	var popups = map.popups;
	for(current_popup in popups)
	{
		map.removePopup(popups[current_popup]);
	}
	
}	

