function buildCal(m, y, cM, cH, cDW, cD, brdr, occDays){
// occDays is string of 0s or 1s - 0=available (black) 1=rented(blue)
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

  // populate array with values from occDays 0=available 1=provisional 2=booked
var oDays = new Array(42);

  for(i=0;i<42;i++){
    oDays[i]=occDays.charAt(i);
    }

  oD.od=oD.getDay()+1; //DD replaced line to fix date bug when current day is 31st


  // Set days in Feb.
  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<7;s++)t+='<TD CLASS="'+cDW+'">'+"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;';

    if(oDays[i-1]==1)
        x='<SPAN ID="provisional">'+x+'</SPAN>' //DD added
    else if(oDays[i-1]==2)
        x='<SPAN ID="booked">'+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>';
}

