
$(function() {
	menuHelper();
	scrollToFixed();
	accordeonReset();
	backToTop();
	anchorScroll();
	$('#responsiveToggle').click(function(){
		menuToggler();
	});
	toggleLogin();
	toggleSearch();
	smoothScroll();
	toggleMenu();
	toggleSub();
	adhocMsg();
})

function smoothScroll(){
	$('a').on('click',function(e) {
		let href = $(this).attr('href');
		if(href && href.match(/#\w+/))
		{
			e.preventDefault();
			let target = this.hash;

			if($(target).length === 0) {
				window.location.href = href
			} else {
				if(
					$(target + ' > .tx-bsd-popup').length === 0
					&& !target.match(/^#kind-/)
				)
				{
					let $target = $(target).offset().top - 125;
					$('html, body').animate({
						scrollTop: $target
					}, 1000);
				}
			}
		}
	});
}

function toggleMenu(){
	$('.responsiveToggle').click(function() {
		$(this).parent('nav').toggleClass('expand');
	});
}

function toggleSub(){
	$('.subToggle').click(function() {
		$(this).toggleClass('expand');
		$(this).next('.level2Wrap').toggleClass('expand');
		$(this).next('ul').toggleClass('expand');
		$(this).next('nav').toggleClass('expand');
	});
}

function toggleLogin(){
	$('.login > i').click(function() {
		$('.login .tx-bsd-login').toggleClass('expand');
	});
}

function toggleSearch(){
	$('.search-toggle').click(function() {
		$('.search-inline').toggleClass('show');
	});
}


function menuHelper(){
	$('.menuHelper').each(function(index, element) {
		$(element).click(function(){
			var levelID = $(element).data('level');
			if($(element).hasClass('closed'))
			{
				$(element).removeClass('closed');
				$(element).addClass('opened');
				if(levelID > 1)
				{
					$(element).parent('li').find('ul.level' + levelID).addClass('visible');
				}
				else
				{
					$(element).parent('span').find('ul.level' + levelID).parent('.expandBox').addClass('visible');
				}
			}
			else if($(element).hasClass('opened'))
			{
				$(element).removeClass('opened');
				$(element).addClass('closed');
				//$(element).parent('li').find('ul.level' + levelID).css({'display':'none'});
				if(levelID > 1)
				{
					$(element).parent('li').find('ul.level' + levelID).removeClass('visible');
				}
				else
				{
					$(element).parent('span').find('ul.level' + levelID).parent('.expandBox').removeClass('visible');
				}
			}
		});
	});
}

// Back to Top Button

function backToTop() {
	// Der Button wird ausgeblendet
	$(".backToTop").hide();

	// Funktion für das Scroll-Verhalten
	$(function () {
		$(window).scroll(function () {
			if ($(this).scrollTop() > 200) { // Wenn 100 Pixel gescrolled wurde
				$('.backToTop').fadeIn();
			} else {
				$('.backToTop').fadeOut();
			}
		});

		$('.backToTop').click(function () { // Klick auf den Button
			$('body,html').animate({
				scrollTop: 0
			}, 600);
			return false;
		});
	});
};


function scrollToFixed(){
	$(window).bind('scroll', function() {
		var navHeight = $('.topHeaderArea').height();
		if ($(window).scrollTop() > navHeight) {
			$('.headerWrap').addClass('fixed');
		}
		else {
			$('.headerWrap').removeClass('fixed');
		}
	});
}

/* Accordeon functionality*/
//this resetes the accordeon on Site load
function accordeonReset() {
	if (!$('div.accordeonHeader').hasClass('closed')) {
		$('div.accordeonHeader').addClass('closed');
	} else {
		return false;
	}
	if (!$('div.accordeonBodyWrap').hasClass('closed')) {
		$('div.accordeonBodyWrap').addClass('closed');
	} else {
		return false;
	}
}

// This sets and unsets the class closed  and toggles the height of the Body wrap
$('div.accordeonHeader').click(function() {
	var headerHeight = $(this).height();
	var textHeight = $(this)
							.next('div.accordeonBodyWrap')
							.children('div.accordeonBodyText')
							.height();

	if (!$(this).hasClass('closed')) {
		$(this)
			.addClass('closed');
		$(this)
			.next('div.accordeonBodyWrap')
			.addClass('closed');
		$(this)
			.next('div.accordeonBodyWrap')
			.height(0);
	} else {
		$(this)
			.next('div.accordeonBodyWrap')
			.height(textHeight + headerHeight);
		$(this)
			.removeClass('closed');
		$(this)
			.next('div.accordeonBodyWrap')
			.removeClass('closed');
	}
	return false;
});

// Ancor scroll function
function anchorScroll() {

	// Angabe welcher Link mit entsprechender CSS Klasse für die Anker scroll
	// Funktion genutzt werden soll
	$('.anchorMenu a').click(function(event) {
		event.preventDefault();

		var full_url = this.href;

		var parts = full_url.split('#');
		var trgt = parts[1];

		var target_offset = $('#' + trgt).offset();
		var target_top = target_offset.top - ($('.headerWrap').height());

		var addOffset = jumpAnchorFixedOffset.length > 0 ? parseInt(jumpAnchorFixedOffset) : 0;

		if(!$('.headerWrap').hasClass('fixed'))
		{
			target_top = target_top + addOffset;
		}

		$('html, body').animate({
			scrollTop: target_top
		}, 500);

		setTimeout(function() {
			$('#' + trgt).addClass('scroll_activeTarget');
		}, 500);
		setTimeout(function() {
			$('#' + trgt).removeClass('scroll_activeTarget').addClass('scroll_visitedTarget');
		}, 5000);
		setTimeout(function() {
			$('#' + trgt).removeClass('scroll_visitedTarget');
		}, 7000);

	});
}

function adhocMsg(){
    if(adhoc === undefined || adhoc === false){
        return;
    }

    if(!Cookies.get('adhoc'))
    {
        $('#adhoc').modal('show');
    }

    $('#adhocAccept').on('click', function (){
        Cookies.set('adhoc', true);
        $('#adhoc').modal('hide');
    });

}
