function getChildrens(sender, suffix)
{
	suffix = (typeof(suffix) == 'undefined') ? '' : suffix;

	var stateDiv = document.getElementById('stateDiv' + suffix);
	var cityDiv = document.getElementById('cityDiv' + suffix);
	var metroDiv = document.getElementById('metroDiv' + suffix);
	var country = document.getElementById('country' + suffix);
	var selectedCountryIndex = country.selectedIndex - 1;

	if (selectedCountryIndex == -1)
	{
		stateDiv.style.display = 'none';
		document.getElementById('state' + suffix).selectedIndex = 0;

		cityDiv.style.display = 'none';
		document.getElementById('city' + suffix).selectedIndex = 0;

		if (metroDiv != null)
		{
			metroDiv.style.display = 'none';
			document.getElementById('metro' + suffix).selectedIndex = 0;
		}
	}
	else
	{
		/* states */
		if (sender == 'country')
		{
			document.getElementById('cityDiv').style.visibility = "visible";
			var state = document.getElementById('state' + suffix);
			var countryId = c[selectedCountryIndex][0];

			if (countryId == USA_Id && state)
			{
				var selectedStateIndex = state.selectedIndex - 1;
				if (selectedStateIndex == -1)
				{
					addOptions('state', c[selectedCountryIndex][2], '', suffix);
				}

				stateDiv.style.display = 'block';
			}
			else
			{
				state.selectedIndex = 0;
				stateDiv.style.display = 'none';
			}

			if (metroDiv != null)
			{
				metroDiv.style.display = 'none';
			}
		}

		/* cities */
		if (sender == 'country' || sender == 'state')
		{
			var state = document.getElementById('state' + suffix);
			var selectedStateIndex = state.selectedIndex - 1;

			if (typeof(selectedStateIndex) != 'undefined')
			{
				if (selectedStateIndex > -1)
				{
					var citiesArray = c[selectedCountryIndex][2][selectedStateIndex][2];
				}
				else
				{
					var citiesArray = c[selectedCountryIndex][3];
				}
			}

			if (citiesArray.length > 0)
			{
				addOptions('city', citiesArray, '', suffix);
				cityDiv.style.display = 'block';
			}
			else
			{
				document.getElementById('city' + suffix).options.length = 1;
				cityDiv.style.display = 'none';
			}
		}

		/* metro */
		if (sender == 'city')
		{
			document.getElementById('metroDiv').style.visibility = "visible";
			var state = document.getElementById('state' + suffix);
			var city = document.getElementById('city' + suffix);
			
			var selectedStateIndex = state.selectedIndex - 1;
			var selectedCityIndex = city.selectedIndex - 1;

			if (typeof(selectedCityIndex) != 'undefined' && selectedCityIndex > -1)
			{
				if (selectedStateIndex > -1)
				{
					var metroArray = c[selectedCountryIndex][2][selectedStateIndex][2][selectedCityIndex][2];
				}
				else
				{
					var metroArray = c[selectedCountryIndex][3][selectedCityIndex][2];
				}
			}

			if (typeof(metroArray) != 'undefined' && metroArray.length > 0)
			{
				addOptions('metro', metroArray, '', suffix);
				metroDiv.style.display = 'block';
			}
			else
			{
				if (metroDiv != null)
				{
					document.getElementById('metro' + suffix).options.length = 1;
					metroDiv.style.display = 'none';
				}
			}
		}
	}
}

function cleanUpCities(array)
{
	var a = [];
	for (var i = 0; i < array.length; i++)
	{
		a[i] = [array[i][0], array[i][1]];
	}

	return a;
}

function addOptions(name, array, selected, suffix)
{
	suffix = (typeof(suffix) == 'undefined') ? '' : suffix;

	var p = document.getElementById(name+'Div'+suffix);
	p.style.display = 'none';

	if (typeof(array) != 'undefined' && array.length > 0)
	{
		var element = document.getElementById(name+suffix);
		element.options.length = 1;
		for (var i = 0; i < array.length; i++)
		{
			element.options[i+1] = new Option(array[i][1], array[i][0]);
			
			if (array[i][0] == selected)
			{
				element.options[i+1].selected = true;
			}
		}

		if (p)
		{
			p.style.display = (array.length == 0 ? 'none' : 'block');
		}
	}
}

function getStates()
{
	var country = document.getElementById("country");

	if (country && country.selectedIndex > 0)
	{
		return c[country.selectedIndex-1][2];
	}
	return [];
}

function getCities()
{
	var country = document.getElementById("country");
	var state = document.getElementById("state");

	if (country && country.selectedIndex > 0)
	{
		if (state && state.selectedIndex > 0)
		{
			return c[country.selectedIndex-1][2][state.selectedIndex-1][2];
		}
		else
		{
			return c[country.selectedIndex-1][3];
		}
	}
	return [];
}

function getMetro()
{
	var country = document.getElementById("country");
	var state = document.getElementById("state");
	var city = document.getElementById("city");
	
	if (country && country.selectedIndex > 0)
	{
		if (state && state.selectedIndex > 0)
		{
			if (city && city.selectedIndex > 0)
			{
				return c[country.selectedIndex-1][2][state.selectedIndex-1][2][city.selectedIndex-1][2];
			}
		}
		else
		{
			if (city && city.selectedIndex > 0)
			{
				return c[country.selectedIndex-1][3][city.selectedIndex-1][2];
			}
		}
	}
	return [];
}