jQuery.noConflict();
jQuery(document).ready(function ($) {

	/*
	 * Kopiert die weiterempfehlen-Verlinkung in entsprechende Platzhalter.
	 * (DOM manipulation)
	 */
	$('.sendRecommendLink').click(function () {
		window.location.href = $("#sendRecommendLink").attr('href');
	});

	/*
	 * Kopiert die feedback-Verlinkung in entsprechende Platzhalter.
	 * (DOM manipulation)
	 */
	$('.sendFeedbackLink').click(function () {
		window.location.href = $("#sendFeedbackLink").attr('href');
	});

	/*
	 * Kopiert die zusätzlichen Infocontainer in die Hauptnavigation.
	 * (DOM manipulation)
	 */
	$("div[id^='navigationContainer']").each(function () {

		var idvalue = $(this).attr('id');
		var guid = idvalue.substring("navigationContainer".length);
		$(this).css("display", "block");
		var navContainer = $('<td id="navigationCell' + guid + '"><div class="NavExtraContainer">' + $(this).html() + '</div><\/td>');



		var elements = new Array();
		$('#navigationLayer' + guid + ' tr').each(function () {
			if (navContainer != null) {
				if ($(this).children().length > 3) {
					elements.push($(this).children('td:last'));
					$(this).children('td:last').remove();
					$(this).append(navContainer);
				} else {
					$(this).append(navContainer);
				}
				navContainer = null;

			} else {
				elements.reverse();
				while (elements.length > 0) {
					var temp = elements.pop();
					temp.addClass("row");
					$(this).prepend(temp);
				}
				while ($(this).children().length > 3) {
					elements.push($(this).children('td:last'));
					$(this).children('td:last').remove();
				}
				while ($(this).children().length > 4) {
					$(this).append($("<td>&nbsp;<\/td>"));
				}
			}
		});
		if (elements.length > 0) {
			var trElement = $("<tr><\/tr>");
			var c = elements.length;
			while (elements.length > 0) {
				var temp = elements.pop();
				temp.addClass("row");
				trElement.append(temp);
			}
			for (var i = c; i < 3; i++) {
				trElement.append($("<td>&nbsp;<\/td>"));
			}
			$('#navigationLayer' + guid).children('tbody').append(trElement);
		}
		var temp = $('#navigationCell' + guid);
		temp.attr("rowspan", $('#navigationLayer' + guid).children('tbody').children('tr').length);
		if (navContainer == null) {
			$(this).remove();
		}
	});



	/*
	 * Warenkorb, ändern der Produktmenge.
	 */
	$("#hbscart>tbody>tr>td>select").change(function () {
		var selectvalue = $(this).attr('value');
		var temp = selectvalue.split("_");
		var amount = temp[1];
		var hbsid = temp[0];
		$.ajax({
			async: false,
			type: "POST",
			url: "/cps/rde/xchg/hbs/shop.xml",
			data: "amount=" + amount + "&shop.setamount=" + hbsid,
			dataType: "xml",
			success: function (data, textStatus) {
				window.location.reload();
			},
			error: function (XMLHttpRequest, textStatus, errorThrown) {
				$().toastmessage('showToast', {
					text: 'UpdateAmount: Ajax-Error.',
					sticky: true,
					position: 'top-center',
					type: 'error',
					close: null
/*,
				   stayTime : 4000*/
				});
			}
		});
	});

	/*
	 * Warenkorb, Artikel auf einer beliebigen Seite hinzufügen.
	 */
	$(".BestellLink").click(function () {
		var hrefvalue = $(this).attr('href');
		var hbsid = hrefvalue.substr(hrefvalue.lastIndexOf("#") + 1);
		$.ajax({
			async: false,
			type: "POST",
			url: "/cps/rde/xchg/hbs/shop.xml",
			data: "shop.add=" + hbsid,
			dataType: "xml",
			success: function (data, textStatus) {
				var result = $("shop>add>ioletxml>addproduct>result:last", data);
				var resultcode = $("shop>add>ioletxml>addproduct>resultcode:last", data);
				var title = $("shop>add>lidos_produkt>bibliograph>titel:last", data);
				if (result.text() == "true") {
					$().toastmessage('showToast', {
						text: 'Der Artikel "' + title.text() + '" wurde in den Warenkorb aufgenommen',
						sticky: true,
						position: 'top-center',
						type: 'success',
						close: null
						//,stayTime : 4000
					});
				} else {
					if (resultcode.text() == "user-nocookie") {
						$().toastmessage('showToast', {
							text: 'Der Warenkorb funktioniert nur, wenn Ihr Browser Cookies akzeptiert.',
							sticky: true,
							position: 'top-center',
							type: 'warning',
							close: null
						});
					} else {
						$().toastmessage('showToast', {
							text: 'Der gewünschte Artikel konnte nicht in den Warenkorb aufgenommen werden: ' + resultcode.text(),
							sticky: true,
							position: 'top-center',
							type: 'warning',
							close: null
						});
					}
				}
			},
			error: function (XMLHttpRequest, textStatus, errorThrown) {
				$().toastmessage('showToast', {
					text: 'AddProduct: Ajax-Error.',
					sticky: true,
					position: 'top-center',
					type: 'error',
					close: null
				});
			}
		});
		return false;
	});

	/*
	 * Tabs (Hauptbühne).
	 */
	if ($("ul.css-tabs").length > 0) {
		$("ul.css-tabs").tabs("div.css-panes > div", {
			tabs: 'li'
		});
	}

	/*
	 * Tabs auf den Mitarbeiterseiten.
	 */
	if ($("ul.mitarbeiterTabsSelector").length > 0) {
		$("ul.mitarbeiterTabsSelector").tabs("div.mitarbeiterTabsContent > div", {
			tabs: 'li',
			current: 'ReiterActv'
		});
	}

	/*
	 * Fancybox, zoom-Funktion auf Artikelseiten.
	 */
	$("a.ZoomLink").fancybox({
		'type': 'image',
		'autoDimensions': true,
		'autoScale': false,
		'width': 600,
		'transitionIn': 'elastic',
		'transitionOut': 'elastic',
		'easingIn': 'easeOutBack',
		'easingOut': 'easeInBack',
		'speedIn': 600,
		'speedOut': 200,
		'overlayShow': false
	});

	/* ---- Navigation ---- */

	/*
	 * IE6/IE7 hack for z-index
	 */
	var zIndexNumber = 9990;
	$('div:not(.row)').each(function () {
		$(this).css('zIndex', zIndexNumber);
		zIndexNumber -= 10;
	});
	$('#fancybox-wrap').css('zIndex', '10001')
	zIndexSubNavig = $("div.SubNavig").css('zIndex');

	/*
	 * Topnavigation
	 * On Hover Over  
	 */

	function megaHoverOverTopnavi() {
		var a = $(this).children("a");
		var className = a.attr('class');
		var classNavActive = className + '_NavActive';
		var position = a.offset();
		var offset = $(this).parent().offset();
		var marginLeft = position.left - offset.left;
		$(this).find(".subLayer").css('margin-left', marginLeft + 'px');
		a.attr('class', classNavActive);
		$(this).find(".subLayer").stop().fadeTo('fast', 1).show(); //Find sub and fade it in
		var ulWidth = $(this).find("ul.column").outerWidth(true);
		$(this).find(".subLayer").css('width', ulWidth + 'px'); // set width for IE7
		var biggestRow = 0;
		ulMarginRight = parseInt($(this).find("ul.column").css('margin-right'));
		ulCount = $(this).find("ul.column").size();
		ulOffset = (ulCount - 1) * ulMarginRight;
		subCRPadding = parseInt($(this).find(".subCR").css('padding-right')) + parseInt($(this).find(".subCR").css('padding-left'));
		$(this).find(".subTC").css({
			'width': biggestRow - 13 - 17 + subCRPadding + ulOffset
		}); // Set width (+20 = 2 spaltig), (+40 = 3 spaltig)
		$(this).find(".subCR").css({
			'width': biggestRow + ulOffset
		}); // Set width (+20 = 2 spaltig), (+40 = 3 spaltig)					 										
		$(this).find(".subBC").css({
			'width': biggestRow - 13 - 17 + subCRPadding + ulOffset
		}); // Set width (+20 = 2 spaltig), (+40 = 3 spaltig)					
	}

	/*
	 * Topnavigation
	 * On Hover Out
	 */

	function megaHoverOutTopnavi() {
		var a = $(this).children("a");
		var className = a.attr('class');
		var classNavInactive = className.replace('_NavActive', '');
		a.attr('class', classNavInactive);
		$(this).find(".subLayer").stop().fadeTo('fast', 0, function () { //Fade to 0 opactiy
			$(this).hide(); //after fading, hide it			
		});
	}

	/*
	 * Mainnavigation
	 * On Hover Over
	 */

	function megaHoverOverTopSubnavi(e) {
		var a = $(this).children("a");
		var ulPosition = $(this).parent().offset();
		var position = $(this).offset();
		var marginLeft = -1 * (position.left - ulPosition.left);
		try {
			if (navigationtype != "simple") {
				$(this).find(".subLayer").css('margin-left', marginLeft + 'px');
			} else {
				if (a.attr('class') != 'First') {
					$(this).find('.subLayer').css('margin-left', '-1px');
				}
			}
		} catch (e) {
			$(this).find(".subLayer").css('margin-left', marginLeft + 'px');
		}
		$(this).find(".subLayer").stop().fadeTo('fast', 1, function () { //Fade to 0 opactiy
			$(this).show(); //after fading, hide it
			a.addClass('Actv');
/*
			$("#overlay").fadeTo('fast', 0.3, function() { //Fade to 0 opactiy
				zIndexSubNavig = parseInt($("div.SubNavig").css('zIndex'));
				$("div.TopNavig").css('zIndex', zIndexSubNavig-30);
				
			});
			*/
		});

	}

	/*
	 * Mainnavigation
	 * On Hover Out
	 */

	function megaHoverOutTopSubnavi(e) {
		var target = $(e.target);
		var a = $(this).children("a");
		$(this).find(".subLayer").stop().fadeTo('fast', 0, function () { //Fade to 0 opactiy
			$(this).hide(); //after fading, hide it
			a.removeClass('Actv');
		});
	}

	/*
	 * Dokumenthöhe berechnen
	 */

	function getDocumentHeight() {
		if ($.browser.msie) {
			var $temp = $("<div>").css("position", "absolute").css("left", "-10000px").append($("body").html());
			$("body").append($temp);
			var h = $temp.height();
			$temp.remove();
			return h;
		}
		return $("body").height();
	}

	//Set custom configurations
	var configTopnavi = {
		sensitivity: 3.5,
		// number = sensitivity threshold (must be 1 or higher)
		interval: 50,
		// number = milliseconds for onMouseOver polling interval
		over: megaHoverOverTopnavi,
		// function = onMouseOver callback (REQUIRED)
		timeout: 60,
		// number = milliseconds delay before onMouseOut
		out: megaHoverOutTopnavi // function = onMouseOut callback (REQUIRED)
	};
	var configTopSubnavi = {
		sensitivity: 3.5,
		// number = sensitivity threshold (must be 1 or higher)
		interval: 30,
		// number = milliseconds for onMouseOver polling interval
		over: megaHoverOverTopSubnavi,
		// function = onMouseOver callback (REQUIRED)
		timeout: 40,
		// number = milliseconds delay before onMouseOut
		out: megaHoverOutTopSubnavi // function = onMouseOut callback (REQUIRED)
	};

	$("div#topnav li .subLayer").css({
		'opacity': '0'
	}); //Fade sub nav to 0 opacity on default
	$("div#topnav li:gt(0)").hoverIntent(configTopnavi); //Trigger Hover intent with custom configurations
	$("div#subnav li .subLayer").css({
		'opacity': '0'
	}); //Fade sub nav to 0 opacity on default
	$("div#subnav li").hoverIntent(configTopSubnavi); //Trigger Hover intent with custom configurations
	/* --- bindings for SearchThemen  --- */

	// bindings for SearchThemen  ------------------------------------
	$(".SearchThemen>p>a").click(function () {
		if ($(this).attr('class') == 'OpenedLink') {
			$(this).attr('class', 'ClosedLink');
		} else {
			$(this).attr('class', 'OpenedLink');
		}
		$(this).parent().next('div').toggle('fast');
	});


	// bindings for toggeling BVDOKU Gestaltungsraster ------------------------------------
	$("div.BvDoku>div.SearchThemen>p>a").unbind('click');
	$("div.BvDoku>div.SearchThemen>p>a").bind('click', function (event, showAni) {
		$('.toggleDiv').hide('fast');
		$('.toggleLink').removeClass('ClosedLink');
		$('.toggleLink').addClass('OpenedLink');
		var classOpenedLink = $(this).hasClass('OpenedLink');
		if (classOpenedLink) {
			if (showAni != false) {
				$(this).parent().next('div').slideDown('fast');
			} else {
				$(this).parent().next('div').show();
			}
			$(this).removeClass('OpenedLink');
			$(this).addClass('ClosedLink');
		}
	});


	$("#raster").css('cursor', 'pointer');
	$("#raster").bind('click', function (event, showAni) {
		if (!$(this).hasClass('close')) {
			if (showAni != false) {
				$('.toggleDiv').show('fast');
			} else {
				$('.toggleDiv').show();
			}
			$('.toggleLink').removeClass('OpenedLink');
			$('.toggleLink').addClass('ClosedLink');
			$(this).text('Gestaltungsraster zuklappen');
			$(this).addClass('close');
		} else {
			$('.toggleDiv').hide('fast');
			$('.toggleLink').removeClass('ClosedLink');
			$('.toggleLink').addClass('OpenedLink');
			$(this).text('Ganzes Gestaltungsraster ansehen');
			$(this).removeClass('close');
		}
	});

	// open bvdoku akkordeon register in IE (history.back fix)
	var hash = window.location.hash;
	if (hash.indexOf('#bvdoku') === 0) {
		$('a[href="' + hash + '"]').trigger('click', false);
	}


	// bindings for Akkordeon ------------------------------------
	$(".Akkordeon>p>a").click(function () {
		if ($(this).attr('class') == 'OpenedLink') {
			$(this).attr('class', 'ClosedLink');
		} else {
			$(this).attr('class', 'OpenedLink');
		}
		$(this).parent().next('div').toggle('fast');
	});

	// bindings for WSI Berufe/Branchen Filter ------------------------------------
	// own 'contains' selector with case insensitive
	jQuery.expr[":"].containsNoCase = function (el, i, m) {
		var search = m[3];
		if (!search) return false;
		return eval("/" + search + "/i").test($(el).text());
	};

	var delay = (function () {
		var timer = 0;
		return function (callback, ms) {
			clearTimeout(timer);
			timer = setTimeout(callback, ms);
		};
	})();

	$("input[name='searchterm']").keyup(function () {
		that = this;
		delay(function () {
			query = $(that).val();
			$("#BlockContainerImpuls div.BlockModule div.BlockmoduleStandard li.detection").hide();
			$("#BlockContainerImpuls div.BlockModule:has(h2.ABC)").each(function () {
				var anyVisible = false;
				if (query != "") {
					$(this).show();
					$(this).find("div.BlockmoduleStandard li.detection>a:containsNoCase(" + query + ")").each(function () {
						$(this).parents('li.detection').show();
						anyVisible = true;
					});
					if (!anyVisible) {
						$(this).hide();
					}
				} else {
					$(this).show();
					$(this).find("div.BlockmoduleStandard li.detection").show();
				}
			});
		}, 400);
	});

	$("input[name='resetFilter']").click(function () {
		$("input[name='searchterm']").val('');
		$("input[name='searchterm']").trigger('keyup');
	});

	// bindings for fancybox print view of berufe/branchen -------------------------------
	$("div.DetailGlossar a.print").fancybox({
		'type': 'iframe',
		'transitionIn': 'elastic',
		'transitionOut': 'elastic',
		'width': 950,
		'height': 500,
		'speedIn': 600,
		'speedOut': 200,
		'overlayShow': true
	});


	// bindings for fancybox zeitleiste  -------------------------------
	$('a[href*="zeitleiste"]').fancybox({
		'type': 'iframe',
		'transitionIn': 'elastic',
		'transitionOut': 'elastic',
		'width': 980,
		'height': 730,
		'speedIn': 600,
		'speedOut': 200,
		'overlayShow': true
	});


	// bindings for fancybox flash map (minijob, etc)  -------------------------------	
	$("a[title='Karte']").fancybox({
		'type': 'iframe',
		'transitionIn': 'elastic',
		'transitionOut': 'elastic',
		'width': 670,
		'height': 650,
		'speedIn': 600,
		'speedOut': 200,
		'overlayShow': true,
		'titleShow': false

	});

	// -------------------------------------------------------------------------------------
	// Make checkboxes act as radiobuttons ------------------------------------
	// checkboxes can be grouped by using a surrounding element like div, p, span, e.g.:
	// <p class="jq_checkBoxGroupAsRadio">
	//   <input type="checkbox" value="1" name="cb1" />
	//   <input type="checkbox" value="2" name="cb2" />
	// </p>
	$(".jq_checkBoxGroupAsRadio").each(function () {
		var $group = $(this);
		var $checkboxes = $("input[type='checkbox']", $group);
		$checkboxes.click(function () {
			var $activeCheckbox = $(this);
			var state = $activeCheckbox.attr('checked');
			$checkboxes.attr('checked', false);
			$activeCheckbox.attr('checked', state);
		});
	});
	// -------------------------------------------------------------------------------------
	// Initialize zoomple (image maginifer) ------------------------------------
	$('.zoomple').zoomple({
		source: 'rel',
		attachWindowToMouse: 'true',
		loaderURL: '/cps/rde/xbcr/hbs/zoomple_loader.gif',
		blankURL: '/cps/rde/xbcr/hbs/zoomple_blank.gif',
		zoomWidth: 450,
		zoomHeight: 300
	});


	//bindings for form reset button
	$('.hbsForm input[name="reset"]').click(function () {
		$('.hbsForm').clearForm();
		$('.hbsForm label').css('color', '');
		$('.hbsForm input:text').css('border-color', '');
		return false;
	});


	// plugin for clearing forms ------------------------------------------------------
	$.fn.clearForm = function () {
		return this.each(function () {
			var type = this.type,
				tag = this.tagName.toLowerCase();
			if (tag == 'form') return $(':input', this).clearForm();
			if (type == 'text' || type == 'password' || tag == 'textarea') this.value = '';
			else if (type == 'checkbox' || type == 'radio') this.checked = false;
			else if (tag == 'select') this.selectedIndex = -1;
		});
	};

	// bindings for Themenseiten
	$('a.topicAllImpuls').click(function () {
		window.location.href = $("div.DetailNavig a:contains('Impuls')").attr('href');
	});

	$('#dummyPreloadmessage').hide();
	$('#Container').show();


});
// document.ready
/*
 * Ein/Ausblenden der Glossarblöcke
 */

function toogleGlossarContent(targetID) {
	var lists = jQuery(".BlockGlossar");
	var y = document.documentElement.scrollTop;
	lists.each(function () {
		var listitems = jQuery(this).children('ul.ListGlossar');
		listitems.each(function () {
			var textblock = jQuery(this).next('div');
			if ((textblock.css('display') == "block" || textblock.css('display') == "inline-block") && targetID != "#" + textblock.attr('id')) {
				textblock.hide();
			}
		});
	});
	jQuery(targetID).toggle();
	if (jQuery.browser.msie) {
		jQuery(".ListGlossar").parents('.BlockGlossar').toggle();
		jQuery(".ListGlossar").parents('.BlockGlossar').toggle();
		window.scrollTo(0, y);
	}

	jQuery('html,body').animate({
		scrollTop: jQuery(targetID).offset().top
	}, 'slow');

}
