/**
 * @author Ron
 */
$(document).ready(function(){
	var today = new Date();
	buildcalendar(today.getFullYear(), today.getMonth(), today.getDate())
	
	html = '<div id="eventsday" style="display:none;"></div>';
	$('#calendar').before(html);

})

eventdate = new Array();
eventtitle = new Array();
eventmessage = new Array();

titleBegin = '<ul class="list"><li class="first"><strong><b>';
titleEnd = '<\/strong>';

dayNamesBegin = '<li class="title">';
dayNamesEnd = '<\/li>';

dayNameBegin = '<b>';
dayNameEnd = '<\/b>';

daysBegin = '<li>';
daysEnd = '<\/li>';

dayBegin = '<a>';
dayEnd = '</a>';

eventDayClass = ' eventday';
//eventDayEnd = '';

emptyDay = '<span>&nbsp;</span>';

prevMonthBegin = '<span><a href="#" id="prevMonth" ';
prevMonthEnd = '><-</a>';
nextMonthBegin = '<a href="#" id="nextMonth" ';
nextMonthEnd = '>-></a></span>';

monthNames = ['January','February','March','April','May','June','July','August','September','October','November','December'];
dayNames = ['S','M','T','W','T','F','S'];

function monthlength(month,year) {
	var dd = new Date(year, month, 0);return dd.getDate();
}

function buildcalendar(year, month, day){
	var today = new Date(year, month, 1);
	m = today.getMonth() + 1;
	if (m < 10) m = '0' + m;

	events = getEvents(today.getFullYear(), m);
	
	var calendar = '';
	var nextM = today.getMonth()+1;
	var prevM = today.getMonth()-1;
	if (nextM == 1) year = today.getFullYear()+1;
	if (prevM == 11) year = today.getFullYear()-1;
	calendar += titleBegin + monthNames[today.getMonth()] + '</b> ' + today.getFullYear() + titleEnd + ' '
			 + prevMonthBegin + 'onclick="buildcalendar(' + today.getFullYear() + ',' + prevM + ', 1); return false;"' + prevMonthEnd + ' '
			 + nextMonthBegin + 'onclick="buildcalendar(' + today.getFullYear() + ',' + nextM + ', 1); return false;"' + nextMonthEnd;
	calendar += dayNamesBegin;
	for (i = 0; i < 7; i++){
		calendar += dayNameBegin + dayNames[i] + dayNameEnd;
	}
	calendar += dayNamesEnd;
	calendar += daysBegin;
	x = 1;
	calendar += '<li>';
	for (i = 0; i < today.getDay(); i++){
		calendar += emptyDay;
		x++;
	}
	for (i = 1; i < monthlength(today.getMonth() + 1, today.getFullYear())+1; i++){
		if(x == 8) {
			calendar += '<li>';
			x = 1;
		}
		m = today.getMonth() + 1;
		if (m < 10) m = '0' + m;
		if (i < 10) id = '0' + i;
		else id = i;
		newDay = today.getFullYear() + '-' + m + '-' + id;
		if (events['date']){
			isevent = false;
			for (en = 0; en < events['date'].length; en++){
				if (events['date'][en].indexOf(newDay) >= 0){
					isevent = true;
					eventNo = en;
				}
			}
			if (isevent){
				calendar += '<a href="#" name="' + events['date'][eventNo] + '" class="eventbutton' + eventDayClass + '" onclick="$(\'#eventsday\').html(displayEvent(($(this).attr(\'name\')))); $(\'#eventsday\').toggle(); return false;">' + i + '<\/a>';
			}else{
				calendar += dayBegin + i + dayEnd;
			}
		}else{
			calendar += dayBegin + i + dayEnd;
		}
		x++;
	}
	calendar += daysEnd + '<\/ul>';
	$('#calendar').html(calendar);	
}

function getEvents(year, month, date){
	if (!date) postData = 'date=' + year + '-' + month;
	else postData = 'date=' + date;
	events = new Array();
	$.ajax({
		async: false,
		type: "POST",
		url: "includes/events.php",
		data: postData,
		dataType: "json",
		success: function(data){
			events = data;
		}
	});
	return events;
}
	
function displayEvent(date){
	events = getEvents('', '', date);
	eventslist = '<b>' + date + '</b>';
	for (i = 0; i < events['id'].length; i++){
		eventslist += '<h3>' + events['title'][i] + '</h3>'
			+ '<b>Time: </b>' + events['time'][i]
			+ '<br><b>Location: </b>' + events['location'][i]
			+ '<br><b>Description: </b>' + events['text'][i];
	}
	eventslist += '<br><br><center><a href="#" onclick="javascript: $(\'#eventsday\').toggle(); return false;"><img src="images/close.gif" border="0"></a></center>';
	return eventslist;
}
