var States = 	new Object();
// Countries with states.
States['AU'] = new Array();  // Australia
States['NZ'] = new Array();  // New Zealand
States['US'] = new Array();  // United States
States['CA'] = new Array();  // Canada
	
// Australia
States['AU']['ACT'] = 	"Australian Capital Territory";
States['AU']['NSW'] = 	"New South Wales";
States['AU']['NT'] = 	"Northern Territory";
States['AU']['QLD'] = 	"Queensland";
States['AU']['SA'] = 	"South Australia";
States['AU']['TAS'] = 	"Tasmania";
States['AU']['WA'] = 	"Western Australia";
States['AU']['VIC'] = 	"Victoria";

// New Zealand
States['NZ']['AU'] = 			"Auckland";
States['NZ']['BP'] = 		"Bay of Plenty";
States['NZ']['CA'] = 			"Canterbury";
States['NZ']['CH']=			"Christchurch";
States['NZ']['CO']=			"Coromandel";
States['NZ']['DU']=				"Dunedin";
States['NZ']['EA']=				"Eastland";
States['NZ']['FI']=				"Fiordland";
States['NZ']['HB']=			"Hawkes Bay";
States['NZ']['HO']=			"Horowhenua";
States['NZ']['MN']=				"Manawatu";
States['NZ']['MR']=			"Marlborough";
States['NZ']['MT']=				"Mt Cook";
States['NZ']['NE']=					"Nelson";
States['NZ']['NO']=				"Northland";
States['NZ']['OT']=					"Otago";
States['NZ']['QU']=			"Queenstown";
States['NZ']['RO']=				"Roturua";
States['NZ']['RU']=				"Ruapehu";
States['NZ']['SO']=				"Southland";
States['NZ']['TR']=				"Taranaki";
States['NZ']['TU']=					"Taupo";
States['NZ']['WI']=				"Waikato";
States['NZ']['WR']=				"Wairarapa";
States['NZ']['WN']=					"Wanaka";
States['NZ']['WG']=				"Wanganui";
States['NZ']['WE']=			"Wellington";
States['NZ']['WC']=			"West Coast";

	// US
States['US']['AL'] = 'Alabama';
States['US']['AK'] = 'Alaska';
States['US']['AS'] = 'American Samoa';
States['US']['AZ'] = 'Arizona';
States['US']['AR'] = 'Arkansas';
States['US']['AA'] = 'Armed Forces - USA/Canada';
States['US']['AE'] = 'Armed Forces - Europe';
States['US']['AP'] = 'Armed Forces - Pacific';
States['US']['CA'] = 'California';
States['US']['CO'] = 'Colorado';
States['US']['CT'] = 'Connecticut';
States['US']['DE'] = 'Delaware';
States['US']['DC'] = 'District of Columbia';
States['US']['FM'] = 'Federated States of Micronesia';
States['US']['FL'] = 'Florida';
States['US']['GA'] = 'Georgia';
States['US']['GU'] = 'Guam';
States['US']['HI'] = 'Hawaii';
States['US']['ID'] = 'Idaho';
States['US']['IL'] = 'Illinois';
States['US']['IN'] = 'Indiana';
States['US']['IA'] = 'Iowa';
States['US']['KS'] = 'Kansas';
States['US']['KY'] = 'Kentucky';
States['US']['LA'] = 'Louisiana';
States['US']['ME'] = 'Maine';
States['US']['MH'] = 'Marshall Islands';
States['US']['MD'] = 'Maryland';
States['US']['MA'] = 'Massachusetts';
States['US']['MI'] = 'Michigan';
States['US']['MN'] = 'Minnesota';
States['US']['MS'] = 'Mississippi';
States['US']['MO'] = 'Missouri';
States['US']['MT'] = 'Montana';
States['US']['NE'] = 'Nebraska';
States['US']['NV'] = 'Nevada';
States['US']['NH'] = 'New Hampshire';
States['US']['NJ'] = 'New Jersey';
States['US']['NM'] = 'New Mexico';
States['US']['NY'] = 'New York';
States['US']['NC'] = 'North Carolina';
States['US']['ND'] = 'North Dakota';
States['US']['MP'] = 'Northern Mariana Island';
States['US']['OH'] = 'Ohio';
States['US']['OK'] = 'Oklahoma';
States['US']['OR'] = 'Oregon';
States['US']['PW'] = 'Palau Island';
States['US']['PA'] = 'Pennsylvania';
States['US']['PE'] = 'Prince Edward Island';
States['US']['PR'] = 'Puerto Rico';
States['US']['RI'] = 'Rhode Island';
States['US']['SC'] = 'South Carolina';
States['US']['SD'] = 'South Dakota';
States['US']['TN'] = 'Tennessee';
States['US']['TX'] = 'Texas';
States['US']['UT'] = 'Utah';
States['US']['VT'] = 'Vermont';
States['US']['VI'] = 'Virgin Islands';
States['US']['VA'] = 'Virginia';
States['US']['WA'] = 'Washington';
States['US']['WV'] = 'West Virginia';
States['US']['WI'] = 'Wisconsin';
States['US']['WY'] = 'Wyoming';

// Canada
States['CA']['AB'] = 'Alberta';
States['CA']['BC'] = 'British Columbia';
States['CA']['MB'] = 'Manitoba';
States['CA']['NB'] = 'New Brunswick';
States['CA']['NF'] = 'Newfoundland';
States['CA']['NT'] = 'Northwest Territories';
States['CA']['NS'] = 'Nova Scotia';
States['CA']['NU'] = 'Nunavut';
States['CA']['ON'] = 'Ontario';
States['CA']['QC'] = 'Quebec';
States['CA']['SK'] = 'Saskatchewan';
States['CA']['YT'] = 'Yukon Territory';

function ClearCity(obj){
	obj.city.length=1;
	obj.city.options[0].text="Click to select";
	obj.city.options[0].value="";
}

function ClearState(obj){
	obj.state.length=1;
	obj.state.options[0].text="Click to select";
	obj.state.options[0].value="";
}

// Hide the City and State select boxes.
function HideDiv(){
	// document.getElementById('StateSelect').style.visibility = 'hidden'; 
	//document.getElementById('CitySelect').style.visibility = 'hidden'; 
	// document.getElementById('StateSelect').style.display = 'none'; 
	// document.getElementById('CitySelect').style.display = 'none'; 
}

function ShowDiv(){
	// document.getElementById('StateSelect').style.visibility = 'visible'; 
	//document.getElementById('CitySelect').style.visibility = 'visible'; 
	// document.getElementById('StateSelect').style.display = 'block'; 
	// document.getElementById('CitySelect').style.display = 'block'; 
}


function SelectState(obj,selectedValue){
	obj.state.selectedIndex = 0;
	var Country = obj.country.options[obj.country.selectedIndex].value;

	if (Country in States){  // AU,NZ,US or CN
		ShowDiv();
		var optionsArray = new Array();
		optionsArray = States[Country];
		PopulateSelectOptions(obj.state,optionsArray,selectedValue);
//		obj.elements['state_input'].value='';
		obj.elements['state'].style.display = "";
		obj.elements['state_input'].style.display = "none";		
		obj.elements['state_input'].disabled=1;
		obj.elements['state'].disabled = 0;

	}else{
	obj.elements['state'].style.display = "none";
	obj.elements['state'].disabled =1;
	obj.elements['state_input'].disabled = 0;
	obj.elements['state_input'].style.display = "";		
//	obj.elements['state_input'].value='';
		ClearState(obj);
		HideDiv();
	}
}

function PopulateSelectOptions(obj,options,selectedValue){
	var key;
	var optionsCount = 1;
	var selectedIndex = 0;

	// Get Number of select options from array
	for (key in options){
		if (key == selectedValue){
			selectedIndex = optionsCount;
		}
		optionsCount ++;
	}

	// Build obj.options array.
	obj.length = optionsCount;
	obj.options[0].value = '';
	obj.options[0].text = 'Click To Select';

	var index = 1;
	for (key in options){
		obj.options[index].value = key;
		obj.options[index].text = options[key];
		index ++;
	}

	obj.options.selectedIndex = selectedIndex;
}

