﻿function Toggle(sender) {
    if (sender == null) return;

    // Get first div tag above sender
    var tag = sender.nextSibling;
    while (tag != null && tag.nodeName != 'DIV')
        tag = tag.nextSibling;
    if (tag == null) return;

    // Inside the 'toggle'
    if (tag.parentNode.className == 'toggle') {
        tag.style['display'] = (tag.style['display'] == 'block') ? 'none' : 'block';
    }

    // The 'toggle' itself
    if (tag.className == 'toggle') {
        // Change sender text
        var expanded = (sender.innerHTML == 'Expand all');
        sender.innerHTML = expanded ? 'Collapse all' : 'Expand all';

        // Collapse/Expand all divs inside the 'toggle'
        var display = expanded ? 'block' : 'none';
        for (var i = 0; i < tag.childNodes.length; i++)
            if (tag.childNodes[i].nodeName == 'DIV')
            tag.childNodes[i].style['display'] = display;
    }
}
