function getPageOffsetTop(el) {
  var y = el.offsetTop;
  if (el.offsetParent != null)
    y += getPageOffsetTop(el.offsetParent);
  return y;
}

function setMinHeight(theDIV,refDIV,padding) {
  var divToSet = document.getElementById(theDIV);
  var refDiv = document.getElementById(refDIV);
  var difference = getPageOffsetTop(refDiv) + refDiv.offsetHeight - getPageOffsetTop(divToSet);
  if (document.all) {
    divToSet.style.height = (difference - padding) + 'px'
  } else {
    divToSet.style.minHeight = (difference - padding) + 'px'
  }
} // copyright (c) Andy J Welton ("Fuzzy-Duck") 2003

function fillHeightInit() {
  divToExpand = document.getElementById('sidemenu');
  var contHeight = divToExpand.parentNode.offsetHeight;
  divToExpand.style.height = contHeight + 'px';
  divToExpandPadding = divToExpand.offsetHeight - contHeight;
  fillHeightAdjust();
  window.onresize = fillHeightAdjust
} // copyright (c) Andy J Welton ("Fuzzy-Duck") 2003

function fillHeightAdjust() {
  var fillHeight = divToExpand.parentNode.offsetHeight - divToExpandPadding + 50;
  divToExpand.style.height = fillHeight + 'px'
} // copyright (c) Andy J Welton ("Fuzzy-Duck") 2003

function statusBarChange(event) { window.status = this.title; return true }
function borderChange(event) { this.style.borderColor = '#CCC' }
function borderReturn(event) { this.style.borderColor = '' }
function mouseOverInit() {
  var anchors = document.getElementsByTagName('a');
  for (var i=0; i<anchors.length; i++) {
    if (!anchors[i].getAttribute('title'))
      anchors[i].title = anchors[i].href;
    anchors[i].onmouseover = statusBarChange
  }
  var formbuts = document.getElementsByTagName('input');
  for (var i=0; i<formbuts.length; i++) {
    if (formbuts[i].className=='button') {
      formbuts[i].onmouseover = borderChange;
      formbuts[i].onmouseout = borderReturn
    }
  }
} // copyright (c) Andy J Welton ("Fuzzy-Duck") 2003

function autoExternalLinks(internalDomain) {
/*  if (document.all)
    document.body.style.width = '750px';*/
  var anchors = document.getElementsByTagName('a');
  for (var i=0; i<anchors.length; i++) {
    if (anchors[i].getAttribute('href')) {
      var split_href = anchors[i].href.split('/');
      if (split_href[2] != internalDomain)
        anchors[i].target = '_blank';
    }
  }
} // copyright (c) Andy J Welton ("Fuzzy-Duck") 2003

function externalLinksInit() {
  var anchors = document.getElementsByTagName('a');
  for (var i=0; i<anchors.length; i++) {
    if (anchors[i].getAttribute('href') && anchors[i].getAttribute('rel') == 'external')
      anchors[i].target = '_blank';
  }
} // modified from code at http://www.sitepoint.com/article/1041