function getElementsByClass(searchClass, node, tag) {
    var classElements = new Array();
    if (node == null) {
        node = document;
    }
    if (tag == null) {
        tag = '*';
    }
    var els = node.getElementsByTagName(tag);
    var elsLen = els.length;
    var pattern = new RegExp('(^|\\s)' + searchClass + '(\\s|$)');
    for (var i = 0, j = 0; i < elsLen; i++) {
        if (pattern.test(els[i].className)) {
            classElements[j] = els[i];
            j++;
        }
    }
    return classElements;
}

function addBookmark(theTitle, theURL) {
    if (window.sidebar) {// firefox
        window.sidebar.addPanel(theTitle, theURL, "");
    } else if(document.all) {// ie
        window.external.addFavorite(theURL, theTitle);
    }
}