\").html(e))),t.opts.filter&&(e=n(\"
\").html(e).find(t.opts.filter))),t.$slide.one(\"onReset\",function(){t.$placeholder&&(t.$placeholder.after(e.hide()).remove(),t.$placeholder=null),t.$smallBtn&&(t.$smallBtn.remove(),t.$smallBtn=null),t.hasError||(n(this).empty(),t.isLoaded=!1)}),t.$content=n(e).appendTo(t.$slide),t.opts.smallBtn&&!t.$smallBtn&&(t.$smallBtn=n(o.translate(t,t.opts.btnTpl.smallBtn)).appendTo(t.$content)),this.afterLoad(t))},setError:function(t){t.hasError=!0,t.$slide.removeClass(\"fancybox-slide--\"+t.type),this.setContent(t,this.translate(t,t.opts.errorTpl))},showLoading:function(t){var e=this;t=t||e.current,t&&!t.$spinner&&(t.$spinner=n(e.opts.spinnerTpl).appendTo(t.$slide))},hideLoading:function(t){var e=this;t=t||e.current,t&&t.$spinner&&(t.$spinner.remove(),delete t.$spinner)},afterLoad:function(t){var e=this;e.isClosing||(t.isLoading=!1,t.isLoaded=!0,e.trigger(\"afterLoad\",t),e.hideLoading(t),t.opts.protect&&t.$content&&!t.hasError&&(t.$content.on(\"contextmenu.fb\",function(t){return 2==t.button&&t.preventDefault(),!0}),\"image\"===t.type&&n('
').appendTo(t.$content)),e.revealContent(t))},revealContent:function(t){var e,i,a,s,r,c=this,l=t.$slide,u=!1;return e=t.opts[c.firstRun?\"animationEffect\":\"transitionEffect\"],a=t.opts[c.firstRun?\"animationDuration\":\"transitionDuration\"],a=parseInt(t.forcedDuration===o?a:t.forcedDuration,10),!t.isMoved&&t.pos===c.currPos&&a||(e=!1),\"zoom\"!==e||t.pos===c.currPos&&a&&\"image\"===t.type&&!t.hasError&&(u=c.getThumbPos(t))||(e=\"fade\"),\"zoom\"===e?(r=c.getFitPos(t),r.scaleX=r.width/u.width,r.scaleY=r.height/u.height,delete r.width,delete r.height,s=t.opts.zoomOpacity,\"auto\"==s&&(s=Math.abs(t.width/t.height-u.width/u.height)>.1),s&&(u.opacity=.1,r.opacity=1),n.fancybox.setTranslate(t.$content.removeClass(\"fancybox-is-hidden\"),u),f(t.$content),void n.fancybox.animate(t.$content,r,a,function(){c.complete()})):(c.updateSlide(t),e?(n.fancybox.stop(l),i=\"fancybox-animated fancybox-slide--\"+(t.pos>c.prevPos?\"next\":\"previous\")+\" fancybox-fx-\"+e,l.removeAttr(\"style\").removeClass(\"fancybox-slide--current fancybox-slide--next fancybox-slide--previous\").addClass(i),t.$content.removeClass(\"fancybox-is-hidden\"),f(l),void n.fancybox.animate(l,\"fancybox-slide--current\",a,function(e){l.removeClass(i).removeAttr(\"style\"),t.pos===c.currPos&&c.complete()},!0)):(f(l),t.$content.removeClass(\"fancybox-is-hidden\"),void(t.pos===c.currPos&&c.complete())))},getThumbPos:function(o){var i,a=this,s=!1,r=function(e){for(var o,i=e[0],a=i.getBoundingClientRect(),s=[];null!==i.parentElement;)\"hidden\"!==n(i.parentElement).css(\"overflow\")&&\"auto\"!==n(i.parentElement).css(\"overflow\")||s.push(i.parentElement.getBoundingClientRect()),i=i.parentElement;return o=s.every(function(t){var e=Math.min(a.right,t.right)-Math.max(a.left,t.left),n=Math.min(a.bottom,t.bottom)-Math.max(a.top,t.top);return e>0&&n>0}),o&&a.bottom>0&&a.right>0&&a.left
=t.currPos-1&&o.pos<=t.currPos+1?i[o.pos]=o:o&&(n.fancybox.stop(o.$slide),o.$slide.unbind().remove())}),t.slides=i,t.updateCursor(),t.trigger(\"afterShow\"),(n(e.activeElement).is(\"[disabled]\")||o.opts.autoFocus&&\"image\"!=o.type&&\"iframe\"!==o.type)&&t.focus())},preload:function(){var t,e,n=this;n.group.length<2||(t=n.slides[n.currPos+1],e=n.slides[n.currPos-1],t&&\"image\"===t.type&&n.loadSlide(t),e&&\"image\"===e.type&&n.loadSlide(e))},focus:function(){var t,e=this.current;this.isClosing||(t=e&&e.isComplete?e.$slide.find(\"button,:input,[tabindex],a\").filter(\":not([disabled]):visible:first\"):null,t=t&&t.length?t:this.$refs.container,t.focus())},activate:function(){var t=this;n(\".fancybox-container\").each(function(){var e=n(this).data(\"FancyBox\");e&&e.uid!==t.uid&&!e.isClosing&&e.trigger(\"onDeactivate\")}),t.current&&(t.$refs.container.index()>0&&t.$refs.container.prependTo(e.body),t.updateControls()),t.trigger(\"onActivate\"),t.addEvents()},close:function(t,e){var o,i,a,s,r,c,l=this,f=l.current,h=function(){l.cleanUp(t)};return!l.isClosing&&(l.isClosing=!0,l.trigger(\"beforeClose\",t)===!1?(l.isClosing=!1,u(function(){l.update()}),!1):(l.removeEvents(),f.timouts&&clearTimeout(f.timouts),a=f.$content,o=f.opts.animationEffect,i=n.isNumeric(e)?e:o?f.opts.animationDuration:0,f.$slide.off(d).removeClass(\"fancybox-slide--complete fancybox-slide--next fancybox-slide--previous fancybox-animated\"),f.$slide.siblings().trigger(\"onReset\").remove(),i&&l.$refs.container.removeClass(\"fancybox-is-open\").addClass(\"fancybox-is-closing\"),l.hideLoading(f),l.hideControls(),l.updateCursor(),\"zoom\"!==o||t!==!0&&a&&i&&\"image\"===f.type&&!f.hasError&&(c=l.getThumbPos(f))||(o=\"fade\"),\"zoom\"===o?(n.fancybox.stop(a),r=n.fancybox.getTranslate(a),r.width=r.width*r.scaleX,r.height=r.height*r.scaleY,s=f.opts.zoomOpacity,\"auto\"==s&&(s=Math.abs(f.width/f.height-c.width/c.height)>.1),s&&(c.opacity=0),r.scaleX=r.width/c.width,r.scaleY=r.height/c.height,r.width=c.width,r.height=c.height,n.fancybox.setTranslate(f.$content,r),n.fancybox.animate(f.$content,c,i,h),!0):(o&&i?t===!0?setTimeout(h,i):n.fancybox.animate(f.$slide.removeClass(\"fancybox-slide--current\"),\"fancybox-animated fancybox-slide--previous fancybox-fx-\"+o,i,h):h(),!0)))},cleanUp:function(t){var e,o=this;o.current.$slide.trigger(\"onReset\"),o.$refs.container.empty().remove(),o.trigger(\"afterClose\",t),o.$lastFocus&&o.current.opts.backFocus&&o.$lastFocus.focus(),o.current=null,e=n.fancybox.getInstance(),e?e.activate():(s.scrollTop(o.scrollTop).scrollLeft(o.scrollLeft),n(\"html\").removeClass(\"fancybox-enabled\"),n(\"#fancybox-style-noscroll\").remove())},trigger:function(t,e){var o,i=Array.prototype.slice.call(arguments,1),a=this,s=e&&e.opts?e:a.current;return s?i.unshift(s):s=a,i.unshift(a),n.isFunction(s.opts[t])&&(o=s.opts[t].apply(s,i)),o===!1?o:void(\"afterClose\"===t?r.trigger(t+\".fb\",i):a.$refs.container.trigger(t+\".fb\",i))},updateControls:function(t){var e=this,o=e.current,i=o.index,a=o.opts,s=a.caption,r=e.$refs.caption;o.$slide.trigger(\"refresh\"),e.$caption=s&&s.length?r.html(s):null,e.isHiddenControls||e.showControls(),n(\"[data-fancybox-count]\").html(e.group.length),n(\"[data-fancybox-index]\").html(i+1),n(\"[data-fancybox-prev]\").prop(\"disabled\",!a.loop&&i<=0),n(\"[data-fancybox-next]\").prop(\"disabled\",!a.loop&&i>=e.group.length-1)},hideControls:function(){this.isHiddenControls=!0,this.$refs.container.removeClass(\"fancybox-show-infobar fancybox-show-toolbar fancybox-show-caption fancybox-show-nav\")},showControls:function(){var t=this,e=t.current?t.current.opts:t.opts,n=t.$refs.container;t.isHiddenControls=!1,t.idleSecondsCounter=0,n.toggleClass(\"fancybox-show-toolbar\",!(!e.toolbar||!e.buttons)).toggleClass(\"fancybox-show-infobar\",!!(e.infobar&&t.group.length>1)).toggleClass(\"fancybox-show-nav\",!!(e.arrows&&t.group.length>1)).toggleClass(\"fancybox-is-modal\",!!e.modal),t.$caption?n.addClass(\"fancybox-show-caption \"):n.removeClass(\"fancybox-show-caption\")},toggleControls:function(){this.isHiddenControls?this.showControls():this.hideControls()}}),n.fancybox={version:\"3.1.24\",defaults:a,getInstance:function(t){var e=n('.fancybox-container:not(\".fancybox-is-closing\"):first').data(\"FancyBox\"),o=Array.prototype.slice.call(arguments,1);return e instanceof h&&(\"string\"===n.type(t)?e[t].apply(e,o):\"function\"===n.type(t)&&t.apply(e,o),e)},open:function(t,e,n){return new h(t,e,n)},close:function(t){var e=this.getInstance();e&&(e.close(),t===!0&&this.close())},destroy:function(){this.close(!0),r.off(\"click.fb-start\")},isMobile:e.createTouch!==o&&/Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(navigator.userAgent),use3d:function(){var n=e.createElement(\"div\");return t.getComputedStyle&&t.getComputedStyle(n).getPropertyValue(\"transform\")&&!(e.documentMode&&e.documentMode<11)}(),getTranslate:function(t){var e;if(!t||!t.length)return!1;if(e=t.eq(0).css(\"transform\"),e&&e.indexOf(\"matrix\")!==-1?(e=e.split(\"(\")[1],e=e.split(\")\")[0],e=e.split(\",\")):e=[],e.length)e=e.length>10?[e[13],e[12],e[0],e[5]]:[e[5],e[4],e[0],e[3]],e=e.map(parseFloat);else{e=[0,0,1,1];var n=/\\.*translate\\((.*)px,(.*)px\\)/i,o=n.exec(t.eq(0).attr(\"style\"));o&&(e[0]=parseFloat(o[2]),e[1]=parseFloat(o[1]))}return{top:e[0],left:e[1],scaleX:e[2],scaleY:e[3],opacity:parseFloat(t.css(\"opacity\")),width:t.width(),height:t.height()}},setTranslate:function(t,e){var n=\"\",i={};if(t&&e)return e.left===o&&e.top===o||(n=(e.left===o?t.position().left:e.left)+\"px, \"+(e.top===o?t.position().top:e.top)+\"px\",n=this.use3d?\"translate3d(\"+n+\", 0px)\":\"translate(\"+n+\")\"),e.scaleX!==o&&e.scaleY!==o&&(n=(n.length?n+\" \":\"\")+\"scale(\"+e.scaleX+\", \"+e.scaleY+\")\"),n.length&&(i.transform=n),e.opacity!==o&&(i.opacity=e.opacity),e.width!==o&&(i.width=e.width),e.height!==o&&(i.height=e.height),t.css(i)},animate:function(t,e,i,a,s){var r=d||\"transitionend\";n.isFunction(i)&&(a=i,i=null),n.isPlainObject(e)||t.removeAttr(\"style\"),t.on(r,function(i){(!i||!i.originalEvent||t.is(i.originalEvent.target)&&\"z-index\"!=i.originalEvent.propertyName)&&(t.off(r),n.isPlainObject(e)?e.scaleX!==o&&e.scaleY!==o&&(t.css(\"transition-duration\",\"0ms\"),e.width=Math.round(t.width()*e.scaleX),e.height=Math.round(t.height()*e.scaleY),e.scaleX=1,e.scaleY=1,n.fancybox.setTranslate(t,e)):s!==!0&&t.removeClass(e),n.isFunction(a)&&a(i))}),n.isNumeric(i)&&t.css(\"transition-duration\",i+\"ms\"),n.isPlainObject(e)?n.fancybox.setTranslate(t,e):t.addClass(e),t.data(\"timer\",setTimeout(function(){t.trigger(\"transitionend\")},i+16))},stop:function(t){clearTimeout(t.data(\"timer\")),t.off(d)}},n.fn.fancybox=function(t){var e;return t=t||{},e=t.selector||!1,e?n(\"body\").off(\"click.fb-start\",e).on(\"click.fb-start\",e,{options:t},i):this.off(\"click.fb-start\").on(\"click.fb-start\",{items:this,options:t},i),this},r.on(\"click.fb-start\",\"[data-fancybox]\",i)}}(window,document,window.jQuery),function(t){\"use strict\";var e=function(e,n,o){if(e)return o=o||\"\",\"object\"===t.type(o)&&(o=t.param(o,!0)),t.each(n,function(t,n){e=e.replace(\"$\"+t,n||\"\")}),o.length&&(e+=(e.indexOf(\"?\")>0?\"&\":\"?\")+o),e},n={youtube:{matcher:/(youtube\\.com|youtu\\.be|youtube\\-nocookie\\.com)\\/(watch\\?(.*&)?v=|v\\/|u\\/|embed\\/?)?(videoseries\\?list=(.*)|[\\w-]{11}|\\?listType=(.*)&list=(.*))(.*)/i,params:{autoplay:1,autohide:1,fs:1,rel:0,hd:1,wmode:\"transparent\",enablejsapi:1,html5:1},paramPlace:8,type:\"iframe\",url:\"//www.youtube.com/embed/$4\",thumb:\"//img.youtube.com/vi/$4/hqdefault.jpg\"},vimeo:{matcher:/^.+vimeo.com\\/(.*\\/)?([\\d]+)(.*)?/,params:{autoplay:1,hd:1,show_title:1,show_byline:1,show_portrait:0,fullscreen:1,api:1},paramPlace:3,type:\"iframe\",url:\"//player.vimeo.com/video/$2\"},metacafe:{matcher:/metacafe.com\\/watch\\/(\\d+)\\/(.*)?/,type:\"iframe\",url:\"//www.metacafe.com/embed/$1/?ap=1\"},dailymotion:{matcher:/dailymotion.com\\/video\\/(.*)\\/?(.*)/,params:{additionalInfos:0,autoStart:1},type:\"iframe\",url:\"//www.dailymotion.com/embed/video/$1\"},vine:{matcher:/vine.co\\/v\\/([a-zA-Z0-9\\?\\=\\-]+)/,type:\"iframe\",url:\"//vine.co/v/$1/embed/simple\"},instagram:{matcher:/(instagr\\.am|instagram\\.com)\\/p\\/([a-zA-Z0-9_\\-]+)\\/?/i,type:\"image\",url:\"//$1/p/$2/media/?size=l\"},gmap_place:{matcher:/(maps\\.)?google\\.([a-z]{2,3}(\\.[a-z]{2})?)\\/(((maps\\/(place\\/(.*)\\/)?\\@(.*),(\\d+.?\\d+?)z))|(\\?ll=))(.*)?/i,type:\"iframe\",url:function(t){return\"//maps.google.\"+t[2]+\"/?ll=\"+(t[9]?t[9]+\"&z=\"+Math.floor(t[10])+(t[12]?t[12].replace(/^\\//,\"&\"):\"\"):t[12])+\"&output=\"+(t[12]&&t[12].indexOf(\"layer=c\")>0?\"svembed\":\"embed\")}},gmap_search:{matcher:/(maps\\.)?google\\.([a-z]{2,3}(\\.[a-z]{2})?)\\/(maps\\/search\\/)(.*)/i,type:\"iframe\",url:function(t){return\"//maps.google.\"+t[2]+\"/maps?q=\"+t[5].replace(\"query=\",\"q=\").replace(\"api=1\",\"\")+\"&output=embed\"}}};t(document).on(\"onInit.fb\",function(o,i){t.each(i.group,function(o,i){var a,s,r,c,l,u,d,f=i.src||\"\",h=!1;i.type||(a=t.extend(!0,{},n,i.opts.media),t.each(a,function(n,o){if(r=f.match(o.matcher),u={},d=n,r){if(h=o.type,o.paramPlace&&r[o.paramPlace]){l=r[o.paramPlace],\"?\"==l[0]&&(l=l.substring(1)),l=l.split(\"&\");for(var a=0;ae.clientHeight,a=(\"scroll\"===o||\"auto\"===o)&&e.scrollWidth>e.clientWidth;return i||a},l=function(t){for(var e=!1;;){if(e=c(t.get(0)))break;if(t=t.parent(),!t.length||t.hasClass(\"fancybox-stage\")||t.is(\"body\"))break}return e},u=function(t){var e=this;e.instance=t,e.$bg=t.$refs.bg,e.$stage=t.$refs.stage,e.$container=t.$refs.container,e.destroy(),e.$container.on(\"touchstart.fb.touch mousedown.fb.touch\",n.proxy(e,\"ontouchstart\"))};u.prototype.destroy=function(){this.$container.off(\".fb.touch\")},u.prototype.ontouchstart=function(o){var i=this,c=n(o.target),u=i.instance,d=u.current,f=d.$content,h=\"touchstart\"==o.type;if(h&&i.$container.off(\"mousedown.fb.touch\"),!d||i.instance.isAnimating||i.instance.isClosing)return o.stopPropagation(),void o.preventDefault();if((!o.originalEvent||2!=o.originalEvent.button)&&c.length&&!r(c)&&!r(c.parent())&&!(o.originalEvent.clientX>c[0].clientWidth+c.offset().left)&&(i.startPoints=a(o),i.startPoints&&!(i.startPoints.length>1&&u.isSliding))){if(i.$target=c,i.$content=f,i.canTap=!0,n(e).off(\".fb.touch\"),n(e).on(h?\"touchend.fb.touch touchcancel.fb.touch\":\"mouseup.fb.touch mouseleave.fb.touch\",n.proxy(i,\"ontouchend\")),n(e).on(h?\"touchmove.fb.touch\":\"mousemove.fb.touch\",n.proxy(i,\"ontouchmove\")),o.stopPropagation(),!u.current.opts.touch&&!u.canPan()||!c.is(i.$stage)&&!i.$stage.find(c).length)return void(c.is(\"img\")&&o.preventDefault());n.fancybox.isMobile&&(l(i.$target)||l(i.$target.parent()))||o.preventDefault(),i.canvasWidth=Math.round(d.$slide[0].clientWidth),i.canvasHeight=Math.round(d.$slide[0].clientHeight),i.startTime=(new Date).getTime(),i.distanceX=i.distanceY=i.distance=0,i.isPanning=!1,i.isSwiping=!1,i.isZooming=!1,i.sliderStartPos=i.sliderLastPos||{top:0,left:0},i.contentStartPos=n.fancybox.getTranslate(i.$content),i.contentLastPos=null,1!==i.startPoints.length||i.isZooming||(i.canTap=!u.isSliding,\"image\"===d.type&&(i.contentStartPos.width>i.canvasWidth+1||i.contentStartPos.height>i.canvasHeight+1)?(n.fancybox.stop(i.$content),i.$content.css(\"transition-duration\",\"0ms\"),i.isPanning=!0):i.isSwiping=!0,i.$container.addClass(\"fancybox-controls--isGrabbing\")),2!==i.startPoints.length||u.isAnimating||d.hasError||\"image\"!==d.type||!d.isLoaded&&!d.$ghost||(i.isZooming=!0,i.isSwiping=!1,i.isPanning=!1,n.fancybox.stop(i.$content),i.$content.css(\"transition-duration\",\"0ms\"),i.centerPointStartX=.5*(i.startPoints[0].x+i.startPoints[1].x)-n(t).scrollLeft(),i.centerPointStartY=.5*(i.startPoints[0].y+i.startPoints[1].y)-n(t).scrollTop(),i.percentageOfImageAtPinchPointX=(i.centerPointStartX-i.contentStartPos.left)/i.contentStartPos.width,i.percentageOfImageAtPinchPointY=(i.centerPointStartY-i.contentStartPos.top)/i.contentStartPos.height,i.startDistanceBetweenFingers=s(i.startPoints[0],i.startPoints[1]))}},u.prototype.ontouchmove=function(t){var e=this;if(e.newPoints=a(t),n.fancybox.isMobile&&(l(e.$target)||l(e.$target.parent())))return t.stopPropagation(),void(e.canTap=!1);if((e.instance.current.opts.touch||e.instance.canPan())&&e.newPoints&&e.newPoints.length&&(e.distanceX=s(e.newPoints[0],e.startPoints[0],\"x\"),e.distanceY=s(e.newPoints[0],e.startPoints[0],\"y\"),e.distance=s(e.newPoints[0],e.startPoints[0]),e.distance>0)){if(!e.$target.is(e.$stage)&&!e.$stage.find(e.$target).length)return;t.stopPropagation(),t.preventDefault(),e.isSwiping?e.onSwipe():e.isPanning?e.onPan():e.isZooming&&e.onZoom()}},u.prototype.onSwipe=function(){var e,a=this,s=a.isSwiping,r=a.sliderStartPos.left||0;s===!0?Math.abs(a.distance)>10&&(a.canTap=!1,a.instance.group.length<2&&a.instance.opts.touch.vertical?a.isSwiping=\"y\":a.instance.isSliding||a.instance.opts.touch.vertical===!1||\"auto\"===a.instance.opts.touch.vertical&&n(t).width()>800?a.isSwiping=\"x\":(e=Math.abs(180*Math.atan2(a.distanceY,a.distanceX)/Math.PI),a.isSwiping=e>45&&e<135?\"y\":\"x\"),a.instance.isSliding=a.isSwiping,a.startPoints=a.newPoints,n.each(a.instance.slides,function(t,e){n.fancybox.stop(e.$slide),e.$slide.css(\"transition-duration\",\"0ms\"),e.inTransition=!1,e.pos===a.instance.current.pos&&(a.sliderStartPos.left=n.fancybox.getTranslate(e.$slide).left)}),a.instance.SlideShow&&a.instance.SlideShow.isActive&&a.instance.SlideShow.stop()):(\"x\"==s&&(a.distanceX>0&&(a.instance.group.length<2||0===a.instance.current.index&&!a.instance.current.opts.loop)?r+=Math.pow(a.distanceX,.8):a.distanceX<0&&(a.instance.group.length<2||a.instance.current.index===a.instance.group.length-1&&!a.instance.current.opts.loop)?r-=Math.pow(-a.distanceX,.8):r+=a.distanceX),a.sliderLastPos={top:\"x\"==s?0:a.sliderStartPos.top+a.distanceY,left:r},a.requestId&&(i(a.requestId),a.requestId=null),a.requestId=o(function(){a.sliderLastPos&&(n.each(a.instance.slides,function(t,e){var o=e.pos-a.instance.currPos;n.fancybox.setTranslate(e.$slide,{top:a.sliderLastPos.top,left:a.sliderLastPos.left+o*a.canvasWidth+o*e.opts.gutter})}),a.$container.addClass(\"fancybox-is-sliding\"))}))},u.prototype.onPan=function(){var t,e,a,s=this;s.canTap=!1,t=s.contentStartPos.width>s.canvasWidth?s.contentStartPos.left+s.distanceX:s.contentStartPos.left,e=s.contentStartPos.top+s.distanceY,a=s.limitMovement(t,e,s.contentStartPos.width,s.contentStartPos.height),a.scaleX=s.contentStartPos.scaleX,a.scaleY=s.contentStartPos.scaleY,s.contentLastPos=a,s.requestId&&(i(s.requestId),s.requestId=null),s.requestId=o(function(){n.fancybox.setTranslate(s.$content,s.contentLastPos)})},u.prototype.limitMovement=function(t,e,n,o){var i,a,s,r,c=this,l=c.canvasWidth,u=c.canvasHeight,d=c.contentStartPos.left,f=c.contentStartPos.top,h=c.distanceX,p=c.distanceY;return i=Math.max(0,.5*l-.5*n),a=Math.max(0,.5*u-.5*o),s=Math.min(l-n,.5*l-.5*n),r=Math.min(u-o,.5*u-.5*o),n>l&&(h>0&&t>i&&(t=i-1+Math.pow(-i+d+h,.8)||0),h<0&&tu&&(p>0&&e>a&&(e=a-1+Math.pow(-a+f+p,.8)||0),p<0&&ea?(t=t>0?0:t,t=ts?(e=e>0?0:e,e=e50?(n.fancybox.animate(e.instance.current.$slide,{top:e.sliderStartPos.top+e.distanceY+150*e.velocityY,opacity:0},150),o=e.instance.close(!0,300)):\"x\"==t&&e.distanceX>50&&e.instance.group.length>1?o=e.instance.previous(e.speedX):\"x\"==t&&e.distanceX<-50&&e.instance.group.length>1&&(o=e.instance.next(e.speedX)),o!==!1||\"x\"!=t&&\"y\"!=t||e.instance.jumpTo(e.instance.current.index,150),e.$container.removeClass(\"fancybox-is-sliding\")},u.prototype.endPanning=function(){var t,e,o,i=this;i.contentLastPos&&(i.instance.current.opts.touch.momentum===!1?(t=i.contentLastPos.left,e=i.contentLastPos.top):(t=i.contentLastPos.left+i.velocityX*i.speed,e=i.contentLastPos.top+i.velocityY*i.speed),o=i.limitPosition(t,e,i.contentStartPos.width,i.contentStartPos.height),o.width=i.contentStartPos.width,o.height=i.contentStartPos.height,n.fancybox.animate(i.$content,o,330))},u.prototype.endZooming=function(){var t,e,o,i,a=this,s=a.instance.current,r=a.newWidth,c=a.newHeight;a.contentLastPos&&(t=a.contentLastPos.left,e=a.contentLastPos.top,i={top:e,left:t,width:r,height:c,scaleX:1,scaleY:1},n.fancybox.setTranslate(a.$content,i),rs.width||c>s.height?a.instance.scaleToActual(a.centerPointStartX,a.centerPointStartY,150):(o=a.limitPosition(t,e,r,c),n.fancybox.setTranslate(a.content,n.fancybox.getTranslate(a.$content)),n.fancybox.animate(a.$content,o,150)))},u.prototype.onTap=function(t){var e,o=this,i=n(t.target),s=o.instance,r=s.current,c=t&&a(t)||o.startPoints,l=c[0]?c[0].x-o.$stage.offset().left:0,u=c[0]?c[0].y-o.$stage.offset().top:0,d=function(e){var i=r.opts[e];if(n.isFunction(i)&&(i=i.apply(s,[r,t])),i)switch(i){case\"close\":s.close(o.startEvent);break;case\"toggleControls\":s.toggleControls(!0);break;case\"next\":s.next();break;case\"nextOrClose\":s.group.length>1?s.next():s.close(o.startEvent);break;case\"zoom\":\"image\"==r.type&&(r.isLoaded||r.$ghost)&&(s.canPan()?s.scaleToFit():s.isScaledDown()?s.scaleToActual(l,u):s.group.length<2&&s.close(o.startEvent))}};if(!(t.originalEvent&&2==t.originalEvent.button||s.isSliding||l>i[0].clientWidth+i.offset().left)){if(i.is(\".fancybox-bg,.fancybox-inner,.fancybox-outer,.fancybox-container\"))e=\"Outside\";else if(i.is(\".fancybox-slide\"))e=\"Slide\";else{if(!s.current.$content||!s.current.$content.has(t.target).length)return;e=\"Content\"}if(o.tapped){if(clearTimeout(o.tapped),o.tapped=null,Math.abs(l-o.tapX)>50||Math.abs(u-o.tapY)>50||s.isSliding)return this;d(\"dblclick\"+e)}else o.tapX=l,o.tapY=u,r.opts[\"dblclick\"+e]&&r.opts[\"dblclick\"+e]!==r.opts[\"click\"+e]?o.tapped=setTimeout(function(){o.tapped=null,d(\"click\"+e)},300):d(\"click\"+e);return this}},n(e).on(\"onActivate.fb\",function(t,e){e&&!e.Guestures&&(e.Guestures=new u(e))}),n(e).on(\"beforeClose.fb\",function(t,e){e&&e.Guestures&&e.Guestures.destroy()})}(window,document,window.jQuery),function(t,e){\"use strict\";var n=function(t){this.instance=t,this.init()};e.extend(n.prototype,{timer:null,isActive:!1,$button:null,speed:3e3,init:function(){var t=this;t.$button=t.instance.$refs.toolbar.find(\"[data-fancybox-play]\").on(\"click\",function(){t.toggle()}),(t.instance.group.length<2||!t.instance.group[t.instance.currIndex].opts.slideShow)&&t.$button.hide()},set:function(){var t=this;t.instance&&t.instance.current&&(t.instance.current.opts.loop||t.instance.currIndex1&&t.instance.group[t.instance.currIndex].opts.thumbs&&(\"image\"==e.type||e.opts.thumb||e.opts.$thumb)&&(\"image\"==n.type||n.opts.thumb||n.opts.$thumb)?(t.$button.on(\"click\",function(){t.toggle()}),t.isActive=!0):(t.$button.hide(),t.isActive=!1)},create:function(){var t,n,o=this.instance;this.$grid=e('').appendTo(o.$refs.container),t=\"\",e.each(o.group,function(e,o){n=o.opts.thumb||(o.opts.$thumb?o.opts.$thumb.attr(\"src\"):null),n||\"image\"!==o.type||(n=o.src),n&&n.length&&(t+='![]()
')}),t+=\"
\",this.$list=e(t).appendTo(this.$grid).on(\"click\",\"li\",function(){o.jumpTo(e(this).data(\"index\"))}),this.$list.find(\"img\").hide().one(\"load\",function(){var t,n,o,i,a=e(this).parent().removeClass(\"fancybox-thumbs-loading\"),s=a.outerWidth(),r=a.outerHeight();t=this.naturalWidth||this.width,n=this.naturalHeight||this.height,o=t/s,i=n/r,o>=1&&i>=1&&(o>i?(t/=i,n=r):(t=s,n/=o)),e(this).css({width:Math.floor(t),height:Math.floor(n),\"margin-top\":Math.min(0,Math.floor(.3*r-.3*n)),\"margin-left\":Math.min(0,Math.floor(.5*s-.5*t))}).show()}).each(function(){this.src=e(this).data(\"src\")})},focus:function(){this.instance.current&&this.$list.children().removeClass(\"fancybox-thumbs-active\").filter('[data-index=\"'+this.instance.current.index+'\"]').addClass(\"fancybox-thumbs-active\").focus()},close:function(){this.$grid.hide()},update:function(){this.instance.$refs.container.toggleClass(\"fancybox-show-thumbs\",this.isVisible),this.isVisible?(this.$grid||this.create(),this.instance.trigger(\"onThumbsShow\"),this.focus()):this.$grid&&this.instance.trigger(\"onThumbsHide\"),this.instance.update()},hide:function(){this.isVisible=!1,this.update()},show:function(){this.isVisible=!0,this.update()},toggle:function(){this.isVisible=!this.isVisible,this.update()}}),e(t).on({\"onInit.fb\":function(t,e){e&&!e.Thumbs&&(e.Thumbs=new n(e))},\"beforeShow.fb\":function(t,e,n,o){var i=e&&e.Thumbs;if(i&&i.isActive){if(n.modal)return i.$button.hide(),void i.hide();o&&e.opts.thumbs.autoStart===!0&&i.show(),i.isVisible&&i.focus()}},\"afterKeydown.fb\":function(t,e,n,o,i){var a=e&&e.Thumbs;a&&a.isActive&&71===i&&(o.preventDefault(),a.toggle())},\"beforeClose.fb\":function(t,e){var n=e&&e.Thumbs;n&&n.isVisible&&e.opts.thumbs.hideOnClose!==!1&&n.close()}})}(document,window.jQuery),function(t,e,n){\"use strict\";function o(){var t=e.location.hash.substr(1),n=t.split(\"-\"),o=n.length>1&&/^\\+?\\d+$/.test(n[n.length-1])?parseInt(n.pop(-1),10)||1:1,i=n.join(\"-\");return o<1&&(o=1),{hash:t,index:o,gallery:i}}function i(t){var e;\"\"!==t.gallery&&(e=n(\"[data-fancybox='\"+n.escapeSelector(t.gallery)+\"']\").eq(t.index-1),e.length||(e=n(\"#\"+n.escapeSelector(t.gallery))),e.length&&(s=!1,e.trigger(\"click\")))}function a(t){var e;return!!t&&(e=t.current?t.current.opts:t.opts,e.$orig?e.$orig.data(\"fancybox\"):e.hash||\"\")}n.escapeSelector||(n.escapeSelector=function(t){var e=/([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\x80-\\uFFFF\\w-]/g,n=function(t,e){return e?\"\\0\"===t?\"�\":t.slice(0,-1)+\"\\\\\"+t.charCodeAt(t.length-1).toString(16)+\" \":\"\\\\\"+t};return(t+\"\").replace(e,n)});var s=!0,r=null,c=null;n(function(){setTimeout(function(){n.fancybox.defaults.hash!==!1&&(n(t).on({\"onInit.fb\":function(t,e){var n,i;e.group[e.currIndex].opts.hash!==!1&&(n=o(),i=a(e),i&&n.gallery&&i==n.gallery&&(e.currIndex=n.index-1))},\"beforeShow.fb\":function(n,o,i){var l;i.opts.hash!==!1&&(l=a(o),l&&\"\"!==l&&(e.location.hash.indexOf(l)<0&&(o.opts.origHash=e.location.hash),r=l+(o.group.length>1?\"-\"+(i.index+1):\"\"),\"replaceState\"in e.history?(c&&clearTimeout(c),c=setTimeout(function(){e.history[s?\"pushState\":\"replaceState\"]({},t.title,e.location.pathname+e.location.search+\"#\"+r),c=null,s=!1},300)):e.location.hash=r))},\"beforeClose.fb\":function(o,i,s){var l,u;c&&clearTimeout(c),s.opts.hash!==!1&&(l=a(i),u=i&&i.opts.origHash?i.opts.origHash:\"\",l&&\"\"!==l&&(\"replaceState\"in history?e.history.replaceState({},t.title,e.location.pathname+e.location.search+u):(e.location.hash=u,n(e).scrollTop(i.scrollTop).scrollLeft(i.scrollLeft))),r=null)}}),n(e).on(\"hashchange.fb\",function(){var t=o();n.fancybox.getInstance()?!r||r===t.gallery+\"-\"+t.index||1===t.index&&r==t.gallery||(r=null,n.fancybox.close(),s=!0):\"\"!==t.gallery&&i(t)}),i(o()))},50)})}(document,window,window.jQuery);","!function(t){\"use strict\";var s=function(s,e){this.el=t(s),this.options=t.extend({},t.fn.typed.defaults,e),this.isInput=this.el.is(\"input\"),this.attr=this.options.attr,this.showCursor=this.isInput?!1:this.options.showCursor,this.elContent=this.attr?this.el.attr(this.attr):this.el.text(),this.contentType=this.options.contentType,this.typeSpeed=this.options.typeSpeed,this.startDelay=this.options.startDelay,this.backSpeed=this.options.backSpeed,this.backDelay=this.options.backDelay,this.stringsElement=this.options.stringsElement,this.strings=this.options.strings,this.strPos=0,this.arrayPos=0,this.stopNum=0,this.loop=this.options.loop,this.loopCount=this.options.loopCount,this.curLoop=0,this.stop=!1,this.cursorChar=this.options.cursorChar,this.shuffle=this.options.shuffle,this.sequence=[],this.build()};s.prototype={constructor:s,init:function(){var t=this;t.timeout=setTimeout(function(){for(var s=0;s'+this.cursorChar+\"\"),this.el.after(this.cursor)),this.stringsElement){this.strings=[],this.stringsElement.hide(),console.log(this.stringsElement.children());var e=this.stringsElement.children();t.each(e,function(e,i){s.strings.push(t(i).html())})}this.init()},typewrite:function(t,s){if(this.stop!==!0){var e=Math.round(70*Math.random())+this.typeSpeed,i=this;i.timeout=setTimeout(function(){var e=0,r=t.substr(s);if(\"^\"===r.charAt(0)){var o=1;/^\\^\\d+/.test(r)&&(r=/\\d+/.exec(r)[0],o+=r.length,e=parseInt(r)),t=t.substring(0,s)+t.substring(s+o)}if(\"html\"===i.contentType){var n=t.substr(s).charAt(0);if(\"<\"===n||\"&\"===n){var a=\"\",h=\"\";for(h=\"<\"===n?\">\":\";\";t.substr(s+1).charAt(0)!==h&&(a+=t.substr(s).charAt(0),s++,!(s+1>t.length)););s++,a+=h}}i.timeout=setTimeout(function(){if(s===t.length){if(i.options.onStringTyped(i.arrayPos),i.arrayPos===i.strings.length-1&&(i.options.callback(),i.curLoop++,i.loop===!1||i.curLoop===i.loopCount))return;i.timeout=setTimeout(function(){i.backspace(t,s)},i.backDelay)}else{0===s&&i.options.preStringTyped(i.arrayPos);var e=t.substr(0,s+1);i.attr?i.el.attr(i.attr,e):i.isInput?i.el.val(e):\"html\"===i.contentType?i.el.html(e):i.el.text(e),s++,i.typewrite(t,s)}},e)},e)}},backspace:function(t,s){if(this.stop!==!0){var e=Math.round(70*Math.random())+this.backSpeed,i=this;i.timeout=setTimeout(function(){if(\"html\"===i.contentType&&\">\"===t.substr(s).charAt(0)){for(var e=\"\";\"<\"!==t.substr(s-1).charAt(0)&&(e-=t.substr(s).charAt(0),s--,!(0>s)););s--,e+=\"<\"}var r=t.substr(0,s);i.attr?i.el.attr(i.attr,r):i.isInput?i.el.val(r):\"html\"===i.contentType?i.el.html(r):i.el.text(r),s>i.stopNum?(s--,i.backspace(t,s)):s<=i.stopNum&&(i.arrayPos++,i.arrayPos===i.strings.length?(i.arrayPos=0,i.shuffle&&(i.sequence=i.shuffleArray(i.sequence)),i.init()):i.typewrite(i.strings[i.sequence[i.arrayPos]],s))},e)}},shuffleArray:function(t){var s,e,i=t.length;if(i)for(;--i;)e=Math.floor(Math.random()*(i+1)),s=t[e],t[e]=t[i],t[i]=s;return t},reset:function(){var t=this;clearInterval(t.timeout);this.el.attr(\"id\");this.el.empty(),\"undefined\"!=typeof this.cursor&&this.cursor.remove(),this.strPos=0,this.arrayPos=0,this.curLoop=0,this.options.resetCallback()}},t.fn.typed=function(e){return this.each(function(){var i=t(this),r=i.data(\"typed\"),o=\"object\"==typeof e&&e;r&&r.reset(),i.data(\"typed\",r=new s(this,o)),\"string\"==typeof e&&r[e]()})},t.fn.typed.defaults={strings:[\"These are the default values...\",\"You know what you should do?\",\"Use your own!\",\"Have a great day!\"],stringsElement:null,typeSpeed:0,startDelay:0,backSpeed:0,shuffle:!1,backDelay:500,loop:!1,loopCount:!1,showCursor:!0,cursorChar:\"|\",attr:null,contentType:\"html\",callback:function(){},preStringTyped:function(){},onStringTyped:function(){},resetCallback:function(){}}}(window.jQuery);","/**\n * HSCore -\n *\n * @author HtmlStream\n * @version 1.0\n */\n;\n(function ($) {\n\n 'use strict';\n\n $.HSCore = {\n\n /**\n *\n *\n * @param\n *\n * @return\n */\n init: function () {\n\n $(document).ready(function (e) {\n // Botostrap Tootltips\n $('[data-toggle=\"tooltip\"]').tooltip();\n\n // Set Background Image Dynamically\n if ($('[data-bg-img-src]').length) $.HSCore.helpers.bgImage($('[data-bg-img-src]'));\n\n // Extends jQuery\n $.HSCore.helpers.extendjQuery();\n\n // Detect Internet Explorer (IE)\n $.HSCore.helpers.detectIE();\n\n // Bootstrap Navigation Options\n $.HSCore.helpers.bootstrapNavOptions.init();\n\n });\n\n $(window).on('load', function (e) {\n\n });\n\n },\n\n /**\n *\n *\n * @var\n */\n components: {},\n\n /**\n *\n *\n * @var\n */\n helpers: {\n\n Math: {\n\n getRandomValueFromRange: function(startPoint, endPoint, fixed) {\n\n var fixedInner = fixed ? fixed : false;\n\n Math.random();\n\n return fixedInner ? (Math.random() * (endPoint - startPoint) + startPoint) : (Math.floor(Math.random() * (endPoint - startPoint + 1)) + startPoint);\n\n }\n\n },\n\n /**\n * Sets background-image dynamically.\n *\n * @param jQuery collection\n *\n * @return jQuery|undefined\n */\n bgImage: function (collection) {\n\n if (!collection || !collection.length) return;\n\n return collection.each(function (i, el) {\n\n var $el = $(el),\n bgImageSrc = $el.data('bg-img-src');\n\n if (bgImageSrc) $el.css('background-image', 'url(' + bgImageSrc + ')');\n\n });\n\n },\n\n /**\n * Extends basic jQuery functionality\n *\n * @return undefined\n */\n extendjQuery: function () {\n\n $.fn.extend({\n\n /**\n * Runs specified function after loading of all images.\n *\n * @return Deferred\n */\n imagesLoaded: function () {\n\n var $imgs = this.find('img[src!=\"\"]');\n\n if (!$imgs.length) {\n return $.Deferred().resolve().promise();\n }\n\n var dfds = [];\n\n $imgs.each(function () {\n var dfd = $.Deferred();\n dfds.push(dfd);\n var img = new Image();\n img.onload = function () {\n dfd.resolve();\n };\n img.onerror = function () {\n dfd.resolve();\n };\n img.src = this.src;\n });\n\n return $.when.apply($, dfds);\n\n }\n\n });\n\n },\n\n\n /**\n * Detect Internet Explorer (IE)\n *\n * @return version of IE or false, if browser is not Internet Explorer\n */\n\n detectIE: function() {\n\n var ua = window.navigator.userAgent;\n\n var trident = ua.indexOf('Trident/');\n if (trident > 0) {\n // IE 11 => return version number\n var rv = ua.indexOf('rv:');\n var ieV = parseInt(ua.substring(rv + 3, ua.indexOf('.', rv)), 10);\n document.querySelector('body').className += ' IE';\n }\n\n var edge = ua.indexOf('Edge/');\n if (edge > 0) {\n // IE 12 (aka Edge) => return version number\n var ieV = parseInt(ua.substring(edge + 5, ua.indexOf('.', edge)), 10);\n document.querySelector('body').className += ' IE';\n }\n\n // other browser\n return false;\n\n },\n\n\n /**\n * Bootstrap navigation options\n *\n */\n bootstrapNavOptions: {\n init: function () {\n this.mobileHideOnScroll();\n },\n\n mobileHideOnScroll: function () {\n var $collection = $('.navbar');\n if (!$collection.length) return;\n\n var $w = $(window),\n breakpointsMap = {\n 'sm': 576,\n 'md': 768,\n 'lg': 992,\n 'xl': 1200\n };\n\n $('body').on('click.HSMobileHideOnScroll', '.navbar-toggler', function (e) {\n var $navbar = $(this).closest('.navbar');\n\n if ($navbar.length) {\n $navbar.data('mobile-menu-scroll-position', $w.scrollTop());\n }\n e.preventDefault();\n });\n\n $w.on('scroll.HSMobileHideOnScroll', function (e) {\n $collection.each(function (i, el) {\n var $this = $(el), $toggler, $nav, offset, $hamburgers, breakpoint;\n if ($this.hasClass('navbar-expand-xl')) breakpoint = breakpointsMap['xl'];\n else if ($this.hasClass('navbar-expand-lg')) breakpoint = breakpointsMap['lg'];\n else if ($this.hasClass('navbar-expand-md')) breakpoint = breakpointsMap['md'];\n else if ($this.hasClass('navbar-expand-xs')) breakpoint = breakpointsMap['xs'];\n\n if ($w.width() > breakpoint) return;\n\n $toggler = $this.find('.navbar-toggler');\n $nav = $this.find('.navbar-collapse');\n\n if (!$nav.data('mobile-scroll-hide')) return;\n\n if ($nav.length) {\n offset = $this.data('mobile-menu-scroll-position');\n\n if (Math.abs($w.scrollTop() - offset) > 40 && $nav.hasClass('show')) {\n $toggler.trigger('click');\n $hamburgers = $toggler.find('.is-active');\n if ($hamburgers.length) {\n $hamburgers.removeClass('is-active');\n }\n }\n }\n });\n });\n }\n }\n\n },\n\n /**\n *\n *\n * @var\n */\n settings: {\n rtl: false\n }\n\n };\n\n $.HSCore.init();\n\n})(jQuery);","/**\n * Carousel wrapper.\n *\n * @author Htmlstream\n * @version 1.0\n * @requires\n *\n */\n;\n(function($) {\n\t'use strict';\n\n\t$.HSCore.components.HSCarousel = {\n\t\t/**\n\t\t *\n\t\t *\n\t\t * @var Object _baseConfig\n\t\t */\n\t\t_baseConfig: {\n\t\t\tautoplay: false,\n\t\t\tinfinite: true\n\t\t},\n\n\t\t/**\n\t\t *\n\t\t *\n\t\t * @var jQuery pageCollection\n\t\t */\n\t\tpageCollection: $(),\n\n\t\t/**\n\t\t * Initialization of Carousel wrapper.\n\t\t *\n\t\t * @param String selector (optional)\n\t\t * @param Object config (optional)\n\t\t *\n\t\t * @return jQuery pageCollection - collection of initialized items.\n\t\t */\n\t\tinit: function(selector, config) {\n\t\t\tthis.collection = selector && $(selector).length ? $(selector) : $();\n\t\t\tif (!$(selector).length) return;\n\n\t\t\tthis.config = config && $.isPlainObject(config) ?\n\t\t\t\t$.extend({}, this._baseConfig, config) : this._baseConfig;\n\n\t\t\tthis.config.itemSelector = selector;\n\n\t\t\tthis.initCarousel();\n\n\t\t\treturn this.pageCollection;\n\t\t},\n\n\t\tinitCarousel: function() {\n\t\t\t//Variables\n\t\t\tvar $self = this,\n\t\t\t\tconfig = $self.config,\n\t\t\t\tcollection = $self.pageCollection;\n\n\t\t\t//Actions\n\t\t\tthis.collection.each(function(i, el) {\n\t\t\t\t//Variables\n\t\t\t\tvar $this = $(el),\n\t\t\t\t\tid = $this.attr('id'),\n\n\t\t\t\t\t//Markup elements\n\t\t\t\t\ttarget = $this.data('nav-for'),\n\t\t\t\t\tisThumb = $this.data('is-thumbs'),\n\t\t\t\t\tarrowsClasses = $this.data('arrows-classes'),\n\t\t\t\t\tarrowLeftClasses = $this.data('arrow-left-classes'),\n\t\t\t\t\tarrowRightClasses = $this.data('arrow-right-classes'),\n\t\t\t\t\tpagiClasses = $this.data('pagi-classes'),\n\t\t\t\t\tpagiHelper = $this.data('pagi-helper'),\n\t\t\t\t\t$pagiIcons = $this.data('pagi-icons'),\n\t\t\t\t\t$prevMarkup = '',\n\t\t\t\t\t$nextMarkup = '',\n\n\t\t\t\t\t//Setters\n\t\t\t\t\tsetSlidesToShow = $this.data('slides-show'),\n\t\t\t\t\tsetSlidesToScroll = $this.data('slides-scroll'),\n\t\t\t\t\tsetAutoplay = $this.data('autoplay'),\n\t\t\t\t\tsetAnimation = $this.data('animation'),\n\t\t\t\t\tsetEasing = $this.data('easing'),\n\t\t\t\t\tsetFade = $this.data('fade'),\n\t\t\t\t\tsetSpeed = $this.data('speed'),\n\t\t\t\t\tsetSlidesRows = $this.data('rows'),\n\t\t\t\t\tsetCenterMode = $this.data('center-mode'),\n\t\t\t\t\tsetCenterPadding = $this.data('center-padding'),\n\t\t\t\t\tsetPauseOnHover = $this.data('pause-hover'),\n\t\t\t\t\tsetVariableWidth = $this.data('variable-width'),\n\t\t\t\t\tsetInitialSlide = $this.data('initial-slide'),\n\t\t\t\t\tsetVertical = $this.data('vertical'),\n\t\t\t\t\tsetRtl = $this.data('rtl'),\n\t\t\t\t\tsetInEffect = $this.data('in-effect'),\n\t\t\t\t\tsetOutEffect = $this.data('out-effect'),\n\t\t\t\t\tsetInfinite = $this.data('infinite'),\n\t\t\t\t\tsetDataTitlePosition = $this.data('title-pos-inside'),\n\t\t\t\t\tsetFocusOnSelect = $this.data('focus-on-select'),\n\t\t\t\t\tsetLazyLoad = $this.data('lazy-load'),\n\t\t\t\t\tisAdaptiveHeight = $this.data('adaptive-height'),\n\t\t\t\t\tnumberedPaging = $this.data('numbered-pagination'),\n\t\t\t\t\tsetResponsive = JSON.parse(el.getAttribute('data-responsive'));\n\n\t\t\t\tif ($this.find('[data-slide-type]').length) {\n\t\t\t\t\t$self.videoSupport($this);\n\t\t\t\t}\n\n\t\t\t\t$this.on('init', function(event, slick) {\n\t\t\t\t\t$(slick.$slides).css('height', 'auto');\n\n\t\t\t\t\tif(isThumb && setSlidesToShow >= $(slick.$slides).length) {\n\t\t\t\t\t\t $this.addClass('slick-transform-off');\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tif (setInEffect && setOutEffect) {\n\t\t\t\t\t$this.on('init', function(event, slick) {\n\t\t\t\t\t\t$(slick.$slides).addClass('single-slide');\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tif (pagiHelper) {\n\t\t\t\t\t$this.on('init', function(event, slick) {\n\t\t\t\t\t\tvar $pagination = $this.find('.js-pagination');\n\n\t\t\t\t\t\tif (!$pagination.length) return;\n\n\t\t\t\t\t\t$pagination.append('');\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tif (isThumb) {\n\t\t\t\t\t$('#' + id).on('click', '.slick-slide', function(e) {\n\t\t\t\t\t\te.stopPropagation();\n\n\t\t\t\t\t\t//Variables\n\t\t\t\t\t\tvar i = $(this).data('slick-index');\n\n\t\t\t\t\t\tif ($('#' + id).slick('slickCurrentSlide') !== i) {\n\t\t\t\t\t\t\t$('#' + id).slick('slickGoTo', i);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\t$this.on('init', function(event, slider) {\n\t\t\t\t\tvar $pagination = $this.find('.js-pagination');\n\n\t\t\t\t\tif (!$pagination.length) return;\n\n\t\t\t\t\t$($pagination[0].children[0]).addClass('slick-current');\n\t\t\t\t});\n\n\t\t\t\t$this.on('init', function(event, slick) {\n\t\t\t\t\tvar slide = $(slick.$slides)[0],\n\t\t\t\t\t\tanimatedElements = $(slide).find('[data-scs-animation-in]');\n\n\t\t\t\t\t$(animatedElements).each(function() {\n\t\t\t\t\t\tvar animationIn = $(this).data('scs-animation-in');\n\n\t\t\t\t\t\t$(this).addClass('animated ' + animationIn).css('opacity', 1);\n\t\t\t\t\t});\n\t\t\t\t});\n\n\t\t\t\tif (numberedPaging) {\n\t\t\t\t\t$this.on('init', function(event, slick) {\n\t\t\t\t\t\t$(numberedPaging).text('1' + '/' + slick.slideCount);\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\t$this.slick({\n\t\t\t\t\tautoplay: setAutoplay ? true : false,\n\t\t\t\t\tautoplaySpeed: setSpeed ? setSpeed : 3000,\n\n\t\t\t\t\tcssEase: setAnimation ? setAnimation : 'ease',\n\t\t\t\t\teasing: setEasing ? setEasing : 'linear',\n\t\t\t\t\tfade: setFade ? true : false,\n\n\t\t\t\t\tinfinite: setInfinite ? true : false,\n\t\t\t\t\tinitialSlide: setInitialSlide ? setInitialSlide - 1 : 0,\n\t\t\t\t\tslidesToShow: setSlidesToShow ? setSlidesToShow : 1,\n\t\t\t\t\tslidesToScroll: setSlidesToScroll ? setSlidesToScroll : 1,\n\t\t\t\t\tcenterMode: setCenterMode ? true : false,\n\t\t\t\t\tvariableWidth: setVariableWidth ? true : false,\n\t\t\t\t\tpauseOnHover: setPauseOnHover ? true : false,\n\t\t\t\t\trows: setSlidesRows ? setSlidesRows : 1,\n\t\t\t\t\tvertical: setVertical ? true : false,\n\t\t\t\t\tverticalSwiping: setVertical ? true : false,\n\t\t\t\t\trtl: setRtl ? true : false,\n\t\t\t\t\tcenterPadding: setCenterPadding ? setCenterPadding : 0,\n\t\t\t\t\tfocusOnSelect: setFocusOnSelect ? true : false,\n\t\t\t\t\tlazyLoad: setLazyLoad ? setLazyLoad : false,\n\n\t\t\t\t\tasNavFor: target ? target : false,\n\t\t\t\t\tprevArrow: arrowsClasses ? $prevMarkup : false,\n\t\t\t\t\tnextArrow: arrowsClasses ? $nextMarkup : false,\n\t\t\t\t\tdots: pagiClasses ? true : false,\n\t\t\t\t\tdotsClass: 'js-pagination ' + pagiClasses,\n\t\t\t\t\tadaptiveHeight: !!isAdaptiveHeight,\n\t\t\t\t\tcustomPaging: function(slider, i) {\n\t\t\t\t\t\tvar title = $(slider.$slides[i]).data('title');\n\n\t\t\t\t\t\tif (title && $pagiIcons) {\n\t\t\t\t\t\t\treturn '' + title + '' + $pagiIcons;\n\t\t\t\t\t\t} else if ($pagiIcons) {\n\t\t\t\t\t\t\treturn '' + $pagiIcons;\n\t\t\t\t\t\t} else if (title && setDataTitlePosition) {\n\t\t\t\t\t\t\treturn '' + title + '';\n\t\t\t\t\t\t} else if (title && !setDataTitlePosition) {\n\t\t\t\t\t\t\treturn '' + '' + title + '';\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn '';\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\tresponsive: setResponsive\n\t\t\t\t});\n\n\t\t\t\t$this.on('beforeChange', function(event, slider, currentSlide, nextSlide) {\n\t\t\t\t\tvar nxtSlide = $(slider.$slides)[nextSlide],\n\t\t\t\t\t\tslide = $(slider.$slides)[currentSlide],\n\t\t\t\t\t\t$pagination = $this.find('.js-pagination'),\n\t\t\t\t\t\tanimatedElements = $(nxtSlide).find('[data-scs-animation-in]'),\n\t\t\t\t\t\totherElements = $(slide).find('[data-scs-animation-in]');\n\n\t\t\t\t\t$(otherElements).each(function() {\n\t\t\t\t\t\tvar animationIn = $(this).data('scs-animation-in');\n\n\t\t\t\t\t\t$(this).removeClass('animated ' + animationIn);\n\t\t\t\t\t});\n\n\t\t\t\t\t$(animatedElements).each(function() {\n\t\t\t\t\t\t$(this).css('opacity', 0);\n\t\t\t\t\t});\n\n\t\t\t\t\tif (!$pagination.length) return;\n\n\t\t\t\t\tif (currentSlide > nextSlide) {\n\t\t\t\t\t\t$($pagination[0].children).removeClass('slick-active-right');\n\n\t\t\t\t\t\t$($pagination[0].children[nextSlide]).addClass('slick-active-right');\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$($pagination[0].children).removeClass('slick-active-right');\n\t\t\t\t\t}\n\n\t\t\t\t\t$($pagination[0].children).removeClass('slick-current');\n\n\t\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t\t$($pagination[0].children[nextSlide]).addClass('slick-current');\n\t\t\t\t\t}, .25);\n\t\t\t\t});\n\n\t\t\t\tif (numberedPaging) {\n\t\t\t\t\t$this.on('beforeChange', function(event, slick, currentSlide, nextSlide) {\n\t\t\t\t\t\tvar i = (nextSlide ? nextSlide : 0) + 1;\n\n\t\t\t\t\t\t$(numberedPaging).text(i + '/' + slick.slideCount);\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\t$this.on('afterChange', function(event, slick, currentSlide, nextSlide) {\n\t\t\t\t\tvar slide = $(slick.$slides)[currentSlide],\n\t\t\t\t\t\tanimatedElements = $(slide).find('[data-scs-animation-in]');\n\n\t\t\t\t\t$(animatedElements).each(function() {\n\t\t\t\t\t\tvar animationIn = $(this).data('scs-animation-in'),\n\t\t\t\t\t\t\tanimationDelay = $(this).data('scs-animation-delay'),\n\t\t\t\t\t\t\tanimationDuration = $(this).data('scs-animation-duration');\n\n\t\t\t\t\t\t\tconsole.log(animationDuration);\n\n\t\t\t\t\t\t$(this).css({\n\t\t\t\t\t\t\t'animation-delay': animationDelay + 'ms',\n\t\t\t\t\t\t\t'animation-duration': animationDuration + 'ms'\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\t$(this).addClass('animated ' + animationIn).css('opacity', 1);\n\t\t\t\t\t});\n\t\t\t\t});\n\n\t\t\t\tif (setInEffect && setOutEffect) {\n\t\t\t\t\t$this.on('afterChange', function(event, slick, currentSlide, nextSlide) {\n\t\t\t\t\t\t$(slick.$slides).removeClass('animated set-position ' + setInEffect + ' ' + setOutEffect);\n\t\t\t\t\t});\n\n\t\t\t\t\t$this.on('beforeChange', function(event, slick, currentSlide) {\n\t\t\t\t\t\t$(slick.$slides[currentSlide]).addClass('animated ' + setOutEffect);\n\t\t\t\t\t});\n\n\t\t\t\t\t$this.on('setPosition', function(event, slick) {\n\t\t\t\t\t\t$(slick.$slides[slick.currentSlide]).addClass('animated set-position ' + setInEffect);\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\t//Actions\n\t\t\t\tcollection = collection.add($this);\n\t\t\t});\n\t\t},\n\n\t\t/**\n\t\t * Implementation of video support.\n\t\t *\n\t\t * @param jQuery carousel\n\t\t * @param String videoSupport\n\t\t *\n\t\t * @return undefined\n\t\t */\n\t\tvideoSupport: function(carousel) {\n\t\t\tif (!carousel.length) return;\n\n\t\t\tcarousel.on('beforeChange', function(event, slick, currentSlide, nextSlide) {\n\t\t\t\tvar slideType = $(slick.$slides[currentSlide]).data('slide-type'),\n\t\t\t\t\tplayer = $(slick.$slides[currentSlide]).find('iframe').get(0),\n\t\t\t\t\tcommand;\n\n\t\t\t\tif (slideType == 'vimeo') {\n\t\t\t\t\tcommand = {\n\t\t\t\t\t\t\"method\": \"pause\",\n\t\t\t\t\t\t\"value\": \"true\"\n\t\t\t\t\t}\n\t\t\t\t} else if (slideType == 'youtube') {\n\t\t\t\t\tcommand = {\n\t\t\t\t\t\t\"event\": \"command\",\n\t\t\t\t\t\t\"func\": \"pauseVideo\"\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tif (player != undefined) {\n\t\t\t\t\tplayer.contentWindow.postMessage(JSON.stringify(command), '*');\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\t/**\n\t\t * Implementation of text animation.\n\t\t *\n\t\t * @param jQuery carousel\n\t\t * @param String textAnimationSelector\n\t\t *\n\t\t * @requires charming.js, anime.js, textfx.js\n\t\t *\n\t\t * @return undefined\n\t\t */\n\t\tinitTextAnimation: function(carousel, textAnimationSelector) {\n\t\t\tif (!window.TextFx || !window.anime || !carousel.length) return;\n\n\t\t\tvar $text = carousel.find(textAnimationSelector);\n\n\t\t\tif (!$text.length) return;\n\n\t\t\t$text.each(function(i, el) {\n\t\t\t\tvar $this = $(el);\n\n\t\t\t\tif (!$this.data('TextFx')) {\n\t\t\t\t\t$this.data('TextFx', new TextFx($this.get(0)));\n\t\t\t\t}\n\t\t\t});\n\n\n\t\t\tcarousel.on('beforeChange', function(event, slick, currentSlide, nextSlide) {\n\t\t\t\tvar targets = slick.$slider\n\t\t\t\t\t.find('.slick-track')\n\t\t\t\t\t.children();\n\n\t\t\t\tvar currentTarget = targets.eq(currentSlide),\n\t\t\t\t\tnextTarget = targets.eq(nextSlide);\n\n\t\t\t\tcurrentTarget = currentTarget.find(textAnimationSelector);\n\t\t\t\tnextTarget = nextTarget.find(textAnimationSelector);\n\n\t\t\t\tif (currentTarget.length) {\n\t\t\t\t\tcurrentTarget.data('TextFx').hide(currentTarget.data('effect') ? currentTarget.data('effect') : 'fx1');\n\t\t\t\t}\n\n\t\t\t\tif (nextTarget.length) {\n\t\t\t\t\tnextTarget.data('TextFx').show(nextTarget.data('effect') ? nextTarget.data('effect') : 'fx1');\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n})(jQuery);\n","/**\n * Header Component.\n *\n * @author Htmlstream\n * @version 1.0\n *\n */\n;(function ($) {\n 'use strict';\n\n $.HSCore.components.HSHeader = {\n\n /**\n * Base configuration.\n *\n * @var Object _baseConfig\n */\n _baseConfig: {\n headerFixMoment: 0,\n headerFixEffect: 'slide',\n breakpointsMap: {\n 'md': 768,\n 'sm': 576,\n 'lg': 992,\n 'xl': 1200\n }\n },\n\n /**\n * Initializtion of header.\n *\n * @param jQuery element\n *\n * @return jQuery\n */\n init: function( element ) {\n\n if( !element || element.length !== 1 || element.data('HSHeader')) return;\n\n var self = this;\n\n this.element = element;\n this.config = $.extend(true, {}, this._baseConfig, element.data());\n\n this.observers = this._detectObservers();\n this.fixMediaDifference( this.element );\n this.element.data('HSHeader', new HSHeader(this.element, this.config, this.observers ) );\n\n $(window)\n .on('scroll.uHeader', function(e){\n\n element\n .data('HSHeader')\n .notify();\n\n })\n .on('resize.uHeader', function(e){\n\n if( self.resizeTimeOutId ) clearTimeout( self.resizeTimeOutId );\n\n self.resizeTimeOutId = setTimeout( function(){\n\n element\n .data('HSHeader')\n .checkViewport()\n .update();\n\n }, 100 );\n\n })\n .trigger('scroll.uHeader');\n\n return this.element;\n\n },\n\n /**\n *\n *\n * @param\n *\n * @return\n */\n _detectObservers: function() {\n\n if(!this.element || !this.element.length) return;\n\n var observers = {\n 'xs': [],\n 'sm': [],\n 'md': [],\n 'lg': [],\n 'xl': []\n };\n\n /* ------------------------ xs -------------------------*/\n\n // Has Hidden Element\n if( this.element.hasClass('u-header--has-hidden-element') ) {\n observers['xs'].push(\n new HSHeaderHasHiddenElement( this.element )\n );\n }\n\n // Sticky top\n\n if( this.element.hasClass('u-header--sticky-top') ) {\n\n if( this.element.hasClass('u-header--show-hide') ) {\n\n observers['xs'].push(\n new HSHeaderMomentShowHideObserver( this.element )\n );\n\n }\n else if( this.element.hasClass('u-header--toggle-section') ) {\n\n observers['xs'].push(\n new HSHeaderHideSectionObserver( this.element )\n );\n\n }\n\n if( this.element.hasClass('u-header--change-logo') ) {\n\n observers['xs'].push(\n new HSHeaderChangeLogoObserver( this.element )\n );\n\n }\n\n if( this.element.hasClass('u-header--change-appearance') ) {\n\n observers['xs'].push(\n new HSHeaderChangeAppearanceObserver( this.element )\n );\n\n }\n\n }\n\n // Floating\n\n if( this.element.hasClass('u-header--floating') ) {\n\n observers['xs'].push(\n new HSHeaderFloatingObserver( this.element )\n );\n\n }\n\n if( this.element.hasClass('u-header--invulnerable') ) {\n observers['xs'].push(\n new HSHeaderWithoutBehaviorObserver( this.element )\n );\n }\n\n // Sticky bottom\n\n if( this.element.hasClass('u-header--sticky-bottom') ) {\n\n if(this.element.hasClass('u-header--change-appearance')) {\n observers['xs'].push(\n new HSHeaderChangeAppearanceObserver( this.element )\n );\n }\n\n if( this.element.hasClass('u-header--change-logo') ) {\n\n observers['xs'].push(\n new HSHeaderChangeLogoObserver( this.element )\n );\n\n }\n\n }\n\n // Abs top & Static\n\n if( this.element.hasClass('u-header--abs-top') || this.element.hasClass('u-header--static')) {\n\n if( this.element.hasClass('u-header--show-hide') ) {\n\n observers['xs'].push(\n new HSHeaderShowHideObserver( this.element )\n );\n\n }\n\n if( this.element.hasClass('u-header--change-logo') ) {\n\n observers['xs'].push(\n new HSHeaderChangeLogoObserver( this.element )\n );\n\n }\n\n if( this.element.hasClass('u-header--change-appearance') ) {\n\n observers['xs'].push(\n new HSHeaderChangeAppearanceObserver( this.element )\n );\n\n }\n\n }\n\n // Abs bottom & Abs top 2nd screen\n\n if( this.element.hasClass('u-header--abs-bottom') || this.element.hasClass('u-header--abs-top-2nd-screen') ) {\n\n observers['xs'].push(\n new HSHeaderStickObserver( this.element )\n );\n\n if( this.element.hasClass('u-header--change-appearance') ) {\n\n observers['xs'].push(\n new HSHeaderChangeAppearanceObserver( this.element, {\n fixPointSelf: true\n } )\n );\n\n }\n\n if( this.element.hasClass('u-header--change-logo') ) {\n\n observers['xs'].push(\n new HSHeaderChangeLogoObserver( this.element, {\n fixPointSelf: true\n } )\n );\n\n }\n\n }\n\n /* ------------------------ sm -------------------------*/\n\n // Sticky top\n\n // Has Hidden Element\n if( this.element.hasClass('u-header--has-hidden-element--sm') ) {\n observers['sm'].push(\n new HSHeaderHasHiddenElement( this.element )\n );\n }\n\n if( this.element.hasClass('u-header--sticky-top--sm') ) {\n\n if( this.element.hasClass('u-header--show-hide--sm') ) {\n\n observers['sm'].push(\n new HSHeaderMomentShowHideObserver( this.element )\n );\n\n }\n else if( this.element.hasClass('u-header--toggle-section--sm') ) {\n\n observers['sm'].push(\n new HSHeaderHideSectionObserver( this.element )\n );\n\n }\n\n if( this.element.hasClass('u-header--change-logo--sm') ) {\n\n observers['sm'].push(\n new HSHeaderChangeLogoObserver( this.element )\n );\n\n }\n\n if( this.element.hasClass('u-header--change-appearance--sm') ) {\n\n observers['sm'].push(\n new HSHeaderChangeAppearanceObserver( this.element )\n );\n\n }\n\n }\n\n // Floating\n\n if( this.element.hasClass('u-header--floating--sm') ) {\n\n observers['sm'].push(\n new HSHeaderFloatingObserver( this.element )\n );\n\n }\n\n if( this.element.hasClass('u-header--invulnerable--sm') ) {\n observers['sm'].push(\n new HSHeaderWithoutBehaviorObserver( this.element )\n );\n }\n\n // Sticky bottom\n\n if( this.element.hasClass('u-header--sticky-bottom--sm') ) {\n\n if(this.element.hasClass('u-header--change-appearance--sm')) {\n observers['sm'].push(\n new HSHeaderChangeAppearanceObserver( this.element )\n );\n }\n\n if( this.element.hasClass('u-header--change-logo--sm') ) {\n\n observers['sm'].push(\n new HSHeaderChangeLogoObserver( this.element )\n );\n\n }\n\n }\n\n // Abs top & Static\n\n if( this.element.hasClass('u-header--abs-top--sm') || this.element.hasClass('u-header--static--sm')) {\n\n if( this.element.hasClass('u-header--show-hide--sm') ) {\n\n observers['sm'].push(\n new HSHeaderShowHideObserver( this.element )\n );\n\n }\n\n if( this.element.hasClass('u-header--change-logo--sm') ) {\n\n observers['sm'].push(\n new HSHeaderChangeLogoObserver( this.element )\n );\n\n }\n\n if( this.element.hasClass('u-header--change-appearance--sm') ) {\n\n observers['sm'].push(\n new HSHeaderChangeAppearanceObserver( this.element )\n );\n\n }\n\n }\n\n // Abs bottom & Abs top 2nd screen\n\n if( this.element.hasClass('u-header--abs-bottom--sm') || this.element.hasClass('u-header--abs-top-2nd-screen--sm') ) {\n\n observers['sm'].push(\n new HSHeaderStickObserver( this.element )\n );\n\n if( this.element.hasClass('u-header--change-appearance--sm') ) {\n\n observers['sm'].push(\n new HSHeaderChangeAppearanceObserver( this.element, {\n fixPointSelf: true\n } )\n );\n\n }\n\n if( this.element.hasClass('u-header--change-logo--sm') ) {\n\n observers['sm'].push(\n new HSHeaderChangeLogoObserver( this.element, {\n fixPointSelf: true\n } )\n );\n\n }\n\n }\n\n /* ------------------------ md -------------------------*/\n\n // Has Hidden Element\n if( this.element.hasClass('u-header--has-hidden-element--md') ) {\n observers['md'].push(\n new HSHeaderHasHiddenElement( this.element )\n );\n }\n\n // Sticky top\n\n if( this.element.hasClass('u-header--sticky-top--md') ) {\n\n if( this.element.hasClass('u-header--show-hide--md') ) {\n\n observers['md'].push(\n new HSHeaderMomentShowHideObserver( this.element )\n );\n\n }\n else if( this.element.hasClass('u-header--toggle-section--md') ) {\n\n observers['md'].push(\n new HSHeaderHideSectionObserver( this.element )\n );\n\n }\n\n if( this.element.hasClass('u-header--change-logo--md') ) {\n\n observers['md'].push(\n new HSHeaderChangeLogoObserver( this.element )\n );\n\n }\n\n if( this.element.hasClass('u-header--change-appearance--md') ) {\n\n observers['md'].push(\n new HSHeaderChangeAppearanceObserver( this.element )\n );\n\n }\n\n }\n\n // Floating\n\n if( this.element.hasClass('u-header--floating--md') ) {\n\n observers['md'].push(\n new HSHeaderFloatingObserver( this.element )\n );\n\n }\n\n if( this.element.hasClass('u-header--invulnerable--md') ) {\n observers['md'].push(\n new HSHeaderWithoutBehaviorObserver( this.element )\n );\n }\n\n // Sticky bottom\n\n if( this.element.hasClass('u-header--sticky-bottom--md') ) {\n\n if(this.element.hasClass('u-header--change-appearance--md')) {\n observers['md'].push(\n new HSHeaderChangeAppearanceObserver( this.element )\n );\n }\n\n if( this.element.hasClass('u-header--change-logo--md') ) {\n\n observers['md'].push(\n new HSHeaderChangeLogoObserver( this.element )\n );\n\n }\n\n }\n\n // Abs top & Static\n\n if( this.element.hasClass('u-header--abs-top--md') || this.element.hasClass('u-header--static--md')) {\n\n if( this.element.hasClass('u-header--show-hide--md') ) {\n\n observers['md'].push(\n new HSHeaderShowHideObserver( this.element )\n );\n\n }\n\n if( this.element.hasClass('u-header--change-logo--md') ) {\n\n observers['md'].push(\n new HSHeaderChangeLogoObserver( this.element )\n );\n\n }\n\n if( this.element.hasClass('u-header--change-appearance--md') ) {\n\n observers['md'].push(\n new HSHeaderChangeAppearanceObserver( this.element )\n );\n\n }\n\n }\n\n // Abs bottom & Abs top 2nd screen\n\n if( this.element.hasClass('u-header--abs-bottom--md') || this.element.hasClass('u-header--abs-top-2nd-screen--md') ) {\n\n observers['md'].push(\n new HSHeaderStickObserver( this.element )\n );\n\n if( this.element.hasClass('u-header--change-appearance--md') ) {\n\n observers['md'].push(\n new HSHeaderChangeAppearanceObserver( this.element, {\n fixPointSelf: true\n } )\n );\n\n }\n\n if( this.element.hasClass('u-header--change-logo--md') ) {\n\n observers['md'].push(\n new HSHeaderChangeLogoObserver( this.element, {\n fixPointSelf: true\n } )\n );\n\n }\n\n }\n\n\n /* ------------------------ lg -------------------------*/\n\n // Has Hidden Element\n if( this.element.hasClass('u-header--has-hidden-element--lg') ) {\n observers['lg'].push(\n new HSHeaderHasHiddenElement( this.element )\n );\n }\n\n // Sticky top\n\n if( this.element.hasClass('u-header--sticky-top--lg') ) {\n\n if( this.element.hasClass('u-header--show-hide--lg') ) {\n\n observers['lg'].push(\n new HSHeaderMomentShowHideObserver( this.element )\n );\n\n }\n else if( this.element.hasClass('u-header--toggle-section--lg') ) {\n\n observers['lg'].push(\n new HSHeaderHideSectionObserver( this.element )\n );\n\n }\n\n if( this.element.hasClass('u-header--change-logo--lg') ) {\n\n observers['lg'].push(\n new HSHeaderChangeLogoObserver( this.element )\n );\n\n }\n\n if( this.element.hasClass('u-header--change-appearance--lg') ) {\n\n observers['lg'].push(\n new HSHeaderChangeAppearanceObserver( this.element )\n );\n\n }\n\n }\n\n // Floating\n\n if( this.element.hasClass('u-header--floating--lg') ) {\n\n observers['lg'].push(\n new HSHeaderFloatingObserver( this.element )\n );\n\n }\n\n if( this.element.hasClass('u-header--invulnerable--lg') ) {\n observers['lg'].push(\n new HSHeaderWithoutBehaviorObserver( this.element )\n );\n }\n\n // Sticky bottom\n\n if( this.element.hasClass('u-header--sticky-bottom--lg') ) {\n\n if(this.element.hasClass('u-header--change-appearance--lg')) {\n observers['lg'].push(\n new HSHeaderChangeAppearanceObserver( this.element )\n );\n }\n\n if( this.element.hasClass('u-header--change-logo--lg') ) {\n\n observers['lg'].push(\n new HSHeaderChangeLogoObserver( this.element )\n );\n\n }\n\n }\n\n // Abs top & Static\n\n if( this.element.hasClass('u-header--abs-top--lg') || this.element.hasClass('u-header--static--lg')) {\n\n if( this.element.hasClass('u-header--show-hide--lg') ) {\n\n observers['lg'].push(\n new HSHeaderShowHideObserver( this.element )\n );\n\n }\n\n if( this.element.hasClass('u-header--change-logo--lg') ) {\n\n observers['lg'].push(\n new HSHeaderChangeLogoObserver( this.element )\n );\n\n }\n\n if( this.element.hasClass('u-header--change-appearance--lg') ) {\n\n observers['lg'].push(\n new HSHeaderChangeAppearanceObserver( this.element )\n );\n\n }\n\n }\n\n // Abs bottom & Abs top 2nd screen\n\n if( this.element.hasClass('u-header--abs-bottom--lg') || this.element.hasClass('u-header--abs-top-2nd-screen--lg') ) {\n\n observers['lg'].push(\n new HSHeaderStickObserver( this.element )\n );\n\n if( this.element.hasClass('u-header--change-appearance--lg') ) {\n\n observers['lg'].push(\n new HSHeaderChangeAppearanceObserver( this.element, {\n fixPointSelf: true\n } )\n );\n\n }\n\n if( this.element.hasClass('u-header--change-logo--lg') ) {\n\n observers['lg'].push(\n new HSHeaderChangeLogoObserver( this.element, {\n fixPointSelf: true\n } )\n );\n\n }\n\n }\n\n /* ------------------------ xl -------------------------*/\n\n // Has Hidden Element\n if( this.element.hasClass('u-header--has-hidden-element--xl') ) {\n observers['xl'].push(\n new HSHeaderHasHiddenElement( this.element )\n );\n }\n\n // Sticky top\n\n if( this.element.hasClass('u-header--sticky-top--xl') ) {\n\n if( this.element.hasClass('u-header--show-hide--xl') ) {\n\n observers['xl'].push(\n new HSHeaderMomentShowHideObserver( this.element )\n );\n\n }\n else if( this.element.hasClass('u-header--toggle-section--xl') ) {\n\n observers['xl'].push(\n new HSHeaderHideSectionObserver( this.element )\n );\n\n }\n\n if( this.element.hasClass('u-header--change-logo--xl') ) {\n\n observers['xl'].push(\n new HSHeaderChangeLogoObserver( this.element )\n );\n\n }\n\n if( this.element.hasClass('u-header--change-appearance--xl') ) {\n\n observers['xl'].push(\n new HSHeaderChangeAppearanceObserver( this.element )\n );\n\n }\n\n }\n\n // Floating\n\n if( this.element.hasClass('u-header--floating--xl') ) {\n\n observers['xl'].push(\n new HSHeaderFloatingObserver( this.element )\n );\n\n }\n\n // Sticky bottom\n\n if( this.element.hasClass('u-header--invulnerable--xl') ) {\n observers['xl'].push(\n new HSHeaderWithoutBehaviorObserver( this.element )\n );\n }\n\n // Sticky bottom\n\n if( this.element.hasClass('u-header--sticky-bottom--xl') ) {\n\n if(this.element.hasClass('u-header--change-appearance--xl')) {\n observers['xl'].push(\n new HSHeaderChangeAppearanceObserver( this.element )\n );\n }\n\n if( this.element.hasClass('u-header--change-logo--xl') ) {\n\n observers['xl'].push(\n new HSHeaderChangeLogoObserver( this.element )\n );\n\n }\n\n }\n\n // Abs top & Static\n\n if( this.element.hasClass('u-header--abs-top--xl') || this.element.hasClass('u-header--static--xl')) {\n\n if( this.element.hasClass('u-header--show-hide--xl') ) {\n\n observers['xl'].push(\n new HSHeaderShowHideObserver( this.element )\n );\n\n }\n\n if( this.element.hasClass('u-header--change-logo--xl') ) {\n\n observers['xl'].push(\n new HSHeaderChangeLogoObserver( this.element )\n );\n\n }\n\n if( this.element.hasClass('u-header--change-appearance--xl') ) {\n\n observers['xl'].push(\n new HSHeaderChangeAppearanceObserver( this.element )\n );\n\n }\n\n }\n\n // Abs bottom & Abs top 2nd screen\n\n if( this.element.hasClass('u-header--abs-bottom--xl') || this.element.hasClass('u-header--abs-top-2nd-screen--xl') ) {\n\n observers['xl'].push(\n new HSHeaderStickObserver( this.element )\n );\n\n if( this.element.hasClass('u-header--change-appearance--xl') ) {\n\n observers['xl'].push(\n new HSHeaderChangeAppearanceObserver( this.element, {\n fixPointSelf: true\n } )\n );\n\n }\n\n if( this.element.hasClass('u-header--change-logo--xl') ) {\n\n observers['xl'].push(\n new HSHeaderChangeLogoObserver( this.element, {\n fixPointSelf: true\n } )\n );\n\n }\n\n }\n\n\n return observers;\n\n },\n\n /**\n *\n *\n * @param\n *\n * @return\n */\n fixMediaDifference: function(element) {\n\n if(!element || !element.length || !element.filter('[class*=\"u-header--side\"]').length) return;\n\n var toggleable;\n\n if(element.hasClass('u-header--side-left--xl') || element.hasClass('u-header--side-right--xl')) {\n\n toggleable = element.find('.navbar-expand-xl');\n\n if(toggleable.length) {\n toggleable\n .removeClass('navbar-expand-xl')\n .addClass('navbar-expand-lg');\n }\n\n }\n else if(element.hasClass('u-header--side-left--lg') || element.hasClass('u-header--side-right--lg')) {\n\n toggleable = element.find('.navbar-expand-lg');\n\n if(toggleable.length) {\n toggleable\n .removeClass('navbar-expand-lg')\n .addClass('navbar-expand-md');\n }\n\n }\n else if(element.hasClass('u-header--side-left--md') || element.hasClass('u-header--side-right--md')) {\n\n toggleable = element.find('.navbar-expand-md');\n\n if(toggleable.length) {\n toggleable\n .removeClass('navbar-expand-md')\n .addClass('navbar-expand-sm');\n }\n\n }\n else if(element.hasClass('u-header--side-left--sm') || element.hasClass('u-header--side-right--sm')) {\n\n toggleable = element.find('.navbar-expand-sm');\n\n if(toggleable.length) {\n toggleable\n .removeClass('navbar-expand-sm')\n .addClass('navbar-expand');\n }\n\n }\n\n }\n\n }\n\n /**\n * HSHeader constructor function.\n *\n * @param jQuery element\n * @param Object config\n * @param Object observers\n *\n * @return undefined\n */\n function HSHeader( element, config, observers ) {\n\n if( !element || !element.length ) return;\n\n this.element = element;\n this.config = config;\n\n this.observers = observers && $.isPlainObject( observers ) ? observers : {};\n\n this.viewport = 'xs';\n this.checkViewport();\n\n }\n\n /**\n *\n *\n * @return Object\n */\n HSHeader.prototype.checkViewport = function() {\n\n var $w = $(window);\n\n if( $w.width() > this.config.breakpointsMap['sm'] && this.observers['sm'].length ){\n this.prevViewport = this.viewport;\n this.viewport = 'sm';\n return this;\n }\n\n if( $w.width() > this.config.breakpointsMap['md'] && this.observers['md'].length ) {\n this.prevViewport = this.viewport;\n this.viewport = 'md';\n return this;\n }\n\n if( $w.width() > this.config.breakpointsMap['lg'] && this.observers['lg'].length ) {\n this.prevViewport = this.viewport;\n this.viewport = 'lg';\n return this;\n }\n\n if( $w.width() > this.config.breakpointsMap['xl'] && this.observers['xl'].length ) {\n this.prevViewport = this.viewport;\n this.viewport = 'xl';\n return this;\n }\n\n\n if(this.prevViewport) this.prevViewport = this.viewport;\n this.viewport = 'xs';\n\n\n return this;\n\n }\n\n /**\n * Notifies all observers.\n *\n * @return Object\n */\n HSHeader.prototype.notify = function(){\n\n if( this.prevViewport ) {\n this.observers[this.prevViewport].forEach(function(observer){\n observer.destroy();\n });\n this.prevViewport = null;\n }\n\n this.observers[this.viewport].forEach(function(observer){\n observer.check();\n });\n\n return this;\n\n }\n\n /**\n * Reinit all header's observers.\n *\n * @return Object\n */\n HSHeader.prototype.update = function() {\n\n // if( this.prevViewport ) {\n // this.observers[this.prevViewport].forEach(function(observer){\n // observer.destroy();\n // });\n // this.prevViewport = null;\n // }\n\n for(var viewport in this.observers) {\n\n this.observers[viewport].forEach(function(observer){\n observer.destroy();\n });\n\n }\n\n this.prevViewport = null;\n\n this.observers[this.viewport].forEach(function(observer){\n observer.reinit();\n });\n\n return this;\n\n }\n\n /**\n * Abstract constructor function for each observer.\n *\n * @param jQuery element\n *\n * @return Boolean|undefined\n */\n function HSAbstractObserver(element) {\n if( !element || !element.length ) return;\n\n this.element = element;\n this.defaultState = true;\n\n this.reinit = function() {\n\n this\n .destroy()\n .init()\n .check();\n }\n\n return true;\n }\n\n /**\n * Header's observer which is responsible for 'sticky' behavior.\n *\n * @param jQuery element\n */\n function HSHeaderStickObserver( element ) {\n if( !HSAbstractObserver.call(this, element) ) return;\n\n this.init();\n\n }\n\n /**\n *\n *\n * @param\n *\n * @return\n */\n HSHeaderStickObserver.prototype.init = function() {\n this.defaultState = true;\n this.offset = this.element.offset().top;\n\n return this;\n }\n\n /**\n *\n *\n * @param\n *\n * @return\n */\n HSHeaderStickObserver.prototype.destroy = function() {\n this.toDefaultState();\n\n return this;\n }\n\n /**\n *\n *\n * @param\n *\n * @return\n */\n HSHeaderStickObserver.prototype.check = function() {\n\n var $w = $(window),\n docScrolled = $w.scrollTop();\n\n if( docScrolled > this.offset && this.defaultState) {\n this.changeState();\n }\n else if(docScrolled < this.offset && !this.defaultState){\n this.toDefaultState();\n }\n\n return this;\n\n }\n\n /**\n *\n *\n * @param\n *\n * @return\n */\n HSHeaderStickObserver.prototype.changeState = function() {\n\n this.element.addClass('js-header-fix-moment');\n this.defaultState = !this.defaultState;\n\n return this;\n\n }\n\n /**\n *\n *\n * @param\n *\n * @return\n */\n HSHeaderStickObserver.prototype.toDefaultState = function() {\n\n this.element.removeClass('js-header-fix-moment');\n this.defaultState = !this.defaultState;\n\n return this;\n\n }\n\n\n /**\n * Header's observer which is responsible for 'show/hide' behavior which is depended on scroll direction.\n *\n * @param jQuery element\n */\n function HSHeaderMomentShowHideObserver( element ) {\n if( !HSAbstractObserver.call(this, element) ) return;\n\n this.init();\n }\n\n /**\n *\n *\n * @return Object\n */\n HSHeaderMomentShowHideObserver.prototype.init = function() {\n this.direction = 'down';\n this.delta = 0;\n this.defaultState = true;\n\n this.offset = isFinite( this.element.data('header-fix-moment') ) && this.element.data('header-fix-moment') != 0 ? this.element.data('header-fix-moment') : 5;\n this.effect = this.element.data('header-fix-effect') ? this.element.data('header-fix-effect') : 'show-hide';\n\n return this;\n }\n\n /**\n *\n *\n * @return Object\n */\n HSHeaderMomentShowHideObserver.prototype.destroy = function() {\n this.toDefaultState();\n\n return this;\n }\n\n /**\n *\n *\n * @param\n *\n * @return Object\n */\n HSHeaderMomentShowHideObserver.prototype.checkDirection = function() {\n\n if( $(window).scrollTop() > this.delta ) {\n this.direction = 'down';\n }\n else {\n this.direction = 'up';\n }\n\n this.delta = $(window).scrollTop();\n\n return this;\n\n }\n\n /**\n *\n *\n * @return Object\n */\n HSHeaderMomentShowHideObserver.prototype.toDefaultState = function() {\n\n switch( this.effect ) {\n case 'slide' :\n this.element.removeClass('u-header--moved-up');\n break;\n\n case 'fade' :\n this.element.removeClass('u-header--faded');\n break;\n\n default:\n this.element.removeClass('u-header--invisible');\n }\n\n this.defaultState = !this.defaultState;\n\n return this;\n }\n\n /**\n *\n *\n * @return Object\n */\n HSHeaderMomentShowHideObserver.prototype.changeState = function() {\n\n switch( this.effect ) {\n case 'slide' :\n this.element.addClass('u-header--moved-up');\n break;\n\n case 'fade' :\n this.element.addClass('u-header--faded');\n break;\n\n default:\n this.element.addClass('u-header--invisible');\n }\n\n this.defaultState = !this.defaultState;\n\n return this;\n }\n\n /**\n *\n *\n * @return Object\n */\n HSHeaderMomentShowHideObserver.prototype.check = function() {\n\n var docScrolled = $(window).scrollTop();\n this.checkDirection();\n\n\n if( docScrolled >= this.offset && this.defaultState && this.direction == 'down' ) {\n this.changeState();\n }\n else if ( !this.defaultState && this.direction == 'up') {\n this.toDefaultState();\n }\n\n return this;\n\n }\n\n /**\n *\n *\n * @param\n *\n * @return\n */\n function HSHeaderShowHideObserver( element ) {\n if( !HSAbstractObserver.call(this, element) ) return;\n\n this.init();\n }\n\n /**\n *\n *\n * @param\n *\n * @return Object\n */\n HSHeaderShowHideObserver.prototype.init = function() {\n if(!this.defaultState && $(window).scrollTop() > this.offset) return this;\n\n this.defaultState = true;\n this.transitionDuration = parseFloat( getComputedStyle( this.element.get(0) )['transition-duration'], 10 ) * 1000;\n\n this.offset = isFinite( this.element.data('header-fix-moment') ) && this.element.data('header-fix-moment') > this.element.outerHeight() ? this.element.data('header-fix-moment') : this.element.outerHeight() + 100;\n this.effect = this.element.data('header-fix-effect') ? this.element.data('header-fix-effect') : 'show-hide';\n\n return this;\n }\n\n /**\n *\n *\n * @param\n *\n * @return Object\n */\n HSHeaderShowHideObserver.prototype.destroy = function() {\n if( !this.defaultState && $(window).scrollTop() > this.offset ) return this;\n\n this.element.removeClass('u-header--untransitioned');\n this._removeCap();\n\n return this;\n }\n\n /**\n *\n *\n * @param\n *\n * @return\n */\n HSHeaderShowHideObserver.prototype._insertCap = function() {\n\n this.element.addClass('js-header-fix-moment u-header--untransitioned');\n\n if( this.element.hasClass('u-header--static') ) {\n\n $('html').css('padding-top', this.element.outerHeight() );\n\n }\n\n switch( this.effect ) {\n case 'fade' :\n this.element.addClass('u-header--faded');\n break;\n\n case 'slide' :\n this.element.addClass('u-header--moved-up');\n break;\n\n default :\n this.element.addClass('u-header--invisible')\n }\n\n this.capInserted = true;\n\n }\n\n /**\n *\n *\n * @param\n *\n * @return\n */\n HSHeaderShowHideObserver.prototype._removeCap = function() {\n\n var self = this;\n\n this.element.removeClass('js-header-fix-moment');\n\n if( this.element.hasClass('u-header--static') ) {\n\n $('html').css('padding-top', 0 );\n\n }\n\n if(this.removeCapTimeOutId) clearTimeout(this.removeCapTimeOutId);\n\n this.removeCapTimeOutId = setTimeout(function() {\n self.element.removeClass('u-header--moved-up u-header--faded u-header--invisible');\n }, 10);\n\n this.capInserted = false;\n\n }\n\n\n /**\n *\n *\n * @param\n *\n * @return\n */\n HSHeaderShowHideObserver.prototype.check = function() {\n\n var $w = $(window);\n\n if( $w.scrollTop() > this.element.outerHeight() && !this.capInserted ) {\n this._insertCap();\n }\n else if($w.scrollTop() <= this.element.outerHeight() && this.capInserted) {\n this._removeCap();\n }\n\n if( $w.scrollTop() > this.offset && this.defaultState) {\n this.changeState();\n }\n else if( $w.scrollTop() <= this.offset && !this.defaultState ) {\n this.toDefaultState();\n }\n\n\n\n }\n\n /**\n *\n *\n * @param\n *\n * @return\n */\n HSHeaderShowHideObserver.prototype.changeState = function() {\n\n this.element.removeClass('u-header--untransitioned');\n\n if( this.animationTimeoutId ) clearTimeout( this.animationTimeoutId );\n\n switch( this.effect ) {\n case 'fade' :\n this.element.removeClass('u-header--faded');\n break;\n\n case 'slide' :\n this.element.removeClass('u-header--moved-up');\n break;\n\n default:\n this.element.removeClass('u-header--invisible');\n }\n\n this.defaultState = !this.defaultState;\n\n }\n\n /**\n *\n *\n * @param\n *\n * @return\n */\n HSHeaderShowHideObserver.prototype.toDefaultState = function() {\n\n var self = this;\n\n this.animationTimeoutId = setTimeout(function(){\n self.element.addClass('u-header--untransitioned');\n }, this.transitionDuration );\n\n\n switch( this.effect ) {\n case 'fade' :\n this.element.addClass('u-header--faded');\n break;\n case 'slide' :\n this.element.addClass('u-header--moved-up');\n break;\n default:\n this.element.addClass('u-header--invisible');\n }\n\n this.defaultState = !this.defaultState;\n\n }\n\n /**\n *\n *\n * @param\n *\n * @return\n */\n function HSHeaderChangeLogoObserver( element, config ) {\n\n if( !HSAbstractObserver.call( this, element ) ) return;\n\n this.config = {\n fixPointSelf: false\n }\n\n if( config && $.isPlainObject(config) ) this.config = $.extend(true, {}, this.config, config);\n\n this.init();\n\n }\n\n /**\n *\n *\n * @param\n *\n * @return\n */\n HSHeaderChangeLogoObserver.prototype.init = function() {\n\n if(this.element.hasClass('js-header-fix-moment')) {\n this.hasFixedClass = true;\n this.element.removeClass('js-header-fix-moment');\n }\n if( this.config.fixPointSelf ) {\n this.offset = this.element.offset().top;\n }\n else {\n this.offset = isFinite( this.element.data('header-fix-moment') ) ? this.element.data('header-fix-moment') : 0;\n }\n if(this.hasFixedClass) {\n this.hasFixedClass = false;\n this.element.addClass('js-header-fix-moment');\n }\n\n this.imgs = this.element.find('.u-header__logo-img');\n this.defaultState = true;\n\n this.mainLogo = this.imgs.filter('.u-header__logo-img--main');\n this.additionalLogo = this.imgs.not('.u-header__logo-img--main');\n\n if( !this.imgs.length ) return this;\n\n return this;\n }\n\n /**\n *\n *\n * @param\n *\n * @return\n */\n HSHeaderChangeLogoObserver.prototype.destroy = function() {\n this.toDefaultState();\n\n return this;\n }\n\n /**\n *\n *\n * @param\n *\n * @return\n */\n HSHeaderChangeLogoObserver.prototype.check = function() {\n\n var $w = $(window);\n\n if( !this.imgs.length ) return this;\n\n if( $w.scrollTop() > this.offset && this.defaultState) {\n this.changeState();\n }\n else if( $w.scrollTop() <= this.offset && !this.defaultState ) {\n this.toDefaultState();\n }\n\n return this;\n\n }\n\n /**\n *\n *\n * @param\n *\n * @return\n */\n HSHeaderChangeLogoObserver.prototype.changeState = function() {\n\n if(this.mainLogo.length) {\n this.mainLogo.removeClass('u-header__logo-img--main');\n }\n if(this.additionalLogo.length) {\n this.additionalLogo.addClass('u-header__logo-img--main');\n }\n\n this.defaultState = !this.defaultState;\n\n return this;\n }\n\n /**\n *\n *\n * @param\n *\n * @return\n */\n HSHeaderChangeLogoObserver.prototype.toDefaultState = function() {\n\n if(this.mainLogo.length) {\n this.mainLogo.addClass('u-header__logo-img--main');\n }\n if(this.additionalLogo.length) {\n this.additionalLogo.removeClass('u-header__logo-img--main');\n }\n\n this.defaultState = !this.defaultState;\n\n return this;\n }\n\n /**\n *\n *\n * @param\n *\n * @return\n */\n function HSHeaderHideSectionObserver( element ) {\n if( !HSAbstractObserver.call(this, element) ) return;\n\n this.init();\n }\n\n /**\n *\n *\n * @param\n *\n * @return Object\n */\n HSHeaderHideSectionObserver.prototype.init = function() {\n\n this.offset = isFinite( this.element.data('header-fix-moment') ) ? this.element.data('header-fix-moment') : 5;\n this.section = this.element.find('.u-header__section--hidden');\n this.defaultState = true;\n\n this.sectionHeight = this.section.length ? this.section.outerHeight() : 0;\n\n\n return this;\n\n }\n\n /**\n *\n *\n * @param\n *\n * @return\n */\n HSHeaderHideSectionObserver.prototype.destroy = function() {\n\n if( this.section.length ) {\n\n this.element.css({\n 'margin-top': 0\n });\n\n }\n\n return this;\n\n }\n\n /**\n *\n *\n * @param\n *\n * @return\n */\n HSHeaderHideSectionObserver.prototype.check = function() {\n\n if(!this.section.length) return this;\n\n var $w = $(window),\n docScrolled = $w.scrollTop();\n\n if( docScrolled > this.offset && this.defaultState) {\n this.changeState();\n }\n else if( docScrolled <= this.offset && !this.defaultState ) {\n this.toDefaultState();\n }\n\n return this;\n\n }\n\n /**\n *\n *\n * @param\n *\n * @return\n */\n HSHeaderHideSectionObserver.prototype.changeState = function() {\n\n var self = this;\n\n this.element.stop().animate({\n 'margin-top': self.sectionHeight * -1 - 1 // last '-1' is a small fix\n });\n\n this.defaultState = !this.defaultState;\n return this;\n\n }\n\n /**\n *\n *\n * @param\n *\n * @return\n */\n HSHeaderHideSectionObserver.prototype.toDefaultState = function() {\n\n this.element.stop().animate({\n 'margin-top': 0\n });\n\n this.defaultState = !this.defaultState;\n return this;\n\n }\n\n /**\n *\n *\n * @param\n *\n * @return\n */\n function HSHeaderChangeAppearanceObserver(element, config) {\n if( !HSAbstractObserver.call(this, element) ) return;\n\n this.config = {\n fixPointSelf: false\n }\n\n if( config && $.isPlainObject(config) ) this.config = $.extend(true, {}, this.config, config);\n\n this.init();\n }\n\n /**\n *\n *\n * @param\n *\n * @return\n */\n HSHeaderChangeAppearanceObserver.prototype.init = function() {\n\n if(this.element.hasClass('js-header-fix-moment')) {\n this.hasFixedClass = true;\n this.element.removeClass('js-header-fix-moment');\n }\n\n if( this.config.fixPointSelf ) {\n this.offset = this.element.offset().top;\n }\n else {\n this.offset = isFinite( this.element.data('header-fix-moment') ) ? this.element.data('header-fix-moment') : 5;\n }\n\n if( this.hasFixedClass ) {\n this.hasFixedClass = false;\n this.element.addClass('js-header-fix-moment');\n }\n\n this.sections = this.element.find('[data-header-fix-moment-classes]');\n\n this.defaultState = true;\n\n\n return this;\n\n }\n\n /**\n *\n *\n * @param\n *\n * @return\n */\n HSHeaderChangeAppearanceObserver.prototype.destroy = function() {\n\n this.toDefaultState();\n\n return this;\n\n }\n\n /**\n *\n *\n * @param\n *\n * @return\n */\n HSHeaderChangeAppearanceObserver.prototype.check = function() {\n\n if( !this.sections.length ) return this;\n\n var $w = $(window),\n docScrolled = $w.scrollTop();\n\n if( docScrolled > this.offset && this.defaultState) {\n this.changeState();\n }\n else if( docScrolled <= this.offset && !this.defaultState ) {\n this.toDefaultState();\n }\n\n return this;\n\n }\n\n /**\n *\n *\n * @param\n *\n * @return\n */\n HSHeaderChangeAppearanceObserver.prototype.changeState = function() {\n\n this.sections.each(function(i,el){\n\n var $this = $(el),\n classes = $this.data('header-fix-moment-classes'),\n exclude = $this.data('header-fix-moment-exclude');\n\n if( !classes && !exclude ) return;\n\n $this.addClass( classes + ' js-header-change-moment');\n $this.removeClass( exclude );\n\n });\n\n this.defaultState = !this.defaultState;\n return this;\n\n }\n\n /**\n *\n *\n * @param\n *\n * @return\n */\n HSHeaderChangeAppearanceObserver.prototype.toDefaultState = function() {\n\n this.sections.each(function(i,el){\n\n var $this = $(el),\n classes = $this.data('header-fix-moment-classes'),\n exclude = $this.data('header-fix-moment-exclude');\n\n if( !classes && !exclude ) return;\n\n $this.removeClass( classes + ' js-header-change-moment' );\n $this.addClass( exclude );\n\n });\n\n this.defaultState = !this.defaultState;\n return this;\n\n }\n\n /**\n *\n *\n * @param\n *\n * @return\n */\n function HSHeaderHasHiddenElement(element, config) {\n if( !HSAbstractObserver.call(this, element) ) return;\n\n this.config = {\n animated: true\n }\n\n if( config && $.isPlainObject(config) ) this.config = $.extend(true, {}, this.config, config);\n\n this.init();\n }\n\n /**\n *\n *\n * @param\n *\n * @return\n */\n HSHeaderHasHiddenElement.prototype.init = function() {\n this.offset = isFinite( this.element.data('header-fix-moment') ) ? this.element.data('header-fix-moment') : 5;\n this.elements = this.element.find('.u-header--hidden-element');\n this.defaultState = true;\n return this;\n }\n\n /**\n *\n *\n * @param\n *\n * @return\n */\n HSHeaderHasHiddenElement.prototype.destroy = function() {\n\n this.toDefaultState();\n\n return this;\n\n }\n\n /**\n *\n *\n * @param\n *\n * @return\n */\n HSHeaderHasHiddenElement.prototype.check = function() {\n\n if( !this.elements.length ) return this;\n\n var $w = $(window),\n docScrolled = $w.scrollTop();\n\n if( docScrolled > this.offset && this.defaultState) {\n this.changeState();\n }\n else if( docScrolled <= this.offset && !this.defaultState ) {\n this.toDefaultState();\n }\n\n return this;\n\n }\n\n /**\n *\n *\n * @param\n *\n * @return\n */\n HSHeaderHasHiddenElement.prototype.changeState = function() {\n\n if(this.config.animated) {\n this.elements.stop().slideUp();\n }\n else {\n this.elements.hide();\n }\n\n this.defaultState = !this.defaultState;\n return this;\n\n }\n\n /**\n *\n *\n * @param\n *\n * @return\n */\n HSHeaderHasHiddenElement.prototype.toDefaultState = function() {\n\n if(this.config.animated) {\n this.elements.stop().slideDown();\n }\n else {\n this.elements.show();\n }\n\n this.defaultState = !this.defaultState;\n return this;\n\n }\n\n\n\n\n\n /**\n *\n *\n * @param\n *\n * @return\n */\n function HSHeaderFloatingObserver(element, config) {\n if( !HSAbstractObserver.call(this, element) ) return;\n\n this.config = config && $.isPlainObject(config) ? $.extend(true, {}, this.config, config) : {};\n this.init();\n }\n\n /**\n *\n *\n * @param\n *\n * @return\n */\n HSHeaderFloatingObserver.prototype.init = function() {\n\n this.offset = this.element.offset().top;\n this.sections = this.element.find('.u-header__section');\n\n this.defaultState = true;\n\n return this;\n\n }\n\n /**\n *\n *\n * @param\n *\n * @return\n */\n HSHeaderFloatingObserver.prototype.destroy = function() {\n\n this.toDefaultState();\n\n return this;\n\n }\n\n /**\n *\n *\n * @param\n *\n * @return\n */\n HSHeaderFloatingObserver.prototype.check = function() {\n\n var $w = $(window),\n docScrolled = $w.scrollTop();\n\n if( docScrolled > this.offset && this.defaultState) {\n this.changeState();\n }\n else if( docScrolled <= this.offset && !this.defaultState ) {\n this.toDefaultState();\n }\n\n return this;\n\n }\n\n /**\n *\n *\n * @param\n *\n * @return\n */\n HSHeaderFloatingObserver.prototype.changeState = function() {\n\n this.element\n .addClass('js-header-fix-moment')\n .addClass( this.element.data('header-fix-moment-classes') )\n .removeClass( this.element.data('header-fix-moment-exclude') );\n\n if( this.sections.length ) {\n this.sections.each(function(i, el){\n\n var $section = $(el);\n\n $section.addClass( $section.data('header-fix-moment-classes') )\n .removeClass( $section.data('header-fix-moment-exclude') );\n\n });\n }\n\n this.defaultState = !this.defaultState;\n return this;\n\n }\n\n /**\n *\n *\n * @param\n *\n * @return\n */\n HSHeaderFloatingObserver.prototype.toDefaultState = function() {\n\n this.element\n .removeClass('js-header-fix-moment')\n .removeClass( this.element.data('header-fix-moment-classes') )\n .addClass( this.element.data('header-fix-moment-exclude') );\n\n if( this.sections.length ) {\n this.sections.each(function(i, el){\n\n var $section = $(el);\n\n $section.removeClass( $section.data('header-fix-moment-classes') )\n .addClass( $section.data('header-fix-moment-exclude') );\n\n });\n }\n\n this.defaultState = !this.defaultState;\n return this;\n\n }\n\n\n /**\n *\n *\n * @param\n *\n * @return\n */\n function HSHeaderWithoutBehaviorObserver( element ) { if( !HSAbstractObserver.call(this, element) ) return; }\n\n HSHeaderWithoutBehaviorObserver.prototype.check = function() {\n return this;\n }\n\n HSHeaderWithoutBehaviorObserver.prototype.init = function() {\n return this;\n }\n\n HSHeaderWithoutBehaviorObserver.prototype.destroy = function() {\n return this;\n }\n\n HSHeaderWithoutBehaviorObserver.prototype.changeState = function() {\n return this;\n }\n\n HSHeaderWithoutBehaviorObserver.prototype.toDefaultState = function() {\n return this;\n }\n\n\n})(jQuery);","/**\n * Hamburgers plugin helper.\n *\n * @author Htmlstream\n * @version 1.0\n * @requires hamburgers.min.css\n *\n */\n;(function($){\n\t'use strict';\n\n\t$.HSCore.helpers.HSHamburgers = {\n\n\t\t/**\n\t\t * Initialize 'hamburgers' plugin.\n\t\t * \n\t\t * @param String selector\n\t\t *\n\t\t * @return undefined;\n\t\t */\n\t\tinit: function(selector) {\n\n\t\t\tif( !selector || !$(selector).length ) return;\n\n\t\t var hamburgers = $(selector),\n\t\t \t\ttimeoutid;\n\n\t\t hamburgers.each(function(i, el){\n\n\t\t \tvar $this = $(this);\n\n\t\t \tif($this.closest('button').length) {\n\t\t \t\t$this.closest('button').get(0).addEventListener('click', function(e){\n\n\t\t \t\t\tvar $self = $(this),\n\t\t \t\t\t\t\t$hamburger = $self.find(selector);\n\n\t\t \t\t\tif(timeoutid) clearTimeout(timeoutid);\n\t\t \t\t\ttimeoutid = setTimeout(function(){\n\n\t\t \t\t\t\t$hamburger.toggleClass('is-active');\n\n\t\t \t\t\t}, 10);\n\t\t \t\t\te.preventDefault();\n\t\t \t\t}, false);\n\t\t \t}\n\t\t \telse {\n\t\t \t\t$this.get(0).addEventListener('click', function(e){\n\n\t\t \t\t\tvar $self = $(this);\n\n\t\t \t\t\tif(timeoutid) clearTimeout(timeoutid);\n\t\t \t\t\ttimeoutid = setTimeout(function(){\n\n\t\t \t\t\t\t$self.toggleClass('is-active');\n\n\t\t \t\t\t}, 10);\n\t\t \t\t\te.preventDefault();\n\t\t \t\t}, false);\n\t\t \t}\n\n\t\t });\n\n\t\t}\n\t\t\n\n\t};\n\n})(jQuery);","/**\n * Tabs wrapper.\n *\n * @author Htmlstream\n * @version 1.0\n * @requires\n *\n */\n;(function ($) {\n 'use strict';\n\n $.HSCore.components.HSTabs = {\n /**\n *\n *\n * @var Object _baseConfig\n */\n _baseConfig: {},\n\n /**\n *\n *\n * @var jQuery pageCollection\n */\n pageCollection: $(),\n\n /**\n * Initialization of Tabs wrapper.\n *\n * @param String selector (optional)\n * @param Object config (optional)\n *\n * @return jQuery pageCollection - collection of initialized items.\n */\n\n init: function (selector, config) {\n\n this.collection = selector && $(selector).length ? $(selector) : $();\n if (!$(selector).length) return;\n\n this.config = config && $.isPlainObject(config) ?\n $.extend({}, this._baseConfig, config) : this._baseConfig;\n\n this.config.itemSelector = selector;\n\n this.initTabs();\n\n return this.pageCollection;\n\n },\n\n initTabs: function () {\n //Variables\n var $self = this,\n collection = $self.pageCollection;\n\n //Actions\n this.collection.each(function (i, el) {\n //Variables\n var windW = $(window).width(),\n //Tabs\n $tabs = $(el),\n $tabsItem = $tabs.find('.nav-item'),\n tabsType = $tabs.data('tabs-mobile-type'), //[slide-up-down], [accordion], [hide-extra-items]\n controlClasses = $tabs.data('btn-classes'),\n context = $tabs.parent(),\n\n //Tabs Content\n $tabsContent = $('#' + $tabs.data('target')),\n $tabsContentItem = $tabsContent.find('.tab-pane');\n\n if (windW < 767) {\n $('body').on('click', function () {\n if (tabsType) {\n $tabs.slideUp(200);\n } else {\n $tabs.find('.nav-inner').slideUp(200);\n }\n });\n } else {\n $('body').off('click');\n }\n\n if (windW > 767 && tabsType) {\n $tabs.removeAttr('style');\n $tabsContentItem.removeAttr('style');\n context.off('click', '.js-tabs-mobile-control');\n context.off('click', '[role=\"tab\"]');\n if (tabsType == 'accordion') {\n $tabsContent.find('.js-tabs-mobile-control').remove();\n } else {\n context.find('.js-tabs-mobile-control').remove();\n }\n return;\n }\n\n if (windW < 768 && tabsType == 'accordion') {\n $self.accordionEffect($tabsContent, $tabsItem, $tabsContentItem, controlClasses);\n } else if (windW < 768 && tabsType == 'slide-up-down') {\n $self.slideUpDownEffect(context, $tabs, controlClasses);\n }\n\n //Actions\n collection = collection.add($tabs);\n });\n },\n\n slideUpDownEffect: function (context, menu, btnClasses) {\n if (context.find('.js-tabs-mobile-control').length) return;\n\n //Create control\n var activeItemHTML = menu.find('.active').html();\n\n $(menu).before('' + activeItemHTML + '');\n\n /*----- CLICK -----*/\n context.on('click', '.js-tabs-mobile-control', function (e) {\n e.stopPropagation();\n e.preventDefault();\n\n $(menu).slideToggle(200);\n });\n\n context.on('click', '[role=\"tab\"]', function (e) {\n e.preventDefault();\n\n var thisHTML = $(this).html(),\n $targetControl = $(this).closest('ul').prev('.js-tabs-mobile-control');\n\n $targetControl.html(thisHTML);\n $(menu).slideUp(200);\n });\n },\n\n accordionEffect: function (context, menuItem, menu, btnClasses) {\n if (context.find('.js-tabs-mobile-control').length) return;\n\n //Create control\n $(menu).before('');\n\n menuItem.each(function () {\n var thisIndex = $(this).index(),\n thisHTML = $(this).find('[role=\"tab\"]').html();\n\n if ($(this).find('[role=\"tab\"]').hasClass('active')) {\n $(menu[thisIndex]).prev().addClass('active');\n }\n\n $(menu[thisIndex]).prev().html(thisHTML);\n });\n\n /*----- CLICK -----*/\n context.on('click', '.js-tabs-mobile-control', function (e) {\n e.preventDefault();\n\n if ($(this).hasClass('active')) return;\n\n var contextID = context.attr('id');\n\n context.find('.js-tabs-mobile-control').removeClass('active');\n\n $('[data-target=\"' + contextID + '\"]').find('.nav-link').removeClass('active');\n var $target = $(this).next(),\n targetID = $target.attr('id');\n\n if ($target.hasClass('fade')) {\n $(this).addClass('active');\n $('[href=\"#' + targetID + '\"]').addClass('active');\n\n $(menu)\n .slideUp(200);\n $target\n .slideDown(200, function () {\n context.find('[role=\"tabpanel\"]').removeClass('show active');\n $target.addClass('show active');\n });\n } else {\n $(this).addClass('active');\n $(menu).slideUp(200);\n $target.slideDown(200);\n }\n });\n }\n }\n\n})(jQuery);\n","/**\n * Fancybox wrapper.\n *\n * @author Htmlstream\n * @version 1.0\n * @requires\n *\n */\n;\n(function($) {\n\t'use strict';\n\n\t$.HSCore.components.HSPopup = {\n\t\t/**\n\t\t *\n\t\t *\n\t\t * @var Object _baseConfig\n\t\t */\n\t\t_baseConfig: {\n\t\t\tparentEl: 'html',\n\t\t\tbaseClass: 'u-fancybox-theme',\n\t\t\tslideClass: 'u-fancybox-slide',\n\t\t\tspeed: 1000,\n\t\t\tslideSpeedCoefficient: 1,\n\t\t\tinfobar: false,\n\t\t\tfullScreen: true,\n\t\t\tthumbs: true,\n\t\t\tcloseBtn: true,\n\t\t\tbaseTpl: '' +\n\t\t\t\t'
' +\n\t\t\t\t'
' +\n\t\t\t\t'
' +\n\t\t\t\t'
' +\n\t\t\t\t'
' +\n\t\t\t\t' / ' +\n\t\t\t\t'
' +\n\t\t\t\t'
' +\n\t\t\t\t'
{{BUTTONS}}
' +\n\t\t\t\t'
' +\n\t\t\t\t'
' +\n\t\t\t\t'
' +\n\t\t\t\t'
' +\n\t\t\t\t'
' +\n\t\t\t\t'
' +\n\t\t\t\t'
' +\n\t\t\t\t'
' +\n\t\t\t\t'
' +\n\t\t\t\t'
' +\n\t\t\t\t'
',\n\t\t\tanimationEffect: 'fade'\n\t\t},\n\n\t\t/**\n\t\t *\n\t\t *\n\t\t * @var jQuery pageCollection\n\t\t */\n\t\tpageCollection: $(),\n\n\t\t/**\n\t\t * Initialization of Fancybox wrapper.\n\t\t *\n\t\t * @param String selector (optional)\n\t\t * @param Object config (optional)\n\t\t *\n\t\t * @return jQuery pageCollection - collection of initialized items.\n\t\t */\n\n\t\tinit: function(selector, config) {\n\t\t\tif (!selector) return;\n\n\t\t\tvar $collection = $(selector);\n\n\t\t\tif (!$collection.length) return;\n\n\t\t\tconfig = config && $.isPlainObject(config) ? $.extend(true, {}, this._baseConfig, config) : this._baseConfig;\n\n\t\t\tthis.initPopup(selector, config);\n\t\t},\n\n\t\tinitPopup: function(el, conf) {\n\t\t\tvar $fancybox = $(el);\n\n\t\t\t$fancybox.on('click', function() {\n\t\t\t\tvar $this = $(this),\n\t\t\t\t\tanimationDuration = $this.data('speed'),\n\t\t\t\t\tisGroup = $this.data('fancybox'),\n\t\t\t\t\tisInfinite = Boolean($this.data('is-infinite')),\n\t\t\t\t\tslideShowSpeed = $this.data('slideshow-speed');\n\n\t\t\t\t$.fancybox.defaults.animationDuration = animationDuration;\n\n\t\t\t\tif (isInfinite == true) {\n\t\t\t\t\t$.fancybox.defaults.loop = true;\n\t\t\t\t}\n\n\t\t\t\tif (isGroup) {\n\t\t\t\t\t$.fancybox.defaults.transitionEffect = 'slide';\n\t\t\t\t\t$.fancybox.defaults.slideShow.speed = slideShowSpeed;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t$fancybox.fancybox($.extend(true, {}, conf, {\n\t\t\t\tbeforeShow: function(instance, slide) {\n\t\t\t\t\tvar $fancyModal = $(instance.$refs.container),\n\t\t\t\t\t\t$fancyOverlay = $(instance.$refs.bg[0]),\n\t\t\t\t\t\t$fancySlide = $(instance.current.$slide),\n\n\t\t\t\t\t\tanimateIn = instance.current.opts.$orig[0].dataset.animateIn,\n\t\t\t\t\t\tanimateOut = instance.current.opts.$orig[0].dataset.animateOut,\n\t\t\t\t\t\tspeed = instance.current.opts.$orig[0].dataset.speed,\n\t\t\t\t\t\toverlayBG = instance.current.opts.$orig[0].dataset.overlayBg,\n\t\t\t\t\t\toverlayBlurBG = instance.current.opts.$orig[0].dataset.overlayBlurBg;\n\n\t\t\t\t\tif (animateIn && $('body').hasClass('u-first-slide-init')) {\n\t\t\t\t\t\tvar $fancyPrevSlide = $(instance.slides[instance.prevPos].$slide);\n\n\t\t\t\t\t\t$fancySlide.addClass('has-animation');\n\n\t\t\t\t\t\t$fancyPrevSlide.addClass('animated ' + animateOut);\n\n\t\t\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t\t\t$fancySlide.addClass('animated ' + animateIn);\n\t\t\t\t\t\t}, speed / 2);\n\t\t\t\t\t} else if (animateIn) {\n\t\t\t\t\t\tvar $fancyPrevSlide = $(instance.slides[instance.prevPos].$slide);\n\n\t\t\t\t\t\t$fancySlide.addClass('has-animation');\n\n\t\t\t\t\t\t$fancySlide.addClass('animated ' + animateIn);\n\n\t\t\t\t\t\t$('body').addClass('u-first-slide-init');\n\t\t\t\t\t}\n\n\t\t\t\t\tif (speed) {\n\t\t\t\t\t\t$fancyOverlay.css('transition-duration', speed + 'ms');\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$fancyOverlay.css('transition-duration', '1000ms');\n\t\t\t\t\t}\n\n\t\t\t\t\tif (overlayBG) {\n\t\t\t\t\t\t$fancyOverlay.css('background-color', overlayBG);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (overlayBlurBG) {\n\t\t\t\t\t\t$('body').addClass('g-blur-30');\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\t\tbeforeClose: function(instance, slide) {\n\t\t\t\t\tvar $fancyModal = $(instance.$refs.container),\n\t\t\t\t\t\t$fancySlide = $(instance.current.$slide),\n\n\t\t\t\t\t\tanimateIn = instance.current.opts.$orig[0].dataset.animateIn,\n\t\t\t\t\t\tanimateOut = instance.current.opts.$orig[0].dataset.animateOut,\n\t\t\t\t\t\toverlayBlurBG = instance.current.opts.$orig[0].dataset.overlayBlurBg;\n\n\t\t\t\t\tif (animateOut) {\n\t\t\t\t\t\t$fancySlide.removeClass(animateIn).addClass(animateOut);\n\t\t\t\t\t\t$('body').removeClass('u-first-slide-init')\n\t\t\t\t\t}\n\n\t\t\t\t\tif (overlayBlurBG) {\n\t\t\t\t\t\t$('body').removeClass('g-blur-30')\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}));\n\t\t}\n\t}\n})(jQuery);\n","/**\n * Count quantity wrapper.\n *\n * @author Htmlstream\n * @version 1.0\n *\n */\n;(function ($) {\n 'use strict';\n\n $.HSCore.components.HSCountQty = {\n /**\n *\n *\n * @var Object _baseConfig\n */\n _baseConfig: {},\n\n /**\n *\n *\n * @var jQuery pageCollection\n */\n pageCollection: $(),\n\n /**\n * Initialization of Count quantity wrapper.\n *\n * @param String selector (optional)\n * @param Object config (optional)\n *\n * @return jQuery pageCollection - collection of initialized items.\n */\n\n init: function (selector, config) {\n\n this.collection = selector && $(selector).length ? $(selector) : $();\n if (!$(selector).length) return;\n\n this.config = config && $.isPlainObject(config) ?\n $.extend({}, this._baseConfig, config) : this._baseConfig;\n\n this.config.itemSelector = selector;\n\n this.initCountQty();\n\n return this.pageCollection;\n\n },\n\n initCountQty: function () {\n //Variables\n var $self = this,\n collection = $self.pageCollection;\n\n //Actions\n this.collection.each(function (i, el) {\n //Variables\n var $this = $(el),\n $plus = $this.find('.js-plus'),\n $minus = $this.find('.js-minus'),\n $result = $this.find('.js-result'),\n resultVal = parseInt($result.val());\n\n $plus.on('click', function (e) {\n e.preventDefault();\n\n resultVal += 1;\n\n $result.val(resultVal);\n });\n\n $minus.on('click', function (e) {\n e.preventDefault();\n\n if (resultVal >= 1) {\n resultVal -= 1;\n\n $result.val(resultVal);\n } else {\n return false;\n }\n });\n\n //Actions\n collection = collection.add($this);\n });\n }\n\n };\n\n})(jQuery);","/**\n * Text Slideshow wrapper.\n *\n * @author Htmlstream\n * @version 1.0\n * @requires charming.js, anime.js, textfx.js\n *\n */\n;\n(function($) {\n 'use strict';\n\n $.HSCore.components.HSTextSlideshow = {\n\n /**\n * Base configuration.\n *\n * @var Object _baseConfig\n */\n _baseConfig: {\n autoplay: false,\n autoplayDelay: 3000,\n slideSelector: '.u-text-slideshow__slide',\n activeSlideClass: 'u-text-slideshow__slide--current',\n slideTargetSelector: '.u-text-slideshow__slide-target'\n },\n\n /**\n * Collection of all instances of the page.\n *\n * @var jQuery _pageCollection\n */\n _pageCollection: $(),\n\n\n /**\n * Initialization of Slideshow.\n *\n * @param jQuery collection (optional)\n * @param Object config (optional)\n *\n * @return jQuery pageCollection - collection of initialized items.\n */\n init: function(collection, config) {\n\n if(!collection || !collection.length) return this._pageCollection;\n\n var self = this;\n\n config = config && $.isPlainObject(config) ? $.extend(true, {}, this._baseConfig, config) : this._baseConfig;\n\n\n collection.each(function(i, el){\n\n var $this = $(this);\n\n if(!$this.data('HSTextSlideshow')) {\n\n $this.data('HSTextSlideshow', new HSTextSlideshow($this, $.extend(true, {}, config, {\n effect: $this.data('effect') ? $this.data('effect') : 'fx1'\n })));\n self._pageCollection = self._pageCollection.add($this);\n\n }\n\n\n });\n\n return this._pageCollection;\n }\n\n }\n\n /**\n * Constructor function of Slideshow.\n *\n * @param jQuery element\n * @param Object config\n *\n * @return undefined\n */\n function HSTextSlideshow(element, config) {\n this.config = config && $.isPlainObject(config) ? config : {};\n\n this.element = element;\n\n this.config = $.extend(true, {}, this.config, this.element.data() );\n\n var jCurrentSlide = this.element.find('.' + this.config.activeSlideClass);\n\n this.currentIndex = this.config.currentIndex = jCurrentSlide.length ? jCurrentSlide.index() : 0;\n\n this.slides = [];\n\n if( this.element.attr('id') ) this._initNavigation();\n\n this._initSlides();\n\n if( this.config.autoplay ) {\n this._autoplayStart();\n }\n }\n\n /**\n *\n *\n * @param\n *\n * @return\n */\n HSTextSlideshow.prototype._initSlides = function() {\n\n var self = this,\n jSlides = this.element.find(this.config.slideSelector);\n\n if(jSlides.length) {\n jSlides.each(function(i, el){\n\n self.addSlide( $(el), self.config );\n\n });\n }\n\n }\n\n /**\n *\n *\n * @param\n *\n * @return\n */\n HSTextSlideshow.prototype._updateCarouselBounds = function() {\n\n var self = this;\n\n this.element.stop().animate({\n 'width': self.slides[self.currentIndex].getElement().outerWidth() + 1\n }, {\n duration: 300,\n easing: 'linear'\n });\n\n }\n\n /**\n *\n *\n * @param\n *\n * @return\n */\n HSTextSlideshow.prototype._autoplayStart = function() {\n\n var self = this;\n\n this.autoplayTimeoutId = setTimeout( function autoplay() {\n\n self.next();\n\n self.autoplayTimeoutId = setTimeout( autoplay, self.config.autoplayDelay );\n\n }, this.config.autoplayDelay );\n\n }\n\n /**\n *\n *\n * @param\n *\n * @return\n */\n HSTextSlideshow.prototype._autoplayStop = function() {\n\n clearTimeout( this.autoplayTimeoutId );\n\n }\n\n /**\n *\n *\n * @param\n *\n * @return\n */\n HSTextSlideshow.prototype._initNavigation = function() {\n\n var self = this,\n navElements = $( '[data-target=\"#'+this.element.attr('id')+'\"]' );\n\n navElements.on('click', function(e){\n\n var $this = $(this);\n\n if( $this.data('action').toUpperCase() == 'PREV' ) {\n if( self.config.autoplay ) {\n self._autoplayStop();\n self._autoplayStart();\n }\n self.prev();\n }\n else if( $this.data('action').toUpperCase() == 'NEXT' ) {\n if( self.config.autoplay ) {\n self._autoplayStop();\n self._autoplayStart();\n }\n self.next();\n }\n\n e.preventDefault();\n });\n\n navElements.each(function(i, el){\n\n var $this = $(el);\n\n if( $this.data('action') ) {\n self['_initAction' + $this.data('action').toUpperCase( $this )];\n }\n\n });\n\n }\n\n /**\n *\n *\n * @param\n *\n * @return\n */\n HSTextSlideshow.prototype.addSlide = function(element, config) {\n\n if(!element || !element.length) return;\n this.slides.push( new HSTextSlide( element, config ) );\n\n }\n\n /**\n *\n *\n * @param\n *\n * @return\n */\n HSTextSlideshow.prototype.next = function() {\n\n if(this.slides.length <= 1) return;\n\n this.slides[this.currentIndex].hide();\n\n this.currentIndex++;\n\n if(this.currentIndex > this.slides.length - 1) this.currentIndex = 0;\n\n this._updateCarouselBounds();\n this.slides[this.currentIndex].show();\n }\n\n /**\n *\n *\n * @param\n *\n * @return\n */\n HSTextSlideshow.prototype.prev = function() {\n\n if(this.slides.length <= 1) return;\n\n this.slides[this.currentIndex].hide();\n\n this.currentIndex--;\n\n if(this.currentIndex < 0) this.currentIndex = this.slides.length - 1;\n\n this._updateCarouselBounds();\n this.slides[this.currentIndex].show();\n }\n\n\n /**\n * Constructor function of Slide.\n *\n * @param jQuery element\n *\n * @return undefined\n */\n function HSTextSlide(element, config) {\n this.element = element;\n this.config = config;\n\n this.target = element.find( config.slideTargetSelector ).get(0);\n\n if(!this.target) return;\n\n this.textfx = new TextFx( this.target );\n\n if( this.config.currentIndex != this.element.index() ) {\n $(this.target).find('[class*=\"letter\"]').css( this.textfx.effects[config.effect].out );\n }\n }\n\n /**\n *\n *\n * @param\n *\n * @return\n */\n HSTextSlide.prototype.show = function() {\n if(!this.target) return;\n\n this.element.addClass(this.config.activeSlideClass);\n\n this.textfx.show(this.config.effect);\n }\n\n /**\n *\n *\n * @param\n *\n * @return\n */\n HSTextSlide.prototype.hide = function() {\n if(!this.target) return;\n\n this.element.removeClass(this.config.activeSlideClass);\n\n this.textfx.hide(this.config.effect);\n }\n\n /**\n *\n *\n * @param\n *\n * @return\n */\n HSTextSlide.prototype.getElement = function() {\n\n return this.element;\n\n }\n\n})(jQuery);\n","/**\n * Go To wrapper.\n *\n * @author Htmlstream\n * @version 1.0\n *\n */\n;(function ($) {\n 'use strict';\n $.HSCore.components.HSGoTo = {\n /**\n *\n *\n * @var Object _baseConfig\n */\n _baseConfig: {},\n\n /**\n *\n *\n * @var jQuery pageCollection\n */\n pageCollection: $(),\n\n /**\n * Initialization of Go To wrapper.\n *\n * @param String selector (optional)\n * @param Object config (optional)\n *\n * @return jQuery pageCollection - collection of initialized items.\n */\n\n init: function (selector, config) {\n this.collection = selector && $(selector).length ? $(selector) : $();\n if (!$(selector).length) return;\n\n this.config = config && $.isPlainObject(config) ?\n $.extend({}, this._baseConfig, config) : this._baseConfig;\n\n this.config.itemSelector = selector;\n\n this.initGoTo();\n\n return this.pageCollection;\n },\n\n initGoTo: function () {\n //Variables\n var $self = this,\n collection = $self.pageCollection;\n\n //Actions\n this.collection.each(function (i, el) {\n //Variables\n var $this = $(el),\n $target = $this.data('target'),\n type = $this.data('type'),\n showEffect = $this.data('show-effect'),\n hideEffect = $this.data('hide-effect'),\n position = JSON.parse(el.getAttribute('data-position')),\n compensation = $($this.data('compensation')).outerHeight(),\n offsetTop = $this.data('offset-top'),\n targetOffsetTop = function () {\n if (compensation) {\n return $target ? $($target).offset().top - compensation : 0;\n } else {\n return $target ? $($target).offset().top : 0;\n }\n };\n\n if (type == 'static') {\n $this.css({\n 'display': 'inline-block'\n });\n } else {\n $this.addClass('animated').css({\n 'display': 'inline-block',\n 'position': type,\n 'opacity': 0\n });\n }\n\n if (type == 'fixed' || type == 'absolute') {\n $this.css(position);\n }\n\n $this.on('click', function (e) {\n e.preventDefault();\n\n $('html, body').stop().animate({\n 'scrollTop': targetOffsetTop()\n }, 800);\n });\n\n if (!$this.data('offset-top') && !$this.hasClass('js-animation-was-fired') && type != 'static') {\n if ($this.offset().top <= $(window).height()) {\n $this.show();\n\n setTimeout(function () {\n $this.addClass('js-animation-was-fired ' + showEffect).css({\n 'opacity': ''\n });\n });\n }\n }\n\n if (type != 'static') {\n $(window).on('scroll', function () {\n if ($this.data('offset-top')) {\n if ($(window).scrollTop() >= offsetTop && !$this.hasClass('js-animation-was-fired')) {\n $this.show();\n\n setTimeout(function () {\n $this.addClass('js-animation-was-fired ' + showEffect).css({\n 'opacity': ''\n });\n });\n } else if ($(window).scrollTop() <= offsetTop && $this.hasClass('js-animation-was-fired')) {\n $this.removeClass('js-animation-was-fired ' + showEffect);\n\n setTimeout(function () {\n $this.addClass(hideEffect).css({\n 'opacity': 0\n });\n }, 100);\n\n setTimeout(function () {\n $this.removeClass(hideEffect).hide();\n }, 400);\n }\n } else {\n var thisOffsetTop = $this.offset().top;\n\n if (!$this.hasClass('js-animation-was-fired')) {\n if ($(window).scrollTop() >= thisOffsetTop - $(window).height()) {\n $this.show();\n\n setTimeout(function () {\n $this.addClass('js-animation-was-fired ' + showEffect).css({\n 'opacity': ''\n });\n });\n }\n }\n }\n });\n\n $(window).trigger('scroll');\n }\n\n //Actions\n collection = collection.add($this);\n });\n }\n };\n})(jQuery);\n","/**!\n\n @license\n handlebars v4.1.2\n\nCopyright (C) 2011-2017 by Yehuda Katz\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n*/\n!function(a,b){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=b():\"function\"==typeof define&&define.amd?define([],b):\"object\"==typeof exports?exports.Handlebars=b():a.Handlebars=b()}(this,function(){return function(a){function b(d){if(c[d])return c[d].exports;var e=c[d]={exports:{},id:d,loaded:!1};return a[d].call(e.exports,e,e.exports,b),e.loaded=!0,e.exports}var c={};return b.m=a,b.c=c,b.p=\"\",b(0)}([function(a,b,c){\"use strict\";function d(){var a=r();return a.compile=function(b,c){return k.compile(b,c,a)},a.precompile=function(b,c){return k.precompile(b,c,a)},a.AST=i[\"default\"],a.Compiler=k.Compiler,a.JavaScriptCompiler=m[\"default\"],a.Parser=j.parser,a.parse=j.parse,a}var e=c(1)[\"default\"];b.__esModule=!0;var f=c(2),g=e(f),h=c(35),i=e(h),j=c(36),k=c(41),l=c(42),m=e(l),n=c(39),o=e(n),p=c(34),q=e(p),r=g[\"default\"].create,s=d();s.create=d,q[\"default\"](s),s.Visitor=o[\"default\"],s[\"default\"]=s,b[\"default\"]=s,a.exports=b[\"default\"]},function(a,b){\"use strict\";b[\"default\"]=function(a){return a&&a.__esModule?a:{\"default\":a}},b.__esModule=!0},function(a,b,c){\"use strict\";function d(){var a=new h.HandlebarsEnvironment;return n.extend(a,h),a.SafeString=j[\"default\"],a.Exception=l[\"default\"],a.Utils=n,a.escapeExpression=n.escapeExpression,a.VM=p,a.template=function(b){return p.template(b,a)},a}var e=c(3)[\"default\"],f=c(1)[\"default\"];b.__esModule=!0;var g=c(4),h=e(g),i=c(21),j=f(i),k=c(6),l=f(k),m=c(5),n=e(m),o=c(22),p=e(o),q=c(34),r=f(q),s=d();s.create=d,r[\"default\"](s),s[\"default\"]=s,b[\"default\"]=s,a.exports=b[\"default\"]},function(a,b){\"use strict\";b[\"default\"]=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b[\"default\"]=a,b},b.__esModule=!0},function(a,b,c){\"use strict\";function d(a,b,c){this.helpers=a||{},this.partials=b||{},this.decorators=c||{},i.registerDefaultHelpers(this),j.registerDefaultDecorators(this)}var e=c(1)[\"default\"];b.__esModule=!0,b.HandlebarsEnvironment=d;var f=c(5),g=c(6),h=e(g),i=c(10),j=c(18),k=c(20),l=e(k),m=\"4.1.2\";b.VERSION=m;var n=7;b.COMPILER_REVISION=n;var o={1:\"<= 1.0.rc.2\",2:\"== 1.0.0-rc.3\",3:\"== 1.0.0-rc.4\",4:\"== 1.x.x\",5:\"== 2.0.0-alpha.x\",6:\">= 2.0.0-beta.1\",7:\">= 4.0.0\"};b.REVISION_CHANGES=o;var p=\"[object Object]\";d.prototype={constructor:d,logger:l[\"default\"],log:l[\"default\"].log,registerHelper:function(a,b){if(f.toString.call(a)===p){if(b)throw new h[\"default\"](\"Arg not supported with multiple helpers\");f.extend(this.helpers,a)}else this.helpers[a]=b},unregisterHelper:function(a){delete this.helpers[a]},registerPartial:function(a,b){if(f.toString.call(a)===p)f.extend(this.partials,a);else{if(\"undefined\"==typeof b)throw new h[\"default\"]('Attempting to register a partial called \"'+a+'\" as undefined');this.partials[a]=b}},unregisterPartial:function(a){delete this.partials[a]},registerDecorator:function(a,b){if(f.toString.call(a)===p){if(b)throw new h[\"default\"](\"Arg not supported with multiple decorators\");f.extend(this.decorators,a)}else this.decorators[a]=b},unregisterDecorator:function(a){delete this.decorators[a]}};var q=l[\"default\"].log;b.log=q,b.createFrame=f.createFrame,b.logger=l[\"default\"]},function(a,b){\"use strict\";function c(a){return k[a]}function d(a){for(var b=1;b\":\">\",'\"':\""\",\"'\":\"'\",\"`\":\"`\",\"=\":\"=\"},l=/[&<>\"'`=]/g,m=/[&<>\"'`=]/,n=Object.prototype.toString;b.toString=n;var o=function(a){return\"function\"==typeof a};o(/x/)&&(b.isFunction=o=function(a){return\"function\"==typeof a&&\"[object Function]\"===n.call(a)}),b.isFunction=o;var p=Array.isArray||function(a){return!(!a||\"object\"!=typeof a)&&\"[object Array]\"===n.call(a)};b.isArray=p},function(a,b,c){\"use strict\";function d(a,b){var c=b&&b.loc,g=void 0,h=void 0;c&&(g=c.start.line,h=c.start.column,a+=\" - \"+g+\":\"+h);for(var i=Error.prototype.constructor.call(this,a),j=0;j0?(c.ids&&(c.ids=[c.name]),a.helpers.each(b,c)):e(this);if(c.data&&c.ids){var g=d.createFrame(c.data);g.contextPath=d.appendContextPath(c.data.contextPath,c.name),c={data:g}}return f(b,c)})},a.exports=b[\"default\"]},function(a,b,c){\"use strict\";var d=c(1)[\"default\"];b.__esModule=!0;var e=c(5),f=c(6),g=d(f);b[\"default\"]=function(a){a.registerHelper(\"each\",function(a,b){function c(b,c,f){j&&(j.key=b,j.index=c,j.first=0===c,j.last=!!f,k&&(j.contextPath=k+b)),i+=d(a[b],{data:j,blockParams:e.blockParams([a[b],b],[k+b,null])})}if(!b)throw new g[\"default\"](\"Must pass iterator to #each\");var d=b.fn,f=b.inverse,h=0,i=\"\",j=void 0,k=void 0;if(b.data&&b.ids&&(k=e.appendContextPath(b.data.contextPath,b.ids[0])+\".\"),e.isFunction(a)&&(a=a.call(this)),b.data&&(j=e.createFrame(b.data)),a&&\"object\"==typeof a)if(e.isArray(a))for(var l=a.length;h=0?b:parseInt(a,10)}return a},log:function(a){if(a=e.lookupLevel(a),\"undefined\"!=typeof console&&e.lookupLevel(e.level)<=a){var b=e.methodMap[a];console[b]||(b=\"log\");for(var c=arguments.length,d=Array(c>1?c-1:0),f=1;f2&&v.push(\"'\"+this.terminals_[s]+\"'\");x=this.lexer.showPosition?\"Parse error on line \"+(i+1)+\":\\n\"+this.lexer.showPosition()+\"\\nExpecting \"+v.join(\", \")+\", got '\"+(this.terminals_[n]||n)+\"'\":\"Parse error on line \"+(i+1)+\": Unexpected \"+(1==n?\"end of input\":\"'\"+(this.terminals_[n]||n)+\"'\"),this.parseError(x,{text:this.lexer.match,token:this.terminals_[n]||n,line:this.lexer.yylineno,loc:l,expected:v})}}if(q[0]instanceof Array&&q.length>1)throw new Error(\"Parse Error: multiple actions possible at state: \"+p+\", token: \"+n);switch(q[0]){case 1:d.push(n),e.push(this.lexer.yytext),f.push(this.lexer.yylloc),d.push(q[1]),n=null,o?(n=o,o=null):(j=this.lexer.yyleng,h=this.lexer.yytext,i=this.lexer.yylineno,l=this.lexer.yylloc,k>0&&k--);break;case 2:if(t=this.productions_[q[1]][1],w.$=e[e.length-t],w._$={first_line:f[f.length-(t||1)].first_line,last_line:f[f.length-1].last_line,first_column:f[f.length-(t||1)].first_column,last_column:f[f.length-1].last_column},m&&(w._$.range=[f[f.length-(t||1)].range[0],f[f.length-1].range[1]]),r=this.performAction.call(w,h,j,i,this.yy,q[1],e,f),\"undefined\"!=typeof r)return r;t&&(d=d.slice(0,-1*t*2),e=e.slice(0,-1*t),f=f.slice(0,-1*t)),d.push(this.productions_[q[1]][0]),e.push(w.$),f.push(w._$),u=g[d[d.length-2]][d[d.length-1]],d.push(u);break;case 3:return!0}}return!0}},c=function(){var a={EOF:1,parseError:function(a,b){if(!this.yy.parser)throw new Error(a);this.yy.parser.parseError(a,b)},setInput:function(a){return this._input=a,this._more=this._less=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match=\"\",this.conditionStack=[\"INITIAL\"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var a=this._input[0];this.yytext+=a,this.yyleng++,this.offset++,this.match+=a,this.matched+=a;var b=a.match(/(?:\\r\\n?|\\n).*/g);return b?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),a},unput:function(a){var b=a.length,c=a.split(/(?:\\r\\n?|\\n)/g);this._input=a+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-b-1),this.offset-=b;var d=this.match.split(/(?:\\r\\n?|\\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),c.length-1&&(this.yylineno-=c.length-1);var e=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:c?(c.length===d.length?this.yylloc.first_column:0)+d[d.length-c.length].length-c[0].length:this.yylloc.first_column-b},this.options.ranges&&(this.yylloc.range=[e[0],e[0]+this.yyleng-b]),this},more:function(){return this._more=!0,this},less:function(a){this.unput(this.match.slice(a))},pastInput:function(){var a=this.matched.substr(0,this.matched.length-this.match.length);return(a.length>20?\"...\":\"\")+a.substr(-20).replace(/\\n/g,\"\")},upcomingInput:function(){var a=this.match;return a.length<20&&(a+=this._input.substr(0,20-a.length)),(a.substr(0,20)+(a.length>20?\"...\":\"\")).replace(/\\n/g,\"\")},showPosition:function(){var a=this.pastInput(),b=new Array(a.length+1).join(\"-\");return a+this.upcomingInput()+\"\\n\"+b+\"^\"},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var a,b,c,d,e;this._more||(this.yytext=\"\",this.match=\"\");for(var f=this._currentRules(),g=0;gb[0].length)||(b=c,d=g,this.options.flex));g++);return b?(e=b[0].match(/(?:\\r\\n?|\\n).*/g),e&&(this.yylineno+=e.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:e?e[e.length-1].length-e[e.length-1].match(/\\r?\\n?/)[0].length:this.yylloc.last_column+b[0].length},this.yytext+=b[0],this.match+=b[0],this.matches=b,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._input=this._input.slice(b[0].length),this.matched+=b[0],a=this.performAction.call(this,this.yy,this,f[d],this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),a?a:void 0):\"\"===this._input?this.EOF:this.parseError(\"Lexical error on line \"+(this.yylineno+1)+\". Unrecognized text.\\n\"+this.showPosition(),{text:\"\",token:null,line:this.yylineno})},lex:function(){var a=this.next();return\"undefined\"!=typeof a?a:this.lex()},begin:function(a){this.conditionStack.push(a)},popState:function(){return this.conditionStack.pop()},_currentRules:function(){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules},topState:function(){return this.conditionStack[this.conditionStack.length-2]},pushState:function(a){this.begin(a)}};return a.options={},a.performAction=function(a,b,c,d){function e(a,c){return b.yytext=b.yytext.substring(a,b.yyleng-c+a)}switch(c){case 0:if(\"\\\\\\\\\"===b.yytext.slice(-2)?(e(0,1),this.begin(\"mu\")):\"\\\\\"===b.yytext.slice(-1)?(e(0,1),this.begin(\"emu\")):this.begin(\"mu\"),b.yytext)return 15;break;case 1:return 15;case 2:return this.popState(),15;case 3:return this.begin(\"raw\"),15;case 4:return this.popState(),\"raw\"===this.conditionStack[this.conditionStack.length-1]?15:(e(5,9),\"END_RAW_BLOCK\");case 5:return 15;case 6:return this.popState(),14;case 7:return 65;case 8:return 68;case 9:return 19;case 10:return this.popState(),this.begin(\"raw\"),23;case 11:return 55;case 12:return 60;case 13:return 29;case 14:return 47;case 15:return this.popState(),44;case 16:return this.popState(),44;case 17:return 34;case 18:return 39;case 19:return 51;case 20:return 48;case 21:this.unput(b.yytext),this.popState(),this.begin(\"com\");break;case 22:return this.popState(),14;case 23:return 48;case 24:return 73;case 25:return 72;case 26:return 72;case 27:return 87;case 28:break;case 29:return this.popState(),54;case 30:return this.popState(),33;case 31:return b.yytext=e(1,2).replace(/\\\\\"/g,'\"'),80;case 32:return b.yytext=e(1,2).replace(/\\\\'/g,\"'\"),80;case 33:return 85;case 34:return 82;case 35:return 82;case 36:return 83;case 37:return 84;case 38:return 81;case 39:return 75;case 40:return 77;case 41:return 72;case 42:return b.yytext=b.yytext.replace(/\\\\([\\\\\\]])/g,\"$1\"),72;case 43:return\"INVALID\";case 44:return 5}},a.rules=[/^(?:[^\\x00]*?(?=(\\{\\{)))/,/^(?:[^\\x00]+)/,/^(?:[^\\x00]{2,}?(?=(\\{\\{|\\\\\\{\\{|\\\\\\\\\\{\\{|$)))/,/^(?:\\{\\{\\{\\{(?=[^\\/]))/,/^(?:\\{\\{\\{\\{\\/[^\\s!\"#%-,\\.\\/;->@\\[-\\^`\\{-~]+(?=[=}\\s\\/.])\\}\\}\\}\\})/,/^(?:[^\\x00]*?(?=(\\{\\{\\{\\{)))/,/^(?:[\\s\\S]*?--(~)?\\}\\})/,/^(?:\\()/,/^(?:\\))/,/^(?:\\{\\{\\{\\{)/,/^(?:\\}\\}\\}\\})/,/^(?:\\{\\{(~)?>)/,/^(?:\\{\\{(~)?#>)/,/^(?:\\{\\{(~)?#\\*?)/,/^(?:\\{\\{(~)?\\/)/,/^(?:\\{\\{(~)?\\^\\s*(~)?\\}\\})/,/^(?:\\{\\{(~)?\\s*else\\s*(~)?\\}\\})/,/^(?:\\{\\{(~)?\\^)/,/^(?:\\{\\{(~)?\\s*else\\b)/,/^(?:\\{\\{(~)?\\{)/,/^(?:\\{\\{(~)?&)/,/^(?:\\{\\{(~)?!--)/,/^(?:\\{\\{(~)?![\\s\\S]*?\\}\\})/,/^(?:\\{\\{(~)?\\*?)/,/^(?:=)/,/^(?:\\.\\.)/,/^(?:\\.(?=([=~}\\s\\/.)|])))/,/^(?:[\\/.])/,/^(?:\\s+)/,/^(?:\\}(~)?\\}\\})/,/^(?:(~)?\\}\\})/,/^(?:\"(\\\\[\"]|[^\"])*\")/,/^(?:'(\\\\[']|[^'])*')/,/^(?:@)/,/^(?:true(?=([~}\\s)])))/,/^(?:false(?=([~}\\s)])))/,/^(?:undefined(?=([~}\\s)])))/,/^(?:null(?=([~}\\s)])))/,/^(?:-?[0-9]+(?:\\.[0-9]+)?(?=([~}\\s)])))/,/^(?:as\\s+\\|)/,/^(?:\\|)/,/^(?:([^\\s!\"#%-,\\.\\/;->@\\[-\\^`\\{-~]+(?=([=~}\\s\\/.)|]))))/,/^(?:\\[(\\\\\\]|[^\\]])*\\])/,/^(?:.)/,/^(?:$)/],a.conditions={mu:{rules:[7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44],inclusive:!1},emu:{rules:[2],inclusive:!1},com:{rules:[6],inclusive:!1},raw:{rules:[3,4,5],inclusive:!1},INITIAL:{rules:[0,1,44],inclusive:!0}},a}();return b.lexer=c,a.prototype=b,b.Parser=a,new a}();b[\"default\"]=c,a.exports=b[\"default\"]},function(a,b,c){\"use strict\";function d(){var a=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];this.options=a}function e(a,b,c){void 0===b&&(b=a.length);var d=a[b-1],e=a[b-2];return d?\"ContentStatement\"===d.type?(e||!c?/\\r?\\n\\s*?$/:/(^|\\r?\\n)\\s*?$/).test(d.original):void 0:c}function f(a,b,c){void 0===b&&(b=-1);var d=a[b+1],e=a[b+2];return d?\"ContentStatement\"===d.type?(e||!c?/^\\s*?\\r?\\n/:/^\\s*?(\\r?\\n|$)/).test(d.original):void 0:c}function g(a,b,c){var d=a[null==b?0:b+1];if(d&&\"ContentStatement\"===d.type&&(c||!d.rightStripped)){var e=d.value;d.value=d.value.replace(c?/^\\s+/:/^[ \\t]*\\r?\\n?/,\"\"),d.rightStripped=d.value!==e}}function h(a,b,c){var d=a[null==b?a.length-1:b-1];if(d&&\"ContentStatement\"===d.type&&(c||!d.leftStripped)){var e=d.value;return d.value=d.value.replace(c?/\\s+$/:/[ \\t]+$/,\"\"),d.leftStripped=d.value!==e,d.leftStripped}}var i=c(1)[\"default\"];b.__esModule=!0;var j=c(39),k=i(j);d.prototype=new k[\"default\"],d.prototype.Program=function(a){var b=!this.options.ignoreStandalone,c=!this.isRootSeen;this.isRootSeen=!0;for(var d=a.body,i=0,j=d.length;i0)throw new q[\"default\"](\"Invalid path: \"+d,{loc:c});\"..\"===i&&f++}}return{type:\"PathExpression\",data:a,depth:f,parts:e,original:d,loc:c}}function j(a,b,c,d,e,f){var g=d.charAt(3)||d.charAt(2),h=\"{\"!==g&&\"&\"!==g,i=/\\*/.test(d);return{type:i?\"Decorator\":\"MustacheStatement\",path:a,params:b,hash:c,escaped:h,strip:e,loc:this.locInfo(f)}}function k(a,b,c,e){d(a,c),e=this.locInfo(e);var f={type:\"Program\",body:b,strip:{},loc:e};return{type:\"BlockStatement\",path:a.path,params:a.params,hash:a.hash,program:f,openStrip:{},inverseStrip:{},closeStrip:{},loc:e}}function l(a,b,c,e,f,g){e&&e.path&&d(a,e);var h=/\\*/.test(a.open);b.blockParams=a.blockParams;var i=void 0,j=void 0;if(c){if(h)throw new q[\"default\"](\"Unexpected inverse block on decorator\",c);c.chain&&(c.program.body[0].closeStrip=e.strip),j=c.strip,i=c.program}return f&&(f=i,i=b,b=f),{type:h?\"DecoratorBlock\":\"BlockStatement\",path:a.path,params:a.params,hash:a.hash,program:b,inverse:i,openStrip:a.strip,inverseStrip:j,closeStrip:e&&e.strip,loc:this.locInfo(g)}}function m(a,b){if(!b&&a.length){var c=a[0].loc,d=a[a.length-1].loc;c&&d&&(b={source:c.source,start:{line:c.start.line,column:c.start.column},end:{line:d.end.line,column:d.end.column}})}return{type:\"Program\",body:a,strip:{},loc:b}}function n(a,b,c,e){return d(a,c),{type:\"PartialBlockStatement\",name:a.path,params:a.params,hash:a.hash,program:b,openStrip:a.strip,closeStrip:c&&c.strip,loc:this.locInfo(e)}}var o=c(1)[\"default\"];b.__esModule=!0,b.SourceLocation=e,b.id=f,b.stripFlags=g,b.stripComment=h,b.preparePath=i,b.prepareMustache=j,b.prepareRawBlock=k,b.prepareBlock=l,b.prepareProgram=m,b.preparePartialBlock=n;var p=c(6),q=o(p)},function(a,b,c){\"use strict\";function d(){}function e(a,b,c){if(null==a||\"string\"!=typeof a&&\"Program\"!==a.type)throw new k[\"default\"](\"You must pass a string or Handlebars AST to Handlebars.precompile. You passed \"+a);b=b||{},\"data\"in b||(b.data=!0),b.compat&&(b.useDepths=!0);var d=c.parse(a,b),e=(new c.Compiler).compile(d,b);return(new c.JavaScriptCompiler).compile(e,b)}function f(a,b,c){function d(){var d=c.parse(a,b),e=(new c.Compiler).compile(d,b),f=(new c.JavaScriptCompiler).compile(e,b,void 0,!0);return c.template(f)}function e(a,b){return f||(f=d()),f.call(this,a,b)}if(void 0===b&&(b={}),null==a||\"string\"!=typeof a&&\"Program\"!==a.type)throw new k[\"default\"](\"You must pass a string or Handlebars AST to Handlebars.compile. You passed \"+a);b=l.extend({},b),\"data\"in b||(b.data=!0),b.compat&&(b.useDepths=!0);var f=void 0;return e._setup=function(a){return f||(f=d()),f._setup(a)},e._child=function(a,b,c,e){return f||(f=d()),f._child(a,b,c,e)},e}function g(a,b){if(a===b)return!0;if(l.isArray(a)&&l.isArray(b)&&a.length===b.length){for(var c=0;c1)throw new k[\"default\"](\"Unsupported number of partial arguments: \"+c.length,a);c.length||(this.options.explicitPartialContext?this.opcode(\"pushLiteral\",\"undefined\"):c.push({type:\"PathExpression\",parts:[],depth:0}));var d=a.name.original,e=\"SubExpression\"===a.name.type;e&&this.accept(a.name),this.setupFullMustacheParams(a,b,void 0,!0);var f=a.indent||\"\";this.options.preventIndent&&f&&(this.opcode(\"appendContent\",f),f=\"\"),this.opcode(\"invokePartial\",e,d,f),this.opcode(\"append\")},PartialBlockStatement:function(a){this.PartialStatement(a)},MustacheStatement:function(a){this.SubExpression(a),a.escaped&&!this.options.noEscape?this.opcode(\"appendEscaped\"):this.opcode(\"append\")},Decorator:function(a){this.DecoratorBlock(a)},ContentStatement:function(a){a.value&&this.opcode(\"appendContent\",a.value)},CommentStatement:function(){},SubExpression:function(a){h(a);var b=this.classifySexpr(a);\"simple\"===b?this.simpleSexpr(a):\"helper\"===b?this.helperSexpr(a):this.ambiguousSexpr(a)},ambiguousSexpr:function(a,b,c){var d=a.path,e=d.parts[0],f=null!=b||null!=c;this.opcode(\"getContext\",d.depth),this.opcode(\"pushProgram\",b),this.opcode(\"pushProgram\",c),d.strict=!0,this.accept(d),this.opcode(\"invokeAmbiguous\",e,f)},simpleSexpr:function(a){var b=a.path;b.strict=!0,this.accept(b),this.opcode(\"resolvePossibleLambda\")},helperSexpr:function(a,b,c){var d=this.setupFullMustacheParams(a,b,c),e=a.path,f=e.parts[0];if(this.options.knownHelpers[f])this.opcode(\"invokeKnownHelper\",d.length,f);else{if(this.options.knownHelpersOnly)throw new k[\"default\"](\"You specified knownHelpersOnly, but used the unknown helper \"+f,a);e.strict=!0,e.falsy=!0,this.accept(e),this.opcode(\"invokeHelper\",d.length,e.original,n[\"default\"].helpers.simpleId(e))}},PathExpression:function(a){this.addDepth(a.depth),this.opcode(\"getContext\",a.depth);var b=a.parts[0],c=n[\"default\"].helpers.scopedId(a),d=!a.depth&&!c&&this.blockParamIndex(b);d?this.opcode(\"lookupBlockParam\",d,a.parts):b?a.data?(this.options.data=!0,this.opcode(\"lookupData\",a.depth,a.parts,a.strict)):this.opcode(\"lookupOnContext\",a.parts,a.falsy,a.strict,c):this.opcode(\"pushContext\")},StringLiteral:function(a){this.opcode(\"pushString\",a.value)},NumberLiteral:function(a){this.opcode(\"pushLiteral\",a.value)},BooleanLiteral:function(a){this.opcode(\"pushLiteral\",a.value)},UndefinedLiteral:function(){this.opcode(\"pushLiteral\",\"undefined\")},NullLiteral:function(){this.opcode(\"pushLiteral\",\"null\")},Hash:function(a){var b=a.pairs,c=0,d=b.length;for(this.opcode(\"pushHash\");c=0)return[b,e]}}}},function(a,b,c){\"use strict\";function d(a){this.value=a}function e(){}function f(a,b,c,d){var e=b.popStack(),f=0,g=c.length;for(a&&g--;f0&&(b+=\", \"+c.join(\", \"));var d=0;for(var e in this.aliases){var f=this.aliases[e];this.aliases.hasOwnProperty(e)&&f.children&&f.referenceCount>1&&(b+=\", alias\"+ ++d+\"=\"+e,f.children[0]=\"alias\"+d)}var g=[\"container\",\"depth0\",\"helpers\",\"partials\",\"data\"];(this.useBlockParams||this.useDepths)&&g.push(\"blockParams\"),this.useDepths&&g.push(\"depths\");var h=this.mergeSource(b);return a?(g.push(h),Function.apply(this,g)):this.source.wrap([\"function(\",g.join(\",\"),\") {\\n \",h,\"}\"])},mergeSource:function(a){var b=this.environment.isSimple,c=!this.forceBuffer,d=void 0,e=void 0,f=void 0,g=void 0;return this.source.each(function(a){a.appendToBuffer?(f?a.prepend(\" + \"):f=a,g=a):(f&&(e?f.prepend(\"buffer += \"):d=!0,g.add(\";\"),f=g=void 0),e=!0,b||(c=!1))}),c?f?(f.prepend(\"return \"),g.add(\";\")):e||this.source.push('return \"\";'):(a+=\", buffer = \"+(d?\"\":this.initializeBuffer()),f?(f.prepend(\"return buffer + \"),g.add(\";\")):this.source.push(\"return buffer;\")),a&&this.source.prepend(\"var \"+a.substring(2)+(d?\"\":\";\\n\")),this.source.merge()},blockValue:function(a){var b=this.aliasable(\"helpers.blockHelperMissing\"),c=[this.contextName(0)];this.setupHelperArgs(a,0,c);var d=this.popStack();c.splice(1,0,d),this.push(this.source.functionCall(b,\"call\",c))},ambiguousBlockValue:function(){var a=this.aliasable(\"helpers.blockHelperMissing\"),b=[this.contextName(0)];this.setupHelperArgs(\"\",0,b,!0),this.flushInline();var c=this.topStack();b.splice(1,0,c),this.pushSource([\"if (!\",this.lastHelper,\") { \",c,\" = \",this.source.functionCall(a,\"call\",b),\"}\"])},appendContent:function(a){this.pendingContent?a=this.pendingContent+a:this.pendingLocation=this.source.currentLocation,this.pendingContent=a},append:function(){if(this.isInline())this.replaceStack(function(a){return[\" != null ? \",a,' : \"\"']}),this.pushSource(this.appendToBuffer(this.popStack()));else{var a=this.popStack();this.pushSource([\"if (\",a,\" != null) { \",this.appendToBuffer(a,void 0,!0),\" }\"]),this.environment.isSimple&&this.pushSource([\"else { \",this.appendToBuffer(\"''\",void 0,!0),\" }\"])}},appendEscaped:function(){this.pushSource(this.appendToBuffer([this.aliasable(\"container.escapeExpression\"),\"(\",this.popStack(),\")\"]))},getContext:function(a){this.lastContext=a},pushContext:function(){this.pushStackLiteral(this.contextName(this.lastContext))},lookupOnContext:function(a,b,c,d){var e=0;d||!this.options.compat||this.lastContext?this.pushContext():this.push(this.depthedLookup(a[e++])),this.resolvePath(\"context\",a,e,b,c)},lookupBlockParam:function(a,b){this.useBlockParams=!0,this.push([\"blockParams[\",a[0],\"][\",a[1],\"]\"]),this.resolvePath(\"context\",b,1)},lookupData:function(a,b,c){a?this.pushStackLiteral(\"container.data(data, \"+a+\")\"):this.pushStackLiteral(\"data\"),this.resolvePath(\"data\",b,0,!0,c)},resolvePath:function(a,b,c,d,e){var g=this;if(this.options.strict||this.options.assumeObjects)return void this.push(f(this.options.strict&&e,this,b,a));\nfor(var h=b.length;cthis.stackVars.length&&this.stackVars.push(\"stack\"+this.stackSlot),this.topStackName()},topStackName:function(){return\"stack\"+this.stackSlot},flushInline:function(){var a=this.inlineStack;this.inlineStack=[];for(var b=0,c=a.length;b' + '' + '
' + '
' + '
Visa
' + '
' + '
Mastercard
' + '
Maestro
' + '
' + '
discover
' + '
' + '
' + '
' + '
' + '
' + '
{{cvc}}
' + '
{{number}}
' + '
{{name}}
' + '
{{expiry}}
' + '
' + '
' + '
' + '
' + '
{{cvc}}
' + '
' + '
' + '
' + '';\n\n\t Card.prototype.template = function(tpl, data) {\n\t return tpl.replace(/\\{\\{(.*?)\\}\\}/g, function(match, key, str) {\n\t return data[key];\n\t });\n\t };\n\n\t Card.prototype.cardTypes = ['jp-card-amex', 'jp-card-dankort', 'jp-card-dinersclub', 'jp-card-discover', 'jp-card-jcb', 'jp-card-laser', 'jp-card-maestro', 'jp-card-mastercard', 'jp-card-unionpay', 'jp-card-visa', 'jp-card-visaelectron', 'jp-card-elo'];\n\n\t Card.prototype.defaults = {\n\t formatting: true,\n\t formSelectors: {\n\t numberInput: 'input[name=\"number\"]',\n\t expiryInput: 'input[name=\"expiry\"]',\n\t cvcInput: 'input[name=\"cvc\"]',\n\t nameInput: 'input[name=\"name\"]'\n\t },\n\t cardSelectors: {\n\t cardContainer: '.jp-card-container',\n\t card: '.jp-card',\n\t numberDisplay: '.jp-card-number',\n\t expiryDisplay: '.jp-card-expiry',\n\t cvcDisplay: '.jp-card-cvc',\n\t nameDisplay: '.jp-card-name'\n\t },\n\t messages: {\n\t validDate: 'valid\\nthru',\n\t monthYear: 'month/year'\n\t },\n\t placeholders: {\n\t number: '•••• •••• •••• ••••',\n\t cvc: '•••',\n\t expiry: '••/••',\n\t name: 'Full Name'\n\t },\n\t masks: {\n\t cardNumber: false\n\t },\n\t classes: {\n\t valid: 'jp-card-valid',\n\t invalid: 'jp-card-invalid'\n\t },\n\t debug: false\n\t };\n\n\t function Card(opts) {\n\t this.maskCardNumber = bind(this.maskCardNumber, this);\n\t var toInitialize;\n\t this.options = extend(true, this.defaults, opts);\n\t if (!this.options.form) {\n\t console.log(\"Please provide a form\");\n\t return;\n\t }\n\t this.$el = QJ(this.options.form);\n\t if (!this.options.container) {\n\t console.log(\"Please provide a container\");\n\t return;\n\t }\n\t this.$container = QJ(this.options.container);\n\t toInitialize = QJ.isDOMElement(this.$container) ? this.$container : this.$container[0];\n\t if (toInitialize.getAttribute(this.initializedDataAttr)) {\n\t return;\n\t }\n\t toInitialize.setAttribute(this.initializedDataAttr, true);\n\t this.render();\n\t this.attachHandlers();\n\t this.handleInitialPlaceholders();\n\t }\n\n\t Card.prototype.render = function() {\n\t var $cardContainer, baseWidth, name, obj, ref, ref1, selector, ua;\n\t QJ.append(this.$container, this.template(this.cardTemplate, extend({}, this.options.messages, this.options.placeholders)));\n\t ref = this.options.cardSelectors;\n\t for (name in ref) {\n\t selector = ref[name];\n\t this[\"$\" + name] = QJ.find(this.$container, selector);\n\t }\n\t ref1 = this.options.formSelectors;\n\t for (name in ref1) {\n\t selector = ref1[name];\n\t selector = this.options[name] ? this.options[name] : selector;\n\t obj = QJ.find(this.$el, selector);\n\t if (!obj.length && this.options.debug) {\n\t console.error(\"Card can't find a \" + name + \" in your form.\");\n\t }\n\t this[\"$\" + name] = obj;\n\t }\n\t if (this.options.formatting) {\n\t Payment.formatCardNumber(this.$numberInput);\n\t Payment.formatCardCVC(this.$cvcInput);\n\t Payment.formatCardExpiry(this.$expiryInput);\n\t }\n\t if (this.options.width) {\n\t $cardContainer = QJ(this.options.cardSelectors.cardContainer)[0];\n\t baseWidth = parseInt($cardContainer.clientWidth || window.getComputedStyle($cardContainer).width);\n\t $cardContainer.style.transform = \"scale(\" + (this.options.width / baseWidth) + \")\";\n\t }\n\t if (typeof navigator !== \"undefined\" && navigator !== null ? navigator.userAgent : void 0) {\n\t ua = navigator.userAgent.toLowerCase();\n\t if (ua.indexOf('safari') !== -1 && ua.indexOf('chrome') === -1) {\n\t QJ.addClass(this.$card, 'jp-card-safari');\n\t }\n\t }\n\t if (/MSIE 10\\./i.test(navigator.userAgent)) {\n\t QJ.addClass(this.$card, 'jp-card-ie-10');\n\t }\n\t if (/rv:11.0/i.test(navigator.userAgent)) {\n\t return QJ.addClass(this.$card, 'jp-card-ie-11');\n\t }\n\t };\n\n\t Card.prototype.attachHandlers = function() {\n\t var expiryFilters, numberInputFilters;\n\t numberInputFilters = [this.validToggler('cardNumber')];\n\t if (this.options.masks.cardNumber) {\n\t numberInputFilters.push(this.maskCardNumber);\n\t }\n\t bindVal(this.$numberInput, this.$numberDisplay, {\n\t fill: false,\n\t filters: numberInputFilters\n\t });\n\t QJ.on(this.$numberInput, 'payment.cardType', this.handle('setCardType'));\n\t expiryFilters = [\n\t function(val) {\n\t return val.replace(/(\\s+)/g, '');\n\t }\n\t ];\n\t expiryFilters.push(this.validToggler('cardExpiry'));\n\t bindVal(this.$expiryInput, this.$expiryDisplay, {\n\t join: function(text) {\n\t if (text[0].length === 2 || text[1]) {\n\t return \"/\";\n\t } else {\n\t return \"\";\n\t }\n\t },\n\t filters: expiryFilters\n\t });\n\t bindVal(this.$cvcInput, this.$cvcDisplay, {\n\t filters: this.validToggler('cardCVC')\n\t });\n\t QJ.on(this.$cvcInput, 'focus', this.handle('flipCard'));\n\t QJ.on(this.$cvcInput, 'blur', this.handle('unflipCard'));\n\t return bindVal(this.$nameInput, this.$nameDisplay, {\n\t fill: false,\n\t filters: this.validToggler('cardHolderName'),\n\t join: ' '\n\t });\n\t };\n\n\t Card.prototype.handleInitialPlaceholders = function() {\n\t var el, name, ref, results, selector;\n\t ref = this.options.formSelectors;\n\t results = [];\n\t for (name in ref) {\n\t selector = ref[name];\n\t el = this[\"$\" + name];\n\t if (QJ.val(el)) {\n\t QJ.trigger(el, 'paste');\n\t results.push(setTimeout(function() {\n\t return QJ.trigger(el, 'keyup');\n\t }));\n\t } else {\n\t results.push(void 0);\n\t }\n\t }\n\t return results;\n\t };\n\n\t Card.prototype.handle = function(fn) {\n\t return (function(_this) {\n\t return function(e) {\n\t var args;\n\t args = Array.prototype.slice.call(arguments);\n\t args.unshift(e.target);\n\t return _this.handlers[fn].apply(_this, args);\n\t };\n\t })(this);\n\t };\n\n\t Card.prototype.validToggler = function(validatorName) {\n\t var isValid;\n\t if (validatorName === \"cardExpiry\") {\n\t isValid = function(val) {\n\t var objVal;\n\t objVal = Payment.fns.cardExpiryVal(val);\n\t return Payment.fns.validateCardExpiry(objVal.month, objVal.year);\n\t };\n\t } else if (validatorName === \"cardCVC\") {\n\t isValid = (function(_this) {\n\t return function(val) {\n\t return Payment.fns.validateCardCVC(val, _this.cardType);\n\t };\n\t })(this);\n\t } else if (validatorName === \"cardNumber\") {\n\t isValid = function(val) {\n\t return Payment.fns.validateCardNumber(val);\n\t };\n\t } else if (validatorName === \"cardHolderName\") {\n\t isValid = function(val) {\n\t return val !== \"\";\n\t };\n\t }\n\t return (function(_this) {\n\t return function(val, $in, $out) {\n\t var result;\n\t result = isValid(val);\n\t _this.toggleValidClass($in, result);\n\t _this.toggleValidClass($out, result);\n\t return val;\n\t };\n\t })(this);\n\t };\n\n\t Card.prototype.toggleValidClass = function(el, test) {\n\t QJ.toggleClass(el, this.options.classes.valid, test);\n\t return QJ.toggleClass(el, this.options.classes.invalid, !test);\n\t };\n\n\t Card.prototype.maskCardNumber = function(val, el, out) {\n\t var mask, numbers;\n\t mask = this.options.masks.cardNumber;\n\t numbers = val.split(' ');\n\t if (numbers.length >= 3) {\n\t numbers.forEach(function(item, idx) {\n\t if (idx !== numbers.length - 1) {\n\t return numbers[idx] = numbers[idx].replace(/\\d/g, mask);\n\t }\n\t });\n\t return numbers.join(' ');\n\t } else {\n\t return val.replace(/\\d/g, mask);\n\t }\n\t };\n\n\t Card.prototype.handlers = {\n\t setCardType: function($el, e) {\n\t var cardType;\n\t cardType = e.data;\n\t if (!QJ.hasClass(this.$card, cardType)) {\n\t QJ.removeClass(this.$card, 'jp-card-unknown');\n\t QJ.removeClass(this.$card, this.cardTypes.join(' '));\n\t QJ.addClass(this.$card, \"jp-card-\" + cardType);\n\t QJ.toggleClass(this.$card, 'jp-card-identified', cardType !== 'unknown');\n\t return this.cardType = cardType;\n\t }\n\t },\n\t flipCard: function() {\n\t return QJ.addClass(this.$card, 'jp-card-flipped');\n\t },\n\t unflipCard: function() {\n\t return QJ.removeClass(this.$card, 'jp-card-flipped');\n\t }\n\t };\n\n\t bindVal = function(el, out, opts) {\n\t var joiner, o, outDefaults;\n\t if (opts == null) {\n\t opts = {};\n\t }\n\t opts.fill = opts.fill || false;\n\t opts.filters = opts.filters || [];\n\t if (!(opts.filters instanceof Array)) {\n\t opts.filters = [opts.filters];\n\t }\n\t opts.join = opts.join || \"\";\n\t if (!(typeof opts.join === \"function\")) {\n\t joiner = opts.join;\n\t opts.join = function() {\n\t return joiner;\n\t };\n\t }\n\t outDefaults = (function() {\n\t var j, len, results;\n\t results = [];\n\t for (j = 0, len = out.length; j < len; j++) {\n\t o = out[j];\n\t results.push(o.textContent);\n\t }\n\t return results;\n\t })();\n\t QJ.on(el, 'focus', function() {\n\t return QJ.addClass(out, 'jp-card-focused');\n\t });\n\t QJ.on(el, 'blur', function() {\n\t return QJ.removeClass(out, 'jp-card-focused');\n\t });\n\t QJ.on(el, 'keyup change paste', function(e) {\n\t var elem, filter, i, j, join, k, len, len1, outEl, outVal, ref, results, val;\n\t val = (function() {\n\t var j, len, results;\n\t results = [];\n\t for (j = 0, len = el.length; j < len; j++) {\n\t elem = el[j];\n\t results.push(QJ.val(elem));\n\t }\n\t return results;\n\t })();\n\t join = opts.join(val);\n\t val = val.join(join);\n\t if (val === join) {\n\t val = \"\";\n\t }\n\t ref = opts.filters;\n\t for (j = 0, len = ref.length; j < len; j++) {\n\t filter = ref[j];\n\t val = filter(val, el, out);\n\t }\n\t results = [];\n\t for (i = k = 0, len1 = out.length; k < len1; i = ++k) {\n\t outEl = out[i];\n\t if (opts.fill) {\n\t outVal = val + outDefaults[i].substring(val.length);\n\t } else {\n\t outVal = val || outDefaults[i];\n\t }\n\t results.push(outEl.textContent = outVal);\n\t }\n\t return results;\n\t });\n\t return el;\n\t };\n\n\t return Card;\n\n\t})();\n\n\tmodule.exports = Card;\n\n\tglobal.Card = Card;\n\n\t/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t// style-loader: Adds some css to the DOM by adding a