      function toggle(node)
      {
        next = node;
        next = nextRealSibling(next);
        next = nextRealSibling(next);

        if (!next) return false;
        
        nextTag = next.tagName.toLowerCase();

        if (nextTag == 'div')
          next.style.display = (next.style.display == 'block') ? 'none' : 'block';

        return false;
      }

      function nextRealSibling(el) 
      {
        do el = el.nextSibling
        while (el && el.nodeType != 1);
        return el;
      }
      
      function expand(node)
      {
        next = node;
        next = nextRealSibling(next);
        next = nextRealSibling(next);

        if (!next) return false;
        
        nextTag = next.tagName.toLowerCase();

        if (nextTag == 'div')
          next.style.display = 'block';

        return false;
      }
      
      function collapse(node)
      {
        next = node;
        next = nextRealSibling(next);
        next = nextRealSibling(next);

        if (!next) return false;
        
        nextTag = next.tagName.toLowerCase();

        if (nextTag == 'div')
          next.style.display = 'none';

        return false;
      }
      
      function show(node)
      {
        expand(node);
        source = node.parentNode.previousSibling.previousSibling;
        if (source && source.tagName.toLowerCase() == 'a')
          show(source);
      }


