function buildCal(m, y, cM, cH, cDW, cD, brdr)
{
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 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='<table class="'+cM+'" cols="7" cellpadding="2" border="'+brdr+'" cellspacing="0"><tr align="center">';
t+='<td class="'+cH+'">';
if(m>1)
t+='<a href="javascript:updateCalendar(' + parseInt(m-1) + ');"><</a>';
t+= '</td>';
t+='<td colspan="5" align="center" class="'+cH+'">'+mn[m-1]+' - '+y+'</td>';
t+='<td class="'+cH+'">';
if(m<12)
t+='<a href="javascript:updateCalendar(' + parseInt(m+1) + ');">></a>';
t+='</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;';

var theDate = m + '/'  + x + '/' + y;
if (x==scanfortoday) //DD added
x='<span id="today">'+ x +'</span>' //DD added
t+='<td class="'+cD+'">';
if(x !="&nbsp;")
t+='<a href="/event_list.aspx?date=' + theDate + '">'+ x +'</a>';
t+='</td>';
if(((i)%7==0)&&(i<36))t+='</tr><tr align="center">';
}

return t+='</tr></table>';
}

var todaydate=new Date()
var curmonth=todaydate.getMonth()+1 //get current month (1-12)
var curyear=todaydate.getFullYear() //get current year

function updateCalendar(themonth)
{
var calendarstr=buildCal(themonth, curyear, "main", "month", "daysofweek", "days", 0)
if (document.getElementById)
document.getElementById("calendarspace").innerHTML=calendarstr
}
