function sps_select_multiple_add(widget_id)
{
	var from_widget 	= document.getElementById("from_" + widget_id);
	var to_widget 		= document.getElementById("to_" + widget_id);
	var hidden_widget 	= document.getElementById("hidden_" + widget_id);
	
	for (i=0; i<from_widget.length; ++i)
	{
		if (from_widget.options[i].selected)
		{
			var newoption = new Option(from_widget.options[i].text, from_widget.options[i].value);
			to_widget.options[to_widget.length] = newoption;
			from_widget.options[i] = null;
			i = i-3;
			if (i < -1) { i = -1; }
		}
	}
	
	sps_select_multiple_set_value(widget_id);

	return false;
}

function sps_select_multiple_remove(widget_id)
{
	var from_widget 	= document.getElementById("from_" + widget_id);
	var to_widget 		= document.getElementById("to_" + widget_id);
	var hidden_widget 	= document.getElementById("hidden_" + widget_id);
	
	for (i=0; i<to_widget.length; ++i)
	{
		if (to_widget.options[i].selected)
		{
			var newoption = new Option(to_widget.options[i].text, to_widget.options[i].value);
			from_widget.options[from_widget.length] = newoption;
			to_widget.options[i] = null;
			i = i-3;
			if (i < -1) { i = -1; }
		}
	}
	
	sps_select_multiple_set_value(widget_id);

	return false;
}

function sps_select_multiple_up(widget_id) { 
	obj = document.getElementById("to_" + widget_id);

	if (obj.tagName.toLowerCase() != "select" && obj.length < 2)
		return false;
	var sel = new Array();
	for (var i=0; i<obj.length; i++) {
		if (obj[i].selected == true) {
			sel[sel.length] = i;
		}
	}
	for (i in sel) {
		if (sel[i] != 0 && !obj[sel[i]-1].selected) {
			var tmp = new Array((document.body.innerHTML ? obj[sel[i]-1].innerHTML : obj[sel[i]-1].text), obj[sel[i]-1].value, obj[sel[i]-1].style.color, obj[sel[i]-1].style.backgroundColor, obj[sel[i]-1].className, obj[sel[i]-1].id);
			if (document.body.innerHTML) obj[sel[i]-1].innerHTML = obj[sel[i]].innerHTML;
			else obj[sel[i]-1].text = obj[sel[i]].text;
			obj[sel[i]-1].value = obj[sel[i]].value;
			obj[sel[i]-1].style.color = obj[sel[i]].style.color;
			obj[sel[i]-1].style.backgroundColor = obj[sel[i]].style.backgroundColor;
			obj[sel[i]-1].className = obj[sel[i]].className;
			obj[sel[i]-1].id = obj[sel[i]].id;
			if (document.body.innerHTML) obj[sel[i]].innerHTML = tmp[0];
			else obj[sel[i]].text = tmp[0];
			obj[sel[i]].value = tmp[1];
			obj[sel[i]].style.color = tmp[2];
			obj[sel[i]].style.backgroundColor = tmp[3];
			obj[sel[i]].className = tmp[4];
			obj[sel[i]].id = tmp[5];
			obj[sel[i]-1].selected = true;
			obj[sel[i]].selected = false;
		}
	}
	
	sps_select_multiple_set_value(widget_id);

	return false;
}

function sps_select_multiple_down(widget_id) { 
	obj = document.getElementById("to_" + widget_id);

	if (obj.tagName.toLowerCase() != "select" && obj.length < 2)
		return false;
	var sel = new Array();
	for (var i=obj.length-1; i>-1; i--) {
		if (obj[i].selected == true) {
			sel[sel.length] = i;
		}
	}
	for (i in sel) {
		if (sel[i] != obj.length-1 && !obj[sel[i]+1].selected) {
			var tmp = new Array((document.body.innerHTML ? obj[sel[i]+1].innerHTML : obj[sel[i]+1].text), obj[sel[i]+1].value, obj[sel[i]+1].style.color, obj[sel[i]+1].style.backgroundColor, obj[sel[i]+1].className, obj[sel[i]+1].id);
			if (document.body.innerHTML) obj[sel[i]+1].innerHTML = obj[sel[i]].innerHTML;
			else obj[sel[i]+1].text = obj[sel[i]].text;
			obj[sel[i]+1].value = obj[sel[i]].value;
			obj[sel[i]+1].style.color = obj[sel[i]].style.color;
			obj[sel[i]+1].style.backgroundColor = obj[sel[i]].style.backgroundColor;
			obj[sel[i]+1].className = obj[sel[i]].className;
			obj[sel[i]+1].id = obj[sel[i]].id;
			if (document.body.innerHTML) obj[sel[i]].innerHTML = tmp[0];
			else obj[sel[i]].text = tmp[0];
			obj[sel[i]].value = tmp[1];
			obj[sel[i]].style.color = tmp[2];
			obj[sel[i]].style.backgroundColor = tmp[3];
			obj[sel[i]].className = tmp[4];
			obj[sel[i]].id = tmp[5];
			obj[sel[i]+1].selected = true;
			obj[sel[i]].selected = false;
		}
	}

	sps_select_multiple_set_value(widget_id);

	return false;
}

function sps_select_multiple_set_value(widget_id)
{
	var from_widget 	= document.getElementById("from_" + widget_id);
	var to_widget 		= document.getElementById("to_" + widget_id);
	var hidden_widget 	= document.getElementById("hidden_" + widget_id);

	h_val = "";
	for (i=0; i<to_widget.length; ++i)
	{
		if (i>0)
		{
			h_val += "|";
		}
		h_val += to_widget[i].value;
	}
	hidden_widget.value = h_val;

	return false;
}



