view public/javascripts/select_list_move.js @ 8:0c83d98252d9 yuya

* Add custom repo prefix and proper auth realm, remove auth cache (seems like an unwise feature), pass DB handle around, various other bits of tidying
author Chris Cannam
date Thu, 12 Aug 2010 15:31:37 +0100
parents 513646585e45
children 433d4f72a19b
line wrap: on
line source
var NS4 = (navigator.appName == "Netscape" && parseInt(navigator.appVersion) < 5);

function addOption(theSel, theText, theValue)
{
  var newOpt = new Option(theText, theValue);
  var selLength = theSel.length;
  theSel.options[selLength] = newOpt;
}

function swapOptions(theSel, index1, index2)
{
	var text, value;
  text = theSel.options[index1].text;
  value = theSel.options[index1].value;
  theSel.options[index1].text = theSel.options[index2].text;
  theSel.options[index1].value = theSel.options[index2].value;
  theSel.options[index2].text = text;
  theSel.options[index2].value = value;
}

function deleteOption(theSel, theIndex)
{ 
  var selLength = theSel.length;
  if(selLength>0)
  {
    theSel.options[theIndex] = null;
  }
}

function moveOptions(theSelFrom, theSelTo)
{
  
  var selLength = theSelFrom.length;
  var selectedText = new Array();
  var selectedValues = new Array();
  var selectedCount = 0;
  
  var i;
  
  for(i=selLength-1; i>=0; i--)
  {
    if(theSelFrom.options[i].selected)
    {
      selectedText[selectedCount] = theSelFrom.options[i].text;
      selectedValues[selectedCount] = theSelFrom.options[i].value;
      deleteOption(theSelFrom, i);
      selectedCount++;
    }
  }
  
  for(i=selectedCount-1; i>=0; i--)
  {
    addOption(theSelTo, selectedText[i], selectedValues[i]);
  }
  
  if(NS4) history.go(0);
}

function moveOptionUp(theSel) {
	var index = theSel.selectedIndex;
	if (index > 0) {
		swapOptions(theSel, index-1, index);
  	theSel.selectedIndex = index-1;
	}
}

function moveOptionDown(theSel) {
	var index = theSel.selectedIndex;
	if (index < theSel.length - 1) {
		swapOptions(theSel, index, index+1);
  	theSel.selectedIndex = index+1;
	}
}

function selectAllOptions(id)
{
  var select = $(id);
  for (var i=0; i<select.options.length; i++) {
    select.options[i].selected = true;
  }
}