/*
* LocationSelector v0.1
*/
(function($) {
$.fn.locationSelector = function(options) {
var settings = $.extend({
'countryField' : '#country',
'countryDefault' : 'United States',
'countryEmpty' : true,
'regionField' : '#region',
'regionEmpty' : true,
'regionClass' : ''
}, options);
var countryField = $(settings.countryField);
var regionField = $(settings.regionField);
var regionFieldName = regionField.attr("name");
var countryOptions = new Array(
'Afghanistan','Albania','Algeria','American Samoa','Andorra','Angola','Anguilla','Antigua and Barbuda','Argentina','Armenia','Aruba','Australia',
'Austria','Azerbaijan Republic','Bahamas','Bahrain','Bangladesh','Barbados','Belarus','Belgium','Belize','Benin','Bermuda','Bhutan','Bolivia',
'Bosnia and Herzegovina','Botswana','Brazil','British Virgin Islands','Brunei Darussalam','Bulgaria','Burkina Faso','Burma','Burundi','Cambodia',
'Cameroon','Canada','Cape Verde Islands','Cayman Islands','Central African Republic','Chad','Chile','China','Colombia','Comoros',
'Congo, Democratic Republic of the','Congo, Republic of the','Cook Islands','Costa Rica','Cote d Ivoire (Ivory Coast)','Croatia, Republic of',
'Cyprus','Czech Republic','Denmark','Djibouti','Dominica','Dominican Republic','Ecuador','Egypt','El Salvador','Equatorial Guinea','Eritrea',
'Estonia','Ethiopia','Falkland Islands (Islas Malvinas)','Fiji','Finland','France','French Guiana','French Polynesia','Gabon Republic','Gambia',
'Georgia','Germany','Ghana','Gibraltar','Greece','Greenland','Grenada','Guadeloupe','Guam','Guatemala','Guernsey','Guinea','Guinea-Bissau','Guyana',
'Haiti','Honduras','Hong Kong','Hungary','Iceland','India','Indonesia','Ireland','Israel','Italy','Jamaica','Jan Mayen','Japan','Jersey','Jordan',
'Kazakhstan','Kenya','Kiribati','Korea, South','Kuwait','Kyrgyzstan','Laos','Latvia','Lebanon','Liechtenstein','Lithuania','Luxembourg','Macau',
'Macedonia','Madagascar','Malawi','Malaysia','Maldives','Mali','Malta','Marshall Islands','Martinique','Mauritania','Mauritius','Mayotte','Mexico',
'Micronesia','Moldova','Monaco','Mongolia','Montserrat','Morocco','Mozambique','Namibia','Nauru','Nepal','Netherlands','Netherlands Antilles','New Caledonia',
'New Zealand','Nicaragua','Niger','Nigeria','Niue','Norway','Oman','Pakistan','Palau','Panama','Papua New Guinea','Paraguay','Peru','Philippines',
'Poland','Portugal','Puerto Rico','Qatar','Romania','Russian Federation','Rwanda','Saint Helena','Saint Kitts-Nevis','Saint Lucia','Saint Pierre and Miquelon',
'Saint Vincent and the Grenadines','San Marino','Saudi Arabia','Senegal','Seychelles','Sierra Leone','Singapore','Slovakia','Slovenia','Solomon Islands',
'Somalia','South Africa','Spain','Sri Lanka','Suriname','Svalbard','Swaziland','Sweden','Switzerland','Syria','Tahiti','Taiwan','Tajikistan','Tanzania',
'Thailand','Togo','Tonga','Trinidad and Tobago','Tunisia','Turkey','Turkmenistan','Turks and Caicos Islands','Tuvalu','Uganda','Ukraine','United Arab Emirates',
'United Kingdom','United States','Uruguay','Uzbekistan','Vanuatu','Vatican City State','Venezuela','Vietnam','Wallis and Futuna','Western Sahara',
'Western Samoa','Yemen','Yugoslavia','Zambia','Zimbabwe');
var regionOptions = {
"Australia": new Array("Australian Capital Territory","New South Wales","Northern Territory","Queensland","South Australia","Tasmania","Victoria","Western Australia"),
"Canada": new Array('Alberta','British Columbia','Manitoba','New Brunswick','Newfoundland and Labrador','Northwest Territories','Nova Scotia','Nunavut','Ontario','Prince Edward Island','Quebec','Saskatchewan','Yukon'),
"France": new Array('Alsace','Aquitaine','Auvergne','Basse-Normandie','Bourgogne','Bretagne','Centre','Champagne-Ardenne','Corse','Franche-Comté','Guadeloupe','Guyanne','Haute-Normandie','Île-de-France','Languedoc-Rousillon','Limousin','Lorraine','Martinique','Midi-Pyrénées','Nord-Pas-de-Calais','Pays de la Loire','Picardie','Poitou-Charentes','Provence-Alpes-Côte d\'Azur','Réunion','Rhône-Alpes'),
"United Kingdom": new Array('Aberdeen City','Aberdeenshire','Angus','Antrim','Argyll and Bute','Armagh','Avon','Bedfordshire','Berkshire','Blaenau Gwent','Borders','Bridgend','Bristol','Buckinghamshire','Caerphilly','Cambridgeshire','Cardiff','Carmarthenshire','Ceredigion','Channel Islands','Cheshire','Clackmannan','Cleveland','Conwy','Cornwall','Cumbria','Denbighshire','Derbyshire','Devon','Dorset','Down','Dumfries and Galloway','Dundee (City of)','Durham','East Ayrshire','East Dunbartonshire','East Lothian','East Renfrewshire','East Riding of Yorkshire','East Sussex','Edinburgh (City of)','Essex','Falkirk','Fermanagh','Fife Glasgow (City of)','Flintshire','Gloucestershire','Greater Manchester','Gwynedd','Hampshire','Herefordshire','Hertfordshire','Highland','Humberside','Humberside','Inverclyde','Isle of Anglesey','Isle of Man','Isle of Wight','Isles of Scilly','Kent','Lancashire','Leicestershire','Lincolnshire','London','Londonderry','Merseyside','Merthyr Tydfil','Middlesex','Midlothian','Monmouthshire','Moray','Neath Port Talbot','Newport','Norfolk','North Ayrshire','North Lanarkshire','North Yorkshire','Northamptonshire','Northumberland','Nottinghamshire','Orkney','Oxfordshire','Pembrokeshire','Perthshire and Kinross','Powys','Renfrewshire','Rhondda Cynon Taff','Rutland','Shetland','Shropshire','Somerset','South Ayrshire','South Lanarkshire','South Yorkshire','Staffordshire','Stirling','Suffolk','Surrey','Swansea','The Vale of Glamorgan','Torfaen','Tyne and Wear','Tyrone','Warwickshire','West Dunbartonshire','West Lothian','West Midlands','West Sussex','West Yorkshire','Western Isles','Wiltshire','Worcestershire','Wrexham'),
"United States": new Array('Alaska','Alabama','American Samoa','Arkansas','Armed Forces Africa','Armed Forces Europe','Armed Forces Pacific','Arizona','California','Colorado','Connecticut','District of Columbia','Delaware','Federated States of Micronesia','Florida','Georgia','Guam','Hawaii','Iowa','Idaho','Illinois','Indiana','Kansas','Kentucky','Louisiana','Massachusetts','Northern Mariana Islands','Marshall Islands','Maryland','Maine','Michigan','Minnesota','Missouri','Mississippi','Montana','North Carolina','North Dakota','Nebraska','New Hampshire','New Jersey','New Mexico','Nevada','New York','Ohio','Oklahoma','Oregon','Pennsylvania','Palau','Puerto Rico','Rhode Island','South Carolina','South Dakota','Tennessee','Texas','Utah','Virginia','Virgin Islands','Vermont','Washington','Wisconsin','West Virgina','Wyoming')
}
return this.each(function() {
var oldCountry = countryField.val() || settings.countryDefault;
if(settings.countryEmpty) {
countryField.append(
$('')
);
}
for(i=0; i<=countryOptions.length; i++) {
if(countryOptions[i]) {
countryField.append(
$('')
);
}
}
countryField.val(oldCountry);
function updateRegion() {
var selectedCountry = countryField.val();
var oldRegion = regionField.val();
if(typeof regionOptions[selectedCountry] != 'undefined') {
var regions = regionOptions[selectedCountry];
var newSelect = $('');
if(regionField.prop("placeholder")) {
newSelect.prop("placeholder", regionField.prop("placeholder"));
}
regionField.replaceWith(newSelect);
regionField = newSelect;
if(settings.regionEmpty) {
regionField.append(
$('')
);
}
for(i=0; i<=regions.length; i++) {
if(regions[i]) {
var option = $('');
regionField.append(option);
}
}
regionField.val(oldRegion);
} else {
var newText = $('');
regionField.replaceWith(newText);
regionField = newText;
}
}
countryField.change(updateRegion);
updateRegion();
}
)};
})(jQuery);