var cy;
var cm;
var cd;
var cMain;
var cMonth;
var cWeek;
var cDay; 
var cBorder;
var bcSelect;
var holder; 
var page;

function buildCal(m, y, cM, cH, cDW, cD, brdr,link){
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];
page = link;

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

//Store the relevant data
cm = m;
cy = y;
cMain = cM;
cMonth = cH;
cWeek = cDW;
cDay = cD;
cBorder = brdr;
		
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 align="center" class="'+cD+'"><a href="#" onclick="prevMonth();"><<</a></td><td colspan="5" align="center" class="'+cH+'">'+mn[m-1]+' '+y+'</td><td align="center" class="'+cD+'"><a href="#" onclick="nextMonth();">>></a></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;';
ad=x;
if (x==scanfortoday) //DD added
x='<span id="today"><a href="javascript:seekDate('+ad+');">'+x+'</a></span>' //DD added
if(x=='&nbsp;') 
	t+='<td class="'+cD+'">'+x+'</td>';
else
	t+='<td class="'+cD+'"><a href="javascript:seekDate('+ad+');">'+x+'</a></td>';
if(((i)%7==0)&&(i<36))t+='</tr><tr align="center">';
}
return t+='</tr></table></div>';
}

function redrawCal(){	
	holder.innerHTML = '';
	holder.innerHTML = buildCal(cm, cy, cMain, cMonth, cWeek, cDay, cBorder);
}

function nextMonth(){
	cm=cm+1;
	if(cm==13){
		cy=cy+1;
		cm=1;
	}
	redrawCal();
}

function prevMonth(){
	cm=cm-1;
	if(cm==0){
		cy=cy-1;
		cm=12;
	}
	redrawCal();
}

function seekDate(day){
	tmp = page;
	tmp.replace('\#', '');		
	//url = strurl(tmp);	
	window.location.href = (page+'&b='+cy+'-'+cm+'-'+day );	
}

function strurl(str){
	tmp = page; // window.location.search.substring(1);
	var res = '';
	var vars = tmp.split("&");
	for(var i=0; i<vars.length; i++){ 
		var pair = vars[i].split("=");
		if(pair[0] == 'b'){			
			//vars[i].pop();
		} else {
			res += vars[i]+'&';
		}
	}
	return res;
}
