/********************************************************
**	shortcut getElementById
*********************************************************/
function $(id) {
  return document.getElementById(id);
}

/********************************************************
**	getElementsByClassName function
*********************************************************/
document.getElementsByClassName = function (needle) {
  var my_array = document.getElementsByTagName("*");
  var retvalue = new Array();
  var i;
  var j;

  for (i = 0, j = 0; i < my_array.length; i++) {
    var c = " " + my_array[i].className + " ";
    if (c.indexOf(" " + needle + " ") != -1)
      retvalue[j++] = my_array[i];
  }
  return retvalue;
}

/********************************************************
**	addEvent handler
**	obj = object to attach event to
**	evType = Event type (load, unload, click, etc.)
**	fn = function
*********************************************************/
function addEvent(obj, evType, fn) {
	if (obj.addEventListener) {
		obj.addEventListener(evType, fn, true);
		return true;
	} else if (obj.attachEvent) {
		var r = obj.attachEvent("on"+evType, fn);
		return r;
	} else {
		return false;
	}
}

/********************************************************
**	removeEvent handler
**	obj = object to attach event to
**	evType = Event type (load, unload, click, etc.)
**	fn = function
*********************************************************/
function removeEvent(obj, evType, fn) {
	if (obj.removeEventListener) {
		obj.removeEventListener(evType, fn, false);
		return true;
	} else if (obj.detachEvent) {
		var r = obj.detachEvent("on"+evType, fn);
		return r;
	} else {
		return false;
	}
}
