Quella funzione si puo` semplificare e correggere (il nome id non e` un nome valido per una variabile: e` parola riservata).

pero` ripeto la seconda domanda:
La select viene creata al volo dal server (tramite linguaggio ASP). Viene creata sempre uguale? In subordine c'e` sempre un campo con lo stesso value/text?

Ma poi dato che usi ASP: perche` non metti un selected="true" come attributo dell'ozione in questione?

Eccoil codice modificato:
codice:
function load_change(ss){
  var id1 = ss.options[ss.selectedIndex].value;
  if (id1 != ""){
    document.location.href = "checkout_shipping.php?rivenditori="+id1;
  }
}
da richiamare con:
<select name="rivenditori" onchange="load_change(this);">