getElementsByClassName()

Status: untested

var getElementsByClassName = 
	document.getElementsByClassName ? function (class_name, scope) {
		return (scope || document).getElementsByClassName(class_name);
	} 
	: document.querySelectorAll ? function (class_name, scope) {
		return (scope || document).querySelectorAll("." + class_name);
	} 
	: document.evaluate ? function (class_name, scope) {
		var n,
			r = [],
			x = document.evaluate("descendant::*[contains(concat(' ', @class, ' '), ' " + class_name + " ')]",
				scope || document, null, 5, null);
		while (n = x.iterateNext()) {
			r.push(n);
		}
		return r;
	} 
	: function (class_name, scope) {
		scope = scope || document;
		var nL = scope.all || scope.getElementsByTagName("*"),
			r = [];
		for (var i = 0, n; n = nL[i]; ++i) {
			if (n.className && (' ' + n.className + ' ').indexOf(' ' + class_name + ' ') != -1) {
				r.push(n);
			}
		}
		return r;
	};
Original code by Maggi, altered by Woosta