function buildCal(m, y, cM, cH, cDW, cD, brdr){
var mn=['Styczeń','Luty','Marzec','Kwiecień','Maj','Czerwiec','Lipiec','Sierpień','Wrzesień','Październik','Listopad','Grudzień'];
var dim=[31,0,31,30,31,30,31,31,30,31,30,31];

//2009
var wrz = new Array(0);  //adam added
var paz = new Array(1,2,3,4);  //adam added
var lis = new Array(10,11);  //adam added
var gru = new Array(23,24,25,26,27,28,29,30,31);  //adam added

//2010
var sty = new Array(1,2,3,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31);  //adam added
var lut = new Array(0);  //adam added
var mar = new Array(0,31);  //adam added
var kwi = new Array(1,2,3,4,5,6);  //adam added
var maj = new Array(1,2,3,4);  //adam added
var cze = new Array(3,4);  //adam added
var lip = new Array(0);  //adam added
var sie = new Array(0);  //adam added

var rok = new Array(sty,lut,mar,kwi,maj,cze,lip,sie,wrz,paz,lis,gru);   //adam added

var lastday = 0;	//adam added
var firstday = 0;
var secondday = 0;
var lastmonth = 6; //adam added (last school month)

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
oD.od=oD.od>1?oD.od:oD.od+7;	//adam added (while sunday is last, so if 1st is in the sunday we must 6 nbsp add)

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 class="'+cM+'" cols="7" cellpadding="0" border="'+brdr+'" cellspacing="0"><tr align="center">';
t+='<td colspan="7" align="center" class="'+cH+'">'+mn[m-1]+' - '+y+'</td></tr><tr align="center">';

for(s=0;s<14;s++){	//adam changed 
	t+='<td class="'+cDW+'">'+"PnWtŚrCzPtSoNd".substr(s,2)+'</td>';	//adam changed
	s++;	//adam changed
}		//adam changed

t+='</tr><tr align="center">';

for(i=1;i<=42;i++){
	var x=((i-oD.od+1>=0)&&(i-oD.od+1<dim[m-1]))? i-oD.od+2 : '&nbsp;';	//adam changed (sunday last)
	
	/*if (x==scanfortoday){ //DD added
		x='<span id="today">'+x+'</span>'; //DD added
	}*/
	
	if ((m==lastmonth)&&(x==lastday)){ //adam added
		x='<span id="lastday">'+x+'</span>'; //adam added
	}

	if ((m==9)&&(x==firstday)){ //adam added
		x='<span id="firstday">'+x+'</span>'; //adam added
	}

	if ((m==10)&&(x==secondday)){ //adam added
		x='<span id="secondday">'+x+'</span>'; //adam added
	}		
	
	for(j=0;j<=rok[m-1].length;j++)  //adam added (style for freeday)
		if (x==rok[m-1][j]) x='<span id="freeday">'+x+'</span>';  //adam added (style for freeday)

	if(((i%7)-6)==0) x='<span id="saturday">'+x+'</span>';  //adam added (style for saturday)		
	if(i%7==0) x='<span id="sunday">'+x+'</span>';  //adam added (style for sunday)
		
	t+='<td class="'+cD+'">'+x+'</td>';
	if(((i)%7==0)&&(i<36))t+='</tr><tr align="center">';
}

return t+='</tr></table></div>';
}