// @(#) $Id: lib.js 77314 2009-07-06 08:28:01Z steve $

// Set all checkboxes in a form to a certain value.
function selectAll(id, bSelect) {
    if ( !document.getElementById ) { return; }

    var node = document.getElementById(id);
    var cbList = node.getElementsByTagName( 'input' );
    for (var i = 0; i < cbList.length; i++) {
        if ( cbList[i].type == "checkbox" ) {
            cbList[i].checked = bSelect;
        }
    }
}

function showHideEnable() {
   /* Remove ID from showHide as the CSS
         is hiding #showHide. Removing the ID has 
         the effect of showing the div.
        */
   if(document.getElementById('showHide')){
      document.getElementById('showHide').id = '';
   }   
}

/*
Sets the sections on the left-hand column togglable (is that a word?)
*/
function prepareSearchResults(headerTag) {
   if(headerTag == null){
      headerTag = 'h5';
   }
   if (!document.getElementsByTagName) return false;
   if (!document.getElementById('content')) return false;

   var content = document.getElementById('content');
   var hdrs = content.getElementsByTagName(headerTag);

   for (i=0;i<hdrs.length;i++) {

      var header = hdrs[i];
      var header_id = header.getAttribute('id');
      var list_id = header_id+"_list";

      if (document.getElementById(list_id)) {
         var link = document.createElement("a");
         link.setAttribute("href","javascript:toggle('"+header_id+"');");
         link.appendChild(header.firstChild);
            link.innerHTML += ' <img width="12" height="12" src="/images/expand.gif"/>';
         header.appendChild(link);

         toggle(header_id);

      }
   }
   
   showHideEnable();
   
}

function toggle(header_id) {

   if (!document.getElementById(header_id)) return false;

   var list_id = header_id+"_list";

   if (!document.getElementById(list_id)) return false;

   var header = document.getElementById(header_id);
   var list = document.getElementById(list_id);

   if (header.className != "open") {
      header.className = "open";
      list.style.display = "block";
        header.getElementsByTagName('img')[0].src = "/images/collapse.gif";
   } else {
      header.className = "closed";
        header.getElementsByTagName('img')[0].src = "/images/expand.gif";
      list.style.display = "none";
   }
   
}

function expandAllResults(){
   toggleTheseResults("closed");
}

function collapseAllResults(){
   toggleTheseResults("open");
}

function toggleTheseResults(className){
   if (!document.getElementsByTagName) return false;
   if (!document.getElementById('content')) return false;

   var content = document.getElementById('content');
   var hdrs = content.getElementsByTagName('h5');
   for (i=0;i<hdrs.length;i++) {
      if(hdrs[i].className = className){
         toggle(hdrs[i].id);
      }
   }
}


// vim: set ai et sw=4 :
