/***********************************************
* Basic Calendar-By Brian Gosselin at http://scriptasylum.com/bgaudiodr/
* Script featured on Dynamic Drive (http://www.dynamicdrive.com)
* This notice must stay intact for use
* Visit http://www.dynamicdrive.com/ for full source code
***********************************************/

function buildCal(m, y, cM, cH, cDW, cD, brdr) {
    var mn = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];
    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 + '" id="divCalWidget"><div class="calendar-titles">';
    t += '<div id="cal-prev-month"><input type="image" src="http://www.roanoke.com/images/2008/prevmonth.gif" alt="previous month" width="4" tittle="previous month" onclick="rebuildCal(\'p\',' + m + ',' + y + ',\'' + cM + '\',\'' + cH + '\',\'' + cDW + '\',\'' + cD + '\',' + brdr + ')" /></div>';
    t += '<div id="div-cal-text">' + mn[m - 1] + ' ' + y + '</div>';
    t += '<div id="cal-next-month"><input type="image" src="http://www.roanoke.com/images/2008/nextmonth.gif" alt="next month" width="4" tittle="next month" onclick="rebuildCal(\'n\',' + m + ',' + y + ',\'' + cM + '\',\'' + cH + '\',\'' + cDW + '\',\'' + cD + '\',' + brdr + ')" /></div></div>'
    t += '<table class="' + cM + '" cols="7" cellpadding="0" border="' + brdr + '" cellspacing="0">';
    t += '<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;';
        var myDate=new Date(y,m-1,x);
	todaydate.setHours(0,0,0,0);
	
	if (myDate>=todaydate)
	x='<a href="http://www.roanoke.com/eventcalendar/eventsearch.aspx?date=' + m + '/' + x + '/' + y + '">' + x + '</a>' //DD added
	
	t+='<td class="'+cD+'">'+x+'</td>';
        //t += '<td class="' + cD + '"><a href="http://www.roanoke.com/eventcalendar/eventsearch.aspx?date=' + m + '/' + x + '/' + y + '">' + x + '</a></td>';
        if (((i)%7==0) && (i<36)) t += '</tr><tr align="center">';
    }

    return t += '</tr></table></div>';
}

function rebuildCal(mDir, m, y, cM, cH, cDW, cD, brdr) {
    if (mDir == 'p') {
        if (m == 1) {
            m = 12;
            y = y - 1;
        } else m = m - 1;
    } else {
        if (m == 12) {
            m = 1;
            y = y + 1;
        } else m = m + 1;
    }
    
    document.getElementById('divCalWidget').innerHTML = buildCal(m, y, cM, cH, cDW, cD, brdr);
}
