/* =============================================================================
$Id: regions.js 6176 2007-04-30 10:37:29Z howardb $
$Date: 2007-04-30 11:37:29 +0100 (Mon, 30 Apr 2007) $
$Revision: 6176 $
$Author: howardb $
Copyright (c) 2005 Conchango Ltd. All rights reserved.
Web Application Version: [BUILD_16.07.32_2_071011]
Release Date: [12-October-2007]
============================================================================= */
var regionControl =
{
	regions			: null,
	rSelectContainer: 'regionDropDownContainer',
	rSelect			: 'regionDropDown',
	cSelect			: 'countryDropDown',

	setup: function(regions)
	{
		this.regions = regions;

		/* Find first propety name in associative array.
		 *
		 * (This is a nasty hack to find the first item,
		 * but their appears to be no other way of doing
		 * it in Javascript) */
		for (var r in regions)
		{
			var region = r;
			break;
		}

		this.writeSelect();
		this._populateSelect(this.rSelect,this.listRegions());
		this._populateSelect(this.cSelect,this.regions[region]);
	},

	writeSelect: function()
	{
		var outStr = '<select name="'+this.rSelect+'" id="'+this.rSelect+'"';
		outStr    += ' onchange="regionControl.updateSelect(\''+this.cSelect+'\',this.options[this.selectedIndex].text)">'
		outStr    += '</select>';

		$(this.rSelectContainer).innerHTML = outStr;
	},

	listRegions: function()
	{
		var rList = new Array;

		for(region in this.regions)
			rList[rList.length] = region;

		return (rList)
	},

	updateSelect: function(select,region)
	{
		this._populateSelect(select, this.regions[region]);
	},

	_populateSelect: function(select,list)
	{
		var listLen = list.length;
		var i = -1;

		var dropdown = $(select);

		//nuke list
		dropdown.length = 1;

	 	while (listLen != ++i)
			dropdown.options[i] = new Option(list[i],list[i],false,false);
	}
}