<!--
function addItems(fromOptions, toOptions, noOptionsText, sort) {
  checkAdd(toOptions, noOptionsText);
  moveSelectedOptions(fromOptions, toOptions, noOptionsText, sort);
  return false;
}

function removeItems(fromOptions, toOptions, noOptionsText, sort) {
  moveSelectedOptions(toOptions, fromOptions, noOptionsText, sort);
  checkRemove(toOptions, noOptionsText);
  return false;
}

function checkAdd(toOptions, noOptionsText) {
  if(toOptions[0] != null && toOptions[0].text == noOptionsText) {
    toOptions[0] = null;
  }
}

function checkRemove(toOptions, noOptionsText) {
  if(toOptions.length == 0) {
    toOptions[0] = new Option(noOptionsText, "");
  }
}

function highlightItems(toOptions) {
  for(i = 0; i < toOptions.length; i++) {
    toOptions[i].selected = true;
  }
  return false;
}

function addAllItems(fromOptions, toOptions, noOptionsText, sort) {
  checkAdd(toOptions, noOptionsText);
  moveAllOptions(fromOptions, toOptions, noOptionsText, sort);
  return false;
}

function moveAllOptions(fromOptions, toOptions, noOptionsText, sort) {
  for(i = 0; i < fromOptions.length; i++) {
    if(fromOptions[i].text != noOptionsText) {
      var o = new Option(fromOptions[i].text, fromOptions[i].value);

      toOptions[toOptions.length] = o;
      fromOptions[i] = null;
      i--;
    }
  }

  if (typeof sort == "undefined" || sort) {
    sortSelectBox(toOptions);
  }
  return false;
}

function moveSelectedOptions(fromOptions, toOptions, noOptionsText, sort) {
  for(i = 0; i < fromOptions.length; i++) {
    if(fromOptions[i].selected && fromOptions[i].text != noOptionsText) {
      var o = new Option(fromOptions[i].text, fromOptions[i].value);

      toOptions[toOptions.length] = o;
      fromOptions[i] = null;
      i--;
    }
  }

  if (typeof sort == "undefined" || sort) {
    sortSelectBox(toOptions);
  }
  return false;
}

function removeAllOptions(fromOptions, toOptions, noOptionsText) {
  for(i = 0; i < toOptions.length; i++) {
    if(toOptions[i].text != noOptionsText) {
      var o = new Option(toOptions[i].text, toOptions[i].value);
      fromOptions[fromOptions.length] = o;
      toOptions[i] = null;
      i--;
    }
  }

  checkRemove(toOptions, noOptionsText);
  sortSelectBox(fromOptions);

}

function clearMultiselectFields(fromOptions, toOptions, noOptionsText, formVar) {
  removeAllOptions(fromOptions, toOptions, noOptionsText);
  clearFields(formVar);
}

function sortSelectBox(obj) {
var o = new Array();
for (var i=0; i<obj.options.length; i++) {
	o[o.length] = new Option( obj.options[i].text, obj.options[i].value, obj.options[i].defaultSelected, obj.options[i].selected) ;
	}
if (o.length==0) { return; }
o = o.sort( 
	function(a,b) { 
		if ((a.text+"") < (b.text+"")) { return -1; }
		if ((a.text+"") > (b.text+"")) { return 1; }
		return 0;
		} 
	);

for (var i=0; i<o.length; i++) {
	obj.options[i] = new Option(o[i].text, o[i].value, o[i].defaultSelected, o[i].selected);
	}
}



function _sortSelectBox(box) {

  var v = new Array();
  var t = new Array();
  for(i = 0; i < box.length; i++) {
    v[i] = box[i].value;
    t[i] = box[i].text;
  }
  v.sort();
  t.sort();
  for(i = 0; i < box.length; i++) {
    box[i].value = v[i];
    box[i].text = t[i];
  }

  return false;
}
// -->
