{"version":3,"sources":["webpack:///js/vendor/foundation.min.js","webpack:///./node_modules/foundation-sites/js/foundation/foundation.js","webpack:///./node_modules/foundation-sites/js/foundation/foundation.alert.js","webpack:///./node_modules/foundation-sites/js/foundation/foundation.clearing.js","webpack:///./node_modules/foundation-sites/js/foundation/foundation.dropdown.js","webpack:///./node_modules/foundation-sites/js/foundation/foundation.equalizer.js","webpack:///./node_modules/foundation-sites/js/foundation/foundation.magellan.js","webpack:///./node_modules/foundation-sites/js/foundation/foundation.reveal.js"],"names":["webpackJsonp","54","module","exports","__webpack_require__","55","$","window","document","undefined","removeQuotes","string","String","replace","MediaQuery","selector","this","query","class_array","head","prepend","map","class_name","has","length","FastClick","body","attach","S","context","cont","jquery","querySelectorAll","attr_name","init","arr","push","namespace","name","join","add_namespace","str","parts","split","i","reverse","bindings","method","options","self","bind","$this","should_bind_events","data","extend","settings","data_options","events","scope","is","call","each","single_image_loaded","image","callback","loaded","bindLoad","one","test","navigator","userAgent","src","attr","param","match","Date","getTime","complete","readyState","matchMedia","styleMedia","media","style","createElement","script","getElementsByTagName","info","type","id","parentNode","insertBefore","getComputedStyle","currentStyle","matchMedium","text","styleSheet","cssText","textContent","width","matches","jQuery","raf","animating","requestAnimationFrame","jqueryFxAvailable","fx","tick","lastTime","vendors","cancelAnimationFrame","timer","timers","stop","currTime","timeToCall","Math","max","setTimeout","clearTimeout","prototype","toString","css","Foundation","version","media_queries","stylesheet","appendTo","sheet","global","libraries","response","args","responses","rtl","set_namespace","libs","hasOwnProperty","init_lib","lib","load","trigger","patch","defaults","apply","Array","utils","inherit","methods","methods_arr","throttle","func","delay","arguments","debounce","immediate","timeout","result","later","callNow","el","data_attr_name","trim","ii","p","opts_arr","opts","cached_options","slice","o","isNaN","indexOf","parseInt","parseFloat","register_media","media_class","append","add_custom_rule","rule","insertRule","cssRules","image_loaded","images","unloaded","pictures_number","random_str","fidx","prefix","mq","is_small_up","small","is_medium_up","medium","is_large_up","large","is_xlarge_up","xlarge","is_xxlarge_up","xxlarge","is_small_only","is_medium_only","is_large_only","is_xlarge_only","is_xxlarge_only","fn","foundation","concat","56","alert","off","on","e","alertBox","closest","preventDefault","Modernizr","csstransitions","addClass","remove","fadeOut","reflow","57","clearing","templates","viewing","close_selectors","open_selectors","skip_selector","touch_label","locked","assemble","$scroll_container","current","target","next","hasClass","is_open","open","update_paddles","nav","close","keydown","resize","swipe_events","touches","originalEvent","start_page_x","pageX","start_page_y","pageY","start_time","delta_x","is_scrolling","stopPropagation","scale","abs","active","direction","$li","$el","parent","after","grid","detach","grid_outerHTML","outerHTML","holder","wrapper","touch","find","html","end","$image","startLoad","outerWidth","error","cb","root","container","visible_image","show","fix_height","caption","center_and_label","label","shift","siblings","removeClass","first","not","interchange","prev_index","hide","prop","NEXT_KEY","PREV_KEY","which","go","lis","children","li","height","outerHeight","prev","marginLeft","marginTop","marginRight","left","right","href","closest_a","nodeName","preload","img","sibling_type","preload_img","new_a","get","innerHTML","$ul","skip_shift","old_index","index","dir","dir_obj","up_count","lock","animate","unlock","li_width","floor","target_index","adjacent","current_index","58","dropdown","active_class","disabled_class","mega_class","align","is_hover","hover_timeout","opened","closed","toggle","data_attr","currentTarget","closeall","contains","documentElement","idx","removeData","focus","left_offset","parentOverflow","clear_idx","dirs","bottom","position","top","offset","offsetTop","offsetHeight","_base","t","s","o_p","offsetParent","missRight","missTop","missLeft","leftRightFlag","actualBodyWidth","windowWidth","innerWidth","getElementsByClassName","clientWidth","actualMarginWidth","ignore_repositioning","o_left","mega_menu","adjust_pip","triggeredRight","pip_offset_base","rule_idx","sel_before","sel_after","css_before","css_after","addRule","deleteRule","59","equalizer","use_tallest","before_height_change","noop","after_height_change","equalize_on_stack","act_on_hidden_el","equalize","vals","firstTopOffset","isStacked","group","heights","min","$eq_target","media_query","ignore_media_query","60","threshold","destination_threshold","throttle_delay","fixed_top","offset_by_height","duration","easing","set_expedition_position","sameHost","hostname","location","samePath","filterPathname","pathname","testHash","hash","anchor","expedition","scroll_top","history","pushState","search","check_for_arrivals","update_arrivals","update_expedition_positions","top_offset","styles","window_top_offset","scrollTop","placeholder","clone","removeAttr","before","offsets","arrivals","active_item","item","viewport_offset","arrival","window_offset","dest","destination","sort","a","b","61","getAnimationData","fade","pop","openModals","reveal","animation","animation_speed","close_on_background_click","close_on_esc","dismiss_modal_class","multiple_opened","bg_class","root_element","on_ajax_error","bg","element","ajax","replaceContentSel","url","close_targets","bg_clicked","open_video","close_video","key_up_on","event","open_modal","key_up_off","ajax_settings","modal","cache_offset","toggle_bg","openModal","to_back","old_success","success","textStatus","jqXHR","isFunction","open_modals","to_front","isCurrent","grep","elt","isThis","base","state","visible","filter","wrap","unwrap","unbind","animData","end_css","opacity","fadeIn","video","iframe","scrollY"],"mappings":"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","file":"js/vendor/foundation.min.js","sourcesContent":["webpackJsonp([2],{\n\n/***/ 54:\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(55);\n__webpack_require__(56);\n__webpack_require__(57);\n__webpack_require__(58);\n__webpack_require__(59);\n__webpack_require__(60);\nmodule.exports = __webpack_require__(61);\n\n\n/***/ }),\n\n/***/ 55:\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(jQuery) {/*\n * Foundation Responsive Library\n * http://foundation.zurb.com\n * Copyright 2015, ZURB\n * Free to use under the MIT license.\n * http://www.opensource.org/licenses/mit-license.php\n*/\n\n(function ($, window, document, undefined) {\n 'use strict';\n\n var header_helpers = function (class_array) {\n var head = $('head');\n head.prepend($.map(class_array, function (class_name) {\n if (head.has('.' + class_name).length === 0) {\n return '';\n }\n }));\n };\n\n header_helpers([\n 'foundation-mq-small',\n 'foundation-mq-small-only',\n 'foundation-mq-medium',\n 'foundation-mq-medium-only',\n 'foundation-mq-large',\n 'foundation-mq-large-only',\n 'foundation-mq-xlarge',\n 'foundation-mq-xlarge-only',\n 'foundation-mq-xxlarge',\n 'foundation-data-attribute-namespace']);\n\n // Enable FastClick if present\n\n $(function () {\n if (typeof FastClick !== 'undefined') {\n // Don't attach to body if undefined\n if (typeof document.body !== 'undefined') {\n FastClick.attach(document.body);\n }\n }\n });\n\n // private Fast Selector wrapper,\n // returns jQuery object. Only use where\n // getElementById is not available.\n var S = function (selector, context) {\n if (typeof selector === 'string') {\n if (context) {\n var cont;\n if (context.jquery) {\n cont = context[0];\n if (!cont) {\n return context;\n }\n } else {\n cont = context;\n }\n return $(cont.querySelectorAll(selector));\n }\n\n return $(document.querySelectorAll(selector));\n }\n\n return $(selector, context);\n };\n\n // Namespace functions.\n\n var attr_name = function (init) {\n var arr = [];\n if (!init) {\n arr.push('data');\n }\n if (this.namespace.length > 0) {\n arr.push(this.namespace);\n }\n arr.push(this.name);\n\n return arr.join('-');\n };\n\n var add_namespace = function (str) {\n var parts = str.split('-'),\n i = parts.length,\n arr = [];\n\n while (i--) {\n if (i !== 0) {\n arr.push(parts[i]);\n } else {\n if (this.namespace.length > 0) {\n arr.push(this.namespace, parts[i]);\n } else {\n arr.push(parts[i]);\n }\n }\n }\n\n return arr.reverse().join('-');\n };\n\n // Event binding and data-options updating.\n\n var bindings = function (method, options) {\n var self = this,\n bind = function(){\n var $this = S(this),\n should_bind_events = !$this.data(self.attr_name(true) + '-init');\n $this.data(self.attr_name(true) + '-init', $.extend({}, self.settings, (options || method), self.data_options($this)));\n\n if (should_bind_events) {\n self.events(this);\n }\n };\n\n if (S(this.scope).is('[' + this.attr_name() +']')) {\n bind.call(this.scope);\n } else {\n S('[' + this.attr_name() +']', this.scope).each(bind);\n }\n // # Patch to fix #5043 to move this *after* the if/else clause in order for Backbone and similar frameworks to have improved control over event binding and data-options updating.\n if (typeof method === 'string') {\n return this[method].call(this, options);\n }\n\n };\n\n var single_image_loaded = function (image, callback) {\n function loaded () {\n callback(image[0]);\n }\n\n function bindLoad () {\n this.one('load', loaded);\n\n if (/MSIE (\\d+\\.\\d+);/.test(navigator.userAgent)) {\n var src = this.attr( 'src' ),\n param = src.match( /\\?/ ) ? '&' : '?';\n\n param += 'random=' + (new Date()).getTime();\n this.attr('src', src + param);\n }\n }\n\n if (!image.attr('src')) {\n loaded();\n return;\n }\n\n if (image[0].complete || image[0].readyState === 4) {\n loaded();\n } else {\n bindLoad.call(image);\n }\n };\n\n /*! matchMedia() polyfill - Test a CSS media type/query in JS. Authors & copyright (c) 2012: Scott Jehl, Paul Irish, Nicholas Zakas, David Knight. Dual MIT/BSD license */\n\n window.matchMedia || (window.matchMedia = function() {\n \"use strict\";\n\n // For browsers that support matchMedium api such as IE 9 and webkit\n var styleMedia = (window.styleMedia || window.media);\n\n // For those that don't support matchMedium\n if (!styleMedia) {\n var style = document.createElement('style'),\n script = document.getElementsByTagName('script')[0],\n info = null;\n\n style.type = 'text/css';\n style.id = 'matchmediajs-test';\n\n script.parentNode.insertBefore(style, script);\n\n // 'style.currentStyle' is used by IE <= 8 and 'window.getComputedStyle' for all other browsers\n info = ('getComputedStyle' in window) && window.getComputedStyle(style, null) || style.currentStyle;\n\n styleMedia = {\n matchMedium: function(media) {\n var text = '@media ' + media + '{ #matchmediajs-test { width: 1px; } }';\n\n // 'style.styleSheet' is used by IE <= 8 and 'style.textContent' for all other browsers\n if (style.styleSheet) {\n style.styleSheet.cssText = text;\n } else {\n style.textContent = text;\n }\n\n // Test if media query is true or false\n return info.width === '1px';\n }\n };\n }\n\n return function(media) {\n return {\n matches: styleMedia.matchMedium(media || 'all'),\n media: media || 'all'\n };\n };\n }());\n\n /*\n * jquery.requestAnimationFrame\n * https://github.com/gnarf37/jquery-requestAnimationFrame\n * Requires jQuery 1.8+\n *\n * Copyright (c) 2012 Corey Frang\n * Licensed under the MIT license.\n */\n\n (function(jQuery) {\n\n\n // requestAnimationFrame polyfill adapted from Erik Möller\n // fixes from Paul Irish and Tino Zijdel\n // http://paulirish.com/2011/requestanimationframe-for-smart-animating/\n // http://my.opera.com/emoller/blog/2011/12/20/requestanimationframe-for-smart-er-animating\n\n var animating,\n lastTime = 0,\n vendors = ['webkit', 'moz'],\n requestAnimationFrame = window.requestAnimationFrame,\n cancelAnimationFrame = window.cancelAnimationFrame,\n jqueryFxAvailable = 'undefined' !== typeof jQuery.fx;\n\n for (; lastTime < vendors.length && !requestAnimationFrame; lastTime++) {\n requestAnimationFrame = window[ vendors[lastTime] + 'RequestAnimationFrame' ];\n cancelAnimationFrame = cancelAnimationFrame ||\n window[ vendors[lastTime] + 'CancelAnimationFrame' ] ||\n window[ vendors[lastTime] + 'CancelRequestAnimationFrame' ];\n }\n\n function raf() {\n if (animating) {\n requestAnimationFrame(raf);\n\n if (jqueryFxAvailable) {\n jQuery.fx.tick();\n }\n }\n }\n\n if (requestAnimationFrame) {\n // use rAF\n window.requestAnimationFrame = requestAnimationFrame;\n window.cancelAnimationFrame = cancelAnimationFrame;\n\n if (jqueryFxAvailable) {\n jQuery.fx.timer = function (timer) {\n if (timer() && jQuery.timers.push(timer) && !animating) {\n animating = true;\n raf();\n }\n };\n\n jQuery.fx.stop = function () {\n animating = false;\n };\n }\n } else {\n // polyfill\n window.requestAnimationFrame = function (callback) {\n var currTime = new Date().getTime(),\n timeToCall = Math.max(0, 16 - (currTime - lastTime)),\n id = window.setTimeout(function () {\n callback(currTime + timeToCall);\n }, timeToCall);\n lastTime = currTime + timeToCall;\n return id;\n };\n\n window.cancelAnimationFrame = function (id) {\n clearTimeout(id);\n };\n\n }\n\n }( $ ));\n\n function removeQuotes (string) {\n if (typeof string === 'string' || string instanceof String) {\n string = string.replace(/^['\\\\/\"]+|(;\\s?})+|['\\\\/\"]+$/g, '');\n }\n\n return string;\n }\n\n function MediaQuery(selector) {\n this.selector = selector;\n this.query = '';\n }\n\n MediaQuery.prototype.toString = function () {\n return this.query || (this.query = S(this.selector).css('font-family').replace(/^[\\/\\\\'\"]+|(;\\s?})+|[\\/\\\\'\"]+$/g, ''));\n };\n\n window.Foundation = {\n name : 'Foundation',\n\n version : '5.5.3',\n\n media_queries : {\n 'small' : new MediaQuery('.foundation-mq-small'),\n 'small-only' : new MediaQuery('.foundation-mq-small-only'),\n 'medium' : new MediaQuery('.foundation-mq-medium'),\n 'medium-only' : new MediaQuery('.foundation-mq-medium-only'),\n 'large' : new MediaQuery('.foundation-mq-large'),\n 'large-only' : new MediaQuery('.foundation-mq-large-only'),\n 'xlarge' : new MediaQuery('.foundation-mq-xlarge'),\n 'xlarge-only' : new MediaQuery('.foundation-mq-xlarge-only'),\n 'xxlarge' : new MediaQuery('.foundation-mq-xxlarge')\n },\n\n stylesheet : $('').appendTo('head')[0].sheet,\n\n global : {\n namespace : undefined\n },\n\n init : function (scope, libraries, method, options, response) {\n var args = [scope, method, options, response],\n responses = [];\n\n // check RTL\n this.rtl = /rtl/i.test(S('html').attr('dir'));\n\n // set foundation global scope\n this.scope = scope || this.scope;\n\n this.set_namespace();\n\n if (libraries && typeof libraries === 'string' && !/reflow/i.test(libraries)) {\n if (this.libs.hasOwnProperty(libraries)) {\n responses.push(this.init_lib(libraries, args));\n }\n } else {\n for (var lib in this.libs) {\n responses.push(this.init_lib(lib, libraries));\n }\n }\n\n S(window).load(function () {\n S(window)\n .trigger('resize.fndtn.clearing')\n .trigger('resize.fndtn.dropdown')\n .trigger('resize.fndtn.equalizer')\n .trigger('resize.fndtn.interchange')\n .trigger('resize.fndtn.joyride')\n .trigger('resize.fndtn.magellan')\n .trigger('resize.fndtn.topbar')\n .trigger('resize.fndtn.slider');\n });\n\n return scope;\n },\n\n init_lib : function (lib, args) {\n if (this.libs.hasOwnProperty(lib)) {\n this.patch(this.libs[lib]);\n\n if (args && args.hasOwnProperty(lib)) {\n if (typeof this.libs[lib].settings !== 'undefined') {\n $.extend(true, this.libs[lib].settings, args[lib]);\n } else if (typeof this.libs[lib].defaults !== 'undefined') {\n $.extend(true, this.libs[lib].defaults, args[lib]);\n }\n return this.libs[lib].init.apply(this.libs[lib], [this.scope, args[lib]]);\n }\n\n args = args instanceof Array ? args : new Array(args);\n return this.libs[lib].init.apply(this.libs[lib], args);\n }\n\n return function () {};\n },\n\n patch : function (lib) {\n lib.scope = this.scope;\n lib.namespace = this.global.namespace;\n lib.rtl = this.rtl;\n lib['data_options'] = this.utils.data_options;\n lib['attr_name'] = attr_name;\n lib['add_namespace'] = add_namespace;\n lib['bindings'] = bindings;\n lib['S'] = this.utils.S;\n },\n\n inherit : function (scope, methods) {\n var methods_arr = methods.split(' '),\n i = methods_arr.length;\n\n while (i--) {\n if (this.utils.hasOwnProperty(methods_arr[i])) {\n scope[methods_arr[i]] = this.utils[methods_arr[i]];\n }\n }\n },\n\n set_namespace : function () {\n\n // Description:\n // Don't bother reading the namespace out of the meta tag\n // if the namespace has been set globally in javascript\n //\n // Example:\n // Foundation.global.namespace = 'my-namespace';\n // or make it an empty string:\n // Foundation.global.namespace = '';\n //\n //\n\n // If the namespace has not been set (is undefined), try to read it out of the meta element.\n // Otherwise use the globally defined namespace, even if it's empty ('')\n var namespace = ( this.global.namespace === undefined ) ? $('.foundation-data-attribute-namespace').css('font-family') : this.global.namespace;\n\n // Finally, if the namsepace is either undefined or false, set it to an empty string.\n // Otherwise use the namespace value.\n this.global.namespace = ( namespace === undefined || /false/i.test(namespace) ) ? '' : namespace;\n },\n\n libs : {},\n\n // methods that can be inherited in libraries\n utils : {\n\n // Description:\n // Fast Selector wrapper returns jQuery object. Only use where getElementById\n // is not available.\n //\n // Arguments:\n // Selector (String): CSS selector describing the element(s) to be\n // returned as a jQuery object.\n //\n // Scope (String): CSS selector describing the area to be searched. Default\n // is document.\n //\n // Returns:\n // Element (jQuery Object): jQuery object containing elements matching the\n // selector within the scope.\n S : S,\n\n // Description:\n // Executes a function a max of once every n milliseconds\n //\n // Arguments:\n // Func (Function): Function to be throttled.\n //\n // Delay (Integer): Function execution threshold in milliseconds.\n //\n // Returns:\n // Lazy_function (Function): Function with throttling applied.\n throttle : function (func, delay) {\n var timer = null;\n\n return function () {\n var context = this, args = arguments;\n\n if (timer == null) {\n timer = setTimeout(function () {\n func.apply(context, args);\n timer = null;\n }, delay);\n }\n };\n },\n\n // Description:\n // Executes a function when it stops being invoked for n seconds\n // Modified version of _.debounce() http://underscorejs.org\n //\n // Arguments:\n // Func (Function): Function to be debounced.\n //\n // Delay (Integer): Function execution threshold in milliseconds.\n //\n // Immediate (Bool): Whether the function should be called at the beginning\n // of the delay instead of the end. Default is false.\n //\n // Returns:\n // Lazy_function (Function): Function with debouncing applied.\n debounce : function (func, delay, immediate) {\n var timeout, result;\n return function () {\n var context = this, args = arguments;\n var later = function () {\n timeout = null;\n if (!immediate) {\n result = func.apply(context, args);\n }\n };\n var callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, delay);\n if (callNow) {\n result = func.apply(context, args);\n }\n return result;\n };\n },\n\n // Description:\n // Parses data-options attribute\n //\n // Arguments:\n // El (jQuery Object): Element to be parsed.\n //\n // Returns:\n // Options (Javascript Object): Contents of the element's data-options\n // attribute.\n data_options : function (el, data_attr_name) {\n data_attr_name = data_attr_name || 'options';\n var opts = {}, ii, p, opts_arr,\n data_options = function (el) {\n var namespace = Foundation.global.namespace;\n\n if (namespace.length > 0) {\n return el.data(namespace + '-' + data_attr_name);\n }\n\n return el.data(data_attr_name);\n };\n\n var cached_options = data_options(el);\n\n if (typeof cached_options === 'object') {\n return cached_options;\n }\n\n opts_arr = (cached_options || ':').split(';');\n ii = opts_arr.length;\n\n function isNumber (o) {\n return !isNaN (o - 0) && o !== null && o !== '' && o !== false && o !== true;\n }\n\n function trim (str) {\n if (typeof str === 'string') {\n return $.trim(str);\n }\n return str;\n }\n\n while (ii--) {\n p = opts_arr[ii].split(':');\n p = [p[0], p.slice(1).join(':')];\n\n if (/true/i.test(p[1])) {\n p[1] = true;\n }\n if (/false/i.test(p[1])) {\n p[1] = false;\n }\n if (isNumber(p[1])) {\n if (p[1].indexOf('.') === -1) {\n p[1] = parseInt(p[1], 10);\n } else {\n p[1] = parseFloat(p[1]);\n }\n }\n\n if (p.length === 2 && p[0].length > 0) {\n opts[trim(p[0])] = trim(p[1]);\n }\n }\n\n return opts;\n },\n\n // Description:\n // Adds JS-recognizable media queries\n //\n // Arguments:\n // Media (String): Key string for the media query to be stored as in\n // Foundation.media_queries\n //\n // Class (String): Class name for the generated tag\n register_media : function (media, media_class) {\n if (Foundation.media_queries[media] === undefined) {\n $('head').append('');\n Foundation.media_queries[media] = removeQuotes($('.' + media_class).css('font-family'));\n }\n },\n\n // Description:\n // Add custom CSS within a JS-defined media query\n //\n // Arguments:\n // Rule (String): CSS rule to be appended to the document.\n //\n // Media (String): Optional media query string for the CSS rule to be\n // nested under.\n add_custom_rule : function (rule, media) {\n if (media === undefined && Foundation.stylesheet) {\n Foundation.stylesheet.insertRule(rule, Foundation.stylesheet.cssRules.length);\n } else {\n var query = Foundation.media_queries[media];\n\n if (query !== undefined) {\n Foundation.stylesheet.insertRule('@media ' +\n Foundation.media_queries[media] + '{ ' + rule + ' }', Foundation.stylesheet.cssRules.length);\n }\n }\n },\n\n // Description:\n // Performs a callback function when an image is fully loaded\n //\n // Arguments:\n // Image (jQuery Object): Image(s) to check if loaded.\n //\n // Callback (Function): Function to execute when image is fully loaded.\n image_loaded : function (images, callback) {\n var self = this,\n unloaded = images.length;\n\n function pictures_has_height(images) {\n var pictures_number = images.length;\n\n for (var i = pictures_number - 1; i >= 0; i--) {\n if(images.attr('height') === undefined) {\n return false;\n };\n };\n\n return true;\n }\n\n if (unloaded === 0 || pictures_has_height(images)) {\n callback(images);\n }\n\n images.each(function () {\n single_image_loaded(self.S(this), function () {\n unloaded -= 1;\n if (unloaded === 0) {\n callback(images);\n }\n });\n });\n },\n\n // Description:\n // Returns a random, alphanumeric string\n //\n // Arguments:\n // Length (Integer): Length of string to be generated. Defaults to random\n // integer.\n //\n // Returns:\n // Rand (String): Pseudo-random, alphanumeric string.\n random_str : function () {\n if (!this.fidx) {\n this.fidx = 0;\n }\n this.prefix = this.prefix || [(this.name || 'F'), (+new Date).toString(36)].join('-');\n\n return this.prefix + (this.fidx++).toString(36);\n },\n\n // Description:\n // Helper for window.matchMedia\n //\n // Arguments:\n // mq (String): Media query\n //\n // Returns:\n // (Boolean): Whether the media query passes or not\n match : function (mq) {\n return window.matchMedia(mq).matches;\n },\n\n // Description:\n // Helpers for checking Foundation default media queries with JS\n //\n // Returns:\n // (Boolean): Whether the media query passes or not\n\n is_small_up : function () {\n return this.match(Foundation.media_queries.small);\n },\n\n is_medium_up : function () {\n return this.match(Foundation.media_queries.medium);\n },\n\n is_large_up : function () {\n return this.match(Foundation.media_queries.large);\n },\n\n is_xlarge_up : function () {\n return this.match(Foundation.media_queries.xlarge);\n },\n\n is_xxlarge_up : function () {\n return this.match(Foundation.media_queries.xxlarge);\n },\n\n is_small_only : function () {\n return !this.is_medium_up() && !this.is_large_up() && !this.is_xlarge_up() && !this.is_xxlarge_up();\n },\n\n is_medium_only : function () {\n return this.is_medium_up() && !this.is_large_up() && !this.is_xlarge_up() && !this.is_xxlarge_up();\n },\n\n is_large_only : function () {\n return this.is_medium_up() && this.is_large_up() && !this.is_xlarge_up() && !this.is_xxlarge_up();\n },\n\n is_xlarge_only : function () {\n return this.is_medium_up() && this.is_large_up() && this.is_xlarge_up() && !this.is_xxlarge_up();\n },\n\n is_xxlarge_only : function () {\n return this.is_medium_up() && this.is_large_up() && this.is_xlarge_up() && this.is_xxlarge_up();\n }\n }\n };\n\n $.fn.foundation = function () {\n var args = Array.prototype.slice.call(arguments, 0);\n\n return this.each(function () {\n Foundation.init.apply(Foundation, [this].concat(args));\n return this;\n });\n };\n\n}(jQuery, window, window.document));\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))\n\n/***/ }),\n\n/***/ 56:\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(jQuery) {;(function ($, window, document, undefined) {\n 'use strict';\n\n Foundation.libs.alert = {\n name : 'alert',\n\n version : '5.5.3',\n\n settings : {\n callback : function () {}\n },\n\n init : function (scope, method, options) {\n this.bindings(method, options);\n },\n\n events : function () {\n var self = this,\n S = this.S;\n\n $(this.scope).off('.alert').on('click.fndtn.alert', '[' + this.attr_name() + '] .close', function (e) {\n var alertBox = S(this).closest('[' + self.attr_name() + ']'),\n settings = alertBox.data(self.attr_name(true) + '-init') || self.settings;\n\n e.preventDefault();\n if (Modernizr.csstransitions) {\n alertBox.addClass('alert-close');\n alertBox.on('transitionend webkitTransitionEnd oTransitionEnd', function (e) {\n S(this).trigger('close.fndtn.alert').remove();\n settings.callback();\n });\n } else {\n alertBox.fadeOut(300, function () {\n S(this).trigger('close.fndtn.alert').remove();\n settings.callback();\n });\n }\n });\n },\n\n reflow : function () {}\n };\n}(jQuery, window, window.document));\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))\n\n/***/ }),\n\n/***/ 57:\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(jQuery) {;(function ($, window, document, undefined) {\n 'use strict';\n\n Foundation.libs.clearing = {\n name : 'clearing',\n\n version : '5.5.3',\n\n settings : {\n templates : {\n viewing : '×' +\n '
\"\"' +\n '

' +\n '
' +\n '\"\"' +\n '\"\"'\n },\n\n // comma delimited list of selectors that, on click, will close clearing,\n // add 'div.clearing-blackout, div.visible-img' to close on background click\n close_selectors : '.clearing-close, div.clearing-blackout',\n\n // Default to the entire li element.\n open_selectors : '',\n\n // Image will be skipped in carousel.\n skip_selector : '',\n\n touch_label : '',\n\n // event initializer and locks\n init : false,\n locked : false\n },\n\n init : function (scope, method, options) {\n var self = this;\n Foundation.inherit(this, 'throttle image_loaded');\n\n this.bindings(method, options);\n\n if (self.S(this.scope).is('[' + this.attr_name() + ']')) {\n this.assemble(self.S('li', this.scope));\n } else {\n self.S('[' + this.attr_name() + ']', this.scope).each(function () {\n self.assemble(self.S('li', this));\n });\n }\n },\n\n events : function (scope) {\n var self = this,\n S = self.S,\n $scroll_container = $('.scroll-container');\n\n if ($scroll_container.length > 0) {\n this.scope = $scroll_container;\n }\n\n S(this.scope)\n .off('.clearing')\n .on('click.fndtn.clearing', 'ul[' + this.attr_name() + '] li ' + this.settings.open_selectors,\n function (e, current, target) {\n var current = current || S(this),\n target = target || current,\n next = current.next('li'),\n settings = current.closest('[' + self.attr_name() + ']').data(self.attr_name(true) + '-init'),\n image = S(e.target);\n\n e.preventDefault();\n\n if (!settings) {\n self.init();\n settings = current.closest('[' + self.attr_name() + ']').data(self.attr_name(true) + '-init');\n }\n\n // if clearing is open and the current image is\n // clicked, go to the next image in sequence\n if (target.hasClass('visible') &&\n current[0] === target[0] &&\n next.length > 0 && self.is_open(current)) {\n target = next;\n image = S('img', target);\n }\n\n // set current and target to the clicked li if not otherwise defined.\n self.open(image, current, target);\n self.update_paddles(target);\n })\n\n .on('click.fndtn.clearing', '.clearing-main-next',\n function (e) { self.nav(e, 'next') })\n .on('click.fndtn.clearing', '.clearing-main-prev',\n function (e) { self.nav(e, 'prev') })\n .on('click.fndtn.clearing', this.settings.close_selectors,\n function (e) { Foundation.libs.clearing.close(e, this) });\n\n $(document).on('keydown.fndtn.clearing',\n function (e) { self.keydown(e) });\n\n S(window).off('.clearing').on('resize.fndtn.clearing',\n function () { self.resize() });\n\n this.swipe_events(scope);\n },\n\n swipe_events : function (scope) {\n var self = this,\n S = self.S;\n\n S(this.scope)\n .on('touchstart.fndtn.clearing', '.visible-img', function (e) {\n if (!e.touches) { e = e.originalEvent; }\n var data = {\n start_page_x : e.touches[0].pageX,\n start_page_y : e.touches[0].pageY,\n start_time : (new Date()).getTime(),\n delta_x : 0,\n is_scrolling : undefined\n };\n\n S(this).data('swipe-transition', data);\n e.stopPropagation();\n })\n .on('touchmove.fndtn.clearing', '.visible-img', function (e) {\n if (!e.touches) {\n e = e.originalEvent;\n }\n // Ignore pinch/zoom events\n if (e.touches.length > 1 || e.scale && e.scale !== 1) {\n return;\n }\n\n var data = S(this).data('swipe-transition');\n\n if (typeof data === 'undefined') {\n data = {};\n }\n\n data.delta_x = e.touches[0].pageX - data.start_page_x;\n\n if (Foundation.rtl) {\n data.delta_x = -data.delta_x;\n }\n\n if (typeof data.is_scrolling === 'undefined') {\n data.is_scrolling = !!( data.is_scrolling || Math.abs(data.delta_x) < Math.abs(e.touches[0].pageY - data.start_page_y) );\n }\n\n if (!data.is_scrolling && !data.active) {\n e.preventDefault();\n var direction = (data.delta_x < 0) ? 'next' : 'prev';\n data.active = true;\n self.nav(e, direction);\n }\n })\n .on('touchend.fndtn.clearing', '.visible-img', function (e) {\n S(this).data('swipe-transition', {});\n e.stopPropagation();\n });\n },\n\n assemble : function ($li) {\n var $el = $li.parent();\n\n if ($el.parent().hasClass('carousel')) {\n return;\n }\n\n $el.after('
');\n\n var grid = $el.detach(),\n grid_outerHTML = '';\n\n if (grid[0] == null) {\n return;\n } else {\n grid_outerHTML = grid[0].outerHTML;\n }\n\n var holder = this.S('#foundationClearingHolder'),\n settings = $el.data(this.attr_name(true) + '-init'),\n data = {\n grid : '
' + grid_outerHTML + '
',\n viewing : settings.templates.viewing\n },\n wrapper = '
' + data.viewing +\n data.grid + '
',\n touch_label = this.settings.touch_label;\n\n if (Modernizr.touch) {\n wrapper = $(wrapper).find('.clearing-touch-label').html(touch_label).end();\n }\n\n holder.after(wrapper).remove();\n },\n\n open : function ($image, current, target) {\n var self = this,\n body = $(document.body),\n root = target.closest('.clearing-assembled'),\n container = self.S('div', root).first(),\n visible_image = self.S('.visible-img', container),\n image = self.S('img', visible_image).not($image),\n label = self.S('.clearing-touch-label', container),\n error = false,\n loaded = {};\n\n // Event to disable scrolling on touch devices when Clearing is activated\n $('body').on('touchmove', function (e) {\n e.preventDefault();\n });\n\n image.error(function () {\n error = true;\n });\n\n function startLoad() {\n setTimeout(function () {\n this.image_loaded(image, function () {\n if (image.outerWidth() === 1 && !error) {\n startLoad.call(this);\n } else {\n cb.call(this, image);\n }\n }.bind(this));\n }.bind(this), 100);\n }\n\n function cb (image) {\n var $image = $(image);\n $image.css('visibility', 'visible');\n $image.trigger('imageVisible');\n // toggle the gallery\n body.css('overflow', 'hidden');\n root.addClass('clearing-blackout');\n container.addClass('clearing-container');\n visible_image.show();\n this.fix_height(target)\n .caption(self.S('.clearing-caption', visible_image), self.S('img', target))\n .center_and_label(image, label)\n .shift(current, target, function () {\n target.closest('li').siblings().removeClass('visible');\n target.closest('li').addClass('visible');\n });\n visible_image.trigger('opened.fndtn.clearing')\n }\n\n if (!this.locked()) {\n visible_image.trigger('open.fndtn.clearing');\n // set the image to the selected thumbnail\n loaded = this.load($image);\n if (loaded.interchange) {\n image\n .attr('data-interchange', loaded.interchange)\n .foundation('interchange', 'reflow');\n } else {\n image\n .attr('src', loaded.src)\n .attr('data-interchange', '');\n }\n image.css('visibility', 'hidden');\n\n startLoad.call(this);\n }\n },\n\n close : function (e, el) {\n e.preventDefault();\n\n var root = (function (target) {\n if (/blackout/.test(target.selector)) {\n return target;\n } else {\n return target.closest('.clearing-blackout');\n }\n }($(el))),\n body = $(document.body), container, visible_image;\n\n if (el === e.target && root) {\n body.css('overflow', '');\n container = $('div', root).first();\n visible_image = $('.visible-img', container);\n visible_image.trigger('close.fndtn.clearing');\n this.settings.prev_index = 0;\n $('ul[' + this.attr_name() + ']', root)\n .attr('style', '').closest('.clearing-blackout')\n .removeClass('clearing-blackout');\n container.removeClass('clearing-container');\n visible_image.hide();\n visible_image.trigger('closed.fndtn.clearing');\n }\n\n // Event to re-enable scrolling on touch devices\n $('body').off('touchmove');\n\n return false;\n },\n\n is_open : function (current) {\n return current.parent().prop('style').length > 0;\n },\n\n keydown : function (e) {\n var clearing = $('.clearing-blackout ul[' + this.attr_name() + ']'),\n NEXT_KEY = this.rtl ? 37 : 39,\n PREV_KEY = this.rtl ? 39 : 37,\n ESC_KEY = 27;\n\n if (e.which === NEXT_KEY) {\n this.go(clearing, 'next');\n }\n if (e.which === PREV_KEY) {\n this.go(clearing, 'prev');\n }\n if (e.which === ESC_KEY) {\n this.S('a.clearing-close').trigger('click.fndtn.clearing');\n }\n },\n\n nav : function (e, direction) {\n var clearing = $('ul[' + this.attr_name() + ']', '.clearing-blackout');\n\n e.preventDefault();\n this.go(clearing, direction);\n },\n\n resize : function () {\n var image = $('img', '.clearing-blackout .visible-img'),\n label = $('.clearing-touch-label', '.clearing-blackout');\n\n if (image.length) {\n this.center_and_label(image, label);\n image.trigger('resized.fndtn.clearing')\n }\n },\n\n // visual adjustments\n fix_height : function (target) {\n var lis = target.parent().children(),\n self = this;\n\n lis.each(function () {\n var li = self.S(this),\n image = li.find('img');\n\n if (li.height() > image.outerHeight()) {\n li.addClass('fix-height');\n }\n })\n .closest('ul')\n .width(lis.length * 100 + '%');\n\n return this;\n },\n\n update_paddles : function (target) {\n target = target.closest('li');\n var visible_image = target\n .closest('.carousel')\n .siblings('.visible-img');\n\n if (target.next().length > 0) {\n this.S('.clearing-main-next', visible_image).removeClass('disabled');\n } else {\n this.S('.clearing-main-next', visible_image).addClass('disabled');\n }\n\n if (target.prev().length > 0) {\n this.S('.clearing-main-prev', visible_image).removeClass('disabled');\n } else {\n this.S('.clearing-main-prev', visible_image).addClass('disabled');\n }\n },\n\n center_and_label : function (target, label) {\n if (!this.rtl && label.length > 0) {\n label.css({\n marginLeft : -(label.outerWidth() / 2),\n marginTop : -(target.outerHeight() / 2)-label.outerHeight()-10\n });\n } else {\n label.css({\n marginRight : -(label.outerWidth() / 2),\n marginTop : -(target.outerHeight() / 2)-label.outerHeight()-10,\n left: 'auto',\n right: '50%'\n });\n }\n return this;\n },\n\n // image loading and preloading\n\n load : function ($image) {\n var href,\n interchange,\n closest_a;\n\n if ($image[0].nodeName === 'A') {\n href = $image.attr('href');\n interchange = $image.data('clearing-interchange');\n } else {\n closest_a = $image.closest('a');\n href = closest_a.attr('href');\n interchange = closest_a.data('clearing-interchange');\n }\n\n this.preload($image);\n\n return {\n 'src': href ? href : $image.attr('src'),\n 'interchange': href ? interchange : $image.data('clearing-interchange')\n }\n },\n\n preload : function ($image) {\n this\n .img($image.closest('li').next(), 'next')\n .img($image.closest('li').prev(), 'prev');\n },\n\n img : function (img, sibling_type) {\n if (img.length) {\n var preload_img = $('.clearing-preload-' + sibling_type),\n new_a = this.S('a', img),\n src,\n interchange,\n image;\n\n if (new_a.length) {\n src = new_a.attr('href');\n interchange = new_a.data('clearing-interchange');\n } else {\n image = this.S('img', img);\n src = image.attr('src');\n interchange = image.data('clearing-interchange');\n }\n\n if (interchange) {\n preload_img.attr('data-interchange', interchange);\n } else {\n preload_img.attr('src', src);\n preload_img.attr('data-interchange', '');\n }\n }\n return this;\n },\n\n // image caption\n\n caption : function (container, $image) {\n var caption = $image.attr('data-caption');\n\n if (caption) {\n \tvar containerPlain = container.get(0);\n \tcontainerPlain.innerHTML = caption;\n container.show();\n } else {\n container\n .text('')\n .hide();\n }\n return this;\n },\n\n // directional methods\n\n go : function ($ul, direction) {\n var current = this.S('.visible', $ul),\n target = current[direction]();\n\n // Check for skip selector.\n if (this.settings.skip_selector && target.find(this.settings.skip_selector).length != 0) {\n target = target[direction]();\n }\n\n if (target.length) {\n this.S('img', target)\n .trigger('click.fndtn.clearing', [current, target])\n .trigger('change.fndtn.clearing');\n }\n },\n\n shift : function (current, target, callback) {\n var clearing = target.parent(),\n old_index = this.settings.prev_index || target.index(),\n direction = this.direction(clearing, current, target),\n dir = this.rtl ? 'right' : 'left',\n left = parseInt(clearing.css('left'), 10),\n width = target.outerWidth(),\n skip_shift;\n\n var dir_obj = {};\n\n // we use jQuery animate instead of CSS transitions because we\n // need a callback to unlock the next animation\n // needs support for RTL **\n if (target.index() !== old_index && !/skip/.test(direction)) {\n if (/left/.test(direction)) {\n this.lock();\n dir_obj[dir] = left + width;\n clearing.animate(dir_obj, 300, this.unlock());\n } else if (/right/.test(direction)) {\n this.lock();\n dir_obj[dir] = left - width;\n clearing.animate(dir_obj, 300, this.unlock());\n }\n } else if (/skip/.test(direction)) {\n // the target image is not adjacent to the current image, so\n // do we scroll right or not\n skip_shift = target.index() - this.settings.up_count;\n this.lock();\n\n if (skip_shift > 0) {\n dir_obj[dir] = -(skip_shift * width);\n clearing.animate(dir_obj, 300, this.unlock());\n } else {\n dir_obj[dir] = 0;\n clearing.animate(dir_obj, 300, this.unlock());\n }\n }\n\n callback();\n },\n\n direction : function ($el, current, target) {\n var lis = this.S('li', $el),\n li_width = lis.outerWidth() + (lis.outerWidth() / 4),\n up_count = Math.floor(this.S('.clearing-container').outerWidth() / li_width) - 1,\n target_index = lis.index(target),\n response;\n\n this.settings.up_count = up_count;\n\n if (this.adjacent(this.settings.prev_index, target_index)) {\n if ((target_index > up_count) && target_index > this.settings.prev_index) {\n response = 'right';\n } else if ((target_index > up_count - 1) && target_index <= this.settings.prev_index) {\n response = 'left';\n } else {\n response = false;\n }\n } else {\n response = 'skip';\n }\n\n this.settings.prev_index = target_index;\n\n return response;\n },\n\n adjacent : function (current_index, target_index) {\n for (var i = target_index + 1; i >= target_index - 1; i--) {\n if (i === current_index) {\n return true;\n }\n }\n return false;\n },\n\n // lock management\n\n lock : function () {\n this.settings.locked = true;\n },\n\n unlock : function () {\n this.settings.locked = false;\n },\n\n locked : function () {\n return this.settings.locked;\n },\n\n off : function () {\n this.S(this.scope).off('.fndtn.clearing');\n this.S(window).off('.fndtn.clearing');\n },\n\n reflow : function () {\n this.init();\n }\n };\n\n}(jQuery, window, window.document));\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))\n\n/***/ }),\n\n/***/ 58:\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(jQuery) {;(function ($, window, document, undefined) {\n 'use strict';\n\n Foundation.libs.dropdown = {\n name : 'dropdown',\n\n version : '5.5.3',\n\n settings : {\n active_class : 'open',\n disabled_class : 'disabled',\n mega_class : 'mega',\n align : 'bottom',\n is_hover : false,\n hover_timeout : 150,\n opened : function () {},\n closed : function () {}\n },\n\n init : function (scope, method, options) {\n Foundation.inherit(this, 'throttle');\n\n $.extend(true, this.settings, method, options);\n this.bindings(method, options);\n },\n\n events : function (scope) {\n var self = this,\n S = self.S;\n\n S(this.scope)\n .off('.dropdown')\n .on('click.fndtn.dropdown', '[' + this.attr_name() + ']', function (e) {\n var settings = S(this).data(self.attr_name(true) + '-init') || self.settings;\n if (!settings.is_hover || Modernizr.touch) {\n e.preventDefault();\n if (S(this).parent('[data-reveal-id]').length) {\n e.stopPropagation();\n }\n self.toggle($(this));\n }\n })\n .on('mouseenter.fndtn.dropdown', '[' + this.attr_name() + '], [' + this.attr_name() + '-content]', function (e) {\n var $this = S(this),\n dropdown,\n target;\n\n clearTimeout(self.timeout);\n\n if ($this.data(self.data_attr())) {\n dropdown = S('#' + $this.data(self.data_attr()));\n target = $this;\n } else {\n dropdown = $this;\n target = S('[' + self.attr_name() + '=\"' + dropdown.attr('id') + '\"]');\n }\n\n var settings = target.data(self.attr_name(true) + '-init') || self.settings;\n\n if (S(e.currentTarget).data(self.data_attr()) && settings.is_hover) {\n self.closeall.call(self);\n }\n\n if (settings.is_hover) {\n self.open.apply(self, [dropdown, target]);\n }\n })\n .on('mouseleave.fndtn.dropdown', '[' + this.attr_name() + '], [' + this.attr_name() + '-content]', function (e) {\n var $this = S(this);\n var settings;\n\n if ($this.data(self.data_attr())) {\n settings = $this.data(self.data_attr(true) + '-init') || self.settings;\n } else {\n var target = S('[' + self.attr_name() + '=\"' + S(this).attr('id') + '\"]'),\n settings = target.data(self.attr_name(true) + '-init') || self.settings;\n }\n\n self.timeout = setTimeout(function () {\n if ($this.data(self.data_attr())) {\n if (settings.is_hover) {\n self.close.call(self, S('#' + $this.data(self.data_attr())));\n }\n } else {\n if (settings.is_hover) {\n self.close.call(self, $this);\n }\n }\n }.bind(this), settings.hover_timeout);\n })\n .on('click.fndtn.dropdown', function (e) {\n var parent = S(e.target).closest('[' + self.attr_name() + '-content]');\n var links = parent.find('a');\n\n if (links.length > 0 && parent.attr('aria-autoclose') !== 'false') {\n self.close.call(self, S('[' + self.attr_name() + '-content]'));\n }\n\n if (e.target !== document && !$.contains(document.documentElement, e.target)) {\n return;\n }\n\n if (S(e.target).closest('[' + self.attr_name() + ']').length > 0) {\n return;\n }\n\n if (!(S(e.target).data('revealId')) &&\n (parent.length > 0 && (S(e.target).is('[' + self.attr_name() + '-content]') ||\n $.contains(parent.first()[0], e.target)))) {\n e.stopPropagation();\n return;\n }\n\n self.close.call(self, S('[' + self.attr_name() + '-content]'));\n })\n .on('opened.fndtn.dropdown', '[' + self.attr_name() + '-content]', function () {\n self.settings.opened.call(this);\n })\n .on('closed.fndtn.dropdown', '[' + self.attr_name() + '-content]', function () {\n self.settings.closed.call(this);\n });\n\n S(window)\n .off('.dropdown')\n .on('resize.fndtn.dropdown', self.throttle(function () {\n self.resize.call(self);\n }, 50));\n\n this.resize();\n },\n\n close : function (dropdown) {\n var self = this;\n dropdown.each(function (idx) {\n var original_target = $('[' + self.attr_name() + '=' + dropdown[idx].id + ']') || $('aria-controls=' + dropdown[idx].id + ']');\n original_target.attr('aria-expanded', 'false');\n if (self.S(this).hasClass(self.settings.active_class)) {\n self.S(this)\n .css(Foundation.rtl ? 'right' : 'left', '-99999px')\n .attr('aria-hidden', 'true')\n .removeClass(self.settings.active_class)\n .prev('[' + self.attr_name() + ']')\n .removeClass(self.settings.active_class)\n .removeData('target');\n\n self.S(this).trigger('closed.fndtn.dropdown', [dropdown]);\n }\n });\n dropdown.removeClass('f-open-' + this.attr_name(true));\n },\n\n closeall : function () {\n var self = this;\n $.each(self.S('.f-open-' + this.attr_name(true)), function () {\n self.close.call(self, self.S(this));\n });\n },\n\n open : function (dropdown, target) {\n this\n .css(dropdown\n .addClass(this.settings.active_class), target);\n dropdown.prev('[' + this.attr_name() + ']').addClass(this.settings.active_class);\n dropdown.data('target', target.get(0)).trigger('opened.fndtn.dropdown', [dropdown, target]);\n dropdown.attr('aria-hidden', 'false');\n target.attr('aria-expanded', 'true');\n dropdown.focus();\n dropdown.addClass('f-open-' + this.attr_name(true));\n },\n\n data_attr : function () {\n if (this.namespace.length > 0) {\n return this.namespace + '-' + this.name;\n }\n\n return this.name;\n },\n\n toggle : function (target) {\n if (target.hasClass(this.settings.disabled_class)) {\n return;\n }\n var dropdown = this.S('#' + target.data(this.data_attr()));\n if (dropdown.length === 0) {\n // No dropdown found, not continuing\n return;\n }\n\n this.close.call(this, this.S('[' + this.attr_name() + '-content]').not(dropdown));\n\n if (dropdown.hasClass(this.settings.active_class)) {\n this.close.call(this, dropdown);\n if (dropdown.data('target') !== target.get(0)) {\n this.open.call(this, dropdown, target);\n }\n } else {\n this.open.call(this, dropdown, target);\n }\n },\n\n resize : function () {\n var dropdown = this.S('[' + this.attr_name() + '-content].open');\n var target = $(dropdown.data(\"target\"));\n\n if (dropdown.length && target.length) {\n this.css(dropdown, target);\n }\n },\n\n css : function (dropdown, target) {\n var left_offset = Math.max((target.width() - dropdown.width()) / 2, 8),\n settings = target.data(this.attr_name(true) + '-init') || this.settings,\n parentOverflow = dropdown.parent().css('overflow-y') || dropdown.parent().css('overflow');\n\n this.clear_idx();\n\n\n\n if (this.small()) {\n var p = this.dirs.bottom.call(dropdown, target, settings);\n\n dropdown.attr('style', '').removeClass('drop-left drop-right drop-top').css({\n position : 'absolute',\n width : '95%',\n 'max-width' : 'none',\n top : p.top\n });\n\n dropdown.css(Foundation.rtl ? 'right' : 'left', left_offset);\n }\n // detect if dropdown is in an overflow container\n else if (parentOverflow !== 'visible') {\n var offset = target[0].offsetTop + target[0].offsetHeight;\n\n dropdown.attr('style', '').css({\n position : 'absolute',\n top : offset\n });\n\n dropdown.css(Foundation.rtl ? 'right' : 'left', left_offset);\n }\n else {\n\n this.style(dropdown, target, settings);\n }\n\n return dropdown;\n },\n\n style : function (dropdown, target, settings) {\n var css = $.extend({position : 'absolute'},\n this.dirs[settings.align].call(dropdown, target, settings));\n\n dropdown.attr('style', '').css(css);\n },\n\n // return CSS property object\n // `this` is the dropdown\n dirs : {\n // Calculate target offset\n _base : function (t, s) {\n var o_p = this.offsetParent(),\n o = o_p.offset(),\n p = t.offset();\n\n p.top -= o.top;\n p.left -= o.left;\n\n //set some flags on the p object to pass along\n p.missRight = false;\n p.missTop = false;\n p.missLeft = false;\n p.leftRightFlag = false;\n\n //lets see if the panel will be off the screen\n //get the actual width of the page and store it\n var actualBodyWidth;\n var windowWidth = window.innerWidth;\n \n if (document.getElementsByClassName('row')[0]) {\n actualBodyWidth = document.getElementsByClassName('row')[0].clientWidth;\n } else {\n actualBodyWidth = windowWidth;\n }\n\n var actualMarginWidth = (windowWidth - actualBodyWidth) / 2;\n var actualBoundary = actualBodyWidth;\n\n if (!this.hasClass('mega') && !s.ignore_repositioning) {\n var outerWidth = this.outerWidth();\n var o_left = t.offset().left;\n\t\t \n //miss top\n if (t.offset().top <= this.outerHeight()) {\n p.missTop = true;\n actualBoundary = windowWidth - actualMarginWidth;\n p.leftRightFlag = true;\n }\n\n //miss right\n if (o_left + outerWidth > o_left + actualMarginWidth && o_left - actualMarginWidth > outerWidth) {\n p.missRight = true;\n p.missLeft = false;\n }\n\n //miss left\n if (o_left - outerWidth <= 0) {\n p.missLeft = true;\n p.missRight = false;\n }\n }\n\n return p;\n },\n\n top : function (t, s) {\n var self = Foundation.libs.dropdown,\n p = self.dirs._base.call(this, t, s);\n\n this.addClass('drop-top');\n\n if (p.missTop == true) {\n p.top = p.top + t.outerHeight() + this.outerHeight();\n this.removeClass('drop-top');\n }\n\n if (p.missRight == true) {\n p.left = p.left - this.outerWidth() + t.outerWidth();\n }\n\n if (t.outerWidth() < this.outerWidth() || self.small() || this.hasClass(s.mega_menu)) {\n self.adjust_pip(this, t, s, p);\n }\n\n if (Foundation.rtl) {\n return {left : p.left - this.outerWidth() + t.outerWidth(),\n top : p.top - this.outerHeight()};\n }\n\n return {left : p.left, top : p.top - this.outerHeight()};\n },\n\n bottom : function (t, s) {\n var self = Foundation.libs.dropdown,\n p = self.dirs._base.call(this, t, s);\n\n if (p.missRight == true) {\n p.left = p.left - this.outerWidth() + t.outerWidth();\n }\n\n if (t.outerWidth() < this.outerWidth() || self.small() || this.hasClass(s.mega_menu)) {\n self.adjust_pip(this, t, s, p);\n }\n\n if (self.rtl) {\n return {left : p.left - this.outerWidth() + t.outerWidth(), top : p.top + t.outerHeight()};\n }\n\n return {left : p.left, top : p.top + t.outerHeight()};\n },\n\n left : function (t, s) {\n var p = Foundation.libs.dropdown.dirs._base.call(this, t, s);\n\n this.addClass('drop-left');\n\n if (p.missLeft == true) {\n p.left = p.left + this.outerWidth();\n p.top = p.top + t.outerHeight();\n this.removeClass('drop-left');\n }\n\n return {left : p.left - this.outerWidth(), top : p.top};\n },\n\n right : function (t, s) {\n var p = Foundation.libs.dropdown.dirs._base.call(this, t, s);\n\n this.addClass('drop-right');\n\n if (p.missRight == true) {\n p.left = p.left - this.outerWidth();\n p.top = p.top + t.outerHeight();\n this.removeClass('drop-right');\n } else {\n p.triggeredRight = true;\n }\n\n var self = Foundation.libs.dropdown;\n\n if (t.outerWidth() < this.outerWidth() || self.small() || this.hasClass(s.mega_menu)) {\n self.adjust_pip(this, t, s, p);\n }\n\n return {left : p.left + t.outerWidth(), top : p.top};\n }\n },\n\n // Insert rule to style psuedo elements\n adjust_pip : function (dropdown, target, settings, position) {\n var sheet = Foundation.stylesheet,\n pip_offset_base = 8;\n\n if (dropdown.hasClass(settings.mega_class)) {\n pip_offset_base = position.left + (target.outerWidth() / 2) - 8;\n } else if (this.small()) {\n pip_offset_base += position.left - 8;\n }\n\n this.rule_idx = sheet.cssRules.length;\n\n //default\n var sel_before = '.f-dropdown.open:before',\n sel_after = '.f-dropdown.open:after',\n css_before = 'left: ' + pip_offset_base + 'px;',\n css_after = 'left: ' + (pip_offset_base - 1) + 'px;';\n\n if (position.missRight == true) {\n pip_offset_base = dropdown.outerWidth() - 23;\n sel_before = '.f-dropdown.open:before',\n sel_after = '.f-dropdown.open:after',\n css_before = 'left: ' + pip_offset_base + 'px;',\n css_after = 'left: ' + (pip_offset_base - 1) + 'px;';\n }\n\n //just a case where right is fired, but its not missing right\n if (position.triggeredRight == true) {\n sel_before = '.f-dropdown.open:before',\n sel_after = '.f-dropdown.open:after',\n css_before = 'left:-12px;',\n css_after = 'left:-14px;';\n }\n\n if (sheet.insertRule) {\n sheet.insertRule([sel_before, '{', css_before, '}'].join(' '), this.rule_idx);\n sheet.insertRule([sel_after, '{', css_after, '}'].join(' '), this.rule_idx + 1);\n } else {\n sheet.addRule(sel_before, css_before, this.rule_idx);\n sheet.addRule(sel_after, css_after, this.rule_idx + 1);\n }\n },\n\n // Remove old dropdown rule index\n clear_idx : function () {\n var sheet = Foundation.stylesheet;\n\n if (typeof this.rule_idx !== 'undefined') {\n sheet.deleteRule(this.rule_idx);\n sheet.deleteRule(this.rule_idx);\n delete this.rule_idx;\n }\n },\n\n small : function () {\n return matchMedia(Foundation.media_queries.small).matches &&\n !matchMedia(Foundation.media_queries.medium).matches;\n },\n\n off : function () {\n this.S(this.scope).off('.fndtn.dropdown');\n this.S('html, body').off('.fndtn.dropdown');\n this.S(window).off('.fndtn.dropdown');\n this.S('[data-dropdown-content]').off('.fndtn.dropdown');\n },\n\n reflow : function () {}\n };\n}(jQuery, window, window.document));\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))\n\n/***/ }),\n\n/***/ 59:\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(jQuery) {;(function ($, window, document, undefined) {\n 'use strict';\n\n Foundation.libs.equalizer = {\n name : 'equalizer',\n\n version : '5.5.3',\n\n settings : {\n use_tallest : true,\n before_height_change : $.noop,\n after_height_change : $.noop,\n equalize_on_stack : false,\n act_on_hidden_el: false\n },\n\n init : function (scope, method, options) {\n Foundation.inherit(this, 'image_loaded');\n this.bindings(method, options);\n this.reflow();\n },\n\n events : function () {\n this.S(window).off('.equalizer').on('resize.fndtn.equalizer', function (e) {\n this.reflow();\n }.bind(this));\n },\n\n equalize : function (equalizer) {\n var isStacked = false,\n group = equalizer.data('equalizer'),\n settings = equalizer.data(this.attr_name(true)+'-init') || this.settings,\n vals,\n firstTopOffset;\n\n if (settings.act_on_hidden_el) {\n vals = group ? equalizer.find('['+this.attr_name()+'-watch=\"'+group+'\"]') : equalizer.find('['+this.attr_name()+'-watch]');\n }\n else {\n vals = group ? equalizer.find('['+this.attr_name()+'-watch=\"'+group+'\"]:visible') : equalizer.find('['+this.attr_name()+'-watch]:visible');\n }\n \n if (vals.length === 0) {\n return;\n }\n\n settings.before_height_change();\n equalizer.trigger('before-height-change.fndth.equalizer');\n vals.height('inherit');\n\n if (settings.equalize_on_stack === false) {\n firstTopOffset = vals.first().offset().top;\n vals.each(function () {\n if ($(this).offset().top !== firstTopOffset) {\n isStacked = true;\n return false;\n }\n });\n if (isStacked) {\n return;\n }\n }\n\n var heights = vals.map(function () { return $(this).outerHeight(false) }).get();\n\n if (settings.use_tallest) {\n var max = Math.max.apply(null, heights);\n vals.css('height', max);\n } else {\n var min = Math.min.apply(null, heights);\n vals.css('height', min);\n }\n\n settings.after_height_change();\n equalizer.trigger('after-height-change.fndtn.equalizer');\n },\n\n reflow : function () {\n var self = this;\n\n this.S('[' + this.attr_name() + ']', this.scope).each(function () {\n var $eq_target = $(this),\n media_query = $eq_target.data('equalizer-mq'),\n ignore_media_query = true;\n\n if (media_query) {\n media_query = 'is_' + media_query.replace(/-/g, '_');\n if (Foundation.utils.hasOwnProperty(media_query)) {\n ignore_media_query = false;\n }\n }\n\n self.image_loaded(self.S('img', this), function () {\n if (ignore_media_query || Foundation.utils[media_query]()) {\n self.equalize($eq_target)\n } else {\n var vals = $eq_target.find('[' + self.attr_name() + '-watch]:visible');\n vals.css('height', 'auto');\n }\n });\n });\n }\n };\n})(jQuery, window, window.document);\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))\n\n/***/ }),\n\n/***/ 60:\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(jQuery) {;(function ($, window, document, undefined) {\n 'use strict';\n\n Foundation.libs['magellan-expedition'] = {\n name : 'magellan-expedition',\n\n version : '5.5.3',\n\n settings : {\n active_class : 'active',\n threshold : 0, // pixels from the top of the expedition for it to become fixes\n destination_threshold : 20, // pixels from the top of destination for it to be considered active\n throttle_delay : 30, // calculation throttling to increase framerate\n fixed_top : 0, // top distance in pixels assigend to the fixed element on scroll\n offset_by_height : true, // whether to offset the destination by the expedition height. Usually you want this to be true, unless your expedition is on the side.\n duration : 700, // animation duration time\n easing : 'swing' // animation easing\n },\n\n init : function (scope, method, options) {\n Foundation.inherit(this, 'throttle');\n this.bindings(method, options);\n },\n\n events : function () {\n var self = this,\n S = self.S,\n settings = self.settings;\n\n // initialize expedition offset\n self.set_expedition_position();\n\n S(self.scope)\n .off('.magellan')\n .on('click.fndtn.magellan', '[' + self.add_namespace('data-magellan-arrival') + '] a[href*=#]', function (e) {\n var sameHost = ((this.hostname === location.hostname) || !this.hostname),\n samePath = self.filterPathname(location.pathname) === self.filterPathname(this.pathname),\n testHash = this.hash.replace(/(:|\\.|\\/)/g, '\\\\$1'),\n anchor = this;\n\n if (sameHost && samePath && testHash) {\n e.preventDefault();\n var expedition = $(this).closest('[' + self.attr_name() + ']'),\n settings = expedition.data('magellan-expedition-init'),\n hash = this.hash.split('#').join(''),\n target = $('a[name=\"' + hash + '\"]');\n\n if (target.length === 0) {\n target = $('#' + hash);\n\n }\n\n // Account for expedition height if fixed position\n var scroll_top = target.offset().top - settings.destination_threshold + 1;\n if (settings.offset_by_height) {\n scroll_top = scroll_top - expedition.outerHeight();\n }\n $('html, body').stop().animate({\n 'scrollTop' : scroll_top\n }, settings.duration, settings.easing, function () {\n if (history.pushState) {\n history.pushState(null, null, anchor.pathname + anchor.search + '#' + hash);\n } else {\n location.hash = anchor.pathname + anchor.search + '#' + hash;\n }\n });\n }\n })\n .on('scroll.fndtn.magellan', self.throttle(this.check_for_arrivals.bind(this), settings.throttle_delay));\n },\n\n check_for_arrivals : function () {\n var self = this;\n self.update_arrivals();\n self.update_expedition_positions();\n },\n\n set_expedition_position : function () {\n var self = this;\n $('[' + this.attr_name() + '=fixed]', self.scope).each(function (idx, el) {\n var expedition = $(this),\n settings = expedition.data('magellan-expedition-init'),\n styles = expedition.attr('styles'), // save styles\n top_offset, fixed_top;\n\n expedition.attr('style', '');\n top_offset = expedition.offset().top + settings.threshold;\n\n //set fixed-top by attribute\n fixed_top = parseInt(expedition.data('magellan-fixed-top'));\n if (!isNaN(fixed_top)) {\n self.settings.fixed_top = fixed_top;\n }\n\n expedition.data(self.data_attr('magellan-top-offset'), top_offset);\n expedition.attr('style', styles);\n });\n },\n\n update_expedition_positions : function () {\n var self = this,\n window_top_offset = $(window).scrollTop();\n\n $('[' + this.attr_name() + '=fixed]', self.scope).each(function () {\n var expedition = $(this),\n settings = expedition.data('magellan-expedition-init'),\n styles = expedition.attr('style'), // save styles\n top_offset = expedition.data('magellan-top-offset');\n\n //scroll to the top distance\n if (window_top_offset + self.settings.fixed_top >= top_offset) {\n // Placeholder allows height calculations to be consistent even when\n // appearing to switch between fixed/non-fixed placement\n var placeholder = expedition.prev('[' + self.add_namespace('data-magellan-expedition-clone') + ']');\n if (placeholder.length === 0) {\n placeholder = expedition.clone();\n placeholder.removeAttr(self.attr_name());\n placeholder.attr(self.add_namespace('data-magellan-expedition-clone'), '');\n expedition.before(placeholder);\n }\n expedition.css({position :'fixed', top : settings.fixed_top}).addClass('fixed');\n } else {\n expedition.prev('[' + self.add_namespace('data-magellan-expedition-clone') + ']').remove();\n expedition.attr('style', styles).css('position', '').css('top', '').removeClass('fixed');\n }\n });\n },\n\n update_arrivals : function () {\n var self = this,\n window_top_offset = $(window).scrollTop();\n\n $('[' + this.attr_name() + ']', self.scope).each(function () {\n var expedition = $(this),\n settings = expedition.data(self.attr_name(true) + '-init'),\n offsets = self.offsets(expedition, window_top_offset),\n arrivals = expedition.find('[' + self.add_namespace('data-magellan-arrival') + ']'),\n active_item = false;\n offsets.each(function (idx, item) {\n if (item.viewport_offset >= item.top_offset) {\n var arrivals = expedition.find('[' + self.add_namespace('data-magellan-arrival') + ']');\n arrivals.not(item.arrival).removeClass(settings.active_class);\n item.arrival.addClass(settings.active_class);\n active_item = true;\n return true;\n }\n });\n\n if (!active_item) {\n arrivals.removeClass(settings.active_class);\n }\n });\n },\n\n offsets : function (expedition, window_offset) {\n var self = this,\n settings = expedition.data(self.attr_name(true) + '-init'),\n viewport_offset = window_offset;\n\n return expedition.find('[' + self.add_namespace('data-magellan-arrival') + ']').map(function (idx, el) {\n var name = $(this).data(self.data_attr('magellan-arrival')),\n dest = $('[' + self.add_namespace('data-magellan-destination') + '=' + name + ']');\n if (dest.length > 0) {\n var top_offset = dest.offset().top - settings.destination_threshold;\n if (settings.offset_by_height) {\n top_offset = top_offset - expedition.outerHeight();\n }\n top_offset = Math.floor(top_offset);\n return {\n destination : dest,\n arrival : $(this),\n top_offset : top_offset,\n viewport_offset : viewport_offset\n }\n }\n }).sort(function (a, b) {\n if (a.top_offset < b.top_offset) {\n return -1;\n }\n if (a.top_offset > b.top_offset) {\n return 1;\n }\n return 0;\n });\n },\n\n data_attr : function (str) {\n if (this.namespace.length > 0) {\n return this.namespace + '-' + str;\n }\n\n return str;\n },\n\n off : function () {\n this.S(this.scope).off('.magellan');\n this.S(window).off('.magellan');\n },\n\n filterPathname : function (pathname) {\n pathname = pathname || '';\n return pathname\n .replace(/^\\//,'')\n .replace(/(?:index|default).[a-zA-Z]{3,4}$/,'')\n .replace(/\\/$/,'');\n },\n\n reflow : function () {\n var self = this;\n // remove placeholder expeditions used for height calculation purposes\n $('[' + self.add_namespace('data-magellan-expedition-clone') + ']', self.scope).remove();\n }\n };\n}(jQuery, window, window.document));\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))\n\n/***/ }),\n\n/***/ 61:\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(jQuery) {;(function ($, window, document, undefined) {\n 'use strict';\n\n var openModals = [];\n\n Foundation.libs.reveal = {\n name : 'reveal',\n\n version : '5.5.3',\n\n locked : false,\n\n settings : {\n animation : 'fadeAndPop',\n animation_speed : 250,\n close_on_background_click : true,\n close_on_esc : true,\n dismiss_modal_class : 'close-reveal-modal',\n multiple_opened : false,\n bg_class : 'reveal-modal-bg',\n root_element : 'body',\n open : function(){},\n opened : function(){},\n close : function(){},\n closed : function(){},\n on_ajax_error: $.noop,\n bg : $('.reveal-modal-bg'),\n css : {\n open : {\n 'opacity' : 0,\n 'visibility' : 'visible',\n 'display' : 'block'\n },\n close : {\n 'opacity' : 1,\n 'visibility' : 'hidden',\n 'display' : 'none'\n }\n }\n },\n\n init : function (scope, method, options) {\n $.extend(true, this.settings, method, options);\n this.bindings(method, options);\n },\n\n events : function (scope) {\n var self = this,\n S = self.S;\n\n S(this.scope)\n .off('.reveal')\n .on('click.fndtn.reveal', '[' + this.add_namespace('data-reveal-id') + ']:not([disabled])', function (e) {\n e.preventDefault();\n\n if (!self.locked) {\n var element = S(this),\n ajax = element.data(self.data_attr('reveal-ajax')),\n replaceContentSel = element.data(self.data_attr('reveal-replace-content'));\n\n self.locked = true;\n\n if (typeof ajax === 'undefined') {\n self.open.call(self, element);\n } else {\n var url = ajax === true ? element.attr('href') : ajax;\n self.open.call(self, element, {url : url}, { replaceContentSel : replaceContentSel });\n }\n }\n });\n\n S(document)\n .on('click.fndtn.reveal', this.close_targets(), function (e) {\n e.preventDefault();\n if (!self.locked) {\n var settings = S('[' + self.attr_name() + '].open').data(self.attr_name(true) + '-init') || self.settings,\n bg_clicked = S(e.target)[0] === S('.' + settings.bg_class)[0];\n\n if (bg_clicked) {\n if (settings.close_on_background_click) {\n e.stopPropagation();\n } else {\n return;\n }\n }\n\n self.locked = true;\n self.close.call(self, bg_clicked ? S('[' + self.attr_name() + '].open:not(.toback)') : S(this).closest('[' + self.attr_name() + ']'));\n }\n });\n\n if (S('[' + self.attr_name() + ']', this.scope).length > 0) {\n S(this.scope)\n // .off('.reveal')\n .on('open.fndtn.reveal', this.settings.open)\n .on('opened.fndtn.reveal', this.settings.opened)\n .on('opened.fndtn.reveal', this.open_video)\n .on('close.fndtn.reveal', this.settings.close)\n .on('closed.fndtn.reveal', this.settings.closed)\n .on('closed.fndtn.reveal', this.close_video);\n } else {\n S(this.scope)\n // .off('.reveal')\n .on('open.fndtn.reveal', '[' + self.attr_name() + ']', this.settings.open)\n .on('opened.fndtn.reveal', '[' + self.attr_name() + ']', this.settings.opened)\n .on('opened.fndtn.reveal', '[' + self.attr_name() + ']', this.open_video)\n .on('close.fndtn.reveal', '[' + self.attr_name() + ']', this.settings.close)\n .on('closed.fndtn.reveal', '[' + self.attr_name() + ']', this.settings.closed)\n .on('closed.fndtn.reveal', '[' + self.attr_name() + ']', this.close_video);\n }\n\n return true;\n },\n\n // PATCH #3: turning on key up capture only when a reveal window is open\n key_up_on : function (scope) {\n var self = this;\n\n // PATCH #1: fixing multiple keyup event trigger from single key press\n self.S('body').off('keyup.fndtn.reveal').on('keyup.fndtn.reveal', function ( event ) {\n var open_modal = self.S('[' + self.attr_name() + '].open'),\n settings = open_modal.data(self.attr_name(true) + '-init') || self.settings ;\n // PATCH #2: making sure that the close event can be called only while unlocked,\n // so that multiple keyup.fndtn.reveal events don't prevent clean closing of the reveal window.\n if ( settings && event.which === 27 && settings.close_on_esc && !self.locked) { // 27 is the keycode for the Escape key\n self.close.call(self, open_modal);\n }\n });\n\n return true;\n },\n\n // PATCH #3: turning on key up capture only when a reveal window is open\n key_up_off : function (scope) {\n this.S('body').off('keyup.fndtn.reveal');\n return true;\n },\n\n open : function (target, ajax_settings) {\n var self = this,\n modal;\n\n if (target) {\n if (typeof target.selector !== 'undefined') {\n // Find the named node; only use the first one found, since the rest of the code assumes there's only one node\n modal = self.S('#' + target.data(self.data_attr('reveal-id'))).first();\n } else {\n modal = self.S(this.scope);\n\n ajax_settings = target;\n }\n } else {\n modal = self.S(this.scope);\n }\n\n var settings = modal.data(self.attr_name(true) + '-init');\n settings = settings || this.settings;\n\n\n if (modal.hasClass('open') && target !== undefined && target.attr('data-reveal-id') == modal.attr('id')) {\n return self.close(modal);\n }\n\n if (!modal.hasClass('open')) {\n var open_modal = self.S('[' + self.attr_name() + '].open');\n\n if (typeof modal.data('css-top') === 'undefined') {\n modal.data('css-top', parseInt(modal.css('top'), 10))\n .data('offset', this.cache_offset(modal));\n }\n\n modal.attr('tabindex','0').attr('aria-hidden','false');\n\n this.key_up_on(modal); // PATCH #3: turning on key up capture only when a reveal window is open\n\n // Prevent namespace event from triggering twice\n modal.on('open.fndtn.reveal', function(e) {\n if (e.namespace !== 'fndtn.reveal') return;\n });\n\n modal.on('open.fndtn.reveal').trigger('open.fndtn.reveal');\n\n if (open_modal.length < 1) {\n this.toggle_bg(modal, true);\n }\n\n if (typeof ajax_settings === 'string') {\n ajax_settings = {\n url : ajax_settings\n };\n }\n\n var openModal = function() {\n if(open_modal.length > 0) {\n if(settings.multiple_opened) {\n self.to_back(open_modal);\n } else {\n self.hide(open_modal, settings.css.close);\n }\n }\n\n // bl: add the open_modal that isn't already in the background to the openModals array\n if(settings.multiple_opened) {\n openModals.push(modal);\n }\n\n self.show(modal, settings.css.open);\n };\n\n if (typeof ajax_settings === 'undefined' || !ajax_settings.url) {\n openModal();\n } else {\n var old_success = typeof ajax_settings.success !== 'undefined' ? ajax_settings.success : null;\n $.extend(ajax_settings, {\n success : function (data, textStatus, jqXHR) {\n if ( $.isFunction(old_success) ) {\n var result = old_success(data, textStatus, jqXHR);\n if (typeof result == 'string') {\n data = result;\n }\n }\n\n if (typeof options !== 'undefined' && typeof options.replaceContentSel !== 'undefined') {\n modal.find(options.replaceContentSel).html(data);\n } else {\n modal.html(data);\n }\n\n self.S(modal).foundation('section', 'reflow');\n self.S(modal).children().foundation();\n\n openModal();\n }\n });\n\n // check for if user initalized with error callback\n if (settings.on_ajax_error !== $.noop) {\n $.extend(ajax_settings, {\n error : settings.on_ajax_error\n });\n }\n\n $.ajax(ajax_settings);\n }\n }\n self.S(window).trigger('resize');\n },\n\n close : function (modal) {\n var modal = modal && modal.length ? modal : this.S(this.scope),\n open_modals = this.S('[' + this.attr_name() + '].open'),\n settings = modal.data(this.attr_name(true) + '-init') || this.settings,\n self = this;\n\n if (open_modals.length > 0) {\n\n modal.removeAttr('tabindex','0').attr('aria-hidden','true');\n\n this.locked = true;\n this.key_up_off(modal); // PATCH #3: turning on key up capture only when a reveal window is open\n\n modal.trigger('close.fndtn.reveal');\n\n if ((settings.multiple_opened && open_modals.length === 1) || !settings.multiple_opened || modal.length > 1) {\n self.toggle_bg(modal, false);\n self.to_front(modal);\n }\n\n if (settings.multiple_opened) {\n var isCurrent = modal.is(':not(.toback)');\n self.hide(modal, settings.css.close, settings);\n if(isCurrent) {\n // remove the last modal since it is now closed\n openModals.pop();\n } else {\n // if this isn't the current modal, then find it in the array and remove it\n openModals = $.grep(openModals, function(elt) {\n var isThis = elt[0]===modal[0];\n if(isThis) {\n // since it's not currently in the front, put it in the front now that it is hidden\n // so that if it's re-opened, it won't be .toback\n self.to_front(modal);\n }\n return !isThis;\n });\n }\n // finally, show the next modal in the stack, if there is one\n if(openModals.length>0) {\n self.to_front(openModals[openModals.length - 1]);\n }\n } else {\n self.hide(open_modals, settings.css.close, settings);\n }\n }\n },\n\n close_targets : function () {\n var base = '.' + this.settings.dismiss_modal_class;\n\n if (this.settings.close_on_background_click) {\n return base + ', .' + this.settings.bg_class;\n }\n\n return base;\n },\n\n toggle_bg : function (modal, state) {\n if (this.S('.' + this.settings.bg_class).length === 0) {\n this.settings.bg = $('
', {'class': this.settings.bg_class})\n .appendTo('body').hide();\n }\n\n var visible = this.settings.bg.filter(':visible').length > 0;\n if ( state != visible ) {\n if ( state == undefined ? visible : !state ) {\n this.hide(this.settings.bg);\n } else {\n this.show(this.settings.bg);\n }\n }\n },\n\n show : function (el, css) {\n // is modal\n if (css) {\n var settings = el.data(this.attr_name(true) + '-init') || this.settings,\n root_element = settings.root_element,\n context = this;\n\n if (el.parent(root_element).length === 0) {\n var placeholder = el.wrap('
').parent();\n\n el.on('closed.fndtn.reveal.wrapped', function () {\n el.detach().appendTo(placeholder);\n el.unwrap().unbind('closed.fndtn.reveal.wrapped');\n });\n\n el.detach().appendTo(root_element);\n }\n\n var animData = getAnimationData(settings.animation);\n if (!animData.animate) {\n this.locked = false;\n }\n if (animData.pop) {\n css.top = $(window).scrollTop() - el.data('offset') + 'px';\n var end_css = {\n top: $(window).scrollTop() + el.data('css-top') + 'px',\n opacity: 1\n };\n\n return setTimeout(function () {\n return el\n .css(css)\n .animate(end_css, settings.animation_speed, 'linear', function () {\n context.locked = false;\n el.trigger('opened.fndtn.reveal');\n })\n .addClass('open');\n }, settings.animation_speed / 2);\n }\n\n css.top = $(window).scrollTop() + el.data('css-top') + 'px';\n\n if (animData.fade) {\n var end_css = {opacity: 1};\n\n return setTimeout(function () {\n return el\n .css(css)\n .animate(end_css, settings.animation_speed, 'linear', function () {\n context.locked = false;\n el.trigger('opened.fndtn.reveal');\n })\n .addClass('open');\n }, settings.animation_speed / 2);\n }\n\n return el.css(css).show().css({opacity : 1}).addClass('open').trigger('opened.fndtn.reveal');\n }\n\n var settings = this.settings;\n\n // should we animate the background?\n if (getAnimationData(settings.animation).fade) {\n return el.fadeIn(settings.animation_speed / 2);\n }\n\n this.locked = false;\n\n return el.show();\n },\n\n to_back : function(el) {\n el.addClass('toback');\n },\n\n to_front : function(el) {\n el.removeClass('toback');\n },\n\n hide : function (el, css) {\n // is modal\n if (css) {\n var settings = el.data(this.attr_name(true) + '-init'),\n context = this;\n settings = settings || this.settings;\n\n var animData = getAnimationData(settings.animation);\n if (!animData.animate) {\n this.locked = false;\n }\n if (animData.pop) {\n var end_css = {\n top: - $(window).scrollTop() - el.data('offset') + 'px',\n opacity: 0\n };\n\n return setTimeout(function () {\n return el\n .animate(end_css, settings.animation_speed, 'linear', function () {\n context.locked = false;\n el.css(css).trigger('closed.fndtn.reveal');\n })\n .removeClass('open');\n }, settings.animation_speed / 2);\n }\n\n if (animData.fade) {\n var end_css = {opacity : 0};\n\n return setTimeout(function () {\n return el\n .animate(end_css, settings.animation_speed, 'linear', function () {\n context.locked = false;\n el.css(css).trigger('closed.fndtn.reveal');\n })\n .removeClass('open');\n }, settings.animation_speed / 2);\n }\n\n return el.hide().css(css).removeClass('open').trigger('closed.fndtn.reveal');\n }\n\n var settings = this.settings;\n\n // should we animate the background?\n if (getAnimationData(settings.animation).fade) {\n return el.fadeOut(settings.animation_speed / 2);\n }\n\n return el.hide();\n },\n\n close_video : function (e) {\n var video = $('.flex-video', e.target),\n iframe = $('iframe', video);\n\n if (iframe.length > 0) {\n iframe.attr('data-src', iframe[0].src);\n iframe.attr('src', iframe.attr('src'));\n video.hide();\n }\n },\n\n open_video : function (e) {\n var video = $('.flex-video', e.target),\n iframe = video.find('iframe');\n\n if (iframe.length > 0) {\n var data_src = iframe.attr('data-src');\n if (typeof data_src === 'string') {\n iframe[0].src = iframe.attr('data-src');\n } else {\n var src = iframe[0].src;\n iframe[0].src = undefined;\n iframe[0].src = src;\n }\n video.show();\n }\n },\n\n data_attr : function (str) {\n if (this.namespace.length > 0) {\n return this.namespace + '-' + str;\n }\n\n return str;\n },\n\n cache_offset : function (modal) {\n var offset = modal.show().height() + parseInt(modal.css('top'), 10) + modal.scrollY;\n\n modal.hide();\n\n return offset;\n },\n\n off : function () {\n $(this.scope).off('.fndtn.reveal');\n },\n\n reflow : function () {}\n };\n\n /*\n * getAnimationData('popAndFade') // {animate: true, pop: true, fade: true}\n * getAnimationData('fade') // {animate: true, pop: false, fade: true}\n * getAnimationData('pop') // {animate: true, pop: true, fade: false}\n * getAnimationData('foo') // {animate: false, pop: false, fade: false}\n * getAnimationData(null) // {animate: false, pop: false, fade: false}\n */\n function getAnimationData(str) {\n var fade = /fade/i.test(str);\n var pop = /pop/i.test(str);\n return {\n animate : fade || pop,\n pop : pop,\n fade : fade\n };\n }\n}(jQuery, window, window.document));\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))\n\n/***/ })\n\n},[54]);\n\n\n// WEBPACK FOOTER //\n// js/vendor/foundation.min.js","/*\n * Foundation Responsive Library\n * http://foundation.zurb.com\n * Copyright 2015, ZURB\n * Free to use under the MIT license.\n * http://www.opensource.org/licenses/mit-license.php\n*/\n\n(function ($, window, document, undefined) {\n 'use strict';\n\n var header_helpers = function (class_array) {\n var head = $('head');\n head.prepend($.map(class_array, function (class_name) {\n if (head.has('.' + class_name).length === 0) {\n return '';\n }\n }));\n };\n\n header_helpers([\n 'foundation-mq-small',\n 'foundation-mq-small-only',\n 'foundation-mq-medium',\n 'foundation-mq-medium-only',\n 'foundation-mq-large',\n 'foundation-mq-large-only',\n 'foundation-mq-xlarge',\n 'foundation-mq-xlarge-only',\n 'foundation-mq-xxlarge',\n 'foundation-data-attribute-namespace']);\n\n // Enable FastClick if present\n\n $(function () {\n if (typeof FastClick !== 'undefined') {\n // Don't attach to body if undefined\n if (typeof document.body !== 'undefined') {\n FastClick.attach(document.body);\n }\n }\n });\n\n // private Fast Selector wrapper,\n // returns jQuery object. Only use where\n // getElementById is not available.\n var S = function (selector, context) {\n if (typeof selector === 'string') {\n if (context) {\n var cont;\n if (context.jquery) {\n cont = context[0];\n if (!cont) {\n return context;\n }\n } else {\n cont = context;\n }\n return $(cont.querySelectorAll(selector));\n }\n\n return $(document.querySelectorAll(selector));\n }\n\n return $(selector, context);\n };\n\n // Namespace functions.\n\n var attr_name = function (init) {\n var arr = [];\n if (!init) {\n arr.push('data');\n }\n if (this.namespace.length > 0) {\n arr.push(this.namespace);\n }\n arr.push(this.name);\n\n return arr.join('-');\n };\n\n var add_namespace = function (str) {\n var parts = str.split('-'),\n i = parts.length,\n arr = [];\n\n while (i--) {\n if (i !== 0) {\n arr.push(parts[i]);\n } else {\n if (this.namespace.length > 0) {\n arr.push(this.namespace, parts[i]);\n } else {\n arr.push(parts[i]);\n }\n }\n }\n\n return arr.reverse().join('-');\n };\n\n // Event binding and data-options updating.\n\n var bindings = function (method, options) {\n var self = this,\n bind = function(){\n var $this = S(this),\n should_bind_events = !$this.data(self.attr_name(true) + '-init');\n $this.data(self.attr_name(true) + '-init', $.extend({}, self.settings, (options || method), self.data_options($this)));\n\n if (should_bind_events) {\n self.events(this);\n }\n };\n\n if (S(this.scope).is('[' + this.attr_name() +']')) {\n bind.call(this.scope);\n } else {\n S('[' + this.attr_name() +']', this.scope).each(bind);\n }\n // # Patch to fix #5043 to move this *after* the if/else clause in order for Backbone and similar frameworks to have improved control over event binding and data-options updating.\n if (typeof method === 'string') {\n return this[method].call(this, options);\n }\n\n };\n\n var single_image_loaded = function (image, callback) {\n function loaded () {\n callback(image[0]);\n }\n\n function bindLoad () {\n this.one('load', loaded);\n\n if (/MSIE (\\d+\\.\\d+);/.test(navigator.userAgent)) {\n var src = this.attr( 'src' ),\n param = src.match( /\\?/ ) ? '&' : '?';\n\n param += 'random=' + (new Date()).getTime();\n this.attr('src', src + param);\n }\n }\n\n if (!image.attr('src')) {\n loaded();\n return;\n }\n\n if (image[0].complete || image[0].readyState === 4) {\n loaded();\n } else {\n bindLoad.call(image);\n }\n };\n\n /*! matchMedia() polyfill - Test a CSS media type/query in JS. Authors & copyright (c) 2012: Scott Jehl, Paul Irish, Nicholas Zakas, David Knight. Dual MIT/BSD license */\n\n window.matchMedia || (window.matchMedia = function() {\n \"use strict\";\n\n // For browsers that support matchMedium api such as IE 9 and webkit\n var styleMedia = (window.styleMedia || window.media);\n\n // For those that don't support matchMedium\n if (!styleMedia) {\n var style = document.createElement('style'),\n script = document.getElementsByTagName('script')[0],\n info = null;\n\n style.type = 'text/css';\n style.id = 'matchmediajs-test';\n\n script.parentNode.insertBefore(style, script);\n\n // 'style.currentStyle' is used by IE <= 8 and 'window.getComputedStyle' for all other browsers\n info = ('getComputedStyle' in window) && window.getComputedStyle(style, null) || style.currentStyle;\n\n styleMedia = {\n matchMedium: function(media) {\n var text = '@media ' + media + '{ #matchmediajs-test { width: 1px; } }';\n\n // 'style.styleSheet' is used by IE <= 8 and 'style.textContent' for all other browsers\n if (style.styleSheet) {\n style.styleSheet.cssText = text;\n } else {\n style.textContent = text;\n }\n\n // Test if media query is true or false\n return info.width === '1px';\n }\n };\n }\n\n return function(media) {\n return {\n matches: styleMedia.matchMedium(media || 'all'),\n media: media || 'all'\n };\n };\n }());\n\n /*\n * jquery.requestAnimationFrame\n * https://github.com/gnarf37/jquery-requestAnimationFrame\n * Requires jQuery 1.8+\n *\n * Copyright (c) 2012 Corey Frang\n * Licensed under the MIT license.\n */\n\n (function(jQuery) {\n\n\n // requestAnimationFrame polyfill adapted from Erik Möller\n // fixes from Paul Irish and Tino Zijdel\n // http://paulirish.com/2011/requestanimationframe-for-smart-animating/\n // http://my.opera.com/emoller/blog/2011/12/20/requestanimationframe-for-smart-er-animating\n\n var animating,\n lastTime = 0,\n vendors = ['webkit', 'moz'],\n requestAnimationFrame = window.requestAnimationFrame,\n cancelAnimationFrame = window.cancelAnimationFrame,\n jqueryFxAvailable = 'undefined' !== typeof jQuery.fx;\n\n for (; lastTime < vendors.length && !requestAnimationFrame; lastTime++) {\n requestAnimationFrame = window[ vendors[lastTime] + 'RequestAnimationFrame' ];\n cancelAnimationFrame = cancelAnimationFrame ||\n window[ vendors[lastTime] + 'CancelAnimationFrame' ] ||\n window[ vendors[lastTime] + 'CancelRequestAnimationFrame' ];\n }\n\n function raf() {\n if (animating) {\n requestAnimationFrame(raf);\n\n if (jqueryFxAvailable) {\n jQuery.fx.tick();\n }\n }\n }\n\n if (requestAnimationFrame) {\n // use rAF\n window.requestAnimationFrame = requestAnimationFrame;\n window.cancelAnimationFrame = cancelAnimationFrame;\n\n if (jqueryFxAvailable) {\n jQuery.fx.timer = function (timer) {\n if (timer() && jQuery.timers.push(timer) && !animating) {\n animating = true;\n raf();\n }\n };\n\n jQuery.fx.stop = function () {\n animating = false;\n };\n }\n } else {\n // polyfill\n window.requestAnimationFrame = function (callback) {\n var currTime = new Date().getTime(),\n timeToCall = Math.max(0, 16 - (currTime - lastTime)),\n id = window.setTimeout(function () {\n callback(currTime + timeToCall);\n }, timeToCall);\n lastTime = currTime + timeToCall;\n return id;\n };\n\n window.cancelAnimationFrame = function (id) {\n clearTimeout(id);\n };\n\n }\n\n }( $ ));\n\n function removeQuotes (string) {\n if (typeof string === 'string' || string instanceof String) {\n string = string.replace(/^['\\\\/\"]+|(;\\s?})+|['\\\\/\"]+$/g, '');\n }\n\n return string;\n }\n\n function MediaQuery(selector) {\n this.selector = selector;\n this.query = '';\n }\n\n MediaQuery.prototype.toString = function () {\n return this.query || (this.query = S(this.selector).css('font-family').replace(/^[\\/\\\\'\"]+|(;\\s?})+|[\\/\\\\'\"]+$/g, ''));\n };\n\n window.Foundation = {\n name : 'Foundation',\n\n version : '5.5.3',\n\n media_queries : {\n 'small' : new MediaQuery('.foundation-mq-small'),\n 'small-only' : new MediaQuery('.foundation-mq-small-only'),\n 'medium' : new MediaQuery('.foundation-mq-medium'),\n 'medium-only' : new MediaQuery('.foundation-mq-medium-only'),\n 'large' : new MediaQuery('.foundation-mq-large'),\n 'large-only' : new MediaQuery('.foundation-mq-large-only'),\n 'xlarge' : new MediaQuery('.foundation-mq-xlarge'),\n 'xlarge-only' : new MediaQuery('.foundation-mq-xlarge-only'),\n 'xxlarge' : new MediaQuery('.foundation-mq-xxlarge')\n },\n\n stylesheet : $('').appendTo('head')[0].sheet,\n\n global : {\n namespace : undefined\n },\n\n init : function (scope, libraries, method, options, response) {\n var args = [scope, method, options, response],\n responses = [];\n\n // check RTL\n this.rtl = /rtl/i.test(S('html').attr('dir'));\n\n // set foundation global scope\n this.scope = scope || this.scope;\n\n this.set_namespace();\n\n if (libraries && typeof libraries === 'string' && !/reflow/i.test(libraries)) {\n if (this.libs.hasOwnProperty(libraries)) {\n responses.push(this.init_lib(libraries, args));\n }\n } else {\n for (var lib in this.libs) {\n responses.push(this.init_lib(lib, libraries));\n }\n }\n\n S(window).load(function () {\n S(window)\n .trigger('resize.fndtn.clearing')\n .trigger('resize.fndtn.dropdown')\n .trigger('resize.fndtn.equalizer')\n .trigger('resize.fndtn.interchange')\n .trigger('resize.fndtn.joyride')\n .trigger('resize.fndtn.magellan')\n .trigger('resize.fndtn.topbar')\n .trigger('resize.fndtn.slider');\n });\n\n return scope;\n },\n\n init_lib : function (lib, args) {\n if (this.libs.hasOwnProperty(lib)) {\n this.patch(this.libs[lib]);\n\n if (args && args.hasOwnProperty(lib)) {\n if (typeof this.libs[lib].settings !== 'undefined') {\n $.extend(true, this.libs[lib].settings, args[lib]);\n } else if (typeof this.libs[lib].defaults !== 'undefined') {\n $.extend(true, this.libs[lib].defaults, args[lib]);\n }\n return this.libs[lib].init.apply(this.libs[lib], [this.scope, args[lib]]);\n }\n\n args = args instanceof Array ? args : new Array(args);\n return this.libs[lib].init.apply(this.libs[lib], args);\n }\n\n return function () {};\n },\n\n patch : function (lib) {\n lib.scope = this.scope;\n lib.namespace = this.global.namespace;\n lib.rtl = this.rtl;\n lib['data_options'] = this.utils.data_options;\n lib['attr_name'] = attr_name;\n lib['add_namespace'] = add_namespace;\n lib['bindings'] = bindings;\n lib['S'] = this.utils.S;\n },\n\n inherit : function (scope, methods) {\n var methods_arr = methods.split(' '),\n i = methods_arr.length;\n\n while (i--) {\n if (this.utils.hasOwnProperty(methods_arr[i])) {\n scope[methods_arr[i]] = this.utils[methods_arr[i]];\n }\n }\n },\n\n set_namespace : function () {\n\n // Description:\n // Don't bother reading the namespace out of the meta tag\n // if the namespace has been set globally in javascript\n //\n // Example:\n // Foundation.global.namespace = 'my-namespace';\n // or make it an empty string:\n // Foundation.global.namespace = '';\n //\n //\n\n // If the namespace has not been set (is undefined), try to read it out of the meta element.\n // Otherwise use the globally defined namespace, even if it's empty ('')\n var namespace = ( this.global.namespace === undefined ) ? $('.foundation-data-attribute-namespace').css('font-family') : this.global.namespace;\n\n // Finally, if the namsepace is either undefined or false, set it to an empty string.\n // Otherwise use the namespace value.\n this.global.namespace = ( namespace === undefined || /false/i.test(namespace) ) ? '' : namespace;\n },\n\n libs : {},\n\n // methods that can be inherited in libraries\n utils : {\n\n // Description:\n // Fast Selector wrapper returns jQuery object. Only use where getElementById\n // is not available.\n //\n // Arguments:\n // Selector (String): CSS selector describing the element(s) to be\n // returned as a jQuery object.\n //\n // Scope (String): CSS selector describing the area to be searched. Default\n // is document.\n //\n // Returns:\n // Element (jQuery Object): jQuery object containing elements matching the\n // selector within the scope.\n S : S,\n\n // Description:\n // Executes a function a max of once every n milliseconds\n //\n // Arguments:\n // Func (Function): Function to be throttled.\n //\n // Delay (Integer): Function execution threshold in milliseconds.\n //\n // Returns:\n // Lazy_function (Function): Function with throttling applied.\n throttle : function (func, delay) {\n var timer = null;\n\n return function () {\n var context = this, args = arguments;\n\n if (timer == null) {\n timer = setTimeout(function () {\n func.apply(context, args);\n timer = null;\n }, delay);\n }\n };\n },\n\n // Description:\n // Executes a function when it stops being invoked for n seconds\n // Modified version of _.debounce() http://underscorejs.org\n //\n // Arguments:\n // Func (Function): Function to be debounced.\n //\n // Delay (Integer): Function execution threshold in milliseconds.\n //\n // Immediate (Bool): Whether the function should be called at the beginning\n // of the delay instead of the end. Default is false.\n //\n // Returns:\n // Lazy_function (Function): Function with debouncing applied.\n debounce : function (func, delay, immediate) {\n var timeout, result;\n return function () {\n var context = this, args = arguments;\n var later = function () {\n timeout = null;\n if (!immediate) {\n result = func.apply(context, args);\n }\n };\n var callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, delay);\n if (callNow) {\n result = func.apply(context, args);\n }\n return result;\n };\n },\n\n // Description:\n // Parses data-options attribute\n //\n // Arguments:\n // El (jQuery Object): Element to be parsed.\n //\n // Returns:\n // Options (Javascript Object): Contents of the element's data-options\n // attribute.\n data_options : function (el, data_attr_name) {\n data_attr_name = data_attr_name || 'options';\n var opts = {}, ii, p, opts_arr,\n data_options = function (el) {\n var namespace = Foundation.global.namespace;\n\n if (namespace.length > 0) {\n return el.data(namespace + '-' + data_attr_name);\n }\n\n return el.data(data_attr_name);\n };\n\n var cached_options = data_options(el);\n\n if (typeof cached_options === 'object') {\n return cached_options;\n }\n\n opts_arr = (cached_options || ':').split(';');\n ii = opts_arr.length;\n\n function isNumber (o) {\n return !isNaN (o - 0) && o !== null && o !== '' && o !== false && o !== true;\n }\n\n function trim (str) {\n if (typeof str === 'string') {\n return $.trim(str);\n }\n return str;\n }\n\n while (ii--) {\n p = opts_arr[ii].split(':');\n p = [p[0], p.slice(1).join(':')];\n\n if (/true/i.test(p[1])) {\n p[1] = true;\n }\n if (/false/i.test(p[1])) {\n p[1] = false;\n }\n if (isNumber(p[1])) {\n if (p[1].indexOf('.') === -1) {\n p[1] = parseInt(p[1], 10);\n } else {\n p[1] = parseFloat(p[1]);\n }\n }\n\n if (p.length === 2 && p[0].length > 0) {\n opts[trim(p[0])] = trim(p[1]);\n }\n }\n\n return opts;\n },\n\n // Description:\n // Adds JS-recognizable media queries\n //\n // Arguments:\n // Media (String): Key string for the media query to be stored as in\n // Foundation.media_queries\n //\n // Class (String): Class name for the generated tag\n register_media : function (media, media_class) {\n if (Foundation.media_queries[media] === undefined) {\n $('head').append('');\n Foundation.media_queries[media] = removeQuotes($('.' + media_class).css('font-family'));\n }\n },\n\n // Description:\n // Add custom CSS within a JS-defined media query\n //\n // Arguments:\n // Rule (String): CSS rule to be appended to the document.\n //\n // Media (String): Optional media query string for the CSS rule to be\n // nested under.\n add_custom_rule : function (rule, media) {\n if (media === undefined && Foundation.stylesheet) {\n Foundation.stylesheet.insertRule(rule, Foundation.stylesheet.cssRules.length);\n } else {\n var query = Foundation.media_queries[media];\n\n if (query !== undefined) {\n Foundation.stylesheet.insertRule('@media ' +\n Foundation.media_queries[media] + '{ ' + rule + ' }', Foundation.stylesheet.cssRules.length);\n }\n }\n },\n\n // Description:\n // Performs a callback function when an image is fully loaded\n //\n // Arguments:\n // Image (jQuery Object): Image(s) to check if loaded.\n //\n // Callback (Function): Function to execute when image is fully loaded.\n image_loaded : function (images, callback) {\n var self = this,\n unloaded = images.length;\n\n function pictures_has_height(images) {\n var pictures_number = images.length;\n\n for (var i = pictures_number - 1; i >= 0; i--) {\n if(images.attr('height') === undefined) {\n return false;\n };\n };\n\n return true;\n }\n\n if (unloaded === 0 || pictures_has_height(images)) {\n callback(images);\n }\n\n images.each(function () {\n single_image_loaded(self.S(this), function () {\n unloaded -= 1;\n if (unloaded === 0) {\n callback(images);\n }\n });\n });\n },\n\n // Description:\n // Returns a random, alphanumeric string\n //\n // Arguments:\n // Length (Integer): Length of string to be generated. Defaults to random\n // integer.\n //\n // Returns:\n // Rand (String): Pseudo-random, alphanumeric string.\n random_str : function () {\n if (!this.fidx) {\n this.fidx = 0;\n }\n this.prefix = this.prefix || [(this.name || 'F'), (+new Date).toString(36)].join('-');\n\n return this.prefix + (this.fidx++).toString(36);\n },\n\n // Description:\n // Helper for window.matchMedia\n //\n // Arguments:\n // mq (String): Media query\n //\n // Returns:\n // (Boolean): Whether the media query passes or not\n match : function (mq) {\n return window.matchMedia(mq).matches;\n },\n\n // Description:\n // Helpers for checking Foundation default media queries with JS\n //\n // Returns:\n // (Boolean): Whether the media query passes or not\n\n is_small_up : function () {\n return this.match(Foundation.media_queries.small);\n },\n\n is_medium_up : function () {\n return this.match(Foundation.media_queries.medium);\n },\n\n is_large_up : function () {\n return this.match(Foundation.media_queries.large);\n },\n\n is_xlarge_up : function () {\n return this.match(Foundation.media_queries.xlarge);\n },\n\n is_xxlarge_up : function () {\n return this.match(Foundation.media_queries.xxlarge);\n },\n\n is_small_only : function () {\n return !this.is_medium_up() && !this.is_large_up() && !this.is_xlarge_up() && !this.is_xxlarge_up();\n },\n\n is_medium_only : function () {\n return this.is_medium_up() && !this.is_large_up() && !this.is_xlarge_up() && !this.is_xxlarge_up();\n },\n\n is_large_only : function () {\n return this.is_medium_up() && this.is_large_up() && !this.is_xlarge_up() && !this.is_xxlarge_up();\n },\n\n is_xlarge_only : function () {\n return this.is_medium_up() && this.is_large_up() && this.is_xlarge_up() && !this.is_xxlarge_up();\n },\n\n is_xxlarge_only : function () {\n return this.is_medium_up() && this.is_large_up() && this.is_xlarge_up() && this.is_xxlarge_up();\n }\n }\n };\n\n $.fn.foundation = function () {\n var args = Array.prototype.slice.call(arguments, 0);\n\n return this.each(function () {\n Foundation.init.apply(Foundation, [this].concat(args));\n return this;\n });\n };\n\n}(jQuery, window, window.document));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/foundation-sites/js/foundation/foundation.js\n// module id = 55\n// module chunks = 2",";(function ($, window, document, undefined) {\n 'use strict';\n\n Foundation.libs.alert = {\n name : 'alert',\n\n version : '5.5.3',\n\n settings : {\n callback : function () {}\n },\n\n init : function (scope, method, options) {\n this.bindings(method, options);\n },\n\n events : function () {\n var self = this,\n S = this.S;\n\n $(this.scope).off('.alert').on('click.fndtn.alert', '[' + this.attr_name() + '] .close', function (e) {\n var alertBox = S(this).closest('[' + self.attr_name() + ']'),\n settings = alertBox.data(self.attr_name(true) + '-init') || self.settings;\n\n e.preventDefault();\n if (Modernizr.csstransitions) {\n alertBox.addClass('alert-close');\n alertBox.on('transitionend webkitTransitionEnd oTransitionEnd', function (e) {\n S(this).trigger('close.fndtn.alert').remove();\n settings.callback();\n });\n } else {\n alertBox.fadeOut(300, function () {\n S(this).trigger('close.fndtn.alert').remove();\n settings.callback();\n });\n }\n });\n },\n\n reflow : function () {}\n };\n}(jQuery, window, window.document));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/foundation-sites/js/foundation/foundation.alert.js\n// module id = 56\n// module chunks = 2",";(function ($, window, document, undefined) {\n 'use strict';\n\n Foundation.libs.clearing = {\n name : 'clearing',\n\n version : '5.5.3',\n\n settings : {\n templates : {\n viewing : '×' +\n '
\"\"' +\n '

' +\n '
' +\n '\"\"' +\n '\"\"'\n },\n\n // comma delimited list of selectors that, on click, will close clearing,\n // add 'div.clearing-blackout, div.visible-img' to close on background click\n close_selectors : '.clearing-close, div.clearing-blackout',\n\n // Default to the entire li element.\n open_selectors : '',\n\n // Image will be skipped in carousel.\n skip_selector : '',\n\n touch_label : '',\n\n // event initializer and locks\n init : false,\n locked : false\n },\n\n init : function (scope, method, options) {\n var self = this;\n Foundation.inherit(this, 'throttle image_loaded');\n\n this.bindings(method, options);\n\n if (self.S(this.scope).is('[' + this.attr_name() + ']')) {\n this.assemble(self.S('li', this.scope));\n } else {\n self.S('[' + this.attr_name() + ']', this.scope).each(function () {\n self.assemble(self.S('li', this));\n });\n }\n },\n\n events : function (scope) {\n var self = this,\n S = self.S,\n $scroll_container = $('.scroll-container');\n\n if ($scroll_container.length > 0) {\n this.scope = $scroll_container;\n }\n\n S(this.scope)\n .off('.clearing')\n .on('click.fndtn.clearing', 'ul[' + this.attr_name() + '] li ' + this.settings.open_selectors,\n function (e, current, target) {\n var current = current || S(this),\n target = target || current,\n next = current.next('li'),\n settings = current.closest('[' + self.attr_name() + ']').data(self.attr_name(true) + '-init'),\n image = S(e.target);\n\n e.preventDefault();\n\n if (!settings) {\n self.init();\n settings = current.closest('[' + self.attr_name() + ']').data(self.attr_name(true) + '-init');\n }\n\n // if clearing is open and the current image is\n // clicked, go to the next image in sequence\n if (target.hasClass('visible') &&\n current[0] === target[0] &&\n next.length > 0 && self.is_open(current)) {\n target = next;\n image = S('img', target);\n }\n\n // set current and target to the clicked li if not otherwise defined.\n self.open(image, current, target);\n self.update_paddles(target);\n })\n\n .on('click.fndtn.clearing', '.clearing-main-next',\n function (e) { self.nav(e, 'next') })\n .on('click.fndtn.clearing', '.clearing-main-prev',\n function (e) { self.nav(e, 'prev') })\n .on('click.fndtn.clearing', this.settings.close_selectors,\n function (e) { Foundation.libs.clearing.close(e, this) });\n\n $(document).on('keydown.fndtn.clearing',\n function (e) { self.keydown(e) });\n\n S(window).off('.clearing').on('resize.fndtn.clearing',\n function () { self.resize() });\n\n this.swipe_events(scope);\n },\n\n swipe_events : function (scope) {\n var self = this,\n S = self.S;\n\n S(this.scope)\n .on('touchstart.fndtn.clearing', '.visible-img', function (e) {\n if (!e.touches) { e = e.originalEvent; }\n var data = {\n start_page_x : e.touches[0].pageX,\n start_page_y : e.touches[0].pageY,\n start_time : (new Date()).getTime(),\n delta_x : 0,\n is_scrolling : undefined\n };\n\n S(this).data('swipe-transition', data);\n e.stopPropagation();\n })\n .on('touchmove.fndtn.clearing', '.visible-img', function (e) {\n if (!e.touches) {\n e = e.originalEvent;\n }\n // Ignore pinch/zoom events\n if (e.touches.length > 1 || e.scale && e.scale !== 1) {\n return;\n }\n\n var data = S(this).data('swipe-transition');\n\n if (typeof data === 'undefined') {\n data = {};\n }\n\n data.delta_x = e.touches[0].pageX - data.start_page_x;\n\n if (Foundation.rtl) {\n data.delta_x = -data.delta_x;\n }\n\n if (typeof data.is_scrolling === 'undefined') {\n data.is_scrolling = !!( data.is_scrolling || Math.abs(data.delta_x) < Math.abs(e.touches[0].pageY - data.start_page_y) );\n }\n\n if (!data.is_scrolling && !data.active) {\n e.preventDefault();\n var direction = (data.delta_x < 0) ? 'next' : 'prev';\n data.active = true;\n self.nav(e, direction);\n }\n })\n .on('touchend.fndtn.clearing', '.visible-img', function (e) {\n S(this).data('swipe-transition', {});\n e.stopPropagation();\n });\n },\n\n assemble : function ($li) {\n var $el = $li.parent();\n\n if ($el.parent().hasClass('carousel')) {\n return;\n }\n\n $el.after('
');\n\n var grid = $el.detach(),\n grid_outerHTML = '';\n\n if (grid[0] == null) {\n return;\n } else {\n grid_outerHTML = grid[0].outerHTML;\n }\n\n var holder = this.S('#foundationClearingHolder'),\n settings = $el.data(this.attr_name(true) + '-init'),\n data = {\n grid : '
' + grid_outerHTML + '
',\n viewing : settings.templates.viewing\n },\n wrapper = '
' + data.viewing +\n data.grid + '
',\n touch_label = this.settings.touch_label;\n\n if (Modernizr.touch) {\n wrapper = $(wrapper).find('.clearing-touch-label').html(touch_label).end();\n }\n\n holder.after(wrapper).remove();\n },\n\n open : function ($image, current, target) {\n var self = this,\n body = $(document.body),\n root = target.closest('.clearing-assembled'),\n container = self.S('div', root).first(),\n visible_image = self.S('.visible-img', container),\n image = self.S('img', visible_image).not($image),\n label = self.S('.clearing-touch-label', container),\n error = false,\n loaded = {};\n\n // Event to disable scrolling on touch devices when Clearing is activated\n $('body').on('touchmove', function (e) {\n e.preventDefault();\n });\n\n image.error(function () {\n error = true;\n });\n\n function startLoad() {\n setTimeout(function () {\n this.image_loaded(image, function () {\n if (image.outerWidth() === 1 && !error) {\n startLoad.call(this);\n } else {\n cb.call(this, image);\n }\n }.bind(this));\n }.bind(this), 100);\n }\n\n function cb (image) {\n var $image = $(image);\n $image.css('visibility', 'visible');\n $image.trigger('imageVisible');\n // toggle the gallery\n body.css('overflow', 'hidden');\n root.addClass('clearing-blackout');\n container.addClass('clearing-container');\n visible_image.show();\n this.fix_height(target)\n .caption(self.S('.clearing-caption', visible_image), self.S('img', target))\n .center_and_label(image, label)\n .shift(current, target, function () {\n target.closest('li').siblings().removeClass('visible');\n target.closest('li').addClass('visible');\n });\n visible_image.trigger('opened.fndtn.clearing')\n }\n\n if (!this.locked()) {\n visible_image.trigger('open.fndtn.clearing');\n // set the image to the selected thumbnail\n loaded = this.load($image);\n if (loaded.interchange) {\n image\n .attr('data-interchange', loaded.interchange)\n .foundation('interchange', 'reflow');\n } else {\n image\n .attr('src', loaded.src)\n .attr('data-interchange', '');\n }\n image.css('visibility', 'hidden');\n\n startLoad.call(this);\n }\n },\n\n close : function (e, el) {\n e.preventDefault();\n\n var root = (function (target) {\n if (/blackout/.test(target.selector)) {\n return target;\n } else {\n return target.closest('.clearing-blackout');\n }\n }($(el))),\n body = $(document.body), container, visible_image;\n\n if (el === e.target && root) {\n body.css('overflow', '');\n container = $('div', root).first();\n visible_image = $('.visible-img', container);\n visible_image.trigger('close.fndtn.clearing');\n this.settings.prev_index = 0;\n $('ul[' + this.attr_name() + ']', root)\n .attr('style', '').closest('.clearing-blackout')\n .removeClass('clearing-blackout');\n container.removeClass('clearing-container');\n visible_image.hide();\n visible_image.trigger('closed.fndtn.clearing');\n }\n\n // Event to re-enable scrolling on touch devices\n $('body').off('touchmove');\n\n return false;\n },\n\n is_open : function (current) {\n return current.parent().prop('style').length > 0;\n },\n\n keydown : function (e) {\n var clearing = $('.clearing-blackout ul[' + this.attr_name() + ']'),\n NEXT_KEY = this.rtl ? 37 : 39,\n PREV_KEY = this.rtl ? 39 : 37,\n ESC_KEY = 27;\n\n if (e.which === NEXT_KEY) {\n this.go(clearing, 'next');\n }\n if (e.which === PREV_KEY) {\n this.go(clearing, 'prev');\n }\n if (e.which === ESC_KEY) {\n this.S('a.clearing-close').trigger('click.fndtn.clearing');\n }\n },\n\n nav : function (e, direction) {\n var clearing = $('ul[' + this.attr_name() + ']', '.clearing-blackout');\n\n e.preventDefault();\n this.go(clearing, direction);\n },\n\n resize : function () {\n var image = $('img', '.clearing-blackout .visible-img'),\n label = $('.clearing-touch-label', '.clearing-blackout');\n\n if (image.length) {\n this.center_and_label(image, label);\n image.trigger('resized.fndtn.clearing')\n }\n },\n\n // visual adjustments\n fix_height : function (target) {\n var lis = target.parent().children(),\n self = this;\n\n lis.each(function () {\n var li = self.S(this),\n image = li.find('img');\n\n if (li.height() > image.outerHeight()) {\n li.addClass('fix-height');\n }\n })\n .closest('ul')\n .width(lis.length * 100 + '%');\n\n return this;\n },\n\n update_paddles : function (target) {\n target = target.closest('li');\n var visible_image = target\n .closest('.carousel')\n .siblings('.visible-img');\n\n if (target.next().length > 0) {\n this.S('.clearing-main-next', visible_image).removeClass('disabled');\n } else {\n this.S('.clearing-main-next', visible_image).addClass('disabled');\n }\n\n if (target.prev().length > 0) {\n this.S('.clearing-main-prev', visible_image).removeClass('disabled');\n } else {\n this.S('.clearing-main-prev', visible_image).addClass('disabled');\n }\n },\n\n center_and_label : function (target, label) {\n if (!this.rtl && label.length > 0) {\n label.css({\n marginLeft : -(label.outerWidth() / 2),\n marginTop : -(target.outerHeight() / 2)-label.outerHeight()-10\n });\n } else {\n label.css({\n marginRight : -(label.outerWidth() / 2),\n marginTop : -(target.outerHeight() / 2)-label.outerHeight()-10,\n left: 'auto',\n right: '50%'\n });\n }\n return this;\n },\n\n // image loading and preloading\n\n load : function ($image) {\n var href,\n interchange,\n closest_a;\n\n if ($image[0].nodeName === 'A') {\n href = $image.attr('href');\n interchange = $image.data('clearing-interchange');\n } else {\n closest_a = $image.closest('a');\n href = closest_a.attr('href');\n interchange = closest_a.data('clearing-interchange');\n }\n\n this.preload($image);\n\n return {\n 'src': href ? href : $image.attr('src'),\n 'interchange': href ? interchange : $image.data('clearing-interchange')\n }\n },\n\n preload : function ($image) {\n this\n .img($image.closest('li').next(), 'next')\n .img($image.closest('li').prev(), 'prev');\n },\n\n img : function (img, sibling_type) {\n if (img.length) {\n var preload_img = $('.clearing-preload-' + sibling_type),\n new_a = this.S('a', img),\n src,\n interchange,\n image;\n\n if (new_a.length) {\n src = new_a.attr('href');\n interchange = new_a.data('clearing-interchange');\n } else {\n image = this.S('img', img);\n src = image.attr('src');\n interchange = image.data('clearing-interchange');\n }\n\n if (interchange) {\n preload_img.attr('data-interchange', interchange);\n } else {\n preload_img.attr('src', src);\n preload_img.attr('data-interchange', '');\n }\n }\n return this;\n },\n\n // image caption\n\n caption : function (container, $image) {\n var caption = $image.attr('data-caption');\n\n if (caption) {\n \tvar containerPlain = container.get(0);\n \tcontainerPlain.innerHTML = caption;\n container.show();\n } else {\n container\n .text('')\n .hide();\n }\n return this;\n },\n\n // directional methods\n\n go : function ($ul, direction) {\n var current = this.S('.visible', $ul),\n target = current[direction]();\n\n // Check for skip selector.\n if (this.settings.skip_selector && target.find(this.settings.skip_selector).length != 0) {\n target = target[direction]();\n }\n\n if (target.length) {\n this.S('img', target)\n .trigger('click.fndtn.clearing', [current, target])\n .trigger('change.fndtn.clearing');\n }\n },\n\n shift : function (current, target, callback) {\n var clearing = target.parent(),\n old_index = this.settings.prev_index || target.index(),\n direction = this.direction(clearing, current, target),\n dir = this.rtl ? 'right' : 'left',\n left = parseInt(clearing.css('left'), 10),\n width = target.outerWidth(),\n skip_shift;\n\n var dir_obj = {};\n\n // we use jQuery animate instead of CSS transitions because we\n // need a callback to unlock the next animation\n // needs support for RTL **\n if (target.index() !== old_index && !/skip/.test(direction)) {\n if (/left/.test(direction)) {\n this.lock();\n dir_obj[dir] = left + width;\n clearing.animate(dir_obj, 300, this.unlock());\n } else if (/right/.test(direction)) {\n this.lock();\n dir_obj[dir] = left - width;\n clearing.animate(dir_obj, 300, this.unlock());\n }\n } else if (/skip/.test(direction)) {\n // the target image is not adjacent to the current image, so\n // do we scroll right or not\n skip_shift = target.index() - this.settings.up_count;\n this.lock();\n\n if (skip_shift > 0) {\n dir_obj[dir] = -(skip_shift * width);\n clearing.animate(dir_obj, 300, this.unlock());\n } else {\n dir_obj[dir] = 0;\n clearing.animate(dir_obj, 300, this.unlock());\n }\n }\n\n callback();\n },\n\n direction : function ($el, current, target) {\n var lis = this.S('li', $el),\n li_width = lis.outerWidth() + (lis.outerWidth() / 4),\n up_count = Math.floor(this.S('.clearing-container').outerWidth() / li_width) - 1,\n target_index = lis.index(target),\n response;\n\n this.settings.up_count = up_count;\n\n if (this.adjacent(this.settings.prev_index, target_index)) {\n if ((target_index > up_count) && target_index > this.settings.prev_index) {\n response = 'right';\n } else if ((target_index > up_count - 1) && target_index <= this.settings.prev_index) {\n response = 'left';\n } else {\n response = false;\n }\n } else {\n response = 'skip';\n }\n\n this.settings.prev_index = target_index;\n\n return response;\n },\n\n adjacent : function (current_index, target_index) {\n for (var i = target_index + 1; i >= target_index - 1; i--) {\n if (i === current_index) {\n return true;\n }\n }\n return false;\n },\n\n // lock management\n\n lock : function () {\n this.settings.locked = true;\n },\n\n unlock : function () {\n this.settings.locked = false;\n },\n\n locked : function () {\n return this.settings.locked;\n },\n\n off : function () {\n this.S(this.scope).off('.fndtn.clearing');\n this.S(window).off('.fndtn.clearing');\n },\n\n reflow : function () {\n this.init();\n }\n };\n\n}(jQuery, window, window.document));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/foundation-sites/js/foundation/foundation.clearing.js\n// module id = 57\n// module chunks = 2",";(function ($, window, document, undefined) {\n 'use strict';\n\n Foundation.libs.dropdown = {\n name : 'dropdown',\n\n version : '5.5.3',\n\n settings : {\n active_class : 'open',\n disabled_class : 'disabled',\n mega_class : 'mega',\n align : 'bottom',\n is_hover : false,\n hover_timeout : 150,\n opened : function () {},\n closed : function () {}\n },\n\n init : function (scope, method, options) {\n Foundation.inherit(this, 'throttle');\n\n $.extend(true, this.settings, method, options);\n this.bindings(method, options);\n },\n\n events : function (scope) {\n var self = this,\n S = self.S;\n\n S(this.scope)\n .off('.dropdown')\n .on('click.fndtn.dropdown', '[' + this.attr_name() + ']', function (e) {\n var settings = S(this).data(self.attr_name(true) + '-init') || self.settings;\n if (!settings.is_hover || Modernizr.touch) {\n e.preventDefault();\n if (S(this).parent('[data-reveal-id]').length) {\n e.stopPropagation();\n }\n self.toggle($(this));\n }\n })\n .on('mouseenter.fndtn.dropdown', '[' + this.attr_name() + '], [' + this.attr_name() + '-content]', function (e) {\n var $this = S(this),\n dropdown,\n target;\n\n clearTimeout(self.timeout);\n\n if ($this.data(self.data_attr())) {\n dropdown = S('#' + $this.data(self.data_attr()));\n target = $this;\n } else {\n dropdown = $this;\n target = S('[' + self.attr_name() + '=\"' + dropdown.attr('id') + '\"]');\n }\n\n var settings = target.data(self.attr_name(true) + '-init') || self.settings;\n\n if (S(e.currentTarget).data(self.data_attr()) && settings.is_hover) {\n self.closeall.call(self);\n }\n\n if (settings.is_hover) {\n self.open.apply(self, [dropdown, target]);\n }\n })\n .on('mouseleave.fndtn.dropdown', '[' + this.attr_name() + '], [' + this.attr_name() + '-content]', function (e) {\n var $this = S(this);\n var settings;\n\n if ($this.data(self.data_attr())) {\n settings = $this.data(self.data_attr(true) + '-init') || self.settings;\n } else {\n var target = S('[' + self.attr_name() + '=\"' + S(this).attr('id') + '\"]'),\n settings = target.data(self.attr_name(true) + '-init') || self.settings;\n }\n\n self.timeout = setTimeout(function () {\n if ($this.data(self.data_attr())) {\n if (settings.is_hover) {\n self.close.call(self, S('#' + $this.data(self.data_attr())));\n }\n } else {\n if (settings.is_hover) {\n self.close.call(self, $this);\n }\n }\n }.bind(this), settings.hover_timeout);\n })\n .on('click.fndtn.dropdown', function (e) {\n var parent = S(e.target).closest('[' + self.attr_name() + '-content]');\n var links = parent.find('a');\n\n if (links.length > 0 && parent.attr('aria-autoclose') !== 'false') {\n self.close.call(self, S('[' + self.attr_name() + '-content]'));\n }\n\n if (e.target !== document && !$.contains(document.documentElement, e.target)) {\n return;\n }\n\n if (S(e.target).closest('[' + self.attr_name() + ']').length > 0) {\n return;\n }\n\n if (!(S(e.target).data('revealId')) &&\n (parent.length > 0 && (S(e.target).is('[' + self.attr_name() + '-content]') ||\n $.contains(parent.first()[0], e.target)))) {\n e.stopPropagation();\n return;\n }\n\n self.close.call(self, S('[' + self.attr_name() + '-content]'));\n })\n .on('opened.fndtn.dropdown', '[' + self.attr_name() + '-content]', function () {\n self.settings.opened.call(this);\n })\n .on('closed.fndtn.dropdown', '[' + self.attr_name() + '-content]', function () {\n self.settings.closed.call(this);\n });\n\n S(window)\n .off('.dropdown')\n .on('resize.fndtn.dropdown', self.throttle(function () {\n self.resize.call(self);\n }, 50));\n\n this.resize();\n },\n\n close : function (dropdown) {\n var self = this;\n dropdown.each(function (idx) {\n var original_target = $('[' + self.attr_name() + '=' + dropdown[idx].id + ']') || $('aria-controls=' + dropdown[idx].id + ']');\n original_target.attr('aria-expanded', 'false');\n if (self.S(this).hasClass(self.settings.active_class)) {\n self.S(this)\n .css(Foundation.rtl ? 'right' : 'left', '-99999px')\n .attr('aria-hidden', 'true')\n .removeClass(self.settings.active_class)\n .prev('[' + self.attr_name() + ']')\n .removeClass(self.settings.active_class)\n .removeData('target');\n\n self.S(this).trigger('closed.fndtn.dropdown', [dropdown]);\n }\n });\n dropdown.removeClass('f-open-' + this.attr_name(true));\n },\n\n closeall : function () {\n var self = this;\n $.each(self.S('.f-open-' + this.attr_name(true)), function () {\n self.close.call(self, self.S(this));\n });\n },\n\n open : function (dropdown, target) {\n this\n .css(dropdown\n .addClass(this.settings.active_class), target);\n dropdown.prev('[' + this.attr_name() + ']').addClass(this.settings.active_class);\n dropdown.data('target', target.get(0)).trigger('opened.fndtn.dropdown', [dropdown, target]);\n dropdown.attr('aria-hidden', 'false');\n target.attr('aria-expanded', 'true');\n dropdown.focus();\n dropdown.addClass('f-open-' + this.attr_name(true));\n },\n\n data_attr : function () {\n if (this.namespace.length > 0) {\n return this.namespace + '-' + this.name;\n }\n\n return this.name;\n },\n\n toggle : function (target) {\n if (target.hasClass(this.settings.disabled_class)) {\n return;\n }\n var dropdown = this.S('#' + target.data(this.data_attr()));\n if (dropdown.length === 0) {\n // No dropdown found, not continuing\n return;\n }\n\n this.close.call(this, this.S('[' + this.attr_name() + '-content]').not(dropdown));\n\n if (dropdown.hasClass(this.settings.active_class)) {\n this.close.call(this, dropdown);\n if (dropdown.data('target') !== target.get(0)) {\n this.open.call(this, dropdown, target);\n }\n } else {\n this.open.call(this, dropdown, target);\n }\n },\n\n resize : function () {\n var dropdown = this.S('[' + this.attr_name() + '-content].open');\n var target = $(dropdown.data(\"target\"));\n\n if (dropdown.length && target.length) {\n this.css(dropdown, target);\n }\n },\n\n css : function (dropdown, target) {\n var left_offset = Math.max((target.width() - dropdown.width()) / 2, 8),\n settings = target.data(this.attr_name(true) + '-init') || this.settings,\n parentOverflow = dropdown.parent().css('overflow-y') || dropdown.parent().css('overflow');\n\n this.clear_idx();\n\n\n\n if (this.small()) {\n var p = this.dirs.bottom.call(dropdown, target, settings);\n\n dropdown.attr('style', '').removeClass('drop-left drop-right drop-top').css({\n position : 'absolute',\n width : '95%',\n 'max-width' : 'none',\n top : p.top\n });\n\n dropdown.css(Foundation.rtl ? 'right' : 'left', left_offset);\n }\n // detect if dropdown is in an overflow container\n else if (parentOverflow !== 'visible') {\n var offset = target[0].offsetTop + target[0].offsetHeight;\n\n dropdown.attr('style', '').css({\n position : 'absolute',\n top : offset\n });\n\n dropdown.css(Foundation.rtl ? 'right' : 'left', left_offset);\n }\n else {\n\n this.style(dropdown, target, settings);\n }\n\n return dropdown;\n },\n\n style : function (dropdown, target, settings) {\n var css = $.extend({position : 'absolute'},\n this.dirs[settings.align].call(dropdown, target, settings));\n\n dropdown.attr('style', '').css(css);\n },\n\n // return CSS property object\n // `this` is the dropdown\n dirs : {\n // Calculate target offset\n _base : function (t, s) {\n var o_p = this.offsetParent(),\n o = o_p.offset(),\n p = t.offset();\n\n p.top -= o.top;\n p.left -= o.left;\n\n //set some flags on the p object to pass along\n p.missRight = false;\n p.missTop = false;\n p.missLeft = false;\n p.leftRightFlag = false;\n\n //lets see if the panel will be off the screen\n //get the actual width of the page and store it\n var actualBodyWidth;\n var windowWidth = window.innerWidth;\n \n if (document.getElementsByClassName('row')[0]) {\n actualBodyWidth = document.getElementsByClassName('row')[0].clientWidth;\n } else {\n actualBodyWidth = windowWidth;\n }\n\n var actualMarginWidth = (windowWidth - actualBodyWidth) / 2;\n var actualBoundary = actualBodyWidth;\n\n if (!this.hasClass('mega') && !s.ignore_repositioning) {\n var outerWidth = this.outerWidth();\n var o_left = t.offset().left;\n\t\t \n //miss top\n if (t.offset().top <= this.outerHeight()) {\n p.missTop = true;\n actualBoundary = windowWidth - actualMarginWidth;\n p.leftRightFlag = true;\n }\n\n //miss right\n if (o_left + outerWidth > o_left + actualMarginWidth && o_left - actualMarginWidth > outerWidth) {\n p.missRight = true;\n p.missLeft = false;\n }\n\n //miss left\n if (o_left - outerWidth <= 0) {\n p.missLeft = true;\n p.missRight = false;\n }\n }\n\n return p;\n },\n\n top : function (t, s) {\n var self = Foundation.libs.dropdown,\n p = self.dirs._base.call(this, t, s);\n\n this.addClass('drop-top');\n\n if (p.missTop == true) {\n p.top = p.top + t.outerHeight() + this.outerHeight();\n this.removeClass('drop-top');\n }\n\n if (p.missRight == true) {\n p.left = p.left - this.outerWidth() + t.outerWidth();\n }\n\n if (t.outerWidth() < this.outerWidth() || self.small() || this.hasClass(s.mega_menu)) {\n self.adjust_pip(this, t, s, p);\n }\n\n if (Foundation.rtl) {\n return {left : p.left - this.outerWidth() + t.outerWidth(),\n top : p.top - this.outerHeight()};\n }\n\n return {left : p.left, top : p.top - this.outerHeight()};\n },\n\n bottom : function (t, s) {\n var self = Foundation.libs.dropdown,\n p = self.dirs._base.call(this, t, s);\n\n if (p.missRight == true) {\n p.left = p.left - this.outerWidth() + t.outerWidth();\n }\n\n if (t.outerWidth() < this.outerWidth() || self.small() || this.hasClass(s.mega_menu)) {\n self.adjust_pip(this, t, s, p);\n }\n\n if (self.rtl) {\n return {left : p.left - this.outerWidth() + t.outerWidth(), top : p.top + t.outerHeight()};\n }\n\n return {left : p.left, top : p.top + t.outerHeight()};\n },\n\n left : function (t, s) {\n var p = Foundation.libs.dropdown.dirs._base.call(this, t, s);\n\n this.addClass('drop-left');\n\n if (p.missLeft == true) {\n p.left = p.left + this.outerWidth();\n p.top = p.top + t.outerHeight();\n this.removeClass('drop-left');\n }\n\n return {left : p.left - this.outerWidth(), top : p.top};\n },\n\n right : function (t, s) {\n var p = Foundation.libs.dropdown.dirs._base.call(this, t, s);\n\n this.addClass('drop-right');\n\n if (p.missRight == true) {\n p.left = p.left - this.outerWidth();\n p.top = p.top + t.outerHeight();\n this.removeClass('drop-right');\n } else {\n p.triggeredRight = true;\n }\n\n var self = Foundation.libs.dropdown;\n\n if (t.outerWidth() < this.outerWidth() || self.small() || this.hasClass(s.mega_menu)) {\n self.adjust_pip(this, t, s, p);\n }\n\n return {left : p.left + t.outerWidth(), top : p.top};\n }\n },\n\n // Insert rule to style psuedo elements\n adjust_pip : function (dropdown, target, settings, position) {\n var sheet = Foundation.stylesheet,\n pip_offset_base = 8;\n\n if (dropdown.hasClass(settings.mega_class)) {\n pip_offset_base = position.left + (target.outerWidth() / 2) - 8;\n } else if (this.small()) {\n pip_offset_base += position.left - 8;\n }\n\n this.rule_idx = sheet.cssRules.length;\n\n //default\n var sel_before = '.f-dropdown.open:before',\n sel_after = '.f-dropdown.open:after',\n css_before = 'left: ' + pip_offset_base + 'px;',\n css_after = 'left: ' + (pip_offset_base - 1) + 'px;';\n\n if (position.missRight == true) {\n pip_offset_base = dropdown.outerWidth() - 23;\n sel_before = '.f-dropdown.open:before',\n sel_after = '.f-dropdown.open:after',\n css_before = 'left: ' + pip_offset_base + 'px;',\n css_after = 'left: ' + (pip_offset_base - 1) + 'px;';\n }\n\n //just a case where right is fired, but its not missing right\n if (position.triggeredRight == true) {\n sel_before = '.f-dropdown.open:before',\n sel_after = '.f-dropdown.open:after',\n css_before = 'left:-12px;',\n css_after = 'left:-14px;';\n }\n\n if (sheet.insertRule) {\n sheet.insertRule([sel_before, '{', css_before, '}'].join(' '), this.rule_idx);\n sheet.insertRule([sel_after, '{', css_after, '}'].join(' '), this.rule_idx + 1);\n } else {\n sheet.addRule(sel_before, css_before, this.rule_idx);\n sheet.addRule(sel_after, css_after, this.rule_idx + 1);\n }\n },\n\n // Remove old dropdown rule index\n clear_idx : function () {\n var sheet = Foundation.stylesheet;\n\n if (typeof this.rule_idx !== 'undefined') {\n sheet.deleteRule(this.rule_idx);\n sheet.deleteRule(this.rule_idx);\n delete this.rule_idx;\n }\n },\n\n small : function () {\n return matchMedia(Foundation.media_queries.small).matches &&\n !matchMedia(Foundation.media_queries.medium).matches;\n },\n\n off : function () {\n this.S(this.scope).off('.fndtn.dropdown');\n this.S('html, body').off('.fndtn.dropdown');\n this.S(window).off('.fndtn.dropdown');\n this.S('[data-dropdown-content]').off('.fndtn.dropdown');\n },\n\n reflow : function () {}\n };\n}(jQuery, window, window.document));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/foundation-sites/js/foundation/foundation.dropdown.js\n// module id = 58\n// module chunks = 2",";(function ($, window, document, undefined) {\n 'use strict';\n\n Foundation.libs.equalizer = {\n name : 'equalizer',\n\n version : '5.5.3',\n\n settings : {\n use_tallest : true,\n before_height_change : $.noop,\n after_height_change : $.noop,\n equalize_on_stack : false,\n act_on_hidden_el: false\n },\n\n init : function (scope, method, options) {\n Foundation.inherit(this, 'image_loaded');\n this.bindings(method, options);\n this.reflow();\n },\n\n events : function () {\n this.S(window).off('.equalizer').on('resize.fndtn.equalizer', function (e) {\n this.reflow();\n }.bind(this));\n },\n\n equalize : function (equalizer) {\n var isStacked = false,\n group = equalizer.data('equalizer'),\n settings = equalizer.data(this.attr_name(true)+'-init') || this.settings,\n vals,\n firstTopOffset;\n\n if (settings.act_on_hidden_el) {\n vals = group ? equalizer.find('['+this.attr_name()+'-watch=\"'+group+'\"]') : equalizer.find('['+this.attr_name()+'-watch]');\n }\n else {\n vals = group ? equalizer.find('['+this.attr_name()+'-watch=\"'+group+'\"]:visible') : equalizer.find('['+this.attr_name()+'-watch]:visible');\n }\n \n if (vals.length === 0) {\n return;\n }\n\n settings.before_height_change();\n equalizer.trigger('before-height-change.fndth.equalizer');\n vals.height('inherit');\n\n if (settings.equalize_on_stack === false) {\n firstTopOffset = vals.first().offset().top;\n vals.each(function () {\n if ($(this).offset().top !== firstTopOffset) {\n isStacked = true;\n return false;\n }\n });\n if (isStacked) {\n return;\n }\n }\n\n var heights = vals.map(function () { return $(this).outerHeight(false) }).get();\n\n if (settings.use_tallest) {\n var max = Math.max.apply(null, heights);\n vals.css('height', max);\n } else {\n var min = Math.min.apply(null, heights);\n vals.css('height', min);\n }\n\n settings.after_height_change();\n equalizer.trigger('after-height-change.fndtn.equalizer');\n },\n\n reflow : function () {\n var self = this;\n\n this.S('[' + this.attr_name() + ']', this.scope).each(function () {\n var $eq_target = $(this),\n media_query = $eq_target.data('equalizer-mq'),\n ignore_media_query = true;\n\n if (media_query) {\n media_query = 'is_' + media_query.replace(/-/g, '_');\n if (Foundation.utils.hasOwnProperty(media_query)) {\n ignore_media_query = false;\n }\n }\n\n self.image_loaded(self.S('img', this), function () {\n if (ignore_media_query || Foundation.utils[media_query]()) {\n self.equalize($eq_target)\n } else {\n var vals = $eq_target.find('[' + self.attr_name() + '-watch]:visible');\n vals.css('height', 'auto');\n }\n });\n });\n }\n };\n})(jQuery, window, window.document);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/foundation-sites/js/foundation/foundation.equalizer.js\n// module id = 59\n// module chunks = 2",";(function ($, window, document, undefined) {\n 'use strict';\n\n Foundation.libs['magellan-expedition'] = {\n name : 'magellan-expedition',\n\n version : '5.5.3',\n\n settings : {\n active_class : 'active',\n threshold : 0, // pixels from the top of the expedition for it to become fixes\n destination_threshold : 20, // pixels from the top of destination for it to be considered active\n throttle_delay : 30, // calculation throttling to increase framerate\n fixed_top : 0, // top distance in pixels assigend to the fixed element on scroll\n offset_by_height : true, // whether to offset the destination by the expedition height. Usually you want this to be true, unless your expedition is on the side.\n duration : 700, // animation duration time\n easing : 'swing' // animation easing\n },\n\n init : function (scope, method, options) {\n Foundation.inherit(this, 'throttle');\n this.bindings(method, options);\n },\n\n events : function () {\n var self = this,\n S = self.S,\n settings = self.settings;\n\n // initialize expedition offset\n self.set_expedition_position();\n\n S(self.scope)\n .off('.magellan')\n .on('click.fndtn.magellan', '[' + self.add_namespace('data-magellan-arrival') + '] a[href*=#]', function (e) {\n var sameHost = ((this.hostname === location.hostname) || !this.hostname),\n samePath = self.filterPathname(location.pathname) === self.filterPathname(this.pathname),\n testHash = this.hash.replace(/(:|\\.|\\/)/g, '\\\\$1'),\n anchor = this;\n\n if (sameHost && samePath && testHash) {\n e.preventDefault();\n var expedition = $(this).closest('[' + self.attr_name() + ']'),\n settings = expedition.data('magellan-expedition-init'),\n hash = this.hash.split('#').join(''),\n target = $('a[name=\"' + hash + '\"]');\n\n if (target.length === 0) {\n target = $('#' + hash);\n\n }\n\n // Account for expedition height if fixed position\n var scroll_top = target.offset().top - settings.destination_threshold + 1;\n if (settings.offset_by_height) {\n scroll_top = scroll_top - expedition.outerHeight();\n }\n $('html, body').stop().animate({\n 'scrollTop' : scroll_top\n }, settings.duration, settings.easing, function () {\n if (history.pushState) {\n history.pushState(null, null, anchor.pathname + anchor.search + '#' + hash);\n } else {\n location.hash = anchor.pathname + anchor.search + '#' + hash;\n }\n });\n }\n })\n .on('scroll.fndtn.magellan', self.throttle(this.check_for_arrivals.bind(this), settings.throttle_delay));\n },\n\n check_for_arrivals : function () {\n var self = this;\n self.update_arrivals();\n self.update_expedition_positions();\n },\n\n set_expedition_position : function () {\n var self = this;\n $('[' + this.attr_name() + '=fixed]', self.scope).each(function (idx, el) {\n var expedition = $(this),\n settings = expedition.data('magellan-expedition-init'),\n styles = expedition.attr('styles'), // save styles\n top_offset, fixed_top;\n\n expedition.attr('style', '');\n top_offset = expedition.offset().top + settings.threshold;\n\n //set fixed-top by attribute\n fixed_top = parseInt(expedition.data('magellan-fixed-top'));\n if (!isNaN(fixed_top)) {\n self.settings.fixed_top = fixed_top;\n }\n\n expedition.data(self.data_attr('magellan-top-offset'), top_offset);\n expedition.attr('style', styles);\n });\n },\n\n update_expedition_positions : function () {\n var self = this,\n window_top_offset = $(window).scrollTop();\n\n $('[' + this.attr_name() + '=fixed]', self.scope).each(function () {\n var expedition = $(this),\n settings = expedition.data('magellan-expedition-init'),\n styles = expedition.attr('style'), // save styles\n top_offset = expedition.data('magellan-top-offset');\n\n //scroll to the top distance\n if (window_top_offset + self.settings.fixed_top >= top_offset) {\n // Placeholder allows height calculations to be consistent even when\n // appearing to switch between fixed/non-fixed placement\n var placeholder = expedition.prev('[' + self.add_namespace('data-magellan-expedition-clone') + ']');\n if (placeholder.length === 0) {\n placeholder = expedition.clone();\n placeholder.removeAttr(self.attr_name());\n placeholder.attr(self.add_namespace('data-magellan-expedition-clone'), '');\n expedition.before(placeholder);\n }\n expedition.css({position :'fixed', top : settings.fixed_top}).addClass('fixed');\n } else {\n expedition.prev('[' + self.add_namespace('data-magellan-expedition-clone') + ']').remove();\n expedition.attr('style', styles).css('position', '').css('top', '').removeClass('fixed');\n }\n });\n },\n\n update_arrivals : function () {\n var self = this,\n window_top_offset = $(window).scrollTop();\n\n $('[' + this.attr_name() + ']', self.scope).each(function () {\n var expedition = $(this),\n settings = expedition.data(self.attr_name(true) + '-init'),\n offsets = self.offsets(expedition, window_top_offset),\n arrivals = expedition.find('[' + self.add_namespace('data-magellan-arrival') + ']'),\n active_item = false;\n offsets.each(function (idx, item) {\n if (item.viewport_offset >= item.top_offset) {\n var arrivals = expedition.find('[' + self.add_namespace('data-magellan-arrival') + ']');\n arrivals.not(item.arrival).removeClass(settings.active_class);\n item.arrival.addClass(settings.active_class);\n active_item = true;\n return true;\n }\n });\n\n if (!active_item) {\n arrivals.removeClass(settings.active_class);\n }\n });\n },\n\n offsets : function (expedition, window_offset) {\n var self = this,\n settings = expedition.data(self.attr_name(true) + '-init'),\n viewport_offset = window_offset;\n\n return expedition.find('[' + self.add_namespace('data-magellan-arrival') + ']').map(function (idx, el) {\n var name = $(this).data(self.data_attr('magellan-arrival')),\n dest = $('[' + self.add_namespace('data-magellan-destination') + '=' + name + ']');\n if (dest.length > 0) {\n var top_offset = dest.offset().top - settings.destination_threshold;\n if (settings.offset_by_height) {\n top_offset = top_offset - expedition.outerHeight();\n }\n top_offset = Math.floor(top_offset);\n return {\n destination : dest,\n arrival : $(this),\n top_offset : top_offset,\n viewport_offset : viewport_offset\n }\n }\n }).sort(function (a, b) {\n if (a.top_offset < b.top_offset) {\n return -1;\n }\n if (a.top_offset > b.top_offset) {\n return 1;\n }\n return 0;\n });\n },\n\n data_attr : function (str) {\n if (this.namespace.length > 0) {\n return this.namespace + '-' + str;\n }\n\n return str;\n },\n\n off : function () {\n this.S(this.scope).off('.magellan');\n this.S(window).off('.magellan');\n },\n\n filterPathname : function (pathname) {\n pathname = pathname || '';\n return pathname\n .replace(/^\\//,'')\n .replace(/(?:index|default).[a-zA-Z]{3,4}$/,'')\n .replace(/\\/$/,'');\n },\n\n reflow : function () {\n var self = this;\n // remove placeholder expeditions used for height calculation purposes\n $('[' + self.add_namespace('data-magellan-expedition-clone') + ']', self.scope).remove();\n }\n };\n}(jQuery, window, window.document));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/foundation-sites/js/foundation/foundation.magellan.js\n// module id = 60\n// module chunks = 2",";(function ($, window, document, undefined) {\n 'use strict';\n\n var openModals = [];\n\n Foundation.libs.reveal = {\n name : 'reveal',\n\n version : '5.5.3',\n\n locked : false,\n\n settings : {\n animation : 'fadeAndPop',\n animation_speed : 250,\n close_on_background_click : true,\n close_on_esc : true,\n dismiss_modal_class : 'close-reveal-modal',\n multiple_opened : false,\n bg_class : 'reveal-modal-bg',\n root_element : 'body',\n open : function(){},\n opened : function(){},\n close : function(){},\n closed : function(){},\n on_ajax_error: $.noop,\n bg : $('.reveal-modal-bg'),\n css : {\n open : {\n 'opacity' : 0,\n 'visibility' : 'visible',\n 'display' : 'block'\n },\n close : {\n 'opacity' : 1,\n 'visibility' : 'hidden',\n 'display' : 'none'\n }\n }\n },\n\n init : function (scope, method, options) {\n $.extend(true, this.settings, method, options);\n this.bindings(method, options);\n },\n\n events : function (scope) {\n var self = this,\n S = self.S;\n\n S(this.scope)\n .off('.reveal')\n .on('click.fndtn.reveal', '[' + this.add_namespace('data-reveal-id') + ']:not([disabled])', function (e) {\n e.preventDefault();\n\n if (!self.locked) {\n var element = S(this),\n ajax = element.data(self.data_attr('reveal-ajax')),\n replaceContentSel = element.data(self.data_attr('reveal-replace-content'));\n\n self.locked = true;\n\n if (typeof ajax === 'undefined') {\n self.open.call(self, element);\n } else {\n var url = ajax === true ? element.attr('href') : ajax;\n self.open.call(self, element, {url : url}, { replaceContentSel : replaceContentSel });\n }\n }\n });\n\n S(document)\n .on('click.fndtn.reveal', this.close_targets(), function (e) {\n e.preventDefault();\n if (!self.locked) {\n var settings = S('[' + self.attr_name() + '].open').data(self.attr_name(true) + '-init') || self.settings,\n bg_clicked = S(e.target)[0] === S('.' + settings.bg_class)[0];\n\n if (bg_clicked) {\n if (settings.close_on_background_click) {\n e.stopPropagation();\n } else {\n return;\n }\n }\n\n self.locked = true;\n self.close.call(self, bg_clicked ? S('[' + self.attr_name() + '].open:not(.toback)') : S(this).closest('[' + self.attr_name() + ']'));\n }\n });\n\n if (S('[' + self.attr_name() + ']', this.scope).length > 0) {\n S(this.scope)\n // .off('.reveal')\n .on('open.fndtn.reveal', this.settings.open)\n .on('opened.fndtn.reveal', this.settings.opened)\n .on('opened.fndtn.reveal', this.open_video)\n .on('close.fndtn.reveal', this.settings.close)\n .on('closed.fndtn.reveal', this.settings.closed)\n .on('closed.fndtn.reveal', this.close_video);\n } else {\n S(this.scope)\n // .off('.reveal')\n .on('open.fndtn.reveal', '[' + self.attr_name() + ']', this.settings.open)\n .on('opened.fndtn.reveal', '[' + self.attr_name() + ']', this.settings.opened)\n .on('opened.fndtn.reveal', '[' + self.attr_name() + ']', this.open_video)\n .on('close.fndtn.reveal', '[' + self.attr_name() + ']', this.settings.close)\n .on('closed.fndtn.reveal', '[' + self.attr_name() + ']', this.settings.closed)\n .on('closed.fndtn.reveal', '[' + self.attr_name() + ']', this.close_video);\n }\n\n return true;\n },\n\n // PATCH #3: turning on key up capture only when a reveal window is open\n key_up_on : function (scope) {\n var self = this;\n\n // PATCH #1: fixing multiple keyup event trigger from single key press\n self.S('body').off('keyup.fndtn.reveal').on('keyup.fndtn.reveal', function ( event ) {\n var open_modal = self.S('[' + self.attr_name() + '].open'),\n settings = open_modal.data(self.attr_name(true) + '-init') || self.settings ;\n // PATCH #2: making sure that the close event can be called only while unlocked,\n // so that multiple keyup.fndtn.reveal events don't prevent clean closing of the reveal window.\n if ( settings && event.which === 27 && settings.close_on_esc && !self.locked) { // 27 is the keycode for the Escape key\n self.close.call(self, open_modal);\n }\n });\n\n return true;\n },\n\n // PATCH #3: turning on key up capture only when a reveal window is open\n key_up_off : function (scope) {\n this.S('body').off('keyup.fndtn.reveal');\n return true;\n },\n\n open : function (target, ajax_settings) {\n var self = this,\n modal;\n\n if (target) {\n if (typeof target.selector !== 'undefined') {\n // Find the named node; only use the first one found, since the rest of the code assumes there's only one node\n modal = self.S('#' + target.data(self.data_attr('reveal-id'))).first();\n } else {\n modal = self.S(this.scope);\n\n ajax_settings = target;\n }\n } else {\n modal = self.S(this.scope);\n }\n\n var settings = modal.data(self.attr_name(true) + '-init');\n settings = settings || this.settings;\n\n\n if (modal.hasClass('open') && target !== undefined && target.attr('data-reveal-id') == modal.attr('id')) {\n return self.close(modal);\n }\n\n if (!modal.hasClass('open')) {\n var open_modal = self.S('[' + self.attr_name() + '].open');\n\n if (typeof modal.data('css-top') === 'undefined') {\n modal.data('css-top', parseInt(modal.css('top'), 10))\n .data('offset', this.cache_offset(modal));\n }\n\n modal.attr('tabindex','0').attr('aria-hidden','false');\n\n this.key_up_on(modal); // PATCH #3: turning on key up capture only when a reveal window is open\n\n // Prevent namespace event from triggering twice\n modal.on('open.fndtn.reveal', function(e) {\n if (e.namespace !== 'fndtn.reveal') return;\n });\n\n modal.on('open.fndtn.reveal').trigger('open.fndtn.reveal');\n\n if (open_modal.length < 1) {\n this.toggle_bg(modal, true);\n }\n\n if (typeof ajax_settings === 'string') {\n ajax_settings = {\n url : ajax_settings\n };\n }\n\n var openModal = function() {\n if(open_modal.length > 0) {\n if(settings.multiple_opened) {\n self.to_back(open_modal);\n } else {\n self.hide(open_modal, settings.css.close);\n }\n }\n\n // bl: add the open_modal that isn't already in the background to the openModals array\n if(settings.multiple_opened) {\n openModals.push(modal);\n }\n\n self.show(modal, settings.css.open);\n };\n\n if (typeof ajax_settings === 'undefined' || !ajax_settings.url) {\n openModal();\n } else {\n var old_success = typeof ajax_settings.success !== 'undefined' ? ajax_settings.success : null;\n $.extend(ajax_settings, {\n success : function (data, textStatus, jqXHR) {\n if ( $.isFunction(old_success) ) {\n var result = old_success(data, textStatus, jqXHR);\n if (typeof result == 'string') {\n data = result;\n }\n }\n\n if (typeof options !== 'undefined' && typeof options.replaceContentSel !== 'undefined') {\n modal.find(options.replaceContentSel).html(data);\n } else {\n modal.html(data);\n }\n\n self.S(modal).foundation('section', 'reflow');\n self.S(modal).children().foundation();\n\n openModal();\n }\n });\n\n // check for if user initalized with error callback\n if (settings.on_ajax_error !== $.noop) {\n $.extend(ajax_settings, {\n error : settings.on_ajax_error\n });\n }\n\n $.ajax(ajax_settings);\n }\n }\n self.S(window).trigger('resize');\n },\n\n close : function (modal) {\n var modal = modal && modal.length ? modal : this.S(this.scope),\n open_modals = this.S('[' + this.attr_name() + '].open'),\n settings = modal.data(this.attr_name(true) + '-init') || this.settings,\n self = this;\n\n if (open_modals.length > 0) {\n\n modal.removeAttr('tabindex','0').attr('aria-hidden','true');\n\n this.locked = true;\n this.key_up_off(modal); // PATCH #3: turning on key up capture only when a reveal window is open\n\n modal.trigger('close.fndtn.reveal');\n\n if ((settings.multiple_opened && open_modals.length === 1) || !settings.multiple_opened || modal.length > 1) {\n self.toggle_bg(modal, false);\n self.to_front(modal);\n }\n\n if (settings.multiple_opened) {\n var isCurrent = modal.is(':not(.toback)');\n self.hide(modal, settings.css.close, settings);\n if(isCurrent) {\n // remove the last modal since it is now closed\n openModals.pop();\n } else {\n // if this isn't the current modal, then find it in the array and remove it\n openModals = $.grep(openModals, function(elt) {\n var isThis = elt[0]===modal[0];\n if(isThis) {\n // since it's not currently in the front, put it in the front now that it is hidden\n // so that if it's re-opened, it won't be .toback\n self.to_front(modal);\n }\n return !isThis;\n });\n }\n // finally, show the next modal in the stack, if there is one\n if(openModals.length>0) {\n self.to_front(openModals[openModals.length - 1]);\n }\n } else {\n self.hide(open_modals, settings.css.close, settings);\n }\n }\n },\n\n close_targets : function () {\n var base = '.' + this.settings.dismiss_modal_class;\n\n if (this.settings.close_on_background_click) {\n return base + ', .' + this.settings.bg_class;\n }\n\n return base;\n },\n\n toggle_bg : function (modal, state) {\n if (this.S('.' + this.settings.bg_class).length === 0) {\n this.settings.bg = $('
', {'class': this.settings.bg_class})\n .appendTo('body').hide();\n }\n\n var visible = this.settings.bg.filter(':visible').length > 0;\n if ( state != visible ) {\n if ( state == undefined ? visible : !state ) {\n this.hide(this.settings.bg);\n } else {\n this.show(this.settings.bg);\n }\n }\n },\n\n show : function (el, css) {\n // is modal\n if (css) {\n var settings = el.data(this.attr_name(true) + '-init') || this.settings,\n root_element = settings.root_element,\n context = this;\n\n if (el.parent(root_element).length === 0) {\n var placeholder = el.wrap('
').parent();\n\n el.on('closed.fndtn.reveal.wrapped', function () {\n el.detach().appendTo(placeholder);\n el.unwrap().unbind('closed.fndtn.reveal.wrapped');\n });\n\n el.detach().appendTo(root_element);\n }\n\n var animData = getAnimationData(settings.animation);\n if (!animData.animate) {\n this.locked = false;\n }\n if (animData.pop) {\n css.top = $(window).scrollTop() - el.data('offset') + 'px';\n var end_css = {\n top: $(window).scrollTop() + el.data('css-top') + 'px',\n opacity: 1\n };\n\n return setTimeout(function () {\n return el\n .css(css)\n .animate(end_css, settings.animation_speed, 'linear', function () {\n context.locked = false;\n el.trigger('opened.fndtn.reveal');\n })\n .addClass('open');\n }, settings.animation_speed / 2);\n }\n\n css.top = $(window).scrollTop() + el.data('css-top') + 'px';\n\n if (animData.fade) {\n var end_css = {opacity: 1};\n\n return setTimeout(function () {\n return el\n .css(css)\n .animate(end_css, settings.animation_speed, 'linear', function () {\n context.locked = false;\n el.trigger('opened.fndtn.reveal');\n })\n .addClass('open');\n }, settings.animation_speed / 2);\n }\n\n return el.css(css).show().css({opacity : 1}).addClass('open').trigger('opened.fndtn.reveal');\n }\n\n var settings = this.settings;\n\n // should we animate the background?\n if (getAnimationData(settings.animation).fade) {\n return el.fadeIn(settings.animation_speed / 2);\n }\n\n this.locked = false;\n\n return el.show();\n },\n\n to_back : function(el) {\n el.addClass('toback');\n },\n\n to_front : function(el) {\n el.removeClass('toback');\n },\n\n hide : function (el, css) {\n // is modal\n if (css) {\n var settings = el.data(this.attr_name(true) + '-init'),\n context = this;\n settings = settings || this.settings;\n\n var animData = getAnimationData(settings.animation);\n if (!animData.animate) {\n this.locked = false;\n }\n if (animData.pop) {\n var end_css = {\n top: - $(window).scrollTop() - el.data('offset') + 'px',\n opacity: 0\n };\n\n return setTimeout(function () {\n return el\n .animate(end_css, settings.animation_speed, 'linear', function () {\n context.locked = false;\n el.css(css).trigger('closed.fndtn.reveal');\n })\n .removeClass('open');\n }, settings.animation_speed / 2);\n }\n\n if (animData.fade) {\n var end_css = {opacity : 0};\n\n return setTimeout(function () {\n return el\n .animate(end_css, settings.animation_speed, 'linear', function () {\n context.locked = false;\n el.css(css).trigger('closed.fndtn.reveal');\n })\n .removeClass('open');\n }, settings.animation_speed / 2);\n }\n\n return el.hide().css(css).removeClass('open').trigger('closed.fndtn.reveal');\n }\n\n var settings = this.settings;\n\n // should we animate the background?\n if (getAnimationData(settings.animation).fade) {\n return el.fadeOut(settings.animation_speed / 2);\n }\n\n return el.hide();\n },\n\n close_video : function (e) {\n var video = $('.flex-video', e.target),\n iframe = $('iframe', video);\n\n if (iframe.length > 0) {\n iframe.attr('data-src', iframe[0].src);\n iframe.attr('src', iframe.attr('src'));\n video.hide();\n }\n },\n\n open_video : function (e) {\n var video = $('.flex-video', e.target),\n iframe = video.find('iframe');\n\n if (iframe.length > 0) {\n var data_src = iframe.attr('data-src');\n if (typeof data_src === 'string') {\n iframe[0].src = iframe.attr('data-src');\n } else {\n var src = iframe[0].src;\n iframe[0].src = undefined;\n iframe[0].src = src;\n }\n video.show();\n }\n },\n\n data_attr : function (str) {\n if (this.namespace.length > 0) {\n return this.namespace + '-' + str;\n }\n\n return str;\n },\n\n cache_offset : function (modal) {\n var offset = modal.show().height() + parseInt(modal.css('top'), 10) + modal.scrollY;\n\n modal.hide();\n\n return offset;\n },\n\n off : function () {\n $(this.scope).off('.fndtn.reveal');\n },\n\n reflow : function () {}\n };\n\n /*\n * getAnimationData('popAndFade') // {animate: true, pop: true, fade: true}\n * getAnimationData('fade') // {animate: true, pop: false, fade: true}\n * getAnimationData('pop') // {animate: true, pop: true, fade: false}\n * getAnimationData('foo') // {animate: false, pop: false, fade: false}\n * getAnimationData(null) // {animate: false, pop: false, fade: false}\n */\n function getAnimationData(str) {\n var fade = /fade/i.test(str);\n var pop = /pop/i.test(str);\n return {\n animate : fade || pop,\n pop : pop,\n fade : fade\n };\n }\n}(jQuery, window, window.document));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/foundation-sites/js/foundation/foundation.reveal.js\n// module id = 61\n// module chunks = 2"],"sourceRoot":""}