var states = new Array();
states.push(new Array('Australia', 'ACT'));
states.push(new Array('Australia', 'NSW'));
states.push(new Array('Australia', 'NT'));
states.push(new Array('Australia', 'QLD'));
states.push(new Array('Australia', 'SA'));
states.push(new Array('Australia', 'TAS'));
states.push(new Array('Australia', 'VIC'));
states.push(new Array('Australia', 'WA'));
states.push(new Array('United Kingdom', 'Avon'));
states.push(new Array('United Kingdom', 'Bedfordshire'));
states.push(new Array('United Kingdom', 'Berkshire'));
states.push(new Array('United Kingdom', 'Borders'));
states.push(new Array('United Kingdom', 'Buckinghamshire'));
states.push(new Array('United Kingdom', 'Cambridgeshire'));
states.push(new Array('United Kingdom', 'Central'));
states.push(new Array('United Kingdom', 'Cheshire'));
states.push(new Array('United Kingdom', 'Cleveland'));
states.push(new Array('United Kingdom', 'Clwyd'));
states.push(new Array('United Kingdom', 'Cornwall'));
states.push(new Array('United Kingdom', 'County Antrim'));
states.push(new Array('United Kingdom', 'County Armagh'));
states.push(new Array('United Kingdom', 'County Down'));
states.push(new Array('United Kingdom', 'County Fermanagh'));
states.push(new Array('United Kingdom', 'County Londonderry'));
states.push(new Array('United Kingdom', 'County Tyrone'));
states.push(new Array('United Kingdom', 'Cumbria'));
states.push(new Array('United Kingdom', 'Derbyshire'));
states.push(new Array('United Kingdom', 'Devon'));
states.push(new Array('United Kingdom', 'Dorset'));
states.push(new Array('United Kingdom', 'Dumfries and Galloway'));
states.push(new Array('United Kingdom', 'Durham'));
states.push(new Array('United Kingdom', 'Dyfed'));
states.push(new Array('United Kingdom', 'East Sussex'));
states.push(new Array('United Kingdom', 'Essex'));
states.push(new Array('United Kingdom', 'Fife'));
states.push(new Array('United Kingdom', 'Gloucestershire'));
states.push(new Array('United Kingdom', 'Grampian'));
states.push(new Array('United Kingdom', 'Greater Manchester'));
states.push(new Array('United Kingdom', 'Gwent'));
states.push(new Array('United Kingdom', 'Gwynedd County'));
states.push(new Array('United Kingdom', 'Hampshire'));
states.push(new Array('United Kingdom', 'Herefordshire'));
states.push(new Array('United Kingdom', 'Hertfordshire'));
states.push(new Array('United Kingdom', 'Highlands and Islands'));
states.push(new Array('United Kingdom', 'Humberside'));
states.push(new Array('United Kingdom', 'Isle of Wight'));
states.push(new Array('United Kingdom', 'Kent'));
states.push(new Array('United Kingdom', 'Lancashire'));
states.push(new Array('United Kingdom', 'Leicestershire'));
states.push(new Array('United Kingdom', 'Lincolnshire'));
states.push(new Array('United Kingdom', 'Lothian'));
states.push(new Array('United Kingdom', 'Merseyside'));
states.push(new Array('United Kingdom', 'Mid Glamorgan'));
states.push(new Array('United Kingdom', 'Norfolk'));
states.push(new Array('United Kingdom', 'North Yorkshire'));
states.push(new Array('United Kingdom', 'Northamptonshire'));
states.push(new Array('United Kingdom', 'Northumberland'));
states.push(new Array('United Kingdom', 'Nottinghamshire'));
states.push(new Array('United Kingdom', 'Oxfordshire'));
states.push(new Array('United Kingdom', 'Powys'));
states.push(new Array('United Kingdom', 'Rutland'));
states.push(new Array('United Kingdom', 'Shropshire'));
states.push(new Array('United Kingdom', 'Somerset'));
states.push(new Array('United Kingdom', 'South Glamorgan'));
states.push(new Array('United Kingdom', 'South Yorkshire'));
states.push(new Array('United Kingdom', 'Staffordshire'));
states.push(new Array('United Kingdom', 'Strathclyde'));
states.push(new Array('United Kingdom', 'Suffolk'));
states.push(new Array('United Kingdom', 'Surrey'));
states.push(new Array('United Kingdom', 'Tayside'));
states.push(new Array('United Kingdom', 'Tyne and Wear'));
states.push(new Array('United Kingdom', 'Warwickshire'));
states.push(new Array('United Kingdom', 'West Glamorgan'));
states.push(new Array('United Kingdom', 'West Midlands'));
states.push(new Array('United Kingdom', 'West Sussex'));
states.push(new Array('United Kingdom', 'West Yorkshire'));
states.push(new Array('United Kingdom', 'Wiltshire'));
states.push(new Array('United Kingdom', 'Worcestershire'));
states.push(new Array('United States of America', 'AK'));
states.push(new Array('United States of America', 'AL'));
states.push(new Array('United States of America', 'AR'));
states.push(new Array('United States of America', 'AZ'));
states.push(new Array('United States of America', 'CA'));
states.push(new Array('United States of America', 'CO'));
states.push(new Array('United States of America', 'CT'));
states.push(new Array('United States of America', 'DE'));
states.push(new Array('United States of America', 'FL'));
states.push(new Array('United States of America', 'GA'));
states.push(new Array('United States of America', 'HI'));
states.push(new Array('United States of America', 'IA'));
states.push(new Array('United States of America', 'ID'));
states.push(new Array('United States of America', 'IL'));
states.push(new Array('United States of America', 'IN'));
states.push(new Array('United States of America', 'KS'));
states.push(new Array('United States of America', 'KY'));
states.push(new Array('United States of America', 'LA'));
states.push(new Array('United States of America', 'MA'));
states.push(new Array('United States of America', 'MD'));
states.push(new Array('United States of America', 'ME'));
states.push(new Array('United States of America', 'MI'));
states.push(new Array('United States of America', 'MN'));
states.push(new Array('United States of America', 'MO'));
states.push(new Array('United States of America', 'MS'));
states.push(new Array('United States of America', 'MT'));
states.push(new Array('United States of America', 'NC'));
states.push(new Array('United States of America', 'ND'));
states.push(new Array('United States of America', 'NE'));
states.push(new Array('United States of America', 'NH'));
states.push(new Array('United States of America', 'NJ'));
states.push(new Array('United States of America', 'NM'));
states.push(new Array('United States of America', 'NV'));
states.push(new Array('United States of America', 'NY'));
states.push(new Array('United States of America', 'OH'));
states.push(new Array('United States of America', 'OK'));
states.push(new Array('United States of America', 'OR'));
states.push(new Array('United States of America', 'PA'));
states.push(new Array('United States of America', 'RI'));
states.push(new Array('United States of America', 'SC'));
states.push(new Array('United States of America', 'SD'));
states.push(new Array('United States of America', 'TN'));
states.push(new Array('United States of America', 'TX'));
states.push(new Array('United States of America', 'UT'));
states.push(new Array('United States of America', 'VA'));
states.push(new Array('United States of America', 'VT'));
states.push(new Array('United States of America', 'WA'));
states.push(new Array('United States of America', 'WI'));
states.push(new Array('United States of America', 'WV'));
states.push(new Array('United States of America', 'WY'));

function countrySelected(currently_selected_state) 
{
  country = $('user_country').getValue();
  options = $('user_my_state').options;
  options.length = 0;
  options[options.length] = new Option('Please select', ''); 
  states.each(function(state) {
    if (state[0] == country) { 
      index = options.length;
      options[index] = new Option(state[1], state[1]); 
      if (state[1] == currently_selected_state) {
        options[index].selected = true;
      }
    }
  });
  if (options.length == 1) {
    $('state_field').hide();
  } else {
    $('state_field').show();
  }
}

document.observe('dom:loaded', function() {
  country = $('user_country').getValue();
  if (country == 'Please select') {
    $('state_field').hide();
  } else {
    current_state = $('user_my_state').getValue();
    countrySelected(current_state);
  }
  $('user_country').observe('change', countrySelected);
});
