var todaydate = new Date();
var curmonth = todaydate.getMonth();
var curyear = todaydate.getFullYear();

function Cal() {
	var cM = 'calmain';
	var cH = 'month';
	var cDW = 'daysofweek';
	var cD = 'days';
	var fr = '';
	var mn = ['January','February','March','April','May','June','July','August','September','October','November','December'];
	var dow = ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'];
	var dim = [31,0,31,30,31,30,31,31,30,31,30,31];
	var dim2 = [31,0,31,30,31,30,31,31,30,31,30,31];
	var t, x, othermo, yy, mm;

	var oD = new Date(curyear, curmonth, 1);
	oD.od = oD.getDay() + 1;

	if (!curmonth) {
		mm = 11;
		yy = curyear - 1;
	} else {
		mm = curmonth - 1;
		yy = curyear;
	}

	var lD = new Date(yy, mm, 1);
	lD.od = lD.getDay() + 1;

	var scanfortoday = (curyear == todaydate.getFullYear() && curmonth == todaydate.getMonth()) ? todaydate.getDate() : 0;

	dim[1] = ((oD.getFullYear() % 100 != 0) && (oD.getFullYear() % 4 == 0)) || (oD.getFullYear() % 400 == 0) ? 29 : 28;
	dim2[1] = ((lD.getFullYear() % 100 != 0) && (lD.getFullYear() % 4 == 0)) || (lD.getFullYear() % 400 == 0) ? 29 : 28;
	t = '<table class="' + cM + '" cols="7" cellpadding="0" border="3" cellspacing="0"><tr>';
	t += '<td class="' + cH + '"><a href=# title="Previous Month" onClick="DecMo();return false;">&laquo;</a></td><td colspan="5" class="' + cH + '" id="moyr"> ' + mn[curmonth] + ' - ' + curyear + '</td><td class="' + cH + '"><a href=# title="Next Month" onClick="IncMo();return false;">&raquo;</a></td></tr><tr>';
	for(s = 0; s < 7; s++) t += '<td class="' + cDW + '" title="' + dow[s] + '">' + dow[s].substr(dow[s], 3, 1) + '</td>';
	t += '</tr><tr>';
	if (oD.od == 1)
		oD.od += 7;
	for(i = 1; i <= 42; i++) {
		othermo = false;
		if (i - oD.od < 0) {
			othermo = true;
			x = eval(i - oD.od + dim2[mm] + 1);
		} else if (i - oD.od >= dim[curmonth]) {
			othermo = true;
			x = i - oD.od + 1 - dim[curmonth];
		} else
			x = i - oD.od + 1;
		if (x == scanfortoday && !othermo) {
			x = '<span id="today">'+ x +'</span>';
			fr = ' fr';
		}
		else
			fr = '';
		if (othermo)
			x = '<span style="color:gray">'+ x +'</span>';
		t += '<td class="'+ cD + fr + '">' + x + '</td>';
		if((i) % 7 == 0 && i < 36)
			t += '</tr><tr>';
	}

	return t += '</tr></table>';
}

function DecMo() {
	curmonth -= 1;
	if (curmonth == -1) {
		curmonth = 11;
		curyear -= 1;
	}

	document.getElementById('ie_cal').innerHTML = Cal();
}

function IncMo() {
	curmonth += 1;
	if (curmonth == 12) {
		curmonth = 0;
		curyear += 1;
	}

	document.getElementById('ie_cal').innerHTML = Cal();
}
