function buildCal(m, y, cM, cH, cDW, cD, brdr, evnts){
	y = (m > 12) ? y + 1 : y;
	m = (m > 12) ? 1 : m;
	
	var mn=['January','February','March','April','May','June','July','August','September','October','November','December'];
	var dim=[31,0,31,30,31,30,31,31,30,31,30,31];
	var evnt;
	
	var oD = new Date(y, m-1, 1); //DD replaced line to fix date bug when current day is 31st
	oD.od=oD.getDay()+1; //DD replaced line to fix date bug when current day is 31st
	
	var todaydate=new Date() //DD added
	var scanfortoday=(y==todaydate.getFullYear() && m==todaydate.getMonth()+1)? todaydate.getDate() : 0 //DD added
	
	dim[1]=(((oD.getFullYear()%100!=0)&&(oD.getFullYear()%4==0))||(oD.getFullYear()%400==0))?29:28;
	var t='<div class="'+cM+'"><table class="'+cM+'" cols="7" cellpadding="0" border="'+brdr+'" cellspacing="0"><tr align="center">';
	
	t+='<td colspan="7" align="center" class="'+cH+'">'+mn[m-1]+' - '+y+'</td></tr><tr align="center">';
	for(s=0;s<7;s++)t+='<td class="'+cDW+'">'+"SMTWTFS".substr(s,1)+'</td>';
	
	t+='</tr><tr align="center">';
	
	for(i=1;i<=42;i++){
		var x=((i-oD.od>=0)&&(i-oD.od<dim[m-1]))? i-oD.od+1 : '&nbsp;';
		cUsed = cD;
		
		if (evnts) {
			for(j=0;j<evnts.length;j++) {
				if (evnts[j].month == m && evnts[j].day == x) evnt = evnts[j];
			}
		}
		
		if (evnt && x==evnt.day) {
			var theday = x;
			if (x==scanfortoday) {
				x='<span id="today event" title="Today: '+evnt.title+'">';
				if (evnt.link) x+='<a href="'+evnt.link+'">';
				x+=theday;
				if (evnt.link) x+='</a>';
				x+='</span>' //Event, same as today
				cUsed=cD+" event";
			} else {
				x='<span id="event" title="'+evnt.title+'">';
				if (evnt.link) x+='<a href="'+evnt.link+'">';
				x+=theday;
				if (evnt.link) x+='</a>';
				x+='</span>' //Event
				cUsed="event";
			}
			
		} else if (x==scanfortoday) {//DD added
			x='<span id="today" title="Today">'+x+'</span>' //DD added
		}
		
		t+='<td class="'+cUsed+'">'+x+'</td>';
		if(((i)%7==0)&&(i<36))t+='</tr><tr align="center">';
	}
	
	return t+='</tr></table></div>';
}

function Event() {
	this.month = arguments[0];
	this.day = arguments[1];
	this.title = arguments[2];
	this.link = arguments[3];
}
	