this.year = ( this.year == null ) ? this.oDate.getFullYear() : this.year;
this.year = this.year || this.oDate.getFullYear();
this.countMonth = countMonth;
function countMonth() {
this.daysTotal = new Date(this.year, this.month + 1,0).getDate();
this.firstDay = new Date(this.year, this.month, 1).getDay();
}
// Что это?
У таблиц есть методы insertRow, incertCell, ...
var cal_obj = this;
// Так понятней
var self = this;
th.setAttribute("colSpan", "5");
th.colSpan = 5;
Дальше лень