Выбрасывайте это, и начинайте думать заново. Функция day должна возвращать список, который и можно будет вставить в необходимое. Но что вы делаете в этой функции:
while(i <= 31){
var i1 = i++;
Это по какому такому календарю? В месяце может может быть 30 и 31, 28 и 29 дней. И это не прихоти JS, это календарь, которым мы пользуемся.