//author: Scott Drake

//Observer pattern implementation to allow multiple handlers
window.onloadListeners = [];
window.addOnloadListener = function (listener)
{
	window.onloadListeners[window.onloadListeners.length] = listener;
};

window.onload = function ()
{
	for (var i = 0; i < window.onloadListeners.length; i++)
	{
		window.onloadListeners[i].call();
	}
};


/*
    Written by Jonathan Snook, http://www.snook.ca/jonathan
    Add-ons by Robert Nyman, http://www.robertnyman.com
*/
function getElementsByClassName(className, tag, elm){
	var testClass = new RegExp("(^|\\s)" + className + "(\\s|$)");
	tag = tag || "*";
	elm = elm || document;
	var elements = (tag == "*" && elm.all)? elm.all : elm.getElementsByTagName(tag);
	var returnElements = [];
	var current;
	var length = elements.length;
	for(var i=0; i<length; i++){
		current = elements[i];
		if(testClass.test(current.className)){
			returnElements.push(current);
		}	
	}
	return returnElements;
}
