
(function ($) {
var openModalCount = 0;
function getScrollbarWidth() {
return window.innerWidth - document.documentElement.clientWidth;
}
function onShow(e) {
e.stopImmediatePropagation();
openModalCount++;
$(this).removeAttr('aria-hidden').attr('aria-modal', true);
}
function onHide(e) {
e.stopImmediatePropagation();
openModalCount--;
$(this).removeAttr('aria-modal').attr('aria-hidden', true);
}
function onShown(e) {
e.stopImmediatePropagation();
var body = $('body');
var scrollbarWidth = getScrollbarWidth();
var padding = parseInt(body.css('paddingRight'));
if (scrollbarWidth !== 0 && padding === 0) {
body.css('paddingRight', scrollbarWidth + 'px');
body.addClass('modal-open');
}
var firstInput = $(this).find('.form-group:first').find('input:first');
if (firstInput.length === 1) {
firstInput.focus();
} else {
var lastButton = $(this).find('a:last');
lastButton.focus();
}
}
function onHidden(e) {
e.stopImmediatePropagation();
if (openModalCount === 0) {
$('body').prop('style', null);
}
}
$.fn.initModal = function (configs) {
$(this).modal(configs)
.on('show.bs.modal', onShow)
.on('shown.bs.modal', onShown)
.on('hide.bs.modal', onHide)
.on('hidden.bs.modal', onHidden);
};
}(jQuery));
(function (window, $) {

$.fn.disableOnClick = function (submitForm) {
var $el = $(this);
if ($el.hasClass('btn')) {
$el.on('click', function () {
disable(submitForm, $el.get(0));
});
}
var $buttons = $el.find('a.btn, input.btn, button.btn');
$buttons.on('click', function (current) {
disable(submitForm, this, $buttons);
});
};
function disable(submitForm, clicked, all) {
if (!all) {
all = clicked;
}
if (['a', 'button'].indexOf(clicked.tagName.toLowerCase()) != -1 && $(clicked).attr('disabled') != 'disabled') {
$(clicked).html('<i class="fa fa-spinner fa-pulse"></i> ' + $(clicked).html());
}
$(all).each(function () {
$(this).attr('disabled', 'disabled');
});
if (submitForm && $(clicked).attr('type') === 'submit') {
$(clicked).closest("form")[0].submit();
}
}
}(window, jQuery));(function (window, $) {

$.fn.createFullScreenButton = function (config) {
var component,
header,
icon,
label,
button,
defaultConfig,
closeButton;
function createCloseButton() {
var button = $('<button class="fullscreen-close-button"></button>');
button.append($('<i class="fa fa-times" aria-hidden="true"></i>'));
button.prop('title', defaultConfig.close);
return button;
}
function open() {
icon.removeClass(defaultConfig.expandIconClass);
icon.addClass(defaultConfig.compressIconClass);
label.text(defaultConfig.compress);
button.prop('title', defaultConfig.compress);
header = $('<div class="fullscreen-header"></div>');
component.before(header);
component.parents('.fullscreen-wrapper').addClass('fullscreen');
component.wrap('<div class="fullscreen-body"><div class="fullscreen-body-inner-wrapper"><div class="scrollDIV"></div></div></div>');
component.parents('.scrollDIV').slimScroll({height: $(window).height() - 100});
closeButton = createCloseButton();
header.prepend(closeButton);
closeButton.click(close);
closeButton.focus();
defaultConfig.expanded = true;
}
function close() {
icon.removeClass(defaultConfig.compressIconClass);
icon.addClass(defaultConfig.expandIconClass);
label.text(defaultConfig.expand);
button.prop('title', defaultConfig.expand);
var wrapper = component.parents('.fullscreen-wrapper');
wrapper.removeClass('fullscreen');
wrapper.prepend(component);
wrapper.find('.fullscreen-body').remove();
header.remove();
defaultConfig.expanded = false;
}
component = $(this);
defaultConfig = {
expand: 'Ansicht vergr��ern',
compress: 'Ansicht verkleinern',
close: 'Ansicht schlie�en',
expandIconClass: 'fa fa-expand',
compressIconClass: 'fa fa-compress',
expanded: false,
showLabels: false
};
$.extend(defaultConfig, config);
button = $('<button type="button" class="icon"></button>');
button.prop('title', defaultConfig.expand).addClass("hidden-xs");
icon = $('<i></i>').addClass(defaultConfig.expandIconClass);
label = $('<span></span>').text(defaultConfig.expand);
if (defaultConfig.showLabels) {
button.prepend(label);
}
button.prepend(icon);
var parents = component.parents('.fullscreen-wrapper');
if (parents.length === 0) {
component.wrap('<div class="fullscreen-wrapper"></div>');
}
if (component.is('table.table')) {
var toolbar = window.getTableToolbar(component);
toolbar.find("button").remove();
toolbar.append(button);
}
button.click(function () {
if (defaultConfig.expanded) {
close();
} else {
open();
}
});
}
}(window, jQuery));
(function (window, $) {

function initColumn(column) {
if (column.visible) {
column.toggleIcon.removeClass('fa-toggle-off');
column.toggleIcon.addClass('fa-toggle-on');
column.toggleButton.attr('aria-pressed', 'true');
column.header.removeClass('column-hidden');
column.cells.removeClass('column-hidden');
} else {
column.toggleIcon.removeClass('fa-toggle-on');
column.toggleIcon.addClass('fa-toggle-off');
column.toggleButton.attr('aria-pressed', 'false');
column.header.addClass('column-hidden');
column.cells.addClass('column-hidden');
}
}

$.fn.createToggleColumnsPopup = function (config) {
var table = $(this);
var defaultConfig = {
toggleLabel: 'Spalten ein-/ausblenden',
tableName: 'ev-table',
toggleOffLabel: 'Spalten ausblenden',
toggleOnLabel: 'Spalten einblenden'
};
$.extend(defaultConfig, config);
var container = $("<div class='config-container'></div>");
var toggle = $("<button type='button' class='icon config-popup-toggle' title='" +
defaultConfig.toggleLabel + "'><i class='fa fa-sliders' aria-hidden='true'></i>" +
defaultConfig.toggleLabel + "</button>");
var popup = $("<div class='config-popup'></div>");
var columnList = $("<ul></ul>");
popup.prepend(columnList);
container.prepend(popup);
container.prepend(toggle);
var headers = table.find('thead th');
var toolbar = getTableToolbar(table);
toolbar.find('.config-container').remove();
toolbar.append(container);

var windowClickHandler = function (e) {
var target = $(e.target);
if (!target.is('.config-popup-toggle') && target.parents('.config-popup').length === 0) {
container.removeClass('open');
}
};
var togglePopup = function () {
if (container.hasClass('open')) {
container.removeClass('open');
$(window).unbind('click', windowClickHandler);
} else {
container.addClass('open');
$(window).bind('click', windowClickHandler);
}
};
toggle.click(togglePopup);
var columnConfigs = localStorage.getObject(defaultConfig.tableName) || {};
headers.each(function (i) {
if ($(this).text().trim() === '') {
return;
}
var column = {};
column.id = i;
column.header = $(this);
if (column.header.find(".ev-tooltip").length === 0) {
column.title = column.header.text();
} else {
column.title = column.header.find('span').first().children().not('.ev-tooltip').text();
}
column.toggle = $('<li></li>');
column.toggleButton = $('<button title="' + defaultConfig.toggleOffLabel + '"></button>');
column.toggleTitle = $('<span> ' + column.title + '</span>');
column.toggleIcon = $('<i class="fa fa-toggle-on" aria-hidden="true"></i>');
column.toggleButton.append(column.toggleTitle);
column.toggleButton.append(column.toggleIcon);
column.toggle.append(column.toggleButton);
column.visible = true;
column.cells = table.find('tbody tr').find('td:eq(' + i + ')');
if (columnConfigs && columnConfigs[column.id]) {
column.visible = columnConfigs[column.id].visible;
} else {
var columnHidePropertyValue = column.header.find('span').attr('data-hide-column') === 'true';
column.visible = !columnHidePropertyValue;
}
initColumn(column);
if (column.visible) {
column.toggleButton.attr('title', defaultConfig.toggleOffLabel);
} else {
column.toggleButton.attr('title', defaultConfig.toggleOnLabel);
}
column.toggle.click(function () {
column.visible = !column.visible;
if (!columnConfigs[column.id]) {
columnConfigs[column.id] = {};
}
columnConfigs[column.id].visible = column.visible;
localStorage.setObject(defaultConfig.tableName, columnConfigs);
initColumn(column);
if (column.visible) {
column.toggleButton.attr('title', defaultConfig.toggleOffLabel);
} else {
column.toggleButton.attr('title', defaultConfig.toggleOnLabel);
}
});
columnList.append(column.toggle);
});
};

$.fn.addTooltip = function (title, description) {
var tooltip = {};
tooltip.wrapper = $('<div class="ev-tooltip-wrapper"></div>');
tooltip.main = $('<span class="ev-tooltip ev-tooltip-bottom"></span>');
tooltip.toggle = $('<span data-toggle="popover" class="ev-tooltip-toggle" tabindex="0" aria-label="' + title + '" aria-describedby="deadlineTooltip" data-placement="bottom"data-container="body">');
tooltip.icon = $('<span class="ev-tooltip-icon glyphicon glyphicon-info-sign" aria-hidden="true"></span>');
tooltip.contentContainer = $('<span class="ev-tooltip-content ev-tooltip-content"></span>');
tooltip.content = ('<span id="deadlineTooltip" class="ev-tooltip-body" role="tooltip">' + description + '</span>');
tooltip.toggle.append(tooltip.icon);
tooltip.contentContainer.append(tooltip.content);
tooltip.main.append(tooltip.toggle);
tooltip.main.append(tooltip.contentContainer);
tooltip.wrapper.append(tooltip.main);
this.append(tooltip.wrapper);
};
}(window, jQuery));
$(document).ready(function () {

$("#printButton").click(function () {
window.print();
return false;
});

$('.accordion').on('hide.bs.collapse', function () {
$(this).find('.panel-default').addClass('closed-panel');
}).on('show.bs.collapse', function () {
$(this).find('.panel-default').removeClass('closed-panel');
});

$(".back-top").hide();
$(function () {
$(window).scroll(function () {
if ($(this).scrollTop() > 100) {
$('.back-top').fadeIn();
} else {
$('.back-top').fadeOut();
}
});
$('.back-top a').click(function () {
$('body,html').animate({
scrollTop: 0
}, 800);
return false;
});
});

initDropdownMenuControl();
setupTooltipBehavior();
initMobileLayout();
});
function addPlaceholderIfEmpty(selector) {
$(selector).each(function () {
if (!$(this).text()) {
$(this).text("-");
}
});
}
function initScrollableContainer(selector, height) {
$(selector).slimScroll({
height: height
});
}
function initScrollableDropdown(selector) {
var $dropdown = $(selector);

$dropdown.on('show.bs.dropdown', function () {
$(this).find('.dropdown-menu').addClass('in');
}).on('hide.bs.dropdown', function () {
$(this).find('.dropdown-menu').removeClass('in');
});
}

function initDatepicker(selector) {
$(selector).datepicker({
language: "de",
calendarWeeks: true
});
}

function initMobileLayout() {
if ($(window).width() <= 768) {

$(".autoheight").removeClass("autoheight").addClass("autoheight-removed");
} else {

$(".autoheight-removed").removeClass("autoheight-removed").addClass("autoheight");
}
if (isTouchDevice()) {
$(".nav li:has(ul)").doubleTapToGo();
} else {
$(".nav li:has(ul)").doubleTapToGo("unbind");
}
}
function isTouchDevice() {
return ("ontouchstart" in window || window.DocumentTouch && document instanceof DocumentTouch);
}

function getTableToolbar(table) {
var toolbar = table.parents('.table-responsive').prev('.toolbar');
if (toolbar.length === 0) {
var createdToolbar = $("<div class='toolbar hidden-print'></div>");
createdToolbar.insertBefore(table.parents('.table-responsive'));
toolbar = table.parents('.table-responsive').prev('.toolbar');
}
return toolbar;
}

function initDropdownMenuControl() {
$('.dropdown').hover(
function () {
$(this).addClass('expanded');
}, function () {
$(this).removeClass('expanded');
}
).focusin(function () {
$(this).addClass('expanded');
}).focusout(function () {
$(this).removeClass('expanded');
});
$(document).keydown(function (event) {
if (event.which === 27) {
$('.dropdown').removeClass('expanded');
}
});
}
function escapableBootstrapTooltip(element){
element.tooltip();
$(document).on('keydown', function(event){
if (event.key === 'Escape'){
element.tooltip("hide");
}
});
}
window.escapableBootstrapTooltip = escapableBootstrapTooltip;
function setupTooltipBehavior() {
$('.ev-tooltip').on({
mouseenter: function () {
$(this).addClass('hover-active');
},
mouseleave: function () {
$(this).removeClass('hover-active');
},
focusin: function () {
$(this).addClass('focus-active');
},
focusout: function () {
$(this).removeClass('focus-active');
},
click: function () {
$('.ev-tooltip').not(this).removeClass('click-active hover-active focus-active');
$(this).toggleClass('click-active');
}
});
$(document).keydown(function (event) {
if (event.key === 'Escape') {
$('.ev-tooltip').removeClass('click-active hover-active focus-active');
}
});
$(document).click(function (event) {
if (!$(event.target).hasClass('ev-tooltip-icon')) {
$('.ev-tooltip').removeClass('click-active hover-active focus-active');
}
});
}
(function (window, $) {
var evergabe = window.evergabe || {};
var VERTICAL_PLACEMENTS = ['top', 'bottom'];
function hasVerticalPlacement(step) {
return VERTICAL_PLACEMENTS.indexOf(step.placement) !== -1;
}
function extendTourWithDefaults(tour) {
tour.showPrevButton = true;
tour.bubbleWidth = 380;
tour.onEnd = setAsShown;
tour.onClose = setAsShown;
tour.onShow = focusNextButton;
tour.steps.forEach(function (step) {
step.arrowOffset = 'center';
configPopupPlacementOffset(step);
});
function setAsShown() {
var state = {
tourId: tour.id,
shown: true
};
localStorage.setObject(tour.id, state);
$('.installLink').focus();
}
function focusNextButton() {
setTimeout(function () {
$('.hopscotch-next').focus();
}, 1000);
}
}
function configPopupPlacementOffset(step) {
if (hasVerticalPlacement(step)) {
step.xOffset = 'center';
} else {
step.yOffset = 'center';
}
}
function alreadyShown(tour) {
var state = localStorage.getObject(tour.id);
return state && state.shown;
}
function appendStartButton(tour) {
var startButton = createStartButton(tour);
startButton.insertBefore('#printButton');
startButton.on('click', function () {
hopscotch.startTour(tour);
});
}
function createStartButton(tour) {
var button = $('<a href="#"><span class="glyphicon glyphicon-question-sign" aria-hidden="true"></span></a>');
button.prop('title', tour.i18n.startTourBtn);
return button;
}

evergabe.startTour = function (tour) {
extendTourWithDefaults(tour);
appendStartButton(tour);
if (!alreadyShown(tour)) {
hopscotch.startTour(tour);
}
};
}(window, jQuery));(function () {

Storage.prototype.setObject = function (key, obj) {
return this.setItem(key, JSON.stringify(obj))
};
Storage.prototype.getObject = function (key) {
return JSON.parse(this.getItem(key))
};
}());
(function ($) {
'use strict';
var carousel = $('.carousel');
var controls = $('.carousel-controls');
var pauseButton = controls.children('#pause-button').first();
var pauseButtonFaElement = pauseButton.children('i').first();

 pauseButton.click(function () {

 if (pauseButtonFaElement.hasClass('fa-pause')) {
carousel.carousel('pause');
pauseButton.attr("aria-label", pauseButton.data("label-play"));
} else {
carousel.carousel('cycle');
pauseButton.attr("aria-label", pauseButton.data("label-pause"));
}

 pauseButtonFaElement.toggleClass('fa-pause');
pauseButtonFaElement.toggleClass('fa-play');
});

 controls.children('[data-slide]').each(function () {
$(this).click(function () {

 carousel.carousel($(this).data('slide'));

 pauseButtonFaElement.removeClass('fa-pause');
pauseButtonFaElement.addClass('fa-play');

 carousel.carousel('pause');
});
});

 carousel.on('slide.bs.carousel', function (event) {

 var slideNumber = event.relatedTarget.getAttribute('data-slide-number');

 controls.children('[data-slide]').each(function () {

 $(this).toggleClass('active', $(this).attr('data-slide') === slideNumber);
});
});

 controls.children('#close-button').first().click(function () {
carousel.hide('slow');
});

 controls.children('#close-button').first().keydown(function (e) {
if (e.keyCode === 32) {
$(this).click();
return false;
}
});
}(jQuery));
