var default_textarea_border = "2px inset gray";  // workaround for MSIE 6 bug
var flag_textarea_border = "3px solid red";
function char_counter(source, chars) {
    var thing = typeof(source) == 'object'
                ? source
                : document.getElementById(source);
    var remain = chars - thing.value.length;
    
    if (remain == 0) {
        var msg = 'No more room in field.';
    }
    else if (remain < 1) {
        var msg = '<span style="color: red"><strong>' + Math.abs(remain)
            + ' too many characters!</strong></span>';
    }
    else if (remain == 1) {
        var msg = 'Room for <strong>1</strong> more character.';
    }
    else {
        var msg = 'Room for <strong>' + remain + '</strong> more characters.';
    }
    document.getElementById(thing.id + '_counter').innerHTML = msg;
    if (remain >= 0) {
      thing.style.border = default_textarea_border;
    }
    return;
}

