
!function(e){"use strict";var t={i18n:{ru:{months:["Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь"],dayOfWeek:["Вск","Пн","Вт","Ср","Чт","Пт","Сб"]},en:{months:["January","February","March","April","May","June","July","August","September","October","November","December"],dayOfWeek:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]},de:{months:["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],dayOfWeek:["So","Mo","Di","Mi","Do","Fr","Sa"]},nl:{months:["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december"],dayOfWeek:["zo","ma","di","wo","do","vr","za"]},tr:{months:["Ocak","Şubat","Mart","Nisan","Mayıs","Haziran","Temmuz","Ağustos","Eylül","Ekim","Kasım","Aralık"],dayOfWeek:["Paz","Pts","Sal","Çar","Per","Cum","Cts"]},fr:{months:["Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre"],dayOfWeek:["Dim","Lun","Mar","Mer","Jeu","Ven","Sam"]},es:{months:["Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"],dayOfWeek:["Dom","Lun","Mar","Mié","Jue","Vie","Sáb"]},th:{months:["มกราคม","กุมภาพันธ์","มีนาคม","เมษายน","พฤษภาคม","มิถุนายน","กรกฎาคม","สิงหาคม","กันยายน","ตุลาคม","พฤศจิกายน","ธันวาคม"],dayOfWeek:["อา.","จ.","อ.","พ.","พฤ.","ศ.","ส."]},pl:{months:["styczeń","luty","marzec","kwiecień","maj","czerwiec","lipiec","sierpień","wrzesień","październik","listopad","grudzień"],dayOfWeek:["nd","pn","wt","śr","cz","pt","sb"]},pt:{months:["Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"],dayOfWeek:["Dom","Seg","Ter","Qua","Qui","Sex","Sab"]},ch:{months:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],dayOfWeek:["日","一","二","三","四","五","六"]},se:{months:["Januari","Februari","Mars","April","Maj","Juni","Juli","Augusti","September","Oktober","November","December"],dayOfWeek:["Sön","Mån","Tis","Ons","Tor","Fre","Lör"]},kr:{months:["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],dayOfWeek:["일","월","화","수","목","금","토"]},it:{months:["Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno","Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre"],dayOfWeek:["Dom","Lun","Mar","Mer","Gio","Ven","Sab"]},da:{months:["January","Februar","Marts","April","Maj","Juni","July","August","September","Oktober","November","December"],dayOfWeek:["Søn","Man","Tir","ons","Tor","Fre","lør"]},ja:{months:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],dayOfWeek:["日","月","火","水","木","金","土"]},vi:{months:["Tháng 1","Tháng 2","Tháng 3","Tháng 4","Tháng 5","Tháng 6","Tháng 7","Tháng 8","Tháng 9","Tháng 10","Tháng 11","Tháng 12"],dayOfWeek:["CN","T2","T3","T4","T5","T6","T7"]}},value:"",lang:"en",format:"Y/m/d H:i",formatTime:"H:i",formatDate:"Y/m/d",startDate:!1,step:60,closeOnDateSelect:!1,closeOnWithoutClick:!0,timepicker:!0,datepicker:!0,minDate:!1,maxDate:!1,minTime:!1,maxTime:!1,allowTimes:[],opened:!1,initTime:!0,inline:!1,onSelectDate:function(){},onSelectTime:function(){},onChangeMonth:function(){},onChangeDateTime:function(){},onShow:function(){},onClose:function(){},onGenerate:function(){},withoutCopyright:!0,inverseButton:!1,hours12:!1,next:"xdsoft_next",prev:"xdsoft_prev",dayOfWeekStart:0,timeHeightInTimePicker:25,timepickerScrollbar:!0,todayButton:!0,defaultSelect:!0,scrollMonth:!0,scrollTime:!0,scrollInput:!0,lazyInit:!1,mask:!1,validateOnBlur:!0,allowBlank:!0,yearStart:1950,yearEnd:2050,style:"",id:"",roundTime:"round",className:"",weekends:[],yearOffset:0};Array.prototype.indexOf||(Array.prototype.indexOf=function(e,t){for(var n=t||0,a=this.length;n<a;n++)if(this[n]===e)return n;return-1}),e.fn.xdsoftScroller=function(t){return this.each(function(){var n=e(this);if(!e(this).hasClass("xdsoft_scroller_box")){var a=function(e){var t={x:0,y:0};if("touchstart"==e.type||"touchmove"==e.type||"touchend"==e.type||"touchcancel"==e.type){var n=e.originalEvent.touches[0]||e.originalEvent.changedTouches[0];t.x=n.pageX,t.y=n.pageY}else"mousedown"!=e.type&&"mouseup"!=e.type&&"mousemove"!=e.type&&"mouseover"!=e.type&&"mouseout"!=e.type&&"mouseenter"!=e.type&&"mouseleave"!=e.type||(t.x=e.pageX,t.y=e.pageY);return t},r=0,o=n.children().eq(0),s=n[0].clientHeight,i=o[0].offsetHeight,d=e('<div class="xdsoft_scrollbar"></div>'),u=e('<div class="xdsoft_scroller"></div>'),c=100,l=!1;d.append(u),n.addClass("xdsoft_scroller_box").append(d),u.on("mousedown.xdsoft_scroller",function(a){s||n.trigger("resize_scroll.xdsoft_scroller",[t]);var o=a.pageY,i=parseInt(u.css("margin-top")),l=d[0].offsetHeight;e(document.body).addClass("xdsoft_noselect"),e([document.body,window]).on("mouseup.xdsoft_scroller",function f(){e([document.body,window]).off("mouseup.xdsoft_scroller",f).off("mousemove.xdsoft_scroller",r).removeClass("xdsoft_noselect")}),e(document.body).on("mousemove.xdsoft_scroller",r=function(e){var t=e.pageY-o+i;t<0&&(t=0),t+u[0].offsetHeight>l&&(t=l-u[0].offsetHeight),n.trigger("scroll_element.xdsoft_scroller",[c?t/c:0])})}),n.on("scroll_element.xdsoft_scroller",function(e,t){s||n.trigger("resize_scroll.xdsoft_scroller",[t,!0]),t=t>1?1:t<0||isNaN(t)?0:t,u.css("margin-top",c*t),o.css("marginTop",-parseInt((i-s)*t))}).on("resize_scroll.xdsoft_scroller",function(e,t,a){s=n[0].clientHeight,i=o[0].offsetHeight;var r=s/i,l=r*d[0].offsetHeight;r>1?u.hide():(u.show(),u.css("height",parseInt(l>10?l:10)),c=d[0].offsetHeight-u[0].offsetHeight,a!==!0&&n.trigger("scroll_element.xdsoft_scroller",[t?t:Math.abs(parseInt(o.css("marginTop")))/(i-s)]))}),n.mousewheel&&n.mousewheel(function(e,t,a,r){var d=Math.abs(parseInt(o.css("marginTop")));return n.trigger("scroll_element.xdsoft_scroller",[(d-20*t)/(i-s)]),e.stopPropagation(),!1}),n.on("touchstart",function(e){l=a(e)}),n.on("touchmove",function(e){if(l){var t=a(e),r=Math.abs(parseInt(o.css("marginTop")));n.trigger("scroll_element.xdsoft_scroller",[(r-(t.y-l.y))/(i-s)]),e.stopPropagation(),e.preventDefault()}}),n.on("touchend touchcancel",function(e){l=!1})}n.trigger("resize_scroll.xdsoft_scroller",[t])})},e.fn.datetimepicker=function(n){var a=48,r=57,o=96,s=105,i=17,d=46,u=13,c=27,l=8,f=37,m=38,h=39,g=40,p=9,x=116,v=65,y=67,D=86,T=90,w=89,b=!1,_=e.isPlainObject(n)||!n?e.extend(!0,{},t,n):e.extend({},t),M=0,k=function(e){e.on("open.xdsoft focusin.xdsoft mousedown.xdsoft",function t(n){e.is(":disabled")||e.is(":hidden")||!e.is(":visible")||e.data("xdsoft_datetimepicker")||(clearTimeout(M),M=setTimeout(function(){e.data("xdsoft_datetimepicker")||S(e),e.off("open.xdsoft focusin.xdsoft mousedown.xdsoft",t).trigger("open.xdsoft")},100))})},S=function(t){function n(){var e=_.value?_.value:t&&t.val&&t.val()?t.val():"";return e&&W.isValidDate(e=Date.parseDate(e,_.format))?M.data("changed",!0):e="",e||_.startDate===!1||(e=W.strToDateTime(_.startDate)),e?e:0}var M=e("<div "+(_.id?'id="'+_.id+'"':"")+" "+(_.style?'style="'+_.style+'"':"")+' class="xdsoft_datetimepicker xdsoft_noselect '+_.className+'"></div>'),k=e('<div class="xdsoft_copyright"><a target="_blank" href="http://xdsoft.net/jqplugins/datetimepicker/">xdsoft.net</a></div>'),S=e('<div class="xdsoft_datepicker active"></div>'),O=e('<div class="xdsoft_mounthpicker"><button type="button" class="xdsoft_prev"></button><button type="button" class="xdsoft_today_button"></button><div class="xdsoft_label xdsoft_month"><span></span></div><div class="xdsoft_label xdsoft_year"><span></span></div><button type="button" class="xdsoft_next"></button></div>'),F=e('<div class="xdsoft_calendar"></div>'),I=e('<div class="xdsoft_timepicker active"><button type="button" class="xdsoft_prev"></button><div class="xdsoft_time_box"></div><button type="button" class="xdsoft_next"></button></div>'),C=I.find(".xdsoft_time_box").eq(0),H=e('<div class="xdsoft_time_variant"></div>'),Y=e('<div class="xdsoft_scrollbar"></div>'),P=(e('<div class="xdsoft_scroller"></div>'),e('<div class="xdsoft_select xdsoft_monthselect"><div></div></div>')),A=e('<div class="xdsoft_select xdsoft_yearselect"><div></div></div>');O.find(".xdsoft_month span").after(P),O.find(".xdsoft_year span").after(A),O.find(".xdsoft_month,.xdsoft_year").on("mousedown.xdsoft",function(t){O.find(".xdsoft_select").hide();var n=e(this).find(".xdsoft_select").eq(0),a=0,r=0;W.currentTime&&(a=W.currentTime[e(this).hasClass("xdsoft_month")?"getMonth":"getFullYear"]()),n.show();for(var o=n.find("div.xdsoft_option"),s=0;s<o.length&&o.eq(s).data("value")!=a;s++)r+=o[0].offsetHeight;return n.xdsoftScroller(r/(n.children()[0].offsetHeight-n[0].clientHeight)),t.stopPropagation(),!1}),O.find(".xdsoft_select").xdsoftScroller().on("mousedown.xdsoft",function(e){e.stopPropagation(),e.preventDefault()}).on("mousedown.xdsoft",".xdsoft_option",function(t){W&&W.currentTime&&W.currentTime[e(this).parent().parent().hasClass("xdsoft_monthselect")?"setMonth":"setFullYear"](e(this).data("value")),e(this).parent().parent().hide(),M.trigger("xchange.xdsoft"),_.onChangeMonth&&_.onChangeMonth.call&&_.onChangeMonth.call(M,W.currentTime,M.data("input"))}),M.setOptions=function(n){if(_=e.extend(!0,{},_,n),n.allowTimes&&e.isArray(n.allowTimes)&&n.allowTimes.length&&(_.allowTimes=e.extend(!0,[],n.allowTimes)),n.weekends&&e.isArray(n.weekends)&&n.weekends.length&&(_.weekends=e.extend(!0,[],n.weekends)),!_.open&&!_.opened||_.inline||t.trigger("open.xdsoft"),_.inline&&(M.addClass("xdsoft_inline"),t.after(M).hide(),M.trigger("afterOpen.xdsoft")),_.inverseButton&&(_.next="xdsoft_prev",_.prev="xdsoft_next"),_.datepicker?S.addClass("active"):S.removeClass("active"),_.timepicker?I.addClass("active"):I.removeClass("active"),_.value&&(t&&t.val&&t.val(_.value),W.setCurrentTime(_.value)),isNaN(_.dayOfWeekStart)||parseInt(_.dayOfWeekStart)<0||parseInt(_.dayOfWeekStart)>6?_.dayOfWeekStart=0:_.dayOfWeekStart=parseInt(_.dayOfWeekStart),_.timepickerScrollbar||Y.hide(),_.minDate&&/^-(.*)$/.test(_.minDate)&&(_.minDate=W.strToDateTime(_.minDate).dateFormat(_.formatDate)),_.maxDate&&/^\+(.*)$/.test(_.maxDate)&&(_.maxDate=W.strToDateTime(_.maxDate).dateFormat(_.formatDate)),O.find(".xdsoft_today_button").css("visibility",_.todayButton?"visible":"hidden"),_.mask){var k=function(e){try{if(document.selection&&document.selection.createRange){var t=document.selection.createRange();return t.getBookmark().charCodeAt(2)-2}if(e.setSelectionRange)return e.selectionStart}catch(n){return 0}},F=function(e,t){var e="string"==typeof e||e instanceof String?document.getElementById(e):e;if(!e)return!1;if(e.createTextRange){var n=e.createTextRange();return n.collapse(!0),n.moveEnd(t),n.moveStart(t),n.select(),!0}return!!e.setSelectionRange&&(e.setSelectionRange(t,t),!0)},C=function(e,t){var n=e.replace(/([\[\]\/\{\}\(\)\-\.\+]{1})/g,"\\$1").replace(/_/g,"{digit+}").replace(/([0-9]{1})/g,"{digit$1}").replace(/\{digit([0-9]{1})\}/g,"[0-$1_]{1}").replace(/\{digit[\+]\}/g,"[0-9_]{1}");return RegExp(n).test(t)};switch(t.off("keydown.xdsoft"),!0){case _.mask===!0:_.mask=_.format.replace(/Y/g,"9999").replace(/F/g,"9999").replace(/m/g,"19").replace(/d/g,"39").replace(/H/g,"29").replace(/i/g,"59").replace(/s/g,"59");case"string"==e.type(_.mask):C(_.mask,t.val())||t.val(_.mask.replace(/[0-9]/g,"_")),t.on("keydown.xdsoft",function(n){var M=this.value,S=n.which;switch(!0){case S>=a&&S<=r||S>=o&&S<=s||S==l||S==d:var O=k(this),I=S!=l&&S!=d?String.fromCharCode(o<=S&&S<=s?S-a:S):"_";for(S!=l&&S!=d||!O||(O--,I="_");/[^0-9_]/.test(_.mask.substr(O,1))&&O<_.mask.length&&O>0;)O+=S==l||S==d?-1:1;if(M=M.substr(0,O)+I+M.substr(O+1),""==e.trim(M))M=_.mask.replace(/[0-9]/g,"_");else if(O==_.mask.length)break;for(O+=S==l||S==d?0:1;/[^0-9_]/.test(_.mask.substr(O,1))&&O<_.mask.length&&O>0;)O+=S==l||S==d?-1:1;C(_.mask,M)?(this.value=M,F(this,O)):""==e.trim(M)?this.value=_.mask.replace(/[0-9]/g,"_"):t.trigger("error_input.xdsoft");break;case!!~[v,y,D,T,w].indexOf(S)&&b:case!!~[c,m,g,f,h,x,i,p,u].indexOf(S):return!0}return n.preventDefault(),!1})}}_.validateOnBlur&&t.off("blur.xdsoft").on("blur.xdsoft",function(){_.allowBlank&&!e.trim(e(this).val()).length?(e(this).val(null),M.data("xdsoft_datetime").empty()):Date.parseDate(e(this).val(),_.format)?M.data("xdsoft_datetime").setCurrentTime(e(this).val()):(e(this).val(W.now().dateFormat(_.format)),M.data("xdsoft_datetime").setCurrentTime(e(this).val())),M.trigger("changedatetime.xdsoft")}),_.dayOfWeekStartPrev=0==_.dayOfWeekStart?6:_.dayOfWeekStart-1,M.trigger("xchange.xdsoft")},M.data("options",_).on("mousedown.xdsoft",function(e){return e.stopPropagation(),e.preventDefault(),A.hide(),P.hide(),!1});var N=I.find(".xdsoft_time_box");N.append(H),N.xdsoftScroller(),M.on("afterOpen.xdsoft",function(){N.xdsoftScroller()}),M.append(S).append(I),_.withoutCopyright!==!0&&M.append(k),S.append(O).append(F),e("body").append(M);var W=new function(){var e=this;e.now=function(){var e=new Date;return _.yearOffset&&e.setFullYear(e.getFullYear()+_.yearOffset),e},e.currentTime=this.now(),e.isValidDate=function(e){return"[object Date]"===Object.prototype.toString.call(e)&&!isNaN(e.getTime())},e.setCurrentTime=function(t){e.currentTime="string"==typeof t?e.strToDateTime(t):e.isValidDate(t)?t:e.now(),M.trigger("xchange.xdsoft")},e.empty=function(){e.currentTime=null},e.getCurrentTime=function(t){return e.currentTime},e.nextMonth=function(){var t=e.currentTime.getMonth()+1;return 12==t&&(e.currentTime.setFullYear(e.currentTime.getFullYear()+1),t=0),e.currentTime.setDate(Math.min(Date.daysInMonth[t],e.currentTime.getDate())),e.currentTime.setMonth(t),_.onChangeMonth&&_.onChangeMonth.call&&_.onChangeMonth.call(M,W.currentTime,M.data("input")),M.trigger("xchange.xdsoft"),t},e.prevMonth=function(){var t=e.currentTime.getMonth()-1;return t==-1&&(e.currentTime.setFullYear(e.currentTime.getFullYear()-1),t=11),e.currentTime.setDate(Math.min(Date.daysInMonth[t],e.currentTime.getDate())),e.currentTime.setMonth(t),_.onChangeMonth&&_.onChangeMonth.call&&_.onChangeMonth.call(M,W.currentTime,M.data("input")),M.trigger("xchange.xdsoft"),t},e.strToDateTime=function(t){var n,a,r=[];return(r=/^(\+|\-)(.*)$/.exec(t))&&(r[2]=Date.parseDate(r[2],_.formatDate))?(n=r[2].getTime()-1*r[2].getTimezoneOffset()*6e4,a=new Date(W.now().getTime()+parseInt(r[1]+"1")*n)):a=t?Date.parseDate(t,_.format):e.now(),e.isValidDate(a)||(a=e.now()),a},e.strtodate=function(t){var n=t?Date.parseDate(t,_.formatDate):e.now();return e.isValidDate(n)||(n=e.now()),n},e.strtotime=function(t){var n=t?Date.parseDate(t,_.formatTime):e.now();return e.isValidDate(n)||(n=e.now()),n},e.str=function(){return e.currentTime.dateFormat(_.format)}};O.find(".xdsoft_today_button").on("mousedown.xdsoft",function(){M.data("changed",!0),W.setCurrentTime(0),M.trigger("afterOpen.xdsoft")}).on("dblclick.xdsoft",function(){t.val(W.str()),M.trigger("close.xdsoft")}),O.find(".xdsoft_prev,.xdsoft_next").on("mousedown.xdsoft",function(){var t=e(this),n=0,a=!1;!function r(e){W.currentTime.getMonth();t.hasClass(_.next)?W.nextMonth():t.hasClass(_.prev)&&W.prevMonth(),!a&&(n=setTimeout(r,e?e:100))}(500),e([document.body,window]).on("mouseup.xdsoft",function o(){clearTimeout(n),a=!0,e([document.body,window]).off("mouseup.xdsoft",o)})}),I.find(".xdsoft_prev,.xdsoft_next").on("mousedown.xdsoft",function(){var t=e(this),n=0,a=!1,r=110;!function o(e){var s=C[0].clientHeight,i=H[0].offsetHeight,d=Math.abs(parseInt(H.css("marginTop")));t.hasClass(_.next)&&i-s-_.timeHeightInTimePicker>=d?H.css("marginTop","-"+(d+_.timeHeightInTimePicker)+"px"):t.hasClass(_.prev)&&d-_.timeHeightInTimePicker>=0&&H.css("marginTop","-"+(d-_.timeHeightInTimePicker)+"px"),C.trigger("scroll_element.xdsoft_scroller",[Math.abs(parseInt(H.css("marginTop"))/(i-s))]),r=r>10?10:r-10,!a&&(n=setTimeout(o,e?e:r))}(500),e([document.body,window]).on("mouseup.xdsoft",function s(){clearTimeout(n),a=!0,e([document.body,window]).off("mouseup.xdsoft",s)})});var z=0;M.on("xchange.xdsoft",function(t){clearTimeout(z),z=setTimeout(function(){for(var t="",n=new Date(W.currentTime.getFullYear(),W.currentTime.getMonth(),1,12,0,0),a=0,r=W.now();n.getDay()!=_.dayOfWeekStart;)n.setDate(n.getDate()-1);t+="<table><thead><tr>";for(var o=0;o<7;o++)t+="<th>"+_.i18n[_.lang].dayOfWeek[o+_.dayOfWeekStart>6?0:o+_.dayOfWeekStart]+"</th>";t+="</tr></thead>",t+="<tbody><tr>";var s=!1,i=!1;_.maxDate!==!1&&(s=W.strtodate(_.maxDate),s=new Date(s.getFullYear(),s.getMonth(),s.getDate(),23,59,59,999)),_.minDate!==!1&&(i=W.strtodate(_.minDate),i=new Date(i.getFullYear(),i.getMonth(),i.getDate()));for(var d,u,c,l=[];a<W.currentTime.getDaysInMonth()||n.getDay()!=_.dayOfWeekStart||W.currentTime.getMonth()==n.getMonth();)l=[],a++,d=n.getDate(),u=n.getFullYear(),c=n.getMonth(),l.push("xdsoft_date"),(s!==!1&&n>s||i!==!1&&n<i)&&l.push("xdsoft_disabled"),W.currentTime.getMonth()!=c&&l.push("xdsoft_other_month"),(_.defaultSelect||M.data("changed"))&&W.currentTime.dateFormat("d.m.Y")==n.dateFormat("d.m.Y")&&l.push("xdsoft_current"),r.dateFormat("d.m.Y")==n.dateFormat("d.m.Y")&&l.push("xdsoft_today"),(0==n.getDay()||6==n.getDay()||~_.weekends.indexOf(n.dateFormat("d.m.Y")))&&l.push("xdsoft_weekend"),_.beforeShowDay&&"function"==typeof _.beforeShowDay&&l.push(_.beforeShowDay(n)),t+='<td data-date="'+d+'" data-month="'+c+'" data-year="'+u+'" class="xdsoft_date xdsoft_day_of_week'+n.getDay()+" "+l.join(" ")+'"><div>'+d+"</div></td>",n.getDay()==_.dayOfWeekStartPrev&&(t+="</tr>"),n.setDate(d+1);t+="</tbody></table>",F.html(t),O.find(".xdsoft_label span").eq(0).text(_.i18n[_.lang].months[W.currentTime.getMonth()]),O.find(".xdsoft_label span").eq(1).text(W.currentTime.getFullYear());var f="",m="",c="",h=function(e,t){var n=W.now();n.setHours(e),e=parseInt(n.getHours()),n.setMinutes(t),t=parseInt(n.getMinutes()),l=[],(_.maxTime!==!1&&W.strtotime(_.maxTime).getTime()<n.getTime()||_.minTime!==!1&&W.strtotime(_.minTime).getTime()>n.getTime())&&l.push("xdsoft_disabled"),(_.initTime||_.defaultSelect||M.data("changed"))&&parseInt(W.currentTime.getHours())==parseInt(e)&&(_.step>59||Math[_.roundTime](W.currentTime.getMinutes()/_.step)*_.step==parseInt(t))&&(_.defaultSelect||M.data("changed")?l.push("xdsoft_current"):_.initTime&&l.push("xdsoft_init_time")),parseInt(r.getHours())==parseInt(e)&&parseInt(r.getMinutes())==parseInt(t)&&l.push("xdsoft_today"),f+='<div class="xdsoft_time '+l.join(" ")+'" data-hour="'+e+'" data-minute="'+t+'">'+n.dateFormat(_.formatTime)+"</div>"};if(_.allowTimes&&e.isArray(_.allowTimes)&&_.allowTimes.length)for(var a=0;a<_.allowTimes.length;a++)m=W.strtotime(_.allowTimes[a]).getHours(),c=W.strtotime(_.allowTimes[a]).getMinutes(),h(m,c);else for(var a=0,o=0;a<(_.hours12?12:24);a++)for(o=0;o<60;o+=_.step)m=(a<10?"0":"")+a,c=(o<10?"0":"")+o,h(m,c);H.html(f);var g="",a=0;for(a=parseInt(_.yearStart,10)+_.yearOffset;a<=parseInt(_.yearEnd,10)+_.yearOffset;a++)g+='<div class="xdsoft_option '+(W.currentTime.getFullYear()==a?"xdsoft_current":"")+'" data-value="'+a+'">'+a+"</div>";for(A.children().eq(0).html(g),a=0,g="";a<=11;a++)g+='<div class="xdsoft_option '+(W.currentTime.getMonth()==a?"xdsoft_current":"")+'" data-value="'+a+'">'+_.i18n[_.lang].months[a]+"</div>";P.children().eq(0).html(g),e(this).trigger("generate.xdsoft")},10),t.stopPropagation()}).on("afterOpen.xdsoft",function(){if(_.timepicker){var e;if(H.find(".xdsoft_current").length?e=".xdsoft_current":H.find(".xdsoft_init_time").length&&(e=".xdsoft_init_time"),e){var t=C[0].clientHeight,n=H[0].offsetHeight,a=H.find(e).index()*_.timeHeightInTimePicker+1;n-t<a&&(a=n-t),H.css("marginTop","-"+parseInt(a)+"px"),C.trigger("scroll_element.xdsoft_scroller",[parseInt(a)/(n-t)])}}});var J=0;F.on("click.xdsoft","td",function(n){n.stopPropagation(),J++;var a=e(this),r=W.currentTime;return!a.hasClass("xdsoft_disabled")&&(r.setDate(a.data("date")),r.setMonth(a.data("month")),r.setFullYear(a.data("year")),M.trigger("select.xdsoft",[r]),t.val(W.str()),(J>1||_.closeOnDateSelect===!0||0===_.closeOnDateSelect&&!_.timepicker)&&!_.inline&&M.trigger("close.xdsoft"),_.onSelectDate&&_.onSelectDate.call&&_.onSelectDate.call(M,W.currentTime,M.data("input")),M.data("changed",!0),M.trigger("xchange.xdsoft"),M.trigger("changedatetime.xdsoft"),void setTimeout(function(){J=0},200))}),H.on("click.xdsoft","div",function(t){t.stopPropagation();var n=e(this),a=W.currentTime;return!n.hasClass("xdsoft_disabled")&&(a.setHours(n.data("hour")),a.setMinutes(n.data("minute")),M.trigger("select.xdsoft",[a]),M.data("input").val(W.str()),!_.inline&&M.trigger("close.xdsoft"),_.onSelectTime&&_.onSelectTime.call&&_.onSelectTime.call(M,W.currentTime,M.data("input")),M.data("changed",!0),M.trigger("xchange.xdsoft"),void M.trigger("changedatetime.xdsoft"))}),M.mousewheel&&S.mousewheel(function(e,t,n,a){return!_.scrollMonth||(t<0?W.nextMonth():W.prevMonth(),!1)}),M.mousewheel&&C.unmousewheel().mousewheel(function(e,t,n,a){if(!_.scrollTime)return!0;var r=C[0].clientHeight,o=H[0].offsetHeight,s=Math.abs(parseInt(H.css("marginTop"))),i=!0;return t<0&&o-r-_.timeHeightInTimePicker>=s?(H.css("marginTop","-"+(s+_.timeHeightInTimePicker)+"px"),i=!1):t>0&&s-_.timeHeightInTimePicker>=0&&(H.css("marginTop","-"+(s-_.timeHeightInTimePicker)+"px"),i=!1),C.trigger("scroll_element.xdsoft_scroller",[Math.abs(parseInt(H.css("marginTop"))/(o-r))]),e.stopPropagation(),i}),M.on("changedatetime.xdsoft",function(){if(_.onChangeDateTime&&_.onChangeDateTime.call){var e=M.data("input");_.onChangeDateTime.call(M,W.currentTime,e),e.trigger("change")}}).on("generate.xdsoft",function(){_.onGenerate&&_.onGenerate.call&&_.onGenerate.call(M,W.currentTime,M.data("input"))});var j=0;t.mousewheel&&t.mousewheel(function(e,n,a,r){return!_.scrollInput||(!_.datepicker&&_.timepicker?(j=H.find(".xdsoft_current").length?H.find(".xdsoft_current").eq(0).index():0,j+n>=0&&j+n<H.children().length&&(j+=n),H.children().eq(j).length&&H.children().eq(j).trigger("mousedown"),!1):_.datepicker&&!_.timepicker?(S.trigger(e,[n,a,r]),t.val&&t.val(W.str()),M.trigger("changedatetime.xdsoft"),!1):void 0)});var L=function(){var t=M.data("input").offset(),n=t.top+M.data("input")[0].offsetHeight-1,a=t.left;n+M[0].offsetHeight>e(window).height()+e(window).scrollTop()&&(n=t.top-M[0].offsetHeight+1),n<0&&(n=0),a+M[0].offsetWidth>e(window).width()&&(a=t.left-M[0].offsetWidth+M.data("input")[0].offsetWidth),M.css({left:a,top:n})};M.on("open.xdsoft",function(){var t=!0;_.onShow&&_.onShow.call&&(t=_.onShow.call(M,W.currentTime,M.data("input"))),t!==!1&&(M.show(),M.trigger("afterOpen.xdsoft"),L(),e(window).off("resize.xdsoft",L).on("resize.xdsoft",L),_.closeOnWithoutClick&&e([document.body,window]).on("mousedown.xdsoft",function n(){M.trigger("close.xdsoft"),e([document.body,window]).off("mousedown.xdsoft",n)}))}).on("close.xdsoft",function(e){var t=!0;_.onClose&&_.onClose.call&&(t=_.onClose.call(M,W.currentTime,M.data("input"))),t===!1||_.opened||_.inline||M.hide(),e.stopPropagation()}).data("input",t);var E=0;M.data("xdsoft_datetime",W),M.setOptions(_),W.setCurrentTime(n()),M.trigger("afterOpen.xdsoft"),t.data("xdsoft_datetimepicker",M).on("open.xdsoft focusin.xdsoft mousedown.xdsoft",function(e){t.is(":disabled")||t.is(":hidden")||!t.is(":visible")||(clearTimeout(E),E=setTimeout(function(){t.is(":disabled")||t.is(":hidden")||!t.is(":visible")||(W.setCurrentTime(n()),M.trigger("open.xdsoft"))},100))}).on("keydown.xdsoft",function(t){var n=(this.value,t.which);switch(!0){case!!~[u].indexOf(n):var a=e("input:visible,textarea:visible");return M.trigger("close.xdsoft"),a.eq(a.index(this)+1).focus(),!1;case!!~[p].indexOf(n):return M.trigger("close.xdsoft"),!0}})},O=function(t){var n=t.data("xdsoft_datetimepicker");n&&(n.data("xdsoft_datetime",null),n.remove(),t.data("xdsoft_datetimepicker",null).off("open.xdsoft focusin.xdsoft focusout.xdsoft mousedown.xdsoft blur.xdsoft keydown.xdsoft"),e(window).off("resize.xdsoft"),e([window,document.body]).off("mousedown.xdsoft"),t.unmousewheel&&t.unmousewheel())};return e(document).off("keydown.xdsoftctrl keyup.xdsoftctrl").on("keydown.xdsoftctrl",function(e){e.keyCode==i&&(b=!0)}).on("keyup.xdsoftctrl",function(e){e.keyCode==i&&(b=!1)}),this.each(function(){var t;if(t=e(this).data("xdsoft_datetimepicker")){if("string"===e.type(n))switch(n){case"show":e(this).select().focus(),t.trigger("open.xdsoft");break;case"hide":t.trigger("close.xdsoft");break;case"destroy":O(e(this));break;case"reset":this.value=this.defaultValue,this.value&&t.data("xdsoft_datetime").isValidDate(Date.parseDate(this.value,_.format))||t.data("changed",!1),t.data("xdsoft_datetime").setCurrentTime(this.value)}else t.setOptions(n);return 0}"string"!==e.type(n)&&(!_.lazyInit||_.open||_.inline?S(e(this)):k(e(this)))})}}(jQuery),Date.parseFunctions={count:0},Date.parseRegexes=[],Date.formatFunctions={count:0},Date.prototype.dateFormat=function(e){if("unixtime"==e)return parseInt(this.getTime()/1e3);null==Date.formatFunctions[e]&&Date.createNewFormat(e);var t=Date.formatFunctions[e];return this[t]()},Date.createNewFormat=function(format){var funcName="format"+Date.formatFunctions.count++;Date.formatFunctions[format]=funcName;for(var code="Date.prototype."+funcName+" = function() {return ",special=!1,ch="",i=0;i<format.length;++i)ch=format.charAt(i),special||"\\"!=ch?special?(special=!1,code+="'"+String.escape(ch)+"' + "):code+=Date.getFormatCode(ch):special=!0;eval(code.substring(0,code.length-3)+";}")},Date.getFormatCode=function(e){switch(e){case"d":return"String.leftPad(this.getDate(), 2, '0') + ";case"D":return"Date.dayNames[this.getDay()].substring(0, 3) + ";case"j":return"this.getDate() + ";case"l":return"Date.dayNames[this.getDay()] + ";case"S":return"this.getSuffix() + ";case"w":return"this.getDay() + ";case"z":return"this.getDayOfYear() + ";case"W":return"this.getWeekOfYear() + ";case"F":return"Date.monthNames[this.getMonth()] + ";case"m":return"String.leftPad(this.getMonth() + 1, 2, '0') + ";case"M":return"Date.monthNames[this.getMonth()].substring(0, 3) + ";case"n":return"(this.getMonth() + 1) + ";case"t":return"this.getDaysInMonth() + ";case"L":return"(this.isLeapYear() ? 1 : 0) + ";case"Y":return"this.getFullYear() + ";case"y":return"('' + this.getFullYear()).substring(2, 4) + ";case"a":return"(this.getHours() < 12 ? 'am' : 'pm') + ";case"A":return"(this.getHours() < 12 ? 'AM' : 'PM') + ";case"g":return"((this.getHours() %12) ? this.getHours() % 12 : 12) + ";case"G":return"this.getHours() + ";case"h":return"String.leftPad((this.getHours() %12) ? this.getHours() % 12 : 12, 2, '0') + ";case"H":return"String.leftPad(this.getHours(), 2, '0') + ";case"i":return"String.leftPad(this.getMinutes(), 2, '0') + ";case"s":return"String.leftPad(this.getSeconds(), 2, '0') + ";case"O":return"this.getGMTOffset() + ";case"T":return"this.getTimezone() + ";case"Z":return"(this.getTimezoneOffset() * -60) + ";default:return"'"+String.escape(e)+"' + "}},Date.parseDate=function(e,t){if("unixtime"==t)return new Date(isNaN(parseInt(e))?0:1e3*parseInt(e));null==Date.parseFunctions[t]&&Date.createParser(t);var n=Date.parseFunctions[t];return Date[n](e)},Date.createParser=function(format){var funcName="parse"+Date.parseFunctions.count++,regexNum=Date.parseRegexes.length,currentGroup=1;Date.parseFunctions[format]=funcName;for(var code="Date."+funcName+" = function(input) {\nvar y = -1, m = -1, d = -1, h = -1, i = -1, s = -1, z = -1;\nvar d = new Date();\ny = d.getFullYear();\nm = d.getMonth();\nd = d.getDate();\nvar results = input.match(Date.parseRegexes["+regexNum+"]);\nif (results && results.length > 0) {",regex="",special=!1,ch="",i=0;i<format.length;++i)ch=format.charAt(i),special||"\\"!=ch?special?(special=!1,regex+=String.escape(ch)):(obj=Date.formatCodeToRegex(ch,currentGroup),currentGroup+=obj.g,regex+=obj.s,obj.g&&obj.c&&(code+=obj.c)):special=!0;code+="if (y > 0 && z > 0){\nvar doyDate = new Date(y,0);\ndoyDate.setDate(z);\nm = doyDate.getMonth();\nd = doyDate.getDate();\n}",code+="if (y > 0 && m >= 0 && d > 0 && h >= 0 && i >= 0 && s >= 0)\n{return new Date(y, m, d, h, i, s);}\nelse if (y > 0 && m >= 0 && d > 0 && h >= 0 && i >= 0)\n{return new Date(y, m, d, h, i);}\nelse if (y > 0 && m >= 0 && d > 0 && h >= 0)\n{return new Date(y, m, d, h);}\nelse if (y > 0 && m >= 0 && d > 0)\n{return new Date(y, m, d);}\nelse if (y > 0 && m >= 0)\n{return new Date(y, m);}\nelse if (y > 0)\n{return new Date(y);}\n}return null;}",Date.parseRegexes[regexNum]=new RegExp("^"+regex+"$"),eval(code)},Date.formatCodeToRegex=function(e,t){switch(e){case"D":return{g:0,c:null,s:"(?:Sun|Mon|Tue|Wed|Thu|Fri|Sat)"};case"j":case"d":return{g:1,c:"d = parseInt(results["+t+"], 10);\n",s:"(\\d{1,2})"};case"l":return{g:0,c:null,s:"(?:"+Date.dayNames.join("|")+")"};case"S":return{g:0,c:null,s:"(?:st|nd|rd|th)"};case"w":return{g:0,c:null,s:"\\d"};case"z":return{g:1,c:"z = parseInt(results["+t+"], 10);\n",s:"(\\d{1,3})"};case"W":return{g:0,c:null,s:"(?:\\d{2})"};case"F":return{g:1,c:"m = parseInt(Date.monthNumbers[results["+t+"].substring(0, 3)], 10);\n",s:"("+Date.monthNames.join("|")+")"};case"M":return{g:1,c:"m = parseInt(Date.monthNumbers[results["+t+"]], 10);\n",s:"(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)"};case"n":case"m":return{g:1,c:"m = parseInt(results["+t+"], 10) - 1;\n",s:"(\\d{1,2})"};case"t":return{g:0,c:null,s:"\\d{1,2}"};case"L":return{g:0,c:null,s:"(?:1|0)"};case"Y":return{g:1,c:"y = parseInt(results["+t+"], 10);\n",s:"(\\d{4})"};case"y":return{g:1,c:"var ty = parseInt(results["+t+"], 10);\ny = ty > Date.y2kYear ? 1900 + ty : 2000 + ty;\n",s:"(\\d{1,2})"};case"a":return{g:1,c:"if (results["+t+"] == 'am') {\nif (h == 12) { h = 0; }\n} else { if (h < 12) { h += 12; }}",s:"(am|pm)"};case"A":return{g:1,c:"if (results["+t+"] == 'AM') {\nif (h == 12) { h = 0; }\n} else { if (h < 12) { h += 12; }}",s:"(AM|PM)"};case"g":case"G":case"h":case"H":return{g:1,c:"h = parseInt(results["+t+"], 10);\n",s:"(\\d{1,2})"};case"i":return{g:1,c:"i = parseInt(results["+t+"], 10);\n",s:"(\\d{2})"};case"s":return{g:1,c:"s = parseInt(results["+t+"], 10);\n",s:"(\\d{2})"};case"O":return{g:0,c:null,s:"[+-]\\d{4}"};case"T":return{g:0,c:null,s:"[A-Z]{3}"};case"Z":return{g:0,c:null,s:"[+-]\\d{1,5}"};default:return{g:0,c:null,s:String.escape(e)}}},Date.prototype.getTimezone=function(){return this.toString().replace(/^.*? ([A-Z]{3}) [0-9]{4}.*$/,"$1").replace(/^.*?\(([A-Z])[a-z]+ ([A-Z])[a-z]+ ([A-Z])[a-z]+\)$/,"$1$2$3")},Date.prototype.getGMTOffset=function(){return(this.getTimezoneOffset()>0?"-":"+")+String.leftPad(Math.floor(Math.abs(this.getTimezoneOffset())/60),2,"0")+String.leftPad(Math.abs(this.getTimezoneOffset())%60,2,"0")},Date.prototype.getDayOfYear=function(){var e=0;Date.daysInMonth[1]=this.isLeapYear()?29:28;for(var t=0;t<this.getMonth();++t)e+=Date.daysInMonth[t];return e+this.getDate()},Date.prototype.getWeekOfYear=function(){var e=this.getDayOfYear()+(4-this.getDay()),t=new Date(this.getFullYear(),0,1),n=7-t.getDay()+4;return String.leftPad(Math.ceil((e-n)/7)+1,2,"0")},Date.prototype.isLeapYear=function(){var e=this.getFullYear();return 0==(3&e)&&(e%100||e%400==0&&e)},Date.prototype.getFirstDayOfMonth=function(){var e=(this.getDay()-(this.getDate()-1))%7;return e<0?e+7:e},Date.prototype.getLastDayOfMonth=function(){var e=(this.getDay()+(Date.daysInMonth[this.getMonth()]-this.getDate()))%7;return e<0?e+7:e},Date.prototype.getDaysInMonth=function(){return Date.daysInMonth[1]=this.isLeapYear()?29:28,Date.daysInMonth[this.getMonth()]},Date.prototype.getSuffix=function(){switch(this.getDate()){case 1:case 21:case 31:return"st";case 2:case 22:return"nd";case 3:case 23:return"rd";default:return"th"}},String.escape=function(e){return e.replace(/('|\\)/g,"\\$1")},String.leftPad=function(e,t,n){var a=new String(e);for(null==n&&(n=" ");a.length<t;)a=n+a;return a},Date.daysInMonth=[31,28,31,30,31,30,31,31,30,31,30,31],Date.monthNames=["January","February","March","April","May","June","July","August","September","October","November","December"],Date.dayNames=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],Date.y2kYear=50,Date.monthNumbers={Jan:0,Feb:1,Mar:2,
Apr:3,May:4,Jun:5,Jul:6,Aug:7,Sep:8,Oct:9,Nov:10,Dec:11},Date.patterns={ISO8601LongPattern:"Y-m-d H:i:s",ISO8601ShortPattern:"Y-m-d",ShortDatePattern:"n/j/Y",LongDatePattern:"l, F d, Y",FullDateTimePattern:"l, F d, Y g:i:s A",MonthDayPattern:"F d",ShortTimePattern:"g:i A",LongTimePattern:"g:i:s A",SortableDateTimePattern:"Y-m-d\\TH:i:s",UniversalSortableDateTimePattern:"Y-m-d H:i:sO",YearMonthPattern:"F, Y"},function(e){"function"==typeof define&&define.amd?define(["jquery.flot.min"],e):"object"==typeof exports?module.exports=e:e(jQuery)}(function(e){function t(t){var r,o=t||window.event,s=[].slice.call(arguments,1),i=0,d=0,u=0,c=0,l=0;return t=e.event.fix(o),t.type="mousewheel",o.wheelDelta&&(i=o.wheelDelta),o.detail&&(i=o.detail*-1),o.deltaY&&(u=o.deltaY*-1,i=u),o.deltaX&&(d=o.deltaX,i=d*-1),void 0!==o.wheelDeltaY&&(u=o.wheelDeltaY),void 0!==o.wheelDeltaX&&(d=o.wheelDeltaX*-1),c=Math.abs(i),(!n||c<n)&&(n=c),l=Math.max(Math.abs(u),Math.abs(d)),(!a||l<a)&&(a=l),r=i>0?"floor":"ceil",i=Math[r](i/n),d=Math[r](d/a),u=Math[r](u/a),s.unshift(t,i,d,u),(e.event.dispatch||e.event.handle).apply(this,s)}var n,a,r=["wheel","mousewheel","DOMMouseScroll","MozMousePixelScroll"],o="onwheel"in document||document.documentMode>=9?["wheel"]:["mousewheel","DomMouseScroll","MozMousePixelScroll"];if(e.event.fixHooks)for(var s=r.length;s;)e.event.fixHooks[r[--s]]=e.event.mouseHooks;e.event.special.mousewheel={setup:function(){if(this.addEventListener)for(var e=o.length;e;)this.addEventListener(o[--e],t,!1);else this.onmousewheel=t},teardown:function(){if(this.removeEventListener)for(var e=o.length;e;)this.removeEventListener(o[--e],t,!1);else this.onmousewheel=null}},e.fn.extend({mousewheel:function(e){return e?this.bind("mousewheel",e):this.trigger("mousewheel")},unmousewheel:function(e){return this.unbind("mousewheel",e)}})});
function _toConsumableArray(e){if(Array.isArray(e)){for(var t=0,i=Array(e.length);t<e.length;t++)i[t]=e[t];return i}return Array.from(e)}var _slice=Array.prototype.slice,_slicedToArray=function(){function e(e,t){var i=[],n=!0,r=!1,s=void 0;try{for(var a,o=e[Symbol.iterator]();!(n=(a=o.next()).done)&&(i.push(a.value),!t||i.length!==t);n=!0);}catch(l){r=!0,s=l}finally{try{!n&&o["return"]&&o["return"]()}finally{if(r)throw s}}return i}return function(t,i){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return e(t,i);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),_extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n])}return e};!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("jquery")):"function"==typeof define&&define.amd?define(["jquery"],t):e.parsley=t(e.jQuery)}(this,function(e){"use strict";function t(e,t){return e.parsleyAdaptedCallback||(e.parsleyAdaptedCallback=function(){var i=Array.prototype.slice.call(arguments,0);i.unshift(this),e.apply(t||T,i)}),e.parsleyAdaptedCallback}function i(e){return 0===e.lastIndexOf(D,0)?e.substr(D.length):e}function n(){var t=this,i=window||global;_extends(this,{isNativeEvent:function(e){return e.originalEvent&&e.originalEvent.isTrusted!==!1},fakeInputEvent:function(i){t.isNativeEvent(i)&&e(i.target).trigger("input")},misbehaves:function(i){t.isNativeEvent(i)&&(t.behavesOk(i),e(document).on("change.inputevent",i.data.selector,t.fakeInputEvent),t.fakeInputEvent(i))},behavesOk:function(i){t.isNativeEvent(i)&&e(document).off("input.inputevent",i.data.selector,t.behavesOk).off("change.inputevent",i.data.selector,t.misbehaves)},install:function(){if(!i.inputEventPatched){i.inputEventPatched="0.0.3";for(var n=["select",'input[type="checkbox"]','input[type="radio"]','input[type="file"]'],r=0;r<n.length;r++){var s=n[r];e(document).on("input.inputevent",s,{selector:s},t.behavesOk).on("change.inputevent",s,{selector:s},t.misbehaves)}}},uninstall:function(){delete i.inputEventPatched,e(document).off(".inputevent")}})}var r=1,s={},a={attr:function(e,t,i){var n,r,s,a=new RegExp("^"+t,"i");if("undefined"==typeof i)i={};else for(n in i)i.hasOwnProperty(n)&&delete i[n];if(!e)return i;for(s=e.attributes,n=s.length;n--;)r=s[n],r&&r.specified&&a.test(r.name)&&(i[this.camelize(r.name.slice(t.length))]=this.deserializeValue(r.value));return i},checkAttr:function(e,t,i){return e.hasAttribute(t+i)},setAttr:function(e,t,i,n){e.setAttribute(this.dasherize(t+i),String(n))},generateID:function(){return""+r++},deserializeValue:function(t){var i;try{return t?"true"==t||"false"!=t&&("null"==t?null:isNaN(i=Number(t))?/^[\[\{]/.test(t)?e.parseJSON(t):t:i):t}catch(n){return t}},camelize:function(e){return e.replace(/-+(.)?/g,function(e,t){return t?t.toUpperCase():""})},dasherize:function(e){return e.replace(/::/g,"/").replace(/([A-Z]+)([A-Z][a-z])/g,"$1_$2").replace(/([a-z\d])([A-Z])/g,"$1_$2").replace(/_/g,"-").toLowerCase()},warn:function(){var e;window.console&&"function"==typeof window.console.warn&&(e=window.console).warn.apply(e,arguments)},warnOnce:function(e){s[e]||(s[e]=!0,this.warn.apply(this,arguments))},_resetWarnings:function(){s={}},trimString:function(e){return e.replace(/^\s+|\s+$/g,"")},parse:{date:function S(e){var t=e.match(/^(\d{4,})-(\d\d)-(\d\d)$/);if(!t)return null;var i=t.map(function(e){return parseInt(e,10)}),n=_slicedToArray(i,4),r=(n[0],n[1]),s=n[2],a=n[3],S=new Date(r,s-1,a);return S.getFullYear()!==r||S.getMonth()+1!==s||S.getDate()!==a?null:S},string:function(e){return e},integer:function(e){return isNaN(e)?null:parseInt(e,10)},number:function(e){if(isNaN(e))throw null;return parseFloat(e)},"boolean":function(e){return!/^\s*false\s*$/i.test(e)},object:function(e){return a.deserializeValue(e)},regexp:function(e){var t="";return/^\/.*\/(?:[gimy]*)$/.test(e)?(t=e.replace(/.*\/([gimy]*)$/,"$1"),e=e.replace(new RegExp("^/(.*?)/"+t+"$"),"$1")):e="^"+e+"$",new RegExp(e,t)}},parseRequirement:function(e,t){var i=this.parse[e||"string"];if(!i)throw'Unknown requirement specification: "'+e+'"';var n=i(t);if(null===n)throw"Requirement is not a "+e+': "'+t+'"';return n},namespaceEvents:function(t,i){return t=this.trimString(t||"").split(/\s+/),t[0]?e.map(t,function(e){return e+"."+i}).join(" "):""},difference:function(t,i){var n=[];return e.each(t,function(e,t){i.indexOf(t)==-1&&n.push(t)}),n},all:function(t){return e.when.apply(e,_toConsumableArray(t).concat([42,42]))},objectCreate:Object.create||function(){var e=function(){};return function(t){if(arguments.length>1)throw Error("Second argument not supported");if("object"!=typeof t)throw TypeError("Argument must be an object");e.prototype=t;var i=new e;return e.prototype=null,i}}(),_SubmitSelector:'input[type="submit"], button:submit'},o={namespace:"data-parsley-",inputs:"input, textarea, select",excluded:"input[type=button], input[type=submit], input[type=reset], input[type=hidden]",priorityEnabled:!0,multiple:null,group:null,uiEnabled:!0,validationThreshold:3,focus:"first",trigger:!1,triggerAfterFailure:"input",errorClass:"parsley-error",successClass:"parsley-success",classHandler:function(e){},errorsContainer:function(e){},errorsWrapper:'<ul class="parsley-errors-list"></ul>',errorTemplate:"<li></li>"},l=function(){this.__id__=a.generateID()};l.prototype={asyncSupport:!0,_pipeAccordingToValidationResult:function(){var t=this,i=function(){var i=e.Deferred();return!0!==t.validationResult&&i.reject(),i.resolve().promise()};return[i,i]},actualizeOptions:function(){return a.attr(this.element,this.options.namespace,this.domOptions),this.parent&&this.parent.actualizeOptions&&this.parent.actualizeOptions(),this},_resetOptions:function(e){this.domOptions=a.objectCreate(this.parent.options),this.options=a.objectCreate(this.domOptions);for(var t in e)e.hasOwnProperty(t)&&(this.options[t]=e[t]);this.actualizeOptions()},_listeners:null,on:function(e,t){this._listeners=this._listeners||{};var i=this._listeners[e]=this._listeners[e]||[];return i.push(t),this},subscribe:function(t,i){e.listenTo(this,t.toLowerCase(),i)},off:function(e,t){var i=this._listeners&&this._listeners[e];if(i)if(t)for(var n=i.length;n--;)i[n]===t&&i.splice(n,1);else delete this._listeners[e];return this},unsubscribe:function(t,i){e.unsubscribeTo(this,t.toLowerCase())},trigger:function(e,t,i){t=t||this;var n,r=this._listeners&&this._listeners[e];if(r)for(var s=r.length;s--;)if(n=r[s].call(t,t,i),n===!1)return n;return!this.parent||this.parent.trigger(e,t,i)},asyncIsValid:function(e,t){return a.warnOnce("asyncIsValid is deprecated; please use whenValid instead"),this.whenValid({group:e,force:t})},_findRelated:function(){return this.options.multiple?e(this.parent.element.querySelectorAll("["+this.options.namespace+'multiple="'+this.options.multiple+'"]')):this.$element}};var u=function(e,t){var i=e.match(/^\s*\[(.*)\]\s*$/);if(!i)throw'Requirement is not an array: "'+e+'"';var n=i[1].split(",").map(a.trimString);if(n.length!==t)throw"Requirement has "+n.length+" values when "+t+" are needed";return n},d=function(e,t,i){var n=null,r={};for(var s in e)if(s){var o=i(s);"string"==typeof o&&(o=a.parseRequirement(e[s],o)),r[s]=o}else n=a.parseRequirement(e[s],t);return[n,r]},h=function(t){e.extend(!0,this,t)};h.prototype={validate:function(e,t){if(this.fn)return arguments.length>3&&(t=[].slice.call(arguments,1,-1)),this.fn(e,t);if(Array.isArray(e)){if(!this.validateMultiple)throw"Validator `"+this.name+"` does not handle multiple values";return this.validateMultiple.apply(this,arguments)}var i=arguments[arguments.length-1];if(this.validateDate&&i._isDateInput())return arguments[0]=a.parse.date(arguments[0]),null!==arguments[0]&&this.validateDate.apply(this,arguments);if(this.validateNumber)return!isNaN(e)&&(arguments[0]=parseFloat(arguments[0]),this.validateNumber.apply(this,arguments));if(this.validateString)return this.validateString.apply(this,arguments);throw"Validator `"+this.name+"` only handles multiple values"},parseRequirements:function(t,i){if("string"!=typeof t)return Array.isArray(t)?t:[t];var n=this.requirementType;if(Array.isArray(n)){for(var r=u(t,n.length),s=0;s<r.length;s++)r[s]=a.parseRequirement(n[s],r[s]);return r}return e.isPlainObject(n)?d(n,t,i):[a.parseRequirement(n,t)]},requirementType:"string",priority:2};var p=function(e,t){this.__class__="ValidatorRegistry",this.locale="en",this.init(e||{},t||{})},c={email:/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$/i,number:/^-?(\d*\.)?\d+(e[-+]?\d+)?$/i,integer:/^-?\d+$/,digits:/^\d+$/,alphanum:/^\w+$/i,date:{test:function(e){return null!==a.parse.date(e)}},url:new RegExp("^(?:(?:https?|ftp)://)?(?:\\S+(?::\\S*)?@)?(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))(?::\\d{2,5})?(?:/\\S*)?$","i")};c.range=c.number;var f=function(e){var t=(""+e).match(/(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/);return t?Math.max(0,(t[1]?t[1].length:0)-(t[2]?+t[2]:0)):0},m=function(e,t){return t.map(a.parse[e])},g=function(e,t){return function(i){for(var n=arguments.length,r=Array(n>1?n-1:0),s=1;s<n;s++)r[s-1]=arguments[s];return r.pop(),t.apply(void 0,[i].concat(_toConsumableArray(m(e,r))))}},v=function(e){return{validateDate:g("date",e),validateNumber:g("number",e),requirementType:e.length<=2?"string":["string","string"],priority:30}};p.prototype={init:function(e,t){this.catalog=t,this.validators=_extends({},this.validators);for(var i in e)this.addValidator(i,e[i].fn,e[i].priority);window.Parsley.trigger("parsley:validator:init")},setLocale:function(e){if("undefined"==typeof this.catalog[e])throw new Error(e+" is not available in the catalog");return this.locale=e,this},addCatalog:function(e,t,i){return"object"==typeof t&&(this.catalog[e]=t),!0===i?this.setLocale(e):this},addMessage:function(e,t,i){return"undefined"==typeof this.catalog[e]&&(this.catalog[e]={}),this.catalog[e][t]=i,this},addMessages:function(e,t){for(var i in t)this.addMessage(e,i,t[i]);return this},addValidator:function(e,t,i){if(this.validators[e])a.warn('Validator "'+e+'" is already defined.');else if(o.hasOwnProperty(e))return void a.warn('"'+e+'" is a restricted keyword and is not a valid validator name.');return this._setValidator.apply(this,arguments)},updateValidator:function(e,t,i){return this.validators[e]?this._setValidator.apply(this,arguments):(a.warn('Validator "'+e+'" is not already defined.'),this.addValidator.apply(this,arguments))},removeValidator:function(e){return this.validators[e]||a.warn('Validator "'+e+'" is not defined.'),delete this.validators[e],this},_setValidator:function(e,t,i){"object"!=typeof t&&(t={fn:t,priority:i}),t.validate||(t=new h(t)),this.validators[e]=t;for(var n in t.messages||{})this.addMessage(n,e,t.messages[n]);return this},getErrorMessage:function(e){var t;if("type"===e.name){var i=this.catalog[this.locale][e.name]||{};t=i[e.requirements]}else t=this.formatMessage(this.catalog[this.locale][e.name],e.requirements);return t||this.catalog[this.locale].defaultMessage||this.catalog.en.defaultMessage},formatMessage:function(e,t){if("object"==typeof t){for(var i in t)e=this.formatMessage(e,t[i]);return e}return"string"==typeof e?e.replace(/%s/i,t):""},validators:{notblank:{validateString:function(e){return/\S/.test(e)},priority:2},required:{validateMultiple:function(e){return e.length>0},validateString:function(e){return/\S/.test(e)},priority:512},type:{validateString:function(e,t){var i=arguments.length<=2||void 0===arguments[2]?{}:arguments[2],n=i.step,r=void 0===n?"any":n,s=i.base,a=void 0===s?0:s,o=c[t];if(!o)throw new Error("validator type `"+t+"` is not supported");if(!o.test(e))return!1;if("number"===t&&!/^any$/i.test(r||"")){var l=Number(e),u=Math.max(f(r),f(a));if(f(l)>u)return!1;var d=function(e){return Math.round(e*Math.pow(10,u))};if((d(l)-d(a))%d(r)!=0)return!1}return!0},requirementType:{"":"string",step:"string",base:"number"},priority:256},pattern:{validateString:function(e,t){return t.test(e)},requirementType:"regexp",priority:64},minlength:{validateString:function(e,t){return e.length>=t},requirementType:"integer",priority:30},maxlength:{validateString:function(e,t){return e.length<=t},requirementType:"integer",priority:30},length:{validateString:function(e,t,i){return e.length>=t&&e.length<=i},requirementType:["integer","integer"],priority:30},mincheck:{validateMultiple:function(e,t){return e.length>=t},requirementType:"integer",priority:30},maxcheck:{validateMultiple:function(e,t){return e.length<=t},requirementType:"integer",priority:30},check:{validateMultiple:function(e,t,i){return e.length>=t&&e.length<=i},requirementType:["integer","integer"],priority:30},min:v(function(e,t){return e>=t}),max:v(function(e,t){return e<=t}),range:v(function(e,t,i){return e>=t&&e<=i}),equalto:{validateString:function(t,i){var n=e(i);return n.length?t===n.val():t===i},priority:256}}};var y={},_=function k(e,t,i){for(var n=[],r=[],s=0;s<e.length;s++){for(var a=!1,o=0;o<t.length;o++)if(e[s].assert.name===t[o].assert.name){a=!0;break}a?r.push(e[s]):n.push(e[s])}return{kept:r,added:n,removed:i?[]:k(t,e,!0).added}};y.Form={_actualizeTriggers:function(){var e=this;this.$element.on("submit.Parsley",function(t){e.onSubmitValidate(t)}),this.$element.on("click.Parsley",a._SubmitSelector,function(t){e.onSubmitButton(t)}),!1!==this.options.uiEnabled&&this.element.setAttribute("novalidate","")},focus:function(){if(this._focusedField=null,!0===this.validationResult||"none"===this.options.focus)return null;for(var e=0;e<this.fields.length;e++){var t=this.fields[e];if(!0!==t.validationResult&&t.validationResult.length>0&&"undefined"==typeof t.options.noFocus&&(this._focusedField=t.$element,"first"===this.options.focus))break}return null===this._focusedField?null:this._focusedField.focus()},_destroyUI:function(){this.$element.off(".Parsley")}},y.Field={_reflowUI:function(){if(this._buildUI(),this._ui){var e=_(this.validationResult,this._ui.lastValidationResult);this._ui.lastValidationResult=this.validationResult,this._manageStatusClass(),this._manageErrorsMessages(e),this._actualizeTriggers(),!e.kept.length&&!e.added.length||this._failedOnce||(this._failedOnce=!0,this._actualizeTriggers())}},getErrorsMessages:function(){if(!0===this.validationResult)return[];for(var e=[],t=0;t<this.validationResult.length;t++)e.push(this.validationResult[t].errorMessage||this._getErrorMessage(this.validationResult[t].assert));return e},addError:function(e){var t=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],i=t.message,n=t.assert,r=t.updateClass,s=void 0===r||r;this._buildUI(),this._addError(e,{message:i,assert:n}),s&&this._errorClass()},updateError:function(e){var t=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],i=t.message,n=t.assert,r=t.updateClass,s=void 0===r||r;this._buildUI(),this._updateError(e,{message:i,assert:n}),s&&this._errorClass()},removeError:function(e){var t=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],i=t.updateClass,n=void 0===i||i;this._buildUI(),this._removeError(e),n&&this._manageStatusClass()},_manageStatusClass:function(){this.hasConstraints()&&this.needsValidation()&&!0===this.validationResult?this._successClass():this.validationResult.length>0?this._errorClass():this._resetClass()},_manageErrorsMessages:function(t){if("undefined"==typeof this.options.errorsMessagesDisabled){if("undefined"!=typeof this.options.errorMessage)return t.added.length||t.kept.length?(this._insertErrorWrapper(),0===this._ui.$errorsWrapper.find(".parsley-custom-error-message").length&&this._ui.$errorsWrapper.append(e(this.options.errorTemplate).addClass("parsley-custom-error-message")),this._ui.$errorsWrapper.addClass("filled").find(".parsley-custom-error-message").html(this.options.errorMessage)):this._ui.$errorsWrapper.removeClass("filled").find(".parsley-custom-error-message").remove();for(var i=0;i<t.removed.length;i++)this._removeError(t.removed[i].assert.name);for(i=0;i<t.added.length;i++)this._addError(t.added[i].assert.name,{message:t.added[i].errorMessage,assert:t.added[i].assert});for(i=0;i<t.kept.length;i++)this._updateError(t.kept[i].assert.name,{message:t.kept[i].errorMessage,assert:t.kept[i].assert})}},_addError:function(t,i){var n=i.message,r=i.assert;this._insertErrorWrapper(),this._ui.$errorsWrapper.addClass("filled").append(e(this.options.errorTemplate).addClass("parsley-"+t).html(n||this._getErrorMessage(r)))},_updateError:function(e,t){var i=t.message,n=t.assert;this._ui.$errorsWrapper.addClass("filled").find(".parsley-"+e).html(i||this._getErrorMessage(n))},_removeError:function(e){this._ui.$errorsWrapper.removeClass("filled").find(".parsley-"+e).remove()},_getErrorMessage:function(e){var t=e.name+"Message";return"undefined"!=typeof this.options[t]?window.Parsley.formatMessage(this.options[t],e.requirements):window.Parsley.getErrorMessage(e)},_buildUI:function(){if(!this._ui&&!1!==this.options.uiEnabled){var t={};this.element.setAttribute(this.options.namespace+"id",this.__id__),t.$errorClassHandler=this._manageClassHandler(),t.errorsWrapperId="parsley-id-"+(this.options.multiple?"multiple-"+this.options.multiple:this.__id__),t.$errorsWrapper=e(this.options.errorsWrapper).attr("id",t.errorsWrapperId),t.lastValidationResult=[],t.validationInformationVisible=!1,this._ui=t}},_manageClassHandler:function(){if("string"==typeof this.options.classHandler)return 0===e(this.options.classHandler).length&&ParsleyUtils.warn("No elements found that match the selector `"+this.options.classHandler+"` set in options.classHandler or data-parsley-class-handler"),e(this.options.classHandler);if("function"==typeof this.options.classHandler)var t=this.options.classHandler.call(this,this);return"undefined"!=typeof t&&t.length?t:this._inputHolder()},_inputHolder:function(){return this.options.multiple&&"SELECT"!==this.element.nodeName?this.$element.parent():this.$element},_insertErrorWrapper:function(){var t;if(0!==this._ui.$errorsWrapper.parent().length)return this._ui.$errorsWrapper.parent();if("string"==typeof this.options.errorsContainer){if(e(this.options.errorsContainer).length)return e(this.options.errorsContainer).append(this._ui.$errorsWrapper);a.warn("The errors container `"+this.options.errorsContainer+"` does not exist in DOM")}else"function"==typeof this.options.errorsContainer&&(t=this.options.errorsContainer.call(this,this));return"undefined"!=typeof t&&t.length?t.append(this._ui.$errorsWrapper):this._inputHolder().after(this._ui.$errorsWrapper)},_actualizeTriggers:function(){var e,t=this,i=this._findRelated();i.off(".Parsley"),this._failedOnce?i.on(a.namespaceEvents(this.options.triggerAfterFailure,"Parsley"),function(){t._validateIfNeeded()}):(e=a.namespaceEvents(this.options.trigger,"Parsley"))&&i.on(e,function(e){t._validateIfNeeded(e)})},_validateIfNeeded:function(e){var t=this;e&&/key|input/.test(e.type)&&(!this._ui||!this._ui.validationInformationVisible)&&this.getValue().length<=this.options.validationThreshold||(this.options.debounce?(window.clearTimeout(this._debounced),this._debounced=window.setTimeout(function(){return t.validate()},this.options.debounce)):this.validate())},_resetUI:function(){this._failedOnce=!1,this._actualizeTriggers(),"undefined"!=typeof this._ui&&(this._ui.$errorsWrapper.removeClass("filled").children().remove(),this._resetClass(),this._ui.lastValidationResult=[],this._ui.validationInformationVisible=!1)},_destroyUI:function(){this._resetUI(),"undefined"!=typeof this._ui&&this._ui.$errorsWrapper.remove(),delete this._ui},_successClass:function(){this._ui.validationInformationVisible=!0,this._ui.$errorClassHandler.removeClass(this.options.errorClass).addClass(this.options.successClass)},_errorClass:function(){this._ui.validationInformationVisible=!0,this._ui.$errorClassHandler.removeClass(this.options.successClass).addClass(this.options.errorClass)},_resetClass:function(){this._ui.$errorClassHandler.removeClass(this.options.successClass).removeClass(this.options.errorClass)}};var w=function(t,i,n){this.__class__="Form",this.element=t,this.$element=e(t),this.domOptions=i,this.options=n,this.parent=window.Parsley,this.fields=[],this.validationResult=null},b={pending:null,resolved:!0,rejected:!1};w.prototype={onSubmitValidate:function(e){var t=this;if(!0!==e.parsley){var i=this._submitSource||this.$element.find(a._SubmitSelector)[0];if(this._submitSource=null,this.$element.find(".parsley-synthetic-submit-button").prop("disabled",!0),!i||null===i.getAttribute("formnovalidate")){window.Parsley._remoteCache={};var n=this.whenValidate({event:e});"resolved"===n.state()&&!1!==this._trigger("submit")||(e.stopImmediatePropagation(),e.preventDefault(),"pending"===n.state()&&n.done(function(){t._submit(i)}))}}},onSubmitButton:function(e){this._submitSource=e.currentTarget},_submit:function(t){if(!1!==this._trigger("submit")){if(t){var i=this.$element.find(".parsley-synthetic-submit-button").prop("disabled",!1);0===i.length&&(i=e('<input class="parsley-synthetic-submit-button" type="hidden">').appendTo(this.$element)),i.attr({name:t.getAttribute("name"),value:t.getAttribute("value")})}this.$element.trigger(_extends(e.Event("submit"),{parsley:!0}))}},validate:function(t){if(arguments.length>=1&&!e.isPlainObject(t)){a.warnOnce("Calling validate on a parsley form without passing arguments as an object is deprecated.");var i=_slice.call(arguments),n=i[0],r=i[1],s=i[2];t={group:n,force:r,event:s}}return b[this.whenValidate(t).state()]},whenValidate:function(){var t,i=this,n=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],r=n.group,s=n.force,o=n.event;this.submitEvent=o,o&&(this.submitEvent=_extends({},o,{preventDefault:function(){a.warnOnce("Using `this.submitEvent.preventDefault()` is deprecated; instead, call `this.validationResult = false`"),i.validationResult=!1}})),this.validationResult=!0,this._trigger("validate"),this._refreshFields();var l=this._withoutReactualizingFormOptions(function(){return e.map(i.fields,function(e){return e.whenValidate({force:s,group:r})})});return(t=a.all(l).done(function(){i._trigger("success")}).fail(function(){i.validationResult=!1,i.focus(),i._trigger("error")}).always(function(){i._trigger("validated")})).pipe.apply(t,_toConsumableArray(this._pipeAccordingToValidationResult()))},isValid:function(t){if(arguments.length>=1&&!e.isPlainObject(t)){a.warnOnce("Calling isValid on a parsley form without passing arguments as an object is deprecated.");var i=_slice.call(arguments),n=i[0],r=i[1];t={group:n,force:r}}return b[this.whenValid(t).state()]},whenValid:function(){var t=this,i=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],n=i.group,r=i.force;this._refreshFields();var s=this._withoutReactualizingFormOptions(function(){return e.map(t.fields,function(e){return e.whenValid({group:n,force:r})})});return a.all(s)},reset:function(){for(var e=0;e<this.fields.length;e++)this.fields[e].reset();this._trigger("reset")},destroy:function(){this._destroyUI();for(var e=0;e<this.fields.length;e++)this.fields[e].destroy();this.$element.removeData("Parsley"),this._trigger("destroy")},_refreshFields:function(){return this.actualizeOptions()._bindFields()},_bindFields:function(){var t=this,i=this.fields;return this.fields=[],this.fieldsMappedById={},this._withoutReactualizingFormOptions(function(){t.$element.find(t.options.inputs).not(t.options.excluded).each(function(e,i){var n=new window.Parsley.Factory(i,{},t);if(("Field"===n.__class__||"FieldMultiple"===n.__class__)&&!0!==n.options.excluded){var r=n.__class__+"-"+n.__id__;"undefined"==typeof t.fieldsMappedById[r]&&(t.fieldsMappedById[r]=n,t.fields.push(n))}}),e.each(a.difference(i,t.fields),function(e,t){t.reset()})}),this},_withoutReactualizingFormOptions:function(e){var t=this.actualizeOptions;this.actualizeOptions=function(){return this};var i=e();return this.actualizeOptions=t,i},_trigger:function(e){return this.trigger("form:"+e)}};var F=function(e,t,i,n,r){var s=window.Parsley._validatorRegistry.validators[t],a=new h(s);n=n||e.options[t+"Priority"]||a.priority,r=!0===r,_extends(this,{validator:a,name:t,requirements:i,priority:n,isDomConstraint:r}),this._parseRequirements(e.options)},C=function(e){var t=e[0].toUpperCase();return t+e.slice(1)};F.prototype={validate:function(e,t){var i;return(i=this.validator).validate.apply(i,[e].concat(_toConsumableArray(this.requirementList),[t]))},_parseRequirements:function(e){var t=this;this.requirementList=this.validator.parseRequirements(this.requirements,function(i){return e[t.name+C(i)]})}};var E=function(t,i,n,r){this.__class__="Field",this.element=t,this.$element=e(t),"undefined"!=typeof r&&(this.parent=r),this.options=n,this.domOptions=i,this.constraints=[],this.constraintsByName={},this.validationResult=!0,this._bindConstraints()},A={pending:null,resolved:!0,rejected:!1};E.prototype={validate:function(t){arguments.length>=1&&!e.isPlainObject(t)&&(a.warnOnce("Calling validate on a parsley field without passing arguments as an object is deprecated."),t={options:t});var i=this.whenValidate(t);if(!i)return!0;switch(i.state()){case"pending":return null;case"resolved":return!0;case"rejected":return this.validationResult}},whenValidate:function(){var e,t=this,i=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],n=i.force,r=i.group;if(this.refreshConstraints(),!r||this._isInGroup(r))return this.value=this.getValue(),this._trigger("validate"),(e=this.whenValid({force:n,value:this.value,_refreshed:!0}).always(function(){t._reflowUI()}).done(function(){t._trigger("success")}).fail(function(){t._trigger("error")}).always(function(){t._trigger("validated")})).pipe.apply(e,_toConsumableArray(this._pipeAccordingToValidationResult()))},hasConstraints:function(){return 0!==this.constraints.length},needsValidation:function(e){return"undefined"==typeof e&&(e=this.getValue()),!(!e.length&&!this._isRequired()&&"undefined"==typeof this.options.validateIfEmpty)},_isInGroup:function(t){return Array.isArray(this.options.group)?-1!==e.inArray(t,this.options.group):this.options.group===t},isValid:function(t){if(arguments.length>=1&&!e.isPlainObject(t)){a.warnOnce("Calling isValid on a parsley field without passing arguments as an object is deprecated.");var i=_slice.call(arguments),n=i[0],r=i[1];t={force:n,value:r}}var s=this.whenValid(t);return!s||A[s.state()]},whenValid:function(){var t=this,i=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],n=i.force,r=void 0!==n&&n,s=i.value,o=i.group,l=i._refreshed;if(l||this.refreshConstraints(),!o||this._isInGroup(o)){if(this.validationResult=!0,!this.hasConstraints())return e.when();if("undefined"!=typeof s&&null!==s||(s=this.getValue()),!this.needsValidation(s)&&!0!==r)return e.when();var u=this._getGroupedConstraints(),d=[];return e.each(u,function(i,n){var r=a.all(e.map(n,function(e){return t._validateConstraint(s,e)}));if(d.push(r),"rejected"===r.state())return!1}),a.all(d)}},_validateConstraint:function(t,i){var n=this,r=i.validate(t,this);return!1===r&&(r=e.Deferred().reject()),a.all([r]).fail(function(e){n.validationResult instanceof Array||(n.validationResult=[]),n.validationResult.push({assert:i,errorMessage:"string"==typeof e&&e})})},getValue:function(){var e;return e="function"==typeof this.options.value?this.options.value(this):"undefined"!=typeof this.options.value?this.options.value:this.$element.val(),"undefined"==typeof e||null===e?"":this._handleWhitespace(e)},reset:function(){return this._resetUI(),this._trigger("reset")},destroy:function(){this._destroyUI(),this.$element.removeData("Parsley"),this.$element.removeData("FieldMultiple"),this._trigger("destroy")},refreshConstraints:function(){return this.actualizeOptions()._bindConstraints()},addConstraint:function(e,t,i,n){if(window.Parsley._validatorRegistry.validators[e]){var r=new F(this,e,t,i,n);"undefined"!==this.constraintsByName[r.name]&&this.removeConstraint(r.name),this.constraints.push(r),this.constraintsByName[r.name]=r}return this},removeConstraint:function(e){for(var t=0;t<this.constraints.length;t++)if(e===this.constraints[t].name){this.constraints.splice(t,1);break}return delete this.constraintsByName[e],this},updateConstraint:function(e,t,i){return this.removeConstraint(e).addConstraint(e,t,i)},_bindConstraints:function(){for(var e=[],t={},i=0;i<this.constraints.length;i++)!1===this.constraints[i].isDomConstraint&&(e.push(this.constraints[i]),t[this.constraints[i].name]=this.constraints[i]);this.constraints=e,this.constraintsByName=t;for(var n in this.options)this.addConstraint(n,this.options[n],void 0,!0);return this._bindHtml5Constraints()},_bindHtml5Constraints:function(){null!==this.element.getAttribute("required")&&this.addConstraint("required",!0,void 0,!0),null!==this.element.getAttribute("pattern")&&this.addConstraint("pattern",this.element.getAttribute("pattern"),void 0,!0);var e=this.element.getAttribute("min"),t=this.element.getAttribute("max");null!==e&&null!==t?this.addConstraint("range",[e,t],void 0,!0):null!==e?this.addConstraint("min",e,void 0,!0):null!==t&&this.addConstraint("max",t,void 0,!0),null!==this.element.getAttribute("minlength")&&null!==this.element.getAttribute("maxlength")?this.addConstraint("length",[this.element.getAttribute("minlength"),this.element.getAttribute("maxlength")],void 0,!0):null!==this.element.getAttribute("minlength")?this.addConstraint("minlength",this.element.getAttribute("minlength"),void 0,!0):null!==this.element.getAttribute("maxlength")&&this.addConstraint("maxlength",this.element.getAttribute("maxlength"),void 0,!0);var i=this.element.type;return"number"===i?this.addConstraint("type",["number",{step:this.element.getAttribute("step")||"1",base:e||this.element.getAttribute("value")}],void 0,!0):/^(email|url|range|date)$/i.test(i)?this.addConstraint("type",i,void 0,!0):this},_isRequired:function(){return"undefined"!=typeof this.constraintsByName.required&&!1!==this.constraintsByName.required.requirements},_trigger:function(e){return this.trigger("field:"+e)},_handleWhitespace:function(e){return!0===this.options.trimValue&&a.warnOnce('data-parsley-trim-value="true" is deprecated, please use data-parsley-whitespace="trim"'),"squish"===this.options.whitespace&&(e=e.replace(/\s{2,}/g," ")),"trim"!==this.options.whitespace&&"squish"!==this.options.whitespace&&!0!==this.options.trimValue||(e=a.trimString(e)),e},_isDateInput:function(){var e=this.constraintsByName.type;return e&&"date"===e.requirements},_getGroupedConstraints:function(){if(!1===this.options.priorityEnabled)return[this.constraints];for(var e=[],t={},i=0;i<this.constraints.length;i++){var n=this.constraints[i].priority;t[n]||e.push(t[n]=[]),t[n].push(this.constraints[i])}return e.sort(function(e,t){return t[0].priority-e[0].priority}),e}};var x=E,$=function(){this.__class__="FieldMultiple"};$.prototype={addElement:function(e){return this.$elements.push(e),this},refreshConstraints:function(){var t;if(this.constraints=[],"SELECT"===this.element.nodeName)return this.actualizeOptions()._bindConstraints(),
this;for(var i=0;i<this.$elements.length;i++)if(e("html").has(this.$elements[i]).length){t=this.$elements[i].data("FieldMultiple").refreshConstraints().constraints;for(var n=0;n<t.length;n++)this.addConstraint(t[n].name,t[n].requirements,t[n].priority,t[n].isDomConstraint)}else this.$elements.splice(i,1);return this},getValue:function(){if("function"==typeof this.options.value)return this.options.value(this);if("undefined"!=typeof this.options.value)return this.options.value;if("INPUT"===this.element.nodeName){if("radio"===this.element.type)return this._findRelated().filter(":checked").val()||"";if("checkbox"===this.element.type){var t=[];return this._findRelated().filter(":checked").each(function(){t.push(e(this).val())}),t}}return"SELECT"===this.element.nodeName&&null===this.$element.val()?[]:this.$element.val()},_init:function(){return this.$elements=[this.$element],this}};var P=function(t,i,n){this.element=t,this.$element=e(t);var r=this.$element.data("Parsley");if(r)return"undefined"!=typeof n&&r.parent===window.Parsley&&(r.parent=n,r._resetOptions(r.options)),"object"==typeof i&&_extends(r.options,i),r;if(!this.$element.length)throw new Error("You must bind Parsley on an existing element.");if("undefined"!=typeof n&&"Form"!==n.__class__)throw new Error("Parent instance must be a Form instance");return this.parent=n||window.Parsley,this.init(i)};P.prototype={init:function(e){return this.__class__="Parsley",this.__version__="2.7.2",this.__id__=a.generateID(),this._resetOptions(e),"FORM"===this.element.nodeName||a.checkAttr(this.element,this.options.namespace,"validate")&&!this.$element.is(this.options.inputs)?this.bind("parsleyForm"):this.isMultiple()?this.handleMultiple():this.bind("parsleyField")},isMultiple:function(){return"radio"===this.element.type||"checkbox"===this.element.type||"SELECT"===this.element.nodeName&&null!==this.element.getAttribute("multiple")},handleMultiple:function(){var t,i,n=this;if(this.options.multiple=this.options.multiple||(t=this.element.getAttribute("name"))||this.element.getAttribute("id"),"SELECT"===this.element.nodeName&&null!==this.element.getAttribute("multiple"))return this.options.multiple=this.options.multiple||this.__id__,this.bind("parsleyFieldMultiple");if(!this.options.multiple)return a.warn("To be bound by Parsley, a radio, a checkbox and a multiple select input must have either a name or a multiple option.",this.$element),this;this.options.multiple=this.options.multiple.replace(/(:|\.|\[|\]|\{|\}|\$)/g,""),t&&e('input[name="'+t+'"]').each(function(e,t){"radio"!==t.type&&"checkbox"!==t.type||t.setAttribute(n.options.namespace+"multiple",n.options.multiple)});for(var r=this._findRelated(),s=0;s<r.length;s++)if(i=e(r.get(s)).data("Parsley"),"undefined"!=typeof i){this.$element.data("FieldMultiple")||i.addElement(this.$element);break}return this.bind("parsleyField",!0),i||this.bind("parsleyFieldMultiple")},bind:function(t,i){var n;switch(t){case"parsleyForm":n=e.extend(new w(this.element,this.domOptions,this.options),new l,window.ParsleyExtend)._bindFields();break;case"parsleyField":n=e.extend(new x(this.element,this.domOptions,this.options,this.parent),new l,window.ParsleyExtend);break;case"parsleyFieldMultiple":n=e.extend(new x(this.element,this.domOptions,this.options,this.parent),new $,new l,window.ParsleyExtend)._init();break;default:throw new Error(t+"is not a supported Parsley type")}return this.options.multiple&&a.setAttr(this.element,this.options.namespace,"multiple",this.options.multiple),"undefined"!=typeof i?(this.$element.data("FieldMultiple",n),n):(this.$element.data("Parsley",n),n._actualizeTriggers(),n._trigger("init"),n)}};var V=e.fn.jquery.split(".");if(parseInt(V[0])<=1&&parseInt(V[1])<8)throw"The loaded version of jQuery is too old. Please upgrade to 1.8.x or better.";V.forEach||a.warn("Parsley requires ES5 to run properly. Please include https://github.com/es-shims/es5-shim");var O=_extends(new l,{element:document,$element:e(document),actualizeOptions:null,_resetOptions:null,Factory:P,version:"2.7.2"});_extends(x.prototype,y.Field,l.prototype),_extends(w.prototype,y.Form,l.prototype),_extends(P.prototype,l.prototype),e.fn.parsley=e.fn.psly=function(t){if(this.length>1){var i=[];return this.each(function(){i.push(e(this).parsley(t))}),i}return e(this).length?new P(this[0],t):void a.warn("You must bind Parsley on an existing element.")},"undefined"==typeof window.ParsleyExtend&&(window.ParsleyExtend={}),O.options=_extends(a.objectCreate(o),window.ParsleyConfig),window.ParsleyConfig=O.options,window.Parsley=window.psly=O,O.Utils=a,window.ParsleyUtils={},e.each(a,function(e,t){"function"==typeof t&&(window.ParsleyUtils[e]=function(){return a.warnOnce("Accessing `window.ParsleyUtils` is deprecated. Use `window.Parsley.Utils` instead."),a[e].apply(a,arguments)})});var M=window.Parsley._validatorRegistry=new p(window.ParsleyConfig.validators,window.ParsleyConfig.i18n);window.ParsleyValidator={},e.each("setLocale addCatalog addMessage addMessages getErrorMessage formatMessage addValidator updateValidator removeValidator".split(" "),function(e,t){window.Parsley[t]=function(){return M[t].apply(M,arguments)},window.ParsleyValidator[t]=function(){var e;return a.warnOnce("Accessing the method '"+t+"' through Validator is deprecated. Simply call 'window.Parsley."+t+"(...)'"),(e=window.Parsley)[t].apply(e,arguments)}}),window.Parsley.UI=y,window.ParsleyUI={removeError:function(e,t,i){var n=!0!==i;return a.warnOnce("Accessing UI is deprecated. Call 'removeError' on the instance directly. Please comment in issue 1073 as to your need to call this method."),e.removeError(t,{updateClass:n})},getErrorsMessages:function(e){return a.warnOnce("Accessing UI is deprecated. Call 'getErrorsMessages' on the instance directly."),e.getErrorsMessages()}},e.each("addError updateError".split(" "),function(e,t){window.ParsleyUI[t]=function(e,i,n,r,s){var o=!0!==s;return a.warnOnce("Accessing UI is deprecated. Call '"+t+"' on the instance directly. Please comment in issue 1073 as to your need to call this method."),e[t](i,{message:n,assert:r,updateClass:o})}}),!1!==window.ParsleyConfig.autoBind&&e(function(){e("[data-parsley-validate]").length&&e("[data-parsley-validate]").parsley()});var T=e({}),R=function(){a.warnOnce("Parsley's pubsub module is deprecated; use the 'on' and 'off' methods on parsley instances or window.Parsley")},D="parsley:";e.listen=function(e,n){var r;if(R(),"object"==typeof arguments[1]&&"function"==typeof arguments[2]&&(r=arguments[1],n=arguments[2]),"function"!=typeof n)throw new Error("Wrong parameters");window.Parsley.on(i(e),t(n,r))},e.listenTo=function(e,n,r){if(R(),!(e instanceof x||e instanceof w))throw new Error("Must give Parsley instance");if("string"!=typeof n||"function"!=typeof r)throw new Error("Wrong parameters");e.on(i(n),t(r))},e.unsubscribe=function(e,t){if(R(),"string"!=typeof e||"function"!=typeof t)throw new Error("Wrong arguments");window.Parsley.off(i(e),t.parsleyAdaptedCallback)},e.unsubscribeTo=function(e,t){if(R(),!(e instanceof x||e instanceof w))throw new Error("Must give Parsley instance");e.off(i(t))},e.unsubscribeAll=function(t){R(),window.Parsley.off(i(t)),e("form,input,textarea,select").each(function(){var n=e(this).data("Parsley");n&&n.off(i(t))})},e.emit=function(e,t){var n;R();var r=t instanceof x||t instanceof w,s=Array.prototype.slice.call(arguments,r?2:1);s.unshift(i(e)),r||(t=window.Parsley),(n=t).trigger.apply(n,_toConsumableArray(s))};e.extend(!0,O,{asyncValidators:{"default":{fn:function(e){return e.status>=200&&e.status<300},url:!1},reverse:{fn:function(e){return e.status<200||e.status>=300},url:!1}},addAsyncValidator:function(e,t,i,n){return O.asyncValidators[e]={fn:t,url:i||!1,options:n||{}},this}}),O.addValidator("remote",{requirementType:{"":"string",validator:"string",reverse:"boolean",options:"object"},validateString:function(t,i,n,r){var s,a,o={},l=n.validator||(!0===n.reverse?"reverse":"default");if("undefined"==typeof O.asyncValidators[l])throw new Error("Calling an undefined async validator: `"+l+"`");i=O.asyncValidators[l].url||i,i.indexOf("{value}")>-1?i=i.replace("{value}",encodeURIComponent(t)):o[r.element.getAttribute("name")||r.element.getAttribute("id")]=t;var u=e.extend(!0,n.options||{},O.asyncValidators[l].options);s=e.extend(!0,{},{url:i,data:o,type:"GET"},u),r.trigger("field:ajaxoptions",r,s),a=e.param(s),"undefined"==typeof O._remoteCache&&(O._remoteCache={});var d=O._remoteCache[a]=O._remoteCache[a]||e.ajax(s),h=function(){var t=O.asyncValidators[l].fn.call(r,d,i,n);return t||(t=e.Deferred().reject()),e.when(t)};return d.then(h,h)},priority:-1}),O.on("form:submit",function(){O._remoteCache={}}),l.prototype.addAsyncValidator=function(){return a.warnOnce("Accessing the method `addAsyncValidator` through an instance is deprecated. Simply call `Parsley.addAsyncValidator(...)`"),O.addAsyncValidator.apply(O,arguments)},O.addMessages("en",{defaultMessage:"This value seems to be invalid.",type:{email:"This value should be a valid email.",url:"This value should be a valid url.",number:"This value should be a valid number.",integer:"This value should be a valid integer.",digits:"This value should be digits.",alphanum:"This value should be alphanumeric."},notblank:"This value should not be blank.",required:"This value is required.",pattern:"This value seems to be invalid.",min:"This value should be greater than or equal to %s.",max:"This value should be lower than or equal to %s.",range:"This value should be between %s and %s.",minlength:"This value is too short. It should have %s characters or more.",maxlength:"This value is too long. It should have %s characters or fewer.",length:"This value length is invalid. It should be between %s and %s characters long.",mincheck:"You must select at least %s choices.",maxcheck:"You must select %s choices or fewer.",check:"You must select between %s and %s choices.",equalto:"This value should be the same."}),O.setLocale("en");var I=new n;I.install();var q=O;return q});
jQuery(document).ready(function(e){function a(e,a){l(e,a),e.find(a.container).first().show()}function n(a,n){if(n.tabs){var t=e("<div />",{"class":n.tabMenuClassName}).insertBefore(a.children(n.container).filter(":first"));a.children(n.container).each(function(i,r){var l=e("<button/>").html(e(this).children(n.header).html()).addClass(0==i?n.tabMenuItemActiveClassName:"").addClass("item"+i).addClass("btn btn-default").prop("type","button").on("click keypress",{container:a.children(n.container),fieldset:e(r)},function(){var t=e(this),i=t.parent().children().index(t);s(a,n,t,i)});n.tabIndex&&l.prop("tabindex",i),t.append(l)})}}function t(a,n){n.navigation&&a.children(n.container).each(function(t){var i=e("<div />").addClass("powermail_fieldwrap").addClass("powermail_tab_navigation").appendTo(e(this));t>0&&i.append(c(a,n)),t<a.children(n.container).length-1&&i.append(o(a,n))})}function i(a,n){e.fn.parsley&&"data-parsley-validate"===a.data("parsley-validate")&&a.parsley().subscribe("parsley:field:validated",function(){v(a,n),C(a,n)})}function r(a,n){n.openTabOnError&&e.fn.parsley&&e.listen("parsley:field:error",function(){setTimeout(function(){a.find("."+n.tabMenuClassName+" > ."+n.tabMenuItemErrorClassName+":first").click()},50)})}function s(a,n,t,i){$activeTab=b(a,n),$activeTab.removeClass(n.tabMenuItemActiveClassName),t.addClass(n.tabMenuItemActiveClassName),l(a,n),e(".powermail_fieldset",a).slice(i,i+1).show()}function l(e,a){e.children(a.container).hide()}function c(a,n){return e("<a />").prop("href","#").addClass("btn btn-warning").html("<").click(function(e){e.preventDefault(),u(a,n)})}function o(a,n){return e("<a />").prop("href","#").addClass("btn btn-primary pull-right").html(">").click(function(e){e.preventDefault(),d(a,n)})}function d(e,a){var n=m(e,a);$activeTab=b(e,a),$activeTab.removeClass(a.tabMenuItemActiveClassName).next().addClass(a.tabMenuItemActiveClassName),f(e,a,n+1)}function u(e,a){var n=m(e,a);$activeTab=b(e,a),$activeTab.removeClass(a.tabMenuItemActiveClassName).prev().addClass(a.tabMenuItemActiveClassName),f(e,a,n-1)}function f(e,a,n){l(e,a),e.find(".powermail_fieldset").slice(n,n+1).show()}function m(e,a){var n=p(e,a),t=n.index(b(e,a));return parseInt(t)}function p(e,a){return e.find("."+a.tabMenuClassName).children()}function b(e,a){var n=p(e,a);return n.filter("."+a.tabMenuItemActiveClassName)}function v(e,a){var n=p(e,a);n.removeClass(a.tabMenuItemErrorClassName)}function C(a,n){a.parsley().isValid()||a.find(".parsley-error").each(function(){var t=a.find(".powermail_fieldset").index(e(this).closest(".powermail_fieldset")),i=p(a,n),r=i.slice(t,t+1);r.addClass(n.tabMenuItemErrorClassName)})}e.fn.powermailTabs=function(e){"use strict";var s=jQuery(this);e=jQuery.extend({container:"fieldset",header:"legend",tabs:!0,navigation:!0,openTabOnError:!0,tabIndex:!0,tabMenuClassName:"btn-group",tabMenuItemActiveClassName:"btn-primary",tabMenuItemErrorClassName:"btn-danger"},e),a(s,e),n(s,e),t(s,e),i(s,e),r(s,e)}});
function PowermailForm(e){"use strict";this.initialize=function(){t(),a(),i(),r(),o(),n(),f(),l()};var t=function(){e.fn.powermailTabs&&e(".powermail_morestep").each(function(){e(this).powermailTabs()})},a=function(){e("form[data-powermail-ajax]").length&&p()},i=function(){if(e('*[data-powermail-location="prefill"]').length&&navigator.geolocation){e(this);navigator.geolocation.getCurrentPosition(function(t){var a=t.coords.latitude,i=t.coords.longitude,r=C()+"/index.php?eID=powermailEidGetLocation";jQuery.ajax({url:r,data:"lat="+a+"&lng="+i,cache:!1,success:function(t){t&&e('*[data-powermail-location="prefill"]').val(t)}})})}},r=function(){e.fn.datetimepicker&&e(".powermail_date").each(function(){var t=e(this);if("date"===t.prop("type")||"datetime-local"===t.prop("type")||"time"===t.prop("type")){if(!t.data("datepicker-force")){if(e(this).data("date-value")){var a=g(e(this).data("date-value"),e(this).data("datepicker-format"),t.prop("type"));null!==a&&e(this).val(a)}return}t.prop("type","text"),t.val(e(this).data("date-value"))}var i=!0,r=!0;"date"===t.data("datepicker-settings")?r=!1:"time"===t.data("datepicker-settings")&&(i=!1),t.datetimepicker({format:t.data("datepicker-format"),timepicker:r,datepicker:i,lang:"en",i18n:{en:{months:t.data("datepicker-months").split(","),dayOfWeek:t.data("datepicker-days").split(",")}}})})},o=function(){e(".powermail_all_type_password.powermail_all_value").html("********")},n=function(){e.fn.parsley&&e(".powermail_reset").on("click","",function(){e('form[data-parsley-validate="data-parsley-validate"]').parsley().reset()})},l=function(){window.Parsley&&(x(),b())},p=function(){var t,a=!1;e(document).on("submit","form[data-powermail-ajax]",function(i){var r=e(this),o=r.closest(".tx-powermail");r.data("powermail-ajax-uri")&&(t=r.data("powermail-ajax-uri"));var n=r.data("powermail-form");a||(e.ajax({type:"POST",url:r.prop("action"),data:new FormData(r.get(0)),contentType:!1,processData:!1,beforeSend:function(){s(r)},complete:function(){d(r),f(),c(o)},success:function(i){var o=e('*[data-powermail-form="'+n+'"]:first',i);o.length?(e('*[data-powermail-form="'+n+'"]:first').closest(".tx-powermail").html(o),e.fn.powermailTabs&&e(".powermail_morestep").powermailTabs(),e.fn.parsley&&e('form[data-parsley-validate="data-parsley-validate"]').parsley(),w()):(t?D(t):r.submit(),a=!0)}}),i.preventDefault())})},s=function(t){d(t),e(".powermail_submit",t).length?e(".powermail_submit",t).parent().append(y()):t.closest(".tx-powermail").append(y())},d=function(e){e.closest(".tx-powermail").find(".powermail_progressbar").remove()},c=function(t){var a=e.Event("submitted.powermail.form");t.trigger(a)},f=function(){e(".powermail_fieldwrap_file").find(".deleteAllFiles").each(function(){u(e(this).closest(".powermail_fieldwrap_file").find('input[type="file"]'))}),e(".deleteAllFiles").click(function(){m(e(this).closest(".powermail_fieldwrap_file").find('input[type="hidden"]')),e(this).closest("ul").fadeOut(function(){e(this).remove()})})},u=function(e){e.prop("disabled","disabled").addClass("hide").prop("type","hidden")},m=function(e){e.prop("disabled",!1).removeClass("hide").prop("type","file")},w=function(){e("img.powermail_captchaimage").each(function(){var t=h(e(this).prop("src"));e(this).prop("src",t+"?hash="+v(5))})},h=function(e){var t=e.split("?");return t[0]},v=function(e){for(var t="",a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",i=0;i<e;i++)t+=a.charAt(Math.floor(Math.random()*a.length));return t},g=function(e,t,a){var i=Date.parseDate(e,t);if(null===i)return null;var r=new Date(i),o=r.getFullYear()+"-";o+=("0"+(r.getMonth()+1)).slice(-2)+"-",o+=("0"+r.getDate()).slice(-2);var n=("0"+r.getHours()).slice(-2)+":"+("0"+r.getMinutes()).slice(-2),l=o+"T"+n;return"date"===a?o:"datetime-local"===a?l:"time"===a?n:null},y=function(){return e("<div />").addClass("powermail_progressbar").html(e("<div />").addClass("powermail_progress").html(e("<div />").addClass("powermail_progress_inner")))},_=function(e){for(var t=e.get(0),a=0,i=0;i<t.files.length;i++){var r=t.files[i];r.size>a&&(a=r.size)}return parseInt(a)},x=function(){window.Parsley.addValidator("powermailfilesize",function(t,a){if(a.indexOf(",")!==-1){var i=a.split(","),r=parseInt(i[0]),o=e('*[name="tx_powermail_pi1[field]['+i[1]+'][]"]');if(o.length&&_(o)>r)return!1}return!0},32).addMessage("en","powermailfilesize","Error")},b=function(){window.Parsley.addValidator("powermailfileextensions",function(t,a){var i=e('*[name="tx_powermail_pi1[field]['+a+'][]"]');return!i.length||k(j(t),i.prop("accept"))},32).addMessage("en","powermailfileextensions","Error")},k=function(e,t){return t.indexOf("."+e)!==-1},j=function(e){return e.split(".").pop().toLowerCase()},D=function(e){e.indexOf("http")!==-1?window.location=e:window.location.pathname=e},C=function(){var t;return t=e("base").length>0?jQuery("base").prop("href"):"https:"!=window.location.protocol?"http://"+window.location.hostname:"https://"+window.location.hostname}}jQuery(document).ready(function(e){"use strict";var t=new window.PowermailForm(e);t.initialize()});
/*!
  * Bootstrap util.js v4.3.1 (https://getbootstrap.com/)
  * Copyright 2011-2019 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
  */
(function (global, factory) {
  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery')) :
  typeof define === 'function' && define.amd ? define(['jquery'], factory) :
  (global = global || self, global.Util = factory(global.jQuery));
}(this, function ($) { 'use strict';

  $ = $ && $.hasOwnProperty('default') ? $['default'] : $;

  /**
   * --------------------------------------------------------------------------
   * Bootstrap (v4.3.1): util.js
   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
   * --------------------------------------------------------------------------
   */
  /**
   * ------------------------------------------------------------------------
   * Private TransitionEnd Helpers
   * ------------------------------------------------------------------------
   */

  var TRANSITION_END = 'transitionend';
  var MAX_UID = 1000000;
  var MILLISECONDS_MULTIPLIER = 1000; // Shoutout AngusCroll (https://goo.gl/pxwQGp)

  function toType(obj) {
    return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase();
  }

  function getSpecialTransitionEndEvent() {
    return {
      bindType: TRANSITION_END,
      delegateType: TRANSITION_END,
      handle: function handle(event) {
        if ($(event.target).is(this)) {
          return event.handleObj.handler.apply(this, arguments); // eslint-disable-line prefer-rest-params
        }

        return undefined; // eslint-disable-line no-undefined
      }
    };
  }

  function transitionEndEmulator(duration) {
    var _this = this;

    var called = false;
    $(this).one(Util.TRANSITION_END, function () {
      called = true;
    });
    setTimeout(function () {
      if (!called) {
        Util.triggerTransitionEnd(_this);
      }
    }, duration);
    return this;
  }

  function setTransitionEndSupport() {
    $.fn.emulateTransitionEnd = transitionEndEmulator;
    $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent();
  }
  /**
   * --------------------------------------------------------------------------
   * Public Util Api
   * --------------------------------------------------------------------------
   */


  var Util = {
    TRANSITION_END: 'bsTransitionEnd',
    getUID: function getUID(prefix) {
      do {
        // eslint-disable-next-line no-bitwise
        prefix += ~~(Math.random() * MAX_UID); // "~~" acts like a faster Math.floor() here
      } while (document.getElementById(prefix));

      return prefix;
    },
    getSelectorFromElement: function getSelectorFromElement(element) {
      var selector = element.getAttribute('data-target');

      if (!selector || selector === '#') {
        var hrefAttr = element.getAttribute('href');
        selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : '';
      }

      try {
        return document.querySelector(selector) ? selector : null;
      } catch (err) {
        return null;
      }
    },
    getTransitionDurationFromElement: function getTransitionDurationFromElement(element) {
      if (!element) {
        return 0;
      } // Get transition-duration of the element


      var transitionDuration = $(element).css('transition-duration');
      var transitionDelay = $(element).css('transition-delay');
      var floatTransitionDuration = parseFloat(transitionDuration);
      var floatTransitionDelay = parseFloat(transitionDelay); // Return 0 if element or transition duration is not found

      if (!floatTransitionDuration && !floatTransitionDelay) {
        return 0;
      } // If multiple durations are defined, take the first


      transitionDuration = transitionDuration.split(',')[0];
      transitionDelay = transitionDelay.split(',')[0];
      return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;
    },
    reflow: function reflow(element) {
      return element.offsetHeight;
    },
    triggerTransitionEnd: function triggerTransitionEnd(element) {
      $(element).trigger(TRANSITION_END);
    },
    // TODO: Remove in v5
    supportsTransitionEnd: function supportsTransitionEnd() {
      return Boolean(TRANSITION_END);
    },
    isElement: function isElement(obj) {
      return (obj[0] || obj).nodeType;
    },
    typeCheckConfig: function typeCheckConfig(componentName, config, configTypes) {
      for (var property in configTypes) {
        if (Object.prototype.hasOwnProperty.call(configTypes, property)) {
          var expectedTypes = configTypes[property];
          var value = config[property];
          var valueType = value && Util.isElement(value) ? 'element' : toType(value);

          if (!new RegExp(expectedTypes).test(valueType)) {
            throw new Error(componentName.toUpperCase() + ": " + ("Option \"" + property + "\" provided type \"" + valueType + "\" ") + ("but expected type \"" + expectedTypes + "\"."));
          }
        }
      }
    },
    findShadowRoot: function findShadowRoot(element) {
      if (!document.documentElement.attachShadow) {
        return null;
      } // Can find the shadow root otherwise it'll return the document


      if (typeof element.getRootNode === 'function') {
        var root = element.getRootNode();
        return root instanceof ShadowRoot ? root : null;
      }

      if (element instanceof ShadowRoot) {
        return element;
      } // when we don't find a shadow root


      if (!element.parentNode) {
        return null;
      }

      return Util.findShadowRoot(element.parentNode);
    }
  };
  setTransitionEndSupport();

  return Util;

}));
//# sourceMappingURL=util.js.map

/*!
  * Bootstrap modal.js v4.3.1 (https://getbootstrap.com/)
  * Copyright 2011-2019 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
  */
(function (global, factory) {
  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery'), require('./util.js')) :
  typeof define === 'function' && define.amd ? define(['jquery', './util.js'], factory) :
  (global = global || self, global.Modal = factory(global.jQuery, global.Util));
}(this, function ($, Util) { 'use strict';

  $ = $ && $.hasOwnProperty('default') ? $['default'] : $;
  Util = Util && Util.hasOwnProperty('default') ? Util['default'] : Util;

  function _defineProperties(target, props) {
    for (var i = 0; i < props.length; i++) {
      var descriptor = props[i];
      descriptor.enumerable = descriptor.enumerable || false;
      descriptor.configurable = true;
      if ("value" in descriptor) descriptor.writable = true;
      Object.defineProperty(target, descriptor.key, descriptor);
    }
  }

  function _createClass(Constructor, protoProps, staticProps) {
    if (protoProps) _defineProperties(Constructor.prototype, protoProps);
    if (staticProps) _defineProperties(Constructor, staticProps);
    return Constructor;
  }

  function _defineProperty(obj, key, value) {
    if (key in obj) {
      Object.defineProperty(obj, key, {
        value: value,
        enumerable: true,
        configurable: true,
        writable: true
      });
    } else {
      obj[key] = value;
    }

    return obj;
  }

  function _objectSpread(target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i] != null ? arguments[i] : {};
      var ownKeys = Object.keys(source);

      if (typeof Object.getOwnPropertySymbols === 'function') {
        ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {
          return Object.getOwnPropertyDescriptor(source, sym).enumerable;
        }));
      }

      ownKeys.forEach(function (key) {
        _defineProperty(target, key, source[key]);
      });
    }

    return target;
  }

  /**
   * ------------------------------------------------------------------------
   * Constants
   * ------------------------------------------------------------------------
   */

  var NAME = 'modal';
  var VERSION = '4.3.1';
  var DATA_KEY = 'bs.modal';
  var EVENT_KEY = "." + DATA_KEY;
  var DATA_API_KEY = '.data-api';
  var JQUERY_NO_CONFLICT = $.fn[NAME];
  var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key

  var Default = {
    backdrop: true,
    keyboard: true,
    focus: true,
    show: true
  };
  var DefaultType = {
    backdrop: '(boolean|string)',
    keyboard: 'boolean',
    focus: 'boolean',
    show: 'boolean'
  };
  var Event = {
    HIDE: "hide" + EVENT_KEY,
    HIDDEN: "hidden" + EVENT_KEY,
    SHOW: "show" + EVENT_KEY,
    SHOWN: "shown" + EVENT_KEY,
    FOCUSIN: "focusin" + EVENT_KEY,
    RESIZE: "resize" + EVENT_KEY,
    CLICK_DISMISS: "click.dismiss" + EVENT_KEY,
    KEYDOWN_DISMISS: "keydown.dismiss" + EVENT_KEY,
    MOUSEUP_DISMISS: "mouseup.dismiss" + EVENT_KEY,
    MOUSEDOWN_DISMISS: "mousedown.dismiss" + EVENT_KEY,
    CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
  };
  var ClassName = {
    SCROLLABLE: 'modal-dialog-scrollable',
    SCROLLBAR_MEASURER: 'modal-scrollbar-measure',
    BACKDROP: 'modal-backdrop',
    OPEN: 'modal-open',
    FADE: 'fade',
    SHOW: 'show'
  };
  var Selector = {
    DIALOG: '.modal-dialog',
    MODAL_BODY: '.modal-body',
    DATA_TOGGLE: '[data-toggle="modal"]',
    DATA_DISMISS: '[data-dismiss="modal"]',
    FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',
    STICKY_CONTENT: '.sticky-top'
    /**
     * ------------------------------------------------------------------------
     * Class Definition
     * ------------------------------------------------------------------------
     */

  };

  var Modal =
  /*#__PURE__*/
  function () {
    function Modal(element, config) {
      this._config = this._getConfig(config);
      this._element = element;
      this._dialog = element.querySelector(Selector.DIALOG);
      this._backdrop = null;
      this._isShown = false;
      this._isBodyOverflowing = false;
      this._ignoreBackdropClick = false;
      this._isTransitioning = false;
      this._scrollbarWidth = 0;
    } // Getters


    var _proto = Modal.prototype;

    // Public
    _proto.toggle = function toggle(relatedTarget) {
      return this._isShown ? this.hide() : this.show(relatedTarget);
    };

    _proto.show = function show(relatedTarget) {
      var _this = this;

      if (this._isShown || this._isTransitioning) {
        return;
      }

      if ($(this._element).hasClass(ClassName.FADE)) {
        this._isTransitioning = true;
      }

      var showEvent = $.Event(Event.SHOW, {
        relatedTarget: relatedTarget
      });
      $(this._element).trigger(showEvent);

      if (this._isShown || showEvent.isDefaultPrevented()) {
        return;
      }

      this._isShown = true;

      this._checkScrollbar();

      this._setScrollbar();

      this._adjustDialog();

      this._setEscapeEvent();

      this._setResizeEvent();

      $(this._element).on(Event.CLICK_DISMISS, Selector.DATA_DISMISS, function (event) {
        return _this.hide(event);
      });
      $(this._dialog).on(Event.MOUSEDOWN_DISMISS, function () {
        $(_this._element).one(Event.MOUSEUP_DISMISS, function (event) {
          if ($(event.target).is(_this._element)) {
            _this._ignoreBackdropClick = true;
          }
        });
      });

      this._showBackdrop(function () {
        return _this._showElement(relatedTarget);
      });
    };

    _proto.hide = function hide(event) {
      var _this2 = this;

      if (event) {
        event.preventDefault();
      }

      if (!this._isShown || this._isTransitioning) {
        return;
      }

      var hideEvent = $.Event(Event.HIDE);
      $(this._element).trigger(hideEvent);

      if (!this._isShown || hideEvent.isDefaultPrevented()) {
        return;
      }

      this._isShown = false;
      var transition = $(this._element).hasClass(ClassName.FADE);

      if (transition) {
        this._isTransitioning = true;
      }

      this._setEscapeEvent();

      this._setResizeEvent();

      $(document).off(Event.FOCUSIN);
      $(this._element).removeClass(ClassName.SHOW);
      $(this._element).off(Event.CLICK_DISMISS);
      $(this._dialog).off(Event.MOUSEDOWN_DISMISS);

      if (transition) {
        var transitionDuration = Util.getTransitionDurationFromElement(this._element);
        $(this._element).one(Util.TRANSITION_END, function (event) {
          return _this2._hideModal(event);
        }).emulateTransitionEnd(transitionDuration);
      } else {
        this._hideModal();
      }
    };

    _proto.dispose = function dispose() {
      [window, this._element, this._dialog].forEach(function (htmlElement) {
        return $(htmlElement).off(EVENT_KEY);
      });
      /**
       * `document` has 2 events `Event.FOCUSIN` and `Event.CLICK_DATA_API`
       * Do not move `document` in `htmlElements` array
       * It will remove `Event.CLICK_DATA_API` event that should remain
       */

      $(document).off(Event.FOCUSIN);
      $.removeData(this._element, DATA_KEY);
      this._config = null;
      this._element = null;
      this._dialog = null;
      this._backdrop = null;
      this._isShown = null;
      this._isBodyOverflowing = null;
      this._ignoreBackdropClick = null;
      this._isTransitioning = null;
      this._scrollbarWidth = null;
    };

    _proto.handleUpdate = function handleUpdate() {
      this._adjustDialog();
    } // Private
    ;

    _proto._getConfig = function _getConfig(config) {
      config = _objectSpread({}, Default, config);
      Util.typeCheckConfig(NAME, config, DefaultType);
      return config;
    };

    _proto._showElement = function _showElement(relatedTarget) {
      var _this3 = this;

      var transition = $(this._element).hasClass(ClassName.FADE);

      if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {
        // Don't move modal's DOM position
        document.body.appendChild(this._element);
      }

      this._element.style.display = 'block';

      this._element.removeAttribute('aria-hidden');

      this._element.setAttribute('aria-modal', true);

      if ($(this._dialog).hasClass(ClassName.SCROLLABLE)) {
        this._dialog.querySelector(Selector.MODAL_BODY).scrollTop = 0;
      } else {
        this._element.scrollTop = 0;
      }

      if (transition) {
        Util.reflow(this._element);
      }

      $(this._element).addClass(ClassName.SHOW);

      if (this._config.focus) {
        this._enforceFocus();
      }

      var shownEvent = $.Event(Event.SHOWN, {
        relatedTarget: relatedTarget
      });

      var transitionComplete = function transitionComplete() {
        if (_this3._config.focus) {
          _this3._element.focus();
        }

        _this3._isTransitioning = false;
        $(_this3._element).trigger(shownEvent);
      };

      if (transition) {
        var transitionDuration = Util.getTransitionDurationFromElement(this._dialog);
        $(this._dialog).one(Util.TRANSITION_END, transitionComplete).emulateTransitionEnd(transitionDuration);
      } else {
        transitionComplete();
      }
    };

    _proto._enforceFocus = function _enforceFocus() {
      var _this4 = this;

      $(document).off(Event.FOCUSIN) // Guard against infinite focus loop
      .on(Event.FOCUSIN, function (event) {
        if (document !== event.target && _this4._element !== event.target && $(_this4._element).has(event.target).length === 0) {
          _this4._element.focus();
        }
      });
    };

    _proto._setEscapeEvent = function _setEscapeEvent() {
      var _this5 = this;

      if (this._isShown && this._config.keyboard) {
        $(this._element).on(Event.KEYDOWN_DISMISS, function (event) {
          if (event.which === ESCAPE_KEYCODE) {
            event.preventDefault();

            _this5.hide();
          }
        });
      } else if (!this._isShown) {
        $(this._element).off(Event.KEYDOWN_DISMISS);
      }
    };

    _proto._setResizeEvent = function _setResizeEvent() {
      var _this6 = this;

      if (this._isShown) {
        $(window).on(Event.RESIZE, function (event) {
          return _this6.handleUpdate(event);
        });
      } else {
        $(window).off(Event.RESIZE);
      }
    };

    _proto._hideModal = function _hideModal() {
      var _this7 = this;

      this._element.style.display = 'none';

      this._element.setAttribute('aria-hidden', true);

      this._element.removeAttribute('aria-modal');

      this._isTransitioning = false;

      this._showBackdrop(function () {
        $(document.body).removeClass(ClassName.OPEN);

        _this7._resetAdjustments();

        _this7._resetScrollbar();

        $(_this7._element).trigger(Event.HIDDEN);
      });
    };

    _proto._removeBackdrop = function _removeBackdrop() {
      if (this._backdrop) {
        $(this._backdrop).remove();
        this._backdrop = null;
      }
    };

    _proto._showBackdrop = function _showBackdrop(callback) {
      var _this8 = this;

      var animate = $(this._element).hasClass(ClassName.FADE) ? ClassName.FADE : '';

      if (this._isShown && this._config.backdrop) {
        this._backdrop = document.createElement('div');
        this._backdrop.className = ClassName.BACKDROP;

        if (animate) {
          this._backdrop.classList.add(animate);
        }

        $(this._backdrop).appendTo(document.body);
        $(this._element).on(Event.CLICK_DISMISS, function (event) {
          if (_this8._ignoreBackdropClick) {
            _this8._ignoreBackdropClick = false;
            return;
          }

          if (event.target !== event.currentTarget) {
            return;
          }

          if (_this8._config.backdrop === 'static') {
            _this8._element.focus();
          } else {
            _this8.hide();
          }
        });

        if (animate) {
          Util.reflow(this._backdrop);
        }

        $(this._backdrop).addClass(ClassName.SHOW);

        if (!callback) {
          return;
        }

        if (!animate) {
          callback();
          return;
        }

        var backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop);
        $(this._backdrop).one(Util.TRANSITION_END, callback).emulateTransitionEnd(backdropTransitionDuration);
      } else if (!this._isShown && this._backdrop) {
        $(this._backdrop).removeClass(ClassName.SHOW);

        var callbackRemove = function callbackRemove() {
          _this8._removeBackdrop();

          if (callback) {
            callback();
          }
        };

        if ($(this._element).hasClass(ClassName.FADE)) {
          var _backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop);

          $(this._backdrop).one(Util.TRANSITION_END, callbackRemove).emulateTransitionEnd(_backdropTransitionDuration);
        } else {
          callbackRemove();
        }
      } else if (callback) {
        callback();
      }
    } // ----------------------------------------------------------------------
    // the following methods are used to handle overflowing modals
    // todo (fat): these should probably be refactored out of modal.js
    // ----------------------------------------------------------------------
    ;

    _proto._adjustDialog = function _adjustDialog() {
      var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;

      if (!this._isBodyOverflowing && isModalOverflowing) {
        this._element.style.paddingLeft = this._scrollbarWidth + "px";
      }

      if (this._isBodyOverflowing && !isModalOverflowing) {
        this._element.style.paddingRight = this._scrollbarWidth + "px";
      }
    };

    _proto._resetAdjustments = function _resetAdjustments() {
      this._element.style.paddingLeft = '';
      this._element.style.paddingRight = '';
    };

    _proto._checkScrollbar = function _checkScrollbar() {
      var rect = document.body.getBoundingClientRect();
      this._isBodyOverflowing = rect.left + rect.right < window.innerWidth;
      this._scrollbarWidth = this._getScrollbarWidth();
    };

    _proto._setScrollbar = function _setScrollbar() {
      var _this9 = this;

      if (this._isBodyOverflowing) {
        // Note: DOMNode.style.paddingRight returns the actual value or '' if not set
        //   while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set
        var fixedContent = [].slice.call(document.querySelectorAll(Selector.FIXED_CONTENT));
        var stickyContent = [].slice.call(document.querySelectorAll(Selector.STICKY_CONTENT)); // Adjust fixed content padding

        $(fixedContent).each(function (index, element) {
          var actualPadding = element.style.paddingRight;
          var calculatedPadding = $(element).css('padding-right');
          $(element).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + _this9._scrollbarWidth + "px");
        }); // Adjust sticky content margin

        $(stickyContent).each(function (index, element) {
          var actualMargin = element.style.marginRight;
          var calculatedMargin = $(element).css('margin-right');
          $(element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) - _this9._scrollbarWidth + "px");
        }); // Adjust body padding

        var actualPadding = document.body.style.paddingRight;
        var calculatedPadding = $(document.body).css('padding-right');
        $(document.body).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + this._scrollbarWidth + "px");
      }

      $(document.body).addClass(ClassName.OPEN);
    };

    _proto._resetScrollbar = function _resetScrollbar() {
      // Restore fixed content padding
      var fixedContent = [].slice.call(document.querySelectorAll(Selector.FIXED_CONTENT));
      $(fixedContent).each(function (index, element) {
        var padding = $(element).data('padding-right');
        $(element).removeData('padding-right');
        element.style.paddingRight = padding ? padding : '';
      }); // Restore sticky content

      var elements = [].slice.call(document.querySelectorAll("" + Selector.STICKY_CONTENT));
      $(elements).each(function (index, element) {
        var margin = $(element).data('margin-right');

        if (typeof margin !== 'undefined') {
          $(element).css('margin-right', margin).removeData('margin-right');
        }
      }); // Restore body padding

      var padding = $(document.body).data('padding-right');
      $(document.body).removeData('padding-right');
      document.body.style.paddingRight = padding ? padding : '';
    };

    _proto._getScrollbarWidth = function _getScrollbarWidth() {
      // thx d.walsh
      var scrollDiv = document.createElement('div');
      scrollDiv.className = ClassName.SCROLLBAR_MEASURER;
      document.body.appendChild(scrollDiv);
      var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;
      document.body.removeChild(scrollDiv);
      return scrollbarWidth;
    } // Static
    ;

    Modal._jQueryInterface = function _jQueryInterface(config, relatedTarget) {
      return this.each(function () {
        var data = $(this).data(DATA_KEY);

        var _config = _objectSpread({}, Default, $(this).data(), typeof config === 'object' && config ? config : {});

        if (!data) {
          data = new Modal(this, _config);
          $(this).data(DATA_KEY, data);
        }

        if (typeof config === 'string') {
          if (typeof data[config] === 'undefined') {
            throw new TypeError("No method named \"" + config + "\"");
          }

          data[config](relatedTarget);
        } else if (_config.show) {
          data.show(relatedTarget);
        }
      });
    };

    _createClass(Modal, null, [{
      key: "VERSION",
      get: function get() {
        return VERSION;
      }
    }, {
      key: "Default",
      get: function get() {
        return Default;
      }
    }]);

    return Modal;
  }();
  /**
   * ------------------------------------------------------------------------
   * Data Api implementation
   * ------------------------------------------------------------------------
   */


  $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
    var _this10 = this;

    var target;
    var selector = Util.getSelectorFromElement(this);

    if (selector) {
      target = document.querySelector(selector);
    }

    var config = $(target).data(DATA_KEY) ? 'toggle' : _objectSpread({}, $(target).data(), $(this).data());

    if (this.tagName === 'A' || this.tagName === 'AREA') {
      event.preventDefault();
    }

    var $target = $(target).one(Event.SHOW, function (showEvent) {
      if (showEvent.isDefaultPrevented()) {
        // Only register focus restorer if modal will actually get shown
        return;
      }

      $target.one(Event.HIDDEN, function () {
        if ($(_this10).is(':visible')) {
          _this10.focus();
        }
      });
    });

    Modal._jQueryInterface.call($(target), config, this);
  });
  /**
   * ------------------------------------------------------------------------
   * jQuery
   * ------------------------------------------------------------------------
   */

  $.fn[NAME] = Modal._jQueryInterface;
  $.fn[NAME].Constructor = Modal;

  $.fn[NAME].noConflict = function () {
    $.fn[NAME] = JQUERY_NO_CONFLICT;
    return Modal._jQueryInterface;
  };

  return Modal;

}));
//# sourceMappingURL=modal.js.map

/*
     _ _      _       _
 ___| (_) ___| | __  (_)___
/ __| | |/ __| |/ /  | / __|
\__ \ | | (__|   < _ | \__ \
|___/_|_|\___|_|\_(_)/ |___/
                   |__/

 Version: 1.8.1
  Author: Ken Wheeler
 Website: http://kenwheeler.github.io
    Docs: http://kenwheeler.github.io/slick
    Repo: http://github.com/kenwheeler/slick
  Issues: http://github.com/kenwheeler/slick/issues

 */
/* global window, document, define, jQuery, setInterval, clearInterval */
;(function(factory) {
    'use strict';
    if (typeof define === 'function' && define.amd) {
        define(['jquery'], factory);
    } else if (typeof exports !== 'undefined') {
        module.exports = factory(require('jquery'));
    } else {
        factory(jQuery);
    }

}(function($) {
    'use strict';
    var Slick = window.Slick || {};

    Slick = (function() {

        var instanceUid = 0;

        function Slick(element, settings) {

            var _ = this, dataSettings;

            _.defaults = {
                accessibility: true,
                adaptiveHeight: false,
                appendArrows: $(element),
                appendDots: $(element),
                arrows: true,
                asNavFor: null,
                prevArrow: '<button class="slick-prev" aria-label="Previous" type="button">Previous</button>',
                nextArrow: '<button class="slick-next" aria-label="Next" type="button">Next</button>',
                autoplay: false,
                autoplaySpeed: 3000,
                centerMode: false,
                centerPadding: '50px',
                cssEase: 'ease',
                customPaging: function(slider, i) {
                    return $('<button type="button" />').text(i + 1);
                },
                dots: false,
                dotsClass: 'slick-dots',
                draggable: true,
                easing: 'linear',
                edgeFriction: 0.35,
                fade: false,
                focusOnSelect: false,
                focusOnChange: false,
                infinite: true,
                initialSlide: 0,
                lazyLoad: 'ondemand',
                mobileFirst: false,
                pauseOnHover: true,
                pauseOnFocus: true,
                pauseOnDotsHover: false,
                respondTo: 'window',
                responsive: null,
                rows: 1,
                rtl: false,
                slide: '',
                slidesPerRow: 1,
                slidesToShow: 1,
                slidesToScroll: 1,
                speed: 500,
                swipe: true,
                swipeToSlide: false,
                touchMove: true,
                touchThreshold: 5,
                useCSS: true,
                useTransform: true,
                variableWidth: false,
                vertical: false,
                verticalSwiping: false,
                waitForAnimate: true,
                zIndex: 1000
            };

            _.initials = {
                animating: false,
                dragging: false,
                autoPlayTimer: null,
                currentDirection: 0,
                currentLeft: null,
                currentSlide: 0,
                direction: 1,
                $dots: null,
                listWidth: null,
                listHeight: null,
                loadIndex: 0,
                $nextArrow: null,
                $prevArrow: null,
                scrolling: false,
                slideCount: null,
                slideWidth: null,
                $slideTrack: null,
                $slides: null,
                sliding: false,
                slideOffset: 0,
                swipeLeft: null,
                swiping: false,
                $list: null,
                touchObject: {},
                transformsEnabled: false,
                unslicked: false
            };

            $.extend(_, _.initials);

            _.activeBreakpoint = null;
            _.animType = null;
            _.animProp = null;
            _.breakpoints = [];
            _.breakpointSettings = [];
            _.cssTransitions = false;
            _.focussed = false;
            _.interrupted = false;
            _.hidden = 'hidden';
            _.paused = true;
            _.positionProp = null;
            _.respondTo = null;
            _.rowCount = 1;
            _.shouldClick = true;
            _.$slider = $(element);
            _.$slidesCache = null;
            _.transformType = null;
            _.transitionType = null;
            _.visibilityChange = 'visibilitychange';
            _.windowWidth = 0;
            _.windowTimer = null;

            dataSettings = $(element).data('slick') || {};

            _.options = $.extend({}, _.defaults, settings, dataSettings);

            _.currentSlide = _.options.initialSlide;

            _.originalSettings = _.options;

            if (typeof document.mozHidden !== 'undefined') {
                _.hidden = 'mozHidden';
                _.visibilityChange = 'mozvisibilitychange';
            } else if (typeof document.webkitHidden !== 'undefined') {
                _.hidden = 'webkitHidden';
                _.visibilityChange = 'webkitvisibilitychange';
            }

            _.autoPlay = $.proxy(_.autoPlay, _);
            _.autoPlayClear = $.proxy(_.autoPlayClear, _);
            _.autoPlayIterator = $.proxy(_.autoPlayIterator, _);
            _.changeSlide = $.proxy(_.changeSlide, _);
            _.clickHandler = $.proxy(_.clickHandler, _);
            _.selectHandler = $.proxy(_.selectHandler, _);
            _.setPosition = $.proxy(_.setPosition, _);
            _.swipeHandler = $.proxy(_.swipeHandler, _);
            _.dragHandler = $.proxy(_.dragHandler, _);
            _.keyHandler = $.proxy(_.keyHandler, _);

            _.instanceUid = instanceUid++;

            // A simple way to check for HTML strings
            // Strict HTML recognition (must start with <)
            // Extracted from jQuery v1.11 source
            _.htmlExpr = /^(?:\s*(<[\w\W]+>)[^>]*)$/;


            _.registerBreakpoints();
            _.init(true);

        }

        return Slick;

    }());

    Slick.prototype.activateADA = function() {
        var _ = this;

        _.$slideTrack.find('.slick-active').attr({
            'aria-hidden': 'false'
        }).find('a, input, button, select').attr({
            'tabindex': '0'
        });

    };

    Slick.prototype.addSlide = Slick.prototype.slickAdd = function(markup, index, addBefore) {

        var _ = this;

        if (typeof(index) === 'boolean') {
            addBefore = index;
            index = null;
        } else if (index < 0 || (index >= _.slideCount)) {
            return false;
        }

        _.unload();

        if (typeof(index) === 'number') {
            if (index === 0 && _.$slides.length === 0) {
                $(markup).appendTo(_.$slideTrack);
            } else if (addBefore) {
                $(markup).insertBefore(_.$slides.eq(index));
            } else {
                $(markup).insertAfter(_.$slides.eq(index));
            }
        } else {
            if (addBefore === true) {
                $(markup).prependTo(_.$slideTrack);
            } else {
                $(markup).appendTo(_.$slideTrack);
            }
        }

        _.$slides = _.$slideTrack.children(this.options.slide);

        _.$slideTrack.children(this.options.slide).detach();

        _.$slideTrack.append(_.$slides);

        _.$slides.each(function(index, element) {
            $(element).attr('data-slick-index', index);
        });

        _.$slidesCache = _.$slides;

        _.reinit();

    };

    Slick.prototype.animateHeight = function() {
        var _ = this;
        if (_.options.slidesToShow === 1 && _.options.adaptiveHeight === true && _.options.vertical === false) {
            var targetHeight = _.$slides.eq(_.currentSlide).outerHeight(true);
            _.$list.animate({
                height: targetHeight
            }, _.options.speed);
        }
    };

    Slick.prototype.animateSlide = function(targetLeft, callback) {

        var animProps = {},
            _ = this;

        _.animateHeight();

        if (_.options.rtl === true && _.options.vertical === false) {
            targetLeft = -targetLeft;
        }
        if (_.transformsEnabled === false) {
            if (_.options.vertical === false) {
                _.$slideTrack.animate({
                    left: targetLeft
                }, _.options.speed, _.options.easing, callback);
            } else {
                _.$slideTrack.animate({
                    top: targetLeft
                }, _.options.speed, _.options.easing, callback);
            }

        } else {

            if (_.cssTransitions === false) {
                if (_.options.rtl === true) {
                    _.currentLeft = -(_.currentLeft);
                }
                $({
                    animStart: _.currentLeft
                }).animate({
                    animStart: targetLeft
                }, {
                    duration: _.options.speed,
                    easing: _.options.easing,
                    step: function(now) {
                        now = Math.ceil(now);
                        if (_.options.vertical === false) {
                            animProps[_.animType] = 'translate(' +
                                now + 'px, 0px)';
                            _.$slideTrack.css(animProps);
                        } else {
                            animProps[_.animType] = 'translate(0px,' +
                                now + 'px)';
                            _.$slideTrack.css(animProps);
                        }
                    },
                    complete: function() {
                        if (callback) {
                            callback.call();
                        }
                    }
                });

            } else {

                _.applyTransition();
                targetLeft = Math.ceil(targetLeft);

                if (_.options.vertical === false) {
                    animProps[_.animType] = 'translate3d(' + targetLeft + 'px, 0px, 0px)';
                } else {
                    animProps[_.animType] = 'translate3d(0px,' + targetLeft + 'px, 0px)';
                }
                _.$slideTrack.css(animProps);

                if (callback) {
                    setTimeout(function() {

                        _.disableTransition();

                        callback.call();
                    }, _.options.speed);
                }

            }

        }

    };

    Slick.prototype.getNavTarget = function() {

        var _ = this,
            asNavFor = _.options.asNavFor;

        if ( asNavFor && asNavFor !== null ) {
            asNavFor = $(asNavFor).not(_.$slider);
        }

        return asNavFor;

    };

    Slick.prototype.asNavFor = function(index) {

        var _ = this,
            asNavFor = _.getNavTarget();

        if ( asNavFor !== null && typeof asNavFor === 'object' ) {
            asNavFor.each(function() {
                var target = $(this).slick('getSlick');
                if(!target.unslicked) {
                    target.slideHandler(index, true);
                }
            });
        }

    };

    Slick.prototype.applyTransition = function(slide) {

        var _ = this,
            transition = {};

        if (_.options.fade === false) {
            transition[_.transitionType] = _.transformType + ' ' + _.options.speed + 'ms ' + _.options.cssEase;
        } else {
            transition[_.transitionType] = 'opacity ' + _.options.speed + 'ms ' + _.options.cssEase;
        }

        if (_.options.fade === false) {
            _.$slideTrack.css(transition);
        } else {
            _.$slides.eq(slide).css(transition);
        }

    };

    Slick.prototype.autoPlay = function() {

        var _ = this;

        _.autoPlayClear();

        if ( _.slideCount > _.options.slidesToShow ) {
            _.autoPlayTimer = setInterval( _.autoPlayIterator, _.options.autoplaySpeed );
        }

    };

    Slick.prototype.autoPlayClear = function() {

        var _ = this;

        if (_.autoPlayTimer) {
            clearInterval(_.autoPlayTimer);
        }

    };

    Slick.prototype.autoPlayIterator = function() {

        var _ = this,
            slideTo = _.currentSlide + _.options.slidesToScroll;

        if ( !_.paused && !_.interrupted && !_.focussed ) {

            if ( _.options.infinite === false ) {

                if ( _.direction === 1 && ( _.currentSlide + 1 ) === ( _.slideCount - 1 )) {
                    _.direction = 0;
                }

                else if ( _.direction === 0 ) {

                    slideTo = _.currentSlide - _.options.slidesToScroll;

                    if ( _.currentSlide - 1 === 0 ) {
                        _.direction = 1;
                    }

                }

            }

            _.slideHandler( slideTo );

        }

    };

    Slick.prototype.buildArrows = function() {

        var _ = this;

        if (_.options.arrows === true ) {

            _.$prevArrow = $(_.options.prevArrow).addClass('slick-arrow');
            _.$nextArrow = $(_.options.nextArrow).addClass('slick-arrow');

            if( _.slideCount > _.options.slidesToShow ) {

                _.$prevArrow.removeClass('slick-hidden').removeAttr('aria-hidden tabindex');
                _.$nextArrow.removeClass('slick-hidden').removeAttr('aria-hidden tabindex');

                if (_.htmlExpr.test(_.options.prevArrow)) {
                    _.$prevArrow.prependTo(_.options.appendArrows);
                }

                if (_.htmlExpr.test(_.options.nextArrow)) {
                    _.$nextArrow.appendTo(_.options.appendArrows);
                }

                if (_.options.infinite !== true) {
                    _.$prevArrow
                        .addClass('slick-disabled')
                        .attr('aria-disabled', 'true');
                }

            } else {

                _.$prevArrow.add( _.$nextArrow )

                    .addClass('slick-hidden')
                    .attr({
                        'aria-disabled': 'true',
                        'tabindex': '-1'
                    });

            }

        }

    };

    Slick.prototype.buildDots = function() {

        var _ = this,
            i, dot;

        if (_.options.dots === true && _.slideCount > _.options.slidesToShow) {

            _.$slider.addClass('slick-dotted');

            dot = $('<ul />').addClass(_.options.dotsClass);

            for (i = 0; i <= _.getDotCount(); i += 1) {
                dot.append($('<li />').append(_.options.customPaging.call(this, _, i)));
            }

            _.$dots = dot.appendTo(_.options.appendDots);

            _.$dots.find('li').first().addClass('slick-active');

        }

    };

    Slick.prototype.buildOut = function() {

        var _ = this;

        _.$slides =
            _.$slider
                .children( _.options.slide + ':not(.slick-cloned)')
                .addClass('slick-slide');

        _.slideCount = _.$slides.length;

        _.$slides.each(function(index, element) {
            $(element)
                .attr('data-slick-index', index)
                .data('originalStyling', $(element).attr('style') || '');
        });

        _.$slider.addClass('slick-slider');

        _.$slideTrack = (_.slideCount === 0) ?
            $('<div class="slick-track"/>').appendTo(_.$slider) :
            _.$slides.wrapAll('<div class="slick-track"/>').parent();

        _.$list = _.$slideTrack.wrap(
            '<div class="slick-list"/>').parent();
        _.$slideTrack.css('opacity', 0);

        if (_.options.centerMode === true || _.options.swipeToSlide === true) {
            _.options.slidesToScroll = 1;
        }

        $('img[data-lazy]', _.$slider).not('[src]').addClass('slick-loading');

        _.setupInfinite();

        _.buildArrows();

        _.buildDots();

        _.updateDots();


        _.setSlideClasses(typeof _.currentSlide === 'number' ? _.currentSlide : 0);

        if (_.options.draggable === true) {
            _.$list.addClass('draggable');
        }

    };

    Slick.prototype.buildRows = function() {

        var _ = this, a, b, c, newSlides, numOfSlides, originalSlides,slidesPerSection;

        newSlides = document.createDocumentFragment();
        originalSlides = _.$slider.children();

        if(_.options.rows > 0) {

            slidesPerSection = _.options.slidesPerRow * _.options.rows;
            numOfSlides = Math.ceil(
                originalSlides.length / slidesPerSection
            );

            for(a = 0; a < numOfSlides; a++){
                var slide = document.createElement('div');
                for(b = 0; b < _.options.rows; b++) {
                    var row = document.createElement('div');
                    for(c = 0; c < _.options.slidesPerRow; c++) {
                        var target = (a * slidesPerSection + ((b * _.options.slidesPerRow) + c));
                        if (originalSlides.get(target)) {
                            row.appendChild(originalSlides.get(target));
                        }
                    }
                    slide.appendChild(row);
                }
                newSlides.appendChild(slide);
            }

            _.$slider.empty().append(newSlides);
            _.$slider.children().children().children()
                .css({
                    'width':(100 / _.options.slidesPerRow) + '%',
                    'display': 'inline-block'
                });

        }

    };

    Slick.prototype.checkResponsive = function(initial, forceUpdate) {

        var _ = this,
            breakpoint, targetBreakpoint, respondToWidth, triggerBreakpoint = false;
        var sliderWidth = _.$slider.width();
        var windowWidth = window.innerWidth || $(window).width();

        if (_.respondTo === 'window') {
            respondToWidth = windowWidth;
        } else if (_.respondTo === 'slider') {
            respondToWidth = sliderWidth;
        } else if (_.respondTo === 'min') {
            respondToWidth = Math.min(windowWidth, sliderWidth);
        }

        if ( _.options.responsive &&
            _.options.responsive.length &&
            _.options.responsive !== null) {

            targetBreakpoint = null;

            for (breakpoint in _.breakpoints) {
                if (_.breakpoints.hasOwnProperty(breakpoint)) {
                    if (_.originalSettings.mobileFirst === false) {
                        if (respondToWidth < _.breakpoints[breakpoint]) {
                            targetBreakpoint = _.breakpoints[breakpoint];
                        }
                    } else {
                        if (respondToWidth > _.breakpoints[breakpoint]) {
                            targetBreakpoint = _.breakpoints[breakpoint];
                        }
                    }
                }
            }

            if (targetBreakpoint !== null) {
                if (_.activeBreakpoint !== null) {
                    if (targetBreakpoint !== _.activeBreakpoint || forceUpdate) {
                        _.activeBreakpoint =
                            targetBreakpoint;
                        if (_.breakpointSettings[targetBreakpoint] === 'unslick') {
                            _.unslick(targetBreakpoint);
                        } else {
                            _.options = $.extend({}, _.originalSettings,
                                _.breakpointSettings[
                                    targetBreakpoint]);
                            if (initial === true) {
                                _.currentSlide = _.options.initialSlide;
                            }
                            _.refresh(initial);
                        }
                        triggerBreakpoint = targetBreakpoint;
                    }
                } else {
                    _.activeBreakpoint = targetBreakpoint;
                    if (_.breakpointSettings[targetBreakpoint] === 'unslick') {
                        _.unslick(targetBreakpoint);
                    } else {
                        _.options = $.extend({}, _.originalSettings,
                            _.breakpointSettings[
                                targetBreakpoint]);
                        if (initial === true) {
                            _.currentSlide = _.options.initialSlide;
                        }
                        _.refresh(initial);
                    }
                    triggerBreakpoint = targetBreakpoint;
                }
            } else {
                if (_.activeBreakpoint !== null) {
                    _.activeBreakpoint = null;
                    _.options = _.originalSettings;
                    if (initial === true) {
                        _.currentSlide = _.options.initialSlide;
                    }
                    _.refresh(initial);
                    triggerBreakpoint = targetBreakpoint;
                }
            }

            // only trigger breakpoints during an actual break. not on initialize.
            if( !initial && triggerBreakpoint !== false ) {
                _.$slider.trigger('breakpoint', [_, triggerBreakpoint]);
            }
        }

    };

    Slick.prototype.changeSlide = function(event, dontAnimate) {

        var _ = this,
            $target = $(event.currentTarget),
            indexOffset, slideOffset, unevenOffset;

        // If target is a link, prevent default action.
        if($target.is('a')) {
            event.preventDefault();
        }

        // If target is not the <li> element (ie: a child), find the <li>.
        if(!$target.is('li')) {
            $target = $target.closest('li');
        }

        unevenOffset = (_.slideCount % _.options.slidesToScroll !== 0);
        indexOffset = unevenOffset ? 0 : (_.slideCount - _.currentSlide) % _.options.slidesToScroll;

        switch (event.data.message) {

            case 'previous':
                slideOffset = indexOffset === 0 ? _.options.slidesToScroll : _.options.slidesToShow - indexOffset;
                if (_.slideCount > _.options.slidesToShow) {
                    _.slideHandler(_.currentSlide - slideOffset, false, dontAnimate);
                }
                break;

            case 'next':
                slideOffset = indexOffset === 0 ? _.options.slidesToScroll : indexOffset;
                if (_.slideCount > _.options.slidesToShow) {
                    _.slideHandler(_.currentSlide + slideOffset, false, dontAnimate);
                }
                break;

            case 'index':
                var index = event.data.index === 0 ? 0 :
                    event.data.index || $target.index() * _.options.slidesToScroll;

                _.slideHandler(_.checkNavigable(index), false, dontAnimate);
                $target.children().trigger('focus');
                break;

            default:
                return;
        }

    };

    Slick.prototype.checkNavigable = function(index) {

        var _ = this,
            navigables, prevNavigable;

        navigables = _.getNavigableIndexes();
        prevNavigable = 0;
        if (index > navigables[navigables.length - 1]) {
            index = navigables[navigables.length - 1];
        } else {
            for (var n in navigables) {
                if (index < navigables[n]) {
                    index = prevNavigable;
                    break;
                }
                prevNavigable = navigables[n];
            }
        }

        return index;
    };

    Slick.prototype.cleanUpEvents = function() {

        var _ = this;

        if (_.options.dots && _.$dots !== null) {

            $('li', _.$dots)
                .off('click.slick', _.changeSlide)
                .off('mouseenter.slick', $.proxy(_.interrupt, _, true))
                .off('mouseleave.slick', $.proxy(_.interrupt, _, false));

            if (_.options.accessibility === true) {
                _.$dots.off('keydown.slick', _.keyHandler);
            }
        }

        _.$slider.off('focus.slick blur.slick');

        if (_.options.arrows === true && _.slideCount > _.options.slidesToShow) {
            _.$prevArrow && _.$prevArrow.off('click.slick', _.changeSlide);
            _.$nextArrow && _.$nextArrow.off('click.slick', _.changeSlide);

            if (_.options.accessibility === true) {
                _.$prevArrow && _.$prevArrow.off('keydown.slick', _.keyHandler);
                _.$nextArrow && _.$nextArrow.off('keydown.slick', _.keyHandler);
            }
        }

        _.$list.off('touchstart.slick mousedown.slick', _.swipeHandler);
        _.$list.off('touchmove.slick mousemove.slick', _.swipeHandler);
        _.$list.off('touchend.slick mouseup.slick', _.swipeHandler);
        _.$list.off('touchcancel.slick mouseleave.slick', _.swipeHandler);

        _.$list.off('click.slick', _.clickHandler);

        $(document).off(_.visibilityChange, _.visibility);

        _.cleanUpSlideEvents();

        if (_.options.accessibility === true) {
            _.$list.off('keydown.slick', _.keyHandler);
        }

        if (_.options.focusOnSelect === true) {
            $(_.$slideTrack).children().off('click.slick', _.selectHandler);
        }

        $(window).off('orientationchange.slick.slick-' + _.instanceUid, _.orientationChange);

        $(window).off('resize.slick.slick-' + _.instanceUid, _.resize);

        $('[draggable!=true]', _.$slideTrack).off('dragstart', _.preventDefault);

        $(window).off('load.slick.slick-' + _.instanceUid, _.setPosition);

    };

    Slick.prototype.cleanUpSlideEvents = function() {

        var _ = this;

        _.$list.off('mouseenter.slick', $.proxy(_.interrupt, _, true));
        _.$list.off('mouseleave.slick', $.proxy(_.interrupt, _, false));

    };

    Slick.prototype.cleanUpRows = function() {

        var _ = this, originalSlides;

        if(_.options.rows > 0) {
            originalSlides = _.$slides.children().children();
            originalSlides.removeAttr('style');
            _.$slider.empty().append(originalSlides);
        }

    };

    Slick.prototype.clickHandler = function(event) {

        var _ = this;

        if (_.shouldClick === false) {
            event.stopImmediatePropagation();
            event.stopPropagation();
            event.preventDefault();
        }

    };

    Slick.prototype.destroy = function(refresh) {

        var _ = this;

        _.autoPlayClear();

        _.touchObject = {};

        _.cleanUpEvents();

        $('.slick-cloned', _.$slider).detach();

        if (_.$dots) {
            _.$dots.remove();
        }

        if ( _.$prevArrow && _.$prevArrow.length ) {

            _.$prevArrow
                .removeClass('slick-disabled slick-arrow slick-hidden')
                .removeAttr('aria-hidden aria-disabled tabindex')
                .css('display','');

            if ( _.htmlExpr.test( _.options.prevArrow )) {
                _.$prevArrow.remove();
            }
        }

        if ( _.$nextArrow && _.$nextArrow.length ) {

            _.$nextArrow
                .removeClass('slick-disabled slick-arrow slick-hidden')
                .removeAttr('aria-hidden aria-disabled tabindex')
                .css('display','');

            if ( _.htmlExpr.test( _.options.nextArrow )) {
                _.$nextArrow.remove();
            }
        }


        if (_.$slides) {

            _.$slides
                .removeClass('slick-slide slick-active slick-center slick-visible slick-current')
                .removeAttr('aria-hidden')
                .removeAttr('data-slick-index')
                .each(function(){
                    $(this).attr('style', $(this).data('originalStyling'));
                });

            _.$slideTrack.children(this.options.slide).detach();

            _.$slideTrack.detach();

            _.$list.detach();

            _.$slider.append(_.$slides);
        }

        _.cleanUpRows();

        _.$slider.removeClass('slick-slider');
        _.$slider.removeClass('slick-initialized');
        _.$slider.removeClass('slick-dotted');

        _.unslicked = true;

        if(!refresh) {
            _.$slider.trigger('destroy', [_]);
        }

    };

    Slick.prototype.disableTransition = function(slide) {

        var _ = this,
            transition = {};

        transition[_.transitionType] = '';

        if (_.options.fade === false) {
            _.$slideTrack.css(transition);
        } else {
            _.$slides.eq(slide).css(transition);
        }

    };

    Slick.prototype.fadeSlide = function(slideIndex, callback) {

        var _ = this;

        if (_.cssTransitions === false) {

            _.$slides.eq(slideIndex).css({
                zIndex: _.options.zIndex
            });

            _.$slides.eq(slideIndex).animate({
                opacity: 1
            }, _.options.speed, _.options.easing, callback);

        } else {

            _.applyTransition(slideIndex);

            _.$slides.eq(slideIndex).css({
                opacity: 1,
                zIndex: _.options.zIndex
            });

            if (callback) {
                setTimeout(function() {

                    _.disableTransition(slideIndex);

                    callback.call();
                }, _.options.speed);
            }

        }

    };

    Slick.prototype.fadeSlideOut = function(slideIndex) {

        var _ = this;

        if (_.cssTransitions === false) {

            _.$slides.eq(slideIndex).animate({
                opacity: 0,
                zIndex: _.options.zIndex - 2
            }, _.options.speed, _.options.easing);

        } else {

            _.applyTransition(slideIndex);

            _.$slides.eq(slideIndex).css({
                opacity: 0,
                zIndex: _.options.zIndex - 2
            });

        }

    };

    Slick.prototype.filterSlides = Slick.prototype.slickFilter = function(filter) {

        var _ = this;

        if (filter !== null) {

            _.$slidesCache = _.$slides;

            _.unload();

            _.$slideTrack.children(this.options.slide).detach();

            _.$slidesCache.filter(filter).appendTo(_.$slideTrack);

            _.reinit();

        }

    };

    Slick.prototype.focusHandler = function() {

        var _ = this;

        _.$slider
            .off('focus.slick blur.slick')
            .on('focus.slick blur.slick', '*', function(event) {

            event.stopImmediatePropagation();
            var $sf = $(this);

            setTimeout(function() {

                if( _.options.pauseOnFocus ) {
                    _.focussed = $sf.is(':focus');
                    _.autoPlay();
                }

            }, 0);

        });
    };

    Slick.prototype.getCurrent = Slick.prototype.slickCurrentSlide = function() {

        var _ = this;
        return _.currentSlide;

    };

    Slick.prototype.getDotCount = function() {

        var _ = this;

        var breakPoint = 0;
        var counter = 0;
        var pagerQty = 0;

        if (_.options.infinite === true) {
            if (_.slideCount <= _.options.slidesToShow) {
                 ++pagerQty;
            } else {
                while (breakPoint < _.slideCount) {
                    ++pagerQty;
                    breakPoint = counter + _.options.slidesToScroll;
                    counter += _.options.slidesToScroll <= _.options.slidesToShow ? _.options.slidesToScroll : _.options.slidesToShow;
                }
            }
        } else if (_.options.centerMode === true) {
            pagerQty = _.slideCount;
        } else if(!_.options.asNavFor) {
            pagerQty = 1 + Math.ceil((_.slideCount - _.options.slidesToShow) / _.options.slidesToScroll);
        }else {
            while (breakPoint < _.slideCount) {
                ++pagerQty;
                breakPoint = counter + _.options.slidesToScroll;
                counter += _.options.slidesToScroll <= _.options.slidesToShow ? _.options.slidesToScroll : _.options.slidesToShow;
            }
        }

        return pagerQty - 1;

    };

    Slick.prototype.getLeft = function(slideIndex) {

        var _ = this,
            targetLeft,
            verticalHeight,
            verticalOffset = 0,
            targetSlide,
            coef;

        _.slideOffset = 0;
        verticalHeight = _.$slides.first().outerHeight(true);

        if (_.options.infinite === true) {
            if (_.slideCount > _.options.slidesToShow) {
                _.slideOffset = (_.slideWidth * _.options.slidesToShow) * -1;
                coef = -1

                if (_.options.vertical === true && _.options.centerMode === true) {
                    if (_.options.slidesToShow === 2) {
                        coef = -1.5;
                    } else if (_.options.slidesToShow === 1) {
                        coef = -2
                    }
                }
                verticalOffset = (verticalHeight * _.options.slidesToShow) * coef;
            }
            if (_.slideCount % _.options.slidesToScroll !== 0) {
                if (slideIndex + _.options.slidesToScroll > _.slideCount && _.slideCount > _.options.slidesToShow) {
                    if (slideIndex > _.slideCount) {
                        _.slideOffset = ((_.options.slidesToShow - (slideIndex - _.slideCount)) * _.slideWidth) * -1;
                        verticalOffset = ((_.options.slidesToShow - (slideIndex - _.slideCount)) * verticalHeight) * -1;
                    } else {
                        _.slideOffset = ((_.slideCount % _.options.slidesToScroll) * _.slideWidth) * -1;
                        verticalOffset = ((_.slideCount % _.options.slidesToScroll) * verticalHeight) * -1;
                    }
                }
            }
        } else {
            if (slideIndex + _.options.slidesToShow > _.slideCount) {
                _.slideOffset = ((slideIndex + _.options.slidesToShow) - _.slideCount) * _.slideWidth;
                verticalOffset = ((slideIndex + _.options.slidesToShow) - _.slideCount) * verticalHeight;
            }
        }

        if (_.slideCount <= _.options.slidesToShow) {
            _.slideOffset = 0;
            verticalOffset = 0;
        }

        if (_.options.centerMode === true && _.slideCount <= _.options.slidesToShow) {
            _.slideOffset = ((_.slideWidth * Math.floor(_.options.slidesToShow)) / 2) - ((_.slideWidth * _.slideCount) / 2);
        } else if (_.options.centerMode === true && _.options.infinite === true) {
            _.slideOffset += _.slideWidth * Math.floor(_.options.slidesToShow / 2) - _.slideWidth;
        } else if (_.options.centerMode === true) {
            _.slideOffset = 0;
            _.slideOffset += _.slideWidth * Math.floor(_.options.slidesToShow / 2);
        }

        if (_.options.vertical === false) {
            targetLeft = ((slideIndex * _.slideWidth) * -1) + _.slideOffset;
        } else {
            targetLeft = ((slideIndex * verticalHeight) * -1) + verticalOffset;
        }

        if (_.options.variableWidth === true) {

            if (_.slideCount <= _.options.slidesToShow || _.options.infinite === false) {
                targetSlide = _.$slideTrack.children('.slick-slide').eq(slideIndex);
            } else {
                targetSlide = _.$slideTrack.children('.slick-slide').eq(slideIndex + _.options.slidesToShow);
            }

            if (_.options.rtl === true) {
                if (targetSlide[0]) {
                    targetLeft = (_.$slideTrack.width() - targetSlide[0].offsetLeft - targetSlide.width()) * -1;
                } else {
                    targetLeft =  0;
                }
            } else {
                targetLeft = targetSlide[0] ? targetSlide[0].offsetLeft * -1 : 0;
            }

            if (_.options.centerMode === true) {
                if (_.slideCount <= _.options.slidesToShow || _.options.infinite === false) {
                    targetSlide = _.$slideTrack.children('.slick-slide').eq(slideIndex);
                } else {
                    targetSlide = _.$slideTrack.children('.slick-slide').eq(slideIndex + _.options.slidesToShow + 1);
                }

                if (_.options.rtl === true) {
                    if (targetSlide[0]) {
                        targetLeft = (_.$slideTrack.width() - targetSlide[0].offsetLeft - targetSlide.width()) * -1;
                    } else {
                        targetLeft =  0;
                    }
                } else {
                    targetLeft = targetSlide[0] ? targetSlide[0].offsetLeft * -1 : 0;
                }

                targetLeft += (_.$list.width() - targetSlide.outerWidth()) / 2;
            }
        }

        return targetLeft;

    };

    Slick.prototype.getOption = Slick.prototype.slickGetOption = function(option) {

        var _ = this;

        return _.options[option];

    };

    Slick.prototype.getNavigableIndexes = function() {

        var _ = this,
            breakPoint = 0,
            counter = 0,
            indexes = [],
            max;

        if (_.options.infinite === false) {
            max = _.slideCount;
        } else {
            breakPoint = _.options.slidesToScroll * -1;
            counter = _.options.slidesToScroll * -1;
            max = _.slideCount * 2;
        }

        while (breakPoint < max) {
            indexes.push(breakPoint);
            breakPoint = counter + _.options.slidesToScroll;
            counter += _.options.slidesToScroll <= _.options.slidesToShow ? _.options.slidesToScroll : _.options.slidesToShow;
        }

        return indexes;

    };

    Slick.prototype.getSlick = function() {

        return this;

    };

    Slick.prototype.getSlideCount = function() {

        var _ = this,
            slidesTraversed, swipedSlide, centerOffset;

        centerOffset = _.options.centerMode === true ? _.slideWidth * Math.floor(_.options.slidesToShow / 2) : 0;

        if (_.options.swipeToSlide === true) {
            _.$slideTrack.find('.slick-slide').each(function(index, slide) {
                if (slide.offsetLeft - centerOffset + ($(slide).outerWidth() / 2) > (_.swipeLeft * -1)) {
                    swipedSlide = slide;
                    return false;
                }
            });

            slidesTraversed = Math.abs($(swipedSlide).attr('data-slick-index') - _.currentSlide) || 1;

            return slidesTraversed;

        } else {
            return _.options.slidesToScroll;
        }

    };

    Slick.prototype.goTo = Slick.prototype.slickGoTo = function(slide, dontAnimate) {

        var _ = this;

        _.changeSlide({
            data: {
                message: 'index',
                index: parseInt(slide)
            }
        }, dontAnimate);

    };

    Slick.prototype.init = function(creation) {

        var _ = this;

        if (!$(_.$slider).hasClass('slick-initialized')) {

            $(_.$slider).addClass('slick-initialized');

            _.buildRows();
            _.buildOut();
            _.setProps();
            _.startLoad();
            _.loadSlider();
            _.initializeEvents();
            _.updateArrows();
            _.updateDots();
            _.checkResponsive(true);
            _.focusHandler();

        }

        if (creation) {
            _.$slider.trigger('init', [_]);
        }

        if (_.options.accessibility === true) {
            _.initADA();
        }

        if ( _.options.autoplay ) {

            _.paused = false;
            _.autoPlay();

        }

    };

    Slick.prototype.initADA = function() {
        var _ = this,
                numDotGroups = Math.ceil(_.slideCount / _.options.slidesToShow),
                tabControlIndexes = _.getNavigableIndexes().filter(function(val) {
                    return (val >= 0) && (val < _.slideCount);
                });

        _.$slides.add(_.$slideTrack.find('.slick-cloned')).attr({
            'aria-hidden': 'true',
            'tabindex': '-1'
        }).find('a, input, button, select').attr({
            'tabindex': '-1'
        });

        if (_.$dots !== null) {
            _.$slides.not(_.$slideTrack.find('.slick-cloned')).each(function(i) {
                var slideControlIndex = tabControlIndexes.indexOf(i);

                $(this).attr({
                    'role': 'tabpanel',
                    'id': 'slick-slide' + _.instanceUid + i,
                    'tabindex': -1
                });

                if (slideControlIndex !== -1) {
                   var ariaButtonControl = 'slick-slide-control' + _.instanceUid + slideControlIndex
                   if ($('#' + ariaButtonControl).length) {
                     $(this).attr({
                         'aria-describedby': ariaButtonControl
                     });
                   }
                }
            });

            _.$dots.attr('role', 'tablist').find('li').each(function(i) {
                var mappedSlideIndex = tabControlIndexes[i];

                $(this).attr({
                    'role': 'presentation'
                });

                $(this).find('button').first().attr({
                    'role': 'tab',
                    'id': 'slick-slide-control' + _.instanceUid + i,
                    'aria-controls': 'slick-slide' + _.instanceUid + mappedSlideIndex,
                    'aria-label': (i + 1) + ' of ' + numDotGroups,
                    'aria-selected': null,
                    'tabindex': '-1'
                });

            }).eq(_.currentSlide).find('button').attr({
                'aria-selected': 'true',
                'tabindex': '0'
            }).end();
        }

        for (var i=_.currentSlide, max=i+_.options.slidesToShow; i < max; i++) {
          if (_.options.focusOnChange) {
            _.$slides.eq(i).attr({'tabindex': '0'});
          } else {
            _.$slides.eq(i).removeAttr('tabindex');
          }
        }

        _.activateADA();

    };

    Slick.prototype.initArrowEvents = function() {

        var _ = this;

        if (_.options.arrows === true && _.slideCount > _.options.slidesToShow) {
            _.$prevArrow
               .off('click.slick')
               .on('click.slick', {
                    message: 'previous'
               }, _.changeSlide);
            _.$nextArrow
               .off('click.slick')
               .on('click.slick', {
                    message: 'next'
               }, _.changeSlide);

            if (_.options.accessibility === true) {
                _.$prevArrow.on('keydown.slick', _.keyHandler);
                _.$nextArrow.on('keydown.slick', _.keyHandler);
            }
        }

    };

    Slick.prototype.initDotEvents = function() {

        var _ = this;

        if (_.options.dots === true && _.slideCount > _.options.slidesToShow) {
            $('li', _.$dots).on('click.slick', {
                message: 'index'
            }, _.changeSlide);

            if (_.options.accessibility === true) {
                _.$dots.on('keydown.slick', _.keyHandler);
            }
        }

        if (_.options.dots === true && _.options.pauseOnDotsHover === true && _.slideCount > _.options.slidesToShow) {

            $('li', _.$dots)
                .on('mouseenter.slick', $.proxy(_.interrupt, _, true))
                .on('mouseleave.slick', $.proxy(_.interrupt, _, false));

        }

    };

    Slick.prototype.initSlideEvents = function() {

        var _ = this;

        if ( _.options.pauseOnHover ) {

            _.$list.on('mouseenter.slick', $.proxy(_.interrupt, _, true));
            _.$list.on('mouseleave.slick', $.proxy(_.interrupt, _, false));

        }

    };

    Slick.prototype.initializeEvents = function() {

        var _ = this;

        _.initArrowEvents();

        _.initDotEvents();
        _.initSlideEvents();

        _.$list.on('touchstart.slick mousedown.slick', {
            action: 'start'
        }, _.swipeHandler);
        _.$list.on('touchmove.slick mousemove.slick', {
            action: 'move'
        }, _.swipeHandler);
        _.$list.on('touchend.slick mouseup.slick', {
            action: 'end'
        }, _.swipeHandler);
        _.$list.on('touchcancel.slick mouseleave.slick', {
            action: 'end'
        }, _.swipeHandler);

        _.$list.on('click.slick', _.clickHandler);

        $(document).on(_.visibilityChange, $.proxy(_.visibility, _));

        if (_.options.accessibility === true) {
            _.$list.on('keydown.slick', _.keyHandler);
        }

        if (_.options.focusOnSelect === true) {
            $(_.$slideTrack).children().on('click.slick', _.selectHandler);
        }

        $(window).on('orientationchange.slick.slick-' + _.instanceUid, $.proxy(_.orientationChange, _));

        $(window).on('resize.slick.slick-' + _.instanceUid, $.proxy(_.resize, _));

        $('[draggable!=true]', _.$slideTrack).on('dragstart', _.preventDefault);

        $(window).on('load.slick.slick-' + _.instanceUid, _.setPosition);
        $(_.setPosition);

    };

    Slick.prototype.initUI = function() {

        var _ = this;

        if (_.options.arrows === true && _.slideCount > _.options.slidesToShow) {

            _.$prevArrow.show();
            _.$nextArrow.show();

        }

        if (_.options.dots === true && _.slideCount > _.options.slidesToShow) {

            _.$dots.show();

        }

    };

    Slick.prototype.keyHandler = function(event) {

        var _ = this;
         //Dont slide if the cursor is inside the form fields and arrow keys are pressed
        if(!event.target.tagName.match('TEXTAREA|INPUT|SELECT')) {
            if (event.keyCode === 37 && _.options.accessibility === true) {
                _.changeSlide({
                    data: {
                        message: _.options.rtl === true ? 'next' :  'previous'
                    }
                });
            } else if (event.keyCode === 39 && _.options.accessibility === true) {
                _.changeSlide({
                    data: {
                        message: _.options.rtl === true ? 'previous' : 'next'
                    }
                });
            }
        }

    };

    Slick.prototype.lazyLoad = function() {

        var _ = this,
            loadRange, cloneRange, rangeStart, rangeEnd;

        function loadImages(imagesScope) {

            $('img[data-lazy]', imagesScope).each(function() {

                var image = $(this),
                    imageSource = $(this).attr('data-lazy'),
                    imageSrcSet = $(this).attr('data-srcset'),
                    imageSizes  = $(this).attr('data-sizes') || _.$slider.attr('data-sizes'),
                    imageToLoad = document.createElement('img');

                imageToLoad.onload = function() {

                    image
                        .animate({ opacity: 0 }, 100, function() {

                            if (imageSrcSet) {
                                image
                                    .attr('srcset', imageSrcSet );

                                if (imageSizes) {
                                    image
                                        .attr('sizes', imageSizes );
                                }
                            }

                            image
                                .attr('src', imageSource)
                                .animate({ opacity: 1 }, 200, function() {
                                    image
                                        .removeAttr('data-lazy data-srcset data-sizes')
                                        .removeClass('slick-loading');
                                });
                            _.$slider.trigger('lazyLoaded', [_, image, imageSource]);
                        });

                };

                imageToLoad.onerror = function() {

                    image
                        .removeAttr( 'data-lazy' )
                        .removeClass( 'slick-loading' )
                        .addClass( 'slick-lazyload-error' );

                    _.$slider.trigger('lazyLoadError', [ _, image, imageSource ]);

                };

                imageToLoad.src = imageSource;

            });

        }

        if (_.options.centerMode === true) {
            if (_.options.infinite === true) {
                rangeStart = _.currentSlide + (_.options.slidesToShow / 2 + 1);
                rangeEnd = rangeStart + _.options.slidesToShow + 2;
            } else {
                rangeStart = Math.max(0, _.currentSlide - (_.options.slidesToShow / 2 + 1));
                rangeEnd = 2 + (_.options.slidesToShow / 2 + 1) + _.currentSlide;
            }
        } else {
            rangeStart = _.options.infinite ? _.options.slidesToShow + _.currentSlide : _.currentSlide;
            rangeEnd = Math.ceil(rangeStart + _.options.slidesToShow);
            if (_.options.fade === true) {
                if (rangeStart > 0) rangeStart--;
                if (rangeEnd <= _.slideCount) rangeEnd++;
            }
        }

        loadRange = _.$slider.find('.slick-slide').slice(rangeStart, rangeEnd);

        if (_.options.lazyLoad === 'anticipated') {
            var prevSlide = rangeStart - 1,
                nextSlide = rangeEnd,
                $slides = _.$slider.find('.slick-slide');

            for (var i = 0; i < _.options.slidesToScroll; i++) {
                if (prevSlide < 0) prevSlide = _.slideCount - 1;
                loadRange = loadRange.add($slides.eq(prevSlide));
                loadRange = loadRange.add($slides.eq(nextSlide));
                prevSlide--;
                nextSlide++;
            }
        }

        loadImages(loadRange);

        if (_.slideCount <= _.options.slidesToShow) {
            cloneRange = _.$slider.find('.slick-slide');
            loadImages(cloneRange);
        } else
        if (_.currentSlide >= _.slideCount - _.options.slidesToShow) {
            cloneRange = _.$slider.find('.slick-cloned').slice(0, _.options.slidesToShow);
            loadImages(cloneRange);
        } else if (_.currentSlide === 0) {
            cloneRange = _.$slider.find('.slick-cloned').slice(_.options.slidesToShow * -1);
            loadImages(cloneRange);
        }

    };

    Slick.prototype.loadSlider = function() {

        var _ = this;

        _.setPosition();

        _.$slideTrack.css({
            opacity: 1
        });

        _.$slider.removeClass('slick-loading');

        _.initUI();

        if (_.options.lazyLoad === 'progressive') {
            _.progressiveLazyLoad();
        }

    };

    Slick.prototype.next = Slick.prototype.slickNext = function() {

        var _ = this;

        _.changeSlide({
            data: {
                message: 'next'
            }
        });

    };

    Slick.prototype.orientationChange = function() {

        var _ = this;

        _.checkResponsive();
        _.setPosition();

    };

    Slick.prototype.pause = Slick.prototype.slickPause = function() {

        var _ = this;

        _.autoPlayClear();
        _.paused = true;

    };

    Slick.prototype.play = Slick.prototype.slickPlay = function() {

        var _ = this;

        _.autoPlay();
        _.options.autoplay = true;
        _.paused = false;
        _.focussed = false;
        _.interrupted = false;

    };

    Slick.prototype.postSlide = function(index) {

        var _ = this;

        if( !_.unslicked ) {

            _.$slider.trigger('afterChange', [_, index]);

            _.animating = false;

            if (_.slideCount > _.options.slidesToShow) {
                _.setPosition();
            }

            _.swipeLeft = null;

            if ( _.options.autoplay ) {
                _.autoPlay();
            }

            if (_.options.accessibility === true) {
                _.initADA();

                if (_.options.focusOnChange) {
                    var $currentSlide = $(_.$slides.get(_.currentSlide));
                    $currentSlide.attr('tabindex', 0).focus();
                }
            }

        }

    };

    Slick.prototype.prev = Slick.prototype.slickPrev = function() {

        var _ = this;

        _.changeSlide({
            data: {
                message: 'previous'
            }
        });

    };

    Slick.prototype.preventDefault = function(event) {

        event.preventDefault();

    };

    Slick.prototype.progressiveLazyLoad = function( tryCount ) {

        tryCount = tryCount || 1;

        var _ = this,
            $imgsToLoad = $( 'img[data-lazy]', _.$slider ),
            image,
            imageSource,
            imageSrcSet,
            imageSizes,
            imageToLoad;

        if ( $imgsToLoad.length ) {

            image = $imgsToLoad.first();
            imageSource = image.attr('data-lazy');
            imageSrcSet = image.attr('data-srcset');
            imageSizes  = image.attr('data-sizes') || _.$slider.attr('data-sizes');
            imageToLoad = document.createElement('img');

            imageToLoad.onload = function() {

                if (imageSrcSet) {
                    image
                        .attr('srcset', imageSrcSet );

                    if (imageSizes) {
                        image
                            .attr('sizes', imageSizes );
                    }
                }

                image
                    .attr( 'src', imageSource )
                    .removeAttr('data-lazy data-srcset data-sizes')
                    .removeClass('slick-loading');

                if ( _.options.adaptiveHeight === true ) {
                    _.setPosition();
                }

                _.$slider.trigger('lazyLoaded', [ _, image, imageSource ]);
                _.progressiveLazyLoad();

            };

            imageToLoad.onerror = function() {

                if ( tryCount < 3 ) {

                    /**
                     * try to load the image 3 times,
                     * leave a slight delay so we don't get
                     * servers blocking the request.
                     */
                    setTimeout( function() {
                        _.progressiveLazyLoad( tryCount + 1 );
                    }, 500 );

                } else {

                    image
                        .removeAttr( 'data-lazy' )
                        .removeClass( 'slick-loading' )
                        .addClass( 'slick-lazyload-error' );

                    _.$slider.trigger('lazyLoadError', [ _, image, imageSource ]);

                    _.progressiveLazyLoad();

                }

            };

            imageToLoad.src = imageSource;

        } else {

            _.$slider.trigger('allImagesLoaded', [ _ ]);

        }

    };

    Slick.prototype.refresh = function( initializing ) {

        var _ = this, currentSlide, lastVisibleIndex;

        lastVisibleIndex = _.slideCount - _.options.slidesToShow;

        // in non-infinite sliders, we don't want to go past the
        // last visible index.
        if( !_.options.infinite && ( _.currentSlide > lastVisibleIndex )) {
            _.currentSlide = lastVisibleIndex;
        }

        // if less slides than to show, go to start.
        if ( _.slideCount <= _.options.slidesToShow ) {
            _.currentSlide = 0;

        }

        currentSlide = _.currentSlide;

        _.destroy(true);

        $.extend(_, _.initials, { currentSlide: currentSlide });

        _.init();

        if( !initializing ) {

            _.changeSlide({
                data: {
                    message: 'index',
                    index: currentSlide
                }
            }, false);

        }

    };

    Slick.prototype.registerBreakpoints = function() {

        var _ = this, breakpoint, currentBreakpoint, l,
            responsiveSettings = _.options.responsive || null;

        if ( $.type(responsiveSettings) === 'array' && responsiveSettings.length ) {

            _.respondTo = _.options.respondTo || 'window';

            for ( breakpoint in responsiveSettings ) {

                l = _.breakpoints.length-1;

                if (responsiveSettings.hasOwnProperty(breakpoint)) {
                    currentBreakpoint = responsiveSettings[breakpoint].breakpoint;

                    // loop through the breakpoints and cut out any existing
                    // ones with the same breakpoint number, we don't want dupes.
                    while( l >= 0 ) {
                        if( _.breakpoints[l] && _.breakpoints[l] === currentBreakpoint ) {
                            _.breakpoints.splice(l,1);
                        }
                        l--;
                    }

                    _.breakpoints.push(currentBreakpoint);
                    _.breakpointSettings[currentBreakpoint] = responsiveSettings[breakpoint].settings;

                }

            }

            _.breakpoints.sort(function(a, b) {
                return ( _.options.mobileFirst ) ? a-b : b-a;
            });

        }

    };

    Slick.prototype.reinit = function() {

        var _ = this;

        _.$slides =
            _.$slideTrack
                .children(_.options.slide)
                .addClass('slick-slide');

        _.slideCount = _.$slides.length;

        if (_.currentSlide >= _.slideCount && _.currentSlide !== 0) {
            _.currentSlide = _.currentSlide - _.options.slidesToScroll;
        }

        if (_.slideCount <= _.options.slidesToShow) {
            _.currentSlide = 0;
        }

        _.registerBreakpoints();

        _.setProps();
        _.setupInfinite();
        _.buildArrows();
        _.updateArrows();
        _.initArrowEvents();
        _.buildDots();
        _.updateDots();
        _.initDotEvents();
        _.cleanUpSlideEvents();
        _.initSlideEvents();

        _.checkResponsive(false, true);

        if (_.options.focusOnSelect === true) {
            $(_.$slideTrack).children().on('click.slick', _.selectHandler);
        }

        _.setSlideClasses(typeof _.currentSlide === 'number' ? _.currentSlide : 0);

        _.setPosition();
        _.focusHandler();

        _.paused = !_.options.autoplay;
        _.autoPlay();

        _.$slider.trigger('reInit', [_]);

    };

    Slick.prototype.resize = function() {

        var _ = this;

        if ($(window).width() !== _.windowWidth) {
            clearTimeout(_.windowDelay);
            _.windowDelay = window.setTimeout(function() {
                _.windowWidth = $(window).width();
                _.checkResponsive();
                if( !_.unslicked ) { _.setPosition(); }
            }, 50);
        }
    };

    Slick.prototype.removeSlide = Slick.prototype.slickRemove = function(index, removeBefore, removeAll) {

        var _ = this;

        if (typeof(index) === 'boolean') {
            removeBefore = index;
            index = removeBefore === true ? 0 : _.slideCount - 1;
        } else {
            index = removeBefore === true ? --index : index;
        }

        if (_.slideCount < 1 || index < 0 || index > _.slideCount - 1) {
            return false;
        }

        _.unload();

        if (removeAll === true) {
            _.$slideTrack.children().remove();
        } else {
            _.$slideTrack.children(this.options.slide).eq(index).remove();
        }

        _.$slides = _.$slideTrack.children(this.options.slide);

        _.$slideTrack.children(this.options.slide).detach();

        _.$slideTrack.append(_.$slides);

        _.$slidesCache = _.$slides;

        _.reinit();

    };

    Slick.prototype.setCSS = function(position) {

        var _ = this,
            positionProps = {},
            x, y;

        if (_.options.rtl === true) {
            position = -position;
        }
        x = _.positionProp == 'left' ? Math.ceil(position) + 'px' : '0px';
        y = _.positionProp == 'top' ? Math.ceil(position) + 'px' : '0px';

        positionProps[_.positionProp] = position;

        if (_.transformsEnabled === false) {
            _.$slideTrack.css(positionProps);
        } else {
            positionProps = {};
            if (_.cssTransitions === false) {
                positionProps[_.animType] = 'translate(' + x + ', ' + y + ')';
                _.$slideTrack.css(positionProps);
            } else {
                positionProps[_.animType] = 'translate3d(' + x + ', ' + y + ', 0px)';
                _.$slideTrack.css(positionProps);
            }
        }

    };

    Slick.prototype.setDimensions = function() {

        var _ = this;

        if (_.options.vertical === false) {
            if (_.options.centerMode === true) {
                _.$list.css({
                    padding: ('0px ' + _.options.centerPadding)
                });
            }
        } else {
            _.$list.height(_.$slides.first().outerHeight(true) * _.options.slidesToShow);
            if (_.options.centerMode === true) {
                _.$list.css({
                    padding: (_.options.centerPadding + ' 0px')
                });
            }
        }

        _.listWidth = _.$list.width();
        _.listHeight = _.$list.height();


        if (_.options.vertical === false && _.options.variableWidth === false) {
            _.slideWidth = Math.ceil(_.listWidth / _.options.slidesToShow);
            _.$slideTrack.width(Math.ceil((_.slideWidth * _.$slideTrack.children('.slick-slide').length)));

        } else if (_.options.variableWidth === true) {
            _.$slideTrack.width(5000 * _.slideCount);
        } else {
            _.slideWidth = Math.ceil(_.listWidth);
            _.$slideTrack.height(Math.ceil((_.$slides.first().outerHeight(true) * _.$slideTrack.children('.slick-slide').length)));
        }

        var offset = _.$slides.first().outerWidth(true) - _.$slides.first().width();
        if (_.options.variableWidth === false) _.$slideTrack.children('.slick-slide').width(_.slideWidth - offset);

    };

    Slick.prototype.setFade = function() {

        var _ = this,
            targetLeft;

        _.$slides.each(function(index, element) {
            targetLeft = (_.slideWidth * index) * -1;
            if (_.options.rtl === true) {
                $(element).css({
                    position: 'relative',
                    right: targetLeft,
                    top: 0,
                    zIndex: _.options.zIndex - 2,
                    opacity: 0
                });
            } else {
                $(element).css({
                    position: 'relative',
                    left: targetLeft,
                    top: 0,
                    zIndex: _.options.zIndex - 2,
                    opacity: 0
                });
            }
        });

        _.$slides.eq(_.currentSlide).css({
            zIndex: _.options.zIndex - 1,
            opacity: 1
        });

    };

    Slick.prototype.setHeight = function() {

        var _ = this;

        if (_.options.slidesToShow === 1 && _.options.adaptiveHeight === true && _.options.vertical === false) {
            var targetHeight = _.$slides.eq(_.currentSlide).outerHeight(true);
            _.$list.css('height', targetHeight);
        }

    };

    Slick.prototype.setOption =
    Slick.prototype.slickSetOption = function() {

        /**
         * accepts arguments in format of:
         *
         *  - for changing a single option's value:
         *     .slick("setOption", option, value, refresh )
         *
         *  - for changing a set of responsive options:
         *     .slick("setOption", 'responsive', [{}, ...], refresh )
         *
         *  - for updating multiple values at once (not responsive)
         *     .slick("setOption", { 'option': value, ... }, refresh )
         */

        var _ = this, l, item, option, value, refresh = false, type;

        if( $.type( arguments[0] ) === 'object' ) {

            option =  arguments[0];
            refresh = arguments[1];
            type = 'multiple';

        } else if ( $.type( arguments[0] ) === 'string' ) {

            option =  arguments[0];
            value = arguments[1];
            refresh = arguments[2];

            if ( arguments[0] === 'responsive' && $.type( arguments[1] ) === 'array' ) {

                type = 'responsive';

            } else if ( typeof arguments[1] !== 'undefined' ) {

                type = 'single';

            }

        }

        if ( type === 'single' ) {

            _.options[option] = value;


        } else if ( type === 'multiple' ) {

            $.each( option , function( opt, val ) {

                _.options[opt] = val;

            });


        } else if ( type === 'responsive' ) {

            for ( item in value ) {

                if( $.type( _.options.responsive ) !== 'array' ) {

                    _.options.responsive = [ value[item] ];

                } else {

                    l = _.options.responsive.length-1;

                    // loop through the responsive object and splice out duplicates.
                    while( l >= 0 ) {

                        if( _.options.responsive[l].breakpoint === value[item].breakpoint ) {

                            _.options.responsive.splice(l,1);

                        }

                        l--;

                    }

                    _.options.responsive.push( value[item] );

                }

            }

        }

        if ( refresh ) {

            _.unload();
            _.reinit();

        }

    };

    Slick.prototype.setPosition = function() {

        var _ = this;

        _.setDimensions();

        _.setHeight();

        if (_.options.fade === false) {
            _.setCSS(_.getLeft(_.currentSlide));
        } else {
            _.setFade();
        }

        _.$slider.trigger('setPosition', [_]);

    };

    Slick.prototype.setProps = function() {

        var _ = this,
            bodyStyle = document.body.style;

        _.positionProp = _.options.vertical === true ? 'top' : 'left';

        if (_.positionProp === 'top') {
            _.$slider.addClass('slick-vertical');
        } else {
            _.$slider.removeClass('slick-vertical');
        }

        if (bodyStyle.WebkitTransition !== undefined ||
            bodyStyle.MozTransition !== undefined ||
            bodyStyle.msTransition !== undefined) {
            if (_.options.useCSS === true) {
                _.cssTransitions = true;
            }
        }

        if ( _.options.fade ) {
            if ( typeof _.options.zIndex === 'number' ) {
                if( _.options.zIndex < 3 ) {
                    _.options.zIndex = 3;
                }
            } else {
                _.options.zIndex = _.defaults.zIndex;
            }
        }

        if (bodyStyle.OTransform !== undefined) {
            _.animType = 'OTransform';
            _.transformType = '-o-transform';
            _.transitionType = 'OTransition';
            if (bodyStyle.perspectiveProperty === undefined && bodyStyle.webkitPerspective === undefined) _.animType = false;
        }
        if (bodyStyle.MozTransform !== undefined) {
            _.animType = 'MozTransform';
            _.transformType = '-moz-transform';
            _.transitionType = 'MozTransition';
            if (bodyStyle.perspectiveProperty === undefined && bodyStyle.MozPerspective === undefined) _.animType = false;
        }
        if (bodyStyle.webkitTransform !== undefined) {
            _.animType = 'webkitTransform';
            _.transformType = '-webkit-transform';
            _.transitionType = 'webkitTransition';
            if (bodyStyle.perspectiveProperty === undefined && bodyStyle.webkitPerspective === undefined) _.animType = false;
        }
        if (bodyStyle.msTransform !== undefined) {
            _.animType = 'msTransform';
            _.transformType = '-ms-transform';
            _.transitionType = 'msTransition';
            if (bodyStyle.msTransform === undefined) _.animType = false;
        }
        if (bodyStyle.transform !== undefined && _.animType !== false) {
            _.animType = 'transform';
            _.transformType = 'transform';
            _.transitionType = 'transition';
        }
        _.transformsEnabled = _.options.useTransform && (_.animType !== null && _.animType !== false);
    };


    Slick.prototype.setSlideClasses = function(index) {

        var _ = this,
            centerOffset, allSlides, indexOffset, remainder;

        allSlides = _.$slider
            .find('.slick-slide')
            .removeClass('slick-active slick-center slick-current')
            .attr('aria-hidden', 'true');

        _.$slides
            .eq(index)
            .addClass('slick-current');

        if (_.options.centerMode === true) {

            var evenCoef = _.options.slidesToShow % 2 === 0 ? 1 : 0;

            centerOffset = Math.floor(_.options.slidesToShow / 2);

            if (_.options.infinite === true) {

                if (index >= centerOffset && index <= (_.slideCount - 1) - centerOffset) {
                    _.$slides
                        .slice(index - centerOffset + evenCoef, index + centerOffset + 1)
                        .addClass('slick-active')
                        .attr('aria-hidden', 'false');

                } else {

                    indexOffset = _.options.slidesToShow + index;
                    allSlides
                        .slice(indexOffset - centerOffset + 1 + evenCoef, indexOffset + centerOffset + 2)
                        .addClass('slick-active')
                        .attr('aria-hidden', 'false');

                }

                if (index === 0) {

                    allSlides
                        .eq(allSlides.length - 1 - _.options.slidesToShow)
                        .addClass('slick-center');

                } else if (index === _.slideCount - 1) {

                    allSlides
                        .eq(_.options.slidesToShow)
                        .addClass('slick-center');

                }

            }

            _.$slides
                .eq(index)
                .addClass('slick-center');

        } else {

            if (index >= 0 && index <= (_.slideCount - _.options.slidesToShow)) {

                _.$slides
                    .slice(index, index + _.options.slidesToShow)
                    .addClass('slick-active')
                    .attr('aria-hidden', 'false');

            } else if (allSlides.length <= _.options.slidesToShow) {

                allSlides
                    .addClass('slick-active')
                    .attr('aria-hidden', 'false');

            } else {

                remainder = _.slideCount % _.options.slidesToShow;
                indexOffset = _.options.infinite === true ? _.options.slidesToShow + index : index;

                if (_.options.slidesToShow == _.options.slidesToScroll && (_.slideCount - index) < _.options.slidesToShow) {

                    allSlides
                        .slice(indexOffset - (_.options.slidesToShow - remainder), indexOffset + remainder)
                        .addClass('slick-active')
                        .attr('aria-hidden', 'false');

                } else {

                    allSlides
                        .slice(indexOffset, indexOffset + _.options.slidesToShow)
                        .addClass('slick-active')
                        .attr('aria-hidden', 'false');

                }

            }

        }

        if (_.options.lazyLoad === 'ondemand' || _.options.lazyLoad === 'anticipated') {
            _.lazyLoad();
        }
    };

    Slick.prototype.setupInfinite = function() {

        var _ = this,
            i, slideIndex, infiniteCount;

        if (_.options.fade === true) {
            _.options.centerMode = false;
        }

        if (_.options.infinite === true && _.options.fade === false) {

            slideIndex = null;

            if (_.slideCount > _.options.slidesToShow) {

                if (_.options.centerMode === true) {
                    infiniteCount = _.options.slidesToShow + 1;
                } else {
                    infiniteCount = _.options.slidesToShow;
                }

                for (i = _.slideCount; i > (_.slideCount -
                        infiniteCount); i -= 1) {
                    slideIndex = i - 1;
                    $(_.$slides[slideIndex]).clone(true).attr('id', '')
                        .attr('data-slick-index', slideIndex - _.slideCount)
                        .prependTo(_.$slideTrack).addClass('slick-cloned');
                }
                for (i = 0; i < infiniteCount  + _.slideCount; i += 1) {
                    slideIndex = i;
                    $(_.$slides[slideIndex]).clone(true).attr('id', '')
                        .attr('data-slick-index', slideIndex + _.slideCount)
                        .appendTo(_.$slideTrack).addClass('slick-cloned');
                }
                _.$slideTrack.find('.slick-cloned').find('[id]').each(function() {
                    $(this).attr('id', '');
                });

            }

        }

    };

    Slick.prototype.interrupt = function( toggle ) {

        var _ = this;

        if( !toggle ) {
            _.autoPlay();
        }
        _.interrupted = toggle;

    };

    Slick.prototype.selectHandler = function(event) {

        var _ = this;

        var targetElement =
            $(event.target).is('.slick-slide') ?
                $(event.target) :
                $(event.target).parents('.slick-slide');

        var index = parseInt(targetElement.attr('data-slick-index'));

        if (!index) index = 0;

        if (_.slideCount <= _.options.slidesToShow) {

            _.slideHandler(index, false, true);
            return;

        }

        _.slideHandler(index);

    };

    Slick.prototype.slideHandler = function(index, sync, dontAnimate) {

        var targetSlide, animSlide, oldSlide, slideLeft, targetLeft = null,
            _ = this, navTarget;

        sync = sync || false;

        if (_.animating === true && _.options.waitForAnimate === true) {
            return;
        }

        if (_.options.fade === true && _.currentSlide === index) {
            return;
        }

        if (sync === false) {
            _.asNavFor(index);
        }

        targetSlide = index;
        targetLeft = _.getLeft(targetSlide);
        slideLeft = _.getLeft(_.currentSlide);

        _.currentLeft = _.swipeLeft === null ? slideLeft : _.swipeLeft;

        if (_.options.infinite === false && _.options.centerMode === false && (index < 0 || index > _.getDotCount() * _.options.slidesToScroll)) {
            if (_.options.fade === false) {
                targetSlide = _.currentSlide;
                if (dontAnimate !== true && _.slideCount > _.options.slidesToShow) {
                    _.animateSlide(slideLeft, function() {
                        _.postSlide(targetSlide);
                    });
                } else {
                    _.postSlide(targetSlide);
                }
            }
            return;
        } else if (_.options.infinite === false && _.options.centerMode === true && (index < 0 || index > (_.slideCount - _.options.slidesToScroll))) {
            if (_.options.fade === false) {
                targetSlide = _.currentSlide;
                if (dontAnimate !== true && _.slideCount > _.options.slidesToShow) {
                    _.animateSlide(slideLeft, function() {
                        _.postSlide(targetSlide);
                    });
                } else {
                    _.postSlide(targetSlide);
                }
            }
            return;
        }

        if ( _.options.autoplay ) {
            clearInterval(_.autoPlayTimer);
        }

        if (targetSlide < 0) {
            if (_.slideCount % _.options.slidesToScroll !== 0) {
                animSlide = _.slideCount - (_.slideCount % _.options.slidesToScroll);
            } else {
                animSlide = _.slideCount + targetSlide;
            }
        } else if (targetSlide >= _.slideCount) {
            if (_.slideCount % _.options.slidesToScroll !== 0) {
                animSlide = 0;
            } else {
                animSlide = targetSlide - _.slideCount;
            }
        } else {
            animSlide = targetSlide;
        }

        _.animating = true;

        _.$slider.trigger('beforeChange', [_, _.currentSlide, animSlide]);

        oldSlide = _.currentSlide;
        _.currentSlide = animSlide;

        _.setSlideClasses(_.currentSlide);

        if ( _.options.asNavFor ) {

            navTarget = _.getNavTarget();
            navTarget = navTarget.slick('getSlick');

            if ( navTarget.slideCount <= navTarget.options.slidesToShow ) {
                navTarget.setSlideClasses(_.currentSlide);
            }

        }

        _.updateDots();
        _.updateArrows();

        if (_.options.fade === true) {
            if (dontAnimate !== true) {

                _.fadeSlideOut(oldSlide);

                _.fadeSlide(animSlide, function() {
                    _.postSlide(animSlide);
                });

            } else {
                _.postSlide(animSlide);
            }
            _.animateHeight();
            return;
        }

        if (dontAnimate !== true && _.slideCount > _.options.slidesToShow) {
            _.animateSlide(targetLeft, function() {
                _.postSlide(animSlide);
            });
        } else {
            _.postSlide(animSlide);
        }

    };

    Slick.prototype.startLoad = function() {

        var _ = this;

        if (_.options.arrows === true && _.slideCount > _.options.slidesToShow) {

            _.$prevArrow.hide();
            _.$nextArrow.hide();

        }

        if (_.options.dots === true && _.slideCount > _.options.slidesToShow) {

            _.$dots.hide();

        }

        _.$slider.addClass('slick-loading');

    };

    Slick.prototype.swipeDirection = function() {

        var xDist, yDist, r, swipeAngle, _ = this;

        xDist = _.touchObject.startX - _.touchObject.curX;
        yDist = _.touchObject.startY - _.touchObject.curY;
        r = Math.atan2(yDist, xDist);

        swipeAngle = Math.round(r * 180 / Math.PI);
        if (swipeAngle < 0) {
            swipeAngle = 360 - Math.abs(swipeAngle);
        }

        if ((swipeAngle <= 45) && (swipeAngle >= 0)) {
            return (_.options.rtl === false ? 'left' : 'right');
        }
        if ((swipeAngle <= 360) && (swipeAngle >= 315)) {
            return (_.options.rtl === false ? 'left' : 'right');
        }
        if ((swipeAngle >= 135) && (swipeAngle <= 225)) {
            return (_.options.rtl === false ? 'right' : 'left');
        }
        if (_.options.verticalSwiping === true) {
            if ((swipeAngle >= 35) && (swipeAngle <= 135)) {
                return 'down';
            } else {
                return 'up';
            }
        }

        return 'vertical';

    };

    Slick.prototype.swipeEnd = function(event) {

        var _ = this,
            slideCount,
            direction;

        _.dragging = false;
        _.swiping = false;

        if (_.scrolling) {
            _.scrolling = false;
            return false;
        }

        _.interrupted = false;
        _.shouldClick = ( _.touchObject.swipeLength > 10 ) ? false : true;

        if ( _.touchObject.curX === undefined ) {
            return false;
        }

        if ( _.touchObject.edgeHit === true ) {
            _.$slider.trigger('edge', [_, _.swipeDirection() ]);
        }

        if ( _.touchObject.swipeLength >= _.touchObject.minSwipe ) {

            direction = _.swipeDirection();

            switch ( direction ) {

                case 'left':
                case 'down':

                    slideCount =
                        _.options.swipeToSlide ?
                            _.checkNavigable( _.currentSlide + _.getSlideCount() ) :
                            _.currentSlide + _.getSlideCount();

                    _.currentDirection = 0;

                    break;

                case 'right':
                case 'up':

                    slideCount =
                        _.options.swipeToSlide ?
                            _.checkNavigable( _.currentSlide - _.getSlideCount() ) :
                            _.currentSlide - _.getSlideCount();

                    _.currentDirection = 1;

                    break;

                default:


            }

            if( direction != 'vertical' ) {

                _.slideHandler( slideCount );
                _.touchObject = {};
                _.$slider.trigger('swipe', [_, direction ]);

            }

        } else {

            if ( _.touchObject.startX !== _.touchObject.curX ) {

                _.slideHandler( _.currentSlide );
                _.touchObject = {};

            }

        }

    };

    Slick.prototype.swipeHandler = function(event) {

        var _ = this;

        if ((_.options.swipe === false) || ('ontouchend' in document && _.options.swipe === false)) {
            return;
        } else if (_.options.draggable === false && event.type.indexOf('mouse') !== -1) {
            return;
        }

        _.touchObject.fingerCount = event.originalEvent && event.originalEvent.touches !== undefined ?
            event.originalEvent.touches.length : 1;

        _.touchObject.minSwipe = _.listWidth / _.options
            .touchThreshold;

        if (_.options.verticalSwiping === true) {
            _.touchObject.minSwipe = _.listHeight / _.options
                .touchThreshold;
        }

        switch (event.data.action) {

            case 'start':
                _.swipeStart(event);
                break;

            case 'move':
                _.swipeMove(event);
                break;

            case 'end':
                _.swipeEnd(event);
                break;

        }

    };

    Slick.prototype.swipeMove = function(event) {

        var _ = this,
            edgeWasHit = false,
            curLeft, swipeDirection, swipeLength, positionOffset, touches, verticalSwipeLength;

        touches = event.originalEvent !== undefined ? event.originalEvent.touches : null;

        if (!_.dragging || _.scrolling || touches && touches.length !== 1) {
            return false;
        }

        curLeft = _.getLeft(_.currentSlide);

        _.touchObject.curX = touches !== undefined ? touches[0].pageX : event.clientX;
        _.touchObject.curY = touches !== undefined ? touches[0].pageY : event.clientY;

        _.touchObject.swipeLength = Math.round(Math.sqrt(
            Math.pow(_.touchObject.curX - _.touchObject.startX, 2)));

        verticalSwipeLength = Math.round(Math.sqrt(
            Math.pow(_.touchObject.curY - _.touchObject.startY, 2)));

        if (!_.options.verticalSwiping && !_.swiping && verticalSwipeLength > 4) {
            _.scrolling = true;
            return false;
        }

        if (_.options.verticalSwiping === true) {
            _.touchObject.swipeLength = verticalSwipeLength;
        }

        swipeDirection = _.swipeDirection();

        if (event.originalEvent !== undefined && _.touchObject.swipeLength > 4) {
            _.swiping = true;
            event.preventDefault();
        }

        positionOffset = (_.options.rtl === false ? 1 : -1) * (_.touchObject.curX > _.touchObject.startX ? 1 : -1);
        if (_.options.verticalSwiping === true) {
            positionOffset = _.touchObject.curY > _.touchObject.startY ? 1 : -1;
        }


        swipeLength = _.touchObject.swipeLength;

        _.touchObject.edgeHit = false;

        if (_.options.infinite === false) {
            if ((_.currentSlide === 0 && swipeDirection === 'right') || (_.currentSlide >= _.getDotCount() && swipeDirection === 'left')) {
                swipeLength = _.touchObject.swipeLength * _.options.edgeFriction;
                _.touchObject.edgeHit = true;
            }
        }

        if (_.options.vertical === false) {
            _.swipeLeft = curLeft + swipeLength * positionOffset;
        } else {
            _.swipeLeft = curLeft + (swipeLength * (_.$list.height() / _.listWidth)) * positionOffset;
        }
        if (_.options.verticalSwiping === true) {
            _.swipeLeft = curLeft + swipeLength * positionOffset;
        }

        if (_.options.fade === true || _.options.touchMove === false) {
            return false;
        }

        if (_.animating === true) {
            _.swipeLeft = null;
            return false;
        }

        _.setCSS(_.swipeLeft);

    };

    Slick.prototype.swipeStart = function(event) {

        var _ = this,
            touches;

        _.interrupted = true;

        if (_.touchObject.fingerCount !== 1 || _.slideCount <= _.options.slidesToShow) {
            _.touchObject = {};
            return false;
        }

        if (event.originalEvent !== undefined && event.originalEvent.touches !== undefined) {
            touches = event.originalEvent.touches[0];
        }

        _.touchObject.startX = _.touchObject.curX = touches !== undefined ? touches.pageX : event.clientX;
        _.touchObject.startY = _.touchObject.curY = touches !== undefined ? touches.pageY : event.clientY;

        _.dragging = true;

    };

    Slick.prototype.unfilterSlides = Slick.prototype.slickUnfilter = function() {

        var _ = this;

        if (_.$slidesCache !== null) {

            _.unload();

            _.$slideTrack.children(this.options.slide).detach();

            _.$slidesCache.appendTo(_.$slideTrack);

            _.reinit();

        }

    };

    Slick.prototype.unload = function() {

        var _ = this;

        $('.slick-cloned', _.$slider).remove();

        if (_.$dots) {
            _.$dots.remove();
        }

        if (_.$prevArrow && _.htmlExpr.test(_.options.prevArrow)) {
            _.$prevArrow.remove();
        }

        if (_.$nextArrow && _.htmlExpr.test(_.options.nextArrow)) {
            _.$nextArrow.remove();
        }

        _.$slides
            .removeClass('slick-slide slick-active slick-visible slick-current')
            .attr('aria-hidden', 'true')
            .css('width', '');

    };

    Slick.prototype.unslick = function(fromBreakpoint) {

        var _ = this;
        _.$slider.trigger('unslick', [_, fromBreakpoint]);
        _.destroy();

    };

    Slick.prototype.updateArrows = function() {

        var _ = this,
            centerOffset;

        centerOffset = Math.floor(_.options.slidesToShow / 2);

        if ( _.options.arrows === true &&
            _.slideCount > _.options.slidesToShow &&
            !_.options.infinite ) {

            _.$prevArrow.removeClass('slick-disabled').attr('aria-disabled', 'false');
            _.$nextArrow.removeClass('slick-disabled').attr('aria-disabled', 'false');

            if (_.currentSlide === 0) {

                _.$prevArrow.addClass('slick-disabled').attr('aria-disabled', 'true');
                _.$nextArrow.removeClass('slick-disabled').attr('aria-disabled', 'false');

            } else if (_.currentSlide >= _.slideCount - _.options.slidesToShow && _.options.centerMode === false) {

                _.$nextArrow.addClass('slick-disabled').attr('aria-disabled', 'true');
                _.$prevArrow.removeClass('slick-disabled').attr('aria-disabled', 'false');

            } else if (_.currentSlide >= _.slideCount - 1 && _.options.centerMode === true) {

                _.$nextArrow.addClass('slick-disabled').attr('aria-disabled', 'true');
                _.$prevArrow.removeClass('slick-disabled').attr('aria-disabled', 'false');

            }

        }

    };

    Slick.prototype.updateDots = function() {

        var _ = this;

        if (_.$dots !== null) {

            _.$dots
                .find('li')
                    .removeClass('slick-active')
                    .end();

            _.$dots
                .find('li')
                .eq(Math.floor(_.currentSlide / _.options.slidesToScroll))
                .addClass('slick-active');

        }

    };

    Slick.prototype.visibility = function() {

        var _ = this;

        if ( _.options.autoplay ) {

            if ( document[_.hidden] ) {

                _.interrupted = true;

            } else {

                _.interrupted = false;

            }

        }

    };

    $.fn.slick = function() {
        var _ = this,
            opt = arguments[0],
            args = Array.prototype.slice.call(arguments, 1),
            l = _.length,
            i,
            ret;
        for (i = 0; i < l; i++) {
            if (typeof opt == 'object' || typeof opt == 'undefined')
                _[i].slick = new Slick(_[i], opt);
            else
                ret = _[i].slick[opt].apply(_[i].slick, args);
            if (typeof ret != 'undefined') return ret;
        }
        return _;
    };

}));

/*
Dient dazu Daten mit Tabs darzustellen.
*/
(function ($) {
    $.fn.tabs = function (options) {
        var settings = $.extend({
        }, options || {});
        
        function init(elements) {
            elements.each(function (index) {
                // set old class as class for the new container
                var c= $(this).attr('class');
                c= c.replace('tabbed-content', '');
                $(this).attr('class', 'tabbed-content');
                
                var $container = $('<div>').addClass('tabbed-content-container '+c),
                    isSelect = $(this).attr('data-type')=='select';
                var $menu = isSelect ? $('<select class="tab-navigation" />') : $('<ul class="tab-navigation" />');
                
                $('>div', this).each(function (i) {
                    
                    $(this).addClass('tab-item');
                    var title= $(this).attr('data-title'),
                        $tabTitleElement= $('>.tab-title', this),
                        $item='', titleClass='';
                    
                    if ($tabTitleElement.length) {
                        title= $tabTitleElement.html();
                        titleClass= $tabTitleElement.removeClass('tab-title').attr('class');
                        titleClass+= i==0 ? ' active' : '';
                        $tabTitleElement.remove();
                    }
                    
                    if (isSelect) {
                        $item = $('<option>').html(title).attr('value', i);
                    } else {
                        var classSuffix = i==0 ? ' active' : '';
                        var wrapExtraSpan = $container.hasClass('tabbed-box-style');
                        var $button= $('<span>').attr('class', titleClass+classSuffix).html(title).click(changeTab);
                        $item = $('<li>').append($button);
                        
                        if(wrapExtraSpan) {
                            $button.wrapInner($('<span>'));
                        }
                    }
                    
                    $menu.append($item);
                    
                    if(i!=0) {
                        $(this).addClass('tab-closed');
                    }
                });
                
                if (isSelect) {
                    $menu.change(changeTab);
                }
                
                if(!isSelect && $('>div', this).length>0 || isSelect && $('>div', this).length>1) {
                    $container.prepend($menu);
                } else {
                    $container.addClass('tabbed-content-1entry')
                }
                $(this).before($container);
                $container.append(this);
                if (isSelect) {
                    $menu.wrap($('<div class="select-container"></div>'));
                    
                    if ($(this).attr('data-filter-label')) {
                        var $c = $('<div class="select-row"></div>');
                        var $label = $('<label for="filter-'+index+'" />').text($(this).attr('data-filter-label'));
                        $menu.attr('id', 'filter-'+index).parent().wrap($c);
                        $menu.parent().before($label);
                    }
                }
                
                $currentTab = $('>.tabbed-content>div:nth-child(1)', $container);
                $(this).trigger('tabbed-content.tab.loaded', [$currentTab]);
            });
        }
        
        function changeTab() {
            var isSelect= $(this).prop('tagName')=='OPTION' || $(this).prop('tagName')=='SELECT';
            var targetTabIndex= isSelect ? parseInt($(this).val()) : $(this).parent().index();
            $(this).trigger('tabbed-content.tab.load');
            
            if(!isSelect) {
                var navi= $(this).closest('.tab-navigation');
                $('li > *', navi).removeClass('active');
                $('li:nth-child('+(targetTabIndex+1)+') > *', navi).addClass('active');
            }
            const $contentContainer= $('.tabbed-content', $(this).closest('.tabbed-content-container'));
            
            $lastTab = $('>div:not(.tab-closed)', $contentContainer).addClass('tab-closed');
            $currentTab = $('>div:nth-child('+(targetTabIndex+1)+')', $contentContainer).removeClass('tab-closed');
            $(this).trigger('tabbed-content.tab.loaded', [$currentTab, $lastTab]);
        }
        
        init(this);
        return this;
    }
})(jQuery);

/*
Dient dazu Daten mit Tabs darzustellen.
*/
(function ($) {
    'use strict';
    var FilterItems = window.FilterItems || {};

    FilterItems = (function() {

        var instanceUid = 0; // needed?

        function FilterItems(element, settings) {
            var _ = this, dataSettings;

            _.initials = {
                $container: $(element),
                $nav: null,
                $items: null,
                $itemContainer: null,
                $showMoreButton: null,
            };

            $.extend(_, _.initials);
            
            dataSettings = $(element).data('filter-items') || {};
            _.defaults = {
                showCount: true,
                hideEmpty: true,
                addAllOption: true,
                showMore: true,
            };
            _.options = $.extend({}, _.defaults, settings, dataSettings);
            
            _.instanceUid = instanceUid++;
            
            _.applyFilter = $.proxy(_.applyFilter, _);
            _.showMore = $.proxy(_.showMore, _);
            _.selectHandler = $.proxy(_.selectHandler, _);
            _.setRowHeight = $.proxy(_.setRowHeight, _);
            
            _.init();
            _.initEvents();
            
        }
        return FilterItems;
    }());
    
    FilterItems.prototype.init = function() {
        var _ = this;
        _.$nav = $('.filter-nav', _.$container);
        _.$itemContainer = $('.filter-items', _.$container);
        _.$items = $('.filter-items > *', _.$container);
        
        if (_.options.showMore) {
            if ($('>.show-more', _.$container).length == 0) {
                _.$showMoreButton = $('<button class="button-5 show-more">show more</button>');
                _.$container.append(_.$showMoreButton);
            } else {
                _.$showMoreButton = $('>.show-more', _.$container);
            }
        }
        
        // set first item as active
        _.applyFilter($('>li:first-child>*:first-child', _.$nav));
        
        if (_.options.showCount || _.options.hideEmpty) {
            
            $('li>*:first-child', _.$nav).each(function () {
                var filterBy = $(this).data('filter'),
                    count = 0,
                    parents = [];
                
                if (filterBy == 'all') {
                    count = _.$items.length;
                    parents = _.getNavItemParents($(this));
                    if (parents.length>1) {
                        count = 0;
                        filterBy = parents[1].data('filter');
                    }
                }
                
                if (filterBy != 'all') {
                    filterBy = Array.isArray(filterBy) ? filterBy : [filterBy];
                
                    _.$items.each(function() {
                        var $e = $(this),
                            filter = $e.data('filter'),
                            //isVisible = filterBy.every(a => filter.indexOf(a) > -1);
                            isVisible = filterBy.every(function(a) {
                                return filter.indexOf(a) > -1;
                            });
                        if (isVisible) {
                            count++;
                        }
                    });
                }
                
                // show item count for each nav element
                if (_.options.showCount) {
                    $(this).append($('<span class="filter-count">('+count+')</span>'))
                }
                
                // hide nav elements without items
                if (count == 0 && _.options.hideEmpty) {
                    $(this).parent().addClass('filter-empty');
                }
                
            });
        }
        
    };
    
    FilterItems.prototype.initEvents = function() {
        var _ = this;
        $('*:first-child', _.$nav).on('click.filterItems', _.selectHandler);
        _.$showMoreButton.on('click.show-more', _.showMore);
        $(window).on('resize.filter-more', _.setRowHeight);
    }
    
    FilterItems.prototype.getNavItemParents = function($element, setAsActive) {
        var parents = [],
            $e,
            _ = this;
        $element = $element.parent();
        
        while($element) {
            if ($element[0].tagName == 'LI') {
                $e = $('>*:first-child', $element);
                if (setAsActive) {
                    $e.addClass('active')
                }
                parents.push($e);
            } else if ($element.is(_.$nav)) {
                break;
            }
            $element = $element.parent();
        }
        
        return parents;
    }
    
    FilterItems.prototype.selectHandler = function(event) {
        var _ = this,
                $button;
        
        $button = $(event.target).hasClass('filter-count') ? $(event.target).parent() : $(event.target);
        
        if ($button.tagName == 'A') {
            event.preventDefault();
        }
        
        _.applyFilter($button);
    }
    
    FilterItems.prototype.getNumItemsPerRow = function() {
        var _ = this,
            containerWidth = _.$itemContainer.outerWidth(),
            itemWidth = _.$items.eq(0).outerWidth(),
            maxItemsPerRow = containerWidth / itemWidth;
        return maxItemsPerRow;
    }
    
    FilterItems.prototype.showMore = function(e) {
        var _ = this,
                hideItems = true;
        if (typeof e === 'undefined') {
            e = true;
        }
        if (typeof e == 'object') {
            hideItems = _.$showMoreButton.hasClass('hidden');
        } else {
            hideItems = e;
        }
        
        if (hideItems) {
            _.$showMoreButton.removeClass('hidden');
            var maxItems = _.getNumItemsPerRow();
            _.$itemContainer.addClass('only-first-row');
            //$('*:not(.filter-hidden)', _.$items)
        } else {
            _.$itemContainer.removeClass('only-first-row');
            _.$showMoreButton.addClass('hidden');
        }
        
        _.setRowHeight();
    }
    
    FilterItems.prototype.setRowHeight = function () {
        var _ = this;

        if (_.$itemContainer.hasClass('only-first-row')) {
            _.$itemContainer.css('height', _.$items.eq(0).outerHeight()+'px');
        } else {
            _.$itemContainer.css('height', 'auto');
        }
    }
    
    FilterItems.prototype.applyFilter = function($button) {
        var _ = this,
                filterBy = $button.data('filter'),
                $element,
                parents= [],
                count = 0;
        
        $('.active', _.$nav).removeClass('active');
        
        parents = _.getNavItemParents($button, true);
                
        if (filterBy == 'all' && parents.length > 1) {
            filterBy = parents[1].data('filter');
        }
        
        if (filterBy == 'all') {
            _.$items.removeClass('filter-hidden');
            count = _.$items.length;
        } else {
            filterBy = Array.isArray(filterBy) ? filterBy : [filterBy];
            _.$items.each(function() {
                var $e = $(this),
                    filter = $e.data('filter'),
                    //isVisible = filterBy.every(a => filter.indexOf(a) > -1);
                    isVisible = filterBy.every(function(a) {
                        return filter.indexOf(a) > -1;
                    });

                if (isVisible) {
                    $e.removeClass('filter-hidden');
                    count++;
                } else {
                    $e.addClass('filter-hidden');
                }
            });
        }
        
        if ($('> ul', $button.parent()).length>0) {
            $('> ul > li:first-child > *:first-child', $button.parent()).addClass('active');
        }
        
        if (_.options.showMore) {
            //console.log('width', _.getNumItemsPerRow());
            _.showMore(count > _.getNumItemsPerRow());
        }
        
        //console.log('applyFilter', $(event.target).data('filter'), event, this.instanceUid, this);
    }
    
    $.fn.filterItems = function() {
        var _ = this,
            opt = arguments[0],
            args = Array.prototype.slice.call(arguments, 1),
            l = _.length,
            i,
            ret;
        for (i = 0; i < l; i++) {
            if (typeof opt == 'object' || typeof opt == 'undefined') {
                _[i].filterItems = new FilterItems(_[i], opt);
            } else {
                ret = _[i].filterItems[opt].apply(_[i].filterItems, args);
            }
            if (typeof ret != 'undefined') {
                return ret;
            }
        }
        return _;
    };
})(jQuery);

/*
Dient dazu Elemente ein und auszublenden.
*/
(function ($) {
    $.fn.collapsible = function (options) {
        var settings = $.extend({
        }, options || {});
        
        function init(elements) {
            elements.each(function () {
                const $c = $(this);
                
                if ($c.hasClass('closed') || !$c.hasClass('opened')) {
                    $('> .collapsible-content', $c).css('display', 'none');
                    $c.addClass('closed');
                }
                
                $('> .collapsible-header', this).click(function() {
                    if ($c.hasClass('opened')) {
                        $c.removeClass('opened').addClass('closed')
                        $('> .collapsible-content', $c).slideUp(function() {
                            $(window).trigger('collapsible.changed');
                        });
                    } else {
                        $c.removeClass('closed').addClass('opened')
                        $('> .collapsible-content', $c).slideDown(function() {
                            $(window).trigger('collapsible.changed');
                        });
                    }
                    
                });
            });
            $(window).trigger('collapsible.initialized');
        }
        
        init(this);
        return this;
    }
})(jQuery);

/*
Dient dazu Elemente ein und aufzufahren (read more).
*/
(function ($) {
    $.fn.expandable = function (options) {
        var settings = $.extend({
                'duration': 300,
                'closedHeight': 'auto', // px value or auto = try to determine height of row and use this as height
                'fallbackClosedHeight': 200, // if closedHeight = auto, this is the fallback height for closed elements, i.e. used if only element in row
            }, options || {}),
            elements=[];
        
        function getHeight($container, $footer) {
            var closedHeight = settings.closedHeight;
            if (closedHeight == 'auto') {
                
                closedHeight = settings.fallbackClosedHeight;
                
                var $parents = $container.parentsUntil('.row');

                if($parents.length > 0 && $parents.length < 4) {
                    var $row = $container.closest('.row'),
                        isFullWidth= $parents.last().outerWidth() / $row.width() == 1;
                    if(!isFullWidth) {
                        //$container.css('display', 'none');
                        $('.expandable', $row).css('display', 'none');
                        closedHeight = Math.max($row.height(), settings.fallbackClosedHeight);
                        //$container.css('display', 'block');
                        $('.expandable', $row).css('display', 'block');
                        closedHeight -= $footer.outerHeight(true);
                    }
                }
            }
            return closedHeight;
        }
        
        function setClosedHeight() {
            $.each(elements, function (i, element) {
                if(element['container'].hasClass('closed')) {
                    var closedHeight = getHeight(element['container'], element['footer']);
                    element['content'].css('height', closedHeight + 'px');
                }
            });
        }
        
        function initListeners() {
            $(window).on('resize.expandable', function() {
                setClosedHeight();
            });
        }
        
        function init(els) {
            els.each(function () {
                var $container = $(this).addClass('expandable-container'),
                    $content = $('<div />', {'class': 'expandable-content'}),
                    $footer = $('.expandable-footer', $container);
                
                $container.wrapInner($content).append($footer).addClass('closed');
                $content = $('.expandable-content', $container);
                
                $('.expandable-action', $footer).click(function() {
                    var $container = $(this).closest('.expandable-container'),
                        $content = $('.expandable-content', $container),
                        $footer = $('.expandable-footer', $container);
                    
                    if ($container.hasClass('opened')) {
                        var closedHeight = getHeight($container, $footer);
                        $content.animate({
                            height: closedHeight+'px', 
                        }, settings.duration, function() {
                            $container.removeClass('opened').addClass('closed');
                            $(window).trigger('expandable.changed');
                        });
                        $(this).text($(this).attr('data-text-expand'));
                    } else {
                        $container.removeClass('closed').addClass('opened');
                        var oldHeight = $content.height()
                        $content.css('height', 'auto');
                        var totalHeight = $content.height();
                        $content.css('height', oldHeight);
                        
                        $content.animate({
                            height: totalHeight+'px',
                        }, settings.duration, function() {
                            $(window).trigger('expandable.changed');
                        });
                        $(this).text($(this).attr('data-text-hide'));
                    }
                });
                
                elements.push({
                    'container': $container,
                    'content': $content,
                    'footer': $footer
                });
            });
            
            setClosedHeight();
            initListeners();
            
            $(window).trigger('expandable.initialized');
        }
        
        init(this);
        return this;
    }
})(jQuery);

(function(window, factory) {
	var lazySizes = factory(window, window.document);
	window.lazySizes = lazySizes;
	if(typeof module == 'object' && module.exports){
		module.exports = lazySizes;
	}
}(window, function l(window, document) {
	'use strict';
	/*jshint eqnull:true */
	if(!document.getElementsByClassName){return;}

	var lazysizes, lazySizesConfig;

	var docElem = document.documentElement;

	var Date = window.Date;

	var supportPicture = window.HTMLPictureElement;

	var _addEventListener = 'addEventListener';

	var _getAttribute = 'getAttribute';

	var addEventListener = window[_addEventListener];

	var setTimeout = window.setTimeout;

	var requestAnimationFrame = window.requestAnimationFrame || setTimeout;

	var requestIdleCallback = window.requestIdleCallback;

	var regPicture = /^picture$/i;

	var loadEvents = ['load', 'error', 'lazyincluded', '_lazyloaded'];

	var regClassCache = {};

	var forEach = Array.prototype.forEach;

	var hasClass = function(ele, cls) {
		if(!regClassCache[cls]){
			regClassCache[cls] = new RegExp('(\\s|^)'+cls+'(\\s|$)');
		}
		return regClassCache[cls].test(ele[_getAttribute]('class') || '') && regClassCache[cls];
	};

	var addClass = function(ele, cls) {
		if (!hasClass(ele, cls)){
			ele.setAttribute('class', (ele[_getAttribute]('class') || '').trim() + ' ' + cls);
		}
	};

	var removeClass = function(ele, cls) {
		var reg;
		if ((reg = hasClass(ele,cls))) {
			ele.setAttribute('class', (ele[_getAttribute]('class') || '').replace(reg, ' '));
		}
	};

	var addRemoveLoadEvents = function(dom, fn, add){
		var action = add ? _addEventListener : 'removeEventListener';
		if(add){
			addRemoveLoadEvents(dom, fn);
		}
		loadEvents.forEach(function(evt){
			dom[action](evt, fn);
		});
	};

	var triggerEvent = function(elem, name, detail, noBubbles, noCancelable){
		var event = document.createEvent('Event');

		if(!detail){
			detail = {};
		}

		detail.instance = lazysizes;

		event.initEvent(name, !noBubbles, !noCancelable);

		event.detail = detail;

		elem.dispatchEvent(event);
		return event;
	};

	var updatePolyfill = function (el, full){
		var polyfill;
		if( !supportPicture && ( polyfill = (window.picturefill || lazySizesConfig.pf) ) ){
			if(full && full.src && !el[_getAttribute]('srcset')){
				el.setAttribute('srcset', full.src);
			}
			polyfill({reevaluate: true, elements: [el]});
		} else if(full && full.src){
			el.src = full.src;
		}
	};

	var getCSS = function (elem, style){
		return (getComputedStyle(elem, null) || {})[style];
	};

	var getWidth = function(elem, parent, width){
		width = width || elem.offsetWidth;

		while(width < lazySizesConfig.minSize && parent && !elem._lazysizesWidth){
			width =  parent.offsetWidth;
			parent = parent.parentNode;
		}

		return width;
	};

	var rAF = (function(){
		var running, waiting;
		var firstFns = [];
		var secondFns = [];
		var fns = firstFns;

		var run = function(){
			var runFns = fns;

			fns = firstFns.length ? secondFns : firstFns;

			running = true;
			waiting = false;

			while(runFns.length){
				runFns.shift()();
			}

			running = false;
		};

		var rafBatch = function(fn, queue){
			if(running && !queue){
				fn.apply(this, arguments);
			} else {
				fns.push(fn);

				if(!waiting){
					waiting = true;
					(document.hidden ? setTimeout : requestAnimationFrame)(run);
				}
			}
		};

		rafBatch._lsFlush = run;

		return rafBatch;
	})();

	var rAFIt = function(fn, simple){
		return simple ?
			function() {
				rAF(fn);
			} :
			function(){
				var that = this;
				var args = arguments;
				rAF(function(){
					fn.apply(that, args);
				});
			}
		;
	};

	var throttle = function(fn){
		var running;
		var lastTime = 0;
		var gDelay = lazySizesConfig.throttleDelay;
		var rICTimeout = lazySizesConfig.ricTimeout;
		var run = function(){
			running = false;
			lastTime = Date.now();
			fn();
		};
		var idleCallback = requestIdleCallback && rICTimeout > 49 ?
			function(){
				requestIdleCallback(run, {timeout: rICTimeout});

				if(rICTimeout !== lazySizesConfig.ricTimeout){
					rICTimeout = lazySizesConfig.ricTimeout;
				}
			} :
			rAFIt(function(){
				setTimeout(run);
			}, true)
		;

		return function(isPriority){
			var delay;

			if((isPriority = isPriority === true)){
				rICTimeout = 33;
			}

			if(running){
				return;
			}

			running =  true;

			delay = gDelay - (Date.now() - lastTime);

			if(delay < 0){
				delay = 0;
			}

			if(isPriority || delay < 9){
				idleCallback();
			} else {
				setTimeout(idleCallback, delay);
			}
		};
	};

	//based on http://modernjavascript.blogspot.de/2013/08/building-better-debounce.html
	var debounce = function(func) {
		var timeout, timestamp;
		var wait = 99;
		var run = function(){
			timeout = null;
			func();
		};
		var later = function() {
			var last = Date.now() - timestamp;

			if (last < wait) {
				setTimeout(later, wait - last);
			} else {
				(requestIdleCallback || run)(run);
			}
		};

		return function() {
			timestamp = Date.now();

			if (!timeout) {
				timeout = setTimeout(later, wait);
			}
		};
	};

	(function(){
		var prop;

		var lazySizesDefaults = {
			lazyClass: 'lazyload',
			loadedClass: 'lazyloaded',
			loadingClass: 'lazyloading',
			preloadClass: 'lazypreload',
			errorClass: 'lazyerror',
			//strictClass: 'lazystrict',
			autosizesClass: 'lazyautosizes',
			srcAttr: 'data-src',
			srcsetAttr: 'data-srcset',
			sizesAttr: 'data-sizes',
			//preloadAfterLoad: false,
			minSize: 40,
			customMedia: {},
			init: true,
			expFactor: 1.5,
			hFac: 0.8,
			loadMode: 2,
			loadHidden: true,
			ricTimeout: 0,
			throttleDelay: 125,
		};

		lazySizesConfig = window.lazySizesConfig || window.lazysizesConfig || {};

		for(prop in lazySizesDefaults){
			if(!(prop in lazySizesConfig)){
				lazySizesConfig[prop] = lazySizesDefaults[prop];
			}
		}

		window.lazySizesConfig = lazySizesConfig;

		setTimeout(function(){
			if(lazySizesConfig.init){
				init();
			}
		});
	})();

	var loader = (function(){
		var preloadElems, isCompleted, resetPreloadingTimer, loadMode, started;

		var eLvW, elvH, eLtop, eLleft, eLright, eLbottom, isBodyHidden;

		var regImg = /^img$/i;
		var regIframe = /^iframe$/i;

		var supportScroll = ('onscroll' in window) && !(/(gle|ing)bot/.test(navigator.userAgent));

		var shrinkExpand = 0;
		var currentExpand = 0;

		var isLoading = 0;
		var lowRuns = -1;

		var resetPreloading = function(e){
			isLoading--;
			if(e && e.target){
				addRemoveLoadEvents(e.target, resetPreloading);
			}

			if(!e || isLoading < 0 || !e.target){
				isLoading = 0;
			}
		};

		var isVisible = function (elem) {
			if (isBodyHidden == null) {
				isBodyHidden = getCSS(document.body, 'visibility') == 'hidden';
			}

			return isBodyHidden || (getCSS(elem.parentNode, 'visibility') != 'hidden' && getCSS(elem, 'visibility') != 'hidden');
		};

		var isNestedVisible = function(elem, elemExpand){
			var outerRect;
			var parent = elem;
			var visible = isVisible(elem);

			eLtop -= elemExpand;
			eLbottom += elemExpand;
			eLleft -= elemExpand;
			eLright += elemExpand;

			while(visible && (parent = parent.offsetParent) && parent != document.body && parent != docElem){
				visible = ((getCSS(parent, 'opacity') || 1) > 0);

				if(visible && getCSS(parent, 'overflow') != 'visible'){
					outerRect = parent.getBoundingClientRect();
					visible = eLright > outerRect.left &&
						eLleft < outerRect.right &&
						eLbottom > outerRect.top - 1 &&
						eLtop < outerRect.bottom + 1
					;
				}
			}

			return visible;
		};

		var checkElements = function() {
			var eLlen, i, rect, autoLoadElem, loadedSomething, elemExpand, elemNegativeExpand, elemExpandVal,
				beforeExpandVal, defaultExpand, preloadExpand, hFac;
			var lazyloadElems = lazysizes.elements;

			if((loadMode = lazySizesConfig.loadMode) && isLoading < 8 && (eLlen = lazyloadElems.length)){

				i = 0;

				lowRuns++;

				defaultExpand = (!lazySizesConfig.expand || lazySizesConfig.expand < 1) ?
					docElem.clientHeight > 500 && docElem.clientWidth > 500 ? 500 : 370 :
					lazySizesConfig.expand;

				preloadExpand = defaultExpand * lazySizesConfig.expFactor;
				hFac = lazySizesConfig.hFac;
				isBodyHidden = null;

				if(currentExpand < preloadExpand && isLoading < 1 && lowRuns > 2 && loadMode > 2 && !document.hidden){
					currentExpand = preloadExpand;
					lowRuns = 0;
				} else if(loadMode > 1 && lowRuns > 1 && isLoading < 6){
					currentExpand = defaultExpand;
				} else {
					currentExpand = shrinkExpand;
				}

				for(; i < eLlen; i++){

					if(!lazyloadElems[i] || lazyloadElems[i]._lazyRace){continue;}

					if(!supportScroll){unveilElement(lazyloadElems[i]);continue;}

					if(!(elemExpandVal = lazyloadElems[i][_getAttribute]('data-expand')) || !(elemExpand = elemExpandVal * 1)){
						elemExpand = currentExpand;
					}

					if(beforeExpandVal !== elemExpand){
						eLvW = innerWidth + (elemExpand * hFac);
						elvH = innerHeight + elemExpand;
						elemNegativeExpand = elemExpand * -1;
						beforeExpandVal = elemExpand;
					}

					rect = lazyloadElems[i].getBoundingClientRect();

					if ((eLbottom = rect.bottom) >= elemNegativeExpand &&
						(eLtop = rect.top) <= elvH &&
						(eLright = rect.right) >= elemNegativeExpand * hFac &&
						(eLleft = rect.left) <= eLvW &&
						(eLbottom || eLright || eLleft || eLtop) &&
						(lazySizesConfig.loadHidden || isVisible(lazyloadElems[i])) &&
						((isCompleted && isLoading < 3 && !elemExpandVal && (loadMode < 3 || lowRuns < 4)) || isNestedVisible(lazyloadElems[i], elemExpand))){
						unveilElement(lazyloadElems[i]);
						loadedSomething = true;
						if(isLoading > 9){break;}
					} else if(!loadedSomething && isCompleted && !autoLoadElem &&
						isLoading < 4 && lowRuns < 4 && loadMode > 2 &&
						(preloadElems[0] || lazySizesConfig.preloadAfterLoad) &&
						(preloadElems[0] || (!elemExpandVal && ((eLbottom || eLright || eLleft || eLtop) || lazyloadElems[i][_getAttribute](lazySizesConfig.sizesAttr) != 'auto')))){
						autoLoadElem = preloadElems[0] || lazyloadElems[i];
					}
				}

				if(autoLoadElem && !loadedSomething){
					unveilElement(autoLoadElem);
				}
			}
		};

		var throttledCheckElements = throttle(checkElements);

		var switchLoadingClass = function(e){
			addClass(e.target, lazySizesConfig.loadedClass);
			removeClass(e.target, lazySizesConfig.loadingClass);
			addRemoveLoadEvents(e.target, rafSwitchLoadingClass);
			triggerEvent(e.target, 'lazyloaded');
		};
		var rafedSwitchLoadingClass = rAFIt(switchLoadingClass);
		var rafSwitchLoadingClass = function(e){
			rafedSwitchLoadingClass({target: e.target});
		};

		var changeIframeSrc = function(elem, src){
			try {
				elem.contentWindow.location.replace(src);
			} catch(e){
				elem.src = src;
			}
		};

		var handleSources = function(source){
			var customMedia;

			var sourceSrcset = source[_getAttribute](lazySizesConfig.srcsetAttr);

			if( (customMedia = lazySizesConfig.customMedia[source[_getAttribute]('data-media') || source[_getAttribute]('media')]) ){
				source.setAttribute('media', customMedia);
			}

			if(sourceSrcset){
				source.setAttribute('srcset', sourceSrcset);
			}
		};

		var lazyUnveil = rAFIt(function (elem, detail, isAuto, sizes, isImg){
			var src, srcset, parent, isPicture, event, firesLoad;

			if(!(event = triggerEvent(elem, 'lazybeforeunveil', detail)).defaultPrevented){

				if(sizes){
					if(isAuto){
						addClass(elem, lazySizesConfig.autosizesClass);
					} else {
						elem.setAttribute('sizes', sizes);
					}
				}

				srcset = elem[_getAttribute](lazySizesConfig.srcsetAttr);
				src = elem[_getAttribute](lazySizesConfig.srcAttr);

				if(isImg) {
					parent = elem.parentNode;
					isPicture = parent && regPicture.test(parent.nodeName || '');
				}

				firesLoad = detail.firesLoad || (('src' in elem) && (srcset || src || isPicture));

				event = {target: elem};

				if(firesLoad){
					addRemoveLoadEvents(elem, resetPreloading, true);
					clearTimeout(resetPreloadingTimer);
					resetPreloadingTimer = setTimeout(resetPreloading, 2500);

					addClass(elem, lazySizesConfig.loadingClass);
					addRemoveLoadEvents(elem, rafSwitchLoadingClass, true);
				}

				if(isPicture){
					forEach.call(parent.getElementsByTagName('source'), handleSources);
				}

				if(srcset){
					elem.setAttribute('srcset', srcset);
				} else if(src && !isPicture){
					if(regIframe.test(elem.nodeName)){
						changeIframeSrc(elem, src);
					} else {
						elem.src = src;
					}
				}

				if(isImg && (srcset || isPicture)){
					updatePolyfill(elem, {src: src});
				}
			}

			if(elem._lazyRace){
				delete elem._lazyRace;
			}
			removeClass(elem, lazySizesConfig.lazyClass);

			rAF(function(){
				if( !firesLoad || (elem.complete && elem.naturalWidth > 1)){
					if(firesLoad){
						resetPreloading(event);
					} else {
						isLoading--;
					}
					switchLoadingClass(event);
				}
			}, true);
		});

		var unveilElement = function (elem){
			var detail;

			var isImg = regImg.test(elem.nodeName);

			//allow using sizes="auto", but don't use. it's invalid. Use data-sizes="auto" or a valid value for sizes instead (i.e.: sizes="80vw")
			var sizes = isImg && (elem[_getAttribute](lazySizesConfig.sizesAttr) || elem[_getAttribute]('sizes'));
			var isAuto = sizes == 'auto';

			if( (isAuto || !isCompleted) && isImg && (elem[_getAttribute]('src') || elem.srcset) && !elem.complete && !hasClass(elem, lazySizesConfig.errorClass) && hasClass(elem, lazySizesConfig.lazyClass)){return;}

			detail = triggerEvent(elem, 'lazyunveilread').detail;

			if(isAuto){
				 autoSizer.updateElem(elem, true, elem.offsetWidth);
			}

			elem._lazyRace = true;
			isLoading++;

			lazyUnveil(elem, detail, isAuto, sizes, isImg);
		};

		var onload = function(){
			if(isCompleted){return;}
			if(Date.now() - started < 999){
				setTimeout(onload, 999);
				return;
			}
			var afterScroll = debounce(function(){
				lazySizesConfig.loadMode = 3;
				throttledCheckElements();
			});

			isCompleted = true;

			lazySizesConfig.loadMode = 3;

			throttledCheckElements();

			addEventListener('scroll', function(){
				if(lazySizesConfig.loadMode == 3){
					lazySizesConfig.loadMode = 2;
				}
				afterScroll();
			}, true);
		};

		return {
			_: function(){
				started = Date.now();

				lazysizes.elements = document.getElementsByClassName(lazySizesConfig.lazyClass);
				preloadElems = document.getElementsByClassName(lazySizesConfig.lazyClass + ' ' + lazySizesConfig.preloadClass);

				addEventListener('scroll', throttledCheckElements, true);

				addEventListener('resize', throttledCheckElements, true);

				if(window.MutationObserver){
					new MutationObserver( throttledCheckElements ).observe( docElem, {childList: true, subtree: true, attributes: true} );
				} else {
					docElem[_addEventListener]('DOMNodeInserted', throttledCheckElements, true);
					docElem[_addEventListener]('DOMAttrModified', throttledCheckElements, true);
					setInterval(throttledCheckElements, 999);
				}

				addEventListener('hashchange', throttledCheckElements, true);

				//, 'fullscreenchange'
				['focus', 'mouseover', 'click', 'load', 'transitionend', 'animationend', 'webkitAnimationEnd'].forEach(function(name){
					document[_addEventListener](name, throttledCheckElements, true);
				});

				if((/d$|^c/.test(document.readyState))){
					onload();
				} else {
					addEventListener('load', onload);
					document[_addEventListener]('DOMContentLoaded', throttledCheckElements);
					setTimeout(onload, 20000);
				}

				if(lazysizes.elements.length){
					checkElements();
					rAF._lsFlush();
				} else {
					throttledCheckElements();
				}
			},
			checkElems: throttledCheckElements,
			unveil: unveilElement
		};
	})();


	var autoSizer = (function(){
		var autosizesElems;

		var sizeElement = rAFIt(function(elem, parent, event, width){
			var sources, i, len;
			elem._lazysizesWidth = width;
			width += 'px';

			elem.setAttribute('sizes', width);

			if(regPicture.test(parent.nodeName || '')){
				sources = parent.getElementsByTagName('source');
				for(i = 0, len = sources.length; i < len; i++){
					sources[i].setAttribute('sizes', width);
				}
			}

			if(!event.detail.dataAttr){
				updatePolyfill(elem, event.detail);
			}
		});
		var getSizeElement = function (elem, dataAttr, width){
			var event;
			var parent = elem.parentNode;

			if(parent){
				width = getWidth(elem, parent, width);
				event = triggerEvent(elem, 'lazybeforesizes', {width: width, dataAttr: !!dataAttr});

				if(!event.defaultPrevented){
					width = event.detail.width;

					if(width && width !== elem._lazysizesWidth){
						sizeElement(elem, parent, event, width);
					}
				}
			}
		};

		var updateElementsSizes = function(){
			var i;
			var len = autosizesElems.length;
			if(len){
				i = 0;

				for(; i < len; i++){
					getSizeElement(autosizesElems[i]);
				}
			}
		};

		var debouncedUpdateElementsSizes = debounce(updateElementsSizes);

		return {
			_: function(){
				autosizesElems = document.getElementsByClassName(lazySizesConfig.autosizesClass);
				addEventListener('resize', debouncedUpdateElementsSizes);
			},
			checkElems: debouncedUpdateElementsSizes,
			updateElem: getSizeElement
		};
	})();

	var init = function(){
		if(!init.i){
			init.i = true;
			autoSizer._();
			loader._();
		}
	};

	lazysizes = {
		cfg: lazySizesConfig,
		autoSizer: autoSizer,
		loader: loader,
		init: init,
		uP: updatePolyfill,
		aC: addClass,
		rC: removeClass,
		hC: hasClass,
		fire: triggerEvent,
		gW: getWidth,
		rAF: rAF,
	};

	return lazysizes;
}
));

/*
Baut eine Navigation über Elemente auf der gleichen Seite auf
*/
(function ($) {
    $.fn.scrollNav = function (options) {
        var settings = $.extend({
                className:  'scroll-nav',
                item: '.page-nav-item',
                target: '.page-nav-container',
                scrollSpeed: 500,
                scrollOffset: 150,
            }, options || {}),
            $nav,
            items=[];
        
        /*
        <!-- html code -->
        <div class="row page-nav-item" data-page-nav-title="Title" id="anchor-id">
            ...
        </div>
        */
        
        function buildNav (element) {
            $nav = $('<nav />', {'class': settings.className, 'role': 'navigation'});
            var $navList = $('<ol />');
            
            
            $(settings.item, element).each(function (i) {
                var title = $(this).attr('data-page-nav-title') ? $(this).attr('data-page-nav-title') : 'Element '+i;
                var id= this.id;
                if(!id) {
                    id= 'c-'+i;
                    $(this).attr('id', id);
                }
                var $item = $('<li />');
                var $link = $('<a />', {'href': '#' + id, text: title}).click(function (e) {
                    e.preventDefault();
                    $(this).blur();
                    scrollTo( $( $(this).attr('href')), true );
                });
                items.push({
                    'target': $(this),
                    'navItem': $item,
                    'position': 0,
                });
                $navList.append($item.append($link));
            });
            
            $nav.append($navList);
        }
        
        function initItemPositions () {
            $.each(items, function (i, item) {
                items[i]['position'] = item['target'].offset().top;
            });
        }
        
        function checkActiveItem () {
            if($(window).scrollTop() + $(window).height() > $(document).height() - 75) {
                $('.active', $nav).removeClass('active');
                items[items.length-1]['navItem'].addClass('active');    
                return true;
            }
            var currentPosition= $(window).scrollTop() + settings.scrollOffset + 1; // +1 for rounding
            for(var i=0, l=items.length; i<l; i++) {
                if(i==0 && currentPosition < items[i]['position'] || (i+1)==l || currentPosition <= items[(i+1)]['position']) {
                    $('.active', $nav).removeClass('active');
                    items[i]['navItem'].addClass('active');
                    i=l;
                }    
            }
        }
        
        function initListeners() {
            $(window).on('scroll.scrollNav', function() {
                checkActiveItem();
            });
            
            $(window).on('resize.scrollNav', function() {
                initItemPositions();
                checkActiveItem();
            });
        }
        
        function scrollTo ($element, animated) {
            if ( $element.length > 0 ) {
                var scrollSpeed = animated ? settings.scrollSpeed : 0;
                $('html:not(:animated), body:not(:animated)').animate({scrollTop: $element.offset().top - settings.scrollOffset }, scrollSpeed );
            }
        }
        
        function init (element) {
            //elements.each(function (i) {
            //}
            
            buildNav(element);
            initItemPositions();
            checkActiveItem();
            initListeners();
            
            $(settings.target, element).append($nav);
        }
        
        init(this);
        return this;
    }
})(jQuery);

/*
Lässt ein Element mit scrollen
*/
(function ($) {
    $.fn.sticky = function (options) {
        var settings = $.extend({
                offesetTop: 0,
                scrollOffset: 150,
                applyParentPadding: true,
                respectMaxScroll: true
            }, options || {}),
            elements=[];
        
        /*
        <!-- html code -->
        <div class="sticky (fixed)" data-scroll-offset="100">
            ...
        </div>
        */
        
        function initPositions () {
            $.each(elements, function (i, element) {
                element['target'].removeClass('fixed');
                element['target'].css({'top': 0});
                if(settings.applyParentPadding) {
                    element['target'].parent().css('padding-top', 0);
                }
                elements[i]['offset'] = element['target'].attr('data-scroll-offset') ? element['target'].attr('data-scroll-offset') : settings.scrollOffset;
                elements[i]['position'] = element['target'].offset().top - elements[i]['offset'];
                elements[i]['positionMax'] = elements[i]['position'] + element['target'].parent().height() - element['target'].height() - elements[i]['offset'];
            });
            
        }
        
        function checkFixedState () {
            var currentPosition= $(window).scrollTop() - settings.offesetTop;
            $.each(elements, function (i, element) {
                if(!element['target'].hasClass('fixed') && (currentPosition >= element['position']) && (!settings.respectMaxScroll || currentPosition <= element['positionMax'])) {
                    element['target'].addClass('fixed').css({
                        'top': elements[i]['offset'],
                        'width': element['target'].parent().width()+'px'
                    });
                } else if (currentPosition < element['position']) {
                    element['target'].removeClass('fixed').css({'top': 0, 'width': 'auto'});
                } else if (settings.respectMaxScroll && currentPosition > element['positionMax']) {
                    element['target'].removeClass('fixed').css({'top': (element['positionMax']-elements[i]['position'])+'px', 'width': 'auto'});
                }
                
                if (!element['target'].hasClass('at-top') && currentPosition == element['position']) {
                    element['target'].addClass('at-top');
                } else if (element['target'].hasClass('at-top') && currentPosition > element['position']) {
                    element['target'].removeClass('at-top');
                }
                
                if(settings.applyParentPadding) {
                    var paddingTop = element['target'].hasClass('fixed') ? element['target'].height()+'px' : 0;
                    element['target'].parent().css('padding-top', paddingTop);
                }
            });
        }
        
        function initListeners() {
            $(window).on('scroll.sticky', function() {
                checkFixedState();
            });
            
            $(window).on('resize.sticky', function() {
                initPositions();
                checkFixedState();
            });
        }
        
        function init (els) {
            els.each(function (i, element) {
                elements.push({
                    'target': $(element),
                    'position': 0,
                    'positionMax': 0,
                    'offset': 0,
                });
            });
            
            initPositions();
            checkFixedState();
            initListeners();
        }
        
        init(this);
        return this;
    }
})(jQuery);

;(function(root, factory) {
  if (typeof define === 'function' && define.amd) {
    define(['jquery'], factory);
  } else if (typeof exports === 'object') {
    module.exports = factory(require('jquery'));
  } else {
    root.jquery_mmenu_all_js = factory(root.jQuery);
  }
}(this, function(jQuery) {
/*!
 * jQuery mmenu v7.3.3
 * @requires jQuery 1.7.0 or later
 *
 * mmenujs.com
 *
 * Copyright (c) Fred Heusschen
 * www.frebsite.nl
 *
 * License: CC-BY-NC-4.0
 * http://creativecommons.org/licenses/by-nc/4.0/
 */
!function(t){var e,n,i,s,a,r="mmenu";t[r]&&t[r].version>"7.3.3"||(t[r]=function(t,e,n){return this.$menu=t,this._api=["bind","getInstance","initPanels","openPanel","closePanel","closeAllPanels","setSelected"],this.opts=e,this.conf=n,this.vars={},this.cbck={},this.mtch={},"function"==typeof this.___deprecated&&this.___deprecated(),this._initWrappers(),this._initAddons(),this._initExtensions(),this._initHooks(),this._initMenu(),this._initPanels(),this._initOpened(),this._initAnchors(),this._initMatchMedia(),"function"==typeof this.___debug&&this.___debug(),this},t[r].version="7.3.3",t[r].uniqueId=0,t[r].wrappers={},t[r].addons={},t[r].defaults={hooks:{},extensions:[],wrappers:[],navbar:{add:!0,title:"Menu",titleLink:"parent"},onClick:{setSelected:!0},slidingSubmenus:!0},t[r].configuration={classNames:{divider:"Divider",inset:"Inset",nolistview:"NoListview",nopanel:"NoPanel",panel:"Panel",selected:"Selected",spacer:"Spacer",vertical:"Vertical"},clone:!1,language:null,openingInterval:25,panelNodetype:"ul, ol, div",transitionDuration:400},t[r].prototype={getInstance:function(){return this},initPanels:function(t){this._initPanels(t)},openPanel:function(e,s){if(this.trigger("openPanel:before",e),e&&e.length&&(e.is("."+n.panel)||(e=e.closest("."+n.panel)),e.is("."+n.panel))){var a=this;if("boolean"!=typeof s&&(s=!0),e.parent("."+n.listitem+"_vertical").length)e.parents("."+n.listitem+"_vertical").addClass(n.listitem+"_opened").children("."+n.panel).removeClass(n.hidden),this.openPanel(e.parents("."+n.panel).not(function(){return t(this).parent("."+n.listitem+"_vertical").length}).first()),this.trigger("openPanel:start",e),this.trigger("openPanel:finish",e);else{if(e.hasClass(n.panel+"_opened"))return;var l=this.$pnls.children("."+n.panel),o=this.$pnls.children("."+n.panel+"_opened");if(!t[r].support.csstransitions)return o.addClass(n.hidden).removeClass(n.panel+"_opened"),e.removeClass(n.hidden).addClass(n.panel+"_opened"),this.trigger("openPanel:start",e),void this.trigger("openPanel:finish",e);l.not(e).removeClass(n.panel+"_opened-parent");for(var d=e.data(i.parent);d;)(d=d.closest("."+n.panel)).parent("."+n.listitem+"_vertical").length||d.addClass(n.panel+"_opened-parent"),d=d.data(i.parent);l.removeClass(n.panel+"_highest").not(o).not(e).addClass(n.hidden),e.removeClass(n.hidden);var c=function(){o.removeClass(n.panel+"_opened"),e.addClass(n.panel+"_opened"),e.hasClass(n.panel+"_opened-parent")?(o.addClass(n.panel+"_highest"),e.removeClass(n.panel+"_opened-parent")):(o.addClass(n.panel+"_opened-parent"),e.addClass(n.panel+"_highest")),a.trigger("openPanel:start",e)},h=function(){o.removeClass(n.panel+"_highest").addClass(n.hidden),e.removeClass(n.panel+"_highest"),a.trigger("openPanel:finish",e)};s&&!e.hasClass(n.panel+"_noanimation")?setTimeout(function(){a.__transitionend(e,function(){h()},a.conf.transitionDuration),c()},a.conf.openingInterval):(c(),h())}this.trigger("openPanel:after",e)}},closePanel:function(t){this.trigger("closePanel:before",t);var e=t.parent();e.hasClass(n.listitem+"_vertical")&&(e.removeClass(n.listitem+"_opened"),t.addClass(n.hidden),this.trigger("closePanel",t)),this.trigger("closePanel:after",t)},closeAllPanels:function(t){this.trigger("closeAllPanels:before"),this.$pnls.find("."+n.listview).children().removeClass(n.listitem+"_selected").filter("."+n.listitem+"_vertical").removeClass(n.listitem+"_opened");var e=this.$pnls.children("."+n.panel),i=t&&t.length?t:e.first();this.$pnls.children("."+n.panel).not(i).removeClass(n.panel+"_opened").removeClass(n.panel+"_opened-parent").removeClass(n.panel+"_highest").addClass(n.hidden),this.openPanel(i,!1),this.trigger("closeAllPanels:after")},togglePanel:function(t){var e=t.parent();e.hasClass(n.listitem+"_vertical")&&this[e.hasClass(n.listitem+"_opened")?"closePanel":"openPanel"](t)},setSelected:function(t){this.trigger("setSelected:before",t),this.$menu.find("."+n.listitem+"_selected").removeClass(n.listitem+"_selected"),t.addClass(n.listitem+"_selected"),this.trigger("setSelected:after",t)},bind:function(t,e){this.cbck[t]=this.cbck[t]||[],this.cbck[t].push(e)},trigger:function(){var t=Array.prototype.slice.call(arguments),e=t.shift();if(this.cbck[e])for(var n=0,i=this.cbck[e].length;n<i;n++)this.cbck[e][n].apply(this,t)},matchMedia:function(t,e,n){var i={yes:e,no:n};this.mtch[t]=this.mtch[t]||[],this.mtch[t].push(i)},i18n:function(e){return t[r].i18n(e,this.conf.language)},_initHooks:function(){for(var t in this.opts.hooks)this.bind(t,this.opts.hooks[t])},_initWrappers:function(){this.trigger("initWrappers:before");for(var e=0;e<this.opts.wrappers.length;e++){var n=t[r].wrappers[this.opts.wrappers[e]];"function"==typeof n&&n.call(this)}this.trigger("initWrappers:after")},_initAddons:function(){var e;for(e in this.trigger("initAddons:before"),t[r].addons)t[r].addons[e].add.call(this),t[r].addons[e].add=function(){};for(e in t[r].addons)t[r].addons[e].setup.call(this);this.trigger("initAddons:after")},_initExtensions:function(){this.trigger("initExtensions:before");var t=this;for(var e in this.opts.extensions.constructor===Array&&(this.opts.extensions={all:this.opts.extensions}),this.opts.extensions)this.opts.extensions[e]=this.opts.extensions[e].length?n.menu+"_"+this.opts.extensions[e].join(" "+n.menu+"_"):"",this.opts.extensions[e]&&function(e){t.matchMedia(e,function(){this.$menu.addClass(this.opts.extensions[e])},function(){this.$menu.removeClass(this.opts.extensions[e])})}(e);this.trigger("initExtensions:after")},_initMenu:function(){this.trigger("initMenu:before");this.conf.clone&&(this.$orig=this.$menu,this.$menu=this.$orig.clone(),this.$menu.add(this.$menu.find("[id]")).filter("[id]").each(function(){t(this).attr("id",n.mm(t(this).attr("id")))})),this.$menu.attr("id",this.$menu.attr("id")||this.__getUniqueId()),this.$pnls=t('<div class="'+n.panels+'" />').append(this.$menu.children(this.conf.panelNodetype)).prependTo(this.$menu),this.$menu.addClass(n.menu).parent().addClass(n.wrapper),this.trigger("initMenu:after")},_initPanels:function(e){this.trigger("initPanels:before",e),e=e||this.$pnls.children(this.conf.panelNodetype);var i=t(),s=this,a=function(e){e.filter(s.conf.panelNodetype).each(function(e){var r=s._initPanel(t(this));if(r){s._initNavbar(r),s._initListview(r),i=i.add(r);var l=r.children("."+n.listview).children("li").children(s.conf.panelNodetype).add(r.children("."+s.conf.classNames.panel));l.length&&a(l)}})};a(e),this.trigger("initPanels:after",i)},_initPanel:function(t){this.trigger("initPanel:before",t);if(t.hasClass(n.panel))return t;if(this.__refactorClass(t,this.conf.classNames.panel,n.panel),this.__refactorClass(t,this.conf.classNames.nopanel,n.nopanel),this.__refactorClass(t,this.conf.classNames.inset,n.listview+"_inset"),t.filter("."+n.listview+"_inset").addClass(n.nopanel),t.hasClass(n.nopanel))return!1;var e=t.hasClass(this.conf.classNames.vertical)||!this.opts.slidingSubmenus;t.removeClass(this.conf.classNames.vertical);var s=t.attr("id")||this.__getUniqueId();t.is("ul, ol")&&(t.removeAttr("id"),t.wrap("<div />"),t=t.parent()),t.attr("id",s),t.addClass(n.panel+" "+n.hidden);var a=t.parent("li");return e?a.addClass(n.listitem+"_vertical"):t.appendTo(this.$pnls),a.length&&(a.data(i.child,t),t.data(i.parent,a)),this.trigger("initPanel:after",t),t},_initNavbar:function(e){if(this.trigger("initNavbar:before",e),!e.children("."+n.navbar).length){var s=e.data(i.parent),a=t('<div class="'+n.navbar+'" />'),r=this.__getPanelTitle(e,this.opts.navbar.title),l="";if(s&&s.length){if(s.hasClass(n.listitem+"_vertical"))return;if(s.parent().is("."+n.listview))var o=s.children("a, span").not("."+n.btn+"_next");else o=s.closest("."+n.panel).find('a[href="#'+e.attr("id")+'"]');var d=(s=(o=o.first()).closest("."+n.panel)).attr("id");switch(r=this.__getPanelTitle(e,t("<span>"+o.text()+"</span>").text()),this.opts.navbar.titleLink){case"anchor":l=o.attr("href")||"";break;case"parent":l="#"+d}a.append('<a class="'+n.btn+" "+n.btn+"_prev "+n.navbar+'__btn" href="#'+d+'" />')}else if(!this.opts.navbar.title)return;this.opts.navbar.add&&e.addClass(n.panel+"_has-navbar"),a.append('<a class="'+n.navbar+'__title"'+(l.length?' href="'+l+'"':"")+">"+r+"</a>").prependTo(e),this.trigger("initNavbar:after",e)}},_initListview:function(e){this.trigger("initListview:before",e);var s=this.__childAddBack(e,"ul, ol");this.__refactorClass(s,this.conf.classNames.nolistview,n.nolistview);var a=s.not("."+n.nolistview).addClass(n.listview).children().addClass(n.listitem);this.__refactorClass(a,this.conf.classNames.selected,n.listitem+"_selected"),this.__refactorClass(a,this.conf.classNames.divider,n.listitem+"_divider"),this.__refactorClass(a,this.conf.classNames.spacer,n.listitem+"_spacer"),a.children("a, span").not("."+n.btn).addClass(n.listitem+"__text");var r=e.data(i.parent);if(r&&r.is("."+n.listitem)&&!r.children("."+n.btn).length){var l=r.children("a, span").first(),o=t('<a class="'+n.btn+" "+n.btn+"_next "+n.listitem+'__btn" href="#'+e.attr("id")+'" />');o.insertAfter(l),l.is("span")&&(o.addClass(n.listitem+"__text "+l.attr("class")).html(l.html()),l.remove())}this.trigger("initListview:after",e)},_initOpened:function(){this.trigger("initOpened:before");var t=this.$pnls.find("."+n.listitem+"_selected").removeClass(n.listitem+"_selected").last().addClass(n.listitem+"_selected"),e=t.length?t.closest("."+n.panel):this.$pnls.children("."+n.panel).first();this.openPanel(e,!1),this.trigger("initOpened:after")},_initAnchors:function(){this.trigger("initAnchors:before");var e=this;a.$body.on(s.click+"-oncanvas","a[href]",function(i){var s=t(this),a=s.attr("href"),l=e.$menu.find(s).length,o=s.is("."+n.listitem+" > a"),d=s.is('[rel="external"]')||s.is('[target="_blank"]');if(l&&a.length>1&&"#"==a.slice(0,1))try{var c=e.$menu.find(a);if(c.is("."+n.panel))return e[s.parent().hasClass(n.listitem+"_vertical")?"togglePanel":"openPanel"](c),void i.preventDefault()}catch(t){}var h={close:null,setSelected:null,preventDefault:"#"==a.slice(0,1)};for(var p in t[r].addons){var f=t[r].addons[p].clickAnchor.call(e,s,l,o,d);if(f){if("boolean"==typeof f)return void i.preventDefault();"object"==typeof f&&(h=t.extend({},h,f))}}l&&o&&!d&&(e.__valueOrFn(s,e.opts.onClick.setSelected,h.setSelected)&&e.setSelected(t(i.target).parent()),e.__valueOrFn(s,e.opts.onClick.preventDefault,h.preventDefault)&&i.preventDefault(),e.__valueOrFn(s,e.opts.onClick.close,h.close)&&e.opts.offCanvas&&"function"==typeof e.close&&e.close())}),this.trigger("initAnchors:after")},_initMatchMedia:function(){var t=this;for(var e in this.mtch)!function(){var n=e,i=window.matchMedia(n);t._fireMatchMedia(n,i),i.addListener(function(e){t._fireMatchMedia(n,e)})}()},_fireMatchMedia:function(t,e){for(var n=e.matches?"yes":"no",i=0;i<this.mtch[t].length;i++)this.mtch[t][i][n].call(this)},_getOriginalMenuId:function(){var t=this.$menu.attr("id");return this.conf.clone&&t&&t.length&&(t=n.umm(t)),t},__api:function(){var e=this,n={};return t.each(this._api,function(t){var i=this;n[i]=function(){var t=e[i].apply(e,arguments);return void 0===t?n:t}}),n},__valueOrFn:function(t,e,n){if("function"==typeof e){var i=e.call(t[0]);if(void 0!==i)return i}return"function"!=typeof e&&void 0!==e||void 0===n?e:n},__getPanelTitle:function(e,n){var s;return"function"==typeof this.opts.navbar.title&&(s=this.opts.navbar.title.call(e[0])),void 0===s&&(s=e.data(i.title)),void 0!==s?s:"string"==typeof n?this.i18n(n):this.i18n(t[r].defaults.navbar.title)},__refactorClass:function(t,e,n){return t.filter("."+e).removeClass(e).addClass(n)},__findAddBack:function(t,e){return t.find(e).add(t.filter(e))},__childAddBack:function(t,e){return t.children(e).add(t.filter(e))},__filterListItems:function(t){return t.not("."+n.listitem+"_divider").not("."+n.hidden)},__filterListItemAnchors:function(t){return this.__filterListItems(t).children("a").not("."+n.btn+"_next")},__openPanelWoAnimation:function(t){t.hasClass(n.panel+"_noanimation")||(t.addClass(n.panel+"_noanimation"),this.__transitionend(t,function(){t.removeClass(n.panel+"_noanimation")},this.conf.openingInterval),this.openPanel(t))},__transitionend:function(t,e,n){var i=!1,a=function(n){void 0!==n&&n.target!=t[0]||(i||(t.off(s.transitionend),t.off(s.webkitTransitionEnd),e.call(t[0])),i=!0)};t.on(s.transitionend,a),t.on(s.webkitTransitionEnd,a),setTimeout(a,1.1*n)},__getUniqueId:function(){return n.mm(t[r].uniqueId++)}},t.fn[r]=function(e,l){!function(){if(t[r].glbl)return;a={$wndw:t(window),$docu:t(document),$html:t("html"),$body:t("body")},n={},i={},s={},t.each([n,i,s],function(t,e){e.add=function(t){t=t.split(" ");for(var n=0,i=t.length;n<i;n++)e[t[n]]=e.mm(t[n])}}),n.mm=function(t){return"mm-"+t},n.add("wrapper menu panels panel nopanel navbar listview nolistview listitem btn hidden"),n.umm=function(t){return"mm-"==t.slice(0,3)&&(t=t.slice(3)),t},i.mm=function(t){return"mm-"+t},i.add("parent child title"),s.mm=function(t){return t+".mm"},s.add("transitionend webkitTransitionEnd click scroll resize keydown mousedown mouseup touchstart touchmove touchend orientationchange"),t[r]._c=n,t[r]._d=i,t[r]._e=s,t[r].glbl=a}();var o=t();return this.each(function(){var n=t(this);if(!n.data(r)){var i=jQuery.extend(!0,{},t[r].defaults,e),s=jQuery.extend(!0,{},t[r].configuration,l),a=new t[r](n,i,s);a.$menu.data(r,a.__api()),o=o.add(a.$menu)}}),o},t[r].i18n=(e={},function(n,i){switch(typeof n){case"object":return"string"==typeof i&&(void 0===e[i]&&(e[i]={}),t.extend(e[i],n)),e;case"string":return"string"==typeof i&&void 0!==e[i]&&e[i][n]||n;case"undefined":default:return e}}),t[r].support={touch:"ontouchstart"in window||navigator.msMaxTouchPoints||!1,csstransitions:"undefined"==typeof Modernizr||void 0===Modernizr.csstransitions||Modernizr.csstransitions})}(jQuery);
!function(e){var t,n,i,o,r="offCanvas";e.mmenu.addons[r]={setup:function(){if(this.opts[r]){var n=this.opts[r],i=this.conf[r];o=e.mmenu.glbl,this._api=e.merge(this._api,["open","close","setPage"]),"object"!=typeof n&&(n={}),n=this.opts[r]=e.extend(!0,{},e.mmenu.defaults[r],n),"string"!=typeof i.page.selector&&(i.page.selector="> "+i.page.nodetype),this.vars.opened=!1;var s=[t.menu+"_offcanvas"];this.bind("initMenu:after",function(){var e=this;this._initBlocker(),this.setPage(o.$page),this._initWindow_offCanvas(),this.$menu.addClass(s.join(" ")).parent("."+t.wrapper).removeClass(t.wrapper),this.$menu[i.menu.insertMethod](i.menu.insertSelector);var n=window.location.hash;if(n){var r=this._getOriginalMenuId();r&&r==n.slice(1)&&setTimeout(function(){e.open()},1e3)}}),this.bind("setPage:after",function(e){o.$blck&&o.$blck.children("a").attr("href","#"+e.attr("id"))}),this.bind("open:start:sr-aria",function(){this.__sr_aria(this.$menu,"hidden",!1)}),this.bind("close:finish:sr-aria",function(){this.__sr_aria(this.$menu,"hidden",!0)}),this.bind("initMenu:after:sr-aria",function(){this.__sr_aria(this.$menu,"hidden",!0)}),this.bind("initBlocker:after:sr-text",function(){o.$blck.children("a").html(this.__sr_text(this.i18n(this.conf.screenReader.text.closeMenu)))})}},add:function(){t=e.mmenu._c,n=e.mmenu._d,i=e.mmenu._e,t.add("slideout page no-csstransforms3d"),n.add("style")},clickAnchor:function(e,n){var i=this;if(this.opts[r]){var s=this._getOriginalMenuId();if(s&&e.is('[href="#'+s+'"]')){if(n)return this.open(),!0;var a=e.closest("."+t.menu);if(a.length){var p=a.data("mmenu");if(p&&p.close)return p.close(),i.__transitionend(a,function(){i.open()},i.conf.transitionDuration),!0}return this.open(),!0}if(o.$page)return(s=o.$page.first().attr("id"))&&e.is('[href="#'+s+'"]')?(this.close(),!0):void 0}}},e.mmenu.defaults[r]={blockUI:!0,moveBackground:!0},e.mmenu.configuration[r]={menu:{insertMethod:"prependTo",insertSelector:"body"},page:{nodetype:"div",selector:null,noSelector:[],wrapIfNeeded:!0}},e.mmenu.prototype.open=function(){if(this.trigger("open:before"),!this.vars.opened){var e=this;this._openSetup(),setTimeout(function(){e._openFinish()},this.conf.openingInterval),this.trigger("open:after")}},e.mmenu.prototype._openSetup=function(){var s=this,a=this.opts[r];this.closeAllOthers(),o.$page.each(function(){e(this).data(n.style,e(this).attr("style")||"")}),o.$wndw.trigger(i.resize+"-"+r,[!0]);var p=[t.wrapper+"_opened"];a.blockUI&&p.push(t.wrapper+"_blocking"),"modal"==a.blockUI&&p.push(t.wrapper+"_modal"),a.moveBackground&&p.push(t.wrapper+"_background"),o.$html.addClass(p.join(" ")),setTimeout(function(){s.vars.opened=!0},this.conf.openingInterval),this.$menu.addClass(t.menu+"_opened")},e.mmenu.prototype._openFinish=function(){var e=this;this.__transitionend(o.$page.first(),function(){e.trigger("open:finish")},this.conf.transitionDuration),this.trigger("open:start"),o.$html.addClass(t.wrapper+"_opening")},e.mmenu.prototype.close=function(){if(this.trigger("close:before"),this.vars.opened){var i=this;this.__transitionend(o.$page.first(),function(){i.$menu.removeClass(t.menu+"_opened");var r=[t.wrapper+"_opened",t.wrapper+"_blocking",t.wrapper+"_modal",t.wrapper+"_background"];o.$html.removeClass(r.join(" ")),o.$page.each(function(){var t=e(this).data(n.style);e(this).attr("style",t)}),i.vars.opened=!1,i.trigger("close:finish")},this.conf.transitionDuration),this.trigger("close:start"),o.$html.removeClass(t.wrapper+"_opening"),this.trigger("close:after")}},e.mmenu.prototype.closeAllOthers=function(){o.$body.find("."+t.menu+"_offcanvas").not(this.$menu).each(function(){var t=e(this).data("mmenu");t&&t.close&&t.close()})},e.mmenu.prototype.setPage=function(n){this.trigger("setPage:before",n);var i=this,s=this.conf[r];n&&n.length||(n=o.$body.find(s.page.selector).not("."+t.menu).not("."+t.wrapper+"__blocker"),s.page.noSelector.length&&(n=n.not(s.page.noSelector.join(", "))),n.length>1&&s.page.wrapIfNeeded&&(n=n.wrapAll("<"+this.conf[r].page.nodetype+" />").parent())),n.addClass(t.page+" "+t.slideout).each(function(){e(this).attr("id",e(this).attr("id")||i.__getUniqueId())}),o.$page=n,this.trigger("setPage:after",n)},e.mmenu.prototype._initWindow_offCanvas=function(){o.$wndw.off(i.keydown+"-"+r).on(i.keydown+"-"+r,function(e){if(o.$html.hasClass(t.wrapper+"_opened")&&9==e.keyCode)return e.preventDefault(),!1});var e=0;o.$wndw.off(i.resize+"-"+r).on(i.resize+"-"+r,function(n,i){if(1==o.$page.length&&(i||o.$html.hasClass(t.wrapper+"_opened"))){var r=o.$wndw.height();(i||r!=e)&&(e=r,o.$page.css("minHeight",r))}})},e.mmenu.prototype._initBlocker=function(){var n=this,s=this.opts[r],a=this.conf[r];this.trigger("initBlocker:before"),s.blockUI&&(o.$blck||(o.$blck=e('<div class="'+t.wrapper+"__blocker "+t.slideout+'" />').append("<a />")),o.$blck.appendTo(a.menu.insertSelector).off(i.touchstart+"-"+r+" "+i.touchmove+"-"+r).on(i.touchstart+"-"+r+" "+i.touchmove+"-"+r,function(e){e.preventDefault(),e.stopPropagation(),o.$blck.trigger(i.mousedown+"-"+r)}).off(i.mousedown+"-"+r).on(i.mousedown+"-"+r,function(e){e.preventDefault(),o.$html.hasClass(t.wrapper+"_modal")||(n.closeAllOthers(),n.close())}),this.trigger("initBlocker:after"))}}(jQuery);
!function(t){var i,n,e="screenReader";t.mmenu.addons[e]={setup:function(){var r=this,a=this.opts[e],s=this.conf[e];t.mmenu.glbl,"boolean"==typeof a&&(a={aria:a,text:a}),"object"!=typeof a&&(a={}),(a=this.opts[e]=t.extend(!0,{},t.mmenu.defaults[e],a)).aria&&(this.bind("initAddons:after",function(){this.bind("initMenu:after",function(){this.trigger("initMenu:after:sr-aria")}),this.bind("initNavbar:after",function(){this.trigger("initNavbar:after:sr-aria",arguments[0])}),this.bind("openPanel:start",function(){this.trigger("openPanel:start:sr-aria",arguments[0])}),this.bind("close:start",function(){this.trigger("close:start:sr-aria")}),this.bind("close:finish",function(){this.trigger("close:finish:sr-aria")}),this.bind("open:start",function(){this.trigger("open:start:sr-aria")}),this.bind("initOpened:after",function(){this.trigger("initOpened:after:sr-aria")})}),this.bind("updateListview",function(){this.$pnls.find("."+i.listview).children().each(function(){r.__sr_aria(t(this),"hidden",t(this).is("."+i.hidden))})}),this.bind("openPanel:start",function(t){var n=this.$menu.find("."+i.panel).not(t).not(t.parents("."+i.panel)),e=t.add(t.find("."+i.listitem+"_vertical ."+i.listitem+"_opened").children("."+i.panel));this.__sr_aria(n,"hidden",!0),this.__sr_aria(e,"hidden",!1)}),this.bind("closePanel",function(t){this.__sr_aria(t,"hidden",!0)}),this.bind("initPanels:after",function(n){var e=n.find("."+i.btn).each(function(){r.__sr_aria(t(this),"owns",t(this).attr("href").replace("#",""))});this.__sr_aria(e,"haspopup",!0)}),this.bind("initNavbar:after",function(t){var n=t.children("."+i.navbar);this.__sr_aria(n,"hidden",!t.hasClass(i.panel+"_has-navbar"))}),a.text&&"parent"==this.opts.navbar.titleLink&&this.bind("initNavbar:after",function(t){var n=t.children("."+i.navbar),e=!!n.children("."+i.btn+"_prev").length;this.__sr_aria(n.children("."+i.title),"hidden",e)})),a.text&&(this.bind("initAddons:after",function(){this.bind("setPage:after",function(){this.trigger("setPage:after:sr-text",arguments[0])}),this.bind("initBlocker:after",function(){this.trigger("initBlocker:after:sr-text")})}),this.bind("initNavbar:after",function(t){var n=t.children("."+i.navbar),e=this.i18n(s.text.closeSubmenu);n.children("."+i.btn+"_prev").html(this.__sr_text(e))}),this.bind("initListview:after",function(t){var e=t.data(n.parent);if(e&&e.length){var a=e.children("."+i.btn+"_next"),o=this.i18n(s.text[a.parent().is("."+i.listitem+"_vertical")?"toggleSubmenu":"openSubmenu"]);a.append(r.__sr_text(o))}}))},add:function(){i=t.mmenu._c,n=t.mmenu._d,t.mmenu._e,i.add("sronly")},clickAnchor:function(t,i){}},t.mmenu.defaults[e]={aria:!0,text:!0},t.mmenu.configuration[e]={text:{closeMenu:"Close menu",closeSubmenu:"Close submenu",openSubmenu:"Open submenu",toggleSubmenu:"Toggle submenu"}},t.mmenu.prototype.__sr_aria=function(t,i,n){t.prop("aria-"+i,n)[n?"attr":"removeAttr"]("aria-"+i,n)},t.mmenu.prototype.__sr_role=function(t,i){t.prop("role",i)[i?"attr":"removeAttr"]("role",i)},t.mmenu.prototype.__sr_text=function(t){return'<span class="'+i.sronly+'">'+t+"</span>"}}(jQuery);
!function(o){var t,n,e,r="scrollBugFix";o.mmenu.addons[r]={setup:function(){var n=this.opts[r];this.conf[r];e=o.mmenu.glbl,o.mmenu.support.touch&&this.opts.offCanvas&&this.opts.offCanvas.blockUI&&("boolean"==typeof n&&(n={fix:n}),"object"!=typeof n&&(n={}),(n=this.opts[r]=o.extend(!0,{},o.mmenu.defaults[r],n)).fix&&(this.bind("open:start",function(){this.$pnls.children("."+t.panel+"_opened").scrollTop(0)}),this.bind("initMenu:after",function(){this["_initWindow_"+r]()})))},add:function(){t=o.mmenu._c,o.mmenu._d,n=o.mmenu._e},clickAnchor:function(o,t){}},o.mmenu.defaults[r]={fix:!0},o.mmenu.prototype["_initWindow_"+r]=function(){var s=this;o(document).off(n.touchmove+"-"+r).on(n.touchmove+"-"+r,function(o){e.$html.hasClass(t.wrapper+"_opened")&&o.preventDefault()});var i=!1;e.$body.off(n.touchstart+"-"+r).on(n.touchstart+"-"+r,"."+t.panels+"> ."+t.panel,function(o){e.$html.hasClass(t.wrapper+"_opened")&&(i||(i=!0,0===o.currentTarget.scrollTop?o.currentTarget.scrollTop=1:o.currentTarget.scrollHeight===o.currentTarget.scrollTop+o.currentTarget.offsetHeight&&(o.currentTarget.scrollTop-=1),i=!1))}).off(n.touchmove+"-"+r).on(n.touchmove+"-"+r,"."+t.panels+"> ."+t.panel,function(n){e.$html.hasClass(t.wrapper+"_opened")&&o(this)[0].scrollHeight>o(this).innerHeight()&&n.stopPropagation()}),e.$wndw.off(n.orientationchange+"-"+r).on(n.orientationchange+"-"+r,function(){s.$pnls.children("."+t.panel+"_opened").scrollTop(0).css({"-webkit-overflow-scrolling":"auto"}).css({"-webkit-overflow-scrolling":"touch"})})}}(jQuery);
!function(t){var e,i="autoHeight";t.mmenu.addons[i]={setup:function(){var n=this.opts[i];this.conf[i];if(t.mmenu.glbl,"boolean"==typeof n&&n&&(n={height:"auto"}),"string"==typeof n&&(n={height:n}),"object"!=typeof n&&(n={}),"auto"==(n=this.opts[i]=t.extend(!0,{},t.mmenu.defaults[i],n)).height||"highest"==n.height){this.bind("initMenu:after",function(){this.$menu.addClass(e.menu+"_autoheight")});var h=function(i){if(!this.opts.offCanvas||this.vars.opened){var h=Math.max(parseInt(this.$pnls.css("top"),10),0)||0,s=Math.max(parseInt(this.$pnls.css("bottom"),10),0)||0,a=0;this.$menu.addClass(e.menu+"_autoheight-measuring"),"auto"==n.height?((i=i||this.$pnls.children("."+e.panel+"_opened")).parent("."+e.listitem+"_vertical").length&&(i=i.parents("."+e.panel).not(function(){return t(this).parent("."+e.listitem+"_vertical").length})),i.length||(i=this.$pnls.children("."+e.panel)),a=i.first().outerHeight()):"highest"==n.height&&this.$pnls.children("."+e.panel).each(function(){var i=t(this);i.parent("."+e.listitem+"_vertical").length&&(i=i.parents("."+e.panel).not(function(){return t(this).parent("."+e.listitem+"_vertical").length})),a=Math.max(a,i.first().outerHeight())}),this.$menu.height(a+h+s).removeClass(e.menu+"_autoheight-measuring")}};this.opts.offCanvas&&this.bind("open:start",h),"highest"==n.height&&this.bind("initPanels:after",h),"auto"==n.height&&(this.bind("updateListview",h),this.bind("openPanel:start",h),this.bind("closePanel",h))}},add:function(){e=t.mmenu._c,t.mmenu._d,t.mmenu._e.add("resize")},clickAnchor:function(t,e){}},t.mmenu.defaults[i]={height:"default"}}(jQuery);
!function(n){var t,e="backButton";n.mmenu.addons[e]={setup:function(){if(this.opts.offCanvas){var o=this,i=this.opts[e];this.conf[e];n.mmenu.glbl,"boolean"==typeof i&&(i={close:i}),"object"!=typeof i&&(i={}),i=n.extend(!0,{},n.mmenu.defaults[e],i);var s="#"+this.$menu.attr("id");if(i.close){var a=[];function u(){a=[s],this.$pnls.children("."+t.panel+"_opened-parent").add(o.$pnls.children("."+t.panel+"_opened")).each(function(){a.push("#"+n(this).attr("id"))})}this.bind("open:finish",function(){history.pushState(null,document.title,s)}),this.bind("open:finish",u),this.bind("openPanel:finish",u),this.bind("close:finish",function(){a=[],history.back(),history.pushState(null,document.title,location.pathname+location.search)}),n(window).on("popstate",function(t){if(o.vars.opened&&a.length){var e=(a=a.slice(0,-1))[a.length-1];e==s?o.close():(o.openPanel(n(e)),history.pushState(null,document.title,s))}})}i.open&&n(window).on("popstate",function(n){o.vars.opened||location.hash!=s||o.open()})}},add:function(){window.history&&window.history.pushState?(t=n.mmenu._c,n.mmenu._d,n.mmenu._e):n.mmenu.addons[e].setup=function(){}},clickAnchor:function(n,t){}},n.mmenu.defaults[e]={close:!1,open:!1}}(jQuery);
!function(e){var n,i;e.mmenu.addons.columns={setup:function(){var s=this.opts.columns;this.conf.columns;if(e.mmenu.glbl,"boolean"==typeof s&&(s={add:s}),"number"==typeof s&&(s={add:!0,visible:s}),"object"!=typeof s&&(s={}),"number"==typeof s.visible&&(s.visible={min:s.visible,max:s.visible}),(s=this.opts.columns=e.extend(!0,{},e.mmenu.defaults.columns,s)).add){s.visible.min=Math.max(1,Math.min(6,s.visible.min)),s.visible.max=Math.max(s.visible.min,Math.min(6,s.visible.max));for(var a="",l="",t=0;t<=s.visible.max;t++)a+=" "+n.menu+"_columns-"+t,l+=" "+n.panel+"_columns-"+t;a.length&&(a=a.slice(1),l=l.slice(1));var m=l+" "+n.panel+"_opened "+n.panel+"_opened-parent "+n.panel+"_highest";this.bind("openPanel:before",function(e){var s=e.data(i.parent);if(s&&(s=s.closest("."+n.panel)).length){var a=s.attr("class");if(a&&(a=a.split(n.panel+"_columns-")[1]))for(a=parseInt(a.split(" ")[0],10)+1;a>0;){var l=this.$pnls.children("."+n.panel+"_columns-"+a);if(!l.length){a=-1;break}a++,l.removeClass(m).addClass(n.hidden)}}}),this.bind("openPanel:start",function(i){var t=this.$pnls.children("."+n.panel+"_opened-parent").length;i.hasClass(n.panel+"_opened-parent")||t++,t=Math.min(s.visible.max,Math.max(s.visible.min,t)),this.$menu.removeClass(a).addClass(n.menu+"_columns-"+t),this.$pnls.children("."+n.panel).removeClass(l).filter("."+n.panel+"_opened-parent").add(i).slice(-s.visible.max).each(function(i){e(this).addClass(n.panel+"_columns-"+i)})})}},add:function(){n=e.mmenu._c,i=e.mmenu._d,e.mmenu._e},clickAnchor:function(e,n){}},e.mmenu.defaults.columns={add:!1,visible:{min:1,max:3}}}(jQuery);
!function(t){var n,e;t.mmenu.addons.counters={setup:function(){var i=this,s=this.opts.counters;this.conf.counters;if(t.mmenu.glbl,"boolean"==typeof s&&(s={add:s,update:s}),"object"!=typeof s&&(s={}),s=this.opts.counters=t.extend(!0,{},t.mmenu.defaults.counters,s),this.bind("initListview:after",function(t){var e=this.conf.classNames.counters.counter;this.__refactorClass(t.find("."+e),e,n.counter)}),s.add&&this.bind("initListview:after",function(i){var a;switch(s.addTo){case"panels":a=i;break;default:a=i.filter(s.addTo)}a.each(function(){var i=t(this).data(e.parent);i&&(i.find("."+n.counter).length||i.children("."+n.btn).prepend(t('<span class="'+n.counter+'" />')))})}),s.update){var a=function(s){(s=s||this.$pnls.children("."+n.panel)).each(function(){var s=t(this),a=s.data(e.parent);if(a){var c=a.find("."+n.counter);c.length&&(s=s.children("."+n.listview)).length&&c.html(i.__filterListItems(s.children()).length)}})};this.bind("initListview:after",a),this.bind("updateListview",a)}},add:function(){n=t.mmenu._c,e=t.mmenu._d,t.mmenu._e,n.add("counter")},clickAnchor:function(t,n){}},t.mmenu.defaults.counters={add:!1,addTo:"panels",count:!1},t.mmenu.configuration.classNames.counters={counter:"Counter"}}(jQuery);
!function(i){var e,t,d="dividers";i.mmenu.addons.dividers={setup:function(){var n=this,s=this.opts.dividers;this.conf.dividers;if(i.mmenu.glbl,"boolean"==typeof s&&(s={add:s,fixed:s}),"object"!=typeof s&&(s={}),(s=this.opts.dividers=i.extend(!0,{},i.mmenu.defaults.dividers,s)).type&&this.bind("initMenu:after",function(){this.$menu.addClass(e.menu+"_"+d+"-"+s.type)}),s.add&&this.bind("initListview:after",function(t){var d;switch(s.addTo){case"panels":d=t;break;default:d=t.filter(s.addTo)}d.length&&(d.children("."+e.listitem+"_divider").remove(),d.find("."+e.listview).each(function(){var t="";n.__filterListItems(i(this).children()).each(function(){var d=i.trim(i(this).children("a, span").text()).slice(0,1).toLowerCase();d!=t&&d.length&&(t=d,i('<li class="'+e.listitem+" "+e.listitem+'_divider">'+d+"</li>").insertBefore(this))})}))}),s.fixed){this.bind("initPanels:before",function(){void 0===this.$fixeddivider&&(this.$fixeddivider=i('<ul class="'+e.listview+" "+e.listview+'_fixeddivider"><li class="'+e.listitem+" "+e.listitem+'_divider"></li></ul>').appendTo(this.$pnls).children())});var l=function(t){if(!(t=t||this.$pnls.children("."+e.panel+"_opened")).is(":hidden")){var d=t.find("."+e.listitem+"_divider").not("."+e.hidden),n=t.scrollTop()||0,s="";d.each(function(){i(this).position().top+n<n+1&&(s=i(this).text())}),this.$fixeddivider.text(s),this.$pnls[s.length?"addClass":"removeClass"](e.panel+"_dividers")}};this.bind("open:start",l),this.bind("openPanel:start",l),this.bind("updateListview",l),this.bind("initPanel:after",function(i){i.off(t.scroll+"-"+d+" "+t.touchmove+"-"+d).on(t.scroll+"-"+d+" "+t.touchmove+"-"+d,function(t){i.hasClass(e.panel+"_opened")&&l.call(n,i)})})}},add:function(){e=i.mmenu._c,i.mmenu._d,(t=i.mmenu._e).add("scroll")},clickAnchor:function(i,e){}},i.mmenu.defaults.dividers={add:!1,addTo:"panels",fixed:!1,type:null}}(jQuery);
!function(n){var e,t,o,i="drag";function a(n,e,t){return n<e&&(n=e),n>t&&(n=t),n}n.mmenu.addons[i]={setup:function(){if(this.opts.offCanvas){var s=this.opts[i],r=this.conf[i];o=n.mmenu.glbl,"boolean"==typeof s&&(s={menu:s,panels:s}),"object"!=typeof s&&(s={}),"boolean"==typeof s.menu&&(s.menu={open:s.menu}),"object"!=typeof s.menu&&(s.menu={}),"boolean"==typeof s.panels&&(s.panels={close:s.panels}),"object"!=typeof s.panels&&(s.panels={}),(s=this.opts[i]=n.extend(!0,{},n.mmenu.defaults[i],s)).menu.open&&this.bind("setPage:after",function(){(function(t,o,s){var r,p,m,u,c=this,d={events:"panleft panright",typeLower:"x",typeUpper:"X",open_dir:"right",close_dir:"left",negative:!1},f="width",l=d.open_dir,h=function(n){n<=t.maxStartPos&&(_=1)},g=function(){return n("."+e.slideout)},_=0,v=0,b=0,w=this.opts.extensions.all,y=void 0===w?"left":w.indexOf(e.menu+"_position-right")>-1?"right":w.indexOf(e.menu+"_position-top")>-1?"top":w.indexOf(e.menu+"_position-bottom")>-1?"bottom":"left",x=void 0===w?"back":w.indexOf(e.menu+"_position-top")>-1||w.indexOf(e.menu+"_position-bottom")>-1||w.indexOf(e.menu+"_position-front")>-1?"front":"back";switch(y){case"top":case"bottom":d.events="panup pandown",d.typeLower="y",d.typeUpper="Y",f="height"}switch(y){case"right":case"bottom":d.negative=!0,h=function(n){n>=s.$wndw[f]()-t.maxStartPos&&(_=1)}}switch(y){case"right":d.open_dir="left",d.close_dir="right";break;case"top":d.open_dir="down",d.close_dir="up";break;case"bottom":d.open_dir="up",d.close_dir="down"}switch(x){case"front":g=function(){return c.$menu}}var O=this.__valueOrFn(this.$menu,t.node,s.$page);"string"==typeof O&&(O=n(O));var $=new Hammer(O[0],this.opts[i].vendors.hammer);$.on("panstart",function(n){h(n.center[d.typeLower]),u=g(),l=d.open_dir}),$.on(d.events+" panend",function(n){_>0&&n.preventDefault()}),$.on(d.events,function(n){if(r=n["delta"+d.typeUpper],d.negative&&(r=-r),r!=v&&(l=r>=v?d.open_dir:d.close_dir),(v=r)>t.threshold&&1==_){if(s.$html.hasClass(e.wrapper+"_opened"))return;_=2,c._openSetup(),c.trigger("open:start"),s.$html.addClass(e.dragging),b=a(s.$wndw[f]()*o[f].perc,o[f].min,o[f].max)}2==_&&(p=a(v,10,b)-("front"==x?b:0),d.negative&&(p=-p),m="translate"+d.typeUpper+"("+p+"px )",u.css({"-webkit-transform":"-webkit-"+m,transform:m}))}),$.on("panend",function(n){2==_&&(s.$html.removeClass(e.dragging),u.css("transform",""),c[l==d.open_dir?"_openFinish":"close"]()),_=0})}).call(this,s.menu,r.menu,o)}),s.panels.close&&this.bind("initPanel:after",function(n){(function(n,o,a,s){var r=this,p=n.data(t.parent);if(p){p=p.closest("."+e.panel);var m=new Hammer(n[0],r.opts[i].vendors.hammer),u=null;m.on("panright",function(n){u||(r.openPanel(p),u=setTimeout(function(){clearTimeout(u),u=null},r.conf.openingInterval+r.conf.transitionDuration))})}}).call(this,n,s.panels,r.panels,o)})}},add:function(){if("function"!=typeof Hammer||Hammer.VERSION<2)return n.mmenu.addons[i].add=function(){},void(n.mmenu.addons[i].setup=function(){});e=n.mmenu._c,t=n.mmenu._d,n.mmenu._e,e.add("dragging")},clickAnchor:function(n,e){}},n.mmenu.defaults[i]={menu:{open:!1,maxStartPos:100,threshold:50},panels:{close:!1},vendors:{hammer:{}}},n.mmenu.configuration[i]={menu:{width:{perc:.8,min:140,max:440},height:{perc:.8,min:140,max:880}},panels:{}}}(jQuery);
!function(t){var o,e,n,i,s="dropdown";t.mmenu.addons.dropdown={setup:function(){if(this.opts.offCanvas){var r=this,a=this.opts.dropdown,p=this.conf.dropdown;if(i=t.mmenu.glbl,"boolean"==typeof a&&a&&(a={drop:a}),"object"!=typeof a&&(a={}),"string"==typeof a.position&&(a.position={of:a.position}),(a=this.opts.dropdown=t.extend(!0,{},t.mmenu.defaults.dropdown,a)).drop){var f;this.bind("initMenu:after",function(){if(this.$menu.addClass(o.menu+"_"+s),"string"!=typeof a.position.of){var e=this._getOriginalMenuId();e&&e.length&&(a.position.of='[href="#'+e+'"]')}"string"==typeof a.position.of&&(f=t(a.position.of),a.event=a.event.split(" "),1==a.event.length&&(a.event[1]=a.event[0]),"hover"==a.event[0]&&f.on(n.mouseenter+"-"+s,function(){r.open()}),"hover"==a.event[1]&&this.$menu.on(n.mouseleave+"-"+s,function(){r.close()}))}),this.bind("open:start",function(){this.$menu.data(e.style,this.$menu.attr("style")||""),i.$html.addClass(o.wrapper+"_dropdown")}),this.bind("close:finish",function(){this.$menu.attr("style",this.$menu.data(e.style)),i.$html.removeClass(o.wrapper+"_dropdown")});var d=function(t,e){var n,s,r=e[0],d=e[1],u="x"==t?"scrollLeft":"scrollTop",l="x"==t?"outerWidth":"outerHeight",h="x"==t?"left":"top",m="x"==t?"right":"bottom",c="x"==t?"width":"height",w="x"==t?"maxWidth":"maxHeight",v=null,x=i.$wndw[u](),b=f.offset()[h]-=x,g=b+f[l](),$=i.$wndw[c](),y=p.offset.button[t]+p.offset.viewport[t];if(a.position[t])switch(a.position[t]){case"left":case"bottom":v="after";break;case"right":case"top":v="before"}return null===v&&(v=b+(g-b)/2<$/2?"after":"before"),"after"==v?(s=$-((n="x"==t?b:g)+y),r[h]=n+p.offset.button[t],r[m]="auto",a.tip&&d.push(o.menu+"_tip-"+("x"==t?"left":"top"))):(s=(n="x"==t?g:b)-y,r[m]="calc( 100% - "+(n-p.offset.button[t])+"px )",r[h]="auto",a.tip&&d.push(o.menu+"_tip-"+("x"==t?"right":"bottom"))),a.fitViewport&&(r[w]=Math.min(p[c].max,s)),[r,d]},u=function(t){if(this.vars.opened){this.$menu.attr("style",this.$menu.data(e.style));var n=[{},[]];n=d.call(this,"y",n),n=d.call(this,"x",n),this.$menu.css(n[0]),a.tip&&this.$menu.removeClass(o.tipleft+" "+o.tipright+" "+o.tiptop+" "+o.tipbottom).addClass(n[1].join(" "))}};this.bind("open:start",u),i.$wndw.on(n.resize+"-"+s,function(t){u.call(r)}),this.opts.offCanvas.blockUI||i.$wndw.on(n.scroll+"-"+s,function(t){u.call(r)})}}},add:function(){o=t.mmenu._c,e=t.mmenu._d,n=t.mmenu._e,o.add("dropdown"),n.add("mouseenter mouseleave resize scroll")},clickAnchor:function(t,o){}},t.mmenu.defaults.dropdown={drop:!1,fitViewport:!0,event:"click",position:{},tip:!0},t.mmenu.configuration.dropdown={offset:{button:{x:-5,y:5},viewport:{x:20,y:20}},height:{max:880},width:{max:440}}}(jQuery);
!function(s){var t,e,n="fixedElements";s.mmenu.addons[n]={setup:function(){if(this.opts.offCanvas){this.opts[n];var i=this.conf[n];e=s.mmenu.glbl;this.bind("setPage:after",function(o){var c=this.conf.classNames[n].fixed,f=o.find("."+c);this.__refactorClass(f,c,t.slideout),f[i.elemInsertMethod](i.elemInsertSelector);var a=this.conf.classNames[n].sticky,d=o.find("."+a);this.__refactorClass(d,a,t.sticky),(d=o.find("."+t.sticky)).length&&(this.bind("open:start",function(){if("hidden"==e.$html.css("overflow")){var t=e.$wndw.scrollTop()+i.sticky.offset;d.each(function(){s(this).css("top",parseInt(s(this).css("top"),10)+t)})}}),this.bind("close:finish",function(){d.css("top","")}))})}},add:function(){t=s.mmenu._c,s.mmenu._d,s.mmenu._e,t.add("sticky")},clickAnchor:function(s,t){}},s.mmenu.configuration[n]={sticky:{offset:0},elemInsertMethod:"appendTo",elemInsertSelector:"body"},s.mmenu.configuration.classNames[n]={fixed:"Fixed",sticky:"Sticky"}}(jQuery);
!function(a){var n,e,t;a.mmenu.addons.iconbar={setup:function(){var i=this,o=this.opts.iconbar;this.conf.iconbar;if(a.mmenu.glbl,o instanceof Array&&(o={add:!0,top:o}),o.add){var r=null;if(a.each(["top","bottom"],function(e,t){var i=o[t];i instanceof Array||(i=[i]);for(var s=a('<div class="'+n.iconbar+"__"+t+'" />'),c=0,d=i.length;c<d;c++)s.append(i[c]);s.children().length&&(r||(r=a('<div class="'+n.iconbar+'" />')),r.append(s))}),r&&(this.bind("initMenu:after",function(){var a=n.menu+"_iconbar";o.size&&(a+=" "+n.menu+"_iconbar-"+o.size),this.$menu.addClass(a).prepend(r)}),"tabs"==o.type)){r.addClass(n.iconbar+"_tabs");var s=r.find("a");s.on(t.click+"-iconbar",function(e){var t=a(this);if(t.hasClass(n.iconbar+"__tab_selected"))e.stopImmediatePropagation();else try{var o=a(t.attr("href"));o.hasClass(n.panel)&&(e.preventDefault(),e.stopImmediatePropagation(),i.openPanel(o,!1))}catch(a){}}),this.bind("openPanel:start",function a(t){s.removeClass(n.iconbar+"__tab_selected");var i=s.filter('[href="#'+t.attr("id")+'"]');if(i.length)i.addClass(n.iconbar+"__tab_selected");else{var o=t.data(e.parent);o&&o.length&&a(o.closest("."+n.panel))}})}}},add:function(){n=a.mmenu._c,e=a.mmenu._d,t=a.mmenu._e,n.add("iconbar")},clickAnchor:function(a,n){}},a.mmenu.defaults.iconbar={add:!1,top:[],bottom:[]},a.mmenu.configuration.iconbar={}}(jQuery);
!function(e){var i,n="iconPanels";e.mmenu.addons[n]={setup:function(){var a=this,t=this.opts[n],l=(this.conf[n],!1);e.mmenu.glbl,"boolean"==typeof t&&(t={add:t}),"number"!=typeof t&&"string"!=typeof t||(t={add:!0,visible:t}),"object"!=typeof t&&(t={}),"first"==t.visible&&(l=!0,t.visible=1),(t=this.opts[n]=e.extend(!0,{},e.mmenu.defaults[n],t)).visible=Math.min(3,Math.max(1,t.visible)),t.visible++;var s="";if(!l){for(var d=0;d<=t.visible;d++)s+=" "+i.panel+"_iconpanel-"+d;s.length&&(s=s.slice(1))}if(t.add){var r=function(n){if(!n.parent("."+i.listitem+"_vertical").length){var d=a.$pnls.children("."+i.panel);l?d.removeClass(i.panel+"_iconpanel-first").first().addClass(i.panel+"_iconpanel-first"):d.removeClass(s).filter("."+i.panel+"_opened-parent").removeClass(i.hidden).not(function(){return e(this).parent("."+i.listitem+"_vertical").length}).add(n).slice(-t.visible).each(function(n){e(this).addClass(i.panel+"_iconpanel-"+n)})}};this.bind("initMenu:after",function(){var e=[i.menu+"_iconpanel"];t.size&&e.push(i.menu+"_iconpanel-"+t.size),t.hideNavbar&&e.push(i.menu+"_hidenavbar"),t.hideDivider&&e.push(i.menu+"_hidedivider"),this.$menu.addClass(e.join(" "))}),this.bind("openPanel:start",r),this.bind("initPanels:after",function(e){r.call(a,a.$pnls.children("."+i.panel+"_opened"))}),this.bind("initListview:after",function(e){!t.blockPanel||e.parent("."+i.listitem+"_vertical").length||e.children("."+i.panel+"__blocker").length||e.prepend('<a href="#'+e.closest("."+i.panel).attr("id")+'" class="'+i.panel+'__blocker" />')})}},add:function(){i=e.mmenu._c,e.mmenu._d,e.mmenu._e},clickAnchor:function(e,i){}},e.mmenu.defaults[n]={add:!1,blockPanel:!0,hideDivider:!1,hideNavbar:!0,visible:3}}(jQuery);
!function(n){var e,t,a,i,s="keyboardNavigation";n.mmenu.addons[s]={setup:function(){if(!n.mmenu.support.touch){var t=this.opts[s];this.conf[s];if(i=n.mmenu.glbl,"boolean"!=typeof t&&"string"!=typeof t||(t={enable:t}),"object"!=typeof t&&(t={}),(t=this.opts[s]=n.extend(!0,{},n.mmenu.defaults[s],t)).enable){var a=n('<button class="'+e.tabstart+'" />'),o=n('<button class="'+e.tabend+'" />'),r=n('<button class="'+e.tabend+'" />');this.bind("initMenu:after",function(){t.enhance&&this.$menu.addClass(e.menu+"_keyboardfocus"),this["_initWindow_"+s](t.enhance)}),this.bind("initOpened:before",function(){this.$menu.prepend(a).append(o).children("."+e.mm("navbars-top")+", ."+e.mm("navbars-bottom")).children("."+e.navbar).children("a."+e.title).attr("tabindex",-1)}),this.bind("initBlocker:after",function(){i.$blck.append(r).children("a").addClass(e.tabstart)}),this.bind("open:finish",function(){d.call(this,null,t.enable)}),this.bind("openPanel:finish",function(n){d.call(this,n,t.enable)}),this.bind("initOpened:after:sr-aria",function(){var n=this.$menu.add(i.$blck).children("."+e.tabstart+", ."+e.tabend);this.__sr_aria(n,"hidden",!0),this.__sr_role(n,"presentation")})}}},add:function(){e=n.mmenu._c,t=n.mmenu._d,a=n.mmenu._e,e.add("tabstart tabend"),a.add("focusin keydown")},clickAnchor:function(n,e){}},n.mmenu.defaults[s]={enable:!1,enhance:!1},n.mmenu.configuration[s]={},n.mmenu.prototype["_initWindow_"+s]=function(o){i.$wndw.off(a.keydown+"-offCanvas"),i.$wndw.off(a.focusin+"-"+s).on(a.focusin+"-"+s,function(t){if(i.$html.hasClass(e.wrapper+"_opened")){var a=n(t.target);if(a.is("."+e.tabend)){var s=n();a.parent().is("."+e.menu)&&i.$blck&&(s=i.$blck),a.parent().is("."+e.wrapper+"__blocker")&&(s=i.$body.find("."+e.menu+"_offcanvas").filter("."+e.menu+"_opened")),s.length||(s=a.parent()),s.children("."+e.tabstart).focus()}}}),i.$wndw.off(a.keydown+"-"+s).on(a.keydown+"-"+s,function(t){var i=n(t.target),s=i.closest("."+e.menu);if(s.length){s.data("mmenu");if(i.is("input, textarea"));else switch(t.keyCode){case 13:(i.is(".mm-toggle")||i.is(".mm-check"))&&i.trigger(a.click);break;case 32:case 37:case 38:case 39:case 40:t.preventDefault()}}}),o&&i.$wndw.off(a.keydown+"-"+s).on(a.keydown+"-"+s,function(a){var i=n(a.target),s=i.closest("."+e.menu);if(s.length){var o=s.data("mmenu");if(i.is("input"))switch(a.keyCode){case 27:i.val("")}else switch(a.keyCode){case 8:var d=s.find("."+e.panel+"_opened").data(t.parent);d&&d.length&&o.openPanel(d.closest("."+e.panel));break;case 27:s.hasClass(e.menu+"_offcanvas")&&o.close()}}})};var o="input, select, textarea, button, label, a[href]";function d(t,a){t=t||this.$pnls.children("."+e.panel+"_opened");var i=n(),s=this.$menu.children("."+e.mm("navbars_top")+", ."+e.mm("navbars_bottom")).children("."+e.navbar);s.find(o).filter(":focus").length||("default"==a&&((i=t.children("."+e.listview).find("a[href]").not("."+e.hidden)).length||(i=t.find(o).not("."+e.hidden)),i.length||(i=s.find(o).not("."+e.hidden))),i.length||(i=this.$menu.children("."+e.tabstart)),i.first().focus())}}(jQuery);
!function(n){var e,i="lazySubmenus";n.mmenu.addons[i]={setup:function(){var l=this.opts[i];this.conf[i];n.mmenu.glbl,"boolean"==typeof l&&(l={load:l}),"object"!=typeof l&&(l={}),(l=this.opts[i]=n.extend(!0,{},n.mmenu.defaults[i],l)).load&&(this.bind("initMenu:after",function(){this.$pnls.find("li").children(this.conf.panelNodetype).not("."+e.inset).not("."+e.nolistview).not("."+e.nopanel).addClass(e.panel+"_lazysubmenu "+e.nolistview+" "+e.nopanel)}),this.bind("initPanels:before",function(n){n=n||this.$pnls.children(this.conf.panelNodetype),this.__findAddBack(n,"."+e.panel+"_lazysubmenu").not("."+e.panel+"_lazysubmenu ."+e.panel+"_lazysubmenu").removeClass(e.panel+"_lazysubmenu "+e.nolistview+" "+e.nopanel)}),this.bind("initOpened:before",function(){var n=this.$pnls.find("."+this.conf.classNames.selected).parents("."+e.panel+"_lazysubmenu");n.length&&(n.removeClass(e.panel+"_lazysubmenu "+e.nolistview+" "+e.nopanel),this.initPanels(n.last()))}),this.bind("openPanel:before",function(n){var i=this.__findAddBack(n,"."+e.panel+"_lazysubmenu").not("."+e.panel+"_lazysubmenu ."+e.panel+"_lazysubmenu");i.length&&this.initPanels(i)}))},add:function(){e=n.mmenu._c,n.mmenu._d,n.mmenu._e},clickAnchor:function(n,e){}},n.mmenu.defaults[i]={load:!1},n.mmenu.configuration[i]={}}(jQuery);
!function(n){var a;n.mmenu.addons.navbars={setup:function(){var t=this,e=this.opts.navbars,o=this.conf.navbars;if(n.mmenu.glbl,void 0!==e){e instanceof Array||(e=[e]);var r={},s={};e.length&&(n.each(e,function(i){var c=e[i];"boolean"==typeof c&&c&&(c={}),"object"!=typeof c&&(c={}),void 0===c.content&&(c.content=["prev","title"]),c.content instanceof Array||(c.content=[c.content]),c=n.extend(!0,{},t.opts.navbar,c);var d=n('<div class="'+a.navbar+'" />'),v=c.height;"number"!=typeof v?v=1:(v=Math.min(4,Math.max(1,v)))>1&&d.addClass(a.navbar+"_size-"+v);var m=c.position;switch(m){case"bottom":break;default:m="top"}r[m]||(r[m]=0),r[m]+=v,s[m]||(s[m]=n('<div class="'+a.navbars+"_"+m+'" />')),s[m].append(d);for(var u=0,b=c.content.length;u<b;u++){var l=n.mmenu.addons.navbars[c.content[u]]||null;l?l.call(t,d,c,o):((l=c.content[u])instanceof n||(l=n(c.content[u])),d.append(l))}var f=n.mmenu.addons.navbars[c.type]||null;f&&f.call(t,d,c,o),d.children("."+a.btn).length&&d.addClass(a.navbar+"_has-btns")}),this.bind("initMenu:after",function(){for(var n in r)this.$menu.addClass(a.menu+"_navbar_"+n+"-"+r[n]),this.$menu["bottom"==n?"append":"prepend"](s[n])}))}},add:function(){a=n.mmenu._c,n.mmenu._d,n.mmenu._e,a.add("navbars")},clickAnchor:function(n,a){}},n.mmenu.configuration.navbars={breadcrumbs:{separator:"/",removeFirst:!1}},n.mmenu.configuration.classNames.navbars={}}(jQuery);
!function(e){var t,n,i,s="pageScroll";e.mmenu.addons[s]={setup:function(){var r=this,o=this.opts[s],a=this.conf[s];if(i=e.mmenu.glbl,"boolean"==typeof o&&(o={scroll:o}),(o=this.opts[s]=e.extend(!0,{},e.mmenu.defaults[s],o)).scroll&&this.bind("close:finish",function(){l(a.scrollOffset)}),o.update){var c=[],d=[];(r=this).bind("initListview:after",function(n){r.__filterListItemAnchors(n.find("."+t.listview).children("li")).each(function(){var t=e(this).attr("href");f(t)&&c.push(t)}),d=c.reverse()});var u=-1;i.$wndw.on(n.scroll+"-"+s,function(n){for(var s=i.$wndw.scrollTop(),l=0;l<d.length;l++)if(e(d[l]).offset().top<s+a.updateOffset){u!==l&&(u=l,r.setSelected(r.__filterListItemAnchors(r.$pnls.children("."+t.panel+"_opened").find("."+t.listview).children("li")).filter('[href="'+d[l]+'"]').parent()));break}})}},add:function(){t=e.mmenu._c,e.mmenu._d,n=e.mmenu._e},clickAnchor:function(n,o,a){if(r=!1,o&&a&&this.opts.offCanvas&&this.opts[s].scroll&&i.$page&&i.$page.length){var c=n.attr("href");if(f(c)){if(r=e(c),!this.$menu.is("."+t.menu+"_sidebar-expanded")||!i.$html.is("."+t.wrapper+"_sidebar-expanded"))return{close:!0};l(this.conf[s].scrollOffset)}}}},e.mmenu.defaults[s]={scroll:!1,update:!1},e.mmenu.configuration[s]={scrollOffset:0,updateOffset:50};var r=!1;function l(e){r&&r.length&&r.is(":visible")&&i.$html.add(i.$body).animate({scrollTop:r.offset().top+e}),r=!1}function f(e){try{return!("#"==e||"#"!=e.slice(0,1)||!i.$page.find(e).length)}catch(e){return!1}}}(jQuery);
!function(e){var n,s,a,t="searchfield";function i(e,n){if(n)for(var s in n)e.attr(s,n[s])}e.mmenu.addons[t]={setup:function(){var s=this,a=this.opts[t],i=this.conf[t];e.mmenu.glbl,"boolean"==typeof a&&(a={add:a}),"object"!=typeof a&&(a={}),"boolean"==typeof a.panel&&(a.panel={add:a.panel}),"object"!=typeof a.panel&&(a.panel={}),a.add&&("panel"==a.addTo&&(a.panel.add=!0),a.panel.add&&(a.showSubPanels=!1,a.panel.splash&&(a.cancel=!0)),a=this.opts[t]=e.extend(!0,{},e.mmenu.defaults[t],a),i=this.conf[t]=e.extend(!0,{},e.mmenu.configuration[t],i),this.bind("close:start",function(){this.$menu.find("."+n.searchfield).children("input").blur()}),this.bind("initPanels:after",function(n){var t,i=e();switch(a.panel.add&&(i=this._initSearchPanel(n)),a.addTo){case"panels":t=n;break;case"panel":t=i;break;default:t=this.$menu.find(a.addTo)}(t.each(function(){var n=s._initSearchfield(e(this));a.search&&n.length&&s._initSearching(n)}),a.noResults)&&(a.panel.add?i:n).each(function(){s._initNoResultsMsg(e(this))})}))},add:function(){n=e.mmenu._c,s=e.mmenu._d,a=e.mmenu._e,n.add("searchfield"),s.add("searchfield"),a.add("input focus blur")},clickAnchor:function(e,s){if(e.hasClass(n.searchfield+"__btn")){if(e.hasClass(n.btn+"_close")){var a=e.closest("."+n.searchfield).find("input");return a.val(""),this.search(a),!0}if(e.hasClass(n.btn+"_next"))return e.closest("."+n.searchfield).submit(),!0}}},e.mmenu.defaults[t]={add:!1,addTo:"panels",noResults:"No results found.",placeholder:"Search",panel:{add:!1,dividers:!0,fx:"none",id:null,splash:null,title:"Search"},search:!0,showTextItems:!1,showSubPanels:!0},e.mmenu.configuration[t]={clear:!1,form:!1,input:!1,submit:!1},e.mmenu.prototype._initSearchPanel=function(s){var a=this.opts[t];this.conf[t];if(this.$pnls.children("."+n.panel+"_search").length)return e();var i=e('<div class="'+n.panel+'_search " />').append("<ul />").appendTo(this.$pnls);switch(a.panel.id&&i.attr("id",a.panel.id),a.panel.title&&i.attr("data-mm-title",a.panel.title),a.panel.fx){case!1:break;case"none":i.addClass(n.panel+"_noanimation");break;default:i.addClass(n.panel+"_fx-"+a.panel.fx)}return a.panel.splash&&i.append('<div class="'+n.panel+'__searchsplash">'+a.panel.splash+"</div>"),this._initPanels(i),i},e.mmenu.prototype._initSearchfield=function(s){var a=this.opts[t],l=this.conf[t];if(s.parent("."+n.listitem+"_vertical").length)return e();if(s.find("."+n.searchfield).length)return s.find("."+n.searchfield);var d=e("<"+(l.form?"form":"div")+' class="'+n.searchfield+'" />'),h=e('<div class="'+n.searchfield+'__input" />'),r=e('<input placeholder="'+this.i18n(a.placeholder)+'" type="text" autocomplete="off" />');return h.append(r).appendTo(d),s.prepend(d),s.hasClass(n.panel)&&s.addClass(n.panel+"_has-searchfield"),i(r,l.input),l.clear&&e('<a class="'+n.btn+" "+n.btn+"_close "+n.searchfield+'__btn" href="#" />').appendTo(h),i(d,l.form),l.form&&l.submit&&!l.clear&&e('<a class="'+n.btn+" "+n.btn+"_next "+n.searchfield+'__btn" href="#" />').appendTo(h),a.cancel&&e('<a href="#" class="'+n.searchfield+'__cancel">'+this.i18n("cancel")+"</a>").appendTo(d),d},e.mmenu.prototype._initSearching=function(i){var l=this,d=this.opts[t],h=(this.conf[t],{});i.closest("."+n.panel+"_search").length?(h.$pnls=this.$pnls.find("."+n.panel),h.$nrsp=i.closest("."+n.panel)):i.closest("."+n.panel).length?(h.$pnls=i.closest("."+n.panel),h.$nrsp=h.$pnls):(h.$pnls=this.$pnls.find("."+n.panel),h.$nrsp=this.$menu),h.$pnls=h.$pnls.not(function(){return e(this).parent("."+n.listitem+"_vertical").length}),d.panel.add&&(h.$pnls=h.$pnls.not("."+n.panel+"_search"));var r=i.find("input"),c=i.find("."+n.searchfield+"__cancel"),p=this.$pnls.children("."+n.panel+"_search"),o=h.$pnls.find("."+n.listitem);h.$itms=o.not("."+n.listitem+"_divider"),h.$dvdr=o.filter("."+n.listitem+"_divider"),d.panel.add&&d.panel.splash&&r.off(a.focus+"-"+t+"-splash").on(a.focus+"-"+t+"-splash",function(e){l.openPanel(p)}),d.cancel&&(r.off(a.focus+"-"+t+"-cancel").on(a.focus+"-"+t+"-cancel",function(e){c.addClass(n.searchfield+"__cancel-active")}),c.off(a.click+"-"+t+"-splash").on(a.click+"-"+t+"-splash",function(s){s.preventDefault(),e(this).removeClass(n.searchfield+"__cancel-active"),p.hasClass(n.panel+"_opened")&&l.openPanel(l.$pnls.children("."+n.panel+"_opened-parent").last())})),d.panel.add&&"panel"==d.addTo&&this.bind("openPanel:finish",function(e){e[0]===p[0]&&r.focus()}),r.data(s.searchfield,h).off(a.input+"-"+t).on(a.input+"-"+t,function(e){(function(e){switch(e){case 9:case 16:case 17:case 18:case 37:case 38:case 39:case 40:return!0}return!1})(e.keyCode)||l.search(r)}),this.search(r)},e.mmenu.prototype._initNoResultsMsg=function(s){var a=this.opts[t];this.conf[t];if(s.closest("."+n.panel).length||(s=this.$pnls.children("."+n.panel).first()),!s.children("."+n.panel+"__noresultsmsg").length){var i=s.children("."+n.listview).first(),l=e('<div class="'+n.panel+"__noresultsmsg "+n.hidden+'" />').append(this.i18n(a.noResults));i.length?l.insertAfter(i):l.prependTo(s)}},e.mmenu.prototype.search=function(a,i){var l=this,d=this.opts[t];this.conf[t];a=a||this.$menu.find("."+n.searchfield).chidren("input").first(),i=(i=i||a.val()).toLowerCase().trim();var h=a.data(s.searchfield),r=a.closest("."+n.searchfield).find("."+n.btn),c=this.$pnls.children("."+n.panel+"_search"),p=h.$pnls,o=h.$itms,f=h.$dvdr,u=h.$nrsp;if(o.removeClass(n.listitem+"_nosubitems").find("."+n.btn+"_fullwidth-search").removeClass(n.btn+"_fullwidth-search "+n.btn+"_fullwidth"),c.children("."+n.listview).empty(),p.scrollTop(0),i.length){if(o.add(f).addClass(n.hidden),o.each(function(){var s=e(this),a="a";(d.showTextItems||d.showSubPanels&&s.find("."+n.btn+"_next"))&&(a="a, span"),s.children(a).not("."+n.btn+"_next").text().toLowerCase().indexOf(i)>-1&&s.removeClass(n.hidden)}),d.panel.add){var m=e();p.each(function(){var s=l.__filterListItems(e(this).find("."+n.listitem)).clone(!0);s.length&&(d.panel.dividers&&(m=m.add('<li class="'+n.listitem+" "+n.listitem+'_divider">'+e(this).find("."+n.navbar+"__title").text()+"</li>")),m=m.add(s))}),m.find("."+n.mm("toggle")).remove().end().find("."+n.mm("check")).remove().end().find("."+n.btn).remove(),c.children("."+n.listview).append(m),this.openPanel(c)}else d.showSubPanels&&p.each(function(a){var t=e(this);l.__filterListItems(t.find("."+n.listitem)).each(function(){var a=e(this).data(s.child);a&&a.find("."+n.listview).children().removeClass(n.hidden)})}),e(p.get().reverse()).each(function(t){var i=e(this),d=i.data(s.parent);d&&(l.__filterListItems(i.find("."+n.listitem)).length?d.hasClass(n.hidden)&&d.removeClass(n.hidden).children("."+n.btn+"_next").not("."+n.btn+"_fullwidth").addClass(n.btn+"_fullwidth").addClass(n.btn+"_fullwidth-search"):a.closest("."+n.panel).length||((i.hasClass(n.panel+"_opened")||i.hasClass(n.panel+"_opened-parent"))&&setTimeout(function(){l.openPanel(d.closest("."+n.panel))},(t+1)*(1.5*l.conf.openingInterval)),d.addClass(n.listitem+"_nosubitems")))}),this.__filterListItems(p.find("."+n.listitem)).each(function(){e(this).prevAll("."+n.listitem+"_divider").first().removeClass(n.hidden)});r.removeClass(n.hidden),u.find("."+n.panel+"__noresultsmsg")[o.not("."+n.hidden).length?"addClass":"removeClass"](n.hidden),d.panel.add&&(d.panel.splash&&c.find("."+n.panel+"__searchsplash").addClass(n.hidden),o.add(f).removeClass(n.hidden))}else o.add(f).removeClass(n.hidden),r.addClass(n.hidden),u.find("."+n.panel+"__noresultsmsg").addClass(n.hidden),d.panel.add&&(d.panel.splash?c.find("."+n.panel+"__searchsplash").removeClass(n.hidden):a.closest("."+n.panel+"_search").length||this.openPanel(this.$pnls.children("."+n.panel+"_opened-parent").last()));this.trigger("updateListview")}}(jQuery);
!function(e){var a,n,i="sectionIndexer";e.mmenu.addons[i]={setup:function(){var r=this,t=this.opts[i];this.conf[i];e.mmenu.glbl,"boolean"==typeof t&&(t={add:t}),"object"!=typeof t&&(t={}),t=this.opts[i]=e.extend(!0,{},e.mmenu.defaults[i],t);var s=null;this.bind("initPanels:after",function(d){if(t.add){var h;switch(t.addTo){case"panels":h=d;break;default:h=(h=e(t.addTo,this.$menu)).filter("."+a.panel)}h.find("."+a.listitem+"_divider").closest("."+a.panel).addClass(a.panel+"_has-sectionindexer"),s||(s=e('<div class="'+a.sectionindexer+'" />').prependTo(this.$menu).append('<a href="#a">a</a><a href="#b">b</a><a href="#c">c</a><a href="#d">d</a><a href="#e">e</a><a href="#f">f</a><a href="#g">g</a><a href="#h">h</a><a href="#i">i</a><a href="#j">j</a><a href="#k">k</a><a href="#l">l</a><a href="#m">m</a><a href="#n">n</a><a href="#o">o</a><a href="#p">p</a><a href="#q">q</a><a href="#r">r</a><a href="#s">s</a><a href="#t">t</a><a href="#u">u</a><a href="#v">v</a><a href="#w">w</a><a href="#x">x</a><a href="#y">y</a><a href="#z">z</a>')).on(n.mouseover+"-"+i+" "+n.touchstart+"-"+i,"a",function(n){var i=e(n.target).attr("href").slice(1),t=r.$pnls.children("."+a.panel+"_opened"),s=t.find("."+a.listview),d=-1,h=t.scrollTop();t.scrollTop(0),s.children("."+a.listitem+"_divider").not("."+a.hidden).each(function(){d<0&&i==e(this).text().slice(0,1).toLowerCase()&&(d=e(this).position().top)}),t.scrollTop(d>-1?d:h)});var o=function(e){e=e||this.$pnls.children("."+a.panel+"_opened"),this.$menu[(e.hasClass(a.panel+"_has-sectionindexer")?"add":"remove")+"Class"](a.menu+"_has-sectionindexer")};this.bind("openPanel:start",o),this.bind("initPanels:after",o)}})},add:function(){a=e.mmenu._c,e.mmenu._d,n=e.mmenu._e,a.add("sectionindexer"),n.add("mouseover")},clickAnchor:function(e,n){if(e.parent().is("."+a.indexer))return!0}},e.mmenu.defaults[i]={add:!1,addTo:"panels"}}(jQuery);
!function(e){var t,n,i="setSelected";e.mmenu.addons[i]={setup:function(){var s=this,a=this.opts[i];this.conf[i];if(e.mmenu.glbl,"boolean"==typeof a&&(a={hover:a,parent:a}),"object"!=typeof a&&(a={}),"detect"==(a=this.opts[i]=e.extend(!0,{},e.mmenu.defaults[i],a)).current){var l=function(e){e=e.split("?")[0].split("#")[0];var t=s.$menu.find('a[href="'+e+'"], a[href="'+e+'/"]');t.length?s.setSelected(t.parent(),!0):(e=e.split("/").slice(0,-1)).length&&l(e.join("/"))};this.bind("initMenu:after",function(){l(window.location.href)})}else a.current||this.bind("initListview:after",function(e){e.find("."+t.listview).children("."+t.listitem+"_selected").removeClass(t.listitem+"_selected")});a.hover&&this.bind("initMenu:after",function(){this.$menu.addClass(t.menu+"_selected-hover")}),a.parent&&(this.bind("openPanel:finish",function(e){this.$pnls.find("."+t.listview).find("."+t.listitem+"_selected-parent").removeClass(t.listitem+"_selected-parent");for(var i=e.data(n.parent);i;)i.not("."+t.listitem+"_vertical").addClass(t.listitem+"_selected-parent"),i=i.closest("."+t.panel).data(n.parent)}),this.bind("initMenu:after",function(){this.$menu.addClass(t.menu+"_selected-parent")}))},add:function(){t=e.mmenu._c,n=e.mmenu._d,e.mmenu._e},clickAnchor:function(e,t){}},e.mmenu.defaults[i]={current:!0,hover:!1,parent:!1}}(jQuery);
!function(e){var d,s;e.mmenu.addons.sidebar={setup:function(){if(this.opts.offCanvas){var a=this.opts.sidebar;this.conf.sidebar;s=e.mmenu.glbl,("string"==typeof a||"boolean"==typeof a&&a||"number"==typeof a)&&(a={expanded:a}),"object"!=typeof a&&(a={}),"boolean"==typeof a.collapsed&&a.collapsed&&(a.collapsed="all"),"string"!=typeof a.collapsed&&"number"!=typeof a.collapsed||(a.collapsed={use:a.collapsed}),"object"!=typeof a.collapsed&&(a.collapsed={}),"number"==typeof a.collapsed.use&&(a.collapsed.use="(min-width: "+a.collapsed.use+"px)"),"boolean"==typeof a.expanded&&a.expanded&&(a.expanded="all"),"string"!=typeof a.expanded&&"number"!=typeof a.expanded||(a.expanded={use:a.expanded}),"object"!=typeof a.expanded&&(a.expanded={}),"number"==typeof a.expanded.use&&(a.expanded.use="(min-width: "+a.expanded.use+"px)"),a=this.opts.sidebar=e.extend(!0,{},e.mmenu.defaults.sidebar,a);var n=d.wrapper+"_sidebar-collapsed";a.collapsed.size&&(n+=" "+d.wrapper+"_sidebar-collapsed-"+a.collapsed.size);var i=d.wrapper+"_sidebar-expanded";a.expanded.size&&(i+=" "+d.wrapper+"_sidebar-expanded-"+a.expanded.size),a.collapsed.use&&(this.bind("initMenu:after",function(){this.$menu.addClass(d.menu+"_sidebar-collapsed"),a.collapsed.blockMenu&&this.opts.offCanvas&&!this.$menu.children("."+d.menu+"__blocker").length&&this.$menu.prepend('<a class="'+d.menu+'__blocker" href="#'+this.$menu.attr("id")+'" />'),a.collapsed.hideNavbar&&this.$menu.addClass(d.menu+"_hidenavbar"),a.collapsed.hideDivider&&this.$menu.addClass(d.menu+"_hidedivider")}),"boolean"==typeof a.collapsed.use?this.bind("initMenu:after",function(){s.$html.addClass(n)}):this.matchMedia(a.collapsed.use,function(){s.$html.addClass(n)},function(){s.$html.removeClass(n)})),a.expanded.use&&(this.bind("initMenu:after",function(){this.$menu.addClass(d.menu+"_sidebar-expanded")}),"boolean"==typeof a.expanded.use?this.bind("initMenu:after",function(){s.$html.addClass(i),this.open()}):this.matchMedia(a.expanded.use,function(){s.$html.addClass(i),s.$html.hasClass(d.wrapper+"_sidebar-closed")||this.open()},function(){s.$html.removeClass(i),this.close()}),this.bind("close:start",function(){s.$html.hasClass(i)&&s.$html.addClass(d.wrapper+"_sidebar-closed")}),this.bind("open:start",function(){s.$html.removeClass(d.wrapper+"_sidebar-closed")}))}},add:function(){d=e.mmenu._c,e.mmenu._d,e.mmenu._e},clickAnchor:function(e,a,n){if(this.opts.sidebar.expanded.use&&s.$html.is("."+d.wrapper+"_sidebar-expanded")&&a&&n)return{close:!1}}},e.mmenu.defaults.sidebar={collapsed:{use:!1,blockMenu:!0,hideDivider:!1,hideNavbar:!0},expanded:{use:!1}},e.mmenu.configuration.sidebar={}}(jQuery);
!function(e){var t;e.mmenu.addons.toggles={setup:function(){var s=this;this.opts.toggles,this.conf.toggles;e.mmenu.glbl,this.bind("initPanels:after",function(n){this.__refactorClass(n.find("input"),this.conf.classNames.toggles.toggle,t.toggle),this.__refactorClass(n.find("input"),this.conf.classNames.toggles.check,t.check),n.find("input."+t.toggle+", input."+t.check).each(function(){var n=e(this),l=n.closest("li"),c=n.hasClass(t.toggle)?"toggle":"check",i=n.attr("id")||s.__getUniqueId();l.children('label[for="'+i+'"]').length||(n.attr("id",i),l.prepend(n),e('<label for="'+i+'" class="'+t[c]+'"></label>').insertAfter(l.children("."+t.listitem+"__text").last()))})})},add:function(){t=e.mmenu._c,e.mmenu._d,e.mmenu._e,t.add("toggle check")},clickAnchor:function(e,t){}},e.mmenu.configuration.classNames.toggles={toggle:"Toggle",check:"Check"}}(jQuery);
!function(a){a.mmenu.addons.navbars.breadcrumbs=function(r,n,e){var s=this,t=a.mmenu._c,i=a.mmenu._d;t.add("separator");var b=a('<span class="'+t.navbar+'__breadcrumbs" />').appendTo(r);this.bind("initNavbar:after",function(r){if(!r.children("."+t.navbar).children("."+t.navbar+"__breadcrumbs").length){r.removeClass(t.panel+"_has-navbar");for(var n=[],s=a('<span class="'+t.navbar+'__breadcrumbs"></span>'),b=r,c=!0;b&&b.length;){if(b.is("."+t.panel)||(b=b.closest("."+t.panel)),!b.parent("."+t.listitem+"_vertical").length){var d=b.children("."+t.navbar).children("."+t.navbar+"__title").text();d.length&&n.unshift(c?"<span>"+d+"</span>":'<a href="#'+b.attr("id")+'">'+d+"</a>"),c=!1}b=b.data(i.parent)}e.breadcrumbs.removeFirst&&n.shift(),s.append(n.join('<span class="'+t.separator+'">'+e.breadcrumbs.separator+"</span>")).appendTo(r.children("."+t.navbar))}}),this.bind("openPanel:start",function(a){var r=a.find("."+t.navbar+"__breadcrumbs");r.length&&b.html(r.html()||"")}),this.bind("initNavbar:after:sr-aria",function(r){r.children("."+t.navbar).children("."+t.breadcrumbs).children("a").each(function(){s.__sr_aria(a(this),"owns",a(this).attr("href").slice(1))})})}}(jQuery);
!function(t){t.mmenu.addons.navbars.close=function(e,n){var s=t.mmenu._c;t.mmenu.glbl;s.add("close");var a=t('<a class="'+s.btn+" "+s.btn+"_close "+s.navbar+'__btn" href="#" />').appendTo(e);this.bind("setPage:after",function(t){a.attr("href","#"+t.attr("id"))}),this.bind("setPage:after:sr-text",function(t){a.html(this.__sr_text(this.i18n(this.conf.screenReader.text.closeMenu))),this.__sr_aria(a,"owns",a.attr("href").slice(1))})}}(jQuery);
!function(a){a.mmenu.addons.navbars.next=function(n,t){var e,s,r,i=a.mmenu._c,h=a('<a class="'+i.btn+" "+i.btn+"_next "+i.navbar+'__btn" href="#" />').appendTo(n);this.bind("openPanel:start",function(a){e=a.find("."+this.conf.classNames.navbars.panelNext),s=e.attr("href"),r=e.html(),s?h.attr("href",s):h.removeAttr("href"),h[s||r?"removeClass":"addClass"](i.hidden),h.html(r)}),this.bind("openPanel:start:sr-aria",function(a){this.__sr_aria(h,"hidden",h.hasClass(i.hidden)),this.__sr_aria(h,"owns",(h.attr("href")||"").slice(1))})},a.mmenu.configuration.classNames.navbars.panelNext="Next"}(jQuery);
!function(a){a.mmenu.addons.navbars.prev=function(n,r){var e,t,i,s=a.mmenu._c,h=a('<a class="'+s.btn+" "+s.btn+"_prev "+s.navbar+'__btn" href="#" />').appendTo(n);this.bind("initNavbar:after",function(a){a.removeClass(s.panel+"_has-navbar")}),this.bind("openPanel:start",function(a){a.parent("."+s.listitem+"_vertical").length||((e=a.find("."+this.conf.classNames.navbars.panelPrev)).length||(e=a.children("."+s.navbar).children("."+s.btn+"_prev")),t=e.attr("href"),i=e.html(),t?h.attr("href",t):h.removeAttr("href"),h[t||i?"removeClass":"addClass"](s.hidden),h.html(i))}),this.bind("initNavbar:after:sr-aria",function(a){var n=a.children("."+s.navbar);this.__sr_aria(n,"hidden",!0)}),this.bind("openPanel:start:sr-aria",function(a){this.__sr_aria(h,"hidden",h.hasClass(s.hidden)),this.__sr_aria(h,"owns",(h.attr("href")||"").slice(1))})},a.mmenu.configuration.classNames.navbars.panelPrev="Prev"}(jQuery);
!function(e){e.mmenu.addons.navbars.searchfield=function(s,t){e.mmenu._c;"object"!=typeof this.opts.searchfield&&(this.opts.searchfield={}),this.opts.searchfield.add=!0,this.opts.searchfield.addTo=s}}(jQuery);
!function(a){a.mmenu.addons.navbars.tabs=function(e,t,n){var s=a.mmenu._c,r=a.mmenu._d,l=a.mmenu._e,d=this,i=e.children("a");e.addClass(s.navbar+"_tabs").parent().addClass(s.navbars+"_has-tabs"),i.on(l.click+"-navbars",function(e){e.preventDefault();var t=a(this);if(t.hasClass(s.navbar+"__tab_selected"))e.stopImmediatePropagation();else try{d.openPanel(a(t.attr("href")),!1),e.stopImmediatePropagation()}catch(a){}}),this.bind("openPanel:start",function a(e){i.removeClass(s.navbar+"__tab_selected");var t=i.filter('[href="#'+e.attr("id")+'"]');if(t.length)t.addClass(s.navbar+"__tab_selected");else{var n=e.data(r.parent);n&&n.length&&a(n.closest("."+s.panel))}})}}(jQuery);
!function(t){t.mmenu.addons.navbars.title=function(a,n){var e,i,r,s,l=t.mmenu._c,h=t('<a class="'+l.navbar+'__title" />').appendTo(a);this.bind("openPanel:start",function(t){t.parent("."+l.listitem+"_vertical").length||((r=t.find("."+this.conf.classNames.navbars.panelTitle)).length||(r=t.children("."+l.navbar).children("."+l.navbar+"__title")),e=r.attr("href"),i=r.html()||n.title,e?h.attr("href",e):h.removeAttr("href"),h[e||i?"removeClass":"addClass"](l.hidden),h.html(i))}),this.bind("openPanel:start:sr-aria",function(t){if(this.opts.screenReader.text&&(s||(s=this.$menu.children("."+l.navbars+"_top, ."+l.navbars+"_bottom").children("."+l.navbar).children("."+l.btn+"_prev")),s.length)){var a=!0;"parent"==this.opts.navbar.titleLink&&(a=!s.hasClass(l.hidden)),this.__sr_aria(h,"hidden",a)}})},t.mmenu.configuration.classNames.navbars.panelTitle="Title"}(jQuery);
jQuery.mmenu.wrappers.angular=function(){this.opts.onClick={close:!0,preventDefault:!1,setSelected:!0}};
!function(n){n.mmenu.wrappers.bootstrap3=function(){if(this.$menu.hasClass("navbar-collapse")){this.conf.classNames.selected="active",this.conf.classNames.divider="divider",this.conf.clone=!0,this.opts.hooks=this.opts.hooks||{};for(var n="",e=["nav-tabs","nav-pills","navbar-nav"],t=0;t<e.length;t++)if(this.$menu.find("."+e[t]).length){n=e[t];break}n.length&&(this.opts.hooks["initMenu:before"]=function(){"navbar-nav"==n&&this.$menu.wrapInner("<div />")},this.opts.hooks["initMenu:after"]=function(){a.menu.call(this),a.dropdown.call(this),a[n.split("nav-").join("").split("-nav").join("")].call(this)})}};var a={menu:function(){this.$menu.find(".nav").removeClass("nav").end().find(".sr-only").remove().end().find(".divider:empty").remove();for(var n=["role","aria-haspopup","aria-expanded"],a=0;a<n.length;a++)this.$menu.find("["+n[a]+"]").removeAttr(n[a])},dropdown:function(){var a=this.$menu.find(".dropdown");a.removeClass("dropdown"),a.children(".dropdown-toggle").find(".caret").remove().end().each(function(){n(this).replaceWith("<span>"+n(this).html()+"</span>")}),a.children(".dropdown-menu").removeClass("dropdown-menu")},tabs:function(){this.$menu.find(".nav-tabs").removeClass("nav-tabs")},pills:function(){this.$menu.find(".nav-pills").removeClass("nav-pills")},navbar:function(){var n=this;this.$menu.removeClass("collapse navbar-collapse").find('[class*="navbar-"]').removeClass("navbar-left navbar-right navbar-nav navbar-text navbar-btn");var a=this.$menu.find(".navbar-form");this.conf.searchform={form:{action:a.attr("action"),method:a.attr("method")},input:{name:a.find("input").attr("name")},submit:!0},a.remove(),(this.$orig||this.$menu).closest(".navbar").find(".navbar-header").find(".navbar-toggle").off("click").on("click",function(a){n.open(),a.stopImmediatePropagation(),a.preventDefault()})}}}(jQuery);
!function(a){function n(n){for(var e=n.is("a")?a("<a />"):a("<span />"),t=["href","title","target"],r=0;r<t.length;r++)void 0!==n.attr(t[r])&&e.attr(t[r],n.attr(t[r]));return e.html(n.html()),e.find(".sr-only").remove(),e}function e(e){var t=a("<ul />");return e.children().each(function(){var e=a(this),r=a("<li />");e.hasClass("dropdown-divider")?r.addClass("Divider"):e.hasClass("dropdown-item")&&r.append(n(e)),t.append(r)}),t}a.mmenu.wrappers.bootstrap4=function(){var t=this;if(this.$menu.hasClass("navbar-collapse")){this.conf.clone=!1;var r=a("<nav />"),i=a("<div />");r.append(i),this.$menu.children().each(function(){var r,s,o=a(this);switch(!0){case o.hasClass("navbar-nav"):i.append((r=o,s=a("<ul />"),r.find(".nav-item").each(function(){var t=a(this),r=a("<li />");if(t.hasClass("active")&&r.addClass("Selected"),!t.hasClass("nav-link")){var i=t.children(".dropdown-menu");i.length&&r.append(e(i)),t=t.children(".nav-link")}r.prepend(n(t)),s.append(r)}),s));break;case o.hasClass("dropdown-menu"):i.append(e(o));break;case o.hasClass("form-inline"):t.conf.searchfield.form={action:o.attr("action")||null,method:o.attr("method")||null},t.conf.searchfield.input={name:o.find("input").attr("name")||null},t.conf.searchfield.clear=!1,t.conf.searchfield.submit=!0;break;default:i.append(o.clone(!0))}}),this.bind("initMenu:before",function(){r.prependTo("body"),this.$menu=r}),this.$menu.parent().find(".navbar-toggler").removeAttr("data-target").removeAttr("aria-controls").off("click").on("click",function(a){a.preventDefault(),a.stopImmediatePropagation(),t[t.vars.opened?"close":"open"]()})}}}(jQuery);
!function(e){e.mmenu.wrappers.jqueryMobile=function(){var n=this;this.opts.onClick.close=!1,this.conf.offCanvas.page.selector="div.ui-page-active",e("body").on("pagecontainerchange",function(e,t){"function"==typeof n.close&&(n.close(),n.setPage(t.toPage))}),this.bind("initAnchors:after",function(){e("body").on("click",".mm-listview a",function(n){n.isDefaultPrevented()||(n.preventDefault(),e("body").pagecontainer("change",e(this).attr("href")))})})}}(jQuery);
jQuery.mmenu.wrappers.magento=function(){this.conf.classNames.selected="active"};
jQuery.mmenu.wrappers.olark=function(){this.conf.offCanvas.page.noSelector.push("#olark")};
!function(n){n.mmenu.wrappers.turbolinks=function(){var t,o;n(document).on("turbolinks:before-visit",function(){o=n("html"),t=o.attr("class"),t=n.grep(t.split(/\s+/),function(n){return!/mm-/.test(n)}).join(" ")}).on("turbolinks:load",function(){void 0!==o&&(o.attr("class",t),n.mmenu.glbl=!1)})}}(jQuery);
!function(s){s.mmenu.wrappers.wordpress=function(){this.conf.classNames.selected="current-menu-item",s("#wpadminbar").css("position","fixed").addClass("mm-slideout")}}(jQuery);
jQuery.mmenu.i18n({Menu:"Menü"},"de");
jQuery.mmenu.i18n({"Close menu":"Menü schließen","Close submenu":"Untermenü schließen","Open submenu":"Untermenü öffnen","Toggle submenu":"Untermenü wechseln"},"de");
jQuery.mmenu.i18n({Search:"Suche","No results found.":"Keine Ergebnisse gefunden.",cancel:"beenden"},"de");
jQuery.mmenu.i18n({Menu:"منو"},"fa");
jQuery.mmenu.i18n({"Close menu":"بستن منو","Close submenu":"بستن زیرمنو","Open submenu":"بازکردن زیرمنو","Toggle submenu":"سوییچ زیرمنو"},"fa");
jQuery.mmenu.i18n({Search:"جستجو","No results found.":"نتیجه‌ای یافت نشد.",cancel:"انصراف"},"fa");
jQuery.mmenu.i18n({Menu:"Menu"},"nl");
jQuery.mmenu.i18n({"Close menu":"Menu sluiten","Close submenu":"Submenu sluiten","Open submenu":"Submenu openen","Toggle submenu":"Submenu wisselen"},"nl");
jQuery.mmenu.i18n({Search:"Zoeken","No results found.":"Geen resultaten gevonden.",cancel:"annuleren"},"nl");
jQuery.mmenu.i18n({Menu:"Меню"},"ru");
jQuery.mmenu.i18n({"Close menu":"Закрыть меню","Close submenu":"Закрыть подменю","Open submenu":"Открыть подменю","Toggle submenu":"Переключить подменю"},"ru");
jQuery.mmenu.i18n({Search:"Найти","No results found.":"Ничего не найдено.","Search results":"Результаты поиска"},"ru");
return jQuery.mmenu;
}));

// mobile menu mmenu
var $mobileMenu = $(".header-main .main-nav").clone().attr('id', 'mobile-menu').addClass('mm-menu-closed'),
    $menuLink = $('<a href="#mobile-menu" class="mobile-menu-link"><span class="hamburger"><span class="hamburger-inner"></span></span></a>').click(function(e){
        this.blur();
        if ($(this).hasClass('submenu')) {
            closeMainNavSub();
            e.preventDefault();
            e.stopPropagation();
        } else if ($(this).hasClass('menu-close')) {
            api.close();
        }
    }),
    $mobileMenuHeader = $('<div class="mobile-menu-header" />').append($(".header-main .home-link").clone()).append($(".header-main .navbar-division").clone()),
    api = null,
    $mobileMenuTitleContainer = null,
    $mobileMenuFooter = $('header .meta-menu').clone().attr('class', 'mm-listview');
    $mobileMenuFooter.find('.meta-search-form').removeClass('meta-search-form').addClass('mmenu-search-form');

// open mmenu directly on panel with current page
$('.current', $mobileMenu).addClass('Selected');

// change style of simple language nav
$('.simple-language-nav', $mobileMenuFooter).addClass('style-2');

// directly show submenus for ".main-menu-dropdown-detailed"
$('.main-menu-dropdown-detailed > li > ul > li > ul', $mobileMenu).each(function() {
    $(' > li:last-child', this).addClass('mm-listitem-last-sub')
    $li = $(' > li', this).addClass('mm-listitem-sub');
    $(this).parent().addClass('has-sub').after($li);
    $(this).remove();
});

// remove unnecessary parent links
$('ul > li > ul', $mobileMenu).each(function() {
    var $parent = $(this).parent(),
        $a = $('> a', $parent);
    
    $parent.append($('<span />').html($a.html()).attr('class', $a.attr('class')));
    $a.remove();
});

// remove unnecessary classes
$('.main-menu-dropdown:not(.main-menu-dropdown-detailed)', $mobileMenu).removeClass('main-menu-dropdown');

// add to dom
$('header').append($mobileMenu);
$('header .header-main > .container').append($menuLink);



// init mmenu
$mobileMenu.mmenu({
    extensions 	: [ "fullscreen", "position-right", "position-front", "multiline" ],
    addons      : [ "navbars", "backbutton", "offCanvas" ],
    navbars		: [
        /*
        {
            content : [ $mobileMenuHeader, "close" ], //$('.header2'), "searchfield",
            height 	: 2
        },
        */
        {
            content : [ "breadcrumbs" ], //"searchfield",
            height 	: 1
        },
        {
            content : [ "title", "prev" ], //"searchfield",
            height 	: 1
        },
        {
            "position": "bottom",
            "content":[ $mobileMenuFooter ]
        }
    ],
    setSelected: true,
    hooks: {
        "open:start": function() {
            $mobileMenu.removeClass('mm-menu-closed');
            // set position top, so user can access global header if mmenu opens
            $headerHeight = $('header .header-main').height() + 'px';
            $('.mm-wrapper__blocker').css('top', $headerHeight);
            $mobileMenu.css('top', $headerHeight);
            
            $menuLink.addClass('menu-close');
            
            setMobileMenuFooterPosition(true);
        },
        "close:start": function() {
            $menuLink.removeClass('menu-close');
        },
        "openPanel:start": function($panel) {
            
            // hide title container if first menu layer
            if ($mobileMenuTitleContainer == null) {
                $mobileMenuTitleContainer = $('.mm-navbars_top > *:nth-child(2)', $mobileMenu)
            }

            if ($panel.attr('id')=='mm-1') {
                $mobileMenuTitleContainer.addClass('hidden');
            } else {
                $mobileMenuTitleContainer.removeClass('hidden');
            }
            
            // set correct title and breadcrumb entry
            $parentLink = $('.mm-listview > li > a[href="#'+$panel.attr('id')+'"]');
            if ($parentLink.length > 0) {
                var parentClass = $parentLink.attr('class'),
                    matches = parentClass.match(/cs-[a-z]+/),
                    colorScheme = matches != null ? matches[0] : 'no-cs',
                    titleClass = 'mm-navbar__title ' + colorScheme;
                
                if (colorScheme != '' && !$panel.hasClass(colorScheme)) {
                    $panel.addClass(colorScheme);
                }

                var $title = $('.mm-navbar__title', $mobileMenuTitleContainer).attr('class', titleClass),
                    $e = $parentLink.clone();
                
                $e.find('.mm-sronly').remove();
                var breadcrumbEntry = $e.text();
                if ($e.find('.button-title').length > 0) {
                    $title.html($e.html());
                    breadcrumbEntry = $e.find('.button-title').text();
                } else {
                    $title.text($e.text());
                }
                
                $('.mm-navbar__breadcrumbs > *:last-child:not(.icon-home)', $mobileMenu).text(breadcrumbEntry);
            }
            setMobileMenuFooterPosition();
            
        },
        //"openPanel:finish": ($panel) => {
        //}
    }
}, { });

api = $mobileMenu.data("mmenu");

// set / overwrite some settings after mmenu has been initialized
$('.mm-navbar__breadcrumbs > *:first-child', $mobileMenu).addClass('icon-home').text('');
$('.mm-btn_prev', $mobileMenu).text('back');
$('.mm-separator', $mobileMenu).text('›');
$('.mm-navbars_top > .mm-navbar:nth-child(2)').addClass('mm-navbar-title-container');

setMobileMenuFooterPosition();
// mmenu: bugfix mmenu footer
function setMobileMenuFooterPosition(dontAnimate){
    var $panelsContainer = $('> .mm-panels', $mobileMenu).css('height', 'auto');
        $activePanel = $('.mm-panel_opened', $panelsContainer).css('display', 'block'),
        $footer = $('.mm-navbars_bottom', $mobileMenu),
        height = $activePanel.find('.mm-listview').height(),
        topPosition = $('.mm-navbars_top', $mobileMenu).height()==0 ? 44 : $('.mm-navbars_top', $mobileMenu).height(),
        footerCss = {
            'z-index':9,
            'bottom':'auto'
        };
    height = height == 0 ? 380 : height;
    $panelsContainer.css({
        'height': height + 'px',
        'top': topPosition + 'px'
    });
    
    /*
    if (!dontAnimate) {
        $footer.animate({top: (topPosition + height) + 'px'}, 600);
    } else {
        footerCss['top'] = (topPosition + height) + 'px';
    }
    */
    
    footerCss['top'] = (topPosition + height) + 'px';
    $footer.css(footerCss);
}

$('#site-selector').on('show.bs.modal', function (event) {
    api.close();
});

$(window).on("resize", function() {
    if (window.matchMedia("(min-width: 992px)").matches) {
        api.close();
    }
});

    $('body').addClass('js');

    // main nav behavior
    var $mainNav= $('.header-main .navbar-main > ul');
    var $closeButton= $('<a class="button-close" href="#">close</a>').click(closeMainNavSub);

    var $mainNavSub= $('<div>').addClass('navbar-main-sub').append($closeButton);
    var $mainNavSubContainer= $('<div class="navbar-main-sub-container" />').append($mainNavSub);
    $('> li.navbar-main-has-childs', $mainNav).each(function(i){
        $('> a', this).attr('data-show', 'navbar-main-sub-'+i);
        if($('> ul', this).hasClass('main-menu-dropdown-detailed')){
            
            var $detailedNavContainer= $('<div>').attr({id: 'navbar-main-sub-'+i, class: 'dropdown-detailed'}),
            $detaiNav= $('> ul', this),
            $dropdownDetails= $('<div>').attr({class: 'dropdown-detail-container'});
            $detailedNavContainer.append($detaiNav).append($dropdownDetails)
            
            var $default = $('header .dropdown-detail-default');
            $dropdownDetails.append($default);
            if($('> li.active', $detaiNav).length>0) {
                $default.addClass('hidden');
            }
            
            $detaiNav.find('>li>ul').each(function(j){
                var $link=$(this).prev();
                var $content=$(this).next();
                var $c=$('<div>').attr({id: 'nav-details-'+j, class: ''});
                $link.attr('data-show', 'nav-details-'+j);
                
                // set open state if active
                if($(this).parent().hasClass('active')){
                    $c.addClass('open');
                }
                
                $c.append($(this)).append($content); //$('<div>').attr({class: 'dropdown-detail-content'})
                $dropdownDetails.append($c.addClass('dropdown-detail '+$link.attr('class')));
                
                
            });
            
            //$c=$('<div id="navbar-main-sub-'+i+'" class="dropdown-detailed"><ul><li>test</li></ul><div class="dropdown-details"><div class="openable" id="c1">layer ul content</div></div></div>');
            //$('> ul', this).remove();
            //$mainNavSub.append($c);
            
            $mainNavSub.append($detailedNavContainer);
        }else{
            $mainNavSub.append($('> ul', this).attr('id', 'navbar-main-sub-'+i));
        }
    });
    $('.header-main>.container').append($mainNavSubContainer);


    $('> li.navbar-main-has-childs > a', $mainNav).click(function(e) {
        var isOpen= $(this).parent().hasClass('open');
        
        $('> li.open', $mainNav).removeClass('open');
        if(!isOpen){
            var oldHeight= $mainNavSubContainer.css('height', 'auto').outerHeight();
            $mainNavSub.css('height', 'auto');
            $(this).parent().addClass('open');
            $mainNavSub.find('>.open').removeClass('open');
            $('#'+$(this).attr('data-show')).addClass('open').css('opacity', 0);
            $closeButton.css('opacity', 0);
            
            if(!$mainNavSubContainer.is(':visible')){
                $mainNavSubContainer.slideDown(350, function(){
                    $(this).addClass('open');
                    api.close();
                    $menuLink.addClass('menu-close submenu');
                    $(this).find('.open').animate({opacity: 1}, 350);
                    $closeButton.animate({opacity: 1}, 350);
                });    
            } else {
                var newHeight= $mainNavSub.css('height', 'auto').outerHeight();
                $mainNavSub.css('height', oldHeight)
                
                $mainNavSub.animate({height: newHeight}, 350, function(){
                    $(this).parent().addClass('open');
                    $(this).find('.open').animate({opacity: 1}, 350);
                    $closeButton.animate({opacity: 1}, 350);
                    $(this).height('auto');
                }); 
                
            }
            
            $(document).bind('click', closeMenuByBackgroundClick);
            
            // show active element
            if( $mainNavSub.find('>.open > ul > li.active').length > 0 ){
                $mainNavSub.find('>.open > ul > li.active > a').click();
            } else {
                $('.dropdown-detailed.open > .dropdown-detail-container > .open', $mainNavSub).removeClass('open');
                $mainNavSub.find('>.open .dropdown-detail-default').removeClass('hidden');
            }
            
        } else {
            closeMainNavSub();
        }
        
        e.stopPropagation();
        return false;
    });
    
    function closeMainNavSub(e){
        $('> li.open', $mainNav).removeClass('open');
        $menuLink.removeClass('menu-close submenu');
        $(this).find('.open').animate({opacity: 0}, 150);
        $closeButton.animate({opacity: 0}, 150);
        $mainNavSubContainer.slideUp(350, function(){
            $(this).removeClass('open').find('>.open').removeClass('open');
        });
        $(document).unbind('click', closeMenuByBackgroundClick);
        if (typeof e !== 'undefined') {
            e.preventDefault();
        }
    }

    function closeMenuByBackgroundClick(e){
        if($(e.target).closest('.navbar-main-sub').length==0){
            closeMainNavSub();
        }
    }

    $('.main-menu-dropdown-detailed > li > a', $mainNavSub).click(function(e) {
        $('.dropdown-detailed.open > .dropdown-detail-container .dropdown-detail-default', $mainNavSub).addClass('hidden');
        $('.dropdown-detailed.open > .dropdown-detail-container > .open', $mainNavSub).removeClass('open');
        $('#'+$(this).attr('data-show')).addClass('open');
        //$(this).next().addClass('open');
        e.stopPropagation();
        return false;
    });


// division menu active state
var $divisionOpenButton = $('header .navbar-division > ul > li > a');
$activeLink = $('header .main-menu-dropdown-division>li.active:not(:first-child) > a');
if($activeLink.length > 0) {
    var $b= $('> .button-title', $activeLink);
    var html = $b.length>0 ? $b.html() : $activeLink.html();
    var text = $b.length>0 ? $b.text() : $activeLink.text();
    $divisionOpenButton.html(html).attr({
        'title': text,
        'class': 'inherit-cs-color',
    });
    $divisionOpenButton.parent().addClass($activeLink.attr('class'));
}

// division menu: force line break if there are exactly 5 elements
if($('header .main-menu-dropdown-division>li').length==5){
    $('header .main-menu-dropdown-division>li:nth-child(3)').after($('<li class="breakline" />'));
}

// simple overlay for simple-language-nav
$('*[data-toggle="small-overlay"]').click(function(e) {
    var targetElement = $($(this).data('target'), $(this).parent());
    e.preventDefault();
    if (targetElement.length == 0) {
        return false;
    }
    targetElement.toggleClass('open');
});


function setCookie(name, value, days) {
    var expires = "",
        consentCheck = {
            'redirect_ignore'   : 'WmLP-9jsY',
            'redirect_language' : 'WmLP-9jsY',
            'redirect_site'     : 'WmLP-9jsY',
            'modals-shown'      : 'jrmzgEaZf',
            'consent_captcha'   : 'aRmo-3Cjt',
        };

    if (value !== '' && (typeof consentCheck[name] == 'undefined' || typeof usercentrics == 'undefined' || !usercentrics.getConsents(consentCheck[name]).consentStatus)) {
        return false;
    }
    
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000)); 
		expires = "; expires="+date.toGMTString();
	}
    
    if (value=='') {
        expires = "; expires=Thu, 01 Jan 1970 00:00:00 GMT";
    }
    
    document.cookie = name+"="+value+expires+"; path=/"; 
}

function getCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}


// dropdown download
$('.dropdown-download').each(function() {
    $('.start-dropdown-download', this).click(function(){
        /*
        //force download workaround?
        var anchor = document.createElement('a');
        anchor.href = this.props.download_url;
        anchor.target = '_blank';
        anchor.download = this.props.file_name;
        anchor.click();
        */
        var $parent= $(this).closest('.dropdown-download');
        if($('select', $parent).val()!='') {
            window.location = $('select', $parent).val();    
        }
        
    });
});

// active states for box links
$('.box-c').mouseenter(function(){
    $('.button-big-right2', this).addClass('active');
}).mouseleave(function(){
    $('.button-big-right2', this).removeClass('active');
});

// tabbed content
$('.tabbed-content').tabs();

// expandable (read more)
$('.expandable').expandable();

// collapsible
$('.collapsible').collapsible();

// sticky header
$('.header-sticky').sticky({
    'scrollOffset': 0,
    'respectMaxScroll': false,
});

// scrolling page nav and sticky functions
/* visible check in scroll nav and sticky? to avoid cpu usage on mobile */
if($('.page-nav-enabled').length>0) {
    $('.page-nav-enabled').scrollNav({ className: 'scroll-nav sticky' });
}
$('.sticky').sticky();

$(window).on('collapsible.changed expandable.changed lazyloaded', function(e) {
    // TODO: tabbed content change event, to reinit scroll nav positions
    $(window).trigger('resize.sticky').trigger('resize.scrollNav').trigger('resize.expandable').trigger('resize.filter-more');
    // TODO: optimize triggers, to reduce cpu usage; trigger only elements which are targeted?
});

$('.nav-horizontal>li>*:first-child').click(function() {
    var $parent = $(this).closest('li'),
        $subNav = $('> ul', $parent),
        $container = $(this).closest('.nav-horizontal');
    
    // reset already opened navigations
    
    $old = $('.nav-open', $container);
    $('>a', $old).css('height', 'auto');
    $old.css('margin-bottom', '0').addClass('transition-off').removeClass('nav-open'); //.removeClass('transition-off');
    
    if ($subNav.length > 0) {
        $parent.addClass('nav-open').css('margin-bottom', $subNav.outerHeight()+'px');
        
        var offsetContainer = $container.offset(),
            offsetParent = $parent.offset(),
            $link = $('>a', $parent),
            top = (offsetParent.top - offsetContainer.top + $parent.height());
        
        // $parent.height()+parseInt($parent.css('margin-top'))
        $subNav.css('top', top + 'px');
        $link.css('height', (top-60) + 'px');
    }
    
    $element = $parent;
    while($element) {
        if ($element[0].tagName == 'LI') {
            $('>*:first-child', $element).addClass('active');
            if ($('> ul', $element).length>0) {
                $element.addClass('nav-open');
            }
        } else if ($element.is($container)) {
            break;
        }
        $element = $element.parent();
    }
    
    $old.removeClass('transition-off');
});
$('.nav-horizontal>li>*.active').click();


// slider
$(document).ready(function(){
    $('.product-main-images').slick({
        slidesToShow: 1,
        slidesToScroll: 1,
        arrows: false,
        fade: true,
        infinite: false,
        asNavFor: '.product-preview-images'
    });
    $('.product-preview-images').on('init', function(slick){
        if($('.slick-prev', slick.target).length>0) {
            $(slick.target).addClass('slide-nav-active');
        }
    }).on('reInit', function(slick){
        if($('.slick-prev', slick.target).length>0 && !$(slick.target).hasClass('slide-nav-active')) {
            $(slick.target).addClass('slide-nav-active');
        }
    });
    $('.product-preview-images').slick({
        slidesToShow: 4,
        slidesToScroll: 1,
        asNavFor: '.product-main-images',
        focusOnSelect: true,
        infinite: false,
        prevArrow: '<button type="button" class="slick-prev icon-arrow icon-text-replace">Previous</button>',
        nextArrow: '<button type="button" class="slick-next icon-arrow icon-text-replace">Next</button>',
        responsive: [
            {
                breakpoint: 480,
                settings: {
                    arrows: false,
                    centerMode: true,
                    centerPadding: '40px',
                    slidesToShow: 2,
                    slidesToScroll: 2,
                }
            }
        ]
    });
    
    
    $('.slider').slick({
        slidesToShow: 1,
        slidesToScroll: 1,
        infinite: true,
        /*arrows: false,
        fade: true,
        dots: true,
        autoplay: true,
        autoplaySpeed: 10000,*/
    });
    
    $('.eventslider-list-view').slick({
        slidesToShow: 2,
        slidesToScroll: 2,
        arrows: true,
        fade: false,
        infinite: true,
        autoplay: true,
        autoplaySpeed: 4000,
        responsive: [
            {
                breakpoint: 768,
                settings: {
                    slidesToShow: 1
                }
            },
            {
                breakpoint: 480,
                settings: {
                    slidesToShow: 1
                }
            }
        ]
    });
    
    $tabbedContent= $('.tabbed-content > .tab-item');
    $tabbedContent.each(function(){
        var $container = $(this).closest('.tabbed-content-container');
        var $tab = $(this);
        var $navElement = $('.tab-navigation > li:nth-child('+($tab.index()+1)+')', $container);
        
        // tabs: hide empty tabs and show count
        if ($(this).attr('data-showcount')=='true') {
            var count = $(this).find('.slick-slide').length;
            if (count==0) {
                $navElement.remove();
                $tab.remove();
            } else {
                var $navElement = $('.tab-navigation > li:nth-child('+($tab.index()+1)+')', $container);
                $('span', $navElement).append(' <span class="slider-current-index">1</span>/<span class="slider-total-items">'+$(this).find('.slick-slide').length +'</span>');
            }    
        }
        
        if ($(this).attr('data-switch-to-next')=='true' && $('video', $tab).length>0) {
            $('video', $tab).on('ended', checkIfNextTab);
        }
    });
    
    // tabs: slider related infos
    $tabbedContentSlider= $('.tabbed-content .slider');
    if ($tabbedContentSlider.length>0) {
        $tabbedContentSlider.slick('slickPause').bind('beforeChange', function(e, slick, currentIndex, nextIndex) {
            $('.tab-navigation > li > span.active > .slider-current-index', $(this).closest('.tabbed-content-container')).text((nextIndex+1));
            
            if (tabSwitchTimeout) {
                clearTimeout(tabSwitchTimeout);
            }
            if (nextIndex == (slick.slideCount-1)) {
                var $tab = $(this).closest('.tab-item');
                if ($tab && $tab.attr('data-switch-to-next')=='true') {
                    var time = $tab.attr('data-switch-timeout') * 1000;
                    tabSwitchTimeout = setTimeout(function(currentTab) { 
                        nextTab.call(currentTab);
                    }, time, $tab);
                }
            }
        });
        
        /*
        if($tabbedContentSlider[0].index()==0) {
            $tabbedContentSlider.eq(0).slick('slickPlay');    
        }
        */
        $(document).bind('tabbed-content.tab.loaded', onTabLoaded);
    }
    
    $tabElements= $('.tabbed-content>.tab-item:first-child');
    $tabElements.each(function() {
        onTabLoaded({}, $(this));
    });
    
    $('.filter').filterItems({
        slidesToShow: 1
    });
    //$('.filter').filterItems('function');
});

var tabSwitchTimeout;

function checkIfNextTab(e) {
    var $tab = $(this).closest('.tab-item');
    if ($tab.attr('data-switch-to-next')=='true') {
        nextTab.call($tab);
    }
}

function nextTab(e) {
    var $container = $(this).closest('.tabbed-content-container');
    $('.tab-navigation .active', $container).parent().next().find('>span').click();
}

function onTabLoaded(e, currentTab, lastTab) {
    $('.slider', currentTab).slick('setPosition');
    $('.slider', currentTab).slick('slickPlay');
    
    var $currentVideo = $('video', currentTab);
    if ($currentVideo.length>0) {
        $currentVideo[0].currentTime = 0;
        $currentVideo[0].play();
    }
    
    if (tabSwitchTimeout) {
        clearTimeout(tabSwitchTimeout);
    }
    
    if ($(currentTab).attr('data-switch-to-next')=='true' && $('video', currentTab).length==0 && ($('.slider', currentTab).length==0 || $('.slider-item', currentTab).length==1)) {
        // set timeout, change to next tab
        var time = currentTab.attr('data-switch-timeout') * 1000;
        tabSwitchTimeout = setTimeout(function(currentTab) { 
            nextTab.call(currentTab);
        }, time, currentTab);
    }
    
    if (lastTab) {
        $('.slider', lastTab).slick('slickPause');
        $('video', lastTab).each(function(){
           this.pause(); 
        });
    }
}


// stop video if modal is closed
$('.video-player-container').on('hide.bs.modal', function(e) {    
    var $e = $('iframe', e.delegateTarget),
        src = $e.attr('src');
    $e.attr('src', '/');
    $e.attr('src', src);
}).on('show.bs.modal', function(e,i,d) {
    var $modal = $(e.delegateTarget),
        $link = $(e.relatedTarget);
    if ($modal.hasClass('video-player-container')) {
        $modal.find('.aspect-ratio-box-inner > *').remove();
        $modal.find('.heading-1').text($link.attr('data-title'));
        $modal.find('.heading-sub-1').text($link.attr('data-title-sub'));
        
        if ($link[0].hasAttribute('data-embed') && $link.attr('data-embed')!='') {
            $modal.find('.aspect-ratio-box-inner').append($($link.attr('data-embed')).clone());
        } else if ($link[0].hasAttribute('data-id') && $link.attr('data-id')!='') {
            var url = '';
            
            if ($link.attr('data-extension')=='vimeo') {
                url = 'https://player.vimeo.com/video/'+$link.attr('data-id')+'?title=0&amp;byline=0&amp;portrait=0';
            } else if ($link.attr('data-extension')=='youtube') {
                url = 'https://www.youtube-nocookie.com/embed/'+$link.attr('data-id')+'?autohide=1&controls=2&enablejsapi=1&origin=https%3A%2F%2Fwww.orafol.com&showinfo=0';
            }
            
            var $iframe = $('<iframe src="'+url+'" allowfullscreen="" class="video-embed-item responsive-iframe" allow="fullscreen"></iframe>');
            $modal.find('.aspect-ratio-box-inner').append($iframe);
        }
    }
});

// scroll to anchor
$('.navbar-main-sub a, .mm-menu a').click(function(e) {
    var s = $(this).attr('href').split('#');
    if (s.length > 1 && s[0] == location.pathname) {
        closeMainNavSub(e);
        api.close();
        $('html, body').animate({
            scrollTop: ($('#'+s[1]).offset().top - 120)
        }, 500);
        e.preventDefault();
    }
});

// ignore redirect suggestion if user has manually choosen a language
$('.language-nav a, .simple-language-nav a').click(function(e) {
    setCookie('redirect_ignore', 1, 7);
});

// deactivated by #5445
// reactivated by request from 2021-04-16
//$('.modal-on-page-load').modal({});
$('.modal-on-page-load').each(function() {
    var $e = $(this),
        uid = $e.data('recordUid'),
        modalsShown = getCookie('modals-shown') != null ? JSON.parse(getCookie('modals-shown')) : {},
        now = new Date().getTime(),
        until = now + $e.data('days')*24*60*60*1000;
    
    if ($e.data('days') == '' || typeof modalsShown.uid == 'undefined' || now > modalsShown.uid) {
        $e.modal({});
        if ($e.data('days') != '') {
            $e.on('hidden.bs.modal', function (e) {
                modalsShown.uid = until;
                setCookie('modals-shown', JSON.stringify(modalsShown), 28);
            });
        }
    }
});

function LanguageAndCountryBasedRedirect() {
	'use strict';
    var _ = this;
    
    this.initialize = function() {
        var d = _.getCurrentLangagueAndSite();

        if (_.isBot() || getCookie('redirect_ignore')=='1' || d['language'] == getCookie('redirect_language') && d['site'] == getCookie('redirect_site')) {
            //console.log('redirect ignore');
            return ;
        }
        
        var $canonicalTag = $('head link[rel="canonical"]');
        if ($canonicalTag.length == 0) {
            return ;
        }
        
        var url = $canonicalTag.attr('href');
        url += url.indexOf('?') != -1 ? '&' : '?';
        url += 'type=2187';
        //console.log('init redirect', url);
        $.ajax({
            type: "POST",
            url: url,
            //data: data,
            success: action,
            dataType: 'JSON'
        });
    }
    
    this.isBot = function() {
        return /bot|crawl|slurp|spider|google|baidu|bing|msn|teoma|yandex/i.test(navigator.userAgent);
    }
    
    this.getCurrentLangagueAndSite = function() {
        var parts = window.location.pathname.split('/');
        
        if (parts[2] == '') {
            parts[2] = 'corporate';
        }
        
        return { language: parts[1], site: parts[2] };
        //return { language: 'en', site: 'europe' };
    }
    
    var action = function(json, textStatus, jqXHR) {
        _.getCurrentLangagueAndSite();
        if (typeof json !== 'object' || !json.hasOwnProperty('action') || typeof _[json.action+'Action'] != 'function') {
            return ;
        }
        
        _[json.action+'Action'](json);
    };
    
    this.redirectAction = function(json) {
        setCookie('redirect_language', json['suggest']['language']['identifier'], 7);
        setCookie('redirect_site', json['suggest']['site']['identifier'], 7);
        window.location = json['uri'];
    }
    
    this.suggestAction = function(json) {
        var $suggestModalContent = $(json.html);
        $('.page-container > footer').after($suggestModalContent);
        $('#redirect-suggest').modal('show');
        $('.redirect-continue', $suggestModalContent).data({
            language: json['suggest']['language']['identifier'],
            site: json['suggest']['site']['identifier']
        }).click(function() {
            $('#redirect-suggest').modal('hide');
            setCookie('redirect_ignore', 1, 7);
            setCookie('redirect_language', $(this).data('language'), 7);
            setCookie('redirect_site', $(this).data('site'), 7);
        });
    }
    
    this.continueAction = function(json) {
        var d = _.getCurrentLangagueAndSite();
        setCookie('redirect_language', d['language'], 7);
        setCookie('redirect_site', d['site'], 7);
    }
}

var languageAndCountryBasedRedirect = new window.LanguageAndCountryBasedRedirect();
languageAndCountryBasedRedirect.initialize();

// Matomo
if (typeof usercentrics != 'undefined' && usercentrics.getConsents('1kknLNxrx').consentStatus) {
    var _paq = window._paq || [];
    _paq.push(["setDomains", ["*.www.orafol.com"]]);
    _paq.push(['trackPageView']);
    _paq.push(['enableLinkTracking']);
    (function() {
        var u="//analytics.orafol.com/";
        _paq.push(['setTrackerUrl', u+'matomo.php']);
        _paq.push(['setSiteId', '1']);
        var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
        g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
    })();
}

var resetConsentStorage = localStorage.getItem("ucConsents") === null,
    hideConsentOnPages = [
        '/de/europe/impressum/',
        '/en/europe/legal-notice/',
        '/de/europe/datenschutz/',
        '/en/europe/privacy-policy/'
    ];

function checkConsentStatus() {
    setCookie('consent_captcha', usercentrics.getConsents('aRmo-3Cjt').consentStatus ? '1' : '');
}

function hideConsentBannerIfSpecialPage() {
    var path = window.location.pathname;
    path = path.charAt(path.length-1) != '/' ? path + '/' : path;
    if (hideConsentOnPages.indexOf(path)===-1) {
        return ;
    }
    
    window.usercentrics.updateBannerIsVisible(false);
    
    if (resetConsentStorage) {
        localStorage.removeItem('ucSettings');
        localStorage.removeItem('ucConsents');
        localStorage.removeItem('usercentrics');
    }
}

window.addEventListener("uc-events", function (e) {
    if( e.data.event == "consents_changed_finished") {
        checkConsentStatus();
        location.reload();
    }

    if (e.data.event === "consents_initialized") {
        hideConsentBannerIfSpecialPage();
    }
});

checkConsentStatus();

window["usercentrics"] = window["usercentrics"] || {};
if (window["usercentrics"].isInitialized) {
    hideConsentBannerIfSpecialPage();
}
/* else {
    window["usercentrics"].onViewInit = function () {
    }
}
*/
