function buildCal(m, y)
{
var dim=[31,0,31,30,31,30,31,31,30,31,30,31];
var oD = new Date(y, m-1, 1);
oD.od=oD.getDay()+1; 
var todaydate=new Date();

dim[1]=(((oD.getFullYear()%100!=0)&&(oD.getFullYear()%4==0))||(oD.getFullYear()%400==0))?29:28; // correções de fim de mês e ano bisexto

var t='<table cols="7" cellpadding="0" border=0 cellspacing="1" class=calendario><tr align="center" class=sem>';
t+='<td>D</td><td>S</td><td>T</td><td>Q</td><td>Q</td><td>S</td><td>S</td></tr>';
t+='<tr align="center" class="dias">';
xTd=dim[m-1]+(oD.od-1);

for(i=1;i<=(xTd+(7-xTd%7));i++)
	{
	var x = i-oD.od+1
	var urldata = "/2006/calendario/"+((curmonth<10)?"0"+curmonth:curmonth)+((x<10)?"0"+x:x)+".jhtm";

	if(diasSelecionados[m].indexOf('+'+x+'+')>=0) t+='<td class="today"><a href='+urldata+'>'+x+'</a></td>';
	else if((i-oD.od>=0)&&(i-oD.od<dim[m-1])) t+='<td>'+x+'</td>';
	else t+='<td>&nbsp;</a></td>';

	if(((i)%7==0)&&(i<36)) t+='</tr>';
    if((i)%7==0) t+='<tr align="center" class="dias">';
    
	}
return t+='</table>';
}

var todaydate=new Date();
var diasSelecionados=new Array();
diasSelecionados[5]="+3+7+13+";
diasSelecionados[6]="+10+11+14+19+24+26+28+30+";
diasSelecionados[7]="1+3+5+6+7+8+14+19+23+26+31";
diasSelecionados[8]="+1+2+7+9+12+14+15+17+23+26+28+29+30+31+";
diasSelecionados[9]="+1+4+5+6+8+11+12+13+15+16+19+20+21+22+26+28+29+30+";
diasSelecionados[10]="+1+3+4+6+14+15+16+24+26+27+28+29+31+";
diasSelecionados[11]="+1+3+8+9+14+28+30+";
diasSelecionados[12]="+11+19+28+";

if(!curmonth){
    var curmonth=todaydate.getMonth()+1;
    var curyear=todaydate.getFullYear();
}
