PageSourceSearch

https://www.dom-wuerzburg.de/typo3temp/assets/vhs-assets-831465c1bfe4301df996bf92454c4b43.js?1790933566

js dom-wuerzburg.de collected 2026-10-02 12:05:20 UTC 255,908 bytes, 3,338 lines download raw bytes

vendor: 6,761 bytes, lines 1-6
1/*! jQuery UI - v1.12.1 - 2017-02-07
2* http://jqueryui.com
3* Includes: keycode.js, widgets/datepicker.js
4* Copyright jQuery Foundation and other contributors; Licensed MIT */
5
6(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)})(function(t){function e(t){for(var e,i;t.length&&t[0]!==document;){if(e=t.css("position"),("absolute"===e||"relative"===e||"fixed"===e)&&(i=parseInt(t.css("zIndex"),10),!isNaN(i)&&0!==i))return i;t=t.parent()}return 0}function i(){this._curInst=null,this._keyEvent=!1,this._disabledInputs=[],this._datepickerShowing=!1,this._inDialog=!1,this._mainDivId="ui-datepicker-div",this._inlineClass="ui-datepicker-inline",this._appendClass="ui-datepicker-append",this._triggerClass="ui-datepicker-trigger",this._dialogClass="ui-datepicker-dialog",this._disableClass="ui-datepicker-disabled",this._unselectableClass="ui-datepicker-unselectable",this._currentClass="ui-datepicker-current-day",this._dayOverClass="ui-datepicker-days-cell-over",this.regional=[],this.regional[""]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"mm/dd/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},this._defaults={showOn:"focus",showAnim:"fadeIn",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:!1,hideIfNoPrevNext:!1,navigationAsDateFormat:!1,gotoCurrent:!1,changeMonth:!1,changeYear:!1,yearRange:"c-10:c+10",showOtherMonths:!1,selectOtherMonths:!1,showWeek:!1,calculateWeek:this.iso8601Week,shortYearCutoff:"+10",minDate:null,maxDate:null,duration:"fast",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:!0,showButtonPanel:!1,autoSize:!1,disabled:!1},t.extend(this._defaults,this.regional[""]),this.regional.en=t.extend(!0,{},this.regional[""]),this.regional["en-US"]=t.extend(!0,{},this.regional.en),this.dpDiv=s(t("<div id='"+this._mainDivId+"' class='ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>"))}function s(e){var i="button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a";return e.on("mouseout",i,function(){t(this).removeClass("ui-state-hover"),-1!==this.className.indexOf("ui-datepicker-prev")&&t(this).removeClass("ui-datepicker-prev-hover"),-1!==this.className.indexOf("ui-datepicker-next")&&t(this).removeClass("ui-datepicker-next-hover")}).on("mouseover",i,n)}function n(){t.datepicker._isDisabledDatepicker(a.inline?a.dpDiv.parent()[0]:a.input[0])||(t(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"),t(this).addClass("ui-state-hover"),-1!==this.className.indexOf("ui-datepicker-prev")&&t(this).addClass("ui-datepicker-prev-hover"),-1!==this.className.indexOf("ui-datepicker-next")&&t(this).addClass("ui-datepicker-next-hover"))}function o(e,i){t.extend(e,i);for(var s in i)null==i[s]&&(e[s]=i[s]);return e}t.ui=t.ui||{},t.ui.version="1.12.1",t.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38},t.extend(t.ui,{datepicker:{version:"1.12.1"}});var a;t.extend(i.prototype,{markerClassName:"hasDatepicker",maxRows:4,_widgetDatepicker:function(){return this.dpDiv},setDefaults:function(t){return o(this._defaults,t||{}),this},_attachDatepicker:function(e,i){var s,n,o;s=e.nodeName.toLowerCase(),n="div"===s||"span"===s,e.id||(this.uuid+=1,e.id="dp"+this.uuid),o=this._newInst(t(e),n),o.settings=t.extend({},i||{}),"input"===s?this._connectDatepicker(e,o):n&&this._inlineDatepicker(e,o)},_newInst:function(e,i){var n=e[0].id.replace(/([^A-Za-z0-9_\-])/g,"\\\\$1");return{id:n,input:e,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:i,dpDiv:i?s(t("<div class='"+this._inlineClass+" ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>")):this.dpDiv}},_connectDatepicker:function(e,i){var s=t(e);i.append=t([]),i.trigger=t([]),s.hasClass(this.markerClassName)||(this._attachments(s,i),s.addClass(this.markerClassName).on("keydown",this._doKeyDown).on("keypress",this._doKeyPress).on("keyup",this._doKeyUp),this._autoSize(i),t.data(e,"datepicker",i),i.settings.disabled&&this._disableDatepicker(e))},_attachments:function(e,i){var s,n,o,a=this._get(i,"appendText"),r=this._get(i,"isRTL");i.append&&i.append.remove(),a&&(i.append=t("<span class='"+this._appendClass+"'>"+a+"</span>"),e[r?"before":"after"](i.append)),e.off("focus",this._showDatepicker),i.trigger&&i.trigger.remove(),s=this._get(i,"showOn"),("focus"===s||"both"===s)&&e.on("focus",this._showDatepicker),("button"===s||"both"===s)&&(n=this._get(i,"buttonText"),o=this._get(i,"buttonImage"),i.trigger=t(this._get(i,"buttonImageOnly")?t("<img/>").addClass(this._triggerClass).attr({src:o,alt:n,title:n}):t("<button type='button'></button>").addClass(this._triggerClass).html(o?t("<img/>").attr({src:o,alt:n,title:n}):n)),e[r?"before":"after"](i.trigger),i.trigger.on("click",function(){return t.datepicker._datepickerShowing&&t.datepicker._lastInput===e[0]?t.datepicker._hideDatepicker():t.datepicker._datepickerShowing&&t.datepicker._lastInput!==e[0]?(t.datepicker._hideDatepicker(),t.datepicker._showDatepicker(e[0])):t.datepicker._showDatepicker(e[0]),!1}))},_autoSize:function(t){if(this._get(t,"autoSize")&&!t.inline){var e,i,s,n,o=new Date(2009,11,20),a=this._get(t,"dateFormat");a.match(/[DM]/)&&(e=function(t){for(i=0,s=0,n=0;t.length>n;n++)t[n].length>i&&(i=t[n].length,s=n);return s},o.setMonth(e(this._get(t,a.match(/MM/)?"monthNames":"monthNamesShort"))),o.setDate(e(this._get(t,a.match(/DD/)?"dayNames":"dayNamesShort"))+20-o.getDay())),t.input.attr("size",this._formatDate(t,o).length)}},_inlineDatepicker:function(e,i){var s=t(e);s.hasClass(this.markerClassName)||(s.addClass(this.markerClassName).append(i.dpDiv),t.data(e,"datepicker",i),this._setDate(i,this._getDefaultDate(i),!0),this._updateDatepicker(i),this._updateAlternate(i),i.settings.disabled&&this._disableDatepicker(e),i.dpDiv.css("display","block"))},_dialogDatepicker:function(e,i,s,n,a){var r,l,h,c,u,d=this._dialogInst;return d||(this.uuid+=1,r="dp"+this.uuid,this._dialogInput=t("<input type='text' id='"+r+"' style='position: absolute; top: -100px; width: 0px;'/>
6"),this._dialogInput.on("keydown",this._doKeyDown),t("body").append(this._dialogInput),d=this._dialogInst=this._newInst(this._dialogInput,!1),d.settings={},t.data(this._dialogInput[0],"datepicker",d)),o(d.settings,n||{}),i=i&&i.constructor===Date?this._formatDate(d,i):i,this._dialogInput.val(i),this._pos=a?a.length?a:[a.pageX,a.pageY]:null,this._pos||(l=document.documentElement.clientWidth,h=document.documentElement.clientHeight,c=document.documentElement.scrollLeft||document.body.scrollLeft,u=document.documentElement.scrollTop||document.body.scrollTop,this._pos=[l/2-100+c,h/2-150+u]),this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px"),d.settings.onSelect=s,this._inDialog=!0,this.dpDiv.addClass(this._dialogClass),this._showDatepicker(this._dialogInput[0]),t.blockUI&&t.blockUI(this.dpDiv),t.data(this._dialogInput[0],"datepicker",d),this},_destroyDatepicker:function(e){var i,s=t(e),n=t.data(e,"datepicker");s.hasClass(this.markerClassName)&&(i=e.nodeName.toLowerCase(),t.removeData(e,"datepicker"),"input"===i?(n.append.remove(),n.trigger.remove(),s.removeClass(this.markerClassName).off("focus",this._showDatepicker).off("keydown",this._doKeyDown).off("keypress",this._doKeyPress).off("keyup",this._doKeyUp)):("div"===i||"span"===i)&&s.removeClass(this.markerClassName).empty(),a===n&&(a=null))},_enableDatepicker:function(e){var i,s,n=t(e),o=t.data(e,"datepicker");n.hasClass(this.markerClassName)&&(i=e.nodeName.toLowerCase(),"input"===i?(e.disabled=!1,o.trigger.filter("button").each(function(){this.disabled=!1}).end().filter("img").css({opacity:"1.0",cursor:""})):("div"===i||"span"===i)&&(s=n.children("."+this._inlineClass),s.children().removeClass("ui-state-disabled"),s.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",!1)),this._disabledInputs=t.map(this._disabledInputs,function(t){return t===e?null:t}))},_disableDatepicker:function(e){var i,s,n=t(e),o=t.data(e,"datepicker");n.hasClass(this.markerClassName)&&(i=e.nodeName.toLowerCase(),"input"===i?(e.disabled=!0,o.trigger.filter("button").each(function(){this.disabled=!0}).end().filter("img").css({opacity:"0.5",cursor:"default"})):("div"===i||"span"===i)&&(s=n.children("."+this._inlineClass),s.children().addClass("ui-state-disabled"),s.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",!0)),this._disabledInputs=t.map(this._disabledInputs,function(t){return t===e?null:t}),this._disabledInputs[this._disabledInputs.length]=e)},_isDisabledDatepicker:function(t){if(!t)return!1;for(var e=0;this._disabledInputs.length>e;e++)if(this._disabledInputs[e]===t)return!0;return!1},_getInst:function(e){try{return t.data(e,"datepicker")}catch(i){throw"Missing instance data for this datepicker"}},_optionDatepicker:function(e,i,s){var n,a,r,l,h=this._getInst(e);return 2===arguments.length&&"string"==typeof i?"defaults"===i?t.extend({},t.datepicker._defaults):h?"all"===i?t.extend({},h.settings):this._get(h,i):null:(n=i||{},"string"==typeof i&&(n={},n[i]=s),h&&(this._curInst===h&&this._hideDatepicker(),a=this._getDateDatepicker(e,!0),r=this._getMinMaxDate(h,"min"),l=this._getMinMaxDate(h,"max"),o(h.settings,n),null!==r&&void 0!==n.dateFormat&&void 0===n.minDate&&(h.settings.minDate=this._formatDate(h,r)),null!==l&&void 0!==n.dateFormat&&void 0===n.maxDate&&(h.settings.maxDate=this._formatDate(h,l)),"disabled"in n&&(n.disabled?this._disableDatepicker(e):this._enableDatepicker(e)),this._attachments(t(e),h),this._autoSize(h),this._setDate(h,a),this._updateAlternate(h),this._updateDatepicker(h)),void 0)},_changeDatepicker:function(t,e,i){this._optionDatepicker(t,e,i)},_refreshDatepicker:function(t){var e=this._getInst(t);e&&this._updateDatepicker(e)},_setDateDatepicker:function(t,e){var i=this._getInst(t);i&&(this._setDate(i,e),this._updateDatepicker(i),this._updateAlternate(i))},_getDateDatepicker:function(t,e){var i=this._getInst(t);return i&&!i.inline&&this._setDateFromField(i,e),i?this._getDate(i):null},_doKeyDown:function(e){var i,s,n,o=t.datepicker._getInst(e.target),a=!0,r=o.dpDiv.is(".ui-datepicker-rtl");if(o._keyEvent=!0,t.datepicker._datepickerShowing)switch(e.keyCode){case 9:t.datepicker._hideDatepicker(),a=!1;break;case 13:return n=t("td."+t.datepicker._dayOverClass+":not(."+t.datepicker._currentClass+")",o.dpDiv),n[0]&&t.datepicker._selectDay(e.target,o.selectedMonth,o.selectedYear,n[0]),i=t.datepicker._get(o,"onSelect"),i?(s=t.datepicker._formatDate(o),i.apply(o.input?o.input[0]:null,[s,o])):t.datepicker._hideDatepicker(),!1;case 27:t.datepicker._hideDatepicker();break;case 33:t.datepicker._adjustDate(e.target,e.ctrlKey?-t.datepicker._get(o,"stepBigMonths"):-t.datepicker._get(o,"stepMonths"),"M");break;case 34:t.datepicker._adjustDate(e.target,e.ctrlKey?+t.datepicker._get(o,"stepBigMonths"):+t.datepicker._get(o,"stepMonths"),"M");break;case 35:(e.ctrlKey||e.metaKey)&&t.datepicker._clearDate(e.target),a=e.ctrlKey||e.metaKey;break;case 36:(e.ctrlKey||e.metaKey)&&t.datepicker._gotoToday(e.target),a=e.ctrlKey||e.metaKey;break;case 37:(e.ctrlKey||e.metaKey)&&t.datepicker._adjustDate(e.target,r?1:-1,"D"),a=e.ctrlKey||e.metaKey,e.originalEvent.altKey&&t.datepicker._adjustDate(e.target,e.ctrlKey?-t.datepicker._get(o,"stepBigMonths"):-t.datepicker._get(o,"stepMonths"),"M");break;case 38:(e.ctrlKey||e.metaKey)&&t.datepicker._adjustDate(e.target,-7,"D"),a=e.ctrlKey||e.metaKey;break;case 39:(e.ctrlKey||e.metaKey)&&t.datepicker._adjustDate(e.target,r?-1:1,"D"),a=e.ctrlKey||e.metaKey,e.originalEvent.altKey&&t.datepicker._adjustDate(e.target,e.ctrlKey?+t.datepicker._get(o,"stepBigMonths"):+t.datepicker._get(o,"stepMonths"),"M");break;case 40:(e.ctrlKey||e.metaKey)&&t.datepicker._adjustDate(e.target,7,"D"),a=e.ctrlKey||e.metaKey;break;default:a=!1}else 36===e.keyCode&&e.ctrlKey?t.datepicker._showDatepicker(this):a=!1;a&&(e.preventDefault(),e.stopPropagation())},_doKeyPress:function(e){var i,s,n=t.datepicker._getInst(e.target);return t.datepicker._get(n,"constrainInput")?(i=t.datepicker._possibleChars(t.datepicker._get(n,"dateFormat")),s=String.fromCharCode(null==e.charCode?e.keyCode:e.charCode),e.ctrlKey||e.metaKey||" ">s||!i||i.indexOf(s)>-1):void 0},_doKeyUp:function(e){var i,s=t.datepicker._getInst(e.target);if(s.input.val()!==s.lastVal)try{i=t.datepicker.parseDate(t.datepicker._get(s,"dateFormat"),s.input?s.input.val():null,t.datepicker._getFormatConfig(s)),i&&(t.datepicker._setDateFromField(s),t.datepicker._updateAlternate(s),t.datepicker._updateDatepicker(s))}catch(n){}return!0},_showDatepicker:function(i){if(i=i.target||i,"input"!==i.nodeName.toLowerCase()&&(i=t("input",i.parentNode)[0]),!t.datepicker._isDisabledDatepicker(i)&&t.datepicker._lastInput!==i){var s,n,a,r,l,h,c;s=t.datepicker._getInst(i),t.datepicker._curInst&&t.datepicker._curInst!==s&&(t.datepicker._curInst.dpDiv.stop(!0,!0),s&&t.datepicker._datepickerShowing&&t.datepicker._hideDatepicker(t.datepicker._curInst.input[0])),n=t.datepicker._get(s,"beforeShow"),a=n?
vendor: 11,729 bytes, line 6
6n.apply(i,[i,s]):{},a!==!1&&(o(s.settings,a),s.lastVal=null,t.datepicker._lastInput=i,t.datepicker._setDateFromField(s),t.datepicker._inDialog&&(i.value=""),t.datepicker._pos||(t.datepicker._pos=t.datepicker._findPos(i),t.datepicker._pos[1]+=i.offsetHeight),r=!1,t(i).parents().each(function(){return r|="fixed"===t(this).css("position"),!r}),l={left:t.datepicker._pos[0],top:t.datepicker._pos[1]},t.datepicker._pos=null,s.dpDiv.empty(),s.dpDiv.css({position:"absolute",display:"block",top:"-1000px"}),t.datepicker._updateDatepicker(s),l=t.datepicker._checkOffset(s,l,r),s.dpDiv.css({position:t.datepicker._inDialog&&t.blockUI?"static":r?"fixed":"absolute",display:"none",left:l.left+"px",top:l.top+"px"}),s.inline||(h=t.datepicker._get(s,"showAnim"),c=t.datepicker._get(s,"duration"),s.dpDiv.css("z-index",e(t(i))+1),t.datepicker._datepickerShowing=!0,t.effects&&t.effects.effect[h]?s.dpDiv.show(h,t.datepicker._get(s,"showOptions"),c):s.dpDiv[h||"show"](h?c:null),t.datepicker._shouldFocusInput(s)&&s.input.trigger("focus"),t.datepicker._curInst=s))}},_updateDatepicker:function(e){this.maxRows=4,a=e,e.dpDiv.empty().append(this._generateHTML(e)),this._attachHandlers(e);var i,s=this._getNumberOfMonths(e),o=s[1],r=17,l=e.dpDiv.find("."+this._dayOverClass+" a");l.length>0&&n.apply(l.get(0)),e.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width(""),o>1&&e.dpDiv.addClass("ui-datepicker-multi-"+o).css("width",r*o+"em"),e.dpDiv[(1!==s[0]||1!==s[1]?"add":"remove")+"Class"]("ui-datepicker-multi"),e.dpDiv[(this._get(e,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl"),e===t.datepicker._curInst&&t.datepicker._datepickerShowing&&t.datepicker._shouldFocusInput(e)&&e.input.trigger("focus"),e.yearshtml&&(i=e.yearshtml,setTimeout(function(){i===e.yearshtml&&e.yearshtml&&e.dpDiv.find("select.ui-datepicker-year:first").replaceWith(e.yearshtml),i=e.yearshtml=null},0))},_shouldFocusInput:function(t){return t.input&&t.input.is(":visible")&&!t.input.is(":disabled")&&!t.input.is(":focus")},_checkOffset:function(e,i,s){var n=e.dpDiv.outerWidth(),o=e.dpDiv.outerHeight(),a=e.input?e.input.outerWidth():0,r=e.input?e.input.outerHeight():0,l=document.documentElement.clientWidth+(s?0:t(document).scrollLeft()),h=document.documentElement.clientHeight+(s?0:t(document).scrollTop());return i.left-=this._get(e,"isRTL")?n-a:0,i.left-=s&&i.left===e.input.offset().left?t(document).scrollLeft():0,i.top-=s&&i.top===e.input.offset().top+r?t(document).scrollTop():0,i.left-=Math.min(i.left,i.left+n>l&&l>n?Math.abs(i.left+n-l):0),i.top-=Math.min(i.top,i.top+o>h&&h>o?Math.abs(o+r):0),i},_findPos:function(e){for(var i,s=this._getInst(e),n=this._get(s,"isRTL");e&&("hidden"===e.type||1!==e.nodeType||t.expr.filters.hidden(e));)e=e[n?"previousSibling":"nextSibling"];return i=t(e).offset(),[i.left,i.top]},_hideDatepicker:function(e){var i,s,n,o,a=this._curInst;!a||e&&a!==t.data(e,"datepicker")||this._datepickerShowing&&(i=this._get(a,"showAnim"),s=this._get(a,"duration"),n=function(){t.datepicker._tidyDialog(a)},t.effects&&(t.effects.effect[i]||t.effects[i])?a.dpDiv.hide(i,t.datepicker._get(a,"showOptions"),s,n):a.dpDiv["slideDown"===i?"slideUp":"fadeIn"===i?"fadeOut":"hide"](i?s:null,n),i||n(),this._datepickerShowing=!1,o=this._get(a,"onClose"),o&&o.apply(a.input?a.input[0]:null,[a.input?a.input.val():"",a]),this._lastInput=null,this._inDialog&&(this._dialogInput.css({position:"absolute",left:"0",top:"-100px"}),t.blockUI&&(t.unblockUI(),t("body").append(this.dpDiv))),this._inDialog=!1)},_tidyDialog:function(t){t.dpDiv.removeClass(this._dialogClass).off(".ui-datepicker-calendar")},_checkExternalClick:function(e){if(t.datepicker._curInst){var i=t(e.target),s=t.datepicker._getInst(i[0]);(i[0].id!==t.datepicker._mainDivId&&0===i.parents("#"+t.datepicker._mainDivId).length&&!i.hasClass(t.datepicker.markerClassName)&&!i.closest("."+t.datepicker._triggerClass).length&&t.datepicker._datepickerShowing&&(!t.datepicker._inDialog||!t.blockUI)||i.hasClass(t.datepicker.markerClassName)&&t.datepicker._curInst!==s)&&t.datepicker._hideDatepicker()}},_adjustDate:function(e,i,s){var n=t(e),o=this._getInst(n[0]);this._isDisabledDatepicker(n[0])||(this._adjustInstDate(o,i+("M"===s?this._get(o,"showCurrentAtPos"):0),s),this._updateDatepicker(o))},_gotoToday:function(e){var i,s=t(e),n=this._getInst(s[0]);this._get(n,"gotoCurrent")&&n.currentDay?(n.selectedDay=n.currentDay,n.drawMonth=n.selectedMonth=n.currentMonth,n.drawYear=n.selectedYear=n.currentYear):(i=new Date,n.selectedDay=i.getDate(),n.drawMonth=n.selectedMonth=i.getMonth(),n.drawYear=n.selectedYear=i.getFullYear()),this._notifyChange(n),this._adjustDate(s)},_selectMonthYear:function(e,i,s){var n=t(e),o=this._getInst(n[0]);o["selected"+("M"===s?"Month":"Year")]=o["draw"+("M"===s?"Month":"Year")]=parseInt(i.options[i.selectedIndex].value,10),this._notifyChange(o),this._adjustDate(n)},_selectDay:function(e,i,s,n){var o,a=t(e);t(n).hasClass(this._unselectableClass)||this._isDisabledDatepicker(a[0])||(o=this._getInst(a[0]),o.selectedDay=o.currentDay=t("a",n).html(),o.selectedMonth=o.currentMonth=i,o.selectedYear=o.currentYear=s,this._selectDate(e,this._formatDate(o,o.currentDay,o.currentMonth,o.currentYear)))},_clearDate:function(e){var i=t(e);this._selectDate(i,"")},_selectDate:function(e,i){var s,n=t(e),o=this._getInst(n[0]);i=null!=i?i:this._formatDate(o),o.input&&o.input.val(i),this._updateAlternate(o),s=this._get(o,"onSelect"),s?s.apply(o.input?o.input[0]:null,[i,o]):o.input&&o.input.trigger("change"),o.inline?this._updateDatepicker(o):(this._hideDatepicker(),this._lastInput=o.input[0],"object"!=typeof o.input[0]&&o.input.trigger("focus"),this._lastInput=null)},_updateAlternate:function(e){var i,s,n,o=this._get(e,"altField");o&&(i=this._get(e,"altFormat")||this._get(e,"dateFormat"),s=this._getDate(e),n=this.formatDate(i,s,this._getFormatConfig(e)),t(o).val(n))},noWeekends:function(t){var e=t.getDay();return[e>0&&6>e,""]},iso8601Week:function(t){var e,i=new Date(t.getTime());return i.setDate(i.getDate()+4-(i.getDay()||7)),e=i.getTime(),i.setMonth(0),i.setDate(1),Math.floor(Math.round((e-i)/864e5)/7)+1},parseDate:function(e,i,s){if(null==e||null==i)throw"Invalid arguments";if(i="object"==typeof i?""+i:i+"",""===i)return null;var n,o,a,r,l=0,h=(s?s.shortYearCutoff:null)||this._defaults.shortYearCutoff,c="string"!=typeof h?h:(new Date).getFullYear()%100+parseInt(h,10),u=(s?s.dayNamesShort:null)||this._defaults.dayNamesShort,d=(s?s.dayNames:null)||this._defaults.dayNames,p=(s?s.monthNamesShort:null)||this._defaults.monthNamesShort,f=(s?s.monthNames:null)||this._defaults.monthNames,g=-1,m=-1,_=-1,v=-1,b=!1,y=function(t){var i=e.length>n+1&&e.charAt(n+1)===t;return i&&n++,i},w=function(t){var e=y(t),s="@"===t?14:"!"===t?20:"y"===t&&e?4:"o"===t?3:2,n="y"===t?s:1,o=RegExp("^\\d{"+n+","+s+"}"),a=i.substring(l).match(o);if(!a)throw"Missing number at position "+l;return l+=a[0].length,parseInt(a[0],10)},k=function(e,s,n){var o=-1,a=t.map(y(e)?n:s,function(t,e){return[[e,t]]}).sort(function(t,e){return-(t[1].length-e[1].length)});if(t.each(a,function(t,e){var s=e[1];return i.substr(l,s.length).toLowerCase()===s.toLowerCase()?(o=e[0],l+=s.length,!1):void 0}),-1!==o)return o+1;throw"Unknown name at position "+l},x=function(){if(i.charAt(l)!==e.charAt(n))throw"Unexpected literal at position "+l;l++};for(n=0;e.length>n;n++)if(b)"'"!==e.charAt(n)||y("'")?x():b=!1;else switch(e.charAt(n)){case"d":_=w("d");break;case"D":k("D",u,d);break;case"o":v=w("o");break;case"m":m=w("m");break;case"M":m=k("M",p,f);break;case"y":g=w("y");break;case"@":r=new Date(w("@")),g=r.getFullYear(),m=r.getMonth()+1,_=r.getDate();break;case"!":r=new Date((w("!")-this._ticksTo1970)/1e4),g=r.getFullYear(),m=r.getMonth()+1,_=r.getDate();break;case"'":y("'")?x():b=!0;break;default:x()}if(i.length>l&&(a=i.substr(l),!/^\s+/.test(a)))throw"Extra/unparsed characters found in date: "+a;if(-1===g?g=(new Date).getFullYear():100>g&&(g+=(new Date).getFullYear()-(new Date).getFullYear()%100+(c>=g?0:-100)),v>-1)for(m=1,_=v;;){if(o=this._getDaysInMonth(g,m-1),o>=_)break;m++,_-=o}if(r=this._daylightSavingAdjust(new Date(g,m-1,_)),r.getFullYear()!==g||r.getMonth()+1!==m||r.getDate()!==_)throw"Invalid date";return r},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:1e7*60*60*24*(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925)),formatDate:function(t,e,i){if(!e)return"";var s,n=(i?i.dayNamesShort:null)||this._defaults.dayNamesShort,o=(i?i.dayNames:null)||this._defaults.dayNames,a=(i?i.monthNamesShort:null)||this._defaults.monthNamesShort,r=(i?i.monthNames:null)||this._defaults.monthNames,l=function(e){var i=t.length>s+1&&t.charAt(s+1)===e;return i&&s++,i},h=function(t,e,i){var s=""+e;if(l(t))for(;i>s.length;)s="0"+s;return s},c=function(t,e,i,s){return l(t)?s[e]:i[e]},u="",d=!1;if(e)for(s=0;t.length>s;s++)if(d)"'"!==t.charAt(s)||l("'")?u+=t.charAt(s):d=!1;else switch(t.charAt(s)){case"d":u+=h("d",e.getDate(),2);break;case"D":u+=c("D",e.getDay(),n,o);break;case"o":u+=h("o",Math.round((new Date(e.getFullYear(),e.getMonth(),e.getDate()).getTime()-new Date(e.getFullYear(),0,0).getTime())/864e5),3);break;case"m":u+=h("m",e.getMonth()+1,2);break;case"M":u+=c("M",e.getMonth(),a,r);break;case"y":u+=l("y")?e.getFullYear():(10>e.getFullYear()%100?"0":"")+e.getFullYear()%100;break;case"@":u+=e.getTime();break;case"!":u+=1e4*e.getTime()+this._ticksTo1970;break;case"'":l("'")?u+="'":d=!0;break;default:u+=t.charAt(s)}return u},_possibleChars:function(t){var e,i="",s=!1,n=function(i){var s=t.length>e+1&&t.charAt(e+1)===i;return s&&e++,s};for(e=0;t.length>e;e++)if(s)"'"!==t.charAt(e)||n("'")?i+=t.charAt(e):s=!1;else switch(t.charAt(e)){case"d":case"m":case"y":case"@":i+="0123456789";break;case"D":case"M":return null;case"'":n("'")?i+="'":s=!0;break;default:i+=t.charAt(e)}return i},_get:function(t,e){return void 0!==t.settings[e]?t.settings[e]:this._defaults[e]},_setDateFromField:function(t,e){if(t.input.val()!==t.lastVal){var i=this._get(t,"dateFormat"),s=t.lastVal=t.input?t.input.val():null,n=this._getDefaultDate(t),o=n,a=this._getFormatConfig(t);try{o=this.parseDate(i,s,a)||n}catch(r){s=e?"":s}t.selectedDay=o.getDate(),t.drawMonth=t.selectedMonth=o.getMonth(),t.drawYear=t.selectedYear=o.getFullYear(),t.currentDay=s?o.getDate():0,t.currentMonth=s?o.getMonth():0,t.currentYear=s?o.getFullYear():0,this._adjustInstDate(t)}},_getDefaultDate:function(t){return this._restrictMinMax(t,this._determineDate(t,this._get(t,"defaultDate"),new Date))},_determineDate:function(e,i,s){var n=function(t){var e=new Date;return e.setDate(e.getDate()+t),e},o=function(i){try{return t.datepicker.parseDate(t.datepicker._get(e,"dateFormat"),i,t.datepicker._getFormatConfig(e))}catch(s){}for(var n=(i.toLowerCase().match(/^c/)?t.datepicker._getDate(e):null)||new Date,o=n.getFullYear(),a=n.getMonth(),r=n.getDate(),l=/([+\-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g,h=l.exec(i);h;){switch(h[2]||"d"){case"d":case"D":r+=parseInt(h[1],10);break;case"w":case"W":r+=7*parseInt(h[1],10);break;case"m":case"M":a+=parseInt(h[1],10),r=Math.min(r,t.datepicker._getDaysInMonth(o,a));break;case"y":case"Y":o+=parseInt(h[1],10),r=Math.min(r,t.datepicker._getDaysInMonth(o,a))}h=l.exec(i)}return new Date(o,a,r)},a=null==i||""===i?s:"string"==typeof i?o(i):"number"==typeof i?isNaN(i)?s:n(i):new Date(i.getTime());return a=a&&"Invalid Date"==""+a?s:a,a&&(a.setHours(0),a.setMinutes(0),a.setSeconds(0),a.setMilliseconds(0)),this._daylightSavingAdjust(a)},_daylightSavingAdjust:function(t){return t?(t.setHours(t.getHours()>12?t.getHours()+2:0),t):null}
vendor: 6,672 bytes, line 6
6,_setDate:function(t,e,i){var s=!e,n=t.selectedMonth,o=t.selectedYear,a=this._restrictMinMax(t,this._determineDate(t,e,new Date));t.selectedDay=t.currentDay=a.getDate(),t.drawMonth=t.selectedMonth=t.currentMonth=a.getMonth(),t.drawYear=t.selectedYear=t.currentYear=a.getFullYear(),n===t.selectedMonth&&o===t.selectedYear||i||this._notifyChange(t),this._adjustInstDate(t),t.input&&t.input.val(s?"":this._formatDate(t))},_getDate:function(t){var e=!t.currentYear||t.input&&""===t.input.val()?null:this._daylightSavingAdjust(new Date(t.currentYear,t.currentMonth,t.currentDay));return e},_attachHandlers:function(e){var i=this._get(e,"stepMonths"),s="#"+e.id.replace(/\\\\/g,"\\");e.dpDiv.find("[data-handler]").map(function(){var e={prev:function(){t.datepicker._adjustDate(s,-i,"M")},next:function(){t.datepicker._adjustDate(s,+i,"M")},hide:function(){t.datepicker._hideDatepicker()},today:function(){t.datepicker._gotoToday(s)},selectDay:function(){return t.datepicker._selectDay(s,+this.getAttribute("data-month"),+this.getAttribute("data-year"),this),!1},selectMonth:function(){return t.datepicker._selectMonthYear(s,this,"M"),!1},selectYear:function(){return t.datepicker._selectMonthYear(s,this,"Y"),!1}};t(this).on(this.getAttribute("data-event"),e[this.getAttribute("data-handler")])})},_generateHTML:function(t){var e,i,s,n,o,a,r,l,h,c,u,d,p,f,g,m,_,v,b,y,w,k,x,C,D,T,I,P,M,S,N,H,z,A,O,E,W,F,L,R=new Date,Y=this._daylightSavingAdjust(new Date(R.getFullYear(),R.getMonth(),R.getDate())),B=this._get(t,"isRTL"),j=this._get(t,"showButtonPanel"),q=this._get(t,"hideIfNoPrevNext"),K=this._get(t,"navigationAsDateFormat"),U=this._getNumberOfMonths(t),V=this._get(t,"showCurrentAtPos"),X=this._get(t,"stepMonths"),$=1!==U[0]||1!==U[1],G=this._daylightSavingAdjust(t.currentDay?new Date(t.currentYear,t.currentMonth,t.currentDay):new Date(9999,9,9)),J=this._getMinMaxDate(t,"min"),Q=this._getMinMaxDate(t,"max"),Z=t.drawMonth-V,te=t.drawYear;if(0>Z&&(Z+=12,te--),Q)for(e=this._daylightSavingAdjust(new Date(Q.getFullYear(),Q.getMonth()-U[0]*U[1]+1,Q.getDate())),e=J&&J>e?J:e;this._daylightSavingAdjust(new Date(te,Z,1))>e;)Z--,0>Z&&(Z=11,te--);for(t.drawMonth=Z,t.drawYear=te,i=this._get(t,"prevText"),i=K?this.formatDate(i,this._daylightSavingAdjust(new Date(te,Z-X,1)),this._getFormatConfig(t)):i,s=this._canAdjustMonth(t,-1,te,Z)?"<a class='ui-datepicker-prev ui-corner-all' data-handler='prev' data-event='click' title='"+i+"'><span class='ui-icon ui-icon-circle-triangle-"+(B?"e":"w")+"'>"+i+"</span></a>":q?"":"<a class='ui-datepicker-prev ui-corner-all ui-state-disabled' title='"+i+"'><span class='ui-icon ui-icon-circle-triangle-"+(B?"e":"w")+"'>"+i+"</span></a>",n=this._get(t,"nextText"),n=K?this.formatDate(n,this._daylightSavingAdjust(new Date(te,Z+X,1)),this._getFormatConfig(t)):n,o=this._canAdjustMonth(t,1,te,Z)?"<a class='ui-datepicker-next ui-corner-all' data-handler='next' data-event='click' title='"+n+"'><span class='ui-icon ui-icon-circle-triangle-"+(B?"w":"e")+"'>"+n+"</span></a>":q?"":"<a class='ui-datepicker-next ui-corner-all ui-state-disabled' title='"+n+"'><span class='ui-icon ui-icon-circle-triangle-"+(B?"w":"e")+"'>"+n+"</span></a>",a=this._get(t,"currentText"),r=this._get(t,"gotoCurrent")&&t.currentDay?G:Y,a=K?this.formatDate(a,r,this._getFormatConfig(t)):a,l=t.inline?"":"<button type='button' class='ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all' data-handler='hide' data-event='click'>"+this._get(t,"closeText")+"</button>",h=j?"<div class='ui-datepicker-buttonpane ui-widget-content'>"+(B?l:"")+(this._isInRange(t,r)?"<button type='button' class='ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all' data-handler='today' data-event='click'>"+a+"</button>":"")+(B?"":l)+"</div>":"",c=parseInt(this._get(t,"firstDay"),10),c=isNaN(c)?0:c,u=this._get(t,"showWeek"),d=this._get(t,"dayNames"),p=this._get(t,"dayNamesMin"),f=this._get(t,"monthNames"),g=this._get(t,"monthNamesShort"),m=this._get(t,"beforeShowDay"),_=this._get(t,"showOtherMonths"),v=this._get(t,"selectOtherMonths"),b=this._getDefaultDate(t),y="",k=0;U[0]>k;k++){for(x="",this.maxRows=4,C=0;U[1]>C;C++){if(D=this._daylightSavingAdjust(new Date(te,Z,t.selectedDay)),T=" ui-corner-all",I="",$){if(I+="<div class='ui-datepicker-group",U[1]>1)switch(C){case 0:I+=" ui-datepicker-group-first",T=" ui-corner-"+(B?"right":"left");break;case U[1]-1:I+=" ui-datepicker-group-last",T=" ui-corner-"+(B?"left":"right");break;default:I+=" ui-datepicker-group-middle",T=""}I+="'>"}for(I+="<div class='ui-datepicker-header ui-widget-header ui-helper-clearfix"+T+"'>"+(/all|left/.test(T)&&0===k?B?o:s:"")+(/all|right/.test(T)&&0===k?B?s:o:"")+this._generateMonthYearHeader(t,Z,te,J,Q,k>0||C>0,f,g)+"</div><table class='ui-datepicker-calendar'><thead>"+"<tr>",P=u?"<th class='ui-datepicker-week-col'>"+this._get(t,"weekHeader")+"</th>":"",w=0;7>w;w++)M=(w+c)%7,P+="<th scope='col'"+((w+c+6)%7>=5?" class='ui-datepicker-week-end'":"")+">"+"<span title='"+d[M]+"'>"+p[M]+"</span></th>";for(I+=P+"</tr></thead><tbody>",S=this._getDaysInMonth(te,Z),te===t.selectedYear&&Z===t.selectedMonth&&(t.selectedDay=Math.min(t.selectedDay,S)),N=(this._getFirstDayOfMonth(te,Z)-c+7)%7,H=Math.ceil((N+S)/7),z=$?this.maxRows>H?this.maxRows:H:H,this.maxRows=z,A=this._daylightSavingAdjust(new Date(te,Z,1-N)),O=0;z>O;O++){for(I+="<tr>",E=u?"<td class='ui-datepicker-week-col'>"+this._get(t,"calculateWeek")(A)+"</td>":"",w=0;7>w;w++)W=m?m.apply(t.input?t.input[0]:null,[A]):[!0,""],F=A.getMonth()!==Z,L=F&&!v||!W[0]||J&&J>A||Q&&A>Q,E+="<td class='"+((w+c+6)%7>=5?" ui-datepicker-week-end":"")+(F?" ui-datepicker-other-month":"")+(A.getTime()===D.getTime()&&Z===t.selectedMonth&&t._keyEvent||b.getTime()===A.getTime()&&b.getTime()===D.getTime()?" "+this._dayOverClass:"")+(L?" "+this._unselectableClass+" ui-state-disabled":"")+(F&&!_?"":" "+W[1]+(A.getTime()===G.getTime()?" "+this._currentClass:"")+(A.getTime()===Y.getTime()?" ui-datepicker-today":""))+"'"+(F&&!_||!W[2]?"":" title='"+W[2].replace(/'/g,"&#39;")+"'")+(L?"":" data-handler='selectDay' data-event='click' data-month='"+A.getMonth()+"' data-year='"+A.getFullYear()+"'")+">"+(F&&!_?"&#xa0;":L?"<span class='ui-state-default'>"+A.getDate()+"</span>":"<a class='ui-state-default"+(A.getTime()===Y.getTime()?" ui-state-highlight":"")+(A.getTime()===G.getTime()?" ui-state-active":"")+(F?" ui-priority-secondary":"")+"' href='#'>"+A.getDate()+"</a>")+"</td>",A.setDate(A.getDate()+1),A=this._daylightSavingAdjust(A);I+=E+"</tr>"}Z++,Z>11&&(Z=0,te++),I+="</tbody></table>"+($?"</div>"+(U[0]>0&&C===U[1]-1?"<div class='ui-datepicker-row-break'></div>":""):""),x+=I}y+=x}return y+=h,t._keyEvent=!1,y}
6,_generateMonthYearHeader:function(t,e,i,s,n,o,a,r){var l,h,c,u,d,p,f,g,m=this._get(t,"changeMonth"),_=this._get(t,"changeYear"),v=this._get(t,"showMonthAfterYear"),b="<div class='ui-datepicker-title'>",y="";
7if(o||!m)y+="<span class='ui-datepicker-month'>"+a[e]+"</span>";else{for(l=s&&s.getFullYear()===i,h=n&&n.getFullYear()===i,y+="<select class='ui-datepicker-month' data-handler='selectMonth' data-event='change'>",c=0;12>c;c++)(!l||c>=s.getMonth())&&(!h||n.getMonth()>=c)&&(y+="<option value='"+c+"'"+(c===e?" selected='selected'":"")+">"+r[c]+"</option>");y+="</select>"}if(v||(b+=y+(!o&&m&&_?"":"&#xa0;")),!t.yearshtml)if(t.yearshtml="",o||!_)b+="<span class='ui-datepicker-year'>"+i+"</span>";else{for(u=this._get(t,"yearRange").split(":"),d=(new Date).getFullYear(),p=function(t){var e=t.match(/c[+\-].*/)?i+parseInt(t.substring(1),10):t.match(/[+\-].*/)?d+parseInt(t,10):parseInt(t,10);return isNaN(e)?d:e},f=p(u[0]),g=Math.max(f,p(u[1]||"")),f=s?Math.max(f,s.getFullYear()):f,g=n?Math.min(g,n.getFullYear()):g,t.yearshtml+="<select class='ui-datepicker-year' data-handler='selectYear' data-event='change'>";g>=f;f++)t.yearshtml+="<option value='"+f+"'"+(f===i?" selected='selected'":"")+">"+f+"</option>";t.yearshtml+="</select>",b+=t.yearshtml,t.yearshtml=null}return b+=this._get(t,"yearSuffix"),v&&(b+=(!o&&m&&_?"":"&#xa0;")+y),b+="</div>"},_adjustInstDate:function(t,e,i){var s=t.selectedYear+("Y"===i?e:0),n=t.selectedMonth+("M"===i?e:0),o=Math.min(t.selectedDay,this._getDaysInMonth(s,n))+("D"===i?e:0),a=this._restrictMinMax(t,this._daylightSavingAdjust(new Date(s,n,o)));t.selectedDay=a.getDate(),t.drawMonth=t.selectedMonth=a.getMonth(),t.drawYear=t.selectedYear=a.getFullYear(),("M"===i||"Y"===i)&&this._notifyChange(t)},_restrictMinMax:function(t,e){var i=this._getMinMaxDate(t,"min"),s=this._getMinMaxDate(t,"max"),n=i&&i>e?i:e;return s&&n>s?s:n},_notifyChange:function(t){var e=this._get(t,"onChangeMonthYear");e&&e.apply(t.input?t.input[0]:null,[t.selectedYear,t.selectedMonth+1,t])},_getNumberOfMonths:function(t){var e=this._get(t,"numberOfMonths");return null==e?[1,1]:"number"==typeof e?[1,e]:e},_getMinMaxDate:function(t,e){return this._determineDate(t,this._get(t,e+"Date"),null)},_getDaysInMonth:function(t,e){return 32-this._daylightSavingAdjust(new Date(t,e,32)).getDate()},_getFirstDayOfMonth:function(t,e){return new Date(t,e,1).getDay()},_canAdjustMonth:function(t,e,i,s){var n=this._getNumberOfMonths(t),o=this._daylightSavingAdjust(new Date(i,s+(0>e?e:n[0]*n[1]),1));return 0>e&&o.setDate(this._getDaysInMonth(o.getFullYear(),o.getMonth())),this._isInRange(t,o)},_isInRange:function(t,e){var i,s,n=this._getMinMaxDate(t,"min"),o=this._getMinMaxDate(t,"max"),a=null,r=null,l=this._get(t,"yearRange");return l&&(i=l.split(":"),s=(new Date).getFullYear(),a=parseInt(i[0],10),r=parseInt(i[1],10),i[0].match(/[+\-].*/)&&(a+=s),i[1].match(/[+\-].*/)&&(r+=s)),(!n||e.getTime()>=n.getTime())&&(!o||e.getTime()<=o.getTime())&&(!a||e.getFullYear()>=a)&&(!r||r>=e.getFullYear())},_getFormatConfig:function(t){var e=this._get(t,"shortYearCutoff");return e="string"!=typeof e?e:(new Date).getFullYear()%100+parseInt(e,10),{shortYearCutoff:e,dayNamesShort:this._get(t,"dayNamesShort"),dayNames:this._get(t,"dayNames"),monthNamesShort:this._get(t,"monthNamesShort"),monthNames:this._get(t,"monthNames")}},_formatDate:function(t,e,i,s){e||(t.currentDay=t.selectedDay,t.currentMonth=t.selectedMonth,t.currentYear=t.selectedYear);var n=e?"object"==typeof e?e:this._daylightSavingAdjust(new Date(s,i,e)):this._daylightSavingAdjust(new Date(t.currentYear,t.currentMonth,t.currentDay));return this.formatDate(this._get(t,"dateFormat"),n,this._getFormatConfig(t))}}),t.fn.datepicker=function(e){if(!this.length)return this;t.datepicker.initialized||(t(document).on("mousedown",t.datepicker._checkExternalClick),t.datepicker.initialized=!0),0===t("#"+t.datepicker._mainDivId).length&&t("body").append(t.datepicker.dpDiv);var i=Array.prototype.slice.call(arguments,1);return"string"!=typeof e||"isDisabled"!==e&&"getDate"!==e&&"widget"!==e?"option"===e&&2===arguments.length&&"string"==typeof arguments[1]?t.datepicker["_"+e+"Datepicker"].apply(t.datepicker,[this[0]].concat(i)):this.each(function(){"string"==typeof e?t.datepicker["_"+e+"Datepicker"].apply(t.datepicker,[this].concat(i)):t.datepicker._attachDatepicker(this,e)}):t.datepicker["_"+e+"Datepicker"].apply(t.datepicker,[this[0]].concat(i))},t.datepicker=new i,t.datepicker.initialized=!1,t.datepicker.uuid=(new Date).getTime(),t.datepicker.version="1.12.1",t.datepicker});
8
9/*! jQuery Mobile v1.5.0-alpha.1 | Copyright jQuery Foundation, Inc. | jquery.org/license */
10
11(function(e,t,n){typeof define=="function"&&define.amd?define(["jquery"],function(r){return n(r,e,t),r.mobile}):n(e.jQuery,e,t)})(this,document,function(e,t,n,r){(function(t){typeof define=="function"&&define.amd?define("vmouse",["jquery"],t):t(e)})(function(e){function T(e){while(e&&typeof e.originalEvent!="undefined")e=e.originalEvent;return e}function N(t,n){var i=t.type,o,a,l,c,h,p,d,v,m;t=e.Event(t),t.type=n,o=t.originalEvent,a=u,i.search(/^(mouse|click)/)>-1&&(a=f);if(o)for(d=a.length;d;)c=a[--d],t[c]=o[c];i.search(/mouse(down|up)|click/)>-1&&!t.which&&(t.which=1);if(i.search(/^touch/)!==-1){l=T(o),i=l.touches,h=l.changedTouches,p=i&&i.length?i[0]:h&&h.length?h[0]:r;if(p)for(v=0,m=s.length;v<m;v++)c=s[v],t[c]=p[c]}return t}function C(n){var r={},i,s;while(n){i=e.data(n,t);for(s in i)i[s]&&(r[s]=r.hasVirtualBinding=!0);n=n.parentNode}return r}function k(n,r){var i;while(n){i=e.data(n,t);if(i&&(!r||i[r]))return n;n=n.parentNode}return null}function L(){g=!1}function A(){g=!0}function O(){E=0,v.length=0,m=!1,A()}function M(){L()}function _(){c&&(clearTimeout(c),c=0)}function D(){_(),c=setTimeout(function(){c=0,O()},e.vmouse.resetTimerDuration)}function P(t,n,r){var i;if(r&&r[t]||!r&&k(n.target,t))i=N(n,t),e(n.target).trigger(i);return i}
vendor: 7,115 bytes, lines 11-12
11function H(t){var n=e.data(t.target,i),r;t.type==="click"&&e.data(t.target,"lastTouchType")==="touchstart"&&setTimeout(function(){e.data(t.target,"lastTouchType")==="touchstart"&&(O(),delete e.data(t.target).lastTouchType,H(t))},e.vmouse.maximumTimeBetweenTouches),!m&&(!E||E!==n)&&(r=P("v"+t.type,t),r&&(r.isDefaultPrevented()&&t.preventDefault(),r.isPropagationStopped()&&t.stopPropagation(),r.isImmediatePropagationStopped()&&t.stopImmediatePropagation()))}function B(t){var n=T(t).touches,r,s,o;n&&n.length===1&&(r=t.target,s=C(r),e.data(t.target,"lastTouchType",t.type),s.hasVirtualBinding&&(E=w++,e.data(r,i,E),_(),M(),d=!1,o=T(t).touches[0],h=o.pageX,p=o.pageY,P("vmouseover",t,s),P("vmousedown",t,s)))}function j(t){if(g)return;d||P("vmousecancel",t,C(t.target)),e.data(t.target,"lastTouchType",t.type),d=!0,D()}function F(t){if(g)return;var n=T(t).touches[0],r=d,i=e.vmouse.moveDistanceThreshold,s=C(t.target);e.data(t.target,"lastTouchType",t.type),d=d||Math.abs(n.pageX-h)>i||Math.abs(n.pageY-p)>i,d&&!r&&P("vmousecancel",t,s),P("vmousemove",t,s),D()}function I(t){if(g||e.data(t.target,"lastTouchType")===r)return;A(),delete e.data(t.target).lastTouchType;var n=C(t.target),i,s;P("vmouseup",t,n),d||(i=P("vclick",t,n),i&&i.isDefaultPrevented()&&(s=T(t).changedTouches[0],v.push({touchID:E,x:s.clientX,y:s.clientY}),m=!0)),P("vmouseout",t,n),d=!1,D()}function q(n){var r=e.data(n,t),i;if(r)for(i in r)if(r[i])return!0;return!1}function R(){}function U(n){var r=n.substr(1);return{setup:function(){q(this)||e.data(this,t,{});var i=e.data(this,t);i[n]=!0,l[n]=(l[n]||0)+1,l[n]===1&&b.bind(r,H),e(this).bind(r,R),y&&(l.touchstart=(l.touchstart||0)+1,l.touchstart===1&&b.bind("touchstart",B).bind("touchend",I).bind("touchmove",F).bind("scroll",j))},teardown:function(){--l[n],l[n]||b.unbind(r,H),y&&(--l.touchstart,l.touchstart||b.unbind("touchstart",B).unbind("touchmove",F).unbind("touchend",I).unbind("scroll",j));var i=e(this),s=e.data(this,t);s&&(s[n]=!1),i.unbind(r,R),q(this)||i.removeData(t)}}}var t="virtualMouseBindings",i="virtualTouchID",s="clientX clientY pageX pageY screenX screenY".split(" "),o="vmouseover vmousedown vmousemove vmouseup vclick vmouseout vmousecancel".split(" "),u="altKey bubbles cancelable ctrlKey currentTarget detail eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),a=e.event.mouseHooks?e.event.mouseHooks.props:[],f=u.concat(a),l={},c=0,h=0,p=0,d=!1,v=[],m=!1,g=!1,y="addEventListener"in n,b=e(n),w=1,E=0,S,x;e.vmouse={moveDistanceThreshold:10,clickDistanceThreshold:10,resetTimerDuration:1500,maximumTimeBetweenTouches:100};for(x=0;x<o.length;x++)e.event.special[o[x]]=U(o[x]);y&&n.addEventListener("click",function(t){var n=v.length,r=t.target,s,o,u,a,f,l;if(n){s=t.clientX,o=t.clientY,S=e.vmouse.clickDistanceThreshold,u=r;while(u){for(a=0;a<n;a++){f=v[a],l=0;if(u===r&&Math.abs(f.x-s)<S&&Math.abs(f.y-o)<S||e.data(u,i)===f.touchID){t.preventDefault(),t.stopPropagation();return}}u=u.parentNode}}},!0)}),function(t){typeof define=="function"&&define.amd?define("ns",["jquery"],t):t(e)}(function(e){return e.mobile={version:"@VERSION"},e.mobile}),function(t){typeof define=="function"&&define.amd?define("support/touch",["jquery","../ns"],t):t(e)}(function(e){var t={touch:"ontouchend"in n};return e.mobile.support=e.mobile.support||{},e.extend(e.support,t),e.extend(e.mobile.support,t),e.support}),function(t){typeof define=="function"&&define.amd?define("events/touch",["jquery","../vmouse","../support/touch"],t):t(e)}(function(e){function f(t,n,i,s){var o=i.type;i.type=n,s?e.event.trigger(i,r,t):e.event.dispatch.call(t,i),i.type=o}var i=e(n),s=e.mobile.support.touch,o=s?"touchstart":"mousedown",u=s?"touchend":"mouseup",a=s?"touchmove":"mousemove";return e.each("touchstart touchmove touchend tap taphold swipe swipeleft swiperight".split(" "),function(t,n){e.fn[n]=function(e){return e?this.bind(n,e):this.trigger(n)},e.attrFn&&(e.attrFn[n]=!0)}),e.event.special.tap={tapholdThreshold:750,emitTapOnTaphold:!0,setup:function(){var t=this,n=e(t),r=!1;n.bind("vmousedown",function(s){function l(){u&&(n.bind("vclick",a),clearTimeout(u))}function c(){l(),n.unbind("vclick",a).unbind("vmouseup",l),i.unbind("vmousecancel",c)}r=!1;if(s.which&&s.which!==1)return!0;var o=s.target,u,a;a=function(e){c(),!r&&o===e.target?f(t,"tap",e):r&&e.preventDefault()},n.bind("vmouseup",l),i.bind("vmousecancel",c),u=setTimeout(function(){e.event.special.tap.emitTapOnTaphold||(r=!0),u=0,f(t,"taphold",e.Event("taphold",{target:o}))},e.event.special.tap.tapholdThreshold)})},teardown:function(){e(this).unbind("vmousedown").unbind("vclick").unbind("vmouseup"),i.unbind("vmousecancel")}},e.event.special.swipe={scrollSupressionThreshold:30,durationThreshold:1e3,horizontalDistanceThreshold:t.devicePixelRatio>=2?15:30,verticalDistanceThreshold:t.devicePixelRatio>=2?15:30,getLocation:function(e){var n=t.pageXOffset,r=t.pageYOffset,i=e.clientX,s=e.clientY;if(e.pageY===0&&Math.floor(s)>Math.floor(e.pageY)||e.pageX===0&&Math.floor(i)>Math.floor(e.pageX))i-=n,s-=r;else if(s<e.pageY-r||i<e.pageX-n)i=e.pageX-n,s=e.pageY-r;return{x:i,y:s}},start:function(t){var n=t.originalEvent.touches?t.originalEvent.touches[0]:t,r=e.event.special.swipe.getLocation(n);return{time:(new Date).getTime(),coords:[r.x,r.y],origin:e(t.target)}},stop:function(t){var n=t.originalEvent.touches?t.originalEvent.touches[0]:t,r=e.event.special.swipe.getLocation(n);return{time:(new Date).getTime(),coords:[r.x,r.y]}},handleSwipe:function(t,n,r,i){if(n.time-t.time<e.event.special.swipe.durationThreshold&&Math.abs(t.coords[0]-n.coords[0])>e.event.special.swipe.horizontalDistanceThreshold&&Math.abs(t.coords[1]-n.coords[1])<e.event.special.swipe.verticalDistanceThreshold){var s=t.coords[0]>n.coords[0]?"swipeleft":"swiperight";return f(r,"swipe",e.Event("swipe",{target:i,swipestart:t,swipestop:n}),!0),f(r,s,e.Event(s,{target:i,swipestart:t,swipestop:n}),!0),!0}return!1},eventInProgress:!1,setup:function(){var t,n=this,r=e(n),s={};t=e.data(this,"mobile-events"),t||(t={length:0},e.data(this,"mobile-events",t)),t.length++,t.swipe=s,s.start=function(t){if(e.event.special.swipe.eventInProgress)return;e.event.special.swipe.eventInProgress=!0;var r,o=e.event.special.swipe.start(t),f=t.target,l=!1;s.move=function(t){if(!o||t.isDefaultPrevented())return;r=e.event.special.swipe.stop(t),l||(l=e.event.special.swipe.handleSwipe(o,r,n,f),l&&(e.event.special.swipe.eventInProgress=!1)),Math.abs(o.coords[0]-r.coords[0])>e.event.special.swipe.scrollSupressionThreshold&&t.preventDefault()},s.stop=function(){l=!0,e.event.special.swipe.eventInProgress=!1,i.off(a,s.move),s.move=null},i.on(a,s.move).one(u,s.stop)},r.on(o,s.start)},teardown:function(){var t,n;t=e.data(this,"mobile-events"),t&&(n=t.swipe,delete t.swipe,t.length--,t.length===0&&e.removeData(this,"mobile-events")),n&&(n.start&&e(this).off(o,n.start),n.move&&i.off(a,n.move),n.stop&&i.off(u,n.stop))}},e.each({taphold:"tap",swipeleft:"swipe.left",swiperight:"swipe.right"},function(t,n){e.event.special[t]={setup:function(){e(this).bind(n,e.noop)},teardown:function(){e(this).unbind(n)}}}),e.event.special})});
12
vendor: 37,045 bytes, lines 13-19
13/*!
14 * Bootstrap v3.3.7 (http://getbootstrap.com)
15 * Copyright 2011-2016 Twitter, Inc.
16 * Licensed under the MIT license
17 */
18if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){"use strict";var b=a.fn.jquery.split(" ")[0].split(".");if(b[0]<2&&b[1]<9||1==b[0]&&9==b[1]&&b[2]<1||b[0]>3)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4")}(jQuery),+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one("bsTransitionEnd",function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){if(a(b.target).is(this))return b.handleObj.handler.apply(this,arguments)}})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new d(this)),"string"==typeof b&&e[b].call(c)})}var c='[data-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.VERSION="3.3.7",d.TRANSITION_DURATION=150,d.prototype.close=function(b){function c(){g.detach().trigger("closed.bs.alert").remove()}var e=a(this),f=e.attr("data-target");f||(f=e.attr("href"),f=f&&f.replace(/.*(?=#[^\s]*$)/,""));var g=a("#"===f?[]:f);b&&b.preventDefault(),g.length||(g=e.closest(".alert")),g.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(g.removeClass("in"),a.support.transition&&g.hasClass("fade")?g.one("bsTransitionEnd",c).emulateTransitionEnd(d.TRANSITION_DURATION):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c,d.prototype.close)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof b&&b;e||d.data("bs.button",e=new c(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!1};c.VERSION="3.3.7",c.DEFAULTS={loadingText:"loading..."},c.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),setTimeout(a.proxy(function(){d[e](null==f[b]?this.options[b]:f[b]),"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c).prop(c,!0)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c).prop(c,!1))},this),0)},c.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")?(c.prop("checked")&&(a=!1),b.find(".active").removeClass("active"),this.$element.addClass("active")):"checkbox"==c.prop("type")&&(c.prop("checked")!==this.$element.hasClass("active")&&(a=!1),this.$element.toggleClass("active")),c.prop("checked",this.$element.hasClass("active")),a&&c.trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active")),this.$element.toggleClass("active")};var d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return a.fn.button=d,this},a(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(c){var d=a(c.target).closest(".btn");b.call(d,"toggle"),a(c.target).is('input[type="radio"], input[type="checkbox"]')||(c.preventDefault(),d.is("input,button")?d.trigger("focus"):d.find("input:visible,button:visible").first().trigger("focus"))}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(b){a(b.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(b.type))})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b),g="string"==typeof b?b:f.slide;e||d.data("bs.carousel",e=new c(this,f)),"number"==typeof b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var c=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",a.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",a.proxy(this.pause,this)).on("mouseleave.bs.carousel",a.proxy(this.cycle,this))};c.VERSION="3.3.7",c.TRANSITION_DURATION=600,c.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},c.prototype.keydown=function(a){if(!/input|textarea/i.test(a.target.tagName)){switch(a.which){case 37:this.prev();break;case 39:this.next();break;default:return}a.preventDefault()}},c.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},c.prototype.getItemIndex=function(a){return this.$items=a.parent().children(".item"),this.$items.index(a||this.$active)},c.prototype.getItemForDirection=function(a,b){var c=this.getItemIndex(b),d="prev"==a&&0===c||"next"==a&&c==this.$items.length-1;if(d&&!this.options.wrap)return b;var e="prev"==a?-1:1,f=(c+e)%this.$items.length;return this.$items.eq(f)},c.prototype.to=function(a){var b=this,c=this.getItemIndex(this.$active=this.$element.find(".item.active"));if(!(a>this.$items.length-1||a<0))return this.sliding?this.$element.one("slid.bs.carousel",function(){b.to(a)}):c==a?this.pause().cycle():this.slide(a>c?"next":"prev",this.$items.eq(a))},c.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){if(!this.sliding)return this.slide("next")},c.prototype.prev=function(){if(!this.sliding)return this.slide("prev")},c.prototype.slide=function(b,d){var e=this.$element.find(".item.active"),f=d||this.getItemForDirection(b,e),g=this.interval,h="next"==b?"left":"right",i=this;if(f.hasClass("active"))return this.sliding=!1;var j=f[0],k=a.Event("slide.bs.carousel",{relatedTarget:j,direction:h});if(this.$element.trigger(k),!k.isDefaultPrevented()){if(this.sliding=!0,g&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var l=a(this.$indicators.children()[this.getItemIndex(f)]);l&&l.addClass("active")}var m=a.Event("slid.bs.carousel",{relatedTarget:j,direction:h});return a.support.transition&&this.$element.hasClass("slide")?(f.addClass(b),f[0].offsetWidth,e.addClass(h),f.addClass(h),e.one("bsTransitionEnd",function(){f.removeClass([b,h].join(" ")).addClass("active"),e.removeClass(["active",h].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger(m)},0)}).emulateTransitionEnd(c.TRANSITION_DURATION)):(e.removeClass("active"),f.addClass("active"),this.sliding=!1,this.$element.trigger(m)),g&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this};var e=function(c){var d,e=a(this),f=a(e.attr("data-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDefault()}};a(document).on("click.bs.carousel.data-api","[data-slide]",e).on("click.bs.carousel.data-api","[data-slide-to]",e),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function b(b){var c,d=b.attr("data-target")||(c=b.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"");return a(d)}function c(b){return this.each(function(){var c=a(this),e=c.data("bs.collapse"),f=a.extend({},d.DEFAULTS,c.data(),"object"==typeof b&&b);!e&&f.toggle&&/show|hide/.test(b)&&(f.toggle=!1),e||c.data("bs.collapse",e=new d(this,f)),"string"==typeof b&&e[b]()})}var d=function(b,c){this.$element=a(b),this.options=a.extend({},d.DEFAULTS,c),this.$trigger=a('[data-toggle="collapse"][href="#'+b.id+'"],[data-toggle="collapse"][data-target="#'+b.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};d.VERSION="3.3.7",d.TRANSITION_DURATION=350,d.DEFAULTS={toggle:!0},d.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},d.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b,e=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(e&&e.length&&(b=e.data("bs.collapse"),b&&b.transitioning))){var f=a.Event("show.bs.collapse");if(this.$element.trigger(f),!f.isDefaultPrevented()){e&&e.length&&(c.call(e,"hide"),b||e.data("bs.collapse",null));var g=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[g](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var h=function(){this.$element.removeClass("collapsing").addClass("collapse in")[g](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return h.call(this);var i=a.camelCase(["scroll",g].join("-"));this.$element.one("bsTransitionEnd",a.proxy(h,this)).emulateTransitionEnd(d.TRANSITION_DURATION)[g](this.$element[0][i])}}}},d.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var e=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return a.support.transition?void this.$element[c](0).one("bsTransitionEnd",a.proxy(e,this)).emulateTransitionEnd(d.TRANSITION_DURATION):e.call(this)}}},d.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},d.prototype.getParent=function(){return a(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(a.proxy(function(c,d){var e=a(d);this.addAriaAndCollapsedClass(b(e),e)},this)).end()},d.prototype.addAriaAndCollapsedClass=function(a,b){var c=a.hasClass("in");a.attr("aria-expanded",c),b.toggleClass("collapsed",!c).attr("aria-expanded",c)};var e=a.fn.collapse;a.fn.collapse=c,a.fn.collapse.Constructor=d,a.fn.collapse.noConflict=function(){return a.fn.collapse=e,this},a(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(d){var e=a(this);e.attr("data-target")||d.preventDefault();var f=b(e),g=f.data("bs.collapse"),h=g?"toggle":e.data();c.call(f,h)})}(jQuery),+function(a){"use strict";function b(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}function c(c){c&&3===c.which||(a(e).remove(),a(f).each(function(){var d=a(this),e=b(d),f={relatedTarget:this};e.hasClass("open")&&(c&&"click"==c.type&&/input|textarea/i.test(c.target.tagName)&&a.contains(e[0],c.target)||(e.trigger(c=a.Event("hide.bs.dropdown",f)),c.isDefaultPrevented()||(d.attr("aria-expanded","false"),e.removeClass("open").trigger(a.Event("hidden.bs.dropdown",f)))))}))}function d(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new g(this)),"string"==typeof b&&d[b].call(c)})}var e=".dropdown-backdrop",f='[data-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.VERSION="3.3.7",g.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=b(e),g=f.hasClass("open");if(c(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(a(this)).on("click",c);var h={relatedTarget:this};if(f.trigger(d=a.Event("show.bs.dropdown",h)),d.isDefaultPrevented())return;e.trigger("focus").attr("aria-expanded","true"),f.toggleClass("open").trigger(a.Event("shown.bs.dropdown",h))}return!1}},g.prototype.keydown=function(c){if(/(38|40|27|32)/.test(c.which)&&!/input|textarea/i.test(c.target.tagName)){var d=a(this);if(c.preventDefault(),c.stopPropagation(),!d.is(".disabled, :disabled")){var e=b(d),g=e.hasClass("open");if(!g&&27!=c.which||g&&27==c.which)return 27==c.which&&e.find(f).trigger("focus"),d.trigger("click");var h=" li:not(.disabled):visible a",i=e.find(".dropdown-menu"+h);if(i.length){var j=i.index(c.target);38==c.which&&j>0&&j--,40==c.which&&j<i.length-1&&j++,~j||(j=0),i.eq(j).trigger("focus")}}}};var h=a.fn.dropdown;a.fn.dropdown=d,a.fn.dropdown.Constructor=g,a.fn.dropdown.noConflict=function(){return a.fn.dropdown=h,this},a(document).on("click.bs.dropdown.data-api",c).on("click.bs.dropdown.data-api",".dropdown form",function(a){a.stopPropagation()}).on("click.bs.dropdown.data-api",f,g.prototype.toggle).on("keydown.bs.dropdown.data-api",f,g.prototype.keydown).on("keydown.bs.dropdown.data-api",".dropdown-menu",g.prototype.keydown)}(jQuery),+function(a){"use strict";function b(b,d){return this.each(function(){var e=a(this),f=e.data("bs.modal"),g=a.extend({},c.DEFAULTS,e.data(),"object"==typeof b&&b);f||e.data("bs.modal",f=new c(this,g)),"string"==typeof b?f[b](d):g.show&&f.show(d)})}var c=function(b,c){this.options=c,this.$body=a(document.body),this.$element=a(b),this.$dialog=this.$element.find(".modal-dialog"),this.$backdrop=null,this.isShown=null,this.originalBodyPad=null,this.scrollbarWidth=0,this.ignoreBackdropClick=!1,this.options.remote&&this.$element.find(".modal-content").load(this.options.remote,a.proxy(function(){this.$element.trigger("loaded.bs.modal")},this))};c.VERSION="3.3.7",c.TRANSITION_DURATION=300,c.BACKDROP_TRANSITION_DURATION=150,c.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},c.prototype.toggle=function(a){return this.isShown?this.hide():this.show(a)},c.prototype.show=function(b){var d=this,e=a.Event("show.bs.modal",{relatedTarget:b});this.$element.trigger(e),this.isShown||e.isDefaultPrevented()||(this.isShown=!0,this.checkScrollbar(),this.setScrollbar(),this.$body.addClass("modal-open"),this.escape(),this.resize(),this.$element.on("click.dismiss.bs.modal",'[data-dismiss="modal"]',a.proxy(this.hide,this)),this.$dialog.on("mousedown.dismiss.bs.modal",function(){d.$element.one("mouseup.dismiss.bs.modal",function(b){a(b.target).is(d.$element)&&(d.ignoreBackdropClick=!0)})}),this.backdrop(function(){var e=a.support.transition&&d.$element.hasClass("fade");d.$element.parent().length||d.$element.appendTo(d.$body),d.$element.show().scrollTop(0),d.adjustDialog(),e&&d.$element[0].offsetWidth,d.$element.addClass("in"),d.enforceFocus();var f=a.Event("shown.bs.modal",{relatedTarget:b});e?d.$dialog.one("bsTransitionEnd",function(){d.$element.trigger("focus").trigger(f)}).emulateTransitionEnd(c.TRANSITION_DURATION):d.$element.trigger("focus").trigger(f)}))},c.prototype.hide=function(b){b&&b.preventDefault(),b=a.Event("hide.bs.modal"),this.$element.trigger(b),this.isShown&&!b.isDefaultPrevented()&&(this.isShown=!1,this.escape(),this.resize(),a(document).off("focusin.bs.modal"),this.$element.removeClass("in").off("click.dismiss.bs.modal").off("mouseup.dismiss.bs.modal"),this.$dialog.off("mousedown.dismiss.bs.modal"),a.support.transition&&this.$element.hasClass("fade")?this.$element.one("bsTransitionEnd",a.proxy(this.hideModal,this)).emulateTransitionEnd(c.TRANSITION_DURATION):this.hideModal())},c.prototype.enforceFocus=function(){a(document).off("focusin.bs.modal").on("focusin.bs.modal",a.proxy(function(a){document===a.target||this.$element[0]===a.target||this.$element.has(a.target).length||this.$element.trigger("focus")},this))},c.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keydown.dismiss.bs.modal",a.proxy(function(a){27==a.which&&this.hide()},this)):this.isShown||this.$element.off("keydown.dismiss.bs.modal")},c.prototype.resize=function(){this.isShown?a(window).on("resize.bs.modal",a.proxy(this.handleUpdate,this)):a(window).off("resize.bs.modal")},c.prototype.hideModal=function(){var a=this;this.$element.hide(),this.backdrop(function(){a.$body.removeClass("modal-open"),a.resetAdjustments(),a.resetScrollbar(),a.$element.trigger("hidden.bs.modal")})},c.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},c.prototype.backdrop=function(b){var d=this,e=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var f=a.support.transition&&e;if(this.$backdrop=a(document.createElement("div")).addClass("modal-backdrop "+e).appendTo(this.$body),this.$element.on("click.dismiss.bs.modal",a.proxy(function(a){return this.ignoreBackdropClick?void(this.ignoreBackdropClick=!1):void(a.target===a.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus():this.hide()))},this)),f&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!b)return;f?this.$backdrop.one("bsTransitionEnd",b).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):b()}else if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass("in");var g=function(){d.removeBackdrop(),b&&b()};a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",g).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):g()}else b&&b()},c.prototype.handleUpdate=function(){this.adjustDialog()},c.prototype.adjustDialog=function(){var a=this.$element[0].scrollHeight>document.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&a?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!a?this.scrollbarWidth:""})},c.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},c.prototype.checkScrollbar=function(){var a=window.innerWidth;if(!a){var b=document.documentElement.getBoundingClientRect();a=b.right-Math.abs(b.left)}this.bodyIsOverflowing=document.body.clientWidth<a,this.scrollbarWidth=this.measureScrollbar()},c.prototype.setScrollbar=function(){var a=parseInt(this.$body.css("padding-right")||0,10);this.originalBodyPad=document.body.style.paddingRight||"",this.bodyIsOverflowing&&this.$body.css("padding-right",a+this.scrollbarWidth)},c.prototype.resetScrollbar=function(){this.$body.css("padding-right",this.originalBodyPad)},c.prototype.measureScrollbar=function(){var a=document.createElement("div");a.className="modal-scrollbar-measure",this.$body.append(a);var b=a.offsetWidth-a.clientWidth;return this.$body[0].removeChild(a),b};var d=a.fn.modal;a.fn.modal=b,a.fn.modal.Constructor=c,a.fn.modal.noConflict=function(){return a.fn.modal=d,this},a(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(c){var d=a(this),e=d.attr("href"),f=a(d.attr("data-target")||e&&e.replace(/.*(?=#[^\s]+$)/,"")),g=f.data("bs.modal")?"toggle":a.extend({remote:!/#/.test(e)&&e},f.data(),d.data());d.is("a")&&c.preventDefault(),f.one("show.bs.modal",function(a){a.isDefaultPrevented()||f.one("hidden.bs.modal",function(){d.is(":visible")&&d.trigger("focus")})}),b.call(f,g,this)})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tooltip"),f="object"==typeof b&&b;!e&&/destroy|hide/.test(b)||(e||d.data("bs.tooltip",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.type=null,this.options=null,this.enabled=null,this.timeout=null,this.hoverState=null,this.$element=null,this.inState=null,this.init("tooltip",a,b)};c.VERSION="3.3.7",c.TRANSITION_DURATION=150,c.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},c.prototype.init=function(b,c,d){if(this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.$viewport=this.options.viewport&&a(a.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focusin",i="hover"==g?"mouseleave":"focusout";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},c.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},c.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusin"==b.type?"focus":"hover"]=!0),c.tip().hasClass("in")||"in"==c.hoverState?void(c.hoverState="in"):(clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show)):c.show())},c.prototype.isInStateTrue=function(){for(var a in this.inState)if(this.inState[a])return!0;return!1},c.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);if(c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusout"==b.type?"focus":"hover"]=!1),!c.isInStateTrue())return clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide()},c.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);var d=a.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(b.isDefaultPrevented()||!d)return;var e=this,f=this.tip(),g=this.getUID(this.type);this.setContent(),f.attr("id",g),this.$element.attr("aria-describedby",g),this.options.animation&&f.addClass("fade");var h="function"==typeof this.options.placement?this.options.placement.call(this,f[0],this.$element[0]):this.options.placement,i=/\s?auto?\s?/i,j=i.test(h);j&&(h=h.replace(i,"")||"top"),f.detach().css({top:0,left:0,display:"block"}).addClass(h).data("bs."+this.type,this),this.options.container?f.appendTo(this.options.container):f.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var k=this.getPosition(),l=f[0].offsetWidth,m=f[0].offsetHeight;if(j){var n=h,o=this.getPosition(this.$viewport);h="bottom"==h&&k.bottom+m>o.bottom?"top":"top"==h&&k.top-m<o.top?"bottom":"right"==h&&k.right+l>o.width?"left":"left"==h&&k.left-l<o.left?"right":h,f.removeClass(n).addClass(h)}var p=this.getCalculatedOffset(h,k,l,m);this.applyPlacement(p,h);var q=function(){var a=e.hoverState;e.$element.trigger("shown.bs."+e.type),e.hoverState=null,"out"==a&&e.leave(e)};a.support.transition&&this.$tip.hasClass("fade")?f.one("bsTransitionEnd",q).emulateTransitionEnd(c.TRANSITION_DURATION):q()}},c.prototype.applyPlacement=function(b,c){var d=this.tip(),e=d[0].offsetWidth,f=d[0].offsetHeight,g=parseInt(d.css("margin-top"),10),h=parseInt(d.css("margin-left"),10);isNaN(g)&&(g=0),isNaN(h)&&(h=0),b.top+=g,b.left+=h,a.offset.setOffset(d[0],a.extend({using:function(a){d.css({top:Math.round(a.top),left:Math.round(a.left)})}},b),0),d.addClass("in");var i=d[0].offsetWidth,j=d[0].offsetHeight;"top"==c&&j!=f&&(b.top=b.top+f-j);var k=this.getViewportAdjustedDelta(c,b,i,j);k.left?b.left+=k.left:b.top+=k.top;var l=/top|bottom/.test(c),m=l?2*k.left-e+i:2*k.top-f+j,n=l?"offsetWidth":"offsetHeight";d.offset(b),this.replaceArrow(m,d[0][n],l)},c.prototype.replaceArrow=function(a,b,c){this.arrow().css(c?"left":"top",50*(1-a/b)+"%").css(c?"top":"left","")},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle();a.find(".tooltip-inner")[this.options.html?"html":"text"](b),a.removeClass("fade in top bottom left right")},c.prototype.hide=function(b){function d(){"in"!=e.hoverState&&f.detach(),e.$element&&e.$element.removeAttr("aria-describedby").trigger("hidden.bs."+e.type),b&&b()}var e=this,f=a(this.$tip),g=a.Event("hide.bs."+this.type);if(this.$element.trigger(g),!g.isDefaultPrevented())return f.removeClass("in"),a.support.transition&&f.hasClass("fade")?f.one("bsTransitionEnd",d).emulateTransitionEnd(c.TRANSITION_DURATION):d(),this.hoverState=null,this},c.prototype.fixTitle=function(){var a=this.$element;(a.attr("title")||"string"!=typeof a.attr("data-original-title"))&&a.attr("data-original-title",a.attr("title")||"").attr("title","")},c.prototype.hasContent=function(){return this.getTitle()},c.prototype.getPosition=function(b){b=b||this.$element;var c=b[0],d="BODY"==c.tagName,e=c.getBoundingClientRect();null==e.width&&(e=a.extend({},e,{width:e.right-e.left,height:e.bottom-e.top}));var f=window.SVGElement&&c instanceof window.SVGElement,g=d?{top:0,left:0}:f?null:b.offset(),h={scroll:d?document.documentElement.scrollTop||document.body.scrollTop:b.scrollTop()},i=d?{width:a(window).width(),height:a(window).height()}:null;return a.extend({},e,h,i,g)},c.prototype.getCalculatedOffset=function(a,b,c,d){return"bottom"==a?{top:b.top+b.height,left:b.left+b.width/2-c/2}:"top"==a?{top:b.top-d,left:b.left+b.width/2-c/2}:"left"==a?{top:b.top+b.height/2-d/2,left:b.left-c}:{top:b.top+b.height/2-d/2,left:b.left+b.width}},c.prototype.getViewportAdjustedDelta=function(a,b,c,d){var e={top:0,left:0};if(!this.$viewport)return e;var f=this.options.viewport&&this.options.viewport.padding||0,g=this.getPosition(this.$viewport);if(/right|left/.test(a)){var h=b.top-f-g.scroll,i=b.top+f-g.scroll+d;h<g.top?e.top=g.top-h:i>g.top+g.height&&(e.top=g.top+g.height-i)}else{var j=b.left-f,k=b.left+f+c;j<g.left?e.left=g.left-j:k>g.right&&(e.left=g.left+g.width-k)}return e},c.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},c.prototype.getUID=function(a){do a+=~~(1e6*Math.random());while(document.getElementById(a));return a},c.prototype.tip=function(){if(!this.$tip&&(this.$tip=a(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},c.prototype.enable=function(){this.enabled=!0},c.prototype.disable=function(){this.enabled=!1},c.prototype.toggleEnabled=function(){this.enabled=!this.enabled},c.prototype.toggle=function(b){var c=this;b&&(c=a(b.currentTarget).data("bs."+this.type),c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c))),b?(c.inState.click=!c.inState.click,c.isInStateTrue()?c.enter(c):c.leave(c)):c.tip().hasClass("in")?c.leave(c):c.enter(c)},c.prototype.destroy=function(){var a=this;clearTimeout(this.timeout),this.hide(function(){a.$element.off("."+a.type).removeData("bs."+a.type),a.$tip&&a.$tip.detach(),a.$tip=null,a.$arrow=null,a.$viewport=null,a.$element=null})};var d=a.fn.tooltip;a.fn.tooltip=b,a.fn.tooltip.Constructor=c,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=d,this}}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof b&&b;!e&&/destroy|hide/.test(b)||(e||d.data("bs.popover",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");c.VERSION="3.3.7",c.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),c.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),c.prototype.constructor=c,c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content").children().detach().end()[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},c.prototype.hasContent=function(){return this.getTitle()||this.getContent()},c.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var d=a.fn.popover;a.fn.popover=b,a.fn.popover.Constructor=c,a.fn.popover.noConflict=function(){return a.fn.popover=d,this}}(jQuery),+function(a){"use strict";function b(c,d){this.$body=a(document.body),this.$scrollElement=a(a(c).is(document.body)?window:c),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",a.proxy(this.process,this)),this.refresh(),this.process()}function c(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})}b.VERSION="3.3.7",b.DEFAULTS={offset:10},b.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},b.prototype.refresh=function(){var b=this,c="offset",d=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),a.isWindow(this.$scrollElement[0])||(c="position",d=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var b=a(this),e=b.data("target")||b.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[c]().top+d,e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){b.offsets.push(this[0]),b.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.getScrollHeight(),d=this.options.offset+c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(this.scrollHeight!=c&&this.refresh(),b>=d)return g!=(a=f[f.length-1])&&this.activate(a);if(g&&b<e[0])return this.activeTarget=null,this.clear();for(a=e.length;a--;)g!=f[a]&&b>=e[a]&&(void 0===e[a+1]||b<e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){
19this.activeTarget=b,this.clear();var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate.bs.scrollspy")},b.prototype.clear=function(){a(this.selector).parentsUntil(this.options.target,".active").removeClass("active")};var d=a.fn.scrollspy;a.fn.scrollspy=c,a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=d,this},a(window).on("load.bs.scrollspy.data-api",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);c.call(b,b.data())})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new c(this)),"string"==typeof b&&e[b]()})}var c=function(b){this.element=a(b)};c.VERSION="3.3.7",c.TRANSITION_DURATION=150,c.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.data("target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a"),f=a.Event("hide.bs.tab",{relatedTarget:b[0]}),g=a.Event("show.bs.tab",{relatedTarget:e[0]});if(e.trigger(f),b.trigger(g),!g.isDefaultPrevented()&&!f.isDefaultPrevented()){var h=a(d);this.activate(b.closest("li"),c),this.activate(h,h.parent(),function(){e.trigger({type:"hidden.bs.tab",relatedTarget:b[0]}),b.trigger({type:"shown.bs.tab",relatedTarget:e[0]})})}}},c.prototype.activate=function(b,d,e){function f(){g.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),b.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),h?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu").length&&b.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),e&&e()}var g=d.find("> .active"),h=e&&a.support.transition&&(g.length&&g.hasClass("fade")||!!d.find("> .fade").length);g.length&&h?g.one("bsTransitionEnd",f).emulateTransitionEnd(c.TRANSITION_DURATION):f(),g.removeClass("in")};var d=a.fn.tab;a.fn.tab=b,a.fn.tab.Constructor=c,a.fn.tab.noConflict=function(){return a.fn.tab=d,this};var e=function(c){c.preventDefault(),b.call(a(this),"show")};a(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',e).on("click.bs.tab.data-api",'[data-toggle="pill"]',e)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof b&&b;e||d.data("bs.affix",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.options=a.extend({},c.DEFAULTS,d),this.$target=a(this.options.target).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(b),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};c.VERSION="3.3.7",c.RESET="affix affix-top affix-bottom",c.DEFAULTS={offset:0,target:window},c.prototype.getState=function(a,b,c,d){var e=this.$target.scrollTop(),f=this.$element.offset(),g=this.$target.height();if(null!=c&&"top"==this.affixed)return e<c&&"top";if("bottom"==this.affixed)return null!=c?!(e+this.unpin<=f.top)&&"bottom":!(e+g<=a-d)&&"bottom";var h=null==this.affixed,i=h?e:f.top,j=h?g:b;return null!=c&&e<=c?"top":null!=d&&i+j>=a-d&&"bottom"},c.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(c.RESET).addClass("affix");var a=this.$target.scrollTop(),b=this.$element.offset();return this.pinnedOffset=b.top-a},c.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},c.prototype.checkPosition=function(){if(this.$element.is(":visible")){var b=this.$element.height(),d=this.options.offset,e=d.top,f=d.bottom,g=Math.max(a(document).height(),a(document.body).height());"object"!=typeof d&&(f=e=d),"function"==typeof e&&(e=d.top(this.$element)),"function"==typeof f&&(f=d.bottom(this.$element));var h=this.getState(g,b,e,f);if(this.affixed!=h){null!=this.unpin&&this.$element.css("top","");var i="affix"+(h?"-"+h:""),j=a.Event(i+".bs.affix");if(this.$element.trigger(j),j.isDefaultPrevented())return;this.affixed=h,this.unpin="bottom"==h?this.getPinnedOffset():null,this.$element.removeClass(c.RESET).addClass(i).trigger(i.replace("affix","affixed")+".bs.affix")}"bottom"==h&&this.$element.offset({top:g-b-f})}};var d=a.fn.affix;a.fn.affix=b,a.fn.affix.Constructor=c,a.fn.affix.noConflict=function(){return a.fn.affix=d,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var c=a(this),d=c.data();d.offset=d.offset||{},null!=d.offsetBottom&&(d.offset.bottom=d.offsetBottom),null!=d.offsetTop&&(d.offset.top=d.offsetTop),b.call(c,d)})})}(jQuery);
vendor: 7,564 bytes, lines 19-45
19
20
21/*!
22 * imagesLoaded PACKAGED v4.1.4
23 * JavaScript is all like "You images are done yet or what?"
24 * MIT License
25 */
26
27!function(e,t){"function"==typeof define&&define.amd?define("ev-emitter/ev-emitter",t):"object"==typeof module&&module.exports?module.exports=t():e.EvEmitter=t()}("undefined"!=typeof window?window:this,function(){function e(){}var t=e.prototype;return t.on=function(e,t){if(e&&t){var i=this._events=this._events||{},n=i[e]=i[e]||[];return n.indexOf(t)==-1&&n.push(t),this}},t.once=function(e,t){if(e&&t){this.on(e,t);var i=this._onceEvents=this._onceEvents||{},n=i[e]=i[e]||{};return n[t]=!0,this}},t.off=function(e,t){var i=this._events&&this._events[e];if(i&&i.length){var n=i.indexOf(t);return n!=-1&&i.splice(n,1),this}},t.emitEvent=function(e,t){var i=this._events&&this._events[e];if(i&&i.length){i=i.slice(0),t=t||[];for(var n=this._onceEvents&&this._onceEvents[e],o=0;o<i.length;o++){var r=i[o],s=n&&n[r];s&&(this.off(e,r),delete n[r]),r.apply(this,t)}return this}},t.allOff=function(){delete this._events,delete this._onceEvents},e}),function(e,t){"use strict";"function"==typeof define&&define.amd?define(["ev-emitter/ev-emitter"],function(i){return t(e,i)}):"object"==typeof module&&module.exports?module.exports=t(e,require("ev-emitter")):e.imagesLoaded=t(e,e.EvEmitter)}("undefined"!=typeof window?window:this,function(e,t){function i(e,t){for(var i in t)e[i]=t[i];return e}function n(e){if(Array.isArray(e))return e;var t="object"==typeof e&&"number"==typeof e.length;return t?d.call(e):[e]}function o(e,t,r){if(!(this instanceof o))return new o(e,t,r);var s=e;return"string"==typeof e&&(s=document.querySelectorAll(e)),s?(this.elements=n(s),this.options=i({},this.options),"function"==typeof t?r=t:i(this.options,t),r&&this.on("always",r),this.getImages(),h&&(this.jqDeferred=new h.Deferred),void setTimeout(this.check.bind(this))):void a.error("Bad element for imagesLoaded "+(s||e))}function r(e){this.img=e}function s(e,t){this.url=e,this.element=t,this.img=new Image}var h=e.jQuery,a=e.console,d=Array.prototype.slice;o.prototype=Object.create(t.prototype),o.prototype.options={},o.prototype.getImages=function(){this.images=[],this.elements.forEach(this.addElementImages,this)},o.prototype.addElementImages=function(e){"IMG"==e.nodeName&&this.addImage(e),this.options.background===!0&&this.addElementBackgroundImages(e);var t=e.nodeType;if(t&&u[t]){for(var i=e.querySelectorAll("img"),n=0;n<i.length;n++){var o=i[n];this.addImage(o)}if("string"==typeof this.options.background){var r=e.querySelectorAll(this.options.background);for(n=0;n<r.length;n++){var s=r[n];this.addElementBackgroundImages(s)}}}};var u={1:!0,9:!0,11:!0};return o.prototype.addElementBackgroundImages=function(e){var t=getComputedStyle(e);if(t)for(var i=/url\((['"])?(.*?)\1\)/gi,n=i.exec(t.backgroundImage);null!==n;){var o=n&&n[2];o&&this.addBackground(o,e),n=i.exec(t.backgroundImage)}},o.prototype.addImage=function(e){var t=new r(e);this.images.push(t)},o.prototype.addBackground=function(e,t){var i=new s(e,t);this.images.push(i)},o.prototype.check=function(){function e(e,i,n){setTimeout(function(){t.progress(e,i,n)})}var t=this;return this.progressedCount=0,this.hasAnyBroken=!1,this.images.length?void this.images.forEach(function(t){t.once("progress",e),t.check()}):void this.complete()},o.prototype.progress=function(e,t,i){this.progressedCount++,this.hasAnyBroken=this.hasAnyBroken||!e.isLoaded,this.emitEvent("progress",[this,e,t]),this.jqDeferred&&this.jqDeferred.notify&&this.jqDeferred.notify(this,e),this.progressedCount==this.images.length&&this.complete(),this.options.debug&&a&&a.log("progress: "+i,e,t)},o.prototype.complete=function(){var e=this.hasAnyBroken?"fail":"done";if(this.isComplete=!0,this.emitEvent(e,[this]),this.emitEvent("always",[this]),this.jqDeferred){var t=this.hasAnyBroken?"reject":"resolve";this.jqDeferred[t](this)}},r.prototype=Object.create(t.prototype),r.prototype.check=function(){var e=this.getIsImageComplete();return e?void this.confirm(0!==this.img.naturalWidth,"naturalWidth"):(this.proxyImage=new Image,this.proxyImage.addEventListener("load",this),this.proxyImage.addEventListener("error",this),this.img.addEventListener("load",this),this.img.addEventListener("error",this),void(this.proxyImage.src=this.img.src))},r.prototype.getIsImageComplete=function(){return this.img.complete&&this.img.naturalWidth},r.prototype.confirm=function(e,t){this.isLoaded=e,this.emitEvent("progress",[this,this.img,t])},r.prototype.handleEvent=function(e){var t="on"+e.type;this[t]&&this[t](e)},r.prototype.onload=function(){this.confirm(!0,"onload"),this.unbindEvents()},r.prototype.onerror=function(){this.confirm(!1,"onerror"),this.unbindEvents()},r.prototype.unbindEvents=function(){this.proxyImage.removeEventListener("load",this),this.proxyImage.removeEventListener("error",this),this.img.removeEventListener("load",this),this.img.removeEventListener("error",this)},s.prototype=Object.create(r.prototype),s.prototype.check=function(){this.img.addEventListener("load",this),this.img.addEventListener("error",this),this.img.src=this.url;var e=this.getIsImageComplete();e&&(this.confirm(0!==this.img.naturalWidth,"naturalWidth"),this.unbindEvents())},s.prototype.unbindEvents=function(){this.img.removeEventListener("load",this),this.img.removeEventListener("error",this)},s.prototype.confirm=function(e,t){this.isLoaded=e,this.emitEvent("progress",[this,this.element,t])},o.makeJQueryPlugin=function(t){t=t||e.jQuery,t&&(h=t,h.fn.imagesLoaded=function(e,t){var i=new o(this,e,t);return i.jqDeferred.promise(h(this))})},o.makeJQueryPlugin(),o});
28
29/*
30     _ _      _       _
31 ___| (_) ___| | __  (_)___
32/ __| | |/ __| |/ /  | / __|
33\__ \ | | (__|   < _ | \__ \
34|___/_|_|\___|_|\_(_)/ |___/
35                   |__/
36
37 Version: 1.6.0
38  Author: Ken Wheeler
39 Website: http://kenwheeler.github.io
40    Docs: http://kenwheeler.github.io/slick
41    Repo: http://github.com/kenwheeler/slick
42  Issues: http://github.com/kenwheeler/slick/issues
43
44 */
45!function(a){"use strict";"function"==typeof define&&define.amd?define(["jquery"],a):"undefined"!=typeof exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){"use strict";var b=window.Slick||{};b=function(){function c(c,d){var f,e=this;e.defaults={accessibility:!0,adaptiveHeight:!1,appendArrows:a(c),appendDots:a(c),arrows:!0,asNavFor:null,prevArrow:'<button type="button" data-role="none" class="slick-prev" aria-label="Previous" tabindex="0" role="button">Previous</button>',nextArrow:'<button type="button" data-role="none" class="slick-next" aria-label="Next" tabindex="0" role="button">Next</button>',autoplay:!1,autoplaySpeed:3e3,centerMode:!1,centerPadding:"50px",cssEase:"ease",customPaging:function(b,c){return a('<button type="button" data-role="none" role="button" tabindex="0" />').text(c+1)},dots:!1,dotsClass:"slick-dots",draggable:!0,easing:"linear",edgeFriction:.35,fade:!1,focusOnSelect:!1,infinite:!0,initialSlide:0,lazyLoad:"ondemand",mobileFirst:!1,pauseOnHover:!0,pauseOnFocus:!0,pauseOnDotsHover:!1,respondTo:"window",responsive:null,rows:1,rtl:!1,slide:"",slidesPerRow:1,slidesToShow:1,slidesToScroll:1,speed:500,swipe:!0,swipeToSlide:!1,touchMove:!0,touchThreshold:5,useCSS:!0,useTransform:!0,variableWidth:!1,vertical:!1,verticalSwiping:!1,waitForAnimate:!0,zIndex:1e3},e.initials={animating:!1,dragging:!1,autoPlayTimer:null,currentDirection:0,currentLeft:null,currentSlide:0,direction:1,$dots:null,listWidth:null,listHeight:null,loadIndex:0,$nextArrow:null,$prevArrow:null,slideCount:null,slideWidth:null,$slideTrack:null,$slides:null,
vendor: 9,458 bytes, line 45
45sliding:!1,slideOffset:0,swipeLeft:null,$list:null,touchObject:{},transformsEnabled:!1,unslicked:!1},a.extend(e,e.initials),e.activeBreakpoint=null,e.animType=null,e.animProp=null,e.breakpoints=[],e.breakpointSettings=[],e.cssTransitions=!1,e.focussed=!1,e.interrupted=!1,e.hidden="hidden",e.paused=!0,e.positionProp=null,e.respondTo=null,e.rowCount=1,e.shouldClick=!0,e.$slider=a(c),e.$slidesCache=null,e.transformType=null,e.transitionType=null,e.visibilityChange="visibilitychange",e.windowWidth=0,e.windowTimer=null,f=a(c).data("slick")||{},e.options=a.extend({},e.defaults,d,f),e.currentSlide=e.options.initialSlide,e.originalSettings=e.options,"undefined"!=typeof document.mozHidden?(e.hidden="mozHidden",e.visibilityChange="mozvisibilitychange"):"undefined"!=typeof document.webkitHidden&&(e.hidden="webkitHidden",e.visibilityChange="webkitvisibilitychange"),e.autoPlay=a.proxy(e.autoPlay,e),e.autoPlayClear=a.proxy(e.autoPlayClear,e),e.autoPlayIterator=a.proxy(e.autoPlayIterator,e),e.changeSlide=a.proxy(e.changeSlide,e),e.clickHandler=a.proxy(e.clickHandler,e),e.selectHandler=a.proxy(e.selectHandler,e),e.setPosition=a.proxy(e.setPosition,e),e.swipeHandler=a.proxy(e.swipeHandler,e),e.dragHandler=a.proxy(e.dragHandler,e),e.keyHandler=a.proxy(e.keyHandler,e),e.instanceUid=b++,e.htmlExpr=/^(?:\s*(<[\w\W]+>)[^>]*)$/,e.registerBreakpoints(),e.init(!0)}var b=0;return c}(),b.prototype.activateADA=function(){var a=this;a.$slideTrack.find(".slick-active").attr({"aria-hidden":"false"}).find("a, input, button, select").attr({tabindex:"0"})},b.prototype.addSlide=b.prototype.slickAdd=function(b,c,d){var e=this;if("boolean"==typeof c)d=c,c=null;else if(0>c||c>=e.slideCount)return!1;e.unload(),"number"==typeof c?0===c&&0===e.$slides.length?a(b).appendTo(e.$slideTrack):d?a(b).insertBefore(e.$slides.eq(c)):a(b).insertAfter(e.$slides.eq(c)):d===!0?a(b).prependTo(e.$slideTrack):a(b).appendTo(e.$slideTrack),e.$slides=e.$slideTrack.children(this.options.slide),e.$slideTrack.children(this.options.slide).detach(),e.$slideTrack.append(e.$slides),e.$slides.each(function(b,c){a(c).attr("data-slick-index",b)}),e.$slidesCache=e.$slides,e.reinit()},b.prototype.animateHeight=function(){var a=this;if(1===a.options.slidesToShow&&a.options.adaptiveHeight===!0&&a.options.vertical===!1){var b=a.$slides.eq(a.currentSlide).outerHeight(!0);a.$list.animate({height:b},a.options.speed)}},b.prototype.animateSlide=function(b,c){var d={},e=this;e.animateHeight(),e.options.rtl===!0&&e.options.vertical===!1&&(b=-b),e.transformsEnabled===!1?e.options.vertical===!1?e.$slideTrack.animate({left:b},e.options.speed,e.options.easing,c):e.$slideTrack.animate({top:b},e.options.speed,e.options.easing,c):e.cssTransitions===!1?(e.options.rtl===!0&&(e.currentLeft=-e.currentLeft),a({animStart:e.currentLeft}).animate({animStart:b},{duration:e.options.speed,easing:e.options.easing,step:function(a){a=Math.ceil(a),e.options.vertical===!1?(d[e.animType]="translate("+a+"px, 0px)",e.$slideTrack.css(d)):(d[e.animType]="translate(0px,"+a+"px)",e.$slideTrack.css(d))},complete:function(){c&&c.call()}})):(e.applyTransition(),b=Math.ceil(b),e.options.vertical===!1?d[e.animType]="translate3d("+b+"px, 0px, 0px)":d[e.animType]="translate3d(0px,"+b+"px, 0px)",e.$slideTrack.css(d),c&&setTimeout(function(){e.disableTransition(),c.call()},e.options.speed))},b.prototype.getNavTarget=function(){var b=this,c=b.options.asNavFor;return c&&null!==c&&(c=a(c).not(b.$slider)),c},b.prototype.asNavFor=function(b){var c=this,d=c.getNavTarget();null!==d&&"object"==typeof d&&d.each(function(){var c=a(this).slick("getSlick");c.unslicked||c.slideHandler(b,!0)})},b.prototype.applyTransition=function(a){var b=this,c={};b.options.fade===!1?c[b.transitionType]=b.transformType+" "+b.options.speed+"ms "+b.options.cssEase:c[b.transitionType]="opacity "+b.options.speed+"ms "+b.options.cssEase,b.options.fade===!1?b.$slideTrack.css(c):b.$slides.eq(a).css(c)},b.prototype.autoPlay=function(){var a=this;a.autoPlayClear(),a.slideCount>a.options.slidesToShow&&(a.autoPlayTimer=setInterval(a.autoPlayIterator,a.options.autoplaySpeed))},b.prototype.autoPlayClear=function(){var a=this;a.autoPlayTimer&&clearInterval(a.autoPlayTimer)},b.prototype.autoPlayIterator=function(){var a=this,b=a.currentSlide+a.options.slidesToScroll;a.paused||a.interrupted||a.focussed||(a.options.infinite===!1&&(1===a.direction&&a.currentSlide+1===a.slideCount-1?a.direction=0:0===a.direction&&(b=a.currentSlide-a.options.slidesToScroll,a.currentSlide-1===0&&(a.direction=1))),a.slideHandler(b))},b.prototype.buildArrows=function(){var b=this;b.options.arrows===!0&&(b.$prevArrow=a(b.options.prevArrow).addClass("slick-arrow"),b.$nextArrow=a(b.options.nextArrow).addClass("slick-arrow"),b.slideCount>b.options.slidesToShow?(b.$prevArrow.removeClass("slick-hidden").removeAttr("aria-hidden tabindex"),b.$nextArrow.removeClass("slick-hidden").removeAttr("aria-hidden tabindex"),b.htmlExpr.test(b.options.prevArrow)&&b.$prevArrow.prependTo(b.options.appendArrows),b.htmlExpr.test(b.options.nextArrow)&&b.$nextArrow.appendTo(b.options.appendArrows),b.options.infinite!==!0&&b.$prevArrow.addClass("slick-disabled").attr("aria-disabled","true")):b.$prevArrow.add(b.$nextArrow).addClass("slick-hidden").attr({"aria-disabled":"true",tabindex:"-1"}))},b.prototype.buildDots=function(){var c,d,b=this;if(b.options.dots===!0&&b.slideCount>b.options.slidesToShow){for(b.$slider.addClass("slick-dotted"),d=a("<ul />").addClass(b.options.dotsClass),c=0;c<=b.getDotCount();c+=1)d.append(a("<li />").append(b.options.customPaging.call(this,b,c)));b.$dots=d.appendTo(b.options.appendDots),b.$dots.find("li").first().addClass("slick-active").attr("aria-hidden","false")}},b.prototype.buildOut=function(){var b=this;b.$slides=b.$slider.children(b.options.slide+":not(.slick-cloned)").addClass("slick-slide"),b.slideCount=b.$slides.length,b.$slides.each(function(b,c){a(c).attr("data-slick-index",b).data("originalStyling",a(c).attr("style")||"")}),b.$slider.addClass("slick-slider"),b.$slideTrack=0===b.slideCount?a('<div class="slick-track"/>').appendTo(b.$slider):b.$slides.wrapAll('<div class="slick-track"/>').parent(),b.$list=b.$slideTrack.wrap('<div aria-live="polite" class="slick-list"/>').parent(),b.$slideTrack.css("opacity",0),(b.options.centerMode===!0||b.options.swipeToSlide===!0)&&(b.options.slidesToScroll=1),a("img[data-lazy]",b.$slider).not("[src]").addClass("slick-loading"),b.setupInfinite(),b.buildArrows(),b.buildDots(),b.updateDots(),b.setSlideClasses("number"==typeof b.currentSlide?b.currentSlide:0),b.options.draggable===!0&&b.$list.addClass("draggable")},b.prototype.buildRows=function(){var b,c,d,e,f,g,h,a=this;if(e=document.createDocumentFragment(),g=a.$slider.children(),a.options.rows>1){for(h=a.options.slidesPerRow*a.options.rows,f=Math.ceil(g.length/h),b=0;f>b;b++){var i=document.createElement("div");for(c=0;c<a.options.rows;c++){var j=document.createElement("div");for(d=0;d<a.options.slidesPerRow;d++){var k=b*h+(c*a.options.slidesPerRow+d);g.get(k)&&j.appendChild(g.get(k))}i.appendChild(j)}e.appendChild(i)}a.$slider.empty().append(e),a.$slider.children().children().children().css({width:100/a.options.slidesPerRow+"%",display:"inline-block"})}},b.prototype.checkResponsive=function(b,c){var e,f,g,d=this,h=!1,i=d.$slider.width(),j=window.innerWidth||a(window).width();if("window"===d.respondTo?g=j:"slider"===d.respondTo?g=i:"min"===d.respondTo&&(g=Math.min(j,i)),d.options.responsive&&d.options.responsive.length&&null!==d.options.responsive){f=null;for(e in d.breakpoints)d.breakpoints.hasOwnProperty(e)&&(d.originalSettings.mobileFirst===!1?g<d.breakpoints[e]&&(f=d.breakpoints[e]):g>d.breakpoints[e]&&(f=d.breakpoints[e]));null!==f?null!==d.activeBreakpoint?(f!==d.activeBreakpoint||c)&&(d.activeBreakpoint=f,"unslick"===d.breakpointSettings[f]?d.unslick(f):(d.options=a.extend({},d.originalSettings,d.breakpointSettings[f]),b===!0&&(d.currentSlide=d.options.initialSlide),d.refresh(b)),h=f):(d.activeBreakpoint=f,"unslick"===d.breakpointSettings[f]?d.unslick(f):(d.options=a.extend({},d.originalSettings,d.breakpointSettings[f]),b===!0&&(d.currentSlide=d.options.initialSlide),d.refresh(b)),h=f):null!==d.activeBreakpoint&&(d.activeBreakpoint=null,d.options=d.originalSettings,b===!0&&(d.currentSlide=d.options.initialSlide),d.refresh(b),h=f),b||h===!1||d.$slider.trigger("breakpoint",[d,h])}},b.prototype.changeSlide=function(b,c){var f,g,h,d=this,e=a(b.currentTarget);switch(e.is("a")&&b.preventDefault(),e.is("li")||(e=e.closest("li")),h=d.slideCount%d.options.slidesToScroll!==0,f=h?0:(d.slideCount-d.currentSlide)%d.options.slidesToScroll,b.data.message){case"previous":g=0===f?d.options.slidesToScroll:d.options.slidesToShow-f,d.slideCount>d.options.slidesToShow&&d.slideHandler(d.currentSlide-g,!1,c);break;case"next":g=0===f?d.options.slidesToScroll:f,d.slideCount>d.options.slidesToShow&&d.slideHandler(d.currentSlide+g,!1,c);break;case"index":var i=0===b.data.index?0:b.data.index||e.index()*d.options.slidesToScroll;d.slideHandler(d.checkNavigable(i),!1,c),e.children().trigger("focus");break;default:return}},b.prototype.checkNavigable=function(a){var c,d,b=this;if(c=b.getNavigableIndexes(),d=0,a>c[c.length-1])a=c[c.length-1];else for(var e in c){if(a<c[e]){a=d;break}d=c[e]}return a},b.prototype.cleanUpEvents=function(){var b=this;b.options.dots&&null!==b.$dots&&a("li",b.$dots).off("click.slick",b.changeSlide).off("mouseenter.slick",a.proxy(b.interrupt,b,!0)).off("mouseleave.
45slick",a.proxy(b.interrupt,b,!1)),b.$slider.off("focus.slick blur.slick"),b.options.arrows===!0&&b.slideCount>b.options.slidesToShow&&(b.$prevArrow&&b.$prevArrow.off("click.slick",b.changeSlide),b.$nextArrow&&b.$nextArrow.off("click.slick",b.changeSlide)),b.$list.off("touchstart.slick mousedown.slick",b.swipeHandler),b.$list.off("touchmove.slick mousemove.slick",b.swipeHandler),b.$list.off("touchend.slick mouseup.slick",b.swipeHandler),b.$list.off("touchcancel.slick mouseleave.slick",b.swipeHandler),b.$list.off("click.slick",b.clickHandler),a(document).off(b.visibilityChange,b.visibility),b.cleanUpSlideEvents(),b.options.accessibility===!0&&b.$list.off("keydown.slick",b.keyHandler),b.options.focusOnSelect===!0&&a(b.$slideTrack).children().off("click.slick",b.selectHandler),a(window).off("orientationchange.slick.slick-"+b.instanceUid,b.orientationChange),a(window).off("resize.slick.slick-"+b.instanceUid,b.resize),a("[draggable!=true]",b.$slideTrack).off("dragstart",b.preventDefault),a(window).off("load.slick.slick-"+b.instanceUid,b.setPosition),a(document).off("ready.slick.slick-"+b.instanceUid,b.setPosition)},b.prototype.cleanUpSlideEvents=function(){var b=this;b.$list.off("mouseenter.slick",a.proxy(b.interrupt,b,!0)),b.$list.off("mouseleave.slick",a.proxy(b.interrupt,b,!1))},b.prototype.cleanUpRows=function(){var b,a=this;a.options.rows>1&&(b=a.$slides.children().children(),b.removeAttr("style"),a.$slider.empty().append(b))},b.prototype.clickHandler=function(a){var b=this;b.shouldClick===!1&&(a.stopImmediatePropagation(),a.stopPropagation(),a.preventDefault())},b.prototype.destroy=function(b){var c=this;c.autoPlayClear(),c.touchObject={},c.cleanUpEvents(),a(".slick-cloned",c.$slider).detach(),c.$dots&&c.$dots.remove(),c.$prevArrow&&c.$prevArrow.length&&(c.$prevArrow.removeClass("slick-disabled slick-arrow slick-hidden").removeAttr("aria-hidden aria-disabled tabindex").css("display",""),c.htmlExpr.test(c.options.prevArrow)&&c.$prevArrow.remove()),c.$nextArrow&&c.$nextArrow.length&&(c.$nextArrow.removeClass("slick-disabled slick-arrow slick-hidden").removeAttr("aria-hidden aria-disabled tabindex").css("display",""),c.htmlExpr.test(c.options.nextArrow)&&c.$nextArrow.remove()),c.$slides&&(c.$slides.removeClass("slick-slide slick-active slick-center slick-visible slick-current").removeAttr("aria-hidden").removeAttr("data-slick-index").each(function(){a(this).attr("style",a(this).data("originalStyling"))}),c.$slideTrack.children(this.options.slide).detach(),c.$slideTrack.detach(),c.$list.detach(),c.$slider.append(c.$slides)),c.cleanUpRows(),c.$slider.removeClass("slick-slider"),c.$slider.removeClass("slick-initialized"),c.$slider.removeClass("slick-dotted"),c.unslicked=!0,b||c.$slider.trigger("destroy",[c])},b.prototype.disableTransition=function(a){var b=this,c={};c[b.transitionType]="",b.options.fade===!1?b.$slideTrack.css(c):b.$slides.eq(a).css(c)},b.prototype.fadeSlide=function(a,b){var c=this;c.cssTransitions===!1?(c.$slides.eq(a).css({zIndex:c.options.zIndex}),c.$slides.eq(a).animate({opacity:1},c.options.speed,c.options.easing,b)):(c.applyTransition(a),c.$slides.eq(a).css({opacity:1,zIndex:c.options.zIndex}),b&&setTimeout(function(){c.disableTransition(a),b.call()},c.options.speed))},b.prototype.fadeSlideOut=function(a){var b=this;b.cssTransitions===!1?b.$slides.eq(a).animate({opacity:0,zIndex:b.options.zIndex-2},b.options.speed,b.options.easing):(b.applyTransition(a),b.$slides.eq(a).css({opacity:0,zIndex:b.options.zIndex-2}))},b.prototype.filterSlides=b.prototype.slickFilter=function(a){var b=this;null!==a&&(b.$slidesCache=b.$slides,b.unload(),b.$slideTrack.children(this.options.slide).detach(),b.$slidesCache.filter(a).appendTo(b.$slideTrack),b.reinit())},b.prototype.focusHandler=function(){var b=this;b.$slider.off("focus.slick blur.slick").on("focus.slick blur.slick","*:not(.slick-arrow)",function(c){c.stopImmediatePropagation();var d=a(this);setTimeout(function(){b.options.pauseOnFocus&&(b.focussed=d.is(":focus"),b.autoPlay())},0)})},b.prototype.getCurrent=b.prototype.slickCurrentSlide=function(){var a=this;return a.currentSlide},b.prototype.getDotCount=function(){var a=this,b=0,c=0,d=0;if(a.options.infinite===!0)for(;b<a.slideCount;)++d,b=c+a.options.slidesToScroll,c+=a.options.slidesToScroll<=a.options.slidesToShow?a.options.slidesToScroll:a.options.slidesToShow;else if(a.options.centerMode===!0)d=a.slideCount;else if(a.options.asNavFor)for(;b<a.slideCount;)++d,b=c+a.options.slidesToScroll,c+=a.options.slidesToScroll<=a.options.slidesToShow?a.options.slidesToScroll:a.options.slidesToShow;else d=1+Math.ceil((a.slideCount-a.options.slidesToShow)/a.options.slidesToScroll);return d-1},b.prototype.getLeft=function(a){var c,d,f,b=this,e=0;return b.slideOffset=0,d=b.$slides.first().outerHeight(!0),b.options.infinite===!0?(b.slideCount>b.options.slidesToShow&&(b.slideOffset=b.slideWidth*b.options.slidesToShow*-1,e=d*b.options.slidesToShow*-1),b.slideCount%b.options.slidesToScroll!==0&&a+b.options.slidesToScroll>b.slideCount&&b.slideCount>b.options.slidesToShow&&(a>b.slideCount?(b.slideOffset=(b.options.slidesToShow-(a-b.slideCount))*b.slideWidth*-1,e=(b.options.slidesToShow-(a-b.slideCount))*d*-1):(b.slideOffset=b.slideCount%b.options.slidesToScroll*b.slideWidth*-1,e=b.slideCount%b.options.slidesToScroll*d*-1))):a+b.o
vendor: 4,100 bytes, line 45
45ptions.slidesToShow>b.slideCount&&(b.slideOffset=(a+b.options.slidesToShow-b.slideCount)*b.slideWidth,e=(a+b.options.slidesToShow-b.slideCount)*d),b.slideCount<=b.options.slidesToShow&&(b.slideOffset=0,e=0),b.options.centerMode===!0&&b.options.infinite===!0?b.slideOffset+=b.slideWidth*Math.floor(b.options.slidesToShow/2)-b.slideWidth:b.options.centerMode===!0&&(b.slideOffset=0,b.slideOffset+=b.slideWidth*Math.floor(b.options.slidesToShow/2)),c=b.options.vertical===!1?a*b.slideWidth*-1+b.slideOffset:a*d*-1+e,b.options.variableWidth===!0&&(f=b.slideCount<=b.options.slidesToShow||b.options.infinite===!1?b.$slideTrack.children(".slick-slide").eq(a):b.$slideTrack.children(".slick-slide").eq(a+b.options.slidesToShow),c=b.options.rtl===!0?f[0]?-1*(b.$slideTrack.width()-f[0].offsetLeft-f.width()):0:f[0]?-1*f[0].offsetLeft:0,b.options.centerMode===!0&&(f=b.slideCount<=b.options.slidesToShow||b.options.infinite===!1?b.$slideTrack.children(".slick-slide").eq(a):b.$slideTrack.children(".slick-slide").eq(a+b.options.slidesToShow+1),c=b.options.rtl===!0?f[0]?-1*(b.$slideTrack.width()-f[0].offsetLeft-f.width()):0:f[0]?-1*f[0].offsetLeft:0,c+=(b.$list.width()-f.outerWidth())/2)),c},b.prototype.getOption=b.prototype.slickGetOption=function(a){var b=this;return b.options[a]},b.prototype.getNavigableIndexes=function(){var e,a=this,b=0,c=0,d=[];for(a.options.infinite===!1?e=a.slideCount:(b=-1*a.options.slidesToScroll,c=-1*a.options.slidesToScroll,e=2*a.slideCount);e>b;)d.push(b),b=c+a.options.slidesToScroll,c+=a.options.slidesToScroll<=a.options.slidesToShow?a.options.slidesToScroll:a.options.slidesToShow;return d},b.prototype.getSlick=function(){return this},b.prototype.getSlideCount=function(){var c,d,e,b=this;return e=b.options.centerMode===!0?b.slideWidth*Math.floor(b.options.slidesToShow/2):0,b.options.swipeToSlide===!0?(b.$slideTrack.find(".slick-slide").each(function(c,f){return f.offsetLeft-e+a(f).outerWidth()/2>-1*b.swipeLeft?(d=f,!1):void 0}),c=Math.abs(a(d).attr("data-slick-index")-b.currentSlide)||1):b.options.slidesToScroll},b.prototype.goTo=b.prototype.slickGoTo=function(a,b){var c=this;c.changeSlide({data:{message:"index",index:parseInt(a)}},b)},b.prototype.init=function(b){var c=this;a(c.$slider).hasClass("slick-initialized")||(a(c.$slider).addClass("slick-initialized"),c.buildRows(),c.buildOut(),c.setProps(),c.startLoad(),c.loadSlider(),c.initializeEvents(),c.updateArrows(),c.updateDots(),c.checkResponsive(!0),c.focusHandler()),b&&c.$slider.trigger("init",[c]),c.options.accessibility===!0&&c.initADA(),c.options.autoplay&&(c.paused=!1,c.autoPlay())},b.prototype.initADA=function(){var b=this;b.$slides.add(b.$slideTrack.find(".slick-cloned")).attr({"aria-hidden":"true",tabindex:"-1"}).find("a, input, button, select").attr({tabindex:"-1"}),b.$slideTrack.attr("role","listbox"),b.$slides.not(b.$slideTrack.find(".slick-cloned")).each(function(c){a(this).attr({role:"option","aria-describedby":"slick-slide"+b.instanceUid+c})}),null!==b.$dots&&b.$dots.attr("role","tablist").find("li").each(function(c){a(this).attr({role:"presentation","aria-selected":"false","aria-controls":"navigation"+b.instanceUid+c,id:"slick-slide"+b.instanceUid+c})}).first().attr("aria-selected","true").end().find("button").attr("role","button").end().closest("div").attr("role","toolbar"),b.activateADA()},b.prototype.initArrowEvents=function(){var a=this;a.options.arrows===!0&&a.slideCount>a.options.slidesToShow&&(a.$prevArrow.off("click.slick").on("click.slick",{message:"previous"},a.changeSlide),a.$nextArrow.off("click.slick").on("click.slick",{message:"next"},a.changeSlide))},b.prototype.initDotEvents=function(){var b=this;b.options.dots===!0&&b.slideCount>b.options.slidesToShow&&a("li",b.$dots).on("click.slick",{message:"index"},b.changeSlide),b.options.dots===!0&&b.options.pauseOnDotsHover===!0&&a("li",b.$dots).on("mouseenter.slick",a.proxy(b.interrupt,b,!0)).on("mouseleave.slick",a.proxy(b.interrupt,b,!1))},b.prototype.initSlideEvents=function(){var b=this;b.options.pauseOnHover&&(b.$list.on("mouseenter.slick",a.proxy(b.interrupt,b,!0)),b.$list.on("mouseleave.
45slick",a.proxy(b.interrupt,b,!1)))},b.prototype.initializeEvents=function(){var b=this;b.initArrowEvents(),b.initDotEvents(),b.initSlideEvents(),b.$list.on("touchstart.slick mousedown.slick",{action:"start"},b.swipeHandler),b.$list.on("touchmove.slick mousemove.slick",{action:"move"},b.swipeHandler),b.$list.on("touchend.slick mouseup.slick",{action:"end"},b.swipeHandler),b.$list.on("touchcancel.slick mouseleave.slick",{action:"end"},b.swipeHandler),b.$list.on("click.slick",b.clickHandler),a(document).on(b.visibilityChange,a.proxy(b.visibility,b)),b.options.accessibility===!0&&b.$list.on("keydown.slick",b.keyHandler),b.options.focusOnSelect===!0&&a(b.$slideTrack).children().on("click.slick",b.selectHandler),a(window).on("orientationchange.slick.slick-"+b.instanceUid,a.proxy(b.orientationChange,b)),a(window).on("resize.slick.slick-"+b.instanceUid,a.proxy(b.resize,b)),a("[draggable!=true]",b.$slideTrack).on("dragstart",b.preventDefault),a(window).on("load.slick.slick-"+b.instanceUid,b.setPosition),a(document).on("ready.slick.slick-"+b.instanceUid,b.setPosition)},b.prototype.initUI=function(){var a=this;a.options.arrows===!0&&a.slideCount>a.options.slidesToShow&&(a.$prevArrow.show(),a.$nextArrow.show()),a.options.dots===!0&&a.slideCount>a.options.slidesToShow&&a.$dots.show()},b.prototype.keyHandler=function(a){var b=this;a.target.tagName.match("TEXTAREA|INPUT|SELECT")||(37===a.keyCode&&b.options.accessibility===!0?b.changeSlide({data:{message:b.options.rtl===!0?"next":"previous"}}):39===a.keyCode&&b.options.accessibility===!0&&b.changeSlide({data:{message:b.options.rtl===!0?"previous":"next"}}))},b.prototype.lazyLoad=function(){function g(c){a("img[data-lazy]",c).each(function(){var c=a(this),d=a(this).attr("data-lazy"),e=document.createElement("img");e.onload=function(){c.animate({opacity:0}
vendor: 4,284 bytes, line 45
45,100,function(){c.attr("src",d).animate({opacity:1},200,function(){c.removeAttr("data-lazy").removeClass("slick-loading")}),b.$slider.trigger("lazyLoaded",[b,c,d])})},e.onerror=function(){c.removeAttr("data-lazy").removeClass("slick-loading").addClass("slick-lazyload-error"),b.$slider.trigger("lazyLoadError",[b,c,d])},e.src=d})}var c,d,e,f,b=this;b.options.centerMode===!0?b.options.infinite===!0?(e=b.currentSlide+(b.options.slidesToShow/2+1),f=e+b.options.slidesToShow+2):(e=Math.max(0,b.currentSlide-(b.options.slidesToShow/2+1)),f=2+(b.options.slidesToShow/2+1)+b.currentSlide):(e=b.options.infinite?b.options.slidesToShow+b.currentSlide:b.currentSlide,f=Math.ceil(e+b.options.slidesToShow),b.options.fade===!0&&(e>0&&e--,f<=b.slideCount&&f++)),c=b.$slider.find(".slick-slide").slice(e,f),g(c),b.slideCount<=b.options.slidesToShow?(d=b.$slider.find(".slick-slide"),g(d)):b.currentSlide>=b.slideCount-b.options.slidesToShow?(d=b.$slider.find(".slick-cloned").slice(0,b.options.slidesToShow),g(d)):0===b.currentSlide&&(d=b.$slider.find(".slick-cloned").slice(-1*b.options.slidesToShow),g(d))},b.prototype.loadSlider=function(){var a=this;a.setPosition(),a.$slideTrack.css({opacity:1}),a.$slider.removeClass("slick-loading"),a.initUI(),"progressive"===a.options.lazyLoad&&a.progressiveLazyLoad()},b.prototype.next=b.prototype.slickNext=function(){var a=this;a.changeSlide({data:{message:"next"}})},b.prototype.orientationChange=function(){var a=this;a.checkResponsive(),a.setPosition()},b.prototype.pause=b.prototype.slickPause=function(){var a=this;a.autoPlayClear(),a.paused=!0},b.prototype.play=b.prototype.slickPlay=function(){var a=this;a.autoPlay(),a.options.autoplay=!0,a.paused=!1,a.focussed=!1,a.interrupted=!1},b.prototype.postSlide=function(a){var b=this;b.unslicked||(b.$slider.trigger("afterChange",[b,a]),b.animating=!1,b.setPosition(),b.swipeLeft=null,b.options.autoplay&&b.autoPlay(),b.options.accessibility===!0&&b.initADA())},b.prototype.prev=b.prototype.slickPrev=function(){var a=this;a.changeSlide({data:{message:"previous"}})},b.prototype.preventDefault=function(a){a.preventDefault()},b.prototype.progressiveLazyLoad=function(b){b=b||1;var e,f,g,c=this,d=a("img[data-lazy]",c.$slider);d.length?(e=d.first(),f=e.attr("data-lazy"),g=document.createElement("img"),g.onload=function(){e.attr("src",f).removeAttr("data-lazy").removeClass("slick-loading"),c.options.adaptiveHeight===!0&&c.setPosition(),c.$slider.trigger("lazyLoaded",[c,e,f]),c.progressiveLazyLoad()},g.onerror=function(){3>b?setTimeout(function(){c.progressiveLazyLoad(b+1)},500):(e.removeAttr("data-lazy").removeClass("slick-loading").addClass("slick-lazyload-error"),c.$slider.trigger("lazyLoadError",[c,e,f]),c.progressiveLazyLoad())},g.src=f):c.$slider.trigger("allImagesLoaded",[c])},b.prototype.refresh=function(b){var d,e,c=this;e=c.slideCount-c.options.slidesToShow,!c.options.infinite&&c.currentSlide>e&&(c.currentSlide=e),c.slideCount<=c.options.slidesToShow&&(c.currentSlide=0),d=c.currentSlide,c.destroy(!0),a.extend(c,c.initials,{currentSlide:d}),c.init(),b||c.changeSlide({data:{message:"index",index:d}},!1)},b.prototype.registerBreakpoints=function(){var c,d,e,b=this,f=b.options.responsive||null;if("array"===a.type(f)&&f.length){b.respondTo=b.options.respondTo||"window";for(c in f)if(e=b.breakpoints.length-1,d=f[c].breakpoint,f.hasOwnProperty(c)){for(;e>=0;)b.breakpoints[e]&&b.breakpoints[e]===d&&b.breakpoints.splice(e,1),e--;b.breakpoints.push(d),b.breakpointSettings[d]=f[c].settings}b.breakpoints.sort(function(a,c){return b.options.mobileFirst?a-c:c-a})}},b.prototype.reinit=function(){var b=this;b.$slides=b.$slideTrack.children(b.options.slide).addClass("slick-slide"),b.slideCount=b.$slides.length,b.currentSlide>=b.slideCount&&0!==b.currentSlide&&(b.currentSlide=b.currentSlide-b.options.slidesToScroll),b.slideCount<=b.options.slidesToShow&&(b.currentSlide=0),b.registerBreakpoints(),b.setProps(),b.setupInfinite(),b.buildArrows(),b.updateArrows(),b.initArrowEvents(),b.buildDots(),b.updateDots(),b.initDotEvents(),b.cleanUpSlideEvents(),b.initSlideEvents(),b.checkResponsive(!1,!0),b.options.focusOnSelect===!0&&a(b.$slideTrack).children().on("click.slick",b.selectHandler),b.setSlideClasses("number"==typeof b.currentSlide?b.currentSlide:0),b.setPosition(),b.focu
vendor: 2,346 bytes, line 45
45sHandler(),b.paused=!b.options.autoplay,b.autoPlay(),b.$slider.trigger("reInit",[b])},b.prototype.resize=function(){var b=this;a(window).width()!==b.windowWidth&&(clearTimeout(b.windowDelay),b.windowDelay=window.setTimeout(function(){b.windowWidth=a(window).width(),b.checkResponsive(),b.unslicked||b.setPosition()},50))},b.prototype.removeSlide=b.prototype.slickRemove=function(a,b,c){var d=this;return"boolean"==typeof a?(b=a,a=b===!0?0:d.slideCount-1):a=b===!0?--a:a,d.slideCount<1||0>a||a>d.slideCount-1?!1:(d.unload(),c===!0?d.$slideTrack.children().remove():d.$slideTrack.children(this.options.slide).eq(a).remove(),d.$slides=d.$slideTrack.children(this.options.slide),d.$slideTrack.children(this.options.slide).detach(),d.$slideTrack.append(d.$slides),d.$slidesCache=d.$slides,void d.reinit())},b.prototype.setCSS=function(a){var d,e,b=this,c={};b.options.rtl===!0&&(a=-a),d="left"==b.positionProp?Math.ceil(a)+"px":"0px",e="top"==b.positionProp?Math.ceil(a)+"px":"0px",c[b.positionProp]=a,b.transformsEnabled===!1?b.$slideTrack.css(c):(c={},b.cssTransitions===!1?(c[b.animType]="translate("+d+", "+e+")",b.$slideTrack.css(c)):(c[b.animType]="translate3d("+d+", "+e+", 0px)",b.$slideTrack.css(c)))},b.prototype.setDimensions=function(){var a=this;a.options.vertical===!1?a.options.centerMode===!0&&a.$list.css({padding:"0px "+a.options.centerPadding}):(a.$list.height(a.$slides.first().outerHeight(!0)*a.options.slidesToShow),a.options.centerMode===!0&&a.$list.css({padding:a.options.centerPadding+" 0px"})),a.listWidth=a.$list.width(),a.listHeight=a.$list.height(),a.options.vertical===!1&&a.options.variableWidth===!1?(a.slideWidth=Math.ceil(a.listWidth/a.options.slidesToShow),a.$slideTrack.width(Math.ceil(a.slideWidth*a.$slideTrack.children(".slick-slide").length))):a.options.variableWidth===!0?a.$slideTrack.width(5e3*a.slideCount):(a.slideWidth=Math.ceil(a.listWidth),a.$slideTrack.height(Math.ceil(a.$slides.first().outerHeight(!0)*a.$slideTrack.children(".slick-slide").length)));var b=a.$slides.first().outerWidth(!0)-a.$slides.first().width();a.options.variableWidth===!1&&a.$slideTrack.children(".slick-slide").width(a.slideWidth-b)},b.prototype.setFade=function(){var c,b=this;b.$slides.each(function(d,e){c=b.slideWidth*d*-1,b.options.rtl===!0?a(e).css({position:"relative",right:c,top:0,zIndex:b.options.zIndex-2,opacity:0}
vendor: 3,177 bytes, line 45
45):a(e).css({position:"relative",left:c,top:0,zIndex:b.options.zIndex-2,opacity:0})}),b.$slides.eq(b.currentSlide).css({zIndex:b.options.zIndex-1,opacity:1})},b.prototype.setHeight=function(){var a=this;if(1===a.options.slidesToShow&&a.options.adaptiveHeight===!0&&a.options.vertical===!1){var b=a.$slides.eq(a.currentSlide).outerHeight(!0);a.$list.css("height",b)}},b.prototype.setOption=b.prototype.slickSetOption=function(){var c,d,e,f,h,b=this,g=!1;if("object"===a.type(arguments[0])?(e=arguments[0],g=arguments[1],h="multiple"):"string"===a.type(arguments[0])&&(e=arguments[0],f=arguments[1],g=arguments[2],"responsive"===arguments[0]&&"array"===a.type(arguments[1])?h="responsive":"undefined"!=typeof arguments[1]&&(h="single")),"single"===h)b.options[e]=f;else if("multiple"===h)a.each(e,function(a,c){b.options[a]=c});else if("responsive"===h)for(d in f)if("array"!==a.type(b.options.responsive))b.options.responsive=[f[d]];else{for(c=b.options.responsive.length-1;c>=0;)b.options.responsive[c].breakpoint===f[d].breakpoint&&b.options.responsive.splice(c,1),c--;b.options.responsive.push(f[d])}g&&(b.unload(),b.reinit())},b.prototype.setPosition=function(){var a=this;a.setDimensions(),a.setHeight(),a.options.fade===!1?a.setCSS(a.getLeft(a.currentSlide)):a.setFade(),a.$slider.trigger("setPosition",[a])},b.prototype.setProps=function(){var a=this,b=document.body.style;a.positionProp=a.options.vertical===!0?"top":"left","top"===a.positionProp?a.$slider.addClass("slick-vertical"):a.$slider.removeClass("slick-vertical"),(void 0!==b.WebkitTransition||void 0!==b.MozTransition||void 0!==b.msTransition)&&a.options.useCSS===!0&&(a.cssTransitions=!0),a.options.fade&&("number"==typeof a.options.zIndex?a.options.zIndex<3&&(a.options.zIndex=3):a.options.zIndex=a.defaults.zIndex),void 0!==b.OTransform&&(a.animType="OTransform",a.transformType="-o-transform",a.transitionType="OTransition",void 0===b.perspectiveProperty&&void 0===b.webkitPerspective&&(a.animType=!1)),void 0!==b.MozTransform&&(a.animType="MozTransform",a.transformType="-moz-transform",a.transitionType="MozTransition",void 0===b.perspectiveProperty&&void 0===b.MozPerspective&&(a.animType=!1)),void 0!==b.webkitTransform&&(a.animType="webkitTransform",a.transformType="-webkit-transform",a.transitionType="webkitTransition",void 0===b.perspectiveProperty&&void 0===b.webkitPerspective&&(a.animType=!1)),void 0!==b.msTransform&&(a.animType="msTransform",a.transformType="-ms-transform",a.transitionType="msTransition",void 0===b.msTransform&&(a.animType=!1)),void 0!==b.transform&&a.animType!==!1&&(a.animType="transform",a.transformType="transform",a.transitionType="transition"),a.transformsEnabled=a.options.useTransform&&null!==a.animType&&a.animType!==!1},b.prototype.setSlideClasses=function(a){var c,d,e,f,b=this;d=b.$slider.find(".slick-slide").removeClass("slick-active slick-center slick-current").attr("aria-hidden","true"),b.$slides.eq(a).addClass("slick-current"),b.options.centerMode===!0?(c=Math.floor(b.options.slidesToShow/2),b.options.infinite===!0&&(a>=c&&a<=b.slideCount-1-c?b.$slides.slice(a-c,a+c+1).addClass("slick-active").attr("aria-hidden","false"):(e=b.options.slidesToShow+a,
vendor: 1,607 bytes, line 46
46d.slice(e-c+1,e+c+2).addClass("slick-active").attr("aria-hidden","false")),0===a?d.eq(d.length-1-b.options.slidesToShow).addClass("slick-center"):a===b.slideCount-1&&d.eq(b.options.slidesToShow).addClass("slick-center")),b.$slides.eq(a).addClass("slick-center")):a>=0&&a<=b.slideCount-b.options.slidesToShow?b.$slides.slice(a,a+b.options.slidesToShow).addClass("slick-active").attr("aria-hidden","false"):d.length<=b.options.slidesToShow?d.addClass("slick-active").attr("aria-hidden","false"):(f=b.slideCount%b.options.slidesToShow,e=b.options.infinite===!0?b.options.slidesToShow+a:a,b.options.slidesToShow==b.options.slidesToScroll&&b.slideCount-a<b.options.slidesToShow?d.slice(e-(b.options.slidesToShow-f),e+f).addClass("slick-active").attr("aria-hidden","false"):d.slice(e,e+b.options.slidesToShow).addClass("slick-active").attr("aria-hidden","false")),"ondemand"===b.options.lazyLoad&&b.lazyLoad()},b.prototype.setupInfinite=function(){var c,d,e,b=this;if(b.options.fade===!0&&(b.options.centerMode=!1),b.options.infinite===!0&&b.options.fade===!1&&(d=null,b.slideCount>b.options.slidesToShow)){for(e=b.options.centerMode===!0?b.options.slidesToShow+1:b.options.slidesToShow,c=b.slideCount;c>b.slideCount-e;c-=1)d=c-1,a(b.$slides[d]).clone(!0).attr("id","").attr("data-slick-index",d-b.slideCount).prependTo(b.$slideTrack).addClass("slick-cloned");for(c=0;e>c;c+=1)d=c,a(b.$slides[d]).clone(!0).attr("id","").attr("data-slick-index",d+b.slideCount).appendTo(b.$slideTrack).addClass("slick-cloned");b.$slideTrack.find(".slick-cloned").find("[id]").each(function(){a(this).attr("id","")})}},b.prototype.
vendor: 4,540 bytes, line 46
46interrupt=function(a){var b=this;a||b.autoPlay(),b.interrupted=a},b.prototype.selectHandler=function(b){var c=this,d=a(b.target).is(".slick-slide")?a(b.target):a(b.target).parents(".slick-slide"),e=parseInt(d.attr("data-slick-index"));return e||(e=0),c.slideCount<=c.options.slidesToShow?(c.setSlideClasses(e),void c.asNavFor(e)):void c.slideHandler(e)},b.prototype.slideHandler=function(a,b,c){var d,e,f,g,j,h=null,i=this;return b=b||!1,i.animating===!0&&i.options.waitForAnimate===!0||i.options.fade===!0&&i.currentSlide===a||i.slideCount<=i.options.slidesToShow?void 0:(b===!1&&i.asNavFor(a),d=a,h=i.getLeft(d),g=i.getLeft(i.currentSlide),i.currentLeft=null===i.swipeLeft?g:i.swipeLeft,i.options.infinite===!1&&i.options.centerMode===!1&&(0>a||a>i.getDotCount()*i.options.slidesToScroll)?void(i.options.fade===!1&&(d=i.currentSlide,c!==!0?i.animateSlide(g,function(){i.postSlide(d)}):i.postSlide(d))):i.options.infinite===!1&&i.options.centerMode===!0&&(0>a||a>i.slideCount-i.options.slidesToScroll)?void(i.options.fade===!1&&(d=i.currentSlide,c!==!0?i.animateSlide(g,function(){i.postSlide(d)}):i.postSlide(d))):(i.options.autoplay&&clearInterval(i.autoPlayTimer),e=0>d?i.slideCount%i.options.slidesToScroll!==0?i.slideCount-i.slideCount%i.options.slidesToScroll:i.slideCount+d:d>=i.slideCount?i.slideCount%i.options.slidesToScroll!==0?0:d-i.slideCount:d,i.animating=!0,i.$slider.trigger("beforeChange",[i,i.currentSlide,e]),f=i.currentSlide,i.currentSlide=e,i.setSlideClasses(i.currentSlide),i.options.asNavFor&&(j=i.getNavTarget(),j=j.slick("getSlick"),j.slideCount<=j.options.slidesToShow&&j.setSlideClasses(i.currentSlide)),i.updateDots(),i.updateArrows(),i.options.fade===!0?(c!==!0?(i.fadeSlideOut(f),i.fadeSlide(e,function(){i.postSlide(e)})):i.postSlide(e),void i.animateHeight()):void(c!==!0?i.animateSlide(h,function(){i.postSlide(e)}):i.postSlide(e))))},b.prototype.startLoad=function(){var a=this;a.options.arrows===!0&&a.slideCount>a.options.slidesToShow&&(a.$prevArrow.hide(),a.$nextArrow.hide()),a.options.dots===!0&&a.slideCount>a.options.slidesToShow&&a.$dots.hide(),a.$slider.addClass("slick-loading")},b.prototype.swipeDirection=function(){var a,b,c,d,e=this;return a=e.touchObject.startX-e.touchObject.curX,b=e.touchObject.startY-e.touchObject.curY,c=Math.atan2(b,a),d=Math.round(180*c/Math.PI),0>d&&(d=360-Math.abs(d)),45>=d&&d>=0?e.options.rtl===!1?"left":"right":360>=d&&d>=315?e.options.rtl===!1?"left":"right":d>=135&&225>=d?e.options.rtl===!1?"right":"left":e.options.verticalSwiping===!0?d>=35&&135>=d?"down":"up":"vertical"},b.prototype.swipeEnd=function(a){var c,d,b=this;if(b.dragging=!1,b.interrupted=!1,b.shouldClick=b.touchObject.swipeLength>10?!1:!0,void 0===b.touchObject.curX)return!1;if(b.touchObject.edgeHit===!0&&b.$slider.trigger("edge",[b,b.swipeDirection()]),b.touchObject.swipeLength>=b.touchObject.minSwipe){switch(d=b.swipeDirection()){case"left":case"down":c=b.options.swipeToSlide?b.checkNavigable(b.currentSlide+b.getSlideCount()):b.currentSlide+b.getSlideCount(),b.currentDirection=0;break;case"right":case"up":c=b.options.swipeToSlide?b.checkNavigable(b.currentSlide-b.getSlideCount()):b.currentSlide-b.getSlideCount(),b.currentDirection=1}"vertical"!=d&&(b.slideHandler(c),b.touchObject={},b.$slider.trigger("swipe",[b,d]))}else b.touchObject.startX!==b.touchObject.curX&&(b.slideHandler(b.currentSlide),b.touchObject={})},b.prototype.swipeHandler=function(a){var b=this;if(!(b.options.swipe===!1||"ontouchend"in document&&b.options.swipe===!1||b.options.draggable===!1&&-1!==a.type.indexOf("mouse")))switch(b.touchObject.fingerCount=a.originalEvent&&void 0!==a.originalEvent.touches?a.originalEvent.touches.length:1,b.touchObject.minSwipe=b.listWidth/b.options.touchThreshold,b.options.verticalSwiping===!0&&(b.touchObject.minSwipe=b.listHeight/b.options.touchThreshold),a.data.action){case"start":b.swipeStart(a);break;case"move":b.swipeMove(a);break;case"end":b.swipeEnd(a)}},b.prototype.swipeMove=function(a){var d,e,f,g,h,b=this;return h=void 0!==a.originalEvent?a.originalEvent.touches:null,!b.dragging||h&&1!==h.length?!1:(d=b.getLeft(b.currentSlide),b.touchObject.curX=void 0!==h?h[0].pageX:a.clientX,b.touchObject.curY=void 0!==h?h[0].pageY:a.clientY,b.touchObject.swipeLength=Math.round(Math.sqrt(Math.pow(b.touchObject.curX-b.touchObject.startX,2))),b.options.verticalSwiping===!0&&(b.touchObject.swipeLength=Math.round(Math.sqrt(Math.pow(b.touchObject.curY-b.touchObject.startY,2)))),e=b.swipeDirection(),"vertical"!==e?(void 0!==a.originalEvent&&b.touchObject.swipeLength>
464&&a.preventDefault(),g=(b.options.rtl===!1?1:-1)*(b.touchObject.curX>b.touchObject.startX?1:-1),b.options.verticalSwiping===!0&&(g=b.touchObject.curY>b.touchObject.startY?1:-1),f=b.touchObject.swipeLength,b.touchObject.edgeHit=!1,b.options.infinite===!1&&(0===b.currentSlide&&"right"===e||b.currentSlide>=b.getDotCount()&&"left"===e)&&(f=b.touchObject.swipeLength*b.options.edgeFriction,b.touchObject.edgeHit=!0),b.options.vertical===!1?b.swipeLeft=d+f*g:b.swipeLeft=d+f*(b.$list.height()/b.listWidth)*g,b.options.verticalSwiping===!0&&(b.swipeLeft=d+f*g),b.options.fade===!0||b.options.touchMove===!1?!1:b.animating===!0?(b.swipeLeft=null,!1):void b.setCSS(b.swipeLeft)):void 0)},b.prototype.swipeStart=function(a){var c,b=this;return b.interrupted=!0,1!==b.touchObject.fingerCount||b.slideCount<=b.options.slidesToShow?(b.touchObject={},!1):(void 0!==a.originalEvent&&void 0!==a.originalEvent.touches&&(c=a.originalEvent.touches[0]),b.touchObject.startX=b.touchObject.curX=void 0!==c?c.pageX:a.clientX,b.touchObject.startY=b.touchObject.curY=void 0!==c?c.pageY:a.clientY,void(b.dragging=!0))},b.prototype.unfilterSlides=b.prototype.slickUnfilter=function(){var a=this;null!==a.$slidesCache&&(a.unload(),a.$slideTrack.children(this.options.slide).detach(),a.$slidesCache.appendTo(a.$slideTrack),a.reinit())},b.prototype.unload=function(){var b=this;a(".slick-cloned",b.$slider).remove(),b.$dots&&b.$dots.remove(),b.$prevArrow&&b.htmlExpr.test(b.options.prevArrow)&&b.$prevArrow.remove(),b.$nextArrow&&b.htmlExpr.test(b.options.nextArrow)&&b.$nextArrow.remove(),b.$slides.removeClass("slick-slide slick-active slick-visible slick-current").attr("aria-hidden","true").css("width","")},b.prototype.unslick=function(a){var b=this;b.$slider.trigger("unslick",[b,a]),b.destroy()},b.prototype.updateArrows=function(){var b,a=this;b=Math.floor(a.options.slidesToShow/2),a.options.arrows===!0&&a.slideCount>a.options.slidesToShow&&!a.options.infinite&&(a.$prevArrow.removeClass("slick-disabled").attr("aria-disabled","false"),a.$nextArrow.removeClass("slick-disabled").attr("aria-disabled","false"),0===a.currentSlide?(a.$prevArrow.addClass("slick-disabled").attr("aria-disabled","true"),a.$nextArrow.removeClass("slick-disabled").attr("aria-disabled","false")):a.currentSlide>=a.slideCount-a.options.slidesToShow&&a.options.centerMode===!1?(a.$nextArrow.addClass("slick-disabled").attr("aria-disabled","true"),a.$prevArrow.removeClass("slick-disabled").attr("aria-disabled","false")):a.currentSlide>=a.slideCount-1&&a.options.centerMode===!0&&(a.$nextArrow.addClass("slick-disabled").attr("aria-disabled","true"),a.$prevArrow.removeClass("slick-disabled").attr("aria-disabled","false")))},b.prototype.updateDots=function(){var a=this;null!==a.$dots&&(a.$dots.find("li").removeClass("slick-active").attr("aria-hidden","true"),a.$dots.find("li").eq(Math.floor(a.currentSlide/a.options.slidesToScroll)).addClass("slick-active").attr("aria-hidden","false"))},b.prototype.visibility=function(){var a=this;a.options.autoplay&&(document[a.hidden]?a.interrupted=!0:a.interrupted=!1)},a.fn.slick=function(){var f,g,a=this,c=arguments[0],d=Array.prototype.slice.call(arguments,1),e=a.length;for(f=0;e>f;f++)if("object"==typeof c||"undefined"==typeof c?a[f].slick=new b(a[f],c):g=a[f].slick[c].apply(a[f].slick,d),"undefined"!=typeof g)return g;return a}});
47
48jQuery.noConflict();
49
50(function ($) {
51  function adjustImageHeight() {
52    var currentModal = $('.modal.in');
53    var currentWindowHeight = $(window).height();
54
55    if (currentModal.length > 0) {
56      var modalHeaderHeight = currentModal.find('.modal-header').outerHeight();
57      var modalThumbnailsHeight = currentModal.find('.modal-thumbnail-container').outerHeight();
58      var availableHeight = currentWindowHeight - (modalHeaderHeight + modalThumbnailsHeight + 100); // 100px paddings
59    }
60
61    // Resize images which would be higher than viewport
62    $('.slick-slider')
63      .find('.slick-img-responsive')
64      .each(function () {
65        $(this).attr('style', '');
66        var currentImageHeight = $(this).height();
67        var currentTextHeight = 0;
68
69        if ($(this).parent().next('.modal-text').length > 0) currentTextHeight = $(this).parent().next('.modal-text').outerHeight();
70
71        var currentElementHeight = currentImageHeight + currentTextHeight;
72
73        if (currentElementHeight > availableHeight) {
74          $(this).height(availableHeight - currentTextHeight);
75        }
76      });
77
78    // force slick to recalculate height of container
79    $('.slick-slider').slick('setPosition');
80  }
81
82  function setSlickForSingleGallery() {
83    // Single gallery
84    $('.bwGallery').each(function () {
85      if ($(window).width() < 992) {
86        var currentGalley = $(this).find('.box-item:not(.slick-initialized)');
87        var shownImages = currentGalley.find('.img-responsive');
88        var imageContainerClass = currentGalley.find('.image-container').attr('class');
89
90        // Find all images in gallery (> 4 images are hidden in modal)
91        var allImages = currentGalley.next().find('.image-container .img-responsive');
92
93        // Exclude already shown images
94        var remainingImages = allImages.filter(function (index) {
95          if (index > shownImages.length) {
96            return true;
97          }
98        });
99
100        // Append remaining images in slider
101        remainingImages.each(function (index) {
102          var currentCopyright = $(this).next('.img-copyright').text();
103          var currentDescription = $(this).parent().next('.modal-text').text();
104
105          if ($(this).parent().next('.modal-text').find('.image-description').length > 0) var currentDescription = $(this).parent().next('.modal-text').find('.image-description').text();
106
107          var copyrightHtml;
108          var descriptionHtml;
109
110          // create clone of modal image
111          var generatedImage = $(this).clone(true);
112          currentGalley.append(generatedImage);
113
114          // append copyright and description element
115          var appendedImage = currentGalley.find(generatedImage);
116
117          if (currentCopyright != '') copyrightHtml = '<div class="img-copyright">' + currentCopyright + '</div>';
118          if (currentDescription != '') descriptionHtml = '<div class="img-description">' + currentDescription + '</div>';
119
120          var imageContainer = '<div class="generated only-mobile ' + imageContainerClass + '"><div class="image">' + copyrightHtml + '</div>' + descriptionHtml + '</div>';
121          imageContainer = $(imageContainer);
122          imageContainer.find('.image').prepend(appendedImage);
123
124          // append dynamic created element to gallery
125          currentGalley.append(imageContainer);
126        });
127
128        currentGalley.slick({
129          lazyLoad: 'ondemand',
130          adaptiveHeight: true,
131          infinite: false,
132          responsive: [
133            {
134              breakpoint: 768,
135              settings: {
136                slidesToShow: 1,
137              },
138            },
139            {
140              breakpoint: 992,
141              settings: {
142                slidesToShow: 2,
143              },
144            },
145          ],
146        });
147
148        // Adjust container height on slide change
149        currentGalley.on('lazyLoaded', function () {
150          setTimeout(function () {
151            // Resize all slick images after being lazy loaded for setting dimensions
152            adjustImageHeight();
153          }, 500);
154        });
155
156        // Disable Image Pop-Up on click
157        currentGalley.find('.image a').removeClass('gallery-open-image');
158      } else {
159        var currentGalley = $(this).find('.box-item.slick-initialized');
160
161        if (currentGalley.length > 0) {
162          currentGalley.slick('unslick');
163          currentGalley.find('.generated').remove();
164          currentGalley.find('.image a').addClass('gallery-open-image');
165        }
166      }
167    });
168  }
169
170  function initModalSliders() {
171    // Bildergalerie Pop-Up öffnen
172    if ($('.modal .modal-slick').length > 0) {
173      $('.modal').on('shown.bs.modal', function () {
174        // Bildergalerien laden
175        if ($('.modal-slider-for').length > 0) {
176          $('.modal-slider-for').each(function (key, item) {
177            var sliderIdName = 'slider' + key;
178            var sliderNavIdName = 'sliderNav' + key;
179
180            this.id = sliderIdName;
181            $('.modal-slider-nav')[key].id = sliderNavIdName;
182
183            var sliderId = '#' + sliderIdName;
184            var sliderNavId = '#' + sliderNavIdName;
185
186            // Großes Bild
187            $(sliderId).not('.slick-initialized').slick({
188              lazyLoad: 'ondemand',
189              slidesToShow: 1,
190              slidesToScroll: 1,
191              fade: true,
192              asNavFor: sliderNavId,
193              adaptiveHeight: true,
194            });
195
196            $(sliderId).on('lazyLoaded', function () {
197              setTimeout(function () {
198                // Resize all slick images after being lazy loaded for setting dimensions
199                adjustImageHeight();
200              }, 500);
201            });
202
203            // Thumbnails (ohne lazyloading)
204            $(sliderNavId).not('.slick-initialized').slick({
205              slidesToScroll: 1,
206              asNavFor: sliderId,
207              centerMode: false,
208              focusOnSelect: true,
209              arrows: false,
210              variableWidth: true,
211              infinite: false,
212            });
213          });
214
215          $('.slickPrev').click(function () {
216            $('.slick-slider').slick('slickPrev');
217          });
218
219          $('.slickNext').click(function () {
220            $('.slick-slider').slick('slickNext');
221          });
222
223          // Resize after showing modal
224          //$('.slick').slick('setPosition');
225        }
226
227        adjustImageHeight();
228      });
229    }
230  }
231
232  function initSliders() {
233    const sliderContainers = $('.slick-slider-container').not('.slick-initialized, .slick-slider-stage');
234
235    if (sliderContainers.length > 0) {
236      let slickOptions = {
237        adaptiveHeight: true,
238        responsive: [],
239      };
240      let optionsMd = {
241        breakpoint: 991,
242        settings: {
243          adaptiveHeight: true,
244        },
245      };
246
247      sliderContainers.each(function () {
248        if ($(this).attr('data-slides')) {
249          slickOptions.slidesToShow = $(this).attr('data-slides');
250        }
251
252        // xs
253        if ($(this).attr('data-slides-xs')) {
254          let optionsXs = {
255            breakpoint: 767,
256            settings: {
257              slidesToShow: $(this).attr('data-slides-xs'),
258            },
259          };
260
261          slickOptions.responsive.push(optionsXs);
262        }
263
264        // md
265        if ($(this).attr('data-slides-md')) {
266          optionsMd.settings.slidesToShow = $(this).attr('data-slides-md');
267        }
268
269        slickOptions.responsive.push(optionsMd);
270
271        // xl
272        if ($(this).attr('data-slides-xl')) {
273          let optionsXl = {
274            breakpoint: 1200,
275            settings: {
276              slidesToShow: $(this).attr('data-slides-xl'),
277            },
278          };
279
280          slickOptions.responsive.push(optionsXl);
281        }
282
283        $(this).slick(slickOptions);
284      });
285    }
286  }
287
288  function preventAriaDescribedBy() {
289    $('.slick-slider').each(function () {
290      const $slider = $(this);
291      const clean = () => $slider.find('.slick-slide').removeAttr('aria-describedby');
292
293      clean();
294      $slider.on('afterChange', clean);
295      $slider.on('init', clean);
296    });
297  }
298
299  setSlickForSingleGallery();
300  initSliders();
301  initModalSliders();
302  setTimeout(preventAriaDescribedBy, 500);
303
304  $(document).on('ajaxPaginationTriggered', function () {
305    initModalSliders();
306  });
307
308  $(window).resize(function () {
309    setTimeout(function () {
310      setSlickForSingleGallery();
311      adjustImageHeight();
312    }, 500);
313  });
314})(jQuery);
315
316
317jQuery.noConflict();
318
319jQuery(document).ready(function ($) {
320  Bw.Viewport = function () {
321    var self = this;
322    this.width = 0;
323    this.height = 0;
324    this.scrollLeft = 0;
325    this.scrollTop = 0;
326    this.scrollInitiators = [];
327    this.scrollBarSize = 0;
328    this.hasSizeChanged = false;
329    this.hasScrollChanged = false;
330
331    // Blendet die Scrollbar auf allen Seiten aus. Das ist eher Quatsch.
332    this.constructor = function () {
333      self.width = $(window).width();
334      self.height = $(window).height();
335    };
336
337    this.setScrollLeft = function (value) {
338      if (self.scrollLeft == value) return;
339
340      self.scrollLeft = value;
341      self.hasScrollChanged = true;
342
343      //$(window).scrollLeft( value );
344      $('html,body').animate({
345        scrollLeft: value,
346      });
347    };
348
349    this.setScrollTop = function (value) {
350      if (self.scrollTop == value) return;
351
352      self.scrollTop = value;
353      self.hasScrollChanged = true;
354
355      //$(window).scrollTop( value );
356      $('html,body').animate({
357        scrollTop: value,
358      });
359    };
360
361    this.triggerResize = function () {
362      self.hasSizeChanged = true;
363    };
364
365    // Disable the document scrollbars.
366    this.disableScrollbars = function (initiator) {
367      var index = self.scrollInitiators.indexOf(initiator);
368      if (index == -1) {
369        self.scrollInitiators.push(initiator);
370      }
371
372      if (this.scrollInitiators.length != 1) {
373        return;
374      }
375
376      var style = self.el.style;
377
378      if (isNaN(self.scrollBarSize)) {
379        var width = self.el.width();
380        style.overflow = 'hidden';
381        self.scrollBarSize = self.el.width() - width;
382        style.paddingRight = self.scrollBarSize + 'px';
383      } else {
384        style.overflow = 'hidden';
385        style.paddingRight = self.scrollBarSize + 'px';
386      }
387
388      //self.trigger('scrollbars', false);
389    };
390
391    // Enable the document scrollbars
392    this.enableScrollbars = function (initiator) {
393      var index = self.scrollInitiators.indexOf(initiator);
394      if (index != -1) {
395        self.scrollInitiators.splice(index, 1);
396      }
397
398      if (self.scrollInitiators.length != 0) return;
399
400      self.el.style.overflow = '';
401      self.el.style.paddingRight = '';
402      //self.trigger('scrollbars', true);
403    };
404
405    // Triggered on every page repaint
406    this.onFrame = function () {
407      if (self.hasSizeChanged) {
408        self.hasSizeChanged = false;
409        var width = self.width;
410        var height = self.height;
411
412        /*self.trigger('pre-resize',  width, height);
413			 self.trigger('resize',      width, height);
414			 self.trigger('post-resize', width, height);*/
415      }
416
417      if (self.hasScrollChanged) {
418        self.hasScrollChanged = false;
419        var scrollLeft = self.scrollLeft;
420        var scrollTop = self.scrollTop;
421
422        self.trigger('scroll', scrollLeft, scrollTop);
423        self.trigger('post-scroll', scrollLeft, scrollTop);
424      }
425    };
426
427    // Triggered after the size of the window has changed.
428    this.onWindowResize = function () {
429      var width = $(window).width();
430      var height = $(window).height();
431
432      if (self.width != width || self.height != height) {
433        self.width = width;
434        self.height = height;
435        self.hasSizeChanged = true;
436      }
437    };
438
439    // Triggered after the scroll position of the document has changed.
440    this.onWindowScroll = function () {
441      /*var scrollLeft = supportsPageOffset ? window.pageXOffset : isCSS1Compat ? document.documentElement.scrollLeft : document.body.scrollLeft;
442		 var scrollTop  = supportsPageOffset ? window.pageYOffset : isCSS1Compat ? document.documentElement.scrollTop  : document.body.scrollTop;*/
443      var scrollLeft = $(window).scrollLeft();
444      var scrollTop = $(window).scrollTop();
445
446      //console.log("onWindowScroll");
447
448      if (self.scrollLeft != scrollLeft || self.scrollTop != scrollTop) {
449        self.scrollLeft = scrollLeft;
450        self.scrollTop = scrollTop;
451        self.hasScrollChanged = true;
452      }
453    };
454
455    // Return the current instance of the Viewport service.
456    /*this.getInstance() {
457	 return Services.get('Viewport', Viewport);
458	 }*/
459
460    $(window).scroll(function () {
461      self.onWindowScroll();
462      // attachEvent ?
463    });
464
465    $(window).resize(function () {
466      self.onWindowResize();
467      // attachEvent ?
468    });
469
470    this.constructor();
471  };
472});
473
474
475/*! Magnific Popup - v1.1.0 - 2016-02-20
476* http://dimsemenov.com/plugins/magnific-popup/
477* Copyright (c) 2016 Dmitry Semenov; */
478!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a("object"==typeof exports?require("jquery"):window.jQuery||window.Zepto)}(function(a){var b,c,d,e,f,g,h="Close",i="BeforeClose",j="AfterClose",k="BeforeAppend",l="MarkupParse",m="Open",n="Change",o="mfp",p="."+o,q="mfp-ready",r="mfp-removing",s="mfp-prevent-close",t=function(){},u=!!window.jQuery,v=a(window),w=function(a,c){b.ev.on(o+a+p,c)},x=function(b,c,d,e){var f=document.createElement("div");return f.className="mfp-"+b,d&&(f.innerHTML=d),e?c&&c.appendChild(f):(f=a(f),c&&f.appendTo(c)),f},y=function(c,d){b.ev.triggerHandler(o+c,d),b.st.callbacks&&(c=c.charAt(0).toLowerCase()+c.slice(1),b.st.callbacks[c]&&b.st.callbacks[c].apply(b,a.isArray(d)?d:[d]))},z=function(c){return c===g&&b.currTemplate.closeBtn||(b.currTemplate.closeBtn=a(b.st.closeMarkup.replace("%title%",b.st.tClose)),g=c),b.currTemplate.closeBtn},A=function(){a.magnificPopup.instance||(b=new t,b.init(),a.magnificPopup.instance=b)},B=function(){var a=document.createElement("p").style,b=["ms","O","Moz","Webkit"];if(void 0!==a.transition)return!0;for(;b.length;)if(b.pop()+"Transition"in a)return!0;return!1};t.prototype={constructor:t,init:function(){var c=navigator.appVersion;b.isLowIE=b.isIE8=document.all&&!document.addEventListener,b.isAndroid=/android/gi.test(c),b.isIOS=/iphone|ipad|ipod/gi.test(c),b.supportsTransition=B(),b.probablyMobile=b.isAndroid||b.isIOS||/(Opera Mini)|Kindle|webOS|BlackBerry|(Opera Mobi)|(Windows Phone)|IEMobile/i.test(navigator.userAgent),d=a(document),b.popupsCache={}},open:function(c){var e;if(c.isObj===!1){b.items=c.items.toArray(),b.index=0;var g,h=c.items;for(e=0;e<h.length;e++)if(g=h[e],g.parsed&&(g=g.el[0]),g===c.el[0]){b.index=e;break}}else b.items=a.isArray(c.items)?c.items:[c.items],b.index=c.index||0;if(b.isOpen)return void b.updateItemHTML();b.types=[],f="",c.mainEl&&c.mainEl.length?b.ev=c.mainEl.eq(0):b.ev=d,c.key?(b.popupsCache[c.key]||(b.popupsCache[c.key]={}),b.currTemplate=b.popupsCache[c.key]):b.currTemplate={},b.st=a.extend(!0,{},a.magnificPopup.defaults,c),b.fixedContentPos="auto"===b.st.fixedContentPos?!b.probablyMobile:b.st.fixedContentPos,b.st.modal&&(b.st.closeOnContentClick=!1,b.st.closeOnBgClick=!1,b.st.showCloseBtn=!1,b.st.enableEscapeKey=!1),b.bgOverlay||(b.bgOverlay=x("bg").on("click"+p,function(){b.close()}),b.wrap=x("wrap").attr("tabindex",-1).on("click"+p,function(a){b._checkIfClose(a.target)&&b.close()}),b.container=x("container",b.wrap)),b.contentContainer=x("content"),b.st.preloader&&(b.preloader=x("preloader",b.container,b.st.tLoading));var i=a.magnificPopup.modules;for(e=0;e<i.length;e++){var j=i[e];j=j.charAt(0).toUpperCase()+j.slice(1),b["init"+j].call(b)}y("BeforeOpen"),b.st.showCloseBtn&&(b.st.closeBtnInside?(w(l,function(a,b,c,d){c.close_replaceWith=z(d.type)}),f+=" mfp-close-btn-in"):b.wrap.append(z())),b.st.alignTop&&(f+=" mfp-align-top"),b.fixedContentPos?b.wrap.css({overflow:b.st.overflowY,overflowX:"hidden",overflowY:b.
478st.overflowY}):b.wrap.css({top:v.scrollTop(),position:"absolute"}),(b.st.fixedBgPos===!1||"auto"===b.st.fixedBgPos&&!b.fixedContentPos)&&b.bgOverlay.css({height:d.height(),position:"absolute"}),b.st.enableEscapeKey&&d.on("keyup"+p,function(a){27===a.keyCode&&b.close()}),v.on("resize"+p,function(){b.updateSize()}),b.st.closeOnContentClick||(f+=" mfp-auto-cursor"),f&&b.wrap.addClass(f);var k=b.wH=v.height(),n={};if(b.fixedContentPos&&b._hasScrollBar(k)){var o=b._getScrollbarSize();o&&(n.marginRight=o)}b.fixedContentPos&&(b.isIE7?a("body, html").css("overflow","hidden"):n.overflow="hidden");var r=b.st.mainClass;return b.isIE7&&(r+=" mfp-ie7"),r&&b._addClassToMFP(r),b.updateItemHTML(),y("BuildControls"),a("html").css(n),b.bgOverlay.add(b.wrap).prependTo(b.st.prependTo||a(document.body)),b._lastFocusedEl=document.activeElement,setTimeout(function(){b.content?(b._addClassToMFP(q),b._setFocus()):b.bgOverlay.addClass(q),d.on("focusin"+p,b._onFocusIn)},16),b.isOpen=!0,b.updateSize(k),y(m),c},close:function(){b.isOpen&&(y(i),b.isOpen=!1,b.st.removalDelay&&!b.isLowIE&&b.supportsTransition?(b._addClassToMFP(r),setTimeout(function(){b._close()},b.st.removalDelay)):b._close())},_close:function(){y(h);var c=r+" "+q+" ";if(b.bgOverlay.detach(),b.wrap.detach(),b.container.empty(),b.st.mainClass&&(c+=b.st.mainClass+" "),b._removeClassFromMFP(c),b.fixedContentPos){var e={marginRight:""};b.isIE7?a("body, html").css("overflow",""):e.overflow="",a("html").css(e)}d.off("keyup"+p+" focusin"+p),b.ev.off(p),b.wrap.attr("class","mfp-wrap").removeAttr("style"),b.bgOverlay.attr("class","mfp-bg"),b.container.attr("class","mfp-container"),!b.st.showCloseBtn||b.st.closeBtnInside&&b.currTemplate[b.currItem.type]!==!0||b.currTemplate.closeBtn&&b.currTemplate.closeBtn.detach(),b.st.autoFocusLast&&b._lastFocusedEl&&a(b._lastFocusedEl).focus(),b.currItem=null,b.content=null,b.currTemplate=null,b.prevHeight=0,y(j)},updateSize:function(a){if(b.isIOS){var c=document.documentElement.clientWidth/window.innerWidth,d=window.innerHeight*c;b.wrap.css("height",d),b.wH=d}else b.wH=a||v.height();b.fixedContentPos||b.wrap.css("height",b.wH),y("Resize")},updateItemHTML:function(){var c=b.items[b.index];b.contentContainer.detach(),b.content&&b.content.detach(),c.parsed||(c=b.parseEl(b.index));var d=c.type;if(y("BeforeChange",[b.currItem?b.currItem.type:"",d]),b.currItem=c,!b.currTemplate[d]){var f=b.st[d]?b.st[d].markup:!1;y("FirstMarkupParse",f),f?b.currTemplate[d]=a(f):b.currTemplate[d]=!0}e&&e!==c.type&&b.container.removeClass("mfp-"+e+"-holder");var g=b["get"+d.charAt(0).toUpperCase()+d.slice(1)](c,b.currTemplate[d]);b.appendContent(g,d),c.preloaded=!0,y(n,c),e=c.type,b.container.prepend(b.contentContainer),y("AfterChange")},appendContent:function(a,c){b.content=a,a?b.st.showCloseBtn&&b.st.closeBtnInside&&b.currTemplate[c]===!0?b.content.find(".mfp-close").length||b.content.append(z()):b.content=a:b.content="",y(k),b.container.addClass("mfp-"+c+"-holder"),b.contentContainer.append(b.content)},parseEl:function(c){var d,e=b.items[c];if(e.tagName?e={el:a(e)}:(d=e.type,e={data:e,src:e.src}),e.el){for(var f=b.types,g=0;g<f.length;g++)if(e.el.hasClass("mfp-"+f[g])){d=f[g];break}e.src=e.el.attr("data-mfp-src"),e.src||(e.src=e.el.attr("href"))}return e.type=d||b.st.type||"inline",e.index=c,e.parsed=!0,b.items[c]=e,y("ElementParse",e),b.items[c]},addGroup:function(a,c){var d=function(d){d.mfpEl=this,b._openClick(d,a,c)};c||(c={});var e="click.magnificPopup";c.mainEl=a,c.items?(c.isObj=!0,a.off(e).on(e,d)):(c.isObj=!1,c.delegate?a.off(e).on(e,c.delegate,d):(c.items=a,a.off(e).on(e,d)))},_openClick:function(c,d,e){var f=void 0!==e.midClick?e.midClick:a.magnificPopup.defaults.midClick;if(f||!(2===c.which||c.ctrlKey||c.metaKey||c.altKey||c.shiftKey)){var g=void 0!==e.disableOn?e.disableOn:a.magnificPopup.defaults.disableOn;if(g)if(a.isFunction(g)){if(!g.call(b))return!0}else if(v.width()<g)return!0;c.type&&(c.preventDefault(),b.isOpen&&c.stopPropagation()),e.el=a(c.mfpEl),e.delegate&&(e.items=d.find(e.delegate)),b.open(e)}},updateStatus:function(a,d){if(b.preloader){c!==a&&b.container.removeClass("mfp-s-"+c),d||"loading"!==a||(d=b.st.tLoading);var e={status:a,text:d};y("UpdateStatus",e),a=e.status,d=e.text,b.preloader.html(d),b.preloader.find("a").on("click",function(a){a.stopImmediatePropagation()}),b.container.addClass("mfp-s-"+a),c=a}},_checkIfClose:function(c){if(!a(c).hasClass(s)){var d=b.st.closeOnContentClick,e=b.st.closeOnBgClick;if(d&&e)return!0;
478if(!b.content||a(c).hasClass("mfp-close")||b.preloader&&c===b.preloader[0])return!0;if(c===b.content[0]||a.contains(b.content[0],c)){if(d)return!0}else if(e&&a.contains(document,c))return!0;return!1}},_addClassToMFP:function(a){b.bgOverlay.addClass(a),b.wrap.addClass(a)},_removeClassFromMFP:function(a){this.bgOverlay.removeClass(a),b.wrap.removeClass(a)},_hasScrollBar:function(a){return(b.isIE7?d.height():document.body.scrollHeight)>(a||v.height())},_setFocus:function(){(b.st.focus?b.content.find(b.st.focus).eq(0):b.wrap).focus()},_onFocusIn:function(c){return c.target===b.wrap[0]||a.contains(b.wrap[0],c.target)?void 0:(b._setFocus(),!1)},_parseMarkup:function(b,c,d){var e;d.data&&(c=a.extend(d.data,c)),y(l,[b,c,d]),a.each(c,function(c,d){if(void 0===d||d===!1)return!0;if(e=c.split("_"),e.length>1){var f=b.find(p+"-"+e[0]);if(f.length>0){var g=e[1];"replaceWith"===g?f[0]!==d[0]&&f.replaceWith(d):"img"===g?f.is("img")?f.attr("src",d):f.replaceWith(a("<img>").attr("src",d).attr("class",f.attr("class"))):f.attr(e[1],d)}}else b.find(p+"-"+c).html(d)})},_getScrollbarSize:function(){if(void 0===b.scrollbarSize){var a=document.createElement("div");a.style.cssText="width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;",document.body.appendChild(a),b.scrollbarSize=a.offsetWidth-a.clientWidth,document.body.removeChild(a)}return b.scrollbarSize}},a.magnificPopup={instance:null,proto:t.prototype,modules:[],open:function(b,c){return A(),b=b?a.extend(!0,{},b):{},b.isObj=!0,b.index=c||0,this.instance.open(b)},close:function(){return a.magnificPopup.instance&&a.magnificPopup.instance.close()},registerModule:function(b,c){c.options&&(a.magnificPopup.defaults[b]=c.options),a.extend(this.proto,c.proto),this.modules.push(b)},defaults:{disableOn:0,key:null,midClick:!1,mainClass:"",preloader:!0,focus:"",closeOnContentClick:!1,closeOnBgClick:!0,closeBtnInside:!0,showCloseBtn:!0,enableEscapeKey:!0,modal:!1,alignTop:!1,removalDelay:0,prependTo:null,fixedContentPos:"auto",fixedBgPos:"auto",overflowY:"auto",closeMarkup:'<button title="%title%" type="button" class="mfp-close">&#215;</button>',tClose:"Close (Esc)",tLoading:"Loading...",autoFocusLast:!0}},a.fn.magnificPopup=function(c){A();var d=a(this);if("string"==typeof c)if("open"===c){var e,f=u?d.data("magnificPopup"):d[0].magnificPopup,g=parseInt(arguments[1],10)||0;f.items?e=f.items[g]:(e=d,f.delegate&&(e=e.find(f.delegate)),e=e.eq(g)),b._openClick({mfpEl:e},d,f)}else b.isOpen&&b[c].apply(b,Array.prototype.slice.call(arguments,1));else c=a.extend(!0,{},c),u?d.data("magnificPopup",c):d[0].magnificPopup=c,b.addGroup(d,c);return d};var C,D,E,F="inline",G=function(){E&&(D.after(E.addClass(C)).detach(),E=null)};a.magnificPopup.registerModule(F,{options:{hiddenClass:"hide",markup:"",tNotFound:"Content not found"},proto:{initInline:function(){b.types.push(F),w(h+"."+F,function(){G()})},getInline:function(c,d){if(G(),c.src){var e=b.st.inline,f=a(c.src);if(f.length){var g=f[0].parentNode;g&&g.tagName&&(D||(C=e.hiddenClass,D=x(C),C="mfp-"+C),E=f.after(D).detach().removeClass(C)),b.updateStatus("ready")}else b.updateStatus("error",e.tNotFound),f=a("<div>");return c.inlineElement=f,f}return b.updateStatus("ready"),b._parseMarkup(d,{},c),d}}});var H,I="ajax",J=function(){H&&a(document.body).removeClass(H)},K=function(){J(),b.req&&b.req.abort()};a.magnificPopup.registerModule(I,{options:{settings:null,cursor:"mfp-ajax-cur",tError:'<a href="%url%">The content</a> could not be loaded.'},proto:{initAjax:function(){b.types.push(I),H=b.st.ajax.cursor,w(h+"."+I,K),w("BeforeChange."+I,K)},getAjax:function(c){H&&a(document.body).addClass(H),b.updateStatus("loading");var d=a.extend({url:c.src,success:function(d,e,f){var g={data:d,xhr:f};y("ParseAjax",g),b.appendContent(a(g.data),I),c.finished=!0,J(),b._setFocus(),setTimeout(function(){b.wrap.addClass(q)},16),b.updateStatus("ready"),y("AjaxContentAdded")},error:function(){J(),c.finished=c.loadError=!0,b.updateStatus("error",b.st.ajax.tError.replace("%url%",c.src))}},b.st.ajax.settings);return b.req=a.ajax(d),""}}});var L,M=function(c){if(c.data&&void 0!==c.data.title)return c.data.title;
478var d=b.st.image.titleSrc;if(d){if(a.isFunction(d))return d.call(b,c);if(c.el)return c.el.attr(d)||""}return""};a.magnificPopup.registerModule("image",{options:{markup:'<div class="mfp-figure"><div class="mfp-close"></div><figure><div class="mfp-img"></div><figcaption><div class="mfp-bottom-bar"><div class="mfp-title"></div><div class="mfp-counter"></div></div></figcaption></figure></div>',cursor:"mfp-zoom-out-cur",titleSrc:"title",verticalFit:!0,tError:'<a href="%url%">The image</a> could not be loaded.'},proto:{initImage:function(){var c=b.st.image,d=".image";b.types.push("image"),w(m+d,function(){"image"===b.currItem.type&&c.cursor&&a(document.body).addClass(c.cursor)}),w(h+d,function(){c.cursor&&a(document.body).removeClass(c.cursor),v.off("resize"+p)}),w("Resize"+d,b.resizeImage),b.isLowIE&&w("AfterChange",b.resizeImage)},resizeImage:function(){var a=b.currItem;if(a&&a.img&&b.st.image.verticalFit){var c=0;b.isLowIE&&(c=parseInt(a.img.css("padding-top"),10)+parseInt(a.img.css("padding-bottom"),10)),a.img.css("max-height",b.wH-c)}},_onImageHasSize:function(a){a.img&&(a.hasSize=!0,L&&clearInterval(L),a.isCheckingImgSize=!1,y("ImageHasSize",a),a.imgHidden&&(b.content&&b.content.removeClass("mfp-loading"),a.imgHidden=!1))},findImageSize:function(a){var c=0,d=a.img[0],e=function(f){L&&clearInterval(L),L=setInterval(function(){return d.naturalWidth>0?void b._onImageHasSize(a):(c>200&&clearInterval(L),c++,void(3===c?e(10):40===c?e(50):100===c&&e(500)))},f)};e(1)},getImage:function(c,d){var e=0,f=function(){c&&(c.img[0].complete?(c.img.off(".mfploader"),c===b.currItem&&(b._onImageHasSize(c),b.updateStatus("ready")),c.hasSize=!0,c.loaded=!0,y("ImageLoadComplete")):(e++,200>e?setTimeout(f,100):g()))},g=function(){c&&(c.img.off(".mfploader"),c===b.currItem&&(b._onImageHasSize(c),b.updateStatus("error",h.tError.replace("%url%",c.src))),c.hasSize=!0,c.loaded=!0,c.loadError=!0)},h=b.st.image,i=d.find(".mfp-img");if(i.length){var j=document.createElement("img");j.className="mfp-img",c.el&&c.el.find("img").length&&(j.alt=c.el.find("img").attr("alt")),c.img=a(j).on("load.mfploader",f).on("error.mfploader",g),j.src=c.src,i.is("img")&&(c.img=c.img.clone()),j=c.img[0],j.naturalWidth>0?c.hasSize=!0:j.width||(c.hasSize=!1)}return b._parseMarkup(d,{title:M(c),img_replaceWith:c.img},c),b.resizeImage(),c.hasSize?(L&&clearInterval(L),c.loadError?(d.addClass("mfp-loading"),b.updateStatus("error",h.tError.replace("%url%",c.src))):(d.removeClass("mfp-loading"),b.updateStatus("ready")),d):(b.updateStatus("loading"),c.loading=!0,c.hasSize||(c.imgHidden=!0,d.addClass("mfp-loading"),b.findImageSize(c)),d)}}});var N,O=function(){return void 0===N&&(N=void 0!==document.createElement("p").style.MozTransform),N};a.magnificPopup.registerModule("zoom",{options:{enabled:!1,easing:"ease-in-out",duration:300,opener:function(a){return a.is("img")?a:a.find("img")}},proto:{initZoom:function(){var a,c=b.st.zoom,d=".zoom";if(c.enabled&&b.supportsTransition){var e,f,g=c.duration,j=function(a){var b=a.clone().removeAttr("style").removeAttr("class").addClass("mfp-animated-image"),d="all "+c.duration/1e3+"s "+c.easing,e={position:"fixed",zIndex:9999,left:0,top:0,"-webkit-backface-visibility":"hidden"},f="transition";return e["-webkit-"+f]=e["-moz-"+f]=e["-o-"+f]=e[f]=d,b.css(e),b},k=function(){b.content.css("visibility","visible")};w("BuildControls"+d,function(){if(b._allowZoom()){if(clearTimeout(e),b.content.css("visibility","hidden"),a=b._getItemToZoom(),!a)return void k();f=j(a),f.css(b._getOffset()),b.wrap.append(f),e=setTimeout(function(){f.css(b._getOffset(!0)),e=setTimeout(function(){k(),setTimeout(function(){f.remove(),a=f=null,y("ZoomAnimationEnded")},16)},g)},16)}}),w(i+d,function(){if(b._allowZoom()){if(clearTimeout(e),b.st.removalDelay=g,!a){if(a=b._getItemToZoom(),!a)return;f=j(a)}f.css(b._getOffset(!0)),b.wrap.append(f),b.content.css("visibility","hidden"),setTimeout(function(){f.css(b._getOffset())},16)}}),w(h+d,function(){b._allowZoom()&&(k(),f&&f.remove(),a=null)})}},_allowZoom:function(){return"image"===b.currItem.type},_getItemToZoom:function(){return b.currItem.hasSize?b.currItem.img:!1},_getOffset:function(c){var d;d=c?b.currItem.img:b.st.zoom.opener(b.currItem.el||b.currItem);var e=d.offset(),f=parseInt(d.css("padding-top"),10),g=parseInt(d.css("padding-bottom"),10);e.top-=a(window).scrollTop()-f;var h={width:d.width(),height:(u?d.innerHeight():d[0].offsetHeight)-g-f};return O()?h["-moz-transform"]=h.transform="translate("+e.left+"px,"+e.top+"px)":(h.left=e.left,h.top=e.top),h}}});
478var P="iframe",Q="//about:blank",R=function(a){if(b.currTemplate[P]){var c=b.currTemplate[P].find("iframe");c.length&&(a||(c[0].src=Q),b.isIE8&&c.css("display",a?"block":"none"))}};a.magnificPopup.registerModule(P,{options:{markup:'<div class="mfp-iframe-scaler"><div class="mfp-close"></div><iframe class="mfp-iframe" src="//about:blank" frameborder="0" allowfullscreen></iframe></div>',srcAction:"iframe_src",patterns:{youtube:{index:"youtube.com",id:"v=",src:"//www.youtube.com/embed/%id%?autoplay=1"},vimeo:{index:"vimeo.com/",id:"/",src:"//player.vimeo.com/video/%id%?autoplay=1"},gmaps:{index:"//maps.google.",src:"%id%&output=embed"}}},proto:{initIframe:function(){b.types.push(P),w("BeforeChange",function(a,b,c){b!==c&&(b===P?R():c===P&&R(!0))}),w(h+"."+P,function(){R()})},getIframe:function(c,d){var e=c.src,f=b.st.iframe;a.each(f.patterns,function(){return e.indexOf(this.index)>-1?(this.id&&(e="string"==typeof this.id?e.substr(e.lastIndexOf(this.id)+this.id.length,e.length):this.id.call(this,e)),e=this.src.replace("%id%",e),!1):void 0});var g={};return f.srcAction&&(g[f.srcAction]=e),b._parseMarkup(d,g,c),b.updateStatus("ready"),d}}});var S=function(a){var c=b.items.length;return a>c-1?a-c:0>a?c+a:a},T=function(a,b,c){return a.replace(/%curr%/gi,b+1).replace(/%total%/gi,c)};a.magnificPopup.registerModule("gallery",{options:{enabled:!1,arrowMarkup:'<button title="%title%" type="button" class="mfp-arrow mfp-arrow-%dir%"></button>',preload:[0,2],navigateByImgClick:!0,arrows:!0,tPrev:"Previous (Left arrow key)",tNext:"Next (Right arrow key)",tCounter:"%curr% of %total%"},proto:{initGallery:function(){var c=b.st.gallery,e=".mfp-gallery";return b.direction=!0,c&&c.enabled?(f+=" mfp-gallery",w(m+e,function(){c.navigateByImgClick&&b.wrap.on("click"+e,".mfp-img",function(){return b.items.length>1?(b.next(),!1):void 0}),d.on("keydown"+e,function(a){37===a.keyCode?b.prev():39===a.keyCode&&b.next()})}),w("UpdateStatus"+e,function(a,c){c.text&&(c.text=T(c.text,b.currItem.index,b.items.length))}),w(l+e,function(a,d,e,f){var g=b.items.length;e.counter=g>1?T(c.tCounter,f.index,g):""}),w("BuildControls"+e,function(){if(b.items.length>1&&c.arrows&&!b.arrowLeft){var d=c.arrowMarkup,e=b.arrowLeft=a(d.replace(/%title%/gi,c.tPrev).replace(/%dir%/gi,"left")).addClass(s),f=b.arrowRight=a(d.replace(/%title%/gi,c.tNext).replace(/%dir%/gi,"right")).addClass(s);e.click(function(){b.prev()}),f.click(function(){b.next()}),b.container.append(e.add(f))}}),w(n+e,function(){b._preloadTimeout&&clearTimeout(b._preloadTimeout),b._preloadTimeout=setTimeout(function(){b.preloadNearbyImages(),b._preloadTimeout=null},16)}),void w(h+e,function(){d.off(e),b.wrap.off("click"+e),b.arrowRight=b.arrowLeft=null})):!1},next:function(){b.direction=!0,b.index=S(b.index+1),b.updateItemHTML()},prev:function(){b.direction=!1,b.index=S(b.index-1),b.updateItemHTML()},goTo:function(a){b.direction=a>=b.index,b.index=a,b.updateItemHTML()},preloadNearbyImages:function(){var a,c=b.st.gallery.preload,d=Math.min(c[0],b.items.length),e=Math.min(c[1],b.items.length);for(a=1;a<=(b.direction?e:d);a++)b._preloadItem(b.index+a);for(a=1;a<=(b.direction?d:e);a++)b._preloadItem(b.index-a)},_preloadItem:function(c){if(c=S(c),!b.items[c].preloaded){var d=b.items[c];d.parsed||(d=b.parseEl(c)),y("LazyLoad",d),"image"===d.type&&(d.img=a('<img class="mfp-img" />').on("load.mfploader",function(){d.hasSize=!0}).on("error.mfploader",function(){d.hasSize=!0,d.loadError=!0,y("LazyLoadError",d)}).attr("src",d.src)),d.preloaded=!0}}}});var U="retina";a.magnificPopup.registerModule(U,{options:{replaceSrc:function(a){return a.src.replace(/\.\w+$/,function(a){return"@2x"+a})},ratio:1},proto:{initRetina:function(){if(window.devicePixelRatio>1){var a=b.st.retina,c=a.ratio;c=isNaN(c)?c():c,c>1&&(w("ImageHasSize."+U,function(a,b){b.img.css({"max-width":b.img[0].naturalWidth/c,width:"100%"})}),w("ElementParse."+U,function(b,d){d.src=a.replaceSrc(d,c)}))}}}}),A()});
479
480jQuery(document).ready(function ($) {
481  $.fn.markExternalLinks = function (options) {
482    // Set Icon
483    /*var settings = $.extend({
484			icon: "fa-external-link"
485		}, options );
486		
487		this.append('<i class="fa '+settings.icon+'"></i>');*/
488
489    // Check if URL contains domain and set it as internal/external link
490    this.filter(function () {
491      var currentLink = $(this);
492
493      var excludedItems = currentLink.parents('.btn-print').length > 0 || currentLink.parents('.news-related ').length > 0 || currentLink.parents('.news-list-view').length > 0 || currentLink.parents('.bwPortfolio').length > 0 || currentLink.parents('.linklistmodule').length > 0 || currentLink.hasClass('teaser-headline') || currentLink.has('img');
494      var isExcluded = true;
495      if (excludedItems && excludedItems.length == 0) isExcluded = false;
496
497      if (isExcluded == false) return true;
498
499      return false;
500    }).each(function () {
501      var currentLink = $(this);
502      var linkHostname = this.hostname;
503      var currentHref = currentLink.attr('href');
504      var documentDomain = window.location.hostname;
505      //documentDomain = documentDomain.substring(documentDomain.lastIndexOf(".", documentDomain.lastIndexOf(".") - 1) + 1);
506
507      if (currentHref) {
508        var match = location.hostname === linkHostname || linkHostname.startsWith('hyperdigital.px.media');
509        if (!this.hostname.length) {
510          if (currentHref.substr(0, 1) == '/') match = true; // relative link
511        }
512
513        // check if link is internal or external
514        // hint: class external-link might be already set by typolink
515        if (match !== false) {
516          if (!currentLink.hasClass('intenal-link') && !currentLink.hasClass('external-link')) {
517            currentLink.addClass('internal-link');
518          }
519        } else {
520          if (!currentLink.hasClass('intenal-link') && !currentLink.hasClass('external-link')) {
521            currentLink.addClass('external-link');
522
523            if (typeof currentLink.attr('target') == 'undefined') {
524              currentLink.attr('target', '_blank');
525            }
526          }
527        }
528      }
529    });
530  };
531});
532
533
534jQuery.noConflict();
535
536jQuery(document).ready(function ($) {
537  jQuery('.maincontent .imgtextmodule a, .maincontent .imgtextnavigation a:not(".btn-default"), .maincontent .teaser a, .maincontent .accordion .panel-module-item .panel-collapse a, .quotationmodule a, .event-link a, .maincontent .quicklinks a').markExternalLinks();
538
539  var searchBtn = $('.search-open');
540  var isFolgeseite = $('body').hasClass('bistum-folgeseiten');
541
542  searchBtn.unbind('click').click(function () {
543    var self = $(this);
544    self.hide();
545
546    var searchForm = self.parents('.input-group').find('.search-form-control');
547    var searchSubmit = self.parent().find('.search-submit');
548
549    searchSubmit.toggleClass('open');
550    searchForm.toggleClass('visible');
551    searchForm.focus();
552  });
553
554  // Erlaubt das toggeln des buttons per enter und space
555  $('.toggle-btn').on('click keydown', function (e) {
556    if (e.type === 'click' || e.key === 'Enter' || e.key === ' ') {
557      e.preventDefault();
558
559      var self = $(this);
560
561      var toggleCont = self.parents('.container').find('.container-to-toggle');
562      toggleCont.slideToggle(250);
563
564      var arrowDown = self.find('.arrow-down');
565      var arrowUp = self.find('.arrow-up');
566
567      self.toggleClass('open');
568      arrowDown.toggle();
569      arrowUp.toggle();
570    }
571  });
572
573  // Scroll-to-top Button
574  var toTop = $('.bwHeader--toTop');
575
576  toTop.unbind('click').click(function () {
577    $('html, body').animate({ scrollTop: 0 }, 300, 'swing');
578  });
579
580  $(document).scroll(function () {
581    var menuBreakingPoint = 200;
582
583    if (isFolgeseite) {
584      menuBreakingPoint = $('.bwHeader').height();
585
586      if ($('.stage').length > 0) {
587        menuBreakingPoint = $('.stage').height();
588      }
589    }
590
591    var scrollTop = $(this).scrollTop();
592    if (scrollTop >= menuBreakingPoint) {
593      if (!isFolgeseite) {
594        $('.bwHeader').addClass('belowFold');
595      }
596      $('.bwSearch.fullscreen').addClass('belowFold');
597    } else {
598      if (!isFolgeseite) {
599        $('.bwHeader').removeClass('belowFold');
600      }
601      $('.bwSearch.fullscreen').removeClass('belowFold');
602    }
603  });
604
605  // iframe-Links
606  $('.maincontent .iframe-button a').each(function () {
607    var elementContainer = $(this).parent();
608    var linkElement = elementContainer;
609    var iframeHeight = elementContainer.attr('data-iframe-height');
610    var iframeWidth = elementContainer.attr('data-iframe-width');
611
612    $(this).magnificPopup({
613      type: 'iframe',
614      iframe: {
615        markup: '<style>.mfp-iframe-holder .mfp-content {max-width: ' + iframeWidth + 'px;height:' + iframeHeight + 'px}</style>' + '<div class="mfp-iframe-scaler" >' + '<div class="mfp-close"></div>' + '<iframe class="mfp-iframe" width="' + iframeWidth + '" height="' + iframeHeight + '" frameborder="0" allowfullscreen></iframe>' + '</div></div>',
616      },
617    });
618  });
619
620  /* --- Paginierung Sprungmarken ---- */
621
622  $('body').imagesLoaded(function () {
623    checkForPaginationCookie();
624  });
625
626  function checkForPaginationCookie() {
627    function getCookie(name) {
628      var pattern = RegExp(name + '=.[^;]*');
629      matched = document.cookie.match(pattern);
630      if (matched) {
631        var cookie = matched[0].split('=');
632        return cookie[1];
633      }
634      return false;
635    }
636
637    function removeCookie(sKey, sPath, sDomain) {
638      document.cookie = encodeURIComponent(sKey) + '=; expires=Thu, 01 Jan 1970 00:00:00 GMT' + (sDomain ? '; domain=' + sDomain : '') + (sPath ? '; path=' + sPath : '');
639    }
640
641    if (document.cookie.match('jumpTo') !== null) {
642      var uid = getCookie('jumpTo');
643      var headerHeight = $('#header').outerHeight();
644      var container = $('#c' + uid);
645
646      if (container.length > 0) {
647        var containerPosX = container.offset().top - headerHeight;
648        var stageHeight = 0;
649
650        // Folgeseiten Header
651        if ($('.bwSubsite-navigation').length > 0) {
652          if ($(window).width() > 992) {
653            headerHeight += $('.bwSubsite-navigation').outerHeight();
654          } else {
655            if ($('.bwSubsite-sitetitle').length > 0) {
656              headerHeight += $('.bwSubsite-sitetitle').outerHeight();
657            }
658          }
659        }
660
661        // Sonderlösung News
662        if (container.parent().hasClass('news')) {
663          containerPosX = container.offset().top + stageHeight - headerHeight - 70;
664        }
665
666        // Scroll to paginated element
667        $('html, body').animate({ scrollTop: containerPosX }, 300, 'swing');
668
669        // Delete cookie
670        removeCookie('jumpTo');
671      }
672    }
673  }
674
675  function setPaginationIndicatorCookie(link) {
676    var container = link.parents('div[id^="c"]');
677    var recordId = container.attr('id');
678
679    if (recordId) {
680      recordId = recordId.replace('c', '');
681
682      document.cookie = 'jumpTo=' + recordId;
683    }
684  }
685
686  // Pagination Indicator
687  $('.f3-widget-paginator a, .news-list-view .pagination-container a, .news-container form .btn-submit, .bwSubsite-news-container form .btn-submit').click(function () {
688    setPaginationIndicatorCookie($(this));
689  });
690
691  /* Magnific Pop-Up / Lightbox */
692  $('.single-thumbnail-img .lightbox').magnificPopup({
693    type: 'image',
694    removalDelay: 250,
695    mainClass: 'mfp-fade',
696  });
697
698  var GalleryItems = [];
699  $('.gallery-thumbnail-img .lightbox img, .img-gallery-wrap .lightbox img').each(function (i) {
700    var theSrc = {
701      src: $(this).parent().attr('href'),
702      title: $(this).parent().attr('title'),
703      type: 'image',
704    };
705    GalleryItems.push(theSrc);
706  });
707
708  // Remove duplicate images
709  GalleryItems = GalleryItems.reduce(function (previous, current) {
710    var object = previous.filter(function (object) {
711      return object.src === current.src;
712    });
713    if (object.length == 0) {
714      previous.push(current);
715    }
716    return previous;
717  }, []);
718
719  // Aus Selektor entfernt: ".gallery-thumbnail-img .lightbox" (Anwendung in Bild-Text-Modul, führte dazu dass immer das erste Bild geöffnet wurde)
720  var gallery = $('.img-gallery-wrap .lightbox').magnificPopup({
721    type: 'image',
722    removalDelay: 250,
723    mainClass: 'mfp-fade',
724    gallery: {
725      enabled: true,
726      preload: [0, 1],
727      tCounter: '<div class="mfp-counter">%curr% / %total%</div>',
728    },
729    items: GalleryItems,
730  });
731
732  $('.second-image a').click(function (event) {
733    event.preventDefault();
734    gallery.magnificPopup('open').magnificPopup('goTo', 1);
735  });
736
737  $('.gallery').magnificPopup({
738    delegate: '.lightbox',
739    type: 'image',
740  });
741});
742
743
744/**
745 * menu-aim is a jQuery plugin for dropdown menus that can differentiate
746 * between a user trying hover over a dropdown item vs trying to navigate into
747 * a submenu's contents.
748 *
749 * menu-aim assumes that you have are using a menu with submenus that expand
750 * to the menu's right. It will fire events when the user's mouse enters a new
751 * dropdown item *and* when that item is being intentionally hovered over.
752 *
753 * __________________________
754 * | Monkeys  >|   Gorilla  |
755 * | Gorillas >|   Content  |
756 * | Chimps   >|   Here     |
757 * |___________|____________|
758 *
759 * In the above example, "Gorillas" is selected and its submenu content is
760 * being shown on the right. Imagine that the user's cursor is hovering over
761 * "Gorillas." When they move their mouse into the "Gorilla Content" area, they
762 * may briefly hover over "Chimps." This shouldn't close the "Gorilla Content"
763 * area.
764 *
765 * This problem is normally solved using timeouts and delays. menu-aim tries to
766 * solve this by detecting the direction of the user's mouse movement. This can
767 * make for quicker transitions when navigating up and down the menu. The
768 * experience is hopefully similar to amazon.com/'s "Shop by Department"
769 * dropdown.
770 *
771 * Use like so:
772 *
773 *      $("#menu").menuAim({
774 *          activate: $.noop,  // fired on row activation
775 *          deactivate: $.noop  // fired on row deactivation
776 *      });
777 *
778 *  ...to receive events when a menu's row has been purposefully (de)activated.
779 *
780 * The following options can be passed to menuAim. All functions execute with
781 * the relevant row's HTML element as the execution context ('this'):
782 *
783 *      .menuAim({
784 *          // Function to call when a row is purposefully activated. Use this
785 *          // to show a submenu's content for the activated row.
786 *          activate: function() {},
787 *
788 *          // Function to call when a row is deactivated.
789 *          deactivate: function() {},
790 *
791 *          // Function to call when mouse enters a menu row. Entering a row
792 *          // does not mean the row has been activated, as the user may be
793 *          // mousing over to a submenu.
794 *          enter: function() {},
795 *
796 *          // Function to call when mouse exits a menu row.
797 *          exit: function() {},
798 *
799 *          // Selector for identifying which elements in the menu are rows
800 *          // that can trigger the above events. Defaults to "> li".
801 *          rowSelector: "> li",
802 *
803 *          // You may have some menu rows that aren't submenus and therefore
804 *          // shouldn't ever need to "activate." If so, filter submenu rows w/
805 *          // this selector. Defaults to "*" (all elements).
806 *          submenuSelector: "*",
807 *
808 *          // Direction the submenu opens relative to the main menu. Can be
809 *          // left, right, above, or below. Defaults to "right".
810 *          submenuDirection: "right"
811 *      });
812 *
813 * https://github.com/kamens/jQuery-menu-aim
814*/
815(function($) {
816
817    $.fn.menuAim = function(opts) {
818        // Initialize menu-aim for all elements in jQuery collection
819        this.each(function() {
820            init.call(this, opts);
821        });
822
823        return this;
824    };
825
826    function init(opts) {
827        var $menu = $(this),
828            activeRow = null,
829            mouseLocs = [],
830            lastDelayLoc = null,
831            timeoutId = null,
832            options = $.extend({
833                rowSelector: "> li",
834                submenuSelector: "*",
835                submenuDirection: "right",
836                tolerance: 75,  // bigger = more forgivey when entering submenu
837                enter: $.noop,
838                exit: $.noop,
839                activate: $.noop,
840                deactivate: $.noop,
841                exitMenu: $.noop
842            }, opts);
843
844        var MOUSE_LOCS_TRACKED = 3,  // number of past mouse locations to track
845            DELAY = 300;  // ms delay when user appears to be entering submenu
846
847        /**
848         * Keep track of the last few locations of the mouse.
849         */
850        var mousemoveDocument = function(e) {
851                mouseLocs.push({x: e.pageX, y: e.pageY});
852
853                if (mouseLocs.length > MOUSE_LOCS_TRACKED) {
854                    mouseLocs.shift();
855                }
856            };
857
858        /**
859         * Cancel possible row activations when leaving the menu entirely
860         */
861        var mouseleaveMenu = function() {
862                if (timeoutId) {
863                    clearTimeout(timeoutId);
864                }
865
866                // If exitMenu is supplied and returns true, deactivate the
867                // currently active row on menu exit.
868                if (options.exitMenu(this)) {
869                    if (activeRow) {
870                        options.deactivate(activeRow);
871                    }
872
873                    activeRow = null;
874                }
875            };
876
877        /**
878         * Trigger a possible row activation whenever entering a new row.
879         */
880        var mouseenterRow = function() {
881                if (timeoutId) {
882                    // Cancel any previous activation delays
883                    clearTimeout(timeoutId);
884                }
885
886                options.enter(this);
887                possiblyActivate(this);
888            },
889            mouseleaveRow = function() {
890                options.exit(this);
891            };
892
893        /*
894         * Immediately activate a row if the user clicks on it.
895         */
896        var clickRow = function() {
897                activate(this);
898            };
899
900        /**
901         * Activate a menu row.
902         */
903        var activate = function(row) {
904                if (row == activeRow) {
905                    return;
906                }
907
908                if (activeRow) {
909                    options.deactivate(activeRow);
910                }
911
912                options.activate(row);
913                activeRow = row;
914            };
915
916        /**
917         * Possibly activate a menu row. If mouse movement indicates that we
918         * shouldn't activate yet because user may be trying to enter
919         * a submenu's content, then delay and check again later.
920         */
921        var possiblyActivate = function(row) {
vendor: 7,055 bytes, lines 922-1096
922                var delay = activationDelay();
923
924                if (delay) {
925                    timeoutId = setTimeout(function() {
926                        possiblyActivate(row);
927                    }, delay);
928                } else {
929                    activate(row);
930                }
931            };
932
933        /**
934         * Return the amount of time that should be used as a delay before the
935         * currently hovered row is activated.
936         *
937         * Returns 0 if the activation should happen immediately. Otherwise,
938         * returns the number of milliseconds that should be delayed before
939         * checking again to see if the row should be activated.
940         */
941        var activationDelay = function() {
942                if (!activeRow || !$(activeRow).is(options.submenuSelector)) {
943                    // If there is no other submenu row already active, then
944                    // go ahead and activate immediately.
945                    return 0;
946                }
947
948                var offset = $menu.offset(),
949                    upperLeft = {
950                        x: offset.left,
951                        y: offset.top - options.tolerance
952                    },
953                    upperRight = {
954                        x: offset.left + $menu.outerWidth(),
955                        y: upperLeft.y
956                    },
957                    lowerLeft = {
958                        x: offset.left,
959                        y: offset.top + $menu.outerHeight() + options.tolerance
960                    },
961                    lowerRight = {
962                        x: offset.left + $menu.outerWidth(),
963                        y: lowerLeft.y
964                    },
965                    loc = mouseLocs[mouseLocs.length - 1],
966                    prevLoc = mouseLocs[0];
967
968                if (!loc) {
969                    return 0;
970                }
971
972                if (!prevLoc) {
973                    prevLoc = loc;
974                }
975
976                if (prevLoc.x < offset.left || prevLoc.x > lowerRight.x ||
977                    prevLoc.y < offset.top || prevLoc.y > lowerRight.y) {
978                    // If the previous mouse location was outside of the entire
979                    // menu's bounds, immediately activate.
980                    return 0;
981                }
982
983                if (lastDelayLoc &&
984                        loc.x == lastDelayLoc.x && loc.y == lastDelayLoc.y) {
985                    // If the mouse hasn't moved since the last time we checked
986                    // for activation status, immediately activate.
987                    return 0;
988                }
989
990                // Detect if the user is moving towards the currently activated
991                // submenu.
992                //
993                // If the mouse is heading relatively clearly towards
994                // the submenu's content, we should wait and give the user more
995                // time before activating a new row. If the mouse is heading
996                // elsewhere, we can immediately activate a new row.
997                //
998                // We detect this by calculating the slope formed between the
999                // current mouse location and the upper/lower right points of
1000                // the menu. We do the same for the previous mouse location.
1001                // If the current mouse location's slopes are
1002                // increasing/decreasing appropriately compared to the
1003                // previous's, we know the user is moving toward the submenu.
1004                //
1005                // Note that since the y-axis increases as the cursor moves
1006                // down the screen, we are looking for the slope between the
1007                // cursor and the upper right corner to decrease over time, not
1008                // increase (somewhat counterintuitively).
1009                function slope(a, b) {
1010                    return (b.y - a.y) / (b.x - a.x);
1011                };
1012
1013                var decreasingCorner = upperRight,
1014                    increasingCorner = lowerRight;
1015
1016                // Our expectations for decreasing or increasing slope values
1017                // depends on which direction the submenu opens relative to the
1018                // main menu. By default, if the menu opens on the right, we
1019                // expect the slope between the cursor and the upper right
1020                // corner to decrease over time, as explained above. If the
1021                // submenu opens in a different direction, we change our slope
1022                // expectations.
1023                if (options.submenuDirection == "left") {
1024                    decreasingCorner = lowerLeft;
1025                    increasingCorner = upperLeft;
1026                } else if (options.submenuDirection == "below") {
1027                    decreasingCorner = lowerRight;
1028                    increasingCorner = lowerLeft;
1029                } else if (options.submenuDirection == "above") {
1030                    decreasingCorner = upperLeft;
1031                    increasingCorner = upperRight;
1032                }
1033
1034                var decreasingSlope = slope(loc, decreasingCorner),
1035                    increasingSlope = slope(loc, increasingCorner),
1036                    prevDecreasingSlope = slope(prevLoc, decreasingCorner),
1037                    prevIncreasingSlope = slope(prevLoc, increasingCorner);
1038
1039                if (decreasingSlope < prevDecreasingSlope &&
1040                        increasingSlope > prevIncreasingSlope) {
1041                    // Mouse is moving from previous location towards the
1042                    // currently activated submenu. Delay before activating a
1043                    // new menu row, because user may be moving into submenu.
1044                    lastDelayLoc = loc;
1045                    return DELAY;
1046                }
1047
1048                lastDelayLoc = null;
1049                return 0;
1050            };
1051
1052        /**
1053         * Hook up initial menu events
1054         */
1055        $menu
1056            .mouseleave(mouseleaveMenu)
1057            .find(options.rowSelector)
1058                .mouseenter(mouseenterRow)
1059                .mouseleave(mouseleaveRow)
1060                .click(clickRow);
1061
1062        $(document).mousemove(mousemoveDocument);
1063
1064    };
1065})(jQuery);
1066
1067
1068
1069jQuery.noConflict();
1070
1071(function ($) {
1072  Bw.Utilities = function () {
1073    var self = this;
1074
1075    this.bodyElement = $('body');
1076    this.closeBrowserwarningIcon = $('.bwBrowserwarning .bwMenu--closer');
1077    this.browserwarningContainer = $('.bwBrowserwarning');
1078    this.closeCookiewarningIcon = $('.bwCookieWarning--closer');
1079    this.cookiewarningContainer = $('.bwCookieWarning');
1080    this.documentCookies = document.cookie;
1081
1082    this.constructor = function () {
1083      var deviceAgent = navigator.userAgent.toLowerCase();
1084
1085      self.checkForBrowser(deviceAgent);
1086      self.checkForMobile(deviceAgent);
1087      self.showCookiewarning();
1088
1089      this.closeBrowserwarningIcon.bind('click', function () {
1090        self.closeBrowserwarning();
1091      });
1092
1093      this.closeCookiewarningIcon.bind('click', function () {
1094        self.closeCookiewarning();
1095
1096        return false;
1097      });
1098    };
1099
1100    this.closeBrowserwarning = function () {
1101      self.browserwarningContainer.fadeOut(250);
1102    };
1103
1104    this.closeCookiewarning = function () {
1105      self.cookiewarningContainer.fadeOut(250);
1106
1107      expiryOneYear = new Date();
1108      expiryOneYear.setMonth(expiryOneYear.getMonth() + 12);
1109      expiryOneYear = expiryOneYear.toUTCString();
1110
1111      var currentDomain = window.location.hostname;
1112      currentDomain = currentDomain.split('.');
1113      currentDomain = currentDomain.splice(1, 2); // use last two parts of domain
1114      currentDomain = currentDomain.join('.');
1115
1116      if (currentDomain == 'sub.bistum-wuerzburg-master') currentDomain = 'bistum-wuerzburg-master.intra.bueroparallel.de';
1117
1118      document.cookie = 'cookieWarningSeen=true;domain=.' + currentDomain + ';path=/;expires=' + expiryOneYear;
1119    };
1120
1121    this.showCookiewarning = function () {
1122      // show warning only when cookie isn't already set
1123
1124      if (self.documentCookies.match('cookieWarningSeen') == null) {
1125        self.cookiewarningContainer.show();
1126      }
1127    };
1128
1129    this.checkForBrowser = function (deviceAgent) {
1130      // Desktop
1131      if (deviceAgent.match(/msie/)) {
1132        self.bodyElement.addClass('bwBrowser--ie');
1133
1134        var ieRegExp = new RegExp('msie ([0-9]{1,}[.0-9]{0,})');
1135
1136        var version = null;
1137        if (ieRegExp.exec(deviceAgent) != null) version = parseFloat(RegExp.$1);
1138
1139        if (version != null) self.bodyElement.addClass('bwBrowserversion--' + String(version));
1140
1141        return;
1142      }
1143
1144      if (deviceAgent.match(/mozilla/)) {
1145        self.bodyElement.addClass('bwBrowser--firefox');
1146      }
1147    };
1148
1149    this.checkForMobile = function (deviceAgent) {
1150      // Mobile
1151      if (deviceAgent.match(/(iphone|ipod|ipad)/)) {
1152        self.bodyElement.addClass('bwDevice--mobile bwBrowser--ios');
1153      }
1154
1155      if (deviceAgent.match(/android/)) {
1156        self.bodyElement.addClass('bwDevice--mobile bwBrowser--android');
1157      }
1158
1159      if (deviceAgent.match(/blackberry/)) {
1160        self.bodyElement.addClass('blackberry');
1161        self.bodyElement.addClass('bwDevice--mobile bwBrowser--blackberry');
1162      }
1163
1164      if (deviceAgent.match(/(symbianos|^sonyericsson|^nokia|^samsung|^lg)/)) {
1165        self.bodyElement.addClass('bwDevice--mobile');
1166      }
1167    };
1168
1169    this.constructor();
1170  };
1171})(jQuery);
1172
1173
1174jQuery.noConflict();
1175
1176(function ($) {
1177  // Delayed to prevent wrong dimensions (in case CSS loads too slow)
1178  var slickSlider = setTimeout(function () {
1179    var $slider = $('.bwSubsite-stage .slick-slider-stage');
1180
1181    $slider.on('init', function (event, slick) {
1182      $(this).find('.slick-track')
1183        .attr('aria-label', 'Bilderkarussell');
1184
1185      var slides = $(this).find('.slick-slide');
1186      slides.each(function (index) {
1187        var headline = $(this).find('.bfStage__headline');
1188        headline.attr('id', 'slick-slide1' + index);
1189      });
1190    });
1191
1192    $slider.not('.slick-initialized').slick({
1193      appendDots: $slider.siblings('controls'),
1194      responsive: [
1195        {
1196          breakpoint: 991,
1197          settings: {
1198            adaptiveHeight: true,
1199          },
1200        },
1201      ],
1202    });
1203  }, 100);
1204})(jQuery);
1205
1206/*$(document).ready(function(){
1207	$('.slick-slider-stage').not('.slick-initialized').slick({
1208		adaptiveHeight: true
1209	});
1210});*/
1211
1212
1213jQuery.noConflict();
1214
1215(function ($) {
1216  Bw.View.SearchOverlay = function () {
1217    var self = this;
1218
1219    this.container = $('.bwSearch.fullscreen');
1220    this.closeIcon = $('.bwSearch .bwSearch--closer,.bwSearch .bwMenu--closer');
1221    this.iframePlaceholder = $('.iframe-placholder');
1222
1223    this.elSearchTrigger = $('.bwHeader--widget.search');
1224    this.elSearchBar = $('#searchbar');
1225
1226    this.iframeVisible = false;
1227    this.preventClose = false;
1228
1229    this.constructor = function () {
1230      self.closeIcon.bind('click', function () {
1231        self.toggleOverlay();
1232      });
1233
1234      self.elSearchTrigger.bind('click', function () {
1235        self.toggleOverlay();
1236      });
1237    };
1238
1239    this.toggleOverlay = function () {
1240      self.container.fadeToggle(250);
1241
1242      // Load iframe when Overlay is opened
1243      if (self.iframeVisible == false && self.container.is(':visible')) {
1244        self.loadIframe();
1245      }
1246
1247      // Jump to top if site is scrolled on mobile device
1248      if (Bw.viewport.scrollTop > 250 && Bw.viewport.width <= 992 && self.container.is(':visible')) {
1249        Bw.viewport.setScrollTop(0);
1250      }
1251    };
1252
1253    this.loadIframe = function () {
1254      self.iframePlaceholder.html('<iframe id="contactsearch-iframe" width="800" height="450" src="https://mobile.bistum-wuerzburg.org/ui/embedded" allowtransparency="true"></iframe>');
1255      self.iframeVisible = true;
1256    };
1257
1258    this.constructor();
1259  };
1260})(jQuery);
1261
1262
1263jQuery.noConflict();
1264
1265(function ($) {
1266  Bw.View.Header = function () {
1267    var self = this;
1268
1269    this.elMenuTrigger = $('.bwHeader--widget.menu');
1270    this.menuTargetClass = '.bwMenu';
1271    this.mobileButton = $('.bwCaritas-navigation-button-accessibility');
1272
1273    this.constructor = function () {
1274      self.elMenuTrigger.bind('click', function () {
1275        self.triggerMenu();
1276      });
1277
1278      self.eyeAbleControls();
1279
1280      if (self.mobileButton.length) {
1281        self.accessibilityMobileToggle();
1282      }
1283    };
1284
1285    this.triggerMenu = function () {
1286      Bw.menu = new Bw.View.Menu();
1287
1288      // TO DO
1289      // Deaktiviert Scrollbar nach Schließen des Menüs auf der ganzen Seite
1290      /*$('html').css(
1291            {
1292                'overflow':'hidden' ,
1293                'padding-right':'17px'
1294            });*/
1295    };
1296
1297    this.eyeAbleControls = function () {
1298      var contrastBtns = document.querySelectorAll('#accessibility-kontrastmodus, #mobile-accessibility-kontrastmodus');
1299      var assistentBtnsDesktop = document.querySelectorAll('#eyeAble_customToolOpenerID, #mobile-eyeAble_customToolOpenerID');
1300      var assistentBtnsMobile = document.querySelectorAll('#mobile-eyeAble_customToolOpenerID, #accessibilityMobile');
1301      var leichteSpracheBtns = document.querySelectorAll('#accessibility-leichte-sprache, #mobile-accessibility-leichte-sprache');
1302
1303      document.addEventListener('eyeable:init_completed', function () {
1304        var updateContrastState = function () {
1305          if (typeof EyeAbleAPI === 'undefined') return;
1306          var active = EyeAbleAPI.getColorMode() === 'Contrast';
1307          contrastBtns.forEach(function (btn) {
1308            btn.setAttribute('aria-pressed', active ? 'true' : 'false');
1309          });
1310        };
1311
1312        contrastBtns.forEach(function (btn) {
1313          btn.addEventListener('click', function () {
1314            if (typeof EyeAbleAPI === 'undefined') return;
1315            EyeAbleAPI.toggleContrast();
1316            updateContrastState();
1317          });
1318        });
1319
1320        if (contrastBtns.length) {
1321          document.addEventListener('eyeable:event', updateContrastState);
1322          updateContrastState();
1323        }
1324
1325        assistentBtnsDesktop.forEach(function (btn) {
1326          btn.addEventListener('click', function () {
1327            if (typeof EyeAbleAPI === 'undefined') return;
1328            EyeAbleAPI.toggleToolbar();
1329          });
1330        });
1331      });
1332
1333      leichteSpracheBtns.forEach(function (btn) {
1334        btn.addEventListener('click', async function () {
1335          var ready = await self.waitForPlainLanguage(1000);
1336
1337          if (!ready) {
1338            console.warn('Eye-Able Plain Language script not loaded yet.');
1339            return;
1340          }
1341
1342          if (EA.isEasyActive()) {
1343            await EA.deactivateEasy();
1344            leichteSpracheBtns.forEach(function (b) {
1345              b.setAttribute('aria-pressed', 'false');
1346            });
1347          } else {
1348            await EA.activateEasy();
1349            leichteSpracheBtns.forEach(function (b) {
1350              b.setAttribute('aria-pressed', 'true');
1351            });
1352          }
1353        });
1354      });
1355    };
1356
1357    this.waitForPlainLanguage = function (timeoutMs) {
1358      return new Promise(function (resolve) {
1359        var waited = 0;
1360        var interval = 100;
1361
1362        var check = setInterval(function () {
1363          if (typeof EA !== 'undefined' && EA.scriptIsLoaded()) {
1364            clearInterval(check);
1365            resolve(true);
1366          } else if (waited >= timeoutMs) {
1367            clearInterval(check);
1368            resolve(false);
1369          }
1370          waited += interval;
1371        }, interval);
1372      });
1373    };
1374
1375    this.accessibilityMobileToggle = function () {
1376      self.mobileButton.on('click', function (e) {
1377        e.stopPropagation();
1378        $(this).find('.accessibilitydropdown').toggleClass('shown');
1379      });
1380
1381      $(document).on('click', function (e) {
1382        if (!$(e.target).closest(self.mobileButton).length) {
1383          self.mobileButton.find('.accessibilitydropdown').removeClass('shown');
1384        }
1385      });
1386    };
1387
1388    this.constructor();
1389  };
1390})(jQuery);
1391
1392
1393jQuery.noConflict();
1394
1395(function ($) {
1396  Bw.View.HeaderSubsite = function (options) {
1397    var self = this;
1398
1399    this.header = $('.bwSubsite-header');
1400    this.subsiteNavigation = $('.bwSubsite-navigation');
1401    this.subsiteNavigationMobile = $('.bwSubsite-navigation-mobile');
1402    this.subtitle = $('.bwSubsite-sitetitle');
1403    this.stageContainer = $('.stage-container');
1404    this.stage = $('.bwSubsite-stage');
1405    this.mainContent = $('.maincontent');
1406    this.mainContentPaddingtop = parseInt(self.mainContent.css('padding-top'));
1407    this.subsiteNavigation = $('.bwSubsite-navigation');
1408    this.subsiteNavigationIsVisible = false;
1409    this.subsiteNavigationMenuTrigger = $('.bwSubsite-sitetitle--widget');
1410
1411    this.headerFixed = false;
1412
1413    this.constructor = function () {
1414      $(document).ready(function () {
1415        self.setMaincontentPadding();
1416        //self.moveEyeableButton();
1417
1418        self.subsiteNavigationMenuTrigger.unbind('click').click(function () {
1419          self.toggleSubsiteNavigation($(this));
1420        });
1421
1422        if ($('.bwBurgermenu').length > 0) {
1423          $('body').addClass('hasBurgermenu');
1424        }
1425
1426        $(window).on('scroll', function () {
1427          self.setMaincontentPadding();
1428        });
1429
1430        // enable menu to be closed with escape
1431        $(document).on('keydown', function (e) {
1432          if (e.key === 'Escape' && self.subsiteNavigationIsVisible) {
1433            self.toggleSubsiteNavigation(self.subsiteNavigationMenuTrigger);
1434          }
1435        });
1436
1437        $(window).on('resize', function () {
1438          //self.moveEyeableButton();
1439          self.setMaincontentPadding();
1440
1441          if ($(window).width() < 991) {
1442            //self.subtitle.attr('style', '');
1443            self.mainContent.css('margin-top', '0');
1444          }
1445        });
1446
1447        self.initializeSubmenuNavigation();
1448        self.accessibilityDropdownNavigation();
1449      });
1450    };
1451
1452    this.setMaincontentPadding = function () {
1453      if (self.stageContainer.children().length == 0) {
1454        let paddingTop = 100;
1455
1456        /* if (!$('body').hasClass('bistum-caritas') && !$('.wrapper').hasClass('layout-2')) {
1457          self.mainContent.css('padding-top', self.mainContentPaddingtop + paddingTop);
1458        } */
1459      }
1460
1461      // Facelift
1462      /* if (!$('body').hasClass('bistum-caritas')) {
1463        if ($(window).width() < 991) {
1464          let newPaddingTop = this.header.height();
1465
1466          self.mainContent.css('padding-top', newPaddingTop);
1467        } else {
1468          self.mainContent.css('padding-top', 0);
1469        }
1470      } */
1471    };
1472
1473    // Switch position of eyeable button depending on viewport
1474    this.moveEyeableButton = function () {
1475      return; // eye
1476      const btn = document.getElementById('eyeAble_customToolOpenerID');
1477      const parentElementMobile = document.querySelector('.bwHeader--widgetBar');
1478
1479      if ($('.wrapper').hasClass('layout-1')) {
1480        const parentElementDesktop = document.querySelector('.bwHeader--container .header-navigation');
1481
1482        if ($(window).width() > 991 && parentElementDesktop) {
1483          if (parentElementDesktop) {
1484            parentElementDesktop.prepend(btn);
1485          }
1486        }
1487      }
1488
1489      if ($('.wrapper').hasClass('layout-2')) {
1490        const parentElementDesktop = document.querySelector('.bwHeader--container-top .bwSubsite-navigation--outer');
1491
1492        if ($(window).width() > 991 && parentElementDesktop) {
1493          if (parentElementDesktop) {
1494            btn.before(parentElementDesktop);
1495          }
1496        }
1497      }
1498
1499      if ($(window).width() < 991 && parentElementMobile) {
1500        parentElementMobile.prepend(btn);
1501      }
1502    };
1503
1504    this.toggleSubsiteNavigation = function () {
1505      if (self.subsiteNavigationIsVisible === false) {
1506        self.showSubsiteNavigationMobile();
1507      } else {
1508        self.hideSubsiteNavigationMobile();
1509      }
1510    };
1511
1512    this.showSubsiteNavigationMobile = function () {
1513      if (self.subsiteNavigationIsVisible) return;
1514      self.subsiteNavigationIsVisible = true;
1515      self.preventClose = true;
1516
1517      self.subsiteNavigationMobile.addClass('visible');
1518      self.subsiteNavigationMobile.addClass('fade-in');
1519      self.subsiteNavigationMenuTrigger.find('svg').removeClass('visible');
1520      self.subsiteNavigationMenuTrigger.find('.close-subsite-navigation').addClass('visible');
1521
1522      $('html').css({
1523        overflow: 'visible',
1524        'padding-right': '0',
1525      });
1526
1527      setTimeout(function () {
1528        self.preventClose = false;
1529        self.subsiteNavigationMobile.removeClass('fade-in');
1530      }, 600);
1531    };
1532
1533    this.hideSubsiteNavigationMobile = function () {
1534      if (!self.subsiteNavigationIsVisible) return;
1535
1536      self.subsiteNavigationMobile.addClass('fade-out');
1537      self.subsiteNavigationMenuTrigger.find('svg').removeClass('visible');
1538      self.subsiteNavigationMenuTrigger.find('.open-subsite-navigation').addClass('visible');
1539
1540      setTimeout(function () {
1541        self.subsiteNavigationMobile.removeClass('visible');
1542        self.subsiteNavigationMobile.removeClass('fade-out');
1543
1544        self.subsiteNavigationIsVisible = false;
1545      }, 200);
1546    };
1547
1548
1549
1550    /**------------------------------**/
1551    /** Logic for navigating submenu **/
1552    /**------------------------------**/
1553    this.initializeSubmenuNavigation = function () {
1554      const navRoot = $('.bwSubsite-navigation--list');
1555
1556      navRoot.find('a.bwSubsite-navigation--link').on('focus', function () {
1557        const $link = $(this);
1558        const $li = $link.closest('li.bwSubsite-navigation--dropdownItem');
1559        const $submenu = $li.children('ul.bwSubsite-navigation--dropdown');
1560
1561        if ($li.hasClass('level-2')) {
1562          const level2Links = $('.bwSubsite-navigation--dropdownItem.level-2');
1563
1564          level2Links.removeClass('hover opened');
1565          // Also close any level 3 dropdowns inside those level 2 items
1566          level2Links.find('ul.bwSubsite-navigation--dropdown.level-3').removeClass('opened');
1567        }
1568
1569        if ($li.hasClass('level-1')) {
1570          self.closeAllSubMenu(navRoot);
1571        }
1572
1573        $li.addClass('hover opened');
1574
1575        if ($submenu.length) {
1576          $submenu.addClass('opened');
1577        }
1578      });
1579
1580      navRoot.find('a.bwSubsite-navigation--link').on('blur', function () {
1581        setTimeout(() => {
1582          if (!navRoot.find('a:focus').length) {
1583            self.closeAllSubMenu(navRoot);
1584          }
1585        }, 100);
1586      });
1587
1588      // arrow key handling for navigation
1589      navRoot.find('a.bwSubsite-navigation--link').on('keydown', function (e) {
1590        const $current = $(this);
1591        const $li = $current.closest('li.bwSubsite-navigation--dropdownItem');
1592        const $submenu = $li.children('ul.bwSubsite-navigation--dropdown');
1593
1594        // down / right to navigate sub
1595        if (e.key === 'ArrowDown' || e.key === 'ArrowRight') {
1596          const $firstSubLink = $submenu.find('a.bwSubsite-navigation--link').first();
1597
1598          if ($submenu.length && $firstSubLink.length) {
1599            $li.addClass('hover opened');
1600            $submenu.addClass('opened');
1601            $firstSubLink.focus();
1602            e.preventDefault();
1603          }
1604        }
1605
1606        // up / left to get back up
1607        if (e.key === 'ArrowUp' || e.key === 'ArrowLeft') {
1608          const $parentLi = $li.parents('li.bwSubsite-navigation--dropdownItem').first();
1609          const $parentLink = $parentLi.children('a.bwSubsite-navigation--link').first();
1610
1611          if ($parentLink.length) {
1612            $parentLink.focus();
1613            e.preventDefault();
1614          }
1615        }
1616
1617        // escape to close all submenus
1618        if (e.key === 'Escape') {
1619          self.closeAllSubMenu(navRoot);
1620          $current.blur();
1621          e.preventDefault();
1622        }
1623      });
1624
1625      // disable arrows while in nav
1626      document.addEventListener('keydown', function (e) {
1627        const isNavOpen = $('.bwSubsite-navigation--dropdownItem.hover, .bwSubsite-navigation--dropdownItem.opened').length > 0;
1628
1629        if (isNavOpen && (e.key === 'ArrowUp' || e.key === 'ArrowDown')) {
1630          e.preventDefault();
1631        }
1632      });
1633    };
1634
1635    this.closeAllSubMenu = function (navRoot) {
1636      navRoot.find('ul.bwSubsite-navigation--dropdown').removeClass('opened');
1637    };
1638
1639    this.accessibilityDropdownNavigation = function () {
1640      var trigger = document.querySelector('.bwAccessibility--trigger');
1641
1642      if (!trigger) return;
1643
1644      var dropdown = trigger.querySelector('.bwAccessibility--dropdown');
1645      var links = trigger.querySelectorAll('.bwAccessibility--link');
1646
1647      var offset = null;
1648
1649      // Dropdown im Top-Layer an den Trigger heften (Header bewegt sich beim Scrollen)
1650      var positionDropdown = function () {
1651        if (!dropdown.matches(':popover-open')) return;
1652
1653        var rect = trigger.getBoundingClientRect();
1654        dropdown.style.top = rect.top + offset.top + 'px';
1655        dropdown.style.left = rect.left + offset.left + 'px';
1656        requestAnimationFrame(positionDropdown);
1657      };
1658
1659      var setExpanded = function (expanded) {
1660        trigger.setAttribute('aria-expanded', expanded ? 'true' : 'false');
1661
1662        if (!dropdown.showPopover) return;
1663
1664        if (expanded && !dropdown.matches(':popover-open')) {
1665          var triggerRect = trigger.getBoundingClientRect();
1666          var dropdownRect = dropdown.getBoundingClientRect();
1667          offset = { top: dropdownRect.top - triggerRect.top, left: dropdownRect.left - triggerRect.left };
1668          dropdown.showPopover();
1669          positionDropdown();
1670        }
1671
1672        if (!expanded && dropdown.matches(':popover-open')) {
1673          dropdown.hidePopover();
1674          dropdown.style.top = '';
1675          dropdown.style.left = '';
1676        }
1677      };
1678
1679      var closeDropdown = function () {
1680        setExpanded(false);
1681      };
1682
1683      // Keep aria-expanded in sync with the hover/focus-within CSS state
1684      trigger.addEventListener('mouseenter', function () {
1685        setExpanded(true);
1686      });
1687
1688      trigger.addEventListener('mouseleave', function () {
1689        if (!trigger.contains(document.activeElement)) {
1690          closeDropdown();
1691        }
1692      });
1693
1694      trigger.addEventListener('focusin', function () {
1695        setExpanded(true);
1696      });
1697
1698      trigger.addEventListener('focusout', function (e) {
1699        if (!trigger.contains(e.relatedTarget)) {
1700          closeDropdown();
1701        }
1702      });
1703
1704      // Escape closes the dropdown and returns focus to the trigger,
1705      // whether focus is on the trigger itself or one of the buttons inside
1706      trigger.addEventListener('keydown', function (e) {
1707        if (e.key === 'Escape') {
1708          closeDropdown();
1709          trigger.focus();
1710          e.preventDefault();
1711        }
1712      });
1713
1714      // Enter / Space on the trigger itself opens the dropdown and
1715      // moves focus to the first button, since it's a div, not a native control
1716      trigger.addEventListener('keydown', function (e) {
1717        if (e.target !== trigger) return;
1718
1719        if (e.key === 'Enter' || e.key === ' ') {
1720          e.preventDefault();
1721          setExpanded(true);
1722
1723          if (links.length) {
1724            links[0].focus();
1725          }
1726        }
1727      });
1728
1729      // Arrow up/down cycles through the three buttons once inside
1730      links.forEach(function (link, index) {
1731        link.addEventListener('keydown', function (e) {
1732          if (e.key === 'ArrowDown') {
1733            e.preventDefault();
1734            var next = links[index + 1] || links[0];
1735            next.focus();
1736          }
1737
1738          if (e.key === 'ArrowUp') {
1739            e.preventDefault();
1740            var prev = links[index - 1] || links[links.length - 1];
1741            prev.focus();
1742          }
1743        });
1744      });
1745    };
1746
1747    this.constructor();
1748  };
1749})(jQuery);
1750
1751
1752jQuery.noConflict();
1753
1754(function ($) {
1755  Bw.View.Menu = function () {
1756    var self = this;
1757    this.el = $('.bwMenu');
1758    this.elClose = $('.bwMenu--closer');
1759    this.elToc = $('.bwMenu--toc');
1760    this.elTocItem = $('.bwMenu--tocItem');
1761    this.elPagesContainer = $('.bwMenu--pagesContainer');
1762    this.elPagesItem = $('.bwMenu--pagesItem');
1763    //this.navLinks = $('.bwMenu .bwMenu--tocLink');
1764
1765    this.isVisible = false;
1766    this.preventClose = false;
1767
1768    this.constructor = function () {
1769      self.elClose.unbind('click').bind('click', function () {
1770        self.closeMenu();
1771      });
1772      self.show();
1773      self.checkBreakpoints();
1774
1775      /*self.elTocItem.unbind('click').bind('click',function(){
1776            self.setCurrent(self.elTocItem,$(this).data('index'));
1777            self.setCurrent(self.elPagesItem,$(this).data('index'));
1778            return self.checkBreakpoints();
1779        });
1780
1781        if(!self.elTocItem.hasClass('current'))
1782        {
1783            self.elTocItem.first().addClass('current');
1784            self.elPagesItem.first().addClass('current');
1785        }*/
1786
1787      $(window).resize(function () {
1788        self.checkBreakpoints();
1789      });
1790    };
1791
1792    this.setTogglePagesNav = function (links, pages) {
1793      // check if click-binding is already set
1794      if (links.hasClass('toggle') === false) {
1795        // If switched between dekstop and mobile
1796        pages.hide();
1797        links.parents('.bwMenu--tocItem').removeClass('active');
1798
1799        links.click(function () {
1800          var currentLink = $(this);
1801          var previousSubpages = pages.filter('.visible');
1802          var currentPages = $(this).parents('li').find('.bwMenu--pages');
1803
1804          // show subpages if they exist
1805          if (currentPages.length > 0) {
1806            $('.bwMenu--tocItem').removeClass('active');
1807
1808            // only slideUp if it isn't already shown
1809            if (currentPages.hasClass('visible') === false) {
1810              currentPages.addClass('visible').slideDown();
1811              currentLink.parents('.bwMenu--tocItem').addClass('active');
1812            }
1813
1814            // hide previous opened
1815            previousSubpages.removeClass('visible').slideUp();
1816          }
1817
1818          return false;
1819        });
1820      }
1821
1822      links.addClass('toggle');
1823    };
1824
1825    this.unsetTogglePagesNav = function (links, pages) {
1826      // check if click-binding is already set
1827      links.each(function () {
1828        if ($(this).hasClass('toggle')) {
1829          $(this).unbind('click').removeClass('toggle');
1830        }
1831      });
1832
1833      pages.show();
1834    };
1835
1836    this.show = function () {
1837      if (self.isVisible) return;
1838      self.isVisible = true;
1839      self.preventClose = true;
1840
1841      self.el.addClass('visible');
1842      self.el.addClass('fade-in');
1843
1844      setTimeout(function () {
1845        self.preventClose = false;
1846        self.el.removeClass('fade-in');
1847      }, 600);
1848    };
1849
1850    this.hide = function () {
1851      if (!self.isVisible) return;
1852      self.isVisible = false;
1853
1854      self.el.addClass('fade-out');
1855
1856      setTimeout(function () {
1857        self.el.removeClass('visible');
1858        self.el.removeClass('fade-out');
1859      }, 200);
1860    };
1861
1862    this.setCurrent = function (items, index) {
1863      var oldItem = items.filter('.current');
1864      var newItem = items.filter('[data-index="' + index + '"]');
1865      if (newItem == oldItem) return false;
1866      oldItem.removeClass('current');
1867      newItem.addClass('current');
1868      if (items == self.elPagesItem) self.handleTransition(newItem, oldItem);
1869    };
1870
1871    this.closeMenu = function () {
1872      if (self.preventClose) {
1873        return false;
1874      }
1875      self.hide();
1876      return true;
1877    };
1878
1879    this.handleTransition = function (newItem, oldItem) {
1880      if (newItem == oldItem) return false;
1881      var oldIndex = oldItem.index();
1882      var newIndex = newItem.index();
1883      var transitionClass = oldIndex > newIndex ? 'transitionBottom' : 'transitionTop';
1884      self.elPagesContainer.removeClass('transitionBottom transitionTop heightTransition').addClass(transitionClass + ' heightTransition');
1885      self.elPagesItem.removeClass('transitionTarget transitionOrigin');
1886      newItem.addClass('transitionTarget');
1887      oldItem.addClass('transitionOrigin');
1888    };
1889
1890    this.checkBreakpoints = function () {
1891      var windowWidth = $(window).width();
1892
1893      if (windowWidth < 768) {
1894        self.setTogglePagesNav(self.elTocItem.find('.bwMenu--tocLink'), $('.bwMenu--pages'));
1895      }
1896
1897      if (windowWidth > 768) {
1898        //self.elTocItem.find('.bwMenu--tocLink').unbind('click');
1899        self.unsetTogglePagesNav(self.elTocItem.find('.bwMenu--tocLink'), $('.bwMenu--pages'));
1900      }
1901    };
1902
1903    this.constructor();
1904  };
1905})(jQuery);
1906
1907
1908jQuery.noConflict();
1909
1910(function ($) {
1911  Bw.View.Stage = function (options) {
1912    var self = this;
1913
1914    this.container = $(options.container).first();
1915    this.autoplayEnabled = options.autoplay;
1916    this.autoplaySpeed = options.autoplaySpeed;
1917
1918    this.constructor = function () {
1919      self.container.find('.slick-slider-container.slick-initialized').slick('unslick');
1920
1921      self.initSlider(self.container);
1922    };
1923
1924    this.initSlider = function (sliderContainer) {
1925      const totalSlides = $(sliderContainer).find('.slide').length;
1926
1927      if (totalSlides > 1) {
1928        $(sliderContainer).find('.bfStage__controls').show();
1929      }
1930
1931      var slickConfig = {
1932        dots: false,
1933        infinite: true,
1934        speed: 500,
1935        slidesToShow: 1,
1936        fade: true,
1937        autoplay: false,
1938        prevArrow: $(options.container).find('.bfStage__arrowPrev'),
1939        nextArrow: $(options.container).find('.bfStage__arrowNext'),
1940        cssEase: 'ease',
1941      };
1942
1943      if (self.autoplayEnabled == 1) slickConfig.autoplay = true;
1944      if (self.autoplaySpeed > 0) slickConfig.autoplaySpeed = self.autoplaySpeed;
1945
1946      // Folgeseiten Typ 2
1947      if ($('.wrapper').hasClass('layout-2')) {
1948        // check if first element in .maincontent is .bfContainer
1949        if ($('.maincontent-inner').children().first().hasClass('bfContainer')) {
1950          self.container.addClass('no-margin-bottom');
1951        }
1952      }
1953
1954      // Caritas
1955      if ($('.bistum-caritas').length > 0) {
1956        slickConfig.fade = false;
1957
1958        // remove custom slick controls
1959        delete slickConfig.prevArrow;
1960        delete slickConfig.nextArrow;
1961      }
1962
1963      // add accessibility labels on init
1964      $(sliderContainer).find('.slick-slider-container').on('init', function (event, slick) {
1965        $(this).find('.slick-track')
1966          .attr('role', 'region')
1967          .attr('aria-label', 'Bilderkarussell');
1968      });
1969
1970      $(sliderContainer).not('.slick-initialized').find('.slick-slider-container').slick(slickConfig);
1971    };
1972
1973    this.constructor();
1974  };
1975})(jQuery);
1976
1977
1978jQuery.noConflict();
1979
1980(function ($) {
1981  $('.imgtextmodule').each(function () {
1982    var self = $(this);
1983
1984    // Find images for gallery
1985    var GalleryItems = [];
1986    self.find('.gallery-thumbnail-img:not(".slick-cloned")').each(function (i) {
1987      var theSrc = {
1988        src: $(this).find('.btn.lightbox').attr('href'),
1989        title: $(this).find('img').attr('title'),
1990        type: 'image',
1991      };
1992      GalleryItems.push(theSrc);
1993    });
1994
1995    // Remove duplicate images
1996    GalleryItems = GalleryItems.reduce(function (previous, current) {
1997      var object = previous.filter(function (object) {
1998        return object.src === current.src;
1999      });
2000      if (object.length == 0) {
2001        previous.push(current);
2002      }
2003      return previous;
2004    }, []);
2005
2006    // Initialize magnific popup gallery
2007    self.find('.gallery-thumbnail-img:not(".slick-cloned") a.lightbox').magnificPopup({
2008      type: 'image',
2009      removalDelay: 250,
2010      mainClass: 'mfp-fade',
2011      gallery: {
2012        enabled: true,
2013        delegate: '.btn.lightbox',
2014        preload: [0, 1],
2015        tCounter: '<div class="mfp-counter">%curr% / %total%</div>',
2016      },
2017      items: GalleryItems,
2018    });
2019
2020    // Mobile
2021    var slider = self.find('.slick-slider');
2022
2023    slider.magnificPopup({
2024      type: 'image',
2025      delegate: '.slick-thumbnail-img:not(.slick-cloned) .lightbox',
2026      removalDelay: 250,
2027      mainClass: 'mfp-fade',
2028      gallery: {
2029        enabled: true,
2030        preload: [0, 1],
2031        tCounter: '<div class="mfp-counter">%curr% / %total%</div>',
2032      },
2033      callbacks: {
2034        open: function () {
2035          if (typeof slick === 'function') {
2036            var current = slider.slick('slickCurrentSlide');
2037            slider.magnificPopup('goTo', current);
2038          }
2039        },
2040        beforeClose: function () {
2041          if (typeof slick === 'function') {
2042            slider.slick('slickGoTo', parseInt(this.index));
2043          }
2044        },
2045      },
2046    });
2047  });
2048})(jQuery);
2049
2050
2051jQuery.noConflict();
2052
2053(function ($) {
2054  function adjustImageHeight() {
2055    var currentModal = $('.modal.in');
2056    var currentWindowHeight = $(window).height();
2057
2058    if (currentModal.length > 0) {
2059      var modalHeaderHeight = currentModal.find('.modal-header').outerHeight();
2060      var modalThumbnailsHeight = currentModal.find('.modal-thumbnail-container').outerHeight();
2061      var availableHeight = currentWindowHeight - (modalHeaderHeight + modalThumbnailsHeight + 100); // 100px paddings
2062    }
2063
2064    // Resize images which would be higher than viewport
2065    $('.slick-slider')
2066      .find('.slick-img-responsive')
2067      .each(function () {
2068        $(this).attr('style', '');
2069        var currentImageHeight = $(this).height();
2070        var currentTextHeight = 0;
2071
2072        if ($(this).parent().next('.modal-text').length > 0) currentTextHeight = $(this).parent().next('.modal-text').outerHeight();
2073
2074        var currentElementHeight = currentImageHeight + currentTextHeight;
2075
2076        if (currentElementHeight > availableHeight) {
2077          $(this).height(availableHeight - currentTextHeight);
2078        }
2079      });
2080
2081    // force slick to recalculate height of container
2082    $('.slick-slider').slick('setPosition');
2083  }
2084
2085  function setSlickForSingleGallery() {
2086    // Single gallery
2087    $('.bwGallery').each(function () {
2088      if ($(window).width() < 992) {
2089        var currentGalley = $(this).find('.box-item:not(.slick-initialized)');
2090        var shownImages = currentGalley.find('.img-responsive');
2091        var imageContainerClass = currentGalley.find('.image-container').attr('class');
2092
2093        // Find all images in gallery (> 4 images are hidden in modal)
2094        var allImages = currentGalley.next().find('.image-container .img-responsive');
2095
2096        // Exclude already shown images
2097        var remainingImages = allImages.filter(function (index) {
2098          if (index > shownImages.length) {
2099            return true;
2100          }
2101        });
2102
2103        // Append remaining images in slider
2104        remainingImages.each(function (index) {
2105          var currentCopyright = $(this).next('.img-copyright').text();
2106          var currentDescription = $(this).parent().next('.modal-text').text();
2107
2108          if ($(this).parent().next('.modal-text').find('.image-description').length > 0) var currentDescription = $(this).parent().next('.modal-text').find('.image-description').text();
2109
2110          var copyrightHtml;
2111          var descriptionHtml;
2112
2113          // create clone of modal image
2114          var generatedImage = $(this).clone(true);
2115          currentGalley.append(generatedImage);
2116
2117          // append copyright and description element
2118          var appendedImage = currentGalley.find(generatedImage);
2119
2120          if (currentCopyright != '') copyrightHtml = '<div class="img-copyright">' + currentCopyright + '</div>';
2121          if (currentDescription != '') descriptionHtml = '<div class="img-description">' + currentDescription + '</div>';
2122
2123          var imageContainer = '<div class="generated only-mobile ' + imageContainerClass + '"><div class="image">' + copyrightHtml + '</div>' + descriptionHtml + '</div>';
2124          imageContainer = $(imageContainer);
2125          imageContainer.find('.image').prepend(appendedImage);
2126
2127          // append dynamic created element to gallery
2128          currentGalley.append(imageContainer);
2129        });
2130
2131        currentGalley.slick({
2132          lazyLoad: 'ondemand',
2133          adaptiveHeight: true,
2134          infinite: false,
2135          responsive: [
2136            {
2137              breakpoint: 768,
2138              settings: {
2139                slidesToShow: 1,
2140              },
2141            },
2142            {
2143              breakpoint: 992,
2144              settings: {
2145                slidesToShow: 2,
2146              },
2147            },
2148          ],
2149        });
2150
2151        // Adjust container height on slide change
2152        currentGalley.on('lazyLoaded', function () {
2153          setTimeout(function () {
2154            // Resize all slick images after being lazy loaded for setting dimensions
2155            adjustImageHeight();
2156          }, 500);
2157        });
2158
2159        // Disable Image Pop-Up on click
2160        currentGalley.find('.image a').removeClass('gallery-open-image');
2161      } else {
2162        var currentGalley = $(this).find('.box-item.slick-initialized');
2163
2164        if (currentGalley.length > 0) {
2165          currentGalley.slick('unslick');
2166          currentGalley.find('.generated').remove();
2167          currentGalley.find('.image a').addClass('gallery-open-image');
2168        }
2169      }
2170    });
2171  }
2172
2173  function initModalSliders() {
2174    // Bildergalerie Pop-Up öffnen
2175    if ($('.modal .modal-slick').length > 0) {
2176      $('.modal').on('shown.bs.modal', function () {
2177        // Bildergalerien laden
2178        if ($('.modal-slider-for').length > 0) {
2179          $('.modal-slider-for').each(function (key, item) {
2180            var sliderIdName = 'slider' + key;
2181            var sliderNavIdName = 'sliderNav' + key;
2182
2183            this.id = sliderIdName;
2184            $('.modal-slider-nav')[key].id = sliderNavIdName;
2185
2186            var sliderId = '#' + sliderIdName;
2187            var sliderNavId = '#' + sliderNavIdName;
2188
2189            // Großes Bild
2190            $(sliderId).not('.slick-initialized').slick({
2191              lazyLoad: 'ondemand',
2192              slidesToShow: 1,
2193              slidesToScroll: 1,
2194              fade: true,
2195              asNavFor: sliderNavId,
2196              adaptiveHeight: true,
2197            });
2198
2199            $(sliderId).on('lazyLoaded', function () {
2200              setTimeout(function () {
2201                // Resize all slick images after being lazy loaded for setting dimensions
2202                adjustImageHeight();
2203              }, 500);
2204            });
2205
2206            // Thumbnails (ohne lazyloading)
2207            $(sliderNavId).not('.slick-initialized').slick({
2208              slidesToScroll: 1,
2209              asNavFor: sliderId,
2210              centerMode: false,
2211              focusOnSelect: true,
2212              arrows: false,
2213              variableWidth: true,
2214              infinite: false,
2215            });
2216          });
2217
2218          $('.slickPrev').click(function () {
2219            $('.slick-slider').slick('slickPrev');
2220          });
2221
2222          $('.slickNext').click(function () {
2223            $('.slick-slider').slick('slickNext');
2224          });
2225
2226          // Resize after showing modal
2227          //$('.slick').slick('setPosition');
2228        }
2229
2230        adjustImageHeight();
2231      });
2232    }
2233  }
2234
2235  function initSliders() {
2236    const sliderContainers = $('.slick-slider-container').not('.slick-initialized, .slick-slider-stage');
2237
2238    if (sliderContainers.length > 0) {
2239      let slickOptions = {
2240        adaptiveHeight: true,
2241        responsive: [],
2242      };
2243      let optionsMd = {
2244        breakpoint: 991,
2245        settings: {
2246          adaptiveHeight: true,
2247        },
2248      };
2249
2250      sliderContainers.each(function () {
2251        if ($(this).attr('data-slides')) {
2252          slickOptions.slidesToShow = $(this).attr('data-slides');
2253        }
2254
2255        // xs
2256        if ($(this).attr('data-slides-xs')) {
2257          let optionsXs = {
2258            breakpoint: 767,
2259            settings: {
2260              slidesToShow: $(this).attr('data-slides-xs'),
2261            },
2262          };
2263
2264          slickOptions.responsive.push(optionsXs);
2265        }
2266
2267        // md
2268        if ($(this).attr('data-slides-md')) {
2269          optionsMd.settings.slidesToShow = $(this).attr('data-slides-md');
2270        }
2271
2272        slickOptions.responsive.push(optionsMd);
2273
2274        // xl
2275        if ($(this).attr('data-slides-xl')) {
2276          let optionsXl = {
2277            breakpoint: 1200,
2278            settings: {
2279              slidesToShow: $(this).attr('data-slides-xl'),
2280            },
2281          };
2282
2283          slickOptions.responsive.push(optionsXl);
2284        }
2285
2286        $(this).slick(slickOptions);
2287      });
2288    }
2289  }
2290
2291  function preventAriaDescribedBy() {
2292    $('.slick-slider').each(function () {
2293      const $slider = $(this);
2294      const clean = () => $slider.find('.slick-slide').removeAttr('aria-describedby');
2295
2296      clean();
2297      $slider.on('afterChange', clean);
2298      $slider.on('init', clean);
2299    });
2300  }
2301
2302  setSlickForSingleGallery();
2303  initSliders();
2304  initModalSliders();
2305  setTimeout(preventAriaDescribedBy, 500);
2306
2307  $(document).on('ajaxPaginationTriggered', function () {
2308    initModalSliders();
2309  });
2310
2311  $(window).resize(function () {
2312    setTimeout(function () {
2313      setSlickForSingleGallery();
2314      adjustImageHeight();
2315    }, 500);
2316  });
2317})(jQuery);
2318
2319
2320jQuery.noConflict();
2321
2322(function ($) {
2323  Bw.View.Teasergroup = function (options) {
2324    // Paramter: container,childSelector,childClass
2325
2326    var self = this;
2327
2328    this.container = $(options.container);
2329    this.pagesContainer = this.container.find('.bwTeasergroup--pages');
2330    this.pagesItem = this.pagesContainer.find('.bwTeasergroup--page');
2331    this.children;
2332    this.childrenLength;
2333    this.paginationViewport = this.container.find('.bwTeasergroup--pagination');
2334    this.paginationContainer = this.container.find('.bwPagination--container');
2335    this.paginationList = this.paginationContainer.find('.bwPagination--list');
2336    this.paginationItem = this.paginationContainer.find('.bwPagination--button');
2337    this.paginationButton = this.paginationViewport.find('.bwPagination--button');
2338    this.nextButton = this.paginationViewport.find('.bwPagination--button.next');
2339    this.previousButton = this.paginationViewport.find('.bwPagination--button.previous');
2340    this.currentClasses = this.container.attr('class');
2341    this.gridClass = 'bwTeasergroup--grid-';
2342    this.grid;
2343    this.gridSm;
2344    this.gridMd;
2345    this.gridXs = 1;
2346    this.teaserCount;
2347    this.autoplayActivated = false;
2348    this.autoplayInterval;
2349    this.onepager;
2350    this.isResponsivePaginationList = true;
2351    this.isFolgeseitenTeasergroup = self.container.hasClass('bfTeasergroup');
2352
2353    Function.prototype.debounce = function (wait) {
2354      let timeout,
2355        debouncedFunc = this;
2356      return function () {
2357        let context = this;
2358        function later(args) {
2359          timeout = null;
2360          debouncedFunc.apply(context, args);
2361        }
2362        clearTimeout(timeout);
2363        timeout = setTimeout(later, wait, arguments);
2364      };
2365    };
2366
2367    this.constructor = function () {
2368      if (new RegExp(self.gridClass).test(self.currentClasses) === true) {
2369        var strStart = self.currentClasses.indexOf(self.gridClass);
2370        var strLen = self.gridClass.length;
2371        self.grid = self.currentClasses.substr(strStart + strLen, 2);
2372      }
2373
2374      self.teaserCount = self.container.find('.teaser').length;
2375
2376      // Grid tablet
2377      if (self.container.is('[class*=grid-md-]')) {
2378        let gridMd = self.container.attr('class').match(/grid-md-[1-9]/);
2379        gridMd = gridMd[0].match(/[1-9]/);
2380        self.gridMd = parseInt(gridMd[0]);
2381      }
2382
2383      // Only used within Folgeseiten
2384      if (self.container.is('[class*=grid-sm-]')) {
2385        let gridSm = self.container.attr('class').match(/grid-sm-[1-9]/);
2386        gridSm = gridSm[0].match(/[1-9]/);
2387        self.gridSm = parseInt(gridSm[0]);
2388      }
2389
2390      setTimeout(function () {
2391        // Folgeseiten only
2392        if (self.isFolgeseitenTeasergroup) {
2393          var teasergroupSliderEnabled = self.container.hasClass('sliderEnabled') === true;
2394          let grid = self.getCurrentViewportGrid();
2395
2396          if (teasergroupSliderEnabled) {
2397            self.pagesContainer.WrapThis(grid, '.teaser', '<div class="bwTeasergroup--page bwAnnouncements--item wrapped" />', self.container);
2398
2399            // Set elements which are build in wrapThis function
2400            self.pagesItem = self.container.find('.bwTeasergroup--page');
2401            self.paginationItem = self.paginationList.find('.bwPagination--button');
2402            self.paginationButton = self.paginationViewport.find('.bwPagination--button');
2403            self.buildPagination(self.pagesItem.length);
2404          }
2405        } else {
2406          // Only for EXT: bistum_baukasten
2407          // Teasergroup 1 & 3 always uses slider
2408          var teasergroupSliderEnabled = self.container.hasClass('sliderEnabled') === true || self.grid == 1 || self.grid == 3;
2409
2410          if ($('body').hasClass('tmpl-standard') == false && self.grid == 1) teasergroupSliderEnabled = false;
2411        }
2412
2413        if (teasergroupSliderEnabled) {
2414          var controlButtons = $([self.nextButton[0], self.previousButton[0]]);
2415
2416          // Teasergrid 1 contains multiple buttons
2417          /*if( self.grid == 1 ){
2418					controlButtons = $.merge(self.nextButton, self.previousButton);
2419				}*/
2420
2421          self.buildPagination(self.pagesItem.length);
2422          self.setCurrentIndex(0);
2423
2424          if (typeof self.nextButton[0] != 'undefined') {
2425            controlButtons.on('click', function (event) {
2426              self.onButtonClick($(this));
2427            });
2428          }
2429
2430          self.pagesItem.on('swipeleft', function (event) {
2431            self.onSwipe(event);
2432          });
2433
2434          self.pagesItem.on('swiperight', function (event) {
2435            self.onSwipe(event);
2436          });
2437
2438          if (self.container.hasClass('autoplay')) {
2439            if ($(window).width() > 991) {
2440              self.autoplayActivated = true;
2441              self.startAutoplay();
2442            }
2443          }
2444
2445          self.handleViewportResize();
2446
2447          // Resize
2448          $(window).resize(function () {
2449            setTimeout(function () {
2450              self.debouncedHandleViewportResize();
2451
2452              if (self.grid == 1 && teasergroupSliderEnabled && !self.isFolgeseitenTeasergroup) {
2453                self.equalizeTeaserHeight(self.pagesItem);
2454              }
2455            }, 1000);
2456          });
2457        }
2458
2459        if (self.grid == 1 && !self.isFolgeseitenTeasergroup) {
2460          // set quotation marks outside the box
2461          var currentHeadline = self.container.find('.teaser-headline');
2462          var firstChar = currentHeadline.text().substr(0, 1);
2463
2464          if (firstChar == '„' || firstChar == '"') {
2465            currentHeadline.addClass('quote-indent');
2466            var currentHeadlineText = currentHeadline.text();
2467
2468            currentHeadline.html(function (i, html) {
2469              return html.replace(/^(„|")/g, '<span class="quotation-mark">$1</span>');
2470            });
2471          }
2472
2473          if (teasergroupSliderEnabled && !self.isFolgeseitenTeasergroup) {
2474            self.equalizeTeaserHeight(self.pagesItem);
2475          }
2476        }
2477      }, 100);
2478    };
2479
2480    this.getCurrentViewportGrid = function () {
2481      viewportGrid = self.grid;
2482
2483      if ($(window).width() > 991 && $(window).width() < 1200) {
2484        if (self.gridMd) {
2485          viewportGrid = self.gridMd;
2486        }
2487      }
2488
2489      // Grid smartphone
2490      if ($(window).width() < 992) {
2491        viewportGrid = self.gridXs;
2492      }
2493
2494      if ($(window).width() > 768 && $(window).width() < 992) {
2495        // Only used within Folgeseiten
2496        if (self.gridSm) {
2497          viewportGrid = self.gridSm;
2498        }
2499      }
2500
2501      return viewportGrid;
2502    };
2503
2504    this.equalizeTeaserHeight = function (items) {
2505      var highestTeaserHeight = 0;
2506
2507      // Reset height for calculation of new height
2508      items.css('height', 'auto');
2509
2510      // Find highest teaser
2511      items.each(function () {
2512        let currentTeaser = $(this);
2513
2514        if (!currentTeaser.hasClass('teaser')) currentTeaser = currentTeaser.find('.teaser'); // if pageitem instead of teaseritem is passed
2515        let currentTeaserHeight = currentTeaser.outerHeight(true);
2516
2517        currentTeaser.css('height', 'auto');
2518
2519        if (currentTeaserHeight > highestTeaserHeight) highestTeaserHeight = currentTeaserHeight;
2520      });
2521
2522      // Set height for all teasers
2523      items.height(highestTeaserHeight);
2524    };
2525
2526    this.startAutoplay = function () {
2527      return false;
2528      // Start Autoplay if activated in Content Element
2529      self.autoplayInterval = setInterval(function () {
2530        var index = self.getCurrentIndex() + 1;
2531
2532        if (index < 0) index = 0;
2533
2534        if (index >= self.childrenLength) index = 0;
2535
2536        self.goto(index);
2537
2538        return true;
2539      }, 12000);
2540    };
2541
2542    // builds pagination based oon the number of children
2543    this.buildPagination = function (pagesCount) {
2544      // Pagination items may have changed during resize
2545      self.paginationItem = self.paginationContainer.find('.bwPagination--button');
2546      self.children = self.paginationItem; // Rohling Button
2547      self.childrenLength = self.children.length;
2548
2549      self.children = self.paginationItem; // Rohling Button
2550      self.childrenLength = self.children.length;
2551
2552      if (pagesCount > 1) {
2553        while (self.childrenLength < pagesCount) {
2554          self.childrenLength += 1;
2555          self.paginationList.append('<button class="bwPagination--item bwPagination--button">' + self.childrenLength + '</button>');
2556        }
2557
2558        while (self.childrenLength > pagesCount) {
2559          self.children.pop().remove();
2560          self.childrenLength -= 1;
2561        }
2562
2563        self.paginationItem = self.paginationList.find('.bwPagination--button');
2564
2565        // Click on Pagenumber
2566        self.paginationItem.on('click', function (e) {
2567          e.stopPropagation();
2568          self.goto($(this).index());
2569          return true;
2570        });
2571      } else {
2572        self.nextButton.hide();
2573        self.previousButton.hide();
2574      }
2575    };
2576
2577    // Set the current child.
2578    this.setCurrent = function (child) {
2579      if (self.isLocked || self.currentPaginationItem === child) {
2580        return false;
2581      }
2582
2583      if (self.currentPaginationItem) {
2584        var oldChild = self.currentPaginationItem;
2585        var oldPage = self.currentPagesItem;
2586
2587        oldChild.removeClass('current');
2588        oldPage.removeClass('current');
2589      } else {
2590        var oldChild = null;
2591        var oldPage = null;
2592      }
2593
2594      self.currentPaginationItem = child;
2595      self.currentPagesItem = self.pagesItem.eq(child.index());
2596
2597      // Teasergroup 1 contains multiple paginations
2598      if (self.grid == 1) {
2599        var childIndex = child.index();
2600
2601        self.currentPagesItem = self.pagesItem.eq(child.index());
2602
2603        // Switch page in every pagination
2604        self.paginationViewport.each(function () {
2605          var currentPageButton = $(this)
2606            .find('.bwPagination--button')
2607            .eq(childIndex + 1);
2608
2609          currentPageButton.addClass('current');
2610        });
2611      }
2612
2613      child.addClass('current');
2614      self.currentPagesItem.addClass('current');
2615
2616      self.handlePaginationTransition(child);
2617      self.handlePageTransition(self.currentPagesItem, oldPage);
2618
2619      return this;
2620    };
2621
2622    this.calculateTeasergroupPadding = function () {
2623      // Set teaser-headline on same axis as backgroundline (similar to function handleViewportResize in Bw.View.Onepager)
2624      if (self.grid == 1 && self.container.parents('.bwPage').length > 0) {
2625        self.lineTop = Math.round(($(window).height() - 110) * 0.4);
2626        self.viewportWidth = $(window).width();
2627
2628        var teasergroup = self.container;
2629        var currentBwPage = self.container.parents('.bwPage');
2630
2631        if (self.viewportWidth > 992) {
2632          var viewportHeight = $(window).height();
2633          var elHeight = currentBwPage.height();
2634          var nextSectionIconSpace = 60;
2635
2636          var paddingTop = 110;
2637          var paddingBottom = paddingTop - nextSectionIconSpace;
2638          var lineHeaderHeight = 0;
2639
2640          if (self.currentPagesItem.find('.teaser:not(.subgrid-4)').length > 0) {
2641            lineHeaderHeight = self.currentPagesItem.find('.teaser-headline:first').height();
2642          } else {
2643            var backgroundImageHeight = self.currentPagesItem.find('.teaser .image-col').height();
2644
2645            // Set lineheaderHeight on half of the images height (center of image instead of headlines height)
2646            lineHeaderHeight = backgroundImageHeight / 2;
2647          }
2648
2649          if (lineHeaderHeight > 0) {
2650            var offsetDifference = self.lineTop - lineHeaderHeight + 110;
2651            paddingTop = offsetDifference;
2652            paddingBottom = parseInt(viewportHeight - offsetDifference - elHeight) - nextSectionIconSpace;
2653          } else {
2654            if (viewportHeight - elHeight > 110) {
2655              paddingTop = parseInt((viewportHeight - elHeight) / 2);
2656              paddingBottom = paddingTop - nextSectionIconSpace; // subtract height of advanceIcon
2657            } else {
2658              paddingBottom = 0;
2659            }
2660          }
2661        } else {
2662          paddingTop = 40;
2663          paddingBottom = 40;
2664        }
2665      }
2666
2667      return [paddingTop, paddingBottom];
2668    };
2669
2670    // Hint: function might be called by onepager JS
2671    this.alignTeaserheadline = function (adjustPageHeight) {
2672      var teasergroup = self.container;
2673      var currentBwPage = self.container.parents('.bwPage');
2674
2675      // Set teaser-headline on same axis as backgroundline (similar to function handleViewportResize in Bw.View.Onepager)
2676      if (self.grid == 1 && self.container.parents('.bwPage').length > 0) {
2677        //var teasergroupPadding = self.calculateTeasergroupPadding();
2678        var paddingTop = teasergroupPadding[0];
2679        var paddingBottom = teasergroupPadding[1];
2680
2681        if (typeof self.onepager !== 'undefined' && adjustPageHeight === true) {
2682          //self.onepager.checkForQuicklinksModule( currentBwPage );
2683          //self.onepager.adjustPageHeight( currentBwPage );
2684        }
2685      }
2686    };
2687
2688    // Sets the index of the current child.
2689    this.setCurrentIndex = function (index) {
2690      self.setCurrent(self.paginationItem.eq(index));
2691    };
2692
2693    // Return the index of the current child.
2694    this.getCurrentIndex = function () {
2695      return self.currentPaginationItem.index();
2696    };
2697
2698    // Switches Page
2699    this.handlePageTransition = function (newChild, oldChild) {
2700
2701      if (oldChild == null) return false;
2702
2703      var oldIndex = oldChild.index();
2704      var newIndex = newChild.index();
2705
2706      if (oldIndex === newIndex) {
2707        return false;
2708      }
2709
2710      var transitionClass = oldIndex > newIndex ? 'transitionLeft' : 'transitionRight';
2711      self.pagesContainer.removeClass('transitionLeft transitionRight').addClass(transitionClass + ' ');
2712      self.pagesItem.removeClass('transitionTarget transitionOrigin');
2713
2714      // CSS Classes for Page-Items
2715      self.pagesItem.eq(newIndex).addClass('transitionTarget');
2716      self.pagesItem.eq(oldIndex).addClass('transitionOrigin');
2717    };
2718
2719    // Pagination handleTransition
2720    this.handlePaginationTransition = function (newChild) {
2721      var length = self.paginationItem.length;
2722      var newIndex = self.paginationItem.index(newChild);
2723      var canGoNext = newIndex < length - 1;
2724      var canGoPrevious = newIndex > 0;
2725
2726      self.nextButton.removeAttr('disabled');
2727      self.previousButton.removeAttr('disabled');
2728
2729      if (!canGoNext) {
2730        self.nextButton.attr('disabled', 'disabled');
2731      }
2732
2733      if (!canGoPrevious) {
2734        self.previousButton.attr('disabled', 'disabled');
2735      }
2736
2737      self.updatePosition();
2738    };
2739
2740    this.handleTransition = function (newItem, oldItem) {
2741      if (newItem == oldItem) return false;
2742      var oldIndex = oldItem.index();
2743      var newIndex = newItem.index();
2744    };
2745
2746    this.changeTeasergrid = function () {
2747      let currentTeaserPerPage = self.pagesItem.first().find('.teaser').length;
2748      let currentGrid = currentTeaserPerPage;
2749      let viewportGrid = self.getCurrentViewportGrid();
2750
2751      if (currentGrid != viewportGrid) {
2752        // Build up pages and pagination
2753        self.paginationList.empty();
2754        self.container.find('.teaser').unwrap();
2755
2756        self.pagesContainer.WrapThis(viewportGrid, '.teaser', '<div class="bwTeasergroup--page bwAnnouncements--item wrapped" />');
2757
2758        self.buildPagination(Math.ceil(self.teaserCount / viewportGrid));
2759
2760        self.pagesItem = self.container.find('.bwTeasergroup--page');
2761
2762        return true;
2763      }
2764
2765      return false;
2766    };
2767
2768    this.handleViewportResize = function () {
2769      let rebuiltElement = false;
2770
2771      // Mobile
2772      if ($(window).width() < 768) {
2773        self.isResponsivePaginationList = false;
2774      } else {
2775        self.isResponsivePaginationList = true;
2776      }
2777
2778      // Change teasergrid if needed (depending on viewport grid)
2779      rebuiltElement = self.changeTeasergrid();
2780
2781      // Mobile & Tablet
2782      if ($(window).width() < 992) {
2783      }
2784
2785      // Desktop
2786      if ($(window).width() > 991) {
2787      }
2788
2789      if (rebuiltElement == true) {
2790        // Rebind for new DOM-Elements
2791        self.pagesItem.on('swipeleft', function (event) {
2792          self.onSwipe(event);
2793        });
2794
2795        self.pagesItem.on('swiperight', function (event) {
2796          self.onSwipe(event);
2797        });
2798
2799        self.goto(0);
2800      }
2801    };
2802
2803    this.debouncedHandleViewportResize = self.handleViewportResize.debounce(50);
2804
2805    this.updatePosition = function () {
2806      var itemWidth = 30;
2807
2808      let paginationContainerWidth = 5 * itemWidth;
2809
2810      /*if ( paginationContainerWidth <= 200 ) {
2811			itemWidth = 40
2812		} else if ( paginationContainerWidth == 250) {
2813			itemWidth = 50;
2814		};*/
2815
2816      var length = self.paginationItem.length;
2817      var index = self.getCurrentIndex();
2818      var left;
2819
2820      if (index == -1) {
2821        left = 0;
2822      } else {
2823        let listWidth = length * itemWidth;
2824        let viewportWidth = Math.min(paginationContainerWidth, listWidth);
2825        let minLeft = viewportWidth - listWidth;
2826
2827        left = index * -itemWidth + (viewportWidth - itemWidth) * 0.5;
2828        if (left > 0) left = 0;
2829        if (left < minLeft) left = minLeft;
2830      }
2831
2832      self.paginationList.attr('style', 'transform: translate(' + left + 'px, 0px)');
2833      if (self.paginationList.parents('.bwTeasergroup').hasClass('bwTeasergroup--grid-1')) {
2834        // Set background for teaser without image
2835        let currentPage = self.pagesItem.filter('.current');
2836        let currentTeaser = currentPage.find('.teaser');
2837
2838        self.pagesItem.removeClass('background-blue');
2839
2840        if (currentTeaser.length > 0 && currentTeaser.hasClass('no-image')) {
2841          currentPage.addClass('background-blue');
2842        }
2843      }
2844    };
2845
2846    this.onSwipe = function (event) {
2847      var index = self.currentPaginationItem.index();
2848      var childrenLength = self.paginationItem.length;
2849      let teasersToSwipe = 1;
2850      let direction = 'next';
2851      let target = self.nextButton;
2852
2853      if (event.type == 'swiperight') {
2854        direction = 'prev';
2855        target = self.previousButton;
2856      }
2857
2858      if ($(window).width() < 768) {
2859        teasersToSwipe = 1;
2860      } else if ($(window).width() < 992) {
2861        teasersToSwipe = 1;
2862      } else if ($(window).width() < 1200) {
2863        teasersToSwipe = 3;
2864      } else {
2865        teasersToSwipe = parseInt(self.grid);
2866      }
2867
2868      if (direction == 'next') {
2869        index = index + teasersToSwipe;
2870      } else {
2871        index = index - teasersToSwipe;
2872      }
2873
2874      if (index < 0) index = 0;
2875      if (index > childrenLength - 1) index = childrenLength - 1; //return false;
2876
2877      self.goto(index);
2878
2879      return true;
2880    };
2881
2882    this.onButtonClick = function (target) {
2883      var index = self.currentPaginationItem.index();
2884      var childrenLength = self.paginationItem.length;
2885
2886      if (target[0] == self.nextButton[0]) {
2887        index += 1;
2888      } else {
2889        index -= 1;
2890      }
2891
2892      if (index < 0) return false;
2893      if (index > childrenLength - 1) return false;
2894
2895      self.goto(index);
2896
2897      return true;
2898    };
2899
2900    this.goto = function (index) {
2901      self.setCurrentIndex(index);
2902
2903      // Stop Autoplay if activated and start interval again
2904      if (self.autoplayActivated === true) {
2905        clearInterval(self.autoplayInterval);
2906        self.startAutoplay();
2907      }
2908    };
2909
2910    // Wraps every nth child
2911    $.fn.WrapThis = function (arg1, arg2, wrapElement, containerElement) {
2912      var container = $(this);
2913
2914      // only for folgeseiten (does not have wrapper in template)
2915      if (containerElement) {
2916        container = containerElement;
2917      }
2918
2919      var itemLength = container.find(arg2).length;
2920      var childrenElements = container.find(arg2);
2921
2922      var remainder = itemLength % arg1;
2923      var lastArray = itemLength - remainder;
2924
2925      var arr = [];
2926
2927      if ($.isNumeric(arg1)) {
2928        childrenElements.each(function (idx, item) {
2929          let newNum = idx + 1;
2930          let wrapper = wrapElement;
2931
2932          if (newNum % arg1 !== 0 && newNum <= lastArray) {
2933            arr.push(item);
2934          } else if (newNum % arg1 == 0 && newNum <= lastArray) {
2935            arr.push(item);
2936            var column = $(this).pushStack(arr);
2937
2938            column.wrapAll(wrapper); //=If the array reaches arg1 setting then wrap the array in a column
2939            arr = [];
2940          } else if (newNum > lastArray && newNum !== itemLength) {
2941            //=If newNum is greater than the lastArray setting then start new array of elements
2942            arr.push(item);
2943          } else {
2944            //=If newNum is greater than the length of all the elements then wrap the remainder of elements in a column
2945            arr.push(item);
2946            var column = $(this).pushStack(arr);
2947            column.wrapAll(wrapper);
2948            arr = [];
2949          }
2950        });
2951      }
2952
2953      // Override variables with new DOM-Elements
2954      self.pagesItem = self.pagesContainer.find('.bwTeasergroup--page');
2955      self.paginationItem = self.paginationList.find('.bwPagination--button');
2956    };
2957
2958    this.constructor();
2959  };
2960})(jQuery);
2961
2962
2963jQuery.noConflict();
2964
2965(function ($) {
2966  Bw.View.Burgermenu = function (options) {
2967    var self = this;
2968
2969    this.container = $(options.container);
2970    this.menuClass = options.menuClass;
2971    this.menu = this.container.find('.' + this.menuClass);
2972
2973    // Menutoggle
2974    this.menuToggleClass = options.menuToggleClass;
2975    this.menuToggle = $('.' + this.menuToggleClass);
2976    this.menuToggleOpenClass = 'open';
2977
2978    // Submenus
2979    this.submenuClass = options.submenuClass;
2980    this.submenuOpenClass = 'open';
2981    this.submenus = this.container.find('.' + this.submenuClass);
2982
2983    // Overlay
2984    this.overlayClass = options.overlayClass;
2985    this.overlayOpenClass = 'open';
2986    this.overlay = $('.' + this.overlayClass);
2987
2988    // Links
2989    this.menuLinkClass = options.menuLinkClass;
2990    this.menuLinks = this.container.find('.' + this.menuLinkClass + '.bwBurgermenu__menuLink--sub');
2991    this.menuLinkOpenClass = 'open';
2992
2993    // State
2994    this.currentLevel = 1;
2995    this.menuIsOpen = false;
2996    this.trapHandler = null;
2997
2998    this.constructor = function () {
2999      // click on menu toggle
3000      this.menuToggle.click(function (event) {
3001        if (self.menuIsOpen === false) {
3002          self.openMenu();
3003        } else {
3004          self.closeMenu();
3005        }
3006      });
3007
3008      // click on links
3009      this.menuLinks.click(function (event) {
3010        event.preventDefault();
3011
3012        const currentLink = $(event.currentTarget);
3013
3014        self.onMenuLinkClick(currentLink);
3015      });
3016
3017      self.overlay.click(function (event) {
3018        self.closeMenu();
3019      });
3020    };
3021
3022    this.openMenu = function () {
3023      const focusableSelector = `
3024        a[href],
3025        button:not([disabled]),
3026        input:not([type="hidden"]):not([disabled]),
3027        select:not([disabled]),
3028        textarea:not([disabled]),
3029        [tabindex]:not([tabindex="-1"])
3030      `;
3031
3032      self.showOverlay();
3033      self.menu.addClass('open');
3034      self.menu.attr('aria-hidden', 'false');
3035      this.menuIsOpen = true;
3036
3037      // Close menu on ESC
3038      document.addEventListener('keydown', self.onKeyDown);
3039
3040      const focusableItems = self.menu[0].querySelectorAll(focusableSelector);
3041      const closeButton = focusableItems[0];
3042      const firstFocusable = focusableItems[1];
3043      const lastFocusable = focusableItems[focusableItems.length - 1];
3044
3045      if (firstFocusable) {
3046        setTimeout(() => {
3047          firstFocusable.focus();
3048        }, 500);
3049      }
3050
3051      if (self.trapHandler) {
3052        document.removeEventListener('keydown', self.trapHandler);
3053        self.trapHandler = null;
3054      }
3055
3056      self.inMenuNavigation(firstFocusable, lastFocusable, closeButton);
3057    };
3058
3059    this.closeMenu = function () {
3060      self.hideOverlay();
3061      self.menu.removeClass('open');
3062      self.menu.attr('aria-hidden', 'true');
3063      this.menuIsOpen = false;
3064
3065      document.removeEventListener('keydown', self.onKeyDown);
3066
3067      this.menuToggle[0].focus();
3068    };
3069
3070    this.openSubmenu = function (submenu) {
3071      if (typeof submenu === 'undefined' || submenu.length === 0) return;
3072
3073      self.currentLevel = parseInt(submenu.attr('data-level'));
3074
3075      submenu.addClass(self.submenuOpenClass);
3076      submenu.slideDown();
3077    };
3078
3079    this.closeSubmenu = function (submenu, setCurrentLevel) {
3080      if (typeof submenu === 'undefined' || submenu.length === 0) return;
3081
3082      const childrenSubmenus = submenu.find('.' + self.submenuClass);
3083      const currentSubmenuLinks = submenu.find('.' + self.menuLinkClass);
3084      const submenuLevel = parseInt(submenu.attr('data-level'));
3085
3086      if (typeof setCurrentLevel !== 'undefined' && setCurrentLevel === true) {
3087        self.currentLevel = submenuLevel > 0 ? submenuLevel : 1;
3088      }
3089
3090      // hide submenu
3091      submenu.slideUp();
3092
3093      // hide children submenus
3094      if (childrenSubmenus.length > 0) {
3095        childrenSubmenus.each(function (index) {
3096          const currentChildrenSubmenu = childrenSubmenus.eq(index);
3097
3098          self.closeSubmenu(currentChildrenSubmenu, false);
3099        });
3100      }
3101
3102      // remove open linkclass
3103      currentSubmenuLinks.each(function (index) {
3104        const currentLink = currentSubmenuLinks.eq(index);
3105
3106        self.removeMenuLinkOpenClass(currentLink);
3107      });
3108    };
3109
3110    /**
3111     * Close all submenus starting from minLevel or excluded (OBSOLETE)
3112     *
3113     * @param {HTMLElement|null} excludedSubmenu - submenu which should not be closed
3114     * @param {number|undefined} minLevel - submenulevel to start from
3115     */
3116    this.closeAllSubmenus = function (excludedSubmenu, minLevel) {
3117      let isExcluded = false;
3118
3119      self.submenus.each(function (index) {
3120        isExcluded = false;
3121        const currentSubmenu = self.submenus.eq(index);
3122        const currentSubmenuLevel = parseInt(currentSubmenu.attr('data-level'));
3123
3124        // Check if submenu is excluded or children of excluded submneu
3125        if (typeof excludedSubmenu !== 'undefined' && excludedSubmenu !== null) {
3126          // Schließe nur im aktuellen Baum
3127          let parentSubmenu = excludedSubmenu.parents('.' + self.submenuClass + '[data-level="1"]');
3128          const isWithinExcluedSubmenu = currentSubmenu.parents(excludedSubmenu);
3129
3130          if (excludedSubmenu === currentSubmenu || isWithinExcluedSubmenu.length > 0) {
3131            isExcluded = true;
3132          }
3133        }
3134
3135        // Check if submenuLevel is above minLevel
3136        if (typeof minLevel !== 'undefined') {
3137          // minLevel = 2
3138          if (currentSubmenuLevel <= minLevel) {
3139            isExcluded = true;
3140          }
3141        }
3142
3143        if (isExcluded) return;
3144
3145        self.closeSubmenu(currentSubmenu, false);
3146      });
3147    };
3148
3149    this.showOverlay = function () {
3150      self.overlay.addClass(this.overlayOpenClass);
3151    };
3152
3153    this.hideOverlay = function () {
3154      self.overlay.removeClass(this.overlayOpenClass);
3155    };
3156
3157    this.addmenuLinkOpenClass = function (link) {
3158      if (typeof link === 'undefined' || link.length === 0) return;
3159
3160      link.addClass(this.menuLinkOpenClass);
3161    };
3162
3163    this.removeMenuLinkOpenClass = function (link) {
3164      if (typeof link === 'undefined' || link.length === 0) return;
3165
3166      link.removeClass(this.menuLinkOpenClass);
3167    };
3168
3169    this.onMenuLinkClick = function (link) {
3170      const targetSubmenu = link.parent().find('> .' + self.submenuClass);
3171      const parentSubmenu = link.parents('ul').find('.' + self.submenuClass);
3172      const linkLevel = parseInt(link.attr('data-level'));
3173
3174      if (link.hasClass('open')) {
3175        const parentLi = link.parent().find('.' + self.submenuClass);
3176
3177        self.closeSubmenu(parentLi, false);
3178
3179        link.removeClass(self.menuLinkOpenClass);
3180
3181        self.currentLevel = linkLevel;
3182      } else {
3183        this.openSubmenu(targetSubmenu);
3184        link.addClass(self.menuLinkOpenClass);
3185      }
3186    };
3187
3188    this.inMenuNavigation = function (firstItem, lastItem, closeItem) {
3189      if (!firstItem || !lastItem) return;
3190
3191      self.trapHandler = function (event) {
3192        if (event.key === 'Tab') {
3193          if (document.activeElement === lastItem && !event.shiftKey) {
3194            event.preventDefault();
3195            closeItem.focus();
3196          } else if (document.activeElement === closeItem && event.shiftKey) {
3197            event.preventDefault();
3198            firstItem.focus();
3199          } else if (document.activeElement === firstItem && event.shiftKey) {
3200            event.preventDefault();
3201            lastItem.focus();
3202          } else if (document.activeElement === closeItem && event.shiftKey) {
3203            event.preventDefault();
3204            lastItem.focus();
3205          }
3206        }
3207      };
3208
3209      document.addEventListener('keydown', self.trapHandler);
3210    };
3211
3212
3213    this.onKeyDown = function (event) {
3214      if (event.key === 'Escape' || event.keyCode === 27) {
3215        event.preventDefault();
3216        self.closeMenu();
3217      }
3218    };
3219
3220    this.constructor();
3221  };
3222})(jQuery);
3223
3224
3225jQuery.noConflict();
3226
3227(function ($) {
3228  Bw.Utilities.AfterPageload = function () {
3229    var self = this;
3230
3231    this.constructor = function () {
3232      // JS wird aufgerufen nachdem Classloader initialisiert hat
3233      $('div.frame-default').find('>:first-child').unwrap();
3234
3235      // Workaround: Fix Bug for relative typolinks and missing absolute-Option (fixed in typo3 V9)
3236      $('.maincontent-inner a, .bwSubsite-footer a').each(function () {
3237        var currentLink = $(this);
3238        var currentLinkHref = $(this).attr('href');
3239        var isRelativeAndMissingSlash = new RegExp(/^(?!\/)(?!http|https|www|javascript|mailto|tel|file|whatsapp|#).+/);
3240
3241        if (typeof currentLinkHref != 'undefined' && isRelativeAndMissingSlash.test(currentLinkHref)) {
3242          currentLink.attr('href', '/' + currentLinkHref);
3243        }
3244      });
3245
3246      // Rewrite old anchor "format"
3247      self.checkForAnchorLinksDifferentFormat();
3248
3249      window.onhashchange = self.checkForAnchorLinksDifferentFormat();
3250    };
3251
3252    // Check for old anchor links (previously created automatically by imagetextnavigation CE, anchor was technially counter not real element id)
3253    this.checkForAnchorLinksDifferentFormat = function () {
3254      var currentHash = window.location.hash;
3255
3256      if (currentHash) {
3257        var hashMatchOldFormat = currentHash.match('(#el-)([1-9].*)');
3258        var hashMatchTypolinkPage = currentHash.match('(#c)([1-9].*)');
3259
3260        // Check if hash is old anchor link (not real element id; schema: #el-123)
3261        if (hashMatchOldFormat) {
3262          var elementIdKey = hashMatchOldFormat[2];
3263          var container = $('.maincontent');
3264
3265          if ($('body').hasClass('bistum-folgeseiten')) container = $('.maincontent-inner');
3266
3267          // Get all possible elements from imagetextnavigation and find corresponding html element
3268          var possibleElements = container.find('.container:not(.breadcrumb-container,.stage-container,.not-shown-in-nav)');
3269          var referringElement = possibleElements.eq(elementIdKey - 1);
3270
3271          if (referringElement.length > 0) {
3272            var referringElementCurrentId = referringElement.attr('id');
3273            var elementId = referringElementCurrentId;
3274            var chosenElement = $('#' + elementId);
3275
3276            if (chosenElement.length > 0) {
3277              console.log('Anchor has been transformed. Original: ' + currentHash + ' / new: #' + elementId);
3278
3279              // Set hash for jump to element
3280              window.location.hash = elementId;
3281
3282              $('html, body').animate(
3283                {
3284                  scrollTop: $('#' + elementId).offset().top - parseInt($('.maincontent').css('padding-top')),
3285                },
3286                300,
3287                'swing'
3288              );
3289            }
3290          }
3291        }
3292
3293        // Redirect Workaround for kalenderblatt
3294        if (currentHash == '#kalenderblatt' && $('body').hasClass('page-105')) {
3295          window.location.href = '/service/kalenderblatt';
3296        }
3297
3298        // Check if hash is generated from RTE or LinkWizard (schema: #c123)
3299        // Ggf. überflüßig nach Umbenennung aller IDs der Inhaltselemente zum TYPO3 Standard-Schema
3300        /*if( hashMatchTypolinkPage ){
3301				var elementIdKey = hashMatchTypolinkPage[2];
3302				
3303				// Get all possible elements from imagetextnavigation and find corresponding html element
3304				var possibleElements = $('.maincontent .container:not(.breadcrumb-container,.stage-container,.not-shown-in-nav)');
3305				
3306				if( $('body').hasClass('bistum-folgeseiten') ){
3307					possibleElements = $('.maincontent-inner .container:not(.breadcrumb-container,.stage-container,.not-shown-in-nav)');
3308				}
3309				
3310				var referringElement = possibleElements.filter(function(){
3311					if( $(this).attr('id') == 'c' + elementIdKey ) return true;
3312				});
3313
3314				if( referringElement.length > 0 ){
3315					var referringElementCurrentId = referringElement.attr('id');
3316					var elementId = referringElementCurrentId;
3317					var chosenElement = $('#' + elementId);
3318					
3319					if( chosenElement.length > 0  ){
3320						// Set hash for jump to element
3321						window.location.hash = elementId;
3322						
3323						newScrollTop = $('#' + elementId).offset().top - parseInt( $('.maincontent').css('padding-top') );
3324						
3325						$('html, body').animate({
3326					        scrollTop: newScrollTop
3327					    }, 300, 'swing');
3328					}
3329				}
3330			}*/
3331      }
3332    };
3333
3334    this.constructor();
3335  };
3336})(jQuery);
3337
3338

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.