function buildCal(m, y , myid , formid , show ){

if(show) var showstyle = 'block';
else var showstyle = 'none';


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='<div class="minical" id="'+myid+'" style="display:'+showstyle+';"><table class="cal" cols="7"><tr align="center">';
t+='<td colspan="7" align="center" class="monthyear"><a href="#" onclick="return changecal('+(m)+','+(y-1)+', \''+myid+'\', \''+formid+'\' );">' + (y-1) + '</a>&nbsp;<a href="#" onclick="return changecal('+(m-1)+','+y+', \''+myid+'\', \''+formid+'\' );">' + (mn[(m-2>-1?m-2:11)].substr(0,3)) + '</a>&nbsp;&nbsp;<a href="#" onclick="return changecal('+(m+1)+','+y+', \''+myid+'\', \''+formid+'\' );">' + (mn[(m<12?m:0)].substr(0,3)) + '</a>&nbsp;<a href="#" onclick="return changecal('+(m)+','+(y+1)+', \''+myid+'\', \''+formid+'\' );">' + (y+1) + '</a></td></tr><tr align="center">';
t+='<td colspan="7" align="center" class="monthyear">'+mn[m-1]+' '+y+'</td></tr><tr align="center">';
for(s=0;s<7;s++)t+='<td class="daysofweek">'+"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 testtoday=x;
if(x!='&nbsp;') x='<a href="#" onclick="document.getElementById(\''+formid+'\').value=\''+y+'-'+(m<10?'0'+m:m)+'-'+(x<10?'0'+x:x)+'\'; return false;">'+x+'</a>';
if (testtoday==scanfortoday) //DD added
x='<span id="today">'+x+'</span>';//DD added
t+='<td class="'+( (Math.round(i/2)==(i/2))?'even':'odd' )+'">'+x+'</td>';
if(((i)%7==0)&&(i<36))t+='</tr><tr align="center">';
}
t+='</tr>';
t+='<tr><td colspan="7"><a href="#" onclick="toggle(\''+formid+'_dd\');return toggle(\''+formid+'_cal\');">close calendar</a></td></tr>';
return t+='</table></div>';
}

function changecal(themonth,theyear,myid,formid)
{
	if(themonth>12) { themonth = 1; theyear++; }
	if(themonth<1) { themonth = 12; theyear--; }
	if(theyear<curyear-5) theyear = curyear-5;
	if(theyear>curyear+5) theyear = curyear+5;
	if(theyear<curyear-5) theyear = curyear-5;
	var calendarstr=buildCal(themonth,theyear, myid, formid , true )
	if (document.getElementById)
	document.getElementById(myid).innerHTML=calendarstr;
	document.getElementById(myid).style.display='block';
	return false;
}

