// Javascript form control functions

function clearForm(ref)
{
    var obj = getObj(ref);
    if (obj) {
        for(i=0; i<obj.length; i++) {
            var elem = obj.elements[i];

            // do not clear the value of buttons and hidden form elements
            if (elem.type == 'submit' || elem.type == 'reset' || elem.type == 'button' || elem.type == 'hidden') {
                continue;
            } else {
                elem.value = '';
            }
        }
    }
    return false;
}

function clickOnce(ref)
{
    var obj = getObj(ref);
    if (obj) {
        if (document.all || document.getElementById) {
            obj.disabled = true;
        } else {
            obj.onclick = null;
            obj.value = 'clicked';
        }
    }
    return true;
}

function confirmSubmit(msg)
{
    var msg = init(msg, 'Are you sure?');
    if (confirm(msg)) {
        return true;
    } else {
        return false;
    }
}

//  RADIO & CHECKBOX
function toggleChecked(ref)
{
    var obj = getObj(ref);
    if (obj) {
        obj.click();
    }
}
function checkRadio(a) {toggleChecked(a);}
function checkBox(a) {toggleChecked(a);}

function setChecked(ref)
{
    var obj = getObj(ref);
    if (obj) {
        if (obj.checked == undefined) {
            obj.click();
        }
    }
}

function toggleDisabled(ref)
{
    var obj = getObj(ref);
    if (obj) {
        if (document.all || document.getElementById) {
            if (obj.disabled === true) {
                obj.disabled = false;
            } else {
                obj.disabled = true;
            }
        } else {
            if (obj.onclick !== null) {
                obj.onclick = null;
            }
        }
    }
}

 
/* Puts all the selected elements from a multi-select box into CSV
 * and puts it in a form control
 * @param DOM obj form 
 * @param string NAME - name of multi-select control
 */
function getSelected(form, NAME) {
    NAME = init(NAME, 'SELECTED');
    MULTI_SELECT = form.elements[NAME];
    if (MULTI_SELECT == undefined) {
        return false;
    } else if (MULTI_SELECT.options.length == 0) {
        return false;
    } else {
        var VALUES = '';
        for (i=0; i<MULTI_SELECT.length; i++) {
            MULTI_SELECT.options[i].selected;
            VALUES = VALUES + MULTI_SELECT.options[i].value;

            // add a comma if not at the end
            if (i != (MULTI_SELECT.length-1)) {
                VALUES = VALUES + ',';
            }
        }
        MULTI_SELECT.form.elements[NAME + '_VALUES'].value = VALUES;
    } 
}

/* Moves selected items from Source multi-select control to Destination multi-
 * select control.
 */
function moveSelectedItems(SOURCE, DESTINATION) 
{
    DEFAULT = SOURCE.form.elements['DEFAULT_SELECT'];
    if (SOURCE.options.selectedIndex >= 0) {	
        if (DESTINATION.options[0] && DESTINATION.options[0].value == '') {
            DESTINATION.options[0] = null;
        }
        for (i=0; i<SOURCE.length; i++) {
            if ((SOURCE.options[i].selected == true) && (SOURCE.options[i].readonly != 'yes')) {
                DESTINATION.options[DESTINATION.options.length] = new Option(SOURCE.options[i].text, SOURCE.options[i].value);
                if (DEFAULT != undefined) {
                    DEFAULT.options[DEFAULT.options.length] = new Option(SOURCE.options[i].text, SOURCE.options[i].value);
                }
                SOURCE.options[i] = null;
                i--;
            }
        }
    }
}

