/*
This list is in sync with Informa ~salesforce.com
Jeff Huffstetler
1.3 Includes all country List May not work with missing countries
*/


// State table
// 
// To edit the list, just delete a line or add a line.  Order is important.  The order 
// displayed is the order it appears on the drop down.
//
// Ok for some reason this works with the list from the org set
var state = '\
Australia:ACT:ACT|\
Australia:NSW:NSW|\
Australia:NT:NT|\
Australia:QLD:QLD|\
Australia:SA:SA|\
Australia:TAS:TAS|\
Australia:VIC:VIC|\
Australia:WA:WA|\
Austria:Burgenland:Burgenland|\
Austria:Carinthia:Carinthia|\
Austria:Lower Austria:Lower Austria|\
Austria:Salzburg:Salzburg|\
Austria:Styria:Styria|\
Austria:Tyrol:Tyrol|\
Austria:Upper Austria:Upper Austria|\
Austria:Vienna:Vienna|\
Austria:Vorarlberg:Vorarlberg|\
Brazil:Acre:Acre|\
Brazil:Alagoas:Alagoas|\
Brazil:Amapa:Amapa|\
Brazil:Amazon:Amazon|\
Brazil:Bahia:Bahia|\
Brazil:Brasilia:Brasilia|\
Brazil:Ceara:Ceara|\
Brazil:Espirito Santo:Espirito Santo|\
Brazil:Goias:Goias|\
Brazil:Maranhao:Maranhao|\
Brazil:Mato Grosso:Mato Grosso|\
Brazil:Mato Grosso do Sul:Mato Grosso do Sul|\
Brazil:Minas Gerais:Minas Gerais|\
Brazil:Para:Para|\
Brazil:Paraiba:Paraiba|\
Brazil:Parana:Parana|\
Brazil:Pernambuco:Pernambuco|\
Brazil:Piaui:Piaui|\
Brazil:Rio de Janeiro:Rio de Janeiro|\
Brazil:Rio Grande do Norte:Rio Grande do Norte|\
Brazil:Rio Grande do Sul:Rio Grande do Sul|\
Brazil:Rondonia:Rondonia|\
Brazil:Roraima:Roraima|\
Brazil:Santa Catarina:Santa Catarina|\
Brazil:Sao Paulo:Sao Paulo|\
Brazil:Sergipe:Sergipe|\
Brazil:Tocantins:Tocantins|\
Canada:AB:AB|\
Canada:BC:BC|\
Canada:MB:MB|\
Canada:NB:NB|\
Canada:NL:NL|\
Canada:NT:NT|\
Canada:NS:NS|\
Canada:NU:NU|\
Canada:ON:ON|\
Canada:PE:PE|\
Canada:QC:QC|\
Canada:SK:SK|\
Canada:YT:YT|\
Croatia:Bjelovarsko-bilogors:Bjelovarsko-bilogors|\
Croatia:Dubrovacko-neretvans:Dubrovacko-neretvans|\
Croatia:Istarska:Istarska|\
Croatia:Karlovacka:Karlovacka|\
Croatia:Koprivnicko-krizevac:Koprivnicko-krizevac|\
Croatia:Krapinsko-zagorska:Krapinsko-zagorska|\
Croatia:Licko-senjska:Licko-senjska|\
Croatia:Medjimurska:Medjimurska|\
Croatia:Osjecko-baranjska:Osjecko-baranjska|\
Croatia:Pozesko-slavonska:Pozesko-slavonska|\
Croatia:Rijecko-goranska:Rijecko-goranska|\
Croatia:Sibensko-kninska:Sibensko-kninska|\
Croatia:Sisacko-moslavacka:Sisacko-moslavacka|\
Croatia:Slavonskobrodska:Slavonskobrodska|\
Croatia:Splitsko-dalmatinska:Splitsko-dalmatinska|\
Croatia:Varazdinska:Varazdinska|\
Croatia:Viroviticko-podravac:Viroviticko-podravac|\
Croatia:Vukovarsko-srijemska:Vukovarsko-srijemska|\
Croatia:Zadarska:Zadarska|\
Croatia:Zagreb:Zagreb|\
Croatia:Zagrebacka:Zagrebacka|\
France:Corse-du-Nord:Corse-du-Nord|\
France:Corse-du-Sud:Corse-du-Sud|\
Hong Kong:Hong Kong Island:Hong Kong Island|\
Hong Kong:Kowloon:Kowloon|\
Hong Kong:New Territories:New Territories|\
Ireland:Carlow:Carlow|\
Ireland:Cavan:Cavan|\
Ireland:Clare:Clare|\
Ireland:Cork:Cork|\
Ireland:Donegal:Donegal|\
Ireland:Dublin:Dublin|\
Ireland:Galway:Galway|\
Ireland:Kerry:Kerry|\
Ireland:Kildare:Kildare|\
Ireland:Kilkenny:Kilkenny|\
Ireland:Laois:Laois|\
Ireland:Leitrim:Leitrim|\
Ireland:Limerick:Limerick|\
Ireland:Longford:Longford|\
Ireland:Louth:Louth|\
Ireland:Mayo:Mayo|\
Ireland:Meath:Meath|\
Ireland:Monaghan:Monaghan|\
Ireland:Offaly:Offaly|\
Ireland:Rosscommon:Rosscommon|\
Ireland:Sligo:Sligo|\
Ireland:Tipperary:Tipperary|\
Ireland:Waterford:Waterford|\
Ireland:Westmeath:Westmeath|\
Ireland:Wexford:Wexford|\
Ireland:Wicklow:Wicklow|\
Italy:Agriento:Agriento|\
Italy:Alessandria:Alessandria|\
Italy:Ancona:Ancona|\
Italy:Aosta:Aosta|\
Italy:Arezzo:Arezzo|\
Italy:Ascoli Piceno:Ascoli Piceno|\
Italy:Asti:Asti|\
Italy:Avellino:Avellino|\
Italy:Bari:Bari|\
Italy:Belluno:Belluno|\
Italy:Benevento:Benevento|\
Italy:Bergamo:Bergamo|\
Italy:Biella:Biella|\
Italy:Bologna:Bologna|\
Italy:Bolzano:Bolzano|\
Italy:Brescia:Brescia|\
Italy:Brindisi:Brindisi|\
Italy:Cagliari:Cagliari|\
Italy:Caltanisetta:Caltanisetta|\
Italy:Campobasso:Campobasso|\
Italy:Caserta:Caserta|\
Italy:Catania:Catania|\
Italy:Catanzaro:Catanzaro|\
Italy:Chieti:Chieti|\
Italy:Como:Como|\
Italy:Cosenza:Cosenza|\
Italy:Cremona:Cremona|\
Italy:Crotone:Crotone|\
Italy:Cuneo:Cuneo|\
Italy:Enna:Enna|\
Italy:Ferrara:Ferrara|\
Italy:Florence:Florence|\
Italy:Foggia:Foggia|\
Italy:Forli/Cesana:Forli/Cesana|\
Italy:Frosinone:Frosinone|\
Italy:Genova:Genova|\
Italy:Gorizia:Gorizia|\
Italy:Grosseto:Grosseto|\
Italy:Imperia:Imperia|\
Italy:Isernia:Isernia|\
Italy:La Spezia:La Spezia|\
Italy:LAquila:LAquila|\
Italy:Latina:Latina|\
Italy:Lecce:Lecce|\
Italy:Lecco:Lecco|\
Italy:Livorno:Livorno|\
Italy:Lodi:Lodi|\
Italy:Lucca:Lucca|\
Italy:Macerata:Macerata|\
Italy:Mantova:Mantova|\
Italy:Massa Carrara:Massa Carrara|\
Italy:Matera:Matera|\
Italy:Messina:Messina|\
Italy:Milan:Milan|\
Italy:Modena:Modena|\
Italy:Naples:Naples|\
Italy:Novara:Novara|\
Italy:Nuoro:Nuoro|\
Italy:Oristano:Oristano|\
Italy:Padova:Padova|\
Italy:Palermo:Palermo|\
Italy:Parma:Parma|\
Italy:Pavia:Pavia|\
Italy:Perugia:Perugia|\
Italy:Pesaro-Urbino:Pesaro-Urbino|\
Italy:Pescara:Pescara|\
Italy:Piacenza:Piacenza|\
Italy:Pisa:Pisa|\
Italy:Pistoia:Pistoia|\
Italy:Pordenone:Pordenone|\
Italy:Potenza:Potenza|\
Italy:Prato:Prato|\
Italy:Ragusa:Ragusa|\
Italy:Ravenna:Ravenna|\
Italy:Reggio Calabria:Reggio Calabria|\
Italy:Reggio Emilia:Reggio Emilia|\
Italy:Rieti:Rieti|\
Italy:Rimini:Rimini|\
Italy:Rome:Rome|\
Italy:Rovigo:Rovigo|\
Italy:Salerno:Salerno|\
Italy:Sassari:Sassari|\
Italy:Savona:Savona|\
Italy:Siena:Siena|\
Italy:Siracusa:Siracusa|\
Italy:Sondrio:Sondrio|\
Italy:Taranto:Taranto|\
Italy:Teramo:Teramo|\
Italy:Terni:Terni|\
Italy:Trapani:Trapani|\
Italy:Trento:Trento|\
Italy:Treviso:Treviso|\
Italy:Trieste:Trieste|\
Italy:Turin:Turin|\
Italy:Udine:Udine|\
Italy:Varese:Varese|\
Italy:Venice:Venice|\
Italy:Verbania:Verbania|\
Italy:Vercelli:Vercelli|\
Italy:Verona:Verona|\
Italy:Vibo Valentia:Vibo Valentia|\
Italy:Vicenza:Vicenza|\
Italy:Viterbo:Viterbo|\
Malaysia:Johor:Johor|\
Malaysia:Kedah:Kedah|\
Malaysia:Kelantan:Kelantan|\
Malaysia:Kuala Lumpur:Kuala Lumpur|\
Malaysia:Labuan:Labuan|\
Malaysia:Melaka:Melaka|\
Malaysia:Negeri Sembilan:Negeri Sembilan|\
Malaysia:Pahang:Pahang|\
Malaysia:Perak:Perak|\
Malaysia:Perlis:Perlis|\
Malaysia:Pulau Pinang:Pulau Pinang|\
Malaysia:Sabah:Sabah|\
Malaysia:Sarawak:Sarawak|\
Malaysia:Selangor:Selangor|\
Malaysia:Trengganu:Trengganu|\
Malaysia:Wil. Persekutuan:Wil. Persekutuan|\
Mexico:Aguascalientes:Aguascalientes|\
Mexico:Baja California:Baja California|\
Mexico:Baja California S:Baja California S|\
Mexico:Campeche:Campeche|\
Mexico:Chiapas:Chiapas|\
Mexico:Chihuahua:Chihuahua|\
Mexico:Coahuila:Coahuila|\
Mexico:Colima:Colima|\
Mexico:Distrito Federal:Distrito Federal|\
Mexico:Durango:Durango|\
Mexico:Estado de Mexico:Estado de Mexico|\
Mexico:Guanajuato:Guanajuato|\
Mexico:Guerrero:Guerrero|\
Mexico:Hidalgo:Hidalgo|\
Mexico:Jalisco:Jalisco|\
Mexico:Michoacan:Michoacan|\
Mexico:Morelos:Morelos|\
Mexico:Nayarit:Nayarit|\
Mexico:Nuevo Leon:Nuevo Leon|\
Mexico:Oaxaca:Oaxaca|\
Mexico:Puebla:Puebla|\
Mexico:Queretaro:Queretaro|\
Mexico:Quintana Roo:Quintana Roo|\
Mexico:San Luis Potosi:San Luis Potosi|\
Mexico:Sinaloa:Sinaloa|\
Mexico:Sonora:Sonora|\
Mexico:Tabasco:Tabasco|\
Mexico:Tamaulipas:Tamaulipas|\
Mexico:Tlaxcala:Tlaxcala|\
Mexico:Veracruz:Veracruz|\
Mexico:Yucatan:Yucatan|\
Mexico:Zacatecas:Zacatecas|\
New Zealand:Auckland:Auckland|\
New Zealand:Bay of Plenty:Bay of Plenty|\
New Zealand:Canterbury:Canterbury|\
New Zealand:Hawkeùs Bay:Hawkeùs Bay|\
New Zealand:Manawatu-Wanganui:Manawatu-Wanganui|\
New Zealand:Northland:Northland|\
New Zealand:Otago:Otago|\
New Zealand:Southland:Southland|\
New Zealand:Taranaki:Taranaki|\
New Zealand:Waikato:Waikato|\
New Zealand:Wellington:Wellington|\
New Zealand:West Coast:West Coast|\
Poland:Dolnoslaskie:Dolnoslaskie|\
Poland:Kujawsko-Pomorskie:Kujawsko-Pomorskie|\
Poland:Lodzkie:Lodzkie|\
Poland:Lubelskie:Lubelskie|\
Poland:Lubuskie:Lubuskie|\
Poland:Malopolskie:Malopolskie|\
Poland:Mazowieckie:Mazowieckie|\
Poland:Opolskie:Opolskie|\
Poland:Podkarpackie:Podkarpackie|\
Poland:Podlaskie:Podlaskie|\
Poland:Pomorskie:Pomorskie|\
Poland:Slaskie:Slaskie|\
Poland:Swietokrzyskie:Swietokrzyskie|\
Poland:Warminsko-mazurskie:Warminsko-mazurskie|\
Poland:Wielkopolskie:Wielkopolskie|\
Poland:Zachodnio-Pomorskie:Zachodnio-Pomorskie|\
Singapore:Singapore:Singapore|\
South Africa:Eastern Cape:Eastern Cape|\
South Africa:Freestate:Freestate|\
South Africa:Gauteng:Gauteng|\
South Africa:Kwazulu/Natal:Kwazulu/Natal|\
South Africa:Mpumalanga:Mpumalanga|\
South Africa:Northern Cape:Northern Cape|\
South Africa:Northern Province:Northern Province|\
South Africa:North-West:North-West|\
South Africa:Western Cape:Western Cape|\
Switzerland:Aargau:Aargau|\
Switzerland:Ausser-Rhoden:Ausser-Rhoden|\
Switzerland:Basel Land:Basel Land|\
Switzerland:Basel Stadt:Basel Stadt|\
Switzerland:Bern:Bern|\
Switzerland:Fribourg:Fribourg|\
Switzerland:Geneva:Geneva|\
Switzerland:Glarus:Glarus|\
Switzerland:Graubuenden:Graubuenden|\
Switzerland:Inner-Rhoden:Inner-Rhoden|\
Switzerland:Jura:Jura|\
Switzerland:Lucerne:Lucerne|\
Switzerland:Neuchatel:Neuchatel|\
Switzerland:Nidwalden:Nidwalden|\
Switzerland:Obwalden:Obwalden|\
Switzerland:Schaffhausen:Schaffhausen|\
Switzerland:Schwyz:Schwyz|\
Switzerland:Solothurn:Solothurn|\
Switzerland:St. Gallen:St. Gallen|\
Switzerland:Thurgau:Thurgau|\
Switzerland:Ticino:Ticino|\
Switzerland:Uri:Uri|\
Switzerland:Valais:Valais|\
Switzerland:Vaud:Vaud|\
Switzerland:Zug:Zug|\
Switzerland:Zurich:Zurich|\
Taiwan, Province of China:Fu-chien:Fu-chien|\
Taiwan, Province of China:Kao-hsiung:Kao-hsiung|\
Taiwan, Province of China:Taiwan:Taiwan|\
Taiwan, Province of China:Tùai-pei:Tùai-pei|\
Ukraine:Cherkaska:Cherkaska|\
Ukraine:Chernigivska:Chernigivska|\
Ukraine:Chernovitska:Chernovitska|\
Ukraine:Dnipropetrovska:Dnipropetrovska|\
Ukraine:Donetska:Donetska|\
Ukraine:Harkivska:Harkivska|\
Ukraine:Hersonska:Hersonska|\
Ukraine:Hmelnitska:Hmelnitska|\
Ukraine:Ivano-Frankivska:Ivano-Frankivska|\
Ukraine:Kievska:Kievska|\
Ukraine:Kirovogradska:Kirovogradska|\
Ukraine:Luganska:Luganska|\
Ukraine:Lvivsbka:Lvivsbka|\
Ukraine:m.Kiev:m.Kiev|\
Ukraine:m.Sevastopil:m.Sevastopil|\
Ukraine:Mikolaivska:Mikolaivska|\
Ukraine:Odeska:Odeska|\
Ukraine:Poltavska:Poltavska|\
Ukraine:Respublika Krim:Respublika Krim|\
Ukraine:Rivnensa:Rivnenska|\
Ukraine:Sumska:Sumska|\
Ukraine:Ternopilska:Ternopilska|\
Ukraine:Vinnitska:Vinnitsa|\
Ukraine:Volinska:Volinska|\
Ukraine:Zakarpatska:Zakarpatska|\
Ukraine:Zaporizka:Zaporizka|\
Ukraine:Zhitomirska:Zhitomirska|\
United Kingdom:Aberdeenshire:Aberdeenshire|\
United Kingdom:Anglesey:Anglesey|\
United Kingdom:Angus/Forfarshire:Angus/Forfarshire|\
United Kingdom:Antrim:Antrim|\
United Kingdom:Argyllshire:Argyllshire|\
United Kingdom:Armagh:Armagh|\
United Kingdom:Ayrshire:Ayrshire|\
United Kingdom:Banffshire:Banffshire|\
United Kingdom:Bath&NthEstSomerset:Bath&NthEstSomerset|\
United Kingdom:Bedfordshire:Bedfordshire|\
United Kingdom:Berkshire:Berkshire|\
United Kingdom:Berwickshire:Berwickshire|\
United Kingdom:Brecknockshire:Brecknockshire|\
United Kingdom:Buckinghamshire:Buckinghamshire|\
United Kingdom:Buteshire:Buteshire|\
United Kingdom:Caernarfonshire:Caernarfonshire|\
United Kingdom:Caithness:Caithness|\
United Kingdom:Cambridgeshire:Cambridgeshire|\
United Kingdom:Cardiganshire:Cardiganshire|\
United Kingdom:Carmarthenshire:Carmarthenshire|\
United Kingdom:Cheshire:Cheshire|\
United Kingdom:Clackmannanshire:Clackmannanshire|\
United Kingdom:Cornwall:Cornwall|\
United Kingdom:Cromartyshire:Cromartyshire|\
United Kingdom:Cumberland:Cumberland|\
United Kingdom:Denbighshire:Denbighshire|\
United Kingdom:Derbyshire:Derbyshire|\
United Kingdom:Devon:Devon|\
United Kingdom:Dorset:Dorset|\
United Kingdom:Down:Down|\
United Kingdom:Dumfriesshire:Dumfriesshire|\
United Kingdom:Dunbartonshire:Dunbartonshire|\
United Kingdom:Durham:Durham|\
United Kingdom:East Lothian:East Lothian|\
United Kingdom:East Sussex:East Sussex|\
United Kingdom:Essex:Essex|\
United Kingdom:Fermanagh:Fermanagh|\
United Kingdom:Fife:Fife|\
United Kingdom:Flintshire:Flintshire|\
United Kingdom:Gloucestershire:Gloucestershire|\
United Kingdom:Hampshire:Hampshire|\
United Kingdom:Hereford and Worcs.:Hereford and Worcs.|\
United Kingdom:Hertfordshire:Hertfordshire|\
United Kingdom:Huntingdonshire:Huntingdonshire|\
United Kingdom:Invernesshire:Invernesshire|\
United Kingdom:Isle of Wight:Isle of Wight|\
United Kingdom:Kent:Kent|\
United Kingdom:Kincardineshire:Kincardineshire|\
United Kingdom:Kinross-shire:Kinross-shire|\
United Kingdom:Kirkcudbrightshire:Kirkcudbrightshire|\
United Kingdom:Lanarkshire:Lanarkshire|\
United Kingdom:Lancashire:Lancashire|\
United Kingdom:Leicestershire:Leicestershire|\
United Kingdom:Lincolnshire:Lincolnshire|\
United Kingdom:Londonderry:Londonderry|\
United Kingdom:Merioneth:Merioneth|\
United Kingdom:Mid Glamorgan:Mid Glamorgan|\
United Kingdom:Middlesex:Middlesex|\
United Kingdom:Midlothian:Midlothian|\
United Kingdom:Monmouthshire:Monmouthshire|\
United Kingdom:Montgomeryshire:Montgomeryshire|\
United Kingdom:Morayshire:Morayshire|\
United Kingdom:Nairnshire:Nairnshire|\
United Kingdom:Norfolk:Norfolk|\
United Kingdom:North Yorkshire:North Yorkshire|\
United Kingdom:Northamptonshire:Northamptonshire|\
United Kingdom:Northumberland:Northumberland|\
United Kingdom:Nottinghamshire:Nottinghamshire|\
United Kingdom:Orkney:Orkney|\
United Kingdom:Oxfordshire:Oxfordshire|\
United Kingdom:Peeblesshire:Peeblesshire|\
United Kingdom:Pembrokeshire:Pembrokeshire|\
United Kingdom:Perthshire:Perthshire|\
United Kingdom:Radnorshire:Radnorshire|\
United Kingdom:Renfrewshire:Renfrewshire|\
United Kingdom:Ross-shire:Ross-shire|\
United Kingdom:Roxburghshire:Roxburghshire|\
United Kingdom:Rutland:Rutland|\
United Kingdom:Selkirkshire:Selkirkshire|\
United Kingdom:Shetland:Shetland|\
United Kingdom:Shropshire:Shropshire|\
United Kingdom:Somerset:Somerset|\
United Kingdom:South Glamorgan:South Glamorgan|\
United Kingdom:South Yorkshire:South Yorkshire|\
United Kingdom:Staffordshire:Staffordshire|\
United Kingdom:Stirlingshire:Stirlingshire|\
United Kingdom:Suffolk:Suffolk|\
United Kingdom:Surrey:Surrey|\
United Kingdom:Sutherland:Sutherland|\
United Kingdom:Tyrone:Tyrone|\
United Kingdom:Warwickshire:Warwickshire|\
United Kingdom:West Glamorgan:West Glamorgan|\
United Kingdom:West Lothian:West Lothian|\
United Kingdom:West Sussex:West Sussex|\
United Kingdom:West Yorkshire:West Yorkshire|\
United Kingdom:Westmorland:Westmorland|\
United Kingdom:Wigtownshire:Wigtownshire|\
United Kingdom:Wiltshire:Wiltshire|\
United Kingdom:Worcestershire:Worcestershire|\
United States:AL:AL|\
United States:AK:AK|\
United States:AS:AS|\
United States:AZ:AZ|\
United States:AR:AR|\
United States:CA:CA|\
United States:CO:CO|\
United States:CT:CT|\
United States:DE:DE|\
United States:DC:DC|\
United States:FL:FL|\
United States:GA:GA|\
United States:GU:GU|\
United States:HI:HI|\
United States:ID:ID|\
United States:IL:IL|\
United States:IN:IN|\
United States:IA:IA|\
United States:KS:KS|\
United States:KY:KY|\
United States:LA:LA|\
United States:ME:ME|\
United States:MD:MD|\
United States:MA:MA|\
United States:MI:MI|\
United States:MN:MN|\
United States:MS:MS|\
United States:MO:MO|\
United States:MT:MT|\
United States:NE:NE|\
United States:NV:NV|\
United States:NH:NH|\
United States:NJ:NJ|\
United States:NM:NM|\
United States:NY:NY|\
United States:NC:NC|\
United States:ND:ND|\
United States:MP:MP|\
United States:OH:OH|\
United States:OK:OK|\
United States:OR:OR|\
United States:PA:PA|\
United States:PR:PR|\
United States:RI:RI|\
United States:SC:SC|\
United States:SD:SD|\
United States:TN:TN|\
United States:TX:TX|\
United States:UT:UT|\
United States:VT:VT|\
United States:VI:VI|\
United States:VA:VA|\
United States:WA:WA|\
United States:WV:WV|\
United States:WI:WI|\
United States:WY:WY|\
Venezuela:Amazon:Amazon|\
Venezuela:Anzoategui:Anzoategui|\
Venezuela:Apure:Apure|\
Venezuela:Aragua:Aragua|\
Venezuela:Barinas:Barinas|\
Venezuela:Bolivar:Bolivar|\
Venezuela:Carabobo:Carabobo|\
Venezuela:Cojedes:Cojedes|\
Venezuela:Delta Amacuro:Delta Amacuro|\
Venezuela:Distrito Federal:Distrito Federal|\
Venezuela:Falcon:Falcon|\
Venezuela:Guarico:Guarico|\
Venezuela:Lara:Lara|\
Venezuela:Merida:Merida|\
Venezuela:Miranda:Miranda|\
Venezuela:Monagas:Monagas|\
Venezuela:Nueva Esparta:Nueva Esparta|\
Venezuela:Portuguesa:Portuguesa|\
Venezuela:Sucre:Sucre|\
Venezuela:Tachira:Tachira|\
Venezuela:Trujillo:Trujillo|\
Venezuela:Vargas:Vargas|\
Venezuela:Yaracuy:Yaracuy|\
Venezuela:Zulia:Zulia|\
';

// Country data table
//
// 
// To edit the list, just delete a line or add a line.  Order is important.  The order 
// displayed is the order it appears on the drop down.
//
var country = '\
Afghanistan:Afghanistan|\
Åland Islands:Åland Islands|\
Albania:Albania|\
Algeria:Algeria|\
American Samoa:American Samoa|\
Andorra:Andorra|\
Angola:Angola|\
Anguilla:Anguilla|\
Antarctica:Antarctica|\
Antigua and Barbuda:Antigua and Barbuda|\
Argentina:Argentina|\
Armenia:Armenia|\
Aruba:Aruba|\
Australia:Australia|\
Austria:Austria|\
Azerbaijan:Azerbaijan|\
Bahamas:Bahamas|\
Bahrain:Bahrain|\
Bangladesh:Bangladesh|\
Barbados:Barbados|\
Belarus:Belarus|\
Belgium:Belgium|\
Belize:Belize|\
Benin:Benin|\
Bermuda:Bermuda|\
Bhutan:Bhutan|\
Bolivia:Bolivia|\
Bosnia and Herzegovina:Bosnia and Herzegovina|\
Botswana:Botswana|\
Bouvet Island:Bouvet Island|\
Brazil:Brazil|\
British Indian Ocean Territory:British Indian Ocean Territory|\
Brunei Darussalam:Brunei Darussalam|\
Bulgaria:Bulgaria|\
Burkina Faso:Burkina Faso|\
Burundi:Burundi|\
Cambodia:Cambodia|\
Cameroon:Cameroon|\
Canada:Canada|\
Cape Verde:Cape Verde|\
Cayman Islands:Cayman Islands|\
Central African Republic:Central African Republic|\
Chad:Chad|\
Chile:Chile|\
China:China|\
Christmas Island:Christmas Island|\
Cocos (Keeling) Islands:Cocos (Keeling) Islands|\
Colombia:Colombia|\
Comoros:Comoros|\
Congo:Congo|\
Congo, the Democratic Republic of the:Congo, the Democratic Republic of the|\
Cook Islands:Cook Islands|\
Costa Rica:Costa Rica|\
Côte dIvoire:Côte dIvoire|\
Croatia:Croatia|\
Cuba:Cuba|\
Cyprus:Cyprus|\
Czech Republic:Czech Republic|\
Denmark:Denmark|\
Djibouti:Djibouti|\
Dominica:Dominica|\
Dominican Republic:Dominican Republic|\
Ecuador:Ecuador|\
Egypt:Egypt|\
El Salvador:El Salvador|\
Equatorial Guinea:Equatorial Guinea|\
Eritrea:Eritrea|\
Estonia:Estonia|\
Ethiopia:Ethiopia|\
Falkland Islands (Malvinas):Falkland Islands (Malvinas)|\
Faroe Islands:Faroe Islands|\
Fiji:Fiji|\
Finland:Finland|\
France:France|\
French Guiana:French Guiana|\
French Polynesia:French Polynesia|\
French Southern Territories:French Southern Territories|\
Gabon:Gabon|\
Gambia:Gambia|\
Georgia:Georgia|\
Germany:Germany|\
Ghana:Ghana|\
Gibraltar:Gibraltar|\
Greece:Greece|\
Greenland:Greenland|\
Grenada:Grenada|\
Guadeloupe:Guadeloupe|\
Guam:Guam|\
Guatemala:Guatemala|\
Guernsey:Guernsey|\
Guinea:Guinea|\
Guinea-Bissau:Guinea-Bissau|\
Guyana:Guyana|\
Haiti:Haiti|\
Heard Island and McDonald Islands:Heard Island and McDonald Islands|\
Holy See (Vatican City State):Holy See (Vatican City State)|\
Honduras:Honduras|\
Hong Kong:Hong Kong|\
Hungary:Hungary|\
Iceland:Iceland|\
India:India|\
Indonesia:Indonesia|\
Iran, Islamic Republic of:Iran, Islamic Republic of|\
Iraq:Iraq|\
Ireland:Ireland|\
Isle of Man:Isle of Man|\
Israel:Israel|\
Italy:Italy|\
Jamaica:Jamaica|\
Japan:Japan|\
Jersey:Jersey|\
Jordan:Jordan|\
Kazakhstan:Kazakhstan|\
Kenya:Kenya|\
Kiribati:Kiribati|\
Korea:Korea|\
Kuwait:Kuwait|\
Kyrgyzstan:Kyrgyzstan|\
Lao Peoples Democratic Republic:Lao Peoples Democratic Republic|\
Latvia:Latvia|\
Lebanon:Lebanon|\
Lesotho:Lesotho|\
Liberia:Liberia|\
Libyan Arab Jamahiriya:Libyan Arab Jamahiriya|\
Liechtenstein:Liechtenstein|\
Lithuania:Lithuania|\
Luxembourg:Luxembourg|\
Macao:Macao|\
Macedonia, the former Yugoslav Republic of:Macedonia, the former Yugoslav Republic of|\
Madagascar:Madagascar|\
Malawi:Malawi|\
Malaysia:Malaysia|\
Maldives:Maldives|\
Mali:Mali|\
Malta:Malta|\
Marshall Islands:Marshall Islands|\
Martinique:Martinique|\
Mauritania:Mauritania|\
Mauritius:Mauritius|\
Mayotte:Mayotte|\
Mexico:Mexico|\
Micronesia, Federated States of:Micronesia, Federated States of|\
Moldova, Republic of:Moldova, Republic of|\
Monaco:Monaco|\
Mongolia:Mongolia|\
Montenegro:Montenegro|\
Montserrat:Montserrat|\
Morocco:Morocco|\
Mozambique:Mozambique|\
Myanmar:Myanmar|\
Namibia:Namibia|\
Nauru:Nauru|\
Nepal:Nepal|\
Netherlands:Netherlands|\
Netherlands Antilles:Netherlands Antilles|\
New Caledonia:New Caledonia|\
New Zealand:New Zealand|\
Nicaragua:Nicaragua|\
Niger:Niger|\
Nigeria:Nigeria|\
Niue:Niue|\
Norfolk Island:Norfolk Island|\
Northern Mariana Islands:Northern Mariana Islands|\
Norway:Norway|\
Oman:Oman|\
Pakistan:Pakistan|\
Palau:Palau|\
Palestinian Territory, Occupied:Palestinian Territory, Occupied|\
Panama:Panama|\
Papua New Guinea:Papua New Guinea|\
Paraguay:Paraguay|\
Peru:Peru|\
Philippines:Philippines|\
Pitcairn:Pitcairn|\
Poland:Poland|\
Portugal:Portugal|\
Puerto Rico:Puerto Rico|\
Qatar:Qatar|\
Réunion:Réunion|\
Romania:Romania|\
Russian Federation:Russian Federation|\
Rwanda:Rwanda|\
Saint Barthélemy:Saint Barthélemy|\
Saint Helena:Saint Helena|\
Saint Kitts and Nevis:Saint Kitts and Nevis|\
Saint Lucia:Saint Lucia|\
Saint Martin:Saint Martin|\
Saint Pierre and Miquelon:Saint Pierre and Miquelon|\
Saint Vincent and the Grenadines:Saint Vincent and the Grenadines|\
Samoa:Samoa|\
San Marino:San Marino|\
Sao Tome and Principe:Sao Tome and Principe|\
Saudi Arabia:Saudi Arabia|\
Senegal:Senegal|\
Serbia:Serbia|\
Seychelles:Seychelles|\
Sierra Leone:Sierra Leone|\
Singapore:Singapore|\
Slovakia:Slovakia|\
Slovenia:Slovenia|\
Solomon Islands:Solomon Islands|\
Somalia:Somalia|\
South Africa:South Africa|\
South Georgia and the South Sandwich Islands:South Georgia and the South Sandwich Islands|\
Spain:Spain|\
Sri Lanka:Sri Lanka|\
Sudan:Sudan|\
Suriname:Suriname|\
Svalbard and Jan Mayen:Svalbard and Jan Mayen|\
Swaziland:Swaziland|\
Sweden:Sweden|\
Switzerland:Switzerland|\
Syrian Arab Republic:Syrian Arab Republic|\
Taiwan, Province of China:Taiwan|\
Tajikistan:Tajikistan|\
Tanzania, United Republic of:Tanzania, United Republic of|\
Thailand:Thailand|\
Timor-Leste:Timor-Leste|\
Togo:Togo|\
Tokelau:Tokelau|\
Tonga:Tonga|\
Trinidad and Tobago:Trinidad and Tobago|\
Tunisia:Tunisia|\
Turkey:Turkey|\
Turkmenistan:Turkmenistan|\
Turks and Caicos Islands:Turks and Caicos Islands|\
Tuvalu:Tuvalu|\
Uganda:Uganda|\
Ukraine:Ukraine|\
United Arab Emirates:United Arab Emirates|\
United Kingdom:United Kingdom|\
United States:United States|\
United States Minor Outlying Islands:United States Minor Outlying Islands|\
Uruguay:Uruguay|\
Uzbekistan:Uzbekistan|\
Vanuatu:Vanuatu|\
Venezuela:Venezuela|\
Viet Nam:Viet Nam|\
Virgin Islands, British:Virgin Islands, British|\
Virgin Islands, U.S.:Virgin Islands, U.S.|\
Wallis and Futuna:Wallis and Futuna|\
Western Sahara:Western Sahara|\
Yemen:Yemen|\
Zambia:Zambia|\
Zimbabwe:Zimbabwe|\
';

// Save the country & state field names
var countryFieldCfgArray = document.getElementById('cs_config_country_field').value.split(' ');
var stateFieldCfgArray   = document.getElementById('cs_config_state_field').value.split(' ');

// Save the names of the fields that hold the country & state default values
var countryDefaultCfgArray = document.getElementById('cs_config_country_default').value.split(' ');
var stateDefaultCfgArray   = document.getElementById('cs_config_state_default').value.split(' ');

var defaultState = false;
var defaultCountry = false;

function TrimString(sInString) {
   
   if ( sInString ) {

      sInString = sInString.replace( /^\s+/g, "" );// strip leading
      return sInString.replace( /\s+$/g, "" );// strip trailing
   }
}
// Populates the country select with the counties from the country list
//
function populateCountry(idName) {

   var countryLineArray = country.split('|');      // Split into lines

   var selObj = document.getElementById( idName );

   selObj.options[0] = new Option('Select Country','');
   selObj.selectedIndex = 0;

   for (var loop = 0; loop < countryLineArray.length; loop++) {

      lineArray = countryLineArray[loop].split(':');

      countryCode  = TrimString(lineArray[0]);
      countryName  = TrimString(lineArray[1]);
   
      if ( countryCode != '' ) {

         selObj.options[loop + 1] = new Option(countryName, countryCode);
      }

      if ( defaultCountry == countryCode ) {

         selObj.selectedIndex = loop + 1;
      }
   }
}
function populateState( statestateIdName, countryIdName ) {

   var selObj = document.getElementById( stateIdName );
   var foundState = false;

   // Empty options just in case new drop down is shorter
   //
   if ( selObj.type == 'select-one' ) {

      selObj.options.length = 0;

      selObj.options[0] = new Option('Select Region','');
      selObj.selectedIndex = 0;
   }
   // Populate the drop down with states from the selected country
   //
   var stateLineArray   = state.split("|");        // Split into lines

   var optionCntr = 1;

   for (var loop = 0; loop < stateLineArray.length; loop++) {

      lineArray = stateLineArray[loop].split(":");

      countryCode  = TrimString(lineArray[0]);
      stateCode    = TrimString(lineArray[1]);
      stateName    = TrimString(lineArray[2]);

      if ( document.getElementById( countryIdName ).value == countryCode && countryCode != '' ) {

         // If it's a input element, change it to a select
         //
         if ( selObj.type == 'text' ) {

            parentObj = document.getElementById( stateIdName ).parentNode;
            parentObj.removeChild(selObj);

            var inputSel = document.createElement("SELECT");
            inputSel.setAttribute("name","state"); 
            inputSel.setAttribute("id", stateIdName ); 

            parentObj.appendChild(inputSel) ;

            selObj = document.getElementById( stateIdName );
            selObj.options[0] = new Option('Select State','');
            selObj.selectedIndex = 0;
         }
   
         if ( stateCode != '' ) {

            selObj.options[optionCntr] = new Option(stateName, stateCode);
         }
         // See if it's selected from a previous post
         //
         if ( stateCode == defaultState && countryCode == defaultCountry ) {

            selObj.selectedIndex = optionCntr;
         }
         foundState = true;
         optionCntr++
      }
   }
   // If the country has no states, change the select to a text box
   //
   if ( ! foundState ) {

      parentObj = document.getElementById( stateIdName ).parentNode;
      parentObj.removeChild(selObj);
 
      // Create the Input Field
      var inputEl = document.createElement("INPUT");

      inputEl.setAttribute("id",  stateIdName ); 
      inputEl.setAttribute("type", "text"); 
      inputEl.setAttribute("name", "state"); 
      inputEl.setAttribute("size", 20); 
      inputEl.setAttribute("value", defaultState); 
      parentObj.appendChild(inputEl) ;
   }
   
}
// Called when state drop down is changed
// 
function updateState( countryIdNameIn ) {

   for (var loop = 0; loop < countryFieldCfgArray.length; loop++) {
   
      countryIdName  = countryFieldCfgArray[loop];
      stateIdName    = stateFieldCfgArray[loop];

      // Read the default value hidden fields
      defaultCountry = document.getElementById( countryDefaultCfgArray[loop] ).value;
      defaultState   = document.getElementById( stateDefaultCfgArray[loop] ).value;

      if ( countryIdNameIn == countryIdName ) {

         populateState( stateIdName, countryIdName );
      }
   }
}
// Initialize the drop downs
// 
function initCountry() {

   for (var loop = 0; loop < countryFieldCfgArray.length; loop++) {
   
      countryIdName  = countryFieldCfgArray[loop];
      stateIdName    = stateFieldCfgArray[loop];

      // Read the default value hidden fields
      defaultCountry = document.getElementById( countryDefaultCfgArray[loop] ).value;
      defaultState   = document.getElementById( stateDefaultCfgArray[loop] ).value;

      populateCountry( countryIdName);
      populateState( stateIdName, countryIdName );
   }
}

