var sR_allOpen = 0;		// Gibt an, ob alle Toggle-Targets geoeffnet sind.
var sR_linksCount = 0;		// Enthaelt die Anzahl der Links in der Fusszeile.
var sR_showAllLinkLocation = 0;	// Gibt an, ob der "alle Tage einblenden"-Link in der Kopfzeile (1) oder in der Fusszeile (0) steht.
var sR_toggleTargetsCount = 0;	// Enthaelt die Anzahl der Toggle-Targets.
var sR_table_fullWidth = 586;	// Enthaelt die Breite, welche die Tabelle(n) mit den Sendungen haben soll, wenn es keinen Scrollbalken gibt.
$(document).ready(function() {
	// Pruefen, wieviele Toggle-Targets es gibt.
	$(".suchergebnis").find(".sendungen").each(function() {
		sR_toggleTargetsCount++;
	});
	// Drucken-Link zur Fusszeile hinzufuegen.
	$(".suchergebnis").parent().parent().find(".modulLinks").find("ul").prepend('<li id="listeDrucken"><a href="javascript:window.print();" title="Es &ouml;ffnet sich ein Druckdialog">Liste drucken</a><\/li>');
	// Pruefe, ob bereits eine Scrollbar angezeigt wird und fuehre entsprechende Anpassungen an der/den Tabelle(n) mit den Sendungen durch.
	sR_checkForScrollbar();
	// Pruefe, wieviele Links es in der Fusszeile gibt und fuehre entsprechende Anpassungen durch.
	sR_checkModuleLinks();
	// Alles weitere nur ausfuehren, wenn es mehr als ein Toggle-Target gibt.
	if (sR_toggleTargetsCount>1) {
		// Pruefe, ob die Klasse "bmSuchergebnis" im Dokument vorhanden ist, um zu ermitteln ob der "alle Tage einblenden"-Link in die Kopfzeile oder in die Fusszeile geschrieben werden muss.
		if( $(".bmSuchergebnis").length == 1 ) {
			// Fuege den "alle Tage einblenden"-Link zum Kopfbereich hinzu.

			$(".suchergebnis").parent().parent().find(".kopfbereich").find("#anzahlErgebnisse").after('<p><a href="javascript:sR_showAll();" id="alleTageEinblenden">[alle Tage einblenden]</a></p>');
			// Schreibe eine Variable, die bestimmt, das der "alle Tage einblenden"-Link im Kopfbereich steht.
			sR_showAllLinkLocation = 1;
		} else {
			// Fuege den "alle Tage einblenden"-Link zum Fussbereich hinzu.
			$(".suchergebnis").parent().parent().find(".modulLinks").find("#listeDrucken").after('<li id="alleTageEinblenden"><a href="javascript:sR_showAll();">alle Tage einblenden</a><\/li>');
			// Schreibe eine Variable, die bestimmt, das der "alle Tage einblenden"-Link im Fussbereich steht.
			sR_showAllLinkLocation = 0;
		}
		sR_checkAllOpen();
		updateLinks();
		// Pruefe, wieviele Links es in der Fusszeile gibt und fuehre entsprechende Anpassungen durch.
		sR_checkModuleLinks();
		// Den Toggle-Triggern und den Toggle-Targets eine ID zuweisen um so eine Beziehung fuer z. B. Barrierefreiheit zueinander herzustellen.
		/*$(".suchergebnis").find(".sendungen").each(function(id) {
				$(this).attr('id', "sendungen"+id);
				$(this).prev()
					.attr('aria-controls', "sendungen"+id)
					.attr("role", "button")
					.attr("tabindex", "0");
			}
		);*/
		// Das DIV fuer den + und - Button anlegen.
		//$(".suchergebnis").find(".ergebniszahl").after('<div class="button"><\/div>');
		// Alle Toggle-Targets bis auf das erste ausblenden.
		//$(".suchergebnis").find(".sendungen").hide();
		// Fuehre die Funktion aus, welche automatisch die Klassen sowie Attribute aktualisiert und den Inhalt fuer Barrierefreiheit und Usability manipuliert.
		//sR_stateSwitcher();
		// Toggle-Vorgang bei Click ausfuehren und die Variable entsprechend setzen. Inhalt fuer die Usability manipulieren.
		//$(".suchergebnis").find(".titelzeile").click(function(){
			//sR_toggleProcess(this);
		//});
		// Toggle-Vorgang bei definierten Keyboard-Aktionen ausfuehren und die Variable entsprechend setzen. Inhalt fuer die Usability manipulieren.
		$(".suchergebnis").find(".titelzeile").bind("keydown", function(keyEvent) {
			if (((keyEvent.keyCode == 39 || keyEvent.keyCode == 40) && !$(this).next(".sendungen").is(':visible')) || ((keyEvent.keyCode == 37 || keyEvent.keyCode ==  38) && $(this).next(".sendungen").is(':visible')) || (keyEvent.keyCode == 32)) {
				sR_toggleProcess(this);
			}
		});

		HTTP_GET_VARS=new Array();
		strGET=document.location.search.substr(1,document.location.search.length);
		if(strGET!=''){
			gArr=strGET.split('&');
			for(i=0;i<gArr.length;++i) {
				v='';vArr=gArr[i].split('=');
				if(vArr.length>1){v=vArr[1];}
				HTTP_GET_VARS[unescape(vArr[0])]=unescape(v);
			}
		}
	}
});



// Pruefe, ob alle Toggle-Target geoeffnet sind.
function sR_checkAllOpen() {
	if ($(".suchergebnis").find(".geschlossen").length > 0) {
		sR_allOpen=0;
	} else {
		sR_allOpen=1;
	}
	//sR_stateSwitcher();
}
// Pruefe, ob bereits eine Scrollbar angezeigt wird und fuehre entsprechende Anpassungen an der/den Tabelle(n) mit den Sendungen durch.
function sR_checkForScrollbar() {
	// Initialisiere eine Variable mit der Hoehe des Container-Bereichs.
	containerHeight = $(".suchergebnis").parent().height();
	// Initialisiere eine Variable mit der Hoehe des Suchergebnis-Bereichs.
	searchResultHeight = $(".suchergebnis").height();
	// Pruefe, ob der Container-Bereich groesser ist, als der Suchergebnis-Bereich.
	if (containerHeight > searchResultHeight) {
		// Die Breite der Tabelle(n) entsprechend anpassen.
		$(".suchergebnis").find(".sendungen").width(sR_table_fullWidth+"px");
	} else {
		// Die Breite der Tabelle(n) entsprechend anpassen.
		$(".suchergebnis").find(".sendungen").width(sR_table_fullWidth-scrollbarWidth+"px");
	}
}
// Pruefe, wieviele Links es in der Fusszeile gibt und fuehre entsprechende Anpassungen durch.
function sR_checkModuleLinks() {
	// Initialisiere eine Variable, welche die Gesamtzahl der gefundenen Links enthaelt.
	sR_linksCount = 0;
	$(".suchergebnis").parent().parent().find(".modulLinks").find("li").each(function() {
		sR_linksCount++;
		// Dem Link eine Klasse mit der aktuellen Zaehlanzahl geben.
		$(this).find("a").attr("class", "button"+sR_linksCount);
		// Dem Elternelement per Klasse uebergeben, wieviele Links in der Fusszeile gefunden wurden.
		$(this).parent("ul").attr("class", "items"+sR_linksCount);
	});
}
// Alle Toggle-Targets bis auf das Erste schliessen.
function sR_showFirst() {
	if( HTTP_GET_VARS['showAll'] ){
		window.location.href=document.URL.replace("&showAll=1#top",'')+'#top';
	}
	else {
		window.location.reload();
	}
}
// Alle Toggle-Targets anzeigen.
function sR_showAll() {
	if( HTTP_GET_VARS['showAll'] ){
		window.location.reload();
	}
	else {
		window.location.href=document.URL.replace('#top','')+'&showAll=1#top';
	}
}
// Aktualisiere Klassen sowie Attribute und manipuliere den Inhalt fuer Barrierefreiheit und Usability.
function sR_stateSwitcher() {
	// Gehe ueber alle Toggle-Targets.
	$(".suchergebnis").find(".sendungen").each(function() {
		// Pruefe, ob das Toggle-Target geoeffnet ist.
		if ($(this).is(":visible")) {
			$(this).prev()
				.addClass("offen")
				.attr("aria-expanded", "true")
				.removeClass("geschlossen")
				.find(".button").html("<h3><span>Inhalt schlie&szlig;en<\/span><\/h3>");
		} else {
			$(this).prev()
				.addClass("geschlossen")
				.attr("aria-expanded", "false")
				.removeClass("offen")
				.find(".button").html("<h3><span>Inhalt &ouml;ffnen<\/span><\/h3>");
		}
	});
	updateLinks();
}

function updateLinks() {
	sR_checkAllOpen();

	// Pruefe, ob der "alle Tage einblenden"-Link in der Kopfzeile (1) oder in der Fusszeile (0) steht.
	if (sR_showAllLinkLocation==1) {
		// Schreibe den Pfad zum "alle Tage einblenden"-Link in eine Variable.
		showAllLink = $(".suchergebnis").parent().parent().find(".kopfbereich").find("#alleTageEinblenden");
	} else {
		// Schreibe den Pfad zum "alle Tage einblenden"-Link in eine Variable.
		showAllLink = $(".suchergebnis").parent().parent().find(".modulLinks").find("#alleTageEinblenden > a");
	}
	// Pruefe, ob alle Tage angezeigt werden.
	if (sR_allOpen==1) {
		// Aendere den Link und den Text ensprechend.
		showAllLink.attr("href", "javascript:sR_showFirst();")
		// Pruefe, ob der "alle Tage einblenden"-Link in der Kopfzeile (1) oder in der Fusszeile (0) steht.
		if (sR_showAllLinkLocation==1) {
			showAllLink.text("[nur ersten Tag einblenden]");
		} else {
			showAllLink.text("nur ersten Tag einblenden");
		}
	} else {
		// Aendere den Link und den Text ensprechend.
		showAllLink.attr("href", "javascript:sR_showAll();")
		if (sR_showAllLinkLocation==1) {
			showAllLink.text("[alle Tage einblenden]");
		} else {
			showAllLink.text("alle Tage einblenden"); 
		}
	}
	sR_checkForScrollbar();

	$(function(){
		$('.memoLink').each( function() { 
			$(this).attr("href", "javascript:memorize('" + this.id + "');"); 
		});
	});
}
// Fuehre den Toggle-Vorgang durch.
function sR_toggleProcess(e) {
	$(e).next(".sendungen").slideToggle("fast", function() {
		sR_checkAllOpen(e);
	});
}

function toggleEvents( eventString, isArchive, index ) {
	var dayHeadline = $(".suchergebnis").find(".dayHeadline_" + index);
	var dayEvents = $(".suchergebnis").find("#dayEvents_" + index);
	if( dayEvents.html() == null ) {
		$.ajax({
			type: "GET",   url: "/TV/Steuerseiten/Sendungen-im-Suchergebnis---Ajax",   data: "event_ids="+eventString+"&is_archive="+isArchive+"&index="+index,   success: function(msg){ 
				dayHeadline.after( msg );
				dayHeadline.addClass("offen");
				dayHeadline.attr("aria-expanded", "true");
				dayHeadline.removeClass("geschlossen");
				dayHeadline.find(".button").html("<h3><span>Inhalt &ouml;ffnen<\/span><\/h3>");
				updateLinks();
			} 
		});
	}
	else {
		dayHeadline.next(".sendungen").slideToggle("fast", function() {
			if( dayEvents.is(":visible") ) {
				updateHeadline(dayHeadline, true);
			}
			else {
				updateHeadline(dayHeadline, false);
			}
			updateLinks();
		});
	}

}

function updateHeadline( dayHeadline, isOpen ) {
	if ( isOpen ){
		dayHeadline.addClass("offen");
		dayHeadline.attr("aria-expanded", "true");
		dayHeadline.removeClass("geschlossen");
		dayHeadline.find(".button").html("<h3><span>Inhalt &ouml;ffnen<\/span><\/h3>");
	}
	else {
		dayHeadline.addClass("geschlossen");
		dayHeadline.attr("aria-expanded", "false");
		dayHeadline.removeClass("offen");
		dayHeadline.find(".button").html("<h3><span>Inhalt schlie&szlig;en<\/span><\/h3>");
	}

}

