// ---/*    Written by Jonathan Snook, http://www.snook.ca/jonathan    Add-ons by Robert Nyman, http://www.robertnyman.com*/function getElementsByClassName(oElm, strTagName, strClassName){	var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);	var arrReturnElements = new Array();	strClassName = strClassName.replace(/\-/g, "\\-");	var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");	var oElement;	for(var i=0; i<arrElements.length; i++){		oElement = arrElements[i];				if(oRegExp.test(oElement.className)){			arrReturnElements.push(oElement);		}		}	return (arrReturnElements)}// ---// Revised version May 11th 2007function getElementsByClassName(className, tag, elm){	var testClass = new RegExp("(^|\\s)" + className + "(\\s|$)");	var tag = tag || "*";	var 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;}// ---/*	Revised to support looking for multiple class names,	no matter in which order they're applied to the element*/function getElementsByClassName(oElm, strTagName, oClassNames){	var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);	var arrReturnElements = new Array();	var arrRegExpClassNames = new Array();	if(typeof oClassNames == "object"){		for(var i=0; i<oClassNames.length; i++){			arrRegExpClassNames.push(new RegExp("(^|\\s)" + oClassNames[i].replace(/\-/g, "\\-") + "(\\s|$)"));		}	}	else{		arrRegExpClassNames.push(new RegExp("(^|\\s)" + oClassNames.replace(/\-/g, "\\-") + "(\\s|$)"));	}	var oElement;	var bMatchesAll;	for(var j=0; j<arrElements.length; j++){		oElement = arrElements[j];		bMatchesAll = true;		for(var k=0; k<arrRegExpClassNames.length; k++){			if(!arrRegExpClassNames[k].test(oElement.className)){				bMatchesAll = false;				break;			}		}		if(bMatchesAll){			arrReturnElements.push(oElement);		}	}	return (arrReturnElements)}// ---// Array support for the push method in IE 5if(typeof Array.prototype.push != "function"){	Array.prototype.push = ArrayPush;	function ArrayPush(value){		this[this.length] = value;	}}// ---/*	Examples of how to call the function:		To get all a elements in the document with a "info-links" class:    getElementsByClassName(document, "a", "info-links");    	To get all div elements within the element named "container", with a "col" and a "left" class:    getElementsByClassName(document.getElementById("container"), "div", ["col", "left"]);*/// ---
