var states = new Array();
states.push([0,'',0]);
        states.push(new Array('226', 'Alaska (AK)', '1'));
        states.push(new Array('226', 'Alabama (AL)', '2'));
        states.push(new Array('226', 'American Samoa (AS)', '3'));
        states.push(new Array('226', 'Arizona (AZ)', '4'));
        states.push(new Array('226', 'Arkansas (AR)', '5'));
        states.push(new Array('226', 'California (CA)', '6'));
        states.push(new Array('226', 'Colorado (CO)', '7'));
        states.push(new Array('226', 'Connecticut (CT)', '8'));
        states.push(new Array('226', 'Delaware (DE)', '9'));
        states.push(new Array('226', 'District of Columbia (DC)', '10'));
        states.push(new Array('226', 'Federated States of Micronesia (FM)', '11'));
        states.push(new Array('226', 'Florida (FL)', '12'));
        states.push(new Array('226', 'Georgia (GA)', '13'));
        states.push(new Array('226', 'Guam (GU)', '14'));
        states.push(new Array('226', 'Hawaii (HI)', '15'));
        states.push(new Array('226', 'Idaho (ID)', '16'));
        states.push(new Array('226', 'Illinois (IL)', '17'));
        states.push(new Array('226', 'Indiana (IN)', '18'));
        states.push(new Array('226', 'Iowa (IA)', '19'));
        states.push(new Array('226', 'Kansas (KS)', '20'));
        states.push(new Array('226', 'Kentucky (KY)', '21'));
        states.push(new Array('226', 'Louisiana (LA)', '22'));
        states.push(new Array('226', 'Maine (ME)', '23'));
        states.push(new Array('226', 'Marshall Islands (MH)', '24'));
        states.push(new Array('226', 'Maryland (MD)', '25'));
        states.push(new Array('226', 'Massachusetts (MA)', '26'));
        states.push(new Array('226', 'Michigan (MI)', '27'));
        states.push(new Array('226', 'Minnesota (MN)', '28'));
        states.push(new Array('226', 'Mississippi (MS)', '29'));
        states.push(new Array('226', 'Missouri (MO)', '30'));
        states.push(new Array('226', 'Montana (MT)', '31'));
        states.push(new Array('226', 'Nebraska (NE)', '32'));
        states.push(new Array('226', 'Nevada (NV)', '33'));
        states.push(new Array('226', 'New Hampshire (NH)', '34'));
        states.push(new Array('226', 'New Jersey (NJ)', '35'));
        states.push(new Array('226', 'New Mexico (NM)', '36'));
        states.push(new Array('226', 'New York (NY)', '37'));
        states.push(new Array('226', 'North Carolina (NC)', '38'));
        states.push(new Array('226', 'North Dakota (ND)', '39'));
        states.push(new Array('226', 'Northern Mariana Islands (MP)', '40'));
        states.push(new Array('226', 'Ohio (OH)', '41'));
        states.push(new Array('226', 'Oklahoma (OK)', '42'));
        states.push(new Array('226', 'Oregon (OR)', '43'));
        states.push(new Array('226', 'Palau (PW)', '44'));
        states.push(new Array('226', 'Pennsylvania (PA)', '45'));
        states.push(new Array('226', 'Puerto Rico (PR)', '46'));
        states.push(new Array('226', 'Rhode Island (RI)', '47'));
        states.push(new Array('226', 'South Carolina (SC)', '48'));
        states.push(new Array('226', 'South Dakota (SD)', '49'));
        states.push(new Array('226', 'Tennessee (TN)', '50'));
        states.push(new Array('226', 'Texas (TX)', '51'));
        states.push(new Array('226', 'Utah (UT)', '52'));
        states.push(new Array('226', 'Vermont (VT)', '53'));
        states.push(new Array('226', 'Virgin Islands (VI)', '54'));
        states.push(new Array('226', 'Virginia (VA)', '55'));
        states.push(new Array('226', 'Washington (WA)', '56'));
        states.push(new Array('226', 'West Virginia (WV)', '57'));
        states.push(new Array('226', 'Wisconsin (WI)', '58'));
        states.push(new Array('226', 'Wyoming (WY)', '59'));
        states.push(new Array('226', 'Armed Forces Africa (AE)', '60'));
        states.push(new Array('226', 'Armed Forces Americas (except Canada) (AA)', '61'));
        states.push(new Array('226', 'Armed Forces Canada (AE)', '62'));
        states.push(new Array('226', 'Armed Forces Europe (AE)', '63'));
        states.push(new Array('226', 'Armed Forces Middle East (AE)', '64'));
        states.push(new Array('226', 'Armed Forces Pacific (AP)', '65'));
        states.push(new Array('38', 'Alberta (AB)', '66'));
        states.push(new Array('38', 'British Columbia (BC)', '67'));
        states.push(new Array('38', 'Manitoba (MB)', '68'));
        states.push(new Array('38', 'New Brunswick (NB)', '69'));
        states.push(new Array('38', 'Newfoundland and Labrador (NL)', '70'));
        states.push(new Array('38', 'Nova Scotia (NS)', '71'));
        states.push(new Array('38', 'Northwest Territories (NT)', '72'));
        states.push(new Array('38', 'Nunavut (NU)', '73'));
        states.push(new Array('38', 'Ontario (ON)', '74'));
        states.push(new Array('38', 'Prince Edward Island (PE)', '75'));
        states.push(new Array('38', 'Quebec (QC)', '76'));
        states.push(new Array('38', 'Saskatchewan (SK)', '77'));
        states.push(new Array('38', 'Yukon (YT)', '78'));
        states.push(new Array('13', 'Australian Capital Territory (ACT)', '79'));
        states.push(new Array('13', 'New South Wales (NSW)', '80'));
        states.push(new Array('13', 'Northern Territory (NT)', '81'));
        states.push(new Array('13', 'Queensland (QLD)', '82'));
        states.push(new Array('13', 'South Australia (SA)', '83'));
        states.push(new Array('13', 'Tasmania (TAS)', '84'));
        states.push(new Array('13', 'Victoria (VIC)', '85'));
        states.push(new Array('13', 'Western Australia (WA)', '86'));

        function countrySelected() {
          country_id = formCountry.val();
          state_id = formState.val();
          options = new Array();
          options.length = 0;
          jQuery.each(states, function(index, state) {
            if (state[0] == country_id) {
              options[options.length] = new Option(state[1], state[2], state[2] == state_id);
            }
          });
          if (options.length == 0) {
            formState.parents('li').hide();
            formStateText.parents('li').show();
          } else {
            formState.parents('li').show();
            formStateText.parents('li').hide();
          }
        }

        function stateSelected() {
          country_id = formCountry.val();
          state_id = formState.val();
          if (states[state_id][0] != country_id) {
            formCountry.val(states[state_id][0])
          }
          countrySelected();
        }

        function focusOnState() {
          $('input[id$=state_text],select[id$=state_id]').filter(":visible").focus();
        }

        $(function() {
          formCountry = $('select[id$=country_id]');
          formState = $('select[id$=state_id]');
          formStateText = $('input[id$=state_text]');
          formCountry.change(function() {
            countrySelected();
            focusOnState();
          });
          formState.change(function() {
            stateSelected();
          });
          countrySelected();
        });
