<!--

    // is a selectbox option already selected?
    function alreadySelected(targetSelectbox, selectboxValue)
    {
        // loop through options
        var selected = false;
        for (var i=0; i < targetSelectbox.options.length; i++)
        {
            // if this is the specified selectbox value and it is selected
            if (targetSelectbox.options[i].value==selectboxValue)
            {
                selected = true;
                break;    
            }
        }
        
        // done, return result
        return selected;            
    }

    // add the selected options
    function addSelectedOptions(frm, src, target)
    {
        // retrieve handle to frm
        var f = document.forms[frm];
        
        // retrieve handle to src, target selectboxes
        var srcSelectbox = f.elements[src];
        var targetSelectbox = f.elements[target];
        
        // add all selected options to the target selectbox, if not already present
        for (var i=0; i < srcSelectbox.options.length; i++)
        {
            // if the option is selected
            if (srcSelectbox.options[i].selected == true)                
            {
                // if it is not already present in the target selectbox
                if (!alreadySelected(targetSelectbox, srcSelectbox.options[i].value))
                {
                    // add to target selectbox
                    targetSelectbox.options[targetSelectbox.options.length] = new Option(srcSelectbox.options[i].text, srcSelectbox.options[i].value);
                }
                
                // de-select
                srcSelectbox.options[i].selected = false;
            }
        }
    }

    // remove the selected options
    function removeSelectedOptions(frm, target)
    {
        // retrieve handle to frm
        var f = document.forms[frm];
        
        // retrieve handle to target selectboxes
        var targetSelectbox = f.elements[target];

        // array containing all new options
        var newOptions = new Array(targetSelectbox.options.length);
        var newOptionsIndex = 0;
        
        // remove all selected options from the target selectbox
        for (var i=0; i < targetSelectbox.options.length; i++)
        {
            // if the option is not selected for removal, add to newOptions array    
            if (targetSelectbox.options[i].selected==false)
            {
                newOptions[newOptionsIndex] = targetSelectbox.options[i];
                newOptionsIndex++;
            }
        }
        
        // reset target selectbox options
        targetSelectbox.options.length = 0;
        
        // add all options that were not selected for removal
        for (var i=0; i < newOptionsIndex; i++)
        {
            // add option
            targetSelectbox.options[i] = newOptions[i];
        }               
    }
    
-->
