$(document).ready(
    function() {
        $('input[@type = "checkbox"].selectAll').change(onSelectAll);
        $('input[@type = "checkbox"].select').change(onSelectRow);
        $('tr.highlightable').hover(onHoverRow, onHoverOutRow);
    }
);

function onSelectRow() {
    var count = 0;

    for (var i = 0; i < this.form.elements.length; i++) {
        var e = this.form.elements[i];
        if ((e.id != 'selectAll') && (e.type == 'checkbox')) {
            if (e.checked) count++;
        }
    }

    $('.selCount').empty();
    $('.selCount').append(count + '');
    return false;
}

function onSelectAll() {
    var count = 0;

    for (var i = 0; i < this.form.elements.length; i++) {
        var e = this.form.elements[i];
        if ((e.id != 'selectAll') && (e.type == 'checkbox')) {
            e.checked = this.form.selectAll.checked;
            if (e.checked) count++;
        }
    }

    $('.selCount').empty();
    $('.selCount').append(count + '');
}

function onHoverRow() {
    $(this).addClass('hover');
}

function onHoverOutRow() {
    $(this).removeClass('hover');
}