From 2013.igem.org
<script language="javascript">
var month = new Date().getMonth(); // current month that the calendar will show
var year = new Date().getFullYear(); // current year that the calendar will show
var cal_table = ''; // calendar string
var eventString;
var days_with_dirys = new Array('t201381');
var inputs = 1;
var days_in_month = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
Date.prototype.getWeek = function()
{
var onejan = new Date(this.getFullYear(),0,1);
return Math.ceil((((this - onejan) / 86400000) + onejan.getDay()+1)/7);
}
function calendar_normal()
{
var m = month+1;
var date = new Date(); // todays date
var today = date.getDate(); // todays month number
cal_table = '';
if(year<=200)
{
year += 1900;
}
months = new Array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December');
var weekDay = new Array('Mon', 'Tue', 'We', 'Thu', 'Fri', 'Sat', 'Sun');
days_in_month = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
if(year%4 == 0 && year!=1900)
{
days_in_month[1]=29;
}
total = days_in_month[month];
var date_today = months[month]+' '+year;
cal_table = cal_table + '<table class="cal_calendar" ><tbody id="cal_body"><tr class="head"><th class="arrow"><input id="left" type="image" onclick="left_arrow()" src="image/buttons/arrowleft.png"></th><th colspan="6" >'+date_today+'</th><th class="arrow"><input id="right" type="image" onclick="right_arrow()" src="image/buttons/arrowright.png"></th></tr>';
cal_table = cal_table + '<tr class="cal_d_weeks"><th>Mon</th><th>Tue</th><th>Wed</th><th>Thu</th><th>Fri</th><th>Sat</th><th>Sun</th><th>Week</th></tr><tr>';
week = 0;
var first_week_day = new Date(year, month, 0).getDay();
for(week_day = 0; week_day < first_week_day; week_day++)
{
cal_table = cal_table +'<td class="cal_days_bef_aft"></td>';
week++;
}
for(i=1;i<=total;i++)
{
if(week==0)
{
cal_table = cal_table + '<tr>';
}
if(today==i && month == date.getMonth() && year == date.getFullYear())
{
cal_table = cal_table +'<td id="'+'t'+year+m+i+'" class="cal_today"><input type="submit" onclick="showNotes(year, month, value)" value="'+i+'"></td>';
}
else
{
cal_table = cal_table +'<td id="'+'t'+year+m+i+'" class="not_today"><input type="submit" onclick="showNotes(year, month, value)" value="'+i+'"></td>';
}
week++;
markerNotes(year, m, i);
if(week==7)
{
var weeknr = new Date(year, month, i-1).getWeek();
cal_table = cal_table + '<td class="week"><input type="submit" onclick="showNotesOfweek(year, value)" value="'+weeknr+'"></td>';
cal_table = cal_table + '</tr>';
week=0;
}
}
for(i=1;week!=0;i++)
{
cal_table = cal_table + '<td class="cal_days_bef_aft"></td>';
week++;
if(week==7)
{
if(weeknr == 53)
{
var weeknr = 1;
}
else
{
var weeknr = weeknr+1;
}
cal_table = cal_table + '<td class="week"><input type="submit" onclick="showNotesOfweek(year, value)" value="'+weeknr+'"></td>';
cal_table = cal_table + '</tr>';
week=0;
}
}
cal_table = cal_table + '</tbody></table>';
}
function left_arrow()
{
month = month-1;
if(month == -1)
{
year = year - 1;
month = 11;
}
calendar_normal();
document.getElementById('calendar').innerHTML = cal_table;
}
function right_arrow()
{
month = month+1;
if(month == 12)
{
year = year +1;
month = 0;
}
calendar_normal();
document.getElementById('calendar').innerHTML = cal_table;
}
function showNotes(y, m, day)
{
var m = month+1;
eventString = '<div class="eventBox" id="'+'d'+y+m+day+'" onclick="diry('+y+', '+m+', '+day+');"><h1>'+y+'-'+m+'-'+day+'</h1></div>';
document.getElementById('file_holder').innerHTML = eventString;
}
function showNotesOfweek(y, wnr)
{
var d = new Date(y, 0, 0);
var w = d.getTime() + 604800000 * (wnr-1);
var m = new Date(w).getMonth()+1;
var y = new Date(w).getFullYear();
var day = new Date(w).getDate();
var e = new Date(w).getDay();
day = day - e+1;
eventString = '<div class="eventBox" id="'+'d'+y+m+day+'" onclick="diry('+y+', '+m+', '+day+');"><h1>'+y+'-'+m+'-'+day+'</h1></div>';
for(i=1;i<7;i++)
{
if(days_in_month[m-1] == day )
{
day = 0;
m++;
if(m>12)
{
y++;
var d = new Date(y, 0, 0);
var w = d.getTime() + 604800000 * (wnr-1);
var m = 1;
}
}
day++;
eventString = eventString + '<div class="eventBox" id="'+'d'+y+m+day+'" onclick="diry('+y+', '+m+', '+day+');"><h1>'+y+'-'+m+'-'+day+'</h1></div>';
}
document.getElementById('file_holder').innerHTML = eventString;
eventString = '';
}
function markerNotes(y, m, d)
{
var id='t'+y+m+d;
for(c = 0; c<=inputs; c++)
{
if(days_with_dirys[c] == id)
{
cal_table = cal_table + '<style type="text/css">#'+id+'{border: 2px solid #FFA500;}</style>';
}
}
}
</script>