function buildCal(m,y,d,cM,cH,cDW,cD,brdr){
 var todaydate=new Date();
 var curmonth=todaydate.getMonth()+1;
 var curyear=todaydate.getFullYear();
 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);oD.od=oD.getDay()+1;
 var todaydate=new Date();
 var scanfortoday=(y==todaydate.getFullYear()&&m==todaydate.getMonth()+1)?d:0;
 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]+'</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(x==d) x='<span id="today">'+x+'</span>';
/* Extra dates */
if(y==2012){
  if(m==2){      /* February */
   if(x==2)x='<span id="today">'+x+'</span>';    /* My Birthday GroundHog Day*/
   if(x==14)x='<span id="today">'+x+'</span>';   /* Valentine Day */
   if(x==22)x='<span id="today">'+x+'</span>';   /* Chili Cookoff */
  }
  if(m==6){    /* June */
   if(x==14)x='<span id="today">'+x+'</span>';    /* Emily Birthday Flag Day*/
  }
  if(m==9){   /* Bop in the Rock */
   if(x==27)x='<span id="today">'+x+'</span>';
   if(x==28)x='<span id="today">'+x+'</span>';
   if(x==29)x='<span id="today">'+x+'</span>'
  }
  if(m==11){
   if(x==22)x='<span id="today">'+x+'</span>';    /* Thanksgiving */
  }
  if(m==12){   /* Christmas */
   if(x==25)x='<span id="today">'+x+'</span>';
  }
}
if(y==2011){
  if(m==2){      /* February */
   if(x==2)x='<span id="today">'+x+'</span>';    /* My Birthday */
   if(x==14)x='<span id="today">'+x+'</span>';   /* Valentine Day */
  }
  if(m==3){    /* March */
   if(x==2)x='<span id="today">'+x+'</span>';    /* Mardi Gras Party */
   if(x==17)x='<span id="today">'+x+'</span>';  /* St Patty */
  }
  if(m==5){    /* May */
   if(x==11)x='<span id="today">'+x+'</span>';    /* spotlight dance */
  }
  if(m==6){    /* June */
   if(x==14)x='<span id="today">'+x+'</span>';    /* Emily Birthday */
  }
  if(m==8){    /* August */
   if(x==17)x='<span id="today">'+x+'</span>';    /* Dance Apparel Sale */
  }
  if(m==9){   /* Bop on the Lake */
   if(x==15)x='<span id="today">'+x+'</span>';
   if(x==16)x='<span id="today">'+x+'</span>';
   if(x==17)x='<span id="today">'+x+'</span>'
  }
  if(m==10){    /* October */
   if(x==19)x='<span id="today">'+x+'</span>';    /* Election */
  }
  if(m==11){
   if(x==24)x='<span id="today">'+x+'</span>';    /* Thanksgiving */
  }
  if(m==12){   /* Christmas */
   if(x==25)x='<span id="today">'+x+'</span>';
  }
}
if(y==2010){
  if(m==2){
   if(x==14)x='<span id="today">'+x+'</span>';
  }
  if(m==6){
   if(x==16)x='<span id="today">'+x+'</span>';
  }
  if(m==8){
   if(x==18)x='<span id="today">'+x+'</span>';
  }
  if(m==9){
   if(x==16)x='<span id="today">'+x+'</span>';
   if(x==17)x='<span id="today">'+x+'</span>';
   if(x==18)x='<span id="today">'+x+'</span>'
  }
  if(m==10){
   if(x==13)x='<span id="today">'+x+'</span>';
  }
  if(m==11){
   if(x==10)x='<span id="today">'+x+'</span>';
  }
  if(m==12){
   if(x==25)x='<span id="today">'+x+'</span>';
  }
}
  t+='<td class="'+cD+'">'+x+'</td>';
  if(((i)%7==0)&&(i<36))t+='</tr><tr align="center">';
 }
 return t+='</tr></table></div>';
}

