var sEvents_CalendarDate = true;
var bEvents_Calendar_Update_Active = false;
var bEvents_Update_Active = false;
var sEvents_Date = "today";

var Today = new Date();
var iEvents_Calendar_Year = Today.getFullYear();
var iEvents_Calendar_Month = (Today.getMonth() + 1);
var iEvents_Calendar_Day = Today.getDate();

var EVENTS_CALENDAR_SERVER = "/events/";

function Events_Calendar_Activate(){
	// Highlight current day in calendar
	$j("#day_" + iEvents_Calendar_Day).addClass("active");
	
	// Add event handlers
	$j("#calendar_widget div.day").hover(
		function(){
			$j(this).addClass("hover");
		},
		function(){
			$j(this).removeClass("hover");
		}
	).click(function(){
		$j("#calendar_widget div.day").removeClass("active");
		$j("#events_filter input[name=date]").each(function(){
		 	this.checked = false;
		});
		$j(this).addClass("active");
		sEvents_CalendarDate = true;
		iEvents_Calendar_Day = parseInt(this.innerHTML);
		sEvents_Date = iEvents_Calendar_Year + "-" + iEvents_Calendar_Month + "-" + iEvents_Calendar_Day;
		iEvents_Page = 1;
		Events_Update();
	});
}

function Events_Calendar_Deactivate(){
	$j("#calendar_widget div.day").unbind();
}

function Events_Calendar_Month(iStep){
	iEvents_Calendar_Month += iStep;
	if(iEvents_Calendar_Month < 1){
		iEvents_Calendar_Month = 12;
		iEvents_Calendar_Year --;
	}
	else if(iEvents_Calendar_Month > 12){
		iEvents_Calendar_Month = 1;
		iEvents_Calendar_Year ++;
	}
	sEvents_Date = iEvents_Calendar_Year + "-" + iEvents_Calendar_Month + "-" + iEvents_Calendar_Day;
	Events_Calendar_Update();
}

function Events_Calendar_Update(){
	if(bEvents_Calendar_Update_Active) return;
	bEvents_Calendar_Update_Active = true;
	$j("#calendar_widget").height($j("#calendar_widget").height());
	$j("#calendar_widget").fadeOut("fast", function(){
		$j("#calendar_widget").css({opacity: 1, display: "block"}).html("<p style=\"margin-top: 20px; text-align: center;\"><img src=\"/images/ajax-loader-bar.gif\" alt=\"Loading...\" /></p>");
		$j.post(EVENTS_CALENDAR_SERVER, {
			Action: "getcalendar",
			Month: iEvents_Calendar_Month,
			Year: iEvents_Calendar_Year
		}, function(sResponse){
			bEvents_Calendar_Update_Active = false;
			try{
				eval("var objResponse = " + sResponse + ";");
				$j("#calendar_month").html(objResponse.month);
				$j("#calendar_widget").fadeOut("fast", function(){
					$j("#calendar_widget").html(objResponse.html).fadeIn("fast").css({height: "auto"});
					Events_Calendar_Activate();
					Events_Update();
				});	
			}
			catch(e){
				alert("Sorry, we encountered a technical problem and the events couldn't be loaded. Please try again in a few moments, or if the problem persists, report the problem to us via our \"Contact Us\" link at the bottom of the page.");
			}
		});
	});
}
