function toggle_visibility(name)
{
    node = document.getElementById(name);
    if(!node) { return; }
    if(!node.style) { return; };
    if (node.style.display == "block") {
        node.style.display = "none";
    }
    else if (node.style.display == "none") {
        node.style.display = "block";
    }
    else { alert(node.nodeName + node.style.display); }
}

function toggle_state(name)
{
    node = document.getElementById(name)
    if(!node) { return; }
    var orig = node.firstChild.nodeValue;
    if(!orig) { return; }
    if(orig.charAt(0) == '+')
    {
      node.firstChild.nodeValue = orig.replace(/\+/, "-");
    }
    else
    {
      node.firstChild.nodeValue = orig.replace(/\-/, "+");
    }
}

function show(id)
{
  var node = document.getElementById( id );
  node.style.display = "block";
}

function hide(id)
{
  var node = document.getElementById( id );
  node.style.display = "none";
}


function toggle_visibility_of_fieldset(node)
{
    if(!node) { return; }
    if(!node.childNodes) { return; }
    var children = node.childNodes,
        num = children.length;
    toggle_visibility(children[0]);
    toggle_state(children[1]);
    while (num > 1)
    {
        toggle_visibility(children[num]);
        num--;
    }
}
