/*
 * Shared Javascript Library
 * Copyright Hugo Hudson, 2006
 *
 * Usage:
 *
 * Include this file in your page by placing the following code in the page
 * header (between the <head> and </head> tags):
 * <script type="text/javascript" src="common.js"></script>
 */

/*
 * Obtain the low-resolution version of an image filename.
 */
function lowRes(name) {
  var regexp = /^(.*)(\.(png|jpg|jpeg|gif))$/i;
  return name.replace(regexp,'$1-lowres$2');
}

/********************
 * Third Party Code *
 ********************/

/*
 * Thanks to Scott Andrew
 */
function addEvent(obj, evType, fn) {
  if (obj.addEventListener) {
    obj.addEventListener(evType, fn, false);
    return true;
  } else if (obj.attachEvent) {
    var r = obj.attachEvent("on"+evType, fn);
    return r;
  } else {
    return false;
  }
}

/*
 * Thanks to Prototype
 */
function byid() {
  if (arguments.length == 1) return document.getElementById(arguments[0]);
  var elements = new Array();
  for (var i=0; i<arguments.length; i++) {
    elements.push(document.getElementById(arguments[i]));
  }
  return elements;
}
function bytag(tagName) {
  return document.body.getElementsByTagName(tagName);
}
function byclass(className, parentElement) {
  var allchildren;
  if (parentElement) {
    allchildren = parentElement.childNodes;
  } else if (document.all) {
    allchildren = document.all;
  } else {
    allchildren = bytag('*');
  }
  var elements = new Array();
  for (var i=0; i<allchildren.length; i++) {
    var e = allchildren[i];
    if (e.className && hasclass(e, className)) {
      elements.push(e);
    }
  }
  return elements;
}
function hasclass(element, className) {
  return element.className.match(new RegExp("\\b"+className+"\\b"));
}

/*
 * Thanks to http://www.javascriptkit.com/dhtmltutors
 */
function getStyle(object) {
  if (window.getComputedStyle) {
    return window.getComputedStyle(object,'');
  } else if (object.currentStyle) {
    return object.currentStyle;
  } else {
    return;
  }
}   
