/* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. * * This Source Code Form is "Incompatible With Secondary Licenses", as * defined by the Mozilla Public License, v. 2.0. */ function sortedList_moveItem(paramName, direction, separator) { var select = document.getElementById('select_' + paramName); var inputField = document.getElementById('input_' + paramName); var currentIndex = select.selectedIndex; var newIndex = currentIndex + direction; var optionCurrentIndex; var optionNewIndex; /* Return if no selection */ if (currentIndex < 0) return; /* Return if trying to move upward out of list */ if (newIndex < 0) return; /* Return if trying to move downward out of list */ if (newIndex >= select.length) return; /* Move selection */ optionNewIndex = select.options[newIndex]; optionCurrentIndex = select.options[currentIndex]; /* Because some browsers don't accept the same option object twice in a * selection list, we need to put a blank option here first */ select.options[newIndex] = new Option(); select.options[currentIndex] = optionNewIndex; select.options[newIndex] = optionCurrentIndex; select.selectedIndex = newIndex; populateInputField(select, inputField, separator); } function populateInputField(select, inputField, separator) { var i; var stringRepresentation = ''; for (i = 0; i < select.length; i++) { if (select.options[i].value == separator) { break; } if (stringRepresentation != '') { stringRepresentation += ','; } stringRepresentation += select.options[i].value; } inputField.value = stringRepresentation; }