var addthis_pub="blogto";
_atc.cwait=1;

var bHideAdd2Calendar = true;
var objAdd2Calendar_Link = null;

var EVENTS_JSON_SERVER = "/events/index.php";

var bEvents_MultipleDay = 0;
var sEvents_CalendarDate = true;
var sEvents_Date = "today";
var iEvents_Page = 1;
var iEvents_Pages = 1;
var bEvents_Update_Active = false;
var bEvents_Calendar_Update_Active = false;

$j(function(){	
	// Add event handlers for the single/multiple day filtering bar
	$j("#events_filter_type li").click(function(){
		$j("#events_filter_type li").removeClass("active");
		$j(this).addClass("active");
		bEvents_MultipleDay = (this.id == "eft_multiday");
		iEvents_Page = 1;
		Events_Update();
	});
	
	// Add event handlers for the custom date filtering bar
	$j("#events_filter_day li").click(function(){
		if(sEvents_CalendarDate){
			$j("#events_calendar .calendar div.day").removeClass("active");
		}
		$j("#events_filter_day li").removeClass("active").css({opacity: 1, filter: "Alpha(Opacity=100)"});
		$j(this).addClass("active");
		sEvents_CalendarDate = false;
		sEvents_Date = this.id.split("_")[1];
		iEvents_Page = 1;
		Events_Update();
	});
	
	// Activate handlers for calendar tools boxes
	Events_CalendarTools_Activate();
	
	// Add event handlers for calendar
	Events_Calendar_Activate();
	
	// Update results when changing event category
	$j("#Events_Category").bind("change", function(){
		iEvents_Page = 1;
		Events_Update();
	});
	
	// Preload AJAX loading bar
	var objImage = new Image();
	objImage.src = "/images/ajax-loader-bar.gif";
});

function Events_CalendarTools_Activate(){
	$j("#events .event .links .add").hover(
		function(){
			$j(this).children(".box").fadeIn("fast");
		},
		function(){
			objAdd2Calendar_Link = this;
			bHideAdd2Calendar = true;
			setTimeout(function(){
				if(bHideAdd2Calendar){
					$j(objAdd2Calendar_Link).children(".box").fadeOut("fast");
				}
				bHideAdd2Calendar = false;
			}, 200);
		}
	);
	
	// Hide calendar tools boxes when hovering out of the box
	$j("#events .event .links .add .box").hover(
		function(){
			bHideAdd2Calendar = false;
		},
		function(){
			$j(this).fadeOut("fast");
		}
	);
}

function Events_CalendarTools_Deactivate(){
	$j("#events .event .links .add").unbind();
	$j("#events .event .links .add .box").unbind();
}

function Events_RecommendedHint_Activate(){
	$j("#events .event .details .star").hover(
		function(){
			$j(this).children(".hint").fadeIn("fast");
		},
		function(){
			$j(this).children(".hint").fadeOut("fast");
		}
	);
}

function Events_RecommendedHint_Deactivate(){
	$j("#events .event .details .star").unbind();
}

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("#events_filter_day li").removeClass("active").css({opacity: 0.5, filter: "Alpha(Opacity=50)"});
		$j("#calendar_widget div.day").removeClass("active");
		$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;
	Events_RecommendedHint_Deactivate();
	$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_JSON_SERVER, {
			Action: "getcalendar",
			Month: iEvents_Calendar_Month,
			Year : iEvents_Calendar_Year
		}, function(sResponse){
			bEvents_Calendar_Update_Active = false;
			try{
				objResponse = eval(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.");
			}
		});
	});
}

function Events_Page_Previous(){
	if(iEvents_Page > 1){
		iEvents_Page --;
		Events_Update({autoscroll: true});
	}
}

function Events_Page_Next(){
	if(iEvents_Page < iEvents_Pages){
		iEvents_Page ++;
		Events_Update({autoscroll: true});
	}
}

function Events_Update(objOptions){
	if(!objOptions){
		objOptions = {
			autoscroll: false
		};
	}
	if(bEvents_Update_Active) return;
	bEvents_Update_Active = true;
	Events_CalendarTools_Deactivate();
	Events_RecommendedHint_Deactivate();
	$j("#events_filter_type li, #events_filter_day li").css({opacity: 1, filter: "Alpha(Opacity=100)"});
	$j("#events_content").height($j("#events_content").height());
	$j("#events_content").fadeOut("fast", function(){
		$j("#events_content").css({opacity: 1, display: "block"}).html("<div style=\"margin-top: 20px; text-align: center;\"><img src=\"/images/ajax-loader-bar.gif\" alt=\"Loading...\" /></div>");
		$j.post(EVENTS_JSON_SERVER, {
			Action : "update",
			MultipleDay : bEvents_MultipleDay ? 1 : 0,
			EventDate: sEvents_Date,
			Type: $j("#Events_Category")[0].value,
			Page : iEvents_Page
		}, function(sResponse){
			bEvents_Update_Active = false;
			try{
				objResponse = eval(sResponse);
				$j("#events_content").fadeOut("fast", function(){
					$j("#events_content").html(objResponse.html).fadeIn("fast").css({height: "auto"});
					
					iEvents_Pages = objResponse.pages;
					$j("#paging_previous").css({visibility: (iEvents_Page > 1 ? "visible" : "hidden")});
					$j("#paging_next").css({visibility: (iEvents_Page < iEvents_Pages ? "visible" : "hidden")});
					
					Events_CalendarTools_Activate();
					Events_RecommendedHint_Activate();
					
					if(objOptions.autoscroll) $j.scrollTo($j("#midwrapper"), 700);
				});
			}
			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.");
			}
		});
	});
}