
var headbg = '#E6E6E6';  // table heading background colour
var todaybg = '#cccccc'; // current selected date background colour
var textclr = '#000000'; // text colour
var linkclr = '#ED1C24'; // link text colour
var noMessage =  ''; // message to display when no entry in array

var calendarEvt = new Array();
var calendarEvtx = 0;

// first 8 characters in ccyymmdd format for single date events
// first 8 characters in 0000mmdd format for every year events
//dA[x++] = "00000101 New Year";
//dA[x++] = "00000214 Valentine's day";
//dA[x++] = "00000709 Steve's Birthday";
//dA[x++] = "00000919 Site Anniversary";
//dA[x++] = "00001206 St Nicholas' Day";
// dA[x++] = "20060610 New Event Calendar Started today";

var months = [
"January",
"February",
"March",
"April",
"May",
"June",
"July",
"August",
"September",
"October",
"November",
"December"
];
var years = [
"2010",
"2011",
"2012"
];
var days = [
    "S",
    "M",
    "T",
    "W",
    "T",
    "F",
    "S"
]
var calDate = new Date();
var selDate = calDate.getFullYear()+""+padnum(calDate.getMonth()+1,2)+""+padnum(calDate.getDate(),2);
var caldiv = "#calendar";

//$(loadCalendar);

function padnum(num, digits) {
	num = num + "";
    while (num.length < digits) {
        num = "0" + "" +  num;
    }
    return num;
}

function loadCalendar() {

    var header = buildHeader();
    var body = "";
    body = buildCalendar(calDate.getMonth()+1,calDate.getFullYear());
    $(caldiv).html(header + body);

    //ev();
}

function buildHeader(month,year) {
    if (month == null) {
       calmonth = calDate.getMonth();
    } else {
       calmonth = month - 1;
    }
    if (year == null) {
       calyear = calDate.getFullYear();
    } else {
       calyear = year;
    }
    monthSelect = "<select name=\"month\" id=\"calMonth\" onChange=\"javascript:calDateChange();\">";
    for (i = 0; i < months.length; i++) {
        selected = "";
	if (calmonth == i) {
		selected = "selected=\"selected\"";
	}
        monthSelect += "<option value=\"" + (i+1) + "\" " + selected + ">" + months[i] + "</option>";
    }
    monthSelect += "</select>";
    yearSelect = "<select name=\"year\" id=\"calYear\" onChange=\"javascript:calDateChange();\">";
    for (i = 0; i < years.length; i++) {
	selected = "";
	if (calyear == years[i]) {
		selected = "selected=\"selected\"";
	}
        yearSelect += "<option value=\"" + years[i] + "\" " + selected + ">" + years[i] + "</option>";
    }
    yearSelect += "</select>";

    header = "<div id=\"calHeader\">" + monthSelect + yearSelect + "</div>";

    return header;
}

/*
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;
}
*/

function calDateChange() {
	year = $("#calYear").val();
	month = $("#calMonth").val();

	var header = buildHeader(month,year);
	var body = "";
	body = buildCalendar(month,year);

	$(caldiv).html(header + body);
}

function buildCalendar(month, year) {
    if (month < 1 || month > 12) {
        alert('month must be between 1 and 12');
        return false;
    }
    if (year < 1901 || year > 2100) {
        alert('year must be after 1900 and before 2101');
        return false;
    }
    var calendar = new Date();
    var calDate = calendar.getDate();
    calendar.setDate(1);
    calendar.setFullYear(year);
    calendar.setMonth(month - 1);
    calendar.setDate(calDate);
    var weekday = calendar.getDay();
    var daysInMonth = getMonthLength(month,year);

    var emptyStart = "<td class=\"calTD calEmpty\">";
    var todayStart = "<td class=\"calTD calToday\">";
    var tdStart = "<td class=\"calTD\">";
    var tableStart = "<div id=\"cal\"><table class=\"calTable\">";
    daysOfWeek = "<tr>";
    for (i = 0; i < 7; i++) {
        daysOfWeek += "<td class=\"calTD calDayOfWeek\">" + days[i] + "</td>";
    }
    daysOfWeek += "</tr>";

    var day2 = calDate;
    for (dex = calDate; dex > 6; dex -=7) day2 = dex;
    weekday -= day2 - 1;
    while (weekday < 0) weekday += 7;

    weeks = "<tr>";
    for(i = 0; i < weekday; i++) {
        weeks += emptyStart +".</td>";
    }
    for(i = 1; i <= daysInMonth; i++) {
        if(weekday == 7) {
            weeks += '</tr><tr>';
            weekday = 0;
        }
	
        if( selDate==year+ "" + padnum(month,2) + "" +padnum(i,2)) {
            weeks += todayStart;
        } else {
            weeks += tdStart;
        }
        weeks += "<span " + clickDate(i,month,year) + ">" + i + "</span></td>";
        weekday += 1;
    }
    for(i = weekday; i < 7; i++) {
        weeks += emptyStart + ".</td>";
    }
    weeks += "</tr>";

    cal = tableStart + daysOfWeek + weeks + "</table></div>";
    return cal;
}
function getMonthLength(month,year) {
    var date = new Date(year, month, 0);
    return date.getDate();
}

function clickDate(day, month, year) {
    var ct = nextDate(year + "" +  padnum(month,2) + "" + padnum(day,2));
    if (ct == '') ct = nextDate('0000' + padnum(month,2) + "" + padnum(day,2));
    if (ct == '') return ''; else return 'style="color: red; cursor:pointer; font-weight: bold" onClick="location.href=\'events?dateFilter=' + year + '' + padnum(month,2) + '' + padnum(day,2) + '\'"';
}
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 nextDate(yymmdd) {
    var x = calendarEvt.length;
    for (var i = 0; i < x; i++) {
//	alert(yymmdd + " - " + calendarEvt[i].substr(0,8));
        if (calendarEvt[i].substr(0,8) == yymmdd) {
		 return calendarEvt[i].substr(8);
	}
    }
    return '';
}



