function include(arr, obj) {
	if (arr){
	  for(var i=0; i<arr.length; i++) {
		if (arr[i] == obj) return true;
	  }
	}
	return false;
}
//"DSTQQSS".substr(s,1)
function buildCal(m, y, cM, cH, cDW, cD, mark, links, prevnext){
	var mn=['Janeiro','Fevereiro','Março','Abril','Maio','Junho','Julho','Agosto','Setembro','Outubro','Novembro','Dezembro'];
	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="'+cM+'"><table width="100%" cols="7"><tr align="center">' + "\r\n";

	t+='<td style="cursor:pointer;" onclick="'+prevnext[0]+'">&lt;</td><td colspan="5" align="left" class="'+cH+'">'+mn[m-1]+' '+y+'</td><td style="cursor:pointer;" onclick="'+prevnext[1]+'">&gt;</td></tr><tr align="center">' + "\r\n";
	
	for(s=0;s<7;s++)t+='<td class="'+cDW+'">'+["DOM","SEG","TER","QUA","QUI","SEX","SAB"][s]+'</td>' + "\r\n";
	
	t+='</tr><tr align="center">';
	ilink = 0;
	
	for(i=1;i<=42;i++){
		var x=((i-oD.od>=0)&&(i-oD.od<dim[m-1]))? i-oD.od+1 : '&nbsp;';
		if (include(mark, x)){
			t+='<td class="select" onclick="'+links[ilink]+'">'+x+'</td>';
			ilink++;
		} else {
			t+='<td class="'+cD+'">'+x+'</td>';
		}
		if(((i)%7==0)&&(i<36))t+='</tr><tr align="center">' + "\r\n";
	}
	return t+='</tr></table></div>';
}


