// JavaScript Document

getElementsByClass = function(theClass) {
	
	var elementArray = [];
	if (document.all) {
		elementArray = document.all;
	}
	else {
		elementArray = document.getElementsByTagName("*");
	}
	var matchedArray = [];
	var pattern = new RegExp("(^| )" + theClass + "( |$)");
	for (var i=0; i<elementArray.length; i++) {
		if (pattern.test(elementArray[i].className)) {
			matchedArray[matchedArray.length] = elementArray[i];
		}
	}
	
	return matchedArray;
}

hasClass = function(target, theClass) {
	var pattern = new RegExp("(^| )" + theClass + "( |$)");
	if (pattern.test(target.className)) {
		return true;
	}
	else {
		return false;
	}
}

addClass = function(target, theClass) {
	if(!hasClass(target, theClass)) {
		if (target.className == "") {
			target.className = theClass;
		}
		else {
			target.className += " " + theClass;
		}
	}
}

removeClass = function(target, theClass) {
	var pattern = new RegExp("(^| )" + theClass + "( |$)");
	
	target.className = target.className.replace(pattern, "$1");
	target.className = target.className.replace(/ $/, " ");
}


start = function(runnable) {

	addEvent(window, "load", runnable.init, false);
}

addEvent = function(obj, evType, fn, useCapture) {
	
  if (obj.addEventListener){
    obj.addEventListener(evType, fn, useCapture);
    return true;
  } else if (obj.attachEvent){
    var r = obj.attachEvent("on"+evType, fn);
    return r;
  } else {
    alert("Handler could not be attached");
  }
}

