function getElementsByClass(searchClass,node,tag,useRegex,pattern) {
    if ( node == null )
        node = document;
    if ( tag == null )
        tag = '*';
    if (useRegex && ! pattern)
        pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");

    var els = node.getElementsByTagName(tag);
    var classElements = new Array();
    for (var i = 0, j = 0; i < els.length; i++)
        if ( searchClass == els[i].className || useRegex && pattern.test(els[i].className) )
            classElements[j++] = els[i];

    return classElements;
}

function hideElements(elts) {
    for (var i = 0; i < elts.length; i++) {
        elts[i].style.display = 'none';
        elts[i].style.visibility = 'hidden';
    }
}

function showElements(elts) {
    for (var i = 0; i < elts.length; i++) {
        elts[i].style.display = 'block';
        elts[i].style.visibility = 'visible';
    }
}

function makeElementsInvisible(elts) {
    for (var i = 0; i < elts.length; i++)
        elts[i].style.visibility = 'hidden';
}

function makeElementsVisible(elts) {
    for (var i = 0; i < elts.length; i++)
        elts[i].style.visibility = 'visible';
}

function highlightElement(element_id, color) {
    if (! color) color = "#dd88ff";
    document.getElementById(element_id).style.backgroundColor = color;
}

function unhighlightElement(element_id) {
    document.getElementById(element_id).style.backgroundColor = null;
}

function highlightElementsByClass(class_name, color) {
    if (! color) color = "#dd88ff";
    var elts = getElementsByClass(class_name);
    for (var i=0; i < elts.length; i++) elts[i].style.backgroundColor = color;
}

function unhighlightElementsByClass(class_name) {
    var elts = getElementsByClass(class_name);
    for (var i=0; i < elts.length; i++) elts[i].style.backgroundColor = null;
}

function toggleCheckboxElt(elt) {
    elt.checked = ! elt.checked;
}

function toggleCheckbox(id) {
    toggleCheckboxElt( document.getElementById(id) );
}

function toggleAllCheckboxes(elts) {
    for (var i = 0; i < elts.length; i++)
        toggleCheckboxElt( elts[i] );
}

function selectAllCheckboxes(elts) {
    for (var i = 0; i < elts.length; i++)
        elts[i].checked = true;
}

function deselectAllCheckboxes(elts) {
    for (var i = 0; i < elts.length; i++)
        elts[i].checked = false;
}

function disableEnterKey(e)
{
    var key;     
    if (window.event)
        key = window.event.keyCode; //IE
    else
        key = e.which; //firefox     
    return (key != 13);
}
