var dp = null;
var currentYear;
var currentMonth;
var monthArray = [
	'January',
	'February',
	'March',
	'April',
	'May',
	'June',
	'July',
	'August',
	'September',
	'October',
	'November',
	'December'
];




$(document).ready(function(){
	dp = $("#calender").datepicker({
		onChangeMonthYear: highlightEvents,
		onSelect: function(){highlightEvents(currentYear, currentMonth);}
	});
});

function highlightEvents(year, month, inst)
{

	currentYear = year;
	currentMonth = month;

	$.getJSON(
		'/events/eventsForMonth/'+ year +'/'+month,
		{},
		function(events)
		{
			
			$.each(events, function(e)
			{
				var eventId = events[e]['eventId'];
				var startDate = events[e]['startDate'];
				
				startDate = convertTimeStampToDate(startDate);
				
			
				$('.ui-datepicker-calendar a').each(function()
				{
					if($(this).html() == startDate.getDate() && $('.ui-datepicker-month').html() == monthArray[startDate.getMonth()])
					{
						$(this).addClass('hasEvent');
						
						if( $(this).attr("bound") ) return;
						
						$(this).attr("bound",true);
							
						$(this).bind('click', function()
						{
							getEventsForDay(startDate.getFullYear(), startDate.getDate() , startDate.getMonth()+1);
						});
					}
				});
			});
		}
	);
}

function getEventsForDay(year, day, month)
{	

	$.ajax({
		type: 'GET',
		url: '/events/eventsForDay/'+ year +'/'+ month +'/'+ day,
		success: function(eventContent){
			Shadowbox.open({
				content: '<div class="eventContent">' +
					'<span class="title">Events for ' + monthArray[month-1] + ' ' + day + ', ' + year +'</span><hr/>' +
					'</div>'+ eventContent,
				player:'html'
			});;
		}
	});
}

function convertTimeStampToDate(timestamp)
{
	var regex=/^([0-9]{2,4})-([0-1][0-9])-([0-3][0-9]) (?:([0-2][0-9]):([0-5][0-9]):([0-5][0-9]))?$/;
	var parts=timestamp.replace(regex,"$1 $2 $3 $4 $5 $6").split(' ');
	return new Date(parts[0],parts[1]-1,parts[2],parts[3],parts[4],parts[5]);
}
