/********************************************************************
COMMON FUNCTIONS

JavaScript

Author:    Simon Grout
Date:      14th August 2006

Revision:  1.03
Rev date:  24 January 2007
********************************************************************/
//you can only have one window.onload - the function below allows you to have more than one.
/**
 * Add mulitple events to run at window.onload
 * @param {Function} func The function to attach
 */
function addLoadEvent(func) {
  if(!document.getElementsByTagName) { // DOM support check
   return;
  }
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  }
  else {
    window.onload = function() {
      oldonload(); // adds new function to window.onload
      func();
    }
  }
}

//function to get an element by classname.
/**
 * Get elements by classname
 * @param {String} strClass     Class name to get
 * @param {String} [strTag]     Narrow search to specific tag
 * @param {Object} [objContElm] Narrow search to a containing element
 */
function getElementsByClassName(strClass, strTag, objContElm) {
  strTag = strTag || "*";
  objContElm = objContElm || document;
  var objColl = objContElm.getElementsByTagName(strTag);
  if (!objColl.length &&  strTag == "*" &&  objContElm.all) {
    objColl = objContElm.all;
  }
  var arr = new Array();
  var delim = strClass.indexOf('|') != -1  ? '|' : ' ';
  var arrClass = strClass.split(delim);
  for (var i = 0, j = objColl.length; i < j; i++) {
    var arrObjClass = objColl[i].className.split(' ');
    if (delim == ' ' && arrClass.length > arrObjClass.length) {
      continue;
    }
    var c = 0;
    comparisonLoop: // loop label
    for (var k = 0, l = arrObjClass.length; k < l; k++) {
      for (var m = 0, n = arrClass.length; m < n; m++) {
        if (arrClass[m] == arrObjClass[k]) {
          c++;
        }
        if (
        (delim == '|' && c == 1) ||
        (delim == ' ' && c == arrClass.length)) {
          arr.push(objColl[i]);
          break comparisonLoop; // break out of outer loop when done
        }
      }
    }
  }
  return arr;
}