/* 
 * Browser-safe. Checks to see if an array of check boxes has any which are 
 * checked. Boxes have ids like check[0], check[1], ... , check[n] where 'check' 
 * is the base Id that has been assigned to the group.
 *
 * Param:               arrayId - String - id of element group to change
 * Returns:             boolean (true one or more checked) false (else)
 */
function checkBoxArrayHasChecked(arrayId) {
    for (i = 0; ; i++) {
        id = arrayId + '[' + i + ']';
        elem = getObj(id);
        if (elem == null) {
            break;
        } else if (elem.checked) {
           return true;
        }
    }
    return false;
}
/*
 * Browser-safe. Sets the visibility of an element using CSS visibility
 *
 * Param:               objId - String - id of element to change
 * Param:               state - boolean - true (show element) false (hide element)
 * Returns:             nothing
 */                                                             
function hideOrShowObject(formId, objId, state) {
    var elem = getObj(objId, formId);
    if (elem != null) {
        if (state) {
            elem.style.visibility = 'visible';
        } else {
            elem.style.visibility = 'hidden';
        }               
    }
}

/*
 * Browser-safe get object. Tries all three approaches to get an object
 * by its element Id.
 *
 * Param:               objId - String - id of element to retrieve.
 * Param:               formId - String - id of form (optional).
 * Returns:             element or null if not found.
 */
function getObj(objId, formId) {
        var fullId = objId;
        if (formId != null && formId.length > 0) {
            fullId = formId + ':' + objId;
        }
        //alert('getting object: ' + fullId);
        var elem = null;
        if (document.getElementById) {
            elem = document.getElementById(fullId);
        } else if (document.all) {
            elem = document.all[fullId];
        } else if (document.layers) {
            elem = document.layers[fullId];
        }
        return elem;
} 

