codice:
<HEAD>
<SCRIPT LANGUAGE="JavaScript">
<!-- Begin
var africaArray = new Array("('Select country','',true,true)",
  "('Ethiopia')",
  "('Somalia')",
  "('South Africa')",
  "('Other')");

var middleeastArray = new Array("('Select country','',true,true)",
  "('Egypt')",
  "('Iran')",
  "('Israel')",
  "('Kuwait')",
  "('Lebanon')",
  "('Morocco')",
  "('Saudi Arabia')",
  "('Syria')",
  "('Turkey')",
  "('U. A. Emirates')",
  "('Other')");

var asiaArray = new Array("('Select country','',true,true)",
  "('Armenia')",
  "('Bangladesh')",
  "('Cambodia')",
  "('China')",
  "('India')",
  "('Indonesia')",
  "('Japan')",
  "('Malaysia')",
  "('Myanmar')",
  "('Nepal')",
  "('Pakistan')",
  "('Philippines')",
  "('Singapore')",
  "('South Korea')",
  "('Sri Lanka')",
  "('Taiwan')",
  "('Thailand')",
  "('Uzbekistan')",
  "('Vietnam')",
  "('Other')");

var europeArray = new Array("('Select country','',true,true)",
  "('Albania')",
  "('Austria')",
  "('Belarus')",
  "('Belgium')",
  "('Bosnia')",
  "('Bulgaria')",
  "('Croatia')",
  "('Cyprus')",
  "('Czech Rep.')",
  "('Denmark')",
  "('Estonia')",
  "('Finland')",
  "('France')",
  "('Germany')",
  "('Greece')",
  "('Hungary')",
  "('Iceland')",
  "('Ireland')",
  "('Italy')",
  "('Latvia')",
  "('Liechtenstein')",
  "('Lithuania')",
  "('Luxembourg')",
  "('Macedonia')",
  "('Malta')",
  "('Monaco')",
  "('Netherlands')",
  "('Norway')",
  "('Poland')",
  "('Portugal')",
  "('Romania')",
  "('Russia')",
  "('Slovakia')",
  "('Slovenia')",
  "('Spain')",
  "('Sweden')",
  "('Switzerland')",
  "('Ukraine')",
  "('United Kingdom')",
  "('Other')");

var australiaArray = new Array("('Select country','',true,true)",
  "('Australia')",
  "('New Zealand')",
  "('Other')");

var lamericaArray = new Array("('Select country','',true,true)",
  "('Costa Rica')",
  "('Cuba')",
  "('El Salvador')",
  "('Guatemala')",
  "('Haiti')",
  "('Jamaica')",
  "('Mexico')",
  "('Panama')",
  "('Other')");

var namericaArray = new Array("('Select country','',true,true)",
  "('Canada')",
  "('USA')",
  "('Other')");

var samericaArray = new Array("('Select country','',true,true)",
  "('Argentina')",
  "('Bolivia')",
  "('Brazil')",
  "('Chile')",
  "('Colombia')",
  "('Ecuador')",
  "('Paraguay')",
  "('Peru')",
  "('Suriname')",
  "('Uruguay')",
  "('Venezuela')",
  "('Other')");

var elencoContinenti = new Array('asia','africa','australia','europe','middleeast','lamerica','namerica','samerica'); 

function populateCountry(inForm, selected)
{
  var selectedArray = eval(elencoContinenti[parseInt(selected)] + "Array");
  while (selectedArray.length < inForm.country.options.length)
  {
    inForm.country.options[(inForm.country.options.length - 1)] = null;
  }
  for (var i=0; i < selectedArray.length; i++)
  {
    eval("inForm.country.options[i]=" + "new Option" + selectedArray[i]);
  }
  if (inForm.region.options[0].value == '')
  {
    inForm.region.options[0]= null;
    if ( navigator.appName == 'Netscape')
    {
      if (parseInt(navigator.appVersion) < 4)
      {
        window.history.go(0);
      }
      else
      {
        if (navigator.platform == 'Win32' || navigator.platform == 'Win16')
        {
          window.history.go(0);
        }
      }
    }
  }
}

function populateUSstate(inForm,selected)
{
  var stateArray = new Array("('Select State','',true,true)",
    "('Alabama')",
    "('Alaska')",
    "('Arizona')",
    "('Arkansas')",
    "('California')",
    "('Colorado')",
    "('Connecticut')",
    "('Delaware')",
    "('Columbia')",
    "('Florida')",
    "('Georgia')",
    "('Hawaii')",
    "('Idaho')",
    "('Illinois')",
    "('Indiana')",
    "('Iowa')",
    "('Kansas')",
    "('Kentucky')",
    "('Louisiana')",
    "('Maine')",
    "('Maryland')",
    "('Massachusetts')",
    "('Michigan')",
    "('Minnesota')",
    "('Mississippi')",
    "('Missouri')",
    "('Montana')",
    "('Nebraska')",
    "('Nevada')",
    "('New Hampshire')",
    "('New Jersey')",
    "('New Mexico')",
    "('New York')",
    "('North Carolina')",
    "('North Dakota')",
    "('Ohio')",
    "('Oklahoma')",
    "('Oregon')",
    "('Pennsylvania')",
    "('Rhode Island')",
    "('South Carolina')",
    "('South Dakota')",
    "('Tennessee')",
    "('Texas')",
    "('Utah')",
    "('Vermont')",
    "('Virginia')",
    "('Washington')",
    "('West Virginia')",
    "('Wisconsin')",
    "('Wyoming')");

  if (selected == 'USA')
  {
    for (var i=0; i < stateArray.length; i++)
    {
      eval("inForm.country.options[i]=" + "new Option" + stateArray[i]);
    }
    if ( navigator.appName == 'Netscape')
    {
      if (parseInt(navigator.appVersion) < 4)
      {
          window.history.go(0)
      }
      else
      {
        if (navigator.platform == 'Win32' || navigator.platform == 'Win16')
        {
            window.history.go(0)
        }
      }
    }
  }
  else {}
  if (selected == 'Other')
  {
    newCountry = "";
    while (newCountry == "")
    {
        newCountry = prompt("Please enter the name of your country.", "");
    }
    if (newCountry != null)
    {
      inForm.country.options[(inForm.country.options.length-1)] = new Option(newCountry, newCountry, true, true);
      inForm.country.options[inForm.country.options.length] = new Option('Other, not listed','Other');
    }
  }
  if (inForm.country.options[0].text == 'Select country')
  {
    inForm.country.options[0]= null;
  }
}
// End -->
</script>
</HEAD>

<BODY>
<center>
<form name="globe">
<select name="region" onChange="populateCountry(document.globe, document.globe.region.options[document.globe.region.selectedIndex].value)">
<option selected value=''>Select Region</option>
<option value='0'>Asia</option>
<option value='1'>Africa</option>
<option value='2'>Australia</option>
<option value='3'>Europe</option>
<option value='4'>Middle East</option>
<option value='5'>Latin America</option>
<option value='6'>North America</option>
<option value='7'>South America</option>
</select>
<select name="country" onChange="populateUSstate(document.globe, document.globe.country.options[document.globe.country.selectedIndex].text)">
<option value=''><--------------------</option>
</select>
</form>
</center>
</BODY>
così lo script ha come value delle zone del mondo dei valori numerici, non ho fatto altro che aggiungere un array (evidenziato in rosso) con i nomi che la funzione richiede in ingresso e modificato leggermente l'inizio della funzione populateCountry.

Occhio che lo script a quanto ho visto funziona solo con Internet Explorer (ho provato con firefox 1.5 e non va)