var canadianStates = {
'AB': 'Alberta',
'BC': 'British Columbia',
'MB': 'Manitoba',
'NB': 'New Brunswick',
'NF': 'Newfoundland',
'NT': 'Northwest Territories',
'NS': 'Nova Scotia',
'NU': 'Nunavut Territory',
'ON': 'Ontario',
'PE': 'Prince Edward Island',
'QC': 'Quebec',
'SK': 'Saskatchewan',
'YT': 'Yukon Territory'
};

var usStates = {
'AL': 'Alabama',
'AK': 'Alaska',
'AZ': 'Arizona',
'AR': 'Arkansas',
'CA': 'California',
'CO': 'Colorado',
'CT': 'Connecticut',
'DE': 'Delaware',
'FL': 'Florida',
'GA': 'Georgia',
'HI': 'Hawaii',
'ID': 'Idaho',
'IL': 'Illinois',
'IN': 'Indiana',
'IA': 'Iowa',
'KS': 'Kansas',
'KY': 'Kentucky',
'LA': 'Louisiana',
'MA': 'Massachusetts',
'MD': 'Maryland',
'ME': 'Maine',
'MI': 'Michigan',
'MN': 'Minnesota',
'MS': 'Mississippi',
'MO': 'Missouri',
'MT': 'Montana',
'NE': 'Nebraska',
'NH': 'New Hampshire',
'NJ': 'New Jersey',
'NM': 'New Mexico',
'NV': 'Nevada',
'NY': 'New York',
'NC': 'North Carolina',
'ND': 'North Dakota',
'OH': 'Ohio',
'OK': 'Oklahoma',
'OR': 'Oregon',
'PA': 'Pennsylvania',
'RI': 'Rhode Island',
'SC': 'South Carolina',
'SD': 'South Dakota',
'TN': 'Tennessee',
'TX': 'Texas',
'UT': 'Utah',
'VA': 'Virginia',
'VT': 'Vermont',
'WA': 'Washington (state)',
'DC': 'Washington (DC)',
'WI': 'Wisconsin',
'WV': 'West Virginia',
'WY': 'Wyoming'
};

var switzStates = {
'Aargau': 'Aargau',
'Appenzell': 'Appenzell',
'Basel': 'Basel',
'Geneve': 'Geneve',
'Glarus': 'Glarus',
'Jura': 'Jura',
'Luzern': 'Luzern',
'Neuchatel': 'Neuchatel',
'Schaffhausen': 'Schaffhausen',
'Schwyz': 'Schwyz',
'Solothurn': 'Solothurn',
'St-Gall': 'St-Gall',
'Tessin': 'Tessin',
'Thurgau': 'Thurgau',
'Unterwald': 'Unterwald',
'Uri': 'Uri',
'Vaud': 'Vaud',
'Zug': 'Zug',
'Zurich': 'Zurich'
};

function fillCombo(id,values,lng,state) {
	if($(id)) {
 	$(id).options.length=0;

 	$(id).options[0] = new Option("Please select ...","");
 	if(lng=="fr") $(id).options[0] = new Option("Veuillez sélectionner ...","");
 	if(lng=="de") $(id).options[0] = new Option("Bitte auswahlen ...","");

 	i = 1;
   	$each(values, function(countryCode,countryName) {
   		$(id).options[i] = new Option(countryCode,countryName);
   		if($(id).options[i].value == state)
			$(id).options[i].style["selected"] = "selected";
   		i++;
   	});
	}
}

function hideInputs(object,lng,state){
   var menuIndex = object.options[object.selectedIndex].value;
   if (menuIndex == 'USA') {
    	$("hidestate").setStyles('display: block;');
    	fillCombo("state",usStates,lng,state);
    	stateMandatory(true);
   } else if(menuIndex == 'Canada') {
   		$("hidestate").setStyles('display: block;');
   		fillCombo("state",canadianStates,lng,state);
   		stateMandatory(true);
   } else if(menuIndex == 'Switzerland' || menuIndex == 'Suisse') {
   		$("hidestate").setStyles('display: block;');
   		fillCombo("state",switzStates,lng,state);
   		stateMandatory(true);
   } else {
   		$("hidestate").setStyles('display: none;');
   		// when loading the form, the stateMandatory function is not available
   		if(validFields) {
   			stateMandatory(false);
   		}
  }
}