Oh, having a look at your code, this change saves space, but I think it makes for slightly worse performance. I think it's cleaner looking, though:
Code:
function num_abbrev_str(n)
{
return n + (( Math.floor((n%100)/10) == 1) ? "th" : ([, "st", "nd", "rd", ,,,,,][n%10]) || 'th');
}