﻿// Hide all select boxes    
function hideSelect()
{
    if (document.all) // Only do this for IE
    {
        for (formIdx=0; formIdx<document.forms.length; formIdx++)
        {
            var theForm = document.forms[formIdx];
            for(elementIdx=0; elementIdx<theForm.elements.length; elementIdx++)
            {
                window.status += theForm[elementIdx].type;
                if(theForm[elementIdx].type == "select-one")
                {    theForm[elementIdx].style.visibility = "hidden";    }
            }
        }
    }
}

// Unhide all select boxes
function unhideSelect()
{
    if (document.all) // Only do this for IE
    {
        for (formIdx=0; formIdx<document.forms.length; formIdx++)
        {
            var theForm = document.forms[formIdx];
            for(elementIdx=0; elementIdx<theForm.elements.length; elementIdx++)
            {
                if(theForm[elementIdx].type == "select-one")
                {    theForm[elementIdx].style.visibility = "visible";    }
            }
        }
    }
}


// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Select Menu Options
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    
function SelectAll(Menu)
{
    for (cnt=0; cnt<Menu.options.length; cnt++)
    {   Menu.options[cnt].selected = true;    }
} 
    
function sel_Redirect(menuName)
{
    window.open(menuName.options[menuName.selectedIndex].value)
} 

    
function sel_RedirectParam(URL, menuName, target)
{
    window.open(URL + menuName.options[menuName.selectedIndex].value, target)
} 



function saveOptionToHidden(elSel, valueHiddenField, textHiddenField)
{
    valueHiddenField.value = "";
    textHiddenField.value = "";
    
    for (cnt=0; cnt < elSel.options.length; cnt++)
    {
        if (cnt>0) 
        { 
            valueHiddenField.value += "|"; 
            textHiddenField.value += "|"; 
        }
        
        valueHiddenField.value += elSel.options[cnt].value;
        textHiddenField.value += elSel.options[cnt].text;
    }
} 

function saveOptionValueToHidden(elSel, hiddenField)
{
    hiddenField.value = "";
    
    for (cnt=0; cnt < elSel.options.length; cnt++)
    {
        if (cnt>0) { hiddenField.value += "|"; }
        hiddenField.value += elSel.options[cnt].value;
    }
} 

function saveOptionTextToHidden(elSel, hiddenField)
{
    hiddenField.value = "";
    
    for (cnt=0; cnt < elSel.options.length; cnt++)
    {
        if (cnt>0) { hiddenField.value += "|"; }
        hiddenField.value += elSel.options[cnt].text;
    }
} 

function validateOption(elSel, value)
{
    var valid = true;
    
    for (cnt=0; cnt < elSel.options.length; cnt++)
    {
        if (elSel.options[cnt].value == value) { valid = false; }
    }
    if (!valid) { alert (value + " exists in the list box."); }
    return valid;
} 

// Adds a new option before the selected value
function insertOptionBefore(elSel, value)
{
    if (elSel.selectedIndex >= 0) 
    {
        if (validateOption(elSel, value))
        {
            var elOptNew = document.createElement('option');
            elOptNew.text = value;
            elOptNew.value = value;
            var elOptOld = elSel.options[elSel.selectedIndex];  
            try 
            {
                elSel.add(elOptNew, elOptOld); // standards compliant; doesn't work in IE
            }
            catch(ex) 
            {
            elSel.add(elOptNew, elSel.selectedIndex); // IE only
            }
        }
    }
}


// Adds a new option as the last item
function insertOptionLast(elSel, value)
{
    if (validateOption(elSel, value))
    {
        var elOptNew = document.createElement('option');
        elOptNew.text = value;
        elOptNew.value = value;
        
        try 
        {
            elSel.add(elOptNew, null); // standards compliant; doesn't work in IE
        }
        catch(ex) 
        {
            elSel.add(elOptNew); // IE only
        }
    }
}

function editOptionSelected(elSel, sPrompt)
{
    if (elSel.selectedIndex >= 0) 
    {
        var stext = elSel.options[elSel.selectedIndex].text;
        var svalue = elSel.options[elSel.selectedIndex].value;
        
        var value = prompt(sPrompt, stext);
        
        if (value != null)
        {
            if (validateOption(elSel, value))
            {
                if (stext == svalue) { elSel.options[elSel.selectedIndex].value = value; }
                elSel.options[elSel.selectedIndex].text = value;
            }
        }
    }
}


// Removes the selected option
function removeOptionSelected(elSel)
{
    var i;
    for (i = elSel.length - 1; i>=0; i--) 
    {
        if (elSel.options[i].selected) 
        { 
            elSel.remove(i); 
            if (i < elSel.length) { elSel.options.selectedIndex = i; }
            else { elSel.options.selectedIndex = i-1; }
            break;
        }
    }
}

function removeOptionSelected(elSel, hiddenField)
{
    var i;
    for (i = elSel.length - 1; i>=0; i--) 
    {
        if (elSel.options[i].selected) 
        { 
            if (hiddenField.value != "") { hiddenField.value += "|"; }
            hiddenField.value += elSel.options[i].value;
            
            elSel.remove(i); 
            if (i < elSel.length) { elSel.options.selectedIndex = i; }
            else { elSel.options.selectedIndex = i-1; }
            break;
        }
    }
}

function removeOptionLast(elSel)
{
    if (elSel.length > 0) 
    { 
        elSel.remove(elSel.length - 1); 
        if (elSel.length > 0) { elSel.options.selectedIndex = elSel.length - 1; }
    }
    
}



function CopyFromSelectMenu(textFieldID, selectFieldID)
{
    var textField = document.getElementById(textFieldID);
    var selectField = document.getElementById(selectFieldID);

    textField.value = selectField.option[selectField.selectedindex].value;
}

function CopyFromSelectMenu(textField, selectMenu)
{
    var cnt;
    var Menu_Id;
    var Menu_Name;
    var MenuLength; 
    
    for (cnt=0; cnt < selectMenu.options.length; cnt++)
    {
        if (selectMenu.options[cnt].selected)
        {
            Menu_Id = selectMenu.options[cnt].value;
            Menu_Name = selectMenu.options[cnt].text; 
            
            textField.value += Menu_Name;
        }
    }
} 
    

function TransferMenu(Menu_Source, Menu_Dest)
{
    var cnt;
    var Menu_Id;
    var Menu_Name;
    var MenuLength; 
    
    for (cnt=0; cnt < Menu_Source.options.length; cnt++)
    {
        if (Menu_Source.options[cnt].selected)
        {
            Menu_Id = Menu_Source.options[cnt].value;
            Menu_Name = Menu_Source.options[cnt].text; 
            
            MenuLength = Menu_Dest.options.length;
            Menu_Dest.options[MenuLength] = new Option(Menu_Name, Menu_Id);
            Menu_Source.options[cnt] = null;
            cnt--;
        }
    }
    Menu_Source.SelectedIndex = 0
} 

function moveUpOptionSelected(Menu)
{
    var SelectedIndex;
    var MenuLength; 
    
    SelectedIndex = Menu.selectedIndex;
    MenuLength = Menu.options.length;
    if (SelectedIndex > 0)
    {
        var SelectedValue;
        var SelectedName;
        var TransferToValue;
        var TransferToName; 
        
        SelectedValue = Menu.options[SelectedIndex].value;
        SelectedName = Menu.options[SelectedIndex].text;
        TransferToValue = Menu.options[SelectedIndex-1].value;
        TransferToName = Menu.options[SelectedIndex-1].text; 
        
        Menu.options[SelectedIndex].value = TransferToValue;
        Menu.options[SelectedIndex].text = TransferToName;
        Menu.options[SelectedIndex-1].value = SelectedValue;
        Menu.options[SelectedIndex-1].text = SelectedName;
        Menu.selectedIndex = SelectedIndex-1;
    }
} 
    
function moveDownOptionSelected(Menu)
{
    var SelectedIndex;
    var MenuLength; 
    
    SelectedIndex = Menu.selectedIndex;
    MenuLength = Menu.options.length;
    if (SelectedIndex < MenuLength-1)
    {
        var SelectedValue;
        var SelectedName;
        var TransferToValue;
        var TransferToName; 
        
        SelectedValue = Menu.options[SelectedIndex].value;
        SelectedName = Menu.options[SelectedIndex].text;
        TransferToValue = Menu.options[SelectedIndex+1].value;
        TransferToName = Menu.options[SelectedIndex+1].text; 
        
        Menu.options[SelectedIndex].value = TransferToValue;
        Menu.options[SelectedIndex].text = TransferToName;
        Menu.options[SelectedIndex+1].value = SelectedValue;
        Menu.options[SelectedIndex+1].text = SelectedName;
        Menu.selectedIndex = SelectedIndex+1;
    }
} 

