﻿var currMonth = new Date().getMonth();
var currYear = new Date().getFullYear();

function addDays(myDate,days) {
    return new Date(myDate.getTime() + days*24*60*60*1000);            
}
function getDateStr(myDate) {
    return myDate.getUTCMonth() + '/' + myDate.getUTCDate()+ '/' + myDate.getUTCFullYear();
}

function buildCal(y,m,isAdmin)
{
    if(y != null) currYear = y;
    if(m != null) currMonth = m;
    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(currYear, currMonth, 1);
    oD.od=oD.getDay()+1;

    var todaydate=new Date()
    var scanfortoday=(currYear==todaydate.getFullYear() && currMonth==todaydate.getMonth())? todaydate.getDate() : 0

    var page = '../site/archive.aspx';
    if(isAdmin) page = '../admin/events.aspx';

    var paging = '<tr class="header"><td><a href="javascript:PrevMonth('+isAdmin+');">&#60;&#60;</a></td><td colspan="5">'+mn[currMonth]+' '+currYear+'</td><td><a href="javascript:NextMonth('+isAdmin+');">&#62;&#62;</a></td></tr>';
    dim[1]=(((oD.getFullYear()%100!=0)&&(oD.getFullYear()%4==0))||(oD.getFullYear()%400==0))?29:28;
    var t='<table cols="7" cellpadding="0" cellspacing="0">'+paging+'<tr>';
    for(s = 0;s < 7;s++) t += '<td class="header">'+"SMTWTFS".substr(s,1)+'</td>';
    t+='</tr><tr>';
    
    var lastCol = 1;
    var col = 1;
    var j = 1;
    var lastI = 1;
    var dInc = 1;
    var dInc2 = 1;
    for(i=1;i<=42;i++){
        var x=((i-oD.od>=0)&&(i-oD.od<dim[currMonth]))? i-oD.od+1 : '&nbsp;';
        if(j == dim[currMonth]){ lastCol = col; lastI = i; }
        if (x==scanfortoday){
            t+='<td class="current"><b><a href="'+page+'?d='+(currMonth+1)+'/'+x+'/'+currYear+'" title="View Event Date">'+x+'</a></b></td>';
            j++;
        } else if(x=='&nbsp;'){            
            if(i > dim[currMonth] && i <= (lastI+(7-lastCol)) ){
                var d2 = new Date;
                d2.setUTCMonth((currMonth+1));
                d2.setUTCDate(dim[currMonth]);
                d2.setUTCFullYear(currYear);                            
                
                d2.setUTCDate(d2.getUTCDate()+dInc);  
                if(d2.getUTCDate() > dim[currMonth]){ d2.setUTCDate(1); d2.setUTCMonth(d2.getUTCMonth()+1); dInc++;}
                dInc++;
                t+='<td class="othermonth"><a href="'+page+'?d='+getDateStr(d2)+'" title="View Event Date">'+d2.getDate()+'</a></td>';
            } else if(i < dim[currMonth]){                    
//                var d2 = new Date;
//                d2.setUTCMonth((currMonth+1));
//                d2.setUTCDate(dim[currMonth]);
//                d2.setUTCFullYear(currYear);                            
//                
//                d2.setUTCDate(d2.getUTCDate()-dInc2);  
//                //if(d2.getUTCDate() > dim[currMonth]){ d2.setUTCDate(1); d2.setUTCMonth(d2.getUTCMonth()+1); dInc++;}
//                dInc2++;
//                t+='<td class="othermonth"><a href="'+page+'?d='+getDateStr(d2)+'" title="View Event Date">'+d2.getDate()+'</a></td>';
                    t+='<td>&nbsp;</td>';
            } else
                t+='<td>&nbsp;</td>';
        } else {
            t+='<td><a href="'+page+'?d='+(currMonth+1)+'/'+x+'/'+currYear+'" title="View Event Date">'+x+'</a></td>';
            j++;
        }
        col++;
        if(((i)%7==0)&&(i<36)) { t+='</tr><tr>'; col = 1;}
    }
    if(t.indexOf('<td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td>') != -1)
        t = t.replace('<td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td>','');
    
    t+='</tr></table>';
    //alert(t);
    return t;
}

function NextMonth(isAdmin)
{
    currMonth++;    
    if(currMonth == 12) { currMonth = 0; currYear++;}
    var cal = buildCal(null,null,isAdmin);
    $2('calendardiv').innerHTML = cal;
}
function PrevMonth(isAdmin)
{
    currMonth--;
    if(currMonth == -1) { currMonth = 11; currYear--;}
    var cal = buildCal(null,null,isAdmin);
    $2('calendardiv').innerHTML = cal;
}



