// Event Calendar
// copyright Stephen Chapman, 10th June 2006, 30th October 2006

var tb = 't';			// top or bottom (t or b)
var headbg = '#406D97';		// table heading background colour
var todaybg = '';	// current selected date background colour
var textclr = '#000000';	// text colour
var linkclr = '#CC0000';	// link text colour
var noMessage = 'No event messages to display for today';	// message to display when no entry in array


// permission is granted to use this javascript provided that the below code is not altered
var pageLoaded = 0;
window.onload = function()
{
    pageLoaded = 1;
}

function loaded(i, f)
{
    if (document.getElementById && document.getElementById(i) != null)
	f();
    else if (!pageLoaded)
	setTimeout('loaded(\'' + i + '\',' + f + ')', 100);
}

function monthlength(month, year)
{
    var dd = new Date(year, month, 0);
    return dd.getDate();
}

// var moy =['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
var today = new Date();
var selDate = today.getFullYear() + getmmdd(today.getMonth() + 1, today.getDate());
function dispCal(yy, mm)
{
    if (mm < 0 || mm > 12) {
	alert('month must be between 1 and 12');
	return false;
    }
    if (yy != 0 && (yy < 1901 || yy > 2100)) {
	alert('year must be after 1900 and before 2101');
	return false;
    }
  //  var dow =['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];
    var calendar = new Date();
    var today = calendar.getDate();
    calendar.setDate(1);
    if (yy > 1900)
	calendar.setFullYear(yy);
    if (mm > 0)
	calendar.setMonth(mm - 1);
    var yy = year = calendar.getFullYear();
    var month = calendar.getMonth();
    calendar.setDate(today);
    var weekday = calendar.getDay();
    var daysInMonth = monthlength(month + 1, year);
    var hilite_start = '<td  style="background:' + todaybg + '" align="center">';
    var td_start = '<td  align="center">';
    var cal = '<div id="cal" ><div ><table width="100%" height="150" border="0" cellspacing="0" cellpadding="2" align="center"><tr><td colspan="7" style="background:' + headbg + ';color:#ffffff" align="center"><b>' + moy[month] + ' ' + year + '<\/b><\/td><\/tr><tr>';
    for (dex = 0; dex < 7; dex++) {
	cal += td_start + dow[dex] + '</td>';
    }
    cal += '<\/tr><tr>';
    var day2 = today;
    for (dex = today; dex > 6; dex -= 7)
	day2 = dex;
    weekday -= day2 - 1;
    while (weekday < 0)
	weekday += 7;
    for (dex = 0; dex < weekday; dex++)
	cal += td_start + ' <\/td>';
    for (dex = 1; dex <= daysInMonth; dex++) {
	if (weekday == 7) {
	    cal += '</tr><tr>';
	    weekday = 0;
	}
/*	if (selDate == year + getmmdd(month + 1, dex))
	    cal += hilite_start + '<span' + clickDate(dex, month, year) + '>' +'ouch'+ dex + '<\/span><\/b><\/td>';
	else */
	    cal += td_start + '<span ' + clickDate(dex, month, year) + '>' + dex + '<\/span><\/td>';
	weekday += 1;
    }
    for (dex = weekday; dex < 7; dex++)
	cal += td_start + ' <\/td>';
    cal += '<\/tr><\/table><\/div>';
    if (document.getElementById) {
	var mmb = month;
	mm = month + 1;
	var yya = yyb = yy;
	if (mmb < 1) {
	    mmb += 12;
	    yyb--;
	}
	var mma = month + 2;
	if (mma > 12) {
	    mma -= 12;
	    yya++;
	}
	var yb = yy - 1;
	var ya = yy + 1;
	cal += '<br><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td align="'+(lang=="en" ? "left" : "right")+'"><a href="#" onclick="if (cala = dispCal(' + yyb + ',' + mmb + ')) {document.getElementById(\'cal\').innerHTML = cala; return false;}"><img src="images/'+(lang=="en" ? "left" : "right")+'arrow.png" border="0"></a></td><td>&nbsp;</td><td align="right">&nbsp;</td><td align="'+(lang=="en" ? "right" : "left")+'"><a href="#" onclick="if (cala = dispCal(' + yya + ',' + mma + ')) {document.getElementById(\'cal\').innerHTML = cala; return false;}"><img src="images/'+(lang=="en" ? "right" : "left")+'arrow.png" border="0"></a></td></tr></table>';
    } else {
	cal += '<div> </div>';
    }
    cal += '</div>';
    return cal;
}

function start()
{
    var x = '';//'<div id="calDate" style="border:1pt solid #cccccc;"><\/div>';
    var y = '';
    if (tb == 't')
	y = x + dispCal(0, 0);
    else
	y = dispCal(0, 0) + x;
    document.getElementById('calendar').innerHTML = y;
    //ev();
}

loaded('calendar', start);

function clickDate(day, month, year)
{
    var ct = nextDate(year + getmmdd(month + 1, day));
    if (ct == '')
	ct = nextDate('0000' + getmmdd(month + 1, day));
    if (ct == '')
	return 'style="color:' + textclr + '"';
    else
	return 'style="cursor:pointer;font-weight:bold;color:' + linkclr + '" onmouseout="unhover_historical()" onmouseover="rollDate(' + day + ',' + month + ',' + year + ')"  onclick="selDate = ' + year + getmmdd(month + 1, day) + '; isDate(' + day + ',' + month + ',' + year + ')"';
}

function isDate(dayVal, monthVal, yearVal)
{
    var ct = nextDate(yearVal + getmmdd(monthVal + 1, dayVal));
    if (ct == '')
	ct = nextDate('0000' + getmmdd(monthVal + 1, dayVal));
    if (ct != '') {
	var monthVal0 = monthVal + 1;
	if (monthVal0 < 10) monthVal0 = "0" + monthVal0;
	if (dayVal < 10) dayVal = "0" + dayVal;
	window.location="index.php?id=20&caldate=" + yearVal + "-" + (monthVal0) + "-" + dayVal;
    } else {
	return false;
    }
    
}


function rollDate(dayVal, monthVal, yearVal)
{
    var ct = nextDate(yearVal + getmmdd(monthVal + 1, dayVal));
    if (ct == '')
	ct = nextDate('0000' + getmmdd(monthVal + 1, dayVal));
    if (ct != '') {
	clearInterval(histid);
	document.onmousemove = function (ev) {
		_hover_other(ev, ct);
	}

	}
}



function nextDate(yymmdd)
{
    var x = dA.length;
    for (var i = 0; i < x; i++) {
	if (dA[i].substr(0, 8) == yymmdd)
	    return dA[i].substr(8);
    }
    return '';
}

function getmmdd(mm, dd)
{
    return (mm > 9 ? '' + mm : '0' + mm) + (dd > 9 ? dd : '0' + dd);
}

function ev()
{
    var ct = nextDate(selDate);
    var ct = nextDate(selDate);
    if (ct == '')
	ct = nextDate('0000' + selDate.substr(4));
    if (ct == '')
	ct = noMessage;
    document.getElementById('calDate').innerHTML = selDate + ':<br \/> ' + ct;
}
