// javascripts/dynamic_states.js.erb var states = new Array(); states.push(new Array('United States', 'Alabama', 1)); states.push(new Array('United States', 'Alaska', 2)); states.push(new Array('Canada', 'Alberta', 3)); states.push(new Array('United States', 'Arizona', 4)); states.push(new Array('United States', 'Arkansas', 5)); states.push(new Array('Canada', 'British Columbia', 6)); states.push(new Array('United States', 'California', 7)); states.push(new Array('United States', 'Colorado', 8)); states.push(new Array('United States', 'Connecticut', 9)); states.push(new Array('United States', 'Delaware', 10)); states.push(new Array('United States', 'District of Columbia', 11)); states.push(new Array('United States', 'Florida', 12)); states.push(new Array('United States', 'Georgia', 13)); states.push(new Array('United States', 'Hawaii', 14)); states.push(new Array('United States', 'Idaho', 15)); states.push(new Array('United States', 'Illinois', 16)); states.push(new Array('United States', 'Indiana', 17)); states.push(new Array('United States', 'Iowa', 18)); states.push(new Array('United States', 'Kansas', 19)); states.push(new Array('United States', 'Kentucky', 20)); states.push(new Array('United States', 'Louisiana', 22)); states.push(new Array('United States', 'Maine', 23)); states.push(new Array('Canada', 'Manitoba', 24)); states.push(new Array('United States', 'Maryland', 25)); states.push(new Array('United States', 'Massachusetts', 26)); states.push(new Array('United States', 'Michigan', 27)); states.push(new Array('United States', 'Minnesota', 28)); states.push(new Array('United States', 'Mississippi', 29)); states.push(new Array('United States', 'Missouri', 30)); states.push(new Array('United States', 'Montana', 31)); states.push(new Array('United States', 'Nebraska', 32)); states.push(new Array('United States', 'Nevada', 33)); states.push(new Array('Canada', 'New Brunswick', 34)); states.push(new Array('United States', 'New Hampshire', 35)); states.push(new Array('United States', 'New Jersey', 36)); states.push(new Array('United States', 'New Mexico', 37)); states.push(new Array('United States', 'New York', 38)); states.push(new Array('Canada', 'Newfoundland', 39)); states.push(new Array('United States', 'North Carolina', 40)); states.push(new Array('United States', 'North Dakota', 41)); states.push(new Array('Canada', 'Northwest Territories', 42)); states.push(new Array('Canada', 'Nova Scotia', 43)); states.push(new Array('Canada', 'Nunavut', 44)); states.push(new Array('United States', 'Ohio', 45)); states.push(new Array('United States', 'Oklahoma', 46)); states.push(new Array('Canada', 'Ontario', 47)); states.push(new Array('United States', 'Oregon', 48)); states.push(new Array('United States', 'Pennsylvania', 49)); states.push(new Array('Canada', 'Prince Edward Island', 50)); states.push(new Array('United States', 'Puerto Rico', 51)); states.push(new Array('Canada', 'Quebec', 52)); states.push(new Array('United States', 'Rhode Island', 53)); states.push(new Array('Canada', 'Saskatchewan', 54)); states.push(new Array('United States', 'South Carolina', 55)); states.push(new Array('United States', 'South Dakota', 56)); states.push(new Array('United States', 'Tennessee', 57)); states.push(new Array('United States', 'Texas', 58)); states.push(new Array('United States', 'Utah', 59)); states.push(new Array('United States', 'Vermont', 60)); states.push(new Array('United States', 'Viginia', 61)); states.push(new Array('United States', 'Washington', 62)); states.push(new Array('United States', 'West Virginia', 63)); states.push(new Array('United States', 'Wisconsin', 64)); states.push(new Array('United States', 'Wyoming', 65)); states.push(new Array('Canada', 'Yukon', 66)); states.push(new Array('', '', 67)); function countrySelected() { var country_id = $('customer_country').getValue(); var state_id = $('customer_state_province_id').getValue(); var options = $('customer_state_province_id').options; options.length = 0; options[options.length] = new Option('Select a State', ''); states.each(function(state) { if (state[0] == country_id) { options[options.length] = new Option(state[1], state[2]); if(state[2] == state_id) { options[options.length-1].selected = true; } } }); if (options.length == 1) { $('customer_state_province_id').readOnly = true; } else { $('customer_state_province_id').readOnly = false; } } document.observe('dom:loaded', function() { countrySelected(); $('customer_country').observe('change', countrySelected); });