/* Simple JavaScript for toggling the display of elements */

/* toggleBlock
 * toggles the display for elements between 'block' and 'none'
 */
function toggleBlock(elemId, forceOn) {
    if (! elemId) { return false; }
    var elem = document.getElementById(elemId);
    if (! elem) { return false; }
    if (forceOn || (elem.style.display == 'none')) {
        elem.style.display = 'block';
    }
    else {
        elem.style.display = 'none';
    }
    return false;
}

/* toggleInline
 * toggles the display for elements between 'inline' and 'none'
 */
function toggleInline(elemId, forceOn) {
    if (! elemId) { return false; }
    var elem = document.getElementById(elemId);
    if (! elem) { return false; }
    if (forceOn || (elem.style.display == 'none')) {
        elem.style.display = 'inline';
    }
    else {
        elem.style.display = 'none';
    }
    return false;
}

/* toggleInlineBlock
 * toggles the display for elements between 'inline-block' and 'none'
 */
function toggleInlineBlock(elemId, forceOn) {
    if (! elemId) { return false; }
    var elem = document.getElementById(elemId);
    if (! elem) { return false; }
    if (forceOn || (elem.style.display == 'none')) {
        elem.style.display = 'inline-block';
        if (/Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent)) {
            // I seriously hate doing this ...
            elem.style.display = '-moz-inline-box';
        }
    }
    else {
        elem.style.display = 'none';
    }
    return false;
}

/* toggleDisplayClass
 * toggles the element's CSS class between className + "-on" and className + '-off'.
 */
function toggleDisplayClass(elemId, className, forceOn) {
    if (! elemId) { return false; }
    var elem = document.getElementById(elemId);
    if (! elem) { return false; }
    if (forceOn || (/^.*-off/.test(elem.className))) {
        elem.className = className + '-on';
    }
    else {
        elem.className = className + '-off';
    }
    return false;
}
