//
// a simple javascript calendar
// <phil@got-root.co.uk>
//

var t = new Date
var cd = t.getDate()
var cm = t.getMonth()
var cy = t.getFullYear()

var d
var m
var y

var aM = new Array("January","February","March","April","May","June","July","August","September","October","November","December")

function numDays(m,y) {
	var n
		if ((m==3)||(m==5)||(m==8)||(m==10)) {
			n = 30; }	// 30 days have september, april, june and november
		else {
			n = 31		// all the rest have 31
			if(m == 1) {	// except for february which just had to be different
				if (y/4 - parseInt(y/4) != 0) {
					n = 28 }
				else {
					n = 29 }	// leap year
			}
	  }
	return n
}

function cal(id) {
	d=cd
	m=cm
	y=cy
	
	var text = ""
	text += "<table class=\"cal\">"
	text += "<tr class=\"calhead\"><td><a href=\"javascript:changeMonth("+id+",-1);\">&#8249;</a></td><td colspan=\"5\" id=\"c"+id+"_m\"></td><td><a href=\"javascript:changeMonth("+id+",1);\">&#8250;</a></td></tr>"	
	text +="<tr class=\"caldays\"><td>M</td><td>T</td><td>W</td><td>T</td><td>F</td><td>S</td><td>S</td></tr>"
	
	a=0
	for (row=0;row<=5;row++){
	  text += "<tr>"
	  for (col=0;col<=6;col++){
		text += "<td id=c"+id+"_"+a+">"+"c"+a+"</td>"
		a++ }
	  text +="</tr>" }
	text+="</table>"
	
	document.write(text)
	draw(id)
}

function draw(id) {
	// get first day of month
	var t = new Date()
	t.setFullYear(y,m,1)
	var day1=t.getDay()
	day1=(day1==0)?7:day1
		
	var cal = new Array(42)
	var a=1		// current day of month
	
	for (i=0;i<cal.length;i++)
		cal[i]=''
	
	for (i=day1-1;i<numDays(m,y)+day1-1;i++) {
		cal[i]=a
		a++ }
	
	for (i=0;i<cal.length;i++){
		var el=eval("document.getElementById('c"+id+"_"+i+"')")
		el.innerHTML=(cal[i]!='')?"<a href=\"javascript:click("+cal[i]+','+(m+1)+','+y+");\">"+cal[i]+"</a>":''
		el.className=""
		if ((cal[i]==cd)&&(m==cm)&&(y==cy))
			el.className="today"
		}
	eval("document.getElementById('c"+id+"_m')").innerHTML=aM[m] + " " + y
}


function changeMonth(id,d) {
	m+=d
	if (m==12) {
	  m=0
	  y++ }
	if (m==-1) {
	  m=11
	  y-- }
	draw(id)
}


