select_list_move.js
88 lines
| 2.2 KiB
| application/javascript
|
JavascriptLexer
|
r8979 | var NS4 = (navigator.appName == "Netscape" && parseInt(navigator.appVersion) < 5); | ||
|
r11513 | function addOption(theSel, theText, theValue) { | ||
|
r8979 | var newOpt = new Option(theText, theValue); | ||
var selLength = theSel.length; | ||||
theSel.options[selLength] = newOpt; | ||||
} | ||||
|
r11513 | function swapOptions(theSel, index1, index2) { | ||
|
r8982 | var text, value; | ||
|
r8979 | 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; | ||||
} | ||||
|
r11513 | function deleteOption(theSel, theIndex) { | ||
|
r8979 | var selLength = theSel.length; | ||
|
r11513 | if (selLength > 0) { | ||
|
r8979 | theSel.options[theIndex] = null; | ||
} | ||||
} | ||||
|
r11513 | function moveOptions(theSelFrom, theSelTo) { | ||
|
r8979 | var selLength = theSelFrom.length; | ||
var selectedText = new Array(); | ||||
var selectedValues = new Array(); | ||||
var selectedCount = 0; | ||||
var i; | ||||
|
r11513 | for (i = selLength - 1; i >= 0; i--) { | ||
if (theSelFrom.options[i].selected) { | ||||
|
r8979 | selectedText[selectedCount] = theSelFrom.options[i].text; | ||
selectedValues[selectedCount] = theSelFrom.options[i].value; | ||||
deleteOption(theSelFrom, i); | ||||
selectedCount++; | ||||
} | ||||
} | ||||
|
r11513 | for (i = selectedCount - 1; i >= 0; i--) { | ||
|
r8979 | addOption(theSelTo, selectedText[i], selectedValues[i]); | ||
} | ||||
|
r11513 | if (NS4) history.go(0); | ||
|
r8979 | } | ||
function moveOptionUp(theSel) { | ||||
|
r8982 | var index = theSel.selectedIndex; | ||
if (index > 0) { | ||||
swapOptions(theSel, index-1, index); | ||||
theSel.selectedIndex = index-1; | ||||
} | ||||
|
r8979 | } | ||
|
r12716 | function moveOptionTop(theSel) { | ||
var index = theSel.selectedIndex; | ||||
if (index > 0) { | ||||
for (i=index; i>0; i--) { | ||||
swapOptions(theSel, i-1, i); | ||||
} | ||||
theSel.selectedIndex = 0; | ||||
} | ||||
} | ||||
|
r8979 | function moveOptionDown(theSel) { | ||
|
r8982 | var index = theSel.selectedIndex; | ||
if (index < theSel.length - 1) { | ||||
swapOptions(theSel, index, index+1); | ||||
theSel.selectedIndex = index+1; | ||||
} | ||||
|
r8979 | } | ||
|
r12716 | function moveOptionBottom(theSel) { | ||
var index = theSel.selectedIndex; | ||||
var indexTop = theSel.length - 1; | ||||
if (index < theSel.length - 1) { | ||||
for (i=index; i<indexTop; i++) { | ||||
swapOptions(theSel, i+1, i); | ||||
} | ||||
theSel.selectedIndex = indexTop; | ||||
} | ||||
} | ||||
|
r9885 | // OK | ||
|
r11513 | function selectAllOptions(id) { | ||
|
r11512 | var select = $('#'+id); | ||
|
r9885 | select.children('option').attr('selected', true); | ||
|
r8979 | } | ||