$(document).ready(function(){
	/* ------- */
	/* Widgets */
	/* ------- */

	/* Header Slider */
	$('#teaser_slides').slides({
		generateNextPrev: true,
		play: 15000,
		pause: 6000
	});
	/* Titel Slider */
	$(".jcarousel-skin-kunstmann").each(function() {
		var jcarousel_id = $(this).attr("id");
		$('#' + jcarousel_id).jcarousel(
					{
						scroll: 4
					}
				);
	});
	$(".jcarousel-skin-kunstmann-detail").each(function() {
		var jcarousel_id = $(this).attr("id");
		$('#' + jcarousel_id).jcarousel();
	});
	/* ------ */
	/* Person */
	/* ------ */
	/* Persontabs ausblenden */
	$(".person_tab").hide();
	/* Default Persontab: Lesetipps */


	if ((location.hash == "#presse" || location.hash == "") && $("#person_tab_presse").length > 0) {
		$("#person_tab_presse_header").addClass("person_tab_header_aktiv");
		$("#person_tab_presse").show();
	}
	else if ((location.hash == "#mediathek" || location.hash == "") && $("#person_tab_mediathek").length > 0) {
		$("#person_tab_mediathek_header").addClass("person_tab_header_aktiv");
		$("#person_tab_mediathek").show();
	}
	else if ((location.hash == "#veranstaltungen" || location.hash == "") && $("#person_tab_veranstaltungen").length > 0) {
		$("#person_tab_veranstaltungen_header").addClass("person_tab_header_aktiv");
		$("#person_tab_veranstaltungen").show();
	}
	else {
		if ($("#person_tab_titel").length > 0) {
			$("#person_tab_titel_header").addClass("person_tab_header_aktiv");
			$("#person_tab_titel").show();
		}
	}
	/* Persontab bei Klick �ndern */
	$(".person_tab_header").click(function() {
		var person_tab_header_id = $(this).attr("id");
		$(".person_tab_header").removeClass("person_tab_header_aktiv");
		$("#" + person_tab_header_id).addClass("person_tab_header_aktiv");
		person_tab_header_id = person_tab_header_id.replace("_header","");
		$(".person_tab").hide();
		$("#" + person_tab_header_id).show();
		//Player wieder entfernen
		$(".play_icon").hide();
		$("#player").empty();
	});
	/* ----- */
	/* Titel */
	/* ----- */
	/* Titeltabs ausblenden */
	$(".titel_tab").hide();

	/* Default Titeltab: erstes vorhandenes Tab */
	if ((location.hash == "#presse" || location.hash == "") && $("#titel_tab_presse").length > 0) {
		$("#titel_tab_presse_header").addClass("titel_tab_header_aktiv");
		$("#titel_tab_presse").show();
	}
	else if ((location.hash == "#mediathek" || location.hash == "") && $("#titel_tab_mediathek").length > 0) {
		$("#titel_tab_mediathek_header").addClass("titel_tab_header_aktiv");
		$("#titel_tab_mediathek").show();
	}
	else if ((location.hash == "#veranstaltungen" || location.hash == "") && $("#titel_tab_veranstaltungen").length > 0) {
		$("#titel_tab_veranstaltungen_header").addClass("titel_tab_header_aktiv");
		$("#titel_tab_veranstaltungen").show();
	}
	else if ((location.hash == "#leserstimmen" || location.hash == "" || location.hash == "#neue_leserstimme") && $("#titel_tab_leserstimmen").length > 0) {
		$("#titel_tab_leserstimmen_header").addClass("titel_tab_header_aktiv");
		$("#titel_tab_leserstimmen").show();
	}
	else {
		if ($("#titel_tab_lesetipps").length > 0) {
			$("#titel_tab_lesetipps_header").addClass("titel_tab_header_aktiv");
			$("#titel_tab_lesetipps").show();
		}
	}
	//Titel Slider der verwandten Titel verstecken
	$("#titel_tab_lesetipps_slider").hide();
	/* Titeltab bei Klick �ndern */
	$(".titel_tab_header").click(function() {
		var titel_tab_header_id = $(this).attr("id");
		$(".titel_tab_header").removeClass("titel_tab_header_aktiv");
		$("#" + titel_tab_header_id).addClass("titel_tab_header_aktiv");
		titel_tab_header_id = titel_tab_header_id.replace("_header","");
		$(".titel_tab").hide();
		$("#" + titel_tab_header_id).show();
		//Player wieder entfernen
		$(".play_icon").hide();
		$("#player").empty();
		//Titel Slider verwandte Titel
		if (titel_tab_header_id == "titel_tab_lesetipps") {
			$("#titel_tab_lesetipps_slider").show();
		} else {
			$("#titel_tab_lesetipps_slider").hide();
		}
	});
	/* ----- */
	/* Page  */
	/* ----- */
	$(".header_navigation_warenkorb_link a").not(".aktiv").hover(
		function () {
			$(this).find("img").attr("src","/_images/warenkorb_weiss.png");
		},
		function () {
			$(this).find("img").attr("src","/_images/warenkorb.png");
		}
	);
	/* -------- */
	/* Kalender */
	/* -------- */
	$(".datepicker").each(function() {
		var datepicker_id = $(this).attr("id");
		var defaultdate = $("#" + datepicker_id + "_feld").val();
		if(defaultdate == ""){
			defaultdate = null;
		}

		$.datepicker.setDefaults($.datepicker.regional['de']);
		$('#' + datepicker_id).datepicker(
			{
				defaultDate: defaultdate
				, dateFormat: "dd.mm.yy"
				, firstDay: 1
				, onSelect: function(dateText, inst) {
					$("#" + datepicker_id + "_feld").val(dateText);
					$(this).parents("form:eq(0)").submit();
							}
			}
		);
	});
	/* ------------ */
	/* Schnellsuche */
	/* ------------ */
		$('#schnellsuche input[name="schnellsuche"]').each(function(){
		var h = $(this).parent().offset().top + $(this).parent().height() - 5;
		var l = $(this).parent().offset().left;
		$(this).typeahead({
			ajaxurl: "/ajax_suche.html"
			,width: 340
			,top: h
			,left: l
		});
	});



	/* -------- */
	/* Colorbox */
	/* -------- */
	$(".colorbox_noiframe").colorbox();
	$(".colorbox").each(function() {
		var colorbox_id = $(this).attr("id");
		$('#' + colorbox_id).colorbox({
			iframe:true, innerWidth:700, innerHeight:620, scrolling:false
			});
	});
	/* -------- */
	/* Submit	*/
	/* -------- */
	$(".submit").each(function() {
		var submit_id = $(this).attr("id");
		$('#' + submit_id).click(function() {
				$('#' + submit_id + '_form').submit();
				return false;
			});
	});
	/* ---------------- */
	/* Externe Links	*/
	/* ---------------- */
	$("a.external, a[rel*=external]").attr("target","_blank");
	/* ------------ */
	/* Form Reset	*/
	/* ------------ */
	function clear_form_elements(ele) {
			$(ele).find(':input').each(function() {
			if (!$(this).hasClass('no_reset')) {
				switch (this.type) {
					case 'password':
					case 'select-multiple':
					case 'select-one':
					case 'text':
					case 'textarea':
					case 'hidden':
						$(this).val('');
						break;
					case 'checkbox':
					case 'radio':
						this.checked = false;
				}
			}
			});
	}
	$(".reset").each(function() {
		var reset_id = $(this).attr("id");
		$('#' + reset_id).click(function() {
				reset_id = reset_id.replace("reset_", "");
				clear_form_elements('#' + reset_id + '_form');
				$('#' + reset_id + '_form').submit();
				return false;
			});
	});

	/* ---------------------------- */
	/* Form Errors					*/
	/* ---------------------------- */
	$(".form-error:input").each(function() {
		var value = $(this).val().trim();
		$(this).change(function() {
			var new_value = $(this).val().trim();
			if (value != new_value | new_value != "") {
				$(this).removeClass("form-error");
				$("ul#" + this.id + "-error").fadeOut();
			}
			});
	});



	/* ---------------------------- */
	/* Mehr Link f�r Text & Bild	*/
	/* ---------------------------- */
	//$(".link-mehr").each(function() {
	//	var link = $(this).text();
	//	$(this).replaceWith('<div class="button"><div class="button_left">&nbsp;</div><div class="button_middle"><a href=" '+ link + '">Mehr Info</a></div><div class="button_right">&nbsp;</div></div>');
	//});

	$("select").not(".listen-filter").wh_dropdown({
		speed: "fast"
		,type:	"hiddenfield"
	});
	$("select.listen-filter").wh_dropdown({
		speed: "fast"
		,type:	"hiddenfield"
		,margin_right: 15
	});

	/*
	 * Widget Titelliste Seitensteuerung �ber Ajax abfangen, nur wenn kein IE oder gr��er 7
	 */
	if (!($.browser.msie && $.browser.version < 8)) {
		$(".widget_titelliste").wh_pageControlListener();
	}

	if (!($.browser.msie && $.browser.version < 8)) {
		$(".widget_personen_liste ").wh_pageControlListener({
				ajaxurl: "ajax_widget_personenliste.html"
		});
	}

	if (!($.browser.msie && $.browser.version < 8)) {
		$(".widget_events").wh_pageControlListener({
				ajaxurl: "ajax_widget_eventsliste.html"
		});
	}

	//Reset der WH-Dropdowns
	$("#detailsuche_reset").click(function () {
		//Bereich
		$("div.jquery-wh-dropdown input[name=suche_bereich]")
		.val("")
		.parent("div.jquery-wh-dropdown")
		.find("div.jquery-wh-select span.jquery-wh-caption")
		.html("");
		//Medienart
		$("div.jquery-wh-dropdown input[name=suche_medienart]")
		.val("")
		.parent("div.jquery-wh-dropdown")
		.find("div.jquery-wh-select span.jquery-wh-caption")
		.html("");
	});
});

/* ---------------------------- */
/* Allgemeine Funktionen    	*/
/* ---------------------------- */

function decryptThis(s) {
	var n=0;
	var r="";
	for(var i=0;i<s.length;i++) {
		n=s.charCodeAt(i);
		if (n>=8364) {n = 128;}
		r += String.fromCharCode(n-(2));
	}
	return r;
}

function decrypt_mail(element, email, params) {
	if (!params) var params = '';
	element.href = 'mailto:' + decryptThis(email) + params;
}

/* ------------ */
/* getURLParam	*/
/* ------------ */
function getURLParam(strParamName,urlString){
	var strReturn = "";
	var strHref = window.location.href;
	var bFound=false;

	var cmpstring = strParamName + "=";
	var cmplen = cmpstring.length;

	if (urlString != null) strHref = urlString;

	if ( strHref.indexOf("?") > -1 ){
		var strQueryString = strHref.substr(strHref.indexOf("?")+1);
		// kill hash by CR, 16.09.09
		if (window.location.hash != '') {
			strQueryString = strQueryString.replace(window.location.hash,"");
		}
		// kill hash END
		var aQueryString = strQueryString.split("&");
		for ( var iParam = 0; iParam < aQueryString.length; iParam++ ){
			if (aQueryString[iParam].substr(0,cmplen)==cmpstring){
				var aParam = aQueryString[iParam].split("=");
				strReturn = aParam[1];
				bFound=true;
				break;
			}

		}
	}
	if (bFound==false) return null;
	return strReturn;
}

/*
 * Dropdowns allgemein Abschicken (nix spezial, verstehen)!
 */
function dropdownlist_submit(form) {
	window.setTimeout(function(){
		$("#" + form).submit();
	},200);
}


/*
 * WH-Dropdown List, Submit the Form (including Ajax) CR 02.12.2010
 */
function dropdowntitellist_submit(elm,form,input,page_id,nav_id) {
	var myElement = $("#" + form);
	var myElementID = myElement.attr("id");
	var content_widget_id = myElementID.replace(/[^0-9]/g,"");
	var strLinkString = myElement.attr("action");
	// return out, wenn kein dynamisches Widget
	if (content_widget_id == "" || content_widget_id <= 0) {
		window.setTimeout(function(){
			$("#" + form).submit();
		},200);
		return true;
	}
	// find Titelliste
	myElementID = "titelliste_"+content_widget_id;
	myElement = $("#" + myElementID);
	// hol die value f�r den URL Parameter
	var strInputValue = elm.getAttribute('rel');
	// l�sche den Hash aus der URL
	if (strLinkString.indexOf("#") > 0) {
		strLinkString = strLinkString.substring(0,strLinkString.indexOf("#"));
	}
	var strQueryString = strLinkString.substr(strLinkString.indexOf("?")+1);
	var strRefUriString = strLinkString.substring(0,strLinkString.indexOf("?"));
	// Query String zusammen bauen
	strQueryString += (strQueryString != "" ? "&" : "");
	strQueryString += input +"=" + strInputValue;
	var strRefQueryString = strQueryString;
	strQueryString += (strQueryString != "" ? "&" : "");
	strQueryString += "content_widget_id=" + content_widget_id;
	strQueryString += (strQueryString != "" ? "&" : "");
	strQueryString += "urlreferer=" + encodeURIComponent(strRefUriString + "?" + strRefQueryString);
	/* page_id: Wichtig f�r die richtige Verlinkung
	if (page_id != null) {
		strQueryString += (strQueryString != "" ? "&" : "");
		strQueryString += "page_id=" + page_id;
	}
	*/
	/* nav_id: Wichtig f�r die richtige Verlinkung
	if (nav_id != null) {
		strQueryString += (strQueryString != "" ? "&" : "");
		strQueryString += "nav_id=" + nav_id;
	}
	*/
	// Element ausgrauen
	$("#titelliste_"+content_widget_id).css("position","relative").append("<div class='ajax_loader' style='width:"+myElement.width()+"px;height:"+myElement.height()+"px'></div>").css("opacity",.3);
	// Wenn AjaxError, schicke Formular ab, kein Ajax!
	$("#titelliste_"+content_widget_id).ajaxError(function(){
		window.setTimeout(function(){
			$("#" + form).submit();
		},200);
	});
	// Ajax Laden
	//http://" + document.location.hostname +
	$.get(strRefUriString + "ajax_widget_titelliste.html?" + strQueryString, function(data){
		// altes Element ersetzen
		myElement.replaceWith(data);
		// neues Element mit WH Dropdowns und Ajax PageControl ersetzen
		$("#" + myElementID).wh_pageControlListener().find("select").wh_dropdown({speed: "fast"});
		//external links
		$("a.external, a[rel*=external]").attr("target","_blank");
	});
	/*
	window.setTimeout(function(){
		$("#" + form).submit();
	},200);
	*/
}

function dropdownpersonenliste_submit(elm,form,input,page_id,nav_id) {
	var myElement = $("#" + form);
	var myElementID = myElement.attr("id");
	var content_widget_id = myElementID.replace(/[^0-9]/g,"");
	var strLinkString = myElement.attr("action");
	// return out, wenn kein dynamisches Widget
	if (content_widget_id == "" || content_widget_id <= 0) {
		window.setTimeout(function(){
			$("#" + form).submit();
		},200);
		return true;
	}
	// find Titelliste
	myElementID = "personenliste_"+content_widget_id;
	myElement = $("#" + myElementID);
	// hol die value f�r den URL Parameter
	var strInputValue = elm.getAttribute('rel');
	// l�sche den Hash aus der URL
	if (strLinkString.indexOf("#") > 0) {
		strLinkString = strLinkString.substring(0,strLinkString.indexOf("#"));
	}
	var strQueryString = strLinkString.substr(strLinkString.indexOf("?")+1);
	var strRefUriString = strLinkString.substring(0,strLinkString.indexOf("?"));
	// Query String zusammen bauen
	strQueryString += (strQueryString != "" ? "&" : "");
	strQueryString += input +"=" + strInputValue;
	var strRefQueryString = strQueryString;
	strQueryString += (strQueryString != "" ? "&" : "");
	strQueryString += "content_widget_id=" + content_widget_id;
	strQueryString += (strQueryString != "" ? "&" : "");
	strQueryString += "urlreferer=" + encodeURIComponent(strRefUriString + "?" + strRefQueryString);
	/* page_id: Wichtig f�r die richtige Verlinkung
	if (page_id != null) {
		strQueryString += (strQueryString != "" ? "&" : "");
		strQueryString += "page_id=" + page_id;
	}
	*/
	/* nav_id: Wichtig f�r die richtige Verlinkung
	if (nav_id != null) {
		strQueryString += (strQueryString != "" ? "&" : "");
		strQueryString += "nav_id=" + nav_id;
	}
	*/
	// Element ausgrauen
	$("#personenliste_"+content_widget_id).css("position","relative").append("<div class='ajax_loader' style='width:"+myElement.width()+"px;height:"+myElement.height()+"px'></div>").css("opacity",.3);
	// Wenn AjaxError, schicke Formular ab, kein Ajax!
	$("#personenliste_"+content_widget_id).ajaxError(function(){
		window.setTimeout(function(){
			$("#" + form).submit();
		},200);
	});
	// Ajax Laden
	$.get(strRefUriString  + "ajax_widget_personenliste.html?" + strQueryString, function(data){
		// altes Element ersetzen
		myElement.replaceWith(data);
		// neues Element mit WH Dropdowns und Ajax PageControl ersetzen
		$("#" + myElementID).wh_pageControlListener({
				ajaxurl: "ajax_widget_personenliste.html"
		}).find("select").wh_dropdown({speed: "fast"});
		//external links
		$("a.external, a[rel*=external]").attr("target","_blank");
	});
	/*
	window.setTimeout(function(){
		$("#" + form).submit();
	},200);
	*/
}

function dropdowneventliste_submit(elm,form,input,page_id,nav_id) {
	var myElement = $("#" + form);
	var myElementID = myElement.attr("id");
	var content_widget_id = myElementID.replace(/[^0-9]/g,"");
	var strLinkString = myElement.attr("action");
	// return out, wenn kein dynamisches Widget
	if (content_widget_id == "" || content_widget_id <= 0) {
		window.setTimeout(function(){
			$("#" + form).submit();
		},200);
		return true;
	}
	// find Titelliste
	myElementID = "eventsliste_"+content_widget_id;
	myElement = $("#" + myElementID);
	// hol die value f�r den URL Parameter
	var strInputValue = elm.getAttribute('rel');
	// l�sche den Hash aus der URL
	if (strLinkString.indexOf("#") > 0) {
		strLinkString = strLinkString.substring(0,strLinkString.indexOf("#"));
	}
	var strQueryString = strLinkString.substr(strLinkString.indexOf("?")+1);
	var strRefUriString = strLinkString.substring(0,strLinkString.indexOf("?"));
	// Query String zusammen bauen
	strQueryString += (strQueryString != "" ? "&" : "");
	strQueryString += input +"=" + strInputValue;
	var strRefQueryString = strQueryString;
	strQueryString += (strQueryString != "" ? "&" : "");
	strQueryString += "content_widget_id=" + content_widget_id;
	strQueryString += (strQueryString != "" ? "&" : "");
	strQueryString += "urlreferer=" + encodeURIComponent(strRefUriString + "?" + strRefQueryString);
	/* page_id: Wichtig f�r die richtige Verlinkung
	if (page_id != null) {
		strQueryString += (strQueryString != "" ? "&" : "");
		strQueryString += "page_id=" + page_id;
	}
	*/
	/* nav_id: Wichtig f�r die richtige Verlinkung
	if (nav_id != null) {
		strQueryString += (strQueryString != "" ? "&" : "");
		strQueryString += "nav_id=" + nav_id;
	}
	*/
	// Element ausgrauen
	$("#eventsliste_"+content_widget_id).css("position","relative").append("<div class='ajax_loader' style='width:"+myElement.width()+"px;height:"+myElement.height()+"px'></div>").css("opacity",.3);
	// Wenn AjaxError, schicke Formular ab, kein Ajax!
	$("#eventsliste_"+content_widget_id).ajaxError(function(){
		window.setTimeout(function(){
			$("#" + form).submit();
		},200);
	});
	// Ajax Laden
	$.get(strRefUriString  + "ajax_eventsliste.html?" + strQueryString, function(data){
		// altes Element ersetzen
		myElement.replaceWith(data);
		// neues Element mit WH Dropdowns und Ajax PageControl ersetzen
		$("#" + myElementID).wh_pageControlListener({
				ajaxurl: "ajax_eventsliste.html"
		}).find("select").wh_dropdown({speed: "fast"});
		//external links
		$("a.external, a[rel*=external]").attr("target","_blank");
	});
	/*
	window.setTimeout(function(){
		$("#" + form).submit();
	},200);
	*/
}
//googlemaps scroll
function gm_tooltip(id){
	$.scrollTo("#" + id, {duration:500} );
	$("div.veranstaltungsliste").removeClass("veranstaltung_highlight");
	$("div.veranstaltung_zeile_" + id).addClass("veranstaltung_highlight");
}

//MP3 FlashPlayer einf�gen
function replace_flashplayer(file, autoplay) {
	$("#player").flash({
		src: "/_files_global/player.swf"
		,width: 180
		,height: 23
		,wmode: "transparent"
		,flashvars: {
			autostart: autoplay
			,type: "mp3"
			,allowfullscreen: false
			,file: "/_files_global/audio/" + file + ".mp3"
			,skin: "/_files_global/skin_180.swf"
			,wmode: "transparent"
		}
	});
}

function replace_flashplayer_popup(file, autoplay) {
	$("#player").flash({
		src: "/_files_global/player.swf"
		,width: 480
		,height: 29
		,wmode: "transparent"
		,flashvars: {
			autostart: autoplay
			,type: "mp3"
			,allowfullscreen: false
			,file: "/_files_global/audio/" + file + ".mp3"
			,skin: "/_files_global/skin_370.swf"
			,wmode: "transparent"
		}
	});
}

//Colorbox schlie�en und auf eine andere Seite weiterleiten
function close_colorbox_and_redirect(link) {
	parent.window.location.href=link;
	parent.$.colorbox.close();
}
