/***********************************************
* 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 nextcalendar(month,year,divId) {
    var m=month+1;
    var y=year;
    if (m==13) {
        m=1;
        y=y+1;
    }
    updatecalendar(m,y,divId);
}

function prevcalendar(month,year,divId) {
    var m=month-1;
    var y=year;
    if (m==0) {
        m=12;
        y=y-1;
    }
    updatecalendar(m,y,divId);
}

function updatecalendar(month,year,divId){
    var calendarstr=buildCal(month ,year, "cal_main", "cal_month", "cal_daysofweek", "cal_days", 0, "cal");
    if (document.getElementById) {
        document.getElementById(divId).innerHTML=calendarstr;
    }
}

function buildCal(m, y, cM, cH, cDW, cD, brdr, divId){
    var mn=['Gennaio','Febbraio','Marzo','Aprile','Maggio','Giugno','Luglio','Agosto','Settembre','Ottobre','Novembre','Dicembre'];
    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
    if(oD.od==1)
        oD.od=8;
    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="'+cH+'"><div class="cal_m_prev">';

    if((todaydate.getDate() <2 && m==todaydate.getMonth()+1 && y==todaydate.getFullYear()) || (m>todaydate.getMonth()+1 && y==todaydate.getFullYear()) || (y>todaydate.getFullYear()) )
        t+='<a href="javascript:prevcalendar('+m+','+y+',\''+divId+'\')" onfocus="this.blur()"><img src="./images/cal_prev.gif" alt="" width="5" height="9"></a>'
    else
        t+='<img src="./images/cal_prev_off.gif" alt="" width="5" height="9">'

    t+='</div><div class="cal_m_next"><a href="javascript:nextcalendar('+m+','+y+',\''+divId+'\')" onfocus="this.blur()"><img src="./images/cal_next.gif" alt="" width="5" height="9"></a></div><div class="cal_m_txt">'+mn[m-1]+' - '+y+'</div></div>';
    t+='<table class="'+cM+'" cols="7" cellpadding="0" border="'+brdr+'" cellspacing="0"><tr align="center">';
    for(s=0;s<7;s++)
            t+='<td class="'+cDW+'">'+"LMMGVSD".substr(s,1)+'</td>';
    t+='</tr><tr align="center">';
    for(i=1;i<=42;i++){
        var x = '';
        if((i-oD.od+1>=0)&&(i-oD.od+1<dim[m-1])) {
            var dddd = (i-oD.od+2);
            if((m==todaydate.getMonth()+1 && todaydate.getDate()>2 && dddd <todaydate.getDate() && todaydate.getDate()-dddd > 1 && y==todaydate.getFullYear()) || (m<todaydate.getMonth()+1 && dddd < (dim[m-1]-(1-todaydate.getDate())) && y==todaydate.getFullYear()) || (todaydate.getFullYear()-y == 1 && todaydate.getMonth()+1==1 && todaydate.getDate() == 1 && ((m==12 && dddd != 31) || (m!=12)) ))
                x='<span id="offday">'+dddd+'</span>';
            else  {
                x='<a href="./events.do?d='+dddd+'&m='+m+'&y='+y+'" onfocus="this.blur()">'+dddd+'</a>';
                if (dddd==scanfortoday) //DD added
                    x='<span id="today">'+x+'</span>'; //DD added
            }            
        } else {
            x='&nbsp;';
        }
        t+='<td class="'+cD+'">'+x+'</td>';
        if(((i)%7==0)&&(i<36))
            t+='</tr><tr align="center">';
    }
    return t+='</tr></table>';
}


