var $j = jQuery.noConflict();
$j(document).ready(function(){
	// Alle Toggle-Targets bis auf das erste ausblenden. 
	$j(".toggle").nextAll(".videosEntries:gt(0)").hide()
	// Inhalt manipulieren um die Fallback-Loesung umzuwandeln. Klassen und Attribute hinzufuegen.
	$j(".toggle").nextAll(".videosEntries:visible")
		.attr("aria-expanded", "true")
		.prevAll(".toggle").addClass("togglerOpen");
	$j(".toggle").nextAll(".videosEntries:hidden")
		.attr("aria-expanded", "false")
		.prevAll(".seperator").hide()
		.nextAll(".seperator").hide()
		.prevAll(".toggle").addClass("togglerClosed");
	// Allen Toggle-Triggern Attribute fuer z. B. Barrierefreiheit geben.
	$j(".toggle")
		.attr("role", "button")
		.attr("tabindex", "0");
	// Den Toggle-Triggern und den Toggle-Targets eine ID zuweisen um so eine Beziehung fuer z. B. Barrierefreiheit zueinander herzustellen.
	$j(".toggle").nextAll(".videosEntries").each(function(idCount) {
			$j(this).attr('id', "videos"+idCount );
			$j(this).prevAll(".toggle").attr('aria-controls', "videos"+idCount )
		}
	);
	// Toggle-Vorgang bei Click ausfuehren.
	$j(".toggle").click(function() {
		videosToggleEvent(this);
	});
	// Toggle-Vorgang bei definierten Keyboard-Aktionen ausfuehren.
	$j(".toggle").bind("keydown", function(keyEvent) {
		if (((keyEvent.keyCode == 39 || keyEvent.keyCode == 40) && !$j(this).nextAll(".videosEntries").is(':visible')) || ((keyEvent.keyCode == 37 || keyEvent.keyCode ==  38) && $j(this).nextAll(".videosEntries").is(':visible')) || (keyEvent.keyCode == 32)) {
			videosToggleEvent(this);
		}
	});
});
// Attribute und Klassen aendern. Wird bei jedem Toggle-Vorgang ausgefuehrt.
function videosStateSwitcher() {
	if ($j(this).is(':visible')) {
		$j(this).attr("aria-expanded", "true");
		$j(this).prevAll(".toggle")
			.removeClass("togglerClosed")
			.addClass("togglerOpen");
	} else {
		$j(this).attr("aria-expanded", "false");
		$j(this).prevAll(".toggle")
			.removeClass("togglerOpen")
			.addClass("togglerClosed");
	}
}
// Fuer das angefragte Toggle-Target den Toggle-Vorgang ausfuehren.
function videosToggleEvent(e) {
	$j(e).nextAll(".videosEntries").slideToggle(0, videosStateSwitcher);
	$j(e).nextAll(".seperator").toggle()
}
