All pastes #147075 Raw Edit

Stuff

public text v1 · immutable
#147075 ·published 2006-08-24 03:00 UTC
rendered paste body
function sort_up(s)
{
	if (s.selectedIndex === false || s.selectedIndex == -1)
	{
		alert("Please select an option first");
		return( false );
	}
	
	var index = s.selectedIndex, arr = s.options, temp;
	
	if (index == 0) return;
	
	arr = extract_options(s);
	
	temp = s.options[index - 1];
	arr[index - 1] = {value:s.options[index].value, text:s.options[index].text};
	arr[index] = {value:temp.value, text:temp.text};
	
	write_options(s, arr);
	
	s.options[index - 1].selected = true;
	
	return( false );
}

function sort_down(s)
{
	if (s.selectedIndex === false || s.selectedIndex == -1)
	{
		alert("Please select an option first");
		return( false );
	}
	
	var index = s.selectedIndex, arr = s.options, temp;
	
	if (index == s.options.length - 1) return;

	arr = extract_options(s);
	
	temp = s.options[index + 1];
	arr[index + 1] = {value:s.options[index].value, text:s.options[index].text};
	arr[index] = {value:temp.value, text:temp.text};
	
	write_options(s, arr);
	
	s.options[index + 1].selected = true;
	
	return( false );
}

function save_priority(s)
{
	var f = s.form, i, len = s.options.length;
	
	if (f.priority == undefined)
	{
		alert("Missing 'priority' input field");
		return( false );
	} else if ( !confirm("This will save the order in which these options appear on the website.\n\nOK to continue?") )
		return( false );
	
	f.priority.value = "";
	
	for (i = 0; i < len; i++)
		f.priority.value += ((f.priority.value != "") ? "," : "") + s.options[i].value;
	
	return( true );
}

function extract_options(s)
{
	var i, len = s.options.length;
	var arr = [];
	
	for (i = 0; i < len; i++)
		arr.push( {value:s.options[i].value, text:s.options[i].text} );
	
	return( arr );
}

function write_options(s, arr)
{
	var i, len = arr.length;
	
	s.options.length = 0;
	
	for (i = 0; i < len; i++)
		s.options[s.options.length] = new Option(arr[i].text, arr[i].value);
}