//Graham Robbins BCS 18 Feb 2002

//Opens a new window with attributes passed, displaying image passed.

function bcsOpenImageAsWindow(bcsImage, bcsTitle, bcsResizable, bcsWidth, bcsHeight)
  {

  bcsAttributes = "width=" + bcsWidth + ",height=" + bcsHeight;

  if (bcsResizable){bcsAttributes=bcsAttributes+",resizable=yes,scrollbars=yes"}else{bcsAttributes=bcsAttributes+",resizable=no"};

  bcsW=open(bcsImage,"bcsWindow", bcsAttributes);

  bcsW.focus();

  }

//Graham Robbins BCS 24 June 2002

//Opens a URL in frame.

function bcsOpenURLInFrame(bcsURL)
  {

  location = bcsURL;

  }


//Graham Robbins BCS 13 March 2005

    function findChildNode(node, name) {
      var temp;
      if (node == null) {
        return null;
      } 
      node = node.firstChild;
      while (node != null) {
        if (node.nodeName == name) {
          return node;
        }
        temp = findChildNode(node, name);
        if (temp != null) {
          return temp;
        }
        node = node.nextSibling;
      }
      return null;
    }

    function toggleFolder(id, imageNode) {

      var folder = document.getElementById(id);
      var l = 0; // Length of image source attribute
      var vl = 'image/treeIcon/continuingBranch.png';  //Source attribute for image indicating continuing branch.

      if (imageNode != null && imageNode.nodeName != 'IMG') {
        imageNode = findChildNode(imageNode, 'IMG');
        if (imageNode!=null) l = imageNode.src.length;
      }

      if (folder == null) {
      } else if (folder.style.display == 'block') {
        // Toggle from display style 'block' to display style 'none', i.e. from visible to not visible.

        // While we are dealing with a continuing branch, get next sibling.
        while (imageNode != null && imageNode.src.substring(l-vl.length,l) == vl) {
          imageNode = imageNode.nextSibling;
          l = imageNode.src.length;
        }
        if (imageNode != null) {
          l = imageNode.src.length;
          imageNode.nextSibling.src = 'image/treeIcon/folderClosed.png';
          if (imageNode.src.substring(l-33,l) == 'image/treeIcon/nodeFolderOpen.png') {
            imageNode.src = 'image/treeIcon/nodeFolderClosed.png';
          } else if (imageNode.src.substring(l-37,l) == 'image/treeIcon/nodefolderOpenLast.png') {
            imageNode.src = 'image/treeIcon/nodeFolderClosedLast.png';
          }
        }
        folder.style.display = 'none';

      } else {
        // Toggle from display style 'none' to display style 'block', i.e. from not visible to visible.

        while (imageNode != null && imageNode.src.substring(l-vl.length,l) == vl) {
          imageNode = imageNode.nextSibling;
          l = imageNode.src.length;
        }
        if (imageNode != null) {
          l = imageNode.src.length;
          imageNode.nextSibling.src = 'image/treeIcon/folderOpen.png';
          if (imageNode.src.substring(l-35,l) == 'image/treeIcon/nodeFolderClosed.png') {
            imageNode.src = 'image/treeIcon/nodeFolderOpen.png';
          } else if (imageNode.src.substring(l-39,l) == 'image/treeIcon/nodeFolderClosedLast.png') {
            imageNode.src = 'image/treeIcon/nodeFolderOpenLast.png';
          }
        }
        folder.style.display = 'block';
      }
    }