Geography = (function()
{
	var _ = 
	{
		GetRegion : function(id)
		{
			var region;
			$.each(dbn.regions, function() { if (this.id == id) region = this; } );
			return region;
		},
		GetDistricts : function(quarter_id)
		{
			var result = new Array();
			jQuery.each(dbn.districts, function() { if (this.quarter_id == quarter_id) result.push(this); } );
			return result;
		},
		isInCSV : function(value, csv)
		{
			var pattern = new RegExp("(?:^|,)"+value+"(?:$|,)");
			return pattern.test(csv);
		},
		districtId : undefined
	};
	var _p = 
	{
		regionId : undefined,
		RegionChange : function()
		{
			var region_id = $(this).val();
			if (_p.regionId != region_id)
			{
				var region = _.GetRegion(region_id);
				if (region != undefined)
					if (region.url !== '')
						document.location = region.url;
			}
			/*
			$('#quarter_id').val('');
			$('#quarter_id').change();
			*/
		},
		
		QuartersChange : function()
		{
			switch ($(this).val())
			{
				case '' : 
					$('#district_id').html('');
					$('#districts').hide();
					break;
				default :
					var options = '<option value="">' + dbn.lang('label:All') + '</option>';
					var arr = _.GetDistricts($(this).val());
					jQuery.each(arr, function() { 
						options += '<option value="' + this.id + '"' + ((this.id == _.districtId) ? ' selected="selected"' : '') + '>' + this.name + '</option>';
					} );
					$('#district_id').html(options);
					$('#districts').hide();
					$('#districts').show();
					break;
			}
		},
		
		Setup : function()
		{
			_.districtId = $("#district_id").val();
			$('#region_id').click(_p.RegionChange);
			$('#quarter_id').change(_p.QuartersChange);
			$('#quarter_id').change();
		}
	};
	return _p;
})();

$(document).ready(function(){ Geography.Setup(); });
