haikuwebkit/Websites/bugs.webkit.org/js/params.js

51 lines
1.8 KiB
JavaScript

/* 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;
}