<?php

    /**********************
   * 
   * Name: Generate Country list
   * function: Generates a drop down country listing in html
   * I/O: None, just dumps out the listing
   * 
   *********************/
   function GenCountryDrop( &$html ){
  
      $cc = array('ad' => 'Andorra', 'ae' => 'United Arab Emirates', 'af' => 'Afghanistan','ag' => 'Antigua and Barbuda', 'ai' => 'Anguilla', 'al' => 'Albania', 'am' => 'Armenia', 'an' => 'Netherlands Antilles',  'ao' => 'Angola', 'ar' => 'Argentina', 'as' => 'American Samoa', 'at' => 'Austria', 'au' => 'Australia', 'aw' => 'Aruba',  'az' => 'Azerbaijan', 'ba' => 'Bosnia and Herzegowina', 'bb' => 'Barbados', 'bd' => 'Bangladesh', 'be' => 'Belgium',  'bf' => 'Burkina Faso', 'bg' => 'Bulgaria', 'bh' => 'Bahrain', 'bi' => 'Burundi', 'bj' => 'Benin', 'bm' => 'Bermuda', 'bn' => 'Brunei Darussalam', 'bo' => 'Bolivia', 'br' => 'Brazil', 'bs' => 'Bahamas', 'bt' => 'Bhutan', 'bw' => 'Botswana',  'by' => 'Belarus', 'bz' => 'Belize', 'ca' => 'Canada', 'cf' => 'Central African Republic', 'cg' => 'Congo', 'ch' => 'Switzerland',  'ci' => 'Cote D\'Ivoire', 'ck' => 'Cook Islands', 'cl' => 'Chile', 'cm' => 'Cameroon', 'cn' => 'China', 'co' => 'Colombia',  'cr' => 'Costa Rica', 'cv' => 'Cape Verde', 'cx' => 'Christmas Island', 'cy' => 'Cyprus', 'cz' => 'Czech Republic',  'de' => 'Germany', 'dj' => 'Djibouti', 'dk' => 'Denmark', 'dm' => 'Dominica', 'do' => 'Dominican Republic', 'dz' => 'Algeria',  'ec' => 'Ecuador', 'ee' => 'Estonia', 'eg' => 'Egypt', 'eh' => 'Western Sahara', 'er' => 'Eritrea', 'es' => 'Spain', 'et' => 'Ethiopia',  'fi' => 'Finland', 'fj' => 'Fiji', 'fk' => 'Falkland Islands (Malvinas)', 'fm' => 'Micronesia, Federated States Of', 'fr' => 'France',  'ga' => 'Gabon', 'gb' => 'United Kingdom', 'gd' => 'Grenada', 'ge' => 'Georgia', 'gf' => 'French Guiana', 'gh' => 'Ghana',  'gi' => 'Gibraltar', 'gl' => 'Greenland', 'gm' => 'Gambia', 'gn' => 'Guinea', 'gp' => 'Guadeloupe', 'gq' => 'Equatorial Guinea', 'gr' => 'Greece', 'gt' => 'Guatemala', 'gu' => 'Guam', 'gw' => 'Guinea-Bissau', 'gy' => 'Guyana', 'hk' => 'Hong Kong',  'hn' => 'Honduras', 'hr' => 'Croatia (Hrvatska)', 'ht' => 'Haiti', 'hu' => 'Hungary', 'id' => 'Indonesia', 'ie' => 'Ireland', 'il' => 'Israel', 'in' => 'India', 'io' => 'British Indian Ocean Territory', 'is' => 'Iceland', 'it' => 'Italy', 'jm' => 'Jamaica',  'jo' => 'Jordan', 'jp' => 'Japan', 'ke' => 'Kenya', 'kg' => 'Kyrgyzstan', 'kh' => 'Cambodia', 'ki' => 'Kiribati', 'km' => 'Comoros',  'kn' => 'Saint Kitts and Nevis', 'kr' => 'Korea, Republic Of', 'kw' => 'Kuwait', 'ky' => 'Cayman Islands', 'kz' => 'Kazakhstan',  'la' => 'Lao People\'s Democratic Republic', 'lb' => 'Lebanon', 'lc' => 'Saint Lucia', 'li' => 'Liechtenstein', 'lk' => 'Sri Lanka',  'lr' => 'Liberia', 'ls' => 'Lesotho', 'lt' => 'Lithuania', 'lu' => 'Luxembourg', 'lv' => 'Latvia', 'ma' => 'Morocco', 'mc' => 'Monaco',  'md' => 'Moldova, Republic Of', 'mg' => 'Madagascar', 'mh' => 'Marshall Islands', 'mk' => 'Macedonia, The Former Yugoslav Republic Of',  'ml' => 'Mali', 'mm' => 'Myanmar', 'mn' => 'Mongolia', 'mo' => 'Macau', 'mp' => 'Northern Mariana Islands', 'mq' => 'Martinique',  'mr' => 'Mauritania', 'ms' => 'Montserrat', 'mt' => 'Malta', 'mu' => 'Mauritius', 'mv' => 'Maldives', 'mw' => 'Malawi',  'mx' => 'Mexico', 'my' => 'Malaysia', 'mz' => 'Mozambique', 'na' => 'Namibia', 'nc' => 'New Caledonia', 'ne' => 'Niger', 'nf' => 'Norfolk Island', 'ng' => 'Nigeria', 'ni' => 'Nicaragua', 'nl' => 'Netherlands', 'no' => 'Norway', 'np' => 'Nepal', 'nr' => 'Nauru', 'nu' => 'Niue', 'nz' => 'New Zealand', 'om' => 'Oman', 'pa' => 'Panama', 'pe' => 'Peru', 'pf' => 'French Polynesia', 'pg' => 'Papua New Guinea', 'ph' => 'Philippines', 'pk' => 'Pakistan', 'pl' => 'Poland', 'pn' => 'Pitcairn', 'pr' => 'Puerto Rico',  'pt' => 'Portugal', 'pw' => 'Palau', 'py' => 'Paraguay', 'qa' => 'Qatar', 'ro' => 'Romania', 'ru' => 'Russian Federation',  'rw' => 'Rwanda', 'sa' => 'Saudi Arabia', 'sb' => 'Solomon Islands', 'sc' => 'Seychelles', 'se' => 'Sweden', 'sg' => 'Singapore', 'si' => 'Slovenia', 'sk' => 'Slovakia (Slovak Republic)', 'sl' => 'Sierra Leone', 'sm' => 'San Marino', 'sn' => 'Senegal',  'so' => 'Somalia', 'sr' => 'Suriname', 'st' => 'Sao Tome and Principe', 'sv' => 'El Salvador', 'sz' => 'Swaziland',  'tc' => 'Turks and Caicos Islands', 'td' => 'Chad', 'tg' => 'Togo', 'th' => 'Thailand', 'tj' => 'Tajikistan',  'tk' => 'Tokelau', 'tm' => 'Turkmenistan', 'tn' => 'Tunisia', 'to' => 'Tonga', 'tr' => 'Turkey', 'tt' => 'Trinidad and Tobago',  'tv' => 'Tuvalu', 'tw' => 'Taiwan', 'tz' => 'Tanzania, United Republic Of', 'ua' => 'Ukraine', 'ug' => 'Uganda', 'uk' => 'United Kingdom', 'us' => 'United States', 'uy' => 'Uruguay', 'uz' => 'Uzbekistan', 'va' => 'Vatican City State (Holy Sea)', 'vc' => 'Saint Vincent and The Grenadines', 've' => 'Venezuela', 'vg' => 'Virgin Islands (British)', 'vi' => 'Virgin Islands (U.S.)', 'vn' => 'Viet Nam', 'vu' => 'Vanuatu', 'wf' => 'Wallis and Futuna Islands', 'ws' => 'Samoa', 'ye' => 'Yemen', 'yu' => 'Serbia & Montenegro', 'za' => 'South Africa', 'zm' => 'Zambia', 'zw' => 'Zimbabwe');
   	  
   	  //print the start of hte list
   	  $html .= "<SELECT NAME=\"yourCountry\">";
   	
   	  //build list with a loop
   	  foreach( $cc as $code => $name ){
   	    $selhtml = "";
   	    if( $_POST['yourCountry'] == $code ) $selhtml = "CHECKED";
   	  	$html .="<OPTION $selhtml VALUE=\"" .$code . "\">" .$name;
   	  }
   	  
   	  //end the list
   	  $html .= ("</SELECT>");
   }
   
?>
