// Event Calendar
// copyright Stephen Chapman, 10th June 2006, 30th October 2006

var tb = 't'; // top or bottom (t or b)

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 = ['S', 'M', 'T', 'W', 'T', 'F', 'S'];
    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 width="30" class="todaybg" align="center"><b>';
    var td_start = '<td width="30" align="center">';
    var cal = '<div id="cal"><table border="0" cellspacing="1" cellpadding="2" align="center" class="calendarblock"><tr><td colspan="7" class="headbg" 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) + '>' + 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>';
    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 += '<table border="0" cellspacing="0" cellpadding="2" width="100%" class="arrows"><tr><td><a href="#" onclick="if (cala = dispCal(' + yyb + ',' + mmb + ')) {document.getElementById(\'cal\').innerHTML = cala; return false;}"><img src="images/btn_prev.gif" border="0" /></a></td><td align="right"><a href="#" onclick="if (cala = dispCal(' + yya + ',' + mma + ')) {document.getElementById(\'cal\').innerHTML = cala; return false;}"><img src="images/btn_next.gif" border="0" /></a></td></tr></table>';
		
		/*
		cal += '<table border="0" cellspacing="0" cellpadding="2" width="100%" class="arrows"><tr><td><a href="#" onclick="if (cala = dispCal(' + yb + ',' + mm + ')) {document.getElementById(\'cal\').innerHTML = cala; return false;}"><<</a></td><td><a href="#" onclick="if (cala = dispCal(' + yyb + ',' + mmb + ')) {document.getElementById(\'cal\').innerHTML = cala; return false;}"><</a></td><td align="right"><a href="#" onclick="if (cala = dispCal(' + yya + ',' + mma + ')) {document.getElementById(\'cal\').innerHTML = cala; return false;}">></a></td><td align="right"><a href="#" onclick="if (cala = dispCal(' + ya + ',' + mm + ')) {document.getElementById(\'cal\').innerHTML = cala; return false;}">>></a></td></tr></table>';
		*/
   }
    else {
        cal += '<div> </div>';
    }
    cal += '</div>';
    return cal;
}

function start(){
    var x = '<div id="calDate" ><\/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 'class="textclr"';
    else
        return 'class="linkclr" onClick="window.location=goToEvent('+ year + getmmdd(month + 1, day) +')" ' +  ';return false;"'+ 'title="'+nextDate(year + getmmdd(month + 1, day))+'"' ;
}

function isDate(dayVal, monthVal, yearVal){
    var ct = nextDate(yearVal + getmmdd(monthVal + 1, dayVal));
    if (ct == '')
        ct = nextDate('0000' + getmmdd(monthVal + 1, dayVal));
    if (ct == '')
        ct = noMessage;
    //document.getElementById('calDate').innerHTML = selDate + ':<br \/>' + ct;
    return false;
}

function goToEvent(yymmdd)
{
	var x = dA.length;
    for (var i = 0; i < x; i++) {
        if (dA[i].date == yymmdd)
           return "events.php?id="+dA[i].id;
    }
    return '';

}

function nextDate(yymmdd){
    var x = dA.length;
    for (var i = 0; i < x; i++) {
        if (dA[i].date == yymmdd)
            return dA[i].text;
    }
    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;
}
