{"version":3,"sources":["script.js","0_modernizr.js","1_ls.bgset.js","2_lazysizes.js","3_autosize.js","4_jquery.waypoints.js","5_jquery.hoverdir.js","cocoen-jquery.min.js","jquery.colorbox.js","jquery.lettering.js","sharebuttons.js"],"names":["setVideoSrc","src","$","remove","video","append","load","on","this","play","updateForm","each","removeAttr","autosize","document","closest","removeClass","val","addClass","stopAnimation","window","undefined","is","obj","type","setClasses","classes","className","docElement","classPrefix","Modernizr","_config","isSVG","baseVal","enableJSClass","reJS","RegExp","replace","enableClasses","join","contains","str","substr","indexOf","createElement","arguments","createElementNS","call","apply","getBody","body","fake","injectElementWithStyles","rule","callback","nodes","testnames","style","ret","node","docOverflow","mod","div","parseInt","id","appendChild","styleSheet","cssText","createTextNode","background","overflow","parentNode","removeChild","offsetHeight","domToCSS","name","m1","toLowerCase","computedStyle","elem","pseudo","prop","result","getComputedStyle","console","getPropertyValue","method","error","currentStyle","nativeTestProps","props","value","i","length","CSS","supports","conditionText","push","cssToDOM","m2","toUpperCase","testProps","prefixed","skipValueTest","cleanElems","afterInit","mStyle","modElem","propsLength","before","elems","shift","e","fnBind","fn","that","testDOMProps","item","testPropsAll","ucProp","charAt","slice","cssomPrefixes","split","testAllProps","addTest","feature","test","key","hasOwnProp","featureNameSplit","last","Boolean","_trigger","tests","ModernizrProto","_version","usePrefixes","_q","cb","self","setTimeout","options","addAsyncTest","prototype","documentElement","nodeName","omPrefixes","_cssomPrefixes","atRule","prefixes","cssrule","CSSRule","prefix","unshift","domPrefixes","_domPrefixes","pointerEvents","testStyles","height","innerHeight","compStyle","width","innerWidth","createSVGRect","_prefixes","bool","DocumentTouch","query","offsetTop","canPlayType","ogg","h264","webm","vp9","hls","_hasOwnProperty","hasOwnProperty","object","property","constructor","_l","res","cbs","testAutoplay","arg","currentTry","clearTimeout","timeout","currentTime","retries","waitTime","removeEventListener","elemStyle","position","setAttribute","addEventListener","featureNames","aliasIdx","nameIdx","featureName","featureIdx","aliases","allowedBackgroundSize","contain","cover","proxyWidth","lazySizes","gW","_lazysizesWidth","getBgSize","bgSize","backgroundSize","createPicture","sets","img","picture","sizes","getAttribute","lazySizesConfig","sizesAttr","ratio","optimumx","_lazybgset","Object","defineProperty","writable","display","lazyClass","forEach","set","source","match","srcsetAttr","$1","$2","customMedia","removeAttribute","proxyLoad","target","image","bg","currentSrc","backgroundImage","_lazybgsetLoading","fire","defaultPrevented","alt","detail","firesLoad","loader","unveil","rAF","complete","dataAttr","_lazysizesParentFit","factory","getElementsByClassName","docElem","Date","supportPicture","HTMLPictureElement","requestAnimationFrame","requestIdleCallback","regPicture","loadEvents","regClassCache","Array","hasClass","ele","cls","trim","reg","addRemoveLoadEvents","dom","add","action","evt","triggerEvent","noBubbles","noCancelable","event","createEvent","initCustomEvent","dispatchEvent","updatePolyfill","el","full","polyfill","picturefill","pf","reevaluate","elements","getCSS","getWidth","parent","offsetWidth","minSize","running","waiting","fns","run","hidden","rAFIt","simple","args","throttle","lastTime","rICTimeout","now","idleCallback","isPriority","delay","debounce","func","timestamp","later","lazyloadElems","preloadElems","isCompleted","resetPreloadingTimer","loadMode","started","eLvW","elvH","eLtop","eLleft","eLright","eLbottom","defaultExpand","preloadExpand","hFac","regImg","regIframe","supportScroll","navigator","userAgent","currentExpand","isLoading","lowRuns","resetPreloading","isNestedVisible","elemExpand","outerRect","visible","offsetParent","getBoundingClientRect","left","right","top","bottom","checkElements","eLlen","rect","autoLoadElem","loadedSomething","elemNegativeExpand","elemExpandVal","beforeExpandVal","expand","clientHeight","expFactor","_lazyRace","unveilElement","preloadAfterLoad","throttledCheckElements","switchLoadingClass","loadedClass","loadingClass","rafSwitchLoadingClass","rafedSwitchLoadingClass","changeIframeSrc","contentWindow","location","handleSources","sourceSrcset","insertBefore","cloneNode","lazyUnveil","isAuto","isImg","srcset","isPicture","autosizesClass","srcAttr","getElementsByTagName","errorClass","autoSizer","updateElem","onload","afterScroll","_","preloadClass","MutationObserver","observe","childList","subtree","attributes","setInterval","readyState","checkElems","autosizesElems","sizeElement","sources","len","getSizeElement","updateElementsSizes","debouncedUpdateElementsSizes","init","lazySizesDefaults","lazysizesConfig","cfg","uP","aC","rC","hC","module","exports","global","define","amd","assign","ta","changeOverflow","overflowY","getParentOverflows","arr","Element","scrollTop","resize","originalHeight","overflows","docTop","endHeight","scrollHeight","heightOffset","clientWidth","update","styleHeight","Math","round","parseFloat","computed","actualHeight","cachedHeight","err","map","has","pageResize","destroy","keys","bind","overflowX","wordWrap","boxSizing","paddingTop","paddingBottom","borderTopWidth","borderBottomWidth","isNaN","methods","get","Map","values","delete","index","splice","Event","bubbles","initEvent","x","Waypoint","Error","element","handler","keyCounter","Adapter","extend","defaults","adapter","axis","horizontal","enabled","triggerPoint","group","Group","findOrCreate","context","Context","findOrCreateByElement","offsetAliases","offset","allWaypoints","queueTrigger","direction","trigger","disable","enable","refresh","next","previous","invokeAll","allWaypointsArray","waypointKey","end","destroyAll","disableAll","enableAll","refreshAll","viewportHeight","viewportWidth","adapters","continuous","bottom-in-view","outerHeight","right-in-view","outerWidth","requestAnimationFrameShim","didScroll","didResize","oldScroll","scrollLeft","y","waypoints","vertical","waypointContextKey","contexts","windowContext","createThrottledScrollHandler","createThrottledResizeHandler","oldWindowLoad","waypoint","checkEmpty","horizontalEmpty","isEmptyObject","verticalEmpty","isWindow","off","resizeHandler","handleResize","scrollHandler","handleScroll","isTouch","triggeredGroups","axes","newScroll","forward","backward","axisKey","isForward","wasBeforeTriggerPoint","nowAfterTriggerPoint","crossedForward","crossedBackward","groupKey","flushTriggers","contextOffset","contextScroll","contextDimension","offsetProp","contextModifier","wasBeforeScroll","nowAfterScroll","triggeredBackward","triggeredForward","adjustment","oldTriggerPoint","elementOffset","freshWaypoint","ceil","floor","findByElement","contextId","mozRequestAnimationFrame","webkitRequestAnimationFrame","byTriggerPoint","a","b","byReverseTriggerPoint","clearTriggerQueues","groups","triggerQueues","up","down","reverse","sort","inArray","first","JQueryAdapter","$element","jQuery","createExtension","framework","overrides","isFunction","Zepto","require","Hoverdir","$el","allClasses","from","fromPrefix","to","toPrefix","_loadEvents","proxy","_getDir","pageX","pageY","CSSclass","_getClass","siblings","coordinates","w","h","atan2","PI","setOptions","data","rebuild","hoverdir","option","parameter","Constructor","t","Cocoen","n","s","o","l","r","d","code","1","TypeError","enumerable","configurable","querySelector","createElements","addEventListeners","dimensions","dragElementSelector","replaceChild","dragElement","beforeElement","beforeImage","onTap","onDrag","onDragStart","onDragEnd","elementWidth","elementOffsetLeft","dragElementWidth","minLeftPos","maxLeftPos","preventDefault","leftPos","touches","requestDrag","posX","isDragging","moveX","dragCallback","drag","f","c","u","cocoen","$tag","tag","css","winheight","Settings","cache","attr","getIndex","increment","max","$related","newIndex","setSize","size","dimension","$window","isImage","settings","url","retinaUrl","devicePixelRatio","trapFocus","$box","$overlay","stopPropagation","focus","setClass","getRelated","rel","boxElement","filter","colorbox","$events","triggerHandler","launch","closing","open","active","visibility","opacity","$loaded","$content","interfaceHeight","$topBorder","$bottomBorder","interfaceWidth","$leftBorder","$rightBorder","loadedHeight","loadedWidth","initialWidth","initialHeight","maxWidth","maxHeight","min","publicMethod","event_open","$groupControls","$title","hide","one","event_closed","cursor","show","$close","html","appendTo","appendHTML","class","support","role","tabindex","$loadingOverlay","$wrap","$current","$prev","$next","$slideshow","find","float","$loadingBay","addBindings","clickHandler","which","shiftKey","altKey","metaKey","ctrlKey","click","prev","close","keyCode","live","href","setResize","$inline","prep","request","requests","photo","event_purge","event_load","mw","mh","loadingTimer","$target","eq","replaceWith","percent","marginTop","status","contents","iframe","inline","transition","speed","fadeOut","scalePhotos","scrolling","preloading","overlayClose","escKey","arrowKey","fixed","closeButton","fastIframe","reposition","loop","slideshow","slideshowAuto","slideshowSpeed","slideshowStart","slideshowStop","photoRegex","retinaImage","retinaSuffix","current","xhrError","imgError","returnFocus","onOpen","onLoad","onComplete","onCleanup","onClosed","title","createImg","Image","attrs","createIframe","frameBorder","allowTransparency","getTime","allowFullscreen","event_complete","event_cleanup","previousCSS","clear","timeOut","start","unbind","stop","reset","$obj","old","loadedCallback","modalDimensions","tempSpeed","dequeue","animate","duration","step","scrolltop","prependTo","removeFilter","total","fadeTo","removeData","injector","splitter","klass","after","text","inject","empty","words","lines","children","lettering","OpenShareUrl","openLink","pageTitle","pageUrl","encodeURIComponent","mobileSafari","mobileAndroid","standalone","safari","ios","android","mousedown","resizeVideo","oldWinW","winW","initialized","scrubVideo","scrubTime","offsetX","progressBar","updateProgressBar","progressFilled","percentage","bgVideo","NewVideo","wbHVideo","PlayBtn","SoundBtn","CloseBtn","getElementById","pause","mobTimeout","onended","paused","toggleClass","bodyOffset","owlCarousel","items","margin","dots","autoplay","autoplayTimeout","autoplayHoverPause","anchor","anchorOffset","Instafeed","resolution","useHttp","userId","clientId","accessToken","limit","template","getJSON","ga"],"mappings":"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","file":"script.min.js","sourcesContent":["/* global autosize, Waypoint, bodyOffset:true, Instafeed, ga */\n/* exported mobileSafari, mobileAndroid */\n\nvar body;\n\n// Check for mobile (ios/android) browser\nvar mobileSafari;\nvar mobileAndroid;\n\n$(function() {\n var standalone = window.navigator.standalone,\n userAgent = window.navigator.userAgent.toLowerCase(),\n safari = /safari/.test( userAgent ),\n ios = /iphone|ipod|ipad/.test( userAgent ),\n android = userAgent.indexOf('android') > -1;\n\n if(ios) {\n if ( !standalone && safari ) {\n mobileSafari = true;\n }\n }\n\n if(android) {\n mobileAndroid = true;\n }\n});\n\n// Function: Set HTML5 Video Source\nfunction setVideoSrc(src) {\n $('.fs-video__loop source').remove();\n var video = $('.fs-video__loop').append('');\n if (video[0]) {\n video[0].load();\n $('.fs-video__loop').on('ended', function () {\n this.load();\n this.play();\n });\n }\n}\n\n// Video controls\nvar mousedown = false;\nvar video;\n$(function() {\n body = $('body');\n\n var initialized = false;\n var winW = window.innerWidth;\n video = $('.fs-video__loop');\n var bgVideo = $('.bg-video').get(0);\n var NewVideo = $('.home-video');\n var wbHVideo = NewVideo.get(0);\n var PlayBtn = $('.video__controls__btn--play');\n var SoundBtn = $('.video__controls__btn--sound');\n var CloseBtn = $('.video__controls__btn--close');\n\n var progressBar = document.getElementById('video-progress-bar');\n\n if(progressBar) {\n progressBar.addEventListener('click', scrubVideo);\n progressBar.addEventListener('mousemove', function(e) {\n mousedown && scrubVideo(e);\n });\n // progressBar.addEventListener('touchmove', function (e) {\n // mousedown && scrubVideo(e);\n // });\n progressBar.addEventListener('mousedown', function(e) {\n mousedown = true;\n video.pause();\n scrubVideo(e);\n });\n // progressBar.addEventListener('touchstart', function (e) {\n // mousedown = true;\n // video.pause();\n // scrubVideo(e);\n // });\n progressBar.addEventListener('mouseup', function () {\n mousedown = false;\n video.play();\n });\n progressBar.addEventListener('touchend', function () {\n mousedown = false;\n video.play();\n });\n }\n\n if (winW > 960) {\n setVideoSrc(video.data('vid'));\n } else {\n setVideoSrc(video.data('vidmobile'));\n }\n\n resizeVideo();\n\n function resizeVideo() {\n var oldWinW = winW;\n winW = window.innerWidth;\n $(body).removeClass('is-webview');\n var video = $('.fs-video__loop');\n\n if (!initialized) {\n if (winW > 960) {\n setVideoSrc(video.data('vid'));\n } else {\n setVideoSrc(video.data('vidmobile'));\n }\n }\n\n if (winW > 960) {\n if (oldWinW <= 960) {\n setVideoSrc(video.data('vid'));\n }\n } else {\n if (oldWinW > 960) {\n setVideoSrc(video.data('vidmobile'));\n }\n }\n initialized = true;\n }\n\n function scrubVideo(e) {\n var scrubTime = (e.offsetX / progressBar.offsetWidth) * video.duration;\n video.currentTime = scrubTime;\n updateProgressBar();\n }\n\n $(window).on('resize',resizeVideo);\n\n\n $(document).on('click', '.video-play-button', function (e) {\n // var mobTimeout;\n\n $(body).addClass('js-play-video');\n wbHVideo.play();\n\n video = document.getElementById('main-video');\n video.addEventListener('timeupdate', updateProgressBar, false);\n\n if($('.bg-video').length){\n bgVideo.pause();\n }\n\n if ($(body).hasClass('body--show-nav')) {\n $(body).removeClass('body--show-nav');\n } else {\n $(body).addClass('body--show-nav');\n\n\n if (mobileSafari || mobileAndroid) {\n var mobTimeout = null;\n\n mobTimeout = setTimeout(function() {\n if ($(body).hasClass('js-play-video') && !$(body).hasClass('video--paused')) {\n $(body).removeClass('body--show-nav');\n }\n }, 4000);\n\n NewVideo.on('touchend', function() {\n if (mobTimeout !== null) {\n if ($(body).hasClass('js-play-video') && !$(body).hasClass('video--paused')) {\n $(body).addClass('body--show-nav');\n }\n clearTimeout(mobTimeout);\n }\n\n mobTimeout = setTimeout(function() {\n if ($(body).hasClass('js-play-video') && !$(body).hasClass('video--paused')) {\n $(body).removeClass('body--show-nav');\n }\n }, 4000);\n });\n\n }\n\n }\n\n // SHOW NAVIGATION WHEN MOVING MOUSE OVER MOVIE\n if (!mobileSafari && !mobileAndroid) {\n var timeout = null;\n NewVideo.on('mousemove', function() {\n if (timeout !== null) {\n if ($(body).hasClass('js-play-video') && !$(body).hasClass('video--paused') && !mousedown) {\n $(body).addClass('body--show-nav');\n }\n clearTimeout(timeout);\n }\n timeout = setTimeout(function() {\n if ($(body).hasClass('js-play-video') && !$(body).hasClass('video--paused') && !mousedown) {\n $(body).removeClass('body--show-nav');\n }\n }, 1500);\n });\n }\n\n e.preventDefault();\n });\n\n function updateProgressBar() {\n var progressBar = $('.video__progress');\n var progressFilled = $('.video__progress__filled');\n var percentage = Math.floor((100 / video.duration) * video.currentTime);\n progressBar.value = percentage;\n progressFilled.css('width', percentage + '%');\n }\n\n $(window).load(function() {\n if (NewVideo.length) {\n wbHVideo.onended = function() {\n $(CloseBtn).trigger('click');\n };\n }\n });\n\n PlayBtn.on('click', function(e) {\n wbHVideo[wbHVideo.paused ? 'play' : 'pause']();\n e.stopPropagation();\n\n $(this).toggleClass('icon-play');\n $(this).toggleClass('icon-pause');\n $(body).toggleClass('video--paused');\n\n e.preventDefault();\n });\n\n SoundBtn.on('click', function(e) {\n if( NewVideo.prop('muted') ) {\n NewVideo.prop('muted', false);\n } else {\n NewVideo.prop('muted', true);\n }\n e.stopPropagation();\n\n $(this).toggleClass('icon-sound-off');\n $(this).toggleClass('icon-sound-on');\n\n e.preventDefault();\n });\n\n CloseBtn.on('click', function(e) {\n wbHVideo.pause();\n wbHVideo.currentTime = 0;\n NewVideo.prop('muted', false);\n\n $(body).removeClass('js-play-video');\n $(body).removeClass('video--paused');\n $(body).removeClass('body--show-nav');\n PlayBtn.removeClass('icon-play').addClass('icon-pause');\n SoundBtn.removeClass('icon-sound-off').addClass('icon-sound-on');\n\n if($('.bg-video').length){\n bgVideo.play();\n }\n\n e.preventDefault();\n });\n\n // WAYPOINTS:\n // toggleClass when top of menu is on top!\n $('.band--menu-main').waypoint(function(){\n $('.header--main .hamburger').toggleClass('is-active');\n $('body').toggleClass('menu-is-active');\n // $('.header--main').toggleClass('header--background');\n },{\n offset: 0\n });\n\n // toggleClass when header is scrolled\n $('.band--header').waypoint(function(){\n $('body').addClass('scrolled');\n },{\n offset: -200\n });\n\n // start backgroundvideo when .site has 50% offset\n if($('.site').length){\n\n if($('.bg-video').length){\n bgVideo.pause();\n }\n\n $('.site').waypoint(function(direction){\n\n if(direction==='down') {\n if($('.bg-video').length){\n bgVideo.play();\n }\n } else {\n setTimeout(function(){\n if($('.bg-video').length){\n bgVideo.pause();\n }\n }, 1000);\n }\n },{\n offset: 'bottom-in-view'\n });\n }\n\n // Hamburger toggle\n bodyOffset = -1;\n $('.header--main .hamburger').on('click', function() {\n\n // HAMBURGER IS (X) = ACTIEF\n if ($(this).hasClass('is-active')) {\n\n // VIDEO WORDT GETOOND\n if ($(body).hasClass('body--show-video')) {\n $(this).removeClass('is-active');\n $(body).removeClass('menu-is-active');\n $(body).removeClass('body--show-video');\n\n // HOME\n if(!$('.site').length){\n if($('.bg-video').length){\n bgVideo.play();\n }\n // VERVOLG\n } else {\n $('html, body').animate({ scrollTop: $('.site').offset().top + $('.site').innerHeight()}, 0);\n }\n\n // VIDEO WORDT NIET GETOOND\n } else {\n\n // VERVOLGPAGINA'S\n if($('.site').length){\n\n // SCROLL NAAR BOVENKANT VIDEO\n if (bodyOffset == -1){\n $('html, body').animate({ scrollTop: $('.band--menu-main').offset().top - window.innerHeight }, 300);\n\n // SCROLL NAAR OFFSET .SITE\n } else {\n $('html, body').animate({ scrollTop: bodyOffset}, 10);\n bodyOffset = -1;\n }\n\n // HOME\n } else {\n $('html, body').animate({ scrollTop: $('.band--menu-main').offset().top - window.innerHeight }, 300);\n }\n }\n\n // HAMBURGER IS (=) (NIET ACTIEF)\n } else {\n bodyOffset = $('body').scrollTop();\n\n // VERVOLG\n if($('.site').length){\n $('html, body').animate({ scrollTop: $('.band--menu-main').offset().top}, 10);\n // HOME\n } else {\n $('html, body').animate({ scrollTop: $('.band--menu-main').offset().top}, 300);\n }\n\n $(body).removeClass('body--show-video').removeClass('body--show-nav').removeClass('video--paused');\n\n if($('.bg-video').length){\n bgVideo.play();\n }\n }\n\n Waypoint.refreshAll();\n });\n});\n\n// Flipper / contact cards\n$(function() {\n $('.flipper__toggle-button--back').on('click', function() {\n $('.flipper__cards').addClass('flipper__cards--back');\n $('.flipper__toggle-button').removeClass('flipper__toggle-button--active');\n $(this).addClass('flipper__toggle-button--active');\n });\n\n $('.flipper__toggle-button--front').on('click', function() {\n $('.flipper__cards').removeClass('flipper__cards--back');\n $('.flipper__toggle-button').removeClass('flipper__toggle-button--active');\n $(this).addClass('flipper__toggle-button--active');\n });\n});\n\nfunction updateForm() {\n // Resize textarea\n $('textarea').each(function(){\n $(this).removeAttr('rows').removeAttr('cols');\n autosize(this);\n });\n\n // Contact form labels\n $(document).on('input change', '.form input, .form textarea', function() {\n $(this).closest('.form__field').removeClass('input--not-empty');\n if ($(this).val() !== '') {\n $(this).closest('.form__field').addClass('input--not-empty');\n }\n });\n\n $(document).on('focus', '.form input, .form textarea', function() {\n $(this).closest('.form__field').addClass('input--has-focus');\n });\n\n $(document).on('blur', '.form input, .form textarea', function() {\n $(this).closest('.form__field').removeClass('input--has-focus');\n });\n\n}\n\n$(function() {\n updateForm();\n\n // Again after gform post\n $(document).bind('gform_post_render', function(){\n updateForm();\n\n $('.form input, .form textarea').each(function(){\n if ($(this).val() !== '') {\n $(this).closest('.form__field').addClass('input--not-empty');\n }\n });\n });\n});\n\n// Team hover effect\n$(function() {\n $('.team__member' ).each( function() {\n $(this).hoverdir();\n });\n});\n\n// Owlcarousel\n$(function() {\n if($('.carousel').length){\n $('.carousel').owlCarousel({\n loop: true,\n items: 1,\n margin: 5,\n dots: true,\n autoplay: true,\n autoplayTimeout: 4000,\n autoplayHoverPause: true\n });\n }\n\n if($('.case-slider').length){\n $('.case-slider').owlCarousel({\n loop: true,\n items: 1,\n margin: 0,\n dots: true\n });\n }\n});\n\n// Dynamic Scrollto links\n$(function() {\n $(document).on('click', '.scrollto', function(e) {\n var defaultAnchorOffset = 0;\n var anchor = $(this).attr('data-attr-scroll');\n var anchorOffset = $(this).attr('data-scroll-offset');\n if (!anchorOffset)\n anchorOffset = defaultAnchorOffset;\n $('html,body').animate({ scrollTop: $('.'+anchor).offset().top - anchorOffset }, 300);\n e.preventDefault();\n });\n});\n\n// Instagram\n$(function() {\n if($('#instafeed').length){\n var feed = new Instafeed({\n resolution: 'standard_resolution',\n get: 'user',\n useHttp: true,\n userId: '3192781293',\n clientId: '81b3ae77cb154b63b21b464c845eac80',\n accessToken: '3192781293.1677ed0.9ae0c6e7f0d44c9498091c3d0e3e44b4',\n limit: 4,\n template: '
{{likes}}
'\n });\n feed.run();\n }\n});\n\n// Show number of available jobs in menu\n$(function() {\n if ($('#menu-item-33').length > 0) {\n $.getJSON('https://www.werkenbijtres.nl/wp-json/wp/v2/job', function(result) {\n if (result) {\n $('#menu-item-33').append('' + result.length + '');\n }\n });\n }\n});\n\n// Colorbox\n$(function() {\n $('.colorbox--video').colorbox({\n close: '
',\n width: '95%',\n height: '95%',\n maxWidth: '1920px',\n maxHeight: '1080px',\n fadeOut: 0,\n transition: 'none',\n fixed: true,\n iframe:true\n });\n\n $('.gallery__link').colorbox({\n close: '
',\n rel: 'gallery',\n photo: true,\n current: 'afbeelding {current} van {total}',\n maxWidth: '90%',\n maxHeight: '85%',\n previous: '',\n next: ''\n });\n});\n\nfunction stopAnimation() {\n $('.hc-list__overlay').each(function(){\n $(this).addClass('notransition');\n });\n}\n\n// Before/After slider\n$(function() {\n $('.cocoen').cocoen();\n\n $('.cocoen').waypoint(function(){\n $('body').addClass('cocoen-visible');\n },{\n offset: '50%'\n });\n});\n\n// INTRO - ANIMATION\n$(window).load(function() {\n $('body').addClass('start');\n Waypoint.refreshAll();\n\n setTimeout(function(){\n $(window).on('resize', stopAnimation);\n }, 1600);\n\n});\n\n$(function() {\n $('.intro-txt__quote span').lettering();\n});\n\n// OPEN SOLLICITATIEFORMULIER\n$(function() {\n $('.open-form').on('click', function(e) {\n $(this).addClass('hide');\n $(this).closest('.band__content').find('h2').addClass('hide');\n $(this).closest('.band__content').find('p:not(.bold)').addClass('hide');\n $('.band--form').removeClass('band--hidden');\n $('html,body').animate({ scrollTop: $('.band--form').offset().top - 100 }, 300);\n e.preventDefault();\n });\n});\n\n// TOGGLE-BOX\n$(function() {\n $('.toggle-block__title').on('click', function(e) {\n\n if ($(this).closest('.toggle-block').hasClass('toggle-block--active')) {\n $(this).closest('.toggle-block').removeClass('toggle-block--active');\n } else {\n $('.toggle-block').removeClass('toggle-block--active');\n $(this).closest('.toggle-block').addClass('toggle-block--active');\n }\n\n\n e.preventDefault();\n });\n});\n\n// Track whitepaper downloads\n$(function() {\n $('.band--downloads .grid__link').on('click', function() {\n if (ga) {\n ga('send', 'event', 'whitepaper', 'download', [\n $(this).attr('href')\n ]);\n }\n });\n\n $('.band--job-footer .button--large').on('click', function () {\n if (ga) {\n ga('send', 'event', 'job', 'click', [\n document.title\n ]);\n }\n });\n});\n","/*!\n * modernizr v3.5.0\n * Build https://modernizr.com/download?-backgroundblendmode-cssgrid_cssgridlegacy-csspointerevents-cssvhunit-cssvwunit-svg-touchevents-video-videoautoplay-videocrossorigin-videoloop-videopreload-atrule-setclasses-dontmin\n *\n * Copyright (c)\n * Faruk Ates\n * Paul Irish\n * Alex Sexton\n * Ryan Seddon\n * Patrick Kettner\n * Stu Cox\n * Richard Herrera\n\n * MIT License\n */\n\n/*\n * Modernizr tests which native CSS3 and HTML5 features are available in the\n * current UA and makes the results available to you in two ways: as properties on\n * a global `Modernizr` object, and as classes on the `` element. This\n * information allows you to progressively enhance your pages with a granular level\n * of control over the experience.\n*/\n\n;(function(window, document, undefined){\n var tests = [];\n \n\n /**\n *\n * ModernizrProto is the constructor for Modernizr\n *\n * @class\n * @access public\n */\n\n var ModernizrProto = {\n // The current version, dummy\n _version: '3.5.0',\n\n // Any settings that don't work as separate modules\n // can go in here as configuration.\n _config: {\n 'classPrefix': '',\n 'enableClasses': true,\n 'enableJSClass': true,\n 'usePrefixes': true\n },\n\n // Queue of tests\n _q: [],\n\n // Stub these for people who are listening\n on: function(test, cb) {\n // I don't really think people should do this, but we can\n // safe guard it a bit.\n // -- NOTE:: this gets WAY overridden in src/addTest for actual async tests.\n // This is in case people listen to synchronous tests. I would leave it out,\n // but the code to *disallow* sync tests in the real version of this\n // function is actually larger than this.\n var self = this;\n setTimeout(function() {\n cb(self[test]);\n }, 0);\n },\n\n addTest: function(name, fn, options) {\n tests.push({name: name, fn: fn, options: options});\n },\n\n addAsyncTest: function(fn) {\n tests.push({name: null, fn: fn});\n }\n };\n\n \n\n // Fake some of Object.create so we can force non test results to be non \"own\" properties.\n var Modernizr = function() {};\n Modernizr.prototype = ModernizrProto;\n\n // Leak modernizr globally when you `require` it rather than force it here.\n // Overwrite name so constructor name is nicer :D\n Modernizr = new Modernizr();\n\n \n\n var classes = [];\n \n\n /**\n * is returns a boolean if the typeof an obj is exactly type.\n *\n * @access private\n * @function is\n * @param {*} obj - A thing we want to check the type of\n * @param {string} type - A string to compare the typeof against\n * @returns {boolean}\n */\n\n function is(obj, type) {\n return typeof obj === type;\n }\n ;\n\n /**\n * Run through all tests and detect their support in the current UA.\n *\n * @access private\n */\n\n function testRunner() {\n var featureNames;\n var feature;\n var aliasIdx;\n var result;\n var nameIdx;\n var featureName;\n var featureNameSplit;\n\n for (var featureIdx in tests) {\n if (tests.hasOwnProperty(featureIdx)) {\n featureNames = [];\n feature = tests[featureIdx];\n // run the test, throw the return value into the Modernizr,\n // then based on that boolean, define an appropriate className\n // and push it into an array of classes we'll join later.\n //\n // If there is no name, it's an 'async' test that is run,\n // but not directly added to the object. That should\n // be done with a post-run addTest call.\n if (feature.name) {\n featureNames.push(feature.name.toLowerCase());\n\n if (feature.options && feature.options.aliases && feature.options.aliases.length) {\n // Add all the aliases into the names list\n for (aliasIdx = 0; aliasIdx < feature.options.aliases.length; aliasIdx++) {\n featureNames.push(feature.options.aliases[aliasIdx].toLowerCase());\n }\n }\n }\n\n // Run the test, or use the raw value if it's not a function\n result = is(feature.fn, 'function') ? feature.fn() : feature.fn;\n\n\n // Set each of the names on the Modernizr object\n for (nameIdx = 0; nameIdx < featureNames.length; nameIdx++) {\n featureName = featureNames[nameIdx];\n // Support dot properties as sub tests. We don't do checking to make sure\n // that the implied parent tests have been added. You must call them in\n // order (either in the test, or make the parent test a dependency).\n //\n // Cap it to TWO to make the logic simple and because who needs that kind of subtesting\n // hashtag famous last words\n featureNameSplit = featureName.split('.');\n\n if (featureNameSplit.length === 1) {\n Modernizr[featureNameSplit[0]] = result;\n } else {\n // cast to a Boolean, if not one already\n if (Modernizr[featureNameSplit[0]] && !(Modernizr[featureNameSplit[0]] instanceof Boolean)) {\n Modernizr[featureNameSplit[0]] = new Boolean(Modernizr[featureNameSplit[0]]);\n }\n\n Modernizr[featureNameSplit[0]][featureNameSplit[1]] = result;\n }\n\n classes.push((result ? '' : 'no-') + featureNameSplit.join('-'));\n }\n }\n }\n }\n ;\n\n /**\n * docElement is a convenience wrapper to grab the root element of the document\n *\n * @access private\n * @returns {HTMLElement|SVGElement} The root element of the document\n */\n\n var docElement = document.documentElement;\n \n\n /**\n * A convenience helper to check if the document we are running in is an SVG document\n *\n * @access private\n * @returns {boolean}\n */\n\n var isSVG = docElement.nodeName.toLowerCase() === 'svg';\n \n\n /**\n * setClasses takes an array of class names and adds them to the root element\n *\n * @access private\n * @function setClasses\n * @param {string[]} classes - Array of class names\n */\n\n // Pass in an and array of class names, e.g.:\n // ['no-webp', 'borderradius', ...]\n function setClasses(classes) {\n var className = docElement.className;\n var classPrefix = Modernizr._config.classPrefix || '';\n\n if (isSVG) {\n className = className.baseVal;\n }\n\n // Change `no-js` to `js` (independently of the `enableClasses` option)\n // Handle classPrefix on this too\n if (Modernizr._config.enableJSClass) {\n var reJS = new RegExp('(^|\\\\s)' + classPrefix + 'no-js(\\\\s|$)');\n className = className.replace(reJS, '$1' + classPrefix + 'js$2');\n }\n\n if (Modernizr._config.enableClasses) {\n // Add the new classes\n className += ' ' + classPrefix + classes.join(' ' + classPrefix);\n if (isSVG) {\n docElement.className.baseVal = className;\n } else {\n docElement.className = className;\n }\n }\n\n }\n\n ;\n\n /**\n * If the browsers follow the spec, then they would expose vendor-specific styles as:\n * elem.style.WebkitBorderRadius\n * instead of something like the following (which is technically incorrect):\n * elem.style.webkitBorderRadius\n\n * WebKit ghosts their properties in lowercase but Opera & Moz do not.\n * Microsoft uses a lowercase `ms` instead of the correct `Ms` in IE8+\n * erik.eae.net/archives/2008/03/10/21.48.10/\n\n * More here: github.com/Modernizr/Modernizr/issues/issue/21\n *\n * @access private\n * @returns {string} The string representing the vendor-specific style properties\n */\n\n var omPrefixes = 'Moz O ms Webkit';\n \n\n var cssomPrefixes = (ModernizrProto._config.usePrefixes ? omPrefixes.split(' ') : []);\n ModernizrProto._cssomPrefixes = cssomPrefixes;\n \n\n /**\n * atRule returns a given CSS property at-rule (eg @keyframes), possibly in\n * some prefixed form, or false, in the case of an unsupported rule\n *\n * @memberof Modernizr\n * @name Modernizr.atRule\n * @optionName Modernizr.atRule()\n * @optionProp atRule\n * @access public\n * @function atRule\n * @param {string} prop - String name of the @-rule to test for\n * @returns {string|boolean} The string representing the (possibly prefixed)\n * valid version of the @-rule, or `false` when it is unsupported.\n * @example\n * ```js\n * var keyframes = Modernizr.atRule('@keyframes');\n *\n * if (keyframes) {\n * // keyframes are supported\n * // could be `@-webkit-keyframes` or `@keyframes`\n * } else {\n * // keyframes === `false`\n * }\n * ```\n *\n */\n\n var atRule = function(prop) {\n var length = prefixes.length;\n var cssrule = window.CSSRule;\n var rule;\n\n if (typeof cssrule === 'undefined') {\n return undefined;\n }\n\n if (!prop) {\n return false;\n }\n\n // remove literal @ from beginning of provided property\n prop = prop.replace(/^@/, '');\n\n // CSSRules use underscores instead of dashes\n rule = prop.replace(/-/g, '_').toUpperCase() + '_RULE';\n\n if (rule in cssrule) {\n return '@' + prop;\n }\n\n for (var i = 0; i < length; i++) {\n // prefixes gives us something like -o-, and we want O_\n var prefix = prefixes[i];\n var thisRule = prefix.toUpperCase() + '_' + rule;\n\n if (thisRule in cssrule) {\n return '@-' + prefix.toLowerCase() + '-' + prop;\n }\n }\n\n return false;\n };\n\n ModernizrProto.atRule = atRule;\n\n \n\n\n /**\n * contains checks to see if a string contains another string\n *\n * @access private\n * @function contains\n * @param {string} str - The string we want to check for substrings\n * @param {string} substr - The substring we want to search the first string for\n * @returns {boolean}\n */\n\n function contains(str, substr) {\n return !!~('' + str).indexOf(substr);\n }\n\n ;\n\n /**\n * createElement is a convenience wrapper around document.createElement. Since we\n * use createElement all over the place, this allows for (slightly) smaller code\n * as well as abstracting away issues with creating elements in contexts other than\n * HTML documents (e.g. SVG documents).\n *\n * @access private\n * @function createElement\n * @returns {HTMLElement|SVGElement} An HTML or SVG element\n */\n\n function createElement() {\n if (typeof document.createElement !== 'function') {\n // This is the case in IE7, where the type of createElement is \"object\".\n // For this reason, we cannot call apply() as Object is not a Function.\n return document.createElement(arguments[0]);\n } else if (isSVG) {\n return document.createElementNS.call(document, 'http://www.w3.org/2000/svg', arguments[0]);\n } else {\n return document.createElement.apply(document, arguments);\n }\n }\n\n ;\n\n /**\n * Create our \"modernizr\" element that we do most feature tests on.\n *\n * @access private\n */\n\n var modElem = {\n elem: createElement('modernizr')\n };\n\n // Clean up this element\n Modernizr._q.push(function() {\n delete modElem.elem;\n });\n\n \n\n var mStyle = {\n style: modElem.elem.style\n };\n\n // kill ref for gc, must happen before mod.elem is removed, so we unshift on to\n // the front of the queue.\n Modernizr._q.unshift(function() {\n delete mStyle.style;\n });\n\n \n\n /**\n * getBody returns the body of a document, or an element that can stand in for\n * the body if a real body does not exist\n *\n * @access private\n * @function getBody\n * @returns {HTMLElement|SVGElement} Returns the real body of a document, or an\n * artificially created element that stands in for the body\n */\n\n function getBody() {\n // After page load injecting a fake body doesn't work so check if body exists\n var body = document.body;\n\n if (!body) {\n // Can't use the real body create a fake one.\n body = createElement(isSVG ? 'svg' : 'body');\n body.fake = true;\n }\n\n return body;\n }\n\n ;\n\n /**\n * injectElementWithStyles injects an element with style element and some CSS rules\n *\n * @access private\n * @function injectElementWithStyles\n * @param {string} rule - String representing a css rule\n * @param {function} callback - A function that is used to test the injected element\n * @param {number} [nodes] - An integer representing the number of additional nodes you want injected\n * @param {string[]} [testnames] - An array of strings that are used as ids for the additional nodes\n * @returns {boolean}\n */\n\n function injectElementWithStyles(rule, callback, nodes, testnames) {\n var mod = 'modernizr';\n var style;\n var ret;\n var node;\n var docOverflow;\n var div = createElement('div');\n var body = getBody();\n\n if (parseInt(nodes, 10)) {\n // In order not to give false positives we create a node for each test\n // This also allows the method to scale for unspecified uses\n while (nodes--) {\n node = createElement('div');\n node.id = testnames ? testnames[nodes] : mod + (nodes + 1);\n div.appendChild(node);\n }\n }\n\n style = createElement('style');\n style.type = 'text/css';\n style.id = 's' + mod;\n\n // IE6 will false positive on some tests due to the style element inside the test div somehow interfering offsetHeight, so insert it into body or fakebody.\n // Opera will act all quirky when injecting elements in documentElement when page is served as xml, needs fakebody too. #270\n (!body.fake ? div : body).appendChild(style);\n body.appendChild(div);\n\n if (style.styleSheet) {\n style.styleSheet.cssText = rule;\n } else {\n style.appendChild(document.createTextNode(rule));\n }\n div.id = mod;\n\n if (body.fake) {\n //avoid crashing IE8, if background image is used\n body.style.background = '';\n //Safari 5.13/5.1.4 OSX stops loading if ::-webkit-scrollbar is used and scrollbars are visible\n body.style.overflow = 'hidden';\n docOverflow = docElement.style.overflow;\n docElement.style.overflow = 'hidden';\n docElement.appendChild(body);\n }\n\n ret = callback(div, rule);\n // If this is done after page load we don't want to remove the body so check if body exists\n if (body.fake) {\n body.parentNode.removeChild(body);\n docElement.style.overflow = docOverflow;\n // Trigger layout so kinetic scrolling isn't disabled in iOS6+\n // eslint-disable-next-line\n docElement.offsetHeight;\n } else {\n div.parentNode.removeChild(div);\n }\n\n return !!ret;\n\n }\n\n ;\n\n /**\n * domToCSS takes a camelCase string and converts it to kebab-case\n * e.g. boxSizing -> box-sizing\n *\n * @access private\n * @function domToCSS\n * @param {string} name - String name of camelCase prop we want to convert\n * @returns {string} The kebab-case version of the supplied name\n */\n\n function domToCSS(name) {\n return name.replace(/([A-Z])/g, function(str, m1) {\n return '-' + m1.toLowerCase();\n }).replace(/^ms-/, '-ms-');\n }\n ;\n\n\n /**\n * wrapper around getComputedStyle, to fix issues with Firefox returning null when\n * called inside of a hidden iframe\n *\n * @access private\n * @function computedStyle\n * @param {HTMLElement|SVGElement} - The element we want to find the computed styles of\n * @param {string|null} [pseudoSelector]- An optional pseudo element selector (e.g. :before), of null if none\n * @returns {CSSStyleDeclaration}\n */\n\n function computedStyle(elem, pseudo, prop) {\n var result;\n\n if ('getComputedStyle' in window) {\n result = getComputedStyle.call(window, elem, pseudo);\n var console = window.console;\n\n if (result !== null) {\n if (prop) {\n result = result.getPropertyValue(prop);\n }\n } else {\n if (console) {\n var method = console.error ? 'error' : 'log';\n console[method].call(console, 'getComputedStyle returning null, its possible modernizr test results are inaccurate');\n }\n }\n } else {\n result = !pseudo && elem.currentStyle && elem.currentStyle[prop];\n }\n\n return result;\n }\n\n ;\n\n /**\n * nativeTestProps allows for us to use native feature detection functionality if available.\n * some prefixed form, or false, in the case of an unsupported rule\n *\n * @access private\n * @function nativeTestProps\n * @param {array} props - An array of property names\n * @param {string} value - A string representing the value we want to check via @supports\n * @returns {boolean|undefined} A boolean when @supports exists, undefined otherwise\n */\n\n // Accepts a list of property names and a single value\n // Returns `undefined` if native detection not available\n function nativeTestProps(props, value) {\n var i = props.length;\n // Start with the JS API: http://www.w3.org/TR/css3-conditional/#the-css-interface\n if ('CSS' in window && 'supports' in window.CSS) {\n // Try every prefixed variant of the property\n while (i--) {\n if (window.CSS.supports(domToCSS(props[i]), value)) {\n return true;\n }\n }\n return false;\n }\n // Otherwise fall back to at-rule (for Opera 12.x)\n else if ('CSSSupportsRule' in window) {\n // Build a condition string for every prefixed variant\n var conditionText = [];\n while (i--) {\n conditionText.push('(' + domToCSS(props[i]) + ':' + value + ')');\n }\n conditionText = conditionText.join(' or ');\n return injectElementWithStyles('@supports (' + conditionText + ') { #modernizr { position: absolute; } }', function(node) {\n return computedStyle(node, null, 'position') == 'absolute';\n });\n }\n return undefined;\n }\n ;\n\n /**\n * cssToDOM takes a kebab-case string and converts it to camelCase\n * e.g. box-sizing -> boxSizing\n *\n * @access private\n * @function cssToDOM\n * @param {string} name - String name of kebab-case prop we want to convert\n * @returns {string} The camelCase version of the supplied name\n */\n\n function cssToDOM(name) {\n return name.replace(/([a-z])-([a-z])/g, function(str, m1, m2) {\n return m1 + m2.toUpperCase();\n }).replace(/^-/, '');\n }\n ;\n\n // testProps is a generic CSS / DOM property test.\n\n // In testing support for a given CSS property, it's legit to test:\n // `elem.style[styleName] !== undefined`\n // If the property is supported it will return an empty string,\n // if unsupported it will return undefined.\n\n // We'll take advantage of this quick test and skip setting a style\n // on our modernizr element, but instead just testing undefined vs\n // empty string.\n\n // Property names can be provided in either camelCase or kebab-case.\n\n function testProps(props, prefixed, value, skipValueTest) {\n skipValueTest = is(skipValueTest, 'undefined') ? false : skipValueTest;\n\n // Try native detect first\n if (!is(value, 'undefined')) {\n var result = nativeTestProps(props, value);\n if (!is(result, 'undefined')) {\n return result;\n }\n }\n\n // Otherwise do it properly\n var afterInit, i, propsLength, prop, before;\n\n // If we don't have a style element, that means we're running async or after\n // the core tests, so we'll need to create our own elements to use\n\n // inside of an SVG element, in certain browsers, the `style` element is only\n // defined for valid tags. Therefore, if `modernizr` does not have one, we\n // fall back to a less used element and hope for the best.\n // for strict XHTML browsers the hardly used samp element is used\n var elems = ['modernizr', 'tspan', 'samp'];\n while (!mStyle.style && elems.length) {\n afterInit = true;\n mStyle.modElem = createElement(elems.shift());\n mStyle.style = mStyle.modElem.style;\n }\n\n // Delete the objects if we created them.\n function cleanElems() {\n if (afterInit) {\n delete mStyle.style;\n delete mStyle.modElem;\n }\n }\n\n propsLength = props.length;\n for (i = 0; i < propsLength; i++) {\n prop = props[i];\n before = mStyle.style[prop];\n\n if (contains(prop, '-')) {\n prop = cssToDOM(prop);\n }\n\n if (mStyle.style[prop] !== undefined) {\n\n // If value to test has been passed in, do a set-and-check test.\n // 0 (integer) is a valid property value, so check that `value` isn't\n // undefined, rather than just checking it's truthy.\n if (!skipValueTest && !is(value, 'undefined')) {\n\n // Needs a try catch block because of old IE. This is slow, but will\n // be avoided in most cases because `skipValueTest` will be used.\n try {\n mStyle.style[prop] = value;\n } catch (e) {}\n\n // If the property value has changed, we assume the value used is\n // supported. If `value` is empty string, it'll fail here (because\n // it hasn't changed), which matches how browsers have implemented\n // CSS.supports()\n if (mStyle.style[prop] != before) {\n cleanElems();\n return prefixed == 'pfx' ? prop : true;\n }\n }\n // Otherwise just return true, or the property name if this is a\n // `prefixed()` call\n else {\n cleanElems();\n return prefixed == 'pfx' ? prop : true;\n }\n }\n }\n cleanElems();\n return false;\n }\n\n ;\n\n /**\n * List of JavaScript DOM values used for tests\n *\n * @memberof Modernizr\n * @name Modernizr._domPrefixes\n * @optionName Modernizr._domPrefixes\n * @optionProp domPrefixes\n * @access public\n * @example\n *\n * Modernizr._domPrefixes is exactly the same as [_prefixes](#modernizr-_prefixes), but rather\n * than kebab-case properties, all properties are their Capitalized variant\n *\n * ```js\n * Modernizr._domPrefixes === [ \"Moz\", \"O\", \"ms\", \"Webkit\" ];\n * ```\n */\n\n var domPrefixes = (ModernizrProto._config.usePrefixes ? omPrefixes.toLowerCase().split(' ') : []);\n ModernizrProto._domPrefixes = domPrefixes;\n \n\n /**\n * fnBind is a super small [bind](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind) polyfill.\n *\n * @access private\n * @function fnBind\n * @param {function} fn - a function you want to change `this` reference to\n * @param {object} that - the `this` you want to call the function with\n * @returns {function} The wrapped version of the supplied function\n */\n\n function fnBind(fn, that) {\n return function() {\n return fn.apply(that, arguments);\n };\n }\n\n ;\n\n /**\n * testDOMProps is a generic DOM property test; if a browser supports\n * a certain property, it won't return undefined for it.\n *\n * @access private\n * @function testDOMProps\n * @param {array.} props - An array of properties to test for\n * @param {object} obj - An object or Element you want to use to test the parameters again\n * @param {boolean|object} elem - An Element to bind the property lookup again. Use `false` to prevent the check\n * @returns {false|*} returns false if the prop is unsupported, otherwise the value that is supported\n */\n function testDOMProps(props, obj, elem) {\n var item;\n\n for (var i in props) {\n if (props[i] in obj) {\n\n // return the property name as a string\n if (elem === false) {\n return props[i];\n }\n\n item = obj[props[i]];\n\n // let's bind a function\n if (is(item, 'function')) {\n // bind to obj unless overriden\n return fnBind(item, elem || obj);\n }\n\n // return the unbound function or obj or value\n return item;\n }\n }\n return false;\n }\n\n ;\n\n /**\n * testPropsAll tests a list of DOM properties we want to check against.\n * We specify literally ALL possible (known and/or likely) properties on\n * the element including the non-vendor prefixed one, for forward-\n * compatibility.\n *\n * @access private\n * @function testPropsAll\n * @param {string} prop - A string of the property to test for\n * @param {string|object} [prefixed] - An object to check the prefixed properties on. Use a string to skip\n * @param {HTMLElement|SVGElement} [elem] - An element used to test the property and value against\n * @param {string} [value] - A string of a css value\n * @param {boolean} [skipValueTest] - An boolean representing if you want to test if value sticks when set\n * @returns {false|string} returns the string version of the property, or false if it is unsupported\n */\n function testPropsAll(prop, prefixed, elem, value, skipValueTest) {\n\n var ucProp = prop.charAt(0).toUpperCase() + prop.slice(1),\n props = (prop + ' ' + cssomPrefixes.join(ucProp + ' ') + ucProp).split(' ');\n\n // did they call .prefixed('boxSizing') or are we just testing a prop?\n if (is(prefixed, 'string') || is(prefixed, 'undefined')) {\n return testProps(props, prefixed, value, skipValueTest);\n\n // otherwise, they called .prefixed('requestAnimationFrame', window[, elem])\n } else {\n props = (prop + ' ' + (domPrefixes).join(ucProp + ' ') + ucProp).split(' ');\n return testDOMProps(props, prefixed, elem);\n }\n }\n\n // Modernizr.testAllProps() investigates whether a given style property,\n // or any of its vendor-prefixed variants, is recognized\n //\n // Note that the property names must be provided in the camelCase variant.\n // Modernizr.testAllProps('boxSizing')\n ModernizrProto.testAllProps = testPropsAll;\n\n \n\n /**\n * prefixed returns the prefixed or nonprefixed property name variant of your input\n *\n * @memberof Modernizr\n * @name Modernizr.prefixed\n * @optionName Modernizr.prefixed()\n * @optionProp prefixed\n * @access public\n * @function prefixed\n * @param {string} prop - String name of the property to test for\n * @param {object} [obj] - An object to test for the prefixed properties on\n * @param {HTMLElement} [elem] - An element used to test specific properties against\n * @returns {string|false} The string representing the (possibly prefixed) valid\n * version of the property, or `false` when it is unsupported.\n * @example\n *\n * Modernizr.prefixed takes a string css value in the DOM style camelCase (as\n * opposed to the css style kebab-case) form and returns the (possibly prefixed)\n * version of that property that the browser actually supports.\n *\n * For example, in older Firefox...\n * ```js\n * prefixed('boxSizing')\n * ```\n * returns 'MozBoxSizing'\n *\n * In newer Firefox, as well as any other browser that support the unprefixed\n * version would simply return `boxSizing`. Any browser that does not support\n * the property at all, it will return `false`.\n *\n * By default, prefixed is checked against a DOM element. If you want to check\n * for a property on another object, just pass it as a second argument\n *\n * ```js\n * var rAF = prefixed('requestAnimationFrame', window);\n *\n * raf(function() {\n * renderFunction();\n * })\n * ```\n *\n * Note that this will return _the actual function_ - not the name of the function.\n * If you need the actual name of the property, pass in `false` as a third argument\n *\n * ```js\n * var rAFProp = prefixed('requestAnimationFrame', window, false);\n *\n * rafProp === 'WebkitRequestAnimationFrame' // in older webkit\n * ```\n *\n * One common use case for prefixed is if you're trying to determine which transition\n * end event to bind to, you might do something like...\n * ```js\n * var transEndEventNames = {\n * 'WebkitTransition' : 'webkitTransitionEnd', * Saf 6, Android Browser\n * 'MozTransition' : 'transitionend', * only for FF < 15\n * 'transition' : 'transitionend' * IE10, Opera, Chrome, FF 15+, Saf 7+\n * };\n *\n * var transEndEventName = transEndEventNames[ Modernizr.prefixed('transition') ];\n * ```\n *\n * If you want a similar lookup, but in kebab-case, you can use [prefixedCSS](#modernizr-prefixedcss).\n */\n\n var prefixed = ModernizrProto.prefixed = function(prop, obj, elem) {\n if (prop.indexOf('@') === 0) {\n return atRule(prop);\n }\n\n if (prop.indexOf('-') != -1) {\n // Convert kebab-case to camelCase\n prop = cssToDOM(prop);\n }\n if (!obj) {\n return testPropsAll(prop, 'pfx');\n } else {\n // Testing DOM property e.g. Modernizr.prefixed('requestAnimationFrame', window) // 'mozRequestAnimationFrame'\n return testPropsAll(prop, obj, elem);\n }\n };\n\n \n/*!\n{\n \"name\": \"CSS Background Blend Mode\",\n \"property\": \"backgroundblendmode\",\n \"caniuse\": \"css-backgroundblendmode\",\n \"tags\": [\"css\"],\n \"notes\": [\n {\n \"name\": \"CSS Blend Modes could be the next big thing in Web Design\",\n \"href\": \" https://medium.com/@bennettfeely/css-blend-modes-could-be-the-next-big-thing-in-web-design-6b51bf53743a\"\n }, {\n \"name\": \"Demo\",\n \"href\": \"http://bennettfeely.com/gradients/\"\n }\n ]\n}\n!*/\n/* DOC\nDetects the ability for the browser to composite backgrounds using blending modes similar to ones found in Photoshop or Illustrator.\n*/\n\n Modernizr.addTest('backgroundblendmode', prefixed('backgroundBlendMode', 'text'));\n\n/*!\n{\n \"name\": \"CSS Pointer Events\",\n \"caniuse\": \"pointer-events\",\n \"property\": \"csspointerevents\",\n \"authors\": [\"ausi\"],\n \"tags\": [\"css\"],\n \"builderAliases\": [\"css_pointerevents\"],\n \"notes\": [\n {\n \"name\": \"MDN Docs\",\n \"href\": \"https://developer.mozilla.org/en-US/docs/Web/CSS/pointer-events\"\n },{\n \"name\": \"Test Project Page\",\n \"href\": \"https://ausi.github.com/Feature-detection-technique-for-pointer-events/\"\n },{\n \"name\": \"Test Project Wiki\",\n \"href\": \"https://github.com/ausi/Feature-detection-technique-for-pointer-events/wiki\"\n },\n {\n \"name\": \"Related Github Issue\",\n \"href\": \"https://github.com/Modernizr/Modernizr/issues/80\"\n }\n ]\n}\n!*/\n\n Modernizr.addTest('csspointerevents', function() {\n var style = createElement('a').style;\n style.cssText = 'pointer-events:auto';\n return style.pointerEvents === 'auto';\n });\n\n\n /**\n * testStyles injects an element with style element and some CSS rules\n *\n * @memberof Modernizr\n * @name Modernizr.testStyles\n * @optionName Modernizr.testStyles()\n * @optionProp testStyles\n * @access public\n * @function testStyles\n * @param {string} rule - String representing a css rule\n * @param {function} callback - A function that is used to test the injected element\n * @param {number} [nodes] - An integer representing the number of additional nodes you want injected\n * @param {string[]} [testnames] - An array of strings that are used as ids for the additional nodes\n * @returns {boolean}\n * @example\n *\n * `Modernizr.testStyles` takes a CSS rule and injects it onto the current page\n * along with (possibly multiple) DOM elements. This lets you check for features\n * that can not be detected by simply checking the [IDL](https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Interface_development_guide/IDL_interface_rules).\n *\n * ```js\n * Modernizr.testStyles('#modernizr { width: 9px; color: papayawhip; }', function(elem, rule) {\n * // elem is the first DOM node in the page (by default #modernizr)\n * // rule is the first argument you supplied - the CSS rule in string form\n *\n * addTest('widthworks', elem.style.width === '9px')\n * });\n * ```\n *\n * If your test requires multiple nodes, you can include a third argument\n * indicating how many additional div elements to include on the page. The\n * additional nodes are injected as children of the `elem` that is returned as\n * the first argument to the callback.\n *\n * ```js\n * Modernizr.testStyles('#modernizr {width: 1px}; #modernizr2 {width: 2px}', function(elem) {\n * document.getElementById('modernizr').style.width === '1px'; // true\n * document.getElementById('modernizr2').style.width === '2px'; // true\n * elem.firstChild === document.getElementById('modernizr2'); // true\n * }, 1);\n * ```\n *\n * By default, all of the additional elements have an ID of `modernizr[n]`, where\n * `n` is its index (e.g. the first additional, second overall is `#modernizr2`,\n * the second additional is `#modernizr3`, etc.).\n * If you want to have more meaningful IDs for your function, you can provide\n * them as the fourth argument, as an array of strings\n *\n * ```js\n * Modernizr.testStyles('#foo {width: 10px}; #bar {height: 20px}', function(elem) {\n * elem.firstChild === document.getElementById('foo'); // true\n * elem.lastChild === document.getElementById('bar'); // true\n * }, 2, ['foo', 'bar']);\n * ```\n *\n */\n\n var testStyles = ModernizrProto.testStyles = injectElementWithStyles;\n \n/*!\n{\n \"name\": \"CSS vh unit\",\n \"property\": \"cssvhunit\",\n \"caniuse\": \"viewport-units\",\n \"tags\": [\"css\"],\n \"builderAliases\": [\"css_vhunit\"],\n \"notes\": [{\n \"name\": \"Related Modernizr Issue\",\n \"href\": \"https://github.com/Modernizr/Modernizr/issues/572\"\n },{\n \"name\": \"Similar JSFiddle\",\n \"href\": \"https://jsfiddle.net/FWeinb/etnYC/\"\n }]\n}\n!*/\n\n testStyles('#modernizr { height: 50vh; }', function(elem) {\n var height = parseInt(window.innerHeight / 2, 10);\n var compStyle = parseInt(computedStyle(elem, null, 'height'), 10);\n Modernizr.addTest('cssvhunit', compStyle == height);\n });\n\n/*!\n{\n \"name\": \"CSS vw unit\",\n \"property\": \"cssvwunit\",\n \"caniuse\": \"viewport-units\",\n \"tags\": [\"css\"],\n \"builderAliases\": [\"css_vwunit\"],\n \"notes\": [{\n \"name\": \"Related Modernizr Issue\",\n \"href\": \"https://github.com/Modernizr/Modernizr/issues/572\"\n },{\n \"name\": \"JSFiddle Example\",\n \"href\": \"https://jsfiddle.net/FWeinb/etnYC/\"\n }]\n}\n!*/\n\n testStyles('#modernizr { width: 50vw; }', function(elem) {\n var width = parseInt(window.innerWidth / 2, 10);\n var compStyle = parseInt(computedStyle(elem, null, 'width'), 10);\n\n Modernizr.addTest('cssvwunit', compStyle == width);\n });\n\n\n /**\n * testAllProps determines whether a given CSS property is supported in the browser\n *\n * @memberof Modernizr\n * @name Modernizr.testAllProps\n * @optionName Modernizr.testAllProps()\n * @optionProp testAllProps\n * @access public\n * @function testAllProps\n * @param {string} prop - String naming the property to test (either camelCase or kebab-case)\n * @param {string} [value] - String of the value to test\n * @param {boolean} [skipValueTest=false] - Whether to skip testing that the value is supported when using non-native detection\n * @example\n *\n * testAllProps determines whether a given CSS property, in some prefixed form,\n * is supported by the browser.\n *\n * ```js\n * testAllProps('boxSizing') // true\n * ```\n *\n * It can optionally be given a CSS value in string form to test if a property\n * value is valid\n *\n * ```js\n * testAllProps('display', 'block') // true\n * testAllProps('display', 'penguin') // false\n * ```\n *\n * A boolean can be passed as a third parameter to skip the value check when\n * native detection (@supports) isn't available.\n *\n * ```js\n * testAllProps('shapeOutside', 'content-box', true);\n * ```\n */\n\n function testAllProps(prop, value, skipValueTest) {\n return testPropsAll(prop, undefined, undefined, value, skipValueTest);\n }\n ModernizrProto.testAllProps = testAllProps;\n \n/*!\n{\n \"name\": \"CSS Grid (old & new)\",\n \"property\": [\"cssgrid\", \"cssgridlegacy\"],\n \"authors\": [\"Faruk Ates\"],\n \"tags\": [\"css\"],\n \"notes\": [{\n \"name\": \"The new, standardized CSS Grid\",\n \"href\": \"https://www.w3.org/TR/css3-grid-layout/\"\n }, {\n \"name\": \"The _old_ CSS Grid (legacy)\",\n \"href\": \"https://www.w3.org/TR/2011/WD-css3-grid-layout-20110407/\"\n }]\n}\n!*/\n\n // `grid-columns` is only in the old syntax, `grid-column` exists in both and so `grid-template-rows` is used for the new syntax.\n Modernizr.addTest('cssgridlegacy', testAllProps('grid-columns', '10px', true));\n Modernizr.addTest('cssgrid', testAllProps('grid-template-rows', 'none', true));\n\n/*!\n{\n \"name\": \"SVG\",\n \"property\": \"svg\",\n \"caniuse\": \"svg\",\n \"tags\": [\"svg\"],\n \"authors\": [\"Erik Dahlstrom\"],\n \"polyfills\": [\n \"svgweb\",\n \"raphael\",\n \"amplesdk\",\n \"canvg\",\n \"svg-boilerplate\",\n \"sie\",\n \"dojogfx\",\n \"fabricjs\"\n ]\n}\n!*/\n/* DOC\nDetects support for SVG in `` or `` elements.\n*/\n\n Modernizr.addTest('svg', !!document.createElementNS && !!document.createElementNS('http://www.w3.org/2000/svg', 'svg').createSVGRect);\n\n\n /**\n * List of property values to set for css tests. See ticket #21\n * http://git.io/vUGl4\n *\n * @memberof Modernizr\n * @name Modernizr._prefixes\n * @optionName Modernizr._prefixes\n * @optionProp prefixes\n * @access public\n * @example\n *\n * Modernizr._prefixes is the internal list of prefixes that we test against\n * inside of things like [prefixed](#modernizr-prefixed) and [prefixedCSS](#-code-modernizr-prefixedcss). It is simply\n * an array of kebab-case vendor prefixes you can use within your code.\n *\n * Some common use cases include\n *\n * Generating all possible prefixed version of a CSS property\n * ```js\n * var rule = Modernizr._prefixes.join('transform: rotate(20deg); ');\n *\n * rule === 'transform: rotate(20deg); webkit-transform: rotate(20deg); moz-transform: rotate(20deg); o-transform: rotate(20deg); ms-transform: rotate(20deg);'\n * ```\n *\n * Generating all possible prefixed version of a CSS value\n * ```js\n * rule = 'display:' + Modernizr._prefixes.join('flex; display:') + 'flex';\n *\n * rule === 'display:flex; display:-webkit-flex; display:-moz-flex; display:-o-flex; display:-ms-flex; display:flex'\n * ```\n */\n\n // we use ['',''] rather than an empty array in order to allow a pattern of .`join()`ing prefixes to test\n // values in feature detects to continue to work\n var prefixes = (ModernizrProto._config.usePrefixes ? ' -webkit- -moz- -o- -ms- '.split(' ') : ['','']);\n\n // expose these for the plugin API. Look in the source for how to join() them against your input\n ModernizrProto._prefixes = prefixes;\n\n \n/*!\n{\n \"name\": \"Touch Events\",\n \"property\": \"touchevents\",\n \"caniuse\" : \"touch\",\n \"tags\": [\"media\", \"attribute\"],\n \"notes\": [{\n \"name\": \"Touch Events spec\",\n \"href\": \"https://www.w3.org/TR/2013/WD-touch-events-20130124/\"\n }],\n \"warnings\": [\n \"Indicates if the browser supports the Touch Events spec, and does not necessarily reflect a touchscreen device\"\n ],\n \"knownBugs\": [\n \"False-positive on some configurations of Nokia N900\",\n \"False-positive on some BlackBerry 6.0 builds – https://github.com/Modernizr/Modernizr/issues/372#issuecomment-3112695\"\n ]\n}\n!*/\n/* DOC\nIndicates if the browser supports the W3C Touch Events API.\n\nThis *does not* necessarily reflect a touchscreen device:\n\n* Older touchscreen devices only emulate mouse events\n* Modern IE touch devices implement the Pointer Events API instead: use `Modernizr.pointerevents` to detect support for that\n* Some browsers & OS setups may enable touch APIs when no touchscreen is connected\n* Future browsers may implement other event models for touch interactions\n\nSee this article: [You Can't Detect A Touchscreen](http://www.stucox.com/blog/you-cant-detect-a-touchscreen/).\n\nIt's recommended to bind both mouse and touch/pointer events simultaneously – see [this HTML5 Rocks tutorial](http://www.html5rocks.com/en/mobile/touchandmouse/).\n\nThis test will also return `true` for Firefox 4 Multitouch support.\n*/\n\n // Chrome (desktop) used to lie about its support on this, but that has since been rectified: http://crbug.com/36415\n Modernizr.addTest('touchevents', function() {\n var bool;\n if (('ontouchstart' in window) || window.DocumentTouch && document instanceof DocumentTouch) {\n bool = true;\n } else {\n // include the 'heartz' as a way to have a non matching MQ to help terminate the join\n // https://git.io/vznFH\n var query = ['@media (', prefixes.join('touch-enabled),('), 'heartz', ')', '{#modernizr{top:9px;position:absolute}}'].join('');\n testStyles(query, function(node) {\n bool = node.offsetTop === 9;\n });\n }\n return bool;\n });\n\n/*!\n{\n \"name\": \"HTML5 Video\",\n \"property\": \"video\",\n \"caniuse\": \"video\",\n \"tags\": [\"html5\"],\n \"knownBugs\": [\n \"Without QuickTime, `Modernizr.video.h264` will be `undefined`; https://github.com/Modernizr/Modernizr/issues/546\"\n ],\n \"polyfills\": [\n \"html5media\",\n \"mediaelementjs\",\n \"sublimevideo\",\n \"videojs\",\n \"leanbackplayer\",\n \"videoforeverybody\"\n ]\n}\n!*/\n/* DOC\nDetects support for the video element, as well as testing what types of content it supports.\n\nSubproperties are provided to describe support for `ogg`, `h264` and `webm` formats, e.g.:\n\n```javascript\nModernizr.video // true\nModernizr.video.ogg // 'probably'\n```\n*/\n\n // Codec values from : github.com/NielsLeenheer/html5test/blob/9106a8/index.html#L845\n // thx to NielsLeenheer and zcorpan\n\n // Note: in some older browsers, \"no\" was a return value instead of empty string.\n // It was live in FF3.5.0 and 3.5.1, but fixed in 3.5.2\n // It was also live in Safari 4.0.0 - 4.0.4, but fixed in 4.0.5\n\n Modernizr.addTest('video', function() {\n var elem = createElement('video');\n var bool = false;\n\n // IE9 Running on Windows Server SKU can cause an exception to be thrown, bug #224\n try {\n bool = !!elem.canPlayType\n if (bool) {\n bool = new Boolean(bool);\n bool.ogg = elem.canPlayType('video/ogg; codecs=\"theora\"').replace(/^no$/, '');\n\n // Without QuickTime, this value will be `undefined`. github.com/Modernizr/Modernizr/issues/546\n bool.h264 = elem.canPlayType('video/mp4; codecs=\"avc1.42E01E\"').replace(/^no$/, '');\n\n bool.webm = elem.canPlayType('video/webm; codecs=\"vp8, vorbis\"').replace(/^no$/, '');\n\n bool.vp9 = elem.canPlayType('video/webm; codecs=\"vp9\"').replace(/^no$/, '');\n\n bool.hls = elem.canPlayType('application/x-mpegURL; codecs=\"avc1.42E01E\"').replace(/^no$/, '');\n }\n } catch (e) {}\n\n return bool;\n });\n\n\n /**\n * hasOwnProp is a shim for hasOwnProperty that is needed for Safari 2.0 support\n *\n * @author kangax\n * @access private\n * @function hasOwnProp\n * @param {object} object - The object to check for a property\n * @param {string} property - The property to check for\n * @returns {boolean}\n */\n\n // hasOwnProperty shim by kangax needed for Safari 2.0 support\n var hasOwnProp;\n\n (function() {\n var _hasOwnProperty = ({}).hasOwnProperty;\n /* istanbul ignore else */\n /* we have no way of testing IE 5.5 or safari 2,\n * so just assume the else gets hit */\n if (!is(_hasOwnProperty, 'undefined') && !is(_hasOwnProperty.call, 'undefined')) {\n hasOwnProp = function(object, property) {\n return _hasOwnProperty.call(object, property);\n };\n }\n else {\n hasOwnProp = function(object, property) { /* yes, this can give false positives/negatives, but most of the time we don't care about those */\n return ((property in object) && is(object.constructor.prototype[property], 'undefined'));\n };\n }\n })();\n\n \n\n\n // _l tracks listeners for async tests, as well as tests that execute after the initial run\n ModernizrProto._l = {};\n\n /**\n * Modernizr.on is a way to listen for the completion of async tests. Being\n * asynchronous, they may not finish before your scripts run. As a result you\n * will get a possibly false negative `undefined` value.\n *\n * @memberof Modernizr\n * @name Modernizr.on\n * @access public\n * @function on\n * @param {string} feature - String name of the feature detect\n * @param {function} cb - Callback function returning a Boolean - true if feature is supported, false if not\n * @example\n *\n * ```js\n * Modernizr.on('flash', function( result ) {\n * if (result) {\n * // the browser has flash\n * } else {\n * // the browser does not have flash\n * }\n * });\n * ```\n */\n\n ModernizrProto.on = function(feature, cb) {\n // Create the list of listeners if it doesn't exist\n if (!this._l[feature]) {\n this._l[feature] = [];\n }\n\n // Push this test on to the listener list\n this._l[feature].push(cb);\n\n // If it's already been resolved, trigger it on next tick\n if (Modernizr.hasOwnProperty(feature)) {\n // Next Tick\n setTimeout(function() {\n Modernizr._trigger(feature, Modernizr[feature]);\n }, 0);\n }\n };\n\n /**\n * _trigger is the private function used to signal test completion and run any\n * callbacks registered through [Modernizr.on](#modernizr-on)\n *\n * @memberof Modernizr\n * @name Modernizr._trigger\n * @access private\n * @function _trigger\n * @param {string} feature - string name of the feature detect\n * @param {function|boolean} [res] - A feature detection function, or the boolean =\n * result of a feature detection function\n */\n\n ModernizrProto._trigger = function(feature, res) {\n if (!this._l[feature]) {\n return;\n }\n\n var cbs = this._l[feature];\n\n // Force async\n setTimeout(function() {\n var i, cb;\n for (i = 0; i < cbs.length; i++) {\n cb = cbs[i];\n cb(res);\n }\n }, 0);\n\n // Don't trigger these again\n delete this._l[feature];\n };\n\n /**\n * addTest allows you to define your own feature detects that are not currently\n * included in Modernizr (under the covers it's the exact same code Modernizr\n * uses for its own [feature detections](https://github.com/Modernizr/Modernizr/tree/master/feature-detects)). Just like the offical detects, the result\n * will be added onto the Modernizr object, as well as an appropriate className set on\n * the html element when configured to do so\n *\n * @memberof Modernizr\n * @name Modernizr.addTest\n * @optionName Modernizr.addTest()\n * @optionProp addTest\n * @access public\n * @function addTest\n * @param {string|object} feature - The string name of the feature detect, or an\n * object of feature detect names and test\n * @param {function|boolean} test - Function returning true if feature is supported,\n * false if not. Otherwise a boolean representing the results of a feature detection\n * @example\n *\n * The most common way of creating your own feature detects is by calling\n * `Modernizr.addTest` with a string (preferably just lowercase, without any\n * punctuation), and a function you want executed that will return a boolean result\n *\n * ```js\n * Modernizr.addTest('itsTuesday', function() {\n * var d = new Date();\n * return d.getDay() === 2;\n * });\n * ```\n *\n * When the above is run, it will set Modernizr.itstuesday to `true` when it is tuesday,\n * and to `false` every other day of the week. One thing to notice is that the names of\n * feature detect functions are always lowercased when added to the Modernizr object. That\n * means that `Modernizr.itsTuesday` will not exist, but `Modernizr.itstuesday` will.\n *\n *\n * Since we only look at the returned value from any feature detection function,\n * you do not need to actually use a function. For simple detections, just passing\n * in a statement that will return a boolean value works just fine.\n *\n * ```js\n * Modernizr.addTest('hasJquery', 'jQuery' in window);\n * ```\n *\n * Just like before, when the above runs `Modernizr.hasjquery` will be true if\n * jQuery has been included on the page. Not using a function saves a small amount\n * of overhead for the browser, as well as making your code much more readable.\n *\n * Finally, you also have the ability to pass in an object of feature names and\n * their tests. This is handy if you want to add multiple detections in one go.\n * The keys should always be a string, and the value can be either a boolean or\n * function that returns a boolean.\n *\n * ```js\n * var detects = {\n * 'hasjquery': 'jQuery' in window,\n * 'itstuesday': function() {\n * var d = new Date();\n * return d.getDay() === 2;\n * }\n * }\n *\n * Modernizr.addTest(detects);\n * ```\n *\n * There is really no difference between the first methods and this one, it is\n * just a convenience to let you write more readable code.\n */\n\n function addTest(feature, test) {\n\n if (typeof feature == 'object') {\n for (var key in feature) {\n if (hasOwnProp(feature, key)) {\n addTest(key, feature[ key ]);\n }\n }\n } else {\n\n feature = feature.toLowerCase();\n var featureNameSplit = feature.split('.');\n var last = Modernizr[featureNameSplit[0]];\n\n // Again, we don't check for parent test existence. Get that right, though.\n if (featureNameSplit.length == 2) {\n last = last[featureNameSplit[1]];\n }\n\n if (typeof last != 'undefined') {\n // we're going to quit if you're trying to overwrite an existing test\n // if we were to allow it, we'd do this:\n // var re = new RegExp(\"\\\\b(no-)?\" + feature + \"\\\\b\");\n // docElement.className = docElement.className.replace( re, '' );\n // but, no rly, stuff 'em.\n return Modernizr;\n }\n\n test = typeof test == 'function' ? test() : test;\n\n // Set the value (this is the magic, right here).\n if (featureNameSplit.length == 1) {\n Modernizr[featureNameSplit[0]] = test;\n } else {\n // cast to a Boolean, if not one already\n if (Modernizr[featureNameSplit[0]] && !(Modernizr[featureNameSplit[0]] instanceof Boolean)) {\n Modernizr[featureNameSplit[0]] = new Boolean(Modernizr[featureNameSplit[0]]);\n }\n\n Modernizr[featureNameSplit[0]][featureNameSplit[1]] = test;\n }\n\n // Set a single class (either `feature` or `no-feature`)\n setClasses([(!!test && test != false ? '' : 'no-') + featureNameSplit.join('-')]);\n\n // Trigger the event\n Modernizr._trigger(feature, test);\n }\n\n return Modernizr; // allow chaining.\n }\n\n // After all the tests are run, add self to the Modernizr prototype\n Modernizr._q.push(function() {\n ModernizrProto.addTest = addTest;\n });\n\n \n\n/*!\n{\n \"name\": \"Video Autoplay\",\n \"property\": \"videoautoplay\",\n \"tags\": [\"video\"],\n \"async\" : true,\n \"warnings\": [\"This test is very large – only include it if you absolutely need it\"],\n \"knownBugs\": [\"crashes with an alert on iOS7 when added to homescreen\"]\n}\n!*/\n/* DOC\nChecks for support of the autoplay attribute of the video element.\n*/\n\n\n Modernizr.addAsyncTest(function() {\n var timeout;\n var waitTime = 200;\n var retries = 5;\n var currentTry = 0;\n var elem = createElement('video');\n var elemStyle = elem.style;\n\n function testAutoplay(arg) {\n currentTry++;\n clearTimeout(timeout);\n\n var result = arg && arg.type === 'playing' || elem.currentTime !== 0;\n\n if (!result && currentTry < retries) {\n //Detection can be flaky if the browser is slow, so lets retry in a little bit\n timeout = setTimeout(testAutoplay, waitTime);\n return;\n }\n\n elem.removeEventListener('playing', testAutoplay, false);\n addTest('videoautoplay', result);\n\n // Cleanup, but don't assume elem is still in the page -\n // an extension (eg Flashblock) may already have removed it.\n if (elem.parentNode) {\n elem.parentNode.removeChild(elem);\n }\n }\n\n //skip the test if video itself, or the autoplay\n //element on it isn't supported\n if (!Modernizr.video || !('autoplay' in elem)) {\n addTest('videoautoplay', false);\n return;\n }\n\n elemStyle.position = 'absolute';\n elemStyle.height = 0;\n elemStyle.width = 0;\n\n try {\n if (Modernizr.video.ogg) {\n elem.src = 'data:video/ogg;base64,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';\n }\n else if (Modernizr.video.h264) {\n elem.src = 'data:video/mp4;base64,AAAAIGZ0eXBpc29tAAACAGlzb21pc28yYXZjMW1wNDEAAAAIZnJlZQAAAs1tZGF0AAACrgYF//+q3EXpvebZSLeWLNgg2SPu73gyNjQgLSBjb3JlIDE0OCByMjYwMSBhMGNkN2QzIC0gSC4yNjQvTVBFRy00IEFWQyBjb2RlYyAtIENvcHlsZWZ0IDIwMDMtMjAxNSAtIGh0dHA6Ly93d3cudmlkZW9sYW4ub3JnL3gyNjQuaHRtbCAtIG9wdGlvbnM6IGNhYmFjPTEgcmVmPTMgZGVibG9jaz0xOjA6MCBhbmFseXNlPTB4MzoweDExMyBtZT1oZXggc3VibWU9NyBwc3k9MSBwc3lfcmQ9MS4wMDowLjAwIG1peGVkX3JlZj0xIG1lX3JhbmdlPTE2IGNocm9tYV9tZT0xIHRyZWxsaXM9MSA4eDhkY3Q9MSBjcW09MCBkZWFkem9uZT0yMSwxMSBmYXN0X3Bza2lwPTEgY2hyb21hX3FwX29mZnNldD0tMiB0aHJlYWRzPTEgbG9va2FoZWFkX3RocmVhZHM9MSBzbGljZWRfdGhyZWFkcz0wIG5yPTAgZGVjaW1hdGU9MSBpbnRlcmxhY2VkPTAgYmx1cmF5X2NvbXBhdD0wIGNvbnN0cmFpbmVkX2ludHJhPTAgYmZyYW1lcz0zIGJfcHlyYW1pZD0yIGJfYWRhcHQ9MSBiX2JpYXM9MCBkaXJlY3Q9MSB3ZWlnaHRiPTEgb3Blbl9nb3A9MCB3ZWlnaHRwPTIga2V5aW50PTI1MCBrZXlpbnRfbWluPTEwIHNjZW5lY3V0PTQwIGludHJhX3JlZnJlc2g9MCByY19sb29rYWhlYWQ9NDAgcmM9Y3JmIG1idHJlZT0xIGNyZj0yMy4wIHFjb21wPTAuNjAgcXBtaW49MCBxcG1heD02OSBxcHN0ZXA9NCBpcF9yYXRpbz0xLjQwIGFxPTE6MS4wMACAAAAAD2WIhAA3//728P4FNjuZQQAAAu5tb292AAAAbG12aGQAAAAAAAAAAAAAAAAAAAPoAAAAZAABAAABAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACGHRyYWsAAABcdGtoZAAAAAMAAAAAAAAAAAAAAAEAAAAAAAAAZAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAEAAAAAAAgAAAAIAAAAAACRlZHRzAAAAHGVsc3QAAAAAAAAAAQAAAGQAAAAAAAEAAAAAAZBtZGlhAAAAIG1kaGQAAAAAAAAAAAAAAAAAACgAAAAEAFXEAAAAAAAtaGRscgAAAAAAAAAAdmlkZQAAAAAAAAAAAAAAAFZpZGVvSGFuZGxlcgAAAAE7bWluZgAAABR2bWhkAAAAAQAAAAAAAAAAAAAAJGRpbmYAAAAcZHJlZgAAAAAAAAABAAAADHVybCAAAAABAAAA+3N0YmwAAACXc3RzZAAAAAAAAAABAAAAh2F2YzEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAgACAEgAAABIAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAY//8AAAAxYXZjQwFkAAr/4QAYZ2QACqzZX4iIhAAAAwAEAAADAFA8SJZYAQAGaOvjyyLAAAAAGHN0dHMAAAAAAAAAAQAAAAEAAAQAAAAAHHN0c2MAAAAAAAAAAQAAAAEAAAABAAAAAQAAABRzdHN6AAAAAAAAAsUAAAABAAAAFHN0Y28AAAAAAAAAAQAAADAAAABidWR0YQAAAFptZXRhAAAAAAAAACFoZGxyAAAAAAAAAABtZGlyYXBwbAAAAAAAAAAAAAAAAC1pbHN0AAAAJal0b28AAAAdZGF0YQAAAAEAAAAATGF2ZjU2LjQwLjEwMQ==';\n }\n else {\n addTest('videoautoplay', false);\n return;\n }\n }\n\n catch (e) {\n addTest('videoautoplay', false);\n return;\n }\n\n elem.setAttribute('autoplay', '');\n elem.style.cssText = 'display:none';\n docElement.appendChild(elem);\n // wait for the next tick to add the listener, otherwise the element may\n // not have time to play in high load situations (e.g. the test suite)\n setTimeout(function() {\n elem.addEventListener('playing', testAutoplay, false);\n timeout = setTimeout(testAutoplay, waitTime);\n }, 0);\n });\n\n/*!\n{\n \"name\": \"Video crossOrigin\",\n \"property\": \"videocrossorigin\",\n \"caniuse\": \"cors\",\n \"authors\": [\"Florian Mailliet\"],\n \"notes\": [{\n \"name\": \"MDN documentation\",\n \"href\": \"https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_settings_attributes\"\n }]\n}\n!*/\n/* DOC\nDetects support for the crossOrigin attribute on video tag\n*/\n\n Modernizr.addTest('videocrossorigin', 'crossOrigin' in createElement('video'));\n\n/*!\n{\n \"name\": \"Video Loop Attribute\",\n \"property\": \"videoloop\",\n \"tags\": [\"video\", \"media\"]\n}\n!*/\n\n Modernizr.addTest('videoloop', 'loop' in createElement('video'));\n\n/*!\n{\n \"name\": \"Video Preload Attribute\",\n \"property\": \"videopreload\",\n \"tags\": [\"video\", \"media\"]\n}\n!*/\n\n Modernizr.addTest('videopreload', 'preload' in createElement('video'));\n\n\n // Run each test\n testRunner();\n\n // Remove the \"no-js\" class if it exists\n setClasses(classes);\n\n delete ModernizrProto.addTest;\n delete ModernizrProto.addAsyncTest;\n\n // Run the things that are supposed to run after the tests\n for (var i = 0; i < Modernizr._q.length; i++) {\n Modernizr._q[i]();\n }\n\n // Leak Modernizr namespace\n window.Modernizr = Modernizr;\n\n\n;\n\n})(window, document);","(function(){\n\t'use strict';\n\tif(!window.addEventListener){return;}\n\n\tvar regWhite = /\\s+/g;\n\tvar regSplitSet = /\\s*\\|\\s+|\\s+\\|\\s*/g;\n\tvar regSource = /^(.+?)(?:\\s+\\[\\s*(.+?)\\s*\\])?$/;\n\tvar allowedBackgroundSize = {contain: 1, cover: 1};\n\tvar proxyWidth = function(elem){\n\t\tvar width = lazySizes.gW(elem, elem.parentNode);\n\n\t\tif(!elem._lazysizesWidth || width > elem._lazysizesWidth){\n\t\t\telem._lazysizesWidth = width;\n\t\t}\n\t\treturn elem._lazysizesWidth;\n\t};\n\tvar getBgSize = function(elem){\n\t\tvar bgSize;\n\n\t\tbgSize = (getComputedStyle(elem) || {getPropertyValue: function(){}}).getPropertyValue('background-size');\n\n\t\tif(!allowedBackgroundSize[bgSize] && allowedBackgroundSize[elem.style.backgroundSize]){\n\t\t\tbgSize = elem.style.backgroundSize;\n\t\t}\n\n\t\treturn bgSize;\n\t};\n\tvar createPicture = function(sets, elem, img){\n\t\tvar picture = document.createElement('picture');\n\t\tvar sizes = elem.getAttribute(lazySizesConfig.sizesAttr);\n\t\tvar ratio = elem.getAttribute('data-ratio');\n\t\tvar optimumx = elem.getAttribute('data-optimumx');\n\n\t\tif(elem._lazybgset && elem._lazybgset.parentNode == elem){\n\t\t\telem.removeChild(elem._lazybgset);\n\t\t}\n\n\t\tObject.defineProperty(img, '_lazybgset', {\n\t\t\tvalue: elem,\n\t\t\twritable: true\n\t\t});\n\t\tObject.defineProperty(elem, '_lazybgset', {\n\t\t\tvalue: picture,\n\t\t\twritable: true\n\t\t});\n\n\t\tsets = sets.replace(regWhite, ' ').split(regSplitSet);\n\n\t\tpicture.style.display = 'none';\n\t\timg.className = lazySizesConfig.lazyClass;\n\n\t\tif(sets.length == 1 && !sizes){\n\t\t\tsizes = 'auto';\n\t\t}\n\n\t\tsets.forEach(function(set){\n\t\t\tvar source = document.createElement('source');\n\n\t\t\tif(sizes && sizes != 'auto'){\n\t\t\t\tsource.setAttribute('sizes', sizes);\n\t\t\t}\n\n\t\t\tif(set.match(regSource)){\n\t\t\t\tsource.setAttribute(lazySizesConfig.srcsetAttr, RegExp.$1);\n\t\t\t\tif(RegExp.$2){\n\t\t\t\t\tsource.setAttribute('media', lazySizesConfig.customMedia[RegExp.$2] || RegExp.$2);\n\t\t\t\t}\n\t\t\t}\n\t\t\tpicture.appendChild(source);\n\t\t});\n\n\t\tif(sizes){\n\t\t\timg.setAttribute(lazySizesConfig.sizesAttr, sizes);\n\t\t\telem.removeAttribute(lazySizesConfig.sizesAttr);\n\t\t\telem.removeAttribute('sizes');\n\t\t}\n\t\tif(optimumx){\n\t\t\timg.setAttribute('data-optimumx', optimumx);\n\t\t}\n\t\tif(ratio) {\n\t\t\timg.setAttribute('data-ratio', ratio);\n\t\t}\n\n\t\tpicture.appendChild(img);\n\n\t\telem.appendChild(picture);\n\t};\n\n\tvar proxyLoad = function(e){\n\t\tif(!e.target._lazybgset){return;}\n\n\t\tvar image = e.target;\n\t\tvar elem = image._lazybgset;\n\t\tvar bg = image.currentSrc || image.src;\n\n\t\tif(bg){\n\t\t\telem.style.backgroundImage = 'url('+ bg +')';\n\t\t}\n\n\t\tif(image._lazybgsetLoading){\n\t\t\tlazySizes.fire(elem, '_lazyloaded', {}, false, true);\n\t\t\tdelete image._lazybgsetLoading;\n\t\t}\n\t};\n\n\taddEventListener('lazybeforeunveil', function(e){\n\t\tvar set, image, elem;\n\n\t\tif(e.defaultPrevented || !(set = e.target.getAttribute('data-bgset'))){return;}\n\n\t\telem = e.target;\n\t\timage = document.createElement('img');\n\n\t\timage.alt = '';\n\n\t\timage._lazybgsetLoading = true;\n\t\te.detail.firesLoad = true;\n\n\t\tcreatePicture(set, elem, image);\n\n\t\tsetTimeout(function(){\n\t\t\tlazySizes.loader.unveil(image);\n\n\t\t\tlazySizes.rAF(function(){\n\t\t\t\tlazySizes.fire(image, '_lazyloaded', {}, true, true);\n\t\t\t\tif(image.complete) {\n\t\t\t\t\tproxyLoad({target: image});\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\n\t});\n\n\tdocument.addEventListener('load', proxyLoad, true);\n\n\twindow.addEventListener('lazybeforesizes', function(e){\n\t\tif(e.target._lazybgset && e.detail.dataAttr){\n\t\t\tvar elem = e.target._lazybgset;\n\t\t\tvar bgSize = getBgSize(elem);\n\n\t\t\tif(allowedBackgroundSize[bgSize]){\n\t\t\t\te.target._lazysizesParentFit = bgSize;\n\n\t\t\t\tlazySizes.rAF(function(){\n\t\t\t\t\te.target.setAttribute('data-parent-fit', bgSize);\n\t\t\t\t\tif(e.target._lazysizesParentFit){\n\t\t\t\t\t\tdelete e.target._lazysizesParentFit;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}, true);\n\n\tdocument.documentElement.addEventListener('lazybeforesizes', function(e){\n\t\tif(e.defaultPrevented || !e.target._lazybgset){return;}\n\t\te.detail.width = proxyWidth(e.target._lazybgset);\n\t});\n})();\n","(function(window, factory) {\n var lazySizes = factory(window, window.document);\n window.lazySizes = lazySizes;\n if(typeof module == 'object' && module.exports){\n module.exports = lazySizes;\n }\n}(window, function l(window, document) {\n 'use strict';\n /*jshint eqnull:true */\n if(!document.getElementsByClassName){return;}\n\n var lazySizesConfig;\n\n var docElem = document.documentElement;\n\n var Date = window.Date;\n\n var supportPicture = window.HTMLPictureElement;\n\n var _addEventListener = 'addEventListener';\n\n var _getAttribute = 'getAttribute';\n\n var addEventListener = window[_addEventListener];\n\n var setTimeout = window.setTimeout;\n\n var requestAnimationFrame = window.requestAnimationFrame || setTimeout;\n\n var requestIdleCallback = window.requestIdleCallback;\n\n var regPicture = /^picture$/i;\n\n var loadEvents = ['load', 'error', 'lazyincluded', '_lazyloaded'];\n\n var regClassCache = {};\n\n var forEach = Array.prototype.forEach;\n\n var hasClass = function(ele, cls) {\n if(!regClassCache[cls]){\n regClassCache[cls] = new RegExp('(\\\\s|^)'+cls+'(\\\\s|$)');\n }\n return regClassCache[cls].test(ele[_getAttribute]('class') || '') && regClassCache[cls];\n };\n\n var addClass = function(ele, cls) {\n if (!hasClass(ele, cls)){\n ele.setAttribute('class', (ele[_getAttribute]('class') || '').trim() + ' ' + cls);\n }\n };\n\n var removeClass = function(ele, cls) {\n var reg;\n if ((reg = hasClass(ele,cls))) {\n ele.setAttribute('class', (ele[_getAttribute]('class') || '').replace(reg, ' '));\n }\n };\n\n var addRemoveLoadEvents = function(dom, fn, add){\n var action = add ? _addEventListener : 'removeEventListener';\n if(add){\n addRemoveLoadEvents(dom, fn);\n }\n loadEvents.forEach(function(evt){\n dom[action](evt, fn);\n });\n };\n\n var triggerEvent = function(elem, name, detail, noBubbles, noCancelable){\n var event = document.createEvent('CustomEvent');\n\n event.initCustomEvent(name, !noBubbles, !noCancelable, detail || {});\n\n elem.dispatchEvent(event);\n return event;\n };\n\n var updatePolyfill = function (el, full){\n var polyfill;\n if( !supportPicture && ( polyfill = (window.picturefill || lazySizesConfig.pf) ) ){\n polyfill({reevaluate: true, elements: [el]});\n } else if(full && full.src){\n el.src = full.src;\n }\n };\n\n var getCSS = function (elem, style){\n return (getComputedStyle(elem, null) || {})[style];\n };\n\n var getWidth = function(elem, parent, width){\n width = width || elem.offsetWidth;\n\n while(width < lazySizesConfig.minSize && parent && !elem._lazysizesWidth){\n width = parent.offsetWidth;\n parent = parent.parentNode;\n }\n\n return width;\n };\n\n var rAF = (function(){\n var running, waiting;\n var fns = [];\n\n var run = function(){\n var fn;\n running = true;\n waiting = false;\n while(fns.length){\n fn = fns.shift();\n fn[0].apply(fn[1], fn[2]);\n }\n running = false;\n };\n\n return function(fn){\n if(running){\n fn.apply(this, arguments);\n } else {\n fns.push([fn, this, arguments]);\n\n if(!waiting){\n waiting = true;\n (document.hidden ? setTimeout : requestAnimationFrame)(run);\n }\n }\n };\n })();\n\n var rAFIt = function(fn, simple){\n return simple ?\n function() {\n rAF(fn);\n } :\n function(){\n var that = this;\n var args = arguments;\n rAF(function(){\n fn.apply(that, args);\n });\n }\n ;\n };\n\n var throttle = function(fn){\n var running;\n var lastTime = 0;\n var gDelay = 125;\n var RIC_DEFAULT_TIMEOUT = 999;\n var rICTimeout = RIC_DEFAULT_TIMEOUT;\n var run = function(){\n running = false;\n lastTime = Date.now();\n fn();\n };\n var idleCallback = requestIdleCallback ?\n function(){\n requestIdleCallback(run, {timeout: rICTimeout});\n if(rICTimeout !== RIC_DEFAULT_TIMEOUT){\n rICTimeout = RIC_DEFAULT_TIMEOUT;\n }\n }:\n rAFIt(function(){\n setTimeout(run);\n }, true)\n ;\n\n return function(isPriority){\n var delay;\n if((isPriority = isPriority === true)){\n rICTimeout = 66;\n }\n\n if(running){\n return;\n }\n\n running = true;\n\n delay = gDelay - (Date.now() - lastTime);\n\n if(delay < 0){\n delay = 0;\n }\n\n if(isPriority || (delay < 9 && requestIdleCallback)){\n idleCallback();\n } else {\n setTimeout(idleCallback, delay);\n }\n };\n };\n\n //based on http://modernjavascript.blogspot.de/2013/08/building-better-debounce.html\n var debounce = function(func) {\n var timeout, timestamp;\n var wait = 99;\n var run = function(){\n timeout = null;\n func();\n };\n var later = function() {\n var last = Date.now() - timestamp;\n\n if (last < wait) {\n setTimeout(later, wait - last);\n } else {\n (requestIdleCallback || run)(run);\n }\n };\n\n return function() {\n timestamp = Date.now();\n\n if (!timeout) {\n timeout = setTimeout(later, wait);\n }\n };\n };\n\n\n var loader = (function(){\n var lazyloadElems, preloadElems, isCompleted, resetPreloadingTimer, loadMode, started;\n\n var eLvW, elvH, eLtop, eLleft, eLright, eLbottom;\n\n var defaultExpand, preloadExpand, hFac;\n\n var regImg = /^img$/i;\n var regIframe = /^iframe$/i;\n\n var supportScroll = ('onscroll' in window) && !(/glebot/.test(navigator.userAgent));\n\n var shrinkExpand = 0;\n var currentExpand = 0;\n\n var isLoading = 0;\n var lowRuns = 0;\n\n var resetPreloading = function(e){\n isLoading--;\n if(e && e.target){\n addRemoveLoadEvents(e.target, resetPreloading);\n }\n\n if(!e || isLoading < 0 || !e.target){\n isLoading = 0;\n }\n };\n\n var isNestedVisible = function(elem, elemExpand){\n var outerRect;\n var parent = elem;\n var visible = getCSS(document.body, 'visibility') == 'hidden' || getCSS(elem, 'visibility') != 'hidden';\n\n eLtop -= elemExpand;\n eLbottom += elemExpand;\n eLleft -= elemExpand;\n eLright += elemExpand;\n\n while(visible && (parent = parent.offsetParent) && parent != document.body && parent != docElem){\n visible = ((getCSS(parent, 'opacity') || 1) > 0);\n\n if(visible && getCSS(parent, 'overflow') != 'visible'){\n outerRect = parent.getBoundingClientRect();\n visible = eLright > outerRect.left &&\n eLleft < outerRect.right &&\n eLbottom > outerRect.top - 1 &&\n eLtop < outerRect.bottom + 1\n ;\n }\n }\n\n return visible;\n };\n\n var checkElements = function() {\n var eLlen, i, rect, autoLoadElem, loadedSomething, elemExpand, elemNegativeExpand, elemExpandVal, beforeExpandVal;\n\n if((loadMode = lazySizesConfig.loadMode) && isLoading < 8 && (eLlen = lazyloadElems.length)){\n\n i = 0;\n\n lowRuns++;\n\n if(preloadExpand == null){\n if(!('expand' in lazySizesConfig)){\n lazySizesConfig.expand = docElem.clientHeight > 500 ? 500 : 400;\n }\n\n defaultExpand = lazySizesConfig.expand;\n preloadExpand = defaultExpand * lazySizesConfig.expFactor;\n }\n\n if(currentExpand < preloadExpand && isLoading < 1 && lowRuns > 3 && loadMode > 2){\n currentExpand = preloadExpand;\n lowRuns = 0;\n } else if(loadMode > 1 && lowRuns > 2 && isLoading < 6){\n currentExpand = defaultExpand;\n } else {\n currentExpand = shrinkExpand;\n }\n\n for(; i < eLlen; i++){\n\n if(!lazyloadElems[i] || lazyloadElems[i]._lazyRace){continue;}\n\n if(!supportScroll){unveilElement(lazyloadElems[i]);continue;}\n\n if(!(elemExpandVal = lazyloadElems[i][_getAttribute]('data-expand')) || !(elemExpand = elemExpandVal * 1)){\n elemExpand = currentExpand;\n }\n\n if(beforeExpandVal !== elemExpand){\n eLvW = innerWidth + (elemExpand * hFac);\n elvH = innerHeight + elemExpand;\n elemNegativeExpand = elemExpand * -1;\n beforeExpandVal = elemExpand;\n }\n\n rect = lazyloadElems[i].getBoundingClientRect();\n\n if ((eLbottom = rect.bottom) >= elemNegativeExpand &&\n (eLtop = rect.top) <= elvH &&\n (eLright = rect.right) >= elemNegativeExpand * hFac &&\n (eLleft = rect.left) <= eLvW &&\n (eLbottom || eLright || eLleft || eLtop) &&\n ((isCompleted && isLoading < 3 && !elemExpandVal && (loadMode < 3 || lowRuns < 4)) || isNestedVisible(lazyloadElems[i], elemExpand))){\n unveilElement(lazyloadElems[i]);\n loadedSomething = true;\n if(isLoading > 9){break;}\n } else if(!loadedSomething && isCompleted && !autoLoadElem &&\n isLoading < 4 && lowRuns < 4 && loadMode > 2 &&\n (preloadElems[0] || lazySizesConfig.preloadAfterLoad) &&\n (preloadElems[0] || (!elemExpandVal && ((eLbottom || eLright || eLleft || eLtop) || lazyloadElems[i][_getAttribute](lazySizesConfig.sizesAttr) != 'auto')))){\n autoLoadElem = preloadElems[0] || lazyloadElems[i];\n }\n }\n\n if(autoLoadElem && !loadedSomething){\n unveilElement(autoLoadElem);\n }\n }\n };\n\n var throttledCheckElements = throttle(checkElements);\n\n var switchLoadingClass = function(e){\n addClass(e.target, lazySizesConfig.loadedClass);\n removeClass(e.target, lazySizesConfig.loadingClass);\n addRemoveLoadEvents(e.target, rafSwitchLoadingClass);\n };\n var rafedSwitchLoadingClass = rAFIt(switchLoadingClass);\n var rafSwitchLoadingClass = function(e){\n rafedSwitchLoadingClass({target: e.target});\n };\n\n var changeIframeSrc = function(elem, src){\n try {\n elem.contentWindow.location.replace(src);\n } catch(e){\n elem.src = src;\n }\n };\n\n var handleSources = function(source){\n var customMedia, parent;\n\n var sourceSrcset = source[_getAttribute](lazySizesConfig.srcsetAttr);\n\n if( (customMedia = lazySizesConfig.customMedia[source[_getAttribute]('data-media') || source[_getAttribute]('media')]) ){\n source.setAttribute('media', customMedia);\n }\n\n if(sourceSrcset){\n source.setAttribute('srcset', sourceSrcset);\n }\n\n //https://bugzilla.mozilla.org/show_bug.cgi?id=1170572\n if(customMedia){\n parent = source.parentNode;\n parent.insertBefore(source.cloneNode(), source);\n parent.removeChild(source);\n }\n };\n\n var lazyUnveil = rAFIt(function (elem, detail, isAuto, sizes, isImg){\n var src, srcset, parent, isPicture, event, firesLoad;\n\n if(!(event = triggerEvent(elem, 'lazybeforeunveil', detail)).defaultPrevented){\n\n if(sizes){\n if(isAuto){\n addClass(elem, lazySizesConfig.autosizesClass);\n } else {\n elem.setAttribute('sizes', sizes);\n }\n }\n\n srcset = elem[_getAttribute](lazySizesConfig.srcsetAttr);\n src = elem[_getAttribute](lazySizesConfig.srcAttr);\n\n if(isImg) {\n parent = elem.parentNode;\n isPicture = parent && regPicture.test(parent.nodeName || '');\n }\n\n firesLoad = detail.firesLoad || (('src' in elem) && (srcset || src || isPicture));\n\n event = {target: elem};\n\n if(firesLoad){\n addRemoveLoadEvents(elem, resetPreloading, true);\n clearTimeout(resetPreloadingTimer);\n resetPreloadingTimer = setTimeout(resetPreloading, 2500);\n\n addClass(elem, lazySizesConfig.loadingClass);\n addRemoveLoadEvents(elem, rafSwitchLoadingClass, true);\n }\n\n if(isPicture){\n forEach.call(parent.getElementsByTagName('source'), handleSources);\n }\n\n if(srcset){\n elem.setAttribute('srcset', srcset);\n } else if(src && !isPicture){\n if(regIframe.test(elem.nodeName)){\n changeIframeSrc(elem, src);\n } else {\n elem.src = src;\n }\n }\n\n if(srcset || isPicture){\n updatePolyfill(elem, {src: src});\n }\n }\n\n rAF(function(){\n if(elem._lazyRace){\n delete elem._lazyRace;\n }\n removeClass(elem, lazySizesConfig.lazyClass);\n\n if( !firesLoad || elem.complete ){\n if(firesLoad){\n resetPreloading(event);\n } else {\n isLoading--;\n }\n switchLoadingClass(event);\n }\n });\n });\n\n var unveilElement = function (elem){\n var detail;\n\n var isImg = regImg.test(elem.nodeName);\n\n //allow using sizes=\"auto\", but don't use. it's invalid. Use data-sizes=\"auto\" or a valid value for sizes instead (i.e.: sizes=\"80vw\")\n var sizes = isImg && (elem[_getAttribute](lazySizesConfig.sizesAttr) || elem[_getAttribute]('sizes'));\n var isAuto = sizes == 'auto';\n\n if( (isAuto || !isCompleted) && isImg && (elem.src || elem.srcset) && !elem.complete && !hasClass(elem, lazySizesConfig.errorClass)){return;}\n\n detail = triggerEvent(elem, 'lazyunveilread').detail;\n\n if(isAuto){\n autoSizer.updateElem(elem, true, elem.offsetWidth);\n }\n\n elem._lazyRace = true;\n isLoading++;\n\n lazyUnveil(elem, detail, isAuto, sizes, isImg);\n };\n\n var onload = function(){\n if(isCompleted){return;}\n if(Date.now() - started < 999){\n setTimeout(onload, 999);\n return;\n }\n var afterScroll = debounce(function(){\n lazySizesConfig.loadMode = 3;\n throttledCheckElements();\n });\n\n isCompleted = true;\n\n lazySizesConfig.loadMode = 3;\n\n throttledCheckElements();\n\n addEventListener('scroll', function(){\n if(lazySizesConfig.loadMode == 3){\n lazySizesConfig.loadMode = 2;\n }\n afterScroll();\n }, true);\n };\n\n return {\n _: function(){\n started = Date.now();\n\n lazyloadElems = document.getElementsByClassName(lazySizesConfig.lazyClass);\n preloadElems = document.getElementsByClassName(lazySizesConfig.lazyClass + ' ' + lazySizesConfig.preloadClass);\n hFac = lazySizesConfig.hFac;\n\n addEventListener('scroll', throttledCheckElements, true);\n\n addEventListener('resize', throttledCheckElements, true);\n\n if(window.MutationObserver){\n new MutationObserver( throttledCheckElements ).observe( docElem, {childList: true, subtree: true, attributes: true} );\n } else {\n docElem[_addEventListener]('DOMNodeInserted', throttledCheckElements, true);\n docElem[_addEventListener]('DOMAttrModified', throttledCheckElements, true);\n setInterval(throttledCheckElements, 999);\n }\n\n addEventListener('hashchange', throttledCheckElements, true);\n\n //, 'fullscreenchange'\n ['focus', 'mouseover', 'click', 'load', 'transitionend', 'animationend', 'webkitAnimationEnd'].forEach(function(name){\n document[_addEventListener](name, throttledCheckElements, true);\n });\n\n if((/d$|^c/.test(document.readyState))){\n onload();\n } else {\n addEventListener('load', onload);\n document[_addEventListener]('DOMContentLoaded', throttledCheckElements);\n setTimeout(onload, 20000);\n }\n\n throttledCheckElements(lazyloadElems.length > 0);\n },\n checkElems: throttledCheckElements,\n unveil: unveilElement\n };\n })();\n\n\n var autoSizer = (function(){\n var autosizesElems;\n\n var sizeElement = rAFIt(function(elem, parent, event, width){\n var sources, i, len;\n elem._lazysizesWidth = width;\n width += 'px';\n\n elem.setAttribute('sizes', width);\n\n if(regPicture.test(parent.nodeName || '')){\n sources = parent.getElementsByTagName('source');\n for(i = 0, len = sources.length; i < len; i++){\n sources[i].setAttribute('sizes', width);\n }\n }\n\n if(!event.detail.dataAttr){\n updatePolyfill(elem, event.detail);\n }\n });\n var getSizeElement = function (elem, dataAttr, width){\n var event;\n var parent = elem.parentNode;\n\n if(parent){\n width = getWidth(elem, parent, width);\n event = triggerEvent(elem, 'lazybeforesizes', {width: width, dataAttr: !!dataAttr});\n\n if(!event.defaultPrevented){\n width = event.detail.width;\n\n if(width && width !== elem._lazysizesWidth){\n sizeElement(elem, parent, event, width);\n }\n }\n }\n };\n\n var updateElementsSizes = function(){\n var i;\n var len = autosizesElems.length;\n if(len){\n i = 0;\n\n for(; i < len; i++){\n getSizeElement(autosizesElems[i]);\n }\n }\n };\n\n var debouncedUpdateElementsSizes = debounce(updateElementsSizes);\n\n return {\n _: function(){\n autosizesElems = document.getElementsByClassName(lazySizesConfig.autosizesClass);\n addEventListener('resize', debouncedUpdateElementsSizes);\n },\n checkElems: debouncedUpdateElementsSizes,\n updateElem: getSizeElement\n };\n })();\n\n var init = function(){\n if(!init.i){\n init.i = true;\n autoSizer._();\n loader._();\n }\n };\n\n (function(){\n var prop;\n\n var lazySizesDefaults = {\n lazyClass: 'lazyload',\n loadedClass: 'lazyloaded',\n loadingClass: 'lazyloading',\n preloadClass: 'lazypreload',\n errorClass: 'lazyerror',\n //strictClass: 'lazystrict',\n autosizesClass: 'lazyautosizes',\n srcAttr: 'data-src',\n srcsetAttr: 'data-srcset',\n sizesAttr: 'data-sizes',\n //preloadAfterLoad: false,\n minSize: 40,\n customMedia: {},\n init: true,\n expFactor: 1.5,\n hFac: 0.8,\n loadMode: 2\n };\n\n lazySizesConfig = window.lazySizesConfig || window.lazysizesConfig || {};\n\n for(prop in lazySizesDefaults){\n if(!(prop in lazySizesConfig)){\n lazySizesConfig[prop] = lazySizesDefaults[prop];\n }\n }\n\n window.lazySizesConfig = lazySizesConfig;\n\n setTimeout(function(){\n if(lazySizesConfig.init){\n init();\n }\n });\n })();\n\n return {\n cfg: lazySizesConfig,\n autoSizer: autoSizer,\n loader: loader,\n init: init,\n uP: updatePolyfill,\n aC: addClass,\n rC: removeClass,\n hC: hasClass,\n fire: triggerEvent,\n gW: getWidth,\n rAF: rAF,\n };\n}\n));\n","/*!\n\tAutosize 3.0.20\n\tlicense: MIT\n\thttp://www.jacklmoore.com/autosize\n*/\n(function (global, factory) {\n\tif (typeof define === 'function' && define.amd) {\n\t\tdefine(['exports', 'module'], factory);\n\t} else if (typeof exports !== 'undefined' && typeof module !== 'undefined') {\n\t\tfactory(exports, module);\n\t} else {\n\t\tvar mod = {\n\t\t\texports: {}\n\t\t};\n\t\tfactory(mod.exports, mod);\n\t\tglobal.autosize = mod.exports;\n\t}\n})(this, function (exports, module) {\n\t'use strict';\n\n\tvar map = typeof Map === \"function\" ? new Map() : (function () {\n\t\tvar keys = [];\n\t\tvar values = [];\n\n\t\treturn {\n\t\t\thas: function has(key) {\n\t\t\t\treturn keys.indexOf(key) > -1;\n\t\t\t},\n\t\t\tget: function get(key) {\n\t\t\t\treturn values[keys.indexOf(key)];\n\t\t\t},\n\t\t\tset: function set(key, value) {\n\t\t\t\tif (keys.indexOf(key) === -1) {\n\t\t\t\t\tkeys.push(key);\n\t\t\t\t\tvalues.push(value);\n\t\t\t\t}\n\t\t\t},\n\t\t\t'delete': function _delete(key) {\n\t\t\t\tvar index = keys.indexOf(key);\n\t\t\t\tif (index > -1) {\n\t\t\t\t\tkeys.splice(index, 1);\n\t\t\t\t\tvalues.splice(index, 1);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t})();\n\n\tvar createEvent = function createEvent(name) {\n\t\treturn new Event(name, { bubbles: true });\n\t};\n\ttry {\n\t\tnew Event('test');\n\t} catch (e) {\n\t\t// IE does not support `new Event()`\n\t\tcreateEvent = function (name) {\n\t\t\tvar evt = document.createEvent('Event');\n\t\t\tevt.initEvent(name, true, false);\n\t\t\treturn evt;\n\t\t};\n\t}\n\n\tfunction assign(ta) {\n\t\tif (!ta || !ta.nodeName || ta.nodeName !== 'TEXTAREA' || map.has(ta)) return;\n\n\t\tvar heightOffset = null;\n\t\tvar clientWidth = ta.clientWidth;\n\t\tvar cachedHeight = null;\n\n\t\tfunction init() {\n\t\t\tvar style = window.getComputedStyle(ta, null);\n\n\t\t\tif (style.resize === 'vertical') {\n\t\t\t\tta.style.resize = 'none';\n\t\t\t} else if (style.resize === 'both') {\n\t\t\t\tta.style.resize = 'horizontal';\n\t\t\t}\n\n\t\t\tif (style.boxSizing === 'content-box') {\n\t\t\t\theightOffset = -(parseFloat(style.paddingTop) + parseFloat(style.paddingBottom));\n\t\t\t} else {\n\t\t\t\theightOffset = parseFloat(style.borderTopWidth) + parseFloat(style.borderBottomWidth);\n\t\t\t}\n\t\t\t// Fix when a textarea is not on document body and heightOffset is Not a Number\n\t\t\tif (isNaN(heightOffset)) {\n\t\t\t\theightOffset = 0;\n\t\t\t}\n\n\t\t\tupdate();\n\t\t}\n\n\t\tfunction changeOverflow(value) {\n\t\t\t{\n\t\t\t\t// Chrome/Safari-specific fix:\n\t\t\t\t// When the textarea y-overflow is hidden, Chrome/Safari do not reflow the text to account for the space\n\t\t\t\t// made available by removing the scrollbar. The following forces the necessary text reflow.\n\t\t\t\tvar width = ta.style.width;\n\t\t\t\tta.style.width = '0px';\n\t\t\t\t// Force reflow:\n\t\t\t\t/* jshint ignore:start */\n\t\t\t\tta.offsetWidth;\n\t\t\t\t/* jshint ignore:end */\n\t\t\t\tta.style.width = width;\n\t\t\t}\n\n\t\t\tta.style.overflowY = value;\n\t\t}\n\n\t\tfunction getParentOverflows(el) {\n\t\t\tvar arr = [];\n\n\t\t\twhile (el && el.parentNode && el.parentNode instanceof Element) {\n\t\t\t\tif (el.parentNode.scrollTop) {\n\t\t\t\t\tarr.push({\n\t\t\t\t\t\tnode: el.parentNode,\n\t\t\t\t\t\tscrollTop: el.parentNode.scrollTop\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tel = el.parentNode;\n\t\t\t}\n\n\t\t\treturn arr;\n\t\t}\n\n\t\tfunction resize() {\n\t\t\tvar originalHeight = ta.style.height;\n\t\t\tvar overflows = getParentOverflows(ta);\n\t\t\tvar docTop = document.documentElement && document.documentElement.scrollTop; // Needed for Mobile IE (ticket #240)\n\n\t\t\tta.style.height = 'auto';\n\n\t\t\tvar endHeight = ta.scrollHeight + heightOffset;\n\n\t\t\tif (ta.scrollHeight === 0) {\n\t\t\t\t// If the scrollHeight is 0, then the element probably has display:none or is detached from the DOM.\n\t\t\t\tta.style.height = originalHeight;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tta.style.height = endHeight + 'px';\n\n\t\t\t// used to check if an update is actually necessary on window.resize\n\t\t\tclientWidth = ta.clientWidth;\n\n\t\t\t// prevents scroll-position jumping\n\t\t\toverflows.forEach(function (el) {\n\t\t\t\tel.node.scrollTop = el.scrollTop;\n\t\t\t});\n\n\t\t\tif (docTop) {\n\t\t\t\tdocument.documentElement.scrollTop = docTop;\n\t\t\t}\n\t\t}\n\n\t\tfunction update() {\n\t\t\tresize();\n\n\t\t\tvar styleHeight = Math.round(parseFloat(ta.style.height));\n\t\t\tvar computed = window.getComputedStyle(ta, null);\n\t\t\tvar actualHeight = Math.round(parseFloat(computed.height));\n\n\t\t\t// The actual height not matching the style height (set via the resize method) indicates that\n\t\t\t// the max-height has been exceeded, in which case the overflow should be set to visible.\n\t\t\tif (actualHeight !== styleHeight) {\n\t\t\t\tif (computed.overflowY !== 'visible') {\n\t\t\t\t\tchangeOverflow('visible');\n\t\t\t\t\tresize();\n\t\t\t\t\tactualHeight = Math.round(parseFloat(window.getComputedStyle(ta, null).height));\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Normally keep overflow set to hidden, to avoid flash of scrollbar as the textarea expands.\n\t\t\t\tif (computed.overflowY !== 'hidden') {\n\t\t\t\t\tchangeOverflow('hidden');\n\t\t\t\t\tresize();\n\t\t\t\t\tactualHeight = Math.round(parseFloat(window.getComputedStyle(ta, null).height));\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (cachedHeight !== actualHeight) {\n\t\t\t\tcachedHeight = actualHeight;\n\t\t\t\tvar evt = createEvent('autosize:resized');\n\t\t\t\ttry {\n\t\t\t\t\tta.dispatchEvent(evt);\n\t\t\t\t} catch (err) {\n\t\t\t\t\t// Firefox will throw an error on dispatchEvent for a detached element\n\t\t\t\t\t// https://bugzilla.mozilla.org/show_bug.cgi?id=889376\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tvar pageResize = function pageResize() {\n\t\t\tif (ta.clientWidth !== clientWidth) {\n\t\t\t\tupdate();\n\t\t\t}\n\t\t};\n\n\t\tvar destroy = (function (style) {\n\t\t\twindow.removeEventListener('resize', pageResize, false);\n\t\t\tta.removeEventListener('input', update, false);\n\t\t\tta.removeEventListener('keyup', update, false);\n\t\t\tta.removeEventListener('autosize:destroy', destroy, false);\n\t\t\tta.removeEventListener('autosize:update', update, false);\n\n\t\t\tObject.keys(style).forEach(function (key) {\n\t\t\t\tta.style[key] = style[key];\n\t\t\t});\n\n\t\t\tmap['delete'](ta);\n\t\t}).bind(ta, {\n\t\t\theight: ta.style.height,\n\t\t\tresize: ta.style.resize,\n\t\t\toverflowY: ta.style.overflowY,\n\t\t\toverflowX: ta.style.overflowX,\n\t\t\twordWrap: ta.style.wordWrap\n\t\t});\n\n\t\tta.addEventListener('autosize:destroy', destroy, false);\n\n\t\t// IE9 does not fire onpropertychange or oninput for deletions,\n\t\t// so binding to onkeyup to catch most of those events.\n\t\t// There is no way that I know of to detect something like 'cut' in IE9.\n\t\tif ('onpropertychange' in ta && 'oninput' in ta) {\n\t\t\tta.addEventListener('keyup', update, false);\n\t\t}\n\n\t\twindow.addEventListener('resize', pageResize, false);\n\t\tta.addEventListener('input', update, false);\n\t\tta.addEventListener('autosize:update', update, false);\n\t\tta.style.overflowX = 'hidden';\n\t\tta.style.wordWrap = 'break-word';\n\n\t\tmap.set(ta, {\n\t\t\tdestroy: destroy,\n\t\t\tupdate: update\n\t\t});\n\n\t\tinit();\n\t}\n\n\tfunction destroy(ta) {\n\t\tvar methods = map.get(ta);\n\t\tif (methods) {\n\t\t\tmethods.destroy();\n\t\t}\n\t}\n\n\tfunction update(ta) {\n\t\tvar methods = map.get(ta);\n\t\tif (methods) {\n\t\t\tmethods.update();\n\t\t}\n\t}\n\n\tvar autosize = null;\n\n\t// Do nothing in Node.js environment and IE8 (or lower)\n\tif (typeof window === 'undefined' || typeof window.getComputedStyle !== 'function') {\n\t\tautosize = function (el) {\n\t\t\treturn el;\n\t\t};\n\t\tautosize.destroy = function (el) {\n\t\t\treturn el;\n\t\t};\n\t\tautosize.update = function (el) {\n\t\t\treturn el;\n\t\t};\n\t} else {\n\t\tautosize = function (el, options) {\n\t\t\tif (el) {\n\t\t\t\tArray.prototype.forEach.call(el.length ? el : [el], function (x) {\n\t\t\t\t\treturn assign(x, options);\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn el;\n\t\t};\n\t\tautosize.destroy = function (el) {\n\t\t\tif (el) {\n\t\t\t\tArray.prototype.forEach.call(el.length ? el : [el], destroy);\n\t\t\t}\n\t\t\treturn el;\n\t\t};\n\t\tautosize.update = function (el) {\n\t\t\tif (el) {\n\t\t\t\tArray.prototype.forEach.call(el.length ? el : [el], update);\n\t\t\t}\n\t\t\treturn el;\n\t\t};\n\t}\n\n\tmodule.exports = autosize;\n});\n","/*!\nWaypoints - 4.0.1\nCopyright © 2011-2016 Caleb Troughton\nLicensed under the MIT license.\nhttps://github.com/imakewebthings/waypoints/blob/master/licenses.txt\n*/\n(function() {\n 'use strict'\n\n var keyCounter = 0\n var allWaypoints = {}\n\n /* http://imakewebthings.com/waypoints/api/waypoint */\n function Waypoint(options) {\n if (!options) {\n throw new Error('No options passed to Waypoint constructor')\n }\n if (!options.element) {\n throw new Error('No element option passed to Waypoint constructor')\n }\n if (!options.handler) {\n throw new Error('No handler option passed to Waypoint constructor')\n }\n\n this.key = 'waypoint-' + keyCounter\n this.options = Waypoint.Adapter.extend({}, Waypoint.defaults, options)\n this.element = this.options.element\n this.adapter = new Waypoint.Adapter(this.element)\n this.callback = options.handler\n this.axis = this.options.horizontal ? 'horizontal' : 'vertical'\n this.enabled = this.options.enabled\n this.triggerPoint = null\n this.group = Waypoint.Group.findOrCreate({\n name: this.options.group,\n axis: this.axis\n })\n this.context = Waypoint.Context.findOrCreateByElement(this.options.context)\n\n if (Waypoint.offsetAliases[this.options.offset]) {\n this.options.offset = Waypoint.offsetAliases[this.options.offset]\n }\n this.group.add(this)\n this.context.add(this)\n allWaypoints[this.key] = this\n keyCounter += 1\n }\n\n /* Private */\n Waypoint.prototype.queueTrigger = function(direction) {\n this.group.queueTrigger(this, direction)\n }\n\n /* Private */\n Waypoint.prototype.trigger = function(args) {\n if (!this.enabled) {\n return\n }\n if (this.callback) {\n this.callback.apply(this, args)\n }\n }\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/destroy */\n Waypoint.prototype.destroy = function() {\n this.context.remove(this)\n this.group.remove(this)\n delete allWaypoints[this.key]\n }\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/disable */\n Waypoint.prototype.disable = function() {\n this.enabled = false\n return this\n }\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/enable */\n Waypoint.prototype.enable = function() {\n this.context.refresh()\n this.enabled = true\n return this\n }\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/next */\n Waypoint.prototype.next = function() {\n return this.group.next(this)\n }\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/previous */\n Waypoint.prototype.previous = function() {\n return this.group.previous(this)\n }\n\n /* Private */\n Waypoint.invokeAll = function(method) {\n var allWaypointsArray = []\n for (var waypointKey in allWaypoints) {\n allWaypointsArray.push(allWaypoints[waypointKey])\n }\n for (var i = 0, end = allWaypointsArray.length; i < end; i++) {\n allWaypointsArray[i][method]()\n }\n }\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/destroy-all */\n Waypoint.destroyAll = function() {\n Waypoint.invokeAll('destroy')\n }\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/disable-all */\n Waypoint.disableAll = function() {\n Waypoint.invokeAll('disable')\n }\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/enable-all */\n Waypoint.enableAll = function() {\n Waypoint.Context.refreshAll()\n for (var waypointKey in allWaypoints) {\n allWaypoints[waypointKey].enabled = true\n }\n return this\n }\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/refresh-all */\n Waypoint.refreshAll = function() {\n Waypoint.Context.refreshAll()\n }\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/viewport-height */\n Waypoint.viewportHeight = function() {\n return window.innerHeight || document.documentElement.clientHeight\n }\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/viewport-width */\n Waypoint.viewportWidth = function() {\n return document.documentElement.clientWidth\n }\n\n Waypoint.adapters = []\n\n Waypoint.defaults = {\n context: window,\n continuous: true,\n enabled: true,\n group: 'default',\n horizontal: false,\n offset: 0\n }\n\n Waypoint.offsetAliases = {\n 'bottom-in-view': function() {\n return this.context.innerHeight() - this.adapter.outerHeight()\n },\n 'right-in-view': function() {\n return this.context.innerWidth() - this.adapter.outerWidth()\n }\n }\n\n window.Waypoint = Waypoint\n}())\n;(function() {\n 'use strict'\n\n function requestAnimationFrameShim(callback) {\n window.setTimeout(callback, 1000 / 60)\n }\n\n var keyCounter = 0\n var contexts = {}\n var Waypoint = window.Waypoint\n var oldWindowLoad = window.onload\n\n /* http://imakewebthings.com/waypoints/api/context */\n function Context(element) {\n this.element = element\n this.Adapter = Waypoint.Adapter\n this.adapter = new this.Adapter(element)\n this.key = 'waypoint-context-' + keyCounter\n this.didScroll = false\n this.didResize = false\n this.oldScroll = {\n x: this.adapter.scrollLeft(),\n y: this.adapter.scrollTop()\n }\n this.waypoints = {\n vertical: {},\n horizontal: {}\n }\n\n element.waypointContextKey = this.key\n contexts[element.waypointContextKey] = this\n keyCounter += 1\n if (!Waypoint.windowContext) {\n Waypoint.windowContext = true\n Waypoint.windowContext = new Context(window)\n }\n\n this.createThrottledScrollHandler()\n this.createThrottledResizeHandler()\n }\n\n /* Private */\n Context.prototype.add = function(waypoint) {\n var axis = waypoint.options.horizontal ? 'horizontal' : 'vertical'\n this.waypoints[axis][waypoint.key] = waypoint\n this.refresh()\n }\n\n /* Private */\n Context.prototype.checkEmpty = function() {\n var horizontalEmpty = this.Adapter.isEmptyObject(this.waypoints.horizontal)\n var verticalEmpty = this.Adapter.isEmptyObject(this.waypoints.vertical)\n var isWindow = this.element == this.element.window\n if (horizontalEmpty && verticalEmpty && !isWindow) {\n this.adapter.off('.waypoints')\n delete contexts[this.key]\n }\n }\n\n /* Private */\n Context.prototype.createThrottledResizeHandler = function() {\n var self = this\n\n function resizeHandler() {\n self.handleResize()\n self.didResize = false\n }\n\n this.adapter.on('resize.waypoints', function() {\n if (!self.didResize) {\n self.didResize = true\n Waypoint.requestAnimationFrame(resizeHandler)\n }\n })\n }\n\n /* Private */\n Context.prototype.createThrottledScrollHandler = function() {\n var self = this\n function scrollHandler() {\n self.handleScroll()\n self.didScroll = false\n }\n\n this.adapter.on('scroll.waypoints', function() {\n if (!self.didScroll || Waypoint.isTouch) {\n self.didScroll = true\n Waypoint.requestAnimationFrame(scrollHandler)\n }\n })\n }\n\n /* Private */\n Context.prototype.handleResize = function() {\n Waypoint.Context.refreshAll()\n }\n\n /* Private */\n Context.prototype.handleScroll = function() {\n var triggeredGroups = {}\n var axes = {\n horizontal: {\n newScroll: this.adapter.scrollLeft(),\n oldScroll: this.oldScroll.x,\n forward: 'right',\n backward: 'left'\n },\n vertical: {\n newScroll: this.adapter.scrollTop(),\n oldScroll: this.oldScroll.y,\n forward: 'down',\n backward: 'up'\n }\n }\n\n for (var axisKey in axes) {\n var axis = axes[axisKey]\n var isForward = axis.newScroll > axis.oldScroll\n var direction = isForward ? axis.forward : axis.backward\n\n for (var waypointKey in this.waypoints[axisKey]) {\n var waypoint = this.waypoints[axisKey][waypointKey]\n if (waypoint.triggerPoint === null) {\n continue\n }\n var wasBeforeTriggerPoint = axis.oldScroll < waypoint.triggerPoint\n var nowAfterTriggerPoint = axis.newScroll >= waypoint.triggerPoint\n var crossedForward = wasBeforeTriggerPoint && nowAfterTriggerPoint\n var crossedBackward = !wasBeforeTriggerPoint && !nowAfterTriggerPoint\n if (crossedForward || crossedBackward) {\n waypoint.queueTrigger(direction)\n triggeredGroups[waypoint.group.id] = waypoint.group\n }\n }\n }\n\n for (var groupKey in triggeredGroups) {\n triggeredGroups[groupKey].flushTriggers()\n }\n\n this.oldScroll = {\n x: axes.horizontal.newScroll,\n y: axes.vertical.newScroll\n }\n }\n\n /* Private */\n Context.prototype.innerHeight = function() {\n /*eslint-disable eqeqeq */\n if (this.element == this.element.window) {\n return Waypoint.viewportHeight()\n }\n /*eslint-enable eqeqeq */\n return this.adapter.innerHeight()\n }\n\n /* Private */\n Context.prototype.remove = function(waypoint) {\n delete this.waypoints[waypoint.axis][waypoint.key]\n this.checkEmpty()\n }\n\n /* Private */\n Context.prototype.innerWidth = function() {\n /*eslint-disable eqeqeq */\n if (this.element == this.element.window) {\n return Waypoint.viewportWidth()\n }\n /*eslint-enable eqeqeq */\n return this.adapter.innerWidth()\n }\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/context-destroy */\n Context.prototype.destroy = function() {\n var allWaypoints = []\n for (var axis in this.waypoints) {\n for (var waypointKey in this.waypoints[axis]) {\n allWaypoints.push(this.waypoints[axis][waypointKey])\n }\n }\n for (var i = 0, end = allWaypoints.length; i < end; i++) {\n allWaypoints[i].destroy()\n }\n }\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/context-refresh */\n Context.prototype.refresh = function() {\n /*eslint-disable eqeqeq */\n var isWindow = this.element == this.element.window\n /*eslint-enable eqeqeq */\n var contextOffset = isWindow ? undefined : this.adapter.offset()\n var triggeredGroups = {}\n var axes\n\n this.handleScroll()\n axes = {\n horizontal: {\n contextOffset: isWindow ? 0 : contextOffset.left,\n contextScroll: isWindow ? 0 : this.oldScroll.x,\n contextDimension: this.innerWidth(),\n oldScroll: this.oldScroll.x,\n forward: 'right',\n backward: 'left',\n offsetProp: 'left'\n },\n vertical: {\n contextOffset: isWindow ? 0 : contextOffset.top,\n contextScroll: isWindow ? 0 : this.oldScroll.y,\n contextDimension: this.innerHeight(),\n oldScroll: this.oldScroll.y,\n forward: 'down',\n backward: 'up',\n offsetProp: 'top'\n }\n }\n\n for (var axisKey in axes) {\n var axis = axes[axisKey]\n for (var waypointKey in this.waypoints[axisKey]) {\n var waypoint = this.waypoints[axisKey][waypointKey]\n var adjustment = waypoint.options.offset\n var oldTriggerPoint = waypoint.triggerPoint\n var elementOffset = 0\n var freshWaypoint = oldTriggerPoint == null\n var contextModifier, wasBeforeScroll, nowAfterScroll\n var triggeredBackward, triggeredForward\n\n if (waypoint.element !== waypoint.element.window) {\n elementOffset = waypoint.adapter.offset()[axis.offsetProp]\n }\n\n if (typeof adjustment === 'function') {\n adjustment = adjustment.apply(waypoint)\n }\n else if (typeof adjustment === 'string') {\n adjustment = parseFloat(adjustment)\n if (waypoint.options.offset.indexOf('%') > - 1) {\n adjustment = Math.ceil(axis.contextDimension * adjustment / 100)\n }\n }\n\n contextModifier = axis.contextScroll - axis.contextOffset\n waypoint.triggerPoint = Math.floor(elementOffset + contextModifier - adjustment)\n wasBeforeScroll = oldTriggerPoint < axis.oldScroll\n nowAfterScroll = waypoint.triggerPoint >= axis.oldScroll\n triggeredBackward = wasBeforeScroll && nowAfterScroll\n triggeredForward = !wasBeforeScroll && !nowAfterScroll\n\n if (!freshWaypoint && triggeredBackward) {\n waypoint.queueTrigger(axis.backward)\n triggeredGroups[waypoint.group.id] = waypoint.group\n }\n else if (!freshWaypoint && triggeredForward) {\n waypoint.queueTrigger(axis.forward)\n triggeredGroups[waypoint.group.id] = waypoint.group\n }\n else if (freshWaypoint && axis.oldScroll >= waypoint.triggerPoint) {\n waypoint.queueTrigger(axis.forward)\n triggeredGroups[waypoint.group.id] = waypoint.group\n }\n }\n }\n\n Waypoint.requestAnimationFrame(function() {\n for (var groupKey in triggeredGroups) {\n triggeredGroups[groupKey].flushTriggers()\n }\n })\n\n return this\n }\n\n /* Private */\n Context.findOrCreateByElement = function(element) {\n return Context.findByElement(element) || new Context(element)\n }\n\n /* Private */\n Context.refreshAll = function() {\n for (var contextId in contexts) {\n contexts[contextId].refresh()\n }\n }\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/context-find-by-element */\n Context.findByElement = function(element) {\n return contexts[element.waypointContextKey]\n }\n\n window.onload = function() {\n if (oldWindowLoad) {\n oldWindowLoad()\n }\n Context.refreshAll()\n }\n\n\n Waypoint.requestAnimationFrame = function(callback) {\n var requestFn = window.requestAnimationFrame ||\n window.mozRequestAnimationFrame ||\n window.webkitRequestAnimationFrame ||\n requestAnimationFrameShim\n requestFn.call(window, callback)\n }\n Waypoint.Context = Context\n}())\n;(function() {\n 'use strict'\n\n function byTriggerPoint(a, b) {\n return a.triggerPoint - b.triggerPoint\n }\n\n function byReverseTriggerPoint(a, b) {\n return b.triggerPoint - a.triggerPoint\n }\n\n var groups = {\n vertical: {},\n horizontal: {}\n }\n var Waypoint = window.Waypoint\n\n /* http://imakewebthings.com/waypoints/api/group */\n function Group(options) {\n this.name = options.name\n this.axis = options.axis\n this.id = this.name + '-' + this.axis\n this.waypoints = []\n this.clearTriggerQueues()\n groups[this.axis][this.name] = this\n }\n\n /* Private */\n Group.prototype.add = function(waypoint) {\n this.waypoints.push(waypoint)\n }\n\n /* Private */\n Group.prototype.clearTriggerQueues = function() {\n this.triggerQueues = {\n up: [],\n down: [],\n left: [],\n right: []\n }\n }\n\n /* Private */\n Group.prototype.flushTriggers = function() {\n for (var direction in this.triggerQueues) {\n var waypoints = this.triggerQueues[direction]\n var reverse = direction === 'up' || direction === 'left'\n waypoints.sort(reverse ? byReverseTriggerPoint : byTriggerPoint)\n for (var i = 0, end = waypoints.length; i < end; i += 1) {\n var waypoint = waypoints[i]\n if (waypoint.options.continuous || i === waypoints.length - 1) {\n waypoint.trigger([direction])\n }\n }\n }\n this.clearTriggerQueues()\n }\n\n /* Private */\n Group.prototype.next = function(waypoint) {\n this.waypoints.sort(byTriggerPoint)\n var index = Waypoint.Adapter.inArray(waypoint, this.waypoints)\n var isLast = index === this.waypoints.length - 1\n return isLast ? null : this.waypoints[index + 1]\n }\n\n /* Private */\n Group.prototype.previous = function(waypoint) {\n this.waypoints.sort(byTriggerPoint)\n var index = Waypoint.Adapter.inArray(waypoint, this.waypoints)\n return index ? this.waypoints[index - 1] : null\n }\n\n /* Private */\n Group.prototype.queueTrigger = function(waypoint, direction) {\n this.triggerQueues[direction].push(waypoint)\n }\n\n /* Private */\n Group.prototype.remove = function(waypoint) {\n var index = Waypoint.Adapter.inArray(waypoint, this.waypoints)\n if (index > -1) {\n this.waypoints.splice(index, 1)\n }\n }\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/first */\n Group.prototype.first = function() {\n return this.waypoints[0]\n }\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/last */\n Group.prototype.last = function() {\n return this.waypoints[this.waypoints.length - 1]\n }\n\n /* Private */\n Group.findOrCreate = function(options) {\n return groups[options.axis][options.name] || new Group(options)\n }\n\n Waypoint.Group = Group\n}())\n;(function() {\n 'use strict'\n\n var $ = window.jQuery\n var Waypoint = window.Waypoint\n\n function JQueryAdapter(element) {\n this.$element = $(element)\n }\n\n $.each([\n 'innerHeight',\n 'innerWidth',\n 'off',\n 'offset',\n 'on',\n 'outerHeight',\n 'outerWidth',\n 'scrollLeft',\n 'scrollTop'\n ], function(i, method) {\n JQueryAdapter.prototype[method] = function() {\n var args = Array.prototype.slice.call(arguments)\n return this.$element[method].apply(this.$element, args)\n }\n })\n\n $.each([\n 'extend',\n 'inArray',\n 'isEmptyObject'\n ], function(i, method) {\n JQueryAdapter[method] = $[method]\n })\n\n Waypoint.adapters.push({\n name: 'jquery',\n Adapter: JQueryAdapter\n })\n Waypoint.Adapter = JQueryAdapter\n}())\n;(function() {\n 'use strict'\n\n var Waypoint = window.Waypoint\n\n function createExtension(framework) {\n return function() {\n var waypoints = []\n var overrides = arguments[0]\n\n if (framework.isFunction(arguments[0])) {\n overrides = framework.extend({}, arguments[1])\n overrides.handler = arguments[0]\n }\n\n this.each(function() {\n var options = framework.extend({}, overrides, {\n element: this\n })\n if (typeof options.context === 'string') {\n options.context = framework(this).closest(options.context)[0]\n }\n waypoints.push(new Waypoint(options))\n })\n\n return waypoints\n }\n }\n\n if (window.jQuery) {\n window.jQuery.fn.waypoint = createExtension(window.jQuery)\n }\n if (window.Zepto) {\n window.Zepto.fn.waypoint = createExtension(window.Zepto)\n }\n}())\n;","/**\n * jQuery.Hoverdir\n *\n * Modified version of https://github.com/codrops/DirectionAwareHoverEffect\n *\n * Modifications:\n * - Removed CSS3 transitions and Modernizr requirements.\n * - Applied CSS classes for improved flexibility via CSS.\n *\n * @copyright 2015 WebMan - Oliver Juhas, www.webmandesign.eu\n *\n * @link https://github.com/webmandesign/jquery.hoverdir\n *\n * @version 1.1.2\n */\n\n/**\n * jquery.hoverdir.js v1.1.2\n * http://www.codrops.com\n *\n * Licensed under the MIT license.\n * http://www.opensource.org/licenses/mit-license.php\n *\n * Copyright 2012, Codrops\n * http://www.codrops.com\n */\n\n( function( factory ) {\n\n\n\n 'use strict';\n\n\n\n if ( typeof define === 'function' && define.amd ) {\n define( ['jquery'], factory );\n } else if ( typeof exports !== 'undefined' ) {\n module.exports = factory( require( 'jquery' ) );\n } else {\n factory( jQuery );\n }\n\n\n\n} )( function( $ ) {\n\n\n\n 'use strict';\n\n\n\n function Hoverdir( element, options ) {\n\n this.$el = $( element );\n\n // Set options\n\n this.options = $.extend( true, {}, this.defaults, options );\n\n // All classes that plugin generates\n\n this.allClasses = {\n from : this.options.fromPrefix + 'top ' + this.options.fromPrefix + 'right ' + this.options.fromPrefix + 'bottom ' + this.options.fromPrefix + 'left',\n to : this.options.toPrefix + 'top ' + this.options.toPrefix + 'right ' + this.options.toPrefix + 'bottom ' + this.options.toPrefix + 'left'\n };\n\n // Load the events\n\n this._loadEvents();\n\n } // /Hoverdir\n\n\n\n Hoverdir.prototype = {\n\n defaults : {\n fromPrefix : 'out-',\n toPrefix : 'in-'\n },\n\n constructor : Hoverdir,\n\n\n\n _loadEvents : function() {\n\n this.$el.on( 'mouseenter.hoverdir mouseleave.hoverdir', $.proxy( function( event ) {\n\n var fromPrefix = this.options.fromPrefix,\n toPrefix = this.options.toPrefix,\n direction = this._getDir( { x : event.pageX, y : event.pageY } ),\n CSSclass = this._getClass( direction );\n\n if ( event.type === 'mouseenter' ) {\n\n this.$el\n .removeClass( this.allClasses.from )\n .addClass( toPrefix + CSSclass )\n .siblings()\n .removeClass( this.allClasses.to );\n\n } else {\n\n this.$el\n .removeClass( this.allClasses.to )\n .addClass( fromPrefix + CSSclass )\n .siblings()\n .removeClass( this.allClasses.from );\n\n }\n\n }, this ) );\n\n },\n\n\n\n /**\n * Get the direction when the event is triggered.\n * Credits : http://stackoverflow.com/a/3647634\n *\n * @param {Object} coordinates\n *\n * @return {Interger}\n */\n _getDir : function( coordinates ) {\n\n // The width and height of the current div\n\n var w = this.$el.width(),\n h = this.$el.height(),\n\n // Calculate the x and y to get an angle to the center of the div from that x and y.\n // Gets the x value relative to the center of the DIV and \"normalize\" it\n\n x = ( coordinates.x - this.$el.offset().left - ( w / 2 ) ) * ( w > h ? ( h / w ) : 1 ),\n y = ( coordinates.y - this.$el.offset().top - ( h / 2 ) ) * ( h > w ? ( w / h ) : 1 ),\n\n // The angle and the direction from where the mouse came in/went out clockwise (TRBL=0123);\n // first calculate the angle of the point,\n // add 180 deg to get rid of the negative values\n // divide by 90 to get the quadrant\n // add 3 and do a modulo by 4 to shift the quadrants to a proper clockwise TRBL (top/right/bottom/left).\n\n direction = Math.round( ( ( ( Math.atan2( y, x ) * ( 180 / Math.PI ) ) + 180 ) / 90 ) + 3 ) % 4;\n\n return direction;\n\n },\n\n\n\n /**\n * Return a class based on cursor direction\n */\n _getClass : function( direction ) {\n\n var CSSclass;\n\n switch( direction ) {\n case 0:\n CSSclass = 'top';\n break;\n case 1:\n CSSclass = 'right';\n break;\n case 2:\n CSSclass = 'bottom';\n break;\n case 3:\n CSSclass = 'left';\n break;\n }\n\n return CSSclass;\n\n },\n\n\n\n /**\n * Setting options for plugin binding\n */\n setOptions : function (options) {\n\n this.options = $.extend( true, {}, this.defaults, this.options, options );\n\n },\n\n\n\n /**\n * Unbinds the plugin\n */\n destroy : function () {\n\n this.$el.off( 'mouseenter.hoverdir mouseleave.hoverdir' );\n this.$el.data( 'hoverdir', null );\n\n },\n\n\n\n /**\n * Bind the plugin\n */\n rebuild : function (options) {\n\n if ( typeof options === 'object' ) {\n this.setOptions( options );\n }\n\n this._loadEvents();\n\n }\n\n };\n\n\n\n $.fn.hoverdir = function( option, parameter ) {\n\n return this.each( function() {\n\n var data = $( this ).data( 'hoverdir' ),\n options = typeof option === 'object' && option;\n\n // Initialize hoverdir.\n\n if ( ! data ) {\n data = new Hoverdir( this, options );\n $( this ).data( 'hoverdir', data );\n }\n\n // Call hoverdir method.\n\n if ( typeof option === 'string' ) {\n data[ option ]( parameter );\n\n if ( option === 'destroy' ) {\n $( this ).data( 'hoverdir', false );\n }\n }\n\n } );\n\n };\n\n\n\n $.fn.hoverdir.Constructor = Hoverdir;\n\n\n\n} );\n","!function(e){if(\"object\"==typeof exports&&\"undefined\"!=typeof module)module.exports=e();else if(\"function\"==typeof define&&define.amd)define([],e);else{var t;t=\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:this,t.Cocoen=e()}}(function(){return function e(t,n,i){function s(o,a){if(!n[o]){if(!t[o]){var l=\"function\"==typeof require&&require;if(!a&&l)return l(o,!0);if(r)return r(o,!0);var d=new Error(\"Cannot find module '\"+o+\"'\");throw d.code=\"MODULE_NOT_FOUND\",d}var h=n[o]={exports:{}};t[o][0].call(h.exports,function(e){var n=t[o][1][e];return s(n?n:e)},h,h.exports,e,t,n,i)}return n[o].exports}for(var r=\"function\"==typeof require&&require,o=0;othis.maxLeftPos&&(this.leftPos=this.maxLeftPos);var e=this.leftPos+this.dragElementWidth/2-this.elementOffsetLeft;e/=this.elementWidth;var t=100*e+\"%\";this.dragElement.style.left=t,this.beforeElement.style.width=t,this.options.dragCallback&&this.options.dragCallback(e)}},{key:\"requestDrag\",value:function(){window.requestAnimationFrame(this.drag.bind(this))}}]),e}();o.defaults={dragElementSelector:\".cocoen-drag\",dragCallback:null},t.exports=o},{}]},{},[1])(1)});\n\n!function r(n,e,t){function o(i,f){if(!e[i]){if(!n[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var s=e[i]={exports:{}};n[i][0].call(s.exports,function(r){var e=n[i][1][r];return o(e?e:r)},s,s.exports,r,n,e,t)}return e[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i'), // $({}) would be preferred, but there is an issue with jQuery 1.4.2\n\n\t// Variables for cached values or use across multiple functions\n\tsettings,\n\tinterfaceHeight,\n\tinterfaceWidth,\n\tloadedHeight,\n\tloadedWidth,\n\tindex,\n\tphoto,\n\topen,\n\tactive,\n\tclosing,\n\tloadingTimer,\n\tpublicMethod,\n\tdiv = \"div\",\n\trequests = 0,\n\tpreviousCSS = {},\n\tinit;\n\n\t// ****************\n\t// HELPER FUNCTIONS\n\t// ****************\n\n\t// Convenience function for creating new jQuery objects\n\tfunction $tag(tag, id, css) {\n\t\tvar element = document.createElement(tag);\n\n\t\tif (id) {\n\t\t\telement.id = prefix + id;\n\t\t}\n\n\t\tif (css) {\n\t\t\telement.style.cssText = css;\n\t\t}\n\n\t\treturn $(element);\n\t}\n\n\t// Get the window height using innerHeight when available to avoid an issue with iOS\n\t// http://bugs.jquery.com/ticket/6724\n\tfunction winheight() {\n\t\treturn window.innerHeight ? window.innerHeight : $(window).height();\n\t}\n\n\tfunction Settings(element, options) {\n\t\tif (options !== Object(options)) {\n\t\t\toptions = {};\n\t\t}\n\n\t\tthis.cache = {};\n\t\tthis.el = element;\n\n\t\tthis.value = function(key) {\n\t\t\tvar dataAttr;\n\n\t\t\tif (this.cache[key] === undefined) {\n\t\t\t\tdataAttr = $(this.el).attr('data-cbox-'+key);\n\n\t\t\t\tif (dataAttr !== undefined) {\n\t\t\t\t\tthis.cache[key] = dataAttr;\n\t\t\t\t} else if (options[key] !== undefined) {\n\t\t\t\t\tthis.cache[key] = options[key];\n\t\t\t\t} else if (defaults[key] !== undefined) {\n\t\t\t\t\tthis.cache[key] = defaults[key];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn this.cache[key];\n\t\t};\n\n\t\tthis.get = function(key) {\n\t\t\tvar value = this.value(key);\n\t\t\treturn $.isFunction(value) ? value.call(this.el, this) : value;\n\t\t};\n\t}\n\n\t// Determine the next and previous members in a group.\n\tfunction getIndex(increment) {\n\t\tvar\n\t\tmax = $related.length,\n\t\tnewIndex = (index + increment) % max;\n\n\t\treturn (newIndex < 0) ? max + newIndex : newIndex;\n\t}\n\n\t// Convert '%' and 'px' values to integers\n\tfunction setSize(size, dimension) {\n\t\treturn Math.round((/%/.test(size) ? ((dimension === 'x' ? $window.width() : winheight()) / 100) : 1) * parseInt(size, 10));\n\t}\n\n\t// Checks an href to see if it is a photo.\n\t// There is a force photo option (photo: true) for hrefs that cannot be matched by the regex.\n\tfunction isImage(settings, url) {\n\t\treturn settings.get('photo') || settings.get('photoRegex').test(url);\n\t}\n\n\tfunction retinaUrl(settings, url) {\n\t\treturn settings.get('retinaUrl') && window.devicePixelRatio > 1 ? url.replace(settings.get('photoRegex'), settings.get('retinaSuffix')) : url;\n\t}\n\n\tfunction trapFocus(e) {\n\t\tif ('contains' in $box[0] && !$box[0].contains(e.target) && e.target !== $overlay[0]) {\n\t\t\te.stopPropagation();\n\t\t\t$box.focus();\n\t\t}\n\t}\n\n\tfunction setClass(str) {\n\t\tif (setClass.str !== str) {\n\t\t\t$box.add($overlay).removeClass(setClass.str).addClass(str);\n\t\t\tsetClass.str = str;\n\t\t}\n\t}\n\n\tfunction getRelated(rel) {\n\t\tindex = 0;\n\n\t\tif (rel && rel !== false && rel !== 'nofollow') {\n\t\t\t$related = $('.' + boxElement).filter(function () {\n\t\t\t\tvar options = $.data(this, colorbox);\n\t\t\t\tvar settings = new Settings(this, options);\n\t\t\t\treturn (settings.get('rel') === rel);\n\t\t\t});\n\t\t\tindex = $related.index(settings.el);\n\n\t\t\t// Check direct calls to Colorbox.\n\t\t\tif (index === -1) {\n\t\t\t\t$related = $related.add(settings.el);\n\t\t\t\tindex = $related.length - 1;\n\t\t\t}\n\t\t} else {\n\t\t\t$related = $(settings.el);\n\t\t}\n\t}\n\n\tfunction trigger(event) {\n\t\t// for external use\n\t\t$(document).trigger(event);\n\t\t// for internal use\n\t\t$events.triggerHandler(event);\n\t}\n\n\tvar slideshow = (function(){\n\t\tvar active,\n\t\t\tclassName = prefix + \"Slideshow_\",\n\t\t\tclick = \"click.\" + prefix,\n\t\t\ttimeOut;\n\n\t\tfunction clear () {\n\t\t\tclearTimeout(timeOut);\n\t\t}\n\n\t\tfunction set() {\n\t\t\tif (settings.get('loop') || $related[index + 1]) {\n\t\t\t\tclear();\n\t\t\t\ttimeOut = setTimeout(publicMethod.next, settings.get('slideshowSpeed'));\n\t\t\t}\n\t\t}\n\n\t\tfunction start() {\n\t\t\t$slideshow\n\t\t\t\t.html(settings.get('slideshowStop'))\n\t\t\t\t.unbind(click)\n\t\t\t\t.one(click, stop);\n\n\t\t\t$events\n\t\t\t\t.bind(event_complete, set)\n\t\t\t\t.bind(event_load, clear);\n\n\t\t\t$box.removeClass(className + \"off\").addClass(className + \"on\");\n\t\t}\n\n\t\tfunction stop() {\n\t\t\tclear();\n\n\t\t\t$events\n\t\t\t\t.unbind(event_complete, set)\n\t\t\t\t.unbind(event_load, clear);\n\n\t\t\t$slideshow\n\t\t\t\t.html(settings.get('slideshowStart'))\n\t\t\t\t.unbind(click)\n\t\t\t\t.one(click, function () {\n\t\t\t\t\tpublicMethod.next();\n\t\t\t\t\tstart();\n\t\t\t\t});\n\n\t\t\t$box.removeClass(className + \"on\").addClass(className + \"off\");\n\t\t}\n\n\t\tfunction reset() {\n\t\t\tactive = false;\n\t\t\t$slideshow.hide();\n\t\t\tclear();\n\t\t\t$events\n\t\t\t\t.unbind(event_complete, set)\n\t\t\t\t.unbind(event_load, clear);\n\t\t\t$box.removeClass(className + \"off \" + className + \"on\");\n\t\t}\n\n\t\treturn function(){\n\t\t\tif (active) {\n\t\t\t\tif (!settings.get('slideshow')) {\n\t\t\t\t\t$events.unbind(event_cleanup, reset);\n\t\t\t\t\treset();\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (settings.get('slideshow') && $related[1]) {\n\t\t\t\t\tactive = true;\n\t\t\t\t\t$events.one(event_cleanup, reset);\n\t\t\t\t\tif (settings.get('slideshowAuto')) {\n\t\t\t\t\t\tstart();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tstop();\n\t\t\t\t\t}\n\t\t\t\t\t$slideshow.show();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t}());\n\n\n\tfunction launch(element) {\n\t\tvar options;\n\n\t\tif (!closing) {\n\n\t\t\toptions = $(element).data(colorbox);\n\n\t\t\tsettings = new Settings(element, options);\n\n\t\t\tgetRelated(settings.get('rel'));\n\n\t\t\tif (!open) {\n\t\t\t\topen = active = true; // Prevents the page-change action from queuing up if the visitor holds down the left or right keys.\n\n\t\t\t\tsetClass(settings.get('className'));\n\n\t\t\t\t// Show colorbox so the sizes can be calculated in older versions of jQuery\n\t\t\t\t$box.css({visibility:'hidden', display:'block', opacity:''});\n\n\t\t\t\t$loaded = $tag(div, 'LoadedContent', 'width:0; height:0; overflow:hidden; visibility:hidden');\n\t\t\t\t$content.css({width:'', height:''}).append($loaded);\n\n\t\t\t\t// Cache values needed for size calculations\n\t\t\t\tinterfaceHeight = $topBorder.height() + $bottomBorder.height() + $content.outerHeight(true) - $content.height();\n\t\t\t\tinterfaceWidth = $leftBorder.width() + $rightBorder.width() + $content.outerWidth(true) - $content.width();\n\t\t\t\tloadedHeight = $loaded.outerHeight(true);\n\t\t\t\tloadedWidth = $loaded.outerWidth(true);\n\n\t\t\t\t// Opens inital empty Colorbox prior to content being loaded.\n\t\t\t\tvar initialWidth = setSize(settings.get('initialWidth'), 'x');\n\t\t\t\tvar initialHeight = setSize(settings.get('initialHeight'), 'y');\n\t\t\t\tvar maxWidth = settings.get('maxWidth');\n\t\t\t\tvar maxHeight = settings.get('maxHeight');\n\n\t\t\t\tsettings.w = Math.max((maxWidth !== false ? Math.min(initialWidth, setSize(maxWidth, 'x')) : initialWidth) - loadedWidth - interfaceWidth, 0);\n\t\t\t\tsettings.h = Math.max((maxHeight !== false ? Math.min(initialHeight, setSize(maxHeight, 'y')) : initialHeight) - loadedHeight - interfaceHeight, 0);\n\n\t\t\t\t$loaded.css({width:'', height:settings.h});\n\t\t\t\tpublicMethod.position();\n\n\t\t\t\ttrigger(event_open);\n\t\t\t\tsettings.get('onOpen');\n\n\t\t\t\t$groupControls.add($title).hide();\n\n\t\t\t\t$box.focus();\n\n\t\t\t\tif (settings.get('trapFocus')) {\n\t\t\t\t\t// Confine focus to the modal\n\t\t\t\t\t// Uses event capturing that is not supported in IE8-\n\t\t\t\t\tif (document.addEventListener) {\n\n\t\t\t\t\t\tdocument.addEventListener('focus', trapFocus, true);\n\n\t\t\t\t\t\t$events.one(event_closed, function () {\n\t\t\t\t\t\t\tdocument.removeEventListener('focus', trapFocus, true);\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Return focus on closing\n\t\t\t\tif (settings.get('returnFocus')) {\n\t\t\t\t\t$events.one(event_closed, function () {\n\t\t\t\t\t\t$(settings.el).focus();\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar opacity = parseFloat(settings.get('opacity'));\n\t\t\t$overlay.css({\n\t\t\t\topacity: opacity === opacity ? opacity : '',\n\t\t\t\tcursor: settings.get('overlayClose') ? 'pointer' : '',\n\t\t\t\tvisibility: 'visible'\n\t\t\t}).show();\n\n\t\t\tif (settings.get('closeButton')) {\n\t\t\t\t$close.html(settings.get('close')).appendTo($content);\n\t\t\t} else {\n\t\t\t\t$close.appendTo('
'); // replace with .detach() when dropping jQuery < 1.4\n\t\t\t}\n\n\t\t\tload();\n\t\t}\n\t}\n\n\t// Colorbox's markup needs to be added to the DOM prior to being called\n\t// so that the browser will go ahead and load the CSS background images.\n\tfunction appendHTML() {\n\t\tif (!$box) {\n\t\t\tinit = false;\n\t\t\t$window = $(window);\n\t\t\t$box = $tag(div).attr({\n\t\t\t\tid: colorbox,\n\t\t\t\t'class': $.support.opacity === false ? prefix + 'IE' : '', // class for optional IE8 & lower targeted CSS.\n\t\t\t\trole: 'dialog',\n\t\t\t\ttabindex: '-1'\n\t\t\t}).hide();\n\t\t\t$overlay = $tag(div, \"Overlay\").hide();\n\t\t\t$loadingOverlay = $([$tag(div, \"LoadingOverlay\")[0],$tag(div, \"LoadingGraphic\")[0]]);\n\t\t\t$wrap = $tag(div, \"Wrapper\");\n\t\t\t$content = $tag(div, \"Content\").append(\n\t\t\t\t$title = $tag(div, \"Title\"),\n\t\t\t\t$current = $tag(div, \"Current\"),\n\t\t\t\t$prev = $('