function getElementsByClass( searchClass, tag ) {
    var classElements = new Array();

    // establish how much of the tree to walk
    if ( tag == null )
        tag = '*';

    // compile a regex matching the tag
    var elements = document.getElementsByTagName(tag);
    var elementsLen = elements.length;
    var classPattern = new RegExp("(^|\\s)" + searchClass + "(\\s|$)");

    var j = 0;
    for (var i = 0; i < elementsLen; i++ ) {
        if ( classPattern.test( elements[i].className ) ) {
            classElements[j++] = elements[i];
        }
    }
    return classElements;
}