// $Id$

var idSearchField  = 'bu-search-field';
var idContentDiv   = 'bu-content';
var idArticleDiv   = 'article';

var srcExtLinkIcon = '/style/graphics/link_extern.gif';
var srcDocLinkIcon = '/style/graphics/link_doc.gif';

function init () {
    initSearch(idSearchField);
    fixLinks(idArticleDiv);
    if(window.footnoteLinks) {
        footnoteLinks(idArticleDiv, idContentDiv,
                      'footnote-links', excludeFromFootnotes);
    }
}

function initSearch (id) {
    var field = document.getElementById(id);
    if(!field) return;

    var searchDefault = field.value;

    field.onfocus = function () {
        if(this.value == searchDefault) this.value = '';
        else this.select();
    }

    field.onblur  = function () {
        if(this.value == '') this.value = searchDefault;
    }
                                               
}

function fixLinks (containerID) {
  if (!document.getElementById || 
      !document.getElementsByTagName ||
      !document.createElement) return false;

  if (!document.getElementById(containerID)) return false;

  var container = document.getElementById(containerID);
  var links = container.getElementsByTagName('a');

  for (var i = 0; i < links.length; i++) {
      var a = links[i];
      if(a.rel == 'external') {
          a.target = '_blank';
          a.className = 'extern';
          if(document.all) {
              var img = document.createElement('img');
              img.src = srcExtLinkIcon;
              a.parentNode.insertBefore(img, a);
          }
      }
      if(a.rel == 'document') {
          a.className = 'doclink';
          if(document.all) {
              var img = document.createElement('img');
              img.src = srcDocLinkIcon;
              a.parentNode.insertBefore(img, a);
          }
      }
  }

}

function excludeFromFootnotes (elem) {
    if (elem.tagName.toLowerCase() !== 'a') return true;

    var test = document.URL + '#';
    if (elem.href.indexOf(test) === 0) return true;

    if (elem.parentNode.className == 'toc'
        || elem.parentNode.parentNode.parentNode.className == 'toc') return true;
    return false;
}

window.onload = init;

