Даж вдумываться не хочу, есть же объект Date()
Дней в месяце m годa y:
var y=2011,m=2;
alert(new Date(y,m,0).getDate())
Как это работает:
Объект Date принимает значение месяца от 0 до 11, т.о. мы задаём нужным_нам+1, при этом ставя день месяца в 0 мы заставляем его принимать значение: последний день месяца, предыдущего заданнному.