
  function clearDropdown(dd) {
    dd.options.length = 0;
  }

  function markUpdating(dd, str) {
    dd.options[0] = new Option(str, 0);
  }
  
  function addItems(dd, items) {
    var optionNo = dd.options.length;
    var itemsAdded = false;
    
    for(i in items) {
      dd.options[optionNo++] = new Option(urldecode(items[i]), i); 
      itemsAdded = true;
    }
    
    return itemsAdded;
  }
  
  function addOption(dd, o) {
      dd.options[dd.options.length] = o; // Works in Safari
  }
  
  function selectValue(dd, value) {
    if(value == 0) {
      return;
    }
    
    for(i = 0; i < dd.options.length; ++i) {
      if(dd.options[i] != null && dd.options[i].value == value) {
        dd.selectedIndex = i;
        break;
      }
    }
  }
  
  
  function populateCityDropdown(dd, cities, selectedCity, optional, headerItem) {
    if(headerItem != null) {
        addOption(dd, headerItem);
        addItems(dd, { 0: "-----" })
    }
    
    if(optional) {
      addItems(dd, { 0: "..." });
    }

    if(addItems(dd, cities.topCities)) {
      addItems(dd, { 0: "-----" })
    }

    addItems(dd, cities.cities);
    selectValue(dd, selectedCity);
  }
  