var cur_year;
var cur_month;
var $j = jQuery.noConflict();


$j(document).ready(function(){
	
	var today = new Date();
	cur_year = today.getFullYear();
	cur_month = today.getMonth();
	
	$j("#calendar_left").css('visibility', 'hidden');

	$j("#calendar_right").click(function(){
		
		cur_month++;
		if (cur_month > 11)
		{
			cur_month = 0;
			cur_year++;			
		}
		
		paintCalendar(cur_month, cur_year);
		
		if (cur_month > today.getMonth())
			$j("#calendar_right").css('visibility', 'hidden');

		if (cur_month >= today.getMonth())
			$j("#calendar_left").css('visibility', 'visible');
		
	});
	
	$j("#calendar_left").click(function(){
		
		cur_month--;
		if (cur_month < 0)
		{
			cur_month = 11;
			cur_year--;			
		}
		
		paintCalendar(cur_month, cur_year);

		if (cur_month <= today.getMonth())
			$j("#calendar_left").css('visibility', 'hidden');
		
		if (cur_month <= today.getMonth())
			$j("#calendar_right").css('visibility', 'visible');

		
	});
	
	paintCalendar(cur_month, cur_year);

		

	
});


function paintCalendar(month, year)
{
	$j("#calendar_month").html("<img src=\"" + getTitle(month) + "\" />");
	$j.get('/events/xml/' + year + "/" + (month + 1), function(xml) {
		
		$j('event', xml).each(function(){

			date = new Date($j(this).attr("date"));
			$j("#calendar_day_" + date.getDate()).addClass("calendar_selected");
			$j("#calendar_day_" + date.getDate()).tooltip();
			
			var html = $j("#calendar_tooltip_" + date.getDate()).html();
			
			if (html != '')
				html += "<br />";
			
			html += '<a href="/events/view/' + $j(this).attr("id") + '">' + $j(this).attr("name") + '</a>';
			
			$j("#calendar_tooltip_" + date.getDate()).html(html);
		});
	});
	
	
	days_in_month = daysInMonth(month, year);
	first_weekday = new Date(year, month, 1).getDay();
	
	if (first_weekday == 0)
		first_weekday = 7;
	
	var html = "<table><tr><td>" + day_names[0] + 
		"</td><td>" + day_names[1] + 
		"</td><td>" + day_names[2] +
		"</td><td>" + day_names[3] + 
		"</td><td>" + day_names[4] + 
		"</td><td>" + day_names[5] + 
		"</td><td>" + day_names[6] + "</td></tr>";
	
	var rows = Math.floor((days_in_month + first_weekday + 6) / 7);
	var day = 1;
	
	for (var i = 0; i < rows; i++)
	{
		html += "<tr>";
		for (var j = 1; j <= 7; j++)
		{
			pos = i * 7 + j;
			if (pos >= first_weekday && pos < days_in_month + first_weekday)
			{	
				html += "<td><span id=\"calendar_day_" + day + "\">" + day + 
					"</span><div class=\"calendar_tooltip\" id=\"calendar_tooltip_" + day + "\"></div></td>";
			
				day++;
			}
			else
				html += "<td></td>";
		}
		html += "</tr>";
	}

	html += "</table>";
	$j("#calendar_content").html(html);
}


function daysInMonth(month, year)
{
	return 32 - new Date(year, month, 32).getDate();
}

function getTitle(month)
{
	return "/img/titles/" + month_names[month] + ".png";
}
