function selectUnselectMatchingOptions(a,b,c,d){if(window.RegExp){if(c=="select"){c=true;var e=false}else if(c=="unselect"){c=false;e=true}else return;b=new RegExp(b);for(var f=0;f<a.options.length;f++)if(b.test(a.options[f].text))a.options[f].selected=c;else if(d==true)a.options[f].selected=e}}function selectMatchingOptions(a,b){selectUnselectMatchingOptions(a,b,"select",false)}function selectOnlyMatchingOptions(a,b){selectUnselectMatchingOptions(a,b,"select",true)}
function unSelectMatchingOptions(a,b){selectUnselectMatchingOptions(a,b,"unselect",false)}
function sortSelect(a){var b=[];if(a.options!=null){for(var c=0;c<a.options.length;c++)b[b.length]=new Option(a.options[c].text,a.options[c].value,a.options[c].defaultSelected,a.options[c].selected);if(b.length!=0){b=b.sort(function(d,e){if(d.text+""<e.text+"")return-1;if(d.text+"">e.text+"")return 1;return 0});for(c=0;c<b.length;c++)a.options[c]=new Option(b[c].text,b[c].value,b[c].defaultSelected,b[c].selected)}}}
function selectAllOptions(a){for(var b=0;b<a.options.length;b++)a.options[b].selected=true}function moveSelectedOptions(a,b){if(arguments.length>3){var c=arguments[3];c!=""&&unSelectMatchingOptions(a,c)}for(c=0;c<a.options.length;c++){var d=a.options[c];if(d.selected)b.options[b.options.length]=new Option(d.text,d.value,false,true)}for(c=a.options.length-1;c>=0;c--){d=a.options[c];if(d.selected)a.options[c]=null}}
function copySelectedOptions(a,b){for(var c={},d=0;d<b.options.length;d++)c[b.options[d].value]=b.options[d].text;for(d=0;d<a.options.length;d++){var e=a.options[d];if(e.selected)if(c[e.value]==null||c[e.value]=="undefined"||c[e.value]!=e.text)b.options[b.options.length]=new Option(e.text,e.value,false,false)}a.selectedIndex=-1;b.selectedIndex=-1}
function moveAllOptions(a,b){selectAllOptions(a);if(arguments.length==2)moveSelectedOptions(a,b);else if(arguments.length==3)moveSelectedOptions(a,b,arguments[2]);else arguments.length==4&&moveSelectedOptions(a,b,arguments[2],arguments[3])}function copyAllOptions(a,b){selectAllOptions(a);if(arguments.length==2)copySelectedOptions(a,b);else arguments.length==3&&copySelectedOptions(a,b,arguments[2])}
function swapOptions(a,b,c){a=a.options;var d=a[b].selected,e=a[c].selected,f=new Option(a[b].text,a[b].value,a[b].defaultSelected,a[b].selected),g=new Option(a[c].text,a[c].value,a[c].defaultSelected,a[c].selected);a[b]=g;a[c]=f;a[b].selected=e;a[c].selected=d}function moveOptionUp(a){for(i=0;i<a.options.length;i++)if(a.options[i].selected)if(i!=0&&!a.options[i-1].selected){swapOptions(a,i,i-1);a.options[i-1].selected=true}}
function moveOptionDown(a){for(i=a.options.length-1;i>=0;i--)if(a.options[i].selected)if(i!=a.options.length-1&&!a.options[i+1].selected){swapOptions(a,i,i+1);a.options[i+1].selected=true}}function removeSelectedOptions(a){for(var b=a.options.length-1;b>=0;b--){var c=a.options[b];if(c.selected)a.options[b]=null}a.selectedIndex=-1}function removeAllOptions(a){for(var b=a.options.length-1;b>=0;b--)a.options[b]=null;a.selectedIndex=-1}
function addOption(a,b,c,d){if(a!=null&&a.options!=null)a.options[a.options.length]=new Option(b,c,false,d)};
