
function populateCountries (sel,val) {
    if (!sel) alert ('bad call to populateCountries "sel" is undefined');
	while (sel.options.length > 0) {
		sel.options[sel.options.length-1] = null;
	}
	for (var i=0;i< countries.length;i++) {
		sel.options[i] = new Option(countries[i].name, countries[i].abbreviation);
		if (countries[i].abbreviation == val) sel.selectedIndex = i;
	}
}

function populateRegions (countrysel, regionsel, val) {
	while (regionsel.options.length > 0) {
		regionsel.options[regionsel.options.length-1] = null;
	}
	var country = countries[countrysel.selectedIndex];
	
	var regionNames = country.getRegionNames();
	var regionAbbrs = country.getRegionAbbrs();
	
	for (var i=0;i < regionNames.length;i++) {
		regionsel.options[i] = new Option(regionNames[i], regionAbbrs[i]);
		if (regionAbbrs[i] == val) regionsel.selectedIndex = i;
	}
}


function Country (n,abbr) {
	this.regions = new Array();
	this.name = n;
	this.abbreviation = abbr;
	
	// member functions
	this.addRegion = Country_addRegion;
	this.getRegionNames = Country_getRegionNames;
	this.getRegionAbbrs = Country_getRegionAbbrs;
}

function Country_addRegion (n,abbr) {
	this.regions[this.regions.length] = new Region (n,abbr);
}

function Country_getRegionNames () {
	// returns an array of strings
	var ret = new Array();
	for (var i=0;i < this.regions.length;i++) {
		var region = this.regions[i];
		ret[i] = region.name;
	}
	return ret;
}

function Country_getRegionAbbrs () {
	// returns an array of strings
	var ret = new Array();
	for (var i=0;i < this.regions.length;i++) {
		var region = this.regions[i];
		ret[i] = region.abbreviation;
	}
	return ret;
}

function Region (n,abbr) {
	this.name = n;
	this.abbreviation = abbr;
}

countries = new Array();
countries[0] = new Country('United States','US');;
 
 
var us = countries[0];

us.addRegion('--Select a State--','');
us.addRegion('Alabama','AL');
us.addRegion('Alaska','AK');
us.addRegion('Arizona','AZ');
us.addRegion('Arkansas','AR');
us.addRegion('California','CA');
us.addRegion('Colorado','CO');
us.addRegion('Connecticut','CT');
us.addRegion('Delaware','DE');
us.addRegion('District of Columbia','DC');
us.addRegion('Florida','FL');
us.addRegion('Georgia','GA');
us.addRegion('Hawaii','HI');
us.addRegion('Idaho','ID');
us.addRegion('Illinois','IL');
us.addRegion('Indiana','IN');
us.addRegion('Iowa','IA');
us.addRegion('Kansas','KS');
us.addRegion('Kentucky','KY');
us.addRegion('Louisiana','LA');
us.addRegion('Maine','ME');
us.addRegion('Maryland','MD');
us.addRegion('Massachusetts','MA');
us.addRegion('Michigan','MI');
us.addRegion('Minnesota','MN');
us.addRegion('Mississippi','MS');
us.addRegion('Missouri','MO');
us.addRegion('Montana','MT');
us.addRegion('Nebraska','NE');
us.addRegion('Nevada','NV');
us.addRegion('New Hampshire','NH');
us.addRegion('New Jersey','NJ');
us.addRegion('New Mexico','NM');
us.addRegion('New York','NY');
us.addRegion('North Carolina','NC');
us.addRegion('North Dakota','ND');
us.addRegion('Ohio','OH');
us.addRegion('Oklahoma','OK');
us.addRegion('Oregon','OR');
us.addRegion('Pennsylvania','PA');
us.addRegion('Rhode Island','RI');
us.addRegion('South Carolina','SC');
us.addRegion('South Dakota','SD');
us.addRegion('Tennessee','TN');
us.addRegion('Texas','TX');
us.addRegion('Utah','UT');
us.addRegion('Vermont','VT');
us.addRegion('Virginia','VA');
us.addRegion('Washington','WA');
us.addRegion('West Virginia','WV');
us.addRegion('Wisconsin','WI');
us.addRegion('Wyoming','WY');
us.addRegion('AE (Europe)','AE');
us.addRegion('AP (Pacific)','AP');
us.addRegion('AA (The Americas)','AA');

