<?php

$provinces = array(
  'AB'=>'Alberta',
  'BC'=>'British Columbia',
  'LB'=>'Labrador',
  'MB'=>'Manitoba',
  'NB'=>'New Brunswick',
  'NL'=>'Newfoundland',
  'NT'=>'Northwest Territories',
  'NS'=>'Nova Scotia',
  'NU'=>'Nunavut',
  'ON'=>'Ontario',
  'PE'=>'Prince Edward Island',
  'QC'=>'Quebec',
  'SK'=>'Saskatchewan',
  'YT'=>'Yukon'
);

$states = array(
   'AL'=>'Alabama',
   'AK'=>'Alaska',
   'AZ'=>'Arizona',
   'AR'=>'Arkansas',
   'CA'=>'California',
   'CO'=>'Colorado',
   'CT'=>'Connecticut',
   'DE'=>'Delaware',
   'DC'=>'District of Columbia',
   'FL'=>'Florida',
   'GA'=>'Georgia',
   'HI'=>'Hawaii',
   'ID'=>'Idaho',
   'IL'=>'Illinois',
   'IN'=>'Indiana',
   'IA'=>'Iowa',
   'KS'=>'Kansas',
   'KY'=>'Kentucky',
   'LA'=>'Louisiana',
   'ME'=>'Maine',
   'MD'=>'Maryland',
   'MA'=>'Massachusetts',
   'MI'=>'Michigan',
   'MN'=>'Minnesota',
   'MS'=>'Mississippi',
   'MO'=>'Missouri',
   'MT'=>'Montana',
   'NE'=>'Nebraska',
   'NV'=>'Nevada',
   'NH'=>'New Hampshire',
   'NJ'=>'New Jersey',
   'NM'=>'New Mexico',
   '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',
   'VT'=>'Vermont',
   'VA'=>'Virginia',
   'WA'=>'Washington',
   'WV'=>'West Virginia',
   'WI'=>'Wisconsin',
   'WY'=>'Wyoming'
);

$lower48 = $states;
unset($lower48['HI']);
unset($lower48['AK']);

$countries = array(
   'US'=>'United States of America',
   'CA'=>'Canada',
   'AF'=>'Afghanistan',
   'AL'=>'Albania',
   'DZ'=>'Algeria',
   'AS'=>'American Samoa',
   'AD'=>'Andorra',
   'AO'=>'Angola',
   'AI'=>'Anguilla',
   'AQ'=>'Antarctica',
   'AG'=>'Antigua and Barbuda',
   'AR'=>'Argentina',
   'AM'=>'Armenia',
   'AW'=>'Aruba',
   'AU'=>'Australia',
   'AT'=>'Austria',
   'AZ'=>'Azerbaijan',
   'BS'=>'Bahamas',
   'BH'=>'Bahrain',
   'BD'=>'Bangladesh',
   'BB'=>'Barbados',
   'BY'=>'Belarus',
   'BE'=>'Belgium',
   'BZ'=>'Belize',
   'BJ'=>'Benin',
   'BM'=>'Bermuda',
   'BT'=>'Bhutan',
   'BO'=>'Bolivia',
   'BA'=>'Bosnia and Herzegovina',
   'BW'=>'Botswana',
   'BV'=>'Bouvet Island',
   'BR'=>'Brazil',
   'IO'=>'British Indian Ocean territory',
   'BN'=>'Brunei Darussalam',
   'BG'=>'Bulgaria',
   'BF'=>'Burkina Faso',
   'BI'=>'Burundi',
   'KH'=>'Cambodia',
   'CM'=>'Cameroon',
   'CV'=>'Cape Verde',
   'KY'=>'Cayman Islands',
   'CF'=>'Central African Republic',
   'TD'=>'Chad',
   'CL'=>'Chile',
   'CN'=>'China',
   'CX'=>'Christmas Island',
   'CC'=>'Cocos (Keeling) Islands',
   'CO'=>'Colombia',
   'KM'=>'Comoros',
   'CG'=>'Congo',
   'CD'=>'Congo, Democratic Republic',
   'CK'=>'Cook Islands',
   'CR'=>'Costa Rica',
   'CI'=>'C&ocirc;te D\'ivoire',
   'HR'=>'Croatia',
   'CU'=>'Cuba',
   'CY'=>'Cyprus',
   'CZ'=>'Czech Republic',
   'DK'=>'Denmark',
   'DJ'=>'Djibouti',
   'DM'=>'Dominica',
   'DO'=>'Dominican Republic',
   'EC'=>'Ecuador',
   'EG'=>'Egypt',
   'SV'=>'El Salvador',
   'GQ'=>'Equatorial Guinea',
   'ER'=>'Eritrea',
   'EE'=>'Estonia',
   'ET'=>'Ethiopia',
   'FK'=>'Falkland Islands (Malvinas)',
   'FO'=>'Faroe Islands',
   'FJ'=>'Fiji',
   'FI'=>'Finland',
   'FR'=>'France',
   'GF'=>'French Guiana',
   'PF'=>'French Polynesia',
   'TF'=>'French Southern Territories',
   'GA'=>'Gabon',
   'GM'=>'Gambia',
   'GE'=>'Georgia',
   'DE'=>'Germany',
   'GH'=>'Ghana',
   'GI'=>'Gibraltar',
   'GR'=>'Greece',
   'GL'=>'Greenland',
   'GD'=>'Grenada',
   'GP'=>'Guadeloupe',
   'GU'=>'Guam',
   'GT'=>'Guatemala',
   'GG'=>'Guernsey',
   'GN'=>'Guinea',
   'GW'=>'Guinea-Bissau',
   'GY'=>'Guyana',
   'HT'=>'Haiti',
   'HM'=>'Heard and McDonald Islands',
   'VA'=>'Holy See (Vatican City State)',
   'HN'=>'Honduras',
   'HK'=>'Hong Kong',
   'HU'=>'Hungary',
   'IS'=>'Iceland',
   'IN'=>'India',
   'ID'=>'Indonesia',
   'IR'=>'Iran, Islamic Republic of',
   'IQ'=>'Iraq',
   'IE'=>'Ireland',
   'IM'=>'Isle of Man',
   'IL'=>'Israel',
   'IT'=>'Italy',
   'JM'=>'Jamaica',
   'JP'=>'Japan',
   'JE'=>'Jersey',
   'JO'=>'Jordan',
   'KZ'=>'Kazakhstan',
   'KE'=>'Kenya',
   'KI'=>'Kiribati',
   'KP'=>'Korea, Democratic People\'s Republic of',
   'KR'=>'Korea, Republic of',
   'KW'=>'Kuwait',
   'KG'=>'Kyrgyzstan',
   'LA'=>'Lao People&#39;s Democratic Republic',
   'LV'=>'Latvia',
   'LB'=>'Lebanon',
   'LS'=>'Lesotho',
   'LR'=>'Liberia',
   'LY'=>'Libyan Arab Jamahiriya',
   'LI'=>'Liechtenstein',
   'LT'=>'Lithuania',
   'LU'=>'Luxembourg',
   'MO'=>'Macao',
   'MK'=>'Macedonia, The Former Yugoslav Republic of',
   'MG'=>'Madagascar',
   'MW'=>'Malawi',
   'MY'=>'Malaysia',
   'MV'=>'Maldives',
   'ML'=>'Mali',
   'MT'=>'Malta',
   'MH'=>'Marshall Islands',
   'MQ'=>'Martinique',
   'MR'=>'Mauritania',
   'MU'=>'Mauritius',
   'YT'=>'Mayotte',
   'MX'=>'Mexico',
   'FM'=>'Micronesia, Federated States of',
   'MD'=>'Moldova, Republic of',
   'MC'=>'Monaco',
   'MN'=>'Mongolia',
   'ME'=>'Montenegro',
   'MS'=>'Montserrat',
   'MA'=>'Morocco',
   'MZ'=>'Mozambique',
   'MM'=>'Myanmar',
   'NA'=>'Namibia',
   'NR'=>'Nauru',
   'NP'=>'Nepal',
   'NL'=>'Netherlands',
   'AN'=>'Netherlands Antilles',
   'NC'=>'New Caledonia',
   'NZ'=>'New Zealand',
   'NI'=>'Nicaragua',
   'NE'=>'Niger',
   'NG'=>'Nigeria',
   'NU'=>'Niue',
   'NF'=>'Norfolk Island',
   'MP'=>'Northern Mariana Islands',
   'NO'=>'Norway',
   'OM'=>'Oman',
   'PK'=>'Pakistan',
   'PW'=>'Palau',
   'PS'=>'Palestinian Territories, Occupied',
   'PA'=>'Panama',
   'PG'=>'Papua New Guinea',
   'PY'=>'Paraguay',
   'PE'=>'Peru',
   'PH'=>'Philippines',
   'PN'=>'Pitcairn',
   'PL'=>'Poland',
   'PT'=>'Portugal',
   'PR'=>'Puerto Rico',
   'QA'=>'Qatar',
   'RE'=>'R&eacute;union',
   'RO'=>'Romania',
   'RU'=>'Russian Federation',
   'RW'=>'Rwanda',
   'SH'=>'Saint Helena',
   'KN'=>'Saint Kitts and Nevis',
   'LC'=>'Saint Lucia',
   'PM'=>'Saint Pierre and Miquelon',
   'VC'=>'Saint Vincent and the Grenadines',
   'WS'=>'Samoa',
   'SM'=>'San Marino',
   'ST'=>'Sao Tome and Principe',
   'SA'=>'Saudi Arabia',
   'SN'=>'Senegal',
   'RS'=>'Serbia',
   'SC'=>'Seychelles',
   'SL'=>'Sierra Leone',
   'SG'=>'Singapore',
   'SK'=>'Slovakia',
   'SI'=>'Slovenia',
   'SB'=>'Solomon Islands',
   'SO'=>'Somalia',
   'ZA'=>'South Africa',
   'GS'=>'South Georgia and the South Sandwich Islands',
   'ES'=>'Spain',
   'LK'=>'Sri Lanka',
   'SD'=>'Sudan',
   'SR'=>'Suriname',
   'SJ'=>'Svalbard and Jan Mayen',
   'SZ'=>'Swaziland',
   'SE'=>'Sweden',
   'CH'=>'Switzerland',
   'SY'=>'Syrian Arab Republic',
   'TW'=>'Taiwan, Province of China',
   'TJ'=>'Tajikistan',
   'TZ'=>'Tanzania, United Republic of',
   'TH'=>'Thailand',
   'TL'=>'Timor-Leste',
   'TG'=>'Togo',
   'TK'=>'Tokelau',
   'TO'=>'Tonga',
   'TT'=>'Trinidad and Tobago',
   'TN'=>'Tunisia',
   'TR'=>'Turkey',
   'TM'=>'Turkmenistan',
   'TC'=>'Turks and Caicos Islands',
   'TV'=>'Tuvalu',
   'UG'=>'Uganda',
   'UA'=>'Ukraine',
   'AE'=>'United Arab Emirates',
   'GB'=>'United Kingdom',
   'UM'=>'United States Minor Outlying Islands',
   'UY'=>'Uruguay',
   'UZ'=>'Uzbekistan',
   'VU'=>'Vanuatu',
   'VE'=>'Venezuela',
   'VN'=>'Viet Nam',
   'VG'=>'Virgin Islands, British',
   'VI'=>'Virgin Islands, US',
   'WF'=>'Wallis and Futuna',
   'EH'=>'Western Sahara',
   'YE'=>'Yemen',
   'ZM'=>'Zambia',
   'ZW'=>'Zimbabwe'
);


////
// ! outputs a select list containing US states, canadian provinces or countries
// The first parameter is the type - either state, province, or country
// The 2nd parameter is the name/id to use for the form input
// The 3rd (optional) parameter is the default item to be selected
// The last (optional) parameter is anything extra that should appear in the select (javascript actions, etc)
function printregionselect ($type,$name,$default='',$extra='')
{
  switch ($type):
    case 'state':
      global $states;
      $list =& $states;
      break;
    case 'province':
      global $provinces;
      $list =& $provinces;
      break;
    case 'country':
      global $countries;
      $list =& $countries;
      break;
    default:
      return;
      break;
  endswitch;
      
  printf("<select name=\"%s\" id=\"%s\" %s>\n", $name, $name, $extra);
  if (strcmp($type,'country')!=0) printf('<option value=""></option>');
  while (list($value,$label)=each($list))
  {
    printf("<option %s value=\"%s\">%s</option>\n",
      ($default==$value) ? 'selected="selected"' : '',
      $value, $label
    ); 
  }
  print "</select>\n";
}


?>