From 8d5e352ed24d1a58edb75f0c03faaa541d79549e Mon Sep 17 00:00:00 2001 From: Geoff Kimball Date: Tue, 17 Nov 2015 16:09:19 -0800 Subject: [PATCH] Generate new dist files --- dist/foundation.css | 113 +- dist/foundation.js | 2702 ++++++++++++++++++++++----------------- dist/foundation.min.css | 2 +- dist/foundation.min.js | 6 +- 4 files changed, 1579 insertions(+), 1244 deletions(-) diff --git a/dist/foundation.css b/dist/foundation.css index e4fdeb493..ca7c9c71f 100644 --- a/dist/foundation.css +++ b/dist/foundation.css @@ -354,42 +354,9 @@ td, th { padding: 0; } -.close-button { - position: absolute; - color: #8a8a8a; - right: 1rem; - top: 0.5rem; - font-size: 2em; - line-height: 1; - cursor: pointer; } - [data-whatinput="mouse"] .close-button { - outline: 0; } - .close-button:hover, .close-button:focus { - color: #0a0a0a; } - body.is-reveal-open { overflow: hidden; } -[data-joyride] { - display: none; } - -.tooltip.joyride, -.reveal.joyride { - background-color: #0a0a0a; - color: #fefefe; - font-size: 100%; - min-width: 20rem; - padding: 0.75rem; } - .tooltip.joyride .close, - .reveal.joyride .close { - float: right; } - .tooltip.joyride .joyride-buttons, - .reveal.joyride .joyride-buttons { - text-align: center; } - -[data-joyride] { - display: none; } - .foundation-mq { font-family: "small=0em&medium=32em&large=64em&xlarge=75em&xxlarge=90em"; } @@ -1172,7 +1139,7 @@ hr { height: 0; border-top: 0; border-bottom: 1px solid #cacaca; - margin: 1.25rem 0; + margin: 1.25rem auto; clear: both; } ul, @@ -1475,7 +1442,8 @@ kbd { position: relative; top: 0.4em; float: right; - margin-left: 1em; } + margin-left: 1em; + display: inline-block; } .button.arrow-only::after { margin-left: 0; float: none; @@ -1966,6 +1934,19 @@ select { padding-bottom: 3rem; padding-left: 3rem; } +.close-button { + position: absolute; + color: #8a8a8a; + right: 1rem; + top: 0.5rem; + font-size: 2em; + line-height: 1; + cursor: pointer; } + [data-whatinput="mouse"] .close-button { + outline: 0; } + .close-button:hover, .close-button:focus { + color: #0a0a0a; } + .is-drilldown { position: relative; overflow: hidden; } @@ -1975,6 +1956,7 @@ select { top: 0; left: 100%; z-index: -1; + height: 100%; width: 100%; background: #fefefe; transition: -webkit-transform 0.15s linear; @@ -2026,7 +2008,7 @@ select { border: inset 5px; border-color: #2199e8 transparent transparent; border-top-style: solid; } - .dropdown.menu .has-submenu.is-right-arrow > a::after { + .dropdown.menu .has-submenu.is-left-arrow > a::after { content: ''; display: block; width: 0; @@ -2037,7 +2019,7 @@ select { float: left; margin-left: 0; margin-right: 10px; } - .dropdown.menu .has-submenu.is-left-arrow > a::after { + .dropdown.menu .has-submenu.is-right-arrow > a::after { content: ''; display: block; width: 0; @@ -2045,6 +2027,14 @@ select { border: inset 5px; border-color: transparent transparent transparent #2199e8; border-left-style: solid; } + .dropdown.menu .has-submenu.is-left-arrow.opens-inner .submenu { + right: 0; + left: auto; } + .dropdown.menu .has-submenu.is-right-arrow.opens-inner .submenu { + left: 0; + right: auto; } + .dropdown.menu .has-submenu.opens-inner .submenu { + top: 100%; } .dropdown.menu .submenu { display: none; @@ -2052,24 +2042,27 @@ select { top: 0; left: 100%; min-width: 200px; - white-space: nowrap; z-index: 1; - background: white; } + background: #fefefe; + border: 1px solid #cacaca; } .dropdown.menu .submenu > li { width: 100%; } - .dropdown.menu .submenu.is-right-arrow { - left: auto; - right: 100%; } .dropdown.menu .submenu.first-sub { top: 100%; left: 0; right: auto; } - .dropdown.menu .submenu.first-sub.is-right-arrow { - left: auto; - right: 0; } .dropdown.menu .submenu:not(.js-dropdown-nohover) > .has-submenu:hover > .dropdown.menu .submenu, .dropdown.menu .submenu.js-dropdown-active { display: block; } +.dropdown.menu .has-submenu.opens-left .submenu { + left: auto; + right: 100%; } + +.dropdown.menu.align-right .submenu.first-sub { + top: 100%; + left: auto; + right: 0; } + .dropdown.menu.vertical { width: 100px; } .dropdown.menu.vertical.align-right { @@ -2077,9 +2070,6 @@ select { .dropdown.menu.vertical > li .submenu { top: 0; left: 100%; } - .dropdown.menu.vertical > li .submenu.is-right-arrow { - left: auto; - right: 100%; } .flex-video { position: relative; @@ -2128,6 +2118,8 @@ select { .media-object { margin-bottom: 1rem; display: block; } + .media-object img { + max-width: none; } @media screen and (min-width: 0em) and (max-width: 31.9375em) { .media-object.stack-for-small .media-object-section { display: block; @@ -2225,20 +2217,29 @@ select { font-weight: bold; color: inherit; line-height: 1; - padding: 0.7rem 1rem; padding-top: 0; - padding-bottom: 0; } + padding-bottom: 0; + padding: 0.7rem 1rem; } html, body { height: 100%; } +html { + overflow: hidden; } + body { + width: 100%; overflow-x: hidden; - transition: -webkit-transform 0.5s ease; - transition: transform 0.5s ease; + position: relative; -webkit-backface-visibility: hidden; backface-visibility: hidden; } + body.is-off-canvas-open { + overflow-y: hidden; } + +.off-canvas-wrapper { + transition: -webkit-transform 0.5s ease; + transition: transform 0.5s ease; } .js-off-canvas-exit { display: none; @@ -2255,8 +2256,9 @@ body { .off-canvas { position: absolute; - background: #fefefe; - z-index: -1; } + background: #e6e6e6; + z-index: -1; + min-height: 100%; } [data-whatinput="mouse"] .off-canvas { outline: 0; } .off-canvas.position-left { @@ -2283,6 +2285,7 @@ body { transition: transform 0.5s ease; -webkit-backface-visibility: hidden; backface-visibility: hidden; + z-index: 1; box-shadow: 0 0 10px rgba(10, 10, 10, 0.5); } @media screen and (min-width: 32em) { @@ -2580,7 +2583,7 @@ body { background-color: #fefefe; border-radius: 0; position: absolute; - overflow-y: scroll; } + overflow-y: auto; } [data-whatinput="mouse"] .reveal { outline: 0; } @media screen and (min-width: 32em) { diff --git a/dist/foundation.js b/dist/foundation.js index ff795c903..9396c7b16 100644 --- a/dist/foundation.js +++ b/dist/foundation.js @@ -50,12 +50,18 @@ var Foundation = { * Sets the `[data-pluginName="uniqueIdHere"]`, allowing easy access to any plugin's internal methods. * Also fires the initialization event for each plugin, consolidating repeditive code. * @param {Object} plugin - an instance of a plugin, usually `this` in context. + * @fires Plugin#init */ registerPlugin: function(plugin){ var pluginName = functionName(plugin.constructor).toLowerCase(); plugin.uuid = this.GetYoDigits(6, pluginName); - plugin.$element.attr('data-' + pluginName, plugin.uuid).trigger('init.zf.' + pluginName); + plugin.$element.attr('data-' + pluginName, plugin.uuid) + /** + * Fires when the plugin has initialized. + * @event Plugin#init + */ + .trigger('init.zf.' + pluginName); this._activePlugins[plugin.uuid] = plugin; @@ -66,20 +72,25 @@ var Foundation = { * Removes the pointer for an instance of a Plugin from the Foundation._activePlugins obj. * Also fires the destroyed event for the plugin, consolidating repeditive code. * @param {Object} plugin - an instance of a plugin, usually `this` in context. + * @fires Plugin#destroyed */ unregisterPlugin: function(plugin){ var pluginName = functionName(plugin.constructor).toLowerCase(); delete this._activePlugins[plugin.uuid]; - - plugin.$element.trigger('destroyed.zf.' + pluginName); + plugin.$element.removeAttr('data-' + pluginName) + /** + * Fires when the plugin has been destroyed. + * @event Plugin#destroyed + */ + .trigger('destroyed.zf.' + pluginName); return; }, /** * @function - * Causes one or more active plugins to reflow, resetting event listeners, recalculating positions, etc. + * Causes one or more active plugins to re-initialize, resetting event listeners, recalculating positions, etc. * @param {String} plugins - optional string of an individual plugin key, attained by calling `$(element).data('pluginName')`, or string of a plugin class i.e. `'dropdown'` * @default If no argument is passed, reflow all currently active plugins. */ @@ -158,10 +169,33 @@ var Foundation = { $(this).data('zf-plugin', new plugin($(this))); }); }); - } -} + }, + getFnName: functionName, + transitionend: (function() { + var transitions = { + 'transition': 'transitionend', + 'WebkitTransition': 'webkitTransitionEnd', + 'MozTransition': 'transitionend', + 'OTransition': 'otransitionend' + }; + var elem = document.createElement('div'); + + for (var t in transitions){ + if (typeof elem.style[t] !== 'undefined'){ + return transitions[t]; + } + } + })() +}; Foundation.util = { + /** + * Function for applying a debounce effect to a function call. + * @function + * @param {Function} func - Function to be called at end of timeout. + * @param {Number} delay - Time in ms to delay the call of `func`. + * @returns function + */ throttle: function (func, delay) { var timer = null; @@ -176,7 +210,7 @@ Foundation.util = { } }; } -} +}; // TODO: consider not making this a jQuery function // TODO: need way to reflow vs. re-initialize @@ -185,22 +219,38 @@ Foundation.util = { * @param {String|Array} method - An action to perform on the current jQuery object. */ var foundation = function(method) { - var type = typeof method; - var $meta = $('meta.foundation-mq'); + var type = typeof method, + $meta = $('meta.foundation-mq'), + $noJS = $('.no-js'); if(!$meta.length){ $('').appendTo(document.head); } + if($noJS.length){ + $noJS.removeClass('no-js'); + } - if (type === 'undefined') { + if(type === 'undefined'){//needs to initialize the Foundation object, or an individual plugin. Foundation.MediaQuery._init(); Foundation.reflow(this); - } else if (type === 'object') { - Foundation.reflow(this); - } else if (type === 'string' || type === 'array') { - Foundation.reflow(this, method); - } + }else if(type === 'string'){//an individual method to invoke on a plugin or group of plugins + var args = Array.prototype.slice.call(arguments, 1);//collect all the arguments, if necessary + var plugClass = this.data('zfPlugin');//determine the class of plugin + if(plugClass !== undefined && plugClass[method] !== undefined){//make sure both the class and method exist + if(this.length === 1){//if there's only one, call it directly. + plugClass[method].apply(plugClass, args); + }else{ + this.each(function(i, el){//otherwise loop through the jQuery collection and invoke the method on each + plugClass[method].apply($(el).data('zfPlugin'), args); + }); + } + }else{//error for no class or no method + throw new Error("We're sorry, " + method + " is not an available method for " + (plugClass ? functionName(plugClass) : 'this element') + '.'); + } + }else{//error for invalid argument type + throw new Error("We're sorry, " + type + " is not a valid argument. You must use a string representing the method you wish to invoke."); + } return this; }; @@ -230,6 +280,15 @@ $.fn.foundation = foundation; }; window.cancelAnimationFrame = clearTimeout; } + /** + * Polyfill for performance.now, required by rAF + */ + window.performance = (window.performance || { + start: Date.now(), + now: function(){ + return Date.now() - this.start; + } + }); })(); // Polyfill to get the name of a function in IE9 @@ -239,6 +298,9 @@ function functionName(fn) { var results = (funcNameRegex).exec((fn).toString()); return (results && results.length > 1) ? results[1].trim() : ""; } + else if (fn.prototype === undefined) { + return fn.constructor.name; + } else { return fn.prototype.constructor.name; } @@ -252,26 +314,175 @@ function hyphenate(str) { }(jQuery); -!function($, Foundation, window){ - function Move(duration, elem, fn){ - var anim, prog, start = null, _this = this; +!function(Foundation, window){ + /** + * Compares the dimensions of an element to a container and determines collision events with container. + * @function + * @param {jQuery} element - jQuery object to test for collisions. + * @param {jQuery} parent - jQuery object to use as bounding container. + * @param {Boolean} lrOnly - set to true to check left and right values only. + * @param {Boolean} tbOnly - set to true to check top and bottom values only. + * @default if no parent object passed, detects collisions with `window`. + * @returns {Boolean} - true if collision free, false if a collision in any direction. + */ + var ImNotTouchingYou = function(element, parent, lrOnly, tbOnly){ + var eleDims = GetDimensions(element), + top, bottom, left, right; + + if(parent){ + var parDims = GetDimensions(parent); + + bottom = (eleDims.offset.top + eleDims.height <= parDims.height + parDims.offset.top); + top = (eleDims.offset.top >= parDims.offset.top); + left = (eleDims.offset.left >= parDims.offset.left); + right = (eleDims.offset.left + eleDims.width <= parDims.width); + }else{ + bottom = (eleDims.offset.top + eleDims.height <= eleDims.windowDims.height + eleDims.windowDims.offset.top); + top = (eleDims.offset.top >= eleDims.windowDims.offset.top); + left = (eleDims.offset.left >= eleDims.windowDims.offset.left); + right = (eleDims.offset.left + eleDims.width <= eleDims.windowDims.width); + } + var allDirs = [bottom, top, left, right]; + + if(lrOnly){ return left === right === true; } + if(tbOnly){ return top === bottom === true; } - this.do = function(ts){//timestamp returned from requestAnimationFrame - if(!start){ start = ts; } - prog = ts - start; - fn.apply(elem);//call the cb + return allDirs.indexOf(false) === -1; + }; - if(prog < duration){ - anim = window.requestAnimationFrame(_this.do, elem); - }else{ - window.cancelAnimationFrame(anim); - elem.trigger('finished.zf.animate', [elem]); + /** + * Uses native methods to return an object of dimension values. + * @function + * @param {jQuery || HTML} element - jQuery object or DOM element for which to get the dimensions. Can be any element other that document or window. + * @returns {Object} - nested object of integer pixel values + * TODO - if element is window, return only those values. + */ + var GetDimensions = function(elem, test){ + elem = elem.length ? elem[0] : elem; + + if(elem === window || elem === document){ throw new Error("I'm sorry, Dave. I'm afraid I can't do that."); } + + var rect = elem.getBoundingClientRect(), + parRect = elem.parentNode.getBoundingClientRect(), + winRect = document.body.getBoundingClientRect(), + winY = window.pageYOffset, + winX = window.pageXOffset; + + return { + width: rect.width, + height: rect.height, + offset: { + top: rect.top + winY, + left: rect.left + winX + }, + parentDims: { + width: parRect.width, + height: parRect.height, + offset: { + top: parRect.top + winY, + left: parRect.left + winX + } + }, + windowDims: { + width: winRect.width, + height: winRect.height, + offset: { + top: winY, + left: winX + } } }; - window.requestAnimationFrame(this.do); - } - Foundation.Move = Move; -}(jQuery, window.Foundation, window); + }; + /** + * Returns an object of top and left integer pixel values for dynamically rendered elements, + * such as: Tooltip, Reveal, and Dropdown + * @function + * @param {jQuery} element - jQuery object for the element being positioned. + * @param {jQuery} anchor - jQuery object for the element's anchor point. + * @param {String} position - a string relating to the desired position of the element, relative to it's anchor + * @param {Number} vOffset - integer pixel value of desired vertical separation between anchor and element. + * @param {Number} hOffset - integer pixel value of desired horizontal separation between anchor and element. + * @param {Boolean} isOverflow - if a collision event is detected, sets to true to default the element to full width - any desired offset. + * TODO alter/rewrite to work with `em` values as well/instead of pixels + */ + var GetOffsets = function(element, anchor, position, vOffset, hOffset, isOverflow){ + var $eleDims = GetDimensions(element), + // var $eleDims = GetDimensions(element), + $anchorDims = anchor ? GetDimensions(anchor) : null; + // $anchorDims = anchor ? GetDimensions(anchor) : null; + switch(position){ + case 'top': + return { + left: $anchorDims.offset.left, + top: $anchorDims.offset.top - ($eleDims.height + vOffset) + }; + break; + case 'left': + return { + left: $anchorDims.offset.left - ($eleDims.width + hOffset), + top: $anchorDims.offset.top + }; + break; + case 'right': + return { + left: $anchorDims.offset.left + $anchorDims.width + hOffset, + top: $anchorDims.offset.top + }; + break; + case 'center top': + return { + left: ($anchorDims.offset.left + ($anchorDims.width / 2)) - ($eleDims.width / 2), + top: $anchorDims.offset.top - ($eleDims.height + vOffset) + }; + break; + case 'center bottom': + return { + left: isOverflow ? hOffset : (($anchorDims.offset.left + ($anchorDims.width / 2)) - ($eleDims.width / 2)), + top: $anchorDims.offset.top + $anchorDims.height + vOffset + }; + break; + case 'center left': + return { + left: $anchorDims.offset.left - ($eleDims.width + hOffset), + top: ($anchorDims.offset.top + ($anchorDims.height / 2)) - ($eleDims.height / 2) + }; + break; + case 'center right': + return { + left: $anchorDims.offset.left + $anchorDims.width + hOffset + 1, + top: ($anchorDims.offset.top + ($anchorDims.height / 2)) - ($eleDims.height / 2) + }; + break; + case 'center': + return { + left: ($eleDims.windowDims.offset.left + ($eleDims.windowDims.width / 2)) - ($eleDims.width / 2), + top: ($eleDims.windowDims.offset.top + ($eleDims.windowDims.height / 2)) - ($eleDims.height / 2) + }; + break; + case 'reveal': + return { + left: ($eleDims.windowDims.width - $eleDims.width) / 2, + top: $eleDims.windowDims.offset.top + vOffset + }; + case 'reveal full': + return { + left: $eleDims.windowDims.offset.left, + top: $eleDims.windowDims.offset.top, + }; + break; + default: + return { + left: $anchorDims.offset.left, + top: $anchorDims.offset.top + $anchorDims.height + vOffset + }; + } + }; + Foundation.Box = { + ImNotTouchingYou: ImNotTouchingYou, + GetDimensions: GetDimensions, + GetOffsets: GetOffsets + }; +}(window.Foundation, window); /******************************************* * * @@ -311,7 +522,7 @@ function hyphenate(str) { * @return String key - String that represents the key pressed */ var parseKey = function(event) { - var key = keyCodes[event.which || event.keyCode]; + var key = keyCodes[event.which || event.keyCode] || String.fromCharCode(event.which).toUpperCase(); if (event.shiftKey) key = 'SHIFT_' + key; if (event.ctrlKey) key = 'CTRL_' + key; if (event.altKey) key = 'ALT_' + key; @@ -330,7 +541,7 @@ function hyphenate(str) { * @param {Objects} functions - collection of functions that are to be executed */ var handleKey = function(event, component, functions) { - var commandList = commands[getComponentName(component)], + var commandList = commands[Foundation.getFnName(component)], keyCode = parseKey(event), cmds, command, @@ -361,7 +572,18 @@ function hyphenate(str) { }; Foundation.Keyboard.handleKey = handleKey; - + /** + * Finds all focusable elements within the given `$element` + * @param {jQuery} $element - jQuery object to search within + * @return {jQuery} $focusable - all focusable elements within `$element` + */ + var findFocusable = function($element) { + return $element.find('a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, *[tabindex], *[contenteditable]').filter(function() { + if (!$(this).is(':visible') || $(this).attr('tabindex') < 0) { return false; } //only have visible elements and those that have a tabindex greater or equal 0 + return true; + }); + }; + Foundation.Keyboard.findFocusable = findFocusable; /** * Returns the component name name @@ -373,16 +595,6 @@ function hyphenate(str) { commands[componentName] = cmds; }; Foundation.Keyboard.register = register; - - /** - * Returns the component name name - * @param {Object} component - Foundation component, e.g. Slider or Reveal - * @return String componentName - */ - var getComponentName = function(component) { - return (/function (.+)\(/).exec((component).constructor.toString())[1] || ''; - }; - }(jQuery, window.Foundation); !function($, Foundation) { @@ -444,14 +656,14 @@ var MediaQuery = { var self = this; var extractedStyles = $('.foundation-mq').css('font-family'); var namedQueries; - + namedQueries = parseStyleToObject(extractedStyles); for (var key in namedQueries) { self.queries.push({ name: key, value: 'only screen and (min-width: ' + namedQueries[key] + ')' - }) + }); } this.current = this._getCurrentSize(); @@ -479,7 +691,11 @@ var MediaQuery = { } } - return matched.name; + if(typeof matched === 'object') { + return matched.name; + } else { + return matched; + } }, /** @@ -502,7 +718,7 @@ var MediaQuery = { } }); } -} +}; Foundation.MediaQuery = MediaQuery; @@ -591,59 +807,16 @@ function parseStyleToObject(str) { } }(jQuery, Foundation) -!function($, Foundation){ - 'use strict'; - - function Nest.Feather(menu, type){ - menu.attr('role', 'menubar'); - var items = menu.find('li').attr({'role': 'menuitem', 'tabindex': 0}), - type = type || 'zf', - subMenuClass = 'is-' + type + '-submenu', - subItemClass = subMenuClass + '-item'; - - items.each(function(){ - var $item = $(this), - $sub = $item.children('ul'); - if($sub.length){ - $item.addClass('has-submenu') - $sub.addClass('submenu ' + subMenuClass).attr('data-submenu', ''); - } - if($item.parent('[data-submenu]').length){ - $item.addClass('is-submenu-item ' + subItemClass); - } - }); - return; - } - Foundation.Nest.Feather = Nest.Feather; -}(jQuery, window.Foundation); /** * Motion module. * @module foundation.motion - * @requires foundation.util.motion */ !function($, Foundation) { var initClasses = ['mui-enter', 'mui-leave']; var activeClasses = ['mui-enter-active', 'mui-leave-active']; -// Find the right "transitionend" event for this browser -var endEvent = (function() { - var transitions = { - 'transition': 'transitionend', - 'WebkitTransition': 'webkitTransitionEnd', - 'MozTransition': 'transitionend', - 'OTransition': 'otransitionend' - }; - var elem = document.createElement('div'); - - for (var t in transitions){ - if (typeof elem.style[t] !== 'undefined'){ - return transitions[t]; - } - } -})(); - function animate(isIn, element, animation, cb) { element = $(element).eq(0); @@ -654,22 +827,28 @@ function animate(isIn, element, animation, cb) { // Set up the animation reset(); - element.addClass(animation); - element.css('transition', 'none'); + element.addClass(animation) + .css('transition', 'none'); + // .addClass(initClass); + // if(isIn) element.show(); requestAnimationFrame(function() { element.addClass(initClass); if (isIn) element.show(); }); - // Start the animation requestAnimationFrame(function() { element[0].offsetWidth; element.css('transition', ''); element.addClass(activeClass); }); + // Move(500, element, function(){ + // // element[0].offsetWidth; + // element.css('transition', ''); + // element.addClass(activeClass); + // }); // Clean up the animation when it finishes - element.one('transitionend', finish); + element.one(Foundation.transitionend, finish);//.one('finished.zf.animate', finish); // Hides the element (for out animations), resets the element, and runs a callback function finish() { @@ -686,225 +865,169 @@ function animate(isIn, element, animation, cb) { } var Motion = { - animateIn: function(element, animation, cb) { + animateIn: function(element, animation, /*duration,*/ cb) { animate(true, element, animation, cb); }, - animateOut: function(element, animation, cb) { + animateOut: function(element, animation, /*duration,*/ cb) { animate(false, element, animation, cb); } -} +}; + +var Move = function(duration, elem, fn){ + var anim, prog, start = null; + // console.log('called'); + + function move(ts){ + if(!start) start = window.performance.now(); + // console.log(start, ts); + prog = ts - start; + fn.apply(elem); + + if(prog < duration){ anim = window.requestAnimationFrame(move, elem); } + else{ + window.cancelAnimationFrame(anim); + elem.trigger('finished.zf.animate', [elem]).triggerHandler('finished.zf.animate', [elem]); + } + } + anim = window.requestAnimationFrame(move); +}; +Foundation.Move = Move; Foundation.Motion = Motion; -}(jQuery, Foundation) +}(jQuery, Foundation); !function($, Foundation){ 'use strict'; - /** - * Runs a callback function when images are fully loaded. - * @param {Object} images - Image(s) to check if loaded. - * @param {Func} callback - Function to execute when image is fully loaded. - */ - function onImagesLoaded(images, callback) { - var self = this, - unloaded = images.length; - - if (unloaded === 0) { - callback(); - } - - var singleImageLoaded = function() { - unloaded--; - if (unloaded === 0) { - callback(); - } + Foundation.Nest = { + Feather: function(menu, type){ + menu.attr('role', 'menubar'); + type = type || 'zf'; + var items = menu.find('li').attr({'role': 'menuitem'}), + subMenuClass = 'is-' + type + '-submenu', + subItemClass = subMenuClass + '-item'; + + items.each(function(){ + var $item = $(this), + $sub = $item.children('ul'); + if($sub.length){ + $item.addClass('has-submenu'); + $sub.addClass('submenu ' + subMenuClass).attr('data-submenu', ''); + } + if($item.parent('[data-submenu]').length){ + $item.addClass('is-submenu-item ' + subItemClass); + } + }); + return; + }, + Burn: function(menu, type){ + var items = menu.find('li').removeAttr('tabindex'), + subMenuClass = 'is-' + type + '-submenu', + subItemClass = subMenuClass + '-item'; + + // menu.find('.is-active').removeClass('is-active'); + menu.find('*') + // menu.find('.' + subMenuClass + ', .' + subItemClass + ', .is-active, .has-submenu, .is-submenu-item, .submenu, [data-submenu]') + .removeClass(subMenuClass + ' ' + subItemClass + ' has-submenu is-submenu-item submenu is-active') + .removeAttr('data-submenu').css('display', ''); + + // console.log( menu.find('.' + subMenuClass + ', .' + subItemClass + ', .has-submenu, .is-submenu-item, .submenu, [data-submenu]') + // .removeClass(subMenuClass + ' ' + subItemClass + ' has-submenu is-submenu-item submenu') + // .removeAttr('data-submenu')); + // items.each(function(){ + // var $item = $(this), + // $sub = $item.children('ul'); + // if($item.parent('[data-submenu]').length){ + // $item.removeClass('is-submenu-item ' + subItemClass); + // } + // if($sub.length){ + // $item.removeClass('has-submenu'); + // $sub.removeClass('submenu ' + subMenuClass).removeAttr('data-submenu'); + // } + // }); } + }; +}(jQuery, window.Foundation); - images.each(function() { - if (this.complete) { - singleImageLoaded(); - } - else if (typeof this.naturalWidth !== 'undefined' && this.naturalWidth > 0) { - singleImageLoaded(); - } - else { - $(this).one('load', function() { - singleImageLoaded(); - }); - } - }); - } - Foundation.onImagesLoaded = onImagesLoaded; -}(jQuery, window.Foundation); +!function($, Foundation){ + 'use strict'; + var Timer = function(elem, options, cb){ + var _this = this, + duration = options.duration,//options is an object for easily adding features later. + nameSpace = Object.keys(elem.data())[0] || 'timer', + remain = -1, + start, + timer; -// !function(){ -// /** -// * returns a random base-36 uid with namespacing -// * @function -// * @param {Number} length - number of random base-36 digits desired. Increase for more random strings. -// * @param {String} plugin - name of plugin to be incorporated in uid, optional. -// * @default {String} -zf-rnd - if no plugin name is provided, value appended to uid. -// * @returns {String} - unique id -// */ -// function randomIdGen(length, plugin){ -// return Math.round((Math.pow(36, length + 1) - Math.random() * Math.pow(36, length))).toString(36).slice(1) + (plugin ? '-' + plugin : '-zf-rnd'); -// } -// -// Foundation.GetYoDigits = randomIdGen; -// }(window.Foundation); + this.restart = function(){ + remain = -1; + clearTimeout(timer); + this.start(); + }; + + this.start = function(){ + // if(!elem.data('paused')){ return false; }//maybe implement this sanity check if used for other things. + clearTimeout(timer); + remain = remain <= 0 ? duration : remain; + elem.data('paused', false); + start = Date.now(); + timer = setTimeout(function(){ + if(options.infinite){ + _this.restart();//rerun the timer. + } + cb(); + }, remain); + elem.trigger('timerstart.zf.' + nameSpace); + }; -!function($, Foundation, window){ + this.pause = function(){ + //if(elem.data('paused')){ return false; }//maybe implement this sanity check if used for other things. + clearTimeout(timer); + elem.data('paused', true); + var end = Date.now(); + remain = remain - (end - start); + elem.trigger('timerpaused.zf.' + nameSpace); + }; + }; /** - * Compares the dimensions of an element to a container and determines collision events with container. - * @function - * @param {jQuery} element - jQuery object to test for collisions. - * @param {jQuery} parent - jQuery object to use as bounding container. - * @param {Boolean} lrOnly - set to true to check left and right values only. - * @param {Boolean} tbOnly - set to true to check top and bottom values only. - * @default if no parent object passed, detects collisions with `window`. - * @returns {Boolean} - true if collision free, false if a collision in any direction. + * Runs a callback function when images are fully loaded. + * @param {Object} images - Image(s) to check if loaded. + * @param {Func} callback - Function to execute when image is fully loaded. */ - function ImNotTouchingYou(element, parent, lrOnly, tbOnly){ - var eleDims = GetDimensions(element), - top, bottom, left, right; - - if(parent){ - var parDims = GetDimensions(parent); + var onImagesLoaded = function(images, callback){ + var self = this, + unloaded = images.length; - bottom = (eleDims.offset.top + eleDims.height <= parDims.height + parDims.offset.top); - top = (eleDims.offset.top >= parDims.offset.top); - left = (eleDims.offset.left >= parDims.offset.left); - right = (eleDims.offset.left + eleDims.width <= parDims.width); - }else{ - bottom = (eleDims.offset.top + eleDims.height <= eleDims.windowDims.height + eleDims.windowDims.offset.top); - top = (eleDims.offset.top >= eleDims.windowDims.offset.top); - left = (eleDims.offset.left >= eleDims.windowDims.offset.left); - right = (eleDims.offset.left + eleDims.width <= eleDims.windowDims.width); + if (unloaded === 0) { + callback(); } - var allDirs = [bottom, top, left, right]; - - if(lrOnly){ return left === right === true; } - if(tbOnly){ return top === bottom === true; } - return allDirs.indexOf(false) === -1; - } - - /** - * Uses jQuery methods to return an object of dimension values. - * @function - * @param {jQuery} element - jQuery object for which to get the dimensions. - * @returns {Object} - nested object of integer pixel values - * TODO - if element is window, return only those values. - */ - function GetDimensions(element){ - var $window = $(window); - return { - width: element.outerWidth(), - height: element.outerHeight(), - offset: element.offset(), - parentDims: { - width: element.parent().outerWidth(), - height: element.parent().outerHeight(), - offset: element.parent().offset() - }, - windowDims: { - width: $window.width(), - height: $window.height(), - offset: { - top: $window.scrollTop(), - left: $window.scrollLeft() - } + var singleImageLoaded = function() { + unloaded--; + if (unloaded === 0) { + callback(); } }; - } - /** - * Returns an object of top and left integer pixel values for dynamically rendered elements, - * such as: Tooltip, Reveal, and Dropdown - * @function - * @param {jQuery} element - jQuery object for the element being positioned. - * @param {jQuery} anchor - jQuery object for the element's anchor point. - * @param {String} position - a string relating to the desired position of the element, relative to it's anchor - * @param {Number} vOffset - integer pixel value of desired vertical separation between anchor and element. - * @param {Number} hOffset - integer pixel value of desired horizontal separation between anchor and element. - * @param {Boolean} isOverflow - if a collision event is detected, sets to true to default the element to full width - any desired offset. - * TODO alter/rewrite to work with `em` values as well/instead of pixels - */ - function GetOffsets(element, anchor, position, vOffset, hOffset, isOverflow){ - var $eleDims = GetDimensions(element), - $anchorDims = anchor ? GetDimensions(anchor) : null; - switch(position){ - case 'top': - return { - left: $anchorDims.offset.left, - top: $anchorDims.offset.top - ($eleDims.height + vOffset) - }; - break; - case 'left': - return { - left: $anchorDims.offset.left - ($eleDims.width + hOffset), - top: $anchorDims.offset.top - }; - break; - case 'right': - return { - left: $anchorDims.offset.left + $anchorDims.width + hOffset, - top: $anchorDims.offset.top - }; - break; - case 'center top': - return { - left: ($anchorDims.offset.left + ($anchorDims.width / 2)) - ($eleDims.width / 2), - top: $anchorDims.offset.top - ($eleDims.height + vOffset) - }; - break; - case 'center bottom': - return { - left: isOverflow ? hOffset : (($anchorDims.offset.left + ($anchorDims.width / 2)) - ($eleDims.width / 2)), - top: $anchorDims.offset.top + $anchorDims.height + vOffset - }; - break; - case 'center left': - return { - left: $anchorDims.offset.left - ($eleDims.width + hOffset), - top: ($anchorDims.offset.top + ($anchorDims.height / 2)) - ($eleDims.height / 2) - }; - break; - case 'center right': - return { - left: $anchorDims.offset.left + $anchorDims.width + hOffset + 1, - top: ($anchorDims.offset.top + ($anchorDims.height / 2)) - ($eleDims.height / 2) - }; - break; - case 'center': - return { - left: ($eleDims.windowDims.offset.left + ($eleDims.windowDims.width / 2)) - ($eleDims.width / 2), - top: ($eleDims.windowDims.offset.top + ($eleDims.windowDims.height / 2)) - ($eleDims.height / 2) - }; - break; - case 'reveal': - return { - left: ($eleDims.windowDims.width - $eleDims.width) / 2, - top: $eleDims.windowDims.offset.top + vOffset - }; - case 'reveal full': - return { - left: $eleDims.windowDims.offset.left, - top: $eleDims.windowDims.offset.top, - }; - break; - default: - return { - left: $anchorDims.offset.left, - top: $anchorDims.offset.top + $anchorDims.height + vOffset - }; - } - } - Foundation.ImNotTouchingYou = ImNotTouchingYou; - Foundation.GetDimensions = GetDimensions; - Foundation.GetOffsets = GetOffsets; -}(jQuery, window.Foundation, window); + images.each(function() { + if (this.complete) { + singleImageLoaded(); + } + else if (typeof this.naturalWidth !== 'undefined' && this.naturalWidth > 0) { + singleImageLoaded(); + } + else { + $(this).one('load', function() { + singleImageLoaded(); + }); + } + }); + }; + + Foundation.Timer = Timer; + Foundation.onImagesLoaded = onImagesLoaded; +}(jQuery, window.Foundation); //************************************************** //**Work inspired by multiple jquery swipe plugins** @@ -943,10 +1066,10 @@ Foundation.Motion = Motion; var dir; elapsedTime = new Date().getTime() - startTime; if(Math.abs(dx) >= $.spotSwipe.moveThreshold && elapsedTime <= $.spotSwipe.timeThreshold) { - dir = dx > 0 ? 'left' : 'right' + dir = dx > 0 ? 'left' : 'right'; } else if(Math.abs(dy) >= $.spotSwipe.moveThreshold && elapsedTime <= $.spotSwipe.timeThreshold) { - dir = dy > 0 ? 'down' : 'up' + dir = dy > 0 ? 'down' : 'up'; } if(dir) { onTouchEnd.call(this); @@ -960,7 +1083,7 @@ Foundation.Motion = Motion; startPosX = e.touches[0].pageX; startPosY = e.touches[0].pageY; isMoving = true; - startTime = new Date().getTime() + startTime = new Date().getTime(); this.addEventListener('touchmove', onTouchMove, false); this.addEventListener('touchend', onTouchEnd, false); } @@ -982,6 +1105,36 @@ Foundation.Motion = Motion; } }; }); })(jQuery); +/**************************************************** + * Method for adding psuedo drag events to elements * + ***************************************************/ +!function($){ + $.fn.addTouch = function(){ + this.each(function(i,el){ + $(el).bind('touchstart touchmove touchend touchcancel',function(){ + //we pass the original event object because the jQuery event + //object is normalized to w3c specs and does not provide the TouchList + handleTouch(event); + }); + }); + + var handleTouch = function(event){ + var touches = event.changedTouches, + first = touches[0], + eventTypes = { + touchstart: 'mousedown', + touchmove: 'mousemove', + touchend: 'mouseup' + }, + type = eventTypes[event.type]; + + var simulatedEvent = document.createEvent('MouseEvent'); + simulatedEvent.initMouseEvent(type, true, true, window, 1, first.screenX, first.screenY, first.clientX, first.clientY, false, false, false, false, 0/*left*/, null); + first.target.dispatchEvent(simulatedEvent); + }; + }; +}(jQuery); + //********************************** //**From the jQuery Mobile Library** @@ -1242,7 +1395,7 @@ Foundation.Motion = Motion; // Elements with [data-closable] will respond to close.zf.trigger events. $(document).on('close.zf.trigger', '[data-closable]', function() { - var animation = $(this).data('closable') || 'fadeOut'; + var animation = $(this).data('closable') || 'fade-out'; if(Foundation.Motion){ Foundation.Motion.animateOut($(this), animation, function() { $(this).trigger('closed.zf'); @@ -1310,7 +1463,7 @@ Foundation.Motion = Motion; // } //******** only fires this function once on load, if there's something to watch ******** - function closemeListener(pluginName){ + var closemeListener = function(pluginName){ var yetiBoxes = $('[data-yeti-box]'), plugNames = ['dropdown', 'tooltip', 'reveal']; @@ -1334,14 +1487,14 @@ Foundation.Motion = Motion; plugins.each(function(){ var _this = $(this); - // console.log(_this); + _this.triggerHandler('close.zf.trigger', [_this]); }); }); } - } - function resizeListener(debounce){ + }; + var resizeListener = function(debounce){ var timer, i, len, nodes = $('[data-resize]'); if(nodes.length){ @@ -1352,14 +1505,14 @@ Foundation.Motion = Motion; timer = setTimeout(function(){ for(i = 0, len = nodes.length; i < len; i++){ - var $elem = $(nodes[i]) + var $elem = $(nodes[i]); $elem.triggerHandler('resizeme.zf.trigger', [$elem]); } }, debounce || 10);//default time to emit resize event }); } - } - function scrollListener(debounce){ + }; + var scrollListener = function(debounce){ var timer, i, len, nodes = $('[data-scroll]'); if(nodes.length){ @@ -1370,13 +1523,13 @@ Foundation.Motion = Motion; timer = setTimeout(function(){ for(i = 0, len = nodes.length; i < len; i++){ - var $elem = $(nodes[i]) - $elem.triggerHandler('scrollme.zf.trigger', [$elem]); + var $elem = $(nodes[i]); + $elem.triggerHandler('scrollme.zf.trigger', [$elem, window.scrollY]); } }, debounce || 50);//default time to emit scroll event }); } - } + }; // ------------------------------------ // [PH] @@ -1385,7 +1538,7 @@ Foundation.IHearYou = resizeListener; Foundation.ISeeYou = scrollListener; Foundation.IFeelYou = closemeListener; -}(window.Foundation, window.jQuery) +}(window.Foundation, window.jQuery); !function(Foundation, $) { 'use strict'; @@ -1491,7 +1644,6 @@ Foundation.IFeelYou = closemeListener; .find('input, textarea, select') .off('.abide') .on('blur.fndtn.abide change.fndtn.abide', function (e) { - // console.log($(e.target)); if (self.options.validateOn === 'fieldChange') { self.validateInput($(e.target), self.$element); } @@ -1702,9 +1854,9 @@ Foundation.IFeelYou = closemeListener; var self = this, valid = false, patternLib = this.options.patterns, - inputText = $(el).val(), + inputText = $($el).val(), // maybe have a different way of parsing this bc people might use type - pattern = $(el).attr('pattern'); + pattern = $($el).attr('pattern'); // if there's no value, then return true // since required check has already been done @@ -1788,7 +1940,7 @@ Foundation.IFeelYou = closemeListener; * @requires foundation.util.keyboard * @requires foundation.util.motion */ -!function($) { +!function($, Foundation) { 'use strict'; /** @@ -1816,8 +1968,23 @@ Foundation.IFeelYou = closemeListener; } Accordion.defaults = { + /** + * Amount of time to animate the opening of an accordion pane. + * @option + * @example 250 + */ slideSpeed: 250, + /** + * Allow the accordion to have multiple open panes. + * @option + * @example false + */ multiExpand: false, + /** + * Allow the accordion to close all panes. + * @option + * @example false + */ allowAllClosed: false }; @@ -1894,6 +2061,11 @@ Foundation.IFeelYou = closemeListener; } }); }; + /** + * Toggles the selected content pane's open/close state. + * @param {jQuery} $target - jQuery object of the pane to toggle. + * @function + */ Accordion.prototype.toggle = function($target){ if($target.parent().hasClass('is-active')){ if(this.options.allowAllClosed || $target.parent().siblings().hasClass('is-active')){ @@ -1905,8 +2077,10 @@ Foundation.IFeelYou = closemeListener; }; /** * Opens the accordion tab defined by `$target`. - * @param {jQuery} $target - Accordion tab to open. + * @param {jQuery} $target - Accordion pane to open. + * @param {Boolean} firstTime - flag to determine if reflow should happen. * @fires Accordion#down + * @function */ Accordion.prototype.down = function($target, firstTime) { var _this = this; @@ -1933,7 +2107,7 @@ Foundation.IFeelYou = closemeListener; $('#' + $target.attr('aria-labelledby')).attr({ 'aria-expanded': true, 'aria-selected': true - }) + }); /** * Fires when the tab is done opening. * @event Accordion#down @@ -1945,6 +2119,7 @@ Foundation.IFeelYou = closemeListener; * Closes the tab defined by `$target`. * @param {jQuery} $target - Accordion tab to close. * @fires Accordion#up + * @function */ Accordion.prototype.up = function($target) { var $aunts = $target.parent().siblings(), @@ -1956,7 +2131,7 @@ Foundation.IFeelYou = closemeListener; } Foundation.Move(this.options.slideSpeed, $target, function(){ - $target.slideUp(_this.options.slideSpeed) + $target.slideUp(_this.options.slideSpeed); }); $target.attr('aria-hidden', true) @@ -1965,7 +2140,7 @@ Foundation.IFeelYou = closemeListener; $('#' + $target.attr('aria-labelledby')).attr({ 'aria-expanded': false, 'aria-selected': false - }) + }); /** * Fires when the tab is done collapsing up. @@ -1977,6 +2152,7 @@ Foundation.IFeelYou = closemeListener; /** * Destroys an instance of an accordion. * @fires Accordion#destroyed + * @function */ Accordion.prototype.destroy = function() { this.$element.find('[data-tab-content]').slideUp(0).css('display', ''); @@ -1988,16 +2164,17 @@ Foundation.IFeelYou = closemeListener; */ // this.$element.trigger('destroyed.zf.accordion'); Foundation.unregisterPlugin(this); - } + }; Foundation.plugin(Accordion); -}(jQuery); +}(jQuery, window.Foundation); /** * AccordionMenu module. * @module foundation.accordionMenu * @requires foundation.util.keyboard * @requires foundation.util.motion + * @requires foundation.util.nest */ !function($) { 'use strict'; @@ -2038,11 +2215,19 @@ Foundation.IFeelYou = closemeListener; } AccordionMenu.defaults = { + /** + * Amount of time to animate the opening of a submenu in ms. + * @option + * @example 250 + */ slideSpeed: 250, - wrapOnKeys: false, - multiOpen: false - - } + /** + * Allow the menu to have multiple open panes. + * @option + * @example true + */ + multiOpen: true + }; /** * Initializes the accordion menu by hiding all nested menus. @@ -2135,7 +2320,6 @@ Foundation.IFeelYou = closemeListener; if ($target.is(':hidden')) { _this.down($target); $target.find('li').first().focus(); - console.log($target.find('li').first()); } }, close: function() { @@ -2165,11 +2349,20 @@ Foundation.IFeelYou = closemeListener; e.stopImmediatePropagation(); } }); - })//.attr('tabindex', 0); + });//.attr('tabindex', 0); }; + /** + * Closes all panes of the menu. + * @function + */ AccordionMenu.prototype.hideAll = function(){ this.$element.find('[data-submenu]').slideUp(this.options.slideSpeed); }; + /** + * Toggles the open/close state of a submenu. + * @function + * @param {jQuery} $target - the submenu to toggle + */ AccordionMenu.prototype.toggle = function($target){ if (!$target.is(':hidden')) { this.up($target); @@ -2194,7 +2387,7 @@ Foundation.IFeelYou = closemeListener; .parent('.has-submenu').attr({'aria-expanded': true, 'aria-selected': true}); Foundation.Move(this.options.slideSpeed, $target, function(){ - $target.slideDown(_this.options.slideSpeed) + $target.slideDown(_this.options.slideSpeed); }); /** * Fires when the menu is done collapsing up. @@ -2209,9 +2402,16 @@ Foundation.IFeelYou = closemeListener; * @fires AccordionMenu#up */ AccordionMenu.prototype.up = function($target) { - $target.slideUp(this.options.slideSpeed, function() { - $target.find('[data-submenu]').slideUp(0).attr('aria-hidden', true); - }).attr('aria-hidden', true).parent('.has-submenu').attr({'aria-expanded': false, 'aria-selected': false}); + var _this = this; + Foundation.Move(this.options.slideSpeed, $target, function(){ + $target.slideUp(_this.options.slideSpeed); + }); + $target.find('[data-submenu]').slideUp(0).attr('aria-hidden', true) + .attr('aria-hidden', true).parent('.has-submenu') + .attr({'aria-expanded': false, 'aria-selected': false}); + // $target.slideUp(this.options.slideSpeed, function() { + // $target.find('[data-submenu]').slideUp(0).attr('aria-hidden', true); + // }).attr('aria-hidden', true).parent('.has-submenu').attr({'aria-expanded': false, 'aria-selected': false}); /** * Fires when the menu is done collapsing up. @@ -2233,17 +2433,19 @@ Foundation.IFeelYou = closemeListener; * @event AccordionMenu#destroy */ // this.$element.trigger('destroyed.zf.accordionMenu'); + Foundation.Nest.Burn(this.$element, 'accordion'); Foundation.unregisterPlugin(this); }; Foundation.plugin(AccordionMenu); -}(jQuery) +}(jQuery, window.Foundation); /** * Drilldown module. * @module foundation.drilldown * @requires foundation.util.keyboard * @requires foundation.util.motion + * @requires foundation.util.nest */ !function($, Foundation){ 'use strict'; @@ -2263,7 +2465,7 @@ Foundation.IFeelYou = closemeListener; this._init(); Foundation.registerPlugin(this); - Foundation.registerKeyCommands('Drilldown', { + Foundation.Keyboard.register('Drilldown', { 'ENTER': 'open', 'SPACE': 'open', 'ARROW_RIGHT': 'next', @@ -2276,10 +2478,25 @@ Foundation.IFeelYou = closemeListener; }); } Drilldown.defaults = { + /** + * Markup used for JS generated back button. Prepended to submenu lists and deleted on `destroy` method. + * @option + * @example '
  • Back
  • ' + */ backButton: '
  • Back
  • ', + /** + * Markup used to wrap drilldown menu. Use a class name for independent styling, or the JS applied class: `is-drilldown`. + * @option + * @example '
    ' + */ wrapper: '
    ', + /** + * Allow the menu to return to root list on body click. + * @option + * @example false + */ closeOnClick: false, - holdOpen: false + // holdOpen: false }; /** * Initializes the drilldown by creating jQuery collections of elements @@ -2294,8 +2511,7 @@ Foundation.IFeelYou = closemeListener; // console.log(this.$wrapper.outerHeight(), this.$wrapper.css()); this._prepareMenu(); - // this.getMaxHeight(); - + // this._getMaxDims(); this._keyboardEvents(); }; /** @@ -2307,9 +2523,9 @@ Foundation.IFeelYou = closemeListener; */ Drilldown.prototype._prepareMenu = function(){ var _this = this; - if(!this.options.holdOpen){ - this._menuLinkEvents(); - } + // if(!this.options.holdOpen){ + // this._menuLinkEvents(); + // } this.$submenuAnchors.each(function(){ var $sub = $(this); $sub.find('a')[0].removeAttribute('href'); @@ -2322,12 +2538,15 @@ Foundation.IFeelYou = closemeListener; _this._events($sub); }); this.$submenus.each(function(){ - var $menu = $(this); - $menu.prepend(_this.options.backButton); - _this._back($menu); + var $menu = $(this), + $back = $menu.find('.js-drilldown-back'); + if(!$back.length){ + $menu.prepend(_this.options.backButton); + _this._back($menu); + } }); if(!this.$element.parent().hasClass('is-drilldown')){ - this.$wrapper = $(this.options.wrapper).addClass('is-drilldown').css(this.getMaxHeight()); + this.$wrapper = $(this.options.wrapper).addClass('is-drilldown').css(this._getMaxDims()); this.$element.wrap(this.$wrapper); } @@ -2367,6 +2586,10 @@ Foundation.IFeelYou = closemeListener; // console.log('back button'); }); }; + /** + * Adds keydown event listener to `li`'s in the menu. + * @private + */ Drilldown.prototype._keyboardEvents = function() { var _this = this; this.$menuItems.add(this.$element.find('.js-drilldown-back')).on('keydown.zf.drilldown', function(e){ @@ -2382,18 +2605,18 @@ Foundation.IFeelYou = closemeListener; return; } }); - Foundation.handleKey(e, _this, { + Foundation.Keyboard.handleKey(e, _this, { next: function() { if ($element.is(_this.$submenuAnchors)) { _this._show($element); - $element.on('transitionend.zf.drilldown', function(){ + $element.on(Foundation.transitionend + '.zf.drilldown', function(){ $element.find('ul li').filter(_this.$menuItems).first().focus(); }); } }, previous: function() { _this._hide($element.parent('ul')); - $element.parent('ul').on('transitionend.zf.drilldown', function(){ + $element.parent('ul').on(Foundation.transitionend + '.zf.drilldown', function(){ setTimeout(function() { $element.parent('ul').parent('li').focus(); }, 1); @@ -2412,10 +2635,10 @@ Foundation.IFeelYou = closemeListener; open: function() { if (!$element.is(_this.$menuItems)) { // not menu item means back button _this._hide($element.parent('ul')); - setTimeout(function(){$element.parent('ul').parent('li').focus()}, 1); + setTimeout(function(){$element.parent('ul').parent('li').focus();}, 1); } else if ($element.is(_this.$submenuAnchors)) { _this._show($element); - setTimeout(function(){$element.find('ul li').filter(_this.$menuItems).first().focus()}, 1); + setTimeout(function(){$element.find('ul li').filter(_this.$menuItems).first().focus();}, 1); } }, handled: function() { @@ -2433,9 +2656,8 @@ Foundation.IFeelYou = closemeListener; */ Drilldown.prototype._hideAll = function(){ this.$element.find('.is-drilldown-sub.is-active').addClass('is-closing') - .on('transitionend.zf.drilldown', function(e){ - // console.log('transitionend'); - $(this).removeClass('is-active is-closing').off('transitionend.zf.drilldown'); + .on(Foundation.transitionend + '.zf.drilldown', function(e){ + $(this).removeClass('is-active is-closing').off(Foundation.transitionend + '.zf.drilldown'); }); /** * Fires when the menu is fully closed. @@ -2471,7 +2693,7 @@ Foundation.IFeelYou = closemeListener; // e.stopImmediatePropagation(); setTimeout(function(){ _this._hideAll(); - }, 0) + }, 0); }); }; /** @@ -2494,12 +2716,12 @@ Foundation.IFeelYou = closemeListener; Drilldown.prototype._hide = function($elem){ var _this = this; $elem.addClass('is-closing') - .on('transitionend.zf.drilldown', function(e){ + .on(Foundation.transitionend + '.zf.drilldown', function(e){ // console.log('transitionend'); - $(this).removeClass('is-active is-closing').off('transitionend.zf.drilldown'); + $(this).removeClass('is-active is-closing').off(Foundation.transitionend + '.zf.drilldown'); }); /** - * Fires when the menu is fully closed. + * Fires when the submenu is has closed. * @event Drilldown#hide */ $elem.trigger('hide.zf.drilldown', [$elem]); @@ -2511,9 +2733,9 @@ Foundation.IFeelYou = closemeListener; * @function * @private */ - Drilldown.prototype.getMaxHeight = function(){ + Drilldown.prototype._getMaxDims = function(){ var max = 0, result = {}; - this.$submenus.each(function(){ + this.$submenus.add(this.$element).each(function(){ var numOfElems = $(this).children('li').length; max = numOfElems > max ? numOfElems : max; }); @@ -2529,6 +2751,7 @@ Foundation.IFeelYou = closemeListener; */ Drilldown.prototype.destroy = function(){ this._hideAll(); + Foundation.Nest.Burn(this.$element, 'drilldown'); this.$element.unwrap() .find('.js-drilldown-back').remove() .end().find('.is-active, .is-closing, .is-drilldown-sub').removeClass('is-active is-closing is-drilldown-sub') @@ -2540,150 +2763,6 @@ Foundation.IFeelYou = closemeListener; Foundation.plugin(Drilldown); }(jQuery, window.Foundation); - -// !function(Foundation, $) { -// 'use strict'; -// -// /** -// * Creates a new instance of Drilldown. -// * @class -// * @fires Drilldown#init -// * @param {jQuery} element - jQuery object to make into a drilldown menu. -// * @param {Object} options - Overrides to the default plugin settings. -// */ -// function Drilldown(element) { -// this.$element = element; -// this.options = $.extend({}, Drilldown.defaults, this.$element.data()); -// // this.$container = $(); -// // this.$currentMenu = this.$element; -// -// this._init(); -// -// /** -// * Fires when the plugin has been successfuly initialized. -// * @event Drilldown#init -// */ -// this.$element.trigger('init.zf.drilldown'); -// } -// -// Drilldown.defaults = { -// /** -// * HTML to use for the back button at the top of each sub-menu. -// * @option -// * @sample '
  • Back
  • ' -// */ -// backButton: '
  • Back
  • ' -// }; -// -// Drilldown.prototype = { -// /** -// * Initializes the Drilldown by creating a container to wrap the Menu in, and initializing all submenus. -// * @private -// */ -// _init: function() { -// console.log('yo'); -// this.$container = $('
    '); -// this.$container.css('width', this.$element.css('width')); -// this.$element.wrap(this.$container); -// this._prepareMenu(this.$element, true); -// }, -// -// /** -// * Scans a Menu for any sub Menus inside of it. This is a recursive function, so when a sub menu is found, this method will be called on that sub menu. -// * @private -// * @param {jQuery} $elem - Menu to scan for sub menus. -// * @param {Boolean} root - If true, the menu being scanned is at the root level. -// */ -// _prepareMenu: function($elem, root) { -// var _this = this; -// -// // Create a trigger to move up the menu. This is not used on the root-level menu, because it doesn't need a back button. -// if (!root) { -// var $backButton = $(_this.options.backButton); -// $backButton.mouseup(function() { -// _this.backward(); -// }); -// // console.log(_this.options.backButton); -// $elem.prepend($backButton); -// } -// -// // Look for sub-menus inside the current one -// $elem.children('li').each(function() { -// var $submenu = $(this).children('[data-submenu]'); -// -// // If it exists... -// if ($submenu.length) { -// $submenu.addClass('is-drilldown-sub'); -// -// // Create a trigger to move down the menu -// $(this).children('a').mouseup(function() { -// _this.forward($submenu); -// return false; -// }); -// -// // We have to go deeper -// _this._prepareMenu($submenu, false); -// } -// }); -// }, -// -// /** -// * Moves down the drilldown by activating the menu specified in `$target`. -// * @fires Drilldown#forward -// * @param {jQuery} $target - Sub menu to activate. -// */ -// forward: function($target) { -// var _this = this; -// -// Foundation.requestAnimationFrame(function() { -// $target.addClass('is-active'); -// _this.$currentMenu = $target; -// -// /** -// * Fires when the menu is done moving forwards. -// * @event Drilldown#forward -// */ -// _this.$element.trigger('forward.zf.drilldown', [_this.$currentMenu]); -// }); -// }, -// -// /** -// * Moves up the drilldown by deactivating the current menu. -// * @fires Drilldown#backward -// */ -// backward: function() { -// var _this = this; -// -// Foundation.requestAnimationFrame(function() { -// _this.$currentMenu.removeClass('is-active'); -// _this.$currentMenu = _this.$currentMenu.parents('[data-drilldown], [data-submenu]'); -// -// /** -// * Fires when the menu is done moving backwards. -// * @event Drilldown#backward -// */ -// _this.$element.trigger('backward.zf.drilldown', [_this.$currentMenu]); -// }); -// }, -// -// /** -// * Destroys an instance of a drilldown. A callback can optionally be run when the process is finished. -// * @param {Function} cb - Callback to run when the plugin is done being destroyed. -// */ -// destroy: function(cb) { -// this.$element.find('[data-submenu]').removeClass('is-drilldown-sub'); -// this.$currentMenu.removeClass('is-active'); -// this.$element.find('.is-drilldown-back').remove(); -// this.$element.removeData('zf-plugin'); -// this.$element.unwrap(); -// -// if (typeof cb === 'function') cb(); -// } -// }; -// -// Foundation.plugin(Drilldown); -// }(window.Foundation, jQuery); - /** * Dropdown module. * @module foundation.dropdown @@ -2704,14 +2783,52 @@ Foundation.IFeelYou = closemeListener; this._init(); Foundation.registerPlugin(this); + Foundation.Keyboard.register('Dropdown', { + 'ENTER': 'open', + 'SPACE': 'open', + 'ESCAPE': 'close', + 'TAB': 'tab_forward', + 'SHIFT_TAB': 'tab_backward' + }); } Dropdown.defaults = { + /** + * Amount of time to delay opening a submenu on hover event. + * @option + * @example 250 + */ hoverDelay: 250, + /** + * Allow submenus to open on hover events + * @option + * @example false + */ hover: false, + /** + * Number of pixels between the dropdown pane and the triggering element on open. + * @option + * @example 1 + */ vOffset: 1, + /** + * Number of pixels between the dropdown pane and the triggering element on open. + * @option + * @example 1 + */ hOffset: 1, - positionClass: '' + /** + * Class applied to adjust open position. JS will test and fill this in. + * @option + * @example 'top' + */ + positionClass: '', + /** + * Allow the plugin to trap focus to the dropdown pane on open. + * @option + * @example false + */ + trapFocus: false }; /** * Initializes the plugin by setting/checking options and attributes, adding helper variables, and saving the anchor. @@ -2726,7 +2843,8 @@ Foundation.IFeelYou = closemeListener; 'aria-controls': $id, 'data-is-focus': false, 'data-yeti-box': $id, - 'aria-haspopup': true + 'aria-haspopup': true, + 'aria-expanded': false // 'data-resize': $id }); @@ -2736,7 +2854,8 @@ Foundation.IFeelYou = closemeListener; this.$element.attr({ 'aria-hidden': 'true', 'data-yeti-box': $id, - 'data-resize': $id + 'data-resize': $id, + 'aria-labelledby': this.$anchor[0].id || Foundation.GetYoDigits(6, 'dd-anchor') }); this._events(); }; @@ -2756,7 +2875,7 @@ Foundation.IFeelYou = closemeListener; * @private * @param {String} position - position class to remove. */ - Dropdown.prototype.reposition = function(position){ + Dropdown.prototype._reposition = function(position){ this.usedPositions.push(position ? position : 'bottom'); //default, try switching to opposite side if(!position && (this.usedPositions.indexOf('top') < 0)){ @@ -2795,18 +2914,18 @@ Foundation.IFeelYou = closemeListener; * @function * @private */ - Dropdown.prototype.setPosition = function(){ + Dropdown.prototype._setPosition = function(){ + if(this.$anchor.attr('aria-expanded') === 'false'){ return false; } var position = this.getPositionClass(), - $eleDims = Foundation.GetDimensions(this.$element), - $anchorDims = Foundation.GetDimensions(this.$anchor), + $eleDims = Foundation.Box.GetDimensions(this.$element), + $anchorDims = Foundation.Box.GetDimensions(this.$anchor), _this = this, direction = (position === 'left' ? 'left' : ((position === 'right') ? 'left' : 'top')), param = (direction === 'top') ? 'height' : 'width', offset = (param === 'height') ? this.options.vOffset : this.options.hOffset; - // console.log($eleDims.width >= $eleDims.windowDims.width); - if(($eleDims.width >= $eleDims.windowDims.width) || (!this.counter && !Foundation.ImNotTouchingYou(this.$element))){ - this.$element.offset(Foundation.GetOffsets(this.$element, this.$anchor, 'center bottom', this.options.vOffset, this.options.hOffset, true)).css({ + if(($eleDims.width >= $eleDims.windowDims.width) || (!this.counter && !Foundation.Box.ImNotTouchingYou(this.$element))){ + this.$element.offset(Foundation.Box.GetOffsets(this.$element, this.$anchor, 'center bottom', this.options.vOffset, this.options.hOffset, true)).css({ 'width': $eleDims.windowDims.width - (this.options.hOffset * 2), 'height': 'auto', }); @@ -2814,11 +2933,11 @@ Foundation.IFeelYou = closemeListener; return false; } - this.$element.offset(Foundation.GetOffsets(this.$element, this.$anchor, position, this.options.vOffset, this.options.hOffset)); + this.$element.offset(Foundation.Box.GetOffsets(this.$element, this.$anchor, position, this.options.vOffset, this.options.hOffset)); - while(!Foundation.ImNotTouchingYou(this.$element) && this.counter){ - this.reposition(position); - this.setPosition(); + while(!Foundation.Box.ImNotTouchingYou(this.$element) && this.counter){ + this._reposition(position); + this._setPosition(); } }; /** @@ -2832,7 +2951,7 @@ Foundation.IFeelYou = closemeListener; 'open.zf.trigger': this.open.bind(this), 'close.zf.trigger': this.close.bind(this), 'toggle.zf.trigger': this.toggle.bind(this), - 'resizeme.zf.trigger': this.setPosition.bind(this) + 'resizeme.zf.trigger': this._setPosition.bind(this) }); if(this.options.hover){ @@ -2843,6 +2962,41 @@ Foundation.IFeelYou = closemeListener; }, _this.options.hoverDelay); }); } + this.$anchor.add(this.$element).on('keydown.zf.dropdown', function(e) { + + var visibleFocusableElements = Foundation.Keyboard.findFocusable(_this.$element); + + Foundation.Keyboard.handleKey(e, _this, { + tab_forward: function() { + if (this.$element.find(':focus').is(visibleFocusableElements.eq(-1))) { // left modal downwards, setting focus to first element + if (this.options.trapFocus) { // if focus shall be trapped + visibleFocusableElements.eq(0).focus(); + e.preventDefault(); + } else { // if focus is not trapped, close dropdown on focus out + this.close(); + } + } + }, + tab_backward: function() { + if (this.$element.find(':focus').is(visibleFocusableElements.eq(0)) || this.$element.is(':focus')) { // left modal upwards, setting focus to last element + if (this.options.trapFocus) { // if focus shall be trapped + visibleFocusableElements.eq(-1).focus(); + e.preventDefault(); + } else { // if focus is not trapped, close dropdown on focus out + this.close(); + } + } + }, + open: function() { + _this.open(); + _this.$element.attr('tabindex', -1).focus(); + }, + close: function() { + _this.close(); + _this.$anchor.focus(); + } + }); + }); }; /** * Opens the dropdown pane, and fires a bubbling event to close other dropdowns. @@ -2851,17 +3005,21 @@ Foundation.IFeelYou = closemeListener; * @fires Dropdown#show */ Dropdown.prototype.open = function(){ + // var _this = this; /** * Fires to close other open dropdowns * @event Dropdown#closeme */ this.$element.trigger('closeme.zf.dropdown', this.$element.attr('id')); - var _this = this; - this.$element.show(); - this.setPosition(); + this.$anchor.addClass('hover') + .attr({'aria-expanded': true}); + // this.$element/*.show()*/; + this._setPosition(); this.$element.addClass('is-open') - .attr('aria-hidden', 'false'); - this.$anchor.addClass('hover'); + .attr({'aria-hidden': false}); + + + /** * Fires once the dropdown is visible. * @event Dropdown#show @@ -2869,7 +3027,7 @@ Foundation.IFeelYou = closemeListener; this.$element.trigger('show.zf.dropdown', [this.$element]); //why does this not work correctly for this plugin? // Foundation.reflow(this.$element, 'dropdown'); - // Foundation._reflow(this.$element.data('dropdown')); + // Foundation._reflow(this.$element.attr('data-dropdown')); }; /** @@ -2882,15 +3040,18 @@ Foundation.IFeelYou = closemeListener; return false; } this.$element.removeClass('is-open') - .attr('aria-hidden', 'true'); - this.$anchor.removeClass('hover'); + .attr({'aria-hidden': true}); + + this.$anchor.removeClass('hover') + .attr('aria-expanded', false); + if(this.classChanged){ var curPositionClass = this.getPositionClass(); if(curPositionClass){ this.$element.removeClass(curPositionClass); } this.$element.addClass(this.options.positionClass) - .hide().css({height: '', width: ''}); + /*.hide()*/.css({height: '', width: ''}); this.classChanged = false; this.counter = 4; this.usedPositions.length = 0; @@ -2918,7 +3079,7 @@ Foundation.IFeelYou = closemeListener; this.$anchor.off('.zf.dropdown'); Foundation.unregisterPlugin(this); - } + }; Foundation.plugin(Dropdown); }(jQuery, window.Foundation); @@ -2928,6 +3089,7 @@ Foundation.IFeelYou = closemeListener; * @module foundation.dropdown-menu * @requires foundation.util.keyboard * @requires foundation.util.box + * @requires foundation.util.nest */ !function(Foundation, $) { 'use strict'; @@ -2970,15 +3132,60 @@ Foundation.IFeelYou = closemeListener; */ DropdownMenu.defaults = { // toggleOn: 'both', + /** + * Allow a submenu to open/remain open on parent click event. Allows cursor to move away from menu. + * @option + * @example true + */ clickOpen: true, + /** + * Allow clicks on the body to close any open submenus. + * @option + * @example false + */ closeOnClick: false, + /** + * Disallows hover events from opening submenus + * @option + * @example false + */ disableHover: false, + /** + * Allow a submenu to automatically close on a mouseleave event. + * @option + * @example true + */ autoclose: true, + /** + * Amount of time to delay opening a submenu on hover event. + * @option + * @example 150 + */ hoverDelay: 150, + /** + * Amount of time to delay closing a submenu on a mouseleave event. + * @option + * @example 500 + */ closingTime: 500, // wrapOnKeys: true, + /** + * Position of the menu relative to what direction the submenus should open. Handled by JS. + * @option + * @example 'left' + */ alignment: 'left', + /** + * Class applied to vertical oriented menus, Foundation default is `vertical`. Update this if using your own class. + * @option + * @example 'vertical' + */ verticalClass: 'vertical', + /** + * Class applied to right-side oriented menus, Foundation default is `align-right`. Update this if using your own class. + * @option + * @example 'align-right' + */ rightClass: 'align-right' }; /** @@ -3008,12 +3215,12 @@ Foundation.IFeelYou = closemeListener; this.$menuItems.children('a').attr('tabindex', -1); if(this.$element.hasClass(this.options.rightClass)){ this.options.alignment = 'right'; - this.$submenus.addClass('is-right-arrow'); + this.$submenus.addClass('is-left-arrow opens-left'); }else{ - this.$submenus.addClass('is-left-arrow'); + this.$submenus.addClass('is-right-arrow opens-right'); } if(!this.vertical){ - this.$tabs.removeClass('is-right-arrow is-left-arrow').addClass('is-down-arrow'); + this.$tabs.removeClass('is-right-arrow is-left-arrow opens-left opens-right').addClass('is-down-arrow'); } this.$tabs.each(function(){ @@ -3032,9 +3239,9 @@ Foundation.IFeelYou = closemeListener; this.$submenus.each(function(){ var $sub = $(this); - if(_this.options.alignment === 'right'){ - $sub.children('[data-submenu]').addClass('is-right-arrow'); - } + // if(_this.options.alignment === 'right'){ + // $sub.children('[data-submenu]').addClass('is-right-arrow'); + // } $sub.children('[data-submenu]') .attr({ @@ -3056,7 +3263,7 @@ Foundation.IFeelYou = closemeListener; var _this = this; if(this.options.clickOpen){ - $elem.on('click.zf.dropdownmenu tap.zf.dropdownmenu touchend.zf.dropdownmenu', function(e){ + $elem.children('a').on('click.zf.dropdownmenu touchend.zf.dropdownmenu', function(e){ if($(e.target).parent('li').hasClass('has-submenu')){ e.preventDefault(); e.stopPropagation(); @@ -3216,7 +3423,7 @@ Foundation.IFeelYou = closemeListener; $body.not(_this.$element).on('click.zf.dropdownmenu tap.zf.dropdownmenu touchend.zf.dropdownmenu', function(e){ _this._hideAll(); $body.off('click.zf.dropdownmenu tap.zf.dropdownmenu touchend.zf.dropdownmenu'); - }) + }); }; //show & hide stuff @private /** @@ -3237,14 +3444,21 @@ Foundation.IFeelYou = closemeListener; //break this into own function - var clear = Foundation.ImNotTouchingYou($sub, null, true); + var clear = Foundation.Box.ImNotTouchingYou($sub, null, true); if(!clear){ if(this.options.alignment === 'left'){ - $sub.removeClass('is-left-arrow').addClass('is-right-arrow'); + $elem.removeClass('opens-left').addClass('opens-right'); }else{ - $sub.removeClass('is-right-arrow').addClass('is-left-arrow'); + $elem.removeClass('opens-right').addClass('opens-left'); } this.changed = true; + + // still not clear, small screen, add inner class + clear = Foundation.Box.ImNotTouchingYou($sub, null, true); + if (!clear) { + $elem.removeClass('opens-left opens-right').addClass('opens-inner'); + this.changed = true; + } } $sub.css('visibility', ''); /** @@ -3276,7 +3490,7 @@ Foundation.IFeelYou = closemeListener; // console.log('true'); // $elems.blur(); // } - $elems.removeClass('is-active').data('isClick', false) + $elems.removeClass('is-active opens-inner').data('isClick', false) .find('.is-active').removeClass('is-active').data('isClick', false).end() @@ -3286,9 +3500,9 @@ Foundation.IFeelYou = closemeListener; if(this.changed){ //remove position class if(this.options.alignment === 'left'){ - $elems.find('.is-right-arrow').removeClass('is-right-arrow').addClass('is-left-arrow'); + $elems.find('.opens-left').removeClass('opens-left').addClass('opens-right'); }else{ - $elems.find('.is-left-arrow').removeClass('is-left-arrow').addClass('is-right-arrow'); + $elems.find('.opens-right').removeClass('opens-right').addClass('opens-left'); } } /** @@ -3323,16 +3537,17 @@ Foundation.IFeelYou = closemeListener; this.$element .removeData('zf-plugin') .find('li') - .removeClass('js-dropdown-nohover') - .off('.zf.dropdownmenu'); - + .removeClass('js-dropdown-nohover is-right-arrow is-left-arrow opens-left opens-inner opens-right') + .add('a').off('.zf.dropdownmenu') + .end().find('ul').removeClass('first-sub'); + Foundation.Nest.Burn(this.$element, 'dropdown'); Foundation.unregisterPlugin(this); }; Foundation.plugin(DropdownMenu); - function checkClass($elem){ + var checkClass = function($elem){ return $elem.hasClass('is-active'); - } + }; }(Foundation, jQuery); @@ -3368,7 +3583,17 @@ Foundation.IFeelYou = closemeListener; * Default settings for plugin */ Equalizer.defaults = { + /** + * Enable height equalization when stacked on smaller screens. + * @option + * @example true + */ equalizeOnStack: true, + /** + * Amount of time, in ms, to debounce the size checking/equalization. Lower times mean smoother transitions/less performance on mobile. + * @option + * @example 50 + */ throttleInterval: 50 }; @@ -3431,7 +3656,6 @@ Foundation.IFeelYou = closemeListener; * @returns {Array} heights An array of heights of children within Equalizer container */ Equalizer.prototype.getHeights = function($eqParent) { - var eqGroupName = $eqParent.data('equalizer'), eqGroup = eqGroupName ? $eqParent.find('[' + this.attr + '-watch="' + eqGroupName + '"]:visible') : $eqParent.find('[' + this.attr + '-watch]:visible'), heights; @@ -3470,6 +3694,13 @@ Foundation.IFeelYou = closemeListener; */ $eqParent.trigger('postEqualized.zf.Equalizer'); }; + /** + * Destroys an instance of Equalizer. + * @function + */ + Equalizer.prototype.destroy = function(){ + //TODO this. + }; Foundation.plugin(Equalizer); @@ -3487,6 +3718,7 @@ Foundation.IFeelYou = closemeListener; * Interchange module. * @module foundation.interchange * @requires foundation.util.mediaQuery + * @requires foundation.util.timerAndImageLoader */ !function(Foundation, $) { 'use strict'; @@ -3508,25 +3740,24 @@ Foundation.IFeelYou = closemeListener; this._events(); Foundation.registerPlugin(this); - // /** - // * Fires when the plugin has been successfuly initialized. - // * @event Interchange#init - // */ - // this.$element.trigger('init.zf.interchange'); } /** * Default settings for plugin */ Interchange.defaults = { + /** + * Rules to be applied to Interchange elements. Set with the `data-interchange` array notation. + * @option + */ rules: null - } + }; Interchange.SPECIAL_QUERIES = { 'landscape': 'screen and (orientation: landscape)', 'portrait': 'screen and (orientation: portrait)', 'retina': 'only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min--moz-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 2/1), only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx)' - } + }; /** * Initializes the Interchange plugin and calls functions to get interchange functioning on load. @@ -3537,7 +3768,7 @@ Foundation.IFeelYou = closemeListener; this._addBreakpoints(); this._generateRules(); this._reflow(); - } + }; /** * Initializes events for Interchange. @@ -3546,7 +3777,7 @@ Foundation.IFeelYou = closemeListener; */ Interchange.prototype._events = function() { $(window).on('resize.fndtn.interchange', Foundation.util.throttle(this._reflow.bind(this), 50)); - } + }; /** * Calls necessary functions to update Interchange upon DOM change @@ -3568,7 +3799,7 @@ Foundation.IFeelYou = closemeListener; if (match) { this.replace(match.path); } - } + }; /** * Gets the Foundation breakpoints and adds them to the Interchange.SPECIAL_QUERIES object. @@ -3580,7 +3811,7 @@ Foundation.IFeelYou = closemeListener; var query = Foundation.MediaQuery.queries[i]; Interchange.SPECIAL_QUERIES[query.name] = query.value; } - } + }; /** * Checks the Interchange element for the provided media query + content pairings @@ -3616,7 +3847,7 @@ Foundation.IFeelYou = closemeListener; } this.rules = rulesList; - } + }; /** * Update the `src` property of an image, or change the HTML of a container, to the specified path. @@ -3648,320 +3879,22 @@ Foundation.IFeelYou = closemeListener; _this.currentPath = path; }); } - } - - Foundation.plugin(Interchange); - - // Exports for AMD/Browserify - if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') - module.exports = Interchange; - if (typeof define === 'function') - define(['foundation'], function() { - return Interchange; - }); - -}(Foundation, jQuery); - -/******************************************* - * * - * This Ride was created by Marius Olbertz * - * Please thank Marius on GitHub /owlbertz * - * or the web http://www.mariusolbertz.de/ * - * * - ******************************************/ - -/** - * Joyride module. - * @module foundation.joyride - * @requires foundation.util.keyboard - * @requires foundation.Tooltip - * @requires foundation.Reveal - */ -!function(Foundation, $) { - 'use strict'; - - /** - * Creates a new instance of Joyride. - * @class - * @fires Joyride#init - * @param {Object} element - jQuery object (list) to be used as the structure. - * @param {Object} options - object to extend the default configuration. - */ - - function Joyride(element, options) { - this.$element = element; - this.options = $.extend({}, Joyride.defaults, this.$element.data(), options || {}); - this._init(); - - /** - * Fires when the plugin has been successfuly initialized. - * @event Joyride#init - */ - this.$element.trigger('init.zf.joyride'); - } - - Joyride.defaults = { - autostart: false, - scrollSpeed: 1000, - keyboardAccess: true, - closable: true, - nextText: 'Next', - prevText: 'Previous', - closeText: 'Close', - showNext: true, - showPrev: true, - vOffset: 10, - hOffset: 12, - scrollOffset: 50, - position: 'top center', - templates : { // HTML templates - closeButton: '', - nextButton: '', - prevButton: '', - } - }; - - /** - * Initializes the joyride by rendering required markup - * @private - */ - Joyride.prototype._init = function(){ - this.id = this.$element.attr('id') || Foundation.GetYoDigits(6, 'joyride'); - this.current = 0; - this.$items = $([]); // initialize empty collection - this.structure = this._parseList(); - this._render(this.structure); - this._events(); - - if (this.options.autostart) { - this.start(); - } }; - /** - * Parses the list of the instance, stored in $element. - * @private - * @return {Array} structure - */ - Joyride.prototype._parseList = function(){ - var structure = []; - this.$element.find('li').each(function(i) { - var item = $.extend({}, { - text: $(this).html(), - $target: $($(this).data('target')), - isModal: !!!$($(this).data('target')).length, - closable: Joyride.defaults.closable - }, $(this).data()); - structure.push(item); - }); - return structure; - }; - - /** - * Creates the markup for the items - * @private - * @param {Array} structure the joyride's structure from _parseList - * @return {Object} markup jQuery representation of the generated markup - */ - Joyride.prototype._render = function(structure) { - for (var s in structure) { - var options = $.extend({}, this.options, structure[s]),// if specifc item has config, this should overwrite global settings - $item; - - if (options.$target.length) { // target element exists, create tooltip - var tooltip = new Foundation.Tooltip(structure[s].$target, { - positionClass: options.position, - disableHover: true, - clickOpen: false, - tooltipClass: 'tooltip joyride', - triggerClass: '', - hOffset: this.options.hOffset, - vOffset: this.options.vOffset - }); - this.structure[s].item = tooltip; - $item = tooltip.template; - - } else { // not target, create modal with Reveal - var modal = new Foundation.Reveal($('
    ').appendTo($('body'))); - this.structure[s].item = modal; - $item = modal.$element; - } - $item.attr({ - 'data-index': s, - 'data-joyride-for': structure[s].target - }) - .html(structure[s].text); - if (options.keyboardAccess) { - $item.attr('tabindex', '-1'); - } - - this.$items = this.$items.add($item); - - // add buttons - if ( - (structure[s].nextText || (options.showNext && s < structure.length -1)) - || (structure[s].prevText || (options.showPrev && s > 0)) - ) { - var $buttons = $('
    '); - if (structure[s].prevText || (options.showPrev && s > 0)) { - $buttons.append($(this.options.templates.prevButton).text(options.prevText)); - } - if (structure[s].nextText || (options.showNext && s < structure.length -1)) { - $buttons.append($(this.options.templates.nextButton).text(options.nextText)); - } - $item.append($buttons); - } - - // add close button - if (options.closable) { - var $close = $(this.options.templates.closeButton); - $close.find('.show-for-sr').text(this.options.closeText); - $item.prepend($close); - } - } - }; - - /** - * Shows the item with the given index - * @private - * @param {Number} index of the item to be displayed - */ - Joyride.prototype._showItem = function(index) { - if (this.structure[index].isModal) { - this.structure[index].item._open(); - } else { - this.structure[index].item._show(); - } - // scroll target into view if target exists - if (this.structure[index].$target.length) { - $('html, body').stop().animate({ - 'scrollTop': Math.max(0, this.$items.eq(index).offset().top - this.options.scrollOffset) - }, this.options.scrollSpeed); - } - if (this.options.keyboardAccess) { - this.$items.eq(index).focus(); - } - this.current = index; - }; - - /** - * Hides the item with the given index - * @private - * @param {Number} index of the item to be hidden - */ - Joyride.prototype._hideItem = function(index) { - if (this.structure[index].isModal) { - this.structure[index].item._close(); - } else { - this.structure[index].item._hide(); - } - }; - /** - * Hides all items - * @private - */ - Joyride.prototype._hideAll = function() { - for (var s in this.structure) { - this._hideItem(s); - } - }; - - /** - * Shows the next item in the ride - * @private - */ - Joyride.prototype.showNext = function() { - this._hideItem(this.current); - this._showItem(this.current + 1); - }; - - /** - * Shows the previous item in the ride - * @private - */ - Joyride.prototype.showPrev = function() { - this._hideItem(this.current); - this._showItem(this.current - 1); - }; - - /** - * Starts the ride - * @private - * @return {Number} index - the index where to start, 0 by default - */ - Joyride.prototype.start = function(index) { - var index = index || 0; - this._hideAll(); - this._showItem(index); - }; - - /** - * Adds event handlers for the modal. - * @private - */ - Joyride.prototype._events = function(){ - var _this = this; - $('[data-joyride-start="#'+_this.id+'"]').click(function() { - console.log('Starting!'); - _this.start(); - }); - - this.$items.on('click.zf.joyride', '[data-joyride-next]', function(e) { - _this.showNext(); - }).on('click.zf.joyride', '[data-joyride-prev]', function(e) { - _this.showPrev(); - }).on('click.zf.joyride', '[data-joyride-close]', function(e) { - e.preventDefault(); - if (_this.structure[_this.current].closable) { - _this._hideItem(_this.current); - } - }).on('keydown.zf.joyride', function(e) { - var $element = $(this); - Foundation.handleKey(e, _this, { - next: function() { - if ($element.data('index') < _this.structure.length - 1) { - this.showNext(); - } - }, - previous: function() { - if ($element.data('index') > 0) { - this.showPrev(); - } - }, - close: function() { - if (this.structure[this.current].closable) { - this._hideItem(this.current); - } - }, - handled: function() { - e.preventDefault(); - } - }); - }); - }; - - /** - * Destroys an instance of a Joyride. - * @fires Joyride#destroyed + * Destroys an instance of interchange. + * @function */ - Joyride.prototype.destroy = function() { - this.$element.hide(); - this.$items.destroy(); - /** - * Fires when the plugin has been destroyed. - * @event Joyride#destroyed - */ - this.$element.trigger('destroyed.zf.joyride'); + Interchange.prototype.destroy = function(){ + //TODO this. } - - Foundation.plugin(Joyride); + Foundation.plugin(Interchange); // Exports for AMD/Browserify if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') - module.exports = Joyride; + module.exports = Interchange; if (typeof define === 'function') define(['foundation'], function() { - return Joyride; + return Interchange; }); }(Foundation, jQuery); @@ -3969,7 +3902,6 @@ Foundation.IFeelYou = closemeListener; /** * Magellan module. * @module foundation.magellan - * @requires foundation.util.motion */ !function(Foundation, $) { 'use strict'; @@ -3984,29 +3916,39 @@ Foundation.IFeelYou = closemeListener; function Magellan(element, options) { this.$element = element; this.options = $.extend({}, Magellan.defaults, options); - this.$window = $(window); - this.name = 'magellan'; - this.attr = 'data-magellan'; - this.attrArrival = 'data-magellan-target'; this._init(); - this._events(); Foundation.registerPlugin(this); - // /** - // * Fires when the plugin has been successfuly initialized. - // * @event Magellan#init - // */ - // this.$element.trigger('init.zf.magellan'); - }; + } /** * Default settings for plugin */ Magellan.defaults = { + /** + * Amount of time, in ms, the animated scrolling should take between locations. + * @option + * @example 500 + */ animationDuration: 500, + /** + * Animation style to use when scrolling between locations. + * @option + * @example 'ease-in-out' + */ animationEasing: 'linear', - threshold: null, + /** + * Number of pixels to use as a marker for location changes. + * @option + * @example 50 + */ + threshold: 50, + /** + * Class applied to the active locations link on the magellan container. + * @option + * @example 'active' + */ activeClass: 'active' }; @@ -4015,82 +3957,134 @@ Foundation.IFeelYou = closemeListener; * @private */ Magellan.prototype._init = function() { - }; + var id = this.$element[0].id || Foundation.GetYoDigits(6, 'magellan'), + _this = this; + this.$targets = $('[data-magellan-target]'); + this.$links = this.$element.find('a'); + this.$element.attr({ + 'data-resize': id, + 'data-scroll': id, + 'id': id + }); + this.$active = $(); + this.scrollPos = parseInt(window.pageYOffset, 10); + this._events(); + }; + /** + * Calculates an array of pixel values that are the demarcation lines between locations on the page. + * Can be invoked if new elements are added or the size of a location changes. + * @function + */ + Magellan.prototype.calcPoints = function(){ + var _this = this, + body = document.body, + html = document.documentElement; + + this.points = []; + this.winHeight = Math.round(Math.max(window.innerHeight, document.body.clientHeight)); + this.docHeight = Math.round(Math.max(body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight)); + + this.$targets.each(function(){ + var $tar = $(this), + pt = Math.round($tar.offset().top - _this.options.threshold); + $tar.targetPoint = pt; + _this.points.push(pt); + }); + }; /** * Initializes events for Magellan. * @private */ Magellan.prototype._events = function() { - var self = this; + var _this = this, + $body = $('html, body'), + opts = { + duration: _this.options.animationDuration, + easing: _this.options.animationEasing + }; - this.$window - .off('.magellan') - .on('resize.fndtn.magellan', Foundation.util.throttle(function () { - self._reflow(); - }.bind(this), 50)) - .on('scroll.fndtn.magellan', Foundation.util.throttle(function(e) { - e.preventDefault(); - self.updateActiveClass(); - }, 100)); + $(window).one('load', function(){ + _this.calcPoints(); + _this._updateActive(); + }); - this.$element - .on('click.fndtn.magellan', 'a[href^="#"]', function(e) { + this.$element.on({ + 'resizeme.zf.trigger': this.reflow.bind(this), + 'scrollme.zf.trigger': this._updateActive.bind(this) + }).on('click.zf.magellan', 'a[href^="#"]', function(e) { e.preventDefault(); - // include animation settings - var arrival = $(this).attr('href'), - navOffset = self.$element.height(); - - $('html, body').animate({ - scrollTop: $(arrival).offset().top - navOffset - }, - { - duration: self.options.animationDuration, - easing: self.options.animationEasing + var arrival = this.getAttribute('href'), + scrollPos = $(arrival).offset().top - _this.options.threshold / 2; + + // requestAnimationFrame is disabled for this plugin currently + // Foundation.Move(_this.options.animationDuration, $body, function(){ + $body.stop(true).animate({ + scrollTop: scrollPos + }, opts); }); - - window.location = arrival; - }) + // }); }; /** * Calls necessary functions to update Magellan upon DOM change - * @private + * @function */ - Magellan.prototype._reflow = function() { + Magellan.prototype.reflow = function(){ + this.calcPoints(); + this._updateActive(); }; /** - * Detects the arrival sections and adds the active class to the magellan navigation bar + * Updates the visibility of an active location link, and updates the url hash for the page. + * @private + * @function + * @fires Magellan#update */ - Magellan.prototype.updateActiveClass = function() { - var windowPosition = this.$window.scrollTop(), - arrivals = $('[' + this.attrArrival + ']'), - // for sensitivty to trigger the active class, either use the specified - // threshold amount, or use the height of the nav item plus a little wiggle room - threshold = this.options.threshold || this.$element.height() + 50, - magellanNav = this.$element, - self = this; + Magellan.prototype._updateActive = function(/*evt, elem, scrollPos*/){ + var winPos = /*scrollPos ||*/ parseInt(window.pageYOffset, 10), + curIdx; - if (windowPosition + this.$window.height() === $(document).height()) { - magellanNav.find('a').removeClass(self.options.activeClass); - magellanNav.find('a').last().addClass(self.options.activeClass); - return; + if(winPos + this.winHeight === this.docHeight){ curIdx = this.points.length - 1; } + else if(winPos < this.points[0]){ curIdx = 0; } + else{ + var isDown = this.scrollPos < winPos, + _this = this, + curVisible = this.points.filter(function(p, i){ + return isDown ? p <= winPos : p - _this.options.threshold <= winPos;//&& winPos >= _this.points[i -1] - _this.options.threshold; + }); + curIdx = curVisible.length ? curVisible.length - 1 : 0; } - arrivals.each(function() { - var arrivalTop = $(this).offset().top - threshold, - arrivalEnd = arrivalTop + $(this).height(); - if (windowPosition >= arrivalTop && windowPosition <= arrivalEnd) { - magellanNav.find('a').removeClass(self.options.activeClass); + this.$active.removeClass(this.options.activeClass); + this.$active = this.$links.eq(curIdx).addClass(this.options.activeClass); - // this feature causes a bit of jumpiness - // window.location.hash = $(this).attr('id'); - // find the corresponding hash/id of the section - var activeTarget = magellanNav.find('a[href=#' + $(this).attr('id') +']'); - activeTarget.addClass(self.options.activeClass); - } - }) + var hash = this.$active[0].getAttribute('href'); + if(window.history.pushState){ + window.history.pushState(null, null, hash); + }else{ + window.location.hash = hash; + } + + this.scrollPos = winPos; + /** + * Fires when magellan is finished updating the to the new active element. + * @event Magellan#update + */ + this.$element.trigger('update.zf.magellan', [this.$active]); }; + /** + * Destroys an instance of Magellan and resets the url of the window. + * @function + */ + Magellan.prototype.destroy = function(){ + this.$element.off('.zf.trigger .zf.magellan') + .find('.' + this.options.activeClass).removeClass(this.options.activeClass); + var hash = this.$active[0].getAttribute('href'); + + window.location.hash.replace(hash, ''); + + Foundation.unregisterPlugin(this); + }; Foundation.plugin(Magellan); // Exports for AMD/Browserify @@ -4129,11 +4123,6 @@ function OffCanvas(element, options) { this._events(); Foundation.registerPlugin(this); - // /** - // * Fires when the plugin has been successfully initialized. - // * @event OffCanvas#init - // */ - // this.$element.trigger('init.zf.offcanvas'); } OffCanvas.defaults = { @@ -4143,9 +4132,57 @@ OffCanvas.defaults = { * @example true */ closeOnClick: true, - - position: 'left' -} + /** + * Amount of time in ms the open and close transition requires. If none selected, pulls from body style. + * @option + * @example 500 + */ + transitionTime: 0, + /** + * Direction the offcanvas opens from. Determines class applied to body. + * @option + * @example left + */ + position: 'left', + /** + * Force the page to scroll to top on open. + * @option + * @example false + */ + forceTop: false, + /** + * Allow the offcanvas to be sticky while open. Does nothing if Sass option `$maincontent-prevent-scroll === true`. + * Performance in Safari OSX/iOS is not great. + * @option + * @example false + */ + isSticky: false, + /** + * Allow the offcanvas to remain open for certain breakpoints. Can be used with `isSticky`. + * @option + * @example false + */ + isRevealed: false, + /** + * Breakpoint at which to reveal. JS will use a RegExp to target standard classes, if changing classnames, pass your class @`revealClass`. + * @option + * @example reveal-for-large + */ + revealOn: null, + /** + * Force focus to the offcanvas on open. If true, will focus the opening trigger on close. + * @option + * @example true + */ + autoFocus: true, + /** + * Class used to force an offcanvas to remain open. Foundation defaults for this are `reveal-for-large` & `reveal-for-medium`. + * @option + * TODO improve the regex testing for this. + * @example reveal-for-large + */ + revealClass: 'reveal-for-' +}; /** * Initializes the off-canvas wrapper by adding the exit overlay (if needed). @@ -4164,14 +4201,28 @@ OffCanvas.prototype._init = function() { .attr('aria-controls', id); // Add a close trigger over the body if necessary - if (this.options.closeOnClick && !$('.js-off-canvas-exit').length) { - var exiter = document.createElement('div'); - exiter.setAttribute('class', 'js-off-canvas-exit'); - $('[data-off-canvas-content]').append(exiter); + if (this.options.closeOnClick){ + if($('.js-off-canvas-exit').length){ + this.$exiter = $('.js-off-canvas-exit'); + }else{ + var exiter = document.createElement('div'); + exiter.setAttribute('class', 'js-off-canvas-exit'); + $('[data-off-canvas-content]').append(exiter); - this.$exiter = $(exiter); + this.$exiter = $(exiter); + } } -} + + this.options.isRevealed = this.options.isRevealed || new RegExp(this.options.revealClass, 'g').test(this.$element[0].className); + + if(this.options.isRevealed){ + this.options.revealOn = this.options.revealOn || this.$element[0].className.match(/(reveal-for-medium|reveal-for-large)/g)[0].split('-')[2]; + this._setMQChecker(); + } + if(!this.options.transitionTime){ + this.options.transitionTime = parseFloat(window.getComputedStyle(document.body).transitionDuration) * 1000; + } +}; /** * Adds event handlers to the off-canvas wrapper and the exit overlay. @@ -4186,73 +4237,155 @@ OffCanvas.prototype._events = function() { 'keydown.zf.offcanvas': this._handleKeyboard.bind(this) }); - $(window).on('close.zf.offcanvas', this.close.bind(this)); + if (this.$exiter.length) { + var _this = this; + this.$exiter.on({'click.zf.offcanvas': this.close.bind(this)}); + } +}; +/** + * Applies event listener for elements that will reveal at certain breakpoints. + * @private + */ +OffCanvas.prototype._setMQChecker = function(){ + var _this = this; - if (this.$exiter) { - this.$exiter.on('click.zf.offcanvas', function() { - $(window).trigger('close.zf.offcanvas'); - }); + $(window).on('changed.zf.mediaquery', function(){ + if(Foundation.MediaQuery.atLeast(_this.options.revealOn)){ + _this.reveal(true); + }else{ + _this.reveal(false); + } + }).one('load.zf.offcanvas', function(){ + if(Foundation.MediaQuery.atLeast(_this.options.revealOn)){ + _this.reveal(true); + } + }); +}; +/** + * Handles the revealing/hiding the off-canvas at breakpoints, not the same as open. + * @param {Boolean} isRevealed - true if element should be revealed. + * @function + */ +OffCanvas.prototype.reveal = function(isRevealed){ + var closer = this.$element.find('[data-close]'); + if(isRevealed){ + if(!this.options.forceTop){ + var scrollPos = parseInt(window.pageYOffset); + this.$element[0].style.transform = 'translate(0,' + scrollPos + 'px)'; + } + if(this.options.isSticky){ this._stick(); } + if(closer.length){ closer.hide(); } + }else{ + if(this.options.isSticky || !this.options.forceTop){ + this.$element[0].style.transform = ''; + $(window).off('scroll.zf.offcanvas'); + } + if(closer.length){ + closer.show(); + } } -} +}; /** * Opens the off-canvas menu. * @function + * @param {Object} event - Event object passed from listener. + * @param {jQuery} trigger - element that triggered the off-canvas to open. * @fires OffCanvas#opened */ OffCanvas.prototype.open = function(event, trigger) { - if (this.$element.hasClass('is-open')) return; - - var _this = this; + if (this.$element.hasClass('is-open')){ return; } + var _this = this, + $body = $(document.body); + if(!this.options.forceTop){ + var scrollPos = parseInt(window.pageYOffset); + this.$element[0].style.transform = 'translate(0,' + scrollPos + 'px)'; + if(this.$exiter.length){ + this.$exiter[0].style.transform = 'translate(0,' + scrollPos + 'px)'; + } + } /** * Fires when the off-canvas menu opens. * @event OffCanvas#opened */ - requestAnimationFrame(function() { - $('body').addClass('is-off-canvas-open is-open-'+_this.options.position); + Foundation.Move(this.options.transitionTime, this.$element, function(){ + $('[data-off-canvas-wrapper]').addClass('is-off-canvas-open is-open-'+ _this.options.position); _this.$element .addClass('is-open') .attr('aria-hidden', 'false') - .find('a, button').eq(0).focus().end().end() .trigger('opened.zf.offcanvas'); - }); - if (trigger) { + if(_this.options.isSticky){ + _this._stick(); + } + }); + if(trigger){ this.$lastTrigger = trigger.attr('aria-expanded', 'true'); } -} + if(this.options.autoFocus){ + this.$element.one('finished.zf.animate', function(){ + _this.$element.find('a, button').eq(0).focus(); + }); + } +}; +/** + * Allows the offcanvas to appear sticky utilizing translate properties. + * @private + */ +OffCanvas.prototype._stick = function(){ + var elStyle = this.$element[0].style; + + if(this.options.closeOnClick){ + var exitStyle = this.$exiter[0].style; + } + $(window).on('scroll.zf.offcanvas', function(e){ + console.log(e); + var pageY = window.pageYOffset; + elStyle.transform = 'translate(0,' + pageY + 'px)'; + if(exitStyle !== undefined){ exitStyle.transform = 'translate(0,' + pageY + 'px)'; } + }); + // this.$element.trigger('stuck.zf.offcanvas'); +}; /** * Closes the off-canvas menu. * @function * @fires OffCanvas#closed */ OffCanvas.prototype.close = function() { - if (!this.$element.hasClass('is-open')) return; + if(!this.$element.hasClass('is-open')){ return; } var _this = this; - /** - * Fires when the off-canvas menu opens. - * @event OffCanvas#closed - */ - requestAnimationFrame(function() { - $('body').removeClass('is-off-canvas-open is-open-'+_this.options.position); + Foundation.Move(this.options.transitionTime, this.$element, function(){ + $('[data-off-canvas-wrapper]').removeClass('is-off-canvas-open is-open-'+_this.options.position); - _this.$element - .removeClass('is-open') - .attr('aria-hidden', 'true') - .trigger('closed.zf.offcanvas'); + _this.$element.removeClass('is-open'); + // Foundation._reflow(); }); + this.$element.attr('aria-hidden', 'true') + /** + * Fires when the off-canvas menu opens. + * @event OffCanvas#closed + */ + .trigger('closed.zf.offcanvas'); + if(_this.options.isSticky || !_this.options.forceTop){ + setTimeout(function(){ + _this.$element[0].style.transform = ''; + $(window).off('scroll.zf.offcanvas'); + }, this.options.transitionTime); + } this.$lastTrigger.attr('aria-expanded', 'false'); -} +}; /** * Toggles the off-canvas menu open or closed. * @function + * @param {Object} event - Event object passed from listener. + * @param {jQuery} trigger - element that triggered the off-canvas to open. */ OffCanvas.prototype.toggle = function(event, trigger) { if (this.$element.hasClass('is-open')) { @@ -4261,7 +4394,7 @@ OffCanvas.prototype.toggle = function(event, trigger) { else { this.open(event, trigger); } -} +}; /** * Handles keyboard input when detected. When the escape key is pressed, the off-canvas menu closes, and focus is restored to the element that opened the menu. @@ -4275,19 +4408,26 @@ OffCanvas.prototype._handleKeyboard = function(event) { event.preventDefault(); this.close(); this.$lastTrigger.focus(); -} +}; +/** + * Destroys the offcanvas plugin. + * @function + */ +OffCanvas.prototype.destroy = function(){ + //TODO make this... +}; Foundation.plugin(OffCanvas); -}(jQuery, Foundation) +}(jQuery, Foundation); /** * Orbit module. * @module foundation.orbit * @requires foundation.util.keyboard * @requires foundation.util.motion - * @requires foundation.util.motion * @requires foundation.util.timerAndImageLoader + * @requires foundation.util.touch */ !function($, Foundation){ 'use strict'; @@ -4360,7 +4500,7 @@ Foundation.plugin(OffCanvas); if(this.options.autoPlay){ this.geoSync(); } - if (this.options.accessible) { // allow wrapper to be focusable to enable arrow navigation + if(this.options.accessible){ // allow wrapper to be focusable to enable arrow navigation this.$wrapper.attr('tabindex', 0); } }; @@ -4380,10 +4520,11 @@ Foundation.plugin(OffCanvas); var _this = this; this.timer = new Foundation.Timer( this.$element, - {duration: this.options.timerDelay}, + {duration: this.options.timerDelay, + infinite: false}, function(){ _this.changeSlide(true); - }); + }); this.timer.start(); }; /** @@ -4441,18 +4582,16 @@ Foundation.plugin(OffCanvas); var _this = this; //*************************************** - //**currently using jQuery Mobile event** - //**see comments below, needs to change** + //**Now using custom event - thanks to:** + //** Yohai Ararat of Toronto ** //*************************************** if(this.options.swipe){ this.$slides.off('swipeleft.zf.orbit swiperight.zf.orbit') .on('swipeleft.zf.orbit', function(e){ e.preventDefault(); - _this.timer.restart(); _this.changeSlide(true); }).on('swiperight.zf.orbit', function(e){ e.preventDefault(); - _this.timer.restart(); _this.changeSlide(false); }); } @@ -4476,19 +4615,11 @@ Foundation.plugin(OffCanvas); if(this.options.navButtons){ var $controls = this.$element.find('.' + this.options.nextClass + ', .' + this.options.prevClass); - if(this.options.accessible){ - $controls.attr('tabindex', 0); + $controls.attr('tabindex', 0) //also need to handle enter/return and spacebar key presses - } - $controls.on('click.zf.orbit touchend.zf.orbit', function(){ - if($(this).hasClass(_this.options.nextClass)){ - _this.changeSlide(true); - _this.timer.restart(); - }else{ - _this.changeSlide(false); - _this.timer.restart(); - } - }); + .on('click.zf.orbit touchend.zf.orbit', function(){ + _this.changeSlide($(this).hasClass(_this.options.nextClass)); + }); } if(this.options.bullets){ @@ -4506,11 +4637,9 @@ Foundation.plugin(OffCanvas); // handle keyboard event with keyboard util Foundation.Keyboard.handleKey(e, _this, { next: function() { - _this.timer.restart(); _this.changeSlide(true); }, previous: function() { - _this.timer.restart(); _this.changeSlide(false); }, handled: function() { // if bullet is focused, make sure focus moves @@ -4568,7 +4697,9 @@ Foundation.plugin(OffCanvas); this.options['animOutTo' + dirOut], function(){ $curSlide.removeAttr('aria-live'); - _this.timer.restart(); + if(_this.options.autoPlay){ + _this.timer.restart(); + } //do stuff? /** * Triggers when the slide has finished animating in. @@ -4631,13 +4762,13 @@ Foundation.plugin(OffCanvas); cssClass: 'accordion-menu', plugin: Foundation._plugins['accordion-menu'] || null } - } + }; // [PH] Media queries var phMedia = { small: '(min-width: 0px)', medium: '(min-width: 640px)' - } + }; /** * Creates a new instance of a responsive menu. @@ -4702,9 +4833,12 @@ Foundation.plugin(OffCanvas); ResponsiveMenu.prototype._events = function() { var _this = this; - $(window).on('resize.zf.ResponsiveMenu', function() { + $(window).on('changed.zf.mediaquery', function() { _this._checkMediaQueries(); }); + // $(window).on('resize.zf.ResponsiveMenu', function() { + // _this._checkMediaQueries(); + // }); }; /** @@ -4714,7 +4848,6 @@ Foundation.plugin(OffCanvas); */ ResponsiveMenu.prototype._checkMediaQueries = function() { var matchedMq, _this = this; - // Iterate through each rule and find the last matching rule $.each(this.rules, function(key) { if (Foundation.MediaQuery.atLeast(key)) { @@ -4739,7 +4872,7 @@ Foundation.plugin(OffCanvas); // Create an instance of the new plugin if (this.currentPlugin) this.currentPlugin.destroy(); this.currentPlugin = new this.rules[matchedMq].plugin(this.$element, {}); - } + }; /** * Destroys the instance of the current plugin on this element, as well as the window resize handler that switches the plugins out. @@ -4748,11 +4881,10 @@ Foundation.plugin(OffCanvas); ResponsiveMenu.prototype.destroy = function() { this.currentPlugin.destroy(); $(window).off('.zf.ResponsiveMenu'); - } - // ResponsiveMenu.prototype.DropdownMenu = Foundation.DropdownMenu; + }; Foundation.plugin(ResponsiveMenu); -}(Foundation, jQuery) +}(Foundation, jQuery); /** * ResponsiveToggle module. @@ -4871,6 +5003,7 @@ Foundation.plugin(ResponsiveToggle); * @requires foundation.util.box * @requires foundation.util.triggers * @requires foundation.util.mediaQuery + * @requires foundation.util.motion if using animations */ !function(Foundation, $) { 'use strict'; @@ -4878,7 +5011,6 @@ Foundation.plugin(ResponsiveToggle); /** * Creates a new instance of Reveal. * @class - * @fires Reveal#init * @param {jQuery} element - jQuery object to use for the modal. * @param {Object} options - optional parameters. */ @@ -4896,26 +5028,87 @@ Foundation.plugin(ResponsiveToggle); 'TAB': 'tab_forward', 'SHIFT_TAB': 'tab_backward' }); - // /** - // * Fires when the plugin has been successfuly initialized. - // * @event Reveal#init - // */ - // this.$element.trigger('init.zf.reveal'); } Reveal.defaults = { + /** + * Motion-UI class to use for animated elements. If none used, defaults to simple show/hide. + * @option + * @example 'slide-in-left' + */ animationIn: '', + /** + * Motion-UI class to use for animated elements. If none used, defaults to simple show/hide. + * @option + * @example 'slide-out-right' + */ animationOut: '', + /** + * Time, in ms, to delay the opening of a modal after a click if no animation used. + * @option + * @example 10 + */ showDelay: 0, + /** + * Time, in ms, to delay the closing of a modal after a click if no animation used. + * @option + * @example 10 + */ hideDelay: 0, + /** + * Allows a click on the body/overlay to close the modal. + * @option + * @example true + */ closeOnClick: true, + /** + * Allows the modal to close if the user presses the `ESCAPE` key. + * @option + * @example true + */ closeOnEsc: true, + /** + * If true, allows multiple modals to be displayed at once. + * @option + * @example false + */ multipleOpened: false, + /** + * Distance, in pixels, the modal should push down from the top of the screen. + * @option + * @example 100 + */ vOffset: 100, + /** + * Distance, in pixels, the modal should push in from the side of the screen. + * @option + * @example 0 + */ hOffset: 0, + /** + * Allows the modal to be fullscreen, completely blocking out the rest of the view. JS checks for this as well. + * @option + * @example false + */ fullScreen: false, + /** + * Percentage of screen height the modal should push up from the bottom of the view. + * @option + * @example 10 + */ btmOffsetPct: 10, - overlay: true + /** + * Allows the modal to generate an overlay div, which will cover the view when modal opens. + * @option + * @example true + */ + overlay: true, + /** + * Allows the modal to remove and reinject markup on close. Should be true if using video elements w/o using provider's api. + * @option + * @example false + */ + resetOnClose: false }; /** @@ -4940,8 +5133,9 @@ Foundation.plugin(ResponsiveToggle); this.$element.attr({'aria-labelledby': anchorId}); } - this.options.fullScreen = this.$element.hasClass('full'); - if(this.options.fullScreen){ + // this.options.fullScreen = this.$element.hasClass('full'); + if(this.options.fullScreen || this.$element.hasClass('full')){ + this.options.fullScreen = true; this.options.overlay = false; } if(this.options.overlay){ @@ -4955,10 +5149,6 @@ Foundation.plugin(ResponsiveToggle); 'data-resize': this.id }); - - this.options.height = this.$element.outerHeight(); - this.options.width = this.$element.outerWidth(); - this._events(); }; @@ -4987,8 +5177,8 @@ Foundation.plugin(ResponsiveToggle); var _this = this; this.$element.on({ - 'open.zf.trigger': this._open.bind(this), - 'close.zf.trigger': this._close.bind(this), + 'open.zf.trigger': this.open.bind(this), + 'close.zf.trigger': this.close.bind(this), 'toggle.zf.trigger': this.toggle.bind(this), 'resizeme.zf.trigger': function(){ if(_this.$element.is(':visible')){ @@ -5002,14 +5192,14 @@ Foundation.plugin(ResponsiveToggle); if(e.which === 13 || e.which === 32){ e.stopPropagation(); e.preventDefault(); - _this._open(); + _this.open(); } }); } if(this.options.closeOnClick && this.options.overlay){ - this.$overlay.off('.zf.reveal').on('click.zf.reveal', this._close.bind(this)); + this.$overlay.off('.zf.reveal').on('click.zf.reveal', this.close.bind(this)); } }; /** @@ -5018,33 +5208,35 @@ Foundation.plugin(ResponsiveToggle); * @private */ Reveal.prototype._setPosition = function(cb){ - var eleDims = Foundation.GetDimensions(this.$element); + var eleDims = Foundation.Box.GetDimensions(this.$element); var elePos = this.options.fullScreen ? 'reveal full' : (eleDims.height >= (0.5 * eleDims.windowDims.height)) ? 'reveal' : 'center'; if(elePos === 'reveal full'){ + console.log('full'); //set to full height/width this.$element - .offset(Foundation.GetOffsets(this.$element, null, elePos, this.options.vOffset)) + .offset(Foundation.Box.GetOffsets(this.$element, null, elePos, this.options.vOffset)) .css({ 'height': eleDims.windowDims.height, 'width': eleDims.windowDims.width }); - }else if(!Foundation.MediaQuery.atLeast('medium') || !Foundation.ImNotTouchingYou(this.$element, null, true, false)){ + }else if(!Foundation.MediaQuery.atLeast('medium') || !Foundation.Box.ImNotTouchingYou(this.$element, null, true, false)){ //if smaller than medium, resize to 100% width minus any custom L/R margin this.$element .css({ 'width': eleDims.windowDims.width - (this.options.hOffset * 2) }) - .offset(Foundation.GetOffsets(this.$element, null, 'center', this.options.vOffset, this.options.hOffset)); + .offset(Foundation.Box.GetOffsets(this.$element, null, 'center', this.options.vOffset, this.options.hOffset)); //flag a boolean so we can reset the size after the element is closed. this.changedSize = true; }else{ this.$element - .offset(Foundation.GetOffsets(this.$element, null, elePos, this.options.vOffset)) - //the max height based on a percentage of vertical offset plus vertical offset .css({ - 'max-height': eleDims.windowDims.height - (this.options.vOffset * (this.options.btmOffsetPct / 100 + 1)) - }); + 'max-height': eleDims.windowDims.height - (this.options.vOffset * (this.options.btmOffsetPct / 100 + 1)), + 'width': '' + }) + .offset(Foundation.Box.GetOffsets(this.$element, null, elePos, this.options.vOffset)); + //the max height based on a percentage of vertical offset plus vertical offset } cb(); @@ -5052,10 +5244,11 @@ Foundation.plugin(ResponsiveToggle); /** * Opens the modal controlled by `this.$anchor`, and closes all others by default. + * @function * @fires Reveal#closeAll * @fires Reveal#open */ - Reveal.prototype._open = function(){ + Reveal.prototype.open = function(){ var _this = this; this.isActive = true; //make element invisible, but remove display: none so we can get size and positioning @@ -5111,7 +5304,7 @@ Foundation.plugin(ResponsiveToggle); .attr({'aria-hidden': (this.options.overlay || this.options.fullScreen) ? true : false}); setTimeout(function(){ _this._extraHandlers(); - Foundation.reflow(); + // Foundation.reflow(); }, 0); }; @@ -5126,9 +5319,10 @@ Foundation.plugin(ResponsiveToggle); return true; }); - if(!this.options.overlay && this.options.closeOnClick){ + if(!this.options.overlay && this.options.closeOnClick && !this.options.fullScreen){ $('body').on('click.zf.reveal', function(e){ - _this._close(); + // if() + _this.close(); }); } if(this.options.closeOnEsc){ @@ -5139,7 +5333,7 @@ Foundation.plugin(ResponsiveToggle); Foundation.Keyboard.handleKey(e, _this, { close: function() { if (this.options.closeOnEsc) { - this._close(); + this.close(); } } }); @@ -5148,6 +5342,7 @@ Foundation.plugin(ResponsiveToggle); // lock focus within modal while tabbing this.$element.on('keydown.zf.reveal', function(e) { + var $target = $(this); // handle keyboard event with keyboard util Foundation.Keyboard.handleKey(e, _this, { tab_forward: function() { @@ -5163,11 +5358,13 @@ Foundation.plugin(ResponsiveToggle); } }, open: function() { - this._open(); + if ($target.is(visibleFocusableElements)) { // dont't trigger if acual element has focus (i.e. inputs, links, ...) + this.open(); + } }, close: function() { if (this.options.closeOnEsc) { - this._close(); + this.close(); } } }); @@ -5179,10 +5376,11 @@ Foundation.plugin(ResponsiveToggle); }; /** - * Closes the modal + * Closes the modal. + * @function * @fires Reveal#closed */ - Reveal.prototype._close = function(){ + Reveal.prototype.close = function(){ if(!this.isActive || !this.$element.is(':visible')){ return false; } @@ -5215,13 +5413,21 @@ Foundation.plugin(ResponsiveToggle); //if the modal changed size, reset it if(this.changedSize){ this.$element.css({ - 'height': this.options.height, - 'width': this.options.width + 'height': '', + 'width': '' }); } $('body').removeClass('is-reveal-open').attr({'aria-hidden': false, 'tabindex': ''}); + /** + * Resets the modal content + * This prevents a running video to keep going in the background + */ + if(this.options.resetOnClose) { + this.$element.html(this.$element.html()); + } + this.isActive = false; this.$element.attr({'aria-hidden': true}) /** @@ -5230,34 +5436,31 @@ Foundation.plugin(ResponsiveToggle); */ .trigger('closed.zf.reveal'); }; - + /** + * Toggles the open/closed state of a modal. + * @function + */ Reveal.prototype.toggle = function(){ if(this.isActive){ - this._close(); + this.close(); }else{ - this._open(); + this.open(); } }; /** * Destroys an instance of a modal. - * @fires Reveal#destroyed + * @function */ Reveal.prototype.destroy = function() { if(this.options.overlay){ - this.$overlay.hide().off(); + this.$overlay.hide().off().remove(); } this.$element.hide(); this.$anchor.off(); Foundation.unregisterPlugin(this); - - /** - * Fires when the plugin has been destroyed. - * @event Reveal#destroyed - */ - // this.$element.trigger('destroyed.zf.reveal'); - } + }; Foundation.plugin(Reveal); @@ -5277,7 +5480,7 @@ Foundation.plugin(ResponsiveToggle); * @requires foundation.util.motion * @requires foundation.util.triggers * @requires foundation.util.keyboard - * @requires foundation.util.addtouch + * @requires foundation.util.touch */ !function($, Foundation){ 'use strict'; @@ -5316,21 +5519,96 @@ Foundation.plugin(ResponsiveToggle); } Slider.defaults = { + /** + * Minimum value for the slider scale. + * @option + * @example 0 + */ start: 0, + /** + * Maximum value for the slider scale. + * @option + * @example 100 + */ end: 100, + /** + * Minimum value change per change event. Not Currently Implemented! + + */ step: 1, + /** + * Value at which the handle/input *(left handle/first input)* should be set to on initialization. + * @option + * @example 0 + */ initialStart: 0, + /** + * Value at which the right handle/second input should be set to on initialization. + * @option + * @example 100 + */ initialEnd: 100, + /** + * Allows the input to be located outside the container and visible. Set to by the JS + * @option + * @example false + */ binding: false, + /** + * Allows the user to click/tap on the slider bar to select a value. + * @option + * @example true + */ clickSelect: true, + /** + * Set to true and use the `vertical` class to change alignment to vertical. + * @option + * @example false + */ vertical: false, + /** + * Allows the user to drag the slider handle(s) to select a value. + * @option + * @example true + */ draggable: true, + /** + * Disables the slider and prevents event listeners from being applied. Double checked by JS with `disabledClass`. + * @option + * @example false + */ disabled: false, + /** + * Allows the use of two handles. Double checked by the JS. Changes some logic handling. + * @option + * @example false + */ doubleSided: false, - steps: 100, + /** + * Potential future feature. + */ + // steps: 100, + /** + * Number of decimal places the plugin should go to for floating point precision. + * @option + * @example 2 + */ decimal: 2, - dragDelay: 0, + /** + * Time delay for dragged elements. + */ + // dragDelay: 0, + /** + * Time, in ms, to animate the movement of a slider handle if user clicks/taps on the bar. Needs to be manually set if updating the transition time in the Sass settings. + * @option + * @example 200 + */ moveTime: 200,//update this if changing the transition time in the sass + /** + * Class applied to disabled sliders. + * @option + * @example 'disabled' + */ disabledClass: 'disabled' }; /** @@ -5341,7 +5619,7 @@ Foundation.plugin(ResponsiveToggle); Slider.prototype._init = function(){ this.inputs = this.$element.find('input'); this.handles = this.$element.find('[data-slider-handle]'); - this.options.vertical = this.$element.hasClass('vertical'); + this.$handle = this.handles.eq(0); this.$input = this.inputs.length ? this.inputs.eq(0) : $('#' + this.$handle.attr('aria-controls')); this.$fill = this.$element.find('[data-slider-fill]').css(this.options.vertical ? 'height' : 'width', 0); @@ -5393,7 +5671,6 @@ Foundation.plugin(ResponsiveToggle); */ Slider.prototype._setHandlePos = function($hndl, location, noInvert, cb){ //might need to alter that slightly for bars that will have odd number selections. - // console.log(str, cb); location = parseFloat(location);//on input change events, convert string to number...grumble. // prevent slider from running out of bounds if(location < this.options.start){ location = this.options.start; } @@ -5453,8 +5730,8 @@ Foundation.plugin(ResponsiveToggle); */ _this.$element.trigger('moved.zf.slider', [$hndl]); }); - - Foundation.Move(_this.options.moveTime, $hndl, function(){ + var moveTime = _this.$element.data('dragging') ? 1000/60 : _this.options.moveTime; + /*var move = new */Foundation.Move(moveTime, $hndl, function(){ $hndl.css(lOrT, movement + '%'); if(!_this.options.doubleSided){ _this.$fill.css(hOrW, pctOfBar * 100 + '%'); @@ -5462,6 +5739,7 @@ Foundation.plugin(ResponsiveToggle); _this.$fill.css(css); } }); + // move.do(); }; /** * Sets the initial attribute for the slider element. @@ -5558,7 +5836,7 @@ Foundation.plugin(ResponsiveToggle); }); if(this.options.clickSelect){ - this.$element.off('click.zf.slider').on('click.zf.slider', function(e){ + this.$element.off('mousedown.zf.slider').on('mousedown.zf.slider', function(e){ if(_this.$element.data('dragging')){ return false; } _this.animComplete = false; if(_this.options.doubleSided){ @@ -5581,16 +5859,16 @@ Foundation.plugin(ResponsiveToggle); $handle.addClass('is-dragging'); _this.$fill.addClass('is-dragging');// - _this.$element.attr('data-dragging', true); + _this.$element.data('dragging', true); _this.animComplete = false; curHandle = $(e.currentTarget); $body.on('mousemove.zf.slider', function(e){ e.preventDefault(); - timer = setTimeout(function(){ + // timer = setTimeout(function(){ _this._handleEvent(e, curHandle); - }, _this.options.dragDelay); + // }, _this.options.dragDelay); }).on('mouseup.zf.slider', function(e){ clearTimeout(timer); @@ -5681,32 +5959,6 @@ Foundation.plugin(ResponsiveToggle); // } // cb(); // }; -!function(){ - $.fn.addTouch = function(){ - this.each(function(i,el){ - $(el).bind('touchstart touchmove touchend touchcancel',function(){ - //we pass the original event object because the jQuery event - //object is normalized to w3c specs and does not provide the TouchList - handleTouch(event); - }); - }); - - var handleTouch = function(event){ - var touches = event.changedTouches, - first = touches[0], - eventTypes = { - touchstart: 'mousedown', - touchmove: 'mousemove', - touchend: 'mouseup' - }, - type = eventTypes[event.type]; - - var simulatedEvent = document.createEvent('MouseEvent'); - simulatedEvent.initMouseEvent(type, true, true, window, 1, first.screenX, first.screenY, first.clientX, first.clientY, false, false, false, false, 0/*left*/, null); - first.target.dispatchEvent(simulatedEvent); - }; - }; -}(); /** * Sticky module. @@ -5732,17 +5984,71 @@ Foundation.plugin(ResponsiveToggle); Foundation.registerPlugin(this); } Sticky.defaults = { - stickToWindow: false, + /** + * Customizable container template. Add your own classes for styling and sizing. + * @option + * @example '
    ' + */ container: '
    ', + /** + * Location in the view the element sticks to. + * @option + * @example 'top' + */ stickTo: 'top', + /** + * If anchored to a single element, the id of that element. + * @option + * @example 'exampleId' + */ anchor: '', + /** + * If using more than one element as anchor points, the id of the top anchor. + * @option + * @example 'exampleId:top' + */ topAnchor: '', + /** + * If using more than one element as anchor points, the id of the bottom anchor. + * @option + * @example 'exampleId:bottom' + */ btmAnchor: '', + /** + * Margin, in `em`'s to apply to the top of the element when it becomes sticky. + * @option + * @example 1 + */ marginTop: 1, + /** + * Margin, in `em`'s to apply to the bottom of the element when it becomes sticky. + * @option + * @example 1 + */ marginBottom: 1, + /** + * Breakpoint string that is the minimum screen size an element should become sticky. + * @option + * @example 'medium' + */ stickyOn: 'medium', + /** + * Class applied to sticky element, and removed on destruction. Foundation defaults to `sticky`. + * @option + * @example 'sticky' + */ stickyClass: 'sticky', + /** + * Class applied to sticky container. Foundation defaults to `sticky-container`. + * @option + * @example 'sticky-container' + */ containerClass: 'sticky-container', + /** + * Number of scroll events between the plugin's recalculating sticky points. Setting it to `0` will cause it to recalc every scroll event, setting it to `-1` will prevent recalc on scroll. + * @option + * @example 50 + */ checkEvery: 50 }; @@ -5769,13 +6075,13 @@ Foundation.plugin(ResponsiveToggle); this.scrollCount = this.options.checkEvery; this.isStuck = false; - // console.log(this.options.anchor); + // console.log(this.options.anchor, this.options.topAnchor); if(this.options.topAnchor !== ''){ this._parsePoints(); // console.log(this.points[0]); }else{ + this.$anchor = this.options.anchor ? $('#' + this.options.anchor) : $(document.body); } - this.$anchor = this.options.anchor ? $(this.options.anchor) : $(document.body); this._setSizes(function(){ @@ -5783,6 +6089,11 @@ Foundation.plugin(ResponsiveToggle); }); this._events(id.split('-').reverse().join('-')); }; + /** + * If using multiple elements as anchors, calculates the top and bottom pixel values the sticky thing should stick and unstick on. + * @function + * @private + */ Sticky.prototype._parsePoints = function(){ var top = this.options.topAnchor, btm = this.options.btmAnchor, @@ -5791,7 +6102,7 @@ Foundation.plugin(ResponsiveToggle); for(var i = 0, len = pts.length; i < len && pts[i]; i++){ var pt; if(typeof pts[i] === 'number'){ - pt = pts[i] + pt = pts[i]; }else{ var place = pts[i].split(':'), anchor = $('#' + place[0]); @@ -5805,6 +6116,7 @@ Foundation.plugin(ResponsiveToggle); } // console.log(breaks); this.points = breaks; + // console.log(this.points); return; }; @@ -5829,15 +6141,15 @@ Foundation.plugin(ResponsiveToggle); $(window).off(scrollListener) .on(scrollListener, function(e){ - if(_this.scrollCount){ - _this.scrollCount--; - _this._calc(false, e.currentTarget.scrollY); - }else{ - _this.scrollCount = _this.options.checkEvery; - _this._setSizes(function(){ - _this._calc(false, e.currentTarget.scrollY); - }) - } + if(_this.scrollCount === 0){ + _this.scrollCount = _this.options.checkEvery; + _this._setSizes(function(){ + _this._calc(false, e.currentTarget.scrollY); + }); + }else{ + _this.scrollCount--; + _this._calc(false, e.currentTarget.scrollY); + } }); } @@ -5912,6 +6224,8 @@ Foundation.plugin(ResponsiveToggle); * Causes the $element to become stuck. * Adds `position: fixed;`, and helper classes. * @fires Sticky#stuckto + * @function + * @private */ Sticky.prototype._setSticky = function(){ var stickTo = this.options.stickTo, @@ -5922,6 +6236,7 @@ Foundation.plugin(ResponsiveToggle); css[mrgn] = this.options[mrgn] + 'em'; css[stickTo] = 0; css[notStuckTo] = 'auto'; + css['left'] = this.$container.offset().left + parseInt(window.getComputedStyle(this.$container[0])["padding-left"], 10); this.isStuck = true; this.$element.removeClass('is-anchored is-at-' + notStuckTo) .addClass('is-stuck is-at-' + stickTo) @@ -5940,6 +6255,7 @@ Foundation.plugin(ResponsiveToggle); * Adds other helper classes. * @param {Boolean} isTop - tells the function if the $element should anchor to the top or bottom of its $anchor element. * @fires Sticky#unstuckfrom + * @private */ Sticky.prototype._removeSticky = function(isTop){ var stickTo = this.options.stickTo, @@ -5956,6 +6272,7 @@ Foundation.plugin(ResponsiveToggle); css[stickTo] = 0; css[notStuckTo] = anchorPt; } + css['left'] = ''; this.isStuck = false; this.$element.removeClass('is-stuck is-at-' + stickTo) .addClass('is-anchored is-at-' + (isTop ? 'top' : 'bottom')) @@ -5972,13 +6289,18 @@ Foundation.plugin(ResponsiveToggle); * Sets the $element and $container sizes for plugin. * Calls `_setBreakPoints`. * @param {Function} cb - optional callback function to fire on completion of `_setBreakPoints`. + * @private */ Sticky.prototype._setSizes = function(cb){ + this.canStick = Foundation.MediaQuery.atLeast(this.options.stickyOn); + if(!this.canStick){ cb(); } var _this = this, newElemWidth = this.$container[0].getBoundingClientRect().width, - pdng = parseInt(window.getComputedStyle(this.$container[0])['padding-right'], 10); + comp = window.getComputedStyle(this.$container[0]), + pdng = parseInt(comp['padding-right'], 10); - if(this.$anchor.length){ + // console.log(this.$anchor); + if(this.$anchor && this.$anchor.length){ this.anchorHeight = this.$anchor[0].getBoundingClientRect().height; }else{ this._parsePoints(); @@ -5994,7 +6316,10 @@ Foundation.plugin(ResponsiveToggle); height: newContainerHeight }); this.elemHeight = newContainerHeight; - this.canStick = Foundation.MediaQuery.atLeast(this.options.stickyOn); + + if (this.isStuck) { + this.$element.css({"left":this.$container.offset().left + parseInt(comp['padding-left'], 10)}); + } this._setBreakPoints(newContainerHeight, function(){ if(cb){ cb(); } @@ -6038,7 +6363,9 @@ Foundation.plugin(ResponsiveToggle); /** * Destroys the current sticky element. + * Resets the element to the top position first. * Removes event listeners, JS-added css properties and classes, and unwraps the $element if the JS added the $container. + * @function */ Sticky.prototype.destroy = function(){ this._removeSticky(true); @@ -6079,6 +6406,7 @@ Foundation.plugin(ResponsiveToggle); * Tabs module. * @module foundation.tabs * @requires foundation.util.keyboard + * @requires foundation.util.timerAndImageLoader if tabs contain images */ !function($, Foundation) { 'use strict'; @@ -6114,13 +6442,44 @@ Foundation.plugin(ResponsiveToggle); } Tabs.defaults = { - deepLinking: false, - scrollToContent: false, + // /** + // * Allows the JS to alter the url of the window. Not yet implemented. + // */ + // deepLinking: false, + // /** + // * If deepLinking is enabled, allows the window to scroll to content if window is loaded with a hash including a tab-pane id + // */ + // scrollToContent: false, + /** + * Allows the window to scroll to content of active pane on load if set to true. + * @option + * @example false + */ autoFocus: false, + /** + * Allows keyboard input to 'wrap' around the tab links. + * @option + * @example true + */ wrapOnKeys: true, - matchHeight: true, + /** + * Allows the tab content panes to match heights if set to true. + * @option + * @example false + */ + matchHeight: false, + /** + * Class applied to `li`'s in tab link list. + * @option + * @example 'tabs-title' + */ linkClass: 'tabs-title', - contentClass: 'tabs-content', + // contentClass: 'tabs-content', + /** + * Class applied to the content containers. + * @option + * @example 'tabs-panel' + */ panelClass: 'tabs-panel' }; @@ -6164,9 +6523,9 @@ Foundation.plugin(ResponsiveToggle); if(this.options.matchHeight){ var $images = this.$tabContent.find('img'); if($images.length){ - Foundation.onImagesLoaded($images, this.setHeight.bind(this)); + Foundation.onImagesLoaded($images, this._setHeight.bind(this)); }else{ - this.setHeight(); + this._setHeight(); } } this._events(); @@ -6179,7 +6538,7 @@ Foundation.plugin(ResponsiveToggle); this._addKeyHandler(); this._addClickHandler(); if(this.options.matchHeight){ - $(window).on('changed.zf.mediaquery', this.setHeight.bind(this)); + $(window).on('changed.zf.mediaquery', this._setHeight.bind(this)); } }; @@ -6239,24 +6598,20 @@ Foundation.plugin(ResponsiveToggle); }, previous: function() { $prevElement.find('[role="tab"]').focus(); - _this._handleTabChange($prevElement) + _this._handleTabChange($prevElement); }, next: function() { $nextElement.find('[role="tab"]').focus(); - _this._handleTabChange($nextElement) + _this._handleTabChange($nextElement); } }); }); }; - function checkClass($elem){ - return $elem.hasClass('is-active'); - } /** * Opens the tab `$targetContent` defined by `$target`. * @param {jQuery} $target - Tab to open. - * @param {jQuery} $targetContent - Content pane to open. * @fires Tabs#change * @function */ @@ -6284,16 +6639,37 @@ Foundation.plugin(ResponsiveToggle); * @event Tabs#change */ this.$element.trigger('change.zf.tabs', [$target]); - // console.log(this.$element.find('.tabs-title, .tabs-panel')); // Foundation.reflow(this.$element, 'tabs'); }; + + /** + * Public method for selecting a content pane to display. + * @param {jQuery | String} elem - jQuery object or string of the id of the pane to display. + * @function + */ + Tabs.prototype.selectTab = function(elem){ + var idStr; + if(typeof elem === 'object'){ + idStr = elem[0].id; + }else{ + idStr = elem; + } + + if(idStr.indexOf('#') < 0){ + idStr = '#' + idStr; + } + var $target = this.$tabTitles.find('[href="' + idStr + '"]').parent('.' + this.options.linkClass); + + this._handleTabChange($target); + }; /** * Sets the height of each panel to the height of the tallest panel. * If enabled in options, gets called on media query change. * If loading content via external source, can be called directly or with _reflow. * @function + * @private */ - Tabs.prototype.setHeight = function(){ + Tabs.prototype._setHeight = function(){ var max = 0; this.$tabContent.find('.' + this.options.panelClass) .css('height', '') @@ -6333,9 +6709,13 @@ Foundation.plugin(ResponsiveToggle); // * @event Tabs#destroyed // */ // this.$element.trigger('destroyed.zf.tabs'); - } + }; Foundation.plugin(Tabs); + + function checkClass($elem){ + return $elem.hasClass('is-active'); + } }(jQuery, window.Foundation); /** @@ -6372,7 +6752,7 @@ Foundation.plugin(ResponsiveToggle); Toggler.defaults = { animate: false - } + }; /** * Initializes the Toggler plugin by parsing the toggle class from data-toggler, or animation classes from data-animate. @@ -6380,16 +6760,17 @@ Foundation.plugin(ResponsiveToggle); * @private */ Toggler.prototype._init = function() { + var input; // Parse animation classes if they were set if (this.options.animate) { - var input = this.options.animate.split(' '); + input = this.options.animate.split(' '); this.animationIn = input[0]; this.animationOut = input[1] || null; } // Otherwise, parse toggle class else { - var input = this.$element.data('toggler'); + input = this.$element.data('toggler'); // Allow for a . at the beginning of the string if (input[0] === '.') { @@ -6460,7 +6841,7 @@ Foundation.plugin(ResponsiveToggle); } _this._updateARIA(); - } + }; Toggler.prototype._toggleAnimate = function() { var _this = this; @@ -6477,7 +6858,7 @@ Foundation.plugin(ResponsiveToggle); _this._updateARIA(); }); } - } + }; Toggler.prototype._updateARIA = function() { if (this.$element.is(':hidden')) { @@ -6486,7 +6867,7 @@ Foundation.plugin(ResponsiveToggle); else { this.$element.attr('aria-expanded', 'true'); } - } + }; /** * Destroys the instance of Toggler on the element. @@ -6550,12 +6931,11 @@ Foundation.plugin(ResponsiveToggle); templateClasses: '', tooltipClass: 'tooltip', triggerClass: 'has-tip', - showOn: 'all', + showOn: 'small', template: '', tipText: '', touchCloseText: 'Tap to close.', clickOpen: true, - appendTo: 'body', positionClass: '', vOffset: 10, hOffset: 12 @@ -6569,10 +6949,10 @@ Foundation.plugin(ResponsiveToggle); var elemId = this.$element.attr('aria-describedby') || Foundation.GetYoDigits(6, 'tooltip'); this.options.positionClass = this.getPositionClass(this.$element); - this.options.tipText = this.$element.attr('title'); + this.options.tipText = this.options.tipText || this.$element.attr('title'); this.template = this.options.template ? $(this.options.template) : this.buildTemplate(elemId); - this.template.appendTo(this.options.appendTo) + this.template.appendTo(document.body) .text(this.options.tipText) .hide(); @@ -6667,15 +7047,15 @@ Foundation.plugin(ResponsiveToggle); */ Tooltip.prototype.setPosition = function(){ var position = this.getPositionClass(this.template), - $tipDims = Foundation.GetDimensions(this.template), - $anchorDims = Foundation.GetDimensions(this.$element), + $tipDims = Foundation.Box.GetDimensions(this.template), + $anchorDims = Foundation.Box.GetDimensions(this.$element), direction = (position === 'left' ? 'left' : ((position === 'right') ? 'left' : 'top')), param = (direction === 'top') ? 'height' : 'width', offset = (param === 'height') ? this.options.vOffset : this.options.hOffset, _this = this; - if(($tipDims.width >= $tipDims.windowDims.width) || (!this.counter && !Foundation.ImNotTouchingYou(this.template))){ - this.template.offset(Foundation.GetOffsets(this.template, this.$element, 'center bottom', this.options.vOffset, this.options.hOffset, true)).css({ + if(($tipDims.width >= $tipDims.windowDims.width) || (!this.counter && !Foundation.Box.ImNotTouchingYou(this.template))){ + this.template.offset(Foundation.Box.GetOffsets(this.template, this.$element, 'center bottom', this.options.vOffset, this.options.hOffset, true)).css({ // this.$element.offset(Foundation.GetOffsets(this.template, this.$element, 'center bottom', this.options.vOffset, this.options.hOffset, true)).css({ 'width': $anchorDims.windowDims.width - (this.options.hOffset * 2), 'height': 'auto' @@ -6683,9 +7063,9 @@ Foundation.plugin(ResponsiveToggle); return false; } - this.template.offset(Foundation.GetOffsets(this.template, this.$element,'center ' + (position || 'bottom'), this.options.vOffset, this.options.hOffset)); + this.template.offset(Foundation.Box.GetOffsets(this.template, this.$element,'center ' + (position || 'bottom'), this.options.vOffset, this.options.hOffset)); - while(!Foundation.ImNotTouchingYou(this.template) && this.counter){ + while(!Foundation.Box.ImNotTouchingYou(this.template) && this.counter){ this.reposition(position); this.setPosition(); } @@ -6758,7 +7138,7 @@ Foundation.plugin(ResponsiveToggle); * fires when the tooltip is hidden * @event Tooltip#hide */ - this.$element.trigger('hide.zf.tooltip') + this.$element.trigger('hide.zf.tooltip'); }; /** @@ -6835,7 +7215,9 @@ Foundation.plugin(ResponsiveToggle); }) .on('resizeme.zf.trigger', function(){ - _this.setPosition(); + if(_this.isActive){ + _this.setPosition(); + } }); }; /** @@ -6852,7 +7234,7 @@ Foundation.plugin(ResponsiveToggle); Tooltip.prototype.destroy = function(){ this.$element.attr('title', this.template.text()) .off('.zf.trigger .zf.tootip') - .removeClass('has-tip') + // .removeClass('has-tip') .removeAttr('aria-describedby') .removeAttr('data-yeti-box') .removeAttr('data-toggle') @@ -6869,56 +7251,6 @@ Foundation.plugin(ResponsiveToggle); Foundation.plugin(Tooltip); }(jQuery, window.document, window.Foundation); -!function($, Foundation){ - - /****************************************************************** - /** A very simple timer for animated elements within Foundation. ** - /** Allows your script to pause and restart later with fn call. ** - /** Feel free to add features, comments, or use case examples. ** - /*****************************************************************/ - - function Timer(elem, options, cb){ - var _this = this, - duration = options.duration,//options is an object for easily adding features later. - nameSpace = Object.keys(elem.data())[0] || 'timer', - remain = -1, - start, - timer; - - this.restart = function(){ - remain = -1; - clearTimeout(timer); - this.start(); - }; - - this.start = function(){ - // if(!elem.data('paused')){ return false; }//maybe implement this sanity check if used for other things. - remain = remain <= 0 ? duration : remain; - elem.data('paused', false); - start = Date.now(); - timer = setTimeout(function(){ - if(options.infinite){ - _this.restart();//rerun the timer. - } - cb(); - }, remain); - elem.trigger('timerstart.zf.' + nameSpace); - }; - - this.pause = function(){ - //if(elem.data('paused')){ return false; }//maybe implement this sanity check if used for other things. - clearTimeout(timer); - elem.data('paused', true); - var end = Date.now(); - remain = remain - (end - start); - elem.trigger('timerpaused.zf.' + nameSpace); - }; - } - - Foundation.Timer = Timer; - -}(jQuery, window.Foundation); - ;(function(root, factory) { if (typeof define === 'function' && define.amd) { define(['jquery'], factory); diff --git a/dist/foundation.min.css b/dist/foundation.min.css index 61b7c3a5e..9bf85a679 100644 --- a/dist/foundation.min.css +++ b/dist/foundation.min.css @@ -1 +1 @@ -@charset "UTF-8";/*! normalize.css v3.0.2 | MIT License | git.io/normalize */button,img,legend{border:0}[data-joyride],[hidden],template{display:none}.dropdown-pane,.invisible{visibility:hidden}html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,optgroup,strong{font-weight:700}dfn{font-style:italic}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}.button,img{vertical-align:middle}sup{top:-.5em}sub{bottom:-.25em}.orbit-caption,.sticky.is-anchored.is-at-bottom,.sticky.is-stuck.is-at-bottom{bottom:0}img{max-width:100%;height:auto;-ms-interpolation-mode:bicubic;display:inline-block}svg:not(:root){overflow:hidden}figure{margin:1em 40px}pre,textarea{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;box-sizing:border-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}legend{padding:0}.close-button{position:absolute;color:#8a8a8a;right:1rem;top:.5rem;font-size:2em;line-height:1;cursor:pointer}.small-pull-1,.small-pull-10,.small-pull-11,.small-pull-2,.small-pull-3,.small-pull-4,.small-pull-5,.small-pull-6,.small-pull-7,.small-pull-8,.small-pull-9,.small-push-1,.small-push-10,.small-push-11,.small-push-2,.small-push-3,.small-push-4,.small-push-5,.small-push-7,.small-push-8,.small-push-9{position:relative}a,b,em,i,small,strong{line-height:inherit}dl,ol,p,ul{line-height:1.6}[data-whatinput=mouse] .close-button{outline:0}.close-button:focus,.close-button:hover{color:#0a0a0a}body.is-reveal-open{overflow:hidden}.reveal.joyride,.tooltip.joyride{background-color:#0a0a0a;color:#fefefe;font-size:100%;min-width:20rem;padding:.75rem}.row.collapse>.column,.row.collapse>.columns,.row.small-collapse>.column,.row.small-collapse>.columns{padding-left:0;padding-right:0}.reveal.joyride .close,.tooltip.joyride .close{float:right}.reveal.joyride .joyride-buttons,.tooltip.joyride .joyride-buttons{text-align:center}.foundation-mq{font-family:"small=0em&medium=32em&large=64em&xlarge=75em&xxlarge=90em"}body,h1,h2,h3,h4,h5,h6{font-family:"Helvetica Neue",Helvetica,Roboto,Arial,sans-serif;font-weight:400}body,html{font-size:100%;box-sizing:border-box}*,:after,:before{box-sizing:inherit}body{padding:0;margin:0;line-height:1.5;color:#0a0a0a;background:#fefefe;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}select{width:100%}#map_canvas embed,#map_canvas img,#map_canvas object,.map_canvas embed,.map_canvas img,.map_canvas object,.mqa-display embed,.mqa-display img,.mqa-display object{max-width:none!important}button{-webkit-appearance:none;-moz-appearance:none;background:0 0;padding:0;border-radius:0;line-height:1}.row{max-width:75rem;margin-left:auto;margin-right:auto}.row::after,.row::before{content:' ';display:table}.row::after{clear:both}.row .row{margin-left:-.9375rem;margin-right:-.9375rem}.row .row.collapse{margin-left:0;margin-right:0}.row.small-uncollapse>.column,.row.small-uncollapse>.columns{padding-left:30px;padding-right:30px}@media screen and (min-width:32em){.row.medium-collapse>.column,.row.medium-collapse>.columns{padding-left:0;padding-right:0}.row.medium-uncollapse>.column,.row.medium-uncollapse>.columns{padding-left:30px;padding-right:30px}}@media screen and (min-width:64em){.row.large-collapse>.column,.row.large-collapse>.columns{padding-left:0;padding-right:0}.row.large-uncollapse>.column,.row.large-uncollapse>.columns{padding-left:30px;padding-right:30px}}.row.expanded{max-width:none}.column,.columns{width:100%;float:left;padding-left:.9375rem;padding-right:.9375rem}.column:last-child,.columns:last-child{float:right}.column.end,.end.columns{float:left}.column.row,.row.columns{float:none}.small-1{width:8.33333%}.small-push-1{left:8.33333%}.small-pull-1{left:-8.33333%}.small-offset-0{margin-left:0}.small-2{width:16.66667%}.small-push-2{left:16.66667%}.small-pull-2{left:-16.66667%}.small-offset-1{margin-left:8.33333%}.small-3{width:25%}.small-push-3{left:25%}.small-pull-3{left:-25%}.small-offset-2{margin-left:16.66667%}.small-4{width:33.33333%}.small-push-4{left:33.33333%}.small-pull-4{left:-33.33333%}.small-offset-3{margin-left:25%}.small-5{width:41.66667%}.small-push-5{left:41.66667%}.small-pull-5{left:-41.66667%}.small-offset-4{margin-left:33.33333%}.small-6{width:50%}.small-push-6{position:relative;left:50%}.small-pull-6{left:-50%}.small-offset-5{margin-left:41.66667%}.small-7{width:58.33333%}.small-push-7{left:58.33333%}.small-pull-7{left:-58.33333%}.small-offset-6{margin-left:50%}.small-8{width:66.66667%}.small-push-8{left:66.66667%}.small-pull-8{left:-66.66667%}.small-offset-7{margin-left:58.33333%}.small-9{width:75%}.small-push-9{left:75%}.small-pull-9{left:-75%}.small-offset-8{margin-left:66.66667%}.small-10{width:83.33333%}.small-push-10{left:83.33333%}.small-pull-10{left:-83.33333%}.small-offset-9{margin-left:75%}.small-11{width:91.66667%}.small-push-11{left:91.66667%}.small-pull-11{left:-91.66667%}.small-offset-10{margin-left:83.33333%}.small-12{width:100%}.small-offset-11{margin-left:91.66667%}.small-up-1 .column,.small-up-1 .columns{width:100%;float:left}.small-up-1 .column:nth-of-type(1n),.small-up-1 .columns:nth-of-type(1n){clear:none}.small-up-1 .column:nth-of-type(1n+1),.small-up-1 .columns:nth-of-type(1n+1){clear:both}.small-up-2 .column,.small-up-2 .columns{width:50%;float:left}.small-up-2 .column:nth-of-type(1n),.small-up-2 .columns:nth-of-type(1n){clear:none}.small-up-2 .column:nth-of-type(2n+1),.small-up-2 .columns:nth-of-type(2n+1){clear:both}.small-up-3 .column,.small-up-3 .columns{width:33.33333%;float:left}.small-up-3 .column:nth-of-type(1n),.small-up-3 .columns:nth-of-type(1n){clear:none}.small-up-3 .column:nth-of-type(3n+1),.small-up-3 .columns:nth-of-type(3n+1){clear:both}.small-up-4 .column,.small-up-4 .columns{width:25%;float:left}.small-up-4 .column:nth-of-type(1n),.small-up-4 .columns:nth-of-type(1n){clear:none}.small-up-4 .column:nth-of-type(4n+1),.small-up-4 .columns:nth-of-type(4n+1){clear:both}.small-up-5 .column,.small-up-5 .columns{width:20%;float:left}.small-up-5 .column:nth-of-type(1n),.small-up-5 .columns:nth-of-type(1n){clear:none}.small-up-5 .column:nth-of-type(5n+1),.small-up-5 .columns:nth-of-type(5n+1){clear:both}.small-up-6 .column,.small-up-6 .columns{width:16.66667%;float:left}.small-up-6 .column:nth-of-type(1n),.small-up-6 .columns:nth-of-type(1n){clear:none}.small-up-6 .column:nth-of-type(6n+1),.small-up-6 .columns:nth-of-type(6n+1){clear:both}.column.small-centered,.small-centered.columns{float:none;margin-left:auto;margin-right:auto}.small-pull-0,.small-push-0,.small-uncenter{position:static;margin-left:0;margin-right:0}@media screen and (min-width:32em){.medium-pull-1,.medium-pull-10,.medium-pull-11,.medium-pull-2,.medium-pull-3,.medium-pull-4,.medium-pull-5,.medium-pull-6,.medium-pull-7,.medium-pull-8,.medium-pull-9,.medium-push-1,.medium-push-10,.medium-push-11,.medium-push-2,.medium-push-3,.medium-push-4,.medium-push-5,.medium-push-7,.medium-push-8,.medium-push-9{position:relative}.medium-1{width:8.33333%}.medium-push-1{left:8.33333%}.medium-pull-1{left:-8.33333%}.medium-offset-0{margin-left:0}.medium-2{width:16.66667%}.medium-push-2{left:16.66667%}.medium-pull-2{left:-16.66667%}.medium-offset-1{margin-left:8.33333%}.medium-3{width:25%}.medium-push-3{left:25%}.medium-pull-3{left:-25%}.medium-offset-2{margin-left:16.66667%}.medium-4{width:33.33333%}.medium-push-4{left:33.33333%}.medium-pull-4{left:-33.33333%}.medium-offset-3{margin-left:25%}.medium-5{width:41.66667%}.medium-push-5{left:41.66667%}.medium-pull-5{left:-41.66667%}.medium-offset-4{margin-left:33.33333%}.medium-6{width:50%}.medium-push-6{position:relative;left:50%}.medium-pull-6{left:-50%}.medium-offset-5{margin-left:41.66667%}.medium-7{width:58.33333%}.medium-push-7{left:58.33333%}.medium-pull-7{left:-58.33333%}.medium-offset-6{margin-left:50%}.medium-8{width:66.66667%}.medium-push-8{left:66.66667%}.medium-pull-8{left:-66.66667%}.medium-offset-7{margin-left:58.33333%}.medium-9{width:75%}.medium-push-9{left:75%}.medium-pull-9{left:-75%}.medium-offset-8{margin-left:66.66667%}.medium-10{width:83.33333%}.medium-push-10{left:83.33333%}.medium-pull-10{left:-83.33333%}.medium-offset-9{margin-left:75%}.medium-11{width:91.66667%}.medium-push-11{left:91.66667%}.medium-pull-11{left:-91.66667%}.medium-offset-10{margin-left:83.33333%}.medium-12{width:100%}.medium-offset-11{margin-left:91.66667%}.medium-up-1 .column,.medium-up-1 .columns{width:100%;float:left}.medium-up-1 .column:nth-of-type(1n),.medium-up-1 .columns:nth-of-type(1n){clear:none}.medium-up-1 .column:nth-of-type(1n+1),.medium-up-1 .columns:nth-of-type(1n+1){clear:both}.medium-up-2 .column,.medium-up-2 .columns{width:50%;float:left}.medium-up-2 .column:nth-of-type(1n),.medium-up-2 .columns:nth-of-type(1n){clear:none}.medium-up-2 .column:nth-of-type(2n+1),.medium-up-2 .columns:nth-of-type(2n+1){clear:both}.medium-up-3 .column,.medium-up-3 .columns{width:33.33333%;float:left}.medium-up-3 .column:nth-of-type(1n),.medium-up-3 .columns:nth-of-type(1n){clear:none}.medium-up-3 .column:nth-of-type(3n+1),.medium-up-3 .columns:nth-of-type(3n+1){clear:both}.medium-up-4 .column,.medium-up-4 .columns{width:25%;float:left}.medium-up-4 .column:nth-of-type(1n),.medium-up-4 .columns:nth-of-type(1n){clear:none}.medium-up-4 .column:nth-of-type(4n+1),.medium-up-4 .columns:nth-of-type(4n+1){clear:both}.medium-up-5 .column,.medium-up-5 .columns{width:20%;float:left}.medium-up-5 .column:nth-of-type(1n),.medium-up-5 .columns:nth-of-type(1n){clear:none}.medium-up-5 .column:nth-of-type(5n+1),.medium-up-5 .columns:nth-of-type(5n+1){clear:both}.medium-up-6 .column,.medium-up-6 .columns{width:16.66667%;float:left}.medium-up-6 .column:nth-of-type(1n),.medium-up-6 .columns:nth-of-type(1n){clear:none}.medium-up-6 .column:nth-of-type(6n+1),.medium-up-6 .columns:nth-of-type(6n+1){clear:both}.column.medium-centered,.medium-centered.columns{float:none;margin-left:auto;margin-right:auto}.medium-pull-0,.medium-push-0,.medium-uncenter{position:static;margin-left:0;margin-right:0}}@media screen and (min-width:64em){.large-pull-1,.large-pull-10,.large-pull-11,.large-pull-2,.large-pull-3,.large-pull-4,.large-pull-5,.large-pull-6,.large-pull-7,.large-pull-8,.large-pull-9,.large-push-1,.large-push-10,.large-push-11,.large-push-2,.large-push-3,.large-push-4,.large-push-5,.large-push-7,.large-push-8,.large-push-9{position:relative}.large-1{width:8.33333%}.large-push-1{left:8.33333%}.large-pull-1{left:-8.33333%}.large-offset-0{margin-left:0}.large-2{width:16.66667%}.large-push-2{left:16.66667%}.large-pull-2{left:-16.66667%}.large-offset-1{margin-left:8.33333%}.large-3{width:25%}.large-push-3{left:25%}.large-pull-3{left:-25%}.large-offset-2{margin-left:16.66667%}.large-4{width:33.33333%}.large-push-4{left:33.33333%}.large-pull-4{left:-33.33333%}.large-offset-3{margin-left:25%}.large-5{width:41.66667%}.large-push-5{left:41.66667%}.large-pull-5{left:-41.66667%}.large-offset-4{margin-left:33.33333%}.large-6{width:50%}.large-push-6{position:relative;left:50%}.large-pull-6{left:-50%}.large-offset-5{margin-left:41.66667%}.large-7{width:58.33333%}.large-push-7{left:58.33333%}.large-pull-7{left:-58.33333%}.large-offset-6{margin-left:50%}.large-8{width:66.66667%}.large-push-8{left:66.66667%}.large-pull-8{left:-66.66667%}.large-offset-7{margin-left:58.33333%}.large-9{width:75%}.large-push-9{left:75%}.large-pull-9{left:-75%}.large-offset-8{margin-left:66.66667%}.large-10{width:83.33333%}.large-push-10{left:83.33333%}.large-pull-10{left:-83.33333%}.large-offset-9{margin-left:75%}.large-11{width:91.66667%}.large-push-11{left:91.66667%}.large-pull-11{left:-91.66667%}.large-offset-10{margin-left:83.33333%}.large-12{width:100%}.large-offset-11{margin-left:91.66667%}.large-up-1 .column,.large-up-1 .columns{width:100%;float:left}.large-up-1 .column:nth-of-type(1n),.large-up-1 .columns:nth-of-type(1n){clear:none}.large-up-1 .column:nth-of-type(1n+1),.large-up-1 .columns:nth-of-type(1n+1){clear:both}.large-up-2 .column,.large-up-2 .columns{width:50%;float:left}.large-up-2 .column:nth-of-type(1n),.large-up-2 .columns:nth-of-type(1n){clear:none}.large-up-2 .column:nth-of-type(2n+1),.large-up-2 .columns:nth-of-type(2n+1){clear:both}.large-up-3 .column,.large-up-3 .columns{width:33.33333%;float:left}.large-up-3 .column:nth-of-type(1n),.large-up-3 .columns:nth-of-type(1n){clear:none}.large-up-3 .column:nth-of-type(3n+1),.large-up-3 .columns:nth-of-type(3n+1){clear:both}.large-up-4 .column,.large-up-4 .columns{width:25%;float:left}.large-up-4 .column:nth-of-type(1n),.large-up-4 .columns:nth-of-type(1n){clear:none}.large-up-4 .column:nth-of-type(4n+1),.large-up-4 .columns:nth-of-type(4n+1){clear:both}.large-up-5 .column,.large-up-5 .columns{width:20%;float:left}.large-up-5 .column:nth-of-type(1n),.large-up-5 .columns:nth-of-type(1n){clear:none}.large-up-5 .column:nth-of-type(5n+1),.large-up-5 .columns:nth-of-type(5n+1){clear:both}.large-up-6 .column,.large-up-6 .columns{width:16.66667%;float:left}.large-up-6 .column:nth-of-type(1n),.large-up-6 .columns:nth-of-type(1n){clear:none}.large-up-6 .column:nth-of-type(6n+1),.large-up-6 .columns:nth-of-type(6n+1){clear:both}.column.large-centered,.large-centered.columns{float:none;margin-left:auto;margin-right:auto}.large-pull-0,.large-push-0,.large-uncenter{position:static;margin-left:0;margin-right:0}.large-text-left{text-align:left}}.breadcrumbs::after,.button-group::after,.clearfix::after,.pagination::after,.tabs::after,.title-bar::after,.top-bar::after,hr{clear:both}ol,ul{margin-left:1.25rem}blockquote,dd,div,dl,dt,form,h1,h2,h3,h4,h5,h6,li,ol,p,pre,td,th,ul{margin:0;padding:0}dl,ol,p,ul{margin-bottom:1rem}p{font-size:inherit;text-rendering:optimizeLegibility}em,i{font-style:italic}h1,h2,h3,h4,h5,h6{font-style:normal;color:inherit;text-rendering:optimizeLegibility;margin-top:0;margin-bottom:.5rem;line-height:1.4}code,kbd{background-color:#e6e6e6;color:#0a0a0a;font-family:Consolas,"Liberation Mono",Courier,monospace}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{color:#cacaca;line-height:0}h1{font-size:1.5rem}h2{font-size:1.25rem}h3{font-size:1.1875rem}h4{font-size:1.125rem}h5{font-size:1.0625rem}h6{font-size:1rem}@media screen and (min-width:32em){h1{font-size:3rem}h2{font-size:2.5rem}h3{font-size:1.9375rem}h4{font-size:1.5625rem}h5{font-size:1.25rem}h6{font-size:1rem}.medium-text-left{text-align:left}}a{color:#2199e8;text-decoration:none;cursor:pointer}a:focus,a:hover{color:#1585cf}a img{border:0}hr{box-sizing:content-box;max-width:75rem;height:0;border-top:0;border-bottom:1px solid #cacaca;margin:1.25rem 0}dl,ol,ul{list-style-position:outside}li{font-size:inherit}ul{list-style-type:disc}ol ol,ol ul,ul ol,ul ul{margin-left:1.25rem;margin-bottom:0;list-style-type:inherit}.accordion,.menu,.tabs{list-style-type:none}dl dt{margin-bottom:.3rem;font-weight:700}.subheader,code,label{font-weight:400}blockquote{margin:0 0 1rem;padding:.5625rem 1.25rem 0 1.1875rem;border-left:1px solid #cacaca}blockquote,blockquote p{line-height:1.6;color:#8a8a8a}cite{display:block;font-size:.8125rem;color:#8a8a8a}cite:before{content:'\2014 \0020'}abbr{color:#0a0a0a;cursor:help;border-bottom:1px dotted #0a0a0a}code{border:1px solid #cacaca;padding:.125rem .3125rem .0625rem}kbd{padding:.125rem .25rem 0;margin:0}.subheader{margin-top:.2rem;margin-bottom:.5rem;line-height:1.4;color:#8a8a8a}.lead{font-size:125%;line-height:1.6}.button,.stat{line-height:1}.stat{font-size:2.5rem}p+.stat{margin-top:-1rem}.no-bullet{margin-left:0;list-style:none}.text-left{text-align:left}.text-right{text-align:right}@media screen and (min-width:32em){.medium-text-right{text-align:right}}@media screen and (min-width:64em){.large-text-right{text-align:right}.large-text-center{text-align:center}}.text-center{text-align:center}@media screen and (min-width:32em){.medium-text-center{text-align:center}}.text-justify{text-align:justify}@media screen and (min-width:32em){.medium-text-justify{text-align:justify}}@media screen and (min-width:64em){.large-text-justify{text-align:justify}}.show-for-print{display:none!important}@media print{blockquote,img,pre,tr{page-break-inside:avoid}*{background:0 0!important;color:#000!important;box-shadow:none!important;text-shadow:none!important}.show-for-print{display:block!important}.hide-for-print{display:none!important}table.show-for-print{display:table!important}thead.show-for-print{display:table-header-group!important}tbody.show-for-print{display:table-row-group!important}tr.show-for-print{display:table-row!important}td.show-for-print,th.show-for-print{display:table-cell!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}.ir a:after,a[href^='javascript:']:after,a[href^='#']:after{content:''}abbr[title]:after{content:" (" attr(title) ")"}blockquote,pre{border:1px solid #999}thead{display:table-header-group}img{max-width:100%!important}@page{margin:.5cm}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}}.button{display:inline-block;text-align:center;cursor:pointer;-webkit-appearance:none;transition:all .25s ease-out;border:1px solid transparent;border-radius:0;padding:.85em 1em;margin:0 1rem 1rem 0;font-size:.9rem;background:#2199e8;color:#fff}[data-whatinput=mouse] .button{outline:0}.button:focus,.button:hover{background:#1583cc;color:#fff}.button.tiny{font-size:.6rem}.button.small{font-size:.75rem}.button.large{font-size:1.25rem}.button.expanded{display:block;width:100%;margin-left:0;margin-right:0}.button.primary{background:#2199e8;color:#fff}.button.primary:focus,.button.primary:hover{background:#147cc0;color:#fff}.button.secondary{background:#777;color:#fff}.button.secondary:focus,.button.secondary:hover{background:#5f5f5f;color:#fff}.button.success{background:#3adb76;color:#fff}.button.success:focus,.button.success:hover{background:#22bb5b;color:#fff}.button.alert{background:#ec5840;color:#fff}.button.alert:focus,.button.alert:hover{background:#da3116;color:#fff}.button.warning{background:#ffae00;color:#fff}.button.warning:focus,.button.warning:hover{background:#cc8b00;color:#fff}.button.hollow{border:1px solid #2199e8;color:#2199e8}.button.hollow,.button.hollow:focus,.button.hollow:hover{background:0 0}.button.hollow:focus,.button.hollow:hover{border-color:#0c4d78;color:#0c4d78}.button.hollow.primary{border:1px solid #2199e8;color:#2199e8}.button.hollow.primary:focus,.button.hollow.primary:hover{border-color:#0c4d78;color:#0c4d78}.button.hollow.secondary{border:1px solid #777;color:#777}.button.hollow.secondary:focus,.button.hollow.secondary:hover{border-color:#3b3b3b;color:#3b3b3b}.button.hollow.success{border:1px solid #3adb76;color:#3adb76}.button.hollow.success:focus,.button.hollow.success:hover{border-color:#157539;color:#157539}.button.hollow.alert{border:1px solid #ec5840;color:#ec5840}.button.hollow.alert:focus,.button.hollow.alert:hover{border-color:#881f0e;color:#881f0e}.button.hollow.warning{border:1px solid #ffae00;color:#ffae00}.button.hollow.warning:focus,.button.hollow.warning:hover{border-color:#805700;color:#805700}.button.disabled{opacity:.25;cursor:not-allowed;pointer-events:none}.button.dropdown::after{content:'';display:block;width:0;height:0;border:.4em inset;border-color:#fefefe transparent transparent;border-top-style:solid;position:relative;top:.4em;float:right;margin-left:1em}.button.arrow-only::after{margin-left:0;float:none;top:.2em}[type=text],[type=password],[type=date],[type=datetime],[type=datetime-local],[type=month],[type=week],[type=email],[type=tel],[type=time],[type=url],[type=color],[type=number],[type=search],textarea{display:block;box-sizing:border-box;width:100%;height:2.4375rem;padding:.5rem;border:1px solid #cacaca;margin:0 0 1rem;font-family:inherit;font-size:1rem;color:#8a8a8a;background-color:#fefefe;box-shadow:inset 0 1px 2px rgba(10,10,10,.1);border-radius:0;transition:box-shadow .5s,border-color .25s ease-in-out;-webkit-appearance:none;-moz-appearance:none}[type=text]:focus,[type=password]:focus,[type=date]:focus,[type=datetime]:focus,[type=datetime-local]:focus,[type=month]:focus,[type=week]:focus,[type=email]:focus,[type=tel]:focus,[type=time]:focus,[type=url]:focus,[type=color]:focus,[type=number]:focus,[type=search]:focus,textarea:focus{border:1px solid #8a8a8a;background:#fefefe;outline:0;box-shadow:0 0 5px #cacaca;transition:box-shadow .5s,border-color .25s ease-in-out}textarea{min-height:50px;max-width:100%}textarea[rows]{height:auto}input:disabled,input[readonly],textarea:disabled,textarea[readonly]{background-color:#e6e6e6;cursor:default}[type=button],[type=submit]{border-radius:0;-webkit-appearance:none;-moz-appearance:none}[type=file],[type=checkbox],[type=radio]{margin:0 0 1rem}[type=checkbox]+label,[type=radio]+label{display:inline-block;margin-left:.5rem;margin-right:1rem;margin-bottom:0;vertical-align:baseline}label>[type=label],label>[type=checkbox]{margin-right:.5rem}[type=file]{width:100%}label{display:block;margin:0;font-size:.875rem;line-height:1.8;color:#0a0a0a}.form-error,.menu-text,.switch{font-weight:700}label.middle{margin:0 0 1rem;padding:.5625rem 0}.help-text{margin-top:-.5rem;font-size:.8125rem;font-style:italic;color:#333}.input-group{display:table;width:100%;margin-bottom:1rem}.input-group-button,.input-group-label{height:100%;width:1%;text-align:center}.input-group-button,.input-group-field,.input-group-label{display:table-cell;margin:0;vertical-align:middle}.input-group-label{padding:0 1rem;background:#e6e6e6;color:#0a0a0a;border:1px solid #cacaca}.input-group-label:first-child{border-right:0}.input-group-label:last-child{border-left:0}.fieldset,select{border:1px solid #cacaca}.input-group-button{padding-top:0;padding-bottom:0}fieldset{border:0;padding:0;margin:0}legend{margin-bottom:.5rem}.fieldset{padding:1.25rem;margin:1.125rem 0}.fieldset legend{background:#fefefe;padding:0 .1875rem;margin:0 0 0 -.1875rem}select{height:2.4375rem;padding:.5rem;margin:0 0 1rem;font-size:1rem;font-family:inherit;line-height:normal;color:#8a8a8a;background-color:#fafafa;border-radius:0;-webkit-appearance:none;-moz-appearance:none;background-image:url('data:image/svg+xml;utf8,');background-size:9px 6px;background-position:right .5rem center;background-repeat:no-repeat}.form-error,.is-invalid-label{color:#ec5840}@media screen and (min-width:0\0){select{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg==)}}select:disabled{background-color:#e6e6e6;cursor:default}select::-ms-expand{display:none}select[multiple]{height:auto}.is-invalid-input:not(:focus){background-color:rgba(236,88,64,.1);border-color:#ec5840}.form-error{display:none;margin-top:-.5rem;margin-bottom:1rem;font-size:.75rem}.form-error.is-visible{display:block}.hide{display:none!important}@media screen and (min-width:0em) and (max-width:31.9375em){.hide-for-small-only{display:none!important}}@media screen and (max-width:-0.0625em),screen and (min-width:32em){.show-for-small-only{display:none!important}}@media screen and (min-width:32em){.hide-for-medium{display:none!important}}@media screen and (max-width:31.9375em){.show-for-medium{display:none!important}}@media screen and (min-width:32em) and (max-width:63.9375em){.hide-for-medium-only{display:none!important}}@media screen and (max-width:31.9375em),screen and (min-width:64em){.show-for-medium-only{display:none!important}}@media screen and (min-width:64em){.hide-for-large{display:none!important}}@media screen and (max-width:63.9375em){.show-for-large{display:none!important}}@media screen and (min-width:64em) and (max-width:74.9375em){.hide-for-large-only{display:none!important}}@media screen and (max-width:63.9375em),screen and (min-width:75em){.show-for-large-only{display:none!important}}.show-for-sr,.show-on-focus{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.show-on-focus:active,.show-on-focus:focus{position:static!important;height:auto;width:auto;overflow:visible;clip:auto}.hide-for-portrait,.show-for-landscape{display:block!important}@media screen and (orientation:landscape){.hide-for-portrait,.show-for-landscape{display:block!important}.hide-for-landscape,.show-for-portrait{display:none!important}}.hide-for-landscape,.show-for-portrait{display:none!important}@media screen and (orientation:portrait){.hide-for-portrait,.show-for-landscape{display:none!important}.hide-for-landscape,.show-for-portrait{display:block!important}}.float-left{float:left!important}.float-right{float:right!important}.float-center{display:block;margin-left:auto;margin-right:auto}.clearfix::after,.clearfix::before{content:' ';display:table}.accordion{background:#fefefe;border:1px solid #e6e6e6;border-radius:0;margin-left:0}.accordion-title{display:block;padding:1.25rem 1rem;line-height:1;font-size:.75rem;color:#2199e8;position:relative;border-bottom:1px solid #e6e6e6}.accordion-title:focus,.accordion-title:hover{background-color:#e6e6e6}:last-child>.accordion-title{border-bottom-width:0}.accordion-title::before{content:'+';position:absolute;right:1rem;top:50%;margin-top:-.5rem}.is-active>.accordion-title::before{content:'–'}.accordion-content{padding:1.25rem 1rem;display:none;border-bottom:1px solid #e6e6e6}.badge{display:inline-block;padding:.3em;min-width:2.1em;font-size:.6rem;text-align:center;border-radius:50%;background:#2199e8;color:#fefefe}.badge.secondary{background:#777;color:#fefefe}.badge.success{background:#3adb76;color:#fefefe}.badge.alert{background:#ec5840;color:#fefefe}.badge.warning{background:#ffae00;color:#fefefe}.breadcrumbs{list-style:none;margin:0 0 1rem}.breadcrumbs::after,.breadcrumbs::before{content:' ';display:table}.breadcrumbs li{float:left;color:#0a0a0a;font-size:.6875rem;cursor:default;text-transform:uppercase}.breadcrumbs li:not(:last-child)::after{color:#cacaca;content:"/";margin:0 .75rem;position:relative;top:1px;opacity:1}.breadcrumbs a{color:#2199e8}.breadcrumbs a:hover{text-decoration:underline}.breadcrumbs .disabled{color:#cacaca}.button-group{margin-bottom:1rem;font-size:.9rem}.button-group::after,.button-group::before{content:' ';display:table}.button-group .button{float:left;margin:0;font-size:inherit}.button-group .button:not(:last-child){border-right:1px solid #fefefe}.button-group.tiny{font-size:.6rem}.button-group.small{font-size:.75rem}.button-group.large{font-size:1.25rem}.button-group.expanded .button:nth-last-child(2):first-child,.button-group.expanded .button:nth-last-child(2):first-child~.button{width:50%}.button-group.expanded .button:nth-last-child(3):first-child,.button-group.expanded .button:nth-last-child(3):first-child~.button{width:33.33333%}.button-group.expanded .button:nth-last-child(4):first-child,.button-group.expanded .button:nth-last-child(4):first-child~.button{width:25%}.button-group.expanded .button:nth-last-child(5):first-child,.button-group.expanded .button:nth-last-child(5):first-child~.button{width:20%}.button-group.expanded .button:nth-last-child(6):first-child,.button-group.expanded .button:nth-last-child(6):first-child~.button{width:16.66667%}.button-group.primary .button{background:#2199e8;color:#fff}.button-group.primary .button:focus,.button-group.primary .button:hover{background:#147cc0;color:#fff}.button-group.secondary .button{background:#777;color:#fff}.button-group.secondary .button:focus,.button-group.secondary .button:hover{background:#5f5f5f;color:#fff}.button-group.success .button{background:#3adb76;color:#fff}.button-group.success .button:focus,.button-group.success .button:hover{background:#22bb5b;color:#fff}.button-group.alert .button{background:#ec5840;color:#fff}.button-group.alert .button:focus,.button-group.alert .button:hover{background:#da3116;color:#fff}.button-group.warning .button{background:#ffae00;color:#fff}.button-group.warning .button:focus,.button-group.warning .button:hover{background:#cc8b00;color:#fff}.button-group.stacked .button,.button-group.stacked-for-small .button{width:100%;border-right:0}@media screen and (min-width:32em){.button-group.stacked-for-small .button{width:auto}.button-group.stacked-for-small .button:not(:last-child){border-right:1px solid #fefefe}}.callout{margin:0 0 1rem;padding:1rem;border:1px solid rgba(10,10,10,.25);border-radius:0;position:relative;background-color:#fff}.callout>:first-child{margin-top:0}.callout>:last-child{margin-bottom:0}.callout.primary{background-color:#def0fc}.callout.primary a{color:#116ca8}.callout.primary a:hover{color:#0a4063}.callout.secondary{background-color:#ebebeb}.callout.success{background-color:#e1faea}.callout.success a{color:#1ea450}.callout.success a:hover{color:#126330}.callout.alert{background-color:#fce6e2}.callout.alert a{color:#bf2b13}.callout.alert a:hover{color:#791b0c}.callout.warning{background-color:#fff3d9}.callout.warning a{color:#b37a00}.callout.warning a:hover{color:#664600}.callout.small{padding:.5rem}.callout.large{padding:3rem}.is-drilldown{position:relative;overflow:hidden}.is-drilldown-sub{position:absolute;top:0;left:100%;z-index:-1;width:100%;background:#fefefe;transition:-webkit-transform .15s linear;transition:transform .15s linear}.is-drilldown-sub.is-active{z-index:1;display:block;-webkit-transform:translateX(-100%);-ms-transform:translateX(-100%);transform:translateX(-100%)}.is-drilldown-sub.is-closing{-webkit-transform:translateX(100%);-ms-transform:translateX(100%);transform:translateX(100%)}.dropdown-pane{background-color:#fefefe;border:1px solid #cacaca;display:block;padding:1rem;position:absolute;width:300px;z-index:10;border-radius:0}.dropdown-pane.is-open{visibility:visible}.dropdown-pane.tiny{width:100px}.dropdown-pane.small{width:200px}.dropdown-pane.large{width:400px}.dropdown.menu .has-submenu{position:relative}.dropdown.menu .has-submenu a::after{float:right;margin-top:3px;margin-left:10px}.dropdown.menu .has-submenu.is-down-arrow>a::after{content:'';display:block;width:0;height:0;border:5px inset;border-color:#2199e8 transparent transparent;border-top-style:solid}.dropdown.menu .has-submenu.is-right-arrow>a::after{content:'';display:block;width:0;height:0;border:5px inset;border-color:transparent #2199e8 transparent transparent;border-right-style:solid;float:left;margin-left:0;margin-right:10px}.dropdown.menu.vertical.align-right,.menu.align-right>li{float:right}.dropdown.menu .has-submenu.is-left-arrow>a::after{content:'';display:block;width:0;height:0;border:5px inset;border-color:transparent transparent transparent #2199e8;border-left-style:solid}.dropdown.menu .submenu{display:none;position:absolute;top:0;left:100%;min-width:200px;white-space:nowrap;z-index:1;background:#fff}.dropdown.menu .submenu>li{width:100%}.dropdown.menu .submenu.is-right-arrow{left:auto;right:100%}.dropdown.menu .submenu.first-sub{top:100%;left:0;right:auto}.dropdown.menu .submenu.first-sub.is-right-arrow{left:auto;right:0}.dropdown.menu .submenu.js-dropdown-active,.dropdown.menu .submenu:not(.js-dropdown-nohover)>.has-submenu:hover>.dropdown.menu .submenu{display:block}.dropdown.menu.vertical{width:100px}.dropdown.menu.vertical>li .submenu{top:0;left:100%}.dropdown.menu.vertical>li .submenu.is-right-arrow{left:auto;right:100%}.flex-video{position:relative;height:0;padding-top:1.5625rem;padding-bottom:75%;margin-bottom:1rem;overflow:hidden}.flex-video embed,.flex-video iframe,.flex-video object,.flex-video video{position:absolute;top:0;left:0;width:100%;height:100%}.flex-video.widescreen{padding-bottom:56.25%}.flex-video.vimeo{padding-top:0}.label{display:inline-block;padding:.33333rem .5rem;font-size:.8rem;line-height:1;white-space:nowrap;cursor:default;border-radius:0;background:#2199e8;color:#fefefe}.label.secondary{background:#777;color:#fefefe}.label.success{background:#3adb76;color:#fefefe}.label.alert{background:#ec5840;color:#fefefe}.label.warning{background:#ffae00;color:#fefefe}.media-object{margin-bottom:1rem;display:block}@media screen and (min-width:0em) and (max-width:31.9375em){.media-object.stack-for-small .media-object-section{display:block;padding:0 0 1rem}.media-object.stack-for-small .media-object-section img{width:100%}}.media-object-section{display:table-cell;vertical-align:top}.media-object-section:first-child{padding-right:1rem}.media-object-section:last-child:not(+&:first-child){padding-left:1rem}.media-object-section.middle{vertical-align:middle}.media-object-section.bottom{vertical-align:bottom}.menu>li,.menu>li>a>i,.menu>li>a>img,.menu>li>a>span{vertical-align:middle}.menu{margin:0}[data-whatinput=mouse] .menu>li{outline:0}.menu>li>a{display:block;padding:.7rem 1rem;line-height:1}.menu a,.menu button,.menu input{margin-bottom:0}.menu>li>a>i,.menu>li>a>img{display:inline-block;margin-right:.25rem}.menu>li{display:table-cell}.menu.vertical>li{display:block}@media screen and (min-width:32em){.menu.medium-horizontal>li{display:table-cell}.menu.medium-vertical>li{display:block}}@media screen and (min-width:64em){.menu.large-horizontal>li{display:table-cell}.menu.large-vertical>li{display:block}}.menu.simple a{padding:0;margin-right:1rem}.menu.expanded{display:table;width:100%}.menu.expanded>li:nth-last-child(2):first-child,.menu.expanded>li:nth-last-child(2):first-child~li{width:50%}.menu.expanded>li:nth-last-child(3):first-child,.menu.expanded>li:nth-last-child(3):first-child~li{width:33.33333%}.menu.expanded>li:nth-last-child(4):first-child,.menu.expanded>li:nth-last-child(4):first-child~li{width:25%}.menu.expanded>li:nth-last-child(5):first-child,.menu.expanded>li:nth-last-child(5):first-child~li{width:20%}.menu.expanded>li:nth-last-child(6):first-child,.menu.expanded>li:nth-last-child(6):first-child~li{width:16.66667%}.menu.expanded>li:first-child:last-child{width:100%}.menu.icon-top>li>a{text-align:center}.menu.icon-top>li>a>i,.menu.icon-top>li>a>img{display:block;margin:0 auto .25rem}.menu.nested{margin-left:1rem}.menu-text{color:inherit;line-height:1;padding:0 1rem}body,html{height:100%}body{overflow-x:hidden;transition:-webkit-transform .5s ease;transition:transform .5s ease;-webkit-backface-visibility:hidden;backface-visibility:hidden}.js-off-canvas-exit{display:none;position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(254,254,254,.25);cursor:pointer;transition:background .5s ease}.is-off-canvas-open .js-off-canvas-exit{display:block}.off-canvas{position:absolute;background:#fefefe;z-index:-1}.orbit,.orbit-container{position:relative}[data-whatinput=mouse] .off-canvas{outline:0}.off-canvas.position-left{left:-250px;top:0;width:250px}.is-open-left{-webkit-transform:translateX(250px);-ms-transform:translateX(250px);transform:translateX(250px)}.off-canvas.position-right{right:-250px;top:0;width:250px}.is-open-right{-webkit-transform:translateX(-250px);-ms-transform:translateX(-250px);transform:translateX(-250px)}.main-content{min-height:100%;background:#fefefe;transition:-webkit-transform .5s ease;transition:transform .5s ease;-webkit-backface-visibility:hidden;backface-visibility:hidden;box-shadow:0 0 10px rgba(10,10,10,.5)}.orbit-caption,.orbit-next:active,.orbit-next:focus,.orbit-next:hover,.orbit-previous:active,.orbit-previous:focus,.orbit-previous:hover{background-color:rgba(10,10,10,.5)}@media screen and (min-width:32em){.position-left.reveal-for-medium{left:0}.position-left.reveal-for-medium~.main-content{margin-left:250px}.position-right.reveal-for-medium{right:0}.position-right.reveal-for-medium~.main-content{margin-right:250px}}@media screen and (min-width:64em){.position-left.reveal-for-large{left:0}.position-left.reveal-for-large~.main-content{margin-left:250px}.position-right.reveal-for-large{right:0}.position-right.reveal-for-large~.main-content{margin-right:250px}}.orbit-container{margin:0;overflow:hidden;list-style:none}.orbit-caption,.orbit-next,.orbit-previous{position:absolute;padding:1rem;color:#fefefe}.orbit-slide{width:100%;max-height:100%}.orbit-figure{margin:0}.orbit-image{margin:0;width:100%;max-width:100%}.orbit-caption{width:100%;margin-bottom:0}.orbit-next,.orbit-previous{top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);z-index:10}[data-whatinput=mouse] .orbit-next,[data-whatinput=mouse] .orbit-previous{outline:0}.orbit-previous{left:0}.orbit-next{left:auto;right:0}.orbit-bullets{position:relative;margin-top:.8rem;margin-bottom:.8rem;text-align:center}[data-whatinput=mouse] .orbit-bullets{outline:0}.orbit-bullets button{width:1.2rem;height:1.2rem;margin:.1rem;background-color:#cacaca;border-radius:50%}.orbit-bullets button.is-active,.orbit-bullets button:hover{background-color:#8a8a8a}.pagination{margin-left:0;margin-bottom:1rem}.pagination::after,.pagination::before{content:' ';display:table}.pagination li{font-size:.875rem;margin-right:.0625rem;display:none;border-radius:0}.pagination li:first-child,.pagination li:last-child{display:inline-block}@media screen and (min-width:32em){.pagination li{display:inline-block}.reveal{min-height:0}}.pagination a,.pagination button{color:#0a0a0a;display:block;padding:.1875rem .625rem;border-radius:0}.pagination a:hover,.pagination button:hover{background:#e6e6e6}.pagination [aria-label=previous]::before{content:'«';display:inline-block;margin-right:.75rem}.pagination [aria-label=next]::after{content:'»';display:inline-block;margin-left:.75rem}.pagination .current{padding:.1875rem .625rem;background:#2199e8;color:#fefefe;cursor:default}.pagination .disabled{padding:.1875rem .625rem;color:#cacaca;cursor:default}.pagination .disabled:hover{background:0 0}.pagination .ellipsis::after{content:'…';padding:.1875rem .625rem;color:#0a0a0a}.progress{background-color:#cacaca;height:1rem;margin-bottom:1rem;border-radius:0}.progress.primary .progress-meter{background-color:#2199e8}.progress.secondary .progress-meter{background-color:#777}.progress.success .progress-meter{background-color:#3adb76}.progress.alert .progress-meter{background-color:#ec5840}.progress.warning .progress-meter{background-color:#ffae00}.progress-meter{position:relative;display:block;width:0;height:100%;background-color:#2199e8;border-radius:0}.progress-meter .progress-meter-text{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);margin:0;font-size:.75rem;font-weight:700;color:#fefefe;white-space:nowrap}.slider-fill,.slider-handle{left:0;display:inline-block}.slider{position:relative;height:.5rem;margin-top:1.25rem;margin-bottom:2.25rem;background-color:#e6e6e6;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.slider-fill{position:absolute;top:0;max-width:100%;height:.5rem;background-color:#cacaca;transition:all .2s ease-in-out}.slider-fill.is-dragging{transition:all 0s linear}.slider-handle{top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);position:absolute;z-index:1;width:1.4rem;height:1.4rem;background-color:#2199e8;transition:all .2s ease-in-out;-ms-touch-action:manipulation;touch-action:manipulation;border-radius:0}[data-whatinput=mouse] .slider-handle{outline:0}.slider-handle:hover{background-color:#1583cc}.slider-handle.is-dragging{transition:all 0s linear}.slider.disabled,.slider[disabled]{opacity:.25;cursor:not-allowed}.slider.vertical{display:inline-block;width:.5rem;height:12.5rem;margin:0 1.25rem;-webkit-transform:scale(1,-1);-ms-transform:scale(1,-1);transform:scale(1,-1)}.reveal,.reveal-overlay{display:none;overflow-y:scroll}.slider.vertical .slider-fill{top:0;width:.5rem;max-height:100%}.slider.vertical .slider-handle{position:absolute;top:0;left:50%;width:1.4rem;height:1.4rem;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.sticky-container{position:relative}.sticky{position:absolute;z-index:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.sticky.is-stuck{position:fixed;z-index:5}.sticky.is-stuck.is-at-top{top:0}.sticky.is-anchored{position:absolute;left:auto;right:auto}.reveal-overlay{position:fixed;top:0;bottom:0;left:0;right:0;z-index:1005;background-color:rgba(10,10,10,.45)}.reveal{z-index:1006;padding:1rem;border:1px solid #cacaca;margin:100px auto 0;background-color:#fefefe;border-radius:0;position:absolute}.switch-paddle,.switch-paddle::after{display:block;transition:all .25s ease-out}[data-whatinput=mouse] .reveal{outline:0}.reveal .column,.reveal .columns{min-width:0}.reveal>:last-child{margin-bottom:0}.reveal.collapse{padding:0}caption,tbody td,tbody th{padding:.5rem .625rem .625rem}@media screen and (min-width:32em){.reveal{width:600px;max-width:75rem}.reveal .reveal{left:auto;right:auto;margin:0 auto}.reveal.tiny{width:30%;max-width:75rem}.reveal.small{width:50%;max-width:75rem}.reveal.large{width:90%;max-width:75rem}}.reveal.full{top:0;left:0;width:100%;height:100%;height:100vh;min-height:100vh;max-width:none;margin-left:0}.switch{margin-bottom:1rem;outline:0;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;color:#fefefe;font-size:.875rem}.switch-input{opacity:0;position:absolute}.switch-paddle{background:#cacaca;cursor:pointer;position:relative;width:4rem;height:2rem;border-radius:0;color:inherit;font-weight:inherit}.has-tip,.title-bar-title,caption{font-weight:700}input+.switch-paddle{margin:0}.switch-paddle::after{background:#fefefe;content:'';position:absolute;height:1.5rem;left:.25rem;top:.25rem;width:1.5rem;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.switch-active,.switch-inactive,.tooltip.left::before{-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%)}input:checked~.switch-paddle{background:#2199e8}input:checked~.switch-paddle::after{left:2.25rem}[data-whatinput=mouse] input:focus~.switch-paddle{outline:0}.switch-active,.switch-inactive{position:absolute;top:50%;transform:translateY(-50%)}.switch-active{left:8%;display:none}input:checked+label>.switch-active{display:block}.switch-inactive{right:15%}input:checked+label>.switch-inactive{display:none}.switch.tiny .switch-paddle{width:3rem;height:1.5rem;font-size:.625rem}.switch.tiny .switch-paddle::after{width:1rem;height:1rem}.switch.tiny input:checked~.switch-paddle:after{left:1.75rem}.switch.small .switch-paddle{width:3.5rem;height:1.75rem;font-size:.75rem}.switch.small .switch-paddle::after{width:1.25rem;height:1.25rem}.switch.small input:checked~.switch-paddle:after{left:2rem}.switch.large .switch-paddle{width:5rem;height:2.5rem;font-size:1rem}.switch.large .switch-paddle::after{width:2rem;height:2rem}.switch.large input:checked~.switch-paddle:after{left:2.75rem}table{border-collapse:collapse;border-spacing:0;margin-bottom:1rem;border-radius:0}tbody,tfoot,thead{border:1px solid #f1f1f1;background-color:#fefefe}tfoot,thead{background:#f8f8f8;color:#0a0a0a}tfoot tr,thead tr{background:0 0}tfoot td,tfoot th,thead td,thead th{padding:.5rem .625rem .625rem;font-weight:700;text-align:left}tbody tr:nth-child(even){background-color:#f1f1f1}@media screen and (max-width:63.9375em){table.stack tfoot,table.stack thead{display:none}table.stack td,table.stack th,table.stack tr{display:block}table.stack td{border-top:0}}.tabs,.tabs-content{border:1px solid #e6e6e6}table.scroll{display:block;width:100%;overflow-y:scroll}table.hover tr:hover{background-color:#f9f9f9}table.hover tr:nth-of-type(even):hover{background-color:#ececec}.tabs{margin:0;background:#fefefe}.tabs::after,.tabs::before{content:' ';display:table}.tabs.simple>li>a{padding:0}.tabs.simple>li>a:hover{background:0 0}.tabs.vertical>li{width:auto;float:none;display:block}.tabs-title,.title-bar-left{float:left}.tabs.primary{background:#2199e8}.tabs.primary>li>a{color:#fefefe}.tabs.primary>li>a:focus,.tabs.primary>li>a:hover{background:#1893e4}.tabs-title>a{display:block;padding:1.25rem 1.5rem;line-height:1;font-size:12px;color:#2199e8}.tabs-title>a:focus,.tabs-title>a:hover,.tabs-title>a[aria-selected=true]{background:#e6e6e6}.tabs-content{background:#fefefe;transition:all .5s ease;border-top:0}.tabs-content.vertical{border:1px solid #e6e6e6;border-left:0}.tabs-panel{display:none;padding:1rem}.tabs-panel.is-active{display:block}.thumbnail{border:4px solid #fefefe;box-shadow:0 0 0 1px rgba(10,10,10,.2);display:inline-block;line-height:0;max-width:100%;transition:box-shadow .2s ease-out;border-radius:0;margin-bottom:1rem}.thumbnail:focus,.thumbnail:hover{box-shadow:0 0 6px 1px rgba(33,153,232,.5)}.title-bar{background:#0a0a0a;color:#fefefe;padding:.5rem}.title-bar::after,.title-bar::before{content:' ';display:table}.menu-icon.dark::after,.menu-icon::after{content:'';top:0;left:0}.menu-icon,.title-bar-title{display:inline-block;vertical-align:middle}.title-bar .menu-icon{margin-left:.25rem;margin-right:.5rem}.title-bar-right{float:right;text-align:right}.menu-icon{position:relative;cursor:pointer;width:20px;height:16px}.menu-icon::after{position:absolute;display:block;width:100%;height:2px;background:#fff;box-shadow:0 7px 0 #fff,0 14px 0 #fff}.menu-icon:hover::after{background:#cacaca;box-shadow:0 7px 0 #cacaca,0 14px 0 #cacaca}.menu-icon.dark{position:relative;display:inline-block;vertical-align:middle;cursor:pointer;width:20px;height:16px}.menu-icon.dark::after{position:absolute;display:block;width:100%;height:2px;background:#000;box-shadow:0 7px 0 #000,0 14px 0 #000}.menu-icon.dark:hover::after{background:#666;box-shadow:0 7px 0 #666,0 14px 0 #666}.has-tip{border-bottom:dotted 1px #8a8a8a;position:relative;display:inline-block}.tooltip.top::before,.tooltip::before{content:'';display:block;width:0;height:0}.has-tip:hover{cursor:help}.tooltip{background-color:#0a0a0a;color:#fefefe;font-size:80%;padding:.75rem;position:absolute;z-index:10;top:calc(100% + .6495rem);max-width:10rem!important;border-radius:0}.tooltip::before{border:.75rem inset;border-color:transparent transparent #0a0a0a;border-bottom-style:solid;bottom:100%;position:absolute;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.tooltip.top::before{border:.75rem inset;border-color:#0a0a0a transparent transparent;border-top-style:solid;top:100%;bottom:auto}.tooltip.left::before,.tooltip.right::before{content:'';display:block;width:0;height:0;bottom:auto;top:50%}.tooltip.left::before{border:.75rem inset;border-color:transparent transparent transparent #0a0a0a;border-left-style:solid;left:100%;transform:translateY(-50%)}.tooltip.right::before{border:.75rem inset;border-color:transparent #0a0a0a transparent transparent;border-right-style:solid;left:auto;right:100%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.top-bar{padding:.5rem}.top-bar::after,.top-bar::before{content:' ';display:table}.top-bar,.top-bar ul{background-color:#eee}.top-bar input{width:200px;margin-right:1rem}@media screen and (min-width:32em){.top-bar-left{float:left}.top-bar-right{float:right}} \ No newline at end of file +@charset "UTF-8";/*! normalize.css v3.0.2 | MIT License | git.io/normalize */button,img,legend{border:0}body,button,legend{padding:0}.row.collapse>.column,.row.collapse>.columns,.row.small-collapse>.column,.row.small-collapse>.columns{padding-left:0;padding-right:0}.button.dropdown::after,.small-pull-1,.small-pull-10,.small-pull-11,.small-pull-2,.small-pull-3,.small-pull-4,.small-pull-5,.small-pull-6,.small-pull-7,.small-pull-8,.small-pull-9,.small-push-1,.small-push-10,.small-push-11,.small-push-2,.small-push-3,.small-push-4,.small-push-5,.small-push-7,.small-push-8,.small-push-9,sub,sup{position:relative}h1,h2,h3,h4,h5,h6,p{text-rendering:optimizeLegibility}.dropdown-pane,.invisible{visibility:hidden}html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,optgroup,strong{font-weight:700}dfn{font-style:italic}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;vertical-align:baseline}.button,img{vertical-align:middle}sup{top:-.5em}sub{bottom:-.25em}.orbit-caption,.sticky.is-anchored.is-at-bottom,.sticky.is-stuck.is-at-bottom{bottom:0}img{max-width:100%;height:auto;-ms-interpolation-mode:bicubic;display:inline-block}body.is-reveal-open,svg:not(:root){overflow:hidden}figure{margin:1em 40px}pre,textarea{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}.help-text,em,i{font-style:italic}a,b,em,i,small,strong{line-height:inherit}dl,ol,p,ul{line-height:1.6}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;box-sizing:border-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}.foundation-mq{font-family:"small=0em&medium=32em&large=64em&xlarge=75em&xxlarge=90em"}body,h1,h2,h3,h4,h5,h6{font-family:"Helvetica Neue",Helvetica,Roboto,Arial,sans-serif;font-weight:400}body,html{font-size:100%;box-sizing:border-box}*,:after,:before{box-sizing:inherit}body{margin:0;line-height:1.5;color:#0a0a0a;background:#fefefe;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}select{width:100%}#map_canvas embed,#map_canvas img,#map_canvas object,.map_canvas embed,.map_canvas img,.map_canvas object,.mqa-display embed,.mqa-display img,.mqa-display object{max-width:none!important}button{-webkit-appearance:none;-moz-appearance:none;background:0 0;border-radius:0;line-height:1}.row{max-width:75rem;margin-left:auto;margin-right:auto}.row::after,.row::before{content:' ';display:table}.row::after{clear:both}.row .row{margin-left:-.9375rem;margin-right:-.9375rem}.row .row.collapse{margin-left:0;margin-right:0}.row.small-uncollapse>.column,.row.small-uncollapse>.columns{padding-left:30px;padding-right:30px}@media screen and (min-width:32em){.row.medium-collapse>.column,.row.medium-collapse>.columns{padding-left:0;padding-right:0}.row.medium-uncollapse>.column,.row.medium-uncollapse>.columns{padding-left:30px;padding-right:30px}}@media screen and (min-width:64em){.row.large-collapse>.column,.row.large-collapse>.columns{padding-left:0;padding-right:0}.row.large-uncollapse>.column,.row.large-uncollapse>.columns{padding-left:30px;padding-right:30px}}.row.expanded{max-width:none}.column,.columns{width:100%;float:left;padding-left:.9375rem;padding-right:.9375rem}.column:last-child,.columns:last-child{float:right}.column.end,.end.columns{float:left}.column.row,.row.columns{float:none}.small-1{width:8.33333%}.small-push-1{left:8.33333%}.small-pull-1{left:-8.33333%}.small-offset-0{margin-left:0}.small-2{width:16.66667%}.small-push-2{left:16.66667%}.small-pull-2{left:-16.66667%}.small-offset-1{margin-left:8.33333%}.small-3{width:25%}.small-push-3{left:25%}.small-pull-3{left:-25%}.small-offset-2{margin-left:16.66667%}.small-4{width:33.33333%}.small-push-4{left:33.33333%}.small-pull-4{left:-33.33333%}.small-offset-3{margin-left:25%}.small-5{width:41.66667%}.small-push-5{left:41.66667%}.small-pull-5{left:-41.66667%}.small-offset-4{margin-left:33.33333%}.small-6{width:50%}.small-push-6{position:relative;left:50%}.small-pull-6{left:-50%}.small-offset-5{margin-left:41.66667%}.small-7{width:58.33333%}.small-push-7{left:58.33333%}.small-pull-7{left:-58.33333%}.small-offset-6{margin-left:50%}.small-8{width:66.66667%}.small-push-8{left:66.66667%}.small-pull-8{left:-66.66667%}.small-offset-7{margin-left:58.33333%}.small-9{width:75%}.small-push-9{left:75%}.small-pull-9{left:-75%}.small-offset-8{margin-left:66.66667%}.small-10{width:83.33333%}.small-push-10{left:83.33333%}.small-pull-10{left:-83.33333%}.small-offset-9{margin-left:75%}.small-11{width:91.66667%}.small-push-11{left:91.66667%}.small-pull-11{left:-91.66667%}.small-offset-10{margin-left:83.33333%}.small-12{width:100%}.small-offset-11{margin-left:91.66667%}.small-up-1 .column,.small-up-1 .columns{width:100%;float:left}.small-up-1 .column:nth-of-type(1n),.small-up-1 .columns:nth-of-type(1n){clear:none}.small-up-1 .column:nth-of-type(1n+1),.small-up-1 .columns:nth-of-type(1n+1){clear:both}.small-up-2 .column,.small-up-2 .columns{width:50%;float:left}.small-up-2 .column:nth-of-type(1n),.small-up-2 .columns:nth-of-type(1n){clear:none}.small-up-2 .column:nth-of-type(2n+1),.small-up-2 .columns:nth-of-type(2n+1){clear:both}.small-up-3 .column,.small-up-3 .columns{width:33.33333%;float:left}.small-up-3 .column:nth-of-type(1n),.small-up-3 .columns:nth-of-type(1n){clear:none}.small-up-3 .column:nth-of-type(3n+1),.small-up-3 .columns:nth-of-type(3n+1){clear:both}.small-up-4 .column,.small-up-4 .columns{width:25%;float:left}.small-up-4 .column:nth-of-type(1n),.small-up-4 .columns:nth-of-type(1n){clear:none}.small-up-4 .column:nth-of-type(4n+1),.small-up-4 .columns:nth-of-type(4n+1){clear:both}.small-up-5 .column,.small-up-5 .columns{width:20%;float:left}.small-up-5 .column:nth-of-type(1n),.small-up-5 .columns:nth-of-type(1n){clear:none}.small-up-5 .column:nth-of-type(5n+1),.small-up-5 .columns:nth-of-type(5n+1){clear:both}.small-up-6 .column,.small-up-6 .columns{width:16.66667%;float:left}.small-up-6 .column:nth-of-type(1n),.small-up-6 .columns:nth-of-type(1n){clear:none}.small-up-6 .column:nth-of-type(6n+1),.small-up-6 .columns:nth-of-type(6n+1){clear:both}.column.small-centered,.small-centered.columns{float:none;margin-left:auto;margin-right:auto}.small-pull-0,.small-push-0,.small-uncenter{position:static;margin-left:0;margin-right:0}@media screen and (min-width:32em){.medium-pull-1,.medium-pull-10,.medium-pull-11,.medium-pull-2,.medium-pull-3,.medium-pull-4,.medium-pull-5,.medium-pull-6,.medium-pull-7,.medium-pull-8,.medium-pull-9,.medium-push-1,.medium-push-10,.medium-push-11,.medium-push-2,.medium-push-3,.medium-push-4,.medium-push-5,.medium-push-7,.medium-push-8,.medium-push-9{position:relative}.medium-1{width:8.33333%}.medium-push-1{left:8.33333%}.medium-pull-1{left:-8.33333%}.medium-offset-0{margin-left:0}.medium-2{width:16.66667%}.medium-push-2{left:16.66667%}.medium-pull-2{left:-16.66667%}.medium-offset-1{margin-left:8.33333%}.medium-3{width:25%}.medium-push-3{left:25%}.medium-pull-3{left:-25%}.medium-offset-2{margin-left:16.66667%}.medium-4{width:33.33333%}.medium-push-4{left:33.33333%}.medium-pull-4{left:-33.33333%}.medium-offset-3{margin-left:25%}.medium-5{width:41.66667%}.medium-push-5{left:41.66667%}.medium-pull-5{left:-41.66667%}.medium-offset-4{margin-left:33.33333%}.medium-6{width:50%}.medium-push-6{position:relative;left:50%}.medium-pull-6{left:-50%}.medium-offset-5{margin-left:41.66667%}.medium-7{width:58.33333%}.medium-push-7{left:58.33333%}.medium-pull-7{left:-58.33333%}.medium-offset-6{margin-left:50%}.medium-8{width:66.66667%}.medium-push-8{left:66.66667%}.medium-pull-8{left:-66.66667%}.medium-offset-7{margin-left:58.33333%}.medium-9{width:75%}.medium-push-9{left:75%}.medium-pull-9{left:-75%}.medium-offset-8{margin-left:66.66667%}.medium-10{width:83.33333%}.medium-push-10{left:83.33333%}.medium-pull-10{left:-83.33333%}.medium-offset-9{margin-left:75%}.medium-11{width:91.66667%}.medium-push-11{left:91.66667%}.medium-pull-11{left:-91.66667%}.medium-offset-10{margin-left:83.33333%}.medium-12{width:100%}.medium-offset-11{margin-left:91.66667%}.medium-up-1 .column,.medium-up-1 .columns{width:100%;float:left}.medium-up-1 .column:nth-of-type(1n),.medium-up-1 .columns:nth-of-type(1n){clear:none}.medium-up-1 .column:nth-of-type(1n+1),.medium-up-1 .columns:nth-of-type(1n+1){clear:both}.medium-up-2 .column,.medium-up-2 .columns{width:50%;float:left}.medium-up-2 .column:nth-of-type(1n),.medium-up-2 .columns:nth-of-type(1n){clear:none}.medium-up-2 .column:nth-of-type(2n+1),.medium-up-2 .columns:nth-of-type(2n+1){clear:both}.medium-up-3 .column,.medium-up-3 .columns{width:33.33333%;float:left}.medium-up-3 .column:nth-of-type(1n),.medium-up-3 .columns:nth-of-type(1n){clear:none}.medium-up-3 .column:nth-of-type(3n+1),.medium-up-3 .columns:nth-of-type(3n+1){clear:both}.medium-up-4 .column,.medium-up-4 .columns{width:25%;float:left}.medium-up-4 .column:nth-of-type(1n),.medium-up-4 .columns:nth-of-type(1n){clear:none}.medium-up-4 .column:nth-of-type(4n+1),.medium-up-4 .columns:nth-of-type(4n+1){clear:both}.medium-up-5 .column,.medium-up-5 .columns{width:20%;float:left}.medium-up-5 .column:nth-of-type(1n),.medium-up-5 .columns:nth-of-type(1n){clear:none}.medium-up-5 .column:nth-of-type(5n+1),.medium-up-5 .columns:nth-of-type(5n+1){clear:both}.medium-up-6 .column,.medium-up-6 .columns{width:16.66667%;float:left}.medium-up-6 .column:nth-of-type(1n),.medium-up-6 .columns:nth-of-type(1n){clear:none}.medium-up-6 .column:nth-of-type(6n+1),.medium-up-6 .columns:nth-of-type(6n+1){clear:both}.column.medium-centered,.medium-centered.columns{float:none;margin-left:auto;margin-right:auto}.medium-pull-0,.medium-push-0,.medium-uncenter{position:static;margin-left:0;margin-right:0}}@media screen and (min-width:64em){.large-pull-1,.large-pull-10,.large-pull-11,.large-pull-2,.large-pull-3,.large-pull-4,.large-pull-5,.large-pull-6,.large-pull-7,.large-pull-8,.large-pull-9,.large-push-1,.large-push-10,.large-push-11,.large-push-2,.large-push-3,.large-push-4,.large-push-5,.large-push-7,.large-push-8,.large-push-9{position:relative}.large-1{width:8.33333%}.large-push-1{left:8.33333%}.large-pull-1{left:-8.33333%}.large-offset-0{margin-left:0}.large-2{width:16.66667%}.large-push-2{left:16.66667%}.large-pull-2{left:-16.66667%}.large-offset-1{margin-left:8.33333%}.large-3{width:25%}.large-push-3{left:25%}.large-pull-3{left:-25%}.large-offset-2{margin-left:16.66667%}.large-4{width:33.33333%}.large-push-4{left:33.33333%}.large-pull-4{left:-33.33333%}.large-offset-3{margin-left:25%}.large-5{width:41.66667%}.large-push-5{left:41.66667%}.large-pull-5{left:-41.66667%}.large-offset-4{margin-left:33.33333%}.large-6{width:50%}.large-push-6{position:relative;left:50%}.large-pull-6{left:-50%}.large-offset-5{margin-left:41.66667%}.large-7{width:58.33333%}.large-push-7{left:58.33333%}.large-pull-7{left:-58.33333%}.large-offset-6{margin-left:50%}.large-8{width:66.66667%}.large-push-8{left:66.66667%}.large-pull-8{left:-66.66667%}.large-offset-7{margin-left:58.33333%}.large-9{width:75%}.large-push-9{left:75%}.large-pull-9{left:-75%}.large-offset-8{margin-left:66.66667%}.large-10{width:83.33333%}.large-push-10{left:83.33333%}.large-pull-10{left:-83.33333%}.large-offset-9{margin-left:75%}.large-11{width:91.66667%}.large-push-11{left:91.66667%}.large-pull-11{left:-91.66667%}.large-offset-10{margin-left:83.33333%}.large-12{width:100%}.large-offset-11{margin-left:91.66667%}.large-up-1 .column,.large-up-1 .columns{width:100%;float:left}.large-up-1 .column:nth-of-type(1n),.large-up-1 .columns:nth-of-type(1n){clear:none}.large-up-1 .column:nth-of-type(1n+1),.large-up-1 .columns:nth-of-type(1n+1){clear:both}.large-up-2 .column,.large-up-2 .columns{width:50%;float:left}.large-up-2 .column:nth-of-type(1n),.large-up-2 .columns:nth-of-type(1n){clear:none}.large-up-2 .column:nth-of-type(2n+1),.large-up-2 .columns:nth-of-type(2n+1){clear:both}.large-up-3 .column,.large-up-3 .columns{width:33.33333%;float:left}.large-up-3 .column:nth-of-type(1n),.large-up-3 .columns:nth-of-type(1n){clear:none}.large-up-3 .column:nth-of-type(3n+1),.large-up-3 .columns:nth-of-type(3n+1){clear:both}.large-up-4 .column,.large-up-4 .columns{width:25%;float:left}.large-up-4 .column:nth-of-type(1n),.large-up-4 .columns:nth-of-type(1n){clear:none}.large-up-4 .column:nth-of-type(4n+1),.large-up-4 .columns:nth-of-type(4n+1){clear:both}.large-up-5 .column,.large-up-5 .columns{width:20%;float:left}.large-up-5 .column:nth-of-type(1n),.large-up-5 .columns:nth-of-type(1n){clear:none}.large-up-5 .column:nth-of-type(5n+1),.large-up-5 .columns:nth-of-type(5n+1){clear:both}.large-up-6 .column,.large-up-6 .columns{width:16.66667%;float:left}.large-up-6 .column:nth-of-type(1n),.large-up-6 .columns:nth-of-type(1n){clear:none}.large-up-6 .column:nth-of-type(6n+1),.large-up-6 .columns:nth-of-type(6n+1){clear:both}.column.large-centered,.large-centered.columns{float:none;margin-left:auto;margin-right:auto}.large-pull-0,.large-push-0,.large-uncenter{position:static;margin-left:0;margin-right:0}.large-text-left{text-align:left}}.breadcrumbs::after,.button-group::after,.clearfix::after,.pagination::after,.tabs::after,.title-bar::after,.top-bar::after,hr{clear:both}ol,ul{margin-left:1.25rem}blockquote,dd,div,dl,dt,form,h1,h2,h3,h4,h5,h6,li,ol,p,pre,td,th,ul{margin:0;padding:0}dl,ol,p,ul{margin-bottom:1rem}p{font-size:inherit}h1,h2,h3,h4,h5,h6{font-style:normal;color:inherit;margin-top:0;margin-bottom:.5rem;line-height:1.4}code,kbd{background-color:#e6e6e6;color:#0a0a0a;font-family:Consolas,"Liberation Mono",Courier,monospace}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{color:#cacaca;line-height:0}h1{font-size:1.5rem}h2{font-size:1.25rem}h3{font-size:1.1875rem}h4{font-size:1.125rem}h5{font-size:1.0625rem}h6{font-size:1rem}@media screen and (min-width:32em){h1{font-size:3rem}h2{font-size:2.5rem}h3{font-size:1.9375rem}h4{font-size:1.5625rem}h5{font-size:1.25rem}h6{font-size:1rem}.medium-text-left{text-align:left}}a{background-color:transparent;color:#2199e8;text-decoration:none;cursor:pointer}a:focus,a:hover{color:#1585cf}a img{border:0}hr{box-sizing:content-box;max-width:75rem;height:0;border-top:0;border-bottom:1px solid #cacaca;margin:1.25rem auto}dl,ol,ul{list-style-position:outside}li{font-size:inherit}ul{list-style-type:disc}ol ol,ol ul,ul ol,ul ul{margin-left:1.25rem;margin-bottom:0;list-style-type:inherit}.accordion,.menu,.tabs{list-style-type:none}dl dt{margin-bottom:.3rem;font-weight:700}.subheader,code,label{font-weight:400}blockquote{margin:0 0 1rem;padding:.5625rem 1.25rem 0 1.1875rem;border-left:1px solid #cacaca}blockquote,blockquote p{line-height:1.6;color:#8a8a8a}cite{display:block;font-size:.8125rem;color:#8a8a8a}cite:before{content:'\2014 \0020'}abbr{color:#0a0a0a;cursor:help;border-bottom:1px dotted #0a0a0a}code{border:1px solid #cacaca;padding:.125rem .3125rem .0625rem}kbd{padding:.125rem .25rem 0;margin:0}.subheader{margin-top:.2rem;margin-bottom:.5rem;line-height:1.4;color:#8a8a8a}.lead{font-size:125%;line-height:1.6}.button,.stat{line-height:1}.stat{font-size:2.5rem}p+.stat{margin-top:-1rem}.no-bullet{margin-left:0;list-style:none}.text-left{text-align:left}.text-right{text-align:right}@media screen and (min-width:32em){.medium-text-right{text-align:right}}@media screen and (min-width:64em){.large-text-right{text-align:right}.large-text-center{text-align:center}}.text-center{text-align:center}@media screen and (min-width:32em){.medium-text-center{text-align:center}}.text-justify{text-align:justify}@media screen and (min-width:32em){.medium-text-justify{text-align:justify}}@media screen and (min-width:64em){.large-text-justify{text-align:justify}}.show-for-print{display:none!important}@media print{blockquote,img,pre,tr{page-break-inside:avoid}*{background:0 0!important;color:#000!important;box-shadow:none!important;text-shadow:none!important}.show-for-print{display:block!important}.hide-for-print{display:none!important}table.show-for-print{display:table!important}thead.show-for-print{display:table-header-group!important}tbody.show-for-print{display:table-row-group!important}tr.show-for-print{display:table-row!important}td.show-for-print,th.show-for-print{display:table-cell!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}.ir a:after,a[href^='javascript:']:after,a[href^='#']:after{content:''}abbr[title]:after{content:" (" attr(title) ")"}blockquote,pre{border:1px solid #999}thead{display:table-header-group}img{max-width:100%!important}@page{margin:.5cm}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}}.button{display:inline-block;text-align:center;cursor:pointer;-webkit-appearance:none;transition:all .25s ease-out;border:1px solid transparent;border-radius:0;padding:.85em 1em;margin:0 1rem 1rem 0;font-size:.9rem;background:#2199e8;color:#fff}[data-whatinput=mouse] .button{outline:0}.button:focus,.button:hover{background:#1583cc;color:#fff}.button.tiny{font-size:.6rem}.button.small{font-size:.75rem}.button.large{font-size:1.25rem}.button.expanded{display:block;width:100%;margin-left:0;margin-right:0}.button.primary{background:#2199e8;color:#fff}.button.primary:focus,.button.primary:hover{background:#147cc0;color:#fff}.button.secondary{background:#777;color:#fff}.button.secondary:focus,.button.secondary:hover{background:#5f5f5f;color:#fff}.button.success{background:#3adb76;color:#fff}.button.success:focus,.button.success:hover{background:#22bb5b;color:#fff}.button.alert{background:#ec5840;color:#fff}.button.alert:focus,.button.alert:hover{background:#da3116;color:#fff}.button.warning{background:#ffae00;color:#fff}.button.warning:focus,.button.warning:hover{background:#cc8b00;color:#fff}.button.hollow{border:1px solid #2199e8;color:#2199e8}.button.hollow,.button.hollow:focus,.button.hollow:hover{background:0 0}.button.hollow:focus,.button.hollow:hover{border-color:#0c4d78;color:#0c4d78}.button.hollow.primary{border:1px solid #2199e8;color:#2199e8}.button.hollow.primary:focus,.button.hollow.primary:hover{border-color:#0c4d78;color:#0c4d78}.button.hollow.secondary{border:1px solid #777;color:#777}.button.hollow.secondary:focus,.button.hollow.secondary:hover{border-color:#3b3b3b;color:#3b3b3b}.button.hollow.success{border:1px solid #3adb76;color:#3adb76}.button.hollow.success:focus,.button.hollow.success:hover{border-color:#157539;color:#157539}.button.hollow.alert{border:1px solid #ec5840;color:#ec5840}.button.hollow.alert:focus,.button.hollow.alert:hover{border-color:#881f0e;color:#881f0e}.button.hollow.warning{border:1px solid #ffae00;color:#ffae00}.button.hollow.warning:focus,.button.hollow.warning:hover{border-color:#805700;color:#805700}.button.disabled{opacity:.25;cursor:not-allowed;pointer-events:none}.button.dropdown::after{content:'';width:0;height:0;border:.4em inset;border-color:#fefefe transparent transparent;border-top-style:solid;top:.4em;float:right;margin-left:1em;display:inline-block}.button.arrow-only::after{margin-left:0;float:none;top:.2em}[type=text],[type=password],[type=date],[type=datetime],[type=datetime-local],[type=month],[type=week],[type=email],[type=tel],[type=time],[type=url],[type=color],[type=number],[type=search],textarea{display:block;box-sizing:border-box;width:100%;height:2.4375rem;padding:.5rem;border:1px solid #cacaca;margin:0 0 1rem;font-family:inherit;font-size:1rem;color:#8a8a8a;background-color:#fefefe;box-shadow:inset 0 1px 2px rgba(10,10,10,.1);border-radius:0;transition:box-shadow .5s,border-color .25s ease-in-out;-webkit-appearance:none;-moz-appearance:none}[type=text]:focus,[type=password]:focus,[type=date]:focus,[type=datetime]:focus,[type=datetime-local]:focus,[type=month]:focus,[type=week]:focus,[type=email]:focus,[type=tel]:focus,[type=time]:focus,[type=url]:focus,[type=color]:focus,[type=number]:focus,[type=search]:focus,textarea:focus{border:1px solid #8a8a8a;background:#fefefe;outline:0;box-shadow:0 0 5px #cacaca;transition:box-shadow .5s,border-color .25s ease-in-out}textarea{min-height:50px;max-width:100%}textarea[rows]{height:auto}input:disabled,input[readonly],textarea:disabled,textarea[readonly]{background-color:#e6e6e6;cursor:default}[type=button],[type=submit]{border-radius:0;-webkit-appearance:none;-moz-appearance:none}[type=file],[type=checkbox],[type=radio]{margin:0 0 1rem}[type=checkbox]+label,[type=radio]+label{display:inline-block;margin-left:.5rem;margin-right:1rem;margin-bottom:0;vertical-align:baseline}label>[type=label],label>[type=checkbox]{margin-right:.5rem}[type=file]{width:100%}label{display:block;margin:0;font-size:.875rem;line-height:1.8;color:#0a0a0a}.form-error,.menu-text,.switch{font-weight:700}label.middle{margin:0 0 1rem;padding:.5625rem 0}.help-text{margin-top:-.5rem;font-size:.8125rem;color:#333}.input-group{display:table;width:100%;margin-bottom:1rem}.input-group-button,.input-group-label{height:100%;width:1%;text-align:center}.input-group-button,.input-group-field,.input-group-label{display:table-cell;margin:0;vertical-align:middle}.input-group-label{padding:0 1rem;background:#e6e6e6;color:#0a0a0a;border:1px solid #cacaca}.input-group-label:first-child{border-right:0}.input-group-label:last-child{border-left:0}.fieldset,select{border:1px solid #cacaca}.input-group-button{padding-top:0;padding-bottom:0}fieldset{border:0;padding:0;margin:0}legend{margin-bottom:.5rem}.fieldset{padding:1.25rem;margin:1.125rem 0}.fieldset legend{background:#fefefe;padding:0 .1875rem;margin:0 0 0 -.1875rem}select{height:2.4375rem;padding:.5rem;margin:0 0 1rem;font-size:1rem;font-family:inherit;line-height:normal;color:#8a8a8a;background-color:#fafafa;border-radius:0;-webkit-appearance:none;-moz-appearance:none;background-image:url('data:image/svg+xml;utf8,');background-size:9px 6px;background-position:right .5rem center;background-repeat:no-repeat}.form-error,.is-invalid-label{color:#ec5840}@media screen and (min-width:0\0){select{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg==)}}select:disabled{background-color:#e6e6e6;cursor:default}select::-ms-expand{display:none}select[multiple]{height:auto}.is-invalid-input:not(:focus){background-color:rgba(236,88,64,.1);border-color:#ec5840}.form-error{display:none;margin-top:-.5rem;margin-bottom:1rem;font-size:.75rem}.form-error.is-visible{display:block}.hide{display:none!important}@media screen and (min-width:0em) and (max-width:31.9375em){.hide-for-small-only{display:none!important}}@media screen and (max-width:-0.0625em),screen and (min-width:32em){.show-for-small-only{display:none!important}}@media screen and (min-width:32em){.hide-for-medium{display:none!important}}@media screen and (max-width:31.9375em){.show-for-medium{display:none!important}}@media screen and (min-width:32em) and (max-width:63.9375em){.hide-for-medium-only{display:none!important}}@media screen and (max-width:31.9375em),screen and (min-width:64em){.show-for-medium-only{display:none!important}}@media screen and (min-width:64em){.hide-for-large{display:none!important}}@media screen and (max-width:63.9375em){.show-for-large{display:none!important}}@media screen and (min-width:64em) and (max-width:74.9375em){.hide-for-large-only{display:none!important}}@media screen and (max-width:63.9375em),screen and (min-width:75em){.show-for-large-only{display:none!important}}.show-for-sr,.show-on-focus{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.show-on-focus:active,.show-on-focus:focus{position:static!important;height:auto;width:auto;overflow:visible;clip:auto}.flex-video,.is-drilldown,html{overflow:hidden}.hide-for-portrait,.show-for-landscape{display:block!important}@media screen and (orientation:landscape){.hide-for-portrait,.show-for-landscape{display:block!important}.hide-for-landscape,.show-for-portrait{display:none!important}}.hide-for-landscape,.show-for-portrait{display:none!important}@media screen and (orientation:portrait){.hide-for-portrait,.show-for-landscape{display:none!important}.hide-for-landscape,.show-for-portrait{display:block!important}}.float-left{float:left!important}.float-right{float:right!important}.float-center{display:block;margin-left:auto;margin-right:auto}.clearfix::after,.clearfix::before{content:' ';display:table}.accordion{background:#fefefe;border:1px solid #e6e6e6;border-radius:0;margin-left:0}.accordion-title{display:block;padding:1.25rem 1rem;line-height:1;font-size:.75rem;color:#2199e8;position:relative;border-bottom:1px solid #e6e6e6}.accordion-title:focus,.accordion-title:hover{background-color:#e6e6e6}:last-child>.accordion-title{border-bottom-width:0}.accordion-title::before{content:'+';position:absolute;right:1rem;top:50%;margin-top:-.5rem}.is-active>.accordion-title::before{content:'–'}.accordion-content{padding:1.25rem 1rem;display:none;border-bottom:1px solid #e6e6e6}.badge{display:inline-block;padding:.3em;min-width:2.1em;font-size:.6rem;text-align:center;border-radius:50%;background:#2199e8;color:#fefefe}.badge.secondary{background:#777;color:#fefefe}.badge.success{background:#3adb76;color:#fefefe}.badge.alert{background:#ec5840;color:#fefefe}.badge.warning{background:#ffae00;color:#fefefe}.breadcrumbs{list-style:none;margin:0 0 1rem}.breadcrumbs::after,.breadcrumbs::before{content:' ';display:table}.breadcrumbs li{float:left;color:#0a0a0a;font-size:.6875rem;cursor:default;text-transform:uppercase}.breadcrumbs li:not(:last-child)::after{color:#cacaca;content:"/";margin:0 .75rem;position:relative;top:1px;opacity:1}.breadcrumbs a{color:#2199e8}.breadcrumbs a:hover{text-decoration:underline}.breadcrumbs .disabled{color:#cacaca}.button-group{margin-bottom:1rem;font-size:.9rem}.button-group::after,.button-group::before{content:' ';display:table}.button-group .button{float:left;margin:0;font-size:inherit}.button-group .button:not(:last-child){border-right:1px solid #fefefe}.button-group.tiny{font-size:.6rem}.button-group.small{font-size:.75rem}.button-group.large{font-size:1.25rem}.button-group.expanded .button:nth-last-child(2):first-child,.button-group.expanded .button:nth-last-child(2):first-child~.button{width:50%}.button-group.expanded .button:nth-last-child(3):first-child,.button-group.expanded .button:nth-last-child(3):first-child~.button{width:33.33333%}.button-group.expanded .button:nth-last-child(4):first-child,.button-group.expanded .button:nth-last-child(4):first-child~.button{width:25%}.button-group.expanded .button:nth-last-child(5):first-child,.button-group.expanded .button:nth-last-child(5):first-child~.button{width:20%}.button-group.expanded .button:nth-last-child(6):first-child,.button-group.expanded .button:nth-last-child(6):first-child~.button{width:16.66667%}.button-group.primary .button{background:#2199e8;color:#fff}.button-group.primary .button:focus,.button-group.primary .button:hover{background:#147cc0;color:#fff}.button-group.secondary .button{background:#777;color:#fff}.button-group.secondary .button:focus,.button-group.secondary .button:hover{background:#5f5f5f;color:#fff}.button-group.success .button{background:#3adb76;color:#fff}.button-group.success .button:focus,.button-group.success .button:hover{background:#22bb5b;color:#fff}.button-group.alert .button{background:#ec5840;color:#fff}.button-group.alert .button:focus,.button-group.alert .button:hover{background:#da3116;color:#fff}.button-group.warning .button{background:#ffae00;color:#fff}.button-group.warning .button:focus,.button-group.warning .button:hover{background:#cc8b00;color:#fff}.button-group.stacked .button,.button-group.stacked-for-small .button{width:100%;border-right:0}@media screen and (min-width:32em){.button-group.stacked-for-small .button{width:auto}.button-group.stacked-for-small .button:not(:last-child){border-right:1px solid #fefefe}}.callout{margin:0 0 1rem;padding:1rem;border:1px solid rgba(10,10,10,.25);border-radius:0;position:relative;background-color:#fff}.callout>:first-child{margin-top:0}.callout>:last-child{margin-bottom:0}.callout.primary{background-color:#def0fc}.callout.primary a{color:#116ca8}.callout.primary a:hover{color:#0a4063}.callout.secondary{background-color:#ebebeb}.callout.success{background-color:#e1faea}.callout.success a{color:#1ea450}.callout.success a:hover{color:#126330}.callout.alert{background-color:#fce6e2}.callout.alert a{color:#bf2b13}.callout.alert a:hover{color:#791b0c}.callout.warning{background-color:#fff3d9}.callout.warning a{color:#b37a00}.callout.warning a:hover{color:#664600}.callout.small{padding:.5rem}.callout.large{padding:3rem}.close-button{position:absolute;color:#8a8a8a;right:1rem;top:.5rem;font-size:2em;line-height:1;cursor:pointer}[data-whatinput=mouse] .close-button{outline:0}.close-button:focus,.close-button:hover{color:#0a0a0a}.is-drilldown{position:relative}.is-drilldown-sub{position:absolute;top:0;left:100%;z-index:-1;height:100%;width:100%;background:#fefefe;transition:-webkit-transform .15s linear;transition:transform .15s linear}.is-drilldown-sub.is-active{z-index:1;display:block;-webkit-transform:translateX(-100%);-ms-transform:translateX(-100%);transform:translateX(-100%)}.is-drilldown-sub.is-closing{-webkit-transform:translateX(100%);-ms-transform:translateX(100%);transform:translateX(100%)}.dropdown-pane{background-color:#fefefe;border:1px solid #cacaca;display:block;padding:1rem;position:absolute;width:300px;z-index:10;border-radius:0}.dropdown-pane.is-open{visibility:visible}.dropdown-pane.tiny{width:100px}.dropdown-pane.small{width:200px}.dropdown-pane.large{width:400px}.dropdown.menu .has-submenu{position:relative}.dropdown.menu .has-submenu a::after{float:right;margin-top:3px;margin-left:10px}.dropdown.menu .has-submenu.is-down-arrow>a::after{content:'';display:block;width:0;height:0;border:5px inset;border-color:#2199e8 transparent transparent;border-top-style:solid}.dropdown.menu .has-submenu.is-left-arrow>a::after{content:'';display:block;width:0;height:0;border:5px inset;border-color:transparent #2199e8 transparent transparent;border-right-style:solid;float:left;margin-left:0;margin-right:10px}.dropdown.menu.vertical.align-right,.menu.align-right>li{float:right}.dropdown.menu .has-submenu.is-right-arrow>a::after{content:'';display:block;width:0;height:0;border:5px inset;border-color:transparent transparent transparent #2199e8;border-left-style:solid}.dropdown.menu .has-submenu.is-left-arrow.opens-inner .submenu{right:0;left:auto}.dropdown.menu .has-submenu.is-right-arrow.opens-inner .submenu{left:0;right:auto}.dropdown.menu .has-submenu.opens-inner .submenu{top:100%}.dropdown.menu .submenu{display:none;position:absolute;top:0;left:100%;min-width:200px;z-index:1;background:#fefefe;border:1px solid #cacaca}.dropdown.menu .submenu>li{width:100%}.dropdown.menu .submenu.first-sub{top:100%;left:0;right:auto}.dropdown.menu .submenu.js-dropdown-active,.dropdown.menu .submenu:not(.js-dropdown-nohover)>.has-submenu:hover>.dropdown.menu .submenu{display:block}.dropdown.menu .has-submenu.opens-left .submenu{left:auto;right:100%}.dropdown.menu.align-right .submenu.first-sub{top:100%;left:auto;right:0}.dropdown.menu.vertical{width:100px}.dropdown.menu.vertical>li .submenu{top:0;left:100%}.flex-video{position:relative;height:0;padding-top:1.5625rem;padding-bottom:75%;margin-bottom:1rem}.flex-video embed,.flex-video iframe,.flex-video object,.flex-video video{position:absolute;top:0;left:0;width:100%;height:100%}.flex-video.widescreen{padding-bottom:56.25%}.flex-video.vimeo{padding-top:0}.label{display:inline-block;padding:.33333rem .5rem;font-size:.8rem;line-height:1;white-space:nowrap;cursor:default;border-radius:0;background:#2199e8;color:#fefefe}.label.secondary{background:#777;color:#fefefe}.label.success{background:#3adb76;color:#fefefe}.label.alert{background:#ec5840;color:#fefefe}.label.warning{background:#ffae00;color:#fefefe}.media-object{margin-bottom:1rem;display:block}.media-object img{max-width:none}@media screen and (min-width:0em) and (max-width:31.9375em){.media-object.stack-for-small .media-object-section{display:block;padding:0 0 1rem}.media-object.stack-for-small .media-object-section img{width:100%}}.media-object-section{display:table-cell;vertical-align:top}.media-object-section:first-child{padding-right:1rem}.media-object-section:last-child:not(+&:first-child){padding-left:1rem}.media-object-section.middle{vertical-align:middle}.media-object-section.bottom{vertical-align:bottom}.menu>li,.menu>li>a>i,.menu>li>a>img,.menu>li>a>span{vertical-align:middle}.menu{margin:0}[data-whatinput=mouse] .menu>li{outline:0}.menu>li>a{display:block;padding:.7rem 1rem;line-height:1}.menu a,.menu button,.menu input{margin-bottom:0}.menu>li>a>i,.menu>li>a>img{display:inline-block;margin-right:.25rem}.menu>li{display:table-cell}.menu.vertical>li{display:block}@media screen and (min-width:32em){.menu.medium-horizontal>li{display:table-cell}.menu.medium-vertical>li{display:block}}@media screen and (min-width:64em){.menu.large-horizontal>li{display:table-cell}.menu.large-vertical>li{display:block}}.menu.simple a{padding:0;margin-right:1rem}.menu.expanded{display:table;width:100%}.menu.expanded>li:nth-last-child(2):first-child,.menu.expanded>li:nth-last-child(2):first-child~li{width:50%}.menu.expanded>li:nth-last-child(3):first-child,.menu.expanded>li:nth-last-child(3):first-child~li{width:33.33333%}.menu.expanded>li:nth-last-child(4):first-child,.menu.expanded>li:nth-last-child(4):first-child~li{width:25%}.menu.expanded>li:nth-last-child(5):first-child,.menu.expanded>li:nth-last-child(5):first-child~li{width:20%}.menu.expanded>li:nth-last-child(6):first-child,.menu.expanded>li:nth-last-child(6):first-child~li{width:16.66667%}.menu.expanded>li:first-child:last-child,body{width:100%}.menu.icon-top>li>a{text-align:center}.menu.icon-top>li>a>i,.menu.icon-top>li>a>img{display:block;margin:0 auto .25rem}.menu.nested{margin-left:1rem}.menu-text{color:inherit;line-height:1;padding:.7rem 1rem}body,html{height:100%}body{overflow-x:hidden;position:relative;-webkit-backface-visibility:hidden;backface-visibility:hidden}body.is-off-canvas-open{overflow-y:hidden}.off-canvas-wrapper{transition:-webkit-transform .5s ease;transition:transform .5s ease}.js-off-canvas-exit{display:none;position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(254,254,254,.25);cursor:pointer;transition:background .5s ease}.is-off-canvas-open .js-off-canvas-exit{display:block}.off-canvas{position:absolute;background:#e6e6e6;z-index:-1;min-height:100%}.orbit,.orbit-container{position:relative}[data-whatinput=mouse] .off-canvas{outline:0}.off-canvas.position-left{left:-250px;top:0;width:250px}.is-open-left{-webkit-transform:translateX(250px);-ms-transform:translateX(250px);transform:translateX(250px)}.off-canvas.position-right{right:-250px;top:0;width:250px}.is-open-right{-webkit-transform:translateX(-250px);-ms-transform:translateX(-250px);transform:translateX(-250px)}.main-content{min-height:100%;background:#fefefe;transition:-webkit-transform .5s ease;transition:transform .5s ease;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1;box-shadow:0 0 10px rgba(10,10,10,.5)}.orbit-caption,.orbit-next:active,.orbit-next:focus,.orbit-next:hover,.orbit-previous:active,.orbit-previous:focus,.orbit-previous:hover{background-color:rgba(10,10,10,.5)}@media screen and (min-width:32em){.position-left.reveal-for-medium{left:0}.position-left.reveal-for-medium~.main-content{margin-left:250px}.position-right.reveal-for-medium{right:0}.position-right.reveal-for-medium~.main-content{margin-right:250px}}@media screen and (min-width:64em){.position-left.reveal-for-large{left:0}.position-left.reveal-for-large~.main-content{margin-left:250px}.position-right.reveal-for-large{right:0}.position-right.reveal-for-large~.main-content{margin-right:250px}}.orbit-container{margin:0;overflow:hidden;list-style:none}.orbit-caption,.orbit-next,.orbit-previous{position:absolute;padding:1rem;color:#fefefe}.orbit-slide{width:100%;max-height:100%}.orbit-figure{margin:0}.orbit-image{margin:0;width:100%;max-width:100%}.orbit-caption{width:100%;margin-bottom:0}.orbit-next,.orbit-previous{top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);z-index:10}[data-whatinput=mouse] .orbit-next,[data-whatinput=mouse] .orbit-previous{outline:0}.orbit-previous{left:0}.orbit-next{left:auto;right:0}.orbit-bullets{position:relative;margin-top:.8rem;margin-bottom:.8rem;text-align:center}[data-whatinput=mouse] .orbit-bullets{outline:0}.orbit-bullets button{width:1.2rem;height:1.2rem;margin:.1rem;background-color:#cacaca;border-radius:50%}.orbit-bullets button.is-active,.orbit-bullets button:hover{background-color:#8a8a8a}.pagination{margin-left:0;margin-bottom:1rem}.pagination::after,.pagination::before{content:' ';display:table}.pagination li{font-size:.875rem;margin-right:.0625rem;display:none;border-radius:0}.pagination li:first-child,.pagination li:last-child{display:inline-block}@media screen and (min-width:32em){.pagination li{display:inline-block}.reveal{min-height:0}}.pagination a,.pagination button{color:#0a0a0a;display:block;padding:.1875rem .625rem;border-radius:0}.pagination a:hover,.pagination button:hover{background:#e6e6e6}.pagination [aria-label=previous]::before{content:'«';display:inline-block;margin-right:.75rem}.pagination [aria-label=next]::after{content:'»';display:inline-block;margin-left:.75rem}.pagination .current{padding:.1875rem .625rem;background:#2199e8;color:#fefefe;cursor:default}.pagination .disabled{padding:.1875rem .625rem;color:#cacaca;cursor:default}.pagination .disabled:hover{background:0 0}.pagination .ellipsis::after{content:'…';padding:.1875rem .625rem;color:#0a0a0a}.progress{background-color:#cacaca;height:1rem;margin-bottom:1rem;border-radius:0}.progress.primary .progress-meter{background-color:#2199e8}.progress.secondary .progress-meter{background-color:#777}.progress.success .progress-meter{background-color:#3adb76}.progress.alert .progress-meter{background-color:#ec5840}.progress.warning .progress-meter{background-color:#ffae00}.progress-meter{position:relative;display:block;width:0;height:100%;background-color:#2199e8;border-radius:0}.progress-meter .progress-meter-text{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);margin:0;font-size:.75rem;font-weight:700;color:#fefefe;white-space:nowrap}.slider-fill,.slider-handle{left:0;display:inline-block}.slider{position:relative;height:.5rem;margin-top:1.25rem;margin-bottom:2.25rem;background-color:#e6e6e6;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.slider-fill{position:absolute;top:0;max-width:100%;height:.5rem;background-color:#cacaca;transition:all .2s ease-in-out}.slider-fill.is-dragging{transition:all 0s linear}.slider-handle{top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);position:absolute;z-index:1;width:1.4rem;height:1.4rem;background-color:#2199e8;transition:all .2s ease-in-out;-ms-touch-action:manipulation;touch-action:manipulation;border-radius:0}[data-whatinput=mouse] .slider-handle{outline:0}.slider-handle:hover{background-color:#1583cc}.slider-handle.is-dragging{transition:all 0s linear}.slider.disabled,.slider[disabled]{opacity:.25;cursor:not-allowed}.slider.vertical{display:inline-block;width:.5rem;height:12.5rem;margin:0 1.25rem;-webkit-transform:scale(1,-1);-ms-transform:scale(1,-1);transform:scale(1,-1)}.slider.vertical .slider-fill{top:0;width:.5rem;max-height:100%}.slider.vertical .slider-handle{position:absolute;top:0;left:50%;width:1.4rem;height:1.4rem;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.sticky-container{position:relative}.sticky{position:absolute;z-index:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.sticky.is-stuck{position:fixed;z-index:5}.sticky.is-stuck.is-at-top{top:0}.sticky.is-anchored{position:absolute;left:auto;right:auto}.reveal-overlay{display:none;position:fixed;top:0;bottom:0;left:0;right:0;z-index:1005;background-color:rgba(10,10,10,.45);overflow-y:scroll}.reveal{display:none;z-index:1006;padding:1rem;border:1px solid #cacaca;margin:100px auto 0;background-color:#fefefe;border-radius:0;position:absolute;overflow-y:auto}.switch-paddle,.switch-paddle::after{display:block;transition:all .25s ease-out}[data-whatinput=mouse] .reveal{outline:0}.reveal .column,.reveal .columns{min-width:0}.reveal>:last-child{margin-bottom:0}.reveal.collapse{padding:0}caption,tbody td,tbody th{padding:.5rem .625rem .625rem}@media screen and (min-width:32em){.reveal{width:600px;max-width:75rem}.reveal .reveal{left:auto;right:auto;margin:0 auto}.reveal.tiny{width:30%;max-width:75rem}.reveal.small{width:50%;max-width:75rem}.reveal.large{width:90%;max-width:75rem}}.reveal.full{top:0;left:0;width:100%;height:100%;height:100vh;min-height:100vh;max-width:none;margin-left:0}.switch{margin-bottom:1rem;outline:0;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;color:#fefefe;font-size:.875rem}.switch-input{opacity:0;position:absolute}.switch-paddle{background:#cacaca;cursor:pointer;position:relative;width:4rem;height:2rem;border-radius:0;color:inherit;font-weight:inherit}.has-tip,.title-bar-title,caption{font-weight:700}input+.switch-paddle{margin:0}.switch-paddle::after{background:#fefefe;content:'';position:absolute;height:1.5rem;left:.25rem;top:.25rem;width:1.5rem;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.switch-active,.switch-inactive,.tooltip.left::before{-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%)}input:checked~.switch-paddle{background:#2199e8}input:checked~.switch-paddle::after{left:2.25rem}[data-whatinput=mouse] input:focus~.switch-paddle{outline:0}.switch-active,.switch-inactive{position:absolute;top:50%;transform:translateY(-50%)}.switch-active{left:8%;display:none}input:checked+label>.switch-active{display:block}.switch-inactive{right:15%}input:checked+label>.switch-inactive{display:none}.switch.tiny .switch-paddle{width:3rem;height:1.5rem;font-size:.625rem}.switch.tiny .switch-paddle::after{width:1rem;height:1rem}.switch.tiny input:checked~.switch-paddle:after{left:1.75rem}.switch.small .switch-paddle{width:3.5rem;height:1.75rem;font-size:.75rem}.switch.small .switch-paddle::after{width:1.25rem;height:1.25rem}.switch.small input:checked~.switch-paddle:after{left:2rem}.switch.large .switch-paddle{width:5rem;height:2.5rem;font-size:1rem}.switch.large .switch-paddle::after{width:2rem;height:2rem}.switch.large input:checked~.switch-paddle:after{left:2.75rem}table{border-collapse:collapse;border-spacing:0;margin-bottom:1rem;border-radius:0}tbody,tfoot,thead{border:1px solid #f1f1f1;background-color:#fefefe}tfoot,thead{background:#f8f8f8;color:#0a0a0a}tfoot tr,thead tr{background:0 0}tfoot td,tfoot th,thead td,thead th{padding:.5rem .625rem .625rem;font-weight:700;text-align:left}tbody tr:nth-child(even){background-color:#f1f1f1}@media screen and (max-width:63.9375em){table.stack tfoot,table.stack thead{display:none}table.stack td,table.stack th,table.stack tr{display:block}table.stack td{border-top:0}}.tabs,.tabs-content{border:1px solid #e6e6e6}table.scroll{display:block;width:100%;overflow-y:scroll}table.hover tr:hover{background-color:#f9f9f9}table.hover tr:nth-of-type(even):hover{background-color:#ececec}.tabs{margin:0;background:#fefefe}.tabs::after,.tabs::before{content:' ';display:table}.tabs.simple>li>a{padding:0}.tabs.simple>li>a:hover{background:0 0}.tabs.vertical>li{width:auto;float:none;display:block}.tabs-title,.title-bar-left{float:left}.tabs.primary{background:#2199e8}.tabs.primary>li>a{color:#fefefe}.tabs.primary>li>a:focus,.tabs.primary>li>a:hover{background:#1893e4}.tabs-title>a{display:block;padding:1.25rem 1.5rem;line-height:1;font-size:12px;color:#2199e8}.tabs-title>a:focus,.tabs-title>a:hover,.tabs-title>a[aria-selected=true]{background:#e6e6e6}.tabs-content{background:#fefefe;transition:all .5s ease;border-top:0}.tabs-content.vertical{border:1px solid #e6e6e6;border-left:0}.tabs-panel{display:none;padding:1rem}.tabs-panel.is-active{display:block}.thumbnail{border:4px solid #fefefe;box-shadow:0 0 0 1px rgba(10,10,10,.2);display:inline-block;line-height:0;max-width:100%;transition:box-shadow .2s ease-out;border-radius:0;margin-bottom:1rem}.thumbnail:focus,.thumbnail:hover{box-shadow:0 0 6px 1px rgba(33,153,232,.5)}.title-bar{background:#0a0a0a;color:#fefefe;padding:.5rem}.title-bar::after,.title-bar::before{content:' ';display:table}.menu-icon.dark::after,.menu-icon::after{content:'';top:0;left:0}.menu-icon,.title-bar-title{display:inline-block;vertical-align:middle}.title-bar .menu-icon{margin-left:.25rem;margin-right:.5rem}.title-bar-right{float:right;text-align:right}.menu-icon{position:relative;cursor:pointer;width:20px;height:16px}.menu-icon::after{position:absolute;display:block;width:100%;height:2px;background:#fff;box-shadow:0 7px 0 #fff,0 14px 0 #fff}.menu-icon:hover::after{background:#cacaca;box-shadow:0 7px 0 #cacaca,0 14px 0 #cacaca}.menu-icon.dark{position:relative;display:inline-block;vertical-align:middle;cursor:pointer;width:20px;height:16px}.menu-icon.dark::after{position:absolute;display:block;width:100%;height:2px;background:#000;box-shadow:0 7px 0 #000,0 14px 0 #000}.menu-icon.dark:hover::after{background:#666;box-shadow:0 7px 0 #666,0 14px 0 #666}.has-tip{border-bottom:dotted 1px #8a8a8a;position:relative;display:inline-block}.tooltip.top::before,.tooltip::before{content:'';display:block;width:0;height:0}.has-tip:hover{cursor:help}.tooltip{background-color:#0a0a0a;color:#fefefe;font-size:80%;padding:.75rem;position:absolute;z-index:10;top:calc(100% + .6495rem);max-width:10rem!important;border-radius:0}.tooltip::before{border:.75rem inset;border-color:transparent transparent #0a0a0a;border-bottom-style:solid;bottom:100%;position:absolute;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.tooltip.top::before{border:.75rem inset;border-color:#0a0a0a transparent transparent;border-top-style:solid;top:100%;bottom:auto}.tooltip.left::before,.tooltip.right::before{content:'';display:block;width:0;height:0;bottom:auto;top:50%}.tooltip.left::before{border:.75rem inset;border-color:transparent transparent transparent #0a0a0a;border-left-style:solid;left:100%;transform:translateY(-50%)}.tooltip.right::before{border:.75rem inset;border-color:transparent #0a0a0a transparent transparent;border-right-style:solid;left:auto;right:100%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.top-bar{padding:.5rem}.top-bar::after,.top-bar::before{content:' ';display:table}.top-bar,.top-bar ul{background-color:#eee}.top-bar input{width:200px;margin-right:1rem}@media screen and (min-width:32em){.top-bar-left{float:left}.top-bar-right{float:right}} \ No newline at end of file diff --git a/dist/foundation.min.js b/dist/foundation.min.js index 70423e621..17239f4f2 100644 --- a/dist/foundation.min.js +++ b/dist/foundation.min.js @@ -1,3 +1,3 @@ -!function(t){"use strict";function e(t){if(void 0===Function.prototype.name){var e=/function\s([^(]{1,})\(/,i=e.exec(t.toString());return i&&i.length>1?i[1].trim():""}return t.prototype.constructor.name}function i(t){return t.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()}var n="6.0.0-alpha.1",s={version:n,_plugins:{},_uuids:[],_activePlugins:{},rtl:function(){return"rtl"===t("html").attr("dir")},plugin:function(t){var n=e(t),s=i(n);this._plugins[s]=this[n]=t},registerPlugin:function(t){var i=e(t.constructor).toLowerCase();t.uuid=this.GetYoDigits(6,i),t.$element.attr("data-"+i,t.uuid).trigger("init.zf."+i),this._activePlugins[t.uuid]=t},unregisterPlugin:function(t){var i=e(t.constructor).toLowerCase();delete this._activePlugins[t.uuid],t.$element.trigger("destroyed.zf."+i)},_reflow:function(t){var e=Object.keys(this._activePlugins),i=this;if(t){if("string"==typeof t){var n=t.split("-")[1];n?this._activePlugins[t]._init():(n=new RegExp(t,"i"),e.filter(function(t){return n.test(t)}).forEach(function(t){i._activePlugins[t]._init()}))}}else e.forEach(function(t){i._activePlugins[t]._init()})},GetYoDigits:function(t,e){return Math.round(Math.pow(36,t+1)-Math.random()*Math.pow(36,t)).toString(36).slice(1)+(e?"-"+e:"")},reflow:function(e,i){"undefined"==typeof i?i=Object.keys(this._plugins):"string"==typeof i&&(i=[i]);var n=this;t.each(i,function(i,s){var o=n._plugins[s],a=t(e).find("[data-"+s+"]").addBack("*");a.each(function(){return t(this).attr("zf-plugin")?void console.warn("Tried to initialize "+s+" on an element that already has a Foundation plugin."):void t(this).data("zf-plugin",new o(t(this)))})})}};s.util={throttle:function(t,e){var i=null;return function(){var n=this,s=arguments;null===i&&(i=setTimeout(function(){t.apply(n,s),i=null},e))}}};var o=function(e){var i=typeof e,n=t("meta.foundation-mq");return n.length||t('').appendTo(document.head),"undefined"===i?(s.MediaQuery._init(),s.reflow(this)):"object"===i?s.reflow(this):("string"===i||"array"===i)&&s.reflow(this,e),this};window.Foundation=s,t.fn.foundation=o,function(){Date.now||(Date.now=function(){return(new Date).getTime()});for(var t=["webkit","moz"],e=0;eo?s=i.requestAnimationFrame(r["do"],e):(i.cancelAnimationFrame(s),e.trigger("finished.zf.animate",[e]))},i.requestAnimationFrame(this["do"])}e.Move=n}(jQuery,window.Foundation,window),!function(t,e){"use strict";e.Keyboard={};var i={9:"TAB",13:"ENTER",27:"ESCAPE",32:"SPACE",37:"ARROW_LEFT",38:"ARROW_UP",39:"ARROW_RIGHT",40:"ARROW_DOWN"},n=function(t){var e={};for(var i in t)e[t[i]]=t[i];return e}(i);e.Keyboard.keys=n;var s=function(t){var e=i[t.which||t.keyCode];return t.shiftKey&&(e="SHIFT_"+e),t.ctrlKey&&(e="CTRL_"+e),t.altKey&&(e="ALT_"+e),e};e.Keyboard.parseKey=s;var o={},a=function(i,n,a){var r,d,h,u=o[l(n)],c=s(i);return u?(r="undefined"==typeof u.ltr?u:e.rtl()?t.extend({},u.ltr,u.rtl):t.extend({},u.rtl,u.ltr),d=r[c],h=a[d],void(h&&"function"==typeof h?(h.apply(n),(a.handled||"function"==typeof a.handled)&&a.handled.apply(n)):(a.unhandled||"function"==typeof a.unhandled)&&a.unhandled.apply(n))):console.warn("Component not defined!")};e.Keyboard.handleKey=a;var r=function(t,e){o[t]=e};e.Keyboard.register=r;var l=function(t){return/function (.+)\(/.exec(t.constructor.toString())[1]||""}}(jQuery,window.Foundation),!function(t,e){function i(t){var e={};return"string"!=typeof t?e:(t=t.trim().slice(1,-1))?e=t.split("&").reduce(function(t,e){var i=e.replace(/\+/g," ").split("="),n=i[0],s=i[1];return n=decodeURIComponent(n),s=void 0===s?null:decodeURIComponent(s),t.hasOwnProperty(n)?Array.isArray(t[n])?t[n].push(s):t[n]=[t[n],s]:t[n]=s,t},{}):e}var n={queries:[],current:"",atLeast:function(t){var e=this.get(t);return e?window.matchMedia(e).matches:!1},get:function(t){for(var e in this.queries){var i=this.queries[e];if(t===i.name)return i.value}return null},_init:function(){var e,n=this,s=t(".foundation-mq").css("font-family");e=i(s);for(var o in e)n.queries.push({name:o,value:"only screen and (min-width: "+e[o]+")"});this.current=this._getCurrentSize(),this._watcher()},_getCurrentSize:function(){var t;for(var e in this.queries){var i=this.queries[e];window.matchMedia(i.value).matches&&(t=i)}return t.name},_watcher:function(){var e=this;t(window).on("resize.zf.mediaquery",function(){var i=e._getCurrentSize();i!==e.current&&(t(window).trigger("changed.zf.mediaquery",[i,e.current]),e.current=i)})}};e.MediaQuery=n,window.matchMedia||(window.matchMedia=function(){"use strict";var t=window.styleMedia||window.media;if(!t){var e=document.createElement("style"),i=document.getElementsByTagName("script")[0],n=null;e.type="text/css",e.id="matchmediajs-test",i.parentNode.insertBefore(e,i),n="getComputedStyle"in window&&window.getComputedStyle(e,null)||e.currentStyle,t={matchMedium:function(t){var i="@media "+t+"{ #matchmediajs-test { width: 1px; } }";return e.styleSheet?e.styleSheet.cssText=i:e.textContent=i,"1px"===n.width}}}return function(e){return{matches:t.matchMedium(e||"all"),media:e||"all"}}}())}(jQuery,Foundation),!function(t,e){"use strict";function i(e,i){e.attr("role","menubar");var n=e.find("li").attr({role:"menuitem",tabindex:0}),i=i||"zf",s="is-"+i+"-submenu",o=s+"-item";n.each(function(){var e=t(this),i=e.children("ul");i.length&&(e.addClass("has-submenu"),i.addClass("submenu "+s).attr("data-submenu","")),e.parent("[data-submenu]").length&&e.addClass("is-submenu-item "+o)})}e.Nest.Feather=i}(jQuery,window.Foundation),!function(t,e){function i(e,i,o,a){function r(){e||i.hide(),l(),a&&a.apply(i)}function l(){i[0].style.transitionDuration=0,i.removeClass(d+" "+h+" "+o)}if(i=t(i).eq(0),i.length){var d=e?n[0]:n[1],h=e?s[0]:s[1];l(),i.addClass(o),i.css("transition","none"),requestAnimationFrame(function(){i.addClass(d),e&&i.show()}),requestAnimationFrame(function(){i[0].offsetWidth,i.css("transition",""),i.addClass(h)}),i.one("transitionend",r)}}var n=["mui-enter","mui-leave"],s=["mui-enter-active","mui-leave-active"],o=(function(){var t={transition:"transitionend",WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"otransitionend"},e=document.createElement("div");for(var i in t)if("undefined"!=typeof e.style[i])return t[i]}(),{animateIn:function(t,e,n){i(!0,t,e,n)},animateOut:function(t,e,n){i(!1,t,e,n)}});e.Motion=o}(jQuery,Foundation),!function(t,e){"use strict";function i(e,i){var n=e.length;0===n&&i();var s=function(){n--,0===n&&i()};e.each(function(){this.complete?s():"undefined"!=typeof this.naturalWidth&&this.naturalWidth>0?s():t(this).one("load",function(){s()})})}e.onImagesLoaded=i}(jQuery,window.Foundation),!function(t,e,i){function n(t,e,i,n){var o,a,r,l,d=s(t);if(e){var h=s(e);a=d.offset.top+d.height<=h.height+h.offset.top,o=d.offset.top>=h.offset.top,r=d.offset.left>=h.offset.left,l=d.offset.left+d.width<=h.width}else a=d.offset.top+d.height<=d.windowDims.height+d.windowDims.offset.top,o=d.offset.top>=d.windowDims.offset.top,r=d.offset.left>=d.windowDims.offset.left,l=d.offset.left+d.width<=d.windowDims.width;var u=[a,o,r,l];return i?r===l==!0:n?o===a==!0:-1===u.indexOf(!1)}function s(e){var n=t(i);return{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset(),parentDims:{width:e.parent().outerWidth(),height:e.parent().outerHeight(),offset:e.parent().offset()},windowDims:{width:n.width(),height:n.height(),offset:{top:n.scrollTop(),left:n.scrollLeft()}}}}function o(t,e,i,n,o,a){var r=s(t),l=e?s(e):null;switch(i){case"top":return{left:l.offset.left,top:l.offset.top-(r.height+n)};case"left":return{left:l.offset.left-(r.width+o),top:l.offset.top};case"right":return{left:l.offset.left+l.width+o,top:l.offset.top};case"center top":return{left:l.offset.left+l.width/2-r.width/2,top:l.offset.top-(r.height+n)};case"center bottom":return{left:a?o:l.offset.left+l.width/2-r.width/2,top:l.offset.top+l.height+n};case"center left":return{left:l.offset.left-(r.width+o),top:l.offset.top+l.height/2-r.height/2};case"center right":return{left:l.offset.left+l.width+o+1,top:l.offset.top+l.height/2-r.height/2};case"center":return{left:r.windowDims.offset.left+r.windowDims.width/2-r.width/2,top:r.windowDims.offset.top+r.windowDims.height/2-r.height/2};case"reveal":return{left:(r.windowDims.width-r.width)/2,top:r.windowDims.offset.top+n};case"reveal full":return{left:r.windowDims.offset.left,top:r.windowDims.offset.top};default:return{left:l.offset.left,top:l.offset.top+l.height+n}}}e.ImNotTouchingYou=n,e.GetDimensions=s,e.GetOffsets=o}(jQuery,window.Foundation,window),function(t){function e(){this.removeEventListener("touchmove",i),this.removeEventListener("touchend",e),d=!1}function i(i){if(t.spotSwipe.preventDefault&&i.preventDefault(),d){var n,s=i.touches[0].pageX,h=i.touches[0].pageY,u=o-s,c=a-h;l=(new Date).getTime()-r,Math.abs(u)>=t.spotSwipe.moveThreshold&&l<=t.spotSwipe.timeThreshold?n=u>0?"left":"right":Math.abs(c)>=t.spotSwipe.moveThreshold&&l<=t.spotSwipe.timeThreshold&&(n=c>0?"down":"up"),n&&(e.call(this),t(this).trigger("swipe",n).trigger("swipe"+n))}}function n(t){1==t.touches.length&&(o=t.touches[0].pageX,a=t.touches[0].pageY,d=!0,r=(new Date).getTime(),this.addEventListener("touchmove",i,!1),this.addEventListener("touchend",e,!1))}function s(){this.addEventListener&&this.addEventListener("touchstart",n,!1)}t.spotSwipe={version:"1.0.0",enabled:"ontouchstart"in document.documentElement,preventDefault:!0,moveThreshold:75,timeThreshold:200};var o,a,r,l,d=!1;t.event.special.swipe={setup:s},t.each(["left","up","down","right"],function(){t.event.special["swipe"+this]={setup:function(){t(this).on("swipe",t.noop)}}})}(jQuery),!function(t,e){function i(t){var i=e("[data-yeti-box]"),n=["dropdown","tooltip","reveal"];if(t&&("string"==typeof t?n.push(t):"object"==typeof t&&"string"==typeof t[0]?n.concat(t):console.error("Plugin names must be strings")),i.length){var s=n.map(function(t){return"closeme.zf."+t}).join(" ");e(window).off(s).on(s,function(t,i){var n=t.namespace.split(".")[0],s=e("[data-"+n+"]").not('[data-yeti-box="'+i+'"]');s.each(function(){var t=e(this);t.triggerHandler("close.zf.trigger",[t])})})}}function n(t){var i,n,s,o=e("[data-resize]");o.length&&e(window).off("resize.zf.trigger").on("resize.zf.trigger",function(a){i&&clearTimeout(i),i=setTimeout(function(){for(n=0,s=o.length;s>n;n++){var t=e(o[n]);t.triggerHandler("resizeme.zf.trigger",[t])}},t||10)})}function s(t){var i,n,s,o=e("[data-scroll]");o.length&&e(window).off("scroll.zf.trigger").on("scroll.zf.trigger",function(a){i&&clearTimeout(i),i=setTimeout(function(){for(n=0,s=o.length;s>n;n++){var t=e(o[n]);t.triggerHandler("scrollme.zf.trigger",[t])}},t||50)})}e(document).on("click.zf.trigger","[data-open]",function(){var t=e(this).data("open");e("#"+t).triggerHandler("open.zf.trigger",[e(this)])}),e(document).on("click.zf.trigger","[data-close]",function(){var t=e(this).data("close");t?e("#"+t).triggerHandler("close.zf.trigger",[e(this)]):e(this).trigger("close.zf.trigger")}),e(document).on("click.zf.trigger","[data-toggle]",function(){var t=e(this).data("toggle");e("#"+t).triggerHandler("toggle.zf.trigger",[e(this)])}),e(document).on("close.zf.trigger","[data-closable]",function(){var i=e(this).data("closable")||"fadeOut";t.Motion?t.Motion.animateOut(e(this),i,function(){e(this).trigger("closed.zf")}):e(this).fadeOut().trigger("closed.zf")}),e(window).load(function(){n(),s(),i()}),t.IHearYou=n,t.ISeeYou=s,t.IFeelYou=i}(window.Foundation,window.jQuery),!function(t,e){"use strict";function i(t,n){this.$element=t,this.options=e.extend({},i.defaults,this.$element.data(),n),this.$window=e(window),this.name="Abide",this.attr="data-abide",this._init(),this._events(),this.$element.trigger("init.zf.abide")}i.defaults={validateOn:"fieldChange",labelErrorClass:"is-invalid-label",inputErrorClass:"is-invalid-input",formErrorSelector:".form-error",formErrorClass:"is-visible",patterns:{alpha:/^[a-zA-Z]+$/,alpha_numeric:/^[a-zA-Z0-9]+$/,integer:/^[-+]?\d+$/,number:/^[-+]?\d*(?:[\.\,]\d+)?$/,card:/^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$/,cvv:/^([0-9]){3,4}$/,email:/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+$/,url:/^(https?|ftp|file|ssh):\/\/(((([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-zA-Z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-zA-Z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-zA-Z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-zA-Z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-zA-Z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-zA-Z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/,domain:/^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,8}$/,datetime:/^([0-2][0-9]{3})\-([0-1][0-9])\-([0-3][0-9])T([0-5][0-9])\:([0-5][0-9])\:([0-5][0-9])(Z|([\-\+]([0-1][0-9])\:00))$/,date:/(?:19|20)[0-9]{2}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-9])|(?:(?!02)(?:0[1-9]|1[0-2])-(?:30))|(?:(?:0[13578]|1[02])-31))$/,time:/^(0[0-9]|1[0-9]|2[0-3])(:[0-5][0-9]){2}$/,dateISO:/^\d{4}[\/\-]\d{1,2}[\/\-]\d{1,2}$/,month_day_year:/^(0[1-9]|1[012])[- \/.](0[1-9]|[12][0-9]|3[01])[- \/.]\d{4}$/,day_month_year:/^(0[1-9]|[12][0-9]|3[01])[- \/.](0[1-9]|1[012])[- \/.]\d{4}$/,color:/^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/},validators:{equalTo:function(t,e,i){var n=document.getElementById(t.getAttribute(this.add_namespace("data-equalto"))).value,s=t.value,o=n===s;return o}}},i.prototype._init=function(){},i.prototype._events=function(){var t=this;this.$element.off(".abide").on("reset.fndtn.abide",function(i){t.resetForm(e(this))}).on("submit.fndtn.abide",function(e){e.preventDefault(),t.validateForm(t.$element)}).find("input, textarea, select").off(".abide").on("blur.fndtn.abide change.fndtn.abide",function(i){"fieldChange"===t.options.validateOn&&t.validateInput(e(i.target),t.$element)}).on("keydown.fndtn.abide",function(t){})},i.prototype._reflow=function(){},i.prototype.requiredCheck=function(t){switch(t[0].type){case"text":return t.attr("required")&&!t.val()?!1:!0;case"checkbox":return t.attr("required")&&!t.is(":checked")?!1:!0;case"radio":return t.attr("required")&&!t.is(":checked")?!1:!0;default:return!t.attr("required")||t.val()&&t.val().length&&!t.is(":empty")?!0:!1}},i.prototype.findLabel=function(t){return t.next("label").length?t.next("label"):t.closest("label")},i.prototype.addErrorClasses=function(t){var e=this,i=e.findLabel(t),n=t.next(e.options.formErrorSelector)||t.find(e.options.formErrorSelector);i&&i.addClass(e.options.labelErrorClass),n&&n.addClass(e.options.formErrorClass),t.addClass(e.options.inputErrorClass)},i.prototype.removeErrorClasses=function(t){var e=this,i=e.findLabel(t),n=t.next(e.options.formErrorSelector)||t.find(e.options.formErrorSelector);i&&i.hasClass(e.options.labelErrorClass)&&i.removeClass(e.options.labelErrorClass),n&&n.hasClass(e.options.formErrorClass)&&n.removeClass(e.options.formErrorClass),t.hasClass(e.options.inputErrorClass)&&t.removeClass(e.options.inputErrorClass)},i.prototype.validateInput=function(t,i){var n,s,o=this;i.find('input[type="text"]'),i.find('input[type="checkbox"]');"text"===t[0].type?o.requiredCheck(t)&&o.validateText(t)?(o.removeErrorClasses(t),t.trigger("valid.fndtn.abide",t[0])):(o.addErrorClasses(t),t.trigger("invalid.fndtn.abide",t[0])):"radio"===t[0].type?(s=t.attr("name"),n=t.siblings("label"),o.validateRadio(s)?(e(n).each(function(){e(this).hasClass(o.options.labelErrorClass)&&e(this).removeClass(o.options.labelErrorClass)}),t.trigger("valid.fndtn.abide",t[0])):(e(n).each(function(){e(this).addClass(o.options.labelErrorClass)}),t.trigger("invalid.fndtn.abide",t[0]))):"checkbox"===t[0].type?o.requiredCheck(t)?(o.removeErrorClasses(t),t.trigger("valid.fndtn.abide",t[0])):(o.addErrorClasses(t),t.trigger("invalid.fndtn.abide",t[0])):o.requiredCheck(t)&&o.validateText(t)?(o.removeErrorClasses(t),t.trigger("valid.fndtn.abide",t[0])):(o.addErrorClasses(t),t.trigger("invalid.fndtn.abide",t[0]))},i.prototype.validateForm=function(t){for(var i=this,n=t.find("input"),s=t.find("input").length,o=0;s>o;)i.validateInput(e(n[o]),t),o++;t.find(".form-error.is-visible").length||t.find(".is-invalid-label").length?t.find("[data-abide-error]").css("display","block"):t.find("[data-abide-error]").css("display","none")},i.prototype.validateText=function(t){var i=this.options.patterns,n=e(el).val(),s=e(el).attr("pattern");return 0===n.length?!0:n.match(i[s])?!0:!1},i.prototype.validateRadio=function(t){var i=this,n=(e(':radio[name="'+t+'"]').siblings("label"),0);return e(':radio[name="'+t+'"]').each(function(){i.requiredCheck(e(this))||n++,e(this).is(":checked")&&(n=0)}),n>0?!1:!0},i.prototype.matchValidation=function(t,e){},i.prototype.resetForm=function(t){var i=this,n="data-invalid";e("["+i.invalidAttr+"]",t).removeAttr(n),e("."+i.options.labelErrorClass,t).not("small").removeClass(i.options.labelErrorClass),e("."+i.options.inputErrorClass,t).not("small").removeClass(i.options.inputErrorClass),e(".form-error.is-visible").removeClass("is-visible"),t.find("[data-abide-error]").css("display","none"),e(":input",t).not(":button, :submit, :reset, :hidden, [data-abide-ignore]").val("").removeAttr(n)},t.plugin(i),"undefined"!=typeof module&&"undefined"!=typeof module.exports&&(module.exports=i),"function"==typeof define&&define(["foundation"],function(){return i})}(Foundation,jQuery),!function(t){"use strict";function e(i,n){this.$element=i,this.options=t.extend({},e.defaults,this.$element.data(),n),this._init(),Foundation.registerPlugin(this),Foundation.Keyboard.register("Accordion",{ENTER:"toggle",SPACE:"toggle",ARROW_DOWN:"next",ARROW_UP:"previous"})}e.defaults={slideSpeed:250,multiExpand:!1,allowAllClosed:!1},e.prototype._init=function(){this.$element.attr("role","tablist"),this.$tabs=this.$element.children("li"),this.$tabs.each(function(e,i){var n=t(i),s=n.find("[data-tab-content]"),o=s[0].id||Foundation.GetYoDigits(6,"accordion"),a=i.id||o+"-label";n.find("a:first").attr({"aria-controls":o,role:"tab",id:a,"aria-expanded":!1,"aria-selected":!1}),s.attr({role:"tabpanel","aria-labelledby":a,"aria-hidden":!0,id:o})});var e=this.$element.find(".is-active").children("[data-tab-content]");e.length&&this.down(e,!0),this._events()},e.prototype._events=function(){var e=this;this.$tabs.each(function(){var i=t(this),n=i.children("[data-tab-content]");n.length&&i.children("a").off("click.zf.accordion keydown.zf.accordion").on("click.zf.accordion",function(t){t.preventDefault(),i.hasClass("is-active")?(e.options.allowAllClosed||i.siblings().hasClass("is-active"))&&e.up(n):e.down(n)}).on("keydown.zf.accordion",function(t){Foundation.Keyboard.handleKey(t,e,{toggle:function(){e.toggle(n)},next:function(){i.next().find("a").focus().trigger("click.zf.accordion")},previous:function(){i.prev().find("a").focus().trigger("click.zf.accordion")},handled:function(){t.preventDefault(),t.stopPropagation()}})})})},e.prototype.toggle=function(t){if(t.parent().hasClass("is-active")){if(!this.options.allowAllClosed&&!t.parent().siblings().hasClass("is-active"))return;this.up(t)}else this.down(t)},e.prototype.down=function(e,i){var n=this;if(!this.options.multiExpand&&!i){var s=this.$element.find(".is-active").children("[data-tab-content]");s.length&&this.up(s)}e.attr("aria-hidden",!1).parent("[data-tab-content]").addBack().parent().addClass("is-active"),Foundation.Move(n.options.slideSpeed,e,function(){e.slideDown(n.options.slideSpeed)}),i||Foundation._reflow(this.$element.attr("data-accordion")),t("#"+e.attr("aria-labelledby")).attr({"aria-expanded":!0,"aria-selected":!0}),this.$element.trigger("down.zf.accordion",[e])},e.prototype.up=function(e){var i=e.parent().siblings(),n=this,s=this.options.multiExpand?i.hasClass("is-active"):e.parent().hasClass("is-active");(this.options.allowAllClosed||s)&&(Foundation.Move(this.options.slideSpeed,e,function(){e.slideUp(n.options.slideSpeed)}),e.attr("aria-hidden",!0).parent().removeClass("is-active"),t("#"+e.attr("aria-labelledby")).attr({"aria-expanded":!1,"aria-selected":!1}),this.$element.trigger("up.zf.accordion",[e]))},e.prototype.destroy=function(){this.$element.find("[data-tab-content]").slideUp(0).css("display",""),this.$element.find("a").off(".zf.accordion"),Foundation.unregisterPlugin(this)},Foundation.plugin(e)}(jQuery),!function(t){"use strict";function e(i,n){this.$element=i,this.options=t.extend({},e.defaults,this.$element.data(),n),Foundation.Nest.Feather(this.$element,"accordion"),this._init(),Foundation.registerPlugin(this),Foundation.Keyboard.register("AccordionMenu",{ENTER:"toggle",SPACE:"toggle",ARROW_RIGHT:"open",ARROW_UP:"up",ARROW_DOWN:"down",ARROW_LEFT:"close",ESCAPE:"closeAll",TAB:"down",SHIFT_TAB:"up"})}e.defaults={slideSpeed:250,wrapOnKeys:!1,multiOpen:!1},e.prototype._init=function(){this.$element.find("[data-submenu]").not(".is-active").slideUp(0),this.$element.attr({role:"tablist","aria-multiselectable":this.options.multiOpen}),this.$menuLinks=this.$element.find(".has-submenu"),this.$menuLinks.each(function(){var e=this.id||Foundation.GetYoDigits(6,"acc-menu-link"),i=t(this),n=i.children("[data-submenu]"),s=n[0].id||Foundation.GetYoDigits(6,"acc-menu"),o=n.hasClass("is-active");i.attr({"aria-controls":s,"aria-expanded":o,"aria-selected":!1,role:"tab",id:e}),n.attr({"aria-labelledby":e,"aria-hidden":!o,role:"tabpanel",id:s})});var e=this.$element.find(".is-active");if(e.length){var i=this;e.each(function(){i.down(t(this))})}this._events()},e.prototype._events=function(){var e=this;this.$element.find("li").each(function(){var i=t(this).children("[data-submenu]");i.length&&t(this).children("a").off("click.zf.accordionmenu").on("click.zf.accordionmenu",function(t){t.preventDefault(),e.toggle(i)})}).on("keydown.zf.accordionmenu",function(i){var n,s,o=t(this),a=o.parent("ul").children("li"),r=o.children("[data-submenu]");a.each(function(e){return t(this).is(o)?(n=a.eq(Math.max(0,e-1)),s=a.eq(Math.min(e+1,a.length-1)),t(this).children("[data-submenu]:visible").length&&(s=o.find("li:first-child")),t(this).is(":first-child")?n=o.parents("li").first():n.children("[data-submenu]:visible").length&&(n=n.find("li:last-child")),void(t(this).is(":last-child")&&(s=o.parents("li").first().next("li")))):void 0}),Foundation.Keyboard.handleKey(i,e,{open:function(){r.is(":hidden")&&(e.down(r),r.find("li").first().focus(),console.log(r.find("li").first()))},close:function(){r.length&&!r.is(":hidden")?e.up(r):o.parent("[data-submenu]").length&&(e.up(o.parent("[data-submenu]")),o.parents("li").first().focus())},up:function(){n.focus()},down:function(){s.focus()},toggle:function(){o.children("[data-submenu]").length&&e.toggle(o.children("[data-submenu]"))},closeAll:function(){e.hideAll()},handled:function(){i.preventDefault(),i.stopImmediatePropagation()}})})},e.prototype.hideAll=function(){this.$element.find("[data-submenu]").slideUp(this.options.slideSpeed)},e.prototype.toggle=function(t){t.is(":hidden")?this.down(t):this.up(t)},e.prototype.down=function(t){var e=this;this.options.multiOpen||this.up(this.$element.find(".is-active").not(t.parentsUntil(this.$element))),t.addClass("is-active").attr({"aria-hidden":!1}).parent(".has-submenu").attr({"aria-expanded":!0,"aria-selected":!0}),Foundation.Move(this.options.slideSpeed,t,function(){t.slideDown(e.options.slideSpeed)}),this.$element.trigger("down.zf.accordionMenu",[t])},e.prototype.up=function(t){t.slideUp(this.options.slideSpeed,function(){t.find("[data-submenu]").slideUp(0).attr("aria-hidden",!0)}).attr("aria-hidden",!0).parent(".has-submenu").attr({"aria-expanded":!1,"aria-selected":!1}),this.$element.trigger("up.zf.accordionMenu",[t])},e.prototype.destroy=function(){this.$element.find("[data-submenu]").slideDown(0).css("display",""),this.$element.find("a").off("click.zf.accordionMenu"),Foundation.unregisterPlugin(this)},Foundation.plugin(e)}(jQuery),!function(t,e){"use strict";function i(n,s){this.$element=n,this.options=t.extend({},i.defaults,this.$element.data(),s),e.Nest.Feather(this.$element,"drilldown"),this._init(),e.registerPlugin(this),e.registerKeyCommands("Drilldown",{ENTER:"open",SPACE:"open",ARROW_RIGHT:"next",ARROW_UP:"up",ARROW_DOWN:"down",ARROW_LEFT:"previous",ESCAPE:"close",TAB:"down",SHIFT_TAB:"up"})}i.defaults={backButton:'
  • Back
  • ',wrapper:"
    ",closeOnClick:!1,holdOpen:!1},i.prototype._init=function(){this.$submenuAnchors=this.$element.find("li.has-submenu"),this.$submenus=this.$submenuAnchors.children("[data-submenu]").addClass("is-drilldown-sub"),this.$menuItems=this.$element.find("li").not(".js-drilldown-back").attr("role","menuitem"),this._prepareMenu(),this._keyboardEvents()},i.prototype._prepareMenu=function(){var e=this;this.options.holdOpen||this._menuLinkEvents(),this.$submenuAnchors.each(function(){var i=t(this);i.find("a")[0].removeAttribute("href"),i.children("[data-submenu]").attr({"aria-hidden":!0,tabindex:0,role:"menu"}),e._events(i)}),this.$submenus.each(function(){var i=t(this);i.prepend(e.options.backButton),e._back(i)}),this.$element.parent().hasClass("is-drilldown")||(this.$wrapper=t(this.options.wrapper).addClass("is-drilldown").css(this.getMaxHeight()),this.$element.wrap(this.$wrapper))},i.prototype._events=function(e){var i=this;e.on("mousedown.zf.drilldown tap.zf.drilldown touchend.zf.drilldown",function(n){if(n.preventDefault(),n.stopPropagation(),n.target!==n.currentTarget.firstElementChild)return!1;if(i._show(e),i.options.closeOnClick){var s=t("body").not(i.$wrapper);s.off(".zf.drilldown").on("mousedown.zf.drilldown tap.zf.drilldown touchend.zf.drilldown",function(t){t.preventDefault(),i._hideAll(),s.off(".zf.drilldown")})}}),e.find(".js-drilldown-back").eq(0).on("mousedown.zf.drilldown tap.zf.drilldown touchend.zf.drilldown",function(t){})},i.prototype._keyboardEvents=function(){var i=this;this.$menuItems.add(this.$element.find(".js-drilldown-back")).on("keydown.zf.drilldown",function(n){var s,o,a=t(this),r=a.parent("ul").children("li");r.each(function(e){return t(this).is(a)?(s=r.eq(Math.max(0,e-1)),void(o=r.eq(Math.min(e+1,r.length-1)))):void 0}),e.handleKey(n,i,{next:function(){a.is(i.$submenuAnchors)&&(i._show(a),a.on("transitionend.zf.drilldown",function(){a.find("ul li").filter(i.$menuItems).first().focus()}))},previous:function(){i._hide(a.parent("ul")),a.parent("ul").on("transitionend.zf.drilldown",function(){setTimeout(function(){a.parent("ul").parent("li").focus()},1)})},up:function(){s.focus()},down:function(){o.focus()},close:function(){i._back()},open:function(){a.is(i.$menuItems)?a.is(i.$submenuAnchors)&&(i._show(a),setTimeout(function(){a.find("ul li").filter(i.$menuItems).first().focus()},1)):(i._hide(a.parent("ul")),setTimeout(function(){a.parent("ul").parent("li").focus()},1))},handled:function(){n.preventDefault(),n.stopImmediatePropagation()}})})},i.prototype._hideAll=function(){this.$element.find(".is-drilldown-sub.is-active").addClass("is-closing").on("transitionend.zf.drilldown",function(e){t(this).removeClass("is-active is-closing").off("transitionend.zf.drilldown")}),this.$element.trigger("closed.zf.drilldown")},i.prototype._back=function(t){var e=this;t.off("mousedown.zf.drilldown tap.zf.drilldown touchend.zf.drilldown"),t.children(".js-drilldown-back").on("mousedown.zf.drilldown tap.zf.drilldown touchend.zf.drilldown",function(i){e._hide(t)})},i.prototype._menuLinkEvents=function(){var t=this;this.$menuItems.not(".has-submenu").off("mousedown.zf.drilldown tap.zf.drilldown touchend.zf.drilldown").on("mousedown.zf.drilldown tap.zf.drilldown touchend.zf.drilldown",function(e){setTimeout(function(){t._hideAll()},0)})},i.prototype._show=function(t){t.children("[data-submenu]").addClass("is-active"),this.$element.trigger("open.zf.drilldown",[t])},i.prototype._hide=function(e){e.addClass("is-closing").on("transitionend.zf.drilldown",function(e){t(this).removeClass("is-active is-closing").off("transitionend.zf.drilldown")}),e.trigger("hide.zf.drilldown",[e])},i.prototype.getMaxHeight=function(){var e=0,i={};return this.$submenus.each(function(){var i=t(this).children("li").length;e=i>e?i:e}),i.height=e*this.$menuItems[0].getBoundingClientRect().height+"px",i.width=this.$element[0].getBoundingClientRect().width+"px",i},i.prototype.destroy=function(){this._hideAll(),this.$element.unwrap().find(".js-drilldown-back").remove().end().find(".is-active, .is-closing, .is-drilldown-sub").removeClass("is-active is-closing is-drilldown-sub").end().find("[data-submenu]").removeAttr("aria-hidden tabindex role").off(".zf.drilldown").end().off("zf.drilldown"),e.unregisterPlugin(this)},e.plugin(i)}(jQuery,window.Foundation),!function(t,e){"use strict";function i(n,s){this.$element=n,this.options=t.extend({},i.defaults,this.$element.data(),s),this._init(),e.registerPlugin(this)}i.defaults={hoverDelay:250,hover:!1,vOffset:1,hOffset:1,positionClass:""},i.prototype._init=function(){var e=this.$element.attr("id");this.$anchor=t('[data-toggle="'+e+'"]')||t('[data-open="'+e+'"]'),this.$anchor.attr({"aria-controls":e,"data-is-focus":!1,"data-yeti-box":e,"aria-haspopup":!0}),this.options.positionClass=this.getPositionClass(),this.counter=4,this.usedPositions=[],this.$element.attr({"aria-hidden":"true","data-yeti-box":e,"data-resize":e}),this._events()},i.prototype.getPositionClass=function(){var t=this.$element[0].className.match(/(top|left|right)/g);return t=t?t[0]:""},i.prototype.reposition=function(t){this.usedPositions.push(t?t:"bottom"),!t&&this.usedPositions.indexOf("top")<0?this.$element.addClass("top"):"top"===t&&this.usedPositions.indexOf("bottom")<0?this.$element.removeClass(t):"left"===t&&this.usedPositions.indexOf("right")<0?this.$element.removeClass(t).addClass("right"):"right"===t&&this.usedPositions.indexOf("left")<0?this.$element.removeClass(t).addClass("left"):!t&&this.usedPositions.indexOf("top")>-1&&this.usedPositions.indexOf("left")<0?this.$element.addClass("left"):"top"===t&&this.usedPositions.indexOf("bottom")>-1&&this.usedPositions.indexOf("left")<0?this.$element.removeClass(t).addClass("left"):"left"===t&&this.usedPositions.indexOf("right")>-1&&this.usedPositions.indexOf("bottom")<0?this.$element.removeClass(t):"right"===t&&this.usedPositions.indexOf("left")>-1&&this.usedPositions.indexOf("bottom")<0?this.$element.removeClass(t):this.$element.removeClass(t),this.classChanged=!0,this.counter--},i.prototype.setPosition=function(){var t=this.getPositionClass(),i=e.GetDimensions(this.$element),n=(e.GetDimensions(this.$anchor),"left"===t?"left":"right"===t?"left":"top"),s="top"===n?"height":"width"; -"height"===s?this.options.vOffset:this.options.hOffset;if(i.width>=i.windowDims.width||!this.counter&&!e.ImNotTouchingYou(this.$element))return this.$element.offset(e.GetOffsets(this.$element,this.$anchor,"center bottom",this.options.vOffset,this.options.hOffset,!0)).css({width:i.windowDims.width-2*this.options.hOffset,height:"auto"}),this.classChanged=!0,!1;for(this.$element.offset(e.GetOffsets(this.$element,this.$anchor,t,this.options.vOffset,this.options.hOffset));!e.ImNotTouchingYou(this.$element)&&this.counter;)this.reposition(t),this.setPosition()},i.prototype._events=function(){var t=this;this.$element.on({"open.zf.trigger":this.open.bind(this),"close.zf.trigger":this.close.bind(this),"toggle.zf.trigger":this.toggle.bind(this),"resizeme.zf.trigger":this.setPosition.bind(this)}),this.options.hover&&(clearTimeout(t.timeout),this.$anchor.on("mouseenter.zf.dropdown mouseleave.zf.dropdown",function(){t.timeOut=setTimeout(function(){t.toggle()},t.options.hoverDelay)}))},i.prototype.open=function(){this.$element.trigger("closeme.zf.dropdown",this.$element.attr("id"));this.$element.show(),this.setPosition(),this.$element.addClass("is-open").attr("aria-hidden","false"),this.$anchor.addClass("hover"),this.$element.trigger("show.zf.dropdown",[this.$element])},i.prototype.close=function(){if(!this.$element.hasClass("is-open"))return!1;if(this.$element.removeClass("is-open").attr("aria-hidden","true"),this.$anchor.removeClass("hover"),this.classChanged){var t=this.getPositionClass();t&&this.$element.removeClass(t),this.$element.addClass(this.options.positionClass).hide().css({height:"",width:""}),this.classChanged=!1,this.counter=4,this.usedPositions.length=0}this.$element.trigger("hide.zf.dropdown",[this.$element])},i.prototype.toggle=function(){this.$element.hasClass("is-open")?this.close():this.open()},i.prototype.destroy=function(){this.$element.off(".zf.trigger").hide(),this.$anchor.off(".zf.dropdown"),e.unregisterPlugin(this)},e.plugin(i)}(jQuery,window.Foundation),!function(t,e){"use strict";function i(n,s){this.$element=n,this.options=e.extend({},i.defaults,this.$element.data(),s),t.Nest.Feather(this.$element,"dropdown"),this._init(),t.registerPlugin(this),t.Keyboard.register("DropdownMenu",{ENTER:"open",SPACE:"open",ARROW_RIGHT:"next",ARROW_UP:"up",ARROW_DOWN:"down",ARROW_LEFT:"previous",ESCAPE:"close"})}i.defaults={clickOpen:!0,closeOnClick:!1,disableHover:!1,autoclose:!0,hoverDelay:150,closingTime:500,alignment:"left",verticalClass:"vertical",rightClass:"align-right"},i.prototype._init=function(){this.$element.hasClass(this.options.verticalClass)&&(this.vertical=!0),this._prepareMenu()},i.prototype._prepareMenu=function(){var t=this;this.$tabs=this.$element.children("li.has-submenu"),this.$tabs.children("[data-submenu]").addClass("first-sub"),this.$submenus=this.$element.find("li.has-submenu"),this.$menuItems=this.$element.find("li").attr({role:"menuitem",tabindex:0}),this.$menuItems.children("a").attr("tabindex",-1),this.$element.hasClass(this.options.rightClass)?(this.options.alignment="right",this.$submenus.addClass("is-right-arrow")):this.$submenus.addClass("is-left-arrow"),this.vertical||this.$tabs.removeClass("is-right-arrow is-left-arrow").addClass("is-down-arrow"),this.$tabs.each(function(){var t=e(this);t.attr({role:"menuitem",tabindex:0,title:t.children("a:first-child").text()}).children("a").attr("tabindex",-1),t.children("[data-submenu]")&&t.attr("aria-haspopup",!0)}),this.$submenus.each(function(){var i=e(this);"right"===t.options.alignment&&i.children("[data-submenu]").addClass("is-right-arrow"),i.children("[data-submenu]").attr({"aria-hidden":!0,tabindex:-1,role:"menu"}).addClass("vertical"),t._events(i)})},i.prototype._events=function(i){var n=this;this.options.clickOpen&&i.on("click.zf.dropdownmenu tap.zf.dropdownmenu touchend.zf.dropdownmenu",function(t){e(t.target).parent("li").hasClass("has-submenu")&&(t.preventDefault(),t.stopPropagation(),i.data("isClick")?n._hide(i):(n._hideOthers(i),n._show(i),i.data("isClick",!0).parentsUntil("[data-dropdown-menu]",".has-submenu").data("isClick",!0),n.options.closeOnClick&&n._addBodyHandler()))}),this.options.disableHover||(this.$menuItems.on("mouseenter.zf.dropdownmenu",function(t){var i=e(this);i.hasClass("is-active")||n._hideOthers(i)}),i.on("mouseenter.zf.dropdownmenu",function(t){clearTimeout(i.closeTimer),i.hasClass("is-active")||(i.openTimer=setTimeout(function(){n._show(i)},n.options.hoverDelay))}).on("mouseleave.zf.dropdownmenu",function(t){!i.data("isClick")&&n.options.autoclose&&(clearTimeout(i.openTimer),i.closeTimer=setTimeout(function(){n._hide(i)},n.options.closingTime))})),this.$menuItems.on("keydown.zf.dropdownmenu",function(i){var s,o,a=e(this),r=n.$element.children("li"),l=a.is(r),d=l?r:a.parents("li").first().add(a.parent("ul").children("li"));d.each(function(t){return e(this).is(a)?(s=d.eq(t-1),void(o=d.eq(t+1))):void 0});var h=function(){a.is(":last-child")||o.focus()},u=function(){s.focus()},c=function(){a.has("ul").length&&(n._show(a),a.find("li").first().focus())},f=function(){a.parents("li").first().focus(),n._hide(a.parents("li").first())},p={open:c,close:function(){n._hideAll(),n.$menuItems.first().focus()},handled:function(){i.preventDefault(),i.stopImmediatePropagation()}};l?n.vertical?"left"===n.options.alignment?e.extend(p,{down:h,up:u,next:c,previous:f}):e.extend(p,{down:h,up:u,next:f,previous:c}):e.extend(p,{next:h,previous:u,down:c,up:f}):"left"===n.options.alignment?e.extend(p,{next:c,previous:f,down:h,up:u}):e.extend(p,{next:f,previous:c,down:h,up:u}),t.Keyboard.handleKey(i,n,p)})},i.prototype._toggle=function(t){t.hasClass("is-active")?this._hide(t):this._show(t)},i.prototype._addBodyHandler=function(){var t=e("body"),i=this;t.not(i.$element).on("click.zf.dropdownmenu tap.zf.dropdownmenu touchend.zf.dropdownmenu",function(e){i._hideAll(),t.off("click.zf.dropdownmenu tap.zf.dropdownmenu touchend.zf.dropdownmenu")})},i.prototype._show=function(e){this._hideOthers(e),e.focus();var i=e.children("[data-submenu]:first-of-type");e.addClass("is-active"),i.css("visibility","hidden").addClass("js-dropdown-active").attr("aria-hidden",!1);var n=t.ImNotTouchingYou(i,null,!0);n||("left"===this.options.alignment?i.removeClass("is-left-arrow").addClass("is-right-arrow"):i.removeClass("is-right-arrow").addClass("is-left-arrow"),this.changed=!0),i.css("visibility",""),this.$element.trigger("show.zf.dropdownmenu",[e])},i.prototype._hide=function(t){this._hideSome(t)},i.prototype._hideSome=function(t){t.length&&(t.removeClass("is-active").data("isClick",!1).find(".is-active").removeClass("is-active").data("isClick",!1).end().find(".js-dropdown-active").removeClass("js-dropdown-active").attr("aria-hidden",!0),t.parent(".has-submenu").removeClass("is-active"),this.changed&&("left"===this.options.alignment?t.find(".is-right-arrow").removeClass("is-right-arrow").addClass("is-left-arrow"):t.find(".is-left-arrow").removeClass("is-left-arrow").addClass("is-right-arrow")),this.$element.trigger("hide.zf.dropdownmenu"))},i.prototype._hideOthers=function(t){this._hideSome(t.siblings(".has-submenu.is-active"))},i.prototype._hideAll=function(){this._hideSome(this.$element)},i.prototype.destroy=function(){this._hideAll(),this.$element.removeData("zf-plugin").find("li").removeClass("js-dropdown-nohover").off(".zf.dropdownmenu"),t.unregisterPlugin(this)},t.plugin(i)}(Foundation,jQuery),!function(t,e){"use strict";function i(n,s){this.$element=n,this.options=e.extend({},i.defaults,this.$element.data(),s),this.$window=e(window),this.name="equalizer",this.attr="data-equalizer",this._init(),this._events(),t.registerPlugin(this)}i.defaults={equalizeOnStack:!0,throttleInterval:50},i.prototype._init=function(){this._reflow()},i.prototype._events=function(){var e=this;this.$window.off(".equalizer").on("resize.fndtn.equalizer",t.util.throttle(function(){e._reflow()},e.options.throttleInterval))},i.prototype._killswitch=function(){},i.prototype._reflow=function(){var i=this;e("["+this.attr+"]").each(function(){var n=e(this),s=[],o=n.find("img");o.length?t.onImagesLoaded(o,function(){s=i.getHeights(n),i.applyHeight(n,s)}):(s=i.getHeights(n),i.applyHeight(n,s))})},i.prototype.getHeights=function(t){var i,n=t.data("equalizer"),s=n?t.find("["+this.attr+'-watch="'+n+'"]:visible'):t.find("["+this.attr+"-watch]:visible");return s.height("inherit"),i=s.map(function(){return e(this).outerHeight(!1)}).get(),console.log(i),i},i.prototype.applyHeight=function(t,i){var n=t.data("equalizer"),s=n?t.find("["+this.attr+'-watch="'+n+'"]:visible'):t.find("["+this.attr+"-watch]:visible"),o=Math.max.apply(null,i);t.trigger("preEqualized.zf.Equalizer");for(var a=0;a',nextButton:'',prevButton:''}},i.prototype._init=function(){this.id=this.$element.attr("id")||t.GetYoDigits(6,"joyride"),this.current=0,this.$items=e([]),this.structure=this._parseList(),this._render(this.structure),this._events(),this.options.autostart&&this.start()},i.prototype._parseList=function(){var t=[];return this.$element.find("li").each(function(n){var s=e.extend({},{text:e(this).html(),$target:e(e(this).data("target")),isModal:!e(e(this).data("target")).length,closable:i.defaults.closable},e(this).data());t.push(s)}),t},i.prototype._render=function(i){for(var n in i){var s,o=e.extend({},this.options,i[n]);if(o.$target.length){var a=new t.Tooltip(i[n].$target,{positionClass:o.position,disableHover:!0,clickOpen:!1,tooltipClass:"tooltip joyride",triggerClass:"",hOffset:this.options.hOffset,vOffset:this.options.vOffset});this.structure[n].item=a,s=a.template}else{var r=new t.Reveal(e('
    ').appendTo(e("body")));this.structure[n].item=r,s=r.$element}if(s.attr({"data-index":n,"data-joyride-for":i[n].target}).html(i[n].text),o.keyboardAccess&&s.attr("tabindex","-1"),this.$items=this.$items.add(s),i[n].nextText||o.showNext&&n0){var l=e('
    ');(i[n].prevText||o.showPrev&&n>0)&&l.append(e(this.options.templates.prevButton).text(o.prevText)),(i[n].nextText||o.showNext&&n0&&this.showPrev()},close:function(){this.structure[this.current].closable&&this._hideItem(this.current)},handled:function(){n.preventDefault()}})})},i.prototype.destroy=function(){this.$element.hide(),this.$items.destroy(),this.$element.trigger("destroyed.zf.joyride")},t.plugin(i),"undefined"!=typeof module&&"undefined"!=typeof module.exports&&(module.exports=i),"function"==typeof define&&define(["foundation"],function(){return i})}(Foundation,jQuery),!function(t,e){"use strict";function i(n,s){this.$element=n,this.options=e.extend({},i.defaults,s),this.$window=e(window),this.name="magellan",this.attr="data-magellan",this.attrArrival="data-magellan-target",this._init(),this._events(),t.registerPlugin(this)}i.defaults={animationDuration:500,animationEasing:"linear",threshold:null,activeClass:"active"},i.prototype._init=function(){},i.prototype._events=function(){var i=this;this.$window.off(".magellan").on("resize.fndtn.magellan",t.util.throttle(function(){i._reflow()}.bind(this),50)).on("scroll.fndtn.magellan",t.util.throttle(function(t){t.preventDefault(),i.updateActiveClass()},100)),this.$element.on("click.fndtn.magellan",'a[href^="#"]',function(t){t.preventDefault();var n=e(this).attr("href"),s=i.$element.height();e("html, body").animate({scrollTop:e(n).offset().top-s},{duration:i.options.animationDuration,easing:i.options.animationEasing}),window.location=n})},i.prototype._reflow=function(){},i.prototype.updateActiveClass=function(){var t=this.$window.scrollTop(),i=e("["+this.attrArrival+"]"),n=this.options.threshold||this.$element.height()+50,s=this.$element,o=this;return t+this.$window.height()===e(document).height()?(s.find("a").removeClass(o.options.activeClass),void s.find("a").last().addClass(o.options.activeClass)):void i.each(function(){var i=e(this).offset().top-n,a=i+e(this).height();if(t>=i&&a>=t){s.find("a").removeClass(o.options.activeClass);var r=s.find("a[href=#"+e(this).attr("id")+"]");r.addClass(o.options.activeClass)}})},t.plugin(i),"undefined"!=typeof module&&"undefined"!=typeof module.exports&&(module.exports=i),"function"==typeof define&&define(["foundation"],function(){return i})}(Foundation,jQuery),!function(t,e){"use strict";function i(n,s){this.$element=n,this.options=t.extend({},i.defaults,this.$element.data(),s),this.$lastTrigger=t(),this._init(),this._events(),e.registerPlugin(this)}i.defaults={closeOnClick:!0,position:"left"},i.prototype._init=function(){var e=this.$element.attr("id");if(this.$element.attr("aria-hidden","true"),t(document).find('[data-open="'+e+'"], [data-close="'+e+'"], [data-toggle="'+e+'"]').attr("aria-expanded","false").attr("aria-controls",e),this.options.closeOnClick&&!t(".js-off-canvas-exit").length){var i=document.createElement("div");i.setAttribute("class","js-off-canvas-exit"),t("[data-off-canvas-content]").append(i),this.$exiter=t(i)}},i.prototype._events=function(){this.$element.on({"open.zf.trigger":this.open.bind(this),"close.zf.trigger":this.close.bind(this),"toggle.zf.trigger":this.toggle.bind(this),"keydown.zf.offcanvas":this._handleKeyboard.bind(this)}),t(window).on("close.zf.offcanvas",this.close.bind(this)),this.$exiter&&this.$exiter.on("click.zf.offcanvas",function(){t(window).trigger("close.zf.offcanvas")})},i.prototype.open=function(e,i){if(!this.$element.hasClass("is-open")){var n=this;requestAnimationFrame(function(){t("body").addClass("is-off-canvas-open is-open-"+n.options.position),n.$element.addClass("is-open").attr("aria-hidden","false").find("a, button").eq(0).focus().end().end().trigger("opened.zf.offcanvas")}),i&&(this.$lastTrigger=i.attr("aria-expanded","true"))}},i.prototype.close=function(){if(this.$element.hasClass("is-open")){var e=this;requestAnimationFrame(function(){t("body").removeClass("is-off-canvas-open is-open-"+e.options.position),e.$element.removeClass("is-open").attr("aria-hidden","true").trigger("closed.zf.offcanvas")}),this.$lastTrigger.attr("aria-expanded","false")}},i.prototype.toggle=function(t,e){this.$element.hasClass("is-open")?this.close(t,e):this.open(t,e)},i.prototype._handleKeyboard=function(t){27===t.which&&(t.stopPropagation(),t.preventDefault(),this.close(),this.$lastTrigger.focus())},e.plugin(i)}(jQuery,Foundation),!function(t,e){"use strict";function i(n,s){this.$element=n,this.options=t.extend({},i.defaults,this.$element.data(),s),this._init(),e.registerPlugin(this),e.Keyboard.register("Orbit",{ltr:{ARROW_RIGHT:"next",ARROW_LEFT:"previous"},rtl:{ARROW_LEFT:"next",ARROW_RIGHT:"previous"}})}i.defaults={bullets:!0,navButtons:!0,animInFromRight:"slide-in-right",animOutToRight:"slide-out-right",animInFromLeft:"slide-in-left",animOutToLeft:"slide-out-left",autoPlay:!0,timerDelay:5e3,infiniteWrap:!0,swipe:!0,pauseOnHover:!0,accessible:!0,containerClass:"orbit-container",slideClass:"orbit-slide",boxOfBullets:"orbit-bullets",nextClass:"orbit-next",prevClass:"orbit-previous"},i.prototype._init=function(){this.$wrapper=this.$element.find("."+this.options.containerClass),this.$slides=this.$element.find("."+this.options.slideClass);var t=this.$element.find("img");t.length?e.onImagesLoaded(t,this._prepareForOrbit.bind(this)):this._prepareForOrbit(),this.options.bullets&&this.loadBullets(),this._events(),this.options.autoPlay&&this.geoSync(),this.options.accessible&&this.$wrapper.attr("tabindex",0)},i.prototype.loadBullets=function(){this.$bullets=this.$element.find("."+this.options.boxOfBullets).find("button")},i.prototype.geoSync=function(){var t=this;this.timer=new e.NanuNanu(this.$element,{duration:this.options.timerDelay},function(){t.changeSlide(!0)}),this.timer.start()},i.prototype._prepareForOrbit=function(){var t=this;this.setWrapperHeight(function(e){t.setSlideHeight(e)})},i.prototype.setWrapperHeight=function(e){var i,n=0,s=0;this.$slides.each(function(){i=this.getBoundingClientRect().height,t(this).attr("data-slide",s),s&&t(this).css({position:"relative",display:"none"}),n=i>n?i:n,s++}),s===this.$slides.length&&(this.$wrapper.css({height:n}),e(n))},i.prototype.setSlideHeight=function(e){this.$slides.each(function(){t(this).css("max-height",e)})},i.prototype._events=function(){var i=this;if(this.options.swipe&&this.$slides.off("swipeleft.zf.orbit swiperight.zf.orbit").on("swipeleft.zf.orbit",function(t){t.preventDefault(),i.timer.restart(),i.changeSlide(!0)}).on("swiperight.zf.orbit",function(t){t.preventDefault(),i.timer.restart(),i.changeSlide(!1)}),this.options.autoPlay&&(this.$slides.on("click.zf.orbit",function(){i.$element.data("clickedOn",i.$element.data("clickedOn")?!1:!0),i.timer[i.$element.data("clickedOn")?"pause":"start"]()}),this.options.pauseOnHover&&this.$element.on("mouseenter.zf.orbit",function(){i.timer.pause()}).on("mouseleave.zf.orbit",function(){i.$element.data("clickedOn")||i.timer.start()})),this.options.navButtons){var n=this.$element.find("."+this.options.nextClass+", ."+this.options.prevClass);this.options.accessible&&n.attr("tabindex",0),n.on("click.zf.orbit touchend.zf.orbit",function(){t(this).hasClass(i.options.nextClass)?(i.changeSlide(!0),i.timer.restart()):(i.changeSlide(!1),i.timer.restart())})}this.options.bullets&&this.$bullets.on("click.zf.orbit touchend.zf.orbit",function(){if(/is-active/g.test(this.className))return!1;var e=t(this).data("slide"),n=e>i.$slides.filter(".is-active").data("slide"),s=i.$slides.eq(e);i.changeSlide(n,s,e)}),this.$wrapper.add(this.$bullets).on("keydown.zf.orbit",function(n){e.Keyboard.handleKey(n,i,{next:function(){i.timer.restart(),i.changeSlide(!0)},previous:function(){i.timer.restart(),i.changeSlide(!1)},handled:function(){t(n.target).is(i.$bullets)&&i.$bullets.filter(".is-active").focus()}})})},i.prototype.changeSlide=function(t,i,n){var s=this.$slides.filter(".is-active").eq(0);if(/mui/g.test(s[0].className))return!1;var o,a=this.$slides.first(),r=this.$slides.last(),l=t?"Right":"Left",d=t?"Left":"Right",h=this;o=i?i:t?this.options.infiniteWrap?s.next("."+this.options.slideClass).length?s.next("."+this.options.slideClass):a:s.next("."+this.options.slideClass):this.options.infiniteWrap?s.prev("."+this.options.slideClass).length?s.prev("."+this.options.slideClass):r:s.prev("."+this.options.slideClass),o.length&&(this.options.bullets&&(n=n||this.$slides.index(o),this._updateBullets(n)),e.Motion.animateIn(o.addClass("is-active").css({position:"absolute",top:0}),this.options["animInFrom"+l],function(){o.css({position:"relative",display:"block"}).attr("aria-live","polite")}),e.Motion.animateOut(s.removeClass("is-active"),this.options["animOutTo"+d],function(){s.removeAttr("aria-live"),h.timer.restart(),h.$element.trigger("slidechange.zf.orbit",[o])}))},i.prototype._updateBullets=function(t){var e=this.$element.find("."+this.options.boxOfBullets).find(".is-active").removeClass("is-active").blur(),i=e.find("span:last").detach();this.$bullets.eq(t).addClass("is-active").append(i)},i.prototype.destroy=function(){delete this.timer,this.$element.off(".zf.orbit").find("*").off(".zf.orbit").end().hide(),e.unregisterPlugin(this)},e.plugin(i)}(jQuery,window.Foundation),!function(t,e){"use strict";function i(i){this.$element=e(i),this.rules=this.$element.data("responsive-menu"),this.currentMq=null,this.currentPlugin=null,this._init(),this._events(),t.registerPlugin(this)}var n={dropdown:{cssClass:"dropdown",plugin:t._plugins["dropdown-menu"]||null},drilldown:{cssClass:"drilldown",plugin:t._plugins.drilldown||null},accordion:{cssClass:"accordion-menu",plugin:t._plugins["accordion-menu"]||null}};i.defaults={},i.prototype._init=function(){for(var t={},i=this.rules.split(" "),s=0;s1?o[0]:"small",r=o.length>1?o[1]:o[0];null!==n[r]&&(t[a]=n[r])}this.rules=t,e.isEmptyObject(t)||this._checkMediaQueries()},i.prototype._events=function(){var t=this;e(window).on("resize.zf.ResponsiveMenu",function(){t._checkMediaQueries()})},i.prototype._checkMediaQueries=function(){var i,s=this;e.each(this.rules,function(e){t.MediaQuery.atLeast(e)&&(i=e)}),i&&(this.currentPlugin instanceof this.rules[i].plugin||(e.each(n,function(t,e){s.$element.removeClass(e.cssClass)}),this.$element.addClass(this.rules[i].cssClass),this.currentPlugin&&this.currentPlugin.destroy(),this.currentPlugin=new this.rules[i].plugin(this.$element,{})))},i.prototype.destroy=function(){this.currentPlugin.destroy(),e(window).off(".zf.ResponsiveMenu")},t.plugin(i)}(Foundation,jQuery),!function(t,e){"use strict";function i(n,s){this.$element=t(n),this.options=t.extend({},i.defaults,s),this._init(),this._events(),e.registerPlugin(this)}i.defaults={hideFor:"medium"},i.prototype._init=function(){var e=this.$element.data("responsive-toggle");e||console.error("Your tab bar needs an ID of a Menu as the value of data-tab-bar."),this.$targetMenu=t("#"+e),this.$toggler=this.$element.find("[data-toggle]"),this._update()},i.prototype._events=function(){t(window).on("changed.zf.mediaquery",this._update.bind(this)),this.$toggler.on("click.zf.responsiveToggle",this.toggleMenu.bind(this))},i.prototype._update=function(){e.MediaQuery.atLeast(this.options.hideFor)?(this.$element.hide(),this.$targetMenu.show()):(this.$element.show(),this.$targetMenu.hide())},i.prototype.toggleMenu=function(){e.MediaQuery.atLeast(this.options.hideFor)||(this.$targetMenu.toggle(0),this.$element.trigger("toggled.zf.responsiveToggle"))},e.plugin(i)}(jQuery,Foundation),!function(t,e){"use strict";function i(n,s){this.$element=n,this.options=e.extend({},i.defaults,this.$element.data(),s),this._init(),t.registerPlugin(this),t.Keyboard.register("Reveal",{ENTER:"open",SPACE:"open",ESCAPE:"close",TAB:"tab_forward",SHIFT_TAB:"tab_backward"})}i.defaults={animationIn:"",animationOut:"",showDelay:0,hideDelay:0,closeOnClick:!0,closeOnEsc:!0,multipleOpened:!1,vOffset:100,hOffset:0,fullScreen:!1,btmOffsetPct:10,overlay:!0},i.prototype._init=function(){if(this.id=this.$element.attr("id"),this.isActive=!1,this.$anchor=e(e('[data-open="'+this.id+'"]').length?'[data-open="'+this.id+'"]':'[data-toggle="'+this.id+'"]'),this.$anchor.length){var i=this.$anchor[0].id||t.GetYoDigits(6,"reveal");this.$anchor.attr({"aria-controls":this.id,id:i,"aria-haspopup":!0,tabindex:0}),this.$element.attr({"aria-labelledby":i})}this.options.fullScreen=this.$element.hasClass("full"),this.options.fullScreen&&(this.options.overlay=!1),this.options.overlay&&(this.$overlay=this._makeOverlay(this.id)),this.$element.attr({role:"dialog","aria-hidden":!0,"data-yeti-box":this.id,"data-resize":this.id}),this.options.height=this.$element.outerHeight(),this.options.width=this.$element.outerWidth(),this._events()},i.prototype._makeOverlay=function(t){var i=e("
    ").addClass("reveal-overlay").attr({tabindex:-1,"aria-hidden":!0}).appendTo("body");return this.options.closeOnClick&&i.attr({"data-close":t}),i},i.prototype._events=function(){var t=this;this.$element.on({"open.zf.trigger":this._open.bind(this),"close.zf.trigger":this._close.bind(this),"toggle.zf.trigger":this.toggle.bind(this),"resizeme.zf.trigger":function(){t.$element.is(":visible")&&t._setPosition(function(){})}}),this.$anchor.length&&this.$anchor.on("keydown.zf.reveal",function(e){(13===e.which||32===e.which)&&(e.stopPropagation(),e.preventDefault(),t._open())}),this.options.closeOnClick&&this.options.overlay&&this.$overlay.off(".zf.reveal").on("click.zf.reveal",this._close.bind(this))},i.prototype._setPosition=function(e){var i=t.GetDimensions(this.$element),n=this.options.fullScreen?"reveal full":i.height>=.5*i.windowDims.height?"reveal":"center";"reveal full"===n?this.$element.offset(t.GetOffsets(this.$element,null,n,this.options.vOffset)).css({height:i.windowDims.height,width:i.windowDims.width}):t.MediaQuery.atLeast("medium")&&t.ImNotTouchingYou(this.$element,null,!0,!1)?this.$element.offset(t.GetOffsets(this.$element,null,n,this.options.vOffset)).css({"max-height":i.windowDims.height-this.options.vOffset*(this.options.btmOffsetPct/100+1)}):(this.$element.css({width:i.windowDims.width-2*this.options.hOffset}).offset(t.GetOffsets(this.$element,null,"center",this.options.vOffset,this.options.hOffset)),this.changedSize=!0),e()},i.prototype._open=function(){var i=this;this.isActive=!0,this.$element.css({visibility:"hidden"}).show().scrollTop(0),this._setPosition(function(){i.$element.hide().css({visibility:""}),i.options.multipleOpened||i.$element.trigger("closeme.zf.reveal",i.id),i.options.animationIn?i.options.overlay?t.Motion.animateIn(i.$overlay,"fade-in",function(){t.Motion.animateIn(i.$element,i.options.animationIn,function(){})}):t.Motion.animateIn(i.$element,i.options.animationIn,function(){}):i.options.overlay?i.$overlay.show(0,function(){i.$element.show(i.options.showDelay,function(){})}):i.$element.show(i.options.showDelay,function(){})}),this.$element.attr({"aria-hidden":!1}).attr("tabindex",-1).focus().trigger("open.zf.reveal"),e("body").addClass("is-reveal-open").attr({"aria-hidden":this.options.overlay||this.options.fullScreen?!0:!1}),setTimeout(function(){i._extraHandlers(),t.reflow()},0)},i.prototype._extraHandlers=function(){var i=this,n=this.$element.find("a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, *[tabindex], *[contenteditable]").filter(function(){return!e(this).is(":visible")||e(this).attr("tabindex")<0?!1:!0});!this.options.overlay&&this.options.closeOnClick&&e("body").on("click.zf.reveal",function(t){i._close()}),this.options.closeOnEsc&&e(window).on("keydown.zf.reveal",function(e){0===n.length&&e.preventDefault(),t.Keyboard.handleKey(e,i,{close:function(){this.options.closeOnEsc&&this._close()}})}),this.$element.on("keydown.zf.reveal",function(e){t.Keyboard.handleKey(e,i,{tab_forward:function(){this.$element.find(":focus").is(n.eq(-1))&&(n.eq(0).focus(),e.preventDefault())},tab_backward:function(){(this.$element.find(":focus").is(n.eq(0))||this.$element.is(":focus"))&&(n.eq(-1).focus(),e.preventDefault())},open:function(){this._open()},close:function(){this.options.closeOnEsc&&this._close()}}),0===n.length&&e.preventDefault()})},i.prototype._close=function(){if(!this.isActive||!this.$element.is(":visible"))return!1;var i=this;this.options.animationOut?t.Motion.animateOut(this.$element,this.options.animationOut,function(){i.options.overlay&&t.Motion.animateOut(i.$overlay,"fade-out",function(){})}):this.$element.hide(i.options.hideDelay,function(){i.options.overlay&&i.$overlay.hide(0,function(){})}),this.options.closeOnEsc&&e(window).off("keydown.zf.reveal"),!this.options.overlay&&this.options.closeOnClick&&e("body").off("click.zf.reveal"),this.$element.off("keydown.zf.reveal"),this.changedSize&&this.$element.css({height:this.options.height,width:this.options.width}),e("body").removeClass("is-reveal-open").attr({"aria-hidden":!1,tabindex:""}),this.isActive=!1,this.$element.attr({"aria-hidden":!0}).trigger("closed.zf.reveal")},i.prototype.toggle=function(){this.isActive?this._close():this._open()},i.prototype.destroy=function(){this.options.overlay&&this.$overlay.hide().off(),this.$element.hide(),this.$anchor.off(),t.unregisterPlugin(this)},t.plugin(i),"undefined"!=typeof module&&"undefined"!=typeof module.exports&&(module.exports=i),"function"==typeof define&&define(["foundation"],function(){return i})}(Foundation,jQuery),!function(t,e){"use strict";function i(n,s){this.$element=n,this.options=t.extend({},i.defaults,this.$element.data(),s),this._init(),e.registerPlugin(this),e.Keyboard.register("Slider",{ -ltr:{ARROW_RIGHT:"increase",ARROW_UP:"increase",ARROW_DOWN:"decrease",ARROW_LEFT:"decrease",SHIFT_ARROW_RIGHT:"increase_fast",SHIFT_ARROW_UP:"increase_fast",SHIFT_ARROW_DOWN:"decrease_fast",SHIFT_ARROW_LEFT:"decrease_fast"},rtl:{ARROW_LEFT:"increase",ARROW_RIGHT:"decrease",SHIFT_ARROW_LEFT:"increase_fast",SHIFT_ARROW_RIGHT:"decrease_fast"}})}function n(t,e){return t/e}function s(t,e,i,n){return Math.abs(t.position()[e]+t[n]()/2-i)}i.defaults={start:0,end:100,step:1,initialStart:0,initialEnd:100,binding:!1,clickSelect:!0,vertical:!1,draggable:!0,disabled:!1,doubleSided:!1,steps:100,decimal:2,dragDelay:0,moveTime:200,disabledClass:"disabled"},i.prototype._init=function(){this.inputs=this.$element.find("input"),this.handles=this.$element.find("[data-slider-handle]"),this.options.vertical=this.$element.hasClass("vertical"),this.$handle=this.handles.eq(0),this.$input=this.inputs.length?this.inputs.eq(0):t("#"+this.$handle.attr("aria-controls")),this.$fill=this.$element.find("[data-slider-fill]").css(this.options.vertical?"height":"width",0);var e=!1,i=this;(this.options.disabled||this.$element.hasClass(this.options.disabledClass))&&(this.options.disabled=!0,this.$element.addClass(this.options.disabledClass)),this.inputs.length||(this.inputs=t().add(this.$input),this.options.binding=!0),this._setInitAttr(0),this._events(this.$handle),this.handles[1]&&(this.options.doubleSided=!0,this.$handle2=this.handles.eq(1),this.$input2=this.inputs.length?this.inputs.eq(1):t("#"+this.$handle2.attr("aria-controls")),this.inputs[1]||(this.inputs=this.inputs.add(this.$input2)),e=!0,this._setHandlePos(this.$handle,this.options.initialStart,!0,function(){i._setHandlePos(i.$handle2,i.options.initialEnd)}),this._setInitAttr(1),this._events(this.$handle2)),e||this._setHandlePos(this.$handle,this.options.initialStart,!0)},i.prototype._setHandlePos=function(t,i,s,o){i=parseFloat(i),ithis.options.end&&(i=this.options.end);var a=this.options.doubleSided;if(a)if(0===this.handles.index(t)){var r=parseFloat(this.$handle2.attr("aria-valuenow"));i=i>=r?r-this.options.step:i}else{var l=parseFloat(this.$handle.attr("aria-valuenow"));i=l>=i?l+this.options.step:i}this.options.vertical&&!s&&(i=this.options.end-i);var d=this,h=this.options.vertical,u=h?"height":"width",c=h?"top":"left",f=t[0].getBoundingClientRect()[u]/2,p=this.$element[0].getBoundingClientRect()[u],m=n(i,this.options.end).toFixed(this.options.decimal),g=(p-f)*m,v=(100*n(g,p)).toFixed(this.options.decimal),i=i>0?parseFloat(i.toFixed(this.options.decimal)):0,w={};if(this._setValues(t,i),this.options.doubleSided){var y,b=0===this.handles.index(t);this.handles.index(t);b?(w[c]=(m>0?100*m:0)+"%",y=(100*(n(this.$handle2.position()[c]+f,p)-parseFloat(m))).toFixed(this.options.decimal)+"%",w["min-"+u]=y,o&&"function"==typeof o&&o()):(i=(100>i?i:100)-(parseFloat(this.$handle[0].style.left)||this.options.end-i),w["min-"+u]=i+"%")}this.$element.one("finished.zf.animate",function(){d.animComplete=!0,d.$element.trigger("moved.zf.slider",[t])}),e.Move(d.options.moveTime,t,function(){t.css(c,v+"%"),d.options.doubleSided?d.$fill.css(w):d.$fill.css(u,100*m+"%")})},i.prototype._setInitAttr=function(t){var i=this.inputs.eq(t).attr("id")||e.GetYoDigits(6,"slider");this.inputs.eq(t).attr({id:i,max:this.options.end,min:this.options.start}),this.handles.eq(t).attr({role:"slider","aria-controls":i,"aria-valuemax":this.options.end,"aria-valuemin":this.options.start,"aria-valuenow":0===t?this.options.initialStart:this.options.initialEnd,"aria-orientation":this.options.vertical?"vertical":"horizontal",tabindex:0})},i.prototype._setValues=function(t,e){var i=this.options.doubleSided?this.handles.index(t):0;this.inputs.eq(i).val(e),t.attr("aria-valuenow",e)},i.prototype._handleEvent=function(t,e,i){if(i)var o=i,a=!0;else{t.preventDefault();var r=this.options.vertical,l=r?"height":"width",d=r?"top":"left",h=r?t.pageY:t.pageX,u=this.$handle[0].getBoundingClientRect()[l]/2,c=this.$element[0].getBoundingClientRect()[l],f=this.$element.offset()[d]-h,p=f>0?-u:-c>f-u?c:Math.abs(f),m=n(p,c),o=(this.options.end-this.options.start)*m,a=!1;if(!e){var g=s(this.$handle,d,p,l),v=s(this.$handle2,d,p,l);e=v>=g?this.$handle:this.$handle2}}this._setHandlePos(e,o,a)},i.prototype._events=function(i){if(this.options.disabled)return!1;var n,s,o=this;if(this.inputs.on("change.zf.slider",function(e){var i=o.inputs.index(t(this));o._handleEvent(e,o.handles.eq(i),t(this).val())}),this.options.clickSelect&&this.$element.off("click.zf.slider").on("click.zf.slider",function(t){return o.$element.data("dragging")?!1:(o.animComplete=!1,void(o.options.doubleSided?o._handleEvent(t):o._handleEvent(t,o.$handle)))}),this.options.draggable){this.handles.addTouch();var n,s,a=t("body");i.off("mousedown.zf.slider touchstart.zf.slider keydown.zf.slider").on("mousedown.zf.slider",function(e){i.addClass("is-dragging"),o.$fill.addClass("is-dragging"),o.$element.attr("data-dragging",!0),o.animComplete=!1,n=t(e.currentTarget),a.on("mousemove.zf.slider",function(t){t.preventDefault(),s=setTimeout(function(){o._handleEvent(t,n)},o.options.dragDelay)}).on("mouseup.zf.slider",function(t){clearTimeout(s),o.animComplete=!0,o._handleEvent(t,n),i.removeClass("is-dragging"),o.$fill.removeClass("is-dragging"),o.$element.data("dragging",!1),a.off("mousemove.zf.slider mouseup.zf.slider")})})}i.on("keydown.zf.slider",function(i){var n,s=o.options.doubleSided?o.handles.index(t(this)):0,a=Number(o.inputs.eq(s).val()),r=t(this);e.Keyboard.handleKey(i,o,{decrease:function(){n=a-o.options.step},increase:function(){n=a+o.options.step},decrease_fast:function(){n=a-10*o.options.step},increase_fast:function(){n=a+10*o.options.step},handled:function(){i.preventDefault(),o._setHandlePos(r,n,!0)}})})},i.prototype.destroy=function(){this.handles.off(".zf.slider"),this.inputs.off(".zf.slider"),this.$element.off(".zf.slider"),e.unregisterPlugin(this)},e.plugin(i)}(jQuery,window.Foundation),!function(){$.fn.addTouch=function(){this.each(function(e,i){$(i).bind("touchstart touchmove touchend touchcancel",function(){t(event)})});var t=function(t){var e=t.changedTouches,i=e[0],n={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup"},s=n[t.type],o=document.createEvent("MouseEvent");o.initMouseEvent(s,!0,!0,window,1,i.screenX,i.screenY,i.clientX,i.clientY,!1,!1,!1,!1,0,null),i.target.dispatchEvent(o)}}}(),!function(t,e){"use strict";function i(n,s){this.$element=n,this.options=t.extend({},i.defaults,this.$element.data(),s),this._init(),e.registerPlugin(this)}function n(t){return parseInt(window.getComputedStyle(document.body,null).fontSize,10)*t}i.defaults={stickToWindow:!1,container:"
    ",stickTo:"top",anchor:"",topAnchor:"",btmAnchor:"",marginTop:1,marginBottom:1,stickyOn:"medium",stickyClass:"sticky",containerClass:"sticky-container",checkEvery:50},i.prototype._init=function(){var i=this.$element.parent("[data-sticky-container]"),n=this.$element[0].id||e.GetYoDigits(6,"sticky"),s=this;i.length||(this.wasWrapped=!0),this.$container=i.length?i:t(this.options.container).wrapInner(this.$element),this.$container.addClass(this.options.containerClass),this.$element.addClass(this.options.stickyClass).attr({"data-resize":n}),this.scrollCount=this.options.checkEvery,this.isStuck=!1,""!==this.options.topAnchor&&this._parsePoints(),this.$anchor=t(this.options.anchor?this.options.anchor:document.body),this._setSizes(function(){s._calc(!1)}),this._events(n.split("-").reverse().join("-"))},i.prototype._parsePoints=function(){for(var e=this.options.topAnchor,i=this.options.btmAnchor,n=[e,i],s={},o=0,a=n.length;a>o&&n[o];o++){var r;if("number"==typeof n[o])r=n[o];else{var l=n[o].split(":"),d=t("#"+l[0]);r=d.offset().top,l[1]&&"bottom"===l[1].toLowerCase()&&(r+=d[0].getBoundingClientRect().height)}s[o]=r}this.points=s},i.prototype._events=function(e){var i=this,n="scroll.zf."+e;this.isOn||(this.canStick&&(this.isOn=!0,t(window).off(n).on(n,function(t){i.scrollCount?(i.scrollCount--,i._calc(!1,t.currentTarget.scrollY)):(i.scrollCount=i.options.checkEvery,i._setSizes(function(){i._calc(!1,t.currentTarget.scrollY)}))})),this.$element.off("resizeme.zf.trigger").on("resizeme.zf.trigger",function(t,s){i._setSizes(function(){i._calc(!1),i.canStick?i.isOn||i._events(e):i.isOn&&i._pauseListeners(n)})}))},i.prototype._pauseListeners=function(e){this.isOn=!1,t(window).off(e),this.$element.trigger("pause.zf.sticky")},i.prototype._calc=function(t,e){return t&&this._setSizes(),this.canStick?(e||(e=window.scrollY),void(e>=this.topPoint?e<=this.bottomPoint?this.isStuck||this._setSticky():this.isStuck&&this._removeSticky(!1):this.isStuck&&this._removeSticky(!0))):(this.isStuck&&this._removeSticky(!0),!1)},i.prototype._setSticky=function(){var t=this.options.stickTo,e="top"===t?"marginTop":"marginBottom",i="top"===t?"bottom":"top",n={};n[e]=this.options[e]+"em",n[t]=0,n[i]="auto",this.isStuck=!0,this.$element.removeClass("is-anchored is-at-"+i).addClass("is-stuck is-at-"+t).css(n).trigger("sticky.zf.stuckto:"+t)},i.prototype._removeSticky=function(t){var e,i,n=this.options.stickTo,s="top"===n,o={},a=(this.points?this.points[1]-this.points[0]:this.anchorHeight)-this.elemHeight;e=s?"marginTop":"marginBottom",i=s?"bottom":"top",o[e]=0,t&&!s||s&&!t?(o[n]=a,o[i]=0):(o[n]=0,o[i]=a),this.isStuck=!1,this.$element.removeClass("is-stuck is-at-"+n).addClass("is-anchored is-at-"+(t?"top":"bottom")).css(o).trigger("top")},i.prototype._setSizes=function(t){var i=this.$container[0].getBoundingClientRect().width,n=parseInt(window.getComputedStyle(this.$container[0])["padding-right"],10);this.$anchor.length?this.anchorHeight=this.$anchor[0].getBoundingClientRect().height:this._parsePoints(),this.$element.css({"max-width":i-n+"px"});var s=this.$element[0].getBoundingClientRect().height||this.containerHeight;this.containerHeight=s,this.$container.css({height:s}),this.elemHeight=s,this.canStick=e.MediaQuery.atLeast(this.options.stickyOn),this._setBreakPoints(s,function(){t&&t()})},i.prototype._setBreakPoints=function(t,e){if(!this.canStick){if(!e)return!1;e()}var i=n(this.options.marginTop),s=n(this.options.marginBottom),o=this.points?this.points[0]:this.$anchor.offset().top,a=this.points?this.points[1]:o+this.anchorHeight,r=window.innerHeight;"top"===this.options.stickTo?(o-=i,a-=t+i):"bottom"===this.options.stickTo&&(o-=r-(t+s),a-=r-s),this.topPoint=o,this.bottomPoint=a,e&&e()},i.prototype.destroy=function(){this._removeSticky(!0),this.$element.removeClass(this.options.stickyClass+" is-anchored is-at-top").css({height:"",top:"",bottom:"","max-width":""}).off("resizeme.zf.trigger"),this.$anchor.off("change.zf.sticky"),t(window).off("scroll.zf.sticky"),this.wasWrapped?this.$element.unwrap():this.$container.removeClass(this.options.containerClass).css({height:""}),e.unregisterPlugin(this)},e.plugin(i)}(jQuery,window.Foundation),!function(t,e){"use strict";function i(n,s){this.$element=n,this.options=t.extend({},i.defaults,this.$element.data(),s),this._init(),e.registerPlugin(this),e.Keyboard.register("Tabs",{ENTER:"open",SPACE:"open",ARROW_RIGHT:"next",ARROW_UP:"previous",ARROW_DOWN:"next",ARROW_LEFT:"previous"})}i.defaults={deepLinking:!1,scrollToContent:!1,autoFocus:!1,wrapOnKeys:!0,matchHeight:!0,linkClass:"tabs-title",contentClass:"tabs-content",panelClass:"tabs-panel"},i.prototype._init=function(){var i=this;if(this.$tabTitles=this.$element.find("."+this.options.linkClass),this.$tabContent=t('[data-tabs-content="'+this.$element[0].id+'"]'),this.$tabTitles.each(function(){var e=t(this),n=e.find("a"),s=e.hasClass("is-active"),o=n.attr("href").slice(1),a=o+"-label",r=t(o);e.attr({role:"presentation"}),n.attr({role:"tab","aria-controls":o,"aria-selected":s,id:a}),r.attr({role:"tabpanel","aria-hidden":!s,"aria-labelledby":a}),s&&i.options.autoFocus&&n.focus()}),this.options.matchHeight){var n=this.$tabContent.find("img");n.length?e.onImagesLoaded(n,this.setHeight.bind(this)):this.setHeight()}this._events()},i.prototype._events=function(){this._addKeyHandler(),this._addClickHandler(),this.options.matchHeight&&t(window).on("changed.zf.mediaquery",this.setHeight.bind(this))},i.prototype._addClickHandler=function(){var e=this;this.$tabTitles.off("click.zf.tabs").on("click.zf.tabs",function(i){i.preventDefault(),i.stopPropagation(),t(this).hasClass("is-active")||e._handleTabChange(t(this))})},i.prototype._addKeyHandler=function(){var i=this;i.$element.find("li:first-of-type"),i.$element.find("li:last-of-type");this.$tabTitles.off("keydown.zf.tabs").on("keydown.zf.tabs",function(n){n.stopPropagation(),n.preventDefault();var s,o,a=t(this),r=a.parent("ul").children("li");r.each(function(e){return t(this).is(a)?void(i.options.wrapOnKeys?(s=0===e?r.last():r.eq(e-1),o=e===r.length-1?r.first():r.eq(e+1)):(s=r.eq(Math.max(0,e-1)),o=r.eq(Math.min(e+1,r.length-1)))):void 0}),e.Keyboard.handleKey(n,i,{open:function(){a.find('[role="tab"]').focus(),i._handleTabChange(a)},previous:function(){s.find('[role="tab"]').focus(),i._handleTabChange(s)},next:function(){o.find('[role="tab"]').focus(),i._handleTabChange(o)}})})},i.prototype._handleTabChange=function(e){var i=e.find('[role="tab"]'),n=i.attr("href"),s=t(n),o=this.$element.find("."+this.options.linkClass+".is-active").removeClass("is-active").find('[role="tab"]').attr({"aria-selected":"false"}).attr("href");t(o).removeClass("is-active").attr({"aria-hidden":"true"}),e.addClass("is-active"),i.attr({"aria-selected":"true"}),s.addClass("is-active").attr({"aria-hidden":"false"}),this.$element.trigger("change.zf.tabs",[e])},i.prototype.setHeight=function(){var e=0;this.$tabContent.find("."+this.options.panelClass).css("height","").each(function(){var i=t(this),n=i.hasClass("is-active");n||i.css({visibility:"hidden",display:"block"});var s=this.getBoundingClientRect().height;n||i.css({visibility:"",display:""}),e=s>e?s:e}).css("height",e+"px")},i.prototype.destroy=function(){this.$element.find("."+this.options.linkClass).off(".zf.tabs").hide().end().find("."+this.options.panelClass).hide(),this.options.matchHeight&&t(window).off("changed.zf.mediaquery"),e.unregisterPlugin(this)},e.plugin(i)}(jQuery,window.Foundation),!function(t,e){"use strict";function i(n,s){this.$element=n,this.options=e.extend({},i.defaults,n.data(),s),this.className="",this._init(),this._events(),t.registerPlugin(this)}i.defaults={animate:!1},i.prototype._init=function(){if(this.options.animate){var t=this.options.animate.split(" ");this.animationIn=t[0],this.animationOut=t[1]||null}else{var t=this.$element.data("toggler");"."===t[0]?this.className=t.slice(1):this.className=t}var i=this.$element[0].id;e('[data-open="'+i+'"], [data-close="'+i+'"], [data-toggle="'+i+'"]').attr("aria-controls",i),this.$element.is(":hidden")&&this.$element.attr("aria-expanded","false")},i.prototype._events=function(){var t=this;this.$element.on("toggle.zf.trigger",function(){return t.toggle(),!1})},i.prototype.toggle=function(){this.options.animate?this._toggleAnimate():this._toggleClass()},i.prototype._toggleClass=function(){var t=this;this.$element.toggleClass(this.className),this.$element.hasClass(this.className)?this.$element.trigger("on.zf.toggler"):this.$element.trigger("off.zf.toggler"),t._updateARIA()},i.prototype._toggleAnimate=function(){var e=this;this.$element.is(":hidden")?t.Motion.animateIn(this.$element,this.animationIn,function(){this.trigger("on.zf.toggler"),e._updateARIA()}):t.Motion.animateOut(this.$element,this.animationOut,function(){this.trigger("off.zf.toggler"),e._updateARIA()})},i.prototype._updateARIA=function(){this.$element.is(":hidden")?this.$element.attr("aria-expanded","false"):this.$element.attr("aria-expanded","true")},i.prototype.destroy=function(){this.$element.off(".zf.toggler")},t.plugin(i),"undefined"!=typeof module&&"undefined"!=typeof module.exports&&(module.exports=i),"function"==typeof define&&define(["foundation"],function(){return i})}(Foundation,jQuery),!function(t,e,i){"use strict";function n(e,s){this.$element=e,this.options=t.extend({},n.defaults,this.$element.data(),s),this.isActive=!1,this.isClick=!1,this._init(),i.registerPlugin(this)}n.defaults={disableForTouch:!1,hoverDelay:200,fadeInDuration:150,fadeOutDuration:150,disableHover:!1,templateClasses:"",tooltipClass:"tooltip",triggerClass:"has-tip",showOn:"all",template:"",tipText:"",touchCloseText:"Tap to close.",clickOpen:!0,appendTo:"body",positionClass:"",vOffset:10,hOffset:12},n.prototype._init=function(){var e=this.$element.attr("aria-describedby")||i.GetYoDigits(6,"tooltip");this.options.positionClass=this.getPositionClass(this.$element),this.options.tipText=this.$element.attr("title"),this.template=this.options.template?t(this.options.template):this.buildTemplate(e),this.template.appendTo(this.options.appendTo).text(this.options.tipText).hide(),this.$element.attr({title:"","aria-describedby":e,"data-yeti-box":e,"data-toggle":e,"data-resize":e}).addClass(this.triggerClass),this.usedPositions=[],this.counter=4,this.classChanged=!1,this._events()},n.prototype.getPositionClass=function(t){if(!t)return"";var e=t[0].className.match(/(top|left|right)/g);return e=e?e[0]:""},n.prototype.buildTemplate=function(e){var i=(this.options.tooltipClass+" "+this.options.positionClass).trim(),n=t("
    ").addClass(i).attr({role:"tooltip","aria-hidden":!0,"data-is-active":!1,"data-is-focus":!1,id:e});return n},n.prototype.reposition=function(t){this.usedPositions.push(t?t:"bottom"),!t&&this.usedPositions.indexOf("top")<0?this.template.addClass("top"):"top"===t&&this.usedPositions.indexOf("bottom")<0?this.template.removeClass(t):"left"===t&&this.usedPositions.indexOf("right")<0?this.template.removeClass(t).addClass("right"):"right"===t&&this.usedPositions.indexOf("left")<0?this.template.removeClass(t).addClass("left"):!t&&this.usedPositions.indexOf("top")>-1&&this.usedPositions.indexOf("left")<0?this.template.addClass("left"):"top"===t&&this.usedPositions.indexOf("bottom")>-1&&this.usedPositions.indexOf("left")<0?this.template.removeClass(t).addClass("left"):"left"===t&&this.usedPositions.indexOf("right")>-1&&this.usedPositions.indexOf("bottom")<0?this.template.removeClass(t):"right"===t&&this.usedPositions.indexOf("left")>-1&&this.usedPositions.indexOf("bottom")<0?this.template.removeClass(t):this.template.removeClass(t),this.classChanged=!0,this.counter--},n.prototype.setPosition=function(){var t=this.getPositionClass(this.template),e=i.GetDimensions(this.template),n=i.GetDimensions(this.$element),s="left"===t?"left":"right"===t?"left":"top",o="top"===s?"height":"width";"height"===o?this.options.vOffset:this.options.hOffset;if(e.width>=e.windowDims.width||!this.counter&&!i.ImNotTouchingYou(this.template))return this.template.offset(i.GetOffsets(this.template,this.$element,"center bottom",this.options.vOffset,this.options.hOffset,!0)).css({width:n.windowDims.width-2*this.options.hOffset,height:"auto"}),!1;for(this.template.offset(i.GetOffsets(this.template,this.$element,"center "+(t||"bottom"),this.options.vOffset,this.options.hOffset));!i.ImNotTouchingYou(this.template)&&this.counter;)this.reposition(t),this.setPosition()},n.prototype._show=function(){if("all"!==this.options.showOn&&!i.MediaQuery.atLeast(this.options.showOn))return console.error("The screen is too small to display this tooltip"),!1;var t=this;this.template.css("visibility","hidden").show(),this.setPosition(),this.$element.trigger("closeme.zf.tooltip",this.template.attr("id")),this.template.attr({"data-is-active":!0,"aria-hidden":!1}),t.isActive=!0,this.template.stop().hide().css("visibility","").fadeIn(this.options.fadeInDuration,function(){}),this.$element.trigger("show.zf.tooltip")},n.prototype._hide=function(){var t=this;this.template.stop().attr({"aria-hidden":!0,"data-is-active":!1}).fadeOut(this.options.fadeOutDuration,function(){t.isActive=!1,t.isClick=!1,t.classChanged&&(t.template.removeClass(t.getPositionClass(t.template)).addClass(t.options.positionClass),t.usedPositions=[],t.counter=4,t.classChanged=!1)}),this.$element.trigger("hide.zf.tooltip")},n.prototype._events=function(){var t=this,e=(this.template,!1);this.options.disableHover||this.$element.on("mouseenter.zf.tooltip",function(e){t.isActive||(t.timeout=setTimeout(function(){t._show()},t.options.hoverDelay))}).on("mouseleave.zf.tooltip",function(i){clearTimeout(t.timeout),(!e||!t.isClick&&t.options.clickOpen)&&t._hide()}),this.options.clickOpen&&this.$element.on("mousedown.zf.tooltip",function(e){e.stopImmediatePropagation(),t.isClick?t._hide():(t.isClick=!0,!t.options.disableHover&&t.$element.attr("tabindex")||t.isActive||t._show())}),this.options.disableForTouch||this.$element.on("tap.zf.tooltip touchend.zf.tooltip",function(e){t.isActive?t._hide():t._show()}),this.$element.on({"close.zf.trigger":this._hide.bind(this)}),this.$element.on("focus.zf.tooltip",function(i){return e=!0,console.log(t.isClick),t.isClick?!1:void t._show()}).on("focusout.zf.tooltip",function(i){e=!1,t.isClick=!1,t._hide()}).on("resizeme.zf.trigger",function(){t.setPosition()})},n.prototype.toggle=function(){this.isActive?this._hide():this._show()},n.prototype.destroy=function(){this.$element.attr("title",this.template.text()).off(".zf.trigger .zf.tootip").removeClass("has-tip").removeAttr("aria-describedby").removeAttr("data-yeti-box").removeAttr("data-toggle").removeAttr("data-resize"),this.template.remove(),i.unregisterPlugin(this)},i.plugin(n)}(jQuery,window.document,window.Foundation),!function(t,e){function i(t,e,i){var n,s,o=this,a=e.duration,r=Object.keys(t.data())[0]||"timer",l=-1;this.restart=function(){l=-1,clearTimeout(s),this.start()},this.start=function(){l=0>=l?a:l,t.data("paused",!1),n=Date.now(),s=setTimeout(function(){e.infinite&&o.restart(),i()},l),t.trigger("timerstart.zf."+r)},this.pause=function(){clearTimeout(s),t.data("paused",!0);var e=Date.now();l-=e-n,t.trigger("timerpaused.zf."+r)}}e.NanuNanu=i}(jQuery,window.Foundation),function(t,e){"function"==typeof define&&define.amd?define(["jquery"],e):"object"==typeof exports?module.exports=e(require("jquery")):t.MotionUI=e(t.jQuery)}(this,function(t){"use strict";function e(e,o,a,r){function l(){e||o.hide(),d(),r&&r.apply(o)}function d(){o[0].style.transitionDuration=0,o.removeClass(h+" "+u+" "+a)}if(o=t(o).eq(0),o.length){if(null===s)return e?o.show():o.hide(),void r();var h=e?i[0]:i[1],u=e?n[0]:n[1];d(),o.addClass(a),o.css("transition","none"),requestAnimationFrame(function(){o.addClass(h),e&&o.show()}),requestAnimationFrame(function(){o[0].offsetWidth,o.css("transition",""),o.addClass(u)}),o.one("transitionend",l)}}!function(){Date.now||(Date.now=function(){return(new Date).getTime()});for(var t=["webkit","moz"],e=0;e1?i[1].trim():""}return void 0===t.prototype?t.constructor.name:t.prototype.constructor.name}function i(t){return t.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()}var n="6.0.0-alpha.1",s={version:n,_plugins:{},_uuids:[],_activePlugins:{},rtl:function(){return"rtl"===t("html").attr("dir")},plugin:function(t){var n=e(t),s=i(n);this._plugins[s]=this[n]=t},registerPlugin:function(t){var i=e(t.constructor).toLowerCase();t.uuid=this.GetYoDigits(6,i),t.$element.attr("data-"+i,t.uuid).trigger("init.zf."+i),this._activePlugins[t.uuid]=t},unregisterPlugin:function(t){var i=e(t.constructor).toLowerCase();delete this._activePlugins[t.uuid],t.$element.removeAttr("data-"+i).trigger("destroyed.zf."+i)},_reflow:function(t){var e=Object.keys(this._activePlugins),i=this;if(t){if("string"==typeof t){var n=t.split("-")[1];n?this._activePlugins[t]._init():(n=new RegExp(t,"i"),e.filter(function(t){return n.test(t)}).forEach(function(t){i._activePlugins[t]._init()}))}}else e.forEach(function(t){i._activePlugins[t]._init()})},GetYoDigits:function(t,e){return Math.round(Math.pow(36,t+1)-Math.random()*Math.pow(36,t)).toString(36).slice(1)+(e?"-"+e:"")},reflow:function(e,i){"undefined"==typeof i?i=Object.keys(this._plugins):"string"==typeof i&&(i=[i]);var n=this;t.each(i,function(i,s){var o=n._plugins[s],a=t(e).find("[data-"+s+"]").addBack("*");a.each(function(){return t(this).attr("zf-plugin")?void console.warn("Tried to initialize "+s+" on an element that already has a Foundation plugin."):void t(this).data("zf-plugin",new o(t(this)))})})},getFnName:e,transitionend:function(){var t={transition:"transitionend",WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"otransitionend"},e=document.createElement("div");for(var i in t)if("undefined"!=typeof e.style[i])return t[i]}()};s.util={throttle:function(t,e){var i=null;return function(){var n=this,s=arguments;null===i&&(i=setTimeout(function(){t.apply(n,s),i=null},e))}}};var o=function(i){var n=typeof i,o=t("meta.foundation-mq"),a=t(".no-js");if(o.length||t('').appendTo(document.head),a.length&&a.removeClass("no-js"),"undefined"===n)s.MediaQuery._init(),s.reflow(this);else{if("string"!==n)throw new Error("We're sorry, "+n+" is not a valid argument. You must use a string representing the method you wish to invoke.");var r=Array.prototype.slice.call(arguments,1),l=this.data("zfPlugin");if(void 0===l||void 0===l[i])throw new Error("We're sorry, "+i+" is not an available method for "+(l?e(l):"this element")+".");1===this.length?l[i].apply(l,r):this.each(function(e,n){l[i].apply(t(n).data("zfPlugin"),r)})}return this};window.Foundation=s,t.fn.foundation=o,function(){Date.now||(Date.now=function(){return(new Date).getTime()});for(var t=["webkit","moz"],e=0;e=h.offset.top,r=d.offset.left>=h.offset.left,l=d.offset.left+d.width<=h.width}else a=d.offset.top+d.height<=d.windowDims.height+d.windowDims.offset.top,o=d.offset.top>=d.windowDims.offset.top,r=d.offset.left>=d.windowDims.offset.left,l=d.offset.left+d.width<=d.windowDims.width;var u=[a,o,r,l];return i?r===l==!0:s?o===a==!0:-1===u.indexOf(!1)},n=function(t,i){if(t=t.length?t[0]:t,t===e||t===document)throw new Error("I'm sorry, Dave. I'm afraid I can't do that.");var n=t.getBoundingClientRect(),s=t.parentNode.getBoundingClientRect(),o=document.body.getBoundingClientRect(),a=e.pageYOffset,r=e.pageXOffset;return{width:n.width,height:n.height,offset:{top:n.top+a,left:n.left+r},parentDims:{width:s.width,height:s.height,offset:{top:s.top+a,left:s.left+r}},windowDims:{width:o.width,height:o.height,offset:{top:a,left:r}}}},s=function(t,e,i,s,o,a){var r=n(t),l=e?n(e):null;switch(i){case"top":return{left:l.offset.left,top:l.offset.top-(r.height+s)};case"left":return{left:l.offset.left-(r.width+o),top:l.offset.top};case"right":return{left:l.offset.left+l.width+o,top:l.offset.top};case"center top":return{left:l.offset.left+l.width/2-r.width/2,top:l.offset.top-(r.height+s)};case"center bottom":return{left:a?o:l.offset.left+l.width/2-r.width/2,top:l.offset.top+l.height+s};case"center left":return{left:l.offset.left-(r.width+o),top:l.offset.top+l.height/2-r.height/2};case"center right":return{left:l.offset.left+l.width+o+1,top:l.offset.top+l.height/2-r.height/2};case"center":return{left:r.windowDims.offset.left+r.windowDims.width/2-r.width/2,top:r.windowDims.offset.top+r.windowDims.height/2-r.height/2};case"reveal":return{left:(r.windowDims.width-r.width)/2,top:r.windowDims.offset.top+s};case"reveal full":return{left:r.windowDims.offset.left,top:r.windowDims.offset.top};default:return{left:l.offset.left,top:l.offset.top+l.height+s}}};t.Box={ImNotTouchingYou:i,GetDimensions:n,GetOffsets:s}}(window.Foundation,window),!function(t,e){"use strict";e.Keyboard={};var i={9:"TAB",13:"ENTER",27:"ESCAPE",32:"SPACE",37:"ARROW_LEFT",38:"ARROW_UP",39:"ARROW_RIGHT",40:"ARROW_DOWN"},n=function(t){var e={};for(var i in t)e[t[i]]=t[i];return e}(i);e.Keyboard.keys=n;var s=function(t){var e=i[t.which||t.keyCode]||String.fromCharCode(t.which).toUpperCase();return t.shiftKey&&(e="SHIFT_"+e),t.ctrlKey&&(e="CTRL_"+e),t.altKey&&(e="ALT_"+e),e};e.Keyboard.parseKey=s;var o={},a=function(i,n,a){var r,l,d,h=o[e.getFnName(n)],u=s(i);return h?(r="undefined"==typeof h.ltr?h:e.rtl()?t.extend({},h.ltr,h.rtl):t.extend({},h.rtl,h.ltr),l=r[u],d=a[l],void(d&&"function"==typeof d?(d.apply(n),(a.handled||"function"==typeof a.handled)&&a.handled.apply(n)):(a.unhandled||"function"==typeof a.unhandled)&&a.unhandled.apply(n))):console.warn("Component not defined!")};e.Keyboard.handleKey=a;var r=function(e){return e.find("a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, *[tabindex], *[contenteditable]").filter(function(){return!t(this).is(":visible")||t(this).attr("tabindex")<0?!1:!0})};e.Keyboard.findFocusable=r;var l=function(t,e){o[t]=e};e.Keyboard.register=l}(jQuery,window.Foundation),!function(t,e){function i(t){var e={};return"string"!=typeof t?e:(t=t.trim().slice(1,-1))?e=t.split("&").reduce(function(t,e){var i=e.replace(/\+/g," ").split("="),n=i[0],s=i[1];return n=decodeURIComponent(n),s=void 0===s?null:decodeURIComponent(s),t.hasOwnProperty(n)?Array.isArray(t[n])?t[n].push(s):t[n]=[t[n],s]:t[n]=s,t},{}):e}var n={queries:[],current:"",atLeast:function(t){var e=this.get(t);return e?window.matchMedia(e).matches:!1},get:function(t){for(var e in this.queries){var i=this.queries[e];if(t===i.name)return i.value}return null},_init:function(){var e,n=this,s=t(".foundation-mq").css("font-family");e=i(s);for(var o in e)n.queries.push({name:o,value:"only screen and (min-width: "+e[o]+")"});this.current=this._getCurrentSize(),this._watcher()},_getCurrentSize:function(){var t;for(var e in this.queries){var i=this.queries[e];window.matchMedia(i.value).matches&&(t=i)}return"object"==typeof t?t.name:t},_watcher:function(){var e=this;t(window).on("resize.zf.mediaquery",function(){var i=e._getCurrentSize();i!==e.current&&(t(window).trigger("changed.zf.mediaquery",[i,e.current]),e.current=i)})}};e.MediaQuery=n,window.matchMedia||(window.matchMedia=function(){"use strict";var t=window.styleMedia||window.media;if(!t){var e=document.createElement("style"),i=document.getElementsByTagName("script")[0],n=null;e.type="text/css",e.id="matchmediajs-test",i.parentNode.insertBefore(e,i),n="getComputedStyle"in window&&window.getComputedStyle(e,null)||e.currentStyle,t={matchMedium:function(t){var i="@media "+t+"{ #matchmediajs-test { width: 1px; } }";return e.styleSheet?e.styleSheet.cssText=i:e.textContent=i,"1px"===n.width}}}return function(e){return{matches:t.matchMedium(e||"all"),media:e||"all"}}}())}(jQuery,Foundation),!function(t,e){function i(i,o,a,r){function l(){i||o.hide(),d(),r&&r.apply(o)}function d(){o[0].style.transitionDuration=0,o.removeClass(h+" "+u+" "+a)}if(o=t(o).eq(0),o.length){var h=i?n[0]:n[1],u=i?s[0]:s[1];d(),o.addClass(a).css("transition","none"),requestAnimationFrame(function(){o.addClass(h),i&&o.show()}),requestAnimationFrame(function(){o[0].offsetWidth,o.css("transition",""),o.addClass(u)}),o.one(e.transitionend,l)}}var n=["mui-enter","mui-leave"],s=["mui-enter-active","mui-leave-active"],o={animateIn:function(t,e,n){i(!0,t,e,n)},animateOut:function(t,e,n){i(!1,t,e,n)}},a=function(t,e,i){function n(r){a||(a=window.performance.now()),o=r-a,i.apply(e),t>o?s=window.requestAnimationFrame(n,e):(window.cancelAnimationFrame(s),e.trigger("finished.zf.animate",[e]).triggerHandler("finished.zf.animate",[e]))}var s,o,a=null;s=window.requestAnimationFrame(n)};e.Move=a,e.Motion=o}(jQuery,Foundation),!function(t,e){"use strict";e.Nest={Feather:function(e,i){e.attr("role","menubar"),i=i||"zf";var n=e.find("li").attr({role:"menuitem"}),s="is-"+i+"-submenu",o=s+"-item";n.each(function(){var e=t(this),i=e.children("ul");i.length&&(e.addClass("has-submenu"),i.addClass("submenu "+s).attr("data-submenu","")),e.parent("[data-submenu]").length&&e.addClass("is-submenu-item "+o)})},Burn:function(t,e){var i=(t.find("li").removeAttr("tabindex"),"is-"+e+"-submenu"),n=i+"-item";t.find("*").removeClass(i+" "+n+" has-submenu is-submenu-item submenu is-active").removeAttr("data-submenu").css("display","")}}}(jQuery,window.Foundation),!function(t,e){"use strict";var i=function(t,e,i){var n,s,o=this,a=e.duration,r=Object.keys(t.data())[0]||"timer",l=-1;this.restart=function(){l=-1,clearTimeout(s),this.start()},this.start=function(){clearTimeout(s),l=0>=l?a:l,t.data("paused",!1),n=Date.now(),s=setTimeout(function(){e.infinite&&o.restart(),i()},l),t.trigger("timerstart.zf."+r)},this.pause=function(){clearTimeout(s),t.data("paused",!0);var e=Date.now();l-=e-n,t.trigger("timerpaused.zf."+r)}},n=function(e,i){var n=e.length;0===n&&i();var s=function(){n--,0===n&&i()};e.each(function(){this.complete?s():"undefined"!=typeof this.naturalWidth&&this.naturalWidth>0?s():t(this).one("load",function(){s()})})};e.Timer=i,e.onImagesLoaded=n}(jQuery,window.Foundation),function(t){function e(){this.removeEventListener("touchmove",i),this.removeEventListener("touchend",e),d=!1}function i(i){if(t.spotSwipe.preventDefault&&i.preventDefault(),d){var n,s=i.touches[0].pageX,h=i.touches[0].pageY,u=o-s,f=a-h;l=(new Date).getTime()-r,Math.abs(u)>=t.spotSwipe.moveThreshold&&l<=t.spotSwipe.timeThreshold?n=u>0?"left":"right":Math.abs(f)>=t.spotSwipe.moveThreshold&&l<=t.spotSwipe.timeThreshold&&(n=f>0?"down":"up"),n&&(e.call(this),t(this).trigger("swipe",n).trigger("swipe"+n))}}function n(t){1==t.touches.length&&(o=t.touches[0].pageX,a=t.touches[0].pageY,d=!0,r=(new Date).getTime(),this.addEventListener("touchmove",i,!1),this.addEventListener("touchend",e,!1))}function s(){this.addEventListener&&this.addEventListener("touchstart",n,!1)}t.spotSwipe={version:"1.0.0",enabled:"ontouchstart"in document.documentElement,preventDefault:!0,moveThreshold:75,timeThreshold:200};var o,a,r,l,d=!1;t.event.special.swipe={setup:s},t.each(["left","up","down","right"],function(){t.event.special["swipe"+this]={setup:function(){t(this).on("swipe",t.noop)}}})}(jQuery),!function(t){t.fn.addTouch=function(){this.each(function(i,n){t(n).bind("touchstart touchmove touchend touchcancel",function(){e(event)})});var e=function(t){var e=t.changedTouches,i=e[0],n={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup"},s=n[t.type],o=document.createEvent("MouseEvent");o.initMouseEvent(s,!0,!0,window,1,i.screenX,i.screenY,i.clientX,i.clientY,!1,!1,!1,!1,0,null),i.target.dispatchEvent(o)}}}(jQuery),!function(t,e){e(document).on("click.zf.trigger","[data-open]",function(){var t=e(this).data("open");e("#"+t).triggerHandler("open.zf.trigger",[e(this)])}),e(document).on("click.zf.trigger","[data-close]",function(){var t=e(this).data("close");t?e("#"+t).triggerHandler("close.zf.trigger",[e(this)]):e(this).trigger("close.zf.trigger")}),e(document).on("click.zf.trigger","[data-toggle]",function(){var t=e(this).data("toggle");e("#"+t).triggerHandler("toggle.zf.trigger",[e(this)])}),e(document).on("close.zf.trigger","[data-closable]",function(){var i=e(this).data("closable")||"fade-out";t.Motion?t.Motion.animateOut(e(this),i,function(){e(this).trigger("closed.zf")}):e(this).fadeOut().trigger("closed.zf")}),e(window).load(function(){n(),s(),i()});var i=function(t){var i=e("[data-yeti-box]"),n=["dropdown","tooltip","reveal"];if(t&&("string"==typeof t?n.push(t):"object"==typeof t&&"string"==typeof t[0]?n.concat(t):console.error("Plugin names must be strings")),i.length){var s=n.map(function(t){return"closeme.zf."+t}).join(" ");e(window).off(s).on(s,function(t,i){var n=t.namespace.split(".")[0],s=e("[data-"+n+"]").not('[data-yeti-box="'+i+'"]');s.each(function(){var t=e(this);t.triggerHandler("close.zf.trigger",[t])})})}},n=function(t){var i,n,s,o=e("[data-resize]");o.length&&e(window).off("resize.zf.trigger").on("resize.zf.trigger",function(a){i&&clearTimeout(i),i=setTimeout(function(){for(n=0,s=o.length;s>n;n++){var t=e(o[n]);t.triggerHandler("resizeme.zf.trigger",[t])}},t||10)})},s=function(t){var i,n,s,o=e("[data-scroll]");o.length&&e(window).off("scroll.zf.trigger").on("scroll.zf.trigger",function(a){i&&clearTimeout(i),i=setTimeout(function(){for(n=0,s=o.length;s>n;n++){var t=e(o[n]);t.triggerHandler("scrollme.zf.trigger",[t,window.scrollY])}},t||50)})};t.IHearYou=n,t.ISeeYou=s,t.IFeelYou=i}(window.Foundation,window.jQuery),!function(t,e){"use strict";function i(t,n){this.$element=t,this.options=e.extend({},i.defaults,this.$element.data(),n),this.$window=e(window),this.name="Abide",this.attr="data-abide",this._init(),this._events(),this.$element.trigger("init.zf.abide")}i.defaults={validateOn:"fieldChange",labelErrorClass:"is-invalid-label",inputErrorClass:"is-invalid-input",formErrorSelector:".form-error",formErrorClass:"is-visible",patterns:{alpha:/^[a-zA-Z]+$/,alpha_numeric:/^[a-zA-Z0-9]+$/,integer:/^[-+]?\d+$/,number:/^[-+]?\d*(?:[\.\,]\d+)?$/,card:/^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$/,cvv:/^([0-9]){3,4}$/,email:/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+$/,url:/^(https?|ftp|file|ssh):\/\/(((([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-zA-Z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-zA-Z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-zA-Z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-zA-Z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-zA-Z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-zA-Z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/,domain:/^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,8}$/,datetime:/^([0-2][0-9]{3})\-([0-1][0-9])\-([0-3][0-9])T([0-5][0-9])\:([0-5][0-9])\:([0-5][0-9])(Z|([\-\+]([0-1][0-9])\:00))$/,date:/(?:19|20)[0-9]{2}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-9])|(?:(?!02)(?:0[1-9]|1[0-2])-(?:30))|(?:(?:0[13578]|1[02])-31))$/,time:/^(0[0-9]|1[0-9]|2[0-3])(:[0-5][0-9]){2}$/,dateISO:/^\d{4}[\/\-]\d{1,2}[\/\-]\d{1,2}$/,month_day_year:/^(0[1-9]|1[012])[- \/.](0[1-9]|[12][0-9]|3[01])[- \/.]\d{4}$/,day_month_year:/^(0[1-9]|[12][0-9]|3[01])[- \/.](0[1-9]|1[012])[- \/.]\d{4}$/,color:/^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/},validators:{equalTo:function(t,e,i){var n=document.getElementById(t.getAttribute(this.add_namespace("data-equalto"))).value,s=t.value,o=n===s;return o}}},i.prototype._init=function(){},i.prototype._events=function(){var t=this;this.$element.off(".abide").on("reset.fndtn.abide",function(i){t.resetForm(e(this))}).on("submit.fndtn.abide",function(e){e.preventDefault(),t.validateForm(t.$element)}).find("input, textarea, select").off(".abide").on("blur.fndtn.abide change.fndtn.abide",function(i){"fieldChange"===t.options.validateOn&&t.validateInput(e(i.target),t.$element)}).on("keydown.fndtn.abide",function(t){})},i.prototype._reflow=function(){},i.prototype.requiredCheck=function(t){switch(t[0].type){case"text":return t.attr("required")&&!t.val()?!1:!0;case"checkbox":return t.attr("required")&&!t.is(":checked")?!1:!0;case"radio":return t.attr("required")&&!t.is(":checked")?!1:!0;default:return!t.attr("required")||t.val()&&t.val().length&&!t.is(":empty")?!0:!1}},i.prototype.findLabel=function(t){return t.next("label").length?t.next("label"):t.closest("label")},i.prototype.addErrorClasses=function(t){var e=this,i=e.findLabel(t),n=t.next(e.options.formErrorSelector)||t.find(e.options.formErrorSelector);i&&i.addClass(e.options.labelErrorClass),n&&n.addClass(e.options.formErrorClass),t.addClass(e.options.inputErrorClass)},i.prototype.removeErrorClasses=function(t){var e=this,i=e.findLabel(t),n=t.next(e.options.formErrorSelector)||t.find(e.options.formErrorSelector);i&&i.hasClass(e.options.labelErrorClass)&&i.removeClass(e.options.labelErrorClass),n&&n.hasClass(e.options.formErrorClass)&&n.removeClass(e.options.formErrorClass),t.hasClass(e.options.inputErrorClass)&&t.removeClass(e.options.inputErrorClass)},i.prototype.validateInput=function(t,i){var n,s,o=this;i.find('input[type="text"]'),i.find('input[type="checkbox"]');"text"===t[0].type?o.requiredCheck(t)&&o.validateText(t)?(o.removeErrorClasses(t),t.trigger("valid.fndtn.abide",t[0])):(o.addErrorClasses(t),t.trigger("invalid.fndtn.abide",t[0])):"radio"===t[0].type?(s=t.attr("name"),n=t.siblings("label"),o.validateRadio(s)?(e(n).each(function(){e(this).hasClass(o.options.labelErrorClass)&&e(this).removeClass(o.options.labelErrorClass)}),t.trigger("valid.fndtn.abide",t[0])):(e(n).each(function(){e(this).addClass(o.options.labelErrorClass)}),t.trigger("invalid.fndtn.abide",t[0]))):"checkbox"===t[0].type?o.requiredCheck(t)?(o.removeErrorClasses(t),t.trigger("valid.fndtn.abide",t[0])):(o.addErrorClasses(t),t.trigger("invalid.fndtn.abide",t[0])):o.requiredCheck(t)&&o.validateText(t)?(o.removeErrorClasses(t),t.trigger("valid.fndtn.abide",t[0])):(o.addErrorClasses(t),t.trigger("invalid.fndtn.abide",t[0]))},i.prototype.validateForm=function(t){for(var i=this,n=t.find("input"),s=t.find("input").length,o=0;s>o;)i.validateInput(e(n[o]),t),o++;t.find(".form-error.is-visible").length||t.find(".is-invalid-label").length?t.find("[data-abide-error]").css("display","block"):t.find("[data-abide-error]").css("display","none")},i.prototype.validateText=function(t){var i=this.options.patterns,n=e(t).val(),s=e(t).attr("pattern");return 0===n.length?!0:n.match(i[s])?!0:!1},i.prototype.validateRadio=function(t){var i=this,n=(e(':radio[name="'+t+'"]').siblings("label"),0);return e(':radio[name="'+t+'"]').each(function(){i.requiredCheck(e(this))||n++,e(this).is(":checked")&&(n=0)}),n>0?!1:!0},i.prototype.matchValidation=function(t,e){},i.prototype.resetForm=function(t){var i=this,n="data-invalid";e("["+i.invalidAttr+"]",t).removeAttr(n),e("."+i.options.labelErrorClass,t).not("small").removeClass(i.options.labelErrorClass),e("."+i.options.inputErrorClass,t).not("small").removeClass(i.options.inputErrorClass),e(".form-error.is-visible").removeClass("is-visible"),t.find("[data-abide-error]").css("display","none"),e(":input",t).not(":button, :submit, :reset, :hidden, [data-abide-ignore]").val("").removeAttr(n)},t.plugin(i),"undefined"!=typeof module&&"undefined"!=typeof module.exports&&(module.exports=i),"function"==typeof define&&define(["foundation"],function(){return i})}(Foundation,jQuery),!function(t,e){"use strict";function i(n,s){this.$element=n,this.options=t.extend({},i.defaults,this.$element.data(),s),this._init(),e.registerPlugin(this),e.Keyboard.register("Accordion",{ENTER:"toggle",SPACE:"toggle",ARROW_DOWN:"next",ARROW_UP:"previous"})}i.defaults={slideSpeed:250,multiExpand:!1,allowAllClosed:!1},i.prototype._init=function(){this.$element.attr("role","tablist"),this.$tabs=this.$element.children("li"),this.$tabs.each(function(i,n){var s=t(n),o=s.find("[data-tab-content]"),a=o[0].id||e.GetYoDigits(6,"accordion"),r=n.id||a+"-label";s.find("a:first").attr({"aria-controls":a,role:"tab",id:r,"aria-expanded":!1,"aria-selected":!1}),o.attr({role:"tabpanel","aria-labelledby":r,"aria-hidden":!0,id:a})});var i=this.$element.find(".is-active").children("[data-tab-content]");i.length&&this.down(i,!0),this._events()},i.prototype._events=function(){var i=this;this.$tabs.each(function(){var n=t(this),s=n.children("[data-tab-content]");s.length&&n.children("a").off("click.zf.accordion keydown.zf.accordion").on("click.zf.accordion",function(t){t.preventDefault(),n.hasClass("is-active")?(i.options.allowAllClosed||n.siblings().hasClass("is-active"))&&i.up(s):i.down(s)}).on("keydown.zf.accordion",function(t){e.Keyboard.handleKey(t,i,{toggle:function(){i.toggle(s)},next:function(){n.next().find("a").focus().trigger("click.zf.accordion")},previous:function(){n.prev().find("a").focus().trigger("click.zf.accordion")},handled:function(){t.preventDefault(),t.stopPropagation()}})})})},i.prototype.toggle=function(t){if(t.parent().hasClass("is-active")){if(!this.options.allowAllClosed&&!t.parent().siblings().hasClass("is-active"))return;this.up(t)}else this.down(t)},i.prototype.down=function(i,n){var s=this;if(!this.options.multiExpand&&!n){var o=this.$element.find(".is-active").children("[data-tab-content]");o.length&&this.up(o)}i.attr("aria-hidden",!1).parent("[data-tab-content]").addBack().parent().addClass("is-active"),e.Move(s.options.slideSpeed,i,function(){i.slideDown(s.options.slideSpeed)}),n||e._reflow(this.$element.attr("data-accordion")),t("#"+i.attr("aria-labelledby")).attr({"aria-expanded":!0,"aria-selected":!0}),this.$element.trigger("down.zf.accordion",[i])},i.prototype.up=function(i){var n=i.parent().siblings(),s=this,o=this.options.multiExpand?n.hasClass("is-active"):i.parent().hasClass("is-active");(this.options.allowAllClosed||o)&&(e.Move(this.options.slideSpeed,i,function(){i.slideUp(s.options.slideSpeed)}),i.attr("aria-hidden",!0).parent().removeClass("is-active"),t("#"+i.attr("aria-labelledby")).attr({"aria-expanded":!1,"aria-selected":!1}),this.$element.trigger("up.zf.accordion",[i]))},i.prototype.destroy=function(){this.$element.find("[data-tab-content]").slideUp(0).css("display",""),this.$element.find("a").off(".zf.accordion"),e.unregisterPlugin(this)},e.plugin(i)}(jQuery,window.Foundation),!function(t){"use strict";function e(i,n){this.$element=i,this.options=t.extend({},e.defaults,this.$element.data(),n),Foundation.Nest.Feather(this.$element,"accordion"),this._init(),Foundation.registerPlugin(this),Foundation.Keyboard.register("AccordionMenu",{ENTER:"toggle",SPACE:"toggle",ARROW_RIGHT:"open",ARROW_UP:"up",ARROW_DOWN:"down",ARROW_LEFT:"close",ESCAPE:"closeAll",TAB:"down",SHIFT_TAB:"up"})}e.defaults={slideSpeed:250,multiOpen:!0},e.prototype._init=function(){this.$element.find("[data-submenu]").not(".is-active").slideUp(0),this.$element.attr({role:"tablist","aria-multiselectable":this.options.multiOpen}),this.$menuLinks=this.$element.find(".has-submenu"),this.$menuLinks.each(function(){var e=this.id||Foundation.GetYoDigits(6,"acc-menu-link"),i=t(this),n=i.children("[data-submenu]"),s=n[0].id||Foundation.GetYoDigits(6,"acc-menu"),o=n.hasClass("is-active");i.attr({"aria-controls":s,"aria-expanded":o,"aria-selected":!1,role:"tab",id:e}),n.attr({"aria-labelledby":e,"aria-hidden":!o,role:"tabpanel",id:s})});var e=this.$element.find(".is-active");if(e.length){var i=this;e.each(function(){i.down(t(this))})}this._events()},e.prototype._events=function(){var e=this;this.$element.find("li").each(function(){var i=t(this).children("[data-submenu]");i.length&&t(this).children("a").off("click.zf.accordionmenu").on("click.zf.accordionmenu",function(t){t.preventDefault(),e.toggle(i)})}).on("keydown.zf.accordionmenu",function(i){var n,s,o=t(this),a=o.parent("ul").children("li"),r=o.children("[data-submenu]");a.each(function(e){return t(this).is(o)?(n=a.eq(Math.max(0,e-1)),s=a.eq(Math.min(e+1,a.length-1)),t(this).children("[data-submenu]:visible").length&&(s=o.find("li:first-child")),t(this).is(":first-child")?n=o.parents("li").first():n.children("[data-submenu]:visible").length&&(n=n.find("li:last-child")),void(t(this).is(":last-child")&&(s=o.parents("li").first().next("li")))):void 0}),Foundation.Keyboard.handleKey(i,e,{open:function(){r.is(":hidden")&&(e.down(r),r.find("li").first().focus())},close:function(){r.length&&!r.is(":hidden")?e.up(r):o.parent("[data-submenu]").length&&(e.up(o.parent("[data-submenu]")),o.parents("li").first().focus())},up:function(){n.focus()},down:function(){s.focus()},toggle:function(){o.children("[data-submenu]").length&&e.toggle(o.children("[data-submenu]"))},closeAll:function(){e.hideAll()},handled:function(){i.preventDefault(),i.stopImmediatePropagation()}})})},e.prototype.hideAll=function(){this.$element.find("[data-submenu]").slideUp(this.options.slideSpeed)},e.prototype.toggle=function(t){t.is(":hidden")?this.down(t):this.up(t)},e.prototype.down=function(t){var e=this;this.options.multiOpen||this.up(this.$element.find(".is-active").not(t.parentsUntil(this.$element))),t.addClass("is-active").attr({"aria-hidden":!1}).parent(".has-submenu").attr({"aria-expanded":!0,"aria-selected":!0}),Foundation.Move(this.options.slideSpeed,t,function(){t.slideDown(e.options.slideSpeed)}),this.$element.trigger("down.zf.accordionMenu",[t])},e.prototype.up=function(t){var e=this;Foundation.Move(this.options.slideSpeed,t,function(){t.slideUp(e.options.slideSpeed)}),t.find("[data-submenu]").slideUp(0).attr("aria-hidden",!0).attr("aria-hidden",!0).parent(".has-submenu").attr({"aria-expanded":!1,"aria-selected":!1}),this.$element.trigger("up.zf.accordionMenu",[t])},e.prototype.destroy=function(){this.$element.find("[data-submenu]").slideDown(0).css("display",""),this.$element.find("a").off("click.zf.accordionMenu"),Foundation.Nest.Burn(this.$element,"accordion"),Foundation.unregisterPlugin(this)},Foundation.plugin(e)}(jQuery,window.Foundation),!function(t,e){"use strict";function i(n,s){this.$element=n,this.options=t.extend({},i.defaults,this.$element.data(),s),e.Nest.Feather(this.$element,"drilldown"),this._init(),e.registerPlugin(this),e.Keyboard.register("Drilldown",{ENTER:"open",SPACE:"open",ARROW_RIGHT:"next",ARROW_UP:"up",ARROW_DOWN:"down",ARROW_LEFT:"previous",ESCAPE:"close",TAB:"down",SHIFT_TAB:"up"})}i.defaults={backButton:'
  • Back
  • ',wrapper:"
    ",closeOnClick:!1},i.prototype._init=function(){this.$submenuAnchors=this.$element.find("li.has-submenu"),this.$submenus=this.$submenuAnchors.children("[data-submenu]").addClass("is-drilldown-sub"),this.$menuItems=this.$element.find("li").not(".js-drilldown-back").attr("role","menuitem"),this._prepareMenu(),this._keyboardEvents()},i.prototype._prepareMenu=function(){var e=this;this.$submenuAnchors.each(function(){var i=t(this);i.find("a")[0].removeAttribute("href"),i.children("[data-submenu]").attr({"aria-hidden":!0,tabindex:0,role:"menu"}),e._events(i)}),this.$submenus.each(function(){var i=t(this),n=i.find(".js-drilldown-back");n.length||(i.prepend(e.options.backButton),e._back(i))}),this.$element.parent().hasClass("is-drilldown")||(this.$wrapper=t(this.options.wrapper).addClass("is-drilldown").css(this._getMaxDims()),this.$element.wrap(this.$wrapper))},i.prototype._events=function(e){var i=this;e.on("mousedown.zf.drilldown tap.zf.drilldown touchend.zf.drilldown",function(n){if(n.preventDefault(),n.stopPropagation(),n.target!==n.currentTarget.firstElementChild)return!1;if(i._show(e),i.options.closeOnClick){var s=t("body").not(i.$wrapper);s.off(".zf.drilldown").on("mousedown.zf.drilldown tap.zf.drilldown touchend.zf.drilldown",function(t){t.preventDefault(),i._hideAll(),s.off(".zf.drilldown")})}}),e.find(".js-drilldown-back").eq(0).on("mousedown.zf.drilldown tap.zf.drilldown touchend.zf.drilldown",function(t){})},i.prototype._keyboardEvents=function(){var i=this;this.$menuItems.add(this.$element.find(".js-drilldown-back")).on("keydown.zf.drilldown",function(n){var s,o,a=t(this),r=a.parent("ul").children("li");r.each(function(e){return t(this).is(a)?(s=r.eq(Math.max(0,e-1)),void(o=r.eq(Math.min(e+1,r.length-1)))):void 0}),e.Keyboard.handleKey(n,i,{next:function(){a.is(i.$submenuAnchors)&&(i._show(a),a.on(e.transitionend+".zf.drilldown",function(){a.find("ul li").filter(i.$menuItems).first().focus()}))},previous:function(){i._hide(a.parent("ul")),a.parent("ul").on(e.transitionend+".zf.drilldown",function(){setTimeout(function(){a.parent("ul").parent("li").focus()},1)})},up:function(){s.focus()},down:function(){o.focus()},close:function(){i._back()},open:function(){a.is(i.$menuItems)?a.is(i.$submenuAnchors)&&(i._show(a),setTimeout(function(){a.find("ul li").filter(i.$menuItems).first().focus()},1)):(i._hide(a.parent("ul")),setTimeout(function(){a.parent("ul").parent("li").focus()},1))},handled:function(){n.preventDefault(),n.stopImmediatePropagation()}})})},i.prototype._hideAll=function(){this.$element.find(".is-drilldown-sub.is-active").addClass("is-closing").on(e.transitionend+".zf.drilldown",function(i){t(this).removeClass("is-active is-closing").off(e.transitionend+".zf.drilldown")}),this.$element.trigger("closed.zf.drilldown")},i.prototype._back=function(t){var e=this;t.off("mousedown.zf.drilldown tap.zf.drilldown touchend.zf.drilldown"),t.children(".js-drilldown-back").on("mousedown.zf.drilldown tap.zf.drilldown touchend.zf.drilldown",function(i){e._hide(t)})},i.prototype._menuLinkEvents=function(){var t=this;this.$menuItems.not(".has-submenu").off("mousedown.zf.drilldown tap.zf.drilldown touchend.zf.drilldown").on("mousedown.zf.drilldown tap.zf.drilldown touchend.zf.drilldown",function(e){setTimeout(function(){t._hideAll()},0)})},i.prototype._show=function(t){t.children("[data-submenu]").addClass("is-active"),this.$element.trigger("open.zf.drilldown",[t])},i.prototype._hide=function(i){i.addClass("is-closing").on(e.transitionend+".zf.drilldown",function(i){t(this).removeClass("is-active is-closing").off(e.transitionend+".zf.drilldown")}),i.trigger("hide.zf.drilldown",[i])},i.prototype._getMaxDims=function(){var e=0,i={};return this.$submenus.add(this.$element).each(function(){var i=t(this).children("li").length;e=i>e?i:e}),i.height=e*this.$menuItems[0].getBoundingClientRect().height+"px",i.width=this.$element[0].getBoundingClientRect().width+"px",i},i.prototype.destroy=function(){this._hideAll(),e.Nest.Burn(this.$element,"drilldown"), +this.$element.unwrap().find(".js-drilldown-back").remove().end().find(".is-active, .is-closing, .is-drilldown-sub").removeClass("is-active is-closing is-drilldown-sub").end().find("[data-submenu]").removeAttr("aria-hidden tabindex role").off(".zf.drilldown").end().off("zf.drilldown"),e.unregisterPlugin(this)},e.plugin(i)}(jQuery,window.Foundation),!function(t,e){"use strict";function i(n,s){this.$element=n,this.options=t.extend({},i.defaults,this.$element.data(),s),this._init(),e.registerPlugin(this),e.Keyboard.register("Dropdown",{ENTER:"open",SPACE:"open",ESCAPE:"close",TAB:"tab_forward",SHIFT_TAB:"tab_backward"})}i.defaults={hoverDelay:250,hover:!1,vOffset:1,hOffset:1,positionClass:"",trapFocus:!1},i.prototype._init=function(){var i=this.$element.attr("id");this.$anchor=t('[data-toggle="'+i+'"]')||t('[data-open="'+i+'"]'),this.$anchor.attr({"aria-controls":i,"data-is-focus":!1,"data-yeti-box":i,"aria-haspopup":!0,"aria-expanded":!1}),this.options.positionClass=this.getPositionClass(),this.counter=4,this.usedPositions=[],this.$element.attr({"aria-hidden":"true","data-yeti-box":i,"data-resize":i,"aria-labelledby":this.$anchor[0].id||e.GetYoDigits(6,"dd-anchor")}),this._events()},i.prototype.getPositionClass=function(){var t=this.$element[0].className.match(/(top|left|right)/g);return t=t?t[0]:""},i.prototype._reposition=function(t){this.usedPositions.push(t?t:"bottom"),!t&&this.usedPositions.indexOf("top")<0?this.$element.addClass("top"):"top"===t&&this.usedPositions.indexOf("bottom")<0?this.$element.removeClass(t):"left"===t&&this.usedPositions.indexOf("right")<0?this.$element.removeClass(t).addClass("right"):"right"===t&&this.usedPositions.indexOf("left")<0?this.$element.removeClass(t).addClass("left"):!t&&this.usedPositions.indexOf("top")>-1&&this.usedPositions.indexOf("left")<0?this.$element.addClass("left"):"top"===t&&this.usedPositions.indexOf("bottom")>-1&&this.usedPositions.indexOf("left")<0?this.$element.removeClass(t).addClass("left"):"left"===t&&this.usedPositions.indexOf("right")>-1&&this.usedPositions.indexOf("bottom")<0?this.$element.removeClass(t):"right"===t&&this.usedPositions.indexOf("left")>-1&&this.usedPositions.indexOf("bottom")<0?this.$element.removeClass(t):this.$element.removeClass(t),this.classChanged=!0,this.counter--},i.prototype._setPosition=function(){if("false"===this.$anchor.attr("aria-expanded"))return!1;var t=this.getPositionClass(),i=e.Box.GetDimensions(this.$element),n=(e.Box.GetDimensions(this.$anchor),"left"===t?"left":"right"===t?"left":"top"),s="top"===n?"height":"width";"height"===s?this.options.vOffset:this.options.hOffset;if(i.width>=i.windowDims.width||!this.counter&&!e.Box.ImNotTouchingYou(this.$element))return this.$element.offset(e.Box.GetOffsets(this.$element,this.$anchor,"center bottom",this.options.vOffset,this.options.hOffset,!0)).css({width:i.windowDims.width-2*this.options.hOffset,height:"auto"}),this.classChanged=!0,!1;for(this.$element.offset(e.Box.GetOffsets(this.$element,this.$anchor,t,this.options.vOffset,this.options.hOffset));!e.Box.ImNotTouchingYou(this.$element)&&this.counter;)this._reposition(t),this._setPosition()},i.prototype._events=function(){var t=this;this.$element.on({"open.zf.trigger":this.open.bind(this),"close.zf.trigger":this.close.bind(this),"toggle.zf.trigger":this.toggle.bind(this),"resizeme.zf.trigger":this._setPosition.bind(this)}),this.options.hover&&(clearTimeout(t.timeout),this.$anchor.on("mouseenter.zf.dropdown mouseleave.zf.dropdown",function(){t.timeOut=setTimeout(function(){t.toggle()},t.options.hoverDelay)})),this.$anchor.add(this.$element).on("keydown.zf.dropdown",function(i){var n=e.Keyboard.findFocusable(t.$element);e.Keyboard.handleKey(i,t,{tab_forward:function(){this.$element.find(":focus").is(n.eq(-1))&&(this.options.trapFocus?(n.eq(0).focus(),i.preventDefault()):this.close())},tab_backward:function(){(this.$element.find(":focus").is(n.eq(0))||this.$element.is(":focus"))&&(this.options.trapFocus?(n.eq(-1).focus(),i.preventDefault()):this.close())},open:function(){t.open(),t.$element.attr("tabindex",-1).focus()},close:function(){t.close(),t.$anchor.focus()}})})},i.prototype.open=function(){this.$element.trigger("closeme.zf.dropdown",this.$element.attr("id")),this.$anchor.addClass("hover").attr({"aria-expanded":!0}),this._setPosition(),this.$element.addClass("is-open").attr({"aria-hidden":!1}),this.$element.trigger("show.zf.dropdown",[this.$element])},i.prototype.close=function(){if(!this.$element.hasClass("is-open"))return!1;if(this.$element.removeClass("is-open").attr({"aria-hidden":!0}),this.$anchor.removeClass("hover").attr("aria-expanded",!1),this.classChanged){var t=this.getPositionClass();t&&this.$element.removeClass(t),this.$element.addClass(this.options.positionClass).css({height:"",width:""}),this.classChanged=!1,this.counter=4,this.usedPositions.length=0}this.$element.trigger("hide.zf.dropdown",[this.$element])},i.prototype.toggle=function(){this.$element.hasClass("is-open")?this.close():this.open()},i.prototype.destroy=function(){this.$element.off(".zf.trigger").hide(),this.$anchor.off(".zf.dropdown"),e.unregisterPlugin(this)},e.plugin(i)}(jQuery,window.Foundation),!function(t,e){"use strict";function i(n,s){this.$element=n,this.options=e.extend({},i.defaults,this.$element.data(),s),t.Nest.Feather(this.$element,"dropdown"),this._init(),t.registerPlugin(this),t.Keyboard.register("DropdownMenu",{ENTER:"open",SPACE:"open",ARROW_RIGHT:"next",ARROW_UP:"up",ARROW_DOWN:"down",ARROW_LEFT:"previous",ESCAPE:"close"})}i.defaults={clickOpen:!0,closeOnClick:!1,disableHover:!1,autoclose:!0,hoverDelay:150,closingTime:500,alignment:"left",verticalClass:"vertical",rightClass:"align-right"},i.prototype._init=function(){this.$element.hasClass(this.options.verticalClass)&&(this.vertical=!0),this._prepareMenu()},i.prototype._prepareMenu=function(){var t=this;this.$tabs=this.$element.children("li.has-submenu"),this.$tabs.children("[data-submenu]").addClass("first-sub"),this.$submenus=this.$element.find("li.has-submenu"),this.$menuItems=this.$element.find("li").attr({role:"menuitem",tabindex:0}),this.$menuItems.children("a").attr("tabindex",-1),this.$element.hasClass(this.options.rightClass)?(this.options.alignment="right",this.$submenus.addClass("is-left-arrow opens-left")):this.$submenus.addClass("is-right-arrow opens-right"),this.vertical||this.$tabs.removeClass("is-right-arrow is-left-arrow opens-left opens-right").addClass("is-down-arrow"),this.$tabs.each(function(){var t=e(this);t.attr({role:"menuitem",tabindex:0,title:t.children("a:first-child").text()}).children("a").attr("tabindex",-1),t.children("[data-submenu]")&&t.attr("aria-haspopup",!0)}),this.$submenus.each(function(){var i=e(this);i.children("[data-submenu]").attr({"aria-hidden":!0,tabindex:-1,role:"menu"}).addClass("vertical"),t._events(i)})},i.prototype._events=function(i){var n=this;this.options.clickOpen&&i.children("a").on("click.zf.dropdownmenu touchend.zf.dropdownmenu",function(t){e(t.target).parent("li").hasClass("has-submenu")&&(t.preventDefault(),t.stopPropagation(),i.data("isClick")?n._hide(i):(n._hideOthers(i),n._show(i),i.data("isClick",!0).parentsUntil("[data-dropdown-menu]",".has-submenu").data("isClick",!0),n.options.closeOnClick&&n._addBodyHandler()))}),this.options.disableHover||(this.$menuItems.on("mouseenter.zf.dropdownmenu",function(t){var i=e(this);i.hasClass("is-active")||n._hideOthers(i)}),i.on("mouseenter.zf.dropdownmenu",function(t){clearTimeout(i.closeTimer),i.hasClass("is-active")||(i.openTimer=setTimeout(function(){n._show(i)},n.options.hoverDelay))}).on("mouseleave.zf.dropdownmenu",function(t){!i.data("isClick")&&n.options.autoclose&&(clearTimeout(i.openTimer),i.closeTimer=setTimeout(function(){n._hide(i)},n.options.closingTime))})),this.$menuItems.on("keydown.zf.dropdownmenu",function(i){var s,o,a=e(this),r=n.$element.children("li"),l=a.is(r),d=l?r:a.parents("li").first().add(a.parent("ul").children("li"));d.each(function(t){return e(this).is(a)?(s=d.eq(t-1),void(o=d.eq(t+1))):void 0});var h=function(){a.is(":last-child")||o.focus()},u=function(){s.focus()},f=function(){a.has("ul").length&&(n._show(a),a.find("li").first().focus())},c=function(){a.parents("li").first().focus(),n._hide(a.parents("li").first())},p={open:f,close:function(){n._hideAll(),n.$menuItems.first().focus()},handled:function(){i.preventDefault(),i.stopImmediatePropagation()}};l?n.vertical?"left"===n.options.alignment?e.extend(p,{down:h,up:u,next:f,previous:c}):e.extend(p,{down:h,up:u,next:c,previous:f}):e.extend(p,{next:h,previous:u,down:f,up:c}):"left"===n.options.alignment?e.extend(p,{next:f,previous:c,down:h,up:u}):e.extend(p,{next:c,previous:f,down:h,up:u}),t.Keyboard.handleKey(i,n,p)})},i.prototype._toggle=function(t){t.hasClass("is-active")?this._hide(t):this._show(t)},i.prototype._addBodyHandler=function(){var t=e("body"),i=this;t.not(i.$element).on("click.zf.dropdownmenu tap.zf.dropdownmenu touchend.zf.dropdownmenu",function(e){i._hideAll(),t.off("click.zf.dropdownmenu tap.zf.dropdownmenu touchend.zf.dropdownmenu")})},i.prototype._show=function(e){this._hideOthers(e),e.focus();var i=e.children("[data-submenu]:first-of-type");e.addClass("is-active"),i.css("visibility","hidden").addClass("js-dropdown-active").attr("aria-hidden",!1);var n=t.Box.ImNotTouchingYou(i,null,!0);n||("left"===this.options.alignment?e.removeClass("opens-left").addClass("opens-right"):e.removeClass("opens-right").addClass("opens-left"),this.changed=!0,n=t.Box.ImNotTouchingYou(i,null,!0),n||(e.removeClass("opens-left opens-right").addClass("opens-inner"),this.changed=!0)),i.css("visibility",""),this.$element.trigger("show.zf.dropdownmenu",[e])},i.prototype._hide=function(t){this._hideSome(t)},i.prototype._hideSome=function(t){t.length&&(t.removeClass("is-active opens-inner").data("isClick",!1).find(".is-active").removeClass("is-active").data("isClick",!1).end().find(".js-dropdown-active").removeClass("js-dropdown-active").attr("aria-hidden",!0),t.parent(".has-submenu").removeClass("is-active"),this.changed&&("left"===this.options.alignment?t.find(".opens-left").removeClass("opens-left").addClass("opens-right"):t.find(".opens-right").removeClass("opens-right").addClass("opens-left")),this.$element.trigger("hide.zf.dropdownmenu"))},i.prototype._hideOthers=function(t){this._hideSome(t.siblings(".has-submenu.is-active"))},i.prototype._hideAll=function(){this._hideSome(this.$element)},i.prototype.destroy=function(){this._hideAll(),this.$element.removeData("zf-plugin").find("li").removeClass("js-dropdown-nohover is-right-arrow is-left-arrow opens-left opens-inner opens-right").add("a").off(".zf.dropdownmenu").end().find("ul").removeClass("first-sub"),t.Nest.Burn(this.$element,"dropdown"),t.unregisterPlugin(this)},t.plugin(i)}(Foundation,jQuery),!function(t,e){"use strict";function i(n,s){this.$element=n,this.options=e.extend({},i.defaults,this.$element.data(),s),this.$window=e(window),this.name="equalizer",this.attr="data-equalizer",this._init(),this._events(),t.registerPlugin(this)}i.defaults={equalizeOnStack:!0,throttleInterval:50},i.prototype._init=function(){this._reflow()},i.prototype._events=function(){var e=this;this.$window.off(".equalizer").on("resize.fndtn.equalizer",t.util.throttle(function(){e._reflow()},e.options.throttleInterval))},i.prototype._killswitch=function(){},i.prototype._reflow=function(){var i=this;e("["+this.attr+"]").each(function(){var n=e(this),s=[],o=n.find("img");o.length?t.onImagesLoaded(o,function(){s=i.getHeights(n),i.applyHeight(n,s)}):(s=i.getHeights(n),i.applyHeight(n,s))})},i.prototype.getHeights=function(t){var i,n=t.data("equalizer"),s=n?t.find("["+this.attr+'-watch="'+n+'"]:visible'):t.find("["+this.attr+"-watch]:visible");return s.height("inherit"),i=s.map(function(){return e(this).outerHeight(!1)}).get(),console.log(i),i},i.prototype.applyHeight=function(t,i){var n=t.data("equalizer"),s=n?t.find("["+this.attr+'-watch="'+n+'"]:visible'):t.find("["+this.attr+"-watch]:visible"),o=Math.max.apply(null,i);t.trigger("preEqualized.zf.Equalizer");for(var a=0;a=t:t-n.options.threshold<=e});t=s.length?s.length-1:0}this.$active.removeClass(this.options.activeClass),this.$active=this.$links.eq(t).addClass(this.options.activeClass);var o=this.$active[0].getAttribute("href");window.history.pushState?window.history.pushState(null,null,o):window.location.hash=o,this.scrollPos=e,this.$element.trigger("update.zf.magellan",[this.$active])},i.prototype.destroy=function(){this.$element.off(".zf.trigger .zf.magellan").find("."+this.options.activeClass).removeClass(this.options.activeClass);var e=this.$active[0].getAttribute("href");window.location.hash.replace(e,""),t.unregisterPlugin(this)},t.plugin(i),"undefined"!=typeof module&&"undefined"!=typeof module.exports&&(module.exports=i),"function"==typeof define&&define(["foundation"],function(){return i})}(Foundation,jQuery),!function(t,e){"use strict";function i(n,s){this.$element=n,this.options=t.extend({},i.defaults,this.$element.data(),s),this.$lastTrigger=t(),this._init(),this._events(),e.registerPlugin(this)}i.defaults={closeOnClick:!0,transitionTime:0,position:"left",forceTop:!1,isSticky:!1,isRevealed:!1,revealOn:null,autoFocus:!0,revealClass:"reveal-for-"},i.prototype._init=function(){var e=this.$element.attr("id");if(this.$element.attr("aria-hidden","true"),t(document).find('[data-open="'+e+'"], [data-close="'+e+'"], [data-toggle="'+e+'"]').attr("aria-expanded","false").attr("aria-controls",e),this.options.closeOnClick)if(t(".js-off-canvas-exit").length)this.$exiter=t(".js-off-canvas-exit");else{var i=document.createElement("div");i.setAttribute("class","js-off-canvas-exit"),t("[data-off-canvas-content]").append(i),this.$exiter=t(i)}this.options.isRevealed=this.options.isRevealed||new RegExp(this.options.revealClass,"g").test(this.$element[0].className),this.options.isRevealed&&(this.options.revealOn=this.options.revealOn||this.$element[0].className.match(/(reveal-for-medium|reveal-for-large)/g)[0].split("-")[2],this._setMQChecker()),this.options.transitionTime||(this.options.transitionTime=1e3*parseFloat(window.getComputedStyle(document.body).transitionDuration))},i.prototype._events=function(){if(this.$element.on({"open.zf.trigger":this.open.bind(this),"close.zf.trigger":this.close.bind(this),"toggle.zf.trigger":this.toggle.bind(this),"keydown.zf.offcanvas":this._handleKeyboard.bind(this)}),this.$exiter.length){this.$exiter.on({"click.zf.offcanvas":this.close.bind(this)})}},i.prototype._setMQChecker=function(){var i=this;t(window).on("changed.zf.mediaquery",function(){e.MediaQuery.atLeast(i.options.revealOn)?i.reveal(!0):i.reveal(!1)}).one("load.zf.offcanvas",function(){e.MediaQuery.atLeast(i.options.revealOn)&&i.reveal(!0)})},i.prototype.reveal=function(e){var i=this.$element.find("[data-close]");if(e){if(!this.options.forceTop){var n=parseInt(window.pageYOffset);this.$element[0].style.transform="translate(0,"+n+"px)"}this.options.isSticky&&this._stick(),i.length&&i.hide()}else(this.options.isSticky||!this.options.forceTop)&&(this.$element[0].style.transform="",t(window).off("scroll.zf.offcanvas")),i.length&&i.show()},i.prototype.open=function(i,n){if(!this.$element.hasClass("is-open")){var s=this;t(document.body);if(!this.options.forceTop){var o=parseInt(window.pageYOffset);this.$element[0].style.transform="translate(0,"+o+"px)",this.$exiter.length&&(this.$exiter[0].style.transform="translate(0,"+o+"px)")}e.Move(this.options.transitionTime,this.$element,function(){t("[data-off-canvas-wrapper]").addClass("is-off-canvas-open is-open-"+s.options.position),s.$element.addClass("is-open").attr("aria-hidden","false").trigger("opened.zf.offcanvas"),s.options.isSticky&&s._stick()}),n&&(this.$lastTrigger=n.attr("aria-expanded","true")),this.options.autoFocus&&this.$element.one("finished.zf.animate",function(){s.$element.find("a, button").eq(0).focus()})}},i.prototype._stick=function(){var e=this.$element[0].style;if(this.options.closeOnClick)var i=this.$exiter[0].style;t(window).on("scroll.zf.offcanvas",function(t){console.log(t);var n=window.pageYOffset;e.transform="translate(0,"+n+"px)",void 0!==i&&(i.transform="translate(0,"+n+"px)")})},i.prototype.close=function(){if(this.$element.hasClass("is-open")){var i=this;e.Move(this.options.transitionTime,this.$element,function(){t("[data-off-canvas-wrapper]").removeClass("is-off-canvas-open is-open-"+i.options.position),i.$element.removeClass("is-open")}),this.$element.attr("aria-hidden","true").trigger("closed.zf.offcanvas"),(i.options.isSticky||!i.options.forceTop)&&setTimeout(function(){i.$element[0].style.transform="",t(window).off("scroll.zf.offcanvas")},this.options.transitionTime),this.$lastTrigger.attr("aria-expanded","false")}},i.prototype.toggle=function(t,e){this.$element.hasClass("is-open")?this.close(t,e):this.open(t,e)},i.prototype._handleKeyboard=function(t){27===t.which&&(t.stopPropagation(),t.preventDefault(),this.close(),this.$lastTrigger.focus())},i.prototype.destroy=function(){},e.plugin(i)}(jQuery,Foundation),!function(t,e){"use strict";function i(n,s){this.$element=n,this.options=t.extend({},i.defaults,this.$element.data(),s),this._init(),e.registerPlugin(this),e.Keyboard.register("Orbit",{ltr:{ARROW_RIGHT:"next",ARROW_LEFT:"previous"},rtl:{ARROW_LEFT:"next",ARROW_RIGHT:"previous"}})}i.defaults={bullets:!0,navButtons:!0,animInFromRight:"slide-in-right",animOutToRight:"slide-out-right",animInFromLeft:"slide-in-left",animOutToLeft:"slide-out-left",autoPlay:!0,timerDelay:5e3,infiniteWrap:!0,swipe:!0,pauseOnHover:!0,accessible:!0,containerClass:"orbit-container",slideClass:"orbit-slide",boxOfBullets:"orbit-bullets",nextClass:"orbit-next",prevClass:"orbit-previous"},i.prototype._init=function(){this.$wrapper=this.$element.find("."+this.options.containerClass),this.$slides=this.$element.find("."+this.options.slideClass);var t=this.$element.find("img");t.length?e.onImagesLoaded(t,this._prepareForOrbit.bind(this)):this._prepareForOrbit(),this.options.bullets&&this.loadBullets(),this._events(),this.options.autoPlay&&this.geoSync(),this.options.accessible&&this.$wrapper.attr("tabindex",0)},i.prototype.loadBullets=function(){this.$bullets=this.$element.find("."+this.options.boxOfBullets).find("button")},i.prototype.geoSync=function(){var t=this;this.timer=new e.Timer(this.$element,{duration:this.options.timerDelay,infinite:!1},function(){t.changeSlide(!0)}),this.timer.start()},i.prototype._prepareForOrbit=function(){var t=this;this.setWrapperHeight(function(e){t.setSlideHeight(e)})},i.prototype.setWrapperHeight=function(e){var i,n=0,s=0;this.$slides.each(function(){i=this.getBoundingClientRect().height,t(this).attr("data-slide",s),s&&t(this).css({position:"relative",display:"none"}),n=i>n?i:n,s++}),s===this.$slides.length&&(this.$wrapper.css({height:n}),e(n))},i.prototype.setSlideHeight=function(e){this.$slides.each(function(){t(this).css("max-height",e)})},i.prototype._events=function(){var i=this;if(this.options.swipe&&this.$slides.off("swipeleft.zf.orbit swiperight.zf.orbit").on("swipeleft.zf.orbit",function(t){t.preventDefault(),i.changeSlide(!0)}).on("swiperight.zf.orbit",function(t){t.preventDefault(),i.changeSlide(!1)}),this.options.autoPlay&&(this.$slides.on("click.zf.orbit",function(){i.$element.data("clickedOn",i.$element.data("clickedOn")?!1:!0),i.timer[i.$element.data("clickedOn")?"pause":"start"]()}),this.options.pauseOnHover&&this.$element.on("mouseenter.zf.orbit",function(){i.timer.pause()}).on("mouseleave.zf.orbit",function(){i.$element.data("clickedOn")||i.timer.start()})),this.options.navButtons){var n=this.$element.find("."+this.options.nextClass+", ."+this.options.prevClass);n.attr("tabindex",0).on("click.zf.orbit touchend.zf.orbit",function(){i.changeSlide(t(this).hasClass(i.options.nextClass))})}this.options.bullets&&this.$bullets.on("click.zf.orbit touchend.zf.orbit",function(){if(/is-active/g.test(this.className))return!1;var e=t(this).data("slide"),n=e>i.$slides.filter(".is-active").data("slide"),s=i.$slides.eq(e);i.changeSlide(n,s,e)}),this.$wrapper.add(this.$bullets).on("keydown.zf.orbit",function(n){e.Keyboard.handleKey(n,i,{next:function(){i.changeSlide(!0)},previous:function(){i.changeSlide(!1)},handled:function(){t(n.target).is(i.$bullets)&&i.$bullets.filter(".is-active").focus()}})})},i.prototype.changeSlide=function(t,i,n){var s=this.$slides.filter(".is-active").eq(0);if(/mui/g.test(s[0].className))return!1;var o,a=this.$slides.first(),r=this.$slides.last(),l=t?"Right":"Left",d=t?"Left":"Right",h=this;o=i?i:t?this.options.infiniteWrap?s.next("."+this.options.slideClass).length?s.next("."+this.options.slideClass):a:s.next("."+this.options.slideClass):this.options.infiniteWrap?s.prev("."+this.options.slideClass).length?s.prev("."+this.options.slideClass):r:s.prev("."+this.options.slideClass),o.length&&(this.options.bullets&&(n=n||this.$slides.index(o),this._updateBullets(n)),e.Motion.animateIn(o.addClass("is-active").css({position:"absolute",top:0}),this.options["animInFrom"+l],function(){o.css({position:"relative",display:"block"}).attr("aria-live","polite")}),e.Motion.animateOut(s.removeClass("is-active"),this.options["animOutTo"+d],function(){s.removeAttr("aria-live"),h.options.autoPlay&&h.timer.restart(),h.$element.trigger("slidechange.zf.orbit",[o])}))},i.prototype._updateBullets=function(t){var e=this.$element.find("."+this.options.boxOfBullets).find(".is-active").removeClass("is-active").blur(),i=e.find("span:last").detach();this.$bullets.eq(t).addClass("is-active").append(i)},i.prototype.destroy=function(){delete this.timer,this.$element.off(".zf.orbit").find("*").off(".zf.orbit").end().hide(),e.unregisterPlugin(this)},e.plugin(i)}(jQuery,window.Foundation),!function(t,e){"use strict";function i(i){this.$element=e(i),this.rules=this.$element.data("responsive-menu"),this.currentMq=null,this.currentPlugin=null,this._init(),this._events(),t.registerPlugin(this)}var n={dropdown:{cssClass:"dropdown",plugin:t._plugins["dropdown-menu"]||null},drilldown:{cssClass:"drilldown",plugin:t._plugins.drilldown||null},accordion:{cssClass:"accordion-menu",plugin:t._plugins["accordion-menu"]||null}};i.defaults={},i.prototype._init=function(){for(var t={},i=this.rules.split(" "),s=0;s1?o[0]:"small",r=o.length>1?o[1]:o[0];null!==n[r]&&(t[a]=n[r])}this.rules=t,e.isEmptyObject(t)||this._checkMediaQueries()},i.prototype._events=function(){var t=this;e(window).on("changed.zf.mediaquery",function(){t._checkMediaQueries()})},i.prototype._checkMediaQueries=function(){var i,s=this;e.each(this.rules,function(e){t.MediaQuery.atLeast(e)&&(i=e)}),i&&(this.currentPlugin instanceof this.rules[i].plugin||(e.each(n,function(t,e){s.$element.removeClass(e.cssClass)}),this.$element.addClass(this.rules[i].cssClass),this.currentPlugin&&this.currentPlugin.destroy(),this.currentPlugin=new this.rules[i].plugin(this.$element,{})))},i.prototype.destroy=function(){this.currentPlugin.destroy(),e(window).off(".zf.ResponsiveMenu")},t.plugin(i)}(Foundation,jQuery),!function(t,e){"use strict";function i(n,s){this.$element=t(n),this.options=t.extend({},i.defaults,s),this._init(),this._events(),e.registerPlugin(this)}i.defaults={hideFor:"medium"},i.prototype._init=function(){var e=this.$element.data("responsive-toggle");e||console.error("Your tab bar needs an ID of a Menu as the value of data-tab-bar."),this.$targetMenu=t("#"+e),this.$toggler=this.$element.find("[data-toggle]"),this._update()},i.prototype._events=function(){t(window).on("changed.zf.mediaquery",this._update.bind(this)),this.$toggler.on("click.zf.responsiveToggle",this.toggleMenu.bind(this))},i.prototype._update=function(){e.MediaQuery.atLeast(this.options.hideFor)?(this.$element.hide(),this.$targetMenu.show()):(this.$element.show(),this.$targetMenu.hide())},i.prototype.toggleMenu=function(){e.MediaQuery.atLeast(this.options.hideFor)||(this.$targetMenu.toggle(0),this.$element.trigger("toggled.zf.responsiveToggle"))},e.plugin(i)}(jQuery,Foundation),!function(t,e){"use strict";function i(n,s){this.$element=n,this.options=e.extend({},i.defaults,this.$element.data(),s),this._init(),t.registerPlugin(this),t.Keyboard.register("Reveal",{ENTER:"open",SPACE:"open",ESCAPE:"close",TAB:"tab_forward",SHIFT_TAB:"tab_backward"})}i.defaults={animationIn:"",animationOut:"",showDelay:0,hideDelay:0,closeOnClick:!0,closeOnEsc:!0,multipleOpened:!1,vOffset:100,hOffset:0,fullScreen:!1,btmOffsetPct:10,overlay:!0,resetOnClose:!1},i.prototype._init=function(){if(this.id=this.$element.attr("id"),this.isActive=!1,this.$anchor=e(e('[data-open="'+this.id+'"]').length?'[data-open="'+this.id+'"]':'[data-toggle="'+this.id+'"]'),this.$anchor.length){var i=this.$anchor[0].id||t.GetYoDigits(6,"reveal");this.$anchor.attr({"aria-controls":this.id,id:i,"aria-haspopup":!0,tabindex:0}),this.$element.attr({"aria-labelledby":i})}(this.options.fullScreen||this.$element.hasClass("full"))&&(this.options.fullScreen=!0,this.options.overlay=!1),this.options.overlay&&(this.$overlay=this._makeOverlay(this.id)),this.$element.attr({role:"dialog","aria-hidden":!0,"data-yeti-box":this.id,"data-resize":this.id}),this._events()},i.prototype._makeOverlay=function(t){var i=e("
    ").addClass("reveal-overlay").attr({tabindex:-1,"aria-hidden":!0}).appendTo("body");return this.options.closeOnClick&&i.attr({"data-close":t}),i},i.prototype._events=function(){var t=this;this.$element.on({"open.zf.trigger":this.open.bind(this),"close.zf.trigger":this.close.bind(this),"toggle.zf.trigger":this.toggle.bind(this),"resizeme.zf.trigger":function(){t.$element.is(":visible")&&t._setPosition(function(){})}}),this.$anchor.length&&this.$anchor.on("keydown.zf.reveal",function(e){(13===e.which||32===e.which)&&(e.stopPropagation(),e.preventDefault(),t.open())}),this.options.closeOnClick&&this.options.overlay&&this.$overlay.off(".zf.reveal").on("click.zf.reveal",this.close.bind(this))},i.prototype._setPosition=function(e){var i=t.Box.GetDimensions(this.$element),n=this.options.fullScreen?"reveal full":i.height>=.5*i.windowDims.height?"reveal":"center";"reveal full"===n?(console.log("full"),this.$element.offset(t.Box.GetOffsets(this.$element,null,n,this.options.vOffset)).css({height:i.windowDims.height,width:i.windowDims.width})):t.MediaQuery.atLeast("medium")&&t.Box.ImNotTouchingYou(this.$element,null,!0,!1)?this.$element.css({"max-height":i.windowDims.height-this.options.vOffset*(this.options.btmOffsetPct/100+1),width:""}).offset(t.Box.GetOffsets(this.$element,null,n,this.options.vOffset)):(this.$element.css({width:i.windowDims.width-2*this.options.hOffset}).offset(t.Box.GetOffsets(this.$element,null,"center",this.options.vOffset,this.options.hOffset)),this.changedSize=!0),e()},i.prototype.open=function(){var i=this;this.isActive=!0,this.$element.css({visibility:"hidden"}).show().scrollTop(0),this._setPosition(function(){i.$element.hide().css({visibility:""}),i.options.multipleOpened||i.$element.trigger("closeme.zf.reveal",i.id),i.options.animationIn?i.options.overlay?t.Motion.animateIn(i.$overlay,"fade-in",function(){t.Motion.animateIn(i.$element,i.options.animationIn,function(){})}):t.Motion.animateIn(i.$element,i.options.animationIn,function(){}):i.options.overlay?i.$overlay.show(0,function(){i.$element.show(i.options.showDelay,function(){})}):i.$element.show(i.options.showDelay,function(){})}),this.$element.attr({"aria-hidden":!1}).attr("tabindex",-1).focus().trigger("open.zf.reveal"),e("body").addClass("is-reveal-open").attr({"aria-hidden":this.options.overlay||this.options.fullScreen?!0:!1}),setTimeout(function(){i._extraHandlers()},0)},i.prototype._extraHandlers=function(){var i=this,n=this.$element.find("a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, *[tabindex], *[contenteditable]").filter(function(){return!e(this).is(":visible")||e(this).attr("tabindex")<0?!1:!0; +});this.options.overlay||!this.options.closeOnClick||this.options.fullScreen||e("body").on("click.zf.reveal",function(t){i.close()}),this.options.closeOnEsc&&e(window).on("keydown.zf.reveal",function(e){0===n.length&&e.preventDefault(),t.Keyboard.handleKey(e,i,{close:function(){this.options.closeOnEsc&&this.close()}})}),this.$element.on("keydown.zf.reveal",function(s){var o=e(this);t.Keyboard.handleKey(s,i,{tab_forward:function(){this.$element.find(":focus").is(n.eq(-1))&&(n.eq(0).focus(),s.preventDefault())},tab_backward:function(){(this.$element.find(":focus").is(n.eq(0))||this.$element.is(":focus"))&&(n.eq(-1).focus(),s.preventDefault())},open:function(){o.is(n)&&this.open()},close:function(){this.options.closeOnEsc&&this.close()}}),0===n.length&&s.preventDefault()})},i.prototype.close=function(){if(!this.isActive||!this.$element.is(":visible"))return!1;var i=this;this.options.animationOut?t.Motion.animateOut(this.$element,this.options.animationOut,function(){i.options.overlay&&t.Motion.animateOut(i.$overlay,"fade-out",function(){})}):this.$element.hide(i.options.hideDelay,function(){i.options.overlay&&i.$overlay.hide(0,function(){})}),this.options.closeOnEsc&&e(window).off("keydown.zf.reveal"),!this.options.overlay&&this.options.closeOnClick&&e("body").off("click.zf.reveal"),this.$element.off("keydown.zf.reveal"),this.changedSize&&this.$element.css({height:"",width:""}),e("body").removeClass("is-reveal-open").attr({"aria-hidden":!1,tabindex:""}),this.options.resetOnClose&&this.$element.html(this.$element.html()),this.isActive=!1,this.$element.attr({"aria-hidden":!0}).trigger("closed.zf.reveal")},i.prototype.toggle=function(){this.isActive?this.close():this.open()},i.prototype.destroy=function(){this.options.overlay&&this.$overlay.hide().off().remove(),this.$element.hide(),this.$anchor.off(),t.unregisterPlugin(this)},t.plugin(i),"undefined"!=typeof module&&"undefined"!=typeof module.exports&&(module.exports=i),"function"==typeof define&&define(["foundation"],function(){return i})}(Foundation,jQuery),!function(t,e){"use strict";function i(n,s){this.$element=n,this.options=t.extend({},i.defaults,this.$element.data(),s),this._init(),e.registerPlugin(this),e.Keyboard.register("Slider",{ltr:{ARROW_RIGHT:"increase",ARROW_UP:"increase",ARROW_DOWN:"decrease",ARROW_LEFT:"decrease",SHIFT_ARROW_RIGHT:"increase_fast",SHIFT_ARROW_UP:"increase_fast",SHIFT_ARROW_DOWN:"decrease_fast",SHIFT_ARROW_LEFT:"decrease_fast"},rtl:{ARROW_LEFT:"increase",ARROW_RIGHT:"decrease",SHIFT_ARROW_LEFT:"increase_fast",SHIFT_ARROW_RIGHT:"decrease_fast"}})}function n(t,e){return t/e}function s(t,e,i,n){return Math.abs(t.position()[e]+t[n]()/2-i)}i.defaults={start:0,end:100,step:1,initialStart:0,initialEnd:100,binding:!1,clickSelect:!0,vertical:!1,draggable:!0,disabled:!1,doubleSided:!1,decimal:2,moveTime:200,disabledClass:"disabled"},i.prototype._init=function(){this.inputs=this.$element.find("input"),this.handles=this.$element.find("[data-slider-handle]"),this.$handle=this.handles.eq(0),this.$input=this.inputs.length?this.inputs.eq(0):t("#"+this.$handle.attr("aria-controls")),this.$fill=this.$element.find("[data-slider-fill]").css(this.options.vertical?"height":"width",0);var e=!1,i=this;(this.options.disabled||this.$element.hasClass(this.options.disabledClass))&&(this.options.disabled=!0,this.$element.addClass(this.options.disabledClass)),this.inputs.length||(this.inputs=t().add(this.$input),this.options.binding=!0),this._setInitAttr(0),this._events(this.$handle),this.handles[1]&&(this.options.doubleSided=!0,this.$handle2=this.handles.eq(1),this.$input2=this.inputs.length?this.inputs.eq(1):t("#"+this.$handle2.attr("aria-controls")),this.inputs[1]||(this.inputs=this.inputs.add(this.$input2)),e=!0,this._setHandlePos(this.$handle,this.options.initialStart,!0,function(){i._setHandlePos(i.$handle2,i.options.initialEnd)}),this._setInitAttr(1),this._events(this.$handle2)),e||this._setHandlePos(this.$handle,this.options.initialStart,!0)},i.prototype._setHandlePos=function(t,i,s,o){i=parseFloat(i),ithis.options.end&&(i=this.options.end);var a=this.options.doubleSided;if(a)if(0===this.handles.index(t)){var r=parseFloat(this.$handle2.attr("aria-valuenow"));i=i>=r?r-this.options.step:i}else{var l=parseFloat(this.$handle.attr("aria-valuenow"));i=l>=i?l+this.options.step:i}this.options.vertical&&!s&&(i=this.options.end-i);var d=this,h=this.options.vertical,u=h?"height":"width",f=h?"top":"left",c=t[0].getBoundingClientRect()[u]/2,p=this.$element[0].getBoundingClientRect()[u],m=n(i,this.options.end).toFixed(this.options.decimal),g=(p-c)*m,v=(100*n(g,p)).toFixed(this.options.decimal),i=i>0?parseFloat(i.toFixed(this.options.decimal)):0,w={};if(this._setValues(t,i),this.options.doubleSided){var y,b=0===this.handles.index(t);this.handles.index(t);b?(w[f]=(m>0?100*m:0)+"%",y=(100*(n(this.$handle2.position()[f]+c,p)-parseFloat(m))).toFixed(this.options.decimal)+"%",w["min-"+u]=y,o&&"function"==typeof o&&o()):(i=(100>i?i:100)-(parseFloat(this.$handle[0].style.left)||this.options.end-i),w["min-"+u]=i+"%")}this.$element.one("finished.zf.animate",function(){d.animComplete=!0,d.$element.trigger("moved.zf.slider",[t])});var $=d.$element.data("dragging")?1e3/60:d.options.moveTime;e.Move($,t,function(){t.css(f,v+"%"),d.options.doubleSided?d.$fill.css(w):d.$fill.css(u,100*m+"%")})},i.prototype._setInitAttr=function(t){var i=this.inputs.eq(t).attr("id")||e.GetYoDigits(6,"slider");this.inputs.eq(t).attr({id:i,max:this.options.end,min:this.options.start}),this.handles.eq(t).attr({role:"slider","aria-controls":i,"aria-valuemax":this.options.end,"aria-valuemin":this.options.start,"aria-valuenow":0===t?this.options.initialStart:this.options.initialEnd,"aria-orientation":this.options.vertical?"vertical":"horizontal",tabindex:0})},i.prototype._setValues=function(t,e){var i=this.options.doubleSided?this.handles.index(t):0;this.inputs.eq(i).val(e),t.attr("aria-valuenow",e)},i.prototype._handleEvent=function(t,e,i){if(i)var o=i,a=!0;else{t.preventDefault();var r=this.options.vertical,l=r?"height":"width",d=r?"top":"left",h=r?t.pageY:t.pageX,u=this.$handle[0].getBoundingClientRect()[l]/2,f=this.$element[0].getBoundingClientRect()[l],c=this.$element.offset()[d]-h,p=c>0?-u:-f>c-u?f:Math.abs(c),m=n(p,f),o=(this.options.end-this.options.start)*m,a=!1;if(!e){var g=s(this.$handle,d,p,l),v=s(this.$handle2,d,p,l);e=v>=g?this.$handle:this.$handle2}}this._setHandlePos(e,o,a)},i.prototype._events=function(i){if(this.options.disabled)return!1;var n,s,o=this;if(this.inputs.on("change.zf.slider",function(e){var i=o.inputs.index(t(this));o._handleEvent(e,o.handles.eq(i),t(this).val())}),this.options.clickSelect&&this.$element.off("mousedown.zf.slider").on("mousedown.zf.slider",function(t){return o.$element.data("dragging")?!1:(o.animComplete=!1,void(o.options.doubleSided?o._handleEvent(t):o._handleEvent(t,o.$handle)))}),this.options.draggable){this.handles.addTouch();var n,s,a=t("body");i.off("mousedown.zf.slider touchstart.zf.slider keydown.zf.slider").on("mousedown.zf.slider",function(e){i.addClass("is-dragging"),o.$fill.addClass("is-dragging"),o.$element.data("dragging",!0),o.animComplete=!1,n=t(e.currentTarget),a.on("mousemove.zf.slider",function(t){t.preventDefault(),o._handleEvent(t,n)}).on("mouseup.zf.slider",function(t){clearTimeout(s),o.animComplete=!0,o._handleEvent(t,n),i.removeClass("is-dragging"),o.$fill.removeClass("is-dragging"),o.$element.data("dragging",!1),a.off("mousemove.zf.slider mouseup.zf.slider")})})}i.on("keydown.zf.slider",function(i){var n,s=o.options.doubleSided?o.handles.index(t(this)):0,a=Number(o.inputs.eq(s).val()),r=t(this);e.Keyboard.handleKey(i,o,{decrease:function(){n=a-o.options.step},increase:function(){n=a+o.options.step},decrease_fast:function(){n=a-10*o.options.step},increase_fast:function(){n=a+10*o.options.step},handled:function(){i.preventDefault(),o._setHandlePos(r,n,!0)}})})},i.prototype.destroy=function(){this.handles.off(".zf.slider"),this.inputs.off(".zf.slider"),this.$element.off(".zf.slider"),e.unregisterPlugin(this)},e.plugin(i)}(jQuery,window.Foundation),!function(t,e){"use strict";function i(n,s){this.$element=n,this.options=t.extend({},i.defaults,this.$element.data(),s),this._init(),e.registerPlugin(this)}function n(t){return parseInt(window.getComputedStyle(document.body,null).fontSize,10)*t}i.defaults={container:"
    ",stickTo:"top",anchor:"",topAnchor:"",btmAnchor:"",marginTop:1,marginBottom:1,stickyOn:"medium",stickyClass:"sticky",containerClass:"sticky-container",checkEvery:50},i.prototype._init=function(){var i=this.$element.parent("[data-sticky-container]"),n=this.$element[0].id||e.GetYoDigits(6,"sticky"),s=this;i.length||(this.wasWrapped=!0),this.$container=i.length?i:t(this.options.container).wrapInner(this.$element),this.$container.addClass(this.options.containerClass),this.$element.addClass(this.options.stickyClass).attr({"data-resize":n}),this.scrollCount=this.options.checkEvery,this.isStuck=!1,""!==this.options.topAnchor?this._parsePoints():this.$anchor=t(this.options.anchor?"#"+this.options.anchor:document.body),this._setSizes(function(){s._calc(!1)}),this._events(n.split("-").reverse().join("-"))},i.prototype._parsePoints=function(){for(var e=this.options.topAnchor,i=this.options.btmAnchor,n=[e,i],s={},o=0,a=n.length;a>o&&n[o];o++){var r;if("number"==typeof n[o])r=n[o];else{var l=n[o].split(":"),d=t("#"+l[0]);r=d.offset().top,l[1]&&"bottom"===l[1].toLowerCase()&&(r+=d[0].getBoundingClientRect().height)}s[o]=r}this.points=s},i.prototype._events=function(e){var i=this,n="scroll.zf."+e;this.isOn||(this.canStick&&(this.isOn=!0,t(window).off(n).on(n,function(t){0===i.scrollCount?(i.scrollCount=i.options.checkEvery,i._setSizes(function(){i._calc(!1,t.currentTarget.scrollY)})):(i.scrollCount--,i._calc(!1,t.currentTarget.scrollY))})),this.$element.off("resizeme.zf.trigger").on("resizeme.zf.trigger",function(t,s){i._setSizes(function(){i._calc(!1),i.canStick?i.isOn||i._events(e):i.isOn&&i._pauseListeners(n)})}))},i.prototype._pauseListeners=function(e){this.isOn=!1,t(window).off(e),this.$element.trigger("pause.zf.sticky")},i.prototype._calc=function(t,e){return t&&this._setSizes(),this.canStick?(e||(e=window.scrollY),void(e>=this.topPoint?e<=this.bottomPoint?this.isStuck||this._setSticky():this.isStuck&&this._removeSticky(!1):this.isStuck&&this._removeSticky(!0))):(this.isStuck&&this._removeSticky(!0),!1)},i.prototype._setSticky=function(){var t=this.options.stickTo,e="top"===t?"marginTop":"marginBottom",i="top"===t?"bottom":"top",n={};n[e]=this.options[e]+"em",n[t]=0,n[i]="auto",n.left=this.$container.offset().left+parseInt(window.getComputedStyle(this.$container[0])["padding-left"],10),this.isStuck=!0,this.$element.removeClass("is-anchored is-at-"+i).addClass("is-stuck is-at-"+t).css(n).trigger("sticky.zf.stuckto:"+t)},i.prototype._removeSticky=function(t){var e,i,n=this.options.stickTo,s="top"===n,o={},a=(this.points?this.points[1]-this.points[0]:this.anchorHeight)-this.elemHeight;e=s?"marginTop":"marginBottom",i=s?"bottom":"top",o[e]=0,t&&!s||s&&!t?(o[n]=a,o[i]=0):(o[n]=0,o[i]=a),o.left="",this.isStuck=!1,this.$element.removeClass("is-stuck is-at-"+n).addClass("is-anchored is-at-"+(t?"top":"bottom")).css(o).trigger("top")},i.prototype._setSizes=function(t){this.canStick=e.MediaQuery.atLeast(this.options.stickyOn),this.canStick||t();var i=this.$container[0].getBoundingClientRect().width,n=window.getComputedStyle(this.$container[0]),s=parseInt(n["padding-right"],10);this.$anchor&&this.$anchor.length?this.anchorHeight=this.$anchor[0].getBoundingClientRect().height:this._parsePoints(),this.$element.css({"max-width":i-s+"px"});var o=this.$element[0].getBoundingClientRect().height||this.containerHeight;this.containerHeight=o,this.$container.css({height:o}),this.elemHeight=o,this.isStuck&&this.$element.css({left:this.$container.offset().left+parseInt(n["padding-left"],10)}),this._setBreakPoints(o,function(){t&&t()})},i.prototype._setBreakPoints=function(t,e){if(!this.canStick){if(!e)return!1;e()}var i=n(this.options.marginTop),s=n(this.options.marginBottom),o=this.points?this.points[0]:this.$anchor.offset().top,a=this.points?this.points[1]:o+this.anchorHeight,r=window.innerHeight;"top"===this.options.stickTo?(o-=i,a-=t+i):"bottom"===this.options.stickTo&&(o-=r-(t+s),a-=r-s),this.topPoint=o,this.bottomPoint=a,e&&e()},i.prototype.destroy=function(){this._removeSticky(!0),this.$element.removeClass(this.options.stickyClass+" is-anchored is-at-top").css({height:"",top:"",bottom:"","max-width":""}).off("resizeme.zf.trigger"),this.$anchor.off("change.zf.sticky"),t(window).off("scroll.zf.sticky"),this.wasWrapped?this.$element.unwrap():this.$container.removeClass(this.options.containerClass).css({height:""}),e.unregisterPlugin(this)},e.plugin(i)}(jQuery,window.Foundation),!function(t,e){"use strict";function i(n,s){this.$element=n,this.options=t.extend({},i.defaults,this.$element.data(),s),this._init(),e.registerPlugin(this),e.Keyboard.register("Tabs",{ENTER:"open",SPACE:"open",ARROW_RIGHT:"next",ARROW_UP:"previous",ARROW_DOWN:"next",ARROW_LEFT:"previous"})}i.defaults={autoFocus:!1,wrapOnKeys:!0,matchHeight:!1,linkClass:"tabs-title",panelClass:"tabs-panel"},i.prototype._init=function(){var i=this;if(this.$tabTitles=this.$element.find("."+this.options.linkClass),this.$tabContent=t('[data-tabs-content="'+this.$element[0].id+'"]'),this.$tabTitles.each(function(){var e=t(this),n=e.find("a"),s=e.hasClass("is-active"),o=n.attr("href").slice(1),a=o+"-label",r=t(o);e.attr({role:"presentation"}),n.attr({role:"tab","aria-controls":o,"aria-selected":s,id:a}),r.attr({role:"tabpanel","aria-hidden":!s,"aria-labelledby":a}),s&&i.options.autoFocus&&n.focus()}),this.options.matchHeight){var n=this.$tabContent.find("img");n.length?e.onImagesLoaded(n,this._setHeight.bind(this)):this._setHeight()}this._events()},i.prototype._events=function(){this._addKeyHandler(),this._addClickHandler(),this.options.matchHeight&&t(window).on("changed.zf.mediaquery",this._setHeight.bind(this))},i.prototype._addClickHandler=function(){var e=this;this.$tabTitles.off("click.zf.tabs").on("click.zf.tabs",function(i){i.preventDefault(),i.stopPropagation(),t(this).hasClass("is-active")||e._handleTabChange(t(this))})},i.prototype._addKeyHandler=function(){var i=this;i.$element.find("li:first-of-type"),i.$element.find("li:last-of-type");this.$tabTitles.off("keydown.zf.tabs").on("keydown.zf.tabs",function(n){n.stopPropagation(),n.preventDefault();var s,o,a=t(this),r=a.parent("ul").children("li");r.each(function(e){return t(this).is(a)?void(i.options.wrapOnKeys?(s=0===e?r.last():r.eq(e-1),o=e===r.length-1?r.first():r.eq(e+1)):(s=r.eq(Math.max(0,e-1)),o=r.eq(Math.min(e+1,r.length-1)))):void 0}),e.Keyboard.handleKey(n,i,{open:function(){a.find('[role="tab"]').focus(),i._handleTabChange(a)},previous:function(){s.find('[role="tab"]').focus(),i._handleTabChange(s)},next:function(){o.find('[role="tab"]').focus(),i._handleTabChange(o)}})})},i.prototype._handleTabChange=function(e){var i=e.find('[role="tab"]'),n=i.attr("href"),s=t(n),o=this.$element.find("."+this.options.linkClass+".is-active").removeClass("is-active").find('[role="tab"]').attr({"aria-selected":"false"}).attr("href");t(o).removeClass("is-active").attr({"aria-hidden":"true"}),e.addClass("is-active"),i.attr({"aria-selected":"true"}),s.addClass("is-active").attr({"aria-hidden":"false"}),this.$element.trigger("change.zf.tabs",[e])},i.prototype.selectTab=function(t){var e;e="object"==typeof t?t[0].id:t,e.indexOf("#")<0&&(e="#"+e);var i=this.$tabTitles.find('[href="'+e+'"]').parent("."+this.options.linkClass);this._handleTabChange(i)},i.prototype._setHeight=function(){var e=0;this.$tabContent.find("."+this.options.panelClass).css("height","").each(function(){var i=t(this),n=i.hasClass("is-active");n||i.css({visibility:"hidden",display:"block"});var s=this.getBoundingClientRect().height;n||i.css({visibility:"",display:""}),e=s>e?s:e}).css("height",e+"px")},i.prototype.destroy=function(){this.$element.find("."+this.options.linkClass).off(".zf.tabs").hide().end().find("."+this.options.panelClass).hide(),this.options.matchHeight&&t(window).off("changed.zf.mediaquery"),e.unregisterPlugin(this)},e.plugin(i)}(jQuery,window.Foundation),!function(t,e){"use strict";function i(n,s){this.$element=n,this.options=e.extend({},i.defaults,n.data(),s),this.className="",this._init(),this._events(),t.registerPlugin(this)}i.defaults={animate:!1},i.prototype._init=function(){var t;this.options.animate?(t=this.options.animate.split(" "),this.animationIn=t[0],this.animationOut=t[1]||null):(t=this.$element.data("toggler"),"."===t[0]?this.className=t.slice(1):this.className=t);var i=this.$element[0].id;e('[data-open="'+i+'"], [data-close="'+i+'"], [data-toggle="'+i+'"]').attr("aria-controls",i),this.$element.is(":hidden")&&this.$element.attr("aria-expanded","false")},i.prototype._events=function(){var t=this;this.$element.on("toggle.zf.trigger",function(){return t.toggle(),!1})},i.prototype.toggle=function(){this.options.animate?this._toggleAnimate():this._toggleClass()},i.prototype._toggleClass=function(){var t=this;this.$element.toggleClass(this.className),this.$element.hasClass(this.className)?this.$element.trigger("on.zf.toggler"):this.$element.trigger("off.zf.toggler"),t._updateARIA()},i.prototype._toggleAnimate=function(){var e=this;this.$element.is(":hidden")?t.Motion.animateIn(this.$element,this.animationIn,function(){this.trigger("on.zf.toggler"),e._updateARIA()}):t.Motion.animateOut(this.$element,this.animationOut,function(){this.trigger("off.zf.toggler"),e._updateARIA()})},i.prototype._updateARIA=function(){this.$element.is(":hidden")?this.$element.attr("aria-expanded","false"):this.$element.attr("aria-expanded","true")},i.prototype.destroy=function(){this.$element.off(".zf.toggler")},t.plugin(i),"undefined"!=typeof module&&"undefined"!=typeof module.exports&&(module.exports=i),"function"==typeof define&&define(["foundation"],function(){return i})}(Foundation,jQuery),!function(t,e,i){"use strict";function n(e,s){this.$element=e,this.options=t.extend({},n.defaults,this.$element.data(),s),this.isActive=!1,this.isClick=!1,this._init(),i.registerPlugin(this)}n.defaults={disableForTouch:!1,hoverDelay:200,fadeInDuration:150,fadeOutDuration:150,disableHover:!1,templateClasses:"",tooltipClass:"tooltip",triggerClass:"has-tip",showOn:"small",template:"",tipText:"",touchCloseText:"Tap to close.",clickOpen:!0,positionClass:"",vOffset:10,hOffset:12},n.prototype._init=function(){var n=this.$element.attr("aria-describedby")||i.GetYoDigits(6,"tooltip");this.options.positionClass=this.getPositionClass(this.$element),this.options.tipText=this.options.tipText||this.$element.attr("title"),this.template=this.options.template?t(this.options.template):this.buildTemplate(n),this.template.appendTo(e.body).text(this.options.tipText).hide(),this.$element.attr({title:"","aria-describedby":n,"data-yeti-box":n,"data-toggle":n,"data-resize":n}).addClass(this.triggerClass),this.usedPositions=[],this.counter=4,this.classChanged=!1,this._events()},n.prototype.getPositionClass=function(t){if(!t)return"";var e=t[0].className.match(/(top|left|right)/g);return e=e?e[0]:""},n.prototype.buildTemplate=function(e){var i=(this.options.tooltipClass+" "+this.options.positionClass).trim(),n=t("
    ").addClass(i).attr({role:"tooltip","aria-hidden":!0,"data-is-active":!1,"data-is-focus":!1,id:e});return n},n.prototype.reposition=function(t){this.usedPositions.push(t?t:"bottom"),!t&&this.usedPositions.indexOf("top")<0?this.template.addClass("top"):"top"===t&&this.usedPositions.indexOf("bottom")<0?this.template.removeClass(t):"left"===t&&this.usedPositions.indexOf("right")<0?this.template.removeClass(t).addClass("right"):"right"===t&&this.usedPositions.indexOf("left")<0?this.template.removeClass(t).addClass("left"):!t&&this.usedPositions.indexOf("top")>-1&&this.usedPositions.indexOf("left")<0?this.template.addClass("left"):"top"===t&&this.usedPositions.indexOf("bottom")>-1&&this.usedPositions.indexOf("left")<0?this.template.removeClass(t).addClass("left"):"left"===t&&this.usedPositions.indexOf("right")>-1&&this.usedPositions.indexOf("bottom")<0?this.template.removeClass(t):"right"===t&&this.usedPositions.indexOf("left")>-1&&this.usedPositions.indexOf("bottom")<0?this.template.removeClass(t):this.template.removeClass(t),this.classChanged=!0,this.counter--},n.prototype.setPosition=function(){var t=this.getPositionClass(this.template),e=i.Box.GetDimensions(this.template),n=i.Box.GetDimensions(this.$element),s="left"===t?"left":"right"===t?"left":"top",o="top"===s?"height":"width";"height"===o?this.options.vOffset:this.options.hOffset;if(e.width>=e.windowDims.width||!this.counter&&!i.Box.ImNotTouchingYou(this.template))return this.template.offset(i.Box.GetOffsets(this.template,this.$element,"center bottom",this.options.vOffset,this.options.hOffset,!0)).css({width:n.windowDims.width-2*this.options.hOffset,height:"auto"}),!1;for(this.template.offset(i.Box.GetOffsets(this.template,this.$element,"center "+(t||"bottom"),this.options.vOffset,this.options.hOffset));!i.Box.ImNotTouchingYou(this.template)&&this.counter;)this.reposition(t),this.setPosition()},n.prototype._show=function(){if("all"!==this.options.showOn&&!i.MediaQuery.atLeast(this.options.showOn))return console.error("The screen is too small to display this tooltip"),!1;var t=this;this.template.css("visibility","hidden").show(),this.setPosition(),this.$element.trigger("closeme.zf.tooltip",this.template.attr("id")),this.template.attr({"data-is-active":!0,"aria-hidden":!1}),t.isActive=!0,this.template.stop().hide().css("visibility","").fadeIn(this.options.fadeInDuration,function(){}),this.$element.trigger("show.zf.tooltip")},n.prototype._hide=function(){var t=this;this.template.stop().attr({"aria-hidden":!0,"data-is-active":!1}).fadeOut(this.options.fadeOutDuration,function(){t.isActive=!1,t.isClick=!1,t.classChanged&&(t.template.removeClass(t.getPositionClass(t.template)).addClass(t.options.positionClass),t.usedPositions=[],t.counter=4,t.classChanged=!1)}),this.$element.trigger("hide.zf.tooltip")},n.prototype._events=function(){var t=this,e=(this.template,!1);this.options.disableHover||this.$element.on("mouseenter.zf.tooltip",function(e){t.isActive||(t.timeout=setTimeout(function(){t._show()},t.options.hoverDelay))}).on("mouseleave.zf.tooltip",function(i){clearTimeout(t.timeout),(!e||!t.isClick&&t.options.clickOpen)&&t._hide()}),this.options.clickOpen&&this.$element.on("mousedown.zf.tooltip",function(e){e.stopImmediatePropagation(),t.isClick?t._hide():(t.isClick=!0,!t.options.disableHover&&t.$element.attr("tabindex")||t.isActive||t._show())}),this.options.disableForTouch||this.$element.on("tap.zf.tooltip touchend.zf.tooltip",function(e){t.isActive?t._hide():t._show()}),this.$element.on({"close.zf.trigger":this._hide.bind(this)}),this.$element.on("focus.zf.tooltip",function(i){return e=!0,console.log(t.isClick),t.isClick?!1:void t._show()}).on("focusout.zf.tooltip",function(i){e=!1,t.isClick=!1,t._hide()}).on("resizeme.zf.trigger",function(){t.isActive&&t.setPosition()})},n.prototype.toggle=function(){this.isActive?this._hide():this._show()},n.prototype.destroy=function(){this.$element.attr("title",this.template.text()).off(".zf.trigger .zf.tootip").removeAttr("aria-describedby").removeAttr("data-yeti-box").removeAttr("data-toggle").removeAttr("data-resize"),this.template.remove(),i.unregisterPlugin(this)},i.plugin(n)}(jQuery,window.document,window.Foundation),function(t,e){"function"==typeof define&&define.amd?define(["jquery"],e):"object"==typeof exports?module.exports=e(require("jquery")):t.MotionUI=e(t.jQuery)}(this,function(t){"use strict";function e(e,o,a,r){function l(){e||o.hide(),d(),r&&r.apply(o)}function d(){o[0].style.transitionDuration=0,o.removeClass(h+" "+u+" "+a)}if(o=t(o).eq(0),o.length){if(null===s)return e?o.show():o.hide(),void r();var h=e?i[0]:i[1],u=e?n[0]:n[1];d(),o.addClass(a),o.css("transition","none"),requestAnimationFrame(function(){o.addClass(h),e&&o.show()}),requestAnimationFrame(function(){o[0].offsetWidth,o.css("transition",""),o.addClass(u)}),o.one("transitionend",l)}}!function(){Date.now||(Date.now=function(){return(new Date).getTime()});for(var t=["webkit","moz"],e=0;e