hai ragione per quanto riguarda la funzione eval.
Ho seguito il tuo suggerimento e ho creato una nuova versione compatibile con tutti i browser.
Stavolta però ho gestito select multiple.

enjoy! :mavieni:

codice:
<html><head><title>Gestione Select by jure</title>
<script>
formName="f";
select1="s1";
select2="s2";
text1="txt1";
text2="txt2";

function copy(p,q){
	if(document.forms[formName].elements[p].options.selectedIndex>-1){
		for(i=0;i<document.forms[formName].elements[p].options.length;i++){
			if(document.forms[formName].elements[p].options[i].selected){
				tmp=new Option();
				tmp.text=document.forms[formName].elements[p].options[i].text;
				tmp.value=document.forms[formName].elements[p].options[i].value;
				document.forms[formName].elements[q].options[document.forms[formName].elements[q].options.length]=tmp;
			}
		}
	}else MsgBox();
}
function del(k){
	if(document.forms[formName].elements[k].options.selectedIndex>-1){
		for(i=0;i<document.forms[formName].elements[k].options.length;i++){
			if(document.forms[formName].elements[k].options[i].selected){
				document.forms[formName].elements[k].options[i]=null;
				i--;
			}
		}
	}else MsgBox();
}
function move(m,n){
	if(document.forms[formName].elements[m].options.selectedIndex>-1){
		copy(m,n);
		del(m);
		unsel(m);
	}else MsgBox();
}
function moveupdown_doIt(a,b,i,occupied,q){
	if(document.forms[formName].elements[a].options[i].selected&&!occupied){
		tmp1=new Option();
		tmp2=new Option();
		tmp1.text=document.forms[formName].elements[a].options[i+b].text;
		tmp1.value=document.forms[formName].elements[a].options[i+b].value;
		tmp2.text=document.forms[formName].elements[a].options[i].text;
		tmp2.value=document.forms[formName].elements[a].options[i].value;
		document.forms[formName].elements[a].options[i]=tmp1;
		document.forms[formName].elements[a].options[i+b]=tmp2;
		document.forms[formName].elements[a].options[i+b].selected=true;
		i+=q;
	}
}
function moveupdown(a,b){
	lung=document.forms[formName].elements[a].options.length;
	if(document.forms[formName].elements[a].options.selectedIndex>-1){
		if(b==1){
			for(i=lung-1;i>-1;i--){
				if(i<lung-1){
					if(i+b<lung)occupied=document.forms[formName].elements[a].options[i+b].selected;
					else occupied=true;
					moveupdown_doIt(a,b,i,occupied,1);
				}
			}
		}else{
			for(i=0;i<lung;i++){
				if(i>0){
					if(i+b>-1)occupied=document.forms[formName].elements[a].options[i+b].selected;
					else occupied=true;
					moveupdown_doIt(a,b,i,occupied,-1);
				}
			}
		}
	}else MsgBox();
}
function sel(h){
	for(i=0;i<document.forms[formName].elements[h].options.length;i++){
		document.forms[formName].elements[h].options[i].selected=true
	}
}
function unsel(h){
	document.forms[formName].elements[h].options.selectedIndex=-1
}
function add(k,h){
	str=document.forms[formName].elements[k].value;
	condition=(str=='')?confirm("Inserire un valore vuoto?"):true;
	if(condition){
		lung=document.forms[formName].elements[h].options.length;
		tmp=new Option();
		tmp.text=str;
		tmp.value=str;
		document.forms[formName].elements[h].options[lung]=tmp;
	}
}
function MsgBox(){
	alert("Selezionare almeno un'opzione")
}
</script>
</head><body bgcolor=ffffff topmargin=0 marginheight=0 leftmargin=0 marginwidth=0 rightmargin=0 bottommargin=0>
<form name=f>
<table border=0 cellpadding=0 cellspacing=4><tr><td>
<input type=button value=" + " onclick=moveupdown(select1,-1) style="width:23">

<input type=button value=" -- " onclick=moveupdown(select1,1) style="width:23">
</td><td>
<select multiple name=s1 size="10" style="width:100">
<option value="a">a
<option value="aa">aa
<option value="aaa">aaa
<option value="aaaa">aaaa
<option value="aaaaa">aaaaa
</select></td><td><select multiple name=s2 size="10" style="width:100">
<option value="b">b
<option value="bb">bb
<option value="bbb">bbb
<option value="bbbb">bbbb
<option value="bbbbb">bbbbb
</select></td><td>
<input type=button value=" + " onclick=moveupdown(select2,-1) style="width:23">

<input type=button value=" -- " onclick=moveupdown(select2,1) style="width:23">
</td></tr>
<tr><td colspan=4></td></tr>
<tr><td></td><td>
<input type=text name=txt1 style="width:60"><input type=button value="add^" onclick="add(text1,select1)" style="width:40">

<input type=button value="Sel. Tutto" onclick="sel(select1)" style="width:100">

<input type=button value="Desel. Tutto" onclick="unsel(select1)" style="width:100">

<input type=button value="> Copia >" onclick="copy(select1,select2)" style="width:100">

<input type=button value="> Sposta >" onclick="move(select1,select2)" style="width:100">

<input type=button value="> Elimina" onclick="del(select1)" style="width:100">

</td><td>
<input type=text name=txt2 style="width:60"><input type=button value="add^" onclick="add(text2,select2)" style="width:40">

<input type=button value="Sel. Tutto" onclick="sel(select2)" style="width:100">

<input type=button value="Desel. Tutto" onclick="unsel(select2)" style="width:100">

<input type=button value="< Copia <" onclick="copy(select2,select1)" style="width:100">

<input type=button value="< Sposta <" onclick="move(select2,select1)" style="width:100">

<input type=button value="  Elimina <" onclick="del(select2)" style="width:100">

</td><td></td></tr>
</table>
</form>
</body></html>