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
var prevM = ((m-1)>0)?m-1:m+11;
var nextM = ((m+1)<=12)?m+1:m-11;
var prevY = ((m-1)>0)?y:y-1;
var nextY = ((m+1)<=12)?y:y+1;


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="1" align="center" class="'+cH+'"><a href="javascript:jumpCal('+prevM+','+prevY+')">&lt;</a></td>';
t+='<td colspan="5" align="center" class="'+cH+'">'+mn[m-1]+' - '+y+'</td>';
t+='<td colspan="1" align="center" class="'+cH+'"><a href="javascript:jumpCal('+nextM+','+nextY+')">&gt;</a></td>';
t+='</tr><tr align="center">';
for(s=0;s<7;s++)t+='<td class="'+cDW+'">'+"SMTWTFS".substr(s,1)+'</td>';
t+='</tr><tr align="center">';

// Generate the 7 x 6 calendar table
for(i=1;i<=42;i++){

var x=((i-oD.od>=0)&&(i-oD.od<dim[m-1]))? i-oD.od+1 : '&nbsp;';
var eD=y.toString()+((m<10)?'0':'')+m.toString()+((x<10)?'0':'')+x.toString();
var el=(document.layers)?findlayer("eventcal",document):(document.all)?document.all["eventcal"]:document.getElementById("eventcal");
var eE=document.getElementsByName(eD);

if (eE.length > 0)
   x='<span id="event"><a href="/icms2/template?series=3&article='+eE[0].id+'" id="event" title="'+eE[0].value+'">'+x+'</a></span>';
    
if (x==scanfortoday) //DD added
   x='<span id="today">'+x+'</span>'; //DD added

t+='<td class="'+cD+'">'+x+'</td>';

if(((i)%7==0)&&(i<36))t+='</tr><tr align="center">';

}

return t+='</tr></table></div>';

}

function jumpCal(month, year){
var el=(document.layers)?findlayer("eventcal",document):(document.all)?document.all["eventcal"]:document.getElementById("eventcal");
var html=buildCal(month, year, "main", "month", "daysofweek", "days", 1);

if(document.layers){
el.document.open();
el.document.write('<div class="eventcal">'+html+'</div>');
el.document.close();
}else el.innerHTML=html;

}


function findlayer(name,doc){
var i,layer;
for(i=0;i<doc.layers.length;i++){
layer=doc.layers[i];
if(layer.name==name)return layer;
if(layer.document.layers.length>0)
if((layer=findlayer(name,layer.document))!=null)
return layer;
}
return null;
}


